黃志強(qiáng) 李軍
(重慶交通大學(xué)機(jī)電與車輛工程學(xué)院)
20 世紀(jì)40 年代神經(jīng)元的概念首次被引入計(jì)算機(jī)領(lǐng)域,開(kāi)啟了神經(jīng)網(wǎng)絡(luò)的大門(mén)。在2005 年之后,神經(jīng)網(wǎng)絡(luò)因?yàn)楫?dāng)時(shí)解決了梯度彌散問(wèn)題而得到了廣泛應(yīng)用、出現(xiàn)大量已標(biāo)注的數(shù)據(jù)和GPU 的快速發(fā)展。神經(jīng)網(wǎng)絡(luò)算法在圖像和字符識(shí)別領(lǐng)域起著重要作用,如欺詐檢測(cè)、人臉識(shí)別、醫(yī)學(xué)病理的判斷等等,還可以對(duì)股票價(jià)格、經(jīng)濟(jì)走勢(shì)等廣義上的模型做預(yù)測(cè),其克服了傳統(tǒng)模型不能預(yù)測(cè)復(fù)雜的非線性模型的缺點(diǎn),因此越來(lái)越多的學(xué)者投身于該領(lǐng)域。文章從理論和算法的可行性等方面詳細(xì)介紹了各種算法的優(yōu)點(diǎn)和缺點(diǎn),并針對(duì)各類算法在圖像識(shí)別中存在的問(wèn)題提出一些改進(jìn)建議,為今后更進(jìn)一步地深入研究提供了參考。
圖像識(shí)別是為了將不同類別的圖像劃分到不同的類別中,引入卷積神經(jīng)網(wǎng)絡(luò)是為了達(dá)到最小的分類誤差,獲得最高的識(shí)別率。圖像識(shí)別問(wèn)題總體[1]上可以分為跨物種語(yǔ)義級(jí)分類、子類細(xì)粒度圖像分類以及實(shí)例級(jí)圖像分類。
跨物種語(yǔ)義級(jí)分類是為了識(shí)別不同種類的對(duì)象,此類算法的特點(diǎn)是存在較小的類內(nèi)方差,較大的類間方差;子細(xì)粒度圖像分類是在同一大類實(shí)現(xiàn)其子類的細(xì)分,此類檢測(cè)對(duì)分類器的要求更高;實(shí)例級(jí)圖像分類在實(shí)現(xiàn)前2 種圖像分類的基礎(chǔ)上,同時(shí)還需要識(shí)別不同的個(gè)體。目前廣泛使用的是基于實(shí)例級(jí)的圖像分類技術(shù),在滿足精度要求的同時(shí),也能達(dá)到較好的速度要求。
傳統(tǒng)的圖像識(shí)別算法包括微分算子邊緣檢測(cè)算法、Canny 邊緣檢測(cè)算法、角點(diǎn)檢測(cè)算法等。文章將對(duì)后2 種常用的算法作詳細(xì)說(shuō)明。
1)Canny 邊緣檢測(cè)算法一般包含 4 個(gè)步驟[2]:濾波、梯度幅值和梯度方向計(jì)算、非極大值抑制計(jì)算、邊緣檢測(cè)與連接。首先通過(guò)高斯濾波函數(shù)去除圖像的噪聲,并對(duì)圖像進(jìn)行平滑處理,接著通過(guò)一階有限差分法分別對(duì)濾波后的圖像水平和垂直方向的像素點(diǎn)進(jìn)行偏導(dǎo)求解,再使用非極大值抑制算法將局部最大值之外的正負(fù)梯度值設(shè)置為0,最后通過(guò)不相同的2 個(gè)閾值對(duì)候選邊緣圖像中的像素進(jìn)行處理,保留兩閾值范圍內(nèi)的像素,最終檢測(cè)出物體。
傳統(tǒng)的Canny 邊緣檢測(cè)算法降噪能力較差,針對(duì)這一情況,文獻(xiàn)[3]提出同時(shí)使用4 個(gè)具有各向異性的5階差分模板檢測(cè)多個(gè)方向上的像素點(diǎn),不僅能夠檢測(cè)上、下、左、右4 個(gè)領(lǐng)域的灰度加權(quán)值,同時(shí)還能夠檢測(cè)對(duì)角線方向的值。為了提高Canny 算法的自適應(yīng)能力,文獻(xiàn)[4]采用自適應(yīng)中值濾波和形態(tài)學(xué)閉合運(yùn)算來(lái)防止多方向梯度幅值計(jì)算時(shí)邊緣信息被弱化,同時(shí)利用目標(biāo)與背景的最佳分離點(diǎn)是最優(yōu)梯度下最大的類間方差與最小的類內(nèi)方差這一概念,來(lái)計(jì)算Canny 算法中的上下閾值,以此來(lái)提高其自適應(yīng)能力。
2)角點(diǎn)檢測(cè)算法[5]是通過(guò)一個(gè)固定像素窗口在圖像中進(jìn)行任意方向的滑動(dòng),比較滑動(dòng)前后窗口中的像素灰度值,如果存在較大的變化,則可判斷出該像素內(nèi)存在角點(diǎn)。角點(diǎn)檢測(cè)算法分為3 類[6]:基于二值圖像的角點(diǎn)檢測(cè)、基于灰度圖像的角點(diǎn)檢測(cè)和基于邊緣輪廓的角點(diǎn)檢測(cè)。
傳統(tǒng)的Harris 角點(diǎn)檢測(cè)算法精度較低,抗噪性差,文獻(xiàn)[7]將Sobel 算法和Harris 算法結(jié)合,首先使用Sobel 算法進(jìn)行角點(diǎn)初選,將非極大值抑制算法中的矩形模板用圓周模板替代,以此來(lái)提高檢測(cè)精度,最后使用臨近點(diǎn)剔除法提高算法的抗噪性。文獻(xiàn)[8]通過(guò)比較階梯邊緣、L 型拐角、Y 或 T 型拐角、X 型拐角和星型拐角的強(qiáng)度變化特性后,提出利用多尺度各向異性高斯方向?qū)?shù)濾波器,從輸入圖像中提取灰度變化的新方法,該方法能夠連續(xù)地提取圖像中的邊緣點(diǎn)和角點(diǎn)特征。
通過(guò)模擬人腦運(yùn)轉(zhuǎn)建立的神經(jīng)網(wǎng)絡(luò)算法,是一種非線性動(dòng)力學(xué)系統(tǒng),通過(guò)大量輸入神經(jīng)元構(gòu)成的網(wǎng)絡(luò)系統(tǒng),能夠?qū)崿F(xiàn)各種傳統(tǒng)算法所不能達(dá)到的目標(biāo)。許多曾經(jīng)嚴(yán)重依賴于手工提取特征的機(jī)器學(xué)習(xí)任務(wù)(如目標(biāo)檢測(cè)、機(jī)器翻譯和語(yǔ)音識(shí)別),如今都已被各種端到端的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法徹底改變了。神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法[9]主要分為卷積神經(jīng)網(wǎng)絡(luò)、注意力神經(jīng)網(wǎng)絡(luò)、自編碼神經(jīng)網(wǎng)絡(luò)、生成網(wǎng)絡(luò)和時(shí)空網(wǎng)絡(luò)5 大類。
卷積神經(jīng)網(wǎng)絡(luò)是所有其他復(fù)雜網(wǎng)絡(luò)的基礎(chǔ),但是由于其結(jié)構(gòu)簡(jiǎn)單,不能在復(fù)雜環(huán)境中實(shí)現(xiàn)較高精度的分類任務(wù),為此研究者提出了一些比較典型的CNN 框架[10-12]:LeNet、AlexNet、GooleNet、VGGNet、ResNet。一般情況下研究者會(huì)將其融合使用,使其效果更佳。文章將重點(diǎn)介紹卷積、注意力、生成對(duì)抗神經(jīng)網(wǎng)絡(luò)和金字塔神經(jīng)網(wǎng)絡(luò)。
2.2.1 注意力神經(jīng)網(wǎng)絡(luò)
注意力神經(jīng)網(wǎng)絡(luò)包含編碼器和解碼器2 部分[13],編碼器為采用加權(quán)組合的方式對(duì)輸入的參數(shù)進(jìn)行編碼,得到一組向量,解碼器采用RNN 結(jié)構(gòu)對(duì)該組向量進(jìn)行解碼,引入注意力機(jī)制的神經(jīng)網(wǎng)絡(luò)更容易分析圖像信息集中的那一部分,從而會(huì)忽略一些細(xì)節(jié)信息,因此文獻(xiàn)[14]通過(guò)ResNet 提出利用注意力機(jī)制實(shí)現(xiàn)特征的軟閾值化,網(wǎng)絡(luò)中輸出的閾值是各個(gè)特征通道的絕對(duì)值的平均值與一組0 和1 之間的系數(shù)的乘積,這樣能夠確保所有的閾值都為正數(shù),而且不會(huì)使所有的輸出都為0,使得該網(wǎng)絡(luò)能夠適用于噪聲含量不同的樣本中,避免了人工設(shè)置閾值所需要的專業(yè)知識(shí)不足的問(wèn)題。此外,針對(duì)低分辨率圖像在較深的網(wǎng)絡(luò)中會(huì)丟失大量信息的問(wèn)題,文獻(xiàn)[15]提出了通道注意力機(jī)制,通過(guò)對(duì)特征通道之間的相互依賴性建模來(lái)自適應(yīng)地重新縮放每個(gè)通道的特征,設(shè)計(jì)出一個(gè)RIR(Residual In Residual)架構(gòu),其中 RG(Residual Group)作為基本模塊,LSC(Long Skip Connection)則用來(lái)進(jìn)行粗略的殘差學(xué)習(xí),在每個(gè)RG 內(nèi)部則疊加數(shù)個(gè)簡(jiǎn)單的殘差塊和SSC(Short Skip Connection)。LSC、SSC 和殘差塊內(nèi)部的短連接可以允許豐富的低頻信息直接通過(guò)恒等映射向后傳播,這可以保證信息的流動(dòng),加速網(wǎng)絡(luò)的訓(xùn)練。
2.2.2 生成對(duì)抗神經(jīng)網(wǎng)絡(luò)
生成對(duì)抗神經(jīng)網(wǎng)絡(luò)由生成器和判別器組成[16],生成器首先接收一個(gè)隨機(jī)噪聲信號(hào),產(chǎn)生相應(yīng)的虛擬樣例,判別器則將虛擬樣例與真實(shí)樣例作比較,并給真實(shí)樣例盡可能大的概率,給虛擬樣例盡可能小的概率,反復(fù)迭代后,直至判別器無(wú)法區(qū)分樣例的真實(shí)情況。但是該方法在訓(xùn)練時(shí)不穩(wěn)定,不能生成離散的數(shù)據(jù),由此文獻(xiàn)[17]提出了一種端到端多任務(wù)生成對(duì)抗網(wǎng)絡(luò)(MTGAN),其生成器是一個(gè)超分辨率網(wǎng)絡(luò),它可以將小的模糊圖像采樣成精細(xì)的圖像,并恢復(fù)詳細(xì)的信息,以便進(jìn)行更精確的檢測(cè)。鑒別器是一個(gè)多任務(wù)網(wǎng)絡(luò),它用真/假分?jǐn)?shù)、對(duì)象類別分?jǐn)?shù)和邊界盒回歸偏移量來(lái)描述每個(gè)輸入圖像塊。同時(shí)將鑒別器中的分類和回歸損失反向傳播到生成器中,使生成器恢復(fù)更多的細(xì)節(jié)以便于檢測(cè)。文獻(xiàn)[18]提出了一種卷積編/解碼器框架來(lái)提取圖像輪廓,并由生成性對(duì)抗網(wǎng)絡(luò)來(lái)支持,以提高輪廓質(zhì)量。傳統(tǒng)的圖像到圖像模型只考慮預(yù)測(cè)值與地面真實(shí)值之間的損失,而忽略了結(jié)果的數(shù)據(jù)分布與地面真實(shí)值之間的相似性?;谶@一觀察結(jié)果,文章提出的生成對(duì)抗神經(jīng)網(wǎng)絡(luò)旨在提高檢測(cè)的準(zhǔn)確率。所得到的方法包含2 個(gè)模型,即編碼器-解碼器模型和鑒別器網(wǎng)絡(luò),編碼器-解碼器模型使用來(lái)自VGG16 預(yù)訓(xùn)練模型的微調(diào)的二進(jìn)制交叉熵?fù)p失來(lái)更新權(quán)重,而鑒別器網(wǎng)絡(luò)采用地面事實(shí)和預(yù)測(cè)輪廓作為判別的輸入。
2.2.3 金字塔網(wǎng)絡(luò)
金字塔神經(jīng)網(wǎng)絡(luò)的出現(xiàn)大大提高了小物體的識(shí)別率,其將原始圖片縮放為不同的大小[19],分別對(duì)這些圖片提取特征進(jìn)行預(yù)測(cè),由于每次特征提取和預(yù)測(cè)都是獨(dú)立進(jìn)行的,這樣會(huì)造成不同層級(jí)之間信息不能共享,增加網(wǎng)絡(luò)的計(jì)算時(shí)間。為此,文獻(xiàn)[20]使用特征轉(zhuǎn)化和特征融合2 個(gè)模塊,將圖像金字塔得到的淺層空間信息和細(xì)節(jié)信息融合到主干網(wǎng)絡(luò)中,讓網(wǎng)絡(luò)能夠提取足夠的淺層圖像信息,和來(lái)自深層語(yǔ)義的信息,從而可以減少特征未對(duì)準(zhǔn)和細(xì)節(jié)丟失的影響。所得到的特征也既包含了豐富的語(yǔ)義信息,又補(bǔ)充了淺層的空間細(xì)節(jié)信息,從而提升網(wǎng)絡(luò)對(duì)小目標(biāo)檢測(cè)的性能。為了克服使用多尺度圖片金字塔計(jì)算量大的問(wèn)題,文獻(xiàn)[21]設(shè)計(jì)了自上而下、自下而上、融合-分割3 種模式,分別檢測(cè)小型、大型、中型物體,最后使用混合特征金字塔網(wǎng)絡(luò)將其特征融合使用,以繼承3 種模式的優(yōu)點(diǎn)。
2.2.4 自編碼神經(jīng)網(wǎng)絡(luò)
自編碼網(wǎng)絡(luò)由負(fù)責(zé)降維的編碼器和負(fù)責(zé)升維的解碼器組成[22],其目的是為了在輸出層重新構(gòu)建輸入數(shù)據(jù),讓輸出數(shù)據(jù)與輸入數(shù)據(jù)相同,這就可以看作是一種無(wú)監(jiān)督學(xué)習(xí)方法。自編碼神經(jīng)網(wǎng)絡(luò)最簡(jiǎn)單的方法可以通過(guò)2 個(gè)恒等函數(shù)表達(dá)式來(lái)完成,但是這樣會(huì)造成隱藏層無(wú)法被表達(dá),多尺度信息丟失。針對(duì)這些問(wèn)題,文獻(xiàn)[23]提出分兩階段提取圖像的深度多尺度信息,先通過(guò)堆疊稀疏自動(dòng)編碼器(SSAE)提取圖像的多尺度信息,再通過(guò)一維平均合并策略來(lái)降低特征維數(shù),這樣可使神經(jīng)網(wǎng)絡(luò)在隱藏層神經(jīng)元較多的情況下依然能夠提取樣本的深層特征和結(jié)構(gòu)。而文獻(xiàn)[24]利用稀疏自動(dòng)編碼器降低圖像的特征維度,并重新構(gòu)建圖像中的感性區(qū)域,再?gòu)脑搮^(qū)域進(jìn)行特征提取,該方法可減少無(wú)用特征所占用的計(jì)算空間,提高最終的識(shí)別率。
文章主要分析了傳統(tǒng)神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)缺點(diǎn),對(duì)其原理以及當(dāng)前的運(yùn)用現(xiàn)狀進(jìn)行了研究。當(dāng)今圖像識(shí)別中已廣泛應(yīng)用卷積神經(jīng)網(wǎng)絡(luò)技術(shù),未來(lái)圖像識(shí)別應(yīng)用的環(huán)境將更加復(fù)雜,單獨(dú)使用某一類卷積神經(jīng)網(wǎng)絡(luò)技術(shù)時(shí)會(huì)存在一定的局限性,為了提高特殊環(huán)境下的識(shí)別率,如在目標(biāo)顏色與背景顏色一致,多個(gè)目標(biāo)重疊在一起,識(shí)別的目標(biāo)遮擋嚴(yán)重等極端環(huán)境下,可將不同的卷積神經(jīng)網(wǎng)絡(luò)技術(shù)相結(jié)合,充分利用各自的優(yōu)點(diǎn),同時(shí)可以針對(duì)不同物體的特殊結(jié)構(gòu)使用相應(yīng)的神經(jīng)網(wǎng)絡(luò),進(jìn)一步提高物體的識(shí)別率。