機器視覺——(四,算法)


引言

前面對機器視覺的硬件做了一些系統的總結:

本篇就軟件部分,對機器視覺的算法處理進行大致概括分析。


一、算法(預處理算法、檢測算法)

在采集完圖像后,首先會對圖像進行預處理操作。保證圖像的對比度清晰,水平。方便后續圖像處理。

常用的圖像處理算法:

1,圖像變換(空域與頻域、幾何變換、色度變換、尺度變換)

  • 幾何變換:圖像平移、旋轉、鏡像、轉置;
  • 尺度變換:圖像縮放、插值算法(最近鄰插值、線性插值、雙三次插值);
  • 空間域與頻域間變換:由於圖像陣列很大,直接在空間域中進行處理,涉及計算量很大。因此,有時候需要將空間域變換到頻域進行處理。例如:傅立葉變換、沃爾什變換、離散余弦變換等間接處理技術,將空間域的處理轉換為頻域處理,不僅可減少計算量,而且可獲得更有效的處理(如傅立葉變換可在頻域中進行數字濾波處理)。

2、圖像增強:

圖像增強不考慮圖像降質的原因,突出圖像中所感興趣的部分。如強化圖像高頻分量,可使圖像中物體輪廓清晰,細節明顯;如強化低頻分量可減少圖像中噪聲影響。

  • 灰度變換增強(線性灰度變換、分段線性灰度變換、非線性灰度變換);
  • 直方圖增強(直方圖統計、直方圖均衡化);
  • 圖像平滑/降噪(鄰域平均法、加權平均法、中值濾波、非線性均值濾波、高斯濾波、雙邊濾波);
  • 圖像(邊緣)銳化:梯度銳化,Roberts算子、Laplace算子、Sobel算子等;

3、紋理分析(取骨架、連通性);

4、圖像分割:

圖像分割是將圖像中有意義的特征部分提取出來,其有意義的特征有圖像中的邊緣、區域等,這是進一步進行圖像識別、分析和理解的基礎。

(1)閾值分割(固定閾值分割、最優/OTSU閾值分割、自適應閾值分割);

(2)基於邊界分割(Canny邊緣檢測、輪廓提取、邊界跟蹤);

(3)Hough變換(直線檢測、圓檢測);

(4)基於區域分割(區域生長、區域歸並與分裂、聚類分割);

(5)色彩分割;

(6)分水嶺分割;

5、圖像特征:

(1)幾何特征(位置與方向、周長、面積、長軸與短軸、距離(歐式距離、街區距離、棋盤距離));

(2)形狀特征(幾何形態分析(Blob分析):矩形度、圓形度、不變矩、偏心率、多邊形描述、曲線描述);

(3)幅值特征(矩、投影);

(4)直方圖特征(統計特征):均值、方差、能量、熵、L1范數、L2范數等;直方圖特征方法計算簡單、具有平移和旋轉不變性、對顏色像素的精確空間分布不敏感等,在表面檢測、缺陷識別有不少應用。

(5)顏色特征(顏色直方圖、顏色矩)

(6)局部二值模式( LBP)特征:LBP對諸如光照變化等造成的圖像灰度變化具有較強的魯棒性,在表面缺陷檢測、指紋識別、光學字符識別、人臉識別及車牌識別等領域有所應用。由於LBP 計算簡單,也可以用於實時檢測。

6、圖像/模板匹配:

輪廓匹配、歸一化積相關灰度匹配、不變矩匹配、最小均方誤差匹配

7、色彩分析:
色度、色密度、光譜、顏色直方圖、自動白平衡

8、圖像數據編碼壓縮和傳輸:
圖像編碼壓縮技術可減少描述圖像的數據量(即比特數),以便節省圖像傳輸、處理時間和減少所占用的存儲器容量。壓縮可以在不失真的前提下獲得,也可以在允許的失真條件下進行。編碼是壓縮技術中最重要的方法,它在圖像處理技術中是發展最早且比較成熟的技術。

9、表面缺陷目標識別算法:
傳統方法:貝葉斯分類、K最近鄰(KNN)、人工神經網絡(ANN)、支持向量機(SVM)、K-means等;

10、圖像分類(識別):
圖像分類(識別)屬於模式識別的范疇,其主要內容是圖像經過某些預處理(增強、復原、壓縮)后,進行圖像分割和特征提取,從而進行判決分類。

11、圖像復原:

圖像復原要求對圖像降質的原因有一定的了解,一般講應根據降質過程建立“降質模型”,再采用某種濾波方法,恢復或重建原來的圖像。

二、現有的視覺檢測軟件/庫

1、做工業視覺檢測的公司有哪些?
比較出名的有:大恆圖像(亞洲Halcon最大代理商)、凌雲光技術(VisionPro視覺平台:印刷、3C電子、顯示屏、玻璃、線路板檢測)、大族激光(振靜系統:視覺激光焊接,定視覺位、缺陷檢測)、康耐視、基恩士、深圳精銳視覺、深圳市視覺龍科技有限公司、廣州超音速、深圳市創科自動化等等。

可二次開發的視覺系統:Labview、DVT、Halcon、OpenCV等。

2、常用的視覺檢測軟件/庫
視覺開發軟件工具 Halcon、VisionPro、LabView、OpenCV, 還有eVision、Mil、Sapera等。

