楊子萱 金守峰 劉新穎 肖福禮 嚴 楠 陳 罡
(1.西安工程大學機電工程學院 西安 710600)(2.陜西省計量科學研究院 西安 710100)(3.寧波職業技術學院機電工程學院 寧波 315800)(4.浙江機電職業技術學院自動化學院 杭州 310053)
利用機器視覺進行珍珠形狀參數檢測過程中,由于珍珠之間存在相互接觸,導致形狀參數的檢測誤差較大,不能客觀表征珍珠形狀。
對于相互接觸目標之間的分離問題,國內外學者進行了深入研究。湯一平等[1]提出基于單目多視角機器視覺的珍珠在線分類系統,能夠實時性完成珍珠的顏色、光澤度及均勻度等分類;王鑫等[2]提出了基于先驗條件的分水嶺算法,提取目標細胞邊界對粘連細胞進行分離,由于算法的計算量大,實時性不高;王粵等[3]提出了基于內外輪廓線曲率方向的粘連米粒分離算法,通過檢測米粒的粘連點獲取粘連點間的距離及曲率方向判斷分離點,該算法提高了粘連米粒分離的準確率,但是會受到粘連密度和方向的干擾;閆磊等[4]基于分水嶺算法[5~6]對粘連顆粒進行分割,提取顆粒的形態特征和顏色特征,通過計算馬氏距離識別混雜在谷物中的雜質;王品等[2]基于多特征Mean-shift 聚類算法實現胰腺細胞抹片顯微圖像細胞核的自動分割,采用CA?GA 結合SVM[7~8]選擇最優特征子集實現細胞核的分類識別;張文飛等[9]針對多目標圖像分離時粘連分布不均影響圖像分離精度的問題,采用形態學運算和距離變換的分水嶺算法將粘連目標進行精確分離;張建華等[10]提出融合H-minima 分水嶺方法和最小二乘圓法解決棉花葉部病斑之間粘連問題,實現粘連病斑的自動分割;陳樹越等[9~10]提出一種改進的凹點檢測和精確分離點定位的粘連害蟲分離算法,能夠準確地計算粘連害蟲的分離線;李冰等[11]提出一種基于背景骨架特征的粘連米粒圖像自動分割算法,解決了粘連米粒的分割與識別;趙曉晴等[12]提出一種基于深度學習的粘連白細胞分離算法,強化模型對細胞邊界特征的學習;古亭等[13]采用距離變換的粘連蠶繭分割方法,采用結合歸一化及形態學算法提高了粘連蠶繭的分割效果;李文勇等[14]針對害蟲識別過程中出現的粘連等情況,基于形狀因子和分割點定位的方法提高了識別準確率,在目標過大時算法會導致過分割現象;陳名等[15]利用像素塊掃描的種子點替代算法實現粘連細胞圖像的分離,該方法僅適用于細胞面積相差不大粘連細胞;張新偉等[16]提出一種遺傳算法與改進脈沖耦合神經網絡相融合的分割方法,解決玉米籽粒粘連導致穗粒數統計準確率低的問題;權龍哲等[17]為實現玉米粒群圖像的自動分離和形態校正,提出了改進的分水嶺算法,利用多尺度小波分析法對玉米籽粒圖像檢測。
在現有的粘連分割方法的基礎上,針對大量珍珠形狀檢測中相互接觸的分離問題,本文提出一種基于凹點檢測的接觸珍珠分離方法。采用背光成像獲取大量珍珠圖像信息,以連通域標記的面積比提取接觸珍珠區域,建立接觸區域邊緣輪廓點夾角數學模型提取凹點信息,通過凹點匹配消除干擾點,以歐氏距離作為距離度量函數完成接觸珍珠的分離。
珍珠表面存在紋理及光澤[18],為了降低這些因素對珍珠形狀檢測的干擾,本文采用背光成像法采集的多顆珍珠圖像如圖1(a)所示,通過同態濾波、均值濾波等預處理算法提高了圖像的對比度、減少了噪聲等影響,預處理后的結果如圖1(b)所示。

圖1 珍珠圖像預處理
按圖像的灰度特性,采用最大類間方差法[19]將圖像分成背景和珍珠目標兩個部分,如圖2(a)所示,圖中珍珠既有單顆獨立存在,也有多顆珍珠接觸在一起,各區域的輪廓特征明顯。

圖2 圖像二值化與連通域標記
對二值化后的珍珠圖像進行連通域標記如圖2(b)所示,統計各連通域的像素面積為S1,S2,…,Sn,如表1 所示,對面積序列進行排序得到其中的最大面積為Smax和最小面積為Smin,其表達式為
式中,n為連通域個數。
由表1 可知,最大面積為41467,最小面積為13211。

