機器視覺包含一系列技術,可讓工業等領域的自動化設備藉由影像深入瞭解周邊環境。對此類設備而言,若缺少機器視覺軟體,數位影像不過是一群具有各種色碼和色調強度,彼此毫無關連性的像素。機器視覺讓電腦(通常連接至機器控制)偵測影像的邊緣和形狀,進而讓更高等級的處理常式識別預定義的指定物體(圖1)。此類影像並不受限於可見光譜中的攝影影像,可以包括使用紅外線、雷射、X光和超音波訊號取得的影像。
工業環境中相當常見的機器視覺應用包含在隨機排列(混亂)的零件箱中識別特定零件。機器視覺可以幫助取放機器人自動拾取正確零件。當然,如果零件都以相同方向整齊地排列在托盤上,那麼透過影像回饋識別這些零件便相對容易。不過,強大的機器視覺演算法可以識別與攝影機不同距離(在影像感測器上顯示為不同大小)及不同方向的物體。
最複雜的機器視覺系統能執行比零件箱揀選更複雜的新興設計,最常見運用於自動駕駛汽車(圖2)。
機器視覺相關技術
「機器視覺」一詞有時特定指稱更成熟、更有效率地從影像中擷取資訊的數學方式。相比之下,「電腦視覺」術語通常用於描述更現代和要求更高運算的系統,包括使用機器學習或人工智慧(AI)的黑盒方法。然而,機器視覺也可以作為一個通用的術語,涵蓋從影像中擷取高階資訊的所有方法;在這種情況下,電腦視覺描述其基本操作理論。
從影像中擷取高階含義的技術比比皆是。在研究社群中,此類技術通常被認定與機器視覺有所區別。然而,在實際意義上,這些都是達到機器視覺的不同方式,而且在許多情況下重疊。
數位影像處理是一種涉及影像增強、復原、編碼和壓縮的數位訊號處理形式。相較於類比影像處理,可達到最低雜訊和失真,並可使用更多演算法。早期的影像增強範例之一為校正最早的近距離月球表面影像。這使用攝影測量製圖,以及雜訊濾波器和校正,針對因影像攝影機與月球表面對齊導致的幾何失真。
數位影像增強通常涉及提升對比度,並可能針對視角和鏡頭失真進行幾何校正。通常可透過將複雜訊號概估至相近的餘弦函數組合,以此來進行壓縮,亦即一種傅立葉變換,稱為離散餘弦變換(DCT)。DCT最常應用於JPEG檔案格式。影像復原也可以使用傅立葉變換來去除雜訊和模糊。
攝影測量法(Photogrammetry)採用某種特徵識別,從影像擷取測量值。在同一場景中,從不同位置取得多個影像時,這些測量值可以包含3D資訊。最簡單的攝影測量系統,使用比例尺測量影像中兩點間的距離。為此,通常需要在影像中包含已知的參考比例尺。
特徵偵測(Feature Detection)讓電腦識別影像中的邊緣、角落、點。這是攝影測量所需的第一步,也是物體和動作識別的第一步。斑點偵測可以針對邊緣過於光滑而無法進行邊緣或角落偵測的區域進行識別。
圖型識別(Pattern Recognition)用於識別特定物體。舉個最基本的例子,這可能代表在輸送帶上尋找特定且定義明確的機械零件。
3D重建(3D Reconstruction)係依據物體的2D影像確定其3D形式。這可以透過攝影測量方法,以三角測量確定共同特徵的高度(由不同觀察點的影像識別)達成;也可以使用單一2D影像進行3D重建,由軟體解譯邊緣或陰影區域之間的幾何關係(軟體也具有其他功能)(圖4)。
人類可以輕鬆從簡單的線條藝術重建一個立方體,或從一個具有陰影的圓圈,在腦中重建一個球體,陰影表示表面的斜率。然而,由於陰影是一維參數,而斜率是二維參數,這樣的推導過程實際上非常複雜。這可能會導致模糊地帶,例如藝術作品描繪物理上並不合理的物體(圖5)。
機器視覺任務如何排序
許多機器視覺系統逐步結合上述技術,從低階操作開始,逐一推進至更高等級的作業。在最低等級,影像的所有像素都以高頻寬資料保存,接著序列中的每個作業將識別影像特徵,並使用相對少量的數據呈現欲瞭解的資訊。
首先將進行影像增強和復原等低階作業,接著進行特徵偵測。使用多個感測器時,低階操作可能由專用於單一感測器的分布式流程執行。一旦在單一影像中偵測到特徵,就可以進行更高等級的攝影測量,如物體識別任務或其他依賴多個影像和感測器組合資料的任務。
直接運算和學習演算法
機器視覺中的直接運算是一組由程式設計師手動定義的數學函數。這些函數接受影像像素值等輸入,產生物體邊緣坐標等輸出。相比之下,學習演算法並非由人類直接編寫,而是以輸入與所需輸出相關的範例資料集進行訓練,也就是以黑盒子的方式進行學習。現在,此類機器學習大多數採用人工神經網路深度學習為基礎進行運算。
用於工業應用的簡單機器學習若基於直接運算,通常更可靠且對運算的要求更低。當然,直接運算的成果有限。例如,它永遠不可能執行人臉識別所需的高階模式識別(Pattern Recognition),尤其是針對擁擠公共場所的影片。相比之下,機器學習可以巧妙地處理此類應用。因此,機器學習更常部署用於較低層級的機器視覺操作,包括影像增強、復原、特徵偵測。
改進教學方法(而非演算法)
深度學習技術趨向成熟,顯示需要改進的不是學習演算法本身,而是訓練的方式。其中一種改進的訓練常式稱為以資料為中心的電腦視覺。此處指的深度學習系統接受由數千、數百萬甚至數十億張影像組成的極大訓練集,接著儲存其演算法從每張影像中擷取的資訊。這些演算法透過練習實例,並參考「解答書」驗證得出的值是否正確,有效率地學習。
一個早期與數位模式識別相關的事件可以作為警世故事。美國軍方當時打算使用機器視覺進行目標識別,國防承包商在展示中可靠地識別美製和俄製坦克。供應商的空拍照片中有各式各樣的坦克,每一張都成功分辨。然而,使用五角大樓的圖庫再次測試時,系統卻一直給出錯誤答案。問題在於,國防承包商的影像,美國坦克都在沙漠中,而俄羅斯坦克都在綠色田野中。該系統並沒有識別出不同的坦克,而是識別了不同顏色的背景。寓意為何?學習演算法需要提供精心策畫的訓練資料才能發揮作用。
機器人工作單元的安全願景
機器視覺不再是小眾技術,而是在工業應用中增加幅度最明顯的部署項目。最引人注目的發展是機器視覺現在如何輔助工業工廠安全系統:工廠人員進入工作區域卻沒有戴安全帽、面罩或其他正確的防護設備時,這些系統將發出警報或發出音訊通知。機器視覺還可在堆高機等移動機械離人員太近時,輔助通知系統。
這些系統和類似的機器視覺系統有時可以取代工業機器人周圍的硬防護,提高操作效率;也可以取代或增強採用光防護裝置的安全系統:如果工廠人員進入工作單元,光防護裝置會停止機器運作。機器視覺監控工作單元周圍的工廠車間時,這些單元中的機器人可能會隨著人員靠近逐漸減速。
工業環境的設計持續發展,以適應協作機器人和其他讓工廠人員可以安全移動的工作單元設備(即使該設備處於運作狀態),這些系統基於機器視覺,在工廠流程中將越來越常見。
(本文作者為Digi-Key特約作家)