(寶雞文理學院 計算機學院, 寶雞 721016)
鈦是一種結構型金屬,具有導熱系數低、彈性模量小、化學活性高等特點,是典型的難加工材料。加工過程中,由于生產刀具磨損嚴重,易發生偏差過大,給檢驗人員帶來了大量的測量任務。當前,大部分中小型鈦金屬加工企業在鈦工件測量上,主要使用卷尺、卡尺、千分尺等工具進行人工測量,人工測量誤差不可控因素多、效率低、人易疲勞等特點。隨著建立在計算機圖像學基礎上的視覺檢測技術的長足發展,基于機器視覺的測量系統,與人工測量相比較,具有誤差小、柔性化程度高、不會創傷表面等特點,得到了廣泛的應用[1]。
視覺測量是將被測對象通過機器視覺產品轉換成圖像信號,傳送給專用的圖像處理系統,圖像處理系統根據像素分布和亮度、顏色等信息,轉變成數字化信號,利用這些信號進行各種運算來抽取目標進行測量,再將其換算成實際測量物的尺寸[2-3]。測量的精度依賴于被測對象的成像效果和圖像處理的算法。成像效果和相機、光源選取及輔助傳動裝置相關,其設計主要依據對被測對象的精度要求、投入成本、測量現場環境和實施人員的經驗,有成熟的選擇方案;圖像處理的算法則要根據測量對象的形狀、運動過程、照明、測量項目均需要選擇適宜的算法,是滿足測量要求的關鍵。因此當前主流的視覺測量系統還是主要應用于一些特定場合,針對具體的測量任務做定制化的二次開發[4]。中小型鈦加工企業生產的鈦工件產品規格、形狀差別大,測量項目多等特點,很難開發出完成對多種規格鈦工件測量的通用視覺系統,不同工件需要進行定制化開發專用的視覺測量,對于中小企業的使用和維護成本很高,這是制約視覺測量系統在此類企業全面使用的主要瓶頸。本文就是采用面向接口的編程技術和設計模式的相關理念,針對抽象進行編程,將圖像算法和被測對象在編碼時解耦,具體圖像處理算法實例的創建延遲到程序執行時根據測量項目動態匹配,開發通用的視覺測量系統,以滿足多種規格測量項目的需要,降低中小型鈦加工企業的使用成本。
機器視覺測量系統由相機、光源、輔助設備及圖像處理軟件組成[5],典型測量執行過程如圖1所示。

圖1 典型的機器視覺測量軟件處理過程
在軟件處理過程中影響視覺測量精度主要有圖像預處理、測量項ROI區域圖像提取、區域圖像增強、圖像測量及根據相機標定將圖像測量結果轉換為物理尺寸等環節。首先根據被測對象的成像特點,采用適當的圖像增強、去噪、畸形矯正算法對采集的圖像進行預處理;其次,遍歷測量項,提取測量項感興趣的區域圖像,并根據測量項區域圖像成像特點和測量要求,進行如:進行邊緣增強、圖像細化等增強處理;再次,提取特征對象輪廓或端點,依據端點或輪廓特征點的坐標,即可得到圖像上的測量結果。如:線段長度測量,首先獲取線段兩個端點,再使用數學方法,計算兩坐標之間的距離;最后,依據圖像測量結果和相機標定確定的物理尺寸和像素間換算關系,得到被測物體的物理尺寸。
圖像測量技術關鍵點
基于機器視覺的測量系統是應用圖像處理技術,對形成圖像的灰度進行分析處理,提取相應的邊緣測量項的輪廓和線條,完成測量任務的軟件系統,其關鍵技術是根據圖像處理算法的選擇和相機的標定[6]。當前,對于某一類問題的圖像處理算法很多,但每種算法均具有一定的使用條件和場景,同類的處理算法之間是開放的,無強制約束,在運行過程中可以相互替換。如:圖像增強就有直方圖均衡化、對數變換、伽馬變換等方法,直方圖均衡化對對比度較低的圖像適合;而對數變換對比度偏低并且灰度值偏低的圖像增強效果好;伽馬變換對體亮度值偏高情況下的圖像增強效果明顯。在程序開發階段基于算法類型進行編碼,將具體算法的執行延遲到程序執行階段進行,將很好的解決圖像算法選擇問題。
相機標定是圖像測量非常關鍵環節,用于確定物理尺寸和像素間的換算關系,是求解相機的內參數以及畸變參數的過程。相機標定過程比較規范,一般使用棋盤板或具有白色背景的黑圓圈,被標定的攝像機需要從不同的角度對特殊模式圖像拍攝 10-15張照片,然后通過標定算法找到最優的攝像機內部參數和畸變向量[7-9]。系統采用張定友平面標定法,使用OpenCV提供的算法嵌入在程序中,獲得相關計算參數。
根據以上分析,將通用測量軟件分為測量配置模塊和測量執行模塊兩部分,前者用于完成相機標定、算法優選的輔助分析軟件,及記錄參數、閾值及處理結點上圖像算法的選擇的結果;后者根據配置模塊記錄的相應信息完成測量任務。將每種測量任務定義一個測量工程,某規格型號鈦板的測量就是一個測量工程;每個測量工程可設置一個或多個測量項,如:鈦板測量包括寬度、長度、厚度尺寸的測量等。將完成測量任務需要對圖像做各種處理活動成為測量結點,每個測量結點包含了一個最適合此圖像處理的算法及相應的參數。按照測量結點的執行順序,將完成測量任務的結點連接起來的鏈稱為測量鏈,一個測量任務對應一個唯一的測量鏈。測量配置模塊對每個工件的測量任務定義一個測量工程,在測量工程下對每一個應用圖像處理的活動定義成測量結點,根據采集的現場圖片,進行圖像處理算法的比較分析,和相關參數、閾值的率定。測量執行模塊按照測量工程將測量鏈中各個結點的數據取出,寫入對列,順序執行對列中的任務,按照每個測量結點約定執行相應的算法、參數、閾值等,完成測量任務。
基于機器視覺通用測量軟件是在開源計算機視覺庫OPENCV提供算法庫的基礎上,對其算法進行二次封裝,形成具有通用性強、擴展性好的基礎部件庫。利用Visual stdio2013開發工具,完成測量配置模塊和測量運行模塊的開發。配置模塊和執行模塊相互獨立,配置模塊將參數、算法等信息存入輕量級的SQLite數據庫中,和執行模塊通過數據庫的信息,經過類的反射或工廠模式,動態創建和運行算法實例。總體架構設計如圖2所示。

