新聞中心

EEPW首頁(yè) > 智能計(jì)算 > 業(yè)界動(dòng)態(tài) > 深度學(xué)習(xí)在視覺(jué)搜索和匹配中的應(yīng)用

深度學(xué)習(xí)在視覺(jué)搜索和匹配中的應(yīng)用

作者:Karsten Noe 時(shí)間:2020-09-17 來(lái)源:AI公園 收藏

導(dǎo)讀

通過(guò)使用預(yù)訓(xùn)練網(wǎng)絡(luò)在遙感圖像應(yīng)用中減少對(duì)標(biāo)注數(shù)據(jù)的需求。

本文引用地址:http://butianyuan.cn/article/202009/418421.htm

是一個(gè)了不起的方法,用于遙感數(shù)據(jù)集,如衛(wèi)星或航空照片的目標(biāo)檢測(cè)和分割/匹配。然而,就像的許多其應(yīng)用場(chǎng)景一樣,獲得足夠的帶標(biāo)注的訓(xùn)練數(shù)據(jù)可能會(huì)耗費(fèi)大量的時(shí)間。在這篇文章中,我將介紹一些我們的工作,即使用預(yù)先訓(xùn)練好的網(wǎng)絡(luò)來(lái)在遙感數(shù)據(jù)的目標(biāo)檢測(cè)任務(wù)中避免標(biāo)注大型訓(xùn)練數(shù)據(jù)集的大量繁瑣工作。

2019年9月中旬,我參加了北歐遙感會(huì)議。從許多會(huì)談中可以明顯看出,已經(jīng)進(jìn)入許多遙感專(zhuān)家的工具箱。觀眾們對(duì)這個(gè)話題的興趣似乎很大,他們討論了在各種應(yīng)用中使用深度學(xué)習(xí)技術(shù)的影響和適用性。

討論的內(nèi)容之一是使用為一種數(shù)據(jù)(通常是自然圖像)開(kāi)發(fā)和訓(xùn)練的神經(jīng)網(wǎng)絡(luò),并將其應(yīng)用于其他類(lèi)型(遙感)數(shù)據(jù)源中的實(shí)踐。例如,來(lái)自挪威計(jì)算中心的?ivind Due Trier展示了一項(xiàng)工作,在一個(gè)為計(jì)算機(jī)視覺(jué)應(yīng)用開(kāi)發(fā)的標(biāo)準(zhǔn)的物體檢測(cè)網(wǎng)絡(luò)應(yīng)用于過(guò)濾海拔地圖上,為了定位挪威考古遺址。這里,來(lái)自聽(tīng)眾的反對(duì)意見(jiàn)是,使用這個(gè)模型沒(méi)有意義。我強(qiáng)烈反對(duì)這一點(diǎn),盡管神經(jīng)網(wǎng)絡(luò)是為自然圖像開(kāi)發(fā)的,但在其他數(shù)據(jù)源上測(cè)試它也是有意義的。在這種情況下,演示者可以演示它的工作原理!在我看來(lái),甚至嘗試在數(shù)據(jù)源之間遷移學(xué)習(xí)也是有意義的 —— 為什么用在另一種數(shù)據(jù)集上訓(xùn)練的濾波器來(lái)初始化網(wǎng)絡(luò)會(huì)比隨機(jī)初始化更糟糕呢?開(kāi)發(fā)的模型可能太大,容易過(guò)擬合,但是使用現(xiàn)有代碼庫(kù)和預(yù)訓(xùn)練過(guò)的模型進(jìn)行快速試驗(yàn)的好處往往太大,因此進(jìn)行試驗(yàn)是很有意義的。

在這篇文章的其余部分,我將展示一些我們?cè)趯?shí)驗(yàn)室中所做的工作,這些工作是將一個(gè)在一個(gè)領(lǐng)域(ImageNet自然圖像)訓(xùn)練過(guò)的網(wǎng)絡(luò)用于在另一個(gè)領(lǐng)域(航拍圖像)進(jìn)行基于圖像的搜索。希望我能使你相信這種方法是有意義的。我并不是說(shuō)ImageNet網(wǎng)絡(luò)可以得到最好的結(jié)果,而是說(shuō)在考慮可能需要的標(biāo)注工作量時(shí),使用跨域網(wǎng)絡(luò)確實(shí)有意義。

視覺(jué)搜索以及所需的訓(xùn)練數(shù)據(jù)

