摘 要:本文介紹了基于機(jī)器視覺的輪廓零件自動(dòng)定位尋位加工方法。該研究在可視化操作平臺(tái)上,采用松弛復(fù)原圖像,邊緣特征抽取算法,可對(duì)任意定位的輪廓零件自動(dòng)生成數(shù)控加工程序。仿真試驗(yàn)表明,該研究能滿足無夾具數(shù)控加工的要求。
關(guān)鍵字:機(jī)器視覺,邊緣特征,加工軌跡,松弛復(fù)原,輪廓零件
[b][align=center]Research of Numerical Control System for Machining without Special Fixture
Based on Machine Vision[/align][/b]
Deng Shaping, Wu Xiaojun, Ding Lijun, Zhang yun
Abstract:This paper introduces a method that the position of outline work parts can be discerned and defined automatically based on machine vision. On the visible operating platform, the image edge of the outline work parts placed any-angle is restarted and its characteristic is abstracted by relaxes recovers algorithm. The machining program of the work parts for numerical control machine can be produced automatically based on the edge characteristic. The simulation experiment shows that the research can satisfy the demand of NC machining without special fixture.
Keywords:machine vision, edge characteristic, process path, relaxes recovers, outline work parts.
1 引言
發(fā)達(dá)工業(yè)國(guó)家已將柔性制造系統(tǒng)(FMS)作為機(jī)械制造業(yè)的主要發(fā)展方向,而組合夾具是該領(lǐng)域的前沿研究課題之一[1]。本系統(tǒng)針對(duì)輪廓零件,采用機(jī)器視覺圖像采集并識(shí)別輪廓,直接對(duì)任意位姿的工件生成數(shù)控加工源程序,實(shí)現(xiàn)了數(shù)控加工無夾具定位自動(dòng)尋位加工。在Visual C++ 6.0開發(fā)平臺(tái)上,該系統(tǒng)實(shí)現(xiàn)了圖像采集、自尋位、源代碼生成、模擬走刀全過程。該系統(tǒng)還可預(yù)見刀具與工件相撞、過切等問題,能進(jìn)行參數(shù)自動(dòng)設(shè)定、刀具研究、刀具原理數(shù)據(jù)的動(dòng)態(tài)處理和顯示,加工過程的可視化仿真演示。
2 系統(tǒng)結(jié)構(gòu)
本系統(tǒng)通過600線WAT-902系列黑白CCD和手動(dòng)光圈CS接口T2314FICS-3百萬像素工業(yè)自動(dòng)化鏡頭對(duì)工作臺(tái)上任意位姿的工件進(jìn)行拍攝,然后將視頻模擬信號(hào)輸入MV-20工業(yè)圖像采集卡(該圖像采集卡具有獨(dú)特的視頻濾波技術(shù),高清晰度和顯示速度,4通道切換高質(zhì)量黑白、彩色圖像),模擬信號(hào)被轉(zhuǎn)化為數(shù)字信號(hào),輸入通用PC機(jī)進(jìn)行圖像處理,提取工件輪廓邊緣特征點(diǎn)并以文本格式存儲(chǔ)。
本系統(tǒng)能完成機(jī)器視覺系統(tǒng)實(shí)現(xiàn)對(duì)工作臺(tái)上工件位姿的自動(dòng)采集;結(jié)合圖像處理相關(guān)算法,進(jìn)行工件輪廓邊緣特征信息的提取;在Visual C++應(yīng)用程序的主界面上用二維平面圖形模擬數(shù)控機(jī)床加工定位及走刀動(dòng)畫演示;按照提取的工件輪廓將設(shè)備坐標(biāo)轉(zhuǎn)化為數(shù)控機(jī)床所能識(shí)別的NC語(yǔ)言。
3 機(jī)器視覺下工件位姿采集及識(shí)別過程
機(jī)器視覺系統(tǒng)以計(jì)算機(jī)為中心,由視覺傳感器、高速圖像采集系統(tǒng)及具有處理圖像功能的專用系統(tǒng)或通用PC機(jī)等模塊構(gòu)成,能自動(dòng)獲取物體圖像并對(duì)其特征量進(jìn)行處理、分析和測(cè)量、定性分析和定量解釋,從而得到有關(guān)目標(biāo)物體的某種認(rèn)識(shí)并做出相應(yīng)的決策。
3.1 機(jī)器視覺系統(tǒng)信息來源
視覺傳感器(CCD)是獲取機(jī)器視覺信息的主要來源。CCD表面用T2314FICS-3百萬像素工業(yè)自動(dòng)化鏡頭(手動(dòng)光圈CS接口)成像,將光能轉(zhuǎn)化為電壓。當(dāng)具有適當(dāng)波長(zhǎng)的光量子撞擊裝置的特定材料時(shí),產(chǎn)生一個(gè)帶電量子并停留在產(chǎn)生的區(qū)域內(nèi),在光柵掃描的水平消隱時(shí)刻,計(jì)算機(jī)從新一行的電壓信號(hào)編碼上獲得亮度信息,光柵掃描的回掃中產(chǎn)生有效視頻。
3.2 采樣和量化過程
檢測(cè)器上的電荷通過一個(gè)電阻轉(zhuǎn)化成電壓并放大,模擬到數(shù)字的轉(zhuǎn)換器實(shí)現(xiàn)該信號(hào)轉(zhuǎn)化成數(shù)字表示,同時(shí)執(zhí)行采樣和量化兩個(gè)功能。由于數(shù)字圖像是用光柵掃描及采樣獲取的,因此在時(shí)間和空間上是一一對(duì)應(yīng)的,須將采樣信號(hào)表示成相對(duì)于圖像信號(hào)頂部垂直消隱時(shí)刻的方式,這種時(shí)間關(guān)系與屏幕上某個(gè)特定位置一一對(duì)應(yīng)。量化過程將像素的灰度變換成離散的整數(shù)值的操作,量化位數(shù)與圖像質(zhì)量直接相關(guān)??紤]到計(jì)算機(jī)內(nèi)操作的方便性,本系統(tǒng)采用8位量化,圖像像素的灰度值在0~255之間。
3.3 圖像生成機(jī)制
首先將點(diǎn)(x,y)處的亮度定義成兩個(gè)空間變量的理想函數(shù)f(x,y),圖像質(zhì)量退化后得到觀測(cè)圖像g(x,y), g(x,y)=D(f(x,y)), 。拍攝靜止的相同物體時(shí),噪聲會(huì)隨時(shí)隨機(jī)出現(xiàn),且每一個(gè)瞬間,噪聲的位置和大小都有所不同。圖像噪聲包括隨機(jī)噪聲和相干噪聲。前者表現(xiàn)為麻點(diǎn)干擾,后者表現(xiàn)為網(wǎng)紋干擾。本系統(tǒng)為線性位移不變系統(tǒng),原始圖像f(x,y)和噪聲圖像n(x,y)都是平穩(wěn)隨機(jī)場(chǎng),噪聲n(x,y)是均值為0且和f(x,y)不相關(guān)的加性噪聲。除了確定性畸變算子D外,還有加性噪聲n的干擾,則線性位移不變圖像退化的一般模型是一個(gè)畸變算子D與隨機(jī)噪聲相迭加g = D(f)+n,將f、n及g按相同間隔采樣,產(chǎn)生相同的陣列。用像素點(diǎn)的集合表示定義f、n及g,寫成形如[f[sub]1[/sub],f[sub]2[/sub],…,f[sub]N[/sub]][sup]T[/sup]像素列向量的形式。隨后得到觀測(cè)圖形g,對(duì)f進(jìn)行最佳估計(jì),即復(fù)原(模糊的逆問題),圖像復(fù)原處理的主要目的是去除干擾和模糊,恢復(fù)圖像的本來面目。選取準(zhǔn)則函數(shù):
此函數(shù)是與度量有關(guān)的噪聲項(xiàng)和與真實(shí)圖像有關(guān)的先驗(yàn)項(xiàng)之和,分別取決于觀測(cè)數(shù)據(jù)與未知圖像。將f視為概念上的函數(shù),在采樣點(diǎn)之間賦值,通過插值求解f。接著進(jìn)行圖像特征抽取。邊緣是圖像中的工件與背景之間的交界,也是圖像灰度及顏色急劇變化的地方。由于傳感元件的低頻特性,工件與背景之間的邊緣存在著模糊部分,灰度變化量小。用逐漸非凸(GNC)方法處理弱隔膜情況,通過對(duì)采用針對(duì)邊緣的存在的目標(biāo)函數(shù)最小化,即
,找到具有尖銳邊緣的圖像。其中
是圖像在點(diǎn)i上的梯度,li表示了f在第i個(gè)像素上的不連續(xù)性,其值可從0取到1,當(dāng)li = 1時(shí),點(diǎn)i處像素即為邊緣點(diǎn),fi表示第i個(gè)像素的亮度。去除不連續(xù)性因素,將問題簡(jiǎn)化只含有連續(xù)變量的情況
算子,返回一個(gè)針對(duì)圖像局部“邊緣”的標(biāo)量度量。V函數(shù)是GNC算法先驗(yàn)?zāi)芰繄D中的截頂拋物線,以遞增的方式懲罰圖像中梯度的發(fā)生。由于函數(shù)
通常為非凸的,可具有多個(gè)最小值,無法通過梯度下降等技術(shù)實(shí)現(xiàn)最小化,故采用如下分段平滑函數(shù)來逼進(jìn)V:
其中t等價(jià)于邊緣梯度的大小,C*是一個(gè)標(biāo)量常數(shù)
,
。此時(shí)結(jié)合“退火”的算法,實(shí)現(xiàn)對(duì)預(yù)先先驗(yàn)形狀的連續(xù)的逐步逼近,在采用的GNC方法中,保留了先驗(yàn)項(xiàng)的原始形狀,當(dāng)p越小,近似結(jié)果越接近理想的先驗(yàn)?zāi)芰?。隨著p從1下降到0連續(xù)地跟蹤局部最小值,平穩(wěn)地改變V*直至精確逼近V,同時(shí)生成一個(gè)先驗(yàn)?zāi)芰孔濉T诖穗A段對(duì)物體進(jìn)行度量,提取多個(gè)度量值,形成特征向量。這種被精簡(jiǎn)的信息,表達(dá)了后續(xù)理解和匹配的知識(shí)。最后在后續(xù)處理中經(jīng)過先腐蝕,再膨脹消除椒鹽噪聲,經(jīng)過處理,白色孤立點(diǎn)噪聲在腐蝕時(shí)被消除。如圖1、圖2、圖3所示:
4 仿真軟件構(gòu)架
4.1 VC++程序結(jié)構(gòu)及工程文件的建立
4.1.1 界面設(shè)計(jì)
本研究項(xiàng)目的大多數(shù)Visual C++程序都是在該類庫(kù)基礎(chǔ)上構(gòu)造的。為使刀具行為在一個(gè)固定大小的區(qū)域內(nèi)被模擬,并在另外的視圖窗口內(nèi)可同時(shí)看到相應(yīng)的NC語(yǔ)言,選擇切分窗口的同時(shí)希望保持視圖間分隔線固定。從CSplitterWnd派生出一個(gè)類CFixSPlitterWnd來實(shí)現(xiàn)窗體分割,然后通過響應(yīng)鼠標(biāo)的WM_MOUSEMOVE、WM_LBUTTONDOWN和WM_SETCURSOR等消息,改變鼠標(biāo)行為,使其在分割窗體內(nèi)不再顯示雙箭頭形狀,且不具備拖動(dòng)功能。自此,窗體的客戶區(qū)分為兩個(gè)固定的部分,一部分對(duì)應(yīng)AppWizard默認(rèn)的視圖類,另一部分對(duì)應(yīng)一個(gè)新增的表單視圖類CFormView的派生類。
4.1.2 命令及數(shù)據(jù)的輸入
菜單功能實(shí)現(xiàn)命令輸入,在主選單中添加選單命令以打開數(shù)據(jù)輸入對(duì)話框及進(jìn)行其他操作。打開選單編輯器,插入“選項(xiàng)”選單并在“選項(xiàng)”選單中添加選單選項(xiàng)“文本”、“成型”、“走刀”、“指令”、“刷新”,同時(shí)在加速鍵編輯器中建立相應(yīng)的加速鍵表?xiàng)l目,并賦給與選單選項(xiàng)相同的ID號(hào)。程序運(yùn)行過程中,結(jié)合實(shí)際使用“文本”、“成型”、“走刀”、“指令”、“刷新”選單選項(xiàng)ENABLE屬性和GRAYED屬性互鎖使得讀入數(shù)據(jù)后即可形成指令,工件定位后可更換,走刀模擬過程中不可中斷以免資源浪費(fèi),走刀完成后刷新即可循環(huán)實(shí)現(xiàn)等。
通過使用CFileDialog類在程序中嵌入的通用文件對(duì)話框,以便實(shí)現(xiàn)Windows標(biāo)準(zhǔn)的“打開”對(duì)話框,選擇基于機(jī)器視覺的圖像采集進(jìn)行零件的輪廓識(shí)別后零件頂點(diǎn)的存儲(chǔ)路徑,然后以相同的模式讀出。
4.1.3 走刀的模式選擇
添加走刀方式對(duì)話框資源,編輯對(duì)話框。添加標(biāo)題為“走刀路徑”和“走刀速度”的成組框控件,并分別在其中添加了“內(nèi)圓加工”、“外圓加工”兩種走刀路徑和“快”、“慢”兩種走刀速度的單選鈕組,大致模擬數(shù)控機(jī)床加工工件的要求。選擇加工路徑,彈出設(shè)置背吃刀量的對(duì)話框,設(shè)置完成后點(diǎn)擊“開始”按鈕,即開始走刀。
4.2 效果
定時(shí)器是按規(guī)定時(shí)間進(jìn)行周期調(diào)用的一種方法,類似于DOS下的定時(shí)中斷。使用CWin::SetTime()函數(shù)創(chuàng)建定時(shí)器有兩種方式:其一,允許指定靜態(tài)函數(shù),在定時(shí)器超時(shí)的情況下被調(diào)用;其二,超時(shí)時(shí)向調(diào)用SetTime()的窗口發(fā)送WM_TIMER窗口消息,調(diào)用消息處理函數(shù)OnTimer()做相應(yīng)處理。程序在視窗類中的OnOptionsGo()函數(shù)中調(diào)用定時(shí)器設(shè)置函數(shù)。通過周期調(diào)用產(chǎn)生刀頭不斷旋轉(zhuǎn)和走刀的動(dòng)畫效果。限于篇幅,消息響應(yīng)函數(shù)不再一一詳述實(shí)現(xiàn)過程,相關(guān)代碼詳見源程序。
5 結(jié)論
本系統(tǒng)采用了執(zhí)行松弛運(yùn)算的圖像復(fù)原和圖像特征抽取的方法,提高了邊緣檢測(cè)的效果,實(shí)現(xiàn)了平滑去噪與抑制退化,為圖像分割抽取出更為清晰的特征。該圖像處理軟件在Visual C++6.0的開發(fā)平臺(tái)下,通過IFS中的圖像訪問子程序開發(fā),并將識(shí)別出的工件頂點(diǎn)以固定模式寫入.txt格式的文本中。再以相同模式從該文本中讀出頂點(diǎn),并在PC機(jī)上以軟件模擬仿真硬件的行為,提供的數(shù)控機(jī)床加工過程與實(shí)際加工過程基本一致,可由此預(yù)見加工過程中出現(xiàn)的種種問題。所采用的可去除噪聲的GNC算法中,非線性運(yùn)算是成功的絕對(duì)要素,一個(gè)線性運(yùn)算加上后續(xù)的適當(dāng)非線性化,可以計(jì)算任意一種映像,這對(duì)于GNC算法將用簡(jiǎn)單直接的神經(jīng)元網(wǎng)絡(luò)實(shí)現(xiàn)有著重要意義。隨著數(shù)控機(jī)床向柔性化和無人化發(fā)展,功能集成化的水平更高地體現(xiàn)在工件自動(dòng)定位等功能上。
6 本文作者創(chuàng)新點(diǎn)
6.1 本系統(tǒng)采用松弛算法,實(shí)踐證實(shí)該算法是圖像邊緣檢測(cè)的優(yōu)化算法,抽取出更為清晰的圖像特征,可達(dá)到數(shù)控加工精度的要求。
6.2 本系統(tǒng)作為數(shù)控系統(tǒng)的視覺系統(tǒng),可實(shí)現(xiàn)無夾具定位、刀具自尋位加工及無人診斷,應(yīng)用于柔性制造系統(tǒng)可大大提高系統(tǒng)實(shí)時(shí)性,精確性及高效性。
參考文獻(xiàn)
[1].李伯儒等,柔性制造系統(tǒng)中組合夾具研究[D],《先進(jìn)制造技術(shù)論文》,www.e-work.bj.cn.;
[2].孫即祥,圖象處理[M],科學(xué)出版社,2004;
[3].王俊修,用VC++.Net實(shí)現(xiàn)退化圖像的恢復(fù)[J],《微計(jì)算機(jī)信息》,(2004)04,第82頁(yè).