作者丨CVHub 來源丨派派星?
導(dǎo)讀
本文將從小目標(biāo)的定義、意義和挑戰(zhàn)等方面入手,全面介紹小目標(biāo)檢測的各種解決方案。?
導(dǎo)讀
小目標(biāo)檢測是計算機(jī)視覺領(lǐng)域中的一個極具挑戰(zhàn)性的問題。隨著深度學(xué)習(xí)和計算機(jī)視覺領(lǐng)域的不斷發(fā)展,越來越多的應(yīng)用場景需要對小目標(biāo)進(jìn)行準(zhǔn)確的檢測和識別。本文將從小目標(biāo)的定義、意義和挑戰(zhàn)等方面入手,全面介紹小目標(biāo)檢測的各種解決方案。
定義
小目標(biāo)檢測廣義是指在圖像中檢測和識別尺寸較小、面積較小的目標(biāo)物體。通常來說,小目標(biāo)的定義取決于具體的應(yīng)用場景,但一般可以認(rèn)為小目標(biāo)是指尺寸小于 像素的物體,如下圖 COCO 數(shù)據(jù)集的定義。當(dāng)然,對于不同的任務(wù)和應(yīng)用,小目標(biāo)的尺寸和面積要求可能會有所不同。
在 COCO 數(shù)據(jù)集中,針對三種不同大小(small,medium,large)的圖片提出了測量標(biāo)準(zhǔn),其包含大約 41% 的小目標(biāo)(area<32×32), 34% 的中等目標(biāo)(32×3296×96)。其中,小目標(biāo)的 AP 是很難提升的!
意義
小目標(biāo)檢測的意義在于它可以提高技術(shù)的應(yīng)用范圍,同時可以幫助大家更好地理解圖像中的細(xì)節(jié)信息。此外,小目標(biāo)檢測其實在我們?nèi)粘I钪械脑S多領(lǐng)域均有廣泛的應(yīng)用,例如交通監(jiān)控、醫(yī)學(xué)影像分析、無人機(jī)航拍等。舉個例子:
在交通監(jiān)控領(lǐng)域,小目標(biāo)檢測可用于識別交通信號燈、車牌等。
在醫(yī)學(xué)影像分析領(lǐng)域,小目標(biāo)檢測可用于識別微小的腫瘤細(xì)胞等。
在自動駕駛領(lǐng)域,小目標(biāo)檢測可用于識別微小的障礙物,以彌補(bǔ)激光雷達(dá)難以探測的窘?jīng)r。
挑戰(zhàn)
做過檢測任務(wù)的同學(xué)應(yīng)該很清楚這一點(diǎn),那便是小目標(biāo)檢測其實一直是一個極具挑戰(zhàn)性的問題。下面隨便舉幾個小例子給大家感受下:
小目標(biāo)通常在圖像中占據(jù)很小的區(qū)域,深度學(xué)習(xí)算法其實很難提取到有效的信息,更別提傳統(tǒng)的特征提取方法。舉個例子,對于一個室內(nèi)會議場景,假設(shè)我們的攝像頭裝在左上角的上方區(qū)域,如果此時你訓(xùn)練完一個檢測模型應(yīng)用上去,會觀察到在遠(yuǎn)離鏡頭的對角線區(qū)域其檢測效果相對其它區(qū)域來說一般會差很多的,特別容易造成漏檢和誤檢。
小目標(biāo)并不具備常規(guī)尺寸目標(biāo)的紋理、顏色等豐富的細(xì)節(jié)特征,這使得小目標(biāo)的檢測更加困難,而且容易被模型誤認(rèn)為是“噪聲點(diǎn)”。
小目標(biāo)其實有時候不好定義,以最簡單的行人和車輛為例,不妨看下面這張圖片:
大致劃分了下,其中綠色框范圍的目標(biāo)其實是很容易標(biāo)注的,主要是紅色方框范圍內(nèi)的目標(biāo)。大部分目標(biāo)像素占比很小,標(biāo)也不是,不標(biāo)也不是,當(dāng)然你可以采用ignore標(biāo)簽不計算損失或者干脆直接將這塊區(qū)域mask掉,但現(xiàn)實就是很多情況下這種“小目標(biāo)”其實很大概率會被漏打標(biāo),太多的話很容易造成訓(xùn)練曲線“抖動”。
解決方案
今天,讓我們重點(diǎn)來聊聊如何解決小目標(biāo)檢測的難題。大家應(yīng)具備批判性思維,根據(jù)實際情況針對性的采取合適的方式。
需要注意的是,雙階段目標(biāo)檢測算法由于存在RoI Pooling之類的操作, 因此小目標(biāo)的特征會被放大,其特征輪廓也更為清晰,因此檢出率通常也會更高。但本文還是主要圍繞發(fā)展比較成熟的單階段目標(biāo)檢測算法展開。
增大輸入圖像分辨率
圖像分辨率,當(dāng)之無愧是最大的罪魁禍?zhǔn)祝胂笠幌拢粡垐D像如果分辨率太小,假設(shè)我們就下采樣32倍,理論上小于這個像素的目標(biāo)信息基本就會完全丟失。因此,當(dāng)處理小目標(biāo)檢測時,由于目標(biāo)物體尺寸過小,通常需要將輸入圖像的分辨率提高,以便更好地捕捉目標(biāo)的細(xì)節(jié)。通過提升輸入圖像分辨率,可以提高小目標(biāo)檢測的準(zhǔn)確性和召回率,從而更好地識別和跟蹤目標(biāo)物體。
增大模型輸入尺寸
圖像縮放是另一種常用的解決方案,同樣可以提高小目標(biāo)檢測的精度。常見的做法便是直接開啟“多尺度訓(xùn)練”,設(shè)置比較大的尺寸范圍。不過,增大模型輸入尺寸可能會導(dǎo)致模型計算量的增加和速度的降低。因此,大家在使用時需要權(quán)衡精度和效率之間的平衡。通常需要根據(jù)實際需求和可用資源進(jìn)行調(diào)整,以找到最佳的模型輸入尺寸。
同樣地,在推理時也可以視情況開啟測試時增強(qiáng)Test Time Augmentation, TTA,特別是打比賽的時候。
特征融合
多尺度特征融合
由于小目標(biāo)的尺寸較小,其特征信息往往分布在圖像的多個尺度中,因此需要在多個尺度的特征圖中進(jìn)行融合,以提高模型對小目標(biāo)的感知能力。常見的多尺度特征融合方法包括?Feature Pyramid Networks, FPN?和?Path Aggregation Network, PAN?等。
Extended Feature Pyramid Network for Small Object Detection
長跳躍連接
長跳躍連接是指將不同層級的特征圖進(jìn)行融合的一種方法,可以幫助模型更好地捕捉不同層級的特征信息。眾所周知,淺層特征圖的細(xì)節(jié)信息豐富但語義信息較弱,深層特征圖則與之相反。因此,在小目標(biāo)檢測中,可以將低層級的特征圖和高層級的特征圖進(jìn)行融合,以增強(qiáng)對小目標(biāo)的定位能力。
注意力機(jī)制
注意力機(jī)制是一種能夠?qū)⒛P偷淖⒁饬械街匾獏^(qū)域的技術(shù),可以通過對特征圖進(jìn)行加權(quán)處理,將更多的注意力集中到小目標(biāo)所在的區(qū)域,從而提高對小目標(biāo)的檢測能力。常見的注意力機(jī)制包括SENet、SKNet等。
數(shù)據(jù)增強(qiáng)
數(shù)據(jù)增強(qiáng)是在保持?jǐn)?shù)據(jù)本身不變的前提下,通過對數(shù)據(jù)進(jìn)行隨機(jī)變換來增加數(shù)據(jù)樣本的數(shù)量和多樣性,從而提高模型的泛化能力和魯棒性。對于小目標(biāo)檢測任務(wù),數(shù)據(jù)增強(qiáng)可以通過以下幾種方式來解決:
尺度變換
對于小目標(biāo)而言,其尺寸往往較小,因此可以通過對原始圖像進(jìn)行縮放或放大的操作來增加數(shù)據(jù)樣本的尺度變化。例如,可以將原始圖像縮小一定比例,從而得到多個尺寸較小的圖像樣本。
隨機(jī)裁剪
對于包含小目標(biāo)的圖像,在不改變目標(biāo)位置的情況下,可以通過隨機(jī)裁剪的方式得到多個不同的圖像樣本,以增加數(shù)據(jù)的多樣性。此外,可以使用非矩形的裁剪方式,例如多邊形裁剪,來更好地適應(yīng)小目標(biāo)的不規(guī)則形狀。
高級組合
這一塊大家伙最熟悉的可能是 YOLO 中的 Mosaic 增強(qiáng),其由多張原始圖像拼接而成,這樣每張圖像會有更大概率包含小目標(biāo)。此外,我們還可以通過諸如 Copy-Paste 的辦法將各類小目標(biāo)充分的“復(fù)制-黏貼”,從而增加小目標(biāo)的“曝光度”,提升他們被檢測的概率。
大圖切分
Tiling
Tiling是一種對大圖進(jìn)行切分的有效預(yù)處理操作,上圖為在Roboflow平臺上的演示。通過tile可以有效地讓目標(biāo)檢測網(wǎng)絡(luò)更好的聚焦在小物體上,同時允許我們保持所需的小輸入分辨率,以便能夠運(yùn)行快速推斷。不過需要注意的是,在推理時也理應(yīng)保持輸入的一致性。
SAHI
Tiling 算是比較老舊的技術(shù),目前筆者強(qiáng)烈推薦的還是Slicing Aided Hyper Inference, SAHI,即切片輔助超級推理,是一個專用于小目標(biāo)檢測的推理框架,理論上可以集成到任意的目標(biāo)檢測器上,無需進(jìn)行任何微調(diào)。該方法目前已被多個成熟的目標(biāo)檢測框架和模型集成進(jìn)去,如YOLOv5、Detectron2和MMDetection等。
損失函數(shù)
加權(quán)求和
這個非常好理解,就是我們可以自行定義小目標(biāo)檢測的尺寸,由于我們有 GT,因此在計算 Loss 的時候可以人為地對小目標(biāo)施加更大的權(quán)重,讓網(wǎng)絡(luò)更加關(guān)注這部分。
Stitcher
Stitcher是早幾年出的產(chǎn)物,其出自《Stitcher: Feedback-driven Data Provider for Object Detection》一文。作者通過統(tǒng)計分析觀察到,小目標(biāo)之所以檢測性能很差是因為在訓(xùn)練時對損失的貢獻(xiàn)很?。ㄒ绰z要么漏標(biāo))。因此,文章中提出了一種基于訓(xùn)練時動態(tài)反饋的機(jī)制,即根據(jù)計算出來的損失,自動決定是否要進(jìn)行圖像拼接的操作。
其它
下面簡單整理一些有代表性的小目標(biāo)檢測文章。
2023
TinyDet: Accurate Small Object Detection in Lightweight Generic Detectors
YOLO-Drone: Airborne real-time detection of dense small targets from high-altitude perspective
2022
Towards Large-Scale Small Object Detection: Survey and Benchmarks
2020
Small-Object Detection in Remote Sensing Images with End-to-End Edge-Enhanced GAN and Object Detector Network
2019
Augmentation for small object detection
編輯:黃飛
評論
查看更多