機器視覺(英語:Machine vision,簡稱「MV」) 是指用於自動檢測、分析的一種基於成像技術的方法,在工業自動化檢測、過程控制和機器人引導等領域得到了廣泛應用。機器視覺涵蓋了多種技術、軟件和硬件產品、集成系統、動作、方法和專業知識。機器視覺作為系統工程學科的一種,被認為不同於屬於計算機科學計算機視覺。它嘗試以新的方法整合現有技術,並應用於實際問題解決。機器視覺的整個過程包括規劃需求和項目細節,然後創建解決方案。在系統運行時,首先是成像,隨後是對圖像的自動圖像分析和所需信息的提取。

Thumb
1983年,Automatix英語Automatix(現成為歐姆龍的一部分)早期的機器視覺系統Autovision II在一個展銷會進行展示。三腳架上的相機向下對着一個淺色的桌子以將背光的照片展示在屏幕中,之後將進行連通區域提取

定義

「機器視覺」一詞存在多種定義,但但這些定義都包含用於自動從圖像中提取信息的技術和方法,這與圖像處理不同,後者的輸出是另一張圖像。提取的信息可以是簡單的好件/壞件信號,也可以是複雜的數據集,例如圖像中每個物體的身份、位置和方向。所提取的信息可以用於工業中的自動檢測、機器人和過程引導、安全監控和車輛引導等應用[1][2][3]。這一領域包括大量的技術、軟件和硬件產品,還有集成式系統、操作、方法和專業知識[3][4]。機器視覺在實際應用上是唯一能夠描述在工業自動化應用這些功能的術語;但這一術語在安全監控和車輛引導上則使用較少。作為一種系統工程學科,機器視覺被認為與計算機科學計算機視覺不同;機器視覺嘗試將已有的技術用新的方法集成到系統中,並將其用於解決工業自動化和其它應用領域的實際問題[3]:5[5]。這一術語也被自動成像協會(Automated Imaging Association)和歐洲機器視覺協會(European Machine Vision Association)等展銷團體更為寬泛地使用,將其囊括了許多與圖像處理相關的產品和應用[4]。但該術語最主要還是用來表示自動化檢測和工業機器人/過程引導的[6][7]:6–10[8]。而在近些年,計算機視覺和機器視覺兩大領域進行了更大程度的融合[9]:13

基於成像的自動化檢測與分揀

機器視覺系統最主要的應用是基於成像的自動化檢測與分揀,以及機器人引導[6][7]:6–10。在本章節,前者將簡稱為「自動化檢測」。整個過程包括規劃需求和項目細節,然後提供解決方案[10][11]

方法和操作順序

自動化檢測的第一步是圖像獲取英語digital imaging。這一步通常使用經過設計的相機、鏡頭和光源,以提供後續處理所需的差異化[12][13]。接着,系統將使用包含數位影像處理技術的軟件包和開發程序去提取所需信息,然後據此做出相關的決策(如通過測試/不通過測試等)[14]

設備

自動化檢測系統的組件通常包括光源、相機或其他成像設備、處理器、軟件和輸出設備[7]:11–13

成像

