計算機視覺:機器如何解釋視覺世界
已發表: 2021-05-05計算機視覺是使機器能夠“看到”的人工智能領域。
人類有視覺的天賦,而使之成為可能的器官是複雜的。 雖然它的遠距離視力無法與鷹的遠距離視力或藍紋蝶的眼睛相比,後者可以在紫外線光譜中看到,但它仍然做得非常出色。
看的一部分是理解你所看到的。 否則,它只是接收從您面前的物體反射的光。 如果您有一雙眼睛,但沒有枕葉內的視覺皮層(大腦中負責視覺處理的部分),就會發生這種情況。
對於計算機來說,相機就是它們的眼睛。 計算機視覺充當枕葉並處理圖像上的數千個像素。 簡而言之,計算機視覺使機器能夠理解他們所看到的。
計算機視覺對於自動駕駛汽車、面部識別和增強現實等多項技術創新至關重要。 我們生成的圖像數據量不斷增加是這一領域的原因之一 人工智能 呈指數增長。 這種增加也使數據科學家更容易訓練算法。
簡而言之,計算機視覺的兩個主要任務是識別圖像的對象並理解它們整體的含義。
人類認為虛擬感知是數百萬年進化的產物,這是理所當然的。 一個 5 歲的孩子可以很容易地為放在桌子上的物品命名,並理解整個設置是一張餐桌。 對於機器來說,這是一項艱鉅的任務,而這正是計算機視覺試圖解決的問題。
486 億美元
預計到 2022 年將達到計算機視覺市場的價值。
資料來源:BitRefine
如果可能的話,如果沒有計算機視覺,人工智能將無法實現。 那是因為準確識別我們周圍的物體並做出反應是我們智力的顯著特徵之一。 換句話說,要教機器思考,你必須賦予它們看的能力。
隨著可用數字照片和視頻數量的指數級增長,深度學習和人工神經網絡的進步也為當前計算機視覺的輝煌做出了貢獻。
計算機視覺簡史
在一些早期形式的人工神經網絡的幫助下,計算機視覺領域的第一次實驗始於 1950 年代。 它們用於檢測物體的邊緣,並可以對圓形和正方形等簡單物體進行分類。
計算機視覺被視為通向人工智能的墊腳石,因為模仿人類視覺系統是獲得人類智能的先決條件。 因此,在 1960 年代,探索 AI 的大學也涉足計算機視覺領域。
1963 年,被認為是互聯網之父的拉里·羅伯茨 (Larry Roberts) 描述了從 2D 照片中獲取有關固體物體的 3D 信息的過程。 他的論文《三維立體的機器感知》至今仍被公認為計算機視覺領域的基礎著作之一。
1966 年晚些時候,人工智能的創始人之一馬文·明斯基認為,計算機視覺可以通過一個暑期項目來實現。 但我們都知道發生了什麼。 快進到 1970 年代,計算機視覺技術被用於商業應用,例如光學字符識別 (OCR),它可以識別圖像中的手寫文本或印刷字符。
互聯網在 1990 年代成為主流,在計算機視覺的快速發展中發揮了至關重要的作用。 大量圖像變得容易訪問,這使得算法的訓練更容易。
廉價而豐富的計算能力也增加了訓練算法的易用性。 這也是計算機圖形和計算機視覺之間的交互增加的時候。
以下是計算機視覺領域的一些顯著里程碑,這些里程碑使其成為今天的強大技術。
1959:發明了第一台數字圖像掃描儀,將圖像轉換為數字網格。
1963 年: Larry Roberts 描述了從 2D 圖片中獲取實體對象的 3D 信息的過程。
1966 年:馬文·明斯基(Marvin Minsky)指示一名研究生將相機連接到計算機並描述它所看到的內容。
1980 年: Kunihiko Fukushima 創建了 新認知。 它被認為是現代卷積神經網絡 (CNN) 的先驅。
2001 年:麻省理工學院的兩名研究人員 Paul Viola 和 Michael Jones 創建了第一個實時工作的人臉檢測框架。
2009 年:谷歌啟動了自動駕駛汽車項目。
2010 年: Google 發布了 Google Goggles,這是一款圖像識別應用程序,可用於基於移動設備捕獲的圖片進行搜索。 同年,Facebook 開始使用面部識別來有效地在照片上標記人物。
2011年:人臉識別技術被用於確認 奧薩馬·本·拉登的身份 在他被殺之後。
2012 年: Google Brain 創建了一個由 16,000 個計算機處理器組成的神經網絡,可以藉助深度學習算法識別貓的圖片。 同年,卷積神經網絡 AlexNet 在 ImageNet 2012 Challenge 中獲得了 15.3% 的 top-5 錯誤。
2014 年:特斯拉在其 Model S 電動汽車中引入了 Autopilot。 自動駕駛系統不僅可以離線工作,而且可以精確停車。
2015 年:谷歌推出 TensorFlow,這是一個用於機器學習的開源和免費軟件庫。 同年,谷歌推出 FaceNet 用於面部識別。
2016 年:推出著名的 AR 手機遊戲 Pokemon GO。
2017 年: Apple 發布了具有人臉識別功能的 iPhone X。
2019 年:英國 HighCourt 允許使用自動面部識別技術在人群中搜索人。
計算機視覺是如何工作的?
計算機視覺從小開始,以大結束。
它遵循分層處理技術,首先識別和分析像素和顏色等低級特徵。 逐漸地,它可以分析更高級別的特徵,例如線條和對象。
假設您看到有人在奔跑的圖像。 儘管它是靜止圖像,但在大多數情況下,您將能夠理解上下文; 人們在逃避某事,向某事奔跑,或悠閒地奔跑。 這是並行處理計算如何實時發生的典型示例。
我們很容易理解圖像的情感和背景。 計算機仍在學習交易,但它們的速度對於非生物實體來說令人印象深刻。
有沒有想過計算機如何能夠為天氣預報等提供準確的數據? 這就是計算機視覺以並行處理的形式工作的地方,即一次處理多個複雜的數據源。
對於機器來說,圖像只是像素的集合。 與人類不同,它們無法理解圖像的語義,只能檢測像素。 計算機視覺的目標是縮小語義鴻溝。
當光線照射到我們眼睛的視網膜上時,稱為光感受器的特殊細胞會將光線轉化為電信號。 然後這些電信號通過視神經發送到大腦。 然後大腦將這些信號轉換成我們看到的圖像。
這個過程直到到達大腦的電信號看起來很簡單。 大腦究竟如何處理這些信號並將它們轉換成圖像尚不完全清楚。 更準確地說,大腦是一個黑匣子。 計算機視覺也是如此。
有神經網絡等 機器學習 試圖模仿人腦的算法。 它們使計算機視覺變得可行,並幫助理解圖像的含義。 即使在算法的情況下,ML 研究人員也並不完全了解它們是如何工作的。 但是,由於他們的結果是可以量化的,我們可以判斷每個算法的準確性。
計算機視覺作為一個過程是可以解釋的,就像人類視覺一樣。 但是沒有人很確定神經網絡是如何理解圖像的,或者它們是否與人類處理視覺信息的方式非常接近。
也就是說,簡單來說,計算機視覺就是模式識別。 使用機器學習技術,如 無監督學習,算法被訓練來識別視覺數據中的模式。 如果您正在考慮所需的圖像數量,那麼至少是數百萬或數千。
假設您希望算法識別圖像中的狗。 如果您遵循無監督學習技術,則不必將任何圖像標記為狗。 相反,在分析了數千或數百萬張圖像後,機器會學習狗的具體特徵。
簡而言之,計算機可以感知使動物(或物體)成為狗的特定特徵。 它仍然不知道特定的動物被稱為“狗”。 但它將有足夠的信息和經驗來確定未標記的圖像是否包含狗。
如果你想讓學習過程更快,你可以去 監督學習。 在監督學習中,圖像被標記,這使得算法的工作更容易。
在像素級別檢查圖像
在談論分析圖像的算法時,他們並沒有像人類一樣檢查整個圖片。 相反,他們查看單個像素,這是光柵圖像中最小的可尋址元素。
為了簡單起見,讓我們考慮一個灰度圖像。 每個像素的亮度,稱為像素值,由一個 8 位整數表示,其可能值範圍為 0 到 255。零被認為是黑色,255 是白色。 如果我們正在研究彩色圖像,事情會變得更加複雜。
當我們說算法分析和學習時,它實際上是在學習這些像素值。 換句話說,計算機根據這些數值來查看和識別圖像。 這也意味著算法通過查看圖像的數值來找到圖像中的模式,並以類似的方式比較圖片。
簡而言之,對於機器而言,理解圖像是一個涉及整數數組的數學過程。
然後是卷積神經網絡
卷積神經網絡(CNN 或 ConvNet)是一種 深度學習 可以從圖像數據集中提取特徵的算法。 它們是一類神經網絡,具有令人印象深刻的圖像識別和分類能力。 幾乎所有計算機視覺算法都使用卷積神經網絡。
儘管 CNN 早在 1980 年代就發明了,但直到引入圖形處理單元 (GPU) 才完全可行。 GPU 可以顯著加速卷積神經網絡和其他神經網絡。 2004 年,CNN 的 GPU 實現比同等 CPU 實現快 20 倍。
CNN 是如何做到的?
ConvNets 從輸入圖像中學習並調整它們的參數(權重和偏差)以做出更好的預測。 CNN 將圖像視為矩陣並從中提取空間信息,例如邊緣、深度和紋理。 ConvNets 通過使用 卷積層 和 匯集。

