日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

图像分类综述

發(fā)布時(shí)間:2023/12/13 综合教程 46 生活家
生活随笔 收集整理的這篇文章主要介紹了 图像分类综述 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、圖像分類介紹

  什么是圖像分類,核心是從給定的分類集合中給圖像分配一個(gè)標(biāo)簽的任務(wù)。實(shí)際上,這意味著我們的任務(wù)是分析一個(gè)輸入圖像并返回一個(gè)將圖像分類的標(biāo)簽。標(biāo)簽來(lái)自預(yù)定義的可能類別集。

  示例:我們假定一個(gè)可能的類別集categories = {dog, cat, eagle},之后我們提供一張圖1給分類系統(tǒng):

   

  這里的目標(biāo)是根據(jù)輸入圖像,從類別集中分配一個(gè)類別,這里為dog,我們的分類系統(tǒng)也可以根據(jù)概率給圖像分配多個(gè)標(biāo)簽,如dog:95%,cat:4%,eagle:1%。

  圖像分類的任務(wù)就是給定一個(gè)圖像,正確給出該圖像所屬的類別。對(duì)于超級(jí)強(qiáng)大的人類視覺(jué)系統(tǒng)來(lái)說(shuō),判別出一個(gè)圖像的類別是件很容易的事,但是對(duì)于計(jì)算機(jī)來(lái)說(shuō),并不能像人眼那樣一下獲得圖像的語(yǔ)義信息。

  計(jì)算機(jī)能看到的只是一個(gè)個(gè)像素的數(shù)值,對(duì)于一個(gè)RGB圖像來(lái)說(shuō),假設(shè)圖像的尺寸是32*32,那么機(jī)器看到的就是一個(gè)形狀為3*32*32的矩陣,或者更正式地稱其為“張量”(“張量”簡(jiǎn)單來(lái)說(shuō)就是高維的矩陣),那么機(jī)器的任務(wù)其實(shí)也就是尋找一個(gè)函數(shù)關(guān)系,這個(gè)函數(shù)關(guān)系能夠?qū)⑦@些像素的數(shù)值映射到一個(gè)具體的類別(類別可以用某個(gè)數(shù)值表示)。

二、應(yīng)用場(chǎng)景

  圖像分類更適用于圖像中待分類的物體是單一的,如上圖1中待分類物體是單一的,如果圖像中包含多個(gè)目標(biāo)物,如下圖3,可以使用多標(biāo)簽分類或者目標(biāo)檢測(cè)算法。

   

三、傳統(tǒng)圖像分類算法

  通常完整建立圖像識(shí)別模型一般包括底層特征學(xué)習(xí)、特征編碼、空間約束、分類器設(shè)計(jì)、模型融合等幾個(gè)階段,如圖4所示。

   

  1).底層特征提取: 通常從圖像中按照固定步長(zhǎng)、尺度提取大量局部特征描述。常用的局部特征包括SIFT(Scale-Invariant Feature Transform, 尺度不變特征轉(zhuǎn)換) 、HOG(Histogram of Oriented Gradient, 方向梯度直方圖) 、LBP(Local Bianray Pattern, 局部二值模式)等,一般也采用多種特征描述,防止丟失過(guò)多的有用信息。

  2).特征編碼: 底層特征中包含了大量冗余與噪聲,為了提高特征表達(dá)的魯棒性,需要使用一種特征變換算法對(duì)底層特征進(jìn)行編碼,稱作特征編碼。常用的特征編碼方法包括向量量化編碼、稀疏編碼、局部線性約束編碼、Fisher向量編碼等。

  3).空間特征約束: 特征編碼之后一般會(huì)經(jīng)過(guò)空間特征約束,也稱作特征匯聚。特征匯聚是指在一個(gè)空間范圍內(nèi),對(duì)每一維特征取最大值或者平均值,可以獲得一定特征不變形的特征表達(dá)。金字塔特征匹配是一種常用的特征匯聚方法,這種方法提出將圖像均勻分塊,在分塊內(nèi)做特征匯聚。

  4).通過(guò)分類器分類: 經(jīng)過(guò)前面步驟之后一張圖像可以用一個(gè)固定維度的向量進(jìn)行描述,接下來(lái)就是經(jīng)過(guò)分類器對(duì)圖像進(jìn)行分類。通常使用的分類器包括SVM(Support Vector Machine, 支持向量機(jī))、隨機(jī)森林等。而使用核方法的SVM是最為廣泛的分類器,在傳統(tǒng)圖像分類任務(wù)上性能很好。

  這種傳統(tǒng)的圖像分類方法在PASCAL VOC競(jìng)賽中的圖像分類算法中被廣泛使用 。