深度學(xué)習(xí)或其他機(jī)器學(xué)習(xí)技術(shù)可用于開(kāi)發(fā)識(shí)別圖像中物體的魯棒方法。對(duì)于來(lái)自飛機(jī)的航拍圖像或高分辨率衛(wèi)星照片,這將使不同物體類(lèi)型的匹配、計(jì)數(shù)或分割成為可能。然而,使用深度學(xué)習(xí)需要大量的訓(xùn)練數(shù)據(jù),除非你已有了可用的用于所需的物體類(lèi)別的注冊(cè)數(shù)據(jù),而創(chuàng)建這樣一個(gè)訓(xùn)練數(shù)據(jù)集是一個(gè)非常耗時(shí)的過(guò)程。

因此,在與哥本哈根市的合作中,我們朝著一種工具邁進(jìn)了一步,該工具可以用于匹配所需的物體類(lèi)型,而不需要預(yù)先創(chuàng)建訓(xùn)練數(shù)據(jù)。該工具基于之前的一個(gè)項(xiàng)目背后的技術(shù)。這個(gè)在線演示可以讓你點(diǎn)擊丹麥航拍圖像數(shù)據(jù)集上的一個(gè)地方,并查看丹麥的100個(gè)看起來(lái)最相似的地方。相似度度量是基于一個(gè)訓(xùn)練有素的神經(jīng)網(wǎng)絡(luò)來(lái)區(qū)分不同的物體類(lèi)型。例如,點(diǎn)擊游艇碼頭或風(fēng)力渦輪機(jī)將會(huì)產(chǎn)生以下結(jié)果:

1.jpg

基本上,該技術(shù)的工作原理是將數(shù)據(jù)集分割成一堆小片段(在本例中是4800萬(wàn)個(gè)片段),每個(gè)片段運(yùn)行一個(gè)Resnet-34網(wǎng)絡(luò),該網(wǎng)絡(luò)訓(xùn)練用來(lái)區(qū)分ImageNet數(shù)據(jù)集中的1000個(gè)不同物體。我們沒(méi)有使用最終的分類(lèi)(1000個(gè)類(lèi)中的一個(gè)),而是從網(wǎng)絡(luò)中為每個(gè)片段提取一個(gè)所謂的描述符,它由2048個(gè)數(shù)字組成。為了節(jié)省內(nèi)存和減少計(jì)算負(fù)擔(dān),我們訓(xùn)練了一個(gè)自動(dòng)編碼器神經(jīng)網(wǎng)絡(luò)來(lái)壓縮2048個(gè)數(shù)字到512位。在那之后,來(lái)自航拍圖像數(shù)據(jù)集的4800萬(wàn)個(gè)圖像片段可以在不到80毫秒內(nèi)與一個(gè)新的片段相比較!autoencoder是針對(duì)這個(gè)特定的數(shù)據(jù)集進(jìn)行訓(xùn)練的,這意味著它可以以自監(jiān)督的方式擬合相關(guān)的特征。

在一開(kāi)始,這個(gè)解決方案有一些弱點(diǎn),為了使技術(shù)更健壯,我們解決了:

  • 我們改進(jìn)了旋轉(zhuǎn)不變性,基于從網(wǎng)絡(luò)輸出提取的描述子,對(duì)圖像片段旋轉(zhuǎn)0, 90, 180和270度。

  • 基于不同尺度的片段計(jì)算描述符。這可以找到不同大小的物體。

  • 我們開(kāi)發(fā)了一種“refining”搜索的交互式方法,使得匹配不只是基于單個(gè)片段,而是基于多個(gè)片段。

從2016年公開(kāi)的12.5厘米分辨率的丹麥spring航拍圖像數(shù)據(jù)集中,我們?cè)诟绫竟車(chē)囊韵聟^(qū)域計(jì)算了3種不同比例的8,838,984個(gè)片段的描述符:

2.png

交互式匹配

交互式匹配目前還處于原型階段,最好通過(guò)一個(gè)示例來(lái)解釋?zhuān)杭僭O(shè)我們想要映射一個(gè)區(qū)域中航行的所有船只。我們首先選擇一個(gè)包含一艘船的片段:

3.png

基于所存儲(chǔ)的描述符,系統(tǒng)計(jì)算所選片段與所有其片段出之間的“距離”(相似性)。然后,排序完成,100個(gè)最相似的片段顯示給用戶:

4.png

