陳思宇,慕麗,王欣威
(沈陽理工大學機械工程學院,遼寧沈陽 110159)
隨著科技的進步,自動化在人類社會中扮演的角色越來越重要,尤其是在制造業當中。機器視覺技術應運而生。機器視覺技術的應用領域非常廣泛且復雜,大部分行業主要是依靠機器視覺技術作為眼睛和腦袋代替人類進入一些工作環境較為復雜或者是單一重復的工作場景中工作,利用其自身自動化程度高的優勢,解決人工無法作業的問題,并且節省了大量的勞動力,從而提高了生產效率和自動化程度。大部分機器視覺系統主要包括兩部分,一部分是硬件系統的選取,另一部分是軟件系統的設計。對于現有項目的研究,本文作者主要論述了應用機器視覺相關技術對含有多條譜線的涂層板邊緣進行提取。傳統的譜線提取大多是基于人工識別獲取坐標點的方法進行,不僅費時而且精度較低。而作者旨在建立一個實時在位檢測系統,縮短整個檢測過程的時間,提高檢測精度。檢測系統包括硬件結構的搭建和軟件系統的編寫和優化。系統的總體構架如圖1所示。

圖1 系統總體構架
在機器視覺中硬件系統的選取與搭建尤為重要,甚至直接影響結果的準確性。比如相機與鏡頭的選取以及安裝的方式等都與圖像的清晰度有密切的關系,如果采集到的圖像質量不高,即使邊緣提取算法設計得再精準,也很難得出較為精準的答案。因此在機器視覺中硬件設備的選取是保證檢測結果準確的第一步。
相機是整個在位檢測視覺系統的核心設備。在此系統中,待檢測的涂層板上面的譜帶區域大多是彩色分區,所以應首先考慮選用彩色相機,然后根據待檢測區域的大小,確定相機的像素大小。其中還應根據經驗選擇相機的傳感器尺寸,確定相機的輸出方式及標準(模擬/數字、速率等)。
綜上考慮,選取海康威視技術有限公司生產的型號為MV-CA050-10GM的面陣相機,其彩色相機使用的是Snoy的IMX264CMOS芯片,圖像質量優異且具有噪點低、分辨率高、性價比高等特點,在全分辨率下的最高幀率可達到24.1 fps。
鏡頭在機器視覺系統中的作用就等同于眼睛在人類視覺系統中的作用。根據實際的生產環境合理選擇鏡頭在機器視覺系統中尤為重要。鏡頭的好壞主要影響到采集到的圖像的清晰度以及放大倍數的高低。其中鏡頭的參數主要包括鏡頭的分辨率、景深、焦距和光圈等。
除了要根據以上參數選取鏡頭外還要考慮相機,相機與鏡頭合理配合,才能最大程度上提高圖像的清晰度。文中選擇的工業相機接口方式是C-Mount,所以鏡頭的接口要與之相配。工件與相機之間的實際高度大約是500 mm,視野范圍是800 mm×200 mm,因此選取的鏡頭的焦距為12 mm。綜合以上考慮,選取海康威視技術有限公司生產的KF-E系列12 mmFA鏡頭。
在機械零件視覺檢測中,光源選取也在一定程度上影響成像質量的好壞,決定整個檢測系統是否成功。合理的光學照明系統可以適當地突出待檢測零件中的有用信息,弱化無用信息,從而簡化后續的圖像預處理過程,保證成像的穩定性,降低邊緣提取算法的復雜性。
根據檢測的譜線板上待提取的邊緣特征選用的是面光源,同時為了保證實驗的準確性,排除一些外在因素的影響,設計了一個暗箱。暗箱選用黑色不透明鋁塑板,創造一個暗室環境。同時為了保證光源的穩定性,需要將光源搭配光源控制器使用。光源控制器除了保證光源的穩定性,還可以對光源的亮度進行調節。
硬件全部選取完成后就可以進行機器視覺系統的搭建,然后對搭建好的硬件系統進行調試,以確保硬件之間不會發生干涉現象。調試好的系統如圖2所示。

圖2 硬件系統
軟件系統的設計流程如圖3所示。首先拍取待檢測涂層板,然后對該圖像進行標定來確定坐標系統;接下來對圖像進行預處理,消除圖像中的無關信息,使關鍵信息最大化地體現出來;然后提取譜帶的邊緣,得到的坐標點發送到控制器中,進行后續的操作。

