電腦視覺(Computer Vision),通常簡稱CV,是一個透過技術幫助電腦「看到」並「看懂」圖像的研究領域,例如使電腦理解照片或視頻的內容。
這篇文章將對電腦視覺進行整體介紹。本文章共分為六個部分,分別是:
在生理學上,視覺(Vision)的產生都始於視覺器官感受細胞的興奮,並於視覺神經系統對收集到的信息進行加工之後形成。我們人類透過視覺直觀地了解眼前事物的形體和狀態,大部分人依靠視覺來完成做飯、越過障礙、讀路牌、看影片以及無數其他任務。事實上,如果不是盲人這類特殊群體,絕大多數人對外界資訊的取得都是透過視覺完成的,而這個佔比高達80%以上──這個比例並不是沒有根據的,著名實驗心理學家赤瑞特拉(Treicher)曾透過大量的實驗證實:人類所獲得的資訊的83%來自視覺,11%來自聽覺,剩下的6%來自嗅覺、觸覺、味覺。所以,對人類來說,視覺無疑是最重要的一種感覺。
不僅人類是“視覺動物”,對大多數動物來說,視覺也都扮演著十分重要的角色。透過視覺,人和動物感知外界物體的大小、明暗、顏色、動靜,獲得對機體生存具有重要意義的各種訊息,透過這些訊息能夠得知,周圍的世界是怎樣的,以及如何和世界互動。
而在電腦視覺出現之前,影像對電腦來說是黑盒子的狀態。一張圖像對電腦來說只是一個檔案、一串資料。計算機不知道圖片裡的內容到底是什麼,只知道這張圖片是什麼尺寸,佔多少記憶體大小,什麼格式的等等。
如果電腦、人工智慧想要在現實世界中發揮重要作用,就必須看懂圖片!因此,半個世紀以來,電腦科學家一直在想辦法讓電腦也擁有視覺,從而產生了「電腦視覺」這個領域。
網路的快速發展也讓電腦視覺變得特別重要。下圖是2020年以來網路上新增資料量的走勢圖。灰色圖形是結構化數據,藍色圖形是非結構化資料(大部分都是圖片和影片)。可以很明顯的發現,圖片和影片的數量正在以指數級的速度瘋狂增長。
互聯網由文字和圖像組成。搜尋文字相對簡單,但為了搜尋圖像,演算法需要知道圖像包含的內容。在很長的一段時間內,人類沒有足夠的技術來理解圖像和影片的內容,只能依靠人工標註來獲取圖像或影片的描述。如何能讓電腦更能理解這些影像訊息,便是當今電腦科技面臨的一大挑戰。為了充分利用圖像或視頻數據,需要讓電腦「查看」圖像或視頻,並理解內容。
電腦視覺是人工智慧領域的重要分支,簡單來說,它要解決的問題就是:讓電腦看懂圖像或影片裡的內容。例如:圖片裡的寵物是貓還是狗?圖片裡的人是老張還是老王?影片裡的人在做什麼事情?更進一步的說,電腦視覺就是指用攝影機和電腦取代人眼對目標進行辨識、追蹤和測量等,並進一步做圖形處理,得到更適合人眼觀察或傳送給儀器偵測的影像。作為一個科學學科,與電腦視覺研究相關的理論和技術,試圖建立能夠從影像或多維資料中獲取高層次資訊的人工智慧系統。從工程的角度來看,它尋求利用自動化系統模仿人類視覺系統來完成任務。電腦視覺的最終目標是使電腦能像人類一樣透過視覺觀察和理解世界,並且具有自主適應環境的能力。但能真正實現電腦能夠透過攝影機感知這個世界卻是非常之難,因為雖然攝影機拍攝的影像和我們平時所見是一樣的,但對於電腦來說,任何影像都只是像素值的排列組合,是一堆死板的數字。如何讓電腦從這些死板的數字裡面讀取到有意義的視覺線索,是電腦視覺應該解決的問題。
用過相機或手機的都知道,計算機擅長拍出有驚人保真度和細節的照片,從某種程度上來說,計算機的人工「視覺」比人類與生自來的視覺能力強多了。但正如我們平日所說的“聽見不等於聽懂”一樣,“看見”也不等於“看懂”,要想讓計算機真正地“看懂”圖像,那就不是一件簡單的事情了。影像是一個大像素網格,每個像素有顏色,顏色是三種基色的組合:紅,綠,藍。透過組合三種顏色的強度-即叫做RGB值,我們可以得到任何顏色。最簡單的、最適合拿來入門的電腦視覺演算法是:追蹤一個有顏色的物體,例如一個粉紅色的球,我們首先記下球的顏色,保存最中心像素的RGB值,然後給程式餵入圖像,讓程式找最接近這個顏色的像素。演算法可以從左上角開始,檢查每個像素,計算和目標顏色的差異。檢查了每個像素後,最貼近的一部分像素,很可能就是球所在的像素。這個演算法並不限制在這張單張圖片上運行,我們可以把演算法運行在影片的每一幀影像上,追蹤球的位置。當然,因為光線、陰影和其他因素的影響,球的顏色會有變化,不會和我們存的RGB值完全一樣,但會很接近。不過在一些極端的情況下,例如晚上進行足球比賽,追蹤效果可能會非常差;而且如果其中一隊的球衣顏色和球的顏色一樣,演算法就完全「暈了」。因此,除非環境可以嚴格控制,這類顏色追蹤演算法很少會被真正投入使用。而如今更多使用的電腦視覺演算法一般都會涉及「深度學習」(Deep Learning)的方法和技術,其中,卷積神經網路(CNN)因為其優越的性能,使用最為廣泛。由於「深度學習」所涉及的知識過於廣泛,本篇就不對其進行更詳細的敘述了。如想了解更多「深度學習」的相關知識,不妨來看看AI入門課程-《英特爾® OpenVINO™工具套件初級課程》。它從AI的基本概念開始,介紹人工智慧與視覺應用的相關知識,幫助使用者快速理解英特爾®OpenVINO™工具套件的基本概念及應用場景。整個課程包含了影片的處理,深度學習的相關知識,人工智慧應用的推理加速,以及英特爾®OpenVINO™工具套件的Demo演示,由淺入深,一步一步帶你掌握深度學習。
#圖像分類是根據圖像的語義資訊對不同類別圖像進行區分,是計算機視覺的核心,是物件偵測、影像分割、物件追蹤、行為分析、人臉辨識等其他高層次視覺任務的基礎。例如下圖,透過影像分類,電腦辨識到影像中有人(person)、樹(tree)、草地(grass)、天空(sky)。
影像分類在許多領域都有廣泛的應用,如:安防領域的人臉辨識和智慧視訊分析等,交通領域的交通場景識別,網路領域基於內容的影像檢索和相簿自動歸類,醫學領域的影像辨識等。
目標偵測任務的目標是給定一張影像或是視訊幀,讓電腦找出其中所有目標的位置,並給出每個目標的具體類別。如下圖,以辨識和偵測人為例,用邊框標記影像中所有人的位置。
而在多類別目標偵測中,一般使用不同顏色的邊框對偵測到的不同物體的位置進行標記,如下圖所示。
語意分割是電腦視覺中的基本任務,在語意分割中我們需要將視覺輸入分為不同的語意可解釋類別。它將整個影像分成像素組,然後對像素組進行標記和分類。例如,我們可能需要區分影像中屬於汽車的所有像素,並將這些像素塗成藍色。如下圖,把圖像分為人(紅色)、樹木(深綠)、草地(淺綠)、天空(藍色)標籤。
實例分割實例分割是目標偵測和語意分割的結合,在影像中將目標偵測出來(目標偵測),然後在每個像素上打上標籤(語意分割)。對比上圖、下圖可見,如以人為目標,語意分割不區分屬於相同類別的不同實例(所有人都標為紅色),實例分割區分同類的不同實例(使用不同顏色區分不同的人)。
目標追蹤目標追蹤是指對影像序列中的運動目標進行偵測、提取、識別和跟踪,獲得運動目標的運動參數,進行處理與分析,實現對運動目標的行為理解,以完成更高一級的偵測任務。
電腦視覺的應用場景非常廣泛,以下列舉幾個生活中常見的應用場景。 · 門禁、支付寶上的人臉辨識
以上是一文讀懂電腦視覺,乾貨滿滿的詳細內容。更多資訊請關注PHP中文網其他相關文章!