成像設備(如相機)可以與圖像處理的主單元合併(使用智能相機英語smart camera或智能傳感器)或分離[15][16]。將完整的處理功能包含在與相機相同的外殼中通常稱為嵌入式處理[17]。當二者分離時,當分開時,連接可以通過專用中間硬件、自定義處理設備或計算機內的幀採集卡進行,使用模擬或標準化的數字接口(如Camera LinkCoaXPress英語CoaXPress[18][19][20][21] 。機器視覺實現還使用能夠通過FireWireUSB千兆以太網接口直接連接(無需幀捕捉卡)到計算機的數字相機[21][22]

雖然傳統的(二維可見光)成像在機器視覺中最為常用,但其他替代方法包括多光譜成像英語Multispectral image高光譜成像以及各種紅外波段成像[23]、線掃成像、表面三維成像英語3D imaging和X射線成像[6]。機器視覺二維可見光成像的關鍵區別包括單色與彩色、幀率、分辨率,以及成像過程是否對整個圖像同時進行,這決定了它是否適用於移動過程[24]

儘管主流的機器視覺使用二維成像去解決問題,但三位成像目前正在行業中正成為一個不斷增長的小眾市場[25][26]。最常用的三維成像方法是基於掃描的三角測量法,這種方法利用產品或圖像在成像過程中的運動。激光被投射到物體的表面。在機器視覺中,這通過掃描運動來實現,可能是移動工件,或是移動相機和激光成像系統。相機從不同的角度查看這條掃描線;線條的偏差表示形狀的變化。來自多個掃描的線條被匯總成深度圖英語depth map或點雲[27]。 立體視覺用於涉及一對攝像機視圖中都存在的獨特特徵的特殊情況[27]。機器視覺中使用的其他三維方法包括基於飛行時間英語Time-of-flight camera和基於網格的方法[27][25]。其中一種方法是基於網格陣列的系統,它使用如2012年左右微軟Kinect系統所採用的偽隨機結構光系統[28][29]

圖像處理

在圖像獲取完成後即進行圖像處理[20]。核心的處理過程通常由一個CPU、一個GPU、一個FPGA或這些元件組合起來完成[17]。深度學習訓練和推理對處理性能提出了更高的要求[30]。通常在多個處理階段中按順序進行,最終得到所需的結果。一個典型的順序可能從調整圖像的工具(如濾波器)開始,然後提取目標,再從這些目標中提取數據(例如測量、讀取代碼),接着傳輸這些數據,或者將其與目標值進行比較,以創建和傳輸「通過/不通過」的結果。機器視覺圖像處理方法包括:

  • 拼接/配准:包含許多二維與三維的圖像[來源請求]
  • 濾波:如形態學濾波[31]
  • 閾值處理:閾值處理從設置或確定一個對後續步驟有用的灰度值開始。然後使用該值將圖像的部分分離,有時根據該灰度值的高低,將圖像的每個部分簡單地轉換為黑白[32]
  • 像素計算:計算亮像素或暗像素的數量[來源請求]
  • 圖像分割:將數字圖像劃分為多個部分,以簡化和/或將圖像表示更改為更有意義且更易於分析的形式[33][34]
  • 邊緣檢測:尋找物體邊緣[35]
  • 色彩分析:使用顏色識別零件、產品和物品,評估顏色質量,並使用顏色分離特徵英語Feature (computer vision)[6]
  • 連通分量標記:檢查圖像中離散的連通像素塊(例如灰色物體中的黑色孔)作為圖像標記[36]
  • 人工神經網絡 / 深度學習 / 機器學習過程:加權和自訓練的多變量決策[37]自2019年以來,深度學習和機器學習的廣泛應用顯著擴展了機器視覺的能力。這種處理最常見的結果是分類。分類的例子包括物體識別、已識別物體的「通過/不通過」分類以及光學字符識別(OCR)[37]
  • 模式識別:包括模板匹配,查找、匹配和/或計數特定模式。這可能包括定位可能被旋轉、部分遮擋或大小變化的物體[38]
  • 條形碼Data Matrix與「2D barcode」讀取 [39]
  • 光學字符識別:自動化讀取文本(如數字串)[40]
  • 計量學: 測量物體的尺寸(例如,像素英寸毫米[41]
  • 與目標值進行比較,以確定「通過或不通過」或「允許/不允許」的結果。例如,在代碼或條形碼驗證中,讀取的值與存儲的目標值進行比較。在測量中,將測量值與適當的值和公差進行比較。在字母數字代碼的驗證中,將OCR識別的值與正確的目標值進行比較。在瑕疵檢查中,可能將瑕疵的測量尺寸與質量標準允許的最大值進行比較[39]

輸出

自動檢測系統的一種通常輸出是通過/不通過的決定[14]。這些決定可能會引發回退次品或警報響起的機制。另一個通常的輸出則包括機器人引導系統的物體位置和方向信息[6]。此外,輸出類型包括數值測量數據、從代碼和字符讀取的數據、物體的計數和分類、過程或結果的顯示、存儲的圖像、來自自動空間監控機器視覺系統的報警以及過程控制信號[10][13]。系統還包括用戶界面、多組件系統集成接口和自動數據交換接口[42]

參考來源

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.