이 논문은 Object Category Discovery Problem task를 다루는 논문이다. train 시에 정의되지 않은 object가 test 시에 등장할 시 이를 Discovery 할 수 있는 방법으로, 기존 closed-set assumption 하에서 진행된 object detection task 보다 더 real-world에 가까운 settting 이라고 볼 수 있다.
또한 인간의 '기억' 방식에 영감을 받아 Incremental Learning(Never-Ending Learning)으로 학습을 하는데, 이를 위해 2개의 메모리를 활용하여 하나의 메모리에는 장기 기억을, 다른 하나의 메모리에는 단기 기억을 저장해서 inference시에 instance를 이 메모리들에 할당해가며 분류를 수행하는 방식이다.
그런데 이 할당하는 방식이 다소 복잡하게 설계되어 있고 후처리가 많은 느낌이라 조금 아쉬웠다. seen class가 20개임에 반해 unseen class가 60개인 극단적인 setting이므로 metric learning과 같은 학습을 개입하기에는 어려웠을 것으로 보이며 ablation study 결과 테이블을 보면 후처리를 여럿 도입한 이유도 이해는 가지만, 좀 더 간단화할 수 있는 assosiation 방법을 고민해보고 싶다. 또 어떻게보면 논문에서의 assosiation 방법론은 rule-based approach인데, 학습을 통해 수행하는 방법을 더 고민해보고 싶다.
또 task 자체가 어려운 셋팅인걸 고려해도 성능이 많이 저조해서 (AUC 1%...) 성능 제고를 위한 효과적인 방법론을 고민할 필요가 있다.
Abstract
본 논문은 large unlabeled dataset에서 novel object를 discovering/localizing하는 문제인 object category discovery problem를 다룬다.
기존 방법론들은 덜 복잡한 scene이나 각 이미지 당 적은 object를 가지는 데이터셋에 대한 결과를 제시하는 반면에, 우리는 challenging COCO dataset에 대한 결과를 제시한다.
또한 Scratch로 새로운 카테고리를 발견하는 대신에 이미 알려진 정보를 활용하고 unknown에 집중한다.
두 memory modules인 Working memory / Semantic memory를 두어서 new category를 discover할 때 prior knowledge를 이용한다.
1. Introduction
Unsupervised visual category discovery는 모델을 학습해서 minimal human supervision으로 large collection of unlabeled images에서 패턴을 식별하는 것을 목표로 한다.
이 Task의 한계:
일관된 task 정의가 부족
approach들마다 다양한 목표로 인해 evaluation protocol이 imcompatible하다.
Scalability of contemporary approaches
대부분의 기존 연구 작은 데이터셋을 사용하기 때문에 real-world에 가까운 큰 이미지, 한 이미지 당 많은 수의 object나 categories를 가지는 그러한 경우까지 확장하지 못한다.
lack of Online processing of new data
따라서 unsupervised object discovery와 같은 task의 real-world requirements를 보다 밀접하게 반영하는 standardized protocol(datasets and metrics)을 정의할 필요가 있다.
→ 이를 위해 본 논문은 대규모 벤치마크와 real-world complexities를 처리할 수 있는 scalable never-ending discovery approach를 제안한다.
인간의 학습 방식으로부터 영감을 받았다.
마치 인간이 살면서 한 번도 접하지 못한 사물을 계속해서 우연히 접하고, 시간이 지남에 따라 사물들을 인식하는 방법을 배우는 과정과 유사하다
우리가 새로운 물체를 발견하고, 현재 내가 가지고 있는 지식과 연관짓고 업데이트(새로운 개념을 배우거나, 기존 개념을 업데이트)하는 지속적인 학습 패러다임과 유사하다.
우리가 자연스레 위처럼 학습할 수 있는 이유는 바로 ‘기억’ 때문이다. 메모리의 중요성에 대한 압도적인 증거에도 불구하고 메모리는 컴퓨터 비전에서 적게 연구되어 온 요소 중 하나이다. (오히려 신경망의 pretrained weight, konwledge graphs 등에 초점이 맞춰진 채 연구되어옴을 지적.)
본 논문에서 우리는 memory process로부터 영감을 받은 continuous learning approach를 개발하기 위해 memory가 어떻게 사용될 수 있는지 조사한다.
Contribution
A never-ending concept discovery and localization framework, is built using two memory modules: Semantic and Working memory, jointly referred to as dual memory.
A simple, realistic benchmark for never-ending concept discovery, not only to evaluate our approach, but also to enable future works to compare on a standardized protocol.
3. Overview
전체적인 구조는 3개의 main module인 Encoding, Storage, Retrieval로 구성되어 있다.
Encoding : Region Proposal Network(RPL)로 candidate region과 그에 해당하는 feature를 학습한다.
Storage: dual memory 즉, 두 메모리 블럭으로 구성되어 있는데 하나는 Semantic memory, 하나는 Working memory이다.
Semantic memory:
the portion of long-term memory that contains concepts from past experience (current knowledge).
“known” 혹은 이전에 discovered된 region에 해당하는 object representation을 slots에 저장한다.
Working memory:
short-term memory and is responsible for accumulating and temporarily holding information for processing.
Retrieval : region이 semantic memory에 속하는지, working memory에 속하는지 결정한다.
4. Framework Details
세 가지 모듈 Encoding, Storage, Retrieval 각각을 좀 더 자세히 설명하고, 어떻게 상호작용하는지 살펴보고자 한다.
Encoding
Encoding module의 목표는 object detector를 써서 이미지를 처리하고 representation을 뽑는 것이다.
여기서는 Faster R-CNN(trained with PASCAL VOC consisting of a set of 20 known objects)을 사용했다.
(proposals/boxes는 N=150개로 설정했다. )
Storage
Storage module은 두 메모리 블럭(Semantic memory M_s, Working memory M_w)을 포함한다.
M_s
M_s는 prior, discovered concepts를 저장하는 목적이다.
처음에 known classes로 object detector를 통해 학습된 ‘semantic priors’로 초기화된다.
prior이나 acquired knowledge를 저장한다는 점에서 인간의 long-term memory 측면과 유사하다.
M_w
M_s와 달리 M_w는 temporarly store을 위한 storage로, 잠재적으로 discovered될 수 있는 recently encountered objects representation을 다룬다.
처음에는 null값으로 초기화된다.
working memory는 인간의 short-term memory와 유사하다.
충분한 instance를 encounter하게 되면, 이들을 다시 할당해서(working memory→semantic memory) 새로운 class를 학습할 때 discovered로 간주된다.
Storage Slots
두 메모리 모듈은 모두 슬롯으로 구성되는데 슬롯은 지금까지 발견된 데이터에서 해당 슬롯에 속한 regions을 represent한다.
이 slot이 object를 나타내는 경우, slot representation은 곧 class를 의미하며 이 class/slot에 속하는 모든 인스턴스를 사용해서 train된다. 이 representation들은 retrieval module에서 new region/instance가 어느 slot에 대응하는지를 결정하는데 쓰인다.
즉, 이 slot은 (어떠한 association rule에 의해)grouping 된 representation들이 모여있는 집합으로 이해하면 되겠다.
Slot representation needs to be
해당 slot의 large-set of instance를 representing하는 데 효율적이어야 한다.
retireval operation에서 효율적이어야 한다. (associate new instances, updates),
large number of object instances and classes로 확장 가능해야 한다.
본 연구에서는 slot representation에 대한 두 가지 chioce인 1) feature centroids 2) classifier에 대해 탐구하며, 각각의 speed/accuracy trade-off가 다르다.
feature → Slot Assosiation 을 판단하는 두 가지 방법 : 1. Cosine similarity 2. LDA Classifier
1. Centroid representation
Centroid Representation은 slot u^c에 속하는 모든 인스턴스의 straightforward centroid이다.
slot에 속하는 모든 instance를 사용해서 classifier를 학습하고 classification score는 association을 평가하는 데 사용된다.
각 slot에 대해 LDA classifier를 학습한다.
더 구체적으로는, instance를 slot에 associating 하는 문제를 slot vs background 문제로 제시한다.
LDA classifier는 closed form solution w,b로 구성된 linear classifier이다.
여기서 µ^+는 slot에 있는 모든 instance의 평균이다. µ^-는 background class의 평균, π^+/π^-는 positive/background 각각의 샘플 수를 의미한다.
background class staticstics는 데이터셋의 모든 이미지에서 box에 대한 online update formula를 사용해서 offline에서 효율적으로 추정할 수 있다. (유도는 supplementary에 있음.)
결론적으로, classifier score(w^T f + b)로 instance feature이 slot에 속할지를 평가한다. 이러한 closed-form solution의 이점은, classifier를 새로운 instance로 업데이트할려면 π^+만 업데이트 하면 된다는 것이다.
Retrieval
Decision making task를 수행하는 부분이다. (intuitive item recognition model로부터 영감받음)
current state of storage와 고려중인 region의 features를 입력하고 decision making을 수행하는 방식이다.
Process를 차례대로 살펴보면,
Region이 주어지면, known(previously discovered) objects에 대한 semantic memory M_s를 호출해서 new region이 known class에 해당하는지 여부를 결정한다. 이 때 M_s slot과의 association은 classifier score를 사용해서 평가된다.
Q. Semantic Memory 중에서 known 인가 아닌가?
만약 known class에 해당한다면? 업데이트
known object와 일치하지 않으면? 해당 region에 잠재적으로 새로운 object가 포함되어 있음을 의미할 수 있으므로 Working memory 호출한다. 이 때 region’s feature 와 M_w의 모든 slot의 centroid 사이의 cosine similarity에 의해 계산된다.
Q. Working Memory 중에서도 known 인가 아가?
M_w에 있던 slot이면 그 slot으로 업데이트 (slot centroid는 moving average로 업데이트됨)
기존 slot에 없으면 새로운 slot(new singleton slot)을 만든다.
Memory Consolidation
Working Memory M_w는 새로운 컨셉을 발견하는 역할을 하며, 이 과정이 지속적/반복적으로 발생한 후에는 semantic memory와 통합되어야 한다.
이를 위해 working memory에 만들어진 representation을 semantic memory에 추가하는 메모리 통합 단계를 거친다.
진행 방식을 살펴보면,
M_s의 slot은 본질적으로 online learned cluster이기 때문에 종종 fragmented cluster가 있다. (cluster에 하나만 할당되는 경우)
따라서 동일한 카테고리에 대한 여러 cluster를 병합하기 위해 graph clustering problem으로 iterative merge step을 수행한다.
여기서 slot은 노드이며 edge weight는 classifier가 다른 slot에 얼마나 잘 작동하는지에 따라 결정된다.
MinCut을 사용해 connected componets를 얻고 다른 slot에 재할당할 수 있는 유연성을 제공한다.
하지만 이 방식을 적용할 시 fregment는 덜하지만, merge 후 결과는 일관성이 없고 semantic drift로 이어질 수 있다.
(ex. 소화기가 마치 병 모양처럼 생겨서 둘이 다른 object임에도 하나로 merge 됨.)
따라서, Ms에 통합된 slot이 일관성을 갖도록 하기 위해, 우리는 classifier를 활성화하지 않는 slot 모든 샘플(예: wTx + b < 0)을 슬롯에서 제거하는 final refine step 을 수행한다.
Memory Consolidation 후에 M_w는 original state(null)로 reinitialized 되고 M_s의 slot의 수가 많아지게 된다.
Discovery Set
데이터가 주어지면 sequential 하게 discovery process가 진행된다. 따라서 data availability에 대한 assumption을 한 번에 수행하는 것을 자제하고 있다.
Network가 기존 내용을 기억하는것을 방지하고 서로 다른 이미지에 대해 classifier에 의한 error가 다를 것이라는 사실을 활용하기 위해 Discovery dataset을 D1, D2로 분할한다.
먼저 D1에서는 discovery & localization을 수행하고 storage slots을 채운다.
그리고 memory consolidation 후에 Ms의 classifier를 D2(validation)에 적용해서 더 많은 example을 찾는다.
이렇게함으로써 정확하고 다양한 샘플을 찾을 수 있을 것 같지만 첫 번째 셋 D1에서 error mode를 detect 하지는 못한다.
→ 따라서 D1으로 M_s를 업데이트 하고 나서 D1, D2를 swap하고 프로세스를 동일하게 진행한다.
5. Experimental Setup
5.1 Benchmark Datasets: 2가지로 설정
1) known set : Pascal VOC 2007
10k images with annotations for 20 classes.
20개 class를 knonw set으로함
2) Real-world dataset: COCO
2014 which has 80k train and 5k validation images with annotations for 80 classes.
전체 80개의 class중에서 Pascal VOC와 오버렙되지 않는 60개의 class가 evaluation 시에 novel or unknown으로 쓰인다.
(Pre training에는 ImageNet을 썼지만 60개의 unknown class와 어떠한 유사 class도 학습에 사용하지 않았음)
Justification and Discussion
실험을 어떻게 셋팅했는지 자세히 살펴보면,
Unknown class가 무려 60개나 됨. 매우 어려운 task이며 이러한 scale을 다룰 수 있는 기존 approach들은 없었음.
이미지의 distribution이 다양함.
COCO image가 더 복잡하고 하나의 이미지 당 더 많은 objects를 포함하며 discovery dataset의 비중이 높다.
따라서 모든 이미지들이 최소 하나의 object를 가지며 strong signal을 가지는 Standard discovery dataset보다 우리의 셋팅이 더 어렵다.
Semantic Drift
COCO에는20개의 known class와 꽤 비슷한 class들이 있다. Discovery와 never-ending approach는 semanic drift를 피하기 위해 이 class들까지도 잘 분리해야 한다. (헷갈리는 class도 잘 분류하게끔)
Localization focus
Unlabeled unknowns: 사실 60개의 unknown objects보다 많이 커버할 수 있어 하는데, label 부족으로 인해 일부는 quantitative performance만 평가할 수 있다.
Pretraininig Dataset
이미지넷 1000개의 class로 pretrain 할 때 unknown class와 overlap되지 않도록 60개의 novel COCO dataset과 유사한 68개의 class를 지웠다. (이를 ImageNet^-로 부르겠다) backbone network/known detector는 Faster-RCNN을 썼다.
5.2. Evaluation Metrics
Co-localization/Recall Metrics
기존 approach들은 concept discovery를 위해 아래 3가지 metric을 썼다.
CorLoc(Corrected Localization) : single object가 ground truth에 대해 IOU>0.5 로 correctly localized 된 퍼센트
CorRet(Correct retrieval): 이미지와 동일한 (ground truth) 클래스에 속하는 각 이미지에 대해 Retrieval로 식별되는 가장 가까운 이웃의 평균 백분율(k=10)
DetRate(Detection rate): standard recall measure이다.
위 Metric들이 우리의 벤치마크에 적잘하지 않은 이유
CorLoc, DetRate는 localization capabilities만 측정하고 discovery performance는 반영하지 않는다.
따라서 이러한 metric은 co-segmentation/localization task에만 적합하다.
게다가 이미지 당 측정하는 instance가 1개여서 너무 단순하며 COCO같은 데이터셋에 적합하지 않다.
따라서 아래의 추가 Metrics 도입
Discovery/Pattern-mining Metrics
Purity-Coverage plots and/or mean Average Prevision(mAP)로 mining or discovery methods를 평가했다.
이와 함께 discovery process의 효율성을 평가하기 위해 발견된 새로운 물체의 수도 평가한다.
Details
Cumulative purity를 계산하려면 먼저 모든 cluster의 purity를 계산하고 내림차순으로 정렬한다.
그다음 curve의 k번째 포인트에 대해 top-k clusters의 average purity를 계산하고 coverage(커버되는 ground truth box와의 비율)에 대해 plot한다.
우리는 cluster의 purity를 아래와 같이 정의했다.
여기서 c는 COCO의 모든 class 수를 의미한다. 마냥 cluster가 많다고 좋은 성능을 내지 못하게 분모를 둔다.
즉, Cluster의 sample이 어떠한 class로 분류되고 IoU>threshold를 넘으면 그 class에 할당된다. coverage는 커버되는 ground truth box의 비율로 정의한다.
Oracle Detection Metric
COCO-minival로도 평가한다.
다수결 투표 기반으로 각 cluster에 class label을 할당하기 위해 ground truth annotation 형태로 ‘oracle’의 availability를 가정한다. class assignment에 대해 서로 다른 IoU threshold를 사용한다. (0.2/0.5)
Detector를 훈련한 후 모든 class에 대해 reject된 bounding box는 모두 배경으로 처리된다.
제안하는 방법론은 bounding box regression을 수행하지 않는다는 장점도 있다.
Q. Bounding box regression 이란?
Selective search(ex. NMS)를 통해 찾은 박스 위치는 정확하지 않기 때문에 Predicted box와 ground truth box와의 차이를 줄여주는 과정이다.
즉, 성 능을 끌어올리기 위해서 이 박스 위치를 교정하기 위해 predicted box가 ground truth box와 유사하도록 학습한다.
6. Results and Analysis
6.2. Object Discovery Results
Large-scale Quantitative Evaluation
Smaller-scale Quantitative Evaluation
OSD와 비교하기 위해 COCO 2.5k 이미지에서 실행되도록 코드를 수정했다.
CorLoc , DetRate에서는 OSD보다 높지만 CorRet에선 OSD이 더 높다.
One explanation is that deep features are typically trained for image classification while OSD requires region matching.
Moreover, since only few regions are localized by OSD, it results in fewer false positives, thereby resulting in a higher CorRet.
→ 위 세 개 metric 중 어느 것도 object discovery를 적절하게 평가하지 못함
정성평가 결과이다. labeled unknown에 대해서 대체로 잘 분류된 것으로 보이고(이 경우 위에서 설명한 oracle 방식으로 class 할당함) unlabeled unknown에 대해서 대체로 유사한 class끼리 grouping된 것을 확인할 수 있다.
6.3. Object Detection Results
fig6은 0.5 IoU에 대해 per-class AP를 보여준다.
신호등에 대해 최저(0.08%), 곰에 대해 최대(~17.38%) mAP를 달성했다.
6.4 Ablation Analysis
(row1-2)Semantic Memory Initialization: Null로 했을때보다 prior knowledge를 썼을 때가 더 좋다.
(row3) 각각의 known category에 대해 모든 box에 대한 feature centroid를 계산한다. 이렇게 했을 때 더 많은 object를 discover할 수 있었다.
Memory Consolidation Componet Analysis
5개 이하로 cluster 된 이미지는 버렸다.
Merge step을 거치니까 성능이 좋아졌다. (affinity scores를 기반으로 cluster memberships를 재할당하기 때문에 unknown class에 대한 AuC를 개선한다.)
거기에 Refine step까지 거쳤더니 incoherent samples를 모두 버림으로써 cluster purity를 개선해준다.
Recall Analysis
ImageNet 에서 overlap class 68개를 train에서 빼고 학습했을 때가 오히려 recall 성능이 더 좋았다는 점이 신기했다.
Conclusion and Future Work
우리는 in-the-wild에서 novel categories를 발견하고 localize하기 위해 known objects의 prior knowledge를 활용할 수 있는 dual memory 방식을 제안했다.
그러나 복잡한 장면과 realistic benchmarks의 경우 current object discovery and localization methods를 개선할 여지가 많다.
One immediate future work: DNN based Region proposal method를 활용해서 training datasets, seen classes 이상으로 generalize 하는 방법이다.
또 하나의 future work는 in-the-wild에서의 discovery setup에 더 적합한 supervised recognition의 새로운 패러다임이다.
( -> assosiation을 대체할 수 있는 더 효율적인 supervised recognition을 말하는 것 같다. 당장에는 zero-shot learning처럼 semantic information을 어느정도 supervision으로 줘서 학습하는 것 밖에 생각나지 않음...! )
Paper : https://rssaketh.github.io/data/ICCV2021_PoHa.pdf
이 논문은 Object Category Discovery Problem task를 다루는 논문이다. train 시에 정의되지 않은 object가 test 시에 등장할 시 이를 Discovery 할 수 있는 방법으로, 기존 closed-set assumption 하에서 진행된 object detection task 보다 더 real-world에 가까운 settting 이라고 볼 수 있다.
또한 인간의 '기억' 방식에 영감을 받아 Incremental Learning(Never-Ending Learning)으로 학습을 하는데, 이를 위해 2개의 메모리를 활용하여 하나의 메모리에는 장기 기억을, 다른 하나의 메모리에는 단기 기억을 저장해서 inference시에 instance를 이 메모리들에 할당해가며 분류를 수행하는 방식이다.
그런데 이 할당하는 방식이 다소 복잡하게 설계되어 있고 후처리가 많은 느낌이라 조금 아쉬웠다. seen class가 20개임에 반해 unseen class가 60개인 극단적인 setting이므로 metric learning과 같은 학습을 개입하기에는 어려웠을 것으로 보이며 ablation study 결과 테이블을 보면 후처리를 여럿 도입한 이유도 이해는 가지만, 좀 더 간단화할 수 있는 assosiation 방법을 고민해보고 싶다. 또 어떻게보면 논문에서의 assosiation 방법론은 rule-based approach인데, 학습을 통해 수행하는 방법을 더 고민해보고 싶다.
또 task 자체가 어려운 셋팅인걸 고려해도 성능이 많이 저조해서 (AUC 1%...) 성능 제고를 위한 효과적인 방법론을 고민할 필요가 있다.
Abstract
1. Introduction
Unsupervised visual category discovery는 모델을 학습해서 minimal human supervision으로 large collection of unlabeled images에서 패턴을 식별하는 것을 목표로 한다.
이 Task의 한계:
일관된 task 정의가 부족 approach들마다 다양한 목표로 인해 evaluation protocol이 imcompatible하다.
Scalability of contemporary approaches
따라서 unsupervised object discovery와 같은 task의 real-world requirements를 보다 밀접하게 반영하는 standardized protocol(datasets and metrics)을 정의할 필요가 있다.
→ 이를 위해 본 논문은 대규모 벤치마크와 real-world complexities를 처리할 수 있는 scalable never-ending discovery approach를 제안한다.
본 논문에서 우리는 memory process로부터 영감을 받은 continuous learning approach를 개발하기 위해 memory가 어떻게 사용될 수 있는지 조사한다.
Contribution
3. Overview
전체적인 구조는 3개의 main module인 Encoding, Storage, Retrieval로 구성되어 있다.
Encoding : Region Proposal Network(RPL)로 candidate region과 그에 해당하는 feature를 학습한다.
Storage: dual memory 즉, 두 메모리 블럭으로 구성되어 있는데 하나는 Semantic memory, 하나는 Working memory이다.
Retrieval : region이 semantic memory에 속하는지, working memory에 속하는지 결정한다.
4. Framework Details
세 가지 모듈 Encoding, Storage, Retrieval 각각을 좀 더 자세히 설명하고, 어떻게 상호작용하는지 살펴보고자 한다.
Encoding
Storage
Storage module은 두 메모리 블럭(Semantic memory M_s, Working memory M_w)을 포함한다.
Storage Slots
본 연구에서는 slot representation에 대한 두 가지 chioce인 1) feature centroids 2) classifier에 대해 탐구하며, 각각의 speed/accuracy trade-off가 다르다.
feature → Slot Assosiation 을 판단하는 두 가지 방법 : 1. Cosine similarity 2. LDA Classifier
1. Centroid representation
2. Classifier representation
각 slot에 대해 LDA classifier를 학습한다.
더 구체적으로는, instance를 slot에 associating 하는 문제를 slot vs background 문제로 제시한다.
LDA classifier는 closed form solution w,b로 구성된 linear classifier이다.
여기서 µ^+는 slot에 있는 모든 instance의 평균이다. µ^-는 background class의 평균, π^+/π^-는 positive/background 각각의 샘플 수를 의미한다.
background class staticstics는 데이터셋의 모든 이미지에서 box에 대한 online update formula를 사용해서 offline에서 효율적으로 추정할 수 있다. (유도는 supplementary에 있음.)
결론적으로, classifier score(w^T f + b)로 instance feature이 slot에 속할지를 평가한다. 이러한 closed-form solution의 이점은, classifier를 새로운 instance로 업데이트할려면 π^+만 업데이트 하면 된다는 것이다.
Retrieval
Process를 차례대로 살펴보면,![image](https://user-images.githubusercontent.com/67910856/232279903-a8dcf0d3-3ea5-4b73-beaa-1a070a3b6644.png)
Region이 주어지면, known(previously discovered) objects에 대한 semantic memory M_s를 호출해서 new region이 known class에 해당하는지 여부를 결정한다. 이 때 M_s slot과의 association은 classifier score를 사용해서 평가된다.
Q. Semantic Memory 중에서 known 인가 아닌가?
known object와 일치하지 않으면? 해당 region에 잠재적으로 새로운 object가 포함되어 있음을 의미할 수 있으므로 Working memory 호출한다. 이 때 region’s feature 와 M_w의 모든 slot의 centroid 사이의 cosine similarity에 의해 계산된다.
Q. Working Memory 중에서도 known 인가 아가?
Memory Consolidation
진행 방식을 살펴보면,
M_s의 slot은 본질적으로 online learned cluster이기 때문에 종종 fragmented cluster가 있다. (cluster에 하나만 할당되는 경우)
따라서 동일한 카테고리에 대한 여러 cluster를 병합하기 위해 graph clustering problem으로 iterative merge step을 수행한다.
하지만 이 방식을 적용할 시 fregment는 덜하지만, merge 후 결과는 일관성이 없고 semantic drift로 이어질 수 있다. (ex. 소화기가 마치 병 모양처럼 생겨서 둘이 다른 object임에도 하나로 merge 됨.)
따라서, Ms에 통합된 slot이 일관성을 갖도록 하기 위해, 우리는 classifier를 활성화하지 않는 slot 모든 샘플(예: wTx + b < 0)을 슬롯에서 제거하는 final refine step 을 수행한다.
Memory Consolidation 후에 M_w는 original state(null)로 reinitialized 되고 M_s의 slot의 수가 많아지게 된다.
Discovery Set
이렇게함으로써 정확하고 다양한 샘플을 찾을 수 있을 것 같지만 첫 번째 셋 D1에서 error mode를 detect 하지는 못한다.
→ 따라서 D1으로 M_s를 업데이트 하고 나서 D1, D2를 swap하고 프로세스를 동일하게 진행한다.
5. Experimental Setup
5.1 Benchmark Datasets: 2가지로 설정
1) known set : Pascal VOC 2007
2) Real-world dataset: COCO
(Pre training에는 ImageNet을 썼지만 60개의 unknown class와 어떠한 유사 class도 학습에 사용하지 않았음)
Justification and Discussion
실험을 어떻게 셋팅했는지 자세히 살펴보면,
Localization focus
Unlabeled unknowns: 사실 60개의 unknown objects보다 많이 커버할 수 있어 하는데, label 부족으로 인해 일부는 quantitative performance만 평가할 수 있다.
Pretraininig Dataset
이미지넷 1000개의 class로 pretrain 할 때 unknown class와 overlap되지 않도록 60개의 novel COCO dataset과 유사한 68개의 class를 지웠다. (이를 ImageNet^-로 부르겠다) backbone network/known detector는 Faster-RCNN을 썼다.
5.2. Evaluation Metrics
Co-localization/Recall Metrics
기존 approach들은 concept discovery를 위해 아래 3가지 metric을 썼다.
위 Metric들이 우리의 벤치마크에 적잘하지 않은 이유
Discovery/Pattern-mining Metrics
Details
여기서 c는 COCO의 모든 class 수를 의미한다. 마냥 cluster가 많다고 좋은 성능을 내지 못하게 분모를 둔다.
즉, Cluster의 sample이 어떠한 class로 분류되고 IoU>threshold를 넘으면 그 class에 할당된다. coverage는 커버되는 ground truth box의 비율로 정의한다.
Oracle Detection Metric
COCO-minival로도 평가한다.
다수결 투표 기반으로 각 cluster에 class label을 할당하기 위해 ground truth annotation 형태로 ‘oracle’의 availability를 가정한다. class assignment에 대해 서로 다른 IoU threshold를 사용한다. (0.2/0.5)
Detector를 훈련한 후 모든 class에 대해 reject된 bounding box는 모두 배경으로 처리된다.
제안하는 방법론은 bounding box regression을 수행하지 않는다는 장점도 있다.
Q. Bounding box regression 이란?
Selective search(ex. NMS)를 통해 찾은 박스 위치는 정확하지 않기 때문에 Predicted box와 ground truth box와의 차이를 줄여주는 과정이다.
즉, 성 능을 끌어올리기 위해서 이 박스 위치를 교정하기 위해 predicted box가 ground truth box와 유사하도록 학습한다.
6. Results and Analysis
6.2. Object Discovery Results
Large-scale Quantitative Evaluation![image](https://user-images.githubusercontent.com/67910856/232283607-5707788d-ae53-489f-8ba7-80892360a93b.png)
Smaller-scale Quantitative Evaluation![image](https://user-images.githubusercontent.com/67910856/232283615-0d2b3fff-0bea-452f-9913-71bf31c15722.png)
OSD와 비교하기 위해 COCO 2.5k 이미지에서 실행되도록 코드를 수정했다.
CorLoc , DetRate에서는 OSD보다 높지만 CorRet에선 OSD이 더 높다.
→ 위 세 개 metric 중 어느 것도 object discovery를 적절하게 평가하지 못함
6.3. Object Detection Results
fig6은 0.5 IoU에 대해 per-class AP를 보여준다.
신호등에 대해 최저(0.08%), 곰에 대해 최대(~17.38%) mAP를 달성했다.
6.4 Ablation Analysis
Memory Consolidation Componet Analysis
Recall Analysis
ImageNet 에서 overlap class 68개를 train에서 빼고 학습했을 때가 오히려 recall 성능이 더 좋았다는 점이 신기했다.
Conclusion and Future Work
( -> assosiation을 대체할 수 있는 더 효율적인 supervised recognition을 말하는 것 같다. 당장에는 zero-shot learning처럼 semantic information을 어느정도 supervision으로 줘서 학습하는 것 밖에 생각나지 않음...! )