■許 林
(1.福建省交通科研院有限公司,福州 350004;2.福建省交科計量技術(shù)有限公司,福州 350004)
瀝青延度試驗儀是用于測定瀝青延度和彈性恢復(fù)變形能力的專用儀器,由主機、試模和底板組成[2]。 其中延度儀試模用于制作瀝青標準試件,配合主機進行瀝青拉伸試驗使用,由于其形狀為“8”字形,所以行業(yè)里也稱之為“八字模”。 通常延度儀試模的校準主要使用的計量器具是游標卡尺。 由于延度儀試模本身并非固定一體成型的,是分散的、由兩頭的弧形端模和兩側(cè)的側(cè)模拼接組成,在使用游標卡尺對試模尺寸進行測量的過程中,卡尺不可避免地會與試模發(fā)生觸碰、擠壓,從而導(dǎo)致試模部件間產(chǎn)生間隙,引入不小的測量的誤差;另外,校準延度儀試模時,由于每個試模都需要測量4~5 個幾何參數(shù),批量校準、測量起來也是相當?shù)姆浅YM時費力的。 近年來機器視覺越來越廣泛地應(yīng)用于檢測和測量領(lǐng)域,如:電子產(chǎn)品的生產(chǎn)、車身檢測、機械部件缺陷檢測及機械部件測量等。 結(jié)合實際計量校準、檢定工作中遇到的問題,研究以延度儀試模為測量對象,運用機器視覺的技術(shù),設(shè)計了一套試模測量系統(tǒng), 為求在不影響測量準確度的前提下,更高效、便捷地實現(xiàn)延度儀試模的校準工作。
機器視覺測量的工作原理是通過視覺傳感器和圖像采集系統(tǒng),將目標的光線信號轉(zhuǎn)換為圖像模擬電信號,傳送給圖像處理系統(tǒng)[1],再利用計算機視覺算法和圖像處理技術(shù),提高圖像質(zhì)量,獲取被測物的輪廓,識別圖像特征,最終對目標被測物進行測量。
本系統(tǒng)主要由硬件和軟件兩大部分構(gòu)成,其中硬件部分主要由光源、鏡頭、相機、圖像采集器等組成,軟件部分主要負責(zé)圖像處理及數(shù)據(jù)分析,最終輸出測量結(jié)果。
硬件部分作為整個系統(tǒng)的基礎(chǔ),包括5 個關(guān)鍵組件:照明裝置(光源)、鏡頭、攝像裝置、圖像采部件、圖像處理器,具體連接如圖1 所示。
圖1 硬件連接圖
本系統(tǒng)的光源選用了一款可調(diào)節(jié)亮度的平板作為背照式光源,選擇背照式的光源,主要考慮到所獲取的圖像用于試模的輪廓檢測和尺寸測量,并不需要被測物表面特征信息,背照式光源可以使被測物和背景產(chǎn)生很強的對比度,更易于圖像輪廓的提?。幌到y(tǒng)的攝像頭選擇一枚CMOS 攝像頭,因其低成本、低功耗的特點,成像質(zhì)量雖然略低于CCD傳感器,但是對于拍攝普通靜態(tài)的圖片,完全可以滿足要求; 本次鏡頭采用了手動變焦工業(yè)相機鏡頭,焦距為16~48 mm,可以滿足拍攝的視野范圍和工作距離的要求。
系統(tǒng)的開發(fā)是基于python 語言,整個過程包括前期的圖像識別、處理以及后期的測量、計算,主要使 用 到opencv、numpy、scipy、matplotlib 等 擴 展 庫。整體軟件的設(shè)計考慮到以下幾個主要模塊:像素當量的標定、圖像的預(yù)處理、輪廓的提取、尺寸的測量,主要流程如圖2 所示。
圖2 測量系統(tǒng)流程圖
3.1.1 像素當量的定義
機器視覺測量中圖像處理的結(jié)果是以像素為單位的,為了得到被測物的實際尺寸,必須建立物理尺寸與像素尺寸之間的關(guān)系,標定每個像素對應(yīng)的實際物理尺寸,即為像素當量[1]。 理論上任何物體都可以作為像素當量標定標準參照物,但是實際上使用形狀規(guī)則的標定參照物更便于圖像的處理以及像素計算,本文選取標稱長度為25 mm 的2 級量塊作為標定參照物,2 級量塊長度極限偏差為±0.60級量,遠小于被測試模測量允許誤差,可以忽略不計其長度偏差引入的測量誤差的不確定度。
3.1.2 量塊角點的識別
Harris 角點檢測與Shi-Tomasi 角點檢測都是經(jīng)典且常用的角點檢測算法,這些算法可識別圖像中明顯變化(如顏色、亮度等)的區(qū)域,本文使用了Shi-Tomasi 角點檢測算法,因為相較于Harris 角點檢測算法,Shi-Tomasi 算法在計算速度和角點定位的準確性上表現(xiàn)得更好。
首先將獲取的原始圖像轉(zhuǎn)換為灰度圖像,接著使用Shi-Tomasi 角點檢測算法找到圖像中前4 個最強的角點,效果如圖3 所示。 可以看到圖中發(fā)生角點識別錯誤的情況,原因可能是拍攝過程中混入了灰塵、雜質(zhì),使得圖片產(chǎn)生小雜點,導(dǎo)致角點識別的錯誤。 為了去除這些零星小雜點,此處加入開運算處理, 即對目標區(qū)域進行先腐蝕再膨脹的處理,可以有效消除細小的噪聲如雜點、 毛刺等。 再通過cornerSubPix 函數(shù)對這些關(guān)鍵點進行亞像素調(diào)整以提高定位精度,運行效果如圖4 所示,4 個角點A、B、C、D 的像素坐標數(shù)據(jù)如表1 所示。
表1 量塊角點的像素坐標
圖3 量塊原始圖片角點檢測效果
圖4 經(jīng)過圖像處理后角點識別效果
3.1.3 像素當量的計算
在像素坐標系中,一般使用歐氏距離來計算量塊2 個角點間的直線距離。假設(shè)圖4 中A、B 2 個點在像素坐標系中的坐標分別為(xa,ya)和(xb,yb),則兩點間的距離pixel_length 可以通過以下公式計算:
注意這個距離pixel_length 是以像素為單位的(即該距離中含有多少個像素點)。 根據(jù)式(1)中距離pixel_length 與量塊實際物理尺寸的比例關(guān)系,就可以計算出每個像素點的長度:
式中:real_length 為量塊邊長的物理尺寸,單位mm;pixel_length 為圖像中量塊邊長對應(yīng)的像素數(shù);length 為每個像素對應(yīng)的實際長度(像素當量),單位mm/pixel。
像素當量換算結(jié)果顯示,AB 線段像素數(shù)189.642698,物理尺寸為25 mm,像素當量為0.131827 mm/pixel。
圖5 為相機采集的延度儀試模的原始圖像,一般先要對圖像進行預(yù)處理,目的是提高圖像質(zhì)量、減少噪聲、增強特征。 常見的機器視覺圖像預(yù)處理方法有:去噪、增強、平滑、灰度化、二值化、圖像分割、圖像校正等,這些方法可以根據(jù)具體的應(yīng)用需求進行組合和調(diào)整,以達到最佳的圖像預(yù)處理效果。本文中主要對圖像依次進行了灰度化、去噪、二值化、形態(tài)學(xué)處理,最終提取試模的輪廓。
圖5 采集的原始圖像
3.2.1 圖像去噪
雖然在圖像拍攝采集過程已盡量控制環(huán)境因素、光照條件等因素的干擾,還是無法完全消除噪聲的影響,為了減少噪聲的干擾,在對圖像進行灰度化處理后,考慮加入濾波進行去噪處理。 常見的濾波算法有:中值濾波、均值濾波、維納濾波、高斯濾波等[1],本文采集的圖像主要存在的是高斯噪聲,高斯濾波可以有效去除圖像中噪聲,其原理是通過對圖像進行平滑處理,使得噪聲被模糊掉,從而減少噪聲的影響。
高斯濾波函數(shù)其實就是正態(tài)分布函數(shù),由于圖像是二維的,需要使用二維的高斯函數(shù),表示為:
式(3)中σ 是高斯濾波的標準偏差,它決定了圖像的平滑程度,σ 值越大,濾波效果越好,但同時也會失去一些邊緣細節(jié)信息[1]。 本文選用3×3 的卷積核進行卷積處理,去噪后效果如圖6 所示,可以看出濾波處理后的圖像,有了明顯的平滑效果,有效消除了圖像中存在的高斯噪聲。
圖6 高斯濾波后效果圖
3.2.2 圖像二值化
圖像的二值化處理是將灰度圖進行閾值分割,大于閾值的像素調(diào)為白色,小于或等于閾值的調(diào)整為黑色,也可以反過來。 常用的方法有:全局閾值法、自適應(yīng)閾值法、Otsu 閾值法、迭代法等[3],由于此次測量采用背光拍攝, 背景和被測物灰度分明,形狀顏色單一,沒有復(fù)雜的細節(jié),故選用全局固定閾值更為適用。
(1)OTSU 法。 OTSU 算法是一種常用的圖形分割算法,可以自動確定圖像的閾值,無需人為干預(yù)。它的基本原理是以最佳閾值將圖像的灰度值分割成兩部分(前景和背景), 使兩部分之間的方差最大,即有最大的分離性。 圖7 即為經(jīng)過OTSU 法處理后的二值化效果,雖然整體效果較好,但是可以看到試模兩頭端模圓孔處以及內(nèi)槽邊緣,還存在一些陰影無法處理。
圖7 OTSU 法二值化處理效果圖
(2)直方圖法。 由于OSTU 算法表現(xiàn)不是太理想,于是利用灰度直方圖查看像素實際分布情況,如圖8(a)所示,可以看出直方圖呈明顯的雙峰狀態(tài),即:在灰度值0 點和255 點處2 個波峰(局部最大值),主要是被測試模和背景的像素[3]。 局部放大直方圖灰度0 點附近區(qū)域,此區(qū)域主要是被測試模及其邊緣陰影的像素集合,如圖8(b)所示。 可以看到灰度值0 點附近的像素主要分布在[0,15),因此認為把閾值分割點選在灰度值20~50 可以有效消除陰影區(qū)域,選擇固定閾值30,實際運行效果如圖9 所示,較OSTU 算法,更有效地去除了邊緣的陰影,整體表現(xiàn)比較理想。
圖8 灰度直方圖
圖9 直方圖法閾值分割效果圖
3.2.3 形態(tài)學(xué)圖像處理
圖像經(jīng)過高斯濾波、二值化處理后對于陰影部分去除的效果比較完美,但是可以看到被測物內(nèi)部還是存在一些零星的小點和小裂縫,經(jīng)過canny 算法提取邊緣輪廓后如圖10 所示, 可以明顯看出瑕疵。 此處考慮使用閉運算去除這些瑕點、瑕縫,其原理是對二值圖像先進行膨脹操作, 再進行腐蝕操作, 最終達到填補圖像中的空洞及狹縫的作用,運行后效果令人滿意,如圖11 所示。 另外考慮到實際檢測中試模的多樣性、環(huán)境的復(fù)雜性,通常被測物還會存在毛刺、 小橋以及背景中混入一些小雜點,代碼中也可以加入能夠除去孤立的小點、毛刺和小橋的開運算,使圖像處理能力具有更強的適應(yīng)性。
圖10 canny 算法處理后的輪廓提取
圖11 閉運算處理后的輪廓提取
3.3.1 主要測量的參數(shù)
根據(jù)《瀝青延度試驗儀檢定規(guī)程》(JJG(交通)023-2020)[2]中試模的計量性能要求:組裝后的試模如圖12 所示,內(nèi)腔尺寸應(yīng)符合表3 的要求。
表3 試模尺寸標稱值
圖12 試模形狀示意圖
3.3.2 試模特征提取
大部分機械部件的邊緣都是由直線和圓弧組合而成,本文中的試模特征基本上也可以歸結(jié)于直線和圓的結(jié)合[4]。 霍夫變換(Hough Transform)廣泛地應(yīng)用于圖像中直線和幾何形狀的識別,此處在上文Canny 邊緣檢測的基礎(chǔ)上,分別使用了霍夫直線檢測(HoughLines)、霍夫圓檢測(HoughCircles)2 個函數(shù),從圖像中識別并擬合目標直線和圓,并通過直線和直線、直線和圓弧的交點,結(jié)合角點檢測算法,獲取目標特征點,效果如圖13 所示。
圖13 特征提取
3.3.3 測量算法
(1)試模內(nèi)腔總長l1。 首先識別內(nèi)腔2 個半圓,對半圓輪廓進行圓擬合,連接弧形端模2 個小圓孔圓心C1、C2, 直線C1C2與內(nèi)腔2 個半圓弧相交點A1、A2,線段A1A2即為內(nèi)腔總長。 (2)(最?。M斷面寬b1。 獲取側(cè)模2 條斜邊,擬合直線,求其交點B1、B2,2 個交點的距離線段B1B2即為試模(最?。M斷面寬。(3)端??趯抌2。利用Shi-Tomasi 角點檢測算法在試模內(nèi)腔中選取了E、F、M、N 這4 個角點為最佳候選點,線段EF、線段MN 即為端??趯挕?(4)內(nèi)腔兩半圓中心間距l(xiāng)2。 線段EM 和線段FN 的平均值就是內(nèi)腔兩半圓中心距。
運行效果如圖14 所示。
圖14 運行效果展示圖
測量系統(tǒng)與傳統(tǒng)測量方式結(jié)果對比如表2 所示。
從軟件實際運行測試結(jié)果來看,機器視覺與傳統(tǒng)校準方式對比未發(fā)生明顯的數(shù)據(jù)偏差,當然測量系統(tǒng)還是存在各種各樣的誤差, 就本系統(tǒng)而言,主要的誤差來源考慮以下幾個方面。
4.2.1 環(huán)境因素的影響
機器視覺檢測的效果很容易受到環(huán)境因素的影響,比如外界光照的強弱不均、拍攝過程中混入的雜質(zhì)、被測試模表面劃痕、臟污都會增加圖像噪聲,產(chǎn)生測量誤差,影響圖像的識別、輪廓的提取。
4.2.2 測量設(shè)備本身的誤差
設(shè)備本身的誤差主要包括鏡頭畸變、相機分辨率不足等。 鏡頭畸變分為徑向畸變和切向畸變,通常來說鏡頭畸變是沒辦法完全消除的,一般來說可以通過相機標定算法來改善, 比如張正友標定法,通過校正算出鏡頭的畸變系數(shù),一定程度優(yōu)化了圖片的徑向畸變。
相機分辨率不足往往限制了測量的精度,從而增大了測量誤差,本文中主要采用亞像素細分技術(shù)來提高圖像系統(tǒng)的分辨率,降低分辨率引入的測量誤差,同時也節(jié)省了系統(tǒng)硬件的投入成本。
4.2.3 人員操作引入的誤差
測量過程中常常由于人員操作的不規(guī)范或者人工難以達到而引入測量誤差,比如:鏡頭與被測物是否完全平行,被測物中心是否處于鏡頭的光軸上,被測物是否放置在鏡頭的工作距離上等,這些問題往往都需要從人員操作規(guī)范上加以控制,盡可能地降低誤差[3]。 分析了誤差產(chǎn)生的原因,可以采取措施減小環(huán)境、操作等引入的隨機誤差,通過技術(shù)手段有效控制相機分辨率、鏡頭畸變等系統(tǒng)誤差。同時操作中也要綜合考慮測量的需求,在合理范圍內(nèi)優(yōu)化測量系統(tǒng)、控制誤差的發(fā)生,但也不宜一味地為了提高測量精度、降低測量誤差而過度投入,比如本文的測量對象瀝青延度儀試模本身并非高精密零部件,檢定規(guī)程對其測量結(jié)果的允許誤差要求不高,所以此次設(shè)計中并未對成像模型的誤差、透視誤差、邊緣檢測算法的誤差等展開分析與處理。
由于研究時間以及實驗條件有限,在系統(tǒng)的設(shè)計和實現(xiàn)上還有很多可以改進的地方,如誤差的分析還不夠系統(tǒng)很全面;圖像采集設(shè)備的精度還有升級的空間;現(xiàn)有相機和鏡頭組成的硬件系統(tǒng)不適應(yīng)于微距拍攝,對于小尺寸、高精度的機械部件的測量效果不佳等[4]。 總體來說,系統(tǒng)對于瀝青延度儀試模的測量效果還是令人滿意的,非接觸式的測量方式,避免了傳統(tǒng)人工測量的誤差,自動化識別測量也很大程度上提高了工作效率,對應(yīng)用于各類試?;蛘咂渌惒考臋z測、校準工作,具有一定實際意義。