四個(gè)月前,谷歌在Kaggle發(fā)布了一項(xiàng)地標(biāo)檢索挑戰(zhàn)賽,在這場比賽中,參賽者會(huì)得到一些圖像,他們需要在所有圖像數(shù)據(jù)集中找到含有給定圖像中地標(biāo)的圖片。
圖像檢索是計(jì)算機(jī)視覺領(lǐng)域的基礎(chǔ)問題,對(duì)于包含地標(biāo)的圖像更是非常重要,因?yàn)檫@是用戶拍攝的熱門對(duì)象。本次挑戰(zhàn)賽的數(shù)據(jù)集是世界最大的圖像檢索數(shù)據(jù)集,其中有超過一百萬張圖像,覆蓋了全球1.5萬個(gè)不同景點(diǎn)。
同時(shí),這項(xiàng)挑戰(zhàn)賽也是CVPR 2018的地標(biāo)辨認(rèn)研討會(huì)的一部分。下面就是本次競賽排名第一的解決方案,參賽隊(duì)伍是由anokas帶領(lǐng)的團(tuán)隊(duì),論智對(duì)其進(jìn)行了編譯。
解決方案包括兩個(gè)主要元素:
首先,創(chuàng)建一個(gè)高性能的全局描述符(global descriptor),它可以將數(shù)據(jù)庫中的圖像用奇異向量表示;
然后,創(chuàng)建一個(gè)高效的框架,能將這些向量和最可能的圖片聯(lián)系起來,最后提交到積分榜上。
下面是總體框架的流程圖,其中每一步應(yīng)用后都有對(duì)應(yīng)的LB分?jǐn)?shù)。
注:下文中所有分?jǐn)?shù)都以百分?jǐn)?shù)表示,即62.5%=0.625
方案詳細(xì)講解
全局描述符(Global Descriptors)
我們的方案中最主要的部分就是幾個(gè)全局描述符,這些向量描述了圖片的全部內(nèi)容。我們從兩個(gè)預(yù)訓(xùn)練的CNN模型開始(ResNet和ResNeXt),并用四種目前最先進(jìn)的集結(jié)方法(aggregation methods)生成全局描述符。下面是四種集結(jié)方法各自的細(xì)節(jié)以及它們“原始”的表現(xiàn)性能(也就是沒有進(jìn)行檢索詞擴(kuò)展和數(shù)據(jù)庫擴(kuò)展):
基于區(qū)域熵的多層抽象池化(REMAP)[42.8% mAP]:我們之前設(shè)計(jì)的一個(gè)全局描述符聚合了不同CNN層的深度特征,之后經(jīng)過訓(xùn)練可以表示多個(gè)水平的可視化抽象對(duì)象。我們將在之后的CVPR研討會(huì)上進(jìn)一步展示REMAP的細(xì)節(jié)架構(gòu)。
最大卷積激活值(MAC)[32.9% mAP]:MAC描述符將每個(gè)CNN的最后一層卷積過濾的最大局部回應(yīng)進(jìn)行編碼。在它的架構(gòu)中,ResNeXt的最后一個(gè)卷積層后面有一個(gè)最大池化層、L2-正則化層和PCA+白化層。
卷積的池化和(SPoC)[31.7% mAP]:在SPoC這一過程中,ResNeXt的最后一個(gè)卷積層后接池化和層、L2-正則化層和PCA+白化層。
卷積的區(qū)域最大激活值(RMAC)[34.7% mAP]:在RMAC中,ResNeXt最后的卷積特征是在多個(gè)規(guī)模重疊區(qū)域中進(jìn)行的最大池化。這些區(qū)域同樣是基于有L2-正則化層和PCA+白化層的描述符。最后把所有描述符匯總到一個(gè)單一的描述符中。
基礎(chǔ)的CNN網(wǎng)絡(luò)(ResNet和ResNeXt)是在ImageNet上進(jìn)行的訓(xùn)練,之后再一個(gè)地標(biāo)數(shù)據(jù)集的子集中進(jìn)行調(diào)整。該子集來自Babenko等人的研究成果,其中包括大約12萬張圖片和650個(gè)著名景點(diǎn)。
這一數(shù)據(jù)集中的圖像最初是在圖片搜索引擎中用文字搜到的,沒有經(jīng)過檢驗(yàn),所以其中可能含有很多不相關(guān)的圖片,這需要我們過濾掉。刪除圖片的過程是半自動(dòng)的,利用帶有密集SIFT特征的Hessian-affine檢測器以及RVD-W描述符進(jìn)行聚合。處理完圖像后,還剩下25000張左右的圖片,都屬于一種地標(biāo),我們想用它對(duì)模型進(jìn)行調(diào)整。
我們沒有用其他類似競賽中的數(shù)據(jù)集作為訓(xùn)練數(shù)據(jù),因?yàn)槲覀兿肟纯丛谛碌臄?shù)據(jù)集下,我們的方案生成的效果如何。
合并描述符
通過用上述方法訓(xùn)練的六個(gè)全局描述符合并,就得到了最終的全局描述符(括號(hào)中的是LB分?jǐn)?shù)):
ResNeXt+REMAP(42.8%)
ResNeXt+RMAC(34.7%)
ResNeXt+MAC(32.9%)
ResNeXt+SPoC(31.7%)
ResNet+REMAP(35.8%)
ResNet+MAC(30.4%)
接著我們將每個(gè)描述符縮放到固定的L2 norm上,為每個(gè)描述符分配權(quán)重,按以下方式連接描述符:
XG = [2× ResNeXt+REMAP; 1.5× ResNeXt+RMAC; 1.5× ResNeXt+MAC; 1.5× ResNeXt+SPoC; ResNet+MAC; ResNet+REMAP]
權(quán)重的選擇是點(diǎn)對(duì)點(diǎn)的,以反映每種方法相應(yīng)的性能。之后,我們用PCA將描述符的維度降到4K,同時(shí)應(yīng)用白化,讓所有維度的方差相同。雖然PCA和白化只能改善一小部分,但是它將查詢擴(kuò)展的結(jié)果提升了幾個(gè)百分點(diǎn)。
最近鄰搜索
創(chuàng)建好描述符后,每張圖片都由一個(gè)4096維的描述符表示。接下來,我們用復(fù)雜的k-最近鄰搜索找到每張圖前2500個(gè)近鄰和L2距離。這一階段提交每張圖片的前100個(gè)最近鄰得到了47.2%的分?jǐn)?shù)。
這一步驟使用優(yōu)化過的NumPy代碼實(shí)現(xiàn),用了2小時(shí)對(duì)每個(gè)1.2M的圖片找出了前2500個(gè)最近鄰。
數(shù)據(jù)庫增強(qiáng)
接下來要做的是數(shù)據(jù)庫增強(qiáng)(DBA),即把數(shù)據(jù)庫中每張圖片的描述符換成它本身和前10個(gè)最近鄰的加權(quán)結(jié)合。目的就是利用它們近鄰的特征提高圖像表示的質(zhì)量。更準(zhǔn)確的是,我們進(jìn)行描述符的加權(quán)求和,其中權(quán)重按以下代碼計(jì)算:
weights = logspace(0, -1.5, 10)
有趣的是,在其他數(shù)據(jù)集上我們發(fā)現(xiàn)只要用大于兩個(gè)近鄰進(jìn)行增強(qiáng)就會(huì)讓分?jǐn)?shù)下降,但10個(gè)近鄰對(duì)數(shù)據(jù)集增強(qiáng)和圖片是最好的。
需要注意的是,DBA是整個(gè)過程中添加的最后一步,雖然它能讓分?jǐn)?shù)得到大幅提升,但是將它和查詢擴(kuò)展結(jié)合起來時(shí),提升只有1%—2%。我們認(rèn)為這是由于數(shù)據(jù)庫擴(kuò)展與查詢擴(kuò)展方法的第一步很相似。
查詢擴(kuò)展
查詢擴(kuò)展是圖像檢索問題中的基礎(chǔ)技術(shù),通常對(duì)模型的性能有很大提升。它工作的原理是:如果A與B匹配,B與C匹配,那么A與C匹配。我們可以在下面的實(shí)例中看到這種原理的優(yōu)勢,圖中三個(gè)區(qū)域相互重疊:
在這一案例中,查詢擴(kuò)張系統(tǒng)可以將A和C聯(lián)系起來,判斷它們屬于同一場景,即使它們?nèi)置枋龇赡懿幌喾_@在一些光線不同或視角不同的圖像中也很有用。
在這次比賽中,我們?cè)O(shè)計(jì)了一種新的、快速的技術(shù)用于查詢擴(kuò)展,它可以通過遞歸運(yùn)行捕捉圖像之間的長距離連接。這種特點(diǎn)非常適合這一問題,因?yàn)楹心硞€(gè)地標(biāo)的圖像有很多,只有一張圖像才能成為查詢結(jié)果,其他的只能歸為top 100的結(jié)果中。
第一次迭代后,查詢擴(kuò)展提升了約11%,進(jìn)行了30分鐘的遞歸運(yùn)行后,提升了14%,加入數(shù)據(jù)增強(qiáng)后這一結(jié)果有所下降。
簡化模型
在產(chǎn)品級(jí)機(jī)器學(xué)習(xí)環(huán)境中,由于收益遞減原則,幾乎不會(huì)使用大規(guī)模的多模型集成。通常使用較小的子集就能達(dá)到理想性能。我們想得到原來方案的簡化版本,只需要不到12個(gè)小時(shí),僅僅用ResNeXt-REMAP和查詢擴(kuò)展就能得到56%—57%的分?jǐn)?shù)。
不足之處
局部描述符:這可能是我們?cè)诒荣愔凶钜庀氩坏降氖隆N覀冊(cè)嚵撕脦追N基于多種局部描述符的方法,包括使用和不使用幾何驗(yàn)證的方法,例如用它對(duì)我們的結(jié)果重新排名,或者用它從上到下瀏覽幾千個(gè)全局近鄰,找找有沒有遺漏掉的局部匹配。不知道其他隊(duì)伍使用局部描述符的情況如何,也許是基于CNN的全局描述符太好用了以至于局部的時(shí)代終結(jié)了?
處理旋轉(zhuǎn)圖像:在數(shù)據(jù)集中我們發(fā)現(xiàn)很多圖片都是旋轉(zhuǎn)的。我們用好幾種方法處理這個(gè)問題,例如在k-最近鄰方法中比較旋轉(zhuǎn)和不旋轉(zhuǎn)的描述符,并為每組圖像進(jìn)行最近匹配。但是分?jǐn)?shù)依然沒有變化。有可能是因?yàn)檫@個(gè)數(shù)據(jù)集有太多干擾項(xiàng)了,誤報(bào)率太高,即使真正匹配對(duì)整體分?jǐn)?shù)的影響也不大。
集成:我們?cè)嚵撕脦追N方法將不同模型和方法的結(jié)果結(jié)合起來,例如排序平均和交錯(cuò)預(yù)測等,然而成效不大。似乎早期將模型結(jié)合比結(jié)束時(shí)結(jié)合要好一些。
-
圖像檢索
+關(guān)注
關(guān)注
0文章
28瀏覽量
8054 -
計(jì)算機(jī)視覺
+關(guān)注
關(guān)注
8文章
1701瀏覽量
46167 -
數(shù)據(jù)集
+關(guān)注
關(guān)注
4文章
1210瀏覽量
24854
原文標(biāo)題:Kaggle地標(biāo)圖片檢索挑戰(zhàn)賽冠軍方案講解
文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
微軟AI開發(fā)者挑戰(zhàn)賽即將開啟
優(yōu)秀獎(jiǎng)及決賽陣容震撼公布 第二屆OpenHarmony創(chuàng)新應(yīng)用挑戰(zhàn)賽決戰(zhàn)在即
![優(yōu)秀獎(jiǎng)及決賽陣容震撼公布 第二屆OpenHarmony創(chuàng)新應(yīng)用<b class='flag-5'>挑戰(zhàn)賽</b>決戰(zhàn)在即](https://file1.elecfans.com//web3/M00/05/E6/wKgZO2eFuLmAVPqVAAFxDve5lxk244.png)
探索具身智能邊界,地瓜機(jī)器人邀你共戰(zhàn)ICRA 2025 Sim2Real挑戰(zhàn)賽
![探索具身智能邊界,地瓜機(jī)器人邀你共戰(zhàn)ICRA 2025 Sim2Real<b class='flag-5'>挑戰(zhàn)賽</b>](https://file1.elecfans.com/web3/M00/05/E1/wKgZO2eFBH-AWNHxAACh7ZO_HwQ596.png)
芯華章持續(xù)助力EDA精英挑戰(zhàn)賽
EDA精英挑戰(zhàn)賽賽果公布!思爾芯“戰(zhàn)隊(duì)”薪火相承斬獲“麒麟杯”
![EDA精英<b class='flag-5'>挑戰(zhàn)賽</b><b class='flag-5'>賽</b>果公布!思爾芯“戰(zhàn)隊(duì)”薪火相承斬獲“麒麟杯”](https://file.elecfans.com/web2/M00/4B/6A/pYYBAGKoTXWAFdqwAAAWmg44LUs841.png)
谷歌云宣布一項(xiàng)重要人事任命
e絡(luò)盟社區(qū)攜手恩智浦發(fā)起智能空間樓宇自動(dòng)化挑戰(zhàn)賽
![e絡(luò)盟社區(qū)攜手恩智浦發(fā)起智能空間樓宇自動(dòng)化<b class='flag-5'>挑戰(zhàn)賽</b>](https://file1.elecfans.com/web2/M00/05/80/wKgaombQICaAPepUAAAwXc5HTsY593.png)
2024年ICPC與華為挑戰(zhàn)賽冠軍杯圓滿落幕
PI助力aCentauri車隊(duì)在太陽能車挑戰(zhàn)賽中大放異彩
![PI助力aCentauri車隊(duì)<b class='flag-5'>在</b>太陽能車<b class='flag-5'>挑戰(zhàn)賽</b>中大放異彩](https://file1.elecfans.com/web2/M00/0B/3C/wKgaomcd2Z-ABzPZAAAf5fhdJMk310.png)
50萬獎(jiǎng)金池!開放原子大賽——第二屆OpenHarmony創(chuàng)新應(yīng)用挑戰(zhàn)賽正式啟動(dòng)
NVIDIA為AI城市挑戰(zhàn)賽構(gòu)建合成數(shù)據(jù)集
AI4Science黑客松光子計(jì)算挑戰(zhàn)賽成功舉辦
思爾芯賽題正式發(fā)布,邀你共戰(zhàn)EDA精英挑戰(zhàn)賽!
![思爾芯<b class='flag-5'>賽</b>題正式<b class='flag-5'>發(fā)布</b>,邀你共戰(zhàn)EDA精英<b class='flag-5'>挑戰(zhàn)賽</b>!](https://file.elecfans.com/web2/M00/4B/6A/pYYBAGKoTXWAFdqwAAAWmg44LUs841.png)
評(píng)論