四、深度學(xué)習(xí)算法

  Alex Krizhevsky在2012年ILSVRC提出的CNN模型取得了歷史性的突破,效果大幅度超越傳統(tǒng)方法,獲得了ILSVRC2012冠軍,該模型被稱作AlexNet。這也是首次將深度學(xué)習(xí)用于大規(guī)模圖像分類中。

  從AlexNet之后,涌現(xiàn)了一系列CNN模型,不斷地在ImageNet上刷新成績(jī),如圖5展示。隨著模型變得越來(lái)越深以及精妙的結(jié)構(gòu)設(shè)計(jì),Top-5的錯(cuò)誤率也越來(lái)越低,降到了3.5%附近。而在同樣的ImageNet數(shù)據(jù)集上,人眼的辨識(shí)錯(cuò)誤率大概在5.1%,也就是目前的深度學(xué)習(xí)模型的識(shí)別能力已經(jīng)超過(guò)了人眼。

   

1、CNN

  傳統(tǒng)CNN包含卷積層、全連接層等組件,并采用softmax多類別分類器和多類交叉熵?fù)p失函數(shù),一個(gè)典型的卷積神經(jīng)網(wǎng)絡(luò)如圖6所示,我們先介紹用來(lái)構(gòu)造CNN的常見(jiàn)組件。

   

  l 卷積層(convolution layer): 執(zhí)行卷積操作提取底層到高層的特征,發(fā)掘出圖片局部關(guān)聯(lián)性質(zhì)和空間不變性質(zhì)。

  l 池化層(pooling layer): 執(zhí)行降采樣操作。通過(guò)取卷積輸出特征圖中局部區(qū)塊的最大值(max-pooling)或者均值(avg-pooling)。降采樣也是圖像處理中常見(jiàn)的一種操作,可以過(guò)濾掉一些不重要的高頻信息。

  l 全連接層(fully-connected layer,或者fc layer): 輸入層到隱藏層的神經(jīng)元是全部連接的。

  l 非線性變化: 卷積層、全連接層后面一般都會(huì)接非線性變化函數(shù),例如Sigmoid、Tanh、ReLu等來(lái)增強(qiáng)網(wǎng)絡(luò)的表達(dá)能力,在CNN里最常使用的為ReLu激活函數(shù)。

  l Dropout: 在模型訓(xùn)練階段隨機(jī)讓一些隱層節(jié)點(diǎn)權(quán)重不工作,提高網(wǎng)絡(luò)的泛化能力,一定程度上防止過(guò)擬合。

  另外,在訓(xùn)練過(guò)程中由于每層參數(shù)不斷更新,會(huì)導(dǎo)致下一次輸入分布發(fā)生變化,這樣導(dǎo)致訓(xùn)練過(guò)程需要精心設(shè)計(jì)超參數(shù)。如2015年Sergey Ioffe和Christian Szegedy提出了Batch Normalization (BN)算法 中,每個(gè)batch對(duì)網(wǎng)絡(luò)中的每一層特征都做歸一化,使得每層分布相對(duì)穩(wěn)定。BN算法不僅起到一定的正則作用,而且弱化了一些超參數(shù)的設(shè)計(jì)。

  經(jīng)過(guò)實(shí)驗(yàn)證明,BN算法加速了模型收斂過(guò)程,在后來(lái)較深的模型中被廣泛使用。

