何 昊,賀福強(qiáng),聶文豪,劉 毅,李照東
(1 貴州大學(xué) 機(jī)械工程學(xué)院,貴陽(yáng) 550025;2 貴州西牛王印務(wù)有限公司,貴陽(yáng) 550025)
隨著生活質(zhì)量的提高,消費(fèi)群體對(duì)于包裝的印刷質(zhì)量有了新的要求。傳統(tǒng)的檢測(cè)方法是人工檢測(cè),工人依靠人眼或者借助色度儀、密度計(jì)、分光光度計(jì)等專業(yè)儀器進(jìn)行檢測(cè),但效率低下且容易誤檢、漏檢。隨著印刷工藝的改進(jìn),印刷速度加快,人工檢測(cè)完全不能滿足市場(chǎng)需求,所以引進(jìn)機(jī)器視覺(jué)對(duì)食品包裝印刷缺陷進(jìn)行檢測(cè)[1]。檢測(cè)中必不可少的一環(huán)就是圖像配準(zhǔn),其作用是找到模板圖像中各目標(biāo)的像素點(diǎn)在其它圖像中的位置。若沒(méi)有配準(zhǔn)環(huán)節(jié)或者配準(zhǔn)結(jié)果較差,會(huì)導(dǎo)致待檢測(cè)圖像和模板圖像做對(duì)比時(shí),誤將合格區(qū)域當(dāng)做缺陷給提取,從而造成誤檢,浪費(fèi)材料。所以在缺陷檢測(cè)過(guò)程中,對(duì)印刷品圖像的配準(zhǔn)工作精度直接影響了后續(xù)缺陷檢測(cè)的正確率,且在整個(gè)缺陷檢測(cè)中,圖像配準(zhǔn)耗時(shí)占了一半左右。為解決現(xiàn)有的檢測(cè)算法漏檢率高、效率較低的問(wèn)題,本文對(duì)印刷品圖像配準(zhǔn)進(jìn)行了深入研究。
圖像配準(zhǔn)方法可以分為基于圖像灰度、基于變換域以及基于圖像特征等3 類?;趫D像灰度信息的圖像配準(zhǔn)[2],是利用兩個(gè)圖像灰度的相似性特征實(shí)現(xiàn)的。但該方法運(yùn)算量大,執(zhí)行速度慢;若兩幅圖像存在旋轉(zhuǎn)、變形和遮擋等情況,配準(zhǔn)效果較差;對(duì)于非線性的光照變化情況的魯棒性也較差?;谧儞Q域的圖像配準(zhǔn)[3]比較常用的方法是利用傅里葉變換,將圖像從時(shí)域變化到頻域,從而在頻域計(jì)算出兩幅圖像之間的旋轉(zhuǎn)量和平移量,經(jīng)過(guò)相應(yīng)的旋轉(zhuǎn)和平移實(shí)現(xiàn)配準(zhǔn)。該方法抗噪能力很好,不會(huì)受光照波動(dòng)的影響,但不適合需要進(jìn)行仿射變換等復(fù)雜變換的圖像配準(zhǔn)情景。目前,對(duì)于圖像配準(zhǔn)的解決方案最多的就是采用基于圖像特征的圖像配準(zhǔn)[4]。該方法利用圖像中部分的點(diǎn)、線、輪廓和區(qū)域等特征實(shí)現(xiàn)圖像配準(zhǔn),運(yùn)算量可以控制,能極大的提高配準(zhǔn)效率,特征的提取對(duì)于灰度變換又有較強(qiáng)的魯棒。但是,由于該方法對(duì)噪聲較為敏感,所以在提取出特征之后,還需要求得最佳的配準(zhǔn)對(duì)才能計(jì)算配準(zhǔn)需要的幾何變換參數(shù)。此外,由于拍攝圖像的角度和位置不一致(相機(jī)是固定的,但與經(jīng)傳送帶送來(lái)的印刷品位置不一定一致),甚至有較大的差距,使得在尋找最佳配準(zhǔn)對(duì)的過(guò)程中陷入局部最優(yōu)值,導(dǎo)致最后配準(zhǔn)結(jié)果錯(cuò)誤。
考慮到印刷品配準(zhǔn)的精度和效率要求,結(jié)合印刷品圖像具有較豐富直線特征的特點(diǎn),提出了一種基于外輪廓與限制動(dòng)態(tài)參數(shù)的霍夫變換相結(jié)合的圖像配準(zhǔn)算法。采用霍夫變換求取邊緣直線不但具有抗噪聲好、不受邊緣斷點(diǎn)影響等優(yōu)點(diǎn),而且精確度高。但霍夫變換在檢測(cè)直線過(guò)程中計(jì)算量很大,嚴(yán)重影響了系統(tǒng)的實(shí)時(shí)性能。本文所提算法通過(guò)粗配準(zhǔn)和精配準(zhǔn)相結(jié)合,既能滿足實(shí)時(shí)性要求,又能提高配準(zhǔn)精度。
彩色圖像相比于灰度圖需要更多的儲(chǔ)存空間和更多的計(jì)算量,因此本文利用加權(quán)平均值法灰度化,將圖像轉(zhuǎn)化為灰度圖。加權(quán)平均值法公式如下:
其中,R、G、B分別為RGB 3 通道灰度值。
由于采集到的印刷品圖像會(huì)因?yàn)楝F(xiàn)場(chǎng)環(huán)境中的粉塵、鏡頭上的臟污、光照不均以及設(shè)備震動(dòng)等情況產(chǎn)生隨機(jī)噪聲,而高斯濾波[5]對(duì)于圖像細(xì)節(jié)的保留做的很好,并且各方向的平滑程度一致,對(duì)各種噪聲的適用性較好。因此,經(jīng)過(guò)實(shí)驗(yàn)比較選擇高斯濾波進(jìn)行圖像去噪。高斯濾波模板權(quán)重根據(jù)距離,按照高斯函數(shù)確定,其中二維高斯函數(shù)為
由于環(huán)境、設(shè)備等因素,采集到的圖像整體會(huì)偏暗,導(dǎo)致圖像的對(duì)比度不夠,不能很好的區(qū)分特征,導(dǎo)致檢測(cè)失敗,因此需要對(duì)圖像進(jìn)行對(duì)比度增強(qiáng)。考慮到缺陷檢測(cè)是將配準(zhǔn)好的圖像和模板圖像進(jìn)行比較,對(duì)比度增強(qiáng)應(yīng)該穩(wěn)定,故選擇線性灰度變換方法增強(qiáng)對(duì)比度。計(jì)算公式為
為減少后續(xù)運(yùn)算量,選擇最大類間方差法對(duì)圖像進(jìn)行分割,得到印刷區(qū)域。最大類間方差法[6]是日本學(xué)者大津提出的算法,故也叫大津法(OTSU)。設(shè)一幅灰度圖像的灰度級(jí)為L(zhǎng),ni表示灰度值為i的像素?cái)?shù),n代表圖像像素總數(shù),Pi代表圖像中灰度值為i像素出現(xiàn)的概率,則Pi =ni /n。若利用閾值t將圖像中的像素按照灰度值分成C0和C1兩類:C0={0,1,2,…,t}、C1={t +1,t +2,…,L -1,},則C0和C1出現(xiàn)的概率分別為:
C0和C1的灰度均值分別為:
假設(shè)目標(biāo)和背景之間的類間方差用σB2表示,則:
最佳閾值t*可由下面的式子得到:
印刷品原圖、原圖經(jīng)過(guò)灰度化、去噪、對(duì)比度增強(qiáng)后的結(jié)果、閾值分割后的結(jié)果如圖1~圖3 所示。
圖1 印刷品原圖Fig.1 Original image of print
圖2 預(yù)處理結(jié)果Fig.2 Preprocessing results
圖3 閾值分割結(jié)果Fig.3 Threshold segmentation result
圖像配準(zhǔn)的作用是找到模板圖像中各個(gè)目標(biāo)的像素點(diǎn)在其他圖像中的位置。保證圖像配準(zhǔn)的精確性,后續(xù)檢測(cè)的準(zhǔn)確性才能得到保障。若沒(méi)有配準(zhǔn)環(huán)節(jié)或者配準(zhǔn)結(jié)果較差,會(huì)導(dǎo)致待檢測(cè)圖像和模板圖像做對(duì)比時(shí),將合格區(qū)域當(dāng)做是缺陷給提取出來(lái),從而造成誤檢,浪費(fèi)材料。因此,本文提出了一種基于外輪廓與限制動(dòng)態(tài)參數(shù)的霍夫變換相結(jié)合的圖像配準(zhǔn)算法。
基于外輪廓與限制動(dòng)態(tài)參數(shù)的霍夫變換相結(jié)合的圖像配準(zhǔn)算法總體思路如圖4 所示。
圖4 配準(zhǔn)算法總體思路Fig.4 The general idea of registration algorithm
根據(jù)圖像分割結(jié)果獲得印刷區(qū)域的外輪廓(如圖5 中綠色部分),計(jì)算外輪廓形心坐標(biāo),得到偏移量,再根據(jù)輪廓計(jì)算出旋轉(zhuǎn)量。根據(jù)偏移量和旋轉(zhuǎn)量對(duì)待配準(zhǔn)圖像進(jìn)行剛性變換[7]和雙線性插值[8],完成圖像粗配準(zhǔn);在ROI 區(qū)域中限制霍夫變換的動(dòng)態(tài)參數(shù)計(jì)算出ROI 中的直線,根據(jù)直線交點(diǎn)得到3個(gè)坐標(biāo)。根據(jù)3 個(gè)坐標(biāo)對(duì)待配準(zhǔn)圖像進(jìn)行仿射變換[7]和雙線性插值,完成圖像精配準(zhǔn)。
圖5 印刷區(qū)域的外輪廓Fig.5 Outer outline of print area
本文充分利用印刷品生產(chǎn)工藝及圖像自身特點(diǎn),使算法只在一個(gè)很小范圍內(nèi),采用動(dòng)態(tài)參數(shù)限制的霍夫變換搜索直線,既保證邊緣直線檢測(cè)的精確度,也兼顧了系統(tǒng)的實(shí)時(shí)性要求。
選擇一張合格的圖像,根據(jù)得到的外輪廓,對(duì)模板圖像進(jìn)行裁剪,如圖6 所示。
圖6 剪裁的模板圖像Fig.6 Cropped Template Image
(1)選擇追溯碼和搜索區(qū)域。在剪裁的模板圖像中選擇追溯碼區(qū)域(本文不作研究),并在模板圖像上人工選擇用于配準(zhǔn)的搜索區(qū)域,該搜索區(qū)域至少需要有3 條直線(延長(zhǎng)線)相交點(diǎn),人工選擇追溯碼區(qū)域和搜索區(qū)域如圖7 所示。
圖7 追溯碼和搜索區(qū)域Fig.7 Traceability codes and search fields
(2)搜索直線。在搜索區(qū)域利用霍夫變換搜索出所有直線?;舴蜃儞Q參數(shù)見(jiàn)表1。
表1 霍夫變換部分參數(shù)Tab.1 Some parameters of Hough transform
按照表1 參數(shù)搜索到的直線(紅色部分)如圖8所示。
圖8 在搜索區(qū)域搜索到的直線Fig.8 Lines searched in the search area
(3)求相交點(diǎn)。假設(shè)直線1 為a1x +b1y +c =0,直線2 為a2x +b2y +c =0,則兩條線的相交點(diǎn)橫縱坐標(biāo)為:
根據(jù)式(10)計(jì)算出所有相交點(diǎn)的坐標(biāo)(xi,yi),i =1,2,…,n。
首先計(jì)算外輪廓形心坐標(biāo),得到偏移量,再根據(jù)輪廓計(jì)算出旋轉(zhuǎn)量,根據(jù)偏移量和旋轉(zhuǎn)量對(duì)待配準(zhǔn)圖像進(jìn)行剛性變換和雙線性插值,完成圖像粗配準(zhǔn),具體步驟如下:
2.3.1 輪廓形心坐標(biāo)計(jì)算
根據(jù)最大類間方差對(duì)圖像進(jìn)行分割,獲得印刷區(qū)域的輪廓,按照公式(11)計(jì)算出形心的橫縱坐標(biāo)x0、y0。
2.3.2 輪廓角度計(jì)算
通過(guò)計(jì)算最小外接矩形的偏轉(zhuǎn)角度,來(lái)代替外輪廓的角度。
(1)利用格雷厄姆算法[9]對(duì)圖像的凸殼點(diǎn)集求解
Step 1找到縱坐標(biāo)最小的點(diǎn)P0,連接P0和其它所有點(diǎn)組成的L線段集,按照線段的角度和長(zhǎng)度排序,得到(P1,P2,…,Pn);
Step 2判斷所有點(diǎn)是否在Pi與Pi+1構(gòu)成的線段同一側(cè),若滿足條件,則保留該線段并選擇下一條線段進(jìn)行判斷,否則將丟棄該線段的末端點(diǎn)Pi+1,將后面的Pi+2作為末端點(diǎn)繼續(xù)判斷,直到條件滿足;
Step 3得到頂點(diǎn)集W,頂點(diǎn)集組成凸殼邊界。
(2)旋轉(zhuǎn)邊界獲得最小外接矩形
Step 1在頂點(diǎn)集W中找到橫、縱坐標(biāo)的最大最小值,并連接作為初始矩形R0,并記錄面積和4 個(gè)頂點(diǎn);
Step 2設(shè)頂點(diǎn)集W中第n個(gè)點(diǎn)坐標(biāo)為(xn,yn),第n條邊線的角度為θn,將圖像繞原點(diǎn)旋轉(zhuǎn)θn,則點(diǎn)坐標(biāo)從(xn,yn)按式(12)轉(zhuǎn)化為,得到頂點(diǎn)集W ′;
Step 3在頂點(diǎn)集W ′中找到橫、縱坐標(biāo)最大最小值,得到最小外接矩形R1,繞原點(diǎn)旋轉(zhuǎn)-θn度。對(duì)所有邊界按以上步驟進(jìn)行旋轉(zhuǎn),得到最小外接矩形集SR,取其中面積最小的矩形作為最小外接矩形,其角度為θ0。
(3)配準(zhǔn)相關(guān)計(jì)算:利用式(13)計(jì)算出待配準(zhǔn)圖像和模板圖像在x、y軸的偏移量Δx、Δy。
其中,(x,y)為模板圖像輪廓形心坐標(biāo)。利用式(14)計(jì)算出待配準(zhǔn)圖像和模板圖像輪廓偏轉(zhuǎn)角度Δθ。
其中,θ為模板圖像輪廓與x軸的偏轉(zhuǎn)角度。
偏移量和偏轉(zhuǎn)角度計(jì)算示意如圖9 所示。
圖9 偏移量和偏轉(zhuǎn)角度計(jì)算示意圖Fig.9 Schematic diagram of offset and deflection angle calculation
由于粗配準(zhǔn)僅為精配準(zhǔn)提供先驗(yàn)信息,所以對(duì)配準(zhǔn)精度要求不高,故對(duì)圖像的粗配準(zhǔn)只需要根據(jù)上式計(jì)算的Δx、Δy、Δθ進(jìn)行雙線性插值的剛體變換即可。
首先,在ROI 區(qū)域中利用限制霍夫變換動(dòng)態(tài)參數(shù),計(jì)算出ROI 中的直線。通過(guò)計(jì)算直線交點(diǎn)得到3 個(gè)坐標(biāo),根據(jù)坐標(biāo)對(duì)待配準(zhǔn)圖像進(jìn)行仿射變換和雙線性插值,從而完成圖像精配準(zhǔn)。
2.4.1 限制動(dòng)態(tài)參數(shù)的霍夫變換搜索直線
霍夫變換是一種可以檢測(cè)各種曲線(如直線、圓、橢圓)的算法。該算法將圖像空間的曲線利用點(diǎn)與線之間的對(duì)偶關(guān)系,轉(zhuǎn)化為參數(shù)空間聚集的點(diǎn),將檢測(cè)問(wèn)題轉(zhuǎn)化為尋找峰值的問(wèn)題。其原理如下:
直線用斜截式方程表示為
將x、y作為常量,對(duì)式(15)進(jìn)行變換,就完成了圖像空間到參數(shù)空間的轉(zhuǎn)化,進(jìn)而得到
圖10 中,圖像空間中的點(diǎn)(xi、yi)和點(diǎn)(xj、yj)在參數(shù)空間確定了兩條直線,并相交于點(diǎn)(a′,b′)。
根據(jù)圖10(b)中的交點(diǎn)(a′,b′),就可以計(jì)算出圖10(a)中圖像空間的直線y =kx +b。在極坐標(biāo)參數(shù)空間下,直線可以表示為:
圖10 圖像與參數(shù)空間轉(zhuǎn)換Fig.10 Image and parameter space transformation
且
點(diǎn)(xi、yi)對(duì)應(yīng)極坐標(biāo)參數(shù)空間中的ρ =xicosθ +yisinθ,點(diǎn)(xj、yj)對(duì)應(yīng)極坐標(biāo)參數(shù)空間中的ρ =xjcosθ +yjsinθ,并且相交于點(diǎn)(ρ′,θ′)。則θ′為直線的法線與x軸的夾角,ρ′為截距,如圖11 所示。
圖11 極坐標(biāo)下的參數(shù)空間Fig.11 Parameter space in polar coordinates
此外,霍夫變換通過(guò)引入投票機(jī)制,在復(fù)雜的參數(shù)空間中找到目標(biāo)直線。通過(guò)將極坐標(biāo)系參數(shù)空間細(xì)分,設(shè)定累加器單元S(ρ,θ),并設(shè)置初始值為0。對(duì)所有像素(x,y)使用θ等間隔取值,遍歷[θmin,θmax],根據(jù)式(17)計(jì)算出ρ,根據(jù)ρ對(duì)累加器S(ρ,θ)進(jìn)行累加。遍歷所有累加器S(ρ,θ),根據(jù)累計(jì)器值大于閾值的ρ和θ可以計(jì)算出圖像平面對(duì)應(yīng)的直線。
為進(jìn)一步減少霍夫變換搜索的區(qū)域,同時(shí)考慮到已完成對(duì)圖像的粗配準(zhǔn),而模板和待精配準(zhǔn)的圖像之間的直線偏移的角度有限,因此可以對(duì)霍夫變換進(jìn)行動(dòng)態(tài)參數(shù)的限制。待配準(zhǔn)圖像需要遍歷的角度θ區(qū)間應(yīng)該在模板圖像參與配準(zhǔn)的直線附近,所以需要遍歷的角度θ區(qū)間為:
式中,i為模板圖像參與配準(zhǔn)直線的序號(hào);θi為第i條直線的角度;k為模板圖像參與配準(zhǔn)直線的數(shù)量。
按表1 中的霍夫變換參數(shù),再加上遍歷角度θ區(qū)間條件,完成對(duì)區(qū)域內(nèi)所有直線的搜索。
2.4.2 相交點(diǎn)計(jì)算與配對(duì)
在ROI 中搜索到的所有符合條件的直線,按式(10)求出所有交點(diǎn)。通常,用于模板圖像和待配準(zhǔn)圖像上兩點(diǎn)進(jìn)行配對(duì)的方法有很多。例如:特定區(qū)域配對(duì)法、RANSAC 配對(duì)點(diǎn)搜尋法等等。其中,最為簡(jiǎn)單快速的方法是特定區(qū)域配對(duì)法。該方法可以選擇兩幅圖中各自的最左上、最右上、最左下的交點(diǎn)進(jìn)行配對(duì)。雖然此方法不具備旋轉(zhuǎn)不變性,且魯棒性較差,但是本文在粗配準(zhǔn)時(shí)提前矯正了兩幅圖之間的旋轉(zhuǎn)問(wèn)題,完美的解決了旋轉(zhuǎn)不變性問(wèn)題。所以,本文旋轉(zhuǎn)使用特定區(qū)域法對(duì)點(diǎn)進(jìn)行配對(duì)。
為檢驗(yàn)本文所提配準(zhǔn)算法的精度,本文利用采集到的“潤(rùn)燥止癢膠囊”印刷品圖像(4 096*2 067),在Windows10 系統(tǒng)的Visual Studio 2019 平臺(tái)下,利用C++和OpenCV 進(jìn)行配準(zhǔn)實(shí)驗(yàn)。測(cè)試圖像和標(biāo)準(zhǔn)模板圖像之間發(fā)生了平移、選擇、錯(cuò)切和縮放。實(shí)驗(yàn)效果如圖12~圖15 所示。
圖12 配準(zhǔn)前圖像Fig.12 Image before registration
其中,圖12、圖14 為配準(zhǔn)前后圖像。為更好展示配準(zhǔn)效果,對(duì)配準(zhǔn)前后圖像和模板圖像分別進(jìn)行差分,圖13 和圖15 分別為配準(zhǔn)前后與模板圖像的差分圖。
圖13 配準(zhǔn)前絕對(duì)差值圖Fig.13 Absolute difference map before registration
圖14 配準(zhǔn)后圖像Fig.14 Registered image
圖15 配準(zhǔn)后絕對(duì)差值圖Fig.15 Absolute difference map after registration
為進(jìn)一步驗(yàn)證本文配準(zhǔn)算法的精度,將本文配準(zhǔn)算法、基于SIFT 的配準(zhǔn)算法以及基于ORB 的配準(zhǔn)算法進(jìn)行實(shí)驗(yàn)比較。利用模板圖像和配準(zhǔn)后圖像的歸一化互相關(guān)系數(shù)(NCC)對(duì)配準(zhǔn)的精度進(jìn)行評(píng)價(jià),相關(guān)系數(shù)的取值范圍為[-1,1],相關(guān)系數(shù)越接近1,則配準(zhǔn)的精度越高,歸一化互相關(guān)系數(shù)計(jì)算公式如下:
實(shí)驗(yàn)中,對(duì)50 張潤(rùn)燥止癢膠囊”印刷品圖像利用本文算法、SIFT 配準(zhǔn)算法、ORB 配準(zhǔn)算法以及SIRB 算法進(jìn)行配準(zhǔn)。配準(zhǔn)的NCC系數(shù)對(duì)比如圖16,耗時(shí)對(duì)比如圖17 所示。
圖16 各算法NCC 系數(shù)對(duì)比結(jié)果Fig.16 Comparison of NCC coefficients of each algorithm
圖17 各算法耗時(shí)對(duì)比結(jié)果Fig.17 Time-consuming comparison chart of each algorithm
配準(zhǔn)的平均性能對(duì)比結(jié)果詳見(jiàn)表2:
表2 各配準(zhǔn)算法性能對(duì)比Tab.2 Performance comparison of each registration algorithm
由表2、圖16、圖17 的對(duì)比結(jié)果可知,ORB 算法雖然速度最快,但配準(zhǔn)效果最差;本文算法由于選擇了直線搜索區(qū)域,大大降低了計(jì)算時(shí)間,其速度僅次于ORB 算法;SIRB 算法雖然相較于ORB 速度變慢,但精度有了大幅提升,有著最好的配準(zhǔn)精度;由于印刷品配準(zhǔn)強(qiáng)調(diào)實(shí)時(shí)性,且本文算法的精度和SIRB 相差甚微,耗時(shí)卻減少了35%,故本文算法更兼顧了配準(zhǔn)的精度和速度。
本文介紹了各種圖像配準(zhǔn)算法,仔細(xì)分析對(duì)比了各個(gè)算法的優(yōu)劣勢(shì),根據(jù)印刷品圖像具有比較豐富的直線特征的特點(diǎn),提出了一種于外輪廓與霍夫變換相結(jié)合的圖像配準(zhǔn)算法。經(jīng)過(guò)實(shí)驗(yàn)論證,該算法的配準(zhǔn)精度和配準(zhǔn)速度有著不錯(cuò)的表現(xiàn),平均NCC系數(shù)達(dá)到0.928 8,平局耗時(shí)為262.61 ms。