LabVIEW色彩分類識別(基礎篇—15)
色彩分類(Color Classification)用于根據樣本的顏色信息對其進行分類識別。與單色目標的分類識別類似,色彩分類過程也包括訓練和分類兩個階段。
訓練階段主要用來基于各種彩色樣本創建分類器。
它從每個參與訓練的樣本中提取色彩特征,并將該特征與類標簽進行關聯以備后用。
分類階段則主要用于從待分類圖像中提取顏色特征,并參照分類器信息對其分類。
分類的方法可采用最鄰近法、K-鄰近法、最小平均距離法或支持向量機分類法。
色彩分類的特征提取過程并不直接使用色譜,而是基于HSL空間構建分辨率可選的(高、中、低3擋)的一維色彩特征向量。它先將彩色樣本圖像轉換到HSL色彩空間,然后計算彩色樣本的色調、飽和度和亮度分量的直方圖。對于每個由單字節表示的顏色分量直方圖,保留色調和飽和度分量直方圖中的256個值對應的信息,但是只保留亮度分量直方圖中8個亮度值相關的信息。
通過這種對亮度分量直方圖的抑制,色彩特征向量中的顏色信息會更突出,亮度信息會被抑制在8種灰度之內。將包含256個色調信息和256個飽和度信息的兩個直方圖,與包含8個亮度信息的直方圖進行組合,即可得到高分辨率的色彩特征向量。
中分辨率和低分辨率色彩特征向量是通過先提取高分辨率色彩特征向量,然后再對其應用動態遮罩(Dynamic Mask)獲得的。動態遮罩基于參與訓練的樣本創建,用于從高分辨率色彩特征向量中選出最能代表某個類的色調和飽和度直方圖信息。在對于每個新添加的彩色樣本學習時,動態遮罩通過下述過程被創建或更新:
對于每個類,基于其中每個樣本的色調和飽和度的直方圖,計算該類的平均色調和飽和度直方圖。
基于所有類的平均色調和飽和度直方圖的均值直方圖,計算各類的平均色調和飽和度直方圖上元素值的標準差。
從類平均色調和飽和度直方圖元素值中依次選出128個標準偏差最高的值對應的位置作為遮罩,用于生成中分辨率色彩特征向量。
或者依次選出64個標準偏差最高的值對應的位置作為遮罩,用于生成低分辨率色彩特征向量。
掃描各類的動態遮罩位置對應的值,確保其中至少包含一個最大色調和一個最大飽和度直方圖值。
Nl Vision提供了兩種色彩訓練方法,一是使用NI色彩分類訓練器離線完成色彩訓練(位于:National InstrumentsVisionUtilityColor Classification Training InterfaceColor Classification Training.exe),二是使用程序代碼在運行時完成色彩訓練。
NI色彩分類訓練器可以在進行色彩分類之前,先從多個采集到的彩色樣本圖像中提取高分辨率的色彩特征,并將該特征與類標簽進行關聯。若選擇了中分辨率或低分辨率,則訓練過程還會對高分辨率的色彩特征施加動態遮罩過程,獲得相應分辨率的色彩特征向量。隨后,訓練過程會將樣本的特征向量、樣本分類方法連同各個類的動態遮罩等信息一并保存在后綴名為clf的色彩分類器文件中。這樣在后續色彩分類過程中,就可從該文件中讀取這些信息,對彩色目標進行識別和分類。
下圖顯示了使用NI色彩分類訓練器為洗手液分類系統訓練色彩樣本時的程序界面。使用該工具可以打開收集到的彩色洗手液樣本圖像,從中選擇藍色、綠色或白色的瓶蓋分別作為類樣本進行訓練。訓練過程中,可對樣本進行編輯或刪除,訓練完成后得到的樣本色彩特征可保存在clf文件中以備后用。
Nl Vision還提供了對彩色樣本圖像進行訓練和分類的函數。它們位于LabVIEW的視覺與運動→Machine Vision→Machine Learning→Classification函數選板中,如下圖所示:

函數說明及使用可參見幫助手冊:

通過使用NI Vision色彩分類函數對洗手液進行分類的實例,了解色彩分類的使用,程序設計思路如下所示:
程序先用IMAQ Read Classifier File從NI色彩分類訓練器創建的色彩分類器文件Soap.clf中讀取學習到的樣本特征等信息;
隨后While循環中的代碼逐一取出待測圖像文件夾中的圖像,由IMAQ Classify或IMAQClassify Color Advanced對指定ROI區域的圖像色彩進行分類,返回其類別歸屬及分類和識別分值等信息。
IMAQ Overlay Text可以在圖像上以無損圖層的方式添加待測圖像的類名;
當用戶單擊STOP按鈕退出While循環后,程序會丟棄會話,釋放內存,然后退出程序。
程序實現如下所示:

*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。