CNN 的架構類似於我們大腦中神經元的連接模式。 CNN 是從視覺皮層的組織中獲得靈感而創建的,視覺皮層是大腦中接收和處理視覺信息的區域。
CNN 由稱為感知器的多層人工神經元組成,它們是我們大腦生物神經元的數學對應物。 感知器也大致模仿其生物學對應物的工作方式。
卷積神經網絡包括一個輸入層、多個隱藏層和一個輸出層。
隱藏層包含:
- 卷積層
- 整流線性激活函數 (ReLU) 層
- 歸一化層
- 池化層
- 全連接層
以下是對他們所做工作的簡單解釋。
當 CNN 處理圖像時,它的每一層都從圖像像素中提取不同的特徵。 第一層負責檢測水平和垂直邊緣等基本特徵。
隨著您深入神經網絡,這些層開始檢測複雜的特徵,例如形狀和角。 卷積神經網絡的最後一層能夠檢測特定的特徵,例如人臉、建築物和地點。
卷積神經網絡的輸出層提供了一個包含數字信息的表格。 該表表示在圖像中識別出特定對象的概率。
計算機視覺任務示例
計算機視覺是計算機科學和人工智能的一個領域,它使計算機能夠看到。 計算機可以通過多種方法利用這一領域。 這些在圖像中識別對像或活動的嘗試稱為計算機視覺任務。
以下是一些常見的計算機視覺任務。
- 對象檢測:一種用於檢測圖像中特定對象的技術。 其高級版本可以識別單個圖像中的多個對象,例如繁忙街道圖片中的建築物、汽車、人、交通信號燈等。
- 圖像分類:將圖像分組到類別中。 它也可以稱為為圖像分配標籤的過程。
- 面部識別:一種先進的物體識別形式,可以識別圖像中的人並識別面部。
- 圖像分割:將圖像分割成多個部分以分別檢查。
- 模式檢測:識別視覺數據中的模式和規律的過程。
- 邊緣檢測:檢測對象邊緣以更好地識別圖像成分的過程。
- 特徵匹配:一種模式檢測,它匹配圖像中的相似性以對它們進行分類。
圖像識別軟件 應用程序可能只使用其中一種計算機視覺技術。 自動駕駛汽車等高級應用將同時使用多種技術。
真實世界的計算機視覺應用
計算機視覺已經融合到我們今天使用的許多產品中。 Facebook 會使用 CV 自動標記人們。 Google Photos 使用它來對圖像進行分組,Adobe Lightroom 等軟件應用程序使用它來增強縮放圖像的細節。 它還廣泛用於依賴自動化的製造過程中的質量控制。
以下是您可能遇到的一些更真實的計算機視覺應用。
面部識別
計算機視覺的最佳用例之一是面部識別領域。 它在 2017 年隨 Apple 的 iPhone X 機型成為主流,現在已成為大多數智能手機的標準功能。
面部識別技術在多個場合被用作身份驗證功能。 否則,它會被用來識別這個人,就像 Facebook 的情況一樣。 眾所周知,執法機構使用面部識別技術來識別視頻中的違法者。
自動駕駛汽車
自動駕駛汽車嚴重依賴計算機視覺進行實時圖像分析。 它可以幫助自動駕駛汽車了解周圍環境。 然而,此類汽車背後的技術仍處於起步階段,需要進一步發展才能自信地部署在交通繁忙的道路上。
如果沒有計算機視覺,自動駕駛汽車幾乎是不可能的。 該技術可幫助自動駕駛汽車實時處理視覺數據。 其應用的一個例子是創建 3D 地圖。 除了物體識別和分類,計算機視覺還可以幫助創建 3D 地圖,讓車輛了解周圍環境。
車輛和車道線檢測是另外兩個重要的用例。 然後是自由空間檢測,這在自動駕駛汽車領域相當有名。 顧名思義,它用於確定車輛周圍的無障礙空間。 當自動駕駛車輛接近慢速行駛的車輛並需要改變車道時,自由空間檢測非常有用。
醫學影像
計算機視覺用於醫療保健行業,以做出更快、更準確的診斷並監測疾病的進展。 使用模式識別,醫生可以發現癌症等疾病的早期症狀,這些症狀可能是肉眼看不到的。
醫學成像是另一個具有眾多好處的關鍵應用。 醫學成像分析減少了醫學專業人員分析圖像所需的時間。 內窺鏡檢查、X 射線照相術、超聲波和磁共振成像 (MRI) 是一些使用計算機視覺的醫學成像學科。
通過將 CNN 與醫學成像相結合,醫療專業人員可以觀察內臟器官、檢測異常情況並了解特定疾病的原因和影響。 它還可以幫助醫生監測疾病的發展和治療的進展。
內容審核
像 Facebook 這樣的社交媒體網絡每天必須審查數百萬條新帖子。 擁有一個內容審核團隊來檢查每個發布的圖像或視頻是不切實際的,因此,計算機視覺系統用於自動化該過程。
3.5億
照片每天都會上傳到 Facebook。
資料來源:社會報告
計算機視覺可以幫助此類社交媒體平台分析上傳的內容並標記那些包含禁止內容的內容。 公司還可以使用深度學習算法進行文本分析,以識別和阻止攻擊性內容。
監視
監控視頻源是一種可靠的證據。 它們可以幫助發現違法者,還可以幫助安全專業人員在小問題成為災難之前採取行動。
人類幾乎不可能密切關注來自多個來源的監控錄像。 但是有了計算機視覺,這個任務就被簡化了。 CV 驅動的監控系統可以掃描實時畫面並檢測行為可疑的人。
面部識別可用於識別通緝犯,從而預防犯罪。 圖像識別技術可用於檢測在擁擠區域攜帶危險物品的個人。 這也用於確定商場中可用的免費停車位數量。
計算機視覺的挑戰
幫助計算機看東西比我們想像的更具挑戰性。
Marvin Minsky 相信可以通過將相機連接到計算機來解決計算機視覺問題。 即使經過幾十年的研究,我們離解決問題還很遙遠。 對於人類來說,視覺是如此輕鬆。 這就是為什麼計算機視覺被視為一個微不足道的簡單問題並且應該在一個夏天解決的原因。
我們的知識有限
我們無法完全解決計算機視覺問題的一個原因是我們對自己的了解有限。 我們對人類視覺系統的工作原理沒有完全了解。 當然,生物視覺的研究取得了長足的進步,但還有很長的路要走。
視覺世界很複雜
CV 領域的一個具有挑戰性的問題是視覺世界的自然複雜性。 可以從任何角度、在任何照明條件下以及從不同的距離觀察物體。 人類的光學系統通常能夠觀察和理解所有這些無限變化的物體,但機器的能力仍然非常有限。
另一個限制是缺乏常識。 即使經過多年的研究,我們還沒有在人工智能係統中重建常識。 人類可以應用有關特定對象的常識和背景知識來理解它們。 這也使我們能夠輕鬆地理解圖像的不同實體之間的關係。
人類擅長猜測,至少與計算機相比是這樣。 即使我們以前沒有遇到過具體問題,我們也更容易做出不那麼糟糕的決定。 但對於機器來說,情況並非如此。 如果他們遇到與他們的訓練示例不同的情況,他們很容易做出非理性的行為。
如果你用更新的視覺數據集訓練計算機視覺算法,它們會變得更好。 但在他們的核心,他們試圖匹配像素模式。 換句話說,除了像素的知識,他們並不完全了解圖像中發生了什麼。 但想想 CV 動力系統在自動駕駛汽車中所創造的奇蹟,還是很有趣的。
CV 受硬件約束
在計算機視覺中,延遲是邪惡的。
在自動駕駛汽車等現實世界的應用中,圖像處理和分析必須幾乎是即時發生的。 例如,如果一輛以 30 英里/小時的速度行駛的自動駕駛汽車檢測到一百米外的障礙物,它只有幾秒鐘的時間來安全地停車或轉彎。
為了讓汽車按時行動,人工智能係統必須了解周圍環境並在幾毫秒內做出決定。 由於計算機視覺系統嚴重依賴於攝像頭等硬件組件,因此數據傳輸或計算中哪怕是幾分之一秒的延遲都可能導致災難性事故。
狹隘的人工智能是不夠的
一些 AI 研究人員認為,只有解鎖通用人工智能 (AGI),才能實現20/20的計算機視覺。 那是因為意識似乎在人類視覺系統中起著至關重要的作用。 正如我們看到和觀察到的一樣,我們想像著。 我們的想像力增強了我們所看到的視覺效果,並為它們帶來了更好的意義。
此外,視覺智能也離不開智能。 處理複雜思想的能力確實補充了我們觀察和理解周圍環境的能力。
根據許多研究人員的說法,從互聯網下載的數百萬張圖像或視頻中學習對獲得真正的計算機視覺沒有太大幫助。 相反,人工智能實體將不得不像人類一樣體驗它。 換句話說, 狹隘的人工智能,我們目前擁有的人工智能水平,是不夠的。
我們實現通用智能的時間範圍仍有待商榷。 有人認為,AGI 可以在幾十年內實現。 其他人則認為這是下個世紀的事情。 但大多數研究人員認為 AGI 是高不可攀的,只會存在於科幻小說類型中。
不管能否實現,我們可以嘗試許多其他方法來解鎖真正的計算機視覺。 提供高質量和多樣化的數據是一種方法。 這將確保依賴計算機視覺技術的系統避免偏見。
尋找更好的方法來放大人工神經網絡的優勢,創建強大的 GPU 和其他所需的硬件組件,以及了解人類視覺系統是邁向真正的計算機視覺的一些方法。
賦予機器視覺
圖像識別模型的錯誤率正在急劇下降。 從僅檢測印刷字母到精確識別人臉,我們已經走了很長一段路。 但是還有很長的路要走,還有許多新的里程碑要征服。 實現真正的計算機視覺很可能是創造像人類一樣複雜和智能的機器人的關鍵之一。
如果一個過程可以數字化執行,機器學習最終將成為其中的一部分。 如果您不完全相信,這裡有 51 個機器學習統計數據,它們暗示相同的技術正在席捲幾乎所有行業。