色彩分類(Color Classification)用于根據樣本的顏色資訊對其進行分類識別,與單色目標的分類識別類似,色彩分類程序也包括訓練和分類兩個階段,
- 訓練階段主要用來基于各種彩色樣本創建分類器,它從每個參與訓練的樣本中提取色彩特征,并將該特征與類標簽進行關聯以備后用,
- 分類階段則主要用于從待分類影像中提取顏色特征,并參照分類器資訊對其分類,分類的方法可采用最鄰近法、K-鄰近法、最小平均距離法或支持向量機分類法,
色彩分類的特征提取程序并不直接使用色譜,而是基于HSL空間構建解析度可選的(高、中、低3擋)的一維色彩特征向量,它先將彩色樣本影像轉換到HSL色彩空間,然后計算彩色樣本的色調、飽和度和亮度分量的直方圖,對于每個由單位元組表示的顏色分量直方圖,保留色調和飽和度分量直方圖中的256個值對應的資訊,但是只保留亮度分量直方圖中8個亮度值相關的資訊,通過這種對亮度分量直方圖的抑制,色彩特征向量中的顏色資訊會更突出,亮度資訊會被抑制在8種灰度之內,將包含256個色調資訊和256個飽和度資訊的兩個直方圖,與包含8個亮度資訊的直方圖進行組合,即可得到高解析度的色彩特征向量,
中解析度和低解析度色彩特征向量是通過先提取高解析度色彩特征向量,然后再對其應用動態遮罩(Dynamic Mask)獲得的,動態遮罩基于參與訓練的樣本創建,用于從高解析度色彩特征向量中選出最能代表某個類的色調和飽和度直方圖資訊,在對于每個新添加的彩色樣本學習時,動態遮罩通過下述程序被創建或更新:
- 對于每個類,基于其中每個樣本的色調和飽和度的直方圖,計算該類的平均色調和飽和度直方圖,
- 基于所有類的平均色調和飽和度直方圖的均值直方圖,計算各類的平均色調和飽和度直方圖上元素值的標準差,
- 從類平均色調和飽和度直方圖元素值中依次選出128個標準偏差最高的值對應的位置作為遮罩,用于生成中解析度色彩特征向量,或者依次選出64個標準偏差最高的值對應的位置作為遮罩,用于生成低解析度色彩特征向量,
- 掃描各類的動態遮罩位置對應的值,確保其中至少包含一個最大色調和一個最大飽和度直方圖值,
Nl Vision提供了兩種色彩訓練方法,一是使用NI色彩分類訓練器離線完成色彩訓練(位于:National Instruments\Vision\Utility\Color Classification Training Interface\Color 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回圈后,程式會丟棄會話,釋放記憶體,然后退出程式,
程式實作如下所示:

運行程式,顯示了分類程式檢測到綠色洗手液瓶子時的情況:
專案資源下載:https://download.csdn.net/download/m0_38106923/20889786
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/297226.html
標籤:其他
