魏源,孫富昱,劉力雙
(北京信息科技大學光電信息科學與工程系,北京100089)
隨著數字化技術在當今生活中占得比重越來越高,數字圖像處理的必要性日益增加。它綜合了光學、機械、電子、計算機等多方面的技術應用,涉及到計算機、模式識別、圖像處理、信號處理、人工智能、光機電一體化等多個領域。《數字圖像處理》是隨著計算機和信息技術發展應運而生的一門新興課程,已經成為信息類專業本科生的重要專業課[1]。該課程主要講授如何通過使用計算機對待操作的圖像信息進行處理的方法與技術,具體處理過程如降噪、銳化、特征提取、增強等。課程通過上述處理過程實現對圖像的質量的改善,如亮度增強、顏色轉換等;實現對圖像特征信息的提取,如邊緣檢測、顏色特征提取等;實現圖像的數據變換,多應用于圖像的傳輸過程。
MATLAB有強大的數字圖像處理工具箱,用它進行實驗,省去了復雜的編程過程,能大大地簡化程序,從而把精力集中在算法的研究上,這些特點特別適合圖像處理實驗教學[2]。數字圖像處理技術和視覺檢測技術的理論與實驗操作的高效結合,是將該技術應用于實踐的基礎。本文設計并制作基于MATLAB的學生用視覺檢測實驗系統。
本系統旨在提高學生的動手能力與編程能力,給高校教師和學生更大的系統設計空間,因此開放性較高,滿足根據不同被測物體材質與測量環境而針對性提供光源、鏡頭、相機等硬件設備的現實要求。本系統主體由結構硬件部分與控制部分構成。結構硬件部分系統設計細分如下:平臺底座、載物臺、鏡頭升降及其移動結構、光源切換結構。控制部分由軟件編程與硬件電路構成。
下文以2020年北京信息科技大學視覺檢測課設為例,以學生視角展示利用該系統實現MATLAB GUI界面設計、顏色識別和精密工件尺寸參數測量功能。下文部分涉及系統功能實現原理和方法、系統功能實現過程、結果和誤差分析等內容。
(1)MATLAB GUI界面設計
①掌握MATLAB軟件與GUI的基本操作方法。
②采用MATLAB編寫GUI界面,實現可讀入計算機內存儲的圖片顯示。
③實現USB相機的圖像采集和實時顯示。
(2)顏色識別
①掌握視覺檢測系統的圖像顏色識別算法設計。
②實現讀入計算機圖片進行識別。
(3)精密工件尺寸參數測量
①掌握視覺檢測系統的標定算法設計,并選擇標定方法,實現標定程序,并完成系統的標定。
②掌握視覺檢測系統的工件參數提取算法設計,實現如下圖工件圖像的檢測和定位。

圖1 待測工件圖
(1)MATLAB GUI界面功能實現原理與方法
通過使MATLAB編寫程序實現利用GUI界面圖像采集、實時顯示和圖像存儲功能。利用MATLAB的GUI進行視覺檢測系統的課程設計好處在于其實時性高、互動性強、自由度高、模塊性高,采用GUI交叉設計的方法可實現多個模塊進行互通互聯,可以實現主GUI及其附屬功能GUI的統一調配管理,展現了其強大的用戶互動能力[3]。
學生通過選擇合適光源以及成像設備,調試好焦距后通過電腦端MATLAB軟件配對外設USB攝像頭實現對圖像的獲取。
(2)顏色識別實現原理與方法
圖像的彩色處理一般有RGB處理和HSV處理兩種。
①RGB模型
RGB模型基于三基色原理,適當選取三種基色如紅、綠、藍(并不唯一),將它們按照不同的比例合成,就會產生不同的顏色。其中合成的顏色的亮度取決于三基色的亮度之和,色度(色調和飽和度)取決于三基色各分量的比例。這三種基色彼此獨立,任一種基色不能由其他兩種基色配出。
通過圖2可以看到,三維立方體的三個軸分別是R、G、B,它所構成的顏色空間是一個單位立方體;三個坐標軸上的立方體頂點分別是紅、綠、藍;如果RGB三個分量相等產生的就是黑白灰顏色,其他比例時候合成就是彩色。