圖3 軟件系統流程
利用LabVIEW和MATLAB兩個軟件進行混合編程,主要是利用各自的優勢:首先LabVIEW可以與市面上大多數的工業設備進行良好的通信,并且其中包含大量的視覺處理函數,最主要的是它采用的圖形化編程方法更加直觀清晰;而MATLAB包含強大的數據庫,可以實現算法上的突破,在精度與速度上具有優越性。用LabVIEW中的VA助手將編好的程序導成VI程序中可以縮減圖像處理的時間,而且LabVIEW可嵌入MathScript節點,其語法和函數與MATLAB非常相似,因此可以在LabVIEW中編寫MATLAB程序,從而通過調用MATLAB中的程序來提高系統檢測的精度與速度。
此次的被測對象主要是涂層板。涂層板是一塊長為800 mm、寬為200 mm的鋁型板材,其中展開板上面的白色涂層為硅膠,其上的彩色物質是從草藥中提取到的各種成分。實驗目的主要是利用數控機床對涂層板上同一顏色區域進行刮取與收集。其中涂層板如圖4所示。

圖4 涂層板示意
在實驗過程中,當被測對象達到指定位置后,光源打開,相機拍攝圖片并將拍好的圖片傳輸給計算機進行后續處理。編寫程序框圖,程序編寫主要是運用了隊列的思想,涂層板到位后先打開相機,然后觸發拍照機制采集涂層板圖像,然后關閉相機,涂層板進入待處理區。在LabVIEW中進行圖像采集程序的編寫,程序框圖如圖5所示。

圖5 圖像采集程序框圖
相機采集到的圖像是以像素尺寸為單位的,與實際的坐標尺寸不一致,相機標定的目的就是為了將像素坐標與真實物理坐標相對應。需要注意的是標定完成之后的系統中被測件與相機的相對位置不可改變。此測試系統選用的標定方式為簡單標定。
在位檢測系統進行完圖像采集以及系統標定之后,就可以進行圖像分析。但是在實際的采集環境中不可避免地會受到一些不利影響,例如光照的影響、加工環境中的灰塵等因素,從而使采集到的圖像不是很理想,有的會摻雜一些無關信號,有的會缺少圖像中的關鍵信息,所以對圖像進行預處理至關重要。圖像的預處理方法有很多種,例如灰度變換、二值化、圖像均衡化、圖像形態學變換、對比度改善等。文中的重點主要是多條譜線邊緣的提取且圖像中的噪聲基本可以忽略不計,所以文中主要用到的預處理方法是灰度變換和彩色圖像的均衡化。
2.4.1 灰度變換
在圖像的邊緣提取中,大多數的算法都是基于灰度信息進行提取的。灰度變換主要是過濾掉彩色圖像中包含的彩色信息,選擇自己所需的灰度平面信息。與彩色圖像相比,計算機處理灰度圖片會相對簡單一點。灰度變換主要有3種方法:平均值法、最大值法、加權平均值法。本文作者對3種方法分別進行實驗,得到較為清晰的圖像如圖6所示。

圖6 被測件灰度變換
2.4.2 彩色圖像均衡化
彩色圖像直方圖均衡化處理的中心思想與灰度均衡化大致相似,就是將相機采集到的彩色圖像中的包含彩色信息比較集中的某個部分變成在[0,255]區間上均勻分布。通過對圖像進行非線性拉伸,重新分配圖像像素值,使像素在每個區間范圍內的數量大致相同。其目的是調整整幅圖像的對比度,尤其是圖像中的有用數據對比度相當接近的情況,它能以較小的計算量突出圖像的細節。在LabVIEW中主要應用IMAQ ColorEqualize函數來實現此操作過程。經過彩色圖像均衡化后的圖像如圖7所示。

圖7 彩色圖像均衡化
對比灰度變換與彩色圖像均衡化后得到的圖片可知:涂層板的灰度變換基本丟失了對比度不強的一部分涂層信息,而彩色圖像均衡化后的圖像增加了整幅圖像的對比度,使要提取的部分更加清晰,所以文中選用的預處理方法為彩色圖像均衡化。
2.5.1 傳統的邊緣檢測算法
在數字圖像處理中,邊緣檢測主要是通過尋找圖像中灰度顯著變化的區域來獲取圖像的邊緣信息,其中主要包括Roberts、Sobel、Prewitt、Laplacian、Canny等方法。Roberts、Prewitt、Sobel算子都屬于一階梯度算子的范疇。它們通過尋找梯度變化最為劇烈的像素區域,進而確定出邊緣區域的位置所在。而Laplacian算子屬于二階微分算子,其原理是在圖像灰度值的二階微分中搜索零穿越,進而確定其邊緣點。應用以上算法分別對涂層板進行邊緣提取,可得到如圖8所示圖像。通過對比可知傳統的基于灰度信息進行邊緣提取的方法基本都丟失了大部分重要信息。