2、VGG

  牛津大學(xué)VGG(Visual Geometry Group)組在2014年ILSVRC提出的模型被稱作VGG模型。該模型相比以往模型進(jìn)一步加寬和加深了網(wǎng)絡(luò)結(jié)構(gòu),它的核心是五組卷積操作,每?jī)山M之間做Max-Pooling空間降維。同一組內(nèi)采用多次連續(xù)的3X3卷積,卷積核的數(shù)目由較淺組的64增多到最深組的512,同一組內(nèi)的卷積核數(shù)目是一樣的。卷積之后接兩層全連接層,之后是分類層。

  由于每組內(nèi)卷積層的不同,有11、13、16、19層這幾種模型,下圖展示一個(gè)16層的網(wǎng)絡(luò)結(jié)構(gòu)。VGG模型結(jié)構(gòu)相對(duì)簡(jiǎn)潔,提出之后也有很多文章基于此模型進(jìn)行研究,如在ImageNet上首次公開(kāi)超過(guò)人眼識(shí)別的模型就是借鑒VGG模型的結(jié)構(gòu)。

   

3、GoogLeNet

  GoogLeNet 在2014年ILSVRC的獲得了冠軍,在介紹該模型之前我們先來(lái)了解NIN(Network in Network)模型和Inception模塊,因?yàn)镚oogLeNet模型由多組Inception模塊組成,模型設(shè)計(jì)借鑒了NIN的一些思想。

  NIN模型主要有兩個(gè)特點(diǎn):

  1.引入了多層感知卷積網(wǎng)絡(luò)(Multi-Layer Perceptron Convolution, MLPconv)代替一層線性卷積網(wǎng)絡(luò)。MLPconv是一個(gè)微小的多層卷積網(wǎng)絡(luò),即在線性卷積后面增加若干層1x1的卷積,這樣可以提取出高度非線性特征。

  2.傳統(tǒng)的CNN最后幾層一般都是全連接層,參數(shù)較多。而NIN模型設(shè)計(jì)最后一層卷積層包含類別維度大小的特征圖,然后采用全局均值池化(Avg-Pooling)替代全連接層,得到類別維度大小的向量,再進(jìn)行分類。這種替代全連接層的方式有利于減少參數(shù)。

  Inception模塊如下圖8所示,下圖左是最簡(jiǎn)單的設(shè)計(jì),輸出是3個(gè)卷積層和一個(gè)池化層的特征拼接。這種設(shè)計(jì)的缺點(diǎn)是池化層不會(huì)改變特征通道數(shù),拼接后會(huì)導(dǎo)致特征的通道數(shù)較大,經(jīng)過(guò)幾層這樣的模塊堆積后,通道數(shù)會(huì)越來(lái)越大,導(dǎo)致參數(shù)和計(jì)算量也隨之增大。

  為了改善這個(gè)缺點(diǎn),下圖右引入3個(gè)1x1卷積層進(jìn)行降維,所謂的降維就是減少通道數(shù),同時(shí)如NIN模型中提到的1x1卷積也可以修正線性特征。

   

  GoogLeNet由多組Inception模塊堆積而成。另外,在網(wǎng)絡(luò)最后也沒(méi)有采用傳統(tǒng)的多層全連接層,而是像NIN網(wǎng)絡(luò)一樣采用了均值池化層;但與NIN不同的是,GoogLeNet在池化層后加了一個(gè)全連接層來(lái)映射類別數(shù)。

  除了這兩個(gè)特點(diǎn)之外,由于網(wǎng)絡(luò)中間層特征也很有判別性,GoogLeNet在中間層添加了兩個(gè)輔助分類器,在后向傳播中增強(qiáng)梯度并且增強(qiáng)正則化,而整個(gè)網(wǎng)絡(luò)的損失函數(shù)是這個(gè)三個(gè)分類器的損失加權(quán)求和。

  GoogLeNet整體網(wǎng)絡(luò)結(jié)構(gòu)如圖9所示,總共22層網(wǎng)絡(luò):開(kāi)始由3層普通的卷積組成;接下來(lái)由三組子網(wǎng)絡(luò)組成,第一組子網(wǎng)絡(luò)包含2個(gè)Inception模塊,第二組包含5個(gè)Inception模塊,第三組包含2個(gè)Inception模塊;然后接均值池化層、全連接層。

   

  上面介紹的是GoogLeNet第一版模型(稱作GoogLeNet-v1)。GoogLeNet-v2引入BN層;GoogLeNet-v3 對(duì)一些卷積層做了分解,進(jìn)一步提高網(wǎng)絡(luò)非線性能力和加深網(wǎng)絡(luò);GoogLeNet-v4引入下面要講的ResNet設(shè)計(jì)思路。從v1到v4每一版的改進(jìn)都會(huì)帶來(lái)準(zhǔn)確度的提升,介于篇幅,這里不再詳細(xì)介紹v2到v4的結(jié)構(gòu)。

