劉新穎,金守峰,嚴 楠
(1.西安工程大學 機電工程學院,西安 710048; 2.寧波職業(yè)技術(shù)學院,浙江 寧波 315800)
珍珠為自然產(chǎn)物,其形狀不能完全一致,作為飾品的珍珠對形狀要求很高,需要按不同等級進行分選,現(xiàn)有的珍珠形狀分選主要以人工為主,依靠肉眼或手工測量,勞動強度大、分選精度不穩(wěn)定。隨著機器人技術(shù)、機器視覺技術(shù)的飛速發(fā)展,越來越多具有視覺感知的機器人取代人工應(yīng)用到各個領(lǐng)域中。蘇澤斌等[1]提出基于參數(shù)核圖割計算紗線毛羽特征參數(shù)的算法,將紗線二值圖像與紗芯二值圖進行邏輯運算,分析毛羽參數(shù)特征,實驗表明該方法耗時少、誤分點少;謝佳等[2]利用最小外接矩算法測量鞋面尺寸,提高了尺寸測量的精度與速度;P.Vermeulen等[3]將近紅外高光譜成像法,與形態(tài)學結(jié)合,在面積、周長、圓形度、最大內(nèi)核直徑、最小內(nèi)核直徑、縱橫比、圓度、密實度等8個方面對硬粒小麥和普通小麥進行分類;周新文等[4]提出了一種基于數(shù)字圖像處理的DIP法,通過分析沙粒投影,測量沙子的特征參數(shù)來表征顆粒形態(tài)。N.Tsoulias等[5]采用光檢測與距離系統(tǒng)對蘋果樹在生長過程中去葉前和去葉后進行掃描,利用基于雷達三維點云提取線性度和曲率檢測蘋果的幾何特征;段宇飛等[6]采用光源透射方式采集雞蛋圖像,結(jié)合凸包算法提取雞蛋長短軸及蛋形,實現(xiàn)雞蛋尺寸分級;袁雷明等[7]利用多視角采集葡萄果穗不同角度圖像,通過提取輪廓曲線及顏色空間轉(zhuǎn)換實現(xiàn)葡萄外觀分級;王毓綜等[8]對國內(nèi)珍珠形狀自動分級的技術(shù)現(xiàn)狀進行分析,提出了以機器視覺為主導的未來在線實時檢測的解決方案;鄭春煌等[9]采用特殊的照明方式對珍珠圖像進行采集,在極坐標下獲取珍珠長短徑,通過直徑差對珍珠形狀大小進行檢測;張建華等[10]結(jié)合H-minima分水嶺分割方法和最小二乘圓法誤差理論,實現(xiàn)棉花葉部粘連病斑的分割,但當病斑粘連特別緊密時存在欠分割現(xiàn)象;孫衛(wèi)紅等[11]針對粘連蠶繭難以分割定位的問題,采用凹點定向腐蝕的方法完成圖像分割,但該方法凹點檢測率較低;李革等[12]通過珍珠圖像的坐標轉(zhuǎn)換,采用模糊識別方法對多視圖珍珠圖像特征判斷珍珠形狀并分類;白莉娜等[13]針對顆粒圖像中粘連區(qū)域不易分割的問題,利用鏈碼進行邊界跟蹤并計算粘連區(qū)域邊界曲率,將匹配到的凹點利用分割線連接,從而實現(xiàn)粘連顆粒的分割;王雪奎等[14]采用數(shù)字圖像技術(shù)對黏性土顆粒在長徑比、圓度及粗糙度等參數(shù)進行分析;鄧翔宇等[15]針對交通標識的分類,通過顏色特征分割,提出了基于邊緣走勢統(tǒng)計特征算法,實現(xiàn)快速識別交通標識;楊輝華等[16]針對粘連細胞分割問題,利用水平集方法提取細胞輪廓,循環(huán)迭代檢測粘連細胞輪廓上的凹點區(qū)域,確定分割位置完成細胞分割,但該方法計算量大、效率低;李蓉娟等[17]為了提高作業(yè)目標的抓取精度,設(shè)計了基于目標形狀特征的識別定位方法,有效識別、抓取作業(yè)目標;許偉棟等[18]利用機器視覺獲取馬鈴薯圖像,通過PCA-SVM算法提取馬鈴薯特征向量,在SVM模型中進行分類,提高分級精度。
粘連珍珠的分割是機器視覺識別中的難點,目前,對類圓形物體的分割方法主要有凹點法[19]、膨脹腐蝕法[20]、輪廓曲線法[21]、分水嶺算法[22]等。以上算法針對具體情況均可以實現(xiàn)類圓形顆粒分割,但同時又都具備一定的局限性。例如,凹點法主要利用目標物粘連時的凹凸特性,根據(jù)凹點處的夾角進行粘連目標的分割,但凹點的確定和匹配容易出錯,計算量較大;膨脹腐蝕算法容易破壞珍珠的原始形狀,不利于本文對珍珠形狀特征參數(shù)的測量;輪廓曲線法計算時運算量大,識別率低,一般僅適用于2~3顆少數(shù)目標粘連的情況;分水嶺算法是一種分割重疊圖像的經(jīng)典算法,具有快速準確有效的特點,但傳統(tǒng)的分水嶺算法會受到噪聲的干擾產(chǎn)生過分割或欠分割現(xiàn)象,產(chǎn)生大量的虛假邊緣或造成真實邊緣消失,尤其多顆珍珠粘連時,分割效果較差。對傳統(tǒng)分水嶺算法進行改進,是提高分割效果的關(guān)鍵。本文結(jié)合形態(tài)學算法和歐氏距離變換改進傳統(tǒng)分水嶺算法,分割粘連珍珠圖像。
針對人工進行珍珠形狀分選勞動強度大、效率低及分選精度不穩(wěn)定等問題,提出面向珍珠分揀機器人的形狀視覺檢測方法。通過機器視覺獲取珍珠圖像信息,在珍珠圖像預(yù)處理基礎(chǔ)上,采用改進的分水嶺算法進行珍珠圖像分割并計算珍珠輪廓及質(zhì)心位置,建立基于圖像信息的珍珠形狀參數(shù)模型,對珍珠形狀進行量化表征。
本文構(gòu)建如圖1所示的基于機器視覺的珍珠分選機器人系統(tǒng),由分辨率為2 448×2 048工業(yè)相機、25 mm光學鏡頭及照度為40 000 Lux面光源構(gòu)成了珍珠圖像獲取的機器視覺系統(tǒng);珍珠分選的執(zhí)行機構(gòu)為四自由度機器人,重復(fù)定位精度為0.2 mm,最大負載為500 g,最大延伸距離為320 mm;末端執(zhí)行器為氣動吸盤;計算機為上位機對獲取的珍珠圖像進行預(yù)處理、珍珠圖像分割及珍珠形狀的計算與等級分類。
圖1 珍珠分揀機器人系統(tǒng)
由于珍珠表面存在紋理、光澤,當光源直接照射珍珠表面時會產(chǎn)生反射導致成像質(zhì)量下降,因此本文設(shè)計的珍珠分選機器人系統(tǒng)采用了背光成像方式,獲取的珍珠圖像邊緣輪廓清晰,消除了珍珠表面紋理、光澤的干擾。
獲取的珍珠圖像背景灰度分布不均導致對比度低,因此采用同態(tài)濾波算法壓縮亮度范圍和增強對比度來改善珍珠圖像的質(zhì)量。珍珠區(qū)域與背景對比度增強,通過最大類間方差法對珍珠灰度圖像進行二值化處理[23]。珍珠區(qū)域與背景區(qū)域完全分開,但是珍珠圖像中存在相互接觸的珍珠,將影響到珍珠形狀輪廓的提取,必須將相互接觸的珍珠進行分割處理成單獨的區(qū)域。
如圖2所示,分水嶺算法的原理是將圖像表示為測地學上的拓撲地貌,圖像中每一點像素值表示該點的海拔高度,每一個區(qū)域極小值及其影響區(qū)域表示集水盆地,集水盆地的邊界即為分水嶺。在刺穿每一個區(qū)域極小值表面,再將整個模型慢慢浸入水中,隨著浸入的加深,每一個局部極小值的影響域慢慢向外擴展,在兩個集水盆匯合處構(gòu)筑大壩,即形成了分水嶺[24],將集水盆地分開,實現(xiàn)了對圖像的分割。
圖2 分水嶺算法原理
對于分割后的珍珠圖像既要保留珍珠邊緣輪廓區(qū)域,滿足形狀測量精度,同時還要消除噪聲和微小誤分割區(qū)域的影響,因此本文基于形態(tài)學構(gòu)建珍珠梯度圖像,由于珍珠為類圓形狀,本文設(shè)計圓形結(jié)構(gòu)元素對珍珠圖像進行形態(tài)學梯度運算,其表達式為:
grad(f)=[(f⊕g)-(fΘg)]
(1)
式中,grad(f)為梯度值,f為珍珠分割圖,g為圓形結(jié)構(gòu)元素,⊕為膨脹運算,Θ為腐蝕運算。
由分水嶺算法的原理可知,水是由各集水盆底逐漸向分水嶺上蔓延,被珍珠各區(qū)域內(nèi)部逐漸向接觸區(qū)域的邊緣遞推,通過形態(tài)學梯度計算得到接觸珍珠與獨立珍珠的邊緣輪廓,該輪廓為理想的分水嶺邊界。為實現(xiàn)接觸珍珠的分割,要將各珍珠區(qū)域的盆底之間進行分離,且不與分水嶺邊界粘連,并為整個區(qū)域的低值區(qū)。因此設(shè)定本文中的珍珠二值圖為B,Bij為第i行第j列的像素值,圖像中珍珠區(qū)域的像素點構(gòu)成了前景,其集合為Z={(i,j)|Bij=1};像素值為0的像素點構(gòu)成背景,其集合為G={(i,j)|Bij=0}。對珍珠圖像進行距離變換來確定珍珠區(qū)域低值區(qū)。珍珠圖像B中各像素點之間的最小距離的表達式為:
Dij=min{Dist[(i,j),(x,y)],(x,y)∈Z}
(2)
式中,Dist為距離度量函數(shù),x為珍珠輪廓點的橫坐標,y為珍珠輪廓點的縱坐標。
由于珍珠為類圓形,其質(zhì)心到最近的輪廓點的距離最大,近似為珍珠半徑,故以歐氏距離作為距離度量函數(shù),其表達式為:
(3)
式中,(a1,b1)、(a2,b2)分別為平面內(nèi)任意兩點的坐標。
距離變換三維圖形如圖3(a)所示,最短距離為谷底位置,該位置對應(yīng)圖3(b)中黑色區(qū)域為最小值區(qū)域,目標之間的白色分割線為分水嶺的脊線。由分水嶺脊線可以確定集水盆地和分水嶺,將前景珍珠目標標記為1,確定珍珠圖像的集水盆;圖像的背景標記為0,確定多顆珍珠的分水嶺。使得相互接觸的珍珠都有了獨立的集水盆及分水嶺,各珍珠圖像由集水盆底向分水嶺遞推計算過程中,像素梯度變化均勻,不存在集水盆中噪聲過多而產(chǎn)生的干擾情況,實現(xiàn)了對相互接觸珍珠的分割。再通過連通區(qū)域的顏色標記,相互粘連的珍珠通過不同顏色劃分成獨立的個體,結(jié)果如圖3(c)所示。
珍珠區(qū)域的邊緣輪廓作為珍珠形狀的有力描述,是珍珠分級的重要參數(shù)。由圖3(c)可知,在珍珠圖像分割的基礎(chǔ)上,每個連通域的珍珠均為獨立個體,當圖像中連通域個數(shù)為n時,設(shè)連通域中的珍珠圖像為fi(x,y),其中i取值為1-n。利用質(zhì)心算法[25]求取每個珍珠的質(zhì)心坐標為:
(4)
式中,(xc,yc)為珍珠質(zhì)心。
圖3 分水嶺算法分割接觸珍珠
本文采用形態(tài)學邊緣跟蹤算法對珍珠圖像進行輪廓特征提取,結(jié)果如圖3(c)的白色輪廓,利用兩點之間距離公式計算珍珠輪廓邊緣點(x1,y1)到質(zhì)心的距離,其表達式為:
(5)
由式(2)可以計算出珍珠的半徑序列,其表達式為:
Rk(k=1,2…,m-1)
(6)
式中,m為邊緣點個數(shù)。
(7)
式中,X為形狀參數(shù)模型。
由式(7)可知,半徑百分比越小則說明珍珠越接近正圓,反之則次之。以此為依據(jù),建立了如表1所示的珍珠圓形類分級標準。
表1 珍珠圓形類分級標準
本文主要針對圓形類的珍珠進行形狀檢測,實驗中選用正圓、圓、近圓3種形狀的淡水珍珠共60顆作為檢測目標。
人工根據(jù)國標要求采用游標卡尺進行測量,將本文方法的計算值與人工測量值進行對比如圖4所示,由圖可知本文方法的計算值與人工測量值的分布一致,通過式(8)計算的誤差百分比為0.63%,滿足使用要求。
(8)
如圖4中點劃線為正圓和圓的分割線,虛線為圓和近圓的分割線,對比手工測量和本文方法測量3種形狀珍珠,每一類珍珠均正確分布在相應(yīng)區(qū)域。統(tǒng)計兩種方式下測得的不同形狀珍珠顆數(shù)如表2所示,3種形狀測量精度均為100%。對實驗用60顆樣本進行多次重復(fù)檢測,算法檢測所用時間為24 ms。
圖4 實驗數(shù)據(jù)
等級人工/顆本文方法/顆精度/%正圓2020100圓2323100近圓1717100
1)針對珍珠形狀的人工分揀效率低、精度不穩(wěn)定等問題,提出基于機器視覺的珍珠形狀檢測方法,構(gòu)建了檢測系統(tǒng)實驗平臺對60顆不同形狀的珍珠樣本進行實驗分析,檢測誤差為0.63%,形狀統(tǒng)計精度為100%,算法耗時24 ms。
2)對多顆珍珠存在的相互接觸影響珍珠輪廓提取的問題,采用改進的分水嶺算法對多顆珍珠圖像進行分割,實現(xiàn)了對相互接觸珍珠的分割,通過連通區(qū)域的標記確定其質(zhì)心位置。
3)基于珍珠圖像信息建立了珍珠形狀參數(shù)模型,通過珍珠輪廓各點與質(zhì)心兩點之間距離計算珍珠半徑序列,提取最大、最小及平均半徑,建立珍珠形狀參數(shù),定量表征珍珠形狀。