計算機(jī)視覺的應(yīng)用大致上可以分成定位(Location)、量測(Measurement)、識別(Recognition)、缺陷檢測(Defect Inspection)四大類,其中以定位的應(yīng)用最為廣泛,機(jī)器視覺系統(tǒng)同時涵蓋了多項(xiàng)功能,例如檢視主機(jī)板上的電子組件。機(jī)器視覺也可以用來控制機(jī)械手臂,在機(jī)械手臂上加裝CCD,利用影像辨識的定位,帶動機(jī)械手臂來做一些高危險性的醫(yī)療研究,例如:病毒研究、藥物混合等,都可以用這種方式來做控制,除了精準(zhǔn)之外,對人類的生命也比較有安全保障。 影像定位后的坐標(biāo)轉(zhuǎn)換 市面上影像比對的函數(shù)庫(Library)很多,使用者可以自行選用合適的函數(shù)庫。本文以下所提的系統(tǒng)采用Euresys公司開發(fā)的eVision EasyMatch,這是一種基于灰度相關(guān)性的圖像匹配函數(shù)庫,速度非常快,而且能夠達(dá)到次像素(sub-pixel)精度的匹配結(jié)果。對于旋轉(zhuǎn)、比率變化(縮/放)和平移等,都能精確找到模板圖像(Golden Image)的位置。故本文僅對影像定位后的二維坐標(biāo)產(chǎn)生的“位移”與“旋轉(zhuǎn)”做探討(見圖1)。 遇到同時發(fā)生坐標(biāo)位移&旋轉(zhuǎn)時,先計算位移,再套用旋轉(zhuǎn)的公式,即可算出最后的結(jié)果。 系統(tǒng)架構(gòu) 本系統(tǒng)為介紹如何設(shè)計出結(jié)合“機(jī)械運(yùn)動”與“計算機(jī)視覺”的自動化定位系統(tǒng)。 基本架構(gòu) ■ GEME-3000主控制器:含HSL控制卡,安裝Windows?XP操作系統(tǒng) ■ 3-Axis定位平臺:三菱伺服馬達(dá)+滾珠螺桿 ■ 運(yùn)動控制器:HSL-4XMO控制模塊。 ■ 計算機(jī)視覺組件:使用IEEE1394 CCD采集影像,利用Euresys eVision的EasyMatch進(jìn)行影像比對(Pattern Match),作定位偏移的補(bǔ)正計算。 系統(tǒng)流程 本系統(tǒng)為介紹如何設(shè)計出結(jié)合“機(jī)械運(yùn)動”與“計算機(jī)視覺”的自動化定位系統(tǒng)。 系統(tǒng)校正 ■ Mitsubishi驅(qū)動器調(diào)校:10,000 pulse/roll ■ 滾珠螺桿的螺距vs. Pulse/Roll: ■ 如,螺距=10mm/roll,10,000 pulse/roll —>1um/pulse ■ F.O.V.(Field of View)的選定:F.O.V.要大于定位點(diǎn)的大小,太小—>可接受的“初步定位”誤差變小;太大—>因定位點(diǎn)影像太小,影像定位誤差大。 圖2:系統(tǒng)架構(gòu)實(shí)機(jī)圖 ■ CCD工作距離的選定:工作距離要大于打孔頂針,以免對焦時打孔頂針撞到工件。當(dāng)F.O.V.及工作距離確認(rèn)后,即求出LENS & Ext. Ring。 教導(dǎo)作業(yè) ■ 啟動系統(tǒng)3軸回Home,待3軸回定位后,再由人工將工件置于3軸之定位平臺上并作“初步定位”; ■ 手動控制Z軸緩慢下降,使其接近定位平臺上方(約0.5"1.0mm); ■ 手動控制X/Y軸,使打孔頂針剛好在工件第一個孔位上方;再將Z軸緩慢下降,使其插入第一個孔位內(nèi)。如定位不準(zhǔn),可以手動移動工件,使其定位更準(zhǔn)確。 ■ 精確定位后,將Z軸上升至CCD的實(shí)時影像可看到完整“定位點(diǎn)”后,執(zhí)行下列“流程圖”。 自動定位 ■ 由人工將工件置于3軸定位平臺上,作“初步定位”后并啟動本系統(tǒng); ■ 系統(tǒng)會驅(qū)動3軸定位平臺將CCD移至定位點(diǎn)上方(2個不同位置),取像并利用已“教導(dǎo)”之標(biāo)準(zhǔn)影像做“影像比對”作業(yè), ■ “初步定位”之偏移量(Shift X/Y)及旋轉(zhuǎn)角度(Rotation Angle); tx = GoldeXY[CCD_Find] - m_Find.GetCenterX(); ty = GoldeXY[CCD_Find][0] - m_Find.GetCenterY(); if (CCD_Find==0) {//第一次定位 shiftx = ZeroX - tx*Calibration; shifty = CCD_Y - ty*Calibration;} else { //第二次定位 dx = CCD_Locate[0] - tx*Calibration; dy = CCD_Y - ty*Calibration; angle = atan2( dy - shifty, shiftx-dx); CalNewLocate(angle, shiftx, shifty);} ■ 通過“極坐標(biāo)轉(zhuǎn)換”,重新計算工件上所有孔位的新坐標(biāo)(Point Table)。 void CalNewLocate(F64 angle, F64 shiftx, F64 shifty) { int i; F64 P[TOTAL_POINT*2]; F64 t; for (i=0; i{ //極坐標(biāo)轉(zhuǎn)換 P[i*2] = sqrt( OrgLocate[i*2] * OrgLocate[i*2]+ OrgLocate[i*2+1] * OrgLocate[i*2+1]); P[i*2+1] = atan2( OrgLocate[i*2], OrgLocate[i*2+1])+ angle; } for (i=0; i t = P[i*2]*sin(P[i*2+1]); NewLocate[i*2] = (shiftx + t)*SCALE_X; t = P[i*2]*cos(P[i*2+1]); NewLocate[i*2+1] = (shifty + t)*SCALE_Y;}} 結(jié)語 機(jī)器視覺系統(tǒng)應(yīng)用在現(xiàn)今的工業(yè)上,不但大幅的提升了工業(yè)的生產(chǎn)力,而且增加了使用者的能力。機(jī)器視覺系統(tǒng)適用在哪些領(lǐng)域中: ■ 需要顯微鏡或放大鏡配合的工作,長期使用放大工具對視力將會造成很大的損害,且操作人員的素質(zhì)也成為檢驗(yàn)上不定的因素。 ■ 高危險工作環(huán)境,例如高溫、低溫、真空、高壓、高噪音、高量輻射、高電壓、大電流的工作環(huán)境。 ■ 重復(fù)性工作,一成不變的工作容易造成操作人員的倦怠,容易產(chǎn)生疏忽而受傷,或有怠工的現(xiàn)象,而機(jī)器視覺能二十四小時無休止的工作,且能在高速下執(zhí)行檢查,而檢視的準(zhǔn)確度也能控制在較穩(wěn)定的程度之內(nèi)。 ■ 需要快速處理的狀況,如軍事武器操控,實(shí)時、大量的生產(chǎn)線。 ■ 高精確性工作,如量測、定位、對象判別。 |