韓 碩,陳曉榮,張彩霞,郭蓉蓉,王曉龍
(上海理工大學光電信息與計算機工程學院,上海 200093)
物料計數廣泛應用于軍事、包裝、醫療等領域,隨著現代科技的高速發展,各領域對物料計數的需求量和要求也在大幅度提高。傳統意義上的物料計數采用人工檢測的方式,其工作強度大、效率低并且容易受到主觀因素的影響,導致檢測準確率不高。針對這種情況,研究能夠對物料進行自動計數的檢測方法,可以有效提高檢測效率和準確性。但是,在采集物料圖像時,由于普通相機的視角較小,一些較大尺寸的物料無法呈現在一張圖像上。而廣角鏡頭和掃描式相機可以解決這一問題并得到完整的物料,但是這些設備存在價格高和使用復雜度高等缺點,并不普遍適用[1]。因此,隨著數字圖像處理技術的進步而發展起來的圖像拼接技術為這一問題提供了很好的解決方法。
目前,國內外已經有一些針對圖像拼接提出的相關算法。Dou 等[2]提出一種基于小波變換和尺度不變特征變換(SIFT)相結合的魯棒圖像匹配算法,利用來自SIFT 的信息構成匹配約束,從而獲得更準確的匹配,但由于SIFT 采用DOG 進行特征提取,故增加了相應運算時間,降低了運行效率;Brown 等[3]提出一種稱為Auto Stitch 的全局對齊方法以自動縫合多幅圖像,但當攝像機平移可以忽略或場景接近平面時,可能會出現錯位和偽影,導致具有視差的圖像無法精確對齊;趙文君等[4]提出Harris 角點檢測算法提取圖像中的特征點,然后用非極大抑制算法選取特征點,去除偽角點和聚簇的角點,提高了匹配精度,但是該算法對尺度很敏感,并且其消耗的時間較長。此外,模板匹配算法也常用于圖像拼接,其原理簡單,容易實現,但是由于匹配搜索范圍較廣,導致匹配速度慢、準確性不高等。
針對該問題,本文在現有相關算法的基礎上,研究一種基于圖像拼接的物料計數算法,提出對物料圖像作圖像預處理后,進行邊緣檢測和圖像拼接。分別采用高斯濾波、Canny 邊緣檢測算法、基于圖像金字塔和搜索角度φ改進的模板匹配算法以及加權融合算法進行處理,完成對物料圖像的準確拼接,再對物料進行計數檢測。
對圖像進行處理前,首先采集物料圖像。本文根據物料下落特點,設計一套圖像采集裝置,整個裝置包括1 個面陣相機、1 個LED 光源、1 個置物架以及1 個接收掉落物料的盒子,如圖1 所示。
在圖像采集裝置設計過程中,曝光速度和照明方式是其中非常重要的兩個因素。曝光速度決定了圖像清晰度以及在相同采集環境下采集到的多幅圖像中每相鄰兩幅圖像之間是否存在重疊部分。而照明方式則會影響圖像的成像效果以及后續圖像處理所需的時間[5]。針對被檢測物料的下落特點,文中設置的曝光速度為500 幀/s、曝光時間為25us,采用背光照射的方式使得背景與目標產生較大的對比度,突出物料圖像的邊緣特征。

Fig.1 Image acquisition device圖1圖像采集裝置
由于物料尺寸較大,因而采集到的物料圖像存在物料不完整的情況,采集到的連續7 幀物料圖像如圖2 所示。

Fig.2 Captured materiel image圖2 采集到的物料圖像
本文采用的圖像處理算法流程如圖3 所示。圖像經過預處理后,進行邊緣檢測提取圖像邊緣特征,提出基于圖像金字塔和搜索角度φ改進的模板匹配算法進行圖像配準,接著采用加權融合算法消除圖像拼接縫合線,完成圖像拼接,最后進行物料計數并輸出拼接后的全景圖像及計數結果。

Fig.3 Flow of algorithm design圖3 算法設計流程
在進行圖像采集時,由于受拍攝硬件設施、采集環境等因素影響,會導致采集到的圖像存在截然不同的成像特性,這些特性對后續算法處理有很大影響。因此,在進行算法設計前,有必要對采集到的圖像先作預處理。
為了盡可能減少噪聲對邊緣檢測結果的影響,本文圖像預處理階段主要采用高斯濾波完成圖像去噪,便于后續對圖像的邊緣檢測[6-7],如式(1)所示。

其中,G(x,y)為標準差為σ的二維高斯核。
平滑后圖像g(x,y)表示如式(2)所示。

其中,f(x,y)為初始圖像。
完成圖像預處理后,對圖像進行邊緣檢測。判斷一個像素點是否為邊緣像素的標準為其灰度值與周圍像素灰度值是否存在較大差距,本文采用Canny 邊緣檢測算法檢測該點是否為邊緣像素[8-9]。Canny 算法具體實現步驟如下:
(1)計算梯度值和梯度方向值。灰度強度變化最強的位置即梯度方向,通過計算水平Gx和垂直Gy方向的一階導數檢測圖像中的水平、垂直和對角邊緣,即可確定像素點的梯度和方向。
x方向的梯度如式(3)所示。

