圖像識別技術目前發展得非常迅猛,已應用在生活的方方面面。比如:交通方面,道路上的攝像頭已經可以精準識別出車型,車輛顏色、車牌號。同時還能判斷出駕駛人是否在打電話,以及駕駛座前方是否有遮擋物等違規行為,大大提升了交警的工作效率。
學習和了解圖像識別技術其背後的基本原理, 有助於我們認識和感知未來的人工智慧時代。
關鍵詞:相機成像原理、像素、圖像識別
人通過眼睛來了解認識這個世界,當我們觀察到事物後,產生了視覺信息,視覺信息會傳送給大腦,然後大腦對事物進行處理和理解。為了讓機器人更智能的工作,我們希望教會機器看到這個世界,理解事物之間的關係、情緒、動作和趨勢等。
計算機視覺賦予了機器人「看」的能力。與人類視覺不同,計算機視覺指的是用相機和電腦來完成目標檢測、目標識別、目標跟蹤、圖像分割、識別3D位置和姿勢等任務。
要達到這樣的目標,在當前的計算機視覺研究中,不僅僅要研究計算機如何看事物,還要研究如何讓計算機具備理解的能力。圖像識別所指的就是計算機對圖形的理解。
01相機成像原理
機器人要想具備「看」世界的能力,需要裝配攝像頭,作用類似於我們人類的眼睛。
當外界的光線進入到人的眼睛,經過晶狀體等屈光系統的折射最後會聚集在視網膜上。相機成像有著類似的原理,攝像頭有鏡頭、光圈、調焦裝置、暗箱和底片。鏡頭相當於人的角膜,光圈相當於瞳孔,調焦的透鏡相當於晶狀體,而數位相機需要把光轉換成電信號,所對應的部分是圖像傳感器。
應用在機器人上的相機模組中,最重要的組件之一是圖像傳感器。圖像傳感器是起感光記錄作用的元件,類似交卷。應用最多的圖像傳感器包括CCD(Charge Couple Device)和CMOS(Complementary Metal-Oxide Semiconductor)。圖像傳感器將鏡頭上傳導過來的光信號(模擬信號)通過AD轉換為數位訊號。
02像素
機器「看」到的圖像與人眼看到的有很大的區別。機器「看」到的圖像是由數字組成的矩陣。圖中的小方塊裡,每個數值代表的都是一個像素的明暗值。這些值被稱為「像素」,是構成一張圖片的最小單位。
像素的數值和位置組合就決定了一張圖像所呈現出來的樣子。攝像頭在接受光照之後,圖像傳感器中的感光元件會產生對應的電流,電流大小與光強對應,最後輸出一個模擬量。
我們來看一張普通的灰度圖。在灰度圖中,黑白像素值以一定的比例分布在二維空間內。所以,一幅圖片是有空間信息及在該空間上的光強所構成的。接收到的光線越強,數值越大,255是最白;接收到的光線越弱,則數值越小,0是黑色。介於兩個數值之間的,這是各種灰色。
與黑白照片不同,彩色圖像中包含了更多信息,包括:光的強弱、光的波長和空間位置。其中波長信息一般會用三原色來代替,分別是紅色、綠色和藍色。
03圖像識別
人眼中的視網膜在成像之後會到達大腦皮層的視覺中樞,大腦會迅速反應是否見過這個東西,或者是否見過類似的東西,產生理解,這才完成了一整個「看」的過程。一個幾歲的小朋友就能夠辨認出很多小動物了,而對於機器人來說,科學家們可能需要花上幾十年的時間來研究如何實現這個過程。
機器人圖像傳感器會把得出的數位訊號傳輸給控制器,控制器去「理解」這些信息的過程,我們稱之為圖形識別。目前圖像識別在我們生活中的應用廣泛。早期圖形識別可以完成的工作,可以分為以下四個種類:分類、定位、檢測、分割。如:
分類——是不是貓?定位——貓在哪來?檢測——有哪些動物?在哪來?分割——動物在哪些像素?
分類:分為二分類和多分類,比如判斷圖像中是不是貓,這屬於二分類;而判斷圖像中是哪一種動物則屬於多分類。
定位:判斷圖像中物體的位置,比如貓在圖中什麼位置。
檢測:判斷圖像中有哪些動物,都在什麼地方。
分割:判斷圖像中的動物都在哪些像素裡。
在2010年以後,由於深度學習和神經網絡技術的迅猛發展,以及各類圖像數據的劇增,圖像識別技術水平得到了大幅提升。
2018年的AI index年度報告顯示人工智慧圖像分類技術的準確程度在2015年就已經超越了人類水平。
04案例:機器人視覺標籤識別
機器人進行視覺標籤識別,與人類肉眼識別物體的步驟很相近,圍繞以下三個步驟:
1) 處理圖像信息2) 提取圖像特徵3) 判斷圖像內容
1、處理圖像信息
處理圖像信息是圖像識別中非常重要的一個環節。控制器在接收到這樣圖像信息時,它需要根據視覺標籤的特徵,把無關的部分去除掉,留下可能有用的部分以提高識別效率。
2、提取圖像特徵
緊接著,根據標籤都是四邊形的特徵,將圖像中無關的部分去除,可以得出視覺標籤區域。這個區域被稱為ROI(region of interest),也叫感興趣區域。當然,此時還要通過計算,對圖像進行透視變換,將圖像轉化成更容易判斷的形態,減少處理時間。
3、判斷圖像內容
為了使機器人具備對視覺標籤的理解能力,需要首先將視覺標籤劃分成7X7的格子,判斷49個格子的內容。透視變換後的圖像由於黑白分明,可以被輕易地編碼陳二進位的0和1形式。每個視覺標籤都有自己的編碼。機器人預存了所有標籤的編碼,此時控制器只需要將獲取的編碼與預存的編碼相比較,就能獲得該圖像ID,也就能知道視野中的視覺標籤是什麼了。
05擴展:小知識:
生活中,我們常用的掃碼也是類似的原理。
二維碼,也叫QRCode,全稱是quick response code,直譯過來是快速回應編碼。二維碼的角落有三個黑色的大方塊,它們所組成的圖案是為了幫助檢測圖片中的二維碼,同時可以用來明確二維碼的方向。而實際數據則是由黑色和白色所組成的圖案來表達的。