如何使用NTS理解細(xì)粒度圖像分類

這篇文章給大家介紹如何使用NTS理解細(xì)粒度圖像分類,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

成都創(chuàng)新互聯(lián)云計(jì)算的互聯(lián)網(wǎng)服務(wù)提供商,擁有超過13年的服務(wù)器租用、西云機(jī)房、云服務(wù)器、網(wǎng)站空間、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn),已先后獲得國家工業(yè)和信息化部頒發(fā)的互聯(lián)網(wǎng)數(shù)據(jù)中心業(yè)務(wù)許可證。專業(yè)提供云主機(jī)、網(wǎng)站空間、申請域名、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。

導(dǎo)讀  

細(xì)粒度圖像分類的一些問題和挑戰(zhàn)。

自從2012年的ILSVRC競賽Alexnet贏得冠軍以來,計(jì)算機(jī)視覺已經(jīng)非常出色了。這是人們在開始研究這項(xiàng)快速發(fā)展的技術(shù)時(shí)經(jīng)常會(huì)遇到的說法。這個(gè)博客是為了理解細(xì)粒度視覺分類(FGVC)這一具有挑戰(zhàn)性的問題,下面的文章將對此進(jìn)行詳細(xì)描述。

有關(guān)Pytorch代碼實(shí)現(xiàn),請參考以下github庫:https://github.com/yangze0930/NTS-Net

在這個(gè)過程中,人們可以理解最初可能面臨的挑戰(zhàn),以及如何使用本文有趣的架構(gòu)從剛開始時(shí)的42%達(dá)到87%的驗(yàn)證精度(數(shù)字是基于我的經(jīng)驗(yàn))。使用的數(shù)據(jù)集是FGVC Aircraft variant。后面,我還在Stanford-Cars數(shù)據(jù)集上進(jìn)行了訓(xùn)練。


第一部分:初始嘗試和誤差

 

細(xì)粒度視覺分類

我們知道,視覺分類任務(wù)指創(chuàng)建一個(gè)模型來捕獲從輸入圖像到相應(yīng)輸出類的關(guān)系。然而,F(xiàn)GVC的任務(wù)和普通的分類不太一樣,因?yàn)轭悆?nèi)差異比類間差異更多。這就是為什么我們的目標(biāo)是在視覺上類似的類中捕獲有區(qū)別的特征。尋找這樣的特征具有挑戰(zhàn)性。此外,對樣本中信息最豐富的區(qū)域進(jìn)行邊界框的標(biāo)注代價(jià)昂貴。

當(dāng)開始處理問題時(shí),可以使用圖像分類的一般方法,即使用標(biāo)準(zhǔn)的預(yù)訓(xùn)練模型,并對其進(jìn)行微調(diào),以達(dá)到正確的任務(wù)參數(shù)集合。如本文所述,以下鏈接的數(shù)據(jù)集有三個(gè)層次進(jìn)行分類,即manufacturer、family和variant 層次。細(xì)粒度分類是variant級(jí)別的。

開始的時(shí)候,我使用標(biāo)準(zhǔn)的pre-trained模型,并嘗試了不同的調(diào)整,在manufacturer上能得到66%的驗(yàn)證準(zhǔn)確性,在variant上可以得到42%的準(zhǔn)確率,嘗試了NTS后,在variant上第一次就可以得到87%。對于像我這樣的初學(xué)者來說,理解一個(gè)復(fù)雜問題的工作代碼并獲得正確的見解是非常有幫助的。


 

第二部分:是什么導(dǎo)致了這個(gè)效果

 

NTS-NET

如前所述,收集每個(gè)樣本中信息最豐富區(qū)域的邊界框的標(biāo)注樣本是非常昂貴的。這正是本文所提供的幫助。它有效地局部化了這些信息區(qū)域,而不需要邊界框標(biāo)注。

