檢測如何做到「不重訓(xùn)就能認(rèn)萬物」?)
一文讀懂UniDetectorCVPR 2023通用目標(biāo)檢測如何做到「不重訓(xùn)就能認(rèn)萬物」【免費(fèi)下載鏈接】UniDetectorCode release for our CVPR 2023 paper Detecting Everything in the Open World: Towards Universal Object Detection.項目地址: https://gitcode.com/gh_mirrors/un/UniDetectorUniDetector 是 CVPR 2023 論文《Detecting Everything in the Open World: Towards Universal Object Detection》的官方開源實現(xiàn)它借助 CLIP 的圖文對齊能力讓通用目標(biāo)檢測器無需針對新類別重新訓(xùn)練就能在開放世界Open World中識別從「滑板護(hù)膝」到「手風(fēng)琴」的萬物目標(biāo)。本文帶你快速看懂它的核心原理與上手方法。一、什么是通用目標(biāo)檢測傳統(tǒng)檢測器如 Faster R-CNN只能識別「訓(xùn)練時見過」的固定類別比如 COCO 的 80 類。一旦想檢測新類別就得重新標(biāo)注、重新訓(xùn)練。UniDetector 要解決的問題是用一個模型同時學(xué)會多個數(shù)據(jù)源的標(biāo)簽空間并泛化到訓(xùn)練中從未見過的類別與場景。上圖中它把 COCO、Objects365、OpenImages 等標(biāo)簽空間各不相同的數(shù)據(jù)源融合訓(xùn)練推理時就能檢測「魚、船塢、西蘭花、暖氣片」等開放世界目標(biāo)。二、「不重訓(xùn)就能認(rèn)萬物」的 3 個核心技巧1?? 用 CLIP 替代普通 ResNet 作骨干網(wǎng)絡(luò)UniDetector 把 Faster R-CNN 的 ResNet 骨干換成了在圖文數(shù)據(jù)上預(yù)訓(xùn)練的CLIPResNet見 clipresnet.py特征天生就「懂」語言語義這是它能識別未見類別的根本原因。2?? 零樣本分類用語言嵌入當(dāng)「類別詞典」這是最關(guān)鍵的一步。普通分類頭輸出固定 80 個分?jǐn)?shù)而 UniDetector 的BBoxHeadCLIP見 bbox_head_clip.py直接取消了固定分類頭改為把目標(biāo)框特征與預(yù)計算的 CLIP 語言嵌入做相似度匹配——每個類別只是一句文本描述如 a photo of a bus換類別 換文本完全不用重訓(xùn)。項目已附帶各數(shù)據(jù)集的預(yù)計算語言嵌入存放在 clip_embeddings/ 目錄也可通過 scripts/dump_clip_features_manyprompt.py 自行生成。3?? 兩階段「解耦訓(xùn)練」 概率校準(zhǔn)第一階段提案只訓(xùn)練區(qū)域提案網(wǎng)絡(luò)CLN產(chǎn)出候選框第二階段分類凍結(jié)提案用 CLIP 嵌入訓(xùn)練 RoI 分類CLM概率校準(zhǔn)推理時結(jié)合「提案置信度」與「類別先驗概率」修正最終分?jǐn)?shù)進(jìn)一步提升開放世界精度。對應(yīng)配置可直接參考階段配置文件端到端訓(xùn)練clip_end2end_faster_rcnn_r50_c4_1x_coco.py解耦訓(xùn)練·第一階段clip_decouple_faster_rcnn_r50_c4_1x_coco_1ststage.py解耦訓(xùn)練·第二階段clip_decouple_faster_rcnn_r50_c4_1x_coco_2ndstage.py開放世界推理clip_end2end_faster_rcnn_r50_c4_1x_lvis_v0.5.py帶概率校準(zhǔn)推理clip_decouple_faster_rcnn_r50_c4_1x_lvis_v0.5_2ndstage_withcalibration.py多數(shù)據(jù)集COCO Objects365、 OpenImages訓(xùn)練配置也在 configs/multidataset/ 下思路與單數(shù)據(jù)集一致。三、實際檢測效果長什么樣這是項目 demo 使用的公園街景原圖同一張圖片經(jīng) UniDetector 通用目標(biāo)檢測后的輸出長椅、汽車等目標(biāo)都被框出并打上類別標(biāo)簽想在自己的圖片上體驗可以直接運(yùn)行 image_demo.py配合 demo.jpg 快速跑通一次推理。四、新手快速上手 4 步安裝環(huán)境代碼基于 mmdetection v2.18.0另需安裝 CLIP 庫準(zhǔn)備數(shù)據(jù)集把 COCO、LVIS、Objects365、OpenImages 按 docs/datasets.md 的結(jié)構(gòu)放到data/目錄只需子集無需下載全量準(zhǔn)備語言嵌入直接使用 clip_embeddings/ 中已發(fā)布的嵌入文件即可跑通推理參考上表的 inference 配置執(zhí)行tools/dist_test.sh即可得到 LVIS v0.5 上的開放世界檢測結(jié)果。訓(xùn)練流程bash tools/dist_train.sh 配置文件 8與標(biāo)準(zhǔn) mmdetection 完全一致詳見項目根目錄 README.md。五、項目結(jié)構(gòu)速覽 目錄作用mmdet/models/backbones/clipresnet.pyCLIP 版 ResNet 骨干mmdet/models/roi_heads/bbox_heads/bbox_head_clip.py零樣本 CLIP 分類頭核心創(chuàng)新configs/單數(shù)據(jù)集、多數(shù)據(jù)集、推理三套配置clip_embeddings/各數(shù)據(jù)集預(yù)計算 CLIP 語言嵌入scripts/dump_clip_features_manyprompt.py自定義語言嵌入生成腳本demo/圖片/視頻/攝像頭推理演示總結(jié)UniDetector 的思路可以概括為一句話把「分類器」變成「圖文相似度匹配器」。通過 CLIP 骨干 語言嵌入零樣本分類 兩階段解耦訓(xùn)練與概率校準(zhǔn)它讓目標(biāo)檢測第一次真正走向開放世界的「萬物識別」。如果你想研究開放世界檢測這個項目值得一讀。?【免費(fèi)下載鏈接】UniDetectorCode release for our CVPR 2023 paper Detecting Everything in the Open World: Towards Universal Object Detection.項目地址: https://gitcode.com/gh_mirrors/un/UniDetector創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考