Variation Model的主要原理是將待檢測的圖像與一張標准圖像作比較,找出待檢測圖像與標准圖像(ideal image)的明顯差異(也就是不良)。標准圖像可以采用幾張OK品的圖像訓練(training)得到,也可以通過對一張OK品圖像進行處理得到。訓練后得到標准圖像和一張variation圖像(variation image),variation圖像中包含了圖像中每個像素點灰度值允許變化的范圍。標准圖像和variation圖像用來創建一個variation model,如此,其他圖像就可以與variation model作比較了。
Variation Model方法中常用的算子:
創建一個ID為ModelID,寬為Width,高為Height,類型為Type的Variation Model,參數Mode決定了創建標准圖像和相應的variation圖像的方法。'standard'表示標准的訓練方法,標准圖像的位置是各訓練圖像位置的平均,'robust'表示魯棒的訓練方法,標准圖像的位置是各訓練圖像的中值,此模式在訓練圖像中可能存在ERROR時使用,'direct'表示標准圖像由單張圖像經過處理得到,由此方法得到的標准圖像只能應用prepare_direct_variation_model算子得到variation model。
get_variation_model( :
Image,
VarImage :
ModelID : )返回variation model中的標准圖像(Image)和variation image(VarImage),此算子主要用來檢視創建的variation model是否OK。
prepare_variation_model( : :
ModelID,
AbsThreshold,
VarThreshold : )設置variation model的絕對閾值和相對閾值。絕對閾值即待檢測圖像與標准圖像的差值,相對閾值即待檢測圖像與variation model與VarThreshold乘績的差值。
clear_train_data_variation_model( : :
ModelID : )清除variation model的訓練數據所占用的內存。
compare_variation_model(
Image :
Region :
ModelID : )待檢測圖像與variation model進行比較,超過閾值的區域在Rgion參數中返回。同threshold一樣,返回的區域被看做一個區域,可以使用connection算子進行連通性分析,然后根據區域的特征(如面積)對區域進行選擇。
clear_variation_model( : : ModelID : )釋放一個variation model的內存空間
PS:在model訓練和比較的時候,常常需要對圖像進行模板匹配,以使圖像准確對齊。
總結:
Variation Model使用標准圖像與待檢測圖像灰度值相比較,來判斷產品是否OK,適用於印刷品檢測及產品表面檢測。從實際算法過程可以看出,此檢測實際可分為兩部分,對於圖像中的大面積灰度一致區域,主要利用待檢測圖像與標准圖像(ideal image)比較得出差異區域,對於圖像中的邊緣位置(edges)區域,主要利用待檢測圖像與Variation圖像(variation image)比較得出差異區域。所以在實際應用中,應根據實際情況設置AbsThreshold和VarThreshold的值。
