溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

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

發(fā)布時(shí)間:2022-01-05 18:17:02 來(lái)源:億速云 閱讀:175 作者:柒染 欄目:大數(shù)據(jù)

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

導(dǎo)讀  

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


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

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

在這個(gè)過(guò)程中,人們可以理解最初可能面臨的挑戰(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è)模型來(lái)捕獲從輸入圖像到相應(yīng)輸出類的關(guān)系。然而,F(xiàn)GVC的任務(wù)和普通的分類不太一樣,因?yàn)轭悆?nèi)差異比類間差異更多。這就是為什么我們的目標(biāo)是在視覺上類似的類中捕獲有區(qū)別的特征。尋找這樣的特征具有挑戰(zhàn)性。此外,對(duì)樣本中信息最豐富的區(qū)域進(jìn)行邊界框的標(biāo)注代價(jià)昂貴。

當(dāng)開始處理問(wèn)題時(shí),可以使用圖像分類的一般方法,即使用標(biāo)準(zhǔn)的預(yù)訓(xùn)練模型,并對(duì)其進(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%。對(duì)于像我這樣的初學(xué)者來(lái)說(shuō),理解一個(gè)復(fù)雜問(wèn)題的工作代碼并獲得正確的見解是非常有幫助的。


 

第二部分:是什么導(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ū)域。對(duì)于圖像中的每個(gè)區(qū)域,Navigator通過(guò)對(duì)損失排序來(lái)預(yù)測(cè)該區(qū)域的信息量(如下所述),并利用這些預(yù)測(cè)來(lái)提出信息最豐富的區(qū)域。現(xiàn)在的問(wèn)題是:如何在圖像中得到有用的可變長(zhǎng)度的“區(qū)域”?好了,這個(gè)問(wèn)題前面已經(jīng)有了答案,所以請(qǐng)耐心等待我來(lái)理解每個(gè)agent的高級(jí)功能。

Teacher agent 對(duì)Navigator提出的信息量最大的區(qū)域進(jìn)行評(píng)估,并提供反饋:對(duì)于每個(gè)提出的區(qū)域,Teacher評(píng)估其概率為ground-truth class。置信度評(píng)估指導(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中對(duì)提出的區(qū)域進(jìn)行審查并進(jìn)行細(xì)粒度分類:將每個(gè)提出的區(qū)域擴(kuò)大到相同大小,agent從中提取特征,將區(qū)域特征與整幅圖像的特征聯(lián)合處理,進(jìn)行細(xì)粒度分類,是解決這一復(fù)雜問(wèn)題的主要方法。

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

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

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

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

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

 

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

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

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

i) 滑動(dòng)窗口:滑動(dòng)窗口中,你在所有固定大小的滑動(dòng)圖像的窗口上運(yùn)行一個(gè)訓(xùn)練分類器,然后運(yùn)行檢測(cè)器來(lái)查看物體是什么。我們可以使用這種算法,但缺點(diǎn)是它可能會(huì)檢查許多這樣的沒(méi)有物體的窗口,因此提出了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ò),簡(jiǎn)稱RPN,它需要錨(以不同的大小、尺度和長(zhǎng)寬比分布在圖像各處的邊界框)和ground truth邊界框來(lái)建議信息區(qū)域,而不是傳統(tǒng)的分割算法。


 

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

在本文中,默認(rèn)的錨被放置在整個(gè)圖像中,而NTS-model,通過(guò)代碼實(shí)現(xiàn)中的自定義損失(學(xué)習(xí)是因?yàn)?/em>我們沒(méi)有使用帶標(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中各種損失的描述

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

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

Total loss= Raw_loss+Rank_loss+Concat_loss+Part_cls_loss

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

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

CONCAT LOSS:在Scrutinizer網(wǎng)絡(luò)中,我們從原始圖像特征和建議區(qū)域特征CONCAT,輸入到這個(gè)分類交叉熵?fù)p失中國(guó),輸出圖像的標(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ū)域收到的反饋損失的一部分,對(duì)于每一個(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損失對(duì)total損失有貢獻(xiàn),而其他loss則沒(méi)有,并且part_loss在rank loss中還用作指導(dǎo)/反饋。

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

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

nts
AI