本文通過一篇YOLT的文章引出超大分辨率的圖片遇到目標檢測任務(wù)該如何處理?此類問題一般出現(xiàn)在遙感領(lǐng)域和醫(yī)療影像中居多,我們先來分析超大圖像的目標檢測存在哪些問題,然后學(xué)習(xí)一下YOLT是如何解決這些問題的,最后結(jié)合現(xiàn)有技術(shù)探討目前的可行性方案。
1
當超大分辨率圖像邂逅目標檢測任務(wù)
曾經(jīng)有小伙伴問過我針對超大分辨率的圖像如何做目標檢測任務(wù)?
我們先思考一下超大分辨率數(shù)據(jù)在哪些場景中會出現(xiàn),比如衛(wèi)星地圖做建筑物、樓宇的檢測:
在醫(yī)療影像中做病灶體的檢測:
在無人機航拍圖中做船舶、車輛、房屋等檢測:
是否可以沿用通用框架做該類圖片的目標檢測呢?
輸入如此大分辨率的圖片到網(wǎng)絡(luò)中,最直接的問題就是機器的顯存爆掉,無法進行訓(xùn)練任務(wù)。
如果你真的有一個非常牛逼的集群直接訓(xùn)練大尺寸圖像,最后的預(yù)測結(jié)果恐怕也不盡如人意,原因出在大尺寸圖像中的目標往往只占5-10個像素點,檢測網(wǎng)絡(luò)一旦經(jīng)過多次下采樣后,這些小目標的特征很難被提取到。
衛(wèi)星地圖等數(shù)據(jù)非常稀有珍貴,不像無人駕駛的開源數(shù)據(jù)有幾十萬幾百萬張的量級,如何高效的利用高質(zhì)量的訓(xùn)練圖片也是關(guān)鍵所在。
所以直接硬上通用模型檢測出來的效果可能是這樣的,要么伴隨著圖片的resize,目標被縮放沒了;要么基于N×N網(wǎng)格的預(yù)測造成密集連續(xù)目標的漏檢:
此類任務(wù)的難點或者優(yōu)化方向在哪里?
它的核心在于四個方向:
如何處理高分辨的輸入
如何提高密集小目標檢測
如何解決類別不平衡問題
如何利用少量的訓(xùn)練數(shù)據(jù)
下面我們通過一篇名為You Only Look Twice的文章來分析上述幾個問題,名稱有點蹭熱度的嫌疑哦,不過誰讓YOLO系列那么火,大家都喜歡在它的框架上改改發(fā)文章呢!
2
You Only Look Twice
《Rapid Multi-Scale Object Detection In Satellite Imagery》這篇文章描述了大尺寸圖像目標檢測的常規(guī)方法,總的來說就是對超大分辨率的圖像進行滑窗裁剪成多個子圖,然后對每一個子圖進行目標檢測,最后將所有子圖的結(jié)果拼接后進行NMS過濾。
數(shù)據(jù)端
對超大分辨率圖片進行滑窗裁剪,如下圖所示,一個16000×16000像素的圖片,采用416×416像素的滑窗,最后生成約1500個子圖。
文章指出在滑窗裁剪的時候必須有15%的重疊區(qū)域,原因是如果一個目標剛好處于窗口邊緣被切分成2塊,本身目標所占像素就少又被截斷會造成更加難以檢測。但是重復(fù)部分會帶來同一個目標出現(xiàn)多個檢測框的問題,目前通過將所有子圖的檢測結(jié)果合并起來采用NMS處理進行過濾。
在衛(wèi)星、遙感、航拍等圖片中,目標物體往往存在方向信息,如何提高目標檢測的旋轉(zhuǎn)不變性呢?在YOLT中通過數(shù)據(jù)增廣的方式旋轉(zhuǎn)圖片生成更多形狀的物體從而緩解問題。但是小編認為該方法治標不治本,輸出結(jié)果仍然是規(guī)則的矩形框,一旦遇到長條形物體,比如輪船。預(yù)測的矩形框會引入很多冗余區(qū)域??梢試L試在損失函數(shù)中增加旋轉(zhuǎn)角進行學(xué)習(xí)。
網(wǎng)絡(luò)端
基于YOLOv2的結(jié)構(gòu)做了一些改進,在YOLO系列或者很多檢測網(wǎng)絡(luò)都進行了32倍的下采樣,但是在遙感地圖等超大分辨率圖片中,目標物體所占像素本身就很少,經(jīng)過32倍下采樣后,基本無法有效檢測。所以YOLT減少了下采樣的比例收縮到16倍并增加網(wǎng)絡(luò)的層數(shù)提供特征提取能力。
文章借助YOLOv2中的PassThrough層,融合深淺特征圖的特征目的是提升對小目標的檢測效果。當然這一操作完全可以考慮由PAN替代,在FPN上采樣融合的特征金字塔之后,又增加了一個下采樣融合的特征金字塔。
本文并沒有提到類別不平衡問題,但是任何目標檢測任務(wù)其實都存在前后背景的不平衡,一般會從三種方法進行考慮,其一是做數(shù)據(jù)的上采樣和下采樣來平衡不同類別之間的數(shù)據(jù)量;其二是采用某些數(shù)據(jù)增廣的手段來增多前景目標在一張圖像中的占比;其三是通過設(shè)計損失函數(shù)通過權(quán)重控制不同類別的優(yōu)化力度。
3
如何處理高分辨的輸入圖像?
較常見的方式就是像上述文章提到的對一張超大分辨率的圖片切割成多個子圖,但是在這一過程中存在幾個問題,比如:
目標位于切割邊緣怎么辦?
切割的圖片大小如何設(shè)置?
目標切割的問題在上面已經(jīng)提過,可以用重疊切割的方法解決目標被截斷的問題。
假設(shè)數(shù)據(jù)集的圖片尺寸不同的前提下,我們可以從結(jié)果端反向思考切割尺寸的問題,一般會設(shè)置一個固定的子圖尺寸比如416×416,但是原圖可能無法剛好切割成整數(shù)個子圖,所以對最邊緣的子圖可以采用letterbox的方式縮放到416的尺寸,相比直接resize能夠保留物體特征。
4
如何提高密集小目標檢測?
在目標檢測領(lǐng)域中,小目標檢測一直都是其中一個難點。針對該問題,近些年也提出了不少優(yōu)化的方式:
圖像金字塔進行多尺度訓(xùn)練。將原始圖像生成多個不同分辨率的圖像金字塔,再對每層金字塔用固定輸入分辨率的分類器在該層滑動來檢測目標。不過此方法需要對圖像做多次的特征提取,速度太慢。該方法也有改進版本,如SNIP網(wǎng)絡(luò)只訓(xùn)練合適尺寸的目標,當真值的尺寸和Anchor接近時才訓(xùn)練檢測器,過大過小的均丟棄。
特征金字塔融合淺層和深層信息,如FPN和PAN等。通過各層融合的方式從淺層網(wǎng)絡(luò)中學(xué)習(xí)更多的細節(jié)特征,從深層網(wǎng)絡(luò)中學(xué)習(xí)更多的語義特征。
設(shè)計與小目標尺寸匹配的Anchor。不同任務(wù)的檢測目標尺寸均有差異,可以根據(jù)先驗知識,采用手工或者聚類的方式離線得到一定個數(shù)的Anchor。
采用空洞卷積減少下采樣次數(shù),其目的是考慮下采樣會丟失圖片的部分信息,而空洞卷積能夠在不增加參數(shù)量的同時具有更大的感受野,提供降低采樣次數(shù)的一種思路。
-
圖像
+關(guān)注
關(guān)注
2文章
1083瀏覽量
40449 -
分辨率
+關(guān)注
關(guān)注
2文章
1058瀏覽量
41920
原文標題:如何在超大分辨率的圖片中檢測目標?
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論