圖2 RGB模型
一般情況下多次拍攝一種顏色圖片,其RGB分量可能是有一定的波動范圍的(受光線、CCD噪聲等影響)。所以學生設計程序也是要有一定的區間范圍,而不是絕對的。此次課設任務需要識別的顏色信息中,有一些顏色很相近,采用RGB劃分可能需要劃分很精確,才可以做到精準識別,因此不采用此類辦法。
②HIS模型
HIS模型構成的顏色空間是一個棗核形的三維空間,由兩個底面對接在一起的圓錐體構成,如下圖所示。色調、飽和度和明度也是顏色的三個獨立特性,其中I與顏色無關,而H和S與人對顏色的感知是密切相關的。

圖3 HIS模型
本文中系統應用實例采取HIS模式獲取圖像顏色信息。因為I分量與圖像的彩色信息無關,H和S分量與人感受顏色的方式是緊密相連的。如圖3的棗弧形模型中下圓錐頂點為黑色,上圓錐頂點是白色,離黑色越近灰色越深,離白色越近則灰色越淺。在該模型中,一個切面圓內,到中心距離表示其飽和度,離中心越近飽和度越小,離中心越遠飽和度越大。規范HSI分量的范圍為H:0~180,S:0~255,I:0~255。
預設若干個顏色,設定其每一個顏色對應的HIS顏色分布區間。獲取圖像主要顏色信息,是要找到滿足預設顏色區間范圍內的最大面積的顏色。為實現上述過程應對圖像每一個像素點進行顏色判斷。讀取每一個像素點對應的HSV信息,并將其與預設顏色的顏色區間進行比較,從而確定其所屬顏色。下圖出標準顏色的HIS區間,其中個別顏色數據根據攝像頭采集圖像顏色信息的差異進行微調,更細分顏色如橘黃色、明黃色可根據對應HIS區間進行調整。

表1 標準顏色的HIS區間
(3)精密工件尺寸參數測量實現原理與方法
復雜閉合圖形都可通過基礎圖形變換和組合得到,因此對于基礎圖形如四邊形、橢圓、圓的參數測量精度將直接影響到整個系統的工作精度。課程要求對2.1.3 所示工件圖像中各個工件樣本實現參數測量。本文將重點闡述橢圓、四邊形的參數測量原理與方法。
標定方法一般可分為兩類,一類為不考慮畸變的線性標定方法,這種情況下一般是采用了經過像差校正的鏡頭,而且測量和標定都采用圖像中心區域,畸變帶來的誤差很小,不考慮畸變使得圖像處理變得簡單,需要考慮的參數少;另一類為考慮畸變的標定,即當鏡頭畸變較大時,標定就需要考慮畸變情況,從而在測量時對畸變帶來的誤差加以修正。本次工件參數測量的采集圖片不存在圖像畸變。
學生實驗難點之一是將圖像的像素空間與實物空間建立聯系,獲取圖像實際尺寸與圖像像素之間轉換關系,并建立測量坐標系完成系統標定。根據兩點坐標公式就可以求出實際該工件左下頂點和右下頂點坐標距離,然后利用“單位像素對應長度計算出圖像實際尺寸與圖像像素之間轉換關系。
建立測量坐標系需要完成坐標轉化,即將某點在當前圖像坐標系中的坐標,轉換到測量圖像坐標系中的坐標。以實際工件左下的頂點作為坐標系原點,下側邊緣作為X軸。則能夠獲得兩個坐標之間的轉換關系。某點圖像坐標系中坐標(X,Y),某點在測量坐標系中坐標(X’,Y’)。

圖4 圖像空間坐標系
轉換公式為:

①橢圓工件尺寸參數測量
調用成型函數“fit_ellipse.m”橢圓擬合程序中時用的是二次曲線標準化法進行橢圓擬合。
其原理是:橢圓上的點在平面坐標系下的方程為二次多項式,為了獲得標準曲線方程,通常需要兩步,第一步是對平面坐標系的坐標進行擬合,確定平面坐標系下的二次曲線方程系數;第二步是通過坐標系之間的平移和旋轉消去二次混乘項和一次項,求得標準坐標系下的曲線方程,進而確定橢圓參數。表示在某平面二次曲線上觀測的n個點的坐標,二次曲線方程可表示為:

式(3)中,a0,a1,…,a5為待定系數,對坐標作正規化處理后,二次曲線方程可表示為:


