武華敏 楊漠雨 黃曉雪 吉才全 王煒杰 張榮福 陳楠
摘要:十字線(xiàn)中心檢測(cè)是反射法測(cè)量透鏡中心偏的重要組成部分,十字中心的檢測(cè)精度決定了透鏡中心偏的測(cè)量精度。針對(duì)邊緣不規(guī)則、對(duì)比度差、信噪比低的圖像,提出了基于深度卷積神經(jīng)網(wǎng)絡(luò)的十字線(xiàn)中心檢測(cè)算法。算法的思想是,卷積神經(jīng)網(wǎng)絡(luò)可以在一定程度上解決傳統(tǒng)算法局限于提取十字像邊緣直線(xiàn)和角點(diǎn)特征的問(wèn)題,實(shí)現(xiàn)對(duì)十字像整體特征的識(shí)別與定位,這可以相對(duì)減小圖像噪聲對(duì)十字像中心定位的影響,從而實(shí)現(xiàn)在圖像質(zhì)量比較差的情況下對(duì)十字像中心準(zhǔn)確定位。實(shí)驗(yàn)結(jié)果表明,提出的算法能夠在圖像邊緣不規(guī)則、對(duì)比度差、信噪比低等的條件下比較精確得到十字線(xiàn)中心點(diǎn)。
關(guān)鍵詞:十字線(xiàn)中心;卷積神經(jīng)網(wǎng)絡(luò);圖像標(biāo)注;圖像增強(qiáng)
中圖分類(lèi)號(hào):TP391 文獻(xiàn)標(biāo)志碼:A
引言
隨著高精度光學(xué)測(cè)量設(shè)備的快速發(fā)展,透鏡作為光學(xué)系統(tǒng)的主要零部件,對(duì)其精度要求也越來(lái)越高。但是由于生產(chǎn)條件和工藝的限制,在透鏡加工過(guò)程中,不可避免的會(huì)產(chǎn)生一定缺陷,進(jìn)而破壞了鏡面的共軸性,產(chǎn)生中心偏。中心偏會(huì)導(dǎo)致光學(xué)測(cè)量系統(tǒng)成像質(zhì)量的下降。
基于反射式測(cè)量的透鏡中心偏檢測(cè)儀是將光源產(chǎn)生的光線(xiàn)聚焦在被測(cè)鏡面曲率半徑中心,然后反射到CCD上得到一個(gè)清晰的十字像,能否精確檢測(cè)十字像中心點(diǎn)對(duì)透鏡中心偏測(cè)量?jī)x的測(cè)量精度有著重要的影響。目前,偏心儀在測(cè)量透鏡中心偏時(shí)導(dǎo)致測(cè)量誤差比較大的情況主要有三個(gè)方面:一是偏心儀設(shè)備采用的測(cè)量鏡頭個(gè)數(shù)有限,對(duì)于曲率半徑比較大的被測(cè)鏡片來(lái)說(shuō),在測(cè)量中心偏時(shí),可能在CCD上只能得到一個(gè)比較模糊的十字像;二是在被測(cè)鏡片直徑較大時(shí),CCD上所呈十字像總是比較寬且邊緣不規(guī)則;三是由于鏡片表面質(zhì)量比較差,CCD上所呈十字像往往信噪比低、對(duì)比度差。
針對(duì)上述問(wèn)題,傳統(tǒng)的基于十字像的幾何結(jié)構(gòu)的檢測(cè)算法,如直線(xiàn)擬合、形態(tài)學(xué)腐蝕、模板匹配、霍夫變換等往往有一定的局限性。對(duì)于邊緣不規(guī)則的十字像,采用直線(xiàn)擬合算法得到的結(jié)果就會(huì)有比較大的偏差;對(duì)于信噪比較低的十字像,采用形態(tài)學(xué)腐蝕的方法就無(wú)法檢測(cè)到精確的中心點(diǎn)。因此,本文提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的十字像中心定位算法。由于目前沒(méi)有相關(guān)的數(shù)據(jù)集和模型,本文從十字像關(guān)鍵點(diǎn)標(biāo)注方法的設(shè)計(jì)、十字像數(shù)據(jù)集的構(gòu)建、模型評(píng)價(jià)標(biāo)準(zhǔn)的設(shè)定、模型結(jié)構(gòu)的設(shè)計(jì)等四個(gè)方面來(lái)研究,在對(duì)數(shù)據(jù)集進(jìn)行訓(xùn)練以及模型結(jié)構(gòu)改進(jìn)后,得到了在邊緣不規(guī)則、對(duì)比度差、信噪比低等成像條件下的十字像中心準(zhǔn)確定位模型。
1卷積神經(jīng)網(wǎng)絡(luò)理論
神經(jīng)元是組成一個(gè)神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu),一個(gè)神經(jīng)元主要由以下及比分部分構(gòu)成,如圖1所示,假設(shè)x1,…,xm是感知器的m個(gè)輸入信號(hào),6是偏置,W1,W2,…,Wm是感知神經(jīng)元輸入對(duì)應(yīng)的權(quán)重,用權(quán)值對(duì)輸入進(jìn)行加權(quán)求和并加上偏置,得到誘導(dǎo)局部域(z),再用激活函數(shù)限制誘導(dǎo)局部域輸出的振幅。最終得到的輸出的數(shù)學(xué)計(jì)算公式可表示為:
式中:A為神經(jīng)元的輸出;f為激活函數(shù),b為偏置。
卷積神經(jīng)網(wǎng)絡(luò)在語(yǔ)音識(shí)別、人臉識(shí)別、通用物體識(shí)別等多個(gè)方向得到應(yīng)用,受到越來(lái)越多的重視。卷積神經(jīng)網(wǎng)絡(luò),不需要對(duì)原始圖像進(jìn)行復(fù)雜的前期預(yù)處理以及特征提取,原始圖像可以直接作為輸入,避免了復(fù)雜的數(shù)據(jù)預(yù)處理和特征提取過(guò)程,由此在圖像識(shí)別等領(lǐng)域得到了非常廣泛的應(yīng)用。卷積神經(jīng)網(wǎng)絡(luò)通過(guò)局部感受野、權(quán)值共享和池化來(lái)識(shí)別位移、旋轉(zhuǎn)和縮放不變性。通過(guò)局部感受野,神經(jīng)網(wǎng)絡(luò)可以提取圖像的視覺(jué)特征;權(quán)值共享相對(duì)于全連接神經(jīng)網(wǎng)絡(luò)來(lái)說(shuō)只需要很少的參數(shù)就能完成對(duì)數(shù)據(jù)的訓(xùn)練;池化層可以大大減少整個(gè)網(wǎng)絡(luò)的計(jì)算量,并且在一定程度上可以防止過(guò)擬合。卷積神經(jīng)網(wǎng)絡(luò)是一種多層的有監(jiān)督神經(jīng)網(wǎng)絡(luò),包括輸入層、隱含層(卷積層、池化層)、全連接層、輸出層等,通過(guò)反向傳播算法來(lái)優(yōu)化網(wǎng)絡(luò),更新并求解未知參數(shù)。
1.1卷積層
卷積操作如圖2所示。在一個(gè)卷積層,對(duì)于特征圖來(lái)說(shuō),其中每一個(gè)神經(jīng)元與前一層的局部感受野相對(duì)應(yīng),感受野與一個(gè)可學(xué)習(xí)的卷積核進(jìn)行卷積運(yùn)算,經(jīng)過(guò)卷積運(yùn)算后可以得到局部特征圖。卷積層的計(jì)算公式如下:
1.3反向傳播和參數(shù)更新
在神經(jīng)網(wǎng)絡(luò)開(kāi)始訓(xùn)練時(shí),初始的權(quán)值都會(huì)被賦予較小的隨機(jī)數(shù)。因此,在卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練的初始時(shí)期,網(wǎng)絡(luò)的損失值較大,效果無(wú)法體現(xiàn),通過(guò)神經(jīng)網(wǎng)絡(luò)的反向傳播算法不斷更新參數(shù),網(wǎng)絡(luò)也在不斷的優(yōu)化,最終網(wǎng)絡(luò)收斂,達(dá)到最優(yōu)的分類(lèi)或回歸目標(biāo)。網(wǎng)絡(luò)權(quán)值的更新公式如下:
2實(shí)驗(yàn)過(guò)程及結(jié)果分析
2.1構(gòu)建十字像中心檢測(cè)數(shù)據(jù)集
本文數(shù)據(jù)集包含的圖片是從基于反射法搭建的偏心儀測(cè)量平臺(tái)上獲取。相機(jī)拍攝到的圖片分辨率統(tǒng)一為1920×1200。在圖像數(shù)據(jù)集的獲取與選擇過(guò)程中,主要考慮以下幾方面的因素。
(1)測(cè)量鏡頭焦點(diǎn)距被測(cè)鏡面曲率半徑中心的遠(yuǎn)近。在透鏡中心偏測(cè)量過(guò)程中,對(duì)于大多數(shù)中心偏測(cè)量設(shè)備來(lái)說(shuō),設(shè)備的測(cè)量范圍往往是有限的,原因在于測(cè)量鏡頭焦距大小是有限的。根據(jù)中心偏測(cè)量原理可知,當(dāng)測(cè)量鏡頭焦點(diǎn)和被測(cè)鏡面曲率半徑中心重合時(shí),才能得到清晰的十字像,進(jìn)而測(cè)量透鏡中心偏,所以一般只能測(cè)量曲率半徑小于測(cè)量鏡頭焦距的鏡片。對(duì)于曲率半徑大于測(cè)量鏡頭焦距的被測(cè)鏡面來(lái)說(shuō),測(cè)量頭焦點(diǎn)只能移動(dòng)到被測(cè)鏡面曲率半徑中心附近,這種情況下會(huì)得到一個(gè)模糊十字像。因此,為了實(shí)現(xiàn)在模糊十字像下的準(zhǔn)確定位,本實(shí)驗(yàn)通過(guò)采集在各種情況下所呈模糊十字像,加入訓(xùn)練集,通過(guò)基于CNN的十字像中心定位模型訓(xùn)練,來(lái)精確預(yù)測(cè)這些十字像的中心點(diǎn)。如圖4所示為測(cè)量鏡頭焦點(diǎn)距被測(cè)鏡面曲率半徑中心不同遠(yuǎn)近情況下采集到的十字像,從左至右表示測(cè)量鏡頭焦點(diǎn)距被測(cè)鏡面曲率半徑中心越來(lái)越遠(yuǎn)。
(2)鏡片表面質(zhì)量差。在進(jìn)行中心偏測(cè)量時(shí),由于鏡片表面質(zhì)量比較差,反射回的光線(xiàn)經(jīng)十字劃線(xiàn)板后在CCD上所呈十字像會(huì)非常模糊,圖像背景和十字像的對(duì)比度也要低很多。在這種條件下,用傳統(tǒng)十字像中心定位算法無(wú)法有效擬合出十字像邊緣,也無(wú)法對(duì)十字像角點(diǎn)進(jìn)行有效檢測(cè)。因此,將此類(lèi)圖片加入到樣本集中,經(jīng)過(guò)神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練,可以提升針對(duì)此類(lèi)圖片的檢測(cè)精度。采集的部分圖片如圖5所示。
(3)不同的角度。在實(shí)際的測(cè)量過(guò)程中,偏心儀測(cè)量設(shè)備的光源和相機(jī)的抖動(dòng)很容易造成十字像的偏轉(zhuǎn),將各種不同旋轉(zhuǎn)角度的圖像采集作為樣本,可以顯著地提高深度學(xué)習(xí)算法的魯棒性,同時(shí)也增加了樣本集的多樣性,圖5展示了不同角度的圖片。
(4)圖片差異性。在對(duì)所拍攝圖片挑選過(guò)程中,充分考慮各個(gè)圖片之間的差異性。采集了22種不同規(guī)格的鏡片在不同條件下所呈十字像。在一定程度上,這可以避免數(shù)據(jù)的重疊,同時(shí)降低訓(xùn)練的難度,避免計(jì)算資源的浪費(fèi),提升深度學(xué)習(xí)算法的泛化性能。
綜合考慮以上各種因素,共拍攝了882張十字像圖片。由于圖像樣本在采集過(guò)程中充分考慮了鏡片類(lèi)型、光源、相機(jī)抖動(dòng)、鏡面質(zhì)量、角度等因素,使得整個(gè)樣本集中包含的圖片在寬度、清晰度、傾斜度、顏色、背景等方面都具備了較大的差異性。從總體上看,本章采集的圖像樣本比較有代表性,能夠有效反應(yīng)中心偏測(cè)量過(guò)程中十字像各方面的特征。
2.2圖像預(yù)處理
本實(shí)驗(yàn)對(duì)采集到的原圖像做預(yù)處理的目的是突出十字像的特征,即增強(qiáng)十字像與背景的對(duì)比度,同時(shí)處理一些常見(jiàn)的圖像噪聲,提升卷積神經(jīng)網(wǎng)絡(luò)的泛化性能,減少噪聲帶來(lái)的干擾。如圖6所示,十字像十分模糊,相對(duì)于背景的對(duì)比度比較低,不利于卷積神經(jīng)網(wǎng)絡(luò)的識(shí)別,可能會(huì)被視為異常從而影響卷積神經(jīng)網(wǎng)絡(luò)模型的性能,因此,通過(guò)預(yù)處理來(lái)增強(qiáng)十字像的信號(hào)。通過(guò)觀(guān)察發(fā)現(xiàn),圖像中的十字像都呈現(xiàn)淡藍(lán)色,對(duì)于模糊的圖像,首先將RGB圖像中的藍(lán)色通道的圖像提取出來(lái)作為初始的灰度圖,接著對(duì)該灰度圖進(jìn)行濾波、平滑、去噪等操作,進(jìn)一步得到初步處理后的圖像。經(jīng)過(guò)上述預(yù)處理后,可以看到中間圖片中的十字像相對(duì)于背景還是比較模糊。對(duì)此,可以采用灰度變換的方法來(lái)提升圖像的對(duì)比度。灰度變換中的冪變換和對(duì)數(shù)變換都可以實(shí)現(xiàn)圖像灰度級(jí)的擴(kuò)展和壓縮,除此之外,對(duì)數(shù)變換還有一個(gè)性質(zhì),它可以壓縮圖像灰度值變化范圍較大的圖像的動(dòng)態(tài)范圍。對(duì)數(shù)變換的計(jì)算公式如下:
s=c×lg(1+r)(6)式中:c表示一個(gè)常數(shù);r表示圖像中某個(gè)像素的灰度值;s表示圖像中某像素經(jīng)過(guò)對(duì)數(shù)變換后得到的灰度值。從式中可以看出,對(duì)數(shù)變換可以將原圖像中范圍較寬的的高灰度值區(qū)間映射到范圍較窄的灰度區(qū)間,同時(shí)將范圍較窄的低灰度值映射到范圍較寬的灰度區(qū)間。圖6(c)經(jīng)過(guò)灰度變換后的圖像相對(duì)于圖6(a)沒(méi)有經(jīng)過(guò)灰度變換的圖像,十字像變得更加清晰,和背景的對(duì)比度也顯著提高了。
2.3圖像的標(biāo)注方法
對(duì)于十字像中心檢測(cè)的任務(wù),對(duì)十字像的標(biāo)注有三種方案可選擇,如圖7所示。
(1)中心點(diǎn)標(biāo)注。利用halcon軟件讀取圖像的中心點(diǎn)并做亞像素級(jí)別的標(biāo)注。人工找出十字像的中心區(qū)域,通常情況下會(huì)描繪出一個(gè)矩形區(qū)域,根據(jù)矩形區(qū)域的四個(gè)頂點(diǎn)坐標(biāo),可以求得精確到0.01個(gè)像素級(jí)的十字像中心坐標(biāo)及樣本的標(biāo)簽,記為[x,y],作為算法的測(cè)試和訓(xùn)練數(shù)據(jù)。
(2)角點(diǎn)標(biāo)注。利用halcon軟件讀取圖像后,找到十字像的四個(gè)角點(diǎn)坐標(biāo)。在角點(diǎn)標(biāo)注的過(guò)程中,圖像放大后十字像的交叉處并不是嚴(yán)格意義上的垂直,而是呈弧形,這給角點(diǎn)標(biāo)注帶來(lái)了比較大的困難。通中心點(diǎn)標(biāo)注相似,在交叉處選取一個(gè)小的矩形區(qū)域,通過(guò)求解矩形區(qū)域的中心點(diǎn)得4個(gè)角點(diǎn)的坐標(biāo)來(lái)作為樣本的標(biāo)簽使用,從左上角第1個(gè)角點(diǎn)坐標(biāo)起,按順時(shí)針?lè)较颍梢缘玫揭粋€(gè)樣本的標(biāo)簽為4個(gè)標(biāo)點(diǎn),記為[x1,y1,x2,y2,x3,y3,x4,y4]。
(3)十字交叉線(xiàn)標(biāo)注。參考骨骼關(guān)鍵點(diǎn)檢測(cè)的標(biāo)注方法,對(duì)十字線(xiàn)直接進(jìn)行標(biāo)注關(guān)鍵點(diǎn),進(jìn)而擬合兩條通過(guò)十字像中心的兩條交叉線(xiàn)。此標(biāo)注方法不僅可以很好地體現(xiàn)十字像的特征,同時(shí)標(biāo)注的關(guān)鍵點(diǎn)位置相對(duì)于整幅圖像的偏移量也不大,提供給神經(jīng)網(wǎng)絡(luò)訓(xùn)練的監(jiān)督信息也更多,在實(shí)際的學(xué)習(xí)過(guò)程中更容易回歸,網(wǎng)絡(luò)的收斂速度也會(huì)加快。該方法同樣使用halcon軟件進(jìn)行人工標(biāo)注,每條交叉線(xiàn)上標(biāo)注四個(gè)點(diǎn)加上中心點(diǎn)一共9個(gè)點(diǎn)。與前兩種標(biāo)注方法類(lèi)似,需要實(shí)現(xiàn)精確到0.1個(gè)像素級(jí)的標(biāo)注,最終通過(guò)兩條擬合的交叉線(xiàn)求取十字像中心點(diǎn)的精度可達(dá)到0.01個(gè)像素級(jí)的檢測(cè)精度。
2.4數(shù)據(jù)集的劃分
在對(duì)十字像樣本標(biāo)注完成之后,需要對(duì)得到的數(shù)據(jù)集進(jìn)行劃分。劃分主要分為測(cè)試集和訓(xùn)練集兩類(lèi),沒(méi)有設(shè)置驗(yàn)證集。常見(jiàn)的數(shù)據(jù)集的劃分方法主要有交叉驗(yàn)證法和留出法等。在深度學(xué)習(xí)中,測(cè)試集一般從樣本集的整個(gè)樣本空間上獨(dú)立同分布采樣得到,同時(shí)測(cè)試集在選取的同時(shí)要注意與測(cè)試集互斥。對(duì)于采樣,常見(jiàn)的采樣方式主要有隨機(jī)采樣、分層采樣、等距采樣和整群采樣等。
在數(shù)據(jù)集的劃分方面,根據(jù)以往的經(jīng)驗(yàn),將采集到的樣本集分為訓(xùn)練集和測(cè)試集,按照8:2的比例來(lái)劃分?jǐn)?shù)據(jù)集。在數(shù)據(jù)劃分的過(guò)程中,為了避免引入額外的偏差,同時(shí)保證測(cè)試集和訓(xùn)練集在數(shù)據(jù)分布上保持一致性,本實(shí)驗(yàn)采用分層抽樣和等距抽樣相結(jié)合的采樣辦法,從原始樣本集中采樣得到訓(xùn)練集和測(cè)試集。
2.5網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計(jì)
本實(shí)驗(yàn)中提出的用于檢測(cè)十字像中心的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖8所示,共包含四組卷積池化層,每組包含兩個(gè)卷積層和一個(gè)最大池化層,除此之外,還包含一組全連接層用于模型的輸出。輸入層是從經(jīng)過(guò)圖像預(yù)處理之后的原始圖像經(jīng)過(guò)下采樣得到的大小為243x243的灰度圖。第一組卷積池化層首先采用8個(gè)9×9大小的卷積核進(jìn)行卷積運(yùn)算,接著是3×3的最大池化之后輸出8個(gè)不同的特征圖進(jìn)入下一組卷積池化層。前三組卷積池化層都是采用9×9大小的卷積核參與卷積運(yùn)算,在第4組卷積池化層中使用一組5×5的卷積核,主要是參考了骨骼關(guān)鍵點(diǎn)檢測(cè)中在最后的卷積層中使用了5×5的卷積核。
本文將十字像中心檢測(cè)問(wèn)題轉(zhuǎn)化為十字像關(guān)鍵點(diǎn)的檢測(cè)問(wèn)題。同骨骼關(guān)鍵點(diǎn)和人臉關(guān)鍵點(diǎn)檢測(cè)類(lèi)似,通過(guò)標(biāo)記圖像中的關(guān)鍵點(diǎn)即特征點(diǎn)來(lái)構(gòu)建訓(xùn)練集和測(cè)試集。關(guān)鍵點(diǎn)的檢測(cè)問(wèn)題歸根結(jié)底來(lái)說(shuō)就是一個(gè)回歸問(wèn)題,關(guān)鍵點(diǎn)的位置用圖像坐標(biāo)系中的對(duì)應(yīng)坐標(biāo)來(lái)表征,而關(guān)鍵點(diǎn)的位置坐標(biāo)是連續(xù)的,不是一個(gè)分類(lèi)問(wèn)題。對(duì)于回歸問(wèn)題來(lái)說(shuō),常用的評(píng)價(jià)標(biāo)準(zhǔn)有均方誤差、平均絕對(duì)誤差、解釋方差和決定系數(shù)。本文采用絕對(duì)誤差損失作為卷積神經(jīng)網(wǎng)絡(luò)模型的損失函數(shù),即模型的評(píng)價(jià)標(biāo)準(zhǔn)。絕對(duì)誤差的公式如下:
2.6實(shí)驗(yàn)結(jié)果及分析
在深度學(xué)習(xí)模型的調(diào)試過(guò)程中,為了調(diào)整網(wǎng)絡(luò)結(jié)構(gòu),提升模型的性能,需要不斷對(duì)學(xué)習(xí)率、hum features、卷積核的大小等超參數(shù)進(jìn)行交叉驗(yàn)證,以找到最優(yōu)的超參數(shù),同時(shí)需要不斷的優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)來(lái)提升模型的整體性能。因此,為了方便調(diào)試網(wǎng)絡(luò)結(jié)構(gòu)以及尋找模型的最優(yōu)化參數(shù),需要將計(jì)算圖進(jìn)行可視化。本實(shí)驗(yàn)是基于Tensor-Flow框架實(shí)現(xiàn)的卷積神經(jīng)網(wǎng)絡(luò)模型,Tensor-Flow框架中提供了一個(gè)Tensorboard可視化工具,可以在TensorFlow的Graph中顯示各種指標(biāo)隨著迭代步數(shù)或者運(yùn)行時(shí)間的變化趨勢(shì)。
Tensorboard可視化工具可以把程序運(yùn)行的信息通過(guò)圖表的形式展現(xiàn)出來(lái),比如標(biāo)量圖可以顯示回歸損失、分類(lèi)準(zhǔn)確率、學(xué)習(xí)率、權(quán)重和偏置隨程序迭代步數(shù)的變化情況。通過(guò)權(quán)重的變化可以了解到是否有梯度消失和梯度爆炸等情況,通過(guò)損失值的變化趨勢(shì)可以了解到模型是否收斂。因此從這些參數(shù)的變化情況可以了解到每一層網(wǎng)絡(luò)的訓(xùn)練情況,從而對(duì)相應(yīng)的參數(shù)做出調(diào)整和優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)。
如圖9所示為本實(shí)驗(yàn)的深度學(xué)習(xí)算法模型在中心點(diǎn)標(biāo)注、角點(diǎn)標(biāo)注、直線(xiàn)標(biāo)注三種不同的標(biāo)注方式下的模型損失隨迭代步數(shù)的變化趨勢(shì)。其中縱坐標(biāo)表示模型在訓(xùn)練集上的回歸損失,橫坐標(biāo)表示模型的訓(xùn)練步數(shù)。從圖9(a)中可以看出,基于中心點(diǎn)標(biāo)注的損失值在模型迭代的過(guò)程中隨機(jī)跳動(dòng),無(wú)法收斂。原因在于在一幅243×243的圖片上只標(biāo)注一個(gè)中心點(diǎn)坐標(biāo)作為樣本的標(biāo)簽,即直接將十字像的中心點(diǎn)作為關(guān)鍵點(diǎn),作為卷積神經(jīng)網(wǎng)絡(luò)的回歸目標(biāo),這種標(biāo)注方式本質(zhì)上需要回歸的是每一個(gè)關(guān)鍵點(diǎn)相對(duì)于整個(gè)圖片的offset,而長(zhǎng)距離的offset在實(shí)際的模型訓(xùn)練中難以收斂,誤差很大,同時(shí)在模型訓(xùn)練的過(guò)程中提供的監(jiān)督信息較少,導(dǎo)致整個(gè)網(wǎng)絡(luò)的收斂速度變慢。圖9(b)是基于角點(diǎn)標(biāo)注的損失值隨迭代步數(shù)的變化情況,可以看出,相對(duì)于中心點(diǎn)標(biāo)注,模型在一定程度上收斂了,原因在于四個(gè)角點(diǎn)處于十字交叉線(xiàn)的位置,可以在一定程度上表征十字交叉線(xiàn)的特征點(diǎn),但是圖片中的十字交叉線(xiàn)最終還是處于波動(dòng)狀態(tài),損失值無(wú)法繼續(xù)減小并保持穩(wěn)定,原因還是相對(duì)于整幅圖片的offset較大導(dǎo)致模型無(wú)法穩(wěn)定收斂,最終結(jié)果誤差較大。圖9(c)十字交叉線(xiàn)標(biāo)注相對(duì)于前兩種標(biāo)注方式來(lái)講,共標(biāo)注了9個(gè)點(diǎn)的位置信息,這就為模型的訓(xùn)練提供了更多的監(jiān)督信息,同時(shí)也可以比較好的表征十字叉線(xiàn)的特征信息,因此模型在此訓(xùn)練集上訓(xùn)練可以穩(wěn)定的收斂,得到比較好的預(yù)測(cè)結(jié)果。
實(shí)驗(yàn)基于3種標(biāo)注方式的數(shù)據(jù)集分別進(jìn)行了模型訓(xùn)練,最終采用十字交叉線(xiàn)標(biāo)注的圖像作為深度學(xué)習(xí)算法模型的訓(xùn)練集和測(cè)試集。在此基礎(chǔ)上不斷對(duì)模型進(jìn)行優(yōu)化,基于深度學(xué)習(xí)關(guān)鍵點(diǎn)檢測(cè)收斂相對(duì)較難的問(wèn)題,添加了指數(shù)衰減使學(xué)習(xí)率隨著迭代步數(shù)的增加逐漸減小,有利于模型收斂。同時(shí)在卷積層添加了Dropout正則化和L2正則來(lái)避免算法模型的過(guò)擬合,以增加模型的泛化性能。
如圖10所示,實(shí)驗(yàn)采用五折交叉驗(yàn)證來(lái)評(píng)估模型的性能。將原始數(shù)據(jù)集D共882張圖片分為5個(gè)子數(shù)據(jù)集D1、D2、D3、D4、D5,每次選取4個(gè)子數(shù)據(jù)集進(jìn)行訓(xùn)練,剩余1個(gè)子數(shù)據(jù)集作為測(cè)試數(shù)據(jù)集使用,上述過(guò)程重復(fù)5次可以得到5個(gè)測(cè)試結(jié)果,測(cè)試結(jié)果為對(duì)應(yīng)模型在測(cè)試集上的絕對(duì)誤差損失值,這5個(gè)測(cè)試結(jié)果可以反應(yīng)模型對(duì)十字像關(guān)鍵點(diǎn)預(yù)測(cè)的有效性和模型的泛化性能。交叉驗(yàn)證測(cè)試數(shù)據(jù)集總共包含176張圖片,在模型訓(xùn)練完成之后,對(duì)訓(xùn)練集的每張圖片分別進(jìn)行預(yù)測(cè),每張圖片的預(yù)測(cè)結(jié)果為9個(gè)關(guān)鍵點(diǎn),共18個(gè)坐標(biāo)值,對(duì)這9個(gè)關(guān)鍵點(diǎn)進(jìn)行直線(xiàn)擬合可以得到兩條直線(xiàn)方程,計(jì)算兩條直線(xiàn)的交點(diǎn)即可得到各個(gè)圖片的中心點(diǎn)位置坐標(biāo)。
經(jīng)過(guò)5次訓(xùn)練和預(yù)測(cè),依次得到每一次訓(xùn)練后模型對(duì)測(cè)試集的預(yù)測(cè)結(jié)果,即絕對(duì)誤差損失值的大小。如圖11所示,橫坐標(biāo)值為第幾次訓(xùn)練,縱坐標(biāo)值為模型在測(cè)試集176張圖片上的絕對(duì)誤差損失,根據(jù)式(7)計(jì)算得出。5次結(jié)果的損失平均值為431.995 4,模型對(duì)每一張圖片中心點(diǎn)坐標(biāo)(x,y)的預(yù)測(cè)值和標(biāo)注值平均相差1.23個(gè)像素值??紤]到測(cè)試集176張圖片中包含各種不同類(lèi)型的圖像,同時(shí)模型對(duì)清晰十字像的預(yù)測(cè)誤差比較小,那么模型對(duì)邊緣不規(guī)則、模糊、信噪比低的圖像的預(yù)測(cè)誤差應(yīng)在2-3個(gè)像素,這在成像質(zhì)量比較差的情況下對(duì)十字像中心進(jìn)行定位,和傳統(tǒng)算法做對(duì)比,誤差在可接受范圍內(nèi)。
從測(cè)試集中選取4張不同類(lèi)型的圖片作為待測(cè)圖片,包含清晰十字像、邊緣不規(guī)則十字像、模糊十字像、信噪比低十字像。每張圖片經(jīng)過(guò)已建立好的卷積神經(jīng)網(wǎng)絡(luò)模型輸出后得到9個(gè)關(guān)鍵點(diǎn)的18個(gè)坐標(biāo)值,將預(yù)測(cè)得到的關(guān)鍵點(diǎn)坐標(biāo)標(biāo)記在原圖像上,得到圖12(a)、(c)、(e)、(g)所示的結(jié)果。對(duì)每張圖像上的9個(gè)關(guān)鍵點(diǎn)進(jìn)行直線(xiàn)擬合,得到兩條直線(xiàn)方程,然后求兩條直線(xiàn)的交點(diǎn),最終得到該十字線(xiàn)的中心點(diǎn)坐標(biāo)。將計(jì)算的中心點(diǎn)坐標(biāo)標(biāo)記在在原圖上,得到圖12(b)、(d)、(f)、(h)所示的結(jié)果。
本文選取了兩種傳統(tǒng)算法,SUSAN算法和直線(xiàn)擬合算法對(duì)圖12中4張不同類(lèi)型的十字像進(jìn)行中心點(diǎn)定位,并和基于卷積神經(jīng)網(wǎng)絡(luò)的十字像定位算法結(jié)果做對(duì)比分析。
SUSAN算法原理如圖13所示,圖中的暗區(qū)為目標(biāo)檢測(cè)區(qū)域,SUSAN算法會(huì)指定一個(gè)圓形模板對(duì)圖像進(jìn)行遍歷,如果模板中心點(diǎn)的像素值和模板內(nèi)的像素值小于設(shè)定的閾值,就認(rèn)為該點(diǎn)和模板中心點(diǎn)屬于同一類(lèi)點(diǎn),由這些點(diǎn)組成的區(qū)域就叫USAN區(qū)域,USAN區(qū)域越大,距離目標(biāo)區(qū)域也越近。此原理可以用來(lái)定位十字叉線(xiàn)的中心,即當(dāng)圓形模板的中心與十字像中心重合時(shí),USAN區(qū)域的面積達(dá)到最大值,模板中心記為十字像中心坐標(biāo)。
基于十字線(xiàn)邊緣直線(xiàn)擬合求十字像中心點(diǎn)也是一種常用的算法,其原理是首先通過(guò)邊緣擬合來(lái)確定十字像的四條邊緣直線(xiàn)方程,得到四條邊緣直線(xiàn)方程之后,兩兩直線(xiàn)求交點(diǎn)可以得到十字像的四個(gè)角點(diǎn)坐標(biāo),通過(guò)四個(gè)角點(diǎn)坐標(biāo)可以求得兩條對(duì)角線(xiàn)方程,兩條對(duì)角線(xiàn)的交點(diǎn)即為所求中心點(diǎn)。
表1所示為圖12中4張不同類(lèi)型的圖片在不同算法下檢測(cè)到的十字像中心坐標(biāo),從表中可以看出,對(duì)于清晰十字像而言,3種不同算法的檢測(cè)結(jié)果誤差都在1-2個(gè)像素,差異不大;對(duì)于邊緣不規(guī)則的十字像,使用直線(xiàn)擬合得到的中心點(diǎn)橫坐標(biāo)誤差比較大;對(duì)于模糊的十字像,使用SUSAN算法的誤差較大;對(duì)于對(duì)比度低的十字像,經(jīng)圖像去燥二值化后得不到一個(gè)僅僅包含十字像的二值圖,無(wú)法進(jìn)行直線(xiàn)擬合或使用SUSAN算法,因此無(wú)法給出結(jié)果。
相對(duì)于傳統(tǒng)算法的預(yù)測(cè)結(jié)果,本文中所采用的基于CNN的十字像中心檢測(cè)算法在邊緣不規(guī)則、模糊、對(duì)比度低的十字像上定位更準(zhǔn)確,誤差可以控制在1-3個(gè)像素以?xún)?nèi)。
3結(jié)論
本文從十字像數(shù)據(jù)集構(gòu)建、模型評(píng)價(jià)標(biāo)準(zhǔn)設(shè)定、標(biāo)注方法設(shè)計(jì)、模型結(jié)構(gòu)設(shè)計(jì)等方面來(lái)建立可以用于不同成像條件下的十字像中心預(yù)測(cè)模型,以及在實(shí)驗(yàn)過(guò)程中通過(guò)不斷變換參數(shù)來(lái)優(yōu)化網(wǎng)絡(luò)模型。同時(shí)介紹了兩種常見(jiàn)的十字像中心定位算法邊緣直線(xiàn)擬合和SUSAN算法,之后對(duì)實(shí)驗(yàn)中選取的4張具有代表性的圖片進(jìn)行定位,最后對(duì)比并分析實(shí)驗(yàn)結(jié)果。實(shí)驗(yàn)結(jié)果表明,本文算法在邊緣不規(guī)則的十字像、模糊十字像、對(duì)比度低的十字像上可以實(shí)現(xiàn)更準(zhǔn)確定位,相對(duì)于傳統(tǒng)算法魯棒性更強(qiáng),抗干擾能力更好,驗(yàn)證了該算法的有效性。