本文中創(chuàng)建的模型稱為NTS-NET,使用三個(gè)協(xié)同工作的“agent”在基準(zhǔn)數(shù)據(jù)集( FGVC aircraft、Stanford Cars、Caltech-UCSD Birds)中實(shí)現(xiàn)最先進(jìn)的性能。

這三個(gè)代理被定義為Navigator、Teacher和Scrutinizer。讓我們討論一下它們的作用。

The Navigator agent網(wǎng)絡(luò)導(dǎo)航模型,以關(guān)注信息最豐富的區(qū)域。對于圖像中的每個(gè)區(qū)域,Navigator通過對損失排序來預(yù)測該區(qū)域的信息量(如下所述),并利用這些預(yù)測來提出信息最豐富的區(qū)域?,F(xiàn)在的問題是:如何在圖像中得到有用的可變長度的“區(qū)域”?好了,這個(gè)問題前面已經(jīng)有了答案,所以請耐心等待我來理解每個(gè)agent的高級(jí)功能。

Teacher agent對Navigator提出的信息量最大的區(qū)域進(jìn)行評估,并提供反饋:對于每個(gè)提出的區(qū)域,Teacher評估其概率為ground-truth class。置信度評估指導(dǎo)navigator網(wǎng)絡(luò)使用排序一致性損失函數(shù)(在代碼實(shí)現(xiàn)中稱為“ranking loss”),提出信息更豐富的區(qū)域。

當(dāng)teacher提供更精確的監(jiān)督時(shí),navigator會(huì)將更多的信息區(qū)域局部化,從而使teacher受益。

Scrutinizer agent從Navigator中對提出的區(qū)域進(jìn)行審查并進(jìn)行細(xì)粒度分類:將每個(gè)提出的區(qū)域擴(kuò)大到相同大小,agent從中提取特征,將區(qū)域特征與整幅圖像的特征聯(lián)合處理,進(jìn)行細(xì)粒度分類,是解決這一復(fù)雜問題的主要方法。

信息區(qū)域有助于更好地表征物體,因此將信息區(qū)域的特征與全圖像融合將獲得更好的性能。

因此,目標(biāo)是局部化物體中信息最豐富的區(qū)域。

如何使用NTS理解細(xì)粒度圖像分類

圖1:NTS模型結(jié)構(gòu)  
 

現(xiàn)在讓我們回到上面討論的問題,即如何在圖像中得到有用的可變長度“區(qū)域”?導(dǎo)航到可能的信息區(qū)域可以看作是在R-CNN論文中引入的區(qū)域建議網(wǎng)絡(luò)(RPN)的問題,我將在這里討論它的相關(guān)性。

 

第1節(jié):區(qū)域建議

在討論區(qū)域建議如何在NTS上實(shí)施之前,我應(yīng)該先簡單介紹一下它的起源。如果你知道,請隨意跳過這個(gè)部分。

有幾個(gè)進(jìn)行區(qū)域建議的方法:

i) 滑動(dòng)窗口:滑動(dòng)窗口中,你在所有固定大小的滑動(dòng)圖像的窗口上運(yùn)行一個(gè)訓(xùn)練分類器,然后運(yùn)行檢測器來查看物體是什么。我們可以使用這種算法,但缺點(diǎn)是它可能會(huì)檢查許多這樣的沒有物體的窗口,因此提出了R-CNN算法。

ii) R-CNN:在這個(gè)方法中進(jìn)行分割算法,獲取可能包含物體的區(qū)域,只在這些區(qū)域上運(yùn)行分類器。缺點(diǎn)是速度慢,因?yàn)榻ㄗh的區(qū)域一次只分類一個(gè)類別。

iii) Fast R-CNN:用分割算法進(jìn)行區(qū)域建議,與R-CNN不同的是,所有建議的區(qū)域都使用卷積式滑動(dòng)窗口實(shí)現(xiàn)同時(shí)分類。