式(5)中:

參數a'1,a'2,…,a'5的迭代初值可以取為0,對所有測量點列出誤差方程,組成法方程后求解參數改正數,并迭代至改正數收斂,從而求得曲線方程系數。標準化后橢圓的幾何特征參數可表示為:
橢圓中心坐標:

長半軸方位角:

短半軸方位角:

②四邊形工件尺寸參數測量
擬合四邊形各邊用到了最小二乘擬合的原理:已知離散點上的數據集,即已知在點集上的函數值,構造一個解析函數(其圖形為一曲線)使在原離散點上盡可能接近給定的值。
設x和y之間的函數關系由直線方程

給出。式中有兩個待定參數,a0代表截距,a1代表斜率。對于等精度測量所得到的N組數據(xi,yi),i=1,2,…,N,xi值被認為是準確的,所有的誤差只聯系著yi。下面利用最小二乘法把觀測數據擬合為直線。
用最小二乘法估計參數時,要求觀測值yi的偏差的加權平方和為最小。對于等精度觀測值的直線擬合來說,可使:

最小即對參數a(代表a0,a1)最佳估計,要求觀測值yi的偏差的平方和為最小。
根據式(12)的要求,應有:


整理后得到正規方程組:

解正規方程組便可求得直線參數a0和a1的最佳估計值a?0和a?1。即:

(1)MATLAB GUI界面功能實現過程
MATLAB GUI設計的過程分為兩部分,第一部分為獲取攝像頭的參數,第二部分為按鍵及圖像窗口的設置及編程。
首先需要在MATLAB中安裝攝像頭外部支持以調用攝像頭,安裝完畢后,點擊MATLAB菜單中App里面的Image Acquisition,在彈出的右側窗口里可以選擇要使用的攝像頭。選取完畢后,從右下角的窗口中獲取該攝像頭的參數。

圖5 攝像頭的參數
第二部分為按鍵及圖像窗口的設置及編程。根據本次實驗目的分析,界面分為兩部分,顯示窗口區域和按鍵操作區域。顯示窗口區域中包含讀取計算機圖片窗口、攝像頭的實時顯示窗口和圖像采集窗口。按鍵操作區域應包含響應操作功能的按鍵。下面進行對按鍵及圖像窗口的編程,選中對象右擊——點擊View Callbaks,選中Callback.跳轉到.m文件對應位置,并對代碼進行編輯。設置獲取圖片的位置及名稱,將讀取圖片顯示在圖像窗口1中。將獲取的攝像頭參數粘貼在videoinput的括號內,并用imshow函數實現USB攝像所頭采集圖像的顯示。將攝像頭實時畫面顯示在圖像窗口2中。用getsnaoshot語句實現攝像頭當前畫面的捕捉,并將捕捉的畫面顯示在圖像窗口3中。最后,設置保存圖片的位置及名稱。
(2)顏色識別功能實現過程
因GUI有實時性高、互動性強、自由度高、模塊性高特點,實現顏色識別中,將結果顯示在GUI界面。讀入圖片獲取的是RGB分量,通過函數rgb2hsv轉換成HSV模型分量。認為當前圖片同一顏色像素最多的即為當前圖片主要顏色信息,因此設置了顏色計數變量。通過行列遍歷的方式,掃描圖片上每一點,并判斷其顏色,每次判斷一個點就把該顏色的計數加1。找到顏色最多的點,即為當前圖片顏色顯示,結果以文字形式顯示在GUI界面靜態文本框中。
(3)精密工件參數測量功能實現過程
因GUI有實時性高、互動性強、自由度高、模塊性高特點,實現精密工件參數測量中,將結果顯示在GUI界面。工件的尺寸參數測量部分設計過程分為兩部分,第一部分獲得圖像中的像素和實際坐標之間的比例轉換關系及實現測量坐標系的建立,第二部分為工件的擬合部分。
在第一部分,學生需要測定的參數包括以知實際長度線,在圖像坐標系下,其左坐標點和右坐標點;單位像素對應的實際長度比例關系;圖像坐標系與測量坐標系的偏轉角。目前已知工件圖內框的下邊框的實際長度是36mm,選擇邊框左下交點作為測量坐標系的原點。要求首先在圖像坐標系下,獲取工件邊框左下點和右下點的坐標并計算坐標距離。
第一部分實施步驟如下:
(1)讀入工件圖,對工件圖經行灰度化和二值化,采用腐蝕算法對圖片經行腐蝕。用原二值化圖像減去經過腐蝕后的圖像,獲得工件圖的邊緣圖像,如圖6所示。

