湯博宇,焦良葆,2,徐 逸,魏小玉,孟 琳
(1.南京工程學院 人工智能產(chǎn)業(yè)技術(shù)研究院,南京 211167;2.江蘇省智能感知技術(shù)與裝備工程研究中心,南京 211167)
圖像的特征反應出了一幅圖像的獨特之處,其中包含著明顯的結(jié)構(gòu)性信息,是其與其他圖像產(chǎn)生區(qū)別的重要屬性[1]。圖像的特征一般分為人造特征和自然特征,人造特征主要是人們?yōu)榱藢D像進行更好的分析研究所賦予圖像的一些外部特征(平均梯度、熵等),自然特征是圖像自帶的內(nèi)部特征(輪廓,紋理等)[2]。圖像特征提取是對一幅圖像進行深入解讀的必要手段,如今,圖像特征提取在各大領域中被廣泛地運用,如目標檢測、圖像檢索、運動結(jié)構(gòu)等領域。
傳統(tǒng)的特征檢測算法[3]有Harris角點檢測算法、SIFT算法、SURF算法、ORB 算法等。Harris[4]角點檢測法利用圖像的灰度參數(shù)來對圖像進行描述,缺點是缺少尺度不變性,而尺度不變性在圖像特征的提取中是不可或缺的一項重要特性;SIFT[5]算法最早于1999年被提出,得益于它的仿射不變性等各種優(yōu)良特性,在圖像特征提取領域被廣泛使用,相較于Harris角點檢測算法,圖像配準的準確度大大地提升,缺點是運算速度較慢;SURF[6]算法是對SIFT算法的進一步改進,優(yōu)化了計算的方式,使得算法的整體運算速度得到了提升,彌補了SIFT 算法的缺點;ORB[7]算法的最大優(yōu)點是速度快,是一種快速的對特征點進行描述以及提取的檢測算法,其由兩部分組成,分別是FAST 算法和BRIEF算法,F(xiàn)AST 算法負責對特征點的提取,BRIEF算法負責對特征點的描述。這些傳統(tǒng)算法主要利用一些數(shù)學原理,比如梯度特征、局部灰度值等,通過這些參數(shù)能夠?qū)⑽矬w本身的特征信息表達出來[8]。但是,傳統(tǒng)的特征檢測算法在面對弱紋理圖像或者是亮度較暗的圖像時,其特征提取的效果就會顯得捉襟見肘,主要原因是這些圖片的特征不夠明顯,如輪廓模糊,灰度值沒有區(qū)分度等,都是導致傳統(tǒng)算法特征提取效果不理想的原因[9]。針對這些問題,Huang[10]等人提出了利用FAST 算法對Shi-Tomasi特征點檢測算法進行加速,提高特征點的檢測速度;Li[11]等人提出了一種改進的KAZE算法,改變對特征點的檢測方法等步驟來提高算法的及時性;Chang[12]等人提出了一種基于FAST-SIFT組合的局部特征檢測算法,使用FAST 檢測算法進行快速的特征提取,利用SIFT 的128維描述子進行準確的特征描述,從而實現(xiàn)快速的局部特征提??;Zhang[13]等人提出了一種多尺度Harris特征點檢測算法,采用分組映射和模版匹配技術(shù),實現(xiàn)了復雜背景圖像的多尺度Harris特征點檢測,提高圖像特征點的定位識別能力。Zhang[14]等人提出了以Res-Net50神經(jīng)網(wǎng)絡為基礎,并在其中融入SE模塊,提高了圖像特征提取的質(zhì)量,可是SE 模塊會在使用的過程中會為了降低模型的復雜度而降低維度,這就會使特征提取的效率產(chǎn)生了一定的影響[15]。
為了解決上述已有算法所面臨的特征提取效果不理想的問題,本文提出了一種基于改進ResNet50的特征提取方法:首先,用改進過的超分辨率法對初始的低分辨率圖像進行處理:圖像經(jīng)過小波變換分解成高頻和低頻分量,再對這兩種分量分別進行雙線性插值和雙三次插值,接著進行小波逆變換,輸出高分辨率圖像,為后面的特征提取環(huán)節(jié)提供高質(zhì)量的輸入圖片。接著,以ResNet-50網(wǎng)絡為基礎,將其與輕量級通道注意力模塊——ECA(efficient channel attention)模塊相融合,產(chǎn)生了一個全新的ECAResNet50模塊。相較于其他通道注意力模塊,ECA 模塊在保證能夠高效地獲取所有通道的依賴關系的同時,保持圖像的維度不會發(fā)生改變,同時還能對輸入特征圖的通道特征進行加強。將進行過超分辨率處理的圖像輸入改進后的網(wǎng)絡中,進行特征的識別以及提取操作,并生成特征點的坐標,最后通過對孿生網(wǎng)絡生成的單應性矩陣H 進行實驗驗證來證明網(wǎng)絡的提升效果。
圖像分辨率的高低對于圖像特征的提取有著一定的影響,低分辨率的圖像中細節(jié)模糊,邊緣不清楚,特征不明顯,在后續(xù)的特征檢測的過程中很容易出現(xiàn)特征點不準確,誤匹配的情況。為了解決這些問題,需要對圖像實行超分辨率處理,隨后再用高分辨率圖像進行后續(xù)的圖像特征提取步驟。
在圖像重建領域,傳統(tǒng)的圖像重建方法會對圖像邊緣處的高頻部分產(chǎn)生平滑效應,使得大量的高頻信息產(chǎn)生丟失的現(xiàn)象,這是圖像重建領域存在的一個難題,這將直接導致最終重建圖像的模糊不清。而基于小波變換的圖像超分辨率重建的方法能夠很好地緩解這些問題[16]。小波變換是把基本小波函數(shù)進行位移τ,再在不同尺度α下,與待分析信號f(t)作內(nèi)積,具體如式(1)所示。在頻域以及時域內(nèi)的一些局部信息,通過小波變換能夠完好地保留下來,同時還能夠提取圖像的細節(jié)以及邊緣信息,通過這些操作,可以在對圖像的重建過程中充分利用圖像中存在的各種信息。從而,最終重建的圖像中將會保留更多有用的信息,圖像的細節(jié)方面也會更加地清晰準確[17]。傳統(tǒng)的小波變換圖像超分辨率重建主要有3個步驟:1)對圖像進行分解,分成低頻和高頻分量;2)對低頻分量和高頻分量進行重建;3)將重建后的分量進行小波逆變換,最終將會得到經(jīng)過超分處理后的圖像。
式中,α>0,稱為尺度因子。在圖像處理領域,還可以通過插值的方法來增加圖像的像素。假設原圖像為g(x,y),在經(jīng)過一番插值運算之后,輸出的圖像為g′(x′,y′),其中x′為插值后圖像的橫坐標,y′為插值后圖像的縱坐標,插值運算實際上就是映射運算,如式(2)所示。常見的插值算法有最近鄰點法、雙三次插值、雙線性插值這3種[18]。1)最近鄰點法是零階插值,在一個尺度空間內(nèi)給定一個待采樣點和一個點集,點集中離待采樣點最近的那個點的像素值即為待采樣點的像素值,此方法原理簡單,但插值效果不那么理想;2)雙三次插值,在待采樣點的鄰近選取16個點,對這16個點的像素值實行加權(quán)平均計算,最后將計算結(jié)果作為待采樣點的像素值。此插值算法效果良好,缺點就是計算復雜,運行速度慢;3)雙線性插值,在最近鄰點法的基礎上進行了改進,通過用待采樣點四周的4個鄰點的像素值,分別在x方向和y方向上進行線性內(nèi)插的操作,從而得到了待采樣點經(jīng)過插值后的新像素值。3種插值方法在速度和插值效果方面不同,可根據(jù)不同的情況按需選擇。
式中,h為映射計算。
用傳統(tǒng)的超分辨率方法對圖像進行處理后發(fā)現(xiàn),雖然圖像的清晰度相較于原始圖像有所提升,但是圖像仍存在著不同程度的失真以及模糊等問題。因此,提出了一種新的方法[19],具體步驟如下:
1)通過小波變換的分解,圖像被分成了低頻和高頻分量。與此同時,對圖像用Canny算法進行邊緣提取,Canny算法由于其較低的錯誤率以及出色的邊緣定位能力,一直被使用至今。
2)大部分的圖像信息儲存在低頻分量中,比如圖像的輪廓信息;而一些邊緣以及細節(jié)部分的信息則存儲在高頻分量中。為了達到最理想的效果,需要對兩種分量采取不同的插值方法:對于低頻分量可直接用雙三次插值法;高頻分量存在有檢測出的輪廓不清晰等現(xiàn)象,因此對于高頻部分,需要結(jié)合Canny的邊緣信息來得到新高頻信息,并針對新高頻信息采用雙線性插值,可有效保留邊緣信息并提高了插值速度。
3)通過小波逆變換得到高分辨的圖像。具體的流程如圖1所示。
圖1 圖像超分辨率處理流程圖
孿生網(wǎng)絡,是一種結(jié)構(gòu)對稱的網(wǎng)絡[20],如圖2 所示。在網(wǎng)絡中存在兩個編碼器,編碼器一般是由ResNet,VGG等一些基礎的網(wǎng)絡構(gòu)成,input1和input2分別進入兩個編碼器中,兩個編碼器會將權(quán)值進行共享,所以正常情況下,兩個編碼器將會采用同一種卷積神經(jīng)網(wǎng)絡,以便更容易實現(xiàn)權(quán)值共享。兩個輸入進入編碼器,被神經(jīng)網(wǎng)絡映射后,以一種全新的方式表現(xiàn)出來,最后再通過對Loss的計算,檢測兩個輸入的相似度,同時也能夠發(fā)現(xiàn)輸入對之間的差異。
圖2 孿生網(wǎng)絡結(jié)構(gòu)
本文中將采用改進后的ResNet網(wǎng)絡作為孿生結(jié)構(gòu)的編碼器模塊。殘差塊是ResNet殘差網(wǎng)絡主要組成部分,在此之前,網(wǎng)絡結(jié)構(gòu)比較淺,網(wǎng)絡層數(shù)越多,訓練集loss便逐漸下降至一個飽和值,當網(wǎng)絡層數(shù)繼續(xù)增加時,loss不會一直趨于平穩(wěn),反而逐漸增大。殘差塊的使用,使得網(wǎng)絡的深度能夠在保證正常工作的前提下得到進一步的加深。ResNet網(wǎng)絡結(jié)構(gòu)內(nèi)的殘差單元具體結(jié)構(gòu)如圖3所示。
圖3 ResNet網(wǎng)絡殘差單元
殘差單元將跨層傳遞的信息與經(jīng)過卷積后的信息相加后輸出。假定輸入的圖像為,經(jīng)過卷積后輸出的圖像為,則最終輸出的結(jié)果是,此輸出仍然可執(zhí)行非線性變換。上述式子中的即為殘差,網(wǎng)絡因此可以看作是對殘差函數(shù)的求取,這樣的殘差函數(shù)相較于優(yōu)化效果會更加明顯。
ResNet-50網(wǎng)絡中一共包含50 層網(wǎng)絡,我們可以把ResNet-50網(wǎng)絡看作是七個部分組成的一種網(wǎng)絡,第一部分是對輸入網(wǎng)絡的信息進行卷積計算,正則化,激活函數(shù)以及最大池化的操作,第二、三、四、五部分繼續(xù)進行卷積運算,且這些部分中包含了殘差塊[21]。第六部分進行平均池化的操作,第七部分是全連接層,具體的示意圖見圖4。
圖4 ResNet-50網(wǎng)絡組成示意圖
孿生網(wǎng)絡存在著不足之處,假如只是將孿生網(wǎng)絡進行簡單的學習操作,那么最終會輸出 “崩潰解”,即無論輸入的是什么,模型為了將loss降到最低,最后會輸出一個相同的常量,導致整個訓練過程沒有意義。為防止這種現(xiàn)象的發(fā)生,在孿生網(wǎng)絡中加入預測器(由兩個全連接層構(gòu)成)以及stop-gradient操作,預測器主要用于對左側(cè)編碼器生成的特征圖進行映射,具體結(jié)構(gòu)如圖5所示。將一組圖像對分別輸進兩個編碼器中進行特征的提取,預測器將左側(cè)編碼器生成的特征圖進行映射操作,最后再進行兩個圖像之間相似度的計算。
圖5 改進后的孿生網(wǎng)絡結(jié)構(gòu)
下文設計的特征提取網(wǎng)絡將作為上文所述的孿生結(jié)構(gòu)的編碼器模塊。ResNet殘差神經(jīng)網(wǎng)絡不同于一般的卷積神經(jīng)網(wǎng)絡,通過在其中加入殘差學習,一定程度上緩解了梯度彌散以及精度下降的問題。ResNet-50網(wǎng)絡結(jié)構(gòu)簡單,易操作,其網(wǎng)絡的參數(shù)量較其他網(wǎng)絡更少,而其網(wǎng)絡性能卻更加強大。因此,在圖像處理領域,經(jīng)常被用作特征提取的網(wǎng)絡,容易優(yōu)化的網(wǎng)絡結(jié)構(gòu),具有很大的研究價值。
把ECA 模塊融合到ResNet-50網(wǎng)絡中,以此來實現(xiàn)提高圖像特征提取質(zhì)量的目的。ECA 模塊是一種輕量級通道注意力模塊,其通道注意力機制,使得神經(jīng)網(wǎng)絡在對特征進行提取的時候,能夠?qū)︼@著特征更加地關注[22]。同時,與其他的通道注意力模塊相比,ECA 模塊不僅能夠不降低維度,還能夠保證高效地獲取所有通道的依賴關系,同時還能對輸入特征圖的通道特征進行加強[23]。恰當?shù)目缤ǖ澜换ゲ粌H能夠降低模型結(jié)構(gòu)的復雜程度,同時還能保證模型的高效率和可靠性。其具體的工作原理是,首先通過全局平均池化對空間信息進行壓縮,然后使用1*1的卷積來學習通道注意力信息,接著將獲取到的通道注意力信息與原始的輸入特征圖相結(jié)合,最后會輸出一張具體通道注意力的特征圖。其原理如圖6所示。
圖6 ECA 模塊原理圖
將ECA 模塊與ResNet殘差結(jié)構(gòu)相結(jié)合,形成一個全新的ECA-ResNet50模塊,具體結(jié)構(gòu)如圖7所示。
圖7 ECA-ResNet50模塊
全新的模塊由于增加了ECA 輕量級通道注意力模塊,因此在參數(shù)量和計算量上面會有一定量的增加,將其與原始的ResNet殘差結(jié)構(gòu)進行對比,這兩種結(jié)構(gòu)的參數(shù)量和計算量如表1所示。
表1 參數(shù)量與計算量
經(jīng)過比較,我們發(fā)現(xiàn)經(jīng)過改進后的ECA-ResNet50 結(jié)構(gòu)在參數(shù)上僅比原本的ResNet殘差結(jié)構(gòu)多了6%,在計算量上更是僅僅增加了0.176%,在增加了少量的計算量的基礎上,為網(wǎng)絡帶來了通道級的注意力機制,提高了特征的檢測精度,性價比非常的高。
本文中所使用的圖像均來自于曠視科技開源數(shù)據(jù)集。所有實驗均在Windws10 系統(tǒng)下的Matlab R2020a 和Pytorch深度學習框架下訓練和測試,編程語言為Python3.9,訓練和測試過程使用高性能服務器,其CPU 為Intel(R)Xeon(R)Gold 5118,顯卡為一塊英偉達GTX1080Ti。
小波變換和插值方法的結(jié)合,使得圖片的分辨率得到了有效的提升。為了驗證分辨率提升后的效果,將從主觀視覺方面以及客觀數(shù)據(jù)方面進行呈現(xiàn)。利用改進后的超分辨率方法對原始的低分辨率圖片進行處理,得到的效果如圖8所示。可見,進行超分辨率后的圖像比原圖更清晰了,圖片的細節(jié)方面也得到了有效的處理:第一組圖片中的建筑物輪廓以及窗戶的線條變得更加的清晰,原本迷糊不清的樹枝經(jīng)過超分辨率后變得清晰可見;第二組圖片中建筑物陽臺上的線條原本模糊不清,經(jīng)過處理后可清楚地辨別出線條的分界線,細節(jié)處得到了加強;第三組圖片中,原圖中卡車后尾的英文字母看不清,超分辨率后的圖中可清晰地看到其英文字母;第四組圖片中,屋頂?shù)幕y,門口石獅的臉部細節(jié)以及墻上的字的輪廓都更加明顯;第五組圖片中,遠處的樹以及近處屋頂?shù)拇u瓦的細節(jié)也得到了加強,更易分辨。由上可知,經(jīng)過改進后的超分辨率方法在圖像的邊緣以及細節(jié)進行了很好地處理。
圖8 圖像超分辨率處理前后對比圖
圖8從主觀視覺效果上對改進后的圖像預處理進行了初步的說明,為了進一步驗證圖像預處理的有效性,將會從客觀數(shù)據(jù)方面進行說明,這里以平均梯度為評價指標,公式如式(3)所示,平均梯度就是圖像的清晰程度,平均梯度的值和圖像的清晰度成正比。具體數(shù)據(jù)如表2 所示。從表中的數(shù)據(jù)中可以看出,經(jīng)過超分辨率后的圖像的平均梯度得到了有效的提升,說明圖像的清晰度得到了增強,為下一步特征提取的操作提供更加顯著的特征細節(jié),保證了最終輸出特征的高度精煉。
經(jīng)過改進后的特征提取網(wǎng)絡是否對特征點的提取質(zhì)量得到提高,需通過相關實驗得出具體的數(shù)據(jù)來進行驗證。為此,設立了一個評價指標為均方誤差(MSE,meansquare error)[24],通過該指標的數(shù)據(jù)來證明改進后的網(wǎng)絡的提升效果。
由上文可知,把兩幅圖輸入孿生網(wǎng)絡后,可從預測器處輸出一個單應性矩陣H。將數(shù)據(jù)集中的圖像對用手工標注特征點,在每張圖像上標注6個特征點,并記錄下相應的坐標,如圖9所示,原圖和目標圖中特征點的坐標位置相同。將原圖中的特征點經(jīng)過單應性矩陣H映射到目標圖上,得到映射后的特征點的對應坐標,最后跟目標圖中對應位置的特征點進行均方誤差的計算。
圖9 圖像超分辨率處理前后對比圖
MSE是將真實值與預測值的差值的平方然后求和,最后再進行平均,具體形式如式(4)所示:
由于標注的是6個特征點,所以上式中的m取值為6,最后計算出的MSE值越小,說明經(jīng)過單應性矩陣H映射后的特征點和目標圖上的特征點的偏移量越小,特征提取的效果越精確。
為了驗證改進后的特征提取網(wǎng)絡的特征提取的效果以及ECA 模塊的使用效果,將會通過消融實驗來進行驗證,消融實驗與控制變量法類似,通過增減不同的模塊來驗證該模塊的有效性,此處將會設置四組實驗來進行驗證。分別是,原圖+ResNet50網(wǎng)絡,超分后的圖片+ResNet50網(wǎng)絡,原圖+ECA-ResNet50模塊,超分后圖片+ECA-Res-Net50模塊。具體的實驗數(shù)據(jù)如表3所示。
表3 消融實驗結(jié)果
由表3可知,進行超分后的圖片+原始的ResNet-50網(wǎng)絡比原圖+原始的ResNet-50網(wǎng)絡降低了1.78,把ECA 模塊融入到ResNet-50后,比之前兩個實驗有了大幅度的提升,分別下降了5.45和3.67。而將圖片進行超分辨率處理后,再輸送進含有ECA-ResNet50 模塊的網(wǎng)絡中,相較于第一組原始圖片+原始ResNet-50網(wǎng)絡,整體的均方誤差下降了6.65。ECA 模塊為網(wǎng)絡帶來了通道注意力,使得網(wǎng)絡對關鍵特征的提取能夠更加地高效凝練,相對于原始的ResNet-50網(wǎng)絡,特征提取的效果有了顯著的提升。而對圖像進行超分辨率的操作,雖然提升的效果沒有ECA 模塊那么顯著,但是也有一定的效果。
本文主要對圖像特征質(zhì)量低的問題進行了研究與改進:1)為了獲得更清晰的圖像,對圖像進行了超分辨率操作,為后續(xù)的特征提取操作提供了一個高質(zhì)量的圖片素材;2)加入了輕量級的ECA 模塊,為整個網(wǎng)絡增加了通道注意力機制,使得網(wǎng)絡能夠更加關注關鍵部分的特征,從而提高最終提取出的特征點的質(zhì)量以及精度;3)為了能夠更加客觀地量化模塊的效果,本文采用了均方誤差這一量化方式,通過最后的實驗數(shù)據(jù)來直接有效地說明超分辨率操作以及ECA-ResNet50模塊的有效性。本文所提出的一整套圖像特征提取的方法與以前原始的特征提取方法以及一些專家學者所提出的方法相比,有著較為明顯的提升,但在后續(xù)的研究中,還需要對圖像特征檢測的速度及精確度進一步的加強,以達到更加完美的特征檢測效果。本文所展示的方法應用范圍廣泛,可應用于目標檢測、圖像識別、圖像拼接等方面,發(fā)展前景廣闊,研究價值極大。