이 논문은 최근 가장 핫한 연구주제인 NLP+CV의 주요 논문이다.
chat GPT가 성공하고 나서 이 NLP 모델을
computer vision에 적용하려는 것으로 보인다.
CVPR' 21
https://arxiv.org/abs/2011.10678
Open-Vocabulary Object Detection Using Captions
Despite the remarkable accuracy of deep neural networks in object detection, they are costly to train and scale due to supervision requirements. Particularly, learning more object categories typically requires proportionally more bounding box annotations.
arxiv.org
Abstract
저자들은 Object Detection 문제의 새로운 공식을 제시한다.
이것을 Open-vocabulary object detection이라고 부르는데
이것은 weakly supervised / zero-shot 보다 더 범용적, 현실적, 효과적인 방법이다.
저자들은 object category의 제한적인 집합에 대한 bounding box annotations와
상당히 저비용으로 만들어진 다양한 object를 커버하는 image-caption 쌍을 사용해서다
object detector를 학습시키는 새로운 방법을 제안한다.
이 방법은 training 되지 않은 obect를 detect하고 localize할 수 있다.
그것도 zero shot보다 상당히 높은 정확도로.
마찬가지로 학습한 object도 잘 찾는데 일반적인 supervsied 모델보다 정확도가 높다.
1. Introduction
저자들은 Open-Vocabulary object Detection (OVD)로 불리는
two-stage framework를 설계하여사람의 능력을 모방한다.
먼저 concept의 unbounded vocabulary를 얻기 위해
image-caption 쌍의 말뭉치(corpus)를 사용한다.
이것은 얼마나 사람이 자연 감독(natural supervsion)으로 학습하고
몇개의 카테고리 annotation만으로 object detection을 학습하는 지식을 사용하는지 시뮬레이션 한다.
이것은 오직 몇개의 카테고리만 높은 비용이 필요하고
나머지는 caption으로 학습되는데 이 caption은 web에서 쉽게 수집할 수 있다.
위 그림은 OVD framework를 보여준다.
구체적으로, 저자들은 한 이미지를 가지는 모델을 학습시키고
주어진 target vocabulary $V_{t}$에서 어느 object든 찾아내는 것이다.
모델을 학습시키기 위해 저자들은 $V_{C}$로 표기되는
다양한 단어를 포함하는 image-caption dataset뿐만 아니라
base class $V_{B}$로부터 localized object annotation이 있는 smaller dataset을 사용한다.
주목할 점은 target class는 학습에서 알 수 없지만
이것은 전체(실세계) language vocabulary $V_{\Omega }$의 부분집합이다.
즉 language vocabulary는 세상 모든 clsss를 가지고 있다고 가정한다.
단 학습에 쓰이는 vocabulary $V_{C} \subset V_{\Omega }$다.
Open-Vocabulary, zero-shot, weakly supervied와의 차이는 다음과 같다.
저자들은 Faster R-CNN에 기반한 방법을 제안한다.
이것은 처음으로 image-caption dataset으로 pretrain되고
bounding box dataset으로 fine-tunning하는 방법이다.
특히 pretrain동안 학습된 vocabulary를 유지하면 annotation없는 obejct를 감지할 수 있다.
3. Method
위 그림은 제안된 모델의 구조를 나타낸다.
학습은 base class $V_{B}$ 테스트는 $V_{T}$에서 한다.
저자들의 key idea는 작은 수의 base보다 더 완전한 semantic space를 학습하기 위해
큰 vocabulary $V_{C}$으로 visual backbone을 pretrain하는 것이다.
계속 언급되지만 이 방법은 Open Vocabulary Object Detection이라고 한다.
caption을 통해 학습된 object의 vocabulary는 명백한 한계가 없다.
하지만 현실적으로 저자들의 vocabulary는 정확한 "open"은 아니다.
이것은 pretrained word embedding에 한계가 있기 때문이다.
그러나 word embedding은 통상적으로 Wikipeida같은 web에서 가져오므로 매우 큰 건 사실이다.
3.1. Learning a visual-semantric space
Object detector는 전형적으로 ImageNet classification에 pretrained CNN backbone을 사용한다.
pretraining 결과는 object recognition에 최적화될 수 있다.
zero-shot 방법은 고정된 embedding matrix에 대한 classifier weight를 교체하면서
visual feature에서 pretrained bass class embedding으로 선형 projection하는 것을 학습한다.
네트워크는 embedding space의 지속성을 가정함으로써
target class에 일반화된다고 예측된다.
하지만, 이 접근법은 오버피팅 되기 쉽다.
왜냐하면 적은 수의 embedding space에 projecting하는 것은 under-determined problem이기 때문이다.
이 문제를 해결하기 위해,
저자들은 CNN backbone 사이에 있는 Vision to Language (V2L) projection layer를 학습한다.
저자들은 image-caption dataset을 사용한다.
왜냐하면 caption은 풍부한 vocabulary와 object 이름을 포함한 단어의 의미를 학습하는데
사용될 수 있는 semantic structure을 포함하고 있기 때문이다.
이를 위해 저자들은 최근 발전한 visual grounding과 vision language transformer를 이용한다.
저자들은 main (grounding) task 뿐만 아니라 CNN backbone과
V2L layer를 학습하기 위한 보조 self-supervision task의 집합을 사용한다.
저자들의 pretraining 구조는 PixelBERT와 닮았다.
저자들의 visual backbone은 ResNet-50을 사용한다.
이것은 $w \times h$ 이미지 $I$를 input으로 쓰고, $w / 32 \times h / 32$ 영역의 격자로 추출한다.
여기서 각 영역 $i$는 $d_{v}$-demensional feature vector $r_{i}^{I}$로 표현된다.
또 language backbone은 pretrained BERT를 사용한다.
이것은 토큰화된 caption $C$를 입력으로 쓰고,
각 토큰 $j$에서 $d_{l}$-demensional word embedding $e_{j}^{C}$를 추출하고,
position embedding과 함께 증대(augment)하고,
$d_{l}$-demensional contextualized token embedding $f_{j}^{C}$를 추출하기 위해
각 multi-head self-attention의 layer를 적용한다.
나아가 저자들은 각 visual region representation $r_{i}^{I}$를
language embedding space $e_{i}^{I}$로 mapping하는 선형 V2L layer를 창안한다.
image region $\left\{ e_{i}^{I}\right\}$와 caption token $\left\{ f_{j}^{C}\right\}$의 최종 embedding은 융합되고
multimodal transformer에 입력된다.
이것은 BERT 구조와 비슷하지만, attention이 각 modality뿐만 아니라 두 modality를 가로지른다.
multimodal transformer의 출력은 각 region과 word에 대해 $\left\{ m_{i}^{I}\right\}$와 $\left\{ m_{j}^{C}\right\}$다.
저자들은 image-caption 쌍의 batch로부터 unimodal, multimodal transformer를 추출했고
main objective function 뿐만 아니라 ResNet, V2L layer를 학습하기 위한 다양한 보조 objective를 정의한다.
저자의 main objective function은 visual grounding이다.
다시 말해 각 caption $e_{j}^{C}$으로부터 word embedding은 image region $e_{i}^{I}$와 가까워야 한다.
word와 region의 대응은 주어 지지 않기 때문에 저자들은 weakly supervised grounding technique를 사용한다.
구체적으로, 저자들은 각 image-caption 쌍에 대해 global grounding score을 정의한다.
이것은 word-region 쌍에 대한 local grounding score의 가중 평균이다.
$\left< .,. \right>_{L}$는 dot product다.
$n_{I}$와 $n_{C}$는 각각 토큰의 수고 $a_{i, j}$는 다음과 같다.
image-caption 쌍에 대해서는 global grounding score가 최대가 되야 하고
반대로 non-matching 쌍에 대해서는 최소가 되야 한다.
따라서, 저자들은 batch에 다른 이미지를 negative example로 사용하고
비슷하게 다른 caption도 negative example로 사용한다.
따라서 저자는 두 grounding objective function을 다음과 같이 정의한다.
$B_{I}$와 $B_{C}$는 이미지와 caption 배치다.
grounding objective 결과를 최적화 하는것은
image region을 제한된 vocabulary 한계 없이 가장 잘 설명되는 단어로 매핑할 수 있는
visual backbone과 V2L layer를 얻는 결과를 가져온다.
이때 indirect supervision은 local optima가 될 수 있다.
그래서 저자들은 PixelBERT처럼 masked language modeling을 도입한다.
특히, 랜덤으로 각 caption $C$에 있는 단어 $j$를 [MASK]토큰으로 교체하고
make된 단어를 추정하는 masked 토큰 $m_{j}^{C}$의 multimodal embedding을 사용하는 시도를 한다.
이를 위해, visual backbone과 V2L layer는 caption에 서술된 모든 object를 추출하도록 학습되야 하고
multimodal transformer는 무슨 단어가 caption을 완전하게 만드는지 결정하기 위해
BERT의 language understanding ability를 사용하기 위해 학습되야 한다.
이에 따라 저자들은 $m_{j}^{C}$에 fully connected layer를 적용하고
dot product를 사용해서 이것의 output과 모든 word embedding을 비교하고
각 word의 probability 점수를 구하기 위해 softmax를 적용한다.
저자들은 masked language modeling $L_{MLM}$을 예측된 분포와
실제 mask된 단어를 비교하는 cross-entropy loss로 정의한다.
PixelBERT는 또한 image-text matching loss $L_{ITM}$을 이용하나,
이것은 vision-language transformer에서 흔하게 사용되는 masked visual modeling을 사용하지 않는다.
저자들은 visual backbone, V2L layer, multimedia transformer을 다음 loss를 통해 학습한다.
language backbone (BERT)와 이것의 word embedding은 실험할 때 고정된다.
3.2. Learning open-vocabulary detection
ResNet visual backbone과 V2L layer가 학습된 뒤,
이것을 Faster R-CNN을 초기화 하면서 object detection task로 transfer한다.
저자들은 주어진 이미지로부터 feature map을 추출하기 위해
모델 stem과 retrained ResNet의 처음 3 blocks을 사용한다.
다음, region proposal entwork는 objectness score과 bounding box coordinate를 예측하기 위해
feature map에 anchor boxes를 넘긴다.
(잠재 object에 대한 feature map을 얻기 위해 non-max suppression 과 region-of-interest pooling 사용)
마지막으로, pretrained ResNet의 4번째 block은 각 proposal box에 대한
최종 feature vector $r_{i}^{I}$를 얻기 위해 각 proposal에 적용된다.
그리고 이것은 전형적으로 supervised 세팅에 따라 classifier에 입력된다.
그럼에도 불구하고, zero-shot setting에서 linear layer는
각 proposal을 word embedding space $e_{i}^{I}$에 매핑하기 위해
visual feature $r_{i}^{I}에 적용된다.
그래서 이것들은 training, testing 페이즈에서 base, target class embedding을 비교될 수 있다.
모든 zero-shot detection에서 앞서 언급한 linear layer는 base class에 있는 scratch로부터 학습된다.
이와달리 저자들은 pretraining 페이즈에서 훨씬 방대한 semantic space로 이미 V2L이 학습완료됐다.
pretraining 페이즈의 추된 자별점은 격자구조 feature map대신
$r_{i}^{I}$가 임의의 형태의 bounding box 표현한다는 것이다.
그러나 RoI-Align의 선형 특성 때문에 $r_{i}^{I}$는 pretraining과 같은 공간에 있다.
약간의 domain shift에 대해서는 ResNet backbone을 fine-tuning을 함으로써 없앨 수 있다.
training에서 저자들은 classification score를 계산하기 위해 $e_{i}^{I}$를 각 base class $k$와 비교한다.
$e_{k}^{V}$는 word $k$의 pretrained embedding이고
$V_{B}$는 base class의 집합이고
$\left< .,. \right>_{L}$는 dot product다.
분모에 있는 1 + 는 background class는 고전된 all-zero embedding을 가지기 때문이고,
이것은 dot product를 0으로 만들고 지수는 1로 만든다. ($e^{0}=1$이라는 뜻인듯)
또, 저자들은 다음과 같은 사실을 알아냈다.
고정된 all-zero background embedding은 학습가능한 1보다 더 낫고
그 이유는 이것이 target class를 포함할 수도 있는
non-foreground bounding box를
embedding space의 임의 영역으로 push하지 않기 때문이다.
classification head에서 앞서 언급한 요소를 제외하고는 Faster R-CNN과 동일하다.
background proposal의 classfication loss에 $\alpha$를 곱하면 성능이 향상된다고 한다.
ResNet 파라미터는 fine-tunning되고 pregion proposal network와
regression head는 scratch로부터 학습된다.
overfitting되기 쉬운 pretrained V2L layer와 word embedding으로 구성된
classifier head는 완전히 고정된다.
testing동안, 식 (6)의 word embedding을
임의의 target class $V_{T}$로 교체할 수 있다는 것을 제외하고
Faster R-CNN 비슷하다.
주석이 있는 target set에 고정되어 평가하는 동안, 모델은 해당 class에 대해 튜닝되지 않는다
따라서 전체 vocabulary $V_{\Omega}$에 deploy될 수 있다.
4. Experiments
저자들은 target class에 대한 모델 정확도를 보여주는데,
supervised 방법과 비교하여 base에 대해 손실이 없다.
또 zero-shot, weakly supervised와 비교하여 상당한 양적 개선을 보여준다.
4.1. Data and metrics
데이터는 COCO데이터셋을 쓴다.
데이터는 "Zero-Shot Object Detection"에 따라 base와 target class를 분리했다.
training data에 label없는 class는 bounding box를 지운다.
이때 어떤 bounding box도 없는 이미지는 삭제한다.
따라서 남은 trinaing data 수는 107,761장이다.
caption은 COCO Caption을 쓴다.
IoU 0.5의 mAP를쓴다.
먼저 base class에 mAP 측정하고, classifier head를 target class embedding으로 바꾸고 평가한다.
또 classifer head를 union of base and target class embedding으로 바꾼다.
4.2. Implementation details
저자들은 maskrcnn-benchmark code base를 사용했고,
R_50_C4 configuration을 적용했다.
또 pretrained, frozen BERT-Base를 laguage backbone으로 사용했다.
Multimodal transformer로는 BERT-Base와 같은 구조를 사용하나,
오직 6 layers와 각 layer의 8 attention head를 사용하고 이것을 scratch로부터 학습한다.
pretraining을 위한 base learning rate은 0.01이고 0.001까지 떨어뜨리고 충분한 학습이후 0.0001로 한다.
batch size는 64고 8개의 V-100을 10시간동안 사용했다고 한다.
또 Pixel-BERT처럼 subsmaple visual region에 pretraining할 때 spatial dropout를 사용한다.
masked language modeling에 대해서는
likelihood를 0.135로해서 각 단어를 mask한다.
pretraining에서 gradient clipping은 5.0다.
downstream training에서, 저자들은 classifier weight를 초기화하고 고정하기 위해
base class의 BERT embedding을 사용한다.
다시말해 pretrained input embedding을 사용한다는 것이다.
(BERT transformer의 출력은 사용하지 않는다.)
background wight는 $\alpha = 0.2$로 하는데,
V2L layer에서는 $\alpha = 0.0$이다.
fine-tunning은 ResNet의 3, 4번째 블록만 진행한다.
learning rate는 0.005에서 0.0005까지 떨어뜨리고,
거의 수렴했을 때는 0.00005로한다.
학습할 때 batch size는 8이고 8개의 V-100을 18시간동안 사용했다.
V-100 8대면 transformer 범벅 모델도 24시간 내에 끝난다..
연구에는 역시 자본이 최고다.
4.3. Baselines
공정한 비교를 위한 동일한 training setting이 없기 때문에,
똑같진 않지만 비슷한 task의 baseline과 비교한다.
먼저 ZSD라 불리는 sero-shot detection 방식과 비교한다.
중요한 점은 저자들의 접근방식으 extra data (caption)을 사용하는데,
이는 ZSD baseline에서는 사용하지 않는다는 것이고,
이것은 target category의 예시를 포함할수도 있다.
또 WSD라 불리는 weakly supervised detection 방식과 비교하는데,
정확한 매칭이나 classifier를 통해 caption을 image-level label로 바꾼다.
WSD 방법은 base class에 대한 bounding box를 사용하지 않는다.
이것은 사용가능한 annotation이 없는 상황에서 장점이 되나,
이것은 bounding box를 사용하는 저자의 방법과 비교하여 안좋은 localization 성능을 기록한다.
따라서 저자들은 MSD라 불리는 weak와 full supervision을 섞는
transfer learning 방식과 비교한다.
WSD와 MSD 방식은 image-level label이 필요하기 때문에,
target class는 pretraining동안 미리 알고 있어야 하고 model은 해당 class에 적응(adapt)한다.
대조적으로, 저자의 방법과 대부분 ZSE 방법은 각 정보에 acces할 수 없고,
novel class에 대해 retraining없이 적용될 수 있다.
4.4. Results
WSD, MSD, ZSD에서 가장 좋은 성능을 달성했다.
위 Ablation에 따르면, pretraining을 안하면 성능이 매우 떨어진다.
그리고 grounding 또한 pretraining의 main요소라는것을 확인할 수 있다.
transferring ResNet weight만으로는 knowledge transfer의 효과가 적다.
또 model 초기화를 ImageNet weight를 쓰지 않고 랜덤으로 적용하면
모델의 성능이 떨어진다는것을 확인했다.
4.5. Visualization and discussion
저자들은 COCO로 학습된 모델로, V2L layer $e_{i}^{I}$ 다음
모든 bounding box의 embedding을 T-SNE로 다음과 같이 출력하였다.
별모양은 class prototype이다.
ZSD baseline은 cluster 구성되긴 하나 prototype은 랜덤으로 위치하고 있다.
그러나, 저자들 모델은 cluster도 상대적으로 잘 정돈됐고 prototype도 적절하다.
5. Conclusion
저자들은 Open-Vocabulary Object Detection task를 제안했다.
이것은 object detection에 적용하고,
서로다른 2개의 supervision source를 사용하여 학습했다.
OVD에서, general-purpose와 open-vocabulary인 caption으로부터 recognition을 학습하고,
localization은 bounding box annotation으로부터 학습한다.
이 방법은 zero-shot, weakly supervisied와 비교하여 SOTA를 달성한다.
'Open Vocabulary > Object Detection' 카테고리의 다른 글
Learning to Detect and Segmentation for Open Vocabulary 리뷰 (0) | 2023.07.17 |
---|