圖2 通用測量系統總體架構
1. 基礎算法處理庫設計
基礎庫算法處理庫是在開源的計算機視覺庫基礎上,增加中間層。設置模塊和執行模塊是基于基礎庫中的算法進行編碼,和OpenCV中的算法不直接發生耦合,使用自定義算法或更換OpenCV中的算法為其他算法提供了良好的擴展性[10]。
2. 設置控件設計
設置模塊是在實際的測量環境下采集一副圖像,基于該圖像設置測量鏈,進行測量項目、測量區域ROI及根據區域圖像成像特點選擇最適合的執行算法和執行使用的參數[11]。按照操作和算法的功能進行分類,將所使用的操作封裝成控件,每個控件帶有一個圖標和一個屬性窗口,屬性窗口是與之配套的閾值或參數等屬性,設置完成后將其存入數據庫中。圖標支持用戶通過拖、拉、拽完成測量任務的設置。
3. 圖像算法封裝
圖像處理算法是視覺測量系統軟件部分的關鍵[12],圖像算法封裝是利用設計模式中的策略模式,首先按照功能對算法進行分類,再抽象出每類算法的接口,將每個算法獨立的封裝成具有共同接口的類,使得它們可以相互替換。封裝時將算法使用的參數、閾值等內容封裝在類內部。例如:將直方圖均衡化、拉普拉斯、對數變換、伽馬變換等圖像增強算法設計為具有同一接口的、互不關聯的獨立類,其設計類圖如圖3所示。

圖3 圖像增強算法封裝示例
在圖中,圖像增強接口(IImageEnhance)是抽象出的圖像增強接口,定義了一個圖像增強方法(Enhance),該方法包括增強前圖像(imageIn)和增強后的圖像(imageEnhance)兩個參數。直方圖均衡、拉普拉斯變換、伽馬變換、對數變換是實現了該接口針對每一個具體算法封裝的類,每個具體類對應著OPENCV算法庫中的算法,算法的相關執行參數閾值則通過訪問數據庫中配置參數獲得。數據庫訪問工具是服務于數據庫連接和數據存取封裝的類,與具體的算法構成關聯關系。
4. 測試運行
通過鈦工件尺寸測量對系統進行驗證。在驗證過程中,增加了圖像定位功能,實現工件隨意放置也可以檢測尺寸。系統首先通過對測量項及測量區域進行設置,然后設置角度測量任務的測量鏈和測量節點,如圖像增強部分由二值化、均值濾波(1次)、伽馬變換(2次)4個測量節點,每個節點設置對應的參數。應用該系統對10組規格為φ85 mm鈦工件的直徑進行測量,其標準差最大值為0.009 mm,測量速率為300 ms/個,其精度和定制化開發系統的精度一致,速率略小于定制化開發系統,完全滿足鈦工件在線測量的要求。
本文設計了一款通用的鈦工件測量軟件系統,可完成對不同規格鈦工件尺寸角度的測量,解決了傳統視覺測量系統專用性強,通用性差、擴展困難等問題,降低了視覺測量系統的開發成本和應用成本。降低了中小型鈦金屬生產企業基于機器視覺測量系統的使用門檻,對這些企業的生產技術改造、提高自動化水平具有一定的促進作用。