可以看到,這些片段中有一些包含船只,但結(jié)果遠(yuǎn)遠(yuǎn)不夠好。用戶現(xiàn)在可以選擇一些他滿意的片段:

5.png

然后,將所選擇的所有片段和數(shù)據(jù)庫(kù)中所有片段的描述符進(jìn)行比較,再根據(jù)它們的平均相似距離進(jìn)行排序。這就產(chǎn)生了下面的前100名:

6.png

可以看到有顯著的改善。我們可以選擇再運(yùn)行一次迭代搜索,通過(guò)選擇更多的我們滿意的片段,并再次運(yùn)行排序:

7.png
8.png

船只仍在前100名之列,這是一個(gè)好跡象。請(qǐng)注意,我們之前標(biāo)記為滿意的片段不再出現(xiàn)在交互式細(xì)分中。

從排序到匹配

迭代方法的結(jié)果是對(duì)880萬(wàn)個(gè)片段進(jìn)行排序,基于在交互細(xì)化過(guò)程中選擇的片段的平均相似距離。理想情況下,應(yīng)該有個(gè)邊界,前N個(gè)片段包含船只,剩下的片段是沒(méi)有的。然而,在實(shí)際中,更確切地說(shuō),是前M個(gè)片段包含船只,之后在片段M和片段N之間有一個(gè)間隔,其中一些包含船只,而不是所有都包含船只。在M之后的片段被假設(shè)不包含船,以避免誤報(bào)。我們創(chuàng)建了一個(gè)快速而粗糙的用戶界面,用戶可以在其中檢查已排序的片段,并為M和N建立一些有用的值。

9.png

如果排序是好的,如果M和N被合理地設(shè)置,你現(xiàn)在就有了干凈的訓(xùn)練數(shù)據(jù),包括包含船只的片段(排序M)和不包含船只的片段(排序N)。這可以用來(lái)訓(xùn)練一個(gè)分類(lèi)網(wǎng)絡(luò)(或者可能的目標(biāo)檢測(cè)網(wǎng)絡(luò))來(lái)識(shí)別船只。然而,在我們的例子中,我們選擇測(cè)試一種更簡(jiǎn)單的啟發(fā)式來(lái)匹配船:我們?cè)谂判蛑袕腗之前選擇了100個(gè)隨機(jī)的片段(正樣本),在N之后選擇了100個(gè)隨機(jī)的片段(負(fù)樣本)。這些片段組成了一個(gè)200個(gè)樣本的比較集。對(duì)于M和N之間的每個(gè)片段,我們找到與比較集中描述符最相似的兩個(gè)片段。如果這兩個(gè)片段都是正樣本,片段被接受為一條船,并且片段的輪廓被保存為一個(gè)多邊形。對(duì)于所有正的示例樣本(排序rank<M),也創(chuàng)建一個(gè)多邊形。結(jié)果概覽如下:

10.png

放大后,你可以看到像這樣的東西(由于某些原因,包圍框少了一條邊):

11.png

匹配并不完美,但在不到一刻鐘的時(shí)間內(nèi),該技術(shù)可以提供情況的概述。與此同時(shí),你也為訓(xùn)練數(shù)據(jù)集創(chuàng)造了一個(gè)很好的起點(diǎn),可以用來(lái)訓(xùn)練神經(jīng)網(wǎng)絡(luò)或其他機(jī)器學(xué)習(xí)方法。

匹配樹(shù)木

用同樣的重復(fù)的過(guò)程來(lái)匹配樹(shù)木樹(shù),得到一個(gè)像這樣的匹配:

12.png

放大,看起來(lái)是這樣:

13.png
14.png

同樣,這個(gè)匹配并不完美,但它為進(jìn)一步的工作提供了一個(gè)良好的起點(diǎn)。

我希望這篇文章在如何使用預(yù)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)的物體定位方面能激發(fā)一些靈感,比如從地圖中提取訓(xùn)練數(shù)據(jù)。我很有興趣了解更多潛在的使用案例,所以如果你曾經(jīng)需要在大圖片(如地圖)中尋找特定的物體,請(qǐng)留下評(píng)論!

另外,我非??释?tīng)到你的想法,如何使用自監(jiān)督的方法來(lái)創(chuàng)建一個(gè)更好的圖像patch的嵌入表示。


英文原文:https://towardsdatascience.com/deep-learning-for-visual-searches-and-mapping-89b85061ef9e




關(guān)鍵詞: 深度學(xué)習(xí)

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