y方向的梯度如式(4)所示。

該像素點梯度的幅值和方向分別如式(5)、式(6)所示。

(2)進行非極大值抑制。對圖像進行梯度計算后,并不能夠提取出比較清晰的邊緣。因此,需要使用非極大值抑制尋找像素點的局部最大值,將非極大值點所對應的灰度值抑制為0,這樣就可以篩除一部分不屬于邊緣的點。
采用Canny 算法可以降低錯誤率,并精確定位到物料邊緣位置,便于后續物料圖像拼接。其中一幀的物料圖像邊緣檢測如圖4 所示。

Fig.4 Materiel edge detection圖4 物料邊緣檢測
圖像配準是實現圖像拼接算法的重要環節,在包裝生產過程中,物料計數的高效性和準確性要求圖像拼接算法能夠具有更快的速度和更高的效率以實現圖像拼接。目前有很多圖像配準方法,比如:基于灰度信息的匹配、基于特征的匹配、基于域變換的匹配、模板匹配等。由于在設計圖像采集裝置時,對于曝光時間和曝光速度的設置,使得拍攝到的每一幀物料下落圖像之間都存在很小范圍的重疊區域,因此文中選擇模板匹配算法,其算法復雜度低且更易于實現。
2.4.1 模板匹配算法
模板匹配算法是尋找待測圖像中具有模板圖像相同特征的算法之一,其尋找待測圖像中每一個可能的位置,計算模板的所有相關位姿與圖像各位置的相似度,當相似度足夠高時,則認為找到目標[10]。該算法相較于其他匹配算法,其易于實現,匹配速度較快,因此文中選用模板匹配算法作為圖像拼接的主要方法。
模板匹配算法的基本思想是首先確定模板圖像,以模板圖像T與待測圖像S的原點為參考點,使模板圖像T在待測圖像S的區域內以平移的形式進行搜索,待測圖像被模板覆蓋的區域為子圖Si,j。搜索范圍如式(7)、式(8)所示。

其中,M、N表示模板圖像T的像素個數;W、H表示待測圖像S的像素個數;i、j為模板覆蓋區域左上角在待測圖像S上的坐標。
通過比較模板圖像與待測圖像中被模板圖像覆蓋區域的相似性,完成模板匹配過程。通過歸一化相關系數衡量模板T和子圖Si,j的匹配程度[13],其計算公式如式(9)所示。

其中,0 ≤R(i,j)≤1 表示(i,j)處圖像的相關系數;M、N表示模板大小;(s,t)表示在模板內的所有像素點;T表示模板圖像;S表示待測圖像;E(Si,j)、E(T)分別表示(i,j)處待測圖像和模板圖像的平均灰度值。
模板匹配就是尋找最佳匹配位置的過程,使歸一化相關系數R最大。R越大,待測圖像與模板的相似度越高,當模板在待測圖像上搜索所得最大R(i,j)時,其對應的點(i,j)就是最佳匹配位置,則完成圖像匹配。
2.4.2 圖像金字塔
圖像金字塔由哥倫比亞大學的Lowe 教授提出,它是利用圖像的多分辨率對圖像進行分解的有效結構,已廣泛應用于機器視覺、圖像處理等多個領域[11-16]。算法基本原理是先根據原始圖像構建一個形似金字塔的圖像序列,將原圖像放在底部,每次下采樣的分辨率低的結果圖堆疊在上一次結果之上,并從金字塔的最頂層開始進行匹配,得到匹配的候選區域后,將該結果映射到下一層,下一層的匹配搜索就在該區域內進行。將找到的結果區域按同樣的方法向下映射,直到找不到目標對象或者到達金字塔的最底層為止。設n為圖像金字塔層數,m為搜索到的匹配點,則有式(10):

其中,M、N為圖像原始尺寸;t為塔頂圖像最小維數的對數。

式(11)中,mk(x,y)表示在第k層搜索到的匹配點坐標;mk+1(x',y')表示映射到k+1 層的匹配點坐標。
2.4.3 改進的模板匹配算法
模板匹配算法在特征匹配諸多算法中易于實現,但是由于匹配搜索范圍較廣,圖像配準運算量較大,導致匹配速度慢、準確性不高,難以實現實時性。針對上述問題,本文采用圖像金字塔加入搜索角度φ改進的模板匹配算法迅速鎖定匹配點大致區域。
結合圖像金字塔,將待測圖像分割成n層,然后得到每一層搜索到的匹配點m,縮小了匹配候選區域,提高了搜索準確度。
由于搜索區域還是較大,其搜索速度不能夠達到實時要求。因此,本文加入一個搜索角度φ,以優化搜索速度。
其計算公式如式(12)所示。

其中,T表示模板圖像;K表示待測圖像中與模板重疊的區域;M×N表示模板大小;(k,t)表示模板內的像素點。
在進行匹配搜索時加入搜索角度限制,能夠快速準確地找出待測圖像與模板圖像重疊部分,因而提高匹配速度和精度。連續兩幀的物料圖像特征匹配如圖5 所示。

