久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

博客專欄

EEPW首頁 > 博客 > 目標檢測難題 | 小目標檢測策略匯總

目標檢測難題 | 小目標檢測策略匯總

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

本文轉自:AI算法與圖像處理

來源:小白學視覺

導讀

在計算機視覺中,檢測小目標是最有挑戰的問題之一。本文給出了一些有效的策略。

1.png

從無人機上看到的小目標

為了提高你的模型在小目標上的性能,我們推薦以下技術:

提高圖像采集的分辨率

增加模型的輸入分辨率

tile你的圖像

通過增強生成更多數據

自動學習模型anchors

過濾掉無關的類別

為什么小目標檢測很困難?

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

2.png

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

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

這一切都歸結于模型。目標檢測模型通過在卷積層中對像素進行聚合來形成特征。

3.png

物體檢測中的特征聚合

在網絡的末端,基于損失函數進行預測,損失函數根據預測值和ground truth之間的差異對所有像素進行加和。

4.png

YOLO中的損失函數

如果ground truth框不大,則在進行訓練時信號會很小。此外,小物體最有可能有數據標記錯誤,他們的識別可能被忽略。

從經驗和理論上講,小物體是很難的。

提升圖像采集的分辨率

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

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

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

提高模型的輸入分辨率

一旦你有了更高分辨率的圖像,你就可以放大模型的輸入分辨率。警告:這將導致大型模型需要更長的時間來訓練,并且當你開始部署時,也會更慢地進行推斷。你可能需要實驗來找出速度與性能之間的正確權衡。

在訓練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

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

!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

對圖像進行Tiling

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

5.gif

tile圖像作為預處理步驟

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

通過增強產生更多數據

數據增強從基本數據集生成新的圖像。這對于防止模型過擬合訓練集非常有用。

一些特別有用的小物體檢測增強包括隨機裁剪、隨機旋轉和馬賽克增強。

自動學習模型Anchors

Anchors是你的模型學會預測的與之相關的原型邊界框。也就是說,anchors可以預先設置,有時對你的訓練數據不是最優的。最好根據你手頭的任務自定義調優它們。幸運的是,YOLOv5模型會根據你的自定義數據自動為你完成這項工作。你所要做的就是開始訓練。

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

過濾掉無關的類別

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

總結

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

提高圖像采集的分辨率

增加模型的輸入分辨率

tile你的圖像

通過增強生成更多數據

自動學習模型anchors

過濾掉無關的類別

*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



關鍵詞: AI

相關推薦

技術專區

關閉