定義
開放詞匯目標檢測(Open-Vocabulary Object Detection, OVOD)是一種目標檢測任務,旨在檢測和識別那些未在訓練集中明確標注的物體類別。傳統的目標檢測模型通常只能識別有限數量的預定義類別,而OVOD模型則具有識別“開放詞匯”類別的能力,即在測試時可以識別和定位那些未曾在訓練集中見過的類別。與開放詞匯目標檢測相對應的另一個重要概念是開集目標檢測(Open-Set Object Detection, OSOD)。OSOD的目標是檢測那些未在訓練集中出現的未知類別,并將其標記為“未知”。與OVOD的不同之處在于,OSOD并不試圖去識別這些未知類別是什么,而是關注于準確地檢測它們的存在。本質上,開放詞匯目標檢測任務(Open-Vocabulary Object Detection)與零樣本目標檢測(Zero Shot Object Detection)、弱監督目標檢測(Weakly supervised Object Detection)非常類似,核心思想都是在可見類(base class)的數據上進行訓練,然后完成對不可見類(unseen/ target)數據的識別和檢測。
參考鏈接:
https://blog.csdn.net/mieshizhishou/article/details/141216656
https://zhuanlan.zhihu.com/p/610639148
相關工作
OVR-CNN
2021年發表在CVPR的"open-vocabulary object detection using captions"是開放詞匯對象檢測領域第一篇重要工作,利用大規模image-caption數據改善對未知類的檢測能力。本文提出了新的目標檢測范式,用 image-caption 數據預訓練視覺編碼器。
論文:https://arxiv.org/pdf/2011.10678
源碼:https://github.com/alirezazareian/ovr-cnn
解讀:https://blog.csdn.net/jiaoyangwm/article/details/132000797
CLIP
于2021年由OpenAI發布。CLIP是一種圖文多模態預訓練神經網絡。
基于視覺模型圖像編碼&基于nlp模型文本編碼&相似度對比學習
論文:https://arxiv.org/pdf/2103.00020
源碼:https://github.com/openai/CLIP
解讀:https://blog.csdn.net/weixin_38252409/article/details/133828294
應用:圖像分類、文本到圖像檢索、圖像生成(結合GAN)、視覺問答(結合nlp)
ViLD
于2021 年由 Google Research 的Xiuye Gu等人提出。
以類似于Mask R-CNN 的兩階段檢測器作為基礎框架,第一階段通過骨干網絡(backbone)和區域提議網絡(RPN)生成候選區域提議(proposals),第二階段對這些提議進行分類和邊界框回歸,以確定目標的類別和位置。使用預訓練的 CLIP 模型中的圖像編碼器和文本編碼器,圖像特征&文本特征&匹配關系等多模態信息融合共同優化損失函數。
論文:https://arxiv.org/pdf/2104.13921
源碼:https://github.com/tensorflow/tpu/tree/master/models/official/detection/projects/vild
解讀:https://hub.baai.ac.cn/view/12691
GLIP
于2021 年 12 月 7 日由微軟團隊首次發布提出。CLIP適用于分類任務,而GLIP嘗試將這一技術應用于目標檢測等復雜任務。視覺編碼器&文本編碼器&詞-區域對齊&邊界框回歸
論文:https://arxiv.org/pdf/2112.03857.pdf
源碼:https://github.com/microsoft/GLIP
解讀:https://zhuanlan.zhihu.com/p/690342065
應用:開放詞匯物體檢測、視覺問答(VQA)、圖像描述生成與檢索
RegionCLIP
于2021年12月由微軟團隊提出。
基于預訓練好的 CLIP 模型構建了一個 R-CNN 形式的目標檢測器。
論文:https://arxiv.org/pdf/2112.09106.pdf
源碼:https://github.com/microsoft/RegionCLIP
解讀:https://blog.csdn.net/jiaoyangwm/article/details/131960703
Detic
于2022年1月由 Meta AI 和德克薩斯大學奧斯汀分校提出。
本質:使用圖像分類的數據集來對目標檢測器的分類頭進行訓練。
為了使得分類的分支具備檢測出novel class的能力,基于image-supervised loss 的Detic,其將分類與定位解耦成兩個問題,在分類時不再那么依賴標注數據。同樣是兩階段范式。
論文:https://arxiv.org/pdf/2201.02605v3
源碼:https://github.com/facebookresearch/Detic
解讀:https://developer.aliyun.com/article/1277234
OWLViT
于2022 年由 Google Research 的 Matthias Minderer 等人提出。
OWL-ViT同樣是以CLIP為多模態主干,創新之處在于其用于目標檢測的微調階段。在微調階段,采用每個輸出 token 的線性投影來獲取每個對象的圖像嵌入,而不是 CLIP 中使用的 token 池化和最終投影層。這些嵌入隨后用于分類,而邊界框坐標則是通過一個小型的 MLP 從 token 表示中推導出來的。支持基于圖像嵌入做查詢,允許檢測難以通過文本描述的圖像。
現在已經更新OWLViTv2。
論文:https://arxiv.org/pdf/2205.06230
源碼:https://github.com/google-research/scenic/tree/main/scenic/projects/owl_vit
解讀:https://zhuanlan.zhihu.com/p/613249723
VLDet
VLDet網絡包括三個部分:視覺目標檢測器,文本編碼器和區域-詞語之間的對齊。本文選擇了Faster R-CNN作為目標檢測模型。 目標檢測的第一階段與Faster R-CNN相同,通過RPN預測前景目標。為了適應開放詞匯的設置,VLDet在兩個方面修改了檢測器的第二階段:(1)使用所有類共享的定位分支,定位分支預測邊界框而不考慮它們的類別。 (2) 使用文本特征替換可訓練分類器權重,將檢測器轉換為開放詞匯式檢測器。 本文使用固定的預訓練語言模型CLIP作為文本編碼器。
論文:https://arxiv.org/pdf/2211.14843
源碼:https://github.com/clin1223/VLDet
解讀:https://blog.csdn.net/hanseywho/article/details/129143747
BARON
于2023年由Wu Size等人提出。首次提出了對齊 bag of regions 的 embedding,之前的方法都是對齊單個 region 的 embedding。基于 Faster R-CNN,為了讓 Faster RNN 能夠檢測出任意詞匯概念的目標,作者使用了一個線性映射層代替原本的分類器,將區域特征映射為偽詞。
論文:https://arxiv.org/pdf/2302.13996
源碼:https://github.com/wusize/ovdet
解讀:https://blog.csdn.net/wzk4869/article/details/129713529
視覺-DINO
于2021年由 Facebook AI Research提出。
DINO學生網絡和教師網絡,兩者具有相同的架構但參數不同,輸入不同的圖像視圖,學生網絡的輸出通過與教師網絡輸出計算交叉熵損失來進行學習,教師網絡使用學生網絡的指數移動平均(EMA)進行更新。使用對比學習方法及全局自注意力機制,放棄負采樣對的做法。
自監督的ViT可以呈現圖像的語義分割信息,且在圖像類間有良好的區分度。通過一個KNN就可以達到很高的分類準確率,所以用于算圖像相似度、以圖搜圖的話應該是個好的選擇。
論文:https://arxiv.org/pdf/2104.14294
代碼:https://github.com/facebookresearch/dino
解讀:https://zhuanlan.zhihu.com/p/635104575
視覺-DINOv2
于2023年由Meta AI Research提出。增強版DINO、大規模數據集LVD-142M
DINOv2包含兩個完全相同的 ResNet 網絡,其中一個作為學生網絡,另一個作為教師網絡,輸入不同的圖像,輸出通過動量更新機制交互學習,這種結構有助于更好地學習圖像的局部特征與全局特征。采用FlashAttention 機制,在同一前向傳遞中全局裁剪和局部裁剪,跳過了丟棄殘差的計算。訓練時采用全分片數據并行(FSDP)。
論文:https://arxiv.org/pdf/2304.07193
代碼:https://github.com/facebookresearch/dinov2
解讀:https://blog.csdn.net/CVHub/article/details/130304078
GroundingDINO
于2023年由清華大學、IDEA 研究院聯合提出。GLIP是基于傳統的one-stage detector結構,而Grounding DINO是一個雙encoder單decoder結構,它包含了1個image backbone(Swin Transformer)用于提取多尺度圖像特征,1個text backbone用于提取文本特征,1個feature enhancer用于融合圖像和文本特征,1個language-guide query selection模塊用于query初始化,1個cross-modality decoder用于bbox預測。
論文:https://arxiv.org/pdf/2303.05499
源碼:https://github.com/IDEA-Research/GroundingDINO
解讀:https://zhuanlan.zhihu.com/p/627646794
OV-DINO
于2024年由中山大學和美團聯合提出。使用Swin Transformer作為圖像編碼器和BERT-base作為文本編碼器的模型架構。統一的數據整合(UniDI)管道實現端到端訓練,語言感知選擇性融合(LASF)模塊來優化跨模態的語義對齊。
論文:https://arxiv.org/pdf/2407.07844
源碼:https://github.com/wanghao9610/OV-DINO
解讀:https://blog.csdn.net/amusi1994/article/details/140836256
YOLO-World
于2024年由騰訊 AI 實驗室提出。基于yolov8開發,采用CLIP預訓練的Transformer文本編碼器提取相應的文本嵌入,通過視覺語言建模和大規模數據集的預訓練,提出一種新的可重新參數化的視覺-語言路徑聚合網絡(RepVL-PAN)和區域-文本對比損失,以促進視覺和語言信息之間的交互,增強了 YOLO 的開放詞匯檢測功能。
論文:https://arxiv.org/pdf/2401.17270v3
源碼:https://github.com/AILAB-CVC/YOLO-World
解讀:https://blog.csdn.net/weixin_47151388/article/details/137424184
其他最新工作2024-CVPR-Open-Vocabulary:
https://blog.csdn.net/m0_74163093/article/details/143247918
總結
綜上,大多數工作均基于CLIP預訓練的圖像編碼器和文本編碼器。GlIP為解決目標檢測任務提供了先例,后續很多工作常與目前較為廣泛使用的目標檢測網絡結構相結合,從而構建新的開放詞匯目標檢測器。如ViLD基于Mask R-CNN、RegionCLIP基于R-CNN、VLDet和BARON基于Faster R-CNN。更具有創新性的工作是Detic,提出了使用圖像分類的數據集來對目標檢測器的分類頭進行訓練。OWL-ViT在目標檢測微調階段做創新,最有意思的是其支持基于圖像嵌入做查詢,允許檢測難以通過文本描述的圖像。這部分優勢可能會使這個項目更能應用到實際任務中。另外的基于DINO的工作中,GroundingDINO更偏向于開集目標檢測(OSOD)任務。與GLIP和G-DINO等其他方法相比,OV-DINO的預測更加精確,并且能夠檢測到標簽中未標記的額外對象。而YOLO-World則主要是對yolov8的改進,目的在于為yolo架構賦予開放詞匯檢測能力。從開放詞匯檢測方案的發展歷程上來看,YOLO-World的目標檢測部分依然是單階段范式的目標檢測器,雖然效率更高速度更快,但一般不如兩階段范式的目標檢測模型精度高。
開放詞匯目標檢測的核心思想是利用視覺-語言聯合建模方法,將視覺特征和語言特征進行關聯,從而實現對未見物體類別的檢測。一般地,這類方法的關鍵組成有:
1.視覺特征提取(包括大規模圖-文數據預訓練、知識蒸餾、生成偽標簽等)
2.文本嵌入(基于transformer)
3.視覺-語言匹配(基于referring 或grounding)
4.多模態融合
至于為何能做到開放詞匯檢測,關鍵在于利用了大規模預訓練語言模型和視覺-語言聯合表示學習。語言模型能夠理解未見詞語的語義,通過將目標類別名稱編碼為文本向量,然后與圖像中的物體特征向量進行相似度計算。比如,對于一個新的類別 “獨角獸”,語言模型能夠理解這個詞的語義,并且幫助檢測器在圖像中尋找具有相似語義特征的物體。