天天看點

LabVIEW色彩比對實作顔色識别、顔色檢驗(基礎篇—13)

目錄

1、顔色識别

2、顔色檢驗

色彩比對(Color Matching)是将模闆圖像與待測圖像或其中某一區域的顔色進行比較,判斷它們是否相同或相近的過程。它可以用于顔色識别、顔色檢驗以及彩色對象定位等基于色彩資訊比較的應用程式。

色彩比對通常分為色彩學習(Color Learning)和色彩比較(Color Comparing)兩步。

在色彩學習階段,系統會對模闆圖像或區域的顔色資訊進行量化,并基于各種顔色及對應像素占總像素的百分比來生成顔色特征向量;

在色彩比較階段,系統會将模闆和待測圖像的顔色特征向量進行比較,并傳回它們之間的相似度名額。

如何才能判斷兩幅圖像中的顔色是否相同呢?

當然是從圖像中不同顔色的像素統計資訊入手。對于兩幅尺寸和顔色相同的圖像來說,圖像中每種顔色的像素數均相同。對于尺寸不同但顔色相同的圖像來說,圖像中每種顔色的像素數不相同,但是兩幅圖像中每種顔色的像素數占總像素數的比例卻相同。考慮通用性,可以将圖像中各種顔色對應的像素數占圖像總像素數的比例作為顔色比較的特征向量。

但是,若對圖像中所有顔色都進行統計,生成的特征向量就會很大,這極不利于系統對實時性的要求。是以還要再進一步對特征向量進行優化。

由于HSL色彩空間具有亮度和色彩資訊分離的特點,是以可以将圖像轉換至HSL空間中,再基于色調和飽和度構成的色盤對顔色進行量化。這樣得到的顔色特征向量不僅不會受到亮度變化的影響,還能根據程式對顔色分辨率的需要,調整量化等級以減少特征向量的資料量。

下圖顯示了提取圖像顔色特征向量的過程:

LabVIEW色彩比對實作顔色識别、顔色檢驗(基礎篇—13)

色譜提取

首先彩色圖像被轉換至HSL色彩空間,以分離亮度和顔色資訊。由于亮度128對應的色盤最大(中間),是以可以僅抽取該色盤進行量化。量化時先根據對顔色分辨率的需要,将色盤等分為多個扇區。顔色敏感度(color sensitivity)參數用來确定色盤具體被劃分為多少個扇區。

Nl Vision采用低、中、高3擋顔色敏感度值來控制顔色的分辨率。低擋将色盤分為7個扇區,中擋将色盤分為14個扇區,高擋則将色盤分為28個扇區。扇區越多,說明量化的分辨率越高。色盤被等分為扇區後,就可以進一步沿着飽和度方向進行分割。Nl Vision将各扇區沿飽和度方向分為兩塊,具體分割位置由飽和度門檻值(saturation threshold)決定,它控制了每個扇區分為兩塊的内圓的半徑。

在色彩學習階段,機器視覺系統會從模闆圖像或區域中提取其色譜。在比對階段,機器視覺系統同樣會從目标圖像中提取其色譜,并比較其與模闆圖像色譜的差異。而色譜之間的差異則可使用兩個向量之間的曼哈頓距離來定量評價。

在實際中,為了補償色彩量化過程中可能發生的一些錯誤,一般都會在計算色譜之間的距離之前使用模糊權重函數對色譜進行權重。通過色譜間的曼哈頓距離(各元素間差異的絕對值求和),最終生成一個在0~1000之間的表示差異度的值。下圖顯示了上述色彩比較過程,其中0表示色譜之間沒有相似性,而1000分表示完美比對。

LabVIEW色彩比對實作顔色識别、顔色檢驗(基礎篇—13)

綜上所述,色彩比對實際上就是比較圖像或圖像區域的色譜與模闆圖像的色譜是否相同或相近的過程。在學習階段,機器視覺系統會提取指定模闆圖像或選擇圖像的色譜,其中圖像的顔色資訊可以由一種或多種顔色組成。色譜提取過程可将圖像中的三維顔色資訊量化表示為一維色譜。在顔色比對階段,機器視覺系統會提取待測圖像中的色譜,并與學習到的模闆色譜進行比較,最後計算色譜的比對度。

