趙佳冉,張愛華,姜超群,蔣群,李建軍
(1 中原工學(xué)院 電子信息學(xué)院,鄭州 450007;2 新鄭市恒凱電子科技有限公司,鄭州 450007)
機(jī)器視覺技術(shù)和數(shù)字圖像理論的快速發(fā)展,使得目標(biāo)識(shí)別與分揀技術(shù)日漸成熟,且性能持續(xù)提升。在工業(yè)生產(chǎn)領(lǐng)域應(yīng)用機(jī)器視覺技術(shù)[1]和圖像識(shí)別原理實(shí)現(xiàn)工業(yè)智能分揀。該類方法具有較強(qiáng)的靈活性和適應(yīng)能力,使工業(yè)生產(chǎn)速度得到很大提升,同時(shí)減少了人力資源的消耗[2-6]。
張大為等人[3]基于機(jī)器視覺設(shè)計(jì)了可實(shí)現(xiàn)不同運(yùn)行速度下的物料抓取的機(jī)器人自動(dòng)上料系統(tǒng)。徐青青[4]利用智能分揀系統(tǒng)能夠?qū)崿F(xiàn)不同物體識(shí)別分類并獲取位姿,但均存在算法不易移植的問題。彭杰等人[5]對(duì)不同位姿下的鋁件和有機(jī)玻璃通過條形碼進(jìn)行分揀,但應(yīng)用場(chǎng)景受限。王詩(shī)宇等人[6]利用并聯(lián)機(jī)械手機(jī)器人和康耐視相機(jī)搭建智能分揀系統(tǒng),克服光照因素影響的同時(shí)解決因?yàn)榄h(huán)境改變程序不適應(yīng)問題,成本較高。
針對(duì)以上問題,設(shè)計(jì)了基于機(jī)器人視覺的運(yùn)動(dòng)物體形狀識(shí)別與定位方案,該方案可應(yīng)用于實(shí)驗(yàn)教學(xué),所以成本較低、應(yīng)用場(chǎng)景廣泛且算法易于移植。
物體識(shí)別分揀系統(tǒng)主要由傳送模塊、機(jī)器視覺模塊、運(yùn)動(dòng)控制模塊和抓取模塊四部分組成。對(duì)此可做流程闡述如下。
傳送模塊負(fù)責(zé)運(yùn)動(dòng)目標(biāo)物體的運(yùn)動(dòng)數(shù)據(jù);機(jī)器視覺模塊對(duì)采集到的圖像做預(yù)處理,物體輪廓提取判斷物體形狀、獲取物體重心坐標(biāo),為實(shí)現(xiàn)物體分揀提供必要信息;運(yùn)動(dòng)控制模塊在調(diào)控X軸、Y軸移動(dòng)的同時(shí),控制Z軸運(yùn)動(dòng)到目標(biāo)物體坐標(biāo)進(jìn)行吸??;抓取模塊負(fù)責(zé)物體的吸放操作。
圖1 系統(tǒng)工作流程Fig.1 System workflow
由于相機(jī)鏡頭透鏡的存在,使得光線投影到成像平面的過程中會(huì)產(chǎn)生畸變,此時(shí)就需要對(duì)相機(jī)進(jìn)行標(biāo)定。通過標(biāo)定,獲取相機(jī)的內(nèi)參矩陣和外參矩陣,得到相機(jī)坐標(biāo)系在世界坐標(biāo)中的位置信息。相機(jī)坐標(biāo)系與世界坐標(biāo)系的關(guān)系[7]可表示為:
其中,R表示該相機(jī)的旋轉(zhuǎn)矩陣;T表示偏移向量;矩陣 [Xw YwZw1]T表示空間點(diǎn)在世界坐標(biāo)系下的向量;[Xc Yc Zc1]T表示空間點(diǎn)在相機(jī)坐標(biāo)系下的向量。
將相機(jī)坐標(biāo)系(Xc,Yc,Zc)轉(zhuǎn)換至理想投影平面坐標(biāo)系(Xu,Yu),可表示為:
其中,f為攝像頭焦距。由理想投影平面坐標(biāo)系(xu,yu)到實(shí)際的投影平面坐標(biāo)系(x,y)之間的轉(zhuǎn)換關(guān)系為:
其中,k1,k2為徑向畸變系數(shù);p1,p2為切向畸變系數(shù);r為點(diǎn)距成像中心的距離。
實(shí)際投影平面坐標(biāo)(x,y)和相機(jī)圖像坐標(biāo)(u,v)的線性轉(zhuǎn)換關(guān)系可分別表示為:
其中,(u0,v0)為基準(zhǔn)坐標(biāo),表示圖像的中心坐標(biāo);Δx和Δy分別表示坐標(biāo)軸中水平和垂直方向相鄰的2 個(gè)像素之間的距離(mm/pixel);fx和fy表示單個(gè)像素的焦距。結(jié)合式(1)、式(4)~(5)可得到具體的表達(dá)式為:
4.鄉(xiāng)鎮(zhèn)級(jí)社會(huì)保險(xiǎn)費(fèi)征收機(jī)構(gòu)。按照全區(qū)統(tǒng)一規(guī)劃,鄉(xiāng)鎮(zhèn)設(shè)置勞動(dòng)保障事務(wù)所或勞動(dòng)保障服務(wù)中心,主要提供社會(huì)保險(xiǎn)相關(guān)服務(wù)。
其中,s表示比例因子。
由此就可以得到圖像中像素坐標(biāo)系和世界坐標(biāo)系的對(duì)應(yīng)關(guān)系式。
圖像預(yù)處理是物體形狀識(shí)別中不可或缺的一步,實(shí)際圖像采集時(shí),外部環(huán)境干擾較大,為了消除無(wú)關(guān)信息的影響,需要對(duì)圖像進(jìn)行預(yù)處理。本文采用高斯濾波方法對(duì)圖像進(jìn)行濾波。利用二進(jìn)制閾值分割方法中的Otsu 算法[8]將物體和背景分離,增強(qiáng)物體形狀識(shí)別可靠性。
Otsu 算法在實(shí)際圖像分割中是最佳的閾值選取算法,該算法計(jì)算簡(jiǎn)單且不受圖像亮度和對(duì)比度的影響,能將物體和背景更好地分離出來(lái),使后期的物體形狀識(shí)別更加準(zhǔn)確。
其它類型的閾值分割算法是用戶自定義閾值,而Otsu 閾值類型通過大津算法,自動(dòng)獲取合適閾值進(jìn)行Binary 二值化,所以該方法更適合應(yīng)用在工程實(shí)踐中。圖2 是利用Otsu 閾值分割方法對(duì)目標(biāo)物體分割后的圖,可以看出該方法可以很好地分離出物體和背景。
圖2 Otsu 閾值分割Fig.2 Otsu threshold segmentation
Otsu 閾值類型通過大津算法,自動(dòng)獲取合適的閾值進(jìn)行Binary 二值化[9]。Otsu 算法原理為:令{0,1,2,……,L -1} 表示一幅大小為M ×N像素的數(shù)字圖像中的L個(gè)不同的灰度級(jí),用ni表示灰度級(jí)為i的像素?cái)?shù)。圖像中的像素總數(shù)為MN=歸一化直方圖具有分量pi=ni/MN,選擇一個(gè)閾值T,并用其把輸入圖像閾值化處理為2 類:C0和C1。這里,C0由圖像中灰度值在[0,T]范圍內(nèi)的所有像素組成,C1由灰度值在[T +1,L -1]范圍內(nèi)所有像素組成。由P0(T)、P1(T)、μ0(T)、μ1(T)和σ20(T)、σ21(T)分別表示2 類的累計(jì)概率、平均灰度和方差,各值間的關(guān)系列出公式見如下:
圖像特征提取采用了多邊形逼近的方法,獲取目標(biāo)基本輪廓。多邊形逼近主要應(yīng)用approxPolyDP多邊形擬合函數(shù)識(shí)別物體形狀,該函數(shù)采用道格拉斯-普客算法(Douglas-Peucker)實(shí)現(xiàn)擬合函數(shù)的運(yùn)算[10]。
算法應(yīng)用步驟為:首先,做目標(biāo)曲線的一條弦,假設(shè)目標(biāo)曲線的首點(diǎn)為A,尾點(diǎn)為B,首尾相接得到一條直線AB,將該直線視為目標(biāo)曲線的弦。然后尋找目標(biāo)曲線與弦間的最大距離點(diǎn)C,使曲線和弦之間的最大距離為d,將d與預(yù)先設(shè)置好的閾值進(jìn)行比較,若小于指定閾值,則這一段直線可近似為目標(biāo)曲線,此段曲線處理完畢。如果距離d大于閾值,則用點(diǎn)C將線段分為AC和BC兩段,繼續(xù)上述操作,直到所有曲線處理結(jié)束。在本文中通過分別定義輸出的多邊形點(diǎn)集,將其作為多邊形的邊長(zhǎng),由此確定多邊形的形狀,形狀示意如圖3 所示。
圖3 Douglas-Peucker 逼近曲線示意圖Fig.3 Schematic diagram of Douglas-Peucker approximation curve
利用灰度重心法計(jì)算物體的重心[11]來(lái)定位運(yùn)動(dòng)目標(biāo)位置。其重心坐標(biāo)通過求圖像的矩的方法得到,如果將圖像的像素記為密度函數(shù)f(x,y),對(duì)像素點(diǎn)求期望即為圖像的原點(diǎn)矩。原點(diǎn)矩的公式為:
其中,mpq表示圖像中所有像素的總和,每個(gè)像素的x,y都要和相應(yīng)的比例因子xp,yq相乘。
由于圖形的一階矩是與圖形的形狀有關(guān)的,因此在本方案中采用一階矩的方法求取物體的重心,重心的求取公式為:
其中,m00表示圖像上所有非零區(qū)域,處理輪廓的長(zhǎng)度為:
三角形重心位置如圖4 所示,可通過上述一階矩的運(yùn)算求解得到。采用相似方法可求解其它圖形的重心坐標(biāo)。
圖4 三角形重心示意圖Fig.4 Center of gravity of the triangle
為了驗(yàn)證算法的有效性,通過搭建的智能分揀裝置對(duì)運(yùn)動(dòng)目標(biāo)進(jìn)行抓取實(shí)驗(yàn)。
當(dāng)獲取運(yùn)動(dòng)物體的傳送帶位置信息后,對(duì)運(yùn)動(dòng)控制模塊發(fā)送信號(hào),驅(qū)動(dòng)三軸桁架機(jī)械臂運(yùn)動(dòng)到指定位置對(duì)物體進(jìn)行吸取。
上位機(jī)界面如圖5 所示,左框?yàn)閿z像機(jī)采集到的原圖,右框顯示結(jié)果為物體形狀和此時(shí)重心位置坐標(biāo),同時(shí)可通過速度窗口設(shè)置傳送帶傳送速度。抓取實(shí)物圖如圖6 所示。
圖5 系統(tǒng)上位機(jī)界面Fig.5 Upper computer interface of the system
圖6 目標(biāo)物體抓取圖Fig.6 Grasping diagram of target objects
通過程序調(diào)試進(jìn)行多次實(shí)驗(yàn),物體的識(shí)別成功率在速度為20 mm/s 時(shí)見表1,30 mm/s 時(shí)見表2。
表1 速度為20 mm/s 識(shí)別成功率Tab.1 Recognition success rate at a speed of 20 mm/s
表2 速度為30 mm/s 識(shí)別成功率Tab.2 Recognition success rate at a speed of 30 mm/s
從表1、表2 可以看出,不同形狀物體抓取成功率不同,隨著傳送速度的提升,物體抓取成功率開始下降。
本文利用.NET Framework 作為實(shí)驗(yàn)裝置的開發(fā)平臺(tái),在VS2015 環(huán)境下,使用C#語(yǔ)言作為程序開發(fā)語(yǔ)言,采用EmguCV 中的算法庫(kù)對(duì)運(yùn)動(dòng)物體進(jìn)行識(shí)別。利用Otsu 閾值分割算法自動(dòng)獲取合適閾值,結(jié)合輪廓逼近方法獲取目標(biāo)物體形狀,實(shí)現(xiàn)目標(biāo)物體識(shí)別。通過攝像機(jī)坐標(biāo)和傳送帶坐標(biāo)之間的轉(zhuǎn)換關(guān)系,確定運(yùn)動(dòng)物體重心坐標(biāo)的運(yùn)動(dòng)軌跡,實(shí)現(xiàn)目標(biāo)物體定位,最終實(shí)現(xiàn)分揀。
本系統(tǒng)主要是實(shí)驗(yàn)室演示裝置,實(shí)驗(yàn)中因?yàn)閷?duì)光源處進(jìn)行遮光處理,排除外界光照影響,在實(shí)際工業(yè)應(yīng)用時(shí)可能會(huì)出現(xiàn)因受到外界光照影響導(dǎo)致物體識(shí)別錯(cuò)誤的情況,所以在實(shí)際應(yīng)用中由于光照產(chǎn)生物體誤檢仍亟待進(jìn)一步深入研究。