0
本文作者: camel | 2017-08-01 18:24 |
雷鋒網(wǎng) AI科技評(píng)論按:當(dāng)今在AI、自動(dòng)駕駛等技術(shù)越發(fā)成熟的時(shí)期,如何將一張圖像中的物體自動(dòng)分割歸類,也即所謂圖像語(yǔ)義分割,顯得尤為重要。
當(dāng)前大多數(shù)圖像語(yǔ)義分割算法都是基于深度學(xué)習(xí)的方式,但是深度學(xué)習(xí)的效果很大程度上是依賴于大量訓(xùn)練數(shù)據(jù)的。目前的圖像分割方法無(wú)非兩種,一種是通過(guò)標(biāo)注人員手動(dòng)標(biāo)注,如Cityscapes(提供無(wú)人駕駛環(huán)境下圖像分割的數(shù)據(jù)集)中的標(biāo)注,但這種方法需要花費(fèi)大量的人力、物力和時(shí)間。例如,下面這張包含28個(gè)目標(biāo)事例的圖,處理它就需要人工手動(dòng)點(diǎn)擊580次,這真的要點(diǎn)到手疼。
另一種則是將目標(biāo)分割看作是像素標(biāo)注的問(wèn)題(pixel-labeling problem)自動(dòng)完成分割工作。但是這種方法自身有較大的不精確性,而又無(wú)法通過(guò)人員干涉來(lái)修正,所以很難用來(lái)作為地面實(shí)況的評(píng)測(cè)數(shù)據(jù)。那么在填充評(píng)測(cè)數(shù)據(jù)集(例如Cityscapes)時(shí),我們能否做到既可以自動(dòng)標(biāo)注以節(jié)省成本,在需要的時(shí)候又能通過(guò)人工修正來(lái)保證精度呢?
在《用Polygon-RNN標(biāo)注目標(biāo)事例》(Annotating Object Instances with a Polygon-RNN )這篇論文中,作者給了我們肯定的回答。作者采用了一種不同于像素標(biāo)注的方法,而是將目標(biāo)分割看做是一個(gè)多邊形預(yù)測(cè)的問(wèn)題(polygon prediction problem),然后基于深度學(xué)習(xí)實(shí)現(xiàn)“半自動(dòng)化”目標(biāo)事例的標(biāo)注。
這種算法首先需要給定一個(gè)邊框真值,簡(jiǎn)單的說(shuō)就是你用框選中要標(biāo)注的事例。隨后它會(huì)基于RNN(Recurrent Neural Network,遞歸神經(jīng)網(wǎng)絡(luò))算法來(lái)預(yù)測(cè)一個(gè)包圍目標(biāo)事例的封閉的多邊形輪廓。
這個(gè)多邊形的預(yù)測(cè)先是通過(guò)CNN(Convolutional Neural Network,卷積神經(jīng)網(wǎng)絡(luò))找到一個(gè)起點(diǎn),然后以順時(shí)針?lè)较蛎看蔚啥噙呅蜗乱粋€(gè)頂點(diǎn)。RNN每一次的迭代輸入都包含三個(gè)方面:
第一是圖片的CNN特征表示(圖中綠色方塊);
第二是前兩個(gè)RNN迭代輸出的頂點(diǎn)(圖中t-1和t-2的結(jié)果);
第三就是起點(diǎn),它用來(lái)幫助RNN決定何時(shí)封閉多邊形。
通過(guò)連續(xù)生成多邊形的其他頂點(diǎn),然后順序連接所有頂點(diǎn)即形成這個(gè)多邊形輪廓,整個(gè)過(guò)程(每一個(gè)目標(biāo)事例)平均只需要250毫秒。這個(gè)過(guò)程有一個(gè)奇妙的特點(diǎn)就是,它的每一次迭代結(jié)果都會(huì)影響以后的迭代,這就給人工干預(yù)留了機(jī)會(huì)。如果有一個(gè)頂點(diǎn)的迭代偏離了目標(biāo)事例,那么人們就可以通過(guò)修正這個(gè)頂點(diǎn)來(lái)改進(jìn)目標(biāo)分割的精度。
那么這種方法的結(jié)果怎樣呢?在這之前我們先了解一個(gè)概念:交并比(IoU,Intersection over Union),也即兩個(gè)圖形的交集面積比上并集面積
顯然,在目標(biāo)分割中,標(biāo)注圖形與目標(biāo)事例之間的IoU值越大,說(shuō)明精度越高。我們來(lái)看Polygon-RNN自動(dòng)標(biāo)記與像素標(biāo)記方法標(biāo)記的比較。在假設(shè)Cityscapes中人工標(biāo)注的IoU為100%的情況下,Polygon-RNN自動(dòng)預(yù)測(cè)的結(jié)果(沒(méi)有標(biāo)注人員干預(yù))與通過(guò)像素標(biāo)記方法分割目標(biāo)的DeepMask和SharpMask(與DeepMask比有更高的分辨率,160 vs 56)比較如下圖所示:
這里橫軸指標(biāo)記物體最長(zhǎng)邊的像素大小,縱軸為交并比(IoU)。顯然,在目標(biāo)事例像素較小的時(shí)候,Polygon-RNN方法要比像素標(biāo)記方法精確度更高,而當(dāng)目標(biāo)事例較大時(shí),Polygon-RNN的誤差將會(huì)變得很大。
與人工標(biāo)注相比會(huì)是怎樣的結(jié)果呢?幾位研究人員一方面雇傭了一個(gè)熟練的標(biāo)注員,讓他在隨機(jī)選出的10張Cityscapes圖上標(biāo)記出所有的小汽車(chē)。而另一方面,研究人員通過(guò)算法模擬了一個(gè)“標(biāo)注員”,讓它修正Polygon-RNN自動(dòng)生成的多邊形。其結(jié)果發(fā)現(xiàn)使用Polygon-RNN,模擬“標(biāo)注員”只需要大約9.39次點(diǎn)擊,IoU值就可以達(dá)到78.4%,這要比人工標(biāo)記快4.74倍。我們來(lái)感受下作者的結(jié)果:
幾位研究人員同樣還采用了KITTI的數(shù)據(jù)重復(fù)了上述的比較,結(jié)果毫不例外,Polygon-RNN在自動(dòng)標(biāo)注上和其他像素標(biāo)注方法DeepMask、SharpMask等的精度不相上下,在人工干預(yù)的情況下則會(huì)明顯優(yōu)于后兩者。這說(shuō)明Polygon-RNN的方法根本不依賴于具體的某一個(gè)數(shù)據(jù)庫(kù),完全是一個(gè)能普遍使用的即節(jié)省成本,又節(jié)約時(shí)間,精度還完全勝任的半自動(dòng)化標(biāo)記工具。
當(dāng)然,Polygon-RNN目前仍然有一個(gè)比較嚴(yán)重的問(wèn)題,我們前面也說(shuō)了,那就是對(duì)大尺寸目標(biāo)事例它的誤差會(huì)急劇增大。解決這一問(wèn)題需要模型有更高的分辨率,這也就意味著需要更大的內(nèi)存。能否通過(guò)優(yōu)化模型本身來(lái)降低誤差,而不增加內(nèi)存需求呢?讓我們拭目以待!
雷鋒網(wǎng)(公眾號(hào):雷鋒網(wǎng)) 注:原文鏈接 Annotating Object Instances with a Polygon-RNN
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。