<source : greatway9999>

一、前言

影像分類一直是為人所熟知的人工智慧應用之一,除了用Python外,如果可以用LabVIEW來實現,或許可以在真實場域應用中,多了許多可能性。

本例為巧克力的分類,計有 Cup、Truffle、Caramel、Supreme、Nougats等5個類別。

為了提高分類的準確度,影像前處理的工作是不可少的。如何讓圖片的特徵更明顯,同時減少其他雜訊的影響,是個值得好好思考的問題。

在本例中,先利用反轉,讓目標圖像更明顯,接著透過二值化的手法,簡化辨別資訊。再移除不必要的邊界、雜點等手法進行圖像修飾。

待影像前處理的工作完成後,即開始針對目標圖像一一標記,再做訓練的動作。最後,再進行測試。

以 LabVIEW實現的流程圖如下。



步驟1.讀圖



步驟2.利用Vision Assistant進行資料前處理

選擇 Vision Assistant 程式方塊。


進入 Vision Assistant後,在 Region of Interest中選擇 "Full Image",接著選擇 "Edit" 開始進行資料前處理的動作。

2-1 Reverse

首先選擇 Lookup Table功能方塊 ,選擇 "Reverse" 將圖片進行反轉,目的是為了凸顯目標圖像。




處理完後,圖片呈現如下圖。


2-2  Clustering

接著選擇 Threshold 的功能方塊,在 Look For位置選擇 Bright Objects。在 Threshold Type選擇 Auto Threshold: Clustering。





處理完後,圖片呈現如下圖。

2-3 Adv. Morphology (Remove borders、Remove small objects、Fill holes)

接著選擇3個 Adv. Morphology的功能方塊,分別進行 Remove borders、Remove small objects、Fill holes。

Remove borders的目的是要把目標圖片外的外框資訊移除。

處理完後,圖片呈現如下圖。



Remove small objects的目的是要把目標圖片外的雜訊移除。

處理完後,圖片呈現如下圖。


Fill holes的目的是要把目標圖片內的洞補滿,提高物件辨識的準確率。




2-4 Basic Morphology (Close Object、Erode Object)

利用 Basic Morphology功能方塊,選擇 Close Object,將目標圖片做些許的填補修飾。

由於部分目標圖片相連,會影響辨識的準確率,因此利用 Erode Object將相連的圖片分離。


Close 後,圖片呈現如下圖。



Erode後,圖片呈現如下圖。


2-5 Equalize

最後為了讓圖片不會偏暗或偏量,在 Lookup Table 中,選擇 "Equalize" 進行均衡化。





截至目前為止,影像前處理的工作告一段落。

步驟3.訓練與分類物件



點選 Edit Classifier File,進行新增類別、圖片訓練等相關設定。



首先利用 "Add Class" 新建所需類別,如下圖所示。



接著一一圈選目標圖案,並對照類別 (ex. Cup),點擊 "Add Sample"。這個動作其實就是機器學習中的標記圖片。



完成所有圖片的標記,點選 Edit Classifier,就會看到所有的標記資訊。



接著,點選 Classify 標籤,然後點擊 Train Classifier,進行訓練的動作。完成後,存檔。系統就會把些訓練權存檔。



步驟4.測試成效

利用 Select Image,就可以觀察訓練的成效。



#圖像分類

0 留言