圖6 腐蝕工件圖像
(2)采用MATLAB自帶輪廓跟蹤算法函數bw?boundaries獲得圖像邊緣并分類,為直線擬合做準備。
(3)通過求兩直線交點方式,保證左下點及右下點坐標值的精度。學生需要分別對左、下、右三條邊進行擬合。根據所獲得的三條邊的斜率和截距求交左下交點坐標和右下交點坐標。
已知任意相交兩直線,其交點坐標可以通過如下關系獲得,過程如下:
設兩直線表達式如下:

求出角的坐標(X,Y),p1(2)是第一條直線方程中第一個元素。通過上述關系就可求出交點。進行代數計算可獲得較為準確的圖像坐標距離,進而求得圖像實際尺寸與圖像像素之間轉換關系。
第二部分實施步驟如下:
(1)橢圓擬合實現過程
首先將橢圓輪廓單獨提取出來,利用坐標轉換公式轉換其坐標系,最后調用橢圓擬合函數,輸出橢圓擬合圖像。
(2)四邊形擬合實現過程
首先將其輪廓單獨提取出來,利用坐標轉換公式轉換其坐標系,然后用最小二乘法擬合直線,并輸出擬合結果,最后利用擬合直線求出所需參數。分別對四條邊長區域進行遍歷,分別獲得四條直線的相關參數,然后分別對四條直線使用polyfit函數進行最小二乘擬合,再利用polyval函數生成擬合直線的表達式。擬合的四邊形如圖8所示。

圖7 橢圓擬合圖

圖8 四邊形擬合圖
在參數計算部分中,首先需要求出四個角的坐標,利用公式:

求出角的坐標(X,Y),p1(2)是第一條直線方程中第一個元素。
再利用公式:

計算出每條邊邊長。
最后利用公式:

求出四個角的角度。其中a、b、c為所求角和角的兩邊確定的三角形的三條邊長。
(1)MATLAB GUI界面
如圖9所示,設計GUI界面由3個圖像框,以及4個按鍵組成。其中按鍵1實現打開攝像頭功能,按鍵2實現保存圖片功能,按鍵3實現讀取圖片功能,按鍵4實現退出功能。

圖9 按鍵1、按鍵2執行結果

圖10 按鍵3選取目標文件圖像

圖11 按鍵3執行結果
(2)顏色識別
打開GUI界面,點擊“選取圖片”按鍵,便可以從計算機中選取相應的顏色識別圖片。選取后,選取的圖片會顯示在圖形窗口里,GUI界面上標有“顏色”字樣的動態文本框內會自動顯示選取圖片的顏色識別結果。再次點擊“重置”按鍵,可重置內容并重新選取待識別圖像并識別圖像顏色。進行下一幅圖片的顏色識別。點擊“退出”按鍵,可以關閉GUI界面。圖像顏色識別的GUI界面如圖12。

圖12 紅色識別案例
(3)精密工件參數測量
學生分別對最初的測試圖片測量結果、修改后的測試圖片測量結果和評比圖片測試結果進行了誤差分析。并將表格中,相對誤差大于1%的值進行了標注,如圖13。
測得的評比圖片的工件參數也十分精確,誤差也達到了評分標準的最好要求。橢圓的短軸雖然誤差小于0.1mm,但是相對誤差大于1%。經分析,應該是因為橢圓短軸的數值過小導致的其相對誤差過高。

圖13 誤差分析
為提升理工科學生們掌握數字圖像處理技術和視覺檢測技術的實踐應用的能力,培養動手能力與設計能力,探索出符合OBE理念的教學模式。本文在《數字圖像處理》課程理論基礎上,提出完整的夠鍛煉學生的實踐動手能力的視覺檢測實驗系統的設計思路。系統應用實例提供對圖像信息采集處理的應用案例的教學實驗應用,根據不同課程需求可提供不同實驗的穩定的實驗環境。該系統貼合教學實踐目標,能有效激發學生興趣與提升學生實踐能力,將有效提高教學質量。