(寶雞文理學院 計算機學院, 寶雞 721016)
鈦是一種結(jié)構(gòu)型金屬,具有導熱系數(shù)低、彈性模量小、化學活性高等特點,是典型的難加工材料。加工過程中,由于生產(chǎn)刀具磨損嚴重,易發(fā)生偏差過大,給檢驗人員帶來了大量的測量任務(wù)。當前,大部分中小型鈦金屬加工企業(yè)在鈦工件測量上,主要使用卷尺、卡尺、千分尺等工具進行人工測量,人工測量誤差不可控因素多、效率低、人易疲勞等特點。隨著建立在計算機圖像學基礎(chǔ)上的視覺檢測技術(shù)的長足發(fā)展,基于機器視覺的測量系統(tǒng),與人工測量相比較,具有誤差小、柔性化程度高、不會創(chuàng)傷表面等特點,得到了廣泛的應用[1]。
視覺測量是將被測對象通過機器視覺產(chǎn)品轉(zhuǎn)換成圖像信號,傳送給專用的圖像處理系統(tǒng),圖像處理系統(tǒng)根據(jù)像素分布和亮度、顏色等信息,轉(zhuǎn)變成數(shù)字化信號,利用這些信號進行各種運算來抽取目標進行測量,再將其換算成實際測量物的尺寸[2-3]。測量的精度依賴于被測對象的成像效果和圖像處理的算法。成像效果和相機、光源選取及輔助傳動裝置相關(guān),其設(shè)計主要依據(jù)對被測對象的精度要求、投入成本、測量現(xiàn)場環(huán)境和實施人員的經(jīng)驗,有成熟的選擇方案;圖像處理的算法則要根據(jù)測量對象的形狀、運動過程、照明、測量項目均需要選擇適宜的算法,是滿足測量要求的關(guān)鍵。因此當前主流的視覺測量系統(tǒng)還是主要應用于一些特定場合,針對具體的測量任務(wù)做定制化的二次開發(fā)[4]。中小型鈦加工企業(yè)生產(chǎn)的鈦工件產(chǎn)品規(guī)格、形狀差別大,測量項目多等特點,很難開發(fā)出完成對多種規(guī)格鈦工件測量的通用視覺系統(tǒng),不同工件需要進行定制化開發(fā)專用的視覺測量,對于中小企業(yè)的使用和維護成本很高,這是制約視覺測量系統(tǒng)在此類企業(yè)全面使用的主要瓶頸。本文就是采用面向接口的編程技術(shù)和設(shè)計模式的相關(guān)理念,針對抽象進行編程,將圖像算法和被測對象在編碼時解耦,具體圖像處理算法實例的創(chuàng)建延遲到程序執(zhí)行時根據(jù)測量項目動態(tài)匹配,開發(fā)通用的視覺測量系統(tǒng),以滿足多種規(guī)格測量項目的需要,降低中小型鈦加工企業(yè)的使用成本。
機器視覺測量系統(tǒng)由相機、光源、輔助設(shè)備及圖像處理軟件組成[5],典型測量執(zhí)行過程如圖1所示。
圖1 典型的機器視覺測量軟件處理過程
在軟件處理過程中影響視覺測量精度主要有圖像預處理、測量項ROI區(qū)域圖像提取、區(qū)域圖像增強、圖像測量及根據(jù)相機標定將圖像測量結(jié)果轉(zhuǎn)換為物理尺寸等環(huán)節(jié)。首先根據(jù)被測對象的成像特點,采用適當?shù)膱D像增強、去噪、畸形矯正算法對采集的圖像進行預處理;其次,遍歷測量項,提取測量項感興趣的區(qū)域圖像,并根據(jù)測量項區(qū)域圖像成像特點和測量要求,進行如:進行邊緣增強、圖像細化等增強處理;再次,提取特征對象輪廓或端點,依據(jù)端點或輪廓特征點的坐標,即可得到圖像上的測量結(jié)果。如:線段長度測量,首先獲取線段兩個端點,再使用數(shù)學方法,計算兩坐標之間的距離;最后,依據(jù)圖像測量結(jié)果和相機標定確定的物理尺寸和像素間換算關(guān)系,得到被測物體的物理尺寸。
圖像測量技術(shù)關(guān)鍵點
基于機器視覺的測量系統(tǒng)是應用圖像處理技術(shù),對形成圖像的灰度進行分析處理,提取相應的邊緣測量項的輪廓和線條,完成測量任務(wù)的軟件系統(tǒng),其關(guān)鍵技術(shù)是根據(jù)圖像處理算法的選擇和相機的標定[6]。當前,對于某一類問題的圖像處理算法很多,但每種算法均具有一定的使用條件和場景,同類的處理算法之間是開放的,無強制約束,在運行過程中可以相互替換。如:圖像增強就有直方圖均衡化、對數(shù)變換、伽馬變換等方法,直方圖均衡化對對比度較低的圖像適合;而對數(shù)變換對比度偏低并且灰度值偏低的圖像增強效果好;伽馬變換對體亮度值偏高情況下的圖像增強效果明顯。在程序開發(fā)階段基于算法類型進行編碼,將具體算法的執(zhí)行延遲到程序執(zhí)行階段進行,將很好的解決圖像算法選擇問題。
相機標定是圖像測量非常關(guān)鍵環(huán)節(jié),用于確定物理尺寸和像素間的換算關(guān)系,是求解相機的內(nèi)參數(shù)以及畸變參數(shù)的過程。相機標定過程比較規(guī)范,一般使用棋盤板或具有白色背景的黑圓圈,被標定的攝像機需要從不同的角度對特殊模式圖像拍攝 10-15張照片,然后通過標定算法找到最優(yōu)的攝像機內(nèi)部參數(shù)和畸變向量[7-9]。系統(tǒng)采用張定友平面標定法,使用OpenCV提供的算法嵌入在程序中,獲得相關(guān)計算參數(shù)。
根據(jù)以上分析,將通用測量軟件分為測量配置模塊和測量執(zhí)行模塊兩部分,前者用于完成相機標定、算法優(yōu)選的輔助分析軟件,及記錄參數(shù)、閾值及處理結(jié)點上圖像算法的選擇的結(jié)果;后者根據(jù)配置模塊記錄的相應信息完成測量任務(wù)。將每種測量任務(wù)定義一個測量工程,某規(guī)格型號鈦板的測量就是一個測量工程;每個測量工程可設(shè)置一個或多個測量項,如:鈦板測量包括寬度、長度、厚度尺寸的測量等。將完成測量任務(wù)需要對圖像做各種處理活動成為測量結(jié)點,每個測量結(jié)點包含了一個最適合此圖像處理的算法及相應的參數(shù)。按照測量結(jié)點的執(zhí)行順序,將完成測量任務(wù)的結(jié)點連接起來的鏈稱為測量鏈,一個測量任務(wù)對應一個唯一的測量鏈。測量配置模塊對每個工件的測量任務(wù)定義一個測量工程,在測量工程下對每一個應用圖像處理的活動定義成測量結(jié)點,根據(jù)采集的現(xiàn)場圖片,進行圖像處理算法的比較分析,和相關(guān)參數(shù)、閾值的率定。測量執(zhí)行模塊按照測量工程將測量鏈中各個結(jié)點的數(shù)據(jù)取出,寫入對列,順序執(zhí)行對列中的任務(wù),按照每個測量結(jié)點約定執(zhí)行相應的算法、參數(shù)、閾值等,完成測量任務(wù)。
基于機器視覺通用測量軟件是在開源計算機視覺庫OPENCV提供算法庫的基礎(chǔ)上,對其算法進行二次封裝,形成具有通用性強、擴展性好的基礎(chǔ)部件庫。利用Visual stdio2013開發(fā)工具,完成測量配置模塊和測量運行模塊的開發(fā)。配置模塊和執(zhí)行模塊相互獨立,配置模塊將參數(shù)、算法等信息存入輕量級的SQLite數(shù)據(jù)庫中,和執(zhí)行模塊通過數(shù)據(jù)庫的信息,經(jīng)過類的反射或工廠模式,動態(tài)創(chuàng)建和運行算法實例。總體架構(gòu)設(shè)計如圖2所示。
圖2 通用測量系統(tǒng)總體架構(gòu)
1. 基礎(chǔ)算法處理庫設(shè)計
基礎(chǔ)庫算法處理庫是在開源的計算機視覺庫基礎(chǔ)上,增加中間層。設(shè)置模塊和執(zhí)行模塊是基于基礎(chǔ)庫中的算法進行編碼,和OpenCV中的算法不直接發(fā)生耦合,使用自定義算法或更換OpenCV中的算法為其他算法提供了良好的擴展性[10]。
2. 設(shè)置控件設(shè)計
設(shè)置模塊是在實際的測量環(huán)境下采集一副圖像,基于該圖像設(shè)置測量鏈,進行測量項目、測量區(qū)域ROI及根據(jù)區(qū)域圖像成像特點選擇最適合的執(zhí)行算法和執(zhí)行使用的參數(shù)[11]。按照操作和算法的功能進行分類,將所使用的操作封裝成控件,每個控件帶有一個圖標和一個屬性窗口,屬性窗口是與之配套的閾值或參數(shù)等屬性,設(shè)置完成后將其存入數(shù)據(jù)庫中。圖標支持用戶通過拖、拉、拽完成測量任務(wù)的設(shè)置。
3. 圖像算法封裝
圖像處理算法是視覺測量系統(tǒng)軟件部分的關(guān)鍵[12],圖像算法封裝是利用設(shè)計模式中的策略模式,首先按照功能對算法進行分類,再抽象出每類算法的接口,將每個算法獨立的封裝成具有共同接口的類,使得它們可以相互替換。封裝時將算法使用的參數(shù)、閾值等內(nèi)容封裝在類內(nèi)部。例如:將直方圖均衡化、拉普拉斯、對數(shù)變換、伽馬變換等圖像增強算法設(shè)計為具有同一接口的、互不關(guān)聯(lián)的獨立類,其設(shè)計類圖如圖3所示。
圖3 圖像增強算法封裝示例
在圖中,圖像增強接口(IImageEnhance)是抽象出的圖像增強接口,定義了一個圖像增強方法(Enhance),該方法包括增強前圖像(imageIn)和增強后的圖像(imageEnhance)兩個參數(shù)。直方圖均衡、拉普拉斯變換、伽馬變換、對數(shù)變換是實現(xiàn)了該接口針對每一個具體算法封裝的類,每個具體類對應著OPENCV算法庫中的算法,算法的相關(guān)執(zhí)行參數(shù)閾值則通過訪問數(shù)據(jù)庫中配置參數(shù)獲得。數(shù)據(jù)庫訪問工具是服務(wù)于數(shù)據(jù)庫連接和數(shù)據(jù)存取封裝的類,與具體的算法構(gòu)成關(guān)聯(lián)關(guān)系。
4. 測試運行
通過鈦工件尺寸測量對系統(tǒng)進行驗證。在驗證過程中,增加了圖像定位功能,實現(xiàn)工件隨意放置也可以檢測尺寸。系統(tǒng)首先通過對測量項及測量區(qū)域進行設(shè)置,然后設(shè)置角度測量任務(wù)的測量鏈和測量節(jié)點,如圖像增強部分由二值化、均值濾波(1次)、伽馬變換(2次)4個測量節(jié)點,每個節(jié)點設(shè)置對應的參數(shù)。應用該系統(tǒng)對10組規(guī)格為φ85 mm鈦工件的直徑進行測量,其標準差最大值為0.009 mm,測量速率為300 ms/個,其精度和定制化開發(fā)系統(tǒng)的精度一致,速率略小于定制化開發(fā)系統(tǒng),完全滿足鈦工件在線測量的要求。
本文設(shè)計了一款通用的鈦工件測量軟件系統(tǒng),可完成對不同規(guī)格鈦工件尺寸角度的測量,解決了傳統(tǒng)視覺測量系統(tǒng)專用性強,通用性差、擴展困難等問題,降低了視覺測量系統(tǒng)的開發(fā)成本和應用成本。降低了中小型鈦金屬生產(chǎn)企業(yè)基于機器視覺測量系統(tǒng)的使用門檻,對這些企業(yè)的生產(chǎn)技術(shù)改造、提高自動化水平具有一定的促進作用。