一、 圖像采集卡的選擇
儀表盤的外形尺寸為220mm×82mm,要求測量精度不低于0.13mm。綜合檢測精度、檢測速度和成本要求,系統(tǒng)選擇NI 1394圖像采集卡,配合SONY 1394 CCD彩色攝像機(分辨率為1024×768), 這樣視覺系統(tǒng)的視場范圍FOV=118mm×88.5mm,像素精度pixel accuracy= 118÷1024=0.1152mm/pixel,完全滿足系統(tǒng)測量的尺寸精度要求。
二、 掃描區(qū)域劃分
根據(jù)儀表盤的尺寸、目標特征的相關(guān)性和視覺系統(tǒng)FOV的范圍,將儀表盤劃分為左、中、右3個檢測區(qū)域。加上起始位置共有4個位置。攝像機在X/Z軸上運動,被測儀表盤在Y軸上運動,X/Y軸的運動完成鏡頭對目標的對準,Z軸的運動完成對目標的聚焦。在每個檢測位置采集的圖像分別以中間的LED窗口即AUTO LED、OFF LED、Defrost LED的中心為該幅圖像的坐標原點。
三、 系統(tǒng)總體結(jié)構(gòu)設(shè)計
以計算機系統(tǒng)來完成圖像的采集、處理、判斷、文件I/O和用戶使用界面,同時作為上位計算機通過串口對PLC進行控制;以PLC系統(tǒng)來完成運動控制、I/O控制。計算機系統(tǒng)的框圖如下:
上位鏈接的參數(shù)設(shè)置:波特率:115200; 7位數(shù)據(jù)位;偶校驗;2位停止位。
PLC的系統(tǒng)框圖如下:
通過計算機系統(tǒng)與PLC系統(tǒng)協(xié)同工作,各司其職,充分發(fā)揮各自的特長,使系統(tǒng)的性能得以優(yōu)化。
四、 圖像采集
NI提供兩種標準的圖像采集vi程序,用戶可以直接調(diào)用:
1.單幀圖像采集1394-snap-acquire:即每次只采集1幀圖像。在本系統(tǒng)的全自動測量過程中,共有三個被測區(qū)域,每個區(qū)域又有三種照明模式,所以一共需要運行9次單幀圖像采集程序。
2.連續(xù)圖像采集1394-grab-acquire:即連續(xù)實時采集圖像。在本系統(tǒng)的運動位置設(shè)置模塊里,需要實時觀測鏡頭與被測目標的相對位置及聚焦情況,然后保存各個位置,所以使用了連續(xù)圖像采集模式。
五、 圖像處理
如上所述,在全自動測量過程中,共采集9幀圖像,每幅圖像都對應(yīng)一個圖像處理程序,來完成對目標特征的測量和判斷。步驟如下:
1.開辟圖像緩沖區(qū)
在圖像處理中,需要對圖像做多次變換,因此需開辟多個圖像緩沖區(qū)來存儲圖像數(shù)據(jù)。本系統(tǒng)中共設(shè)置100個圖像緩沖區(qū),即image buffer0~buffer99, 其中buffer0為系統(tǒng)實時圖像緩沖區(qū);buffer1~buffer51分別存儲9幀圖像的彩色原圖、Intensity 圖層、Red圖層、Green圖層、Blue圖層、Mask圖層、Overlay圖層等作為歷史圖像數(shù)據(jù),可以和測量結(jié)果數(shù)據(jù)相對照;其余為臨時圖像緩沖區(qū),為避免與歷史圖像緩沖區(qū)發(fā)生沖突,從buffer99開始向下使用。本系統(tǒng)只使用了12個臨時buffer, 即buffer99~ buffer88,buffer52~buffer87未使用。
2.定位原點并建立坐標系
選取圖像上不發(fā)生變化的特征,使用Match Pattern 或Detect Object來定位原點并建立坐標系。三個檢測區(qū)域分別以中間的LED窗口即AUTO LED、OFF LED、Defrost LED的中心為該幅圖像的坐標原點。
3.定義ROI區(qū)域
根據(jù)被測目標不同的形狀,可以使用不同的ROI模型,包括圓形、環(huán)形、扇形、矩形、旋轉(zhuǎn)矩形、任意多邊形等。所有ROI區(qū)域都以坐標原點為參考點。
4. 測量
通過抽取彩色圖像的Intensity plane、Red Plane、Green Plane、Blue Plan(均為8位深度的圖像),對各目標ROI區(qū)域分別測量光強分量Intensity、顏色分量R/G/B、鐳雕圖案模式匹配分數(shù)、位置坐標等。
其中光強Intensity/R/G/B的范圍為0~255,共256個灰階。
圖案模式匹配分數(shù)的滿分為1000分,得分大小表示目標與標準模型的匹配程度。對三組字符除了做模式匹配測量還做了OCR字符識別,即需要分別識別出AUTO、ECON、OFF。
位置坐標需要進行坐標系變換。對于一幅圖像來說,默認的坐標原點位于圖像的左上角,測量的直接位置數(shù)據(jù)是相對于這個原點的,和我們在步驟2.中定義的原點位置不同,坐標系方向也不同。參考下圖:
變換后的坐標仍是以像素為單位的,需要乘以像素精度pixel accuracy轉(zhuǎn)化為mm單位,這樣才對產(chǎn)品檢驗有意義。
5.結(jié)果輸出界面
測量結(jié)果包括圖像和數(shù)據(jù),放在一個Table容器中。Table的第一個Page用來存放圖像。圖像以二維數(shù)組為容器,分為9行5列,存放45幅圖像,包含9幅采集的圖像和抽取的36幅分量圖層。Table的第2~11共10個Page用來存放測量數(shù)據(jù),分別以10張表格形式輸出,分別對應(yīng)9幅采集的圖像的測量數(shù)據(jù)和重要特征的全局比較。每個Page上有一個布爾量顯示控件,用于指示當前頁面的綜合判斷結(jié)果。
圖2 Middle area Function LED mode image
以下僅給出中部檢測圖像和數(shù)據(jù),請參考圖2-圖7
圖3 Middle area Function mode measure data
圖4 Middle area Night mode image
圖5 Middle area Night mode measure data
圖6 Middle area Day mode measure data
6.任務(wù)順序的優(yōu)化設(shè)計
在相鄰的兩次圖像采集之間需要完成幾項任務(wù),包括圖像處理、寫全局變量、圖像輸出、測量結(jié)果輸出、光源切換、位置運動等,這些任務(wù)的執(zhí)行時間是不同的。優(yōu)化這些任務(wù)的編排順序可顯著提高程序的執(zhí)行速度。
采集圖像前要求所有運動靜止、光源穩(wěn)定發(fā)光。由計算機向PLC發(fā)送運動觸發(fā)信號和光源切換觸發(fā)信號的指令完成時間是以10ms為數(shù)量級的,而圖像處理、圖像輸出、測量結(jié)果輸出、寫全局變量的完成時間是以100ms為數(shù)量級的。運動是否完成可通過讀取PLC中的標志位來確定,但光源是否穩(wěn)定發(fā)光,只能依賴上電后的延遲時間。我們的經(jīng)驗是LED光源從上電到穩(wěn)定發(fā)光至少需要500ms的延時。在一個產(chǎn)品的測試中需要9次光源切換、4次位置運動。如果都用延時的方法,那么將大大降低檢測速度。所以我們不是在圖像采集后立刻對該幅圖像處理,而是先為下一次圖像采集做光源切換或運動觸發(fā),然后再對本次采集的圖像做相對費時的圖像處理等,相當于為光源切換或運動觸發(fā)作了延時處理,但又不占用額外的時間開銷。參考以下流程圖:
7. Overlay的傳遞
Overlay是疊加在圖像上的一個特殊的圖層,用于顯示ROI定義范圍、坐標系定義和部分圖像處理的信息。本系統(tǒng)中在同一位置采集的不同光源照明下的3幅圖像,具有相同的坐標系和像素精度,不必每次都做同樣的處理,只需將第一幅圖像上的Overlay傳遞給其他兩幅圖像即可。利用我們編寫的Overlay傳遞vi,可以抽取任意image buffer的Overlay并傳遞到指定的image buffer中。參考圖2、圖4、圖6,每幅圖像上的左上角紅色方框內(nèi)的原點坐標位置及像素精度的文字信息和圖像中央位置的坐標系標志就是通過這種方法傳遞的。
8.ROI與Mask的組合應(yīng)用
利用ROI來定義感興趣區(qū)域,利用Mask可以屏蔽掉不感興趣或者已測量過的區(qū)域,將ROI與Mask相結(jié)合可使一些復雜的測量變得簡單而高效。圖6中需要測量產(chǎn)品的外露面是否有劃傷,經(jīng)過ROI和Mask的組合,只需兩步即可完成。參考圖8、圖9。
圖8 Middle area Day mode mask1
圖9 Middle area Day mode mask2
9.全局特征比較
在9個圖像處理子程序中,部分測量數(shù)據(jù)需要進行全局比較,已評定產(chǎn)品
整體區(qū)域的發(fā)光亮度的一致性,因此需要在每個圖像處理子程序中將關(guān)心的數(shù)據(jù)寫入全局變量,最后在主程序中對這些全局變量進行處理,請參考圖10。
六、文件I/O
包括公差設(shè)置、讀取、測量數(shù)據(jù)存儲,數(shù)據(jù)較多,因此采用表格文件方式,將數(shù)據(jù)分類以二維數(shù)組的形式存取。在圖像處理程序中對測量數(shù)據(jù)判斷時,只需讀取公差設(shè)置相關(guān)的sub-array即可。測量數(shù)據(jù)存儲的文件名中插入時間字符(精確到秒),以避免文件名重復。
七、上位鏈接和串口通訊
進行上位鏈接通訊時,計算機和PLC之間使用命令(command)和響應(yīng)(response)進行發(fā)送和接收。一次通訊送出的一組數(shù)據(jù)稱作一幀,送出幀的權(quán)限稱為發(fā)送權(quán)。上位計算機持有發(fā)送權(quán),命令發(fā)送后,響應(yīng)由PLC自動返回。由于PLC的響應(yīng)需要時間,因此在兩次命令之間必須插入延時。幀的格式如下:
@|機器號|頭碼|正文|FCS|終端
FCS稱為幀檢查序列,把一幀的開始到FCS前面的數(shù)據(jù)進行邏輯異或的8位數(shù)據(jù)變成2個字符的ASCII碼,主要用于檢查數(shù)據(jù)錯誤。FCS的計算采用筆者以前用VB開發(fā)的程序,命令的傳送使用LabVIEW中的Instrument I/O assistant直接向串口發(fā)送,十分簡單。Instrument I/O assistant提供三種類型的命令,包括Write,Query and parse,Read and parse。
八、 開放性和擴展性
本系統(tǒng)是針對帕薩特和速騰轎車的2種型號的溫控儀表盤的視覺檢測開發(fā)的,但在軟硬件的設(shè)計中都充分考慮到系統(tǒng)的開放性和擴展性,只需更換圖像處理子程序和各區(qū)域的位置設(shè)置,即可以檢查任何二維平面上圖像信息。同時在Z軸上加裝接觸式測頭或非接觸式的激光測距傳感器,即可以完成Z軸方向的尺寸測量。三軸的行程X、Y、Z為:200mm×200mm×150mm.
選擇的PLC上有4路脈沖輸出,選用的光學鏡頭可以連續(xù)變倍,這樣在Zoom上加裝一個步進電機和傳動機構(gòu),即可以實現(xiàn)變放大倍數(shù)的檢測,對尺寸精度和圖像質(zhì)量要求高的區(qū)域可使用高放大倍數(shù)測量。
同時系統(tǒng)還有4路AD輸入和2路DA輸出,為向更復雜、更靈活的系統(tǒng)擴展提供了必要的硬件資源。
九、 結(jié)論
本項目軟件預計開發(fā)時間為三個月,實際上不到兩個月就完成了,目前機器運行十分穩(wěn)定、高效,得到客戶的贊譽。NI Vision豐富的圖像處理功能和LabVIEW靈活易用的編程環(huán)境是我們獲得成功的主要原因之一。
以前主要使用VB和C++做程序開發(fā),這次是第二次使用LabVIEW做項目。相比之下,LabVIEW圖形化編程語言使程序員不必過分關(guān)注代碼和函數(shù)格式,而是把主要精力放在功能設(shè)計和結(jié)構(gòu)設(shè)計上,從而節(jié)省了寶貴的開發(fā)時間。此外,LabVIEW的幫助功能和大量的實例程序非常方便程序員的自學提高??傊?,我們認為LabVIEW作為測試測量領(lǐng)域的首選開發(fā)平臺是當之無愧的。
責任編輯:gt
評論
查看更多