Open Vocabulary Detection 開放世界目標(biāo)檢測競賽 2023獲勝團(tuán)隊方案分享
OVD技術(shù)簡介
目標(biāo)檢測是計算機(jī)視覺領(lǐng)域中的一項核心任務(wù),其主要目標(biāo)是讓計算機(jī)能夠自動識別圖片中目標(biāo)的類別,并準(zhǔn)確標(biāo)示每個目標(biāo)的位置。目前,主流的目標(biāo)檢測方法主要針對閉集目標(biāo)的開發(fā),即在任務(wù)開始之前需要對待檢測目標(biāo)進(jìn)行類別定義,并進(jìn)行人工數(shù)據(jù)標(biāo)注,通過有監(jiān)督模型的訓(xùn)練來實現(xiàn)目標(biāo)檢測。這種方法通常適用于待檢測目標(biāo)數(shù)量較少的情況,一般限定在幾十個類別以內(nèi)。然而,當(dāng)待檢測目標(biāo)的類別數(shù)量增加到幾千甚至萬級時,以上述方式進(jìn)行數(shù)據(jù)標(biāo)注已經(jīng)無法滿足需求。同時,已經(jīng)訓(xùn)練好的模型也無法應(yīng)對新出現(xiàn)的類別。當(dāng)新的類別出現(xiàn)時,需要手動進(jìn)行標(biāo)注并重新訓(xùn)練模型,整體效率較低。
開放詞集目標(biāo)檢測(Open Vocabulary Detection, OVD),亦即開放世界目標(biāo)檢測,提供了解決上述問題的新思路。借助于現(xiàn)有跨模態(tài)模型(CLIP[1]、ALIGN[2]、R2D2[3] 等)的泛化能力,OVD可以實現(xiàn)以下功能:1)對已定義類別的few shot檢測;2)對未定義類別的zero-shot檢測。OVD技術(shù)的出現(xiàn)吸引了計算機(jī)視覺研究者們的廣泛關(guān)注,首先,對于已定義類別的few shot檢測,OVD的強(qiáng)大泛化能力可以讓算法在僅有少量樣本的情況下,準(zhǔn)確地識別出新的目標(biāo)類別。其次,對于未定義類別的zero-shot檢測,OVD的能力更是令人驚嘆。通過學(xué)習(xí)各種物體的視覺特征和語義信息,OVD可以在沒有見過的類別中進(jìn)行目標(biāo)檢測,進(jìn)一步將語言大模型技術(shù)引入OVD,將會進(jìn)一步提升OVD對未知類別的檢測能力。OVD技術(shù)有望成為未來目標(biāo)檢測算法開發(fā)的新范式。
競賽介紹
OVD技術(shù)的研究在國內(nèi)尚處于起步階段,為了促進(jìn)國內(nèi)OVD技術(shù)的發(fā)展,并加強(qiáng)OVD技術(shù)的生態(tài)社區(qū)建設(shè),360人工智能研究院聯(lián)合中國圖象圖形學(xué)學(xué)會于ICIG2023大會上開設(shè)了Open Vocabulary Detection Contest - 開放世界目標(biāo)檢測2023競賽。大賽于4月12日啟動報名,報名期間吸引了來自新加坡南洋理工大學(xué)、清華大學(xué)、北京大學(xué)、香港大學(xué)、中國科學(xué)院自動化研究所紫東太初大模型研究中心、鵬城實驗室、華中科技大學(xué)、字節(jié)跳動、滴滴等知名大學(xué)與公司機(jī)構(gòu)共140支隊伍參加競賽。此次大賽所使用的賽題數(shù)據(jù)、競賽提交平臺與賽題設(shè)置均由360人工智能研究院提供支持。
賽題數(shù)據(jù)主要涵蓋了服裝、數(shù)碼產(chǎn)品等眾多商品類目,對于一件商品,均給出了它的圖片以及對應(yīng)的檢測框標(biāo)注信息作為訓(xùn)練數(shù)據(jù)。商品數(shù)據(jù)在互聯(lián)網(wǎng)搜索、推薦中具有重要價值,是非常貼近業(yè)務(wù)場景的實用數(shù)據(jù)。其次商品數(shù)據(jù)集的難度較大,同類別商品之間普遍存在一些細(xì)節(jié)差異,而這一點(diǎn)也限制了傳統(tǒng)目標(biāo)檢測技術(shù)的泛化能力,進(jìn)而體現(xiàn)出OVD技術(shù)的優(yōu)勢性。
賽題設(shè)置:參賽者運(yùn)用OVD相關(guān)的方法,對圖像中的商品目標(biāo)進(jìn)行檢測。對于一件商品,主辦方會給出它的圖片以及bbox作為訓(xùn)練數(shù)據(jù)。目標(biāo)類別有兩類:base類和novel類。類別均為中文商品詞組。base類的目標(biāo)提供少量已標(biāo)注的訓(xùn)練樣本,novel類的目標(biāo)則沒有訓(xùn)練樣本。評測分別在base類的測試集和novel類的測試集上進(jìn)行,評測指標(biāo)為novel和base類的mAP@50,競賽按照novel和base類別的整體mAP@50排序。
競賽共分為初賽與復(fù)賽兩個階段,由初賽到復(fù)賽,賽題難度逐步提升,考驗選手對開放世界目標(biāo)檢測賽題的熟悉程度與靈活應(yīng)變能力。比賽中,各位選手的方案追逐激烈,最終前三名團(tuán)隊的復(fù)賽分?jǐn)?shù)十分接近。經(jīng)過初賽與復(fù)賽的層層選拔,最終有6支隊伍脫穎而出,由來自南洋理工大學(xué)的吳思澤團(tuán)隊摘得桂冠。獲得二等獎的是來自華中科技大學(xué)的STAR團(tuán)隊與來自中國科學(xué)院自動化研究所紫東太初大模型研究中心的咱們組有名稱嗎團(tuán)隊,獲得三等獎的是來自北京大學(xué)的OVD團(tuán)隊、來自哈爾濱工業(yè)大學(xué)的wzmwzr團(tuán)隊與來自武漢郵電科學(xué)研究院的藍(lán)色閃團(tuán)隊。Open Vocabulary Detection Contest - 開放世界目標(biāo)檢測競賽的官網(wǎng)鏈接:開放世界目標(biāo)檢測競賽2023 (360cvgroup.github.io)
在各個競賽團(tuán)隊的積極參與、中國圖象圖形學(xué)學(xué)會與360人工智能研究院的大力支持下,Open Vocabulary Detection Contest - 開放世界目標(biāo)檢測競賽已經(jīng)正式結(jié)束,在征集各個競賽團(tuán)隊的許可后,我們將部分優(yōu)勝團(tuán)隊的技術(shù)方案匯總并公開分享,詳見本文下半部分。
[1] A. Radford, J. W. Kim, C. Hallacy, A. Ramesh, G. Goh, S. Agarwal, G. Sastry, A. Askell, P. Mishkin, J. Clark, et al. Learning transferable visual models from natural language supervision. In International Conference on Machine Learning, pages 8748–8763. PMLR, 2021.
[2] C. Jia, Y. Yang, Y. Xia, Y.-T. Chen, Z. Parekh, H. Pham, Q. V. Le, Y. Sung, Z. Li, and T. Duerig. Scaling up visual and vision-language representation learning with noisy text supervision. In International Conference on Machine Learning, 2021.
[3] Xie C, Cai H, Song J, et al. Zero and R2D2: A Large-scale Chinese Cross-modal Benchmark and A Vision-Language Framework[J]. arXiv preprint arXiv:2205.03860, 2022.
冠軍方案講解
團(tuán)隊介紹
來自南洋理工大學(xué)的博士生吳思澤
賽題分析
1、數(shù)據(jù)集
本次主辦方提供的是商品數(shù)據(jù)集,總共466個物體類別,其中訓(xùn)練中可見的有233個base類別,測試時檢測器需要能夠同時識別base類的物體意見另外233個novel類別的物體。數(shù)據(jù)集中圖片以網(wǎng)購商品圖為主,背景通常較為簡單,每張圖物體數(shù)量不多,存在大量以物體為中心(object-centric)的圖片,訓(xùn)練集中平均每張圖的物體標(biāo)注數(shù)量<2。
2、解決思路
根據(jù)數(shù)據(jù)集屬性,可知互聯(lián)網(wǎng)中存在大量包含新類別的商品圖片,由于圖片場景簡單,物體單一,在圖像層級(image-level)上學(xué)習(xí)新類別的表征,可很好泛化到檢測上。因此選擇基礎(chǔ)方案為Detic,使用爬蟲獲取帶有新類別tag的圖片,用于image-level的訓(xùn)練。
方案總覽
采用Detic[1]的訓(xùn)練策略,同時使用目標(biāo)檢測數(shù)據(jù)(base類)和圖像分類數(shù)據(jù)(base類+novel類)訓(xùn)練檢測器。
方案流程介紹
1、數(shù)據(jù)處理
選擇百度圖片為爬取對象,索引關(guān)鍵詞為”[中文名稱] 商品圖片”,為保證類別平衡,novel和base類別均爬取40頁(大約1000張)。每個類別爬取到的圖片存到一個路徑下,這些圖片只有類別Tag,沒有物體框標(biāo)注。
2、類別名稱翻譯
為方便使用現(xiàn)有的開源模型(CLIP),需要將466個中文名稱均翻譯成英文,我們使用google translator翻譯每個名稱并人工校對。
3、模型介紹
選擇ResNet50和SwinB作為檢測器backbone,檢測器結(jié)構(gòu)為CenterNet2,使用Detic公開的在公開數(shù)據(jù)集LVIS和ImageNet上預(yù)訓(xùn)練的模型權(quán)重作為初始化。CLIP模型選擇ViT-L-14(只用text encoder)來得到類別名稱的embeddings。分類的損失函數(shù)為BCE Loss。
4、Learnable Prompt
為了獲取類別名稱的text embeddings,在訓(xùn)練過程中學(xué)習(xí)一組長度為4的learnable prompt以獲得更好的text表征。具體方案參考了coop[2]。
5、重要參數(shù)
- 模型初始化:使用LVIS和ImageNet上預(yù)訓(xùn)練的模型作為初始化。
- 總迭代次數(shù):18000。
- image-level分支的batch size: 8x96,檢測分支batch size: 8x4。
- image-level的權(quán)重:1.2,det分支權(quán)重:1.0。
- 圖像分辨率:image-level分支448, 檢測分支 896。
6、測試結(jié)果
這里介紹的測試結(jié)果是隨著我們模塊和參數(shù)改變的變化,我們初始使用R50 backbone作為baseline, image-level分支的batch size為32,訓(xùn)練資源8xV100,增加到64之后需要8xA100 (或者整體batch size縮小,迭代數(shù)增加)。以下結(jié)果均來自初賽。
- ADetecting Twenty-thousand Classes using Image-level Supervision, Zhou et.al ECCV 2022.
- Prompt Learning for Vision-Language Models, Zhou et.al IJCV 2022.
亞軍方案講解(第二名)
團(tuán)隊介紹
來自華中科技大學(xué)的團(tuán)隊,成員有冷福星,易成龍。
賽題分析
1、數(shù)據(jù)集
- 訓(xùn)練數(shù)據(jù):233類已知類別的目標(biāo)檢測框
- 初賽:7401張圖像
- 復(fù)賽:14802張圖像
數(shù)據(jù)特點(diǎn):
- 全部是電商類的商品圖像
- 單張圖像中的目標(biāo)類別相同
- 存在部分有效的OCR信息
2、解決思路
利用前景檢測器對圖片進(jìn)行目標(biāo)定位,利用LLM來擴(kuò)充文本信息,最后結(jié)合ChineseCLIP進(jìn)行多模態(tài)圖文對齊生成類別信息。
方案總覽
如圖所示,是本次比賽中提出的算法 pipeline,不需要使用提供的類別信息,不引入額外的數(shù)據(jù),即可進(jìn)行任意商品類別的目標(biāo)檢測:
- 前景檢測器(Foreground Detector):不需要使用提供的233類類別信息,只使用位置坐標(biāo)訓(xùn)練一個前景檢測器,整個 pipeline 中只有這里進(jìn)行梯度更新;
- 提示詞工程(prompt engineering):使用大語言模型(LLM)進(jìn)行半自動化的提示詞工程,輸入類別 c,給定模板規(guī)范,生成更多風(fēng)格多樣的提示詞;
- 多模態(tài)圖文對齊:使用 Chinese CLIP 進(jìn)行圖文特征對齊,進(jìn)行類別分類,使用提示詞集成(prompt ensemble)提高性能;
方案流程介紹
1、前景檢測器
當(dāng)前主流的檢測器如圖所示,主要包括 Anchor Based 和 Anchor Free 兩類檢測器,前者精度高但速度慢,后者精度略差但速度快;
- 前景 proposal 使用 WBF(Weighted Boxes Fusio)集成了CBNetV2_Swin,CascadeRCNN_Convnext,CascadeRCNN_Hornet,CascadeRCNN_resnext101,DetecotoRS_r101,VFNet_resnext101;實際使用CBNetV2_Swin單個檢測器分?jǐn)?shù)不低,集成在分?jǐn)?shù)提升大概1個點(diǎn);
- 使用訓(xùn)練好的前景檢測器檢測目標(biāo),進(jìn)行多尺度裁剪(外擴(kuò)+0,+30像素),并加入全圖(利用有效的OCR信息,如圖2中右上角的陶笛文本)一起進(jìn)行圖文對齊,將3個尺度的輸出 logits 進(jìn)行平均;
2、提示詞工程
CLIP模型是雙塔結(jié)構(gòu),直接使用類別信息進(jìn)行文本對齊的效果不是最佳的,為了充分挖掘文本 encode 的潛力,需要進(jìn)行一定的提示詞工程;在實驗中,使用 “c” 和 一張“c”的圖片,驗證集上后者分?jǐn)?shù)高5個點(diǎn);
可以使用 ChahtGPT/LLMA 2 進(jìn)行交互,逐步引導(dǎo) LLM 生成想要的提示詞模板;最后得到多條 prompts,可以進(jìn)行 prompt ensemble,ensemble 的方法有以下三種,實際只使用了最簡單的 Uniform averaging;
- Uniform averaging
- Weighted averaging
- Majority Voting
3、消融實驗與實驗結(jié)果
驗證集:初賽訓(xùn)練集,(訓(xùn)練中沒有使用類別信息,用來評測CLIP模型分類能力)
- PE:prompt engineering
- CME:CLIP model ensemble(0.7*VIT-H@224+0.3*VIT-L@336)
4、拓展思路
上述提出的 pipeline 使用了位置信息進(jìn)行訓(xùn)練,使用 CLIP 也可不進(jìn)行訓(xùn)練進(jìn)行任意目標(biāo)檢測:
將圖像分成小 patch,滑動窗口 crop 圖像送入 CLIP 模型提取圖文相似性。每個窗口根據(jù)閾值判斷目標(biāo)類別,也可以將當(dāng)前窗口圖像置0,看整圖類別相似性哪個下降最多。但該方法,滑動窗口的方式替代 proposal 的檢出比較耗時,實測精度也沒有上述方法高;
季軍方案講解(第三名)
團(tuán)隊介紹
“我們組有名稱嗎”團(tuán)隊來自中國科學(xué)院自動化研究所紫東太初大模型研究中心,紫東太初大模型研究中心致力于構(gòu)建低功耗萬億突觸多模態(tài)認(rèn)知大模型,建立面向開放復(fù)雜環(huán)境的可解釋、可信、可演化的多模態(tài)人工智能基礎(chǔ)平臺,建成新一代人工智能重大基礎(chǔ)設(shè)施,形成創(chuàng)新應(yīng)用生態(tài)。比賽團(tuán)隊由兩名博士生(詹宇飛、楊帆)、一名碩士生(趙弘胤)和一名本科生(王天琦)組成,在朱優(yōu)松老師指導(dǎo)下共同完成本次比賽,目前團(tuán)隊主要研究方向為視覺大模型、目標(biāo)檢測、開放詞匯目標(biāo)檢測及長尾目標(biāo)檢測等。
賽題分析
1、數(shù)據(jù)集
在開放詞匯目標(biāo)檢測的研究中,端到端訓(xùn)練方法由于其在訓(xùn)練速度的優(yōu)勢和公平對比的要求獲得了更為廣泛的使用。在本次商品場景下的開放世界目標(biāo)檢測競賽中,主要存在以下四個問題:
- 噪聲大---數(shù)據(jù)標(biāo)注噪聲大,各類別均存在誤標(biāo)、漏標(biāo)等情況,標(biāo)注方式不統(tǒng)一;
- 定位難---少樣本訓(xùn)練設(shè)定下,端到端微調(diào)精準(zhǔn)定位和分類效果差;
- 易混淆---類別細(xì)粒度程度高,且多為商品數(shù)據(jù),類內(nèi)方差大,通用中文圖文模型無法有效區(qū)分;
- 主體判斷難---該場景設(shè)定下,每張圖中只可識別出主要商品,共同出現(xiàn)的其他商品需被抑制。
2、解決思路
為解決上述問題,通過對數(shù)據(jù)的類別分布和實例位置分布的分析,我們發(fā)現(xiàn)圖片的實例以單類別形式出現(xiàn),且居中分布,具備任務(wù)解耦的基礎(chǔ)。因此,我們選擇雙階段的方法,將框回歸和商品物體分類進(jìn)行剝離,分別實現(xiàn)類別無關(guān)的框回歸以解決定位難和主題判斷難得問題,和基于CLIP特征的零樣本和少樣本分類以解決噪聲大和易混淆得問題。且將任務(wù)拆分為兩個子任務(wù),分別迭代,有效提高了優(yōu)化速度。
方案總覽
方案整體框架下圖所示,按照子任務(wù)拆分,我們將訓(xùn)練分為檢測器訓(xùn)練和圖文模型優(yōu)化兩部分,將最終優(yōu)化好的模型在推理階段進(jìn)行組合,在推理規(guī)則的輔助下完成對場景中的少樣本和零樣本類別的檢測。
方案流程介紹
1、用于目標(biāo)定位的數(shù)據(jù)補(bǔ)充
為抑制模型產(chǎn)生大框的傾向和糾正在部分情況下錯誤產(chǎn)生部件框造成得定位難問題,我們額外爬取659張Base類別商品圖片,利用訓(xùn)練好的模型打偽標(biāo)簽的形式構(gòu)建,選取置信度大于0.8的預(yù)測框并采用人工校驗的方式進(jìn)行清洗過濾,去掉其中的局部框等,構(gòu)建了包含659張圖片的糾正數(shù)據(jù)子集,用于模型的微調(diào)。
2、目標(biāo)定位模塊
在商品目標(biāo)定位部分,考慮到在開放詞匯目標(biāo)檢測任務(wù)下,檢測器首先應(yīng)當(dāng)定位出所有可能的物體,其中包括不具備檢測標(biāo)注的novel類別。因此,我們選擇將檢測器訓(xùn)練為二分類商品檢測器,用于提取圖片中可能存在的商品。我們選擇Cascade-RCNN訓(xùn)練二分類的商品檢測模型,利用多個級聯(lián)的回歸分支提升模型對于物體的識別與定位能力。為提高模型的特征提取能力,我們選擇以Swin-Transformer Small為骨干網(wǎng)絡(luò),Neck默認(rèn)使用了FPN融合高層語義特征與低層的細(xì)節(jié)特征,最后輸出物體得分大于0.1的候選框中選擇排名前100個檢測框。
3、用于目標(biāo)分類的數(shù)據(jù)補(bǔ)充
為解決低數(shù)據(jù)量下的噪聲和混淆問題,在開放詞匯任務(wù)設(shè)定的啟發(fā)下,我們分別采用關(guān)鍵字“類別名稱 商品圖片”搜索和相似圖片搜索的方式,從百度、谷歌、電商平臺等網(wǎng)絡(luò)數(shù)據(jù)中收集了70w的數(shù)據(jù)用于模型的微調(diào),并利用ChatGLM對類別和圖片生成描述,提高圖文對的語義豐富度,進(jìn)而增強(qiáng)模型的判別能力,如圖2所示。通過對微調(diào)方式的對比,我們對比了目前較優(yōu)的三種微調(diào)方式Finetune、Lora及LiT,如表1所示,發(fā)現(xiàn)Lora進(jìn)行微調(diào)時能夠更準(zhǔn)確的識別novel類別,當(dāng)采用全量微調(diào)時能夠,能夠獲得更好的base類別識別效果,因此在最終的模型中我們將這兩者進(jìn)行融合。
4、目標(biāo)分類模塊
在商品目標(biāo)分類部分,通過對當(dāng)前開源的中文圖文模型的調(diào)研,我們選擇目前性能最優(yōu)的中文圖文模型Chinese-CLIP,該模型繼承于OpenCLIP,視覺分支采用ViT結(jié)構(gòu),文本分支采用RoBERTa結(jié)構(gòu),我們選擇ViT-H-224的模型進(jìn)行微調(diào)。
5、推理優(yōu)化
在推理階段,我們將數(shù)據(jù)先驗(單一類別、圖文并茂)以規(guī)則的形式加入其中,設(shè)計了全局概率融合、OCR輔助推理和類別一致性校正三條規(guī)則,進(jìn)一步解決數(shù)據(jù)的易混淆和主體判斷難問題。我們將規(guī)則和模型整理為如下的推理流程:
- RPN候選框推理:使用訓(xùn)練好的定位模型,對測試集中的每張圖進(jìn)行推理,得到每張圖的候選框;
- 圖文特征提取:對每一張圖,根據(jù)(1)中產(chǎn)生的候選框結(jié)果,截取對應(yīng)的感興趣區(qū)域,與全圖共同送入訓(xùn)練好的CLIP模型中提取區(qū)域特征和類別文本特征;
- 全局特征融合:對每一個候選框產(chǎn)生的區(qū)域特征,按照8:2的比例與全局特征相加,校正得到最終的區(qū)域特征,與文本特征計算余弦相似度;
- OCR輔助校正:對于每一個候選框的分類概率,結(jié)合全圖的OCR結(jié)果,根據(jù)所設(shè)計的OCR規(guī)則進(jìn)行類別概率校正;
- 類別一致性校正:對所有的候選框的分類結(jié)果和全圖的分類結(jié)果進(jìn)行對比,若候選框中存在與全圖類別一致的候選框,則輸出一致候選框,若無則輸出所有框中分?jǐn)?shù)最高的候選框作為該圖片的最終結(jié)果。
6、測試結(jié)果
通過模型優(yōu)化和規(guī)則設(shè)計,我們的方案在零樣本類別上實現(xiàn)了50.08%的AP50,在少樣本類別上實現(xiàn)了54.16%的AP50,最終識別效果如下: