博客專欄

        EEPW首頁 > 博客 > 目標(biāo)檢測難題 | 小目標(biāo)檢測策略匯總

        目標(biāo)檢測難題 | 小目標(biāo)檢測策略匯總

        發(fā)布人:CV研究院 時間:2021-08-17 來源:工程師 發(fā)布文章

        本文轉(zhuǎn)自:AI算法與圖像處理

        來源:小白學(xué)視覺

        導(dǎo)讀

        在計(jì)算機(jī)視覺中,檢測小目標(biāo)是最有挑戰(zhàn)的問題之一。本文給出了一些有效的策略。

        1.png

        從無人機(jī)上看到的小目標(biāo)

        為了提高你的模型在小目標(biāo)上的性能,我們推薦以下技術(shù):

        提高圖像采集的分辨率

        增加模型的輸入分辨率

        tile你的圖像

        通過增強(qiáng)生成更多數(shù)據(jù)

        自動學(xué)習(xí)模型anchors

        過濾掉無關(guān)的類別

        為什么小目標(biāo)檢測很困難?

        小目標(biāo)問題困擾著世界各地的目標(biāo)檢測模型。不相信嗎?查一下最近的模型在COCO上的評估結(jié)果,YOLOv3,EfficientDet和YOLOv4:

        2.png

        查看AP_S、AP_M、AP_L以了解最新的模型。小物體檢測是很難的!

        以Efficient為例,小目標(biāo)的AP只有12%,大目標(biāo)的AP為51%。這幾乎是五倍的差異!那么,為什么檢測小物體如此困難呢?

        這一切都?xì)w結(jié)于模型。目標(biāo)檢測模型通過在卷積層中對像素進(jìn)行聚合來形成特征。

        3.png

        物體檢測中的特征聚合

        在網(wǎng)絡(luò)的末端,基于損失函數(shù)進(jìn)行預(yù)測,損失函數(shù)根據(jù)預(yù)測值和ground truth之間的差異對所有像素進(jìn)行加和。

        4.png

        YOLO中的損失函數(shù)

        如果ground truth框不大,則在進(jìn)行訓(xùn)練時信號會很小。此外,小物體最有可能有數(shù)據(jù)標(biāo)記錯誤,他們的識別可能被忽略。

        從經(jīng)驗(yàn)和理論上講,小物體是很難的。

        提升圖像采集的分辨率

        分辨率,分辨率,分辨率……都是分辨率的鍋。

        非常小的物體的邊界框中可能只包含幾個像素,這意味著增加圖像的分辨率可以增加探測器可以從那個小盒子中形成的豐富特征,這是非常重要的。

        因此,我們建議盡可能提高采集圖像的分辨率。

        提高模型的輸入分辨率

        一旦你有了更高分辨率的圖像,你就可以放大模型的輸入分辨率。警告:這將導(dǎo)致大型模型需要更長的時間來訓(xùn)練,并且當(dāng)你開始部署時,也會更慢地進(jìn)行推斷。你可能需要實(shí)驗(yàn)來找出速度與性能之間的正確權(quán)衡。

        在訓(xùn)練YOLOv4中,你可以通過改變配置文件中的圖像大小來輕松縮放輸入分辨率。

        [net] 

        batch=64 

        subdivisions=36 

        width={YOUR RESOLUTION WIDTH HERE} 

        height={YOUR RESOLUTION HEIGHT HERE} 

        channels=3 

        momentum=0.949 

        decay=0.0005 

        angle=0 

        saturation = 1.5 

        exposure = 1.5 

        hue = .1  

        learning_rate=0.001 

        burn_in=1000 

        max_batches=6000 

        policy=steps 

        steps=4800.0,5400.0 

        scales=.1,.1

        你也可以在訓(xùn)練YOLOv5中通過改變訓(xùn)練命令中的圖像尺寸參數(shù)來輕松縮放你的輸入分辨率:

        !python train.py --img {YOUR RESOLUTON SIZE HERE} --batch 16 --epochs 10 --data '../data.yaml' --cfg ./models/custom_yolov5s.yaml --weights '' --name yolov5s_results  --cache

        對圖像進(jìn)行Tiling

        檢測小物體的另一個重要策略是將圖像切割后形成batch,這個操作叫做tile,作為預(yù)處理步驟。tile可以有效地將檢測器聚焦在小物體上,但允許你保持所需的小輸入分辨率,以便能夠運(yùn)行快速推斷。

        5.gif

        tile圖像作為預(yù)處理步驟

        如果你在訓(xùn)練中使用tile,重要的是要記住,你也需要在推理時tile你的圖像。

        通過增強(qiáng)產(chǎn)生更多數(shù)據(jù)

        數(shù)據(jù)增強(qiáng)從基本數(shù)據(jù)集生成新的圖像。這對于防止模型過擬合訓(xùn)練集非常有用。

        一些特別有用的小物體檢測增強(qiáng)包括隨機(jī)裁剪、隨機(jī)旋轉(zhuǎn)和馬賽克增強(qiáng)。

        自動學(xué)習(xí)模型Anchors

        Anchors是你的模型學(xué)會預(yù)測的與之相關(guān)的原型邊界框。也就是說,anchors可以預(yù)先設(shè)置,有時對你的訓(xùn)練數(shù)據(jù)不是最優(yōu)的。最好根據(jù)你手頭的任務(wù)自定義調(diào)優(yōu)它們。幸運(yùn)的是,YOLOv5模型會根據(jù)你的自定義數(shù)據(jù)自動為你完成這項(xiàng)工作。你所要做的就是開始訓(xùn)練。

        Analyzing anchors... anchors/target = 4.66, Best Possible Recall (BPR) = 0.9675. Attempting to generate improved anchors, please wait... WARNING: Extremely small objects found. 35 of 1664 labels are < 3 pixels in width or height. Running kmeans for 9 anchors on 1664 points... thr=0.25: 0.9477 best possible recall, 4.95 anchors past thr n=9, img_size=416, metric_all=0.317/0.665-mean/best, past_thr=0.465-mean: 18,24,  65,37,  35,68,  46,135,  152,54,  99,109,  66,218,  220,128,  169,228 Evolving anchors with Genetic Algorithm: fitness = 0.6825: 100%|██████████| 1000/1000 [00:00<00:00, 1081.71it/s] thr=0.25: 0.9627 best possible recall, 5.32 anchors past thr n=9, img_size=416, metric_all=0.338/0.688-mean/best, past_thr=0.476-mean: 13,20,  41,32,  26,55,  46,72,  122,57,  86,102,  58,152,  161,120,  165,204

        過濾掉無關(guān)的類別

        類別管理是提高數(shù)據(jù)集質(zhì)量的一項(xiàng)重要技術(shù)。如果你有一個類與另一個類明顯重疊,你應(yīng)該從數(shù)據(jù)集中過濾掉這個類。也許,你認(rèn)為數(shù)據(jù)集中的小物體不值得檢測,所以你可能希望將其拿掉。

        總結(jié)

        正確地檢測小物體確實(shí)是一項(xiàng)挑戰(zhàn)。在這篇文章中,我們討論了一些策略來改善你的小物體探測器,即:

        提高圖像采集的分辨率

        增加模型的輸入分辨率

        tile你的圖像

        通過增強(qiáng)生成更多數(shù)據(jù)

        自動學(xué)習(xí)模型anchors

        過濾掉無關(guān)的類別

        *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。



        關(guān)鍵詞: AI

        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 阳原县| 井研县| 崇文区| 乌鲁木齐市| 南宫市| 常州市| 吉林市| 岢岚县| 福贡县| 吉水县| 大安市| 凤山县| 桐乡市| 麻栗坡县| 商水县| 高清| 安泽县| 土默特左旗| 婺源县| 和平县| 龙门县| 孝感市| 东兰县| 古丈县| 外汇| 呼图壁县| 财经| 加查县| 江油市| 通山县| 绥芬河市| 绥棱县| 华阴市| 福泉市| 繁昌县| 涞水县| 新干县| 克拉玛依市| 乐安县| 上思县| 娱乐|