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