天天看點

機器視覺基礎知識(圖像處理)

作者:Engineer Fu

版權聲明: 本翻譯文章為原文《Fundamentals of Machine Vision》原始來源:https://www.autovis.com/images/pdf/resources/fundamentals-of-machine-vision.pdf(作者:Peppy West - AUTOMATED VISION SYSTEMS, INC. San Jose, California 95124 U.S.A.)。作者和貢獻者對原文内容享有版權。請閱讀原文以了解詳細資訊和權限限制。翻譯權歸本翻譯者所有,非商業用途,僅用于學術研究和交流目的。未經授權,不得用于商業目的或其他侵權行為。本翻譯保留所有權利。如有引用或使用,請注明原文出處和作者。本翻譯文章中的内容僅供參考,可能存在錯誤或不準确之處,請讀者自行核實原文内容。

圖像處理

圖像進行中的一個重要問題是選擇使用算法、工具還是深度學習。首先,讓我們來看一下圖像處理的過程,實際上它是算法執行圖像處理的分類學。

圖像處理過程

機器視覺基礎知識(圖像處理)

基本上,圖像處理包括四個步驟,從開始的圖像擷取過程到最後的結果輸出過程。這個過程如圖30所示,包括以下四個步驟:預處理、分割、特征提取和解釋。這個圖表有些簡化,因為并不是所有應用都需要這四個步驟。有些應用不需要預處理,而有些應用則不需要分割。其中的任何一個步驟可能需要一個或多個算法。通常情況下,會有回報回路,初步分析根據檢測到的圖像特征和内容選擇特定的步驟序列。

傳統算法

預處理

預處理算法以圖像作為輸入,并生成修改後的圖像作為輸出。例如,該算法可以濾除噪聲(圖31),或者提取邊緣(圖32)。存在大量的預處理操作。非常有經驗的圖像處理程式員會知道哪些操作符是适用于任何應用的好選擇。然而,需要大量的實驗來選擇正确的操作符,并進行微調,以使其在所有條件下可靠地工作。并非所有機器視覺應用都需要預處理。

機器視覺基礎知識(圖像處理)
機器視覺基礎知識(圖像處理)

分割

通常需要對圖像進行分割:即識别圖像中的不同區域。同樣,程式員可以選擇各種技術。請參見圖34和圖33的示例。通常,應用的要求會使熟練的圖像處理程式員很容易選擇合适的技術,但為了在應用的圖像上獲得最佳結果,仍需要時間和實驗來調整分割過程。

機器視覺基礎知識(圖像處理)

與預處理類似,分割并非所有應用都需要。

特征提取

機器視覺的定義表明,從圖像中擷取資料是必不可少的。從圖像中提取的特征就是這些資料。每個機器視覺過程都必須從圖像中提取特征。請參見圖35和圖36的示例。

機器視覺基礎知識(圖像處理)
機器視覺基礎知識(圖像處理)

從圖像中可以提取出數百種特征。通常隻需要其中的幾個特征。通常,從視覺系統的要求中很容易确定所需的特征。

機器視覺的定義表明,從圖像中擷取資料是必不可少的。從圖像中提取的特征就是這些資料。

解釋

擁有特征還不足以完成任務。需要進行解釋。零件是好還是壞?将機器人發送到哪裡來取零件?應将零件放入哪個容器?

經典的解釋方法是決策樹(見圖37)。它由“如果-那麼-否則”語句組成,這對于任何有過程式設計經驗的人來說都是熟悉的。

機器視覺基礎知識(圖像處理)

其他機器學習技術也有用武之地,比如線性鑒别器(見圖38)。

機器視覺基礎知識(圖像處理)

圖像分析工具

大多數機器視覺軟體包都提供工具來執行任務,進而消除了機器視覺程式員需要整理和嘗試數百種算法的需求。這些工具涵蓋特定功能,如:

  • 對象識别、定位和方向
  • 測量(例如距離、寬度、直徑)
  • 缺陷檢測
  • 焊縫跟蹤
  • 光學字元識别(OCR)
  • 光學字元驗證(OCV)
  • 代碼閱讀(條形碼和二維碼)

深度學習

機器視覺圖像分析領域的最新主要趨勢是深度學習。深度學習使用一個具有多個内部層的神經網絡,并将圖像作為其輸入。内部層對使用者或者通常連機器視覺工程師都不可見。一套訓練圖像用于訓練這個網絡。在每次訓練過程中,根據輸出的誤差,每個層的系數會被調整一小部分。

最常見的網絡方法是卷積神經網絡(CNN)。這種方法被描述為使用資料而不是計算機代碼進行程式設計。

盡管深度學習正在解決一些非常困難的機器視覺問題,但它并非萬能的。專家們一緻認為,如果一個應用可以通過工具和算法來解決而不費太多努力,那麼這條路線将比使用深度學習更容易。

雖然深度學習是“用資料程式設計”,但它需要大量正确标記的資料集來訓練網絡以可靠地執行任務。資料采集和标記的成本絕非微不足道,并且比訓練網絡本身需要更多的時間。

機器視覺基礎知識(圖像處理)

繼續閱讀