中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用NTS理解細粒度圖像分類

發布時間:2022-01-05 18:17:02 來源:億速云 閱讀:181 作者:柒染 欄目:大數據

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

導讀  

細粒度圖像分類的一些問題和挑戰。


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

有關Pytorch代碼實現,請參考以下github庫:https://github.com/yangze0930/NTS-Net

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


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

 

細粒度視覺分類

我們知道,視覺分類任務指創建一個模型來捕獲從輸入圖像到相應輸出類的關系。然而,FGVC的任務和普通的分類不太一樣,因為類內差異比類間差異更多。這就是為什么我們的目標是在視覺上類似的類中捕獲有區別的特征。尋找這樣的特征具有挑戰性。此外,對樣本中信息最豐富的區域進行邊界框的標注代價昂貴。

當開始處理問題時,可以使用圖像分類的一般方法,即使用標準的預訓練模型,并對其進行微調,以達到正確的任務參數集合。如本文所述,以下鏈接的數據集有三個層次進行分類,即manufacturer、family和variant 層次。細粒度分類是variant級別的。

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


 

第二部分:是什么導致了這個效果

 

NTS-NET

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

本文中創建的模型稱為NTS-NET,使用三個協同工作的“agent”在基準數據集( FGVC aircraft、Stanford Cars、Caltech-UCSD Birds)中實現最先進的性能。

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

The Navigator agent 網絡導航模型,以關注信息最豐富的區域。對于圖像中的每個區域,Navigator通過對損失排序來預測該區域的信息量(如下所述),并利用這些預測來提出信息最豐富的區域。現在的問題是:如何在圖像中得到有用的可變長度的“區域”?好了,這個問題前面已經有了答案,所以請耐心等待我來理解每個agent的高級功能。

Teacher agent 對Navigator提出的信息量最大的區域進行評估,并提供反饋:對于每個提出的區域,Teacher評估其概率為ground-truth class。置信度評估指導navigator網絡使用排序一致性損失函數(在代碼實現中稱為“ranking loss”),提出信息更豐富的區域。

當teacher提供更精確的監督時,navigator會將更多的信息區域局部化,從而使teacher受益。

Scrutinizer agent 從Navigator中對提出的區域進行審查并進行細粒度分類:將每個提出的區域擴大到相同大小,agent從中提取特征,將區域特征與整幅圖像的特征聯合處理,進行細粒度分類,是解決這一復雜問題的主要方法。

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

因此,目標是局部化物體中信息最豐富的區域

如何使用NTS理解細粒度圖像分類

圖1:NTS模型結構  
 

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

 

第1節:區域建議

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

有幾個進行區域建議的方法:

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

ii) R-CNN:在這個方法中進行分割算法,獲取可能包含物體的區域,只在這些區域上運行分類器。缺點是速度慢,因為建議的區域一次只分類一個類別。

iii) Fast R-CNN:用分割算法進行區域建議,與R-CNN不同的是,所有建議的區域都使用卷積式滑動窗口實現同時分類。

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


 

第2節:NTS中的區域建議是什么樣的?

在本文中,默認的錨被放置在整個圖像中,而NTS-model,通過代碼實現中的自定義損失(學習是因為我們沒有使用帶標注的邊框)從這些錨點中學習了最具信息的錨點。這些錨定義了代碼中定義的由Prosposal_Net(或Navigator Network)給出的建議區域的坐標,并使用NMS(非最大抑制)去除冗余(重疊區域)并給出top_n的建議區域。

如何使用NTS理解細粒度圖像分類

圖2:TOP 3 由NTS學到的最具信息的區域,FGVC Aircraft數據集  
 

如何使用NTS理解細粒度圖像分類

圖2:TOP 3 由NTS學到的最具信息的區域,Stanford-Cars數據集  
 

第3節:NTS-NET中各種損失的描述

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

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

Total loss= Raw_loss+Rank_loss+Concat_loss+Part_cls_loss

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

RAW LOSS:這是針對RESNET網絡參數的圖像分類的分類交叉熵損失。我們對原始圖像的特征進行raw loss,然后將其與我們的建議區域圖像的特征結合進行細粒度分類。這里的輸出是圖像的標簽。

CONCAT LOSS:在Scrutinizer網絡中,我們從原始圖像特征和建議區域特征CONCAT,輸入到這個分類交叉熵損失中國,輸出圖像的標簽。

PART LOSS(LIST LOSS):它被用作navigator網絡的反饋,因為在這里我們找到了每個建議的圖像和它的ground truth類之間的交叉熵損失。

RANK LOSS:使用top_n rpn分數(建議區域特征)和相應的損失作為每一個建議區域收到的反饋損失的一部分,對于每一個建議區域,所有排序在建議區域之前的loss添加到rank loss中,這樣rank loss可以進行優化。

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

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

關于如何使用NTS理解細粒度圖像分類就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

nts
AI

湟中县| 东港市| 安庆市| 佛山市| 津市市| 即墨市| 乌兰察布市| 宜黄县| 新源县| 莱芜市| 富源县| 霍邱县| 广元市| 鹿泉市| 龙游县| 丹巴县| 泽库县| 玉门市| 平乡县| 巴里| 凌源市| 修文县| 神木县| 曲麻莱县| 浑源县| 新营市| 马山县| 南宁市| 平湖市| 托克逊县| 阿拉尔市| 余庆县| 克什克腾旗| 方山县| 华坪县| 鱼台县| 桃源县| 麟游县| 宜丰县| 屏南县| 资兴市|