(一)、Halcon:底層功能算法多,運算性能快,功能齊全,容易上手,開發項目周期短。非開源項目,商用收費,價格較貴。

         Halcon:Halcon是德國MVtec公司開發的一套完善的標准的機器視覺算法包,擁有應用廣泛的機器視覺集成開發環境。它是一套image processing library,由一千多個各自獨立的函數,以及底層的數據管理核心構成。其中包含了各類濾波,色彩以及幾何,數學轉換,型態學計算分析,校正,分類辨識,形狀搜尋等等基本的幾何以及影像計算功能。整個函數庫可以用C,C++,C#,Visual basic和Delphi等多種普通編程語言訪問。 Halcon為大量的圖像獲取設備提供接口,保證了硬件的獨立性。

(二)OpenCV:功能算法相對較多(比Halcon少),開源,可用於商用,開發周期較長(比Halcon長),有些算法要自己寫。

        OpenCV是一個基於(開源)發行的跨平台計算機視覺庫,可以運行在Linux、Windows和Mac OS操作系統上。其核心輕量級而且高效——由一系列 C 函數和少量 C++ 類構成,實現了圖像處理和計算機視覺方面的很多通用算法。OpenCV用C++語言編寫,它的主要接口也是C++語言。該庫也有大量的Python, Java and MATLAB/OCTAVE的接口,如今也提供對於C#, Ruby的支持。OpenCV可以在 Windows, Android, Maemo, FreeBSD, OpenBSD, iOS,Linux 和Mac OS等平台上運行。

OpenCV出身:OpenCV是Intel開源計算機視覺庫。 其核心由一系列 C 函數和少量 C++ 類構成,實現了圖像處理和計算機視覺方面的很多通用算法。 OpenCV 的特點擁有包括300多個C函數的跨平台的中、高層 API 跨平台:Windows, Linux; 免費(FREE):無論對非商業應用和商業應用;速度快;使用方便。

OpenCV具有以下的特征: (1)開源計算機視覺采用C/C++編寫。 (2)使用目的是開發實時應用程序。 (3)獨立與操作系統、硬件和圖形管理器。 (4)具有通用的圖象/視頻載入、保存和獲取模塊。 (5)具有底層和高層的應用開發包。

應用OpenCV能夠實現以下功能: (1)對圖象數據的操作,包括分配、釋放、復制和轉換數據。 (2)對圖象和視頻的輸入輸出,指文件和攝像頭作為輸入,圖象和視頻文件作為輸出。 (3)具有對距陳和向量的操作以及線性代數的算法程序,包括距陣、解方程、特征值以及奇異值。 (4)可對各種動態數據結構,如列表、隊列、集合、樹和圖等進行操作。 (5)具有基本的數字圖象處理能力,如可進行濾波、邊緣檢測、角點檢測、采樣與差值、色彩轉換、形態操作、直方圖和圖象金字塔等操作。

(6)可對各種結構進行分析,包括連接部件分析、輪廓處理、距離變換、各種距的計算、模板匹配、Hongh變換、多邊形逼近、直線擬合、橢圓擬合和Delaunay三角划分等。 (7)對攝像頭的定標,包括發現與跟蹤定標模式、定標、基本矩陣估計、齊次矩陣估計和立體對應。 (8)對運動的分析,如對光流、運動分割和跟蹤的分析。 (9)對目標的識別,可采用特征法和隱馬爾科夫模型(HMM)法。 (10)具有基本的GUI功能,包括圖像與視頻顯示、鍵盤和鼠標事件處理及滾動條等。 (11)可對圖像進行標注,如對線、二次曲線和多邊形進行標注,還可以書寫文字(目前之支持中文)。

(三)VisionPro
         VisionPro是美國康耐視Cognex公司提供全套視覺解決方案。VisionPro提供多種開發工具拖放式界面、簡單指令碼和編程方式等,全面支持所有模式的開發。用戶利用VisionPro QuickBuild™可以無需編程配置讀取、選擇並優化視覺工具,決定產品是否合格。用戶也可以利用C++、C#、VB及.NET開發管理應用程序。Vision Pro提供的.NET程序接口允許用戶采用面向對象的高級語言編程訪問所有工具,以高效開發客戶的專用視覺方案。

(四)LabView

         LabView是一種程序開發環境,由美國國 家儀器(NI)公司研制開發,使用的是圖形化編輯語言G編寫程序,產生的程序是框圖的形式。 LabView軟件是NI設計平台的核心,也是開發測量或控制系統的理想選擇。 LabView開發環境集成了工程師和科學家快速構建各種應用所需的所有工具,旨在幫助工程師和科學家解決問題、提高生產力和不斷創新。

三,HSV顏色識別-HSV基本顏色分量范圍

一般對顏色空間的圖像進行有效處理都是在HSV空間進行的,然后對於基本色中對應的HSV分量需要給定一個嚴格的范圍,下面是通過實驗計算的模糊范圍(准確的范圍在網上都沒有給出)。

H:  0 — 180

S:  0 — 255

V:  0 — 255

HSV(色度/飽和度/亮度)顏色空間是表示類似於RGB顏色模型的顏色空間的模型。根據色度通道(Channel)對顏色類型進行建模,因此在需要根據顏色對對象進行分割的圖像處理任務中非常有用。飽和度的變化代表顏色成分的多少。亮度通道描述顏色的亮度。

 

轉載於:機器視覺工業缺陷檢測的那些事(四、常用算法與庫)_yishuihanq的博客-CSDN博客_視覺缺陷檢測常用算法

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM