,,,
(安徽工業(yè)大學(xué) 機(jī)械工程學(xué)院,安徽 馬鞍山 243002)
機(jī)器視覺是人工智能領(lǐng)域內(nèi)正在快速發(fā)展的一個分支,它是利用計算機(jī)模擬生物視覺的技術(shù)。機(jī)器視覺因具有觀察范圍廣,觀察時間長,環(huán)境適應(yīng)能力強(qiáng)等優(yōu)點(diǎn),被廣泛應(yīng)用于汽車,電子等行業(yè)[1-3],但傳統(tǒng)基于PC的機(jī)器視覺系統(tǒng)具有可移植性差,安裝不便等缺點(diǎn)[4],因此迫切需要可用于自動化生產(chǎn)領(lǐng)域的便攜式機(jī)器視覺組件。隨著嵌入式系統(tǒng)性能的進(jìn)一步發(fā)展與提高,許多過去主要憑借PC處理的各種應(yīng)用開始逐漸的傾向于嵌入式平臺,尤其是低端領(lǐng)域的智能相機(jī)和結(jié)構(gòu)功能更為全面的嵌入式視覺主機(jī),文獻(xiàn)[5]將嵌入式系統(tǒng)與機(jī)器視覺控制結(jié)合起來,設(shè)計了基于嵌入式系統(tǒng)的機(jī)器視覺測控系統(tǒng);卲華等[6]設(shè)計基于機(jī)器視覺的嵌入式定位沖孔系統(tǒng),并利用快速Hough變換算法進(jìn)行圖像圓心定位,實現(xiàn)印制電路板的定位沖孔;基于嵌入式的機(jī)器視覺系統(tǒng)繼承了基于PC的機(jī)器視覺系統(tǒng)的優(yōu)勢,并且解決了基于PC的機(jī)器視覺系統(tǒng)在實際應(yīng)用方面存在的不足之處,使機(jī)器視覺系統(tǒng)的性能方面有了一定程度的提升。在運(yùn)動控制技術(shù)與機(jī)器視覺技術(shù)不斷發(fā)展的當(dāng)今,機(jī)器視覺技術(shù)、嵌入式技術(shù)及控制技術(shù)組成的基于嵌入式機(jī)器視覺的控制系統(tǒng),成為機(jī)器視覺發(fā)展與研究的一個新的趨勢。因而,本研究設(shè)計了基于DSP與運(yùn)動控制器的測控系統(tǒng),嘗試將嵌入式機(jī)器視覺技術(shù)應(yīng)用于運(yùn)動控制系統(tǒng),并取得了良好的效果。
機(jī)器視覺與運(yùn)動控制系統(tǒng)平臺分別由圖像處理模塊,控制模塊與通信模塊三個部分組成。該系統(tǒng)平臺采用TI公司的DM642芯片作為本次實驗的圖像處理模塊,其工作主頻更是高達(dá)720 MHz,不僅信息處理能力十分強(qiáng)大,而且開發(fā)周期短、產(chǎn)品穩(wěn)定性較高,是專用于數(shù)字媒體應(yīng)用方面的一款高性能32位定點(diǎn)DSP[7]。通信模塊主要是由PC機(jī)的COM1口以及DSP的RS232接口構(gòu)成,它們分別完成信號的采集和輸出。系統(tǒng)控制模塊分別由固高科技運(yùn)動控制器,伺服電機(jī)以及和其相匹配的臺達(dá)伺服驅(qū)動器等三部分組成,用于控制伺服電機(jī)實現(xiàn)點(diǎn)位運(yùn)動,進(jìn)而驗證運(yùn)動控制器與DSP是否能夠?qū)崿F(xiàn)正常通信,系統(tǒng)平臺如圖1。
圖1 系統(tǒng)平臺
系統(tǒng)上電后,初始化伺服驅(qū)動器與運(yùn)動控制器的參數(shù);其次運(yùn)行PC機(jī)端的C#程序不斷判斷PC機(jī)的COM1口接收到的數(shù)據(jù);然后將圖像處理C程序下載到DSP中;接著運(yùn)行圖像處理程序?qū)CD相機(jī)采集到的圖像進(jìn)行處理,當(dāng)檢測到目標(biāo)后,DSP通過RS232接口發(fā)送數(shù)據(jù)到PC的COM1口。
圖像處理硬件環(huán)境為TI的DM642芯片,軟件環(huán)境為CCS3.3(Code Composer Studio 3.3),編程語言為C語言,本研究將文獻(xiàn)[8]中提出的MATLAB圖像處理算法移植到DSP上,算法流程如圖2。
圖2 圖像處理算法流程
該算法共分為4個步驟進(jìn)行,分別如下:
第一步:開始時,需要先進(jìn)行初始化操作,使用改進(jìn)型的半因果支持域聯(lián)合改進(jìn)型最大化背景預(yù)測對連續(xù)4幀的原始圖像實現(xiàn)預(yù)處理操作,然后把得到的4幀殘差圖像傳送到流水線管道1中;
第二步:其次,對經(jīng)過初始化操作得到的4幀殘差圖像在流水線管道1中作交叉差分運(yùn)算[9],隨后將得到的交叉差分后的圖像進(jìn)行自適應(yīng)閾值分割處理,且將得到的兩幀二值圖像傳送到流水線管道2中。
第三步:接著對流水線管道2中的兩幀二值圖像進(jìn)行邏輯“與”運(yùn)算[10],使用邏輯“與”運(yùn)算的目的是為了增強(qiáng)算法的穩(wěn)定性,消除一些僅在單幀圖像中隨機(jī)出現(xiàn)的干擾噪聲點(diǎn);
第四步:形態(tài)學(xué)開運(yùn)算[11]去除一些比弱小目標(biāo)小的噪聲點(diǎn),同時保留結(jié)構(gòu)元素所不能腐蝕的且保持像素點(diǎn)灰度級和目標(biāo)特性相對不變的點(diǎn)。本研究根據(jù)弱小目標(biāo)的大小選擇1×3的垂直結(jié)構(gòu)元素,并依次對邏輯“與”操作后的圖像進(jìn)行腐蝕和膨脹運(yùn)算,并得到弱小目標(biāo)的檢測結(jié)果。
其中,公式(1)和公式(2)所示的為自適應(yīng)閾值分割算法的表達(dá)式:
(1)
式中,f(m,n)為圖像像素點(diǎn)(m,n)經(jīng)過預(yù)處理后的灰度值,s(m,n)為圖像像素點(diǎn)(m,n)經(jīng)過自適應(yīng)閾值分割后的灰度值,其中T表示使用自適應(yīng)閾值法確定的閾值:
T=mean+λσ
(2)
式(2)中,mean為圖像的灰度均值,σ為圖像預(yù)處理后的灰度均方差,p為閾值分割加權(quán)系數(shù),一般可以取2~15,本次實驗p取12。
測控系統(tǒng)的通信主要指圖像處理模塊DSP與控制模塊運(yùn)動控制器之間的通信,數(shù)據(jù)發(fā)送的功能的實現(xiàn)主要依靠圖像處理模塊DSP中的RS232通信,檢測到目標(biāo)的DSP,可以把信號傳送給PC機(jī),該項功能也可以通過把數(shù)據(jù)預(yù)先安放到DSP中加以實現(xiàn),在利用算法檢測到目標(biāo)后,預(yù)先安置在DSP串口中的數(shù)據(jù)即被發(fā)送給PC機(jī),運(yùn)動控制器接收到的數(shù)據(jù)是通過PC機(jī)串口進(jìn)行讀取獲得的,從而完成控制伺服電機(jī)進(jìn)行點(diǎn)位運(yùn)動,DSP發(fā)送數(shù)據(jù)流程如圖3所示。
圖3 數(shù)據(jù)發(fā)送流程
1)像素點(diǎn)的灰度值判斷。經(jīng)過算法處理后得到的圖像是一幀灰度值為0和255的二值圖像,其中0表示為黑色,255表示為白色,如果經(jīng)過圖像處理后的圖像中含灰度值為255的像素點(diǎn),則可以判斷出檢測結(jié)果中含有弱小目標(biāo)。本文處理的圖像共167160個像素點(diǎn),其圖像大小為420 pixel×398 pixel;
2)數(shù)據(jù)發(fā)送。對圖像像素點(diǎn)的處理采用遍歷的方式,體現(xiàn)到程序中即為循環(huán)掃描的方式,當(dāng)像素點(diǎn)灰度值為0時,程序會繼續(xù)判斷下一個像素點(diǎn)的灰度值,如果像素點(diǎn)的灰度值為255,則向串口發(fā)送數(shù)據(jù),當(dāng)DSP發(fā)送的數(shù)據(jù)被PC機(jī)接收后,則控制電機(jī)完成點(diǎn)位運(yùn)動,本文發(fā)送的數(shù)據(jù)為16進(jìn)制的02。
運(yùn)動控制系統(tǒng)硬件采用的是固高科技公司GTS-400系列運(yùn)動控制器,其主要控制單元由DSP與FPGA兩部分構(gòu)成,能夠?qū)崿F(xiàn)高速、高精度的點(diǎn)位運(yùn)動控制[12]。運(yùn)動控制硬件系統(tǒng)主要是由運(yùn)動控制器、臺達(dá)ASDA-AB伺服驅(qū)動器及伺服電機(jī)組成。運(yùn)動控制器使用PCI總線及多軸端子板與臺達(dá)ASDA-AB伺服驅(qū)動器進(jìn)行連接,再經(jīng)由伺服驅(qū)動器連接伺服電機(jī)共同構(gòu)成了運(yùn)動控制硬件系統(tǒng)。軟件通過Visual Studio 2010編程,編程語言為C#語言。控制系統(tǒng)主要實現(xiàn)的功能是響應(yīng)PC機(jī)接收到的數(shù)據(jù)16#02,并控制伺服電機(jī)完成點(diǎn)位運(yùn)動,控制系統(tǒng)對PC機(jī)接收數(shù)據(jù)的響應(yīng)方式為查詢方式,即運(yùn)動控制器輪詢PC機(jī)COM1口的數(shù)據(jù),軟件控制界面如圖4所示。
圖4 C#控制界面
1)初始化。程序開始運(yùn)行后,先對運(yùn)動控制器進(jìn)行復(fù)位,然后對運(yùn)動控制器進(jìn)行初始化,載入配置文件到運(yùn)動控制器,對軸的報警和限位進(jìn)行清除,最后對軸的位置信息進(jìn)行清零操作。
2)點(diǎn)位運(yùn)動參數(shù)設(shè)置。先對軸號進(jìn)行選擇,文中試驗選擇的是軸1,速度設(shè)置為100 pulse/ms,步長設(shè)置為200000 pulse,減速度設(shè)置為0.5 pulse/ms2,加速度設(shè)置為0.5 pulse/ms2,平滑時間設(shè)置為0 ms;
3)伺服使能及啟動運(yùn)動。此時程序不停輪詢接收數(shù)據(jù)區(qū)發(fā)送過來的數(shù)據(jù),當(dāng)數(shù)據(jù)是02時,系統(tǒng)啟動點(diǎn)位運(yùn)動,否則,程序?qū)?shù)據(jù)區(qū)接收的數(shù)據(jù)進(jìn)行查詢操作;
4)運(yùn)動狀態(tài)的監(jiān)測。位置和速度兩個參數(shù)均為運(yùn)動監(jiān)測的對象,在啟動運(yùn)動之前,先完成點(diǎn)位運(yùn)動位置和速度參數(shù)的規(guī)劃,啟動運(yùn)動開始之后,再通過程序界面顯示的實際速度與位置來對控制系統(tǒng)執(zhí)行情況進(jìn)行判斷。
DM642芯品為本次實驗圖像處理部分的主處理器,利用C語言編寫檢測弱小目標(biāo)的算法程序,通過DSP集成開發(fā)軟件Code Composer Studio 3.3進(jìn)行移植、編譯、調(diào)試及優(yōu)化,將調(diào)試無誤的算法程序下載到DSP中,對目標(biāo)出現(xiàn)前、出現(xiàn)后的兩幀原始圖像進(jìn)行處理,利用嵌入式機(jī)器視覺單元檢測復(fù)雜背景下的弱小目標(biāo),原始圖像的來源同文獻(xiàn)[13]。圖5、圖6分別為目標(biāo)出現(xiàn)前、出現(xiàn)后的原始圖像。
圖5 目標(biāo)出現(xiàn)前圖像A 圖6 目標(biāo)出現(xiàn)出后圖像B
圖7為本文算法檢測結(jié)果的三維灰度圖,灰度較高的部分即對應(yīng)圖7白色方框中的弱小目標(biāo),原始圖像的背景和噪聲會對目標(biāo)的檢測產(chǎn)生一定的干擾,目標(biāo)經(jīng)過預(yù)處理、幀差、自適應(yīng)閾值分割、邏輯“與”、形態(tài)學(xué)運(yùn)算等處理操作后,會使其干擾得到有效的抑制,且能夠成功檢測出目標(biāo)。
圖7 檢測結(jié)果的三維灰度圖
RS232通信結(jié)果如圖8所示,規(guī)劃速度和實際速度由狀態(tài)監(jiān)測的速度和位置參數(shù)得知并且均是100 pulse/ms;規(guī)劃位置和實際位置基本保持一致,分別為200000 pulse和200001 pulse,伺服電機(jī)在預(yù)先設(shè)定的參數(shù)下實現(xiàn)了點(diǎn)位運(yùn)動,且接收數(shù)據(jù)區(qū)的PC機(jī)端接收的數(shù)據(jù)為16#02, 與DSP中發(fā)送的數(shù)據(jù)相同,成功在DSP與PC機(jī)之間實現(xiàn)了RS232通信。
圖8 RS232通信結(jié)果
基于RS232通信的嵌入式機(jī)器視覺測控系統(tǒng),能夠準(zhǔn)確、快速的檢測目標(biāo);并能對圖像處理模塊的信號輸出做出快速響應(yīng),進(jìn)而精確控制伺服電機(jī)實現(xiàn)點(diǎn)位運(yùn)動,順利完成對目標(biāo)的檢測、通信、控制一體功能。對嵌入式機(jī)器視覺技術(shù)應(yīng)用于運(yùn)動控制系統(tǒng)具有實際意義。
參考文獻(xiàn):
[1] 章 煒. 機(jī)器視覺技術(shù)發(fā)展及其工業(yè)應(yīng)用[J]. 紅外, 2006, 27(2):11-17.
[2] 顏發(fā)根, 劉建群, 陳 新, 等. 機(jī)器視覺及其在制造業(yè)中的應(yīng)用[J]. 機(jī)械制造, 2004, 42(483):28-30.
[3] 張五一, 趙強(qiáng)松, 王東云. 機(jī)器視覺的現(xiàn)狀及發(fā)展趨勢[J]. 中原工學(xué)院學(xué)報, 2008, 19(1):9-12.
[4] 唐向陽, 張 勇, 李江有,等. 機(jī)器視覺關(guān)鍵技術(shù)的現(xiàn)狀及應(yīng)用展望[J]. 昆明理工大學(xué)學(xué)報(自然科學(xué)版), 2004, 29(2):36-39.
[5] 周 煜. 嵌入式機(jī)器視覺測控系統(tǒng)設(shè)計研究[J]. 電腦知識與技術(shù),2010, 6(8) :1987-1988.
[6] 邵 華, 邱元芳. 基于機(jī)器視覺的嵌入式定位沖孔系統(tǒng)設(shè)計[J]. 光學(xué)儀器,2013,35(6):36-42.
[7] 合眾達(dá)電子. SEED-VPM642用戶指南[Z]. 2008.
[8] 翟健健, 許四祥, 王忍寶,等. 基于改進(jìn)半因果支持域的鎂熔液第一氣泡檢測[J]. 材料科學(xué)與工藝, 2016, 24(6).
[9] 許四祥, 孫 杰, 郭宏晨. 基于改進(jìn)背景預(yù)測和流水線的弱小目標(biāo)檢測[J]. 華中科技大學(xué)學(xué)報(自然科學(xué)版), 2012, 40(8):129-132.
[10] 郭宏晨, 許四祥, 孫 杰, 等. 基于序列圖像的鎂熔液第一氣泡檢測[J]. 鑄造, 2013, 62(11):1093-1095.
[11] 何東健. 數(shù)字圖像處理[M]. 西安:西安電子科技大學(xué)出版社, 2003,175-193.
[12] GTS四軸運(yùn)動控制器用戶手冊_RB.A_20151231.pdf[EB/OL]. http://www.googoltech.com.cn/d/file/Man -ual/GTS-VB/GTS-VB%204%20axis%20user%20manual.pdf, 2015-12-31.
[13] 侍海東, 許四祥, 王忍寶,等. 基于DM642圖像處理的鎂熔液第一氣泡檢測[J]. 鑄造, 2015, 64(5):437-439.