楊子萱 金守峰 劉新穎 肖福禮 嚴(yán) 楠 陳 罡
(1.西安工程大學(xué)機電工程學(xué)院 西安 710600)(2.陜西省計量科學(xué)研究院 西安 710100)(3.寧波職業(yè)技術(shù)學(xué)院機電工程學(xué)院 寧波 315800)(4.浙江機電職業(yè)技術(shù)學(xué)院自動化學(xué)院 杭州 310053)
利用機器視覺進行珍珠形狀參數(shù)檢測過程中,由于珍珠之間存在相互接觸,導(dǎo)致形狀參數(shù)的檢測誤差較大,不能客觀表征珍珠形狀。
對于相互接觸目標(biāo)之間的分離問題,國內(nèi)外學(xué)者進行了深入研究。湯一平等[1]提出基于單目多視角機器視覺的珍珠在線分類系統(tǒng),能夠?qū)崟r性完成珍珠的顏色、光澤度及均勻度等分類;王鑫等[2]提出了基于先驗條件的分水嶺算法,提取目標(biāo)細(xì)胞邊界對粘連細(xì)胞進行分離,由于算法的計算量大,實時性不高;王粵等[3]提出了基于內(nèi)外輪廓線曲率方向的粘連米粒分離算法,通過檢測米粒的粘連點獲取粘連點間的距離及曲率方向判斷分離點,該算法提高了粘連米粒分離的準(zhǔn)確率,但是會受到粘連密度和方向的干擾;閆磊等[4]基于分水嶺算法[5~6]對粘連顆粒進行分割,提取顆粒的形態(tài)特征和顏色特征,通過計算馬氏距離識別混雜在谷物中的雜質(zhì);王品等[2]基于多特征Mean-shift 聚類算法實現(xiàn)胰腺細(xì)胞抹片顯微圖像細(xì)胞核的自動分割,采用CA?GA 結(jié)合SVM[7~8]選擇最優(yōu)特征子集實現(xiàn)細(xì)胞核的分類識別;張文飛等[9]針對多目標(biāo)圖像分離時粘連分布不均影響圖像分離精度的問題,采用形態(tài)學(xué)運算和距離變換的分水嶺算法將粘連目標(biāo)進行精確分離;張建華等[10]提出融合H-minima 分水嶺方法和最小二乘圓法解決棉花葉部病斑之間粘連問題,實現(xiàn)粘連病斑的自動分割;陳樹越等[9~10]提出一種改進的凹點檢測和精確分離點定位的粘連害蟲分離算法,能夠準(zhǔn)確地計算粘連害蟲的分離線;李冰等[11]提出一種基于背景骨架特征的粘連米粒圖像自動分割算法,解決了粘連米粒的分割與識別;趙曉晴等[12]提出一種基于深度學(xué)習(xí)的粘連白細(xì)胞分離算法,強化模型對細(xì)胞邊界特征的學(xué)習(xí);古亭等[13]采用距離變換的粘連蠶繭分割方法,采用結(jié)合歸一化及形態(tài)學(xué)算法提高了粘連蠶繭的分割效果;李文勇等[14]針對害蟲識別過程中出現(xiàn)的粘連等情況,基于形狀因子和分割點定位的方法提高了識別準(zhǔn)確率,在目標(biāo)過大時算法會導(dǎo)致過分割現(xiàn)象;陳名等[15]利用像素塊掃描的種子點替代算法實現(xiàn)粘連細(xì)胞圖像的分離,該方法僅適用于細(xì)胞面積相差不大粘連細(xì)胞;張新偉等[16]提出一種遺傳算法與改進脈沖耦合神經(jīng)網(wǎng)絡(luò)相融合的分割方法,解決玉米籽粒粘連導(dǎo)致穗粒數(shù)統(tǒng)計準(zhǔn)確率低的問題;權(quán)龍哲等[17]為實現(xiàn)玉米粒群圖像的自動分離和形態(tài)校正,提出了改進的分水嶺算法,利用多尺度小波分析法對玉米籽粒圖像檢測。
在現(xiàn)有的粘連分割方法的基礎(chǔ)上,針對大量珍珠形狀檢測中相互接觸的分離問題,本文提出一種基于凹點檢測的接觸珍珠分離方法。采用背光成像獲取大量珍珠圖像信息,以連通域標(biāo)記的面積比提取接觸珍珠區(qū)域,建立接觸區(qū)域邊緣輪廓點夾角數(shù)學(xué)模型提取凹點信息,通過凹點匹配消除干擾點,以歐氏距離作為距離度量函數(shù)完成接觸珍珠的分離。
珍珠表面存在紋理及光澤[18],為了降低這些因素對珍珠形狀檢測的干擾,本文采用背光成像法采集的多顆珍珠圖像如圖1(a)所示,通過同態(tài)濾波、均值濾波等預(yù)處理算法提高了圖像的對比度、減少了噪聲等影響,預(yù)處理后的結(jié)果如圖1(b)所示。
圖1 珍珠圖像預(yù)處理
按圖像的灰度特性,采用最大類間方差法[19]將圖像分成背景和珍珠目標(biāo)兩個部分,如圖2(a)所示,圖中珍珠既有單顆獨立存在,也有多顆珍珠接觸在一起,各區(qū)域的輪廓特征明顯。
圖2 圖像二值化與連通域標(biāo)記
對二值化后的珍珠圖像進行連通域標(biāo)記如圖2(b)所示,統(tǒng)計各連通域的像素面積為S1,S2,…,Sn,如表1 所示,對面積序列進行排序得到其中的最大面積為Smax和最小面積為Smin,其表達式為
式中,n為連通域個數(shù)。
由表1 可知,最大面積為41467,最小面積為13211。
表1 連通域面積及面積比
由圖2(b)可知,最小連通域的像素面積對應(yīng)為單顆獨立的珍珠,為了獲取相互接觸的珍珠區(qū)域,通過各連通域的像素面積與最小連通域面積Smin的比值來確定是否為接觸區(qū)域,其表達式為
式中,Kn為面積比。
由于大量珍珠隨機平鋪放置,不存在堆疊狀態(tài),因此面積比選取經(jīng)驗值為1.5 作為判別珍珠是否存在接觸的閾值,當(dāng)Kn>1.5 時則存在接觸,反之則為單顆獨立的珍珠。由表1 可知,S1~S8均小于1.5,則這8 個區(qū)域不存在接觸的珍珠,S9、S10均大于1.5,則這兩個區(qū)域存在相互接觸的珍珠。通過邊緣跟蹤算法提取相互接觸的珍珠邊緣輪廓特征如圖2(b)中的白色輪廓。
凹點信息是圖像中目標(biāo)邊緣輪廓上曲率極大值的點,單顆獨立的珍珠形狀為類圓形,表面曲率變化平穩(wěn),因此不具有凹點特征[20]。多顆相互接觸的珍珠在接觸點處存在較大的曲率突變,具有明顯的凹點特征。在提取相互接觸珍珠的邊緣輪廓基礎(chǔ)上,本文基于凹點檢測對相互接觸的珍珠進行分離。
圖3 為接觸珍珠邊緣輪廓局部放大圖,設(shè)接觸珍珠邊緣輪廓上三個連續(xù)點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°范圍內(nèi)為珍珠相互接觸導(dǎo)致輪廓夾角變小,初步可以確定為凹點。角度在150°~180°范圍內(nèi),確定不是凹點。
圖4 角度分布圖
由圖4 角度分布可知,輪廓夾角所確定的凹點存在干擾點,如圖5 中圓圈內(nèi)的各點,為了精準(zhǔn)確定珍珠接觸區(qū)域的凹點,本文對候選的凹點進行匹配算法,其步驟如下:
圖5 初步凹點檢測
1)根據(jù)候選凹點之間的距離,采用K 均值聚類算法將候選凹點分為A、B兩類;
2)尋找A 類與B 類之間距離最短的一對候選凹點;
3)連接該對候選點,并找出連接線的中垂線;
4)計算中垂線在連接線附近某一設(shè)定范圍內(nèi)點的坐標(biāo);
5)根據(jù)這些點的坐標(biāo),查找在原圖的灰度值;
6)點的灰度值若均為珍珠的灰度,則這對候選凹點就真正凹點;若既有珍珠的灰度又有背景的灰度則表明這6個候選凹點只包含一個真正凹點;
7)若只包含一個真正凹點,則增加候選凹點的數(shù)目,返回步驟1)。
凹點匹配的結(jié)果如圖6 所示,精準(zhǔn)確定了珍珠接觸點的一對凹點(a1,b1)、(a2,b2)。
圖6 凹點匹配
圖7 珍珠分離
本文構(gòu)建了基于機器視覺的珍珠形狀檢測系統(tǒng)由相機、鏡頭、光源、計算機、載物臺等組成,相機光軸垂直于載物臺,鏡頭距離載物臺距離為250mm,珍珠隨機平鋪在載物臺上,光源采用LED陣列面光源,照度為40000Lux。相機、待檢測珍珠、光源以背光成像方式獲取珍珠圖像。系統(tǒng)軟件為Open CV、Python3.7 進行算法的開發(fā)。實驗以淡水珍珠為樣本,直徑為7mm~8mm。
4.2.1 分離評價參數(shù)
為了更客觀地分析接觸珍珠分離算法的有效性,本文采用面積損失率(Z)來評價接觸珍珠的分離精度。假設(shè)珍珠A 的面積為Sa,珍珠B 的面積為Sb,非接觸狀態(tài)的面積和為(Sc=Sa+Sb),接觸狀態(tài)的總面積為Sd。
珍珠A 在非接觸狀態(tài)與接觸狀態(tài)下的面積占比為K1和K2:
由此得到面積損失率Z的表達式為
面積損失率Z 越小,則接觸珍珠的分離精度越高,反之則越低。
4.2.2 實驗分析
對2 顆、3 顆、4 顆及多顆珍珠在接觸情況分別實驗得到的數(shù)據(jù)如表2所示。
表2 不同方法對不同數(shù)量接觸珍珠分離結(jié)果
由表2可知,隨著接觸珍珠的顆數(shù)增加,接觸點越多,接觸情況越復(fù)雜,本文方法與Harris 算法[21]的分離正確率隨之降低、面積損失率隨之增加,耗時也增加。本文方法相對于Harris 算法,分離成功率提高了4.45%,面積損失率減小了1.921%,分離速度提高了0.052s。
1)針對相互接觸珍珠珍珠之間的分離問題,提出了一種基于凹點檢測的分離方法,實驗結(jié)果表明,該方法的分離正確率為97.825%,平均運行時間為0.322s,提高了算法效率及分離精度。
2)為了判斷相互接觸的珍珠區(qū)域,統(tǒng)計各連通域的像素面積,計算了各連通域的像素面積與最小連通域面積的比值,根據(jù)面積比設(shè)置閾值,判斷出了接觸珍珠和獨立珍珠。
3)針對大量珍珠存在的相互接觸影響珍珠輪廓提取的問題,對接觸珍珠進行凹點檢測,然后通過凹點匹配算法確定了真正凹點,基于歐氏距離實現(xiàn)了接觸珍珠的分離;通過單獨、接觸兩種狀態(tài)下同一顆珍珠的面積占比,利用分離誤差面積變化率模型實現(xiàn)了面積損失率的計算。