iv) Faster R-CNN:使用區(qū)域建議網(wǎng)絡(luò),簡稱RPN,它需要錨(以不同的大小、尺度和長寬比分布在圖像各處的邊界框)和ground truth邊界框來建議信息區(qū)域,而不是傳統(tǒng)的分割算法。


 

第2節(jié):NTS中的區(qū)域建議是什么樣的?

在本文中,默認(rèn)的錨被放置在整個(gè)圖像中,而NTS-model,通過代碼實(shí)現(xiàn)中的自定義損失(學(xué)習(xí)是因?yàn)?/em>我們沒有使用帶標(biāo)注的邊框)從這些錨點(diǎn)中學(xué)習(xí)了最具信息的錨點(diǎn)。這些錨定義了代碼中定義的由Prosposal_Net(或Navigator Network)給出的建議區(qū)域的坐標(biāo),并使用NMS(非最大抑制)去除冗余(重疊區(qū)域)并給出top_n的建議區(qū)域。

如何使用NTS理解細(xì)粒度圖像分類

圖2:TOP 3 由NTS學(xué)到的最具信息的區(qū)域,F(xiàn)GVC Aircraft數(shù)據(jù)集  
 

如何使用NTS理解細(xì)粒度圖像分類

圖2:TOP 3 由NTS學(xué)到的最具信息的區(qū)域,Stanford-Cars數(shù)據(jù)集  
 

第3節(jié):NTS-NET中各種損失的描述

在論文中使用的自定義損失有很多,后來累計(jì)在總損失中,即原始損失、concat損失、rank損失和part_cls損失。

:代碼中使用的損失術(shù)語與論文中的不同,分別是Navigator、Teacher和Scrutinizer的損失,這里我使用代碼中使用的損失。

Total loss= Raw_loss+Rank_loss+Concat_loss+Part_cls_loss

注:我們使用RESNET50模型作為原始圖像和建議區(qū)域的特征提取器。

RAW LOSS:這是針對RESNET網(wǎng)絡(luò)參數(shù)的圖像分類的分類交叉熵?fù)p失。我們對原始圖像的特征進(jìn)行raw loss,然后將其與我們的建議區(qū)域圖像的特征結(jié)合進(jìn)行細(xì)粒度分類。這里的輸出是圖像的標(biāo)簽。

CONCAT LOSS:在Scrutinizer網(wǎng)絡(luò)中,我們從原始圖像特征和建議區(qū)域特征CONCAT,輸入到這個(gè)分類交叉熵?fù)p失中國,輸出圖像的標(biāo)簽。

PART LOSS(LIST LOSS):它被用作navigator網(wǎng)絡(luò)的反饋,因?yàn)樵谶@里我們找到了每個(gè)建議的圖像和它的ground truth類之間的交叉熵?fù)p失。

RANK LOSS:使用top_n rpn分?jǐn)?shù)(建議區(qū)域特征)和相應(yīng)的損失作為每一個(gè)建議區(qū)域收到的反饋損失的一部分,對于每一個(gè)建議區(qū)域,所有排序在建議區(qū)域之前的loss添加到rank loss中,這樣rank loss可以進(jìn)行優(yōu)化。

PART_CLS LOSS:這是部分特征和標(biāo)簽之間的交叉熵?fù)p失。部分特征使用代碼中定義的part_images從RESNET-50中提取,該代碼使用top_n建議區(qū)域的坐標(biāo)從原始圖像中生成。

現(xiàn)在part loss和part_cls損失是相同的,但是part_cls損失對total損失有貢獻(xiàn),而其他loss則沒有,并且part_loss在rank loss中還用作指導(dǎo)/反饋。

關(guān)于如何使用NTS理解細(xì)粒度圖像分類就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

網(wǎng)站欄目:如何使用NTS理解細(xì)粒度圖像分類
文章來源:http://muchs.cn/article26/ispojg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)公司、域名注冊、網(wǎng)站排名、標(biāo)簽優(yōu)化、網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)