導(dǎo)讀
本文分析了常見的紋理數(shù)據(jù)集以及傳統(tǒng)CNN在紋理數(shù)據(jù)集分類上效果不佳的原因。
在機(jī)器視覺任務(wù)中,將紋理分析與深度學(xué)習(xí)結(jié)合使用,對(duì)于獲得更好的結(jié)果起到了重要作用。在前一篇文章中,我們已經(jīng)討論了什么是紋理的基礎(chǔ)知識(shí),不同類型的紋理,以及紋理分析在解決真正的計(jì)算機(jī)視覺任務(wù)中的適用性。我們還解釋了一些最常用和值得注意的提取紋理的技術(shù),此外,我們還演示了如何將這些紋理提取技術(shù)與深度學(xué)習(xí)結(jié)合起來。
深度學(xué)習(xí)由多種結(jié)構(gòu)組成,可用于圖像分類任務(wù)。基于深度學(xué)習(xí)的模型經(jīng)常用于圖像分類任務(wù),并在許多不同的用例中產(chǎn)生了出色的結(jié)果,展示了它們的有效性。幾年前,遷移學(xué)習(xí)的概念出現(xiàn)了,它建議使用使用大數(shù)據(jù)集訓(xùn)練的模型作為特定用例的骨干,其中,預(yù)訓(xùn)練的骨干模型只是通過使用特定案例的數(shù)據(jù)集來微調(diào)權(quán)重以解決特定任務(wù)。經(jīng)過圖像分類訓(xùn)練的預(yù)訓(xùn)練模型也可用于紋理分類任務(wù)。為了檢驗(yàn)現(xiàn)有傳統(tǒng)的基于cnn的紋理分類模型的效率,我們使用一些公共的基于紋理的數(shù)據(jù)集對(duì)其進(jìn)行性能基準(zhǔn)測(cè)試。我們觀察到,傳統(tǒng)的CNN結(jié)構(gòu)(如圖5所示)很難產(chǎn)生較好的結(jié)果,并不是很有效地應(yīng)用于紋理分類任務(wù)。
紋理分類以及常用的紋理數(shù)據(jù)集
紋理分析和分類是地形識(shí)別、自動(dòng)醫(yī)療診斷、顯微圖像分析、自動(dòng)駕駛汽車和爆炸危險(xiǎn)檢測(cè)等領(lǐng)域的關(guān)鍵任務(wù)。在執(zhí)行基于分類的任務(wù)時(shí),紋理是一個(gè)非常重要的屬性。作為人類,我們可以直觀地看到、理解和區(qū)分紋理,但對(duì)于基于人工智能的機(jī)器來說,情況并非如此。如果一個(gè)人工智能模型能夠識(shí)別紋理,那么它在分類任務(wù)中的應(yīng)用將會(huì)是一個(gè)額外的優(yōu)勢(shì)。根據(jù)物體的視覺效果來理解和分類物體可以使人工智能模型更加高效和可靠。
因此,我們?yōu)榧y理分類任務(wù)構(gòu)建了模型,并在基于紋理的基準(zhǔn)數(shù)據(jù)集(如DTD、FMD、和KTH)上測(cè)試模型的有效性?;谶@些數(shù)據(jù)集上任何模型的準(zhǔn)確性,我們可以理解并在一定程度上預(yù)測(cè)它在其他類似數(shù)據(jù)集上的性能。下面我們將提供關(guān)于上述數(shù)據(jù)集的詳細(xì)信息。
DTD:它是一個(gè)基于紋理的圖像數(shù)據(jù)集,由5640張圖像組成,根據(jù)受人類感知啟發(fā)的47個(gè)類別進(jìn)行組織。每個(gè)類別有120張圖片。
圖1,DTD中每個(gè)類別的圖
KTH: KTH通常被稱為KTH- tips(在不同的照明、姿勢(shì)和比例下的紋理)圖像數(shù)據(jù)庫被創(chuàng)建來在兩個(gè)方向上擴(kuò)展CUReT數(shù)據(jù)庫,通過提供在尺度以及姿態(tài)和照明上的變化,并通過在不同的設(shè)置中對(duì)其材料的子集進(jìn)行成像得到其他樣本。有11類的總樣本量是3195。
圖2,KTH-TIPS數(shù)據(jù)集中11個(gè)類別,每個(gè)類比4張圖
FMD:建立這個(gè)數(shù)據(jù)庫的特定目的是捕捉一系列常見材料(如玻璃、塑料等)在現(xiàn)實(shí)世界中的外觀。這個(gè)數(shù)據(jù)庫中的每一張圖片(總共有10個(gè)類別,每個(gè)類別有100張圖片)都是手動(dòng)從Flickr.com(在創(chuàng)作共用許可下)中選擇的,以確保各種照明條件、組合、顏色、紋理和材料子類型。
圖3,F(xiàn)MD數(shù)據(jù)集中每個(gè)類比的幾張圖
傳統(tǒng)CNN圖像分類
就現(xiàn)有的傳統(tǒng)CNN而言,這些大多屬于預(yù)訓(xùn)練模型本身或使用這些預(yù)訓(xùn)練層/權(quán)值的模型。在我們的博客中,我們將首先簡(jiǎn)要概述什么是預(yù)訓(xùn)練模型,以及如何將其應(yīng)用于圖像分類任務(wù)。
現(xiàn)有的幾種CNN模型都是由不同的研究人員針對(duì)圖像分類的任務(wù)提出的,這些模型也可以作為許多其他圖像分類相關(guān)任務(wù)的預(yù)訓(xùn)練模型。在圖5中,我們可以看到如何將預(yù)訓(xùn)練的層合并到傳統(tǒng)的基于CNN的架構(gòu)中。
在紋理分類任務(wù)的情況下,這些預(yù)先訓(xùn)練的模型也可以通過遷移它們的知識(shí),并將它們用于基于紋理的數(shù)據(jù)集。由于這些模型是為特定數(shù)據(jù)集上的圖像分類任務(wù)而建立的,而我們?cè)谝恍┎煌臄?shù)據(jù)集上使用它們進(jìn)行紋理分類,我們稱它們?yōu)轭A(yù)訓(xùn)練模型。進(jìn)一步介紹了圖像分類預(yù)訓(xùn)練模型的一些關(guān)鍵思想:
什么是預(yù)訓(xùn)練模型?
為了簡(jiǎn)單地定義一個(gè)預(yù)先訓(xùn)練的模型,我們可以將其稱為由其他人訓(xùn)練的神經(jīng)網(wǎng)絡(luò)模型,并為特定的用例提供給其他開發(fā)人員使用。
流行的預(yù)訓(xùn)練模型通常是通過使用一個(gè)龐大的數(shù)據(jù)集來解決一個(gè)復(fù)雜的任務(wù)。然后,這些模型被貢獻(xiàn)為開放源碼,因此其他開發(fā)人員可以進(jìn)一步構(gòu)建或在他們的工作中使用這些模型。通常情況下,使用預(yù)先訓(xùn)練的模型來解決類似的問題是一個(gè)好主意,而預(yù)先訓(xùn)練的模型是為這些問題開發(fā)的。在圖4中,一個(gè)模型為一個(gè)源任務(wù)訓(xùn)練,這個(gè)源模型已經(jīng)訓(xùn)練(預(yù)訓(xùn)練模型)的權(quán)值被用于目標(biāo)任務(wù)。對(duì)新開發(fā)的模型進(jìn)行了一些修改,將預(yù)先訓(xùn)練的模型的權(quán)值進(jìn)行轉(zhuǎn)移,以獲得更好和更精確的預(yù)測(cè)結(jié)果。
圖4,使用預(yù)訓(xùn)練模型的方法
使用預(yù)訓(xùn)練的模型作為計(jì)算機(jī)視覺和自然語言處理的各種問題的起點(diǎn)是非常常見的。從零開始構(gòu)建一個(gè)神經(jīng)網(wǎng)絡(luò)需要巨大的計(jì)算能力、時(shí)間和熟練的勞動(dòng)力。
在這個(gè)文章中,我們將著重于應(yīng)用預(yù)訓(xùn)練模型(訓(xùn)練用于圖像分類任務(wù))來解決紋理分類任務(wù)。
常用的預(yù)訓(xùn)練模型
下面是對(duì)預(yù)訓(xùn)練模型的概述,這些模型經(jīng)常用于許多圖像分類相關(guān)的任務(wù)。
VGG-16: 2015年發(fā)布的最受歡迎的預(yù)訓(xùn)練圖像分類模型之一。VGG-16是一個(gè)深度為16層可調(diào)的神經(jīng)網(wǎng)絡(luò),它在ImageNet數(shù)據(jù)庫中的100萬張圖像上訓(xùn)練。它能夠?qū)?000個(gè)物體進(jìn)行分類。
Inception v3:一個(gè)由谷歌在同一個(gè)ImageNet數(shù)據(jù)庫上開發(fā)的預(yù)訓(xùn)練模型。它也被稱為GoogLeNet。Inception v3是一個(gè)深度為50層的神經(jīng)網(wǎng)絡(luò)。在2014年的ImageNet競(jìng)賽中,InceptionV3獲得了第一,而VGG-16獲得了亞軍。它只有700萬個(gè)參數(shù),這比以前的模型要小得多,除此之外,它的錯(cuò)誤率很低,這是該模型的一個(gè)主要成就。
ResNet50:原始模型稱為殘差網(wǎng)或ResNet,它是微軟在2015年開發(fā)的。ResNet50是一個(gè)深度為50層的神經(jīng)網(wǎng)絡(luò)。ResNet50還訓(xùn)練了來自ImageNet數(shù)據(jù)庫的100萬張圖像。與VGG16相比,ResNet復(fù)雜度更低,結(jié)果優(yōu)于VGG16。ResNet50旨在解決梯度消失的問題。
EfficientNet:它是谷歌于2019年訓(xùn)練并向公眾發(fā)布的最先進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)。在EfficientNet中,作者使用了一種新的縮放方法,稱為復(fù)合縮放,我們?cè)谕粫r(shí)間縮放固定數(shù)量的維度,并且我們均勻地縮放。通過這樣做,我們可以獲得更好的性能,縮放系數(shù)可以由用戶自己決定。EfficientNet有8種實(shí)現(xiàn)(從B0到B7)。
為我們的用例利用和調(diào)整預(yù)訓(xùn)練模型的方法
由于我們所處理的數(shù)據(jù)與預(yù)訓(xùn)練模型所訓(xùn)練的數(shù)據(jù)不同,因此需要根據(jù)我們的數(shù)據(jù)更新模型的權(quán)重,以了解特定領(lǐng)域的信息。因此,我們需要對(duì)數(shù)據(jù)的模型進(jìn)行微調(diào)。
下面我們將討論一些在特定用例中使用預(yù)先訓(xùn)練過的模型的機(jī)制。
特征提取- 使用預(yù)訓(xùn)練模型作為特征提取機(jī)制。我們可以移除輸出層(即給出了1000個(gè)類中每個(gè)類的概率),然后使用整個(gè)網(wǎng)絡(luò)作為新數(shù)據(jù)集的固定特征提取器。
訓(xùn)練一些層,同時(shí)凍結(jié)其他層- 預(yù)訓(xùn)練的模型可以用來部分訓(xùn)練我們的模型,其中我們保持初始層的權(quán)重凍結(jié),并重新訓(xùn)練更高層的權(quán)重。根據(jù)一些實(shí)驗(yàn),我們可以看到有多少層需要凍結(jié),有多少層需要訓(xùn)練。
使用預(yù)訓(xùn)練模型的體系結(jié)構(gòu)- 我們可以從模型的體系結(jié)構(gòu)中獲得幫助,并使用它隨機(jī)初始化模型的權(quán)重。然后我們可以根據(jù)我們的數(shù)據(jù)集和任務(wù)訓(xùn)練模型,這樣我們就有了一個(gè)很好的架構(gòu),可以為我們的任務(wù)帶來很好的結(jié)果。
在處理任何類型的圖像分類問題時(shí),微調(diào)和使用預(yù)先訓(xùn)練的模型是一個(gè)聰明的解決方案。此外,這些傳統(tǒng)的/預(yù)先訓(xùn)練的CNN模型也產(chǎn)生了良好的結(jié)果,然而,這些架構(gòu)在對(duì)基于紋理的數(shù)據(jù)集進(jìn)行分類時(shí)表現(xiàn)不佳。
為什么傳統(tǒng)的CNN架構(gòu)在基于紋理的數(shù)據(jù)集的分類任務(wù)中表現(xiàn)不佳?
圖5,傳統(tǒng)CNN結(jié)構(gòu)的4個(gè)主要部分
傳統(tǒng)的CNN架構(gòu)通常包括預(yù)訓(xùn)練層,在此基礎(chǔ)上添加一些CNN層的可訓(xùn)練塊,然后將其輸出傳遞到全連接層進(jìn)行類預(yù)測(cè)。由圖5可以看出,傳統(tǒng)的CNN架構(gòu)主要有四個(gè)主要組件,用A、B、C、和D四個(gè)塊來描述。第一個(gè)分量是輸入層(描述為塊A),第二個(gè)是預(yù)先訓(xùn)練的層/權(quán)值(描述為塊B),第三個(gè)分量是可訓(xùn)練的CNN塊(描述為塊C),它的輸出傳遞給第四個(gè)分量(描述為塊D)的全連接層。傳遞給全連接層的輸入通常包括全局特征而不是局部特征。這種通用架構(gòu)適用于大多數(shù)需要圖像全局特征來對(duì)圖像進(jìn)行分類的任務(wù)。然而,這些類型的架構(gòu)很無法很準(zhǔn)確的預(yù)測(cè)類別,在這些類中,全局特征和局部特征都參與了類的預(yù)測(cè)。
CNN模型的復(fù)雜性隨著網(wǎng)絡(luò)深度的增加而增加,最后一層通常傾向于捕捉圖像的復(fù)雜特征。從卷積層捕獲的特征被發(fā)送到全連接層,以獲取圖像中物體的形狀信息并預(yù)測(cè)其類別。這些關(guān)于整體形狀和高度復(fù)雜特征的信息不適合用于紋理分析,因?yàn)榧y理是基于復(fù)雜度較低的重復(fù)局部位置模式,這需要豐富的基于局部的特征提取。
為了利用為圖像分類而開發(fā)的基于CNN的模型進(jìn)行紋理分類,利用網(wǎng)絡(luò)的CNN層輸出中提取的特征進(jìn)行域轉(zhuǎn)移。在使用預(yù)先訓(xùn)練的CNN進(jìn)行基于紋理的分類時(shí),我們面臨三個(gè)主要缺點(diǎn),如下所示。
全連接的層發(fā)布卷積層捕捉圖像的空間布局,這對(duì)于表示物體的形狀很有用,但對(duì)于表示紋理卻不太有用
一個(gè)固定大小的輸入需要發(fā)送到CNN,以便它與全連接層兼容。這通常是一項(xiàng)昂貴的任務(wù)
預(yù)訓(xùn)練的CNN的更深層可能是非常具體的領(lǐng)域,可能不是很有用的紋理分類
眾所周知,任何圖像的紋理都是通過其局部結(jié)構(gòu)和局部像素分布來定義的。要分析任何圖像的紋理特征,必須研究其基于局部的特征,并將其傳遞給全連接層。但是傳統(tǒng)的CNN不能將基于局部的特征傳遞給全連接層,因?yàn)閭鹘y(tǒng)CNN架構(gòu)的最后一個(gè)CNN層是利用復(fù)雜的特征來捕捉物體的整體形狀,并提取全局特征(如圖5所示),而不是捕捉局部特征的模式。這就是傳統(tǒng)CNN架構(gòu)在基于紋理的數(shù)據(jù)集上表現(xiàn)不佳的原因。
在已有的CNNs中加入紋理提取特征技術(shù),可以提高紋理分類任務(wù)的結(jié)果。表1比較了傳統(tǒng)的CNN方法vs方法使用Resnet-50骨干以及一些特征提取技術(shù)。
表1,傳統(tǒng)CNN模型和使用特征提取技術(shù)的Resnet-50在基準(zhǔn)數(shù)據(jù)集上的結(jié)果比較
將紋理特征提取策略與深度學(xué)習(xí)相結(jié)合的模型往往比傳統(tǒng)的深度學(xué)習(xí)方法產(chǎn)生更好的結(jié)果。這是因?yàn)閭鹘y(tǒng)的CNN模型捕捉了通常對(duì)目標(biāo)檢測(cè)有用的復(fù)雜特征,而紋理是使用局部重復(fù)的模式/特征識(shí)別的。
可以使用自定義的深度卷積網(wǎng)絡(luò)來改進(jìn)CNN,在卷積層之后,隨著CNN引入各種紋理提取技術(shù)。
將紋理提取層和預(yù)訓(xùn)練層結(jié)合在一起的自定義深度卷積網(wǎng)絡(luò)不如單獨(dú)使用預(yù)訓(xùn)練模型或統(tǒng)計(jì)地使用紋理特征提取器靈活。我們將在后面的文章中討論紋理特征提取和預(yù)訓(xùn)練模型。
作者:Trapti Kalra
編譯:ronghuaiyang
審核編輯:劉清
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4771瀏覽量
100712 -
人工智能
+關(guān)注
關(guān)注
1791文章
47183瀏覽量
238245 -
FMD
+關(guān)注
關(guān)注
2文章
9瀏覽量
7628 -
cnn
+關(guān)注
關(guān)注
3文章
352瀏覽量
22203 -
卷積網(wǎng)絡(luò)
+關(guān)注
關(guān)注
0文章
42瀏覽量
2163
原文標(biāo)題:為什么傳統(tǒng)CNN在紋理分類數(shù)據(jù)集上的效果不好?
文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論