本期 R Talk 主題是細粒度級別影像分析領域的現狀與展望,講述者是曠視科技南京研究院負責人魏秀參博士;主要內容包含 5 個方面:
1)簡單介紹細粒度影像分析領域;
2)細粒度影像檢索現狀;
3)細粒度影像識別現狀;
4)細粒度影像分析相關的其他計算機視覺任務;
5)細粒度影像分析發展展望。
介紹
在傳統計算機視覺研究中,影像分析通常是針對諸如“狗”“車”和“鳥”等傳統意義類別上的分類、檢索。而在許多實際應用中,影像物件往往來自某一傳統類別下較細粒度級別的不同子類類別,如不同種類的“狗”——哈士奇、阿拉斯加、比熊等;或不同種類的“車”——奧迪、寶馬、賓士等。
細粒度級別影像分析是針對此類問題的一項計算機視覺領域熱門研究課題,其目標是對上述細粒度級別影像中的物體子類進行定位、識別及檢索等若干視覺分析任務的研究,具有真實場景下廣泛的應用價值。然而因細粒度級別子類別間較小的類間差異和較大的類內差異,使其區別於傳統影像分析問題成為更具挑戰的研究課題。
現實世界中有非常普遍的細粒度影像分析任務。比如美國大自然保護協會曾在kaggle舉辦的、針對捕魚業中海船上若干種魚類的細粒度分類,甚至還有根據鯨魚尾部進行個體級別的更加細粒度的識別任務。此外,還有針對植物樹葉的細粒度識別, 城市管理場景中對過往車輛的細粒度分析, 新零售場景中商品識別的細粒度識別和檢索等等。
解決細粒度影像分析的一個關鍵是找到細粒度物體的Keypoints,利用這些關鍵部位的不同,進行鍼對性的細粒度分析,如檢索、識別等。目前,細粒度影像分析領域的經典基準資料集包括:
鳥類資料集CUB200-2011,11788張影像,200個細粒度分類
狗類資料集Stanford Dogs,20580張影像,120個細粒度分類
花類資料集Oxford Flowers,8189張影像,102個細粒度分類
飛機資料集Aircrafts,10200張影像,100個細粒度分類
汽車資料集Stanford Cars,16185張影像,196個細粒度分類
細粒度影像分析一直是一個火熱的計算機視覺研究方向。每年計算機視覺頂級會議如CVPR、ICCV、ECCV、IJCAI以及頂級期刊如TPAMI、IJCV、TIP等都有大量相關論文出現。此外,圍繞這一方向還頻繁舉辦相關Workshop和挑戰賽,比如Workshop on Fine-Grained Visual Categorization、The Nature Conservancy Fisheries Monitoring、iFood Classification Challenge等。在細粒度影像分析領域,一些國際頂尖的研究機構,如史丹佛大學、加州伯克利、牛津大學皆是細粒度研究的科研重鎮。
細粒度影像分析一般有兩個核心任務,一是細粒度影像檢索,二是細粒度影像識別。下面將分別進行重點介紹。
細粒度影像分析之影像檢索
傳統影像檢索與細粒度影像檢索
一般來說,影像檢索包含了以文字搜圖、以圖搜圖這兩個搜尋場景。這裡著重討論以圖搜圖,它也被稱為Content Based Image Retrieval(CBIR)。
傳統CBIR的通用流程是:先對輸入影像進行特徵提取,得到特徵向量,進而將若干這樣的特徵向量組合成一個資料集。當進行到影像檢索的過程後,同樣,先對Query影像進行特徵提取,然後將這個向量與之前收集到的資料集中的影像進行最鄰近匹配,這樣便可以從資料集中找到與Query影像相似的影像。
儘管影像檢索這個領域到目前為止已有長足進步,但是它們大多都針對的是通用物體,比如在一些變化不會特別大的剛體之間搜尋,如不同角度、光照下拍攝的艾菲爾鐵塔、一些建築物等等。
如果將這些系統用於更精細的場景,那麼上述方法便顯得力不從心了,如給定一隻鳥的照片,讓系統在兩百多隻各類鳥中找出同類的鳥。下圖展示了細粒度影像檢索與傳統影像檢索之間的差別。
顯然,細粒度影像檢索面對的問題比傳統影像檢索更加複雜,檢索物件所處的環境背景變化、姿態變化以及scale變化都更為明顯。因此,研究人員需要尋求新的方法來完成細粒度影像檢索任務。
細粒度影像檢索之SCDA
對於傳統影像檢索來說,只要讓系統對影像的特徵值進行對比,便可以得出結果,其中不存在任何的監督資訊。然而對於細粒度影像檢索而言,研究人員第一步需要通過無監督的方法將輸入影像中的主要資訊定位出來,從而防止背景或影像中噪聲區域的干擾。
在深入到具體模型之前,先介紹涉及到的重要Notation。
當輸入影像進入預訓練的CNN模型之後,可以得到一個卷積啟用tensor。需要說明的是,這裡使用的預訓練的分類模型,只見過影像級別的標註,沒有見過諸如邊界框這樣關於位置的標註資訊。
特徵圖(Feature map):在得到卷積啟用tensor之後,每一個 h×w 的map就是一個特徵圖,這也被稱為一個通道(channel)。
深度描述子(Descriptor):在得到卷積啟用tensor之後,可以得到 h×w 個 d 維的向量,這裡把這樣的一個 d 維的向量稱為深度描述子(Descriptor)。它描述的是原圖中對應的小patch的資訊。
在對每一個channel進行視覺化研究的過程中,研究人員發現了兩個現象:
(1)對於不同鳥類而言,同一channel的啟用情況可能大不一樣。之所以會出現這一現象,其原因或許與深度學習的分散式表徵本質有關。
(2)對於同一鳥類而言,不同channel所啟用的部位大不相同,有的啟用部位與鳥有關,有的則無關。
因此從上面的觀察能看到,使用全部channel或許會引入噪聲,而僅使用某個channel來定位主要物體也是不理想的。於是,研究人員決定把得到的所有特徵圖從深度方向進行加和,從而得到一個2D的啟用圖。需要說明的是,這裡進行的加和操作依據瞭如下假設,即如果主要物體出現在了圖中,那絕大多數channel都應該在主要物體出現的位置產生啟用。因此,如果加和的部分大於其均值,那麼系統便會判定這裡可能是目標物體出現的空間。
依據這種無監督定位的方法,系統已經可以初步將目標物體從背景中分離出來。不足的是有一些背景或噪聲資訊也被標記了出來。對此,研究者利用了flood-fill的演算法保留主體的定位結果,而較小區域的噪聲或背景則被摒棄。
之後,研究人員基於無監督定位的結果,保留了有效的深度描述子,同時去除背景或噪聲區域深度描述子的干擾,接著對保留下來的描述子進行了融合。在進行融合操作時,研究人員嘗試了下圖中的三種方法。
通過將這三種方法在兩個benchmark資料集(CUB200-2011、Stanford Dogs)上進行對比實驗,研究人員發現,將avgPool和maxPool進行級聯可以獲得最佳效能。這種經過級聯篩選以後得到的特徵被稱為SCDA。
從結果來看,系統現在基本上可以準確地定位物體。
SCDA演算法整體流程圖
以下是一些定性比較結果,通過將演算法無監督定位的結果與ground truth相比,可以發現,二者基本重合,模型的效果比較理想。
紅色虛線為ground truth結果,黃色為SCDA演算法標註結果
此外,研究人員還對SCDA方法進行了加強。
最終測試結果顯示,SCDA方法與其強化方法SCDA+、SCDA_flip+在效能上都超越了現有的所有模型。
當研究人員使用3種後處理方法(PCA、SVD、SVD+whitening)對SCDA_flip+進行進一步加強(256維),它甚至可以拿到比4096維更高的效能表現。
細粒度影像檢索之DDT
在上述提到的SCDA方法中,對於每張圖而言,都有一個自適應的threshold來對每張圖中的物體進行定位。而在真正進行物體定位的時候,人們拿到的往往可能是一批影像,而不是單張。所以我們自然的會希望藉助整個影像集合的資訊,也就是影像與影像之間的協同資訊來做好物體定位。這便對應到了計算機視覺領域的另一個基礎研究課題——物體協同定位 Object Co-Localization。在物體協同定位中,我們唯一依靠的資訊是“這個集合中的影像都有某個共同物體”,對於“共同物體”到底是什麼,甚至都不需要知道。
在協同定位的場景下,人們期望藉助整個影像集合中所有影像之間關係的資訊,由此做好物體的定位。研究人員提出了一個DDT(Deep Descriptor Transforming)方法。與SCDA方法類似,在DDT方法中,屬於同樣語義的影像一開始會被送入一個預訓練的CNN分類網路,得到對應的一些tensors。
對於這些tensors,研究人員需要衡量的是其中每一個描述子的相關程度。其實我們需要的僅僅是一個對映函式:將深度描述子從自身空間對映到一個新空間。在新空間中可方便衡量深度描述子的相關程度。如果結果呈現正相關,那表示這些描述子具有跨影像的物體描述效果,如果負相關,那麼說明這些描述子只和某一張影像相關,不具備通用的描述效果。顯然,在DDT的方法中,threshold天然為一個定值:0。
為了實現這一對映目標,研究人員使用了PCA矩陣分解技術,即通過一組正交變換,將一組可能存在相關性的變數轉換成一組線性不相關的變數。
需要注意的是,這裡僅僅需要PCA的第一維,將這一維當作對映函式。通過這種方法,每一個d維的深度描述子就可以轉化到一個新空間,這個新空間的維度僅僅為1。在該空間中,我們就可以用對映後得到的score衡量描述子之間的相關程度了。
因此,在DDT方法下,系統可以根據多張圖片的協同資訊,將物體定位出來。另外,由於PCA本身具有去噪的效果,所以它可以很好的剔除掉不相關的噪聲圖片。以下圖為例,飛機內部雖然與飛機本身的語義相關,但在影像上該它並沒有出現飛機的任何外貌特徵,所以對應於這張圖的indicator matrix全為負值,即表示這張圖屬於噪聲資訊,需要被剔除掉。
DDT與SCDA效能對比
根據下方對比圖可以發現,由於SCDA只是從單張影像拿到資訊並進行無監督物體定位,因此它有可能將我們不關心的類也標註出來。而對DDT方法而言,由於它是從多張圖片中協同獲取資訊,所以它能夠精確的定位出我們關心的物體位置。
研究人員將兩個模型在4個資料集上進行了效果對比。
前三個資料集的測試結果顯示,DDT方法顯著超越之前的所有方法。
對於ImageNet而言,比較特殊,因為DDT模型使用了基於ImageNet預訓練的CNN模型,所以為了觀察模型的泛化能力,就必須選擇不包含在ImageNet那1000類中的物體類作為測試集。於是研究人員選擇了6個不屬於ImageNet的類來測試DDT的協同定位效果。結果顯示,在面對這些未見過的類別時,DDT演算法顯著好於其它所有演算法。
下圖展示了視覺化的結果。
細粒度影像分析之影像識別
Mask-CNN細粒度影像識別基本思想
細粒度影像識別也可以被稱為細粒度影像分類。在進行細粒度分類時,研究人員借用了做影像檢索時的思想,即“定位主要物體,去掉無效描述子(describetor)”。後續實驗可證實,基於深度描述子篩選的思想不僅有利於細粒度影像檢索,對細粒度影像識別同樣大有裨益。
具體而言,研究人員通過對分析物件新增keypoints,進而生成keyparts,從而生成有關ground truth的邊界框。
然後,研究人員用生成的邊界框來訓練一個分割網路,學習針對物體的mask。
keypart定位效果示意
進一步,研究人員根據習得的mask,生成了對應物體整體、頭部、身體的三個網路。他們在這些網路的最後一層卷積tensor上進行對應的深度描述子篩選與融合。最後,通過將融合的結果進行級聯,研究人員便可以讓模型做最後的細粒度識別任務。
這種細粒度識別方法也超越了當時同類的所有模型。有關細粒度影像分析的真實應用
應用1:RNN-HA車輛細粒度識別模型
對於車輛的細粒度識別而言,難度較大。因為往往同類車輛之間的差異十分微小,比如對於下圖的兩輛奧迪A6來說,其外貌完全一樣,不同之處可能僅僅在於其之上的年檢標誌,或者是車內某些小裝飾。
面對這個難題,研究人員從人類識別的認知邏輯出發,嘗試找到突破口。他們發現當人類在進行車輛細粒度識別時,經歷了兩個過程:判斷車型→同種車型精細對比。
在這個思路的啟發下,研究人員設計了RNN-HA模型。
在上述模型中可以看到,獲取輸入影像資訊以後,一個CNN網路將首先對影像進行特徵抽取,得到一個卷積tensor。
隨後,在step1階段,模型先對車型進行分類(即圖中右側所示的Model-level)。我們可以把這看作一個初步的細粒度識別過程。
當車型分類完成以後,模型會首先對輸出結果做一個Transformer net的變換,生成一個注意力模型,然後才在Step2中,根據得到的注意力嵌入向量判斷應該在同樣的物體類別(如都是奧迪A6)中觀察哪些地方,從而才能將同屬這個類別的車輛分開。
研究人員將該模型在兩個權威的資料集VeRi(50, 000 張圖,776種車輛)、VehichleID(221, 763張圖,26267輛車)上進行了實驗。結果顯示,在這兩個資料集上RNN-HA都超越了當前最優的方法。
下圖展示了車輛細粒度識別的部分視覺化效果。可以看到,系統準確抓住了車輛上細微的區分標識(裝飾物、年檢標識等)。
應用2:新零售場景下的自動商品結算
零售業是人力密集型行業,其中收銀結算佔有相當高的成本。隨著深度學習發展,藉助影像識別技術實現零售行業的降本增效已是大勢所趨。自動收銀結算(Automatic Check-Out/ACO)是其中的核心場景,旨在根據收銀場景影像生成結算清單,並與計算機視覺技術的融合不斷加深。
CV 技術+場景,從來不是一條坦途。從影像識別角度講,ACO 的落地佈滿荊棘,其中既有來自資料本身的問題,也有模型訓練的因素,最後可歸結為 4 個方面: 1)large-scale,2)fine-grained,3) few-shot 和 4)cross-domain。
儘管存在上述問題,ACO 還是有著潛在的研究與商業價值。如果有標註精良的資料集,這一問題或可迎刃而解。為此,研究人員打造了一個目前最大的商品識別資料集——RPC(Retail Product Checkout),來推動新零售自動收銀場景的相關研究和技術進步,它的商品種類高達 200,影像總量達 83k,真實模擬零售場景,且逼真度超過現有同類資料集,同時充分體現出 ACO 問題的細粒度特性。從下圖可以看到,對於同一個大類的商品而言,其子類的商品差異度並不大,所以這是一個天然的細粒度識別問題。
需要說明的是,這裡的RPC資料集在商品種類和影像數量上都遠超現有的同類資料集。
在進行具體的商品資料收集之前,研究人員首先對商品在結算時的擺放模式進行了分級,分為「簡單」、「中等」、「困難」三種模式。
在收集商品的影像資料過程中,研究人員將單個商品置於一個旋轉的檯面,拍下其各方位的影像。該過程模擬了真實商店進行商品錄入的過程。
研究人員期望,基於這些單品示意圖,開發出能夠在上述3種商品擺放模式中準確識別商品種類並計數的模型。
另外,研究人員也為每一個結算影像分別新增了三種不同強度的監督標籤,從弱到強,最強的是邊界框,其次是點,最弱的是僅僅給出圖中出現的購物單。
基於“單品圖作訓練、結算圖作測試”的思想,研究人員提出了一個baseline方法。具體而言分為三步,先通過Saliency detection和CRF將商品從原始資料中摳出來。
然後利用自動合成方法,將這些商品影像直接在結算背景上進行組合。自然地,合成系統也可以為商品加上邊界框。
由於這樣合成的結果不夠真實,所以研究人員在第三步使用了渲染方法,把合成圖轉換成接近真實的影像。
最後,研究人員用渲染以後的圖片來訓練detector。
從baseline的結果來看,雖然detection任務做得很好,但是就ACO任務最關心的整單正確率(cAcc)來說,還有非常大的提升空間,這也鼓勵更多相關研究人員來進一步設計新的視覺演算法來解決這一問題。
細粒度影像分析發展展望
少量樣本細粒度影像識別
目前所有細粒度影像識別任務均需藉助大量、甚至海量的標註資料。對於細粒度影像而言,其影像收集和標註成本巨大。如此便限制了細粒度研究相關的發展及其在現實場景下的應用。反觀人類,我們則具備在極少監督資訊的條件下學習新概念的能力,例如,對於一個普通成年人可僅藉助幾張影像便學會識別鳥類的一個新物種。為了使細粒度級別影像識別模型也能像人類一樣擁有少量訓練樣本下的學習能力,研究人員提出並研究了細粒度級別影像識別的少量樣本學習任務。
所謂少量樣本細粒度識別,即通過讓系統在少量樣本上學習,從而在測試資料上達到較好的細粒度識別效果。以下圖為例,整個灰色區域被稱為一個“episode”,類似於傳統深度學習的一個batch。系統通過在名為“1”、“2”兩隻鳥的訓練資料上進行訓練,進而對後面的evaluation data展開識別。
在模型的訓練過程中,研究人員設計了一種Meta-learning的fashion。他們藉助一個輔助資料集進行類別與影像的取樣,並希望以這種方法來模仿測試集上真正要執行的任務。基於這個輔助資料集,研究人員構造出了若干類似於上圖中測試資料的episode。系統通過對每個episode的樣本進行學習,可以得到一些分類器或者是特徵向量,進而可以在evaluation data上產生loss。藉助這種方法,系統可以學習到一個在測試資料集上泛化能力較好的網路。
就具體的學習策略而言,研究人員希望系統直接根據輸入影像學習到一個對映,對映的物件就是這個輸入影像所屬類別的分類器(classifier)。當系統學習到classifier以後,便可以對evalutation data進行分類。
在FSFG框架中,研究人員首先提出了一個基於Bilinear CNN的方法,通過它,系統可以隱性的學到輸入影像的一些part資訊,進一步,這些part所對應的sub-vector可能就與物體細粒度層面的一些keyparts相關。
隨後,研究人員分別對這些sub-vector進行分段對映,分段對映所對應的便是那些子分類器(sub-classifier)。通過將這些子分類器進行級聯,系統可以學到有關整個物體的分類器。
最後,研究人員將習得的模型在3個主流的細粒度影像資料集(CUB Birds、Stanford Dogs、Stanford Cars)上進行了效能驗證,發現其達到了目前最先進的水平。
附1:視訊連結
《細粒度級別影像分析領域的現狀與展望》視訊連結:https://www.bilibili.com/video/av43499197/
---------解讀者介紹-------
魏秀參,博士,曠視科技南京研究院負責人,南京大學學生創業導師。主要研究領域為計算機視覺和機器學習,在相關領域頂級期刊如IEEE TPAMI、IEEE TIP、IEEE TNNLS、Machine Learning Journal等及頂級會議如ICCV、IJCAI、ICDM、ACCV等發表論文十餘篇,並獲得國際計算機視覺競賽冠、亞軍各一次。著有《解析深度學習——卷積神經網路原理與視覺實踐》一書。曾獲CVPR 2017最佳審稿人、南京大學博士生校長特別獎學金等榮譽,擔任ICCV、CVPR、ECCV、NIPS、IJCAI、AAAI等國際會議PC member。g