凌銘杰
(中央民族大學(xué)理學(xué)院 北京 100081)
機器視覺主要用機器來模擬人的視覺功能,從客觀事物的圖像中提取信息,進行處理并加以理解,最終用于實際檢測、測量和控制,是一種無接觸的自動檢測技術(shù),是實現(xiàn)智能化和精密控制的有效手段,具有安全可靠,光譜響應(yīng)范圍寬,可在惡劣環(huán)境下連續(xù)工作和生產(chǎn)效率高等突出優(yōu)點[1,2].機器視覺的核心是圖像分析和處理算法.德國MVTec公司開發(fā)的圖像分析和處理軟件HALCON是世界公認具有最佳效能的機器視覺軟件,它發(fā)源自學(xué)術(shù)界, 由1 000多個各自獨立的函數(shù), 以及底層的數(shù)據(jù)管理核心組成,廣泛應(yīng)用在工業(yè)、科學(xué)研究、軍用、民用等領(lǐng)域[3].
在2019版人教版高中物理選擇性必修1中,測量玻璃的折射率實驗使用的是插針法,該方法步驟較為繁瑣,依靠人眼的觀察造成的人為誤差較大.在測量玻璃磚的折射率實驗教學(xué)中引入現(xiàn)代機器視覺技術(shù),使用HALCON圖像分析處理軟件可以實現(xiàn)快速和非接觸式測量,提高速度和精確度,同時向?qū)W生演示機器視覺中圖像處理和分析的原理并講解相關(guān)的光學(xué)知識,擴展學(xué)生的視野.
HALCON可以把像素的顏色、亮度等信息轉(zhuǎn)變成數(shù)字信號,并對這些信號進行各種運算,根據(jù)長度、寬度、面積、位置等特征來抽取目標(biāo).再根據(jù)預(yù)設(shè)的允許度和其他條件輸出結(jié)果,包括尺寸、角度、坐標(biāo)、個數(shù)、合格/不合格、有/無等,實現(xiàn)自動識別功能.圖像處理的主要流程如圖1所示.
圖1 HALCON處理基本流程
(1)從相機中采集圖像.
(2)圖像的顏色信息由紅、綠、藍3種顏色組合而成,將圖像的顏色、亮度等信息轉(zhuǎn)化成數(shù)值為0~255的紅、綠、藍或其他通道灰度值圖像,越亮的像素點灰度值越大.
(3)通過濾波算法消除噪聲或者通過函數(shù)變換提高對比度,這類似于相機軟件的濾鏡功能.預(yù)處理步驟可以根據(jù)實際情況取舍.
(4)選擇灰度值的閾值區(qū)間,分割出感興趣的區(qū)域.
(5)對感興趣區(qū)域進行開運算或閑運算等形態(tài)學(xué)處理,分割成若干個小區(qū)域.
(6)根據(jù)面積、寬度、高度、曲率等特征從若干個小區(qū)域中選擇需要輸出的區(qū)域.
(7)輸出圖像處理結(jié)果.
(1)在一張空白的紙張上任意畫出一條直線,將玻璃的邊界對準(zhǔn)直線,選擇適宜的入射角度和位置.
(2)使手機鏡頭垂直玻璃的入射邊界,在黑暗的環(huán)境下拍照以避免其他光源的干擾.
(3)使用HALCON圖像處理軟件處理所采集的圖片,并輸出測量結(jié)果.
需要注意的是在整個實驗過程中所有實驗器材位置變化不能太大,也可以將所有器材固定.
3.1.1 讀取相機原圖并轉(zhuǎn)化為灰度值圖像
首先讀取圖片,如圖2(a).再將圖片轉(zhuǎn)換為灰度圖像,得到圖2(b).圖中入射光線非常明亮而其他區(qū)域較暗.按住CTRL鍵并將鼠標(biāo)移到入射光線可以查看其灰度值達到最大值255.
(a)相機采集原圖
3.1.2 閾值分割
該實驗中圖像噪聲較少,對比度高所以沒有進行預(yù)處理.先截取入射光線可能出現(xiàn)的范圍的圖像,再對所截取的圖像閾值處理提取感興趣區(qū)域.因為入射光線灰度值很高,所以閾值區(qū)間選為245~255,可以得到圖3所示狀態(tài).其中紅色部分即為符合閾值的感興趣區(qū)域.
圖3 感興趣區(qū)域
3.1.3 形態(tài)學(xué)處理和提取特征
閾值分割出的感興趣區(qū)域不僅包括入射光線,還包括其他的干擾點,并且區(qū)域內(nèi)部有空洞.對感興趣區(qū)域進行閉運算形態(tài)學(xué)處理,填充內(nèi)部空洞并分割出幾個不同大小和形狀的小區(qū)域.這些小區(qū)域可以用不同顏色區(qū)分,將背景去掉后可以很容易區(qū)分.從中提出面積最大且長度最長的區(qū)域即是入射光線.形態(tài)學(xué)處理和特征提取如圖4所示.
(a)形態(tài)學(xué)處理得出幾個小區(qū)域
3.1.4 輸出入射光線所在直線
提取出入射光線的區(qū)域后,利用算子畫出該區(qū)域?qū)?yīng)的最小矩形即入射光線所在直線,并將該直線在灰度圖中顯示,如圖5所示.識別入射光線的相關(guān)代碼如圖6所示.
圖5 入射光線所在直線
圖6 識別入射光線的代碼
識別入射面和折射光線的步驟與識別入射光線步驟類似,在代碼參數(shù)設(shè)置上會有所差異,這里就不再贅述.
如圖7所示,識別出了入射光線、入射面和折射光線后計算并輸出入射角、折射角和折射率.由運行程序得出矩形玻璃入射角為57.752 9°,折射角為34.312 8°,折射率為1.500 33,保留兩位小數(shù)為1.50.
圖7 矩形玻璃的檢測結(jié)果
再用相同的程序代碼檢測半圓形玻璃的折射率,得出半圓形玻璃的入射角為59.797 5°,折射角為35.115 7°,折射率為1.502 45,保留兩位小數(shù)為1.50,檢測結(jié)果如圖8所示.
圖8 半圓形玻璃的檢測結(jié)果
普通玻璃的折射率為1.5~1.8,筆者也使用激光筆以人工測量方法多次測量了該玻璃的折射率,得出的平均折射率為1.50,如表1所示.該程序的檢測結(jié)果也為1.50,因此該實驗應(yīng)該是可靠的.
表1 人工測得玻璃磚的折射率
將此代碼和硬件做一些改進,就能實現(xiàn)從相機中實時采集圖像并處理,可替代人工快速準(zhǔn)確地識別玻璃的折射率是否合格.通過該程序測量玻璃折射率不僅提高了課堂效率,還讓學(xué)生在學(xué)習(xí)課本上光學(xué)知識的同時知道了現(xiàn)代機器視覺技術(shù)是如何處理和分析圖片中的光學(xué)信息,以及光學(xué)知識在工業(yè)生產(chǎn)中的應(yīng)用和科學(xué)知識給社會帶來的變革.物理學(xué)的發(fā)展和社會、技術(shù)、環(huán)境的發(fā)展是息息相關(guān)的,在教學(xué)過程中特別是物理實驗中引入現(xiàn)代技術(shù)輔助教學(xué)是教育時代性的體現(xiàn),也是提高學(xué)生和老師STSE素養(yǎng)的重要途經(jīng).