Nl Vision使用位于LabVIEW的視覺與運動→lmage Processing→Color Processing函數選闆中的IMAQ Color Learn和IMAQ ColorMatch函數分别封裝了上述色彩學習和比對過程。基于得到的色譜及其比對度資料,機器視覺系統可設定門檻值來實作顔色識别、顔色檢測、顔色定位以及其他基于色彩比較的應用程式,如下圖所示:

LabVIEW色彩比對實作顔色識别、顔色檢驗(基礎篇—13)

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

LabVIEW色彩比對實作顔色識别、顔色檢驗(基礎篇—13)

顔色識别(Color ldentification)是指從預先定義的模闆圖像色彩中搜尋與待測圖像顔色能最佳比對者,以确定待測圖像顔色的歸屬。

顔色識别應用一般會預先學習各種模闆圖像的顔色,并将其連同圖像标簽儲存至資料庫中。通過将被測圖像的顔色資訊與資料庫中的記錄進行比較,擷取與其最接近的記錄,并傳回對應的圖像标簽。

通過一個一個顔色識别的執行個體程式了解其使用方法,程式設計思路如下所示:

程式總體分為模闆圖像顔色學習和顔色比對兩部分,一開始先用For循環将存放在檔案夾中的6幅模闆圖像逐讀入記憶體,并用IMAQ ColorLearn提取各圖像的色譜,以供後續比對過程進行比較;

随後,程式将待測圖像UUT.jpg讀入記憶體,并由For循環中的IMAQ ColorMatch計算其色譜,并與之前由IMAQ ColorLearn學習到的6個色譜逐一進行比較,以确定與之比對的圖像;

由于IMAQ ColorMatch可對同一ROl中的多個輪廓進行顔色比對,是以其傳回的比對标記(Flag)和比對度分值(Score)均為數組,其元素的值與ROI中輪廓的順序對應;

對于整幅圖像比對來說,相當于隻有一個ROl和一個輪廓,是以僅取首個元素的值即可。由于程式設定了比對度的門檻值為800,是以從運作結果可以看到,被測圖像的顔色與第5幅模闆圖像的顔色最比對。

程式實作如下所示:

LabVIEW色彩比對實作顔色識别、顔色檢驗(基礎篇—13)

程式效果如下所示:

LabVIEW色彩比對實作顔色識别、顔色檢驗(基礎篇—13)

程式資源下載下傳請參見:

https://download.csdn.net/download/m0_38106923/20712053

顔色檢測(Color Inspection)是指通過檢查産品顔色是否與預知色彩相同來實作産品的缺陷檢測。如檢測産品是否缺少或有放錯的彩色部件,搜尋彩色部件以及進行彩色标簽的缺陷檢測等。

通過顔色檢測來檢查汽車保險絲安裝情況的執行個體,了解其使用方法,程式設計思路如下所示:

程式一開始先讀取黃色保險絲模闆圖像,并用IMAQ ColorLearn學習模闆圖像的色譜;

此後,While循環逐個将待測圖像檔案夾中的圖像讀入記憶體,并調用IMAQ ColorMatch進行顔色比對;

由于指定的ROI中包含兩個對應于待測保險絲位置的矩形輪廓,是以IMAQ ColorMatch傳回的比對标志和比對分值數組中的前兩個元素有效,分别按順序對應于對ROI中的兩個輪廓位置的檢測結果;

根據傳回的比對标志的值是否為真,可以清楚獲知每個位置上的保險絲是否被正确安裝。隻有當兩個位置上的保險絲均被正确安裝時,整個測試才能通過。

LabVIEW色彩比對實作顔色識别、顔色檢驗(基礎篇—13)

程式能檢查第二行的第二和第三個位置是否正确安裝了型号為20的黃色保險絲。下面效果還顯示了檢測到ROI第一個輪廓對應位置未安裝保險絲的情況。同樣,當這兩個位置安裝的保險絲為其他類型時,測試也不能通過。

LabVIEW色彩比對實作顔色識别、顔色檢驗(基礎篇—13)
https://download.csdn.net/download/m0_38106923/20713069