表1 連通域面積及面積比
由圖2(b)可知,最小連通域的像素面積對應為單顆獨立的珍珠,為了獲取相互接觸的珍珠區域,通過各連通域的像素面積與最小連通域面積Smin的比值來確定是否為接觸區域,其表達式為
式中,Kn為面積比。
由于大量珍珠隨機平鋪放置,不存在堆疊狀態,因此面積比選取經驗值為1.5 作為判別珍珠是否存在接觸的閾值,當Kn>1.5 時則存在接觸,反之則為單顆獨立的珍珠。由表1 可知,S1~S8均小于1.5,則這8 個區域不存在接觸的珍珠,S9、S10均大于1.5,則這兩個區域存在相互接觸的珍珠。通過邊緣跟蹤算法提取相互接觸的珍珠邊緣輪廓特征如圖2(b)中的白色輪廓。
凹點信息是圖像中目標邊緣輪廓上曲率極大值的點,單顆獨立的珍珠形狀為類圓形,表面曲率變化平穩,因此不具有凹點特征[20]。多顆相互接觸的珍珠在接觸點處存在較大的曲率突變,具有明顯的凹點特征。在提取相互接觸珍珠的邊緣輪廓基礎上,本文基于凹點檢測對相互接觸的珍珠進行分離。
圖3 為接觸珍珠邊緣輪廓局部放大圖,設接觸珍珠邊緣輪廓上三個連續點Pk-1(xk-1,yk-1),Pk(xk,yk),Pk+1(xk+1,yk+1)。

圖3 接觸珍珠邊緣輪廓局部放大
直線Pk-1Pk與直線PkPk+1相交,所得到的夾角θ即為珍珠邊緣輪廓點夾角。
由余弦定理可知夾角θ為
由式(6)可知,邊緣輪廓夾角越小則該點為凹點,反之則不是凹點。通過對圖3 的邊緣輪廓點進行輪廓夾角的計算,角度分布圖如圖4 所示,由于珍珠表面存在紋理,輪廓夾角存在波動。角度在30°-60°范圍內為珍珠相互接觸導致輪廓夾角變小,初步可以確定為凹點。角度在150°~180°范圍內,確定不是凹點。

圖4 角度分布圖
由圖4 角度分布可知,輪廓夾角所確定的凹點存在干擾點,如圖5 中圓圈內的各點,為了精準確定珍珠接觸區域的凹點,本文對候選的凹點進行匹配算法,其步驟如下:

圖5 初步凹點檢測
1)根據候選凹點之間的距離,采用K 均值聚類算法將候選凹點分為A、B兩類;
2)尋找A 類與B 類之間距離最短的一對候選凹點;
3)連接該對候選點,并找出連接線的中垂線;
4)計算中垂線在連接線附近某一設定范圍內點的坐標;
5)根據這些點的坐標,查找在原圖的灰度值;
6)點的灰度值若均為珍珠的灰度,則這對候選凹點就真正凹點;若既有珍珠的灰度又有背景的灰度則表明這6個候選凹點只包含一個真正凹點;
7)若只包含一個真正凹點,則增加候選凹點的數目,返回步驟1)。
凹點匹配的結果如圖6 所示,精準確定了珍珠接觸點的一對凹點(a1,b1)、(a2,b2)。

圖6 凹點匹配

圖7 珍珠分離
本文構建了基于機器視覺的珍珠形狀檢測系統由相機、鏡頭、光源、計算機、載物臺等組成,相機光軸垂直于載物臺,鏡頭距離載物臺距離為250mm,珍珠隨機平鋪在載物臺上,光源采用LED陣列面光源,照度為40000Lux。相機、待檢測珍珠、光源以背光成像方式獲取珍珠圖像。系統軟件為Open CV、Python3.7 進行算法的開發。實驗以淡水珍珠為樣本,直徑為7mm~8mm。
4.2.1 分離評價參數
為了更客觀地分析接觸珍珠分離算法的有效性,本文采用面積損失率(Z)來評價接觸珍珠的分離精度。假設珍珠A 的面積為Sa,珍珠B 的面積為Sb,非接觸狀態的面積和為(Sc=Sa+Sb),接觸狀態的總面積為Sd。
珍珠A 在非接觸狀態與接觸狀態下的面積占比為K1和K2:
由此得到面積損失率Z的表達式為
面積損失率Z 越小,則接觸珍珠的分離精度越高,反之則越低。
4.2.2 實驗分析
對2 顆、3 顆、4 顆及多顆珍珠在接觸情況分別實驗得到的數據如表2所示。

表2 不同方法對不同數量接觸珍珠分離結果
由表2可知,隨著接觸珍珠的顆數增加,接觸點越多,接觸情況越復雜,本文方法與Harris 算法[21]的分離正確率隨之降低、面積損失率隨之增加,耗時也增加。本文方法相對于Harris 算法,分離成功率提高了4.45%,面積損失率減小了1.921%,分離速度提高了0.052s。
1)針對相互接觸珍珠珍珠之間的分離問題,提出了一種基于凹點檢測的分離方法,實驗結果表明,該方法的分離正確率為97.825%,平均運行時間為0.322s,提高了算法效率及分離精度。
2)為了判斷相互接觸的珍珠區域,統計各連通域的像素面積,計算了各連通域的像素面積與最小連通域面積的比值,根據面積比設置閾值,判斷出了接觸珍珠和獨立珍珠。
3)針對大量珍珠存在的相互接觸影響珍珠輪廓提取的問題,對接觸珍珠進行凹點檢測,然后通過凹點匹配算法確定了真正凹點,基于歐氏距離實現了接觸珍珠的分離;通過單獨、接觸兩種狀態下同一顆珍珠的面積占比,利用分離誤差面積變化率模型實現了面積損失率的計算。