4、ResNet

  ResNet(Residual Network) 是2015年ImageNet圖像分類、圖像物體定位和圖像物體檢測(cè)比賽的冠軍。針對(duì)隨著網(wǎng)絡(luò)訓(xùn)練加深導(dǎo)致準(zhǔn)確度下降的問(wèn)題,ResNet提出了殘差學(xué)習(xí)方法來(lái)減輕訓(xùn)練深層網(wǎng)絡(luò)的困難。

  在已有設(shè)計(jì)思路(BN, 小卷積核,全卷積網(wǎng)絡(luò))的基礎(chǔ)上,引入了殘差模塊。每個(gè)殘差模塊包含兩條路徑,其中一條路徑是輸入特征的直連通路,另一條路徑對(duì)該特征做兩到三次卷積操作得到該特征的殘差,最后再將兩條路徑上的特征相加。

  殘差模塊如圖10所示,左邊是基本模塊連接方式,由兩個(gè)輸出通道數(shù)相同的3x3卷積組成。右邊是瓶頸模塊(Bottleneck)連接方式,之所以稱為瓶頸,是因?yàn)樯厦娴?x1卷積用來(lái)降維(圖示例即256->64),下面的1x1卷積用來(lái)升維(圖示例即64->256),這樣中間3x3卷積的輸入和輸出通道數(shù)都較小(圖示例即64->64)。

   

  圖11展示了50、101、152層網(wǎng)絡(luò)連接示意圖,使用的是瓶頸模塊。這三個(gè)模型的區(qū)別在于每組中殘差模塊的重復(fù)次數(shù)不同(見(jiàn)圖右上角)。ResNet訓(xùn)練收斂較快,成功的訓(xùn)練了上百乃至近千層的卷積神經(jīng)網(wǎng)絡(luò)。

   

五、GitHub資源

  下面列舉了搜集的開(kāi)源的一些基于深度學(xué)習(xí)的圖像分類的小項(xiàng)目,讀者感興趣可自行嘗試。

  l 使用tensorflow和cnn做的圖像識(shí)別,對(duì)四種花進(jìn)行了分類。: https://github.com/waitingfordark/four_flower

  l 使用vgg16,vgg19對(duì)cifar數(shù)據(jù)集中的圖像進(jìn)行分類:https://github.com/caozhang1996/VGG-cifar10

  l 基于Keras實(shí)現(xiàn)Kaggle2013--Dogs vs. Cats12500張貓狗圖像的精準(zhǔn)分類: https://github.com/zhangpengpengpeng/kaggle-dogs-vs-cats

  l keras使用遷移學(xué)習(xí)實(shí)現(xiàn)醫(yī)學(xué)圖像二分類(AK、SK):https://github.com/jinghaiting/binary_classification_keras

總結(jié)

以上是生活随笔為你收集整理的图像分类综述的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。