Fig.5 Feature matching圖5 特征匹配
2.4.4 圖像融合
完成特征匹配后,為了防止拼接后圖像連接處出現明顯的縫合線,使用加權平均法進行圖像融合,其具有容易實現及運算速度快的優點。加權平均法是對具有相同區域兩幅圖像的像素值取不同權值,然后進行加權平均得到融合后圖像的像素值[17-18]。計算融合后圖像像素灰度值的公式如式(13)所示。

其中,f表示融合后圖像的像素值;f1、f2分別表示需要拼接的兩幅圖像;a1、a2表示不同的權值,且a1,a2∈(0,1)。
使用加權平均法進行圖像融合,可以觀察到其提高了圖像縫合線的自然度,連續兩幀的物料圖像融合如圖6 所示,使最終物料拼接效果更好。

Fig.6 Image fusion圖6圖像融合
2.4.5 算法比較
將原始模板匹配算法與本文算法拼接結果進行對比,驗證本文所提出的結合圖像金字塔和搜索角度φ改進的模板匹配算法的準確性。
由于圖像拼接結果的特殊性,對圖像拼接質量的評價側重于圖像拼接部位是否有錯位以及邊界過渡是否平滑等方面[19-20]。原始模板匹配算法與本文算法的拼接結果如圖7 和圖8 所示。
如圖7 所示,原始模板匹配算法的物料拼接結果不存在明顯縫合線,但是由于算法拼接準確性較低,拼接結果存在錯位情況。

Fig.7 Material mosaic of the original template matching algorithm圖7 原始模板匹配算法的物料拼接
相比之下,如圖8 所示,本文算法的物料拼接結果過渡自然,并且不存在錯位情況,其準確性較高。


Fig.8 Material mosaic of the algorithm in this paper圖8 本文算法的物料拼接
為了驗證改進后算法的高效性,本文以大小為1 344×87 的物料圖像進行拼接速度檢測。其實驗環境為主頻2.1 GHz,內存8GB 的處理器以及千眼狼5F04 工業相機。將書包扣以不同數量分為五批進行檢測,實驗的物料數量分別為3 個、6 個、13 個、18 個和25 個,對上述五批實驗樣本進行拼接,并檢測其拼接速度,檢測結果如表1 所示。
通過表1 可知,原始模板匹配算法進行物料圖像拼接,其處理圖像的平均時間最高為0.003 9s/幅,最低為0.003 2 s/幅。而文中所提出的基于圖像金字塔與搜索角度φ改進的模板匹配算法進行物料圖像拼接,其處理圖像的平均時間最高為0.000 96s/幅,最低為0.000 89s/幅。與原始模板匹配算法進行對比,處理圖像的平均時間提高了74%,具有更快的拼接速度。

Table 1 Comparison of the original template matching algorithm and the algorithm in this paper表1 原始模板匹配算法與本文算法用時對比
完成物料圖像最終拼接后,由于采用背光照射方式,物料全景圖中目標與背景灰度級相差較大、灰度變化明顯,因而本文采用雙峰法閾值分割[21]。按照灰度級,根據式(14)設定閾值,將物料全景圖的像素集合分為背景和目標兩類。

其中,KT表示灰度直方圖波谷處閾值,P(ri)和P(rj)分別表示全景圖像f(x,y)的灰度直方圖上的兩個局部極大值,ri和rj分別表示兩個局部極大值的位置,P(rT)表示ri和rj之間的最小值且P(ri)≤P(rT)≤P(rj),rT表示最小值的位置且ri≤rT≤rj。
將灰度值0 和KT分別作為文中閾值分割的最小閾值和最大閾值,準確分割出背景與目標。對分割后的目標連通域進行計數,當出現物料粘連情況時,根據區域面積參數進一步判斷物料個數。
根據本文算法,得到物料計數后的結果如圖9 所示,同時,可以驗證物料計數不存在誤差。

Fig.9 Materiel count圖9 物料計數
本文在Visual C++的開發環境下,設計基于圖像拼接的物料計數軟件,其支持物料圖像拼接,并根據拼接結果進行物料計數。軟件界面設計有物料圖像全景圖顯示框以及物料個數顯示框,可以清晰地看到物料檢測結果,如圖10 所示。

Fig.10 Detection result圖10 檢測結果
本文研究了一種基于圖像拼接的物料計數算法,采用邊緣檢測算法和基于圖像金字塔和搜索角度φ改進的模板匹配算法,實現對物料下落時的圖像拼接,取得了較好效果。在物料拼接全景圖的基礎上,采用雙峰法閾值分割實現物料計數。對比原始的模板匹配算法運行速度較慢的缺點,本文算法縮小了模板搜索范圍,并通過實驗,對比兩種算法的拼接時間及拼接效果,驗證了本文算法具有準確性高和匹配速度快的優點,為下一步物料計數打下了良好基礎。但是由于實驗樣本下落的隨機性,可能存在物料大面積粘連情況,造成計數錯誤,后續將改進硬件設備并對粘連物料分割作深入研究。