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