圖8 傳統算法的邊緣提取結果
2.5.2 基于彩色平面的邊緣檢測算法
傳統的邊緣檢測算法運算量大,實時性差,而且傳統算法主要是基于圖像的灰度信息進行處理,文中主要是為了提取彩色區域的邊緣,因此需要尋找新的適合機器視覺系統的直線檢測算法。“NI Vision Assistant”是一個可快速實現圖像分析、處理的環境,編好的程序可導入到LabVIEW程序框圖中。基于彩色平面的邊緣檢測算法主要用到的是VA助手里面的邊緣檢測函數,應用此函數在提取邊緣時搜索的方向不僅僅局限于一維,而是按照其所選取的ROI方向進行邊緣檢測,可以是任意圖形,例如直線、曲線、折線、矩形、圓形等。而且此算法不僅可以應用于灰度圖像,也同樣適用彩色圖像,最主要的是它可以將提取到的邊緣點信息以坐標的形式輸出,便于后續的處理。在VA助手中編好程序后將其導入到LabVIEW程序框圖中,基于檢測到的邊緣點使用MathScript節點函數,通過編寫數據插值與曲線擬合的算法來確定最終的目標邊緣。提取到的邊緣點坐標如圖9所示。

圖9 邊緣點的提取
利用傳統的手動識別輸入坐標點的方法進行加工時,往往會因為譜線邊緣識別不準確,從而造成誤刷、漏刷現象。故而提出一種基于插值和擬合的方法來提高邊緣提取的精度,進而提高系統的準確度。插值與擬合的思想與亞像素精度十分類似。在得到邊緣的坐標點之后,為了進一步提高邊緣的精度,還需要在兩個相鄰數據之間增加一些數據,這個過程就是插值(此測試系統所用到的插值方法是三次樣條插值法)。然后再基于這些數據得到一條光滑的曲線,即圖像的邊緣,這個過程便是擬合(此測試系統主要用到的擬合方法是多項式擬合)。
將提取到的邊緣坐標點連接到MathScript節點的輸入中,在MathScript節點中編寫三次樣條插值和多項式擬合的程序,然后再以1為起始點,1為步長,175為終止點將坐標代入到擬合后的直線當中,可得值,然后將值輸入到數控機床當中,數控機床便可以操控滾刷來刮取涂層板的同一區域。程序如圖10所示,擬合結果如圖11所示。

圖10 基本程序框圖

圖11 擬合結果
先將涂層展開板放在傳送帶上,下達指令后傳送帶開始工作,涂層展開板隨著傳送帶進入暗室內;到達位置后接近開關發送信號給光源控制器打開光源同時觸發相機的拍照功能采集圖像,采集到圖像后涂層板進入待處理工作區中,等待加工;在涂層板離開工作位的同時,計算機對采集到的涂層板圖像進行圖像處理及譜帶邊緣位置的識別,然后將得到的同一顏色的邊緣坐標信息傳輸給控制器,進而控制滾刷對譜線中同一區域進行刮取與收集。加工過程如圖12所示。

圖12 加工過程圖
從檢測精度上來看,在傳統的檢測過程中,主要是利用人眼區分各個顏色的譜帶的邊緣位置,然后設置坐標系,用直尺量出邊緣的坐標點,然后將坐標點輸入到控制器中,進而控制滾刷按照邊緣進行同一區域的刮取。加工后的圖像如圖13所示。

圖13 傳統加工結果
按照在位檢測系統得到的坐標信息對涂層板進行刮取,加工后的圖像如圖14所示。

圖14 基于機器視覺的加工結果
通過觀察最下方譜帶刮取的效果可發現:傳統的加工方法有較大的偏差,并且傳統方法走出的軌跡大多是折線,出現了漏刷與錯刷現象;而按照視覺系統提供的位置坐標進行加工時,由于采用了擬合的方法,軌跡大多為直線,從而提高了滾刷刮取的準確性,而且整個過程都不需要人工的參與,大大減少了人為因素引起誤差的可能性。
從檢測速度上來看,傳統的人工檢測從識別出坐標信息到輸入到控制器當中大約需要8 min。而基于機器視覺的在位檢測系統從涂層展開板進入暗箱完成圖像采集與處理到得出坐標信息輸入到PLC控制器當中,此過程時間大約為45 s,所以整個過程的檢測速度滿足實驗的要求。
通過對此系統進行現場流水線的加工測試,并與傳統的人工檢測方法進行對比,得出基于機器視覺的在位檢測系統無論是在精度上還是速度上都優于傳統的檢測方法,因此在實際生產生活中更加適用。通過分析灰度平面與彩色平面對邊緣提取的效果,設計了彩色邊緣提取方法,同時設計了基于三次樣條插值和多項式擬合的邊緣檢測算法,從而提高了邊緣點檢測的精度,使機器能準確識別圖像邊緣,大大減少了人力資源成本。