電腦視覺入門大全:基礎概念、運行原理、應用案例詳解

  • 2019 年 10 月 31 日
  • 筆記

轉載自:機器之心

已授權轉載,禁止二次轉載,如需轉載請聯繫作者

這是一篇電腦視覺入門指南,從概念、原理、用例等角度介紹了電腦視覺。

「機器能夠模擬人類視覺系統」的幻想已經過時了。自 1960 年代第一批學術論文出現以來,電腦視覺已經走了很遠,現代系統已經出現,且它們可以集成到移動應用中。

今天,由於其廣泛應用和巨大潛力,電腦視覺成為最熱的人工智慧和機器學習子領域之一。其目標是:複製人類視覺的強大能力。

但是,到底什麼是電腦視覺?它在不同行業中的應用現狀如何?知名的商業用例有哪些?典型的電腦視覺任務是什麼?

本文將介紹電腦視覺的基礎概念和現實應用,對任何聽說過電腦視覺但不確定它是什麼以及如何應用的人,本文是了解電腦視覺這一複雜問題的便捷途徑。

你可以通讀本文,或者直接跳至某個章節。

目錄

  • 什麼是電腦視覺?
  • 電腦視覺解決什麼問題
  • 區分電腦視覺與其相關領域
  • 行業應用
  • 零售業
  • 製造業
  • 醫療行業
  • 自動駕駛
  • 保險業
  • 農業
  • 安防
  • 典型的電腦視覺任務
  • 影像分類
  • 定位
  • 目標檢測
  • 目標識別
  • 實例分割
  • 目標追蹤
  • 電腦視覺運行原理
  • 通用策略
  • 現有數據集
  • 訓練目標檢測模型
  • 商業用例
  • 視覺搜索引擎
  • Facebook 人臉識別
  • Amazon Go
  • 特斯拉自動駕駛
  • 微軟 InnerEye
  • 電腦視覺在小公司的應用現狀
  • 如何實現電腦視覺項目

什麼是電腦視覺?

電腦視覺解決什麼問題

人類能夠理解和描述影像中的場景。以下圖為例,人類能做到的不僅僅是檢測到影像前景中有四個人、一條街道和幾輛車。

披頭士專輯《艾比路》的封面。(圖源:https://liveforlivemusic.com/news/beatles-abbey-road/)

除了這些基本資訊,人類還能夠看出影像前景中的人正在走路,其中一人赤腳,我們甚至知道他們是誰。我們可以理性地推斷出圖中人物沒有被車撞擊的危險,白色的大眾汽車沒有停好。人類還可以描述圖中人物的穿著,不止是衣服顏色,還有材質與紋理。

這也是電腦視覺系統需要的技能。簡單來說,電腦視覺解決的主要問題是:

給出一張二維影像,電腦視覺系統必須識別出影像中的對象及其特徵,如形狀、紋理、顏色、大小、空間排列等,從而儘可能完整地描述該影像。

區分電腦視覺與其相關領域

電腦視覺完成的任務遠超其他領域,如影像處理、機器視覺,儘管它們存在一些共同點。接下來,我們就來了解一下這些領域之間的差異。

  • 影像處理

影像處理旨在處理原始影像以應用某種變換。其目標通常是改進影像或將其作為某項特定任務的輸入,而電腦視覺的目標是描述和解釋影像。例如,降噪、對比度或旋轉操作這些典型的影像處理組件可以在像素層面執行,無需對影像整體具備全面的了解。

  • 機器視覺

機器視覺是電腦視覺用於執行某些(生產線)動作的特例。在化工行業中,機器視覺系統可以檢查生產線上的容器(是否乾淨、空置、無損)或檢查成品是否恰當封裝,從而幫助產品製造。

  • 電腦視覺

電腦視覺可以解決更複雜的問題,如人臉識別、詳細的影像分析(可幫助實現視覺搜索,如 Google Images),或者生物識別方法。

行業應用

人類不僅能夠理解影像中的場景,稍加訓練,還能解釋書法、印象派畫家、抽象畫,以及胎兒的二維超聲影像。

從這個角度來看,電腦視覺領域尤其複雜,它擁有大量的實際應用。

從電商到傳統行業,各種類型和規模的公司現在都可以利用電腦視覺的強大能力,這是依賴於人工智慧和機器學習(更具體地說是電腦視覺)的創新所帶來的利好。

下面我們就來看看,近年來受電腦視覺影響最大的行業應用。

零售業

近年來,電腦視覺在零售業的應用已成為最重要的技術趨勢之一。下文將介紹一些常見的用例。如果你想對電腦視覺在零售業的潛在應用有更詳細的了解,請參考:https://tryolabs.com/resources/retail-innovations-machine-learning/。

行為追蹤

實體零售店利用電腦視覺演算法和攝影機,了解顧客及其行為。

電腦視覺演算法能夠識別人臉,確定人物特徵,如性別或年齡範圍。此外,零售店還可以利用電腦視覺技術追蹤顧客在店內的移動軌跡,分析其移動路線,檢測行走模式,並統計零售店店面受到行人注意的次數。

添加視線方向檢測後,零售店能夠回答這一重要問題:將店內商品放在哪個位置可以提升消費者體驗,最大化銷售額。

電腦視覺還是開發防盜竊機制的強大工具。人臉識別演算法可用於識別已知的商店扒手,或檢測出某位顧客將商品放入自己的背包。

庫存管理

電腦視覺在庫存管理方面有兩個主要的應用。

通過安防攝影機影像分析,電腦視覺演算法可以對店內剩餘商品生成非常準確的估計。對於店鋪管理者來說,這是非常寶貴的資訊,它可以幫助管理者立即察覺不尋常的貨物需求,並及早作出反應。

另一個常見應用是:分析貨架空間利用情況,識別次優配置。除了發現被浪費的空間以外,此類演算法還可以提供更好的貨品擺放方案。

製造業

生產線上的主要問題是機器中斷或殘次品,這些問題會導致生產延遲和利潤損失。

電腦視覺演算法被證實是實施預測性維護的好方法。演算法通過分析(來自機器人身上攝影機等的)視覺資訊,預先發現機器的潛在問題。此類系統可以預測包裝或汽車裝配機器人是否會中斷,這是一項巨大的貢獻。

這同樣可用於降低不良率,系統可以檢測出整個生產線上各個組件中的缺陷。這使得製造商實時響應,採取解決辦法。缺陷可能不那麼嚴重,生產流程可以繼續,但是產品以某種方式被標記,或者被指向特定的生產路徑。但是,有時停止生產線是必要的。為了進一步的利益,此類系統可以針對每個用例進行訓練,按類型和嚴重程度對缺陷進行分類。

醫療行業

在醫療行業中,現有電腦視覺應用的數量非常龐大。

毫無疑問,醫療影像分析是最著名的例子,它可以顯著提升醫療診斷流程。此類系統對 MRI 影像、CT 掃描影像和 X 光影像進行分析,找出腫瘤等異常,或者搜索神經系統疾病的癥狀。

在很多情況下,影像分析技術從影像中提取特徵,從而訓練能夠檢測異常的分類器。但是,一些特定應用需要更細化的影像處理。例如,對結腸鏡檢查影像進行分析時,分割影像是必要的,這樣才能找出腸息肉,防止結直腸癌。

胸腔 3D 渲染 CT 掃描影像的體分割。(圖源:https://en.wikipedia.org/wiki/Image_segmentation)

上圖是觀察胸腔元素所需的影像分割結果。該系統分割每個重要部分並著色:肺動脈(藍色)、肺靜脈(紅色)、縱膈(黃色)和橫膈(紫色)。

目前大量此類應用已經投入使用,如估計產後出血量、量化冠狀動脈鈣化情況、在沒有 MRI 的情況下測定人體內的血流量。

但是,醫療影像並非電腦視覺在醫療行業中唯一的用武之地。比如,電腦視覺技術為視障人士提供室內導航幫助。這些系統可以在樓層平面圖中定位行人和周圍事物等,以便實時提供視覺體驗。視線追蹤和眼部分析可用於檢測早期認知障礙,如兒童自閉症或閱讀障礙,這些疾病與異常注視行為高度相關。

自動駕駛

你是否思考過,自動駕駛汽車如何「看」路?電腦視覺在其中扮演核心角色,它幫助自動駕駛汽車感知和了解周圍環境,進而恰當運行。

電腦視覺最令人興奮的挑戰之一是影像和影片目標檢測。這包括對不同數量的對象進行定位和分類,以便區分某個對象是交通訊號燈、汽車還是行人,如下圖所示:

自動駕駛汽車目標檢測。(圖源:https://cdn-images-1.medium.com/max/1600/1*q1uVc-MU-tC-WwFp2yXJow.gif)

此類技術,加上對來自感測器和/或雷達等來源的數據進行分析,使得汽車能夠「看見」。

影像目標檢測是一項複雜的強大任務,之前我們曾經討論過,參見:https://tryolabs.com/blog/2017/08/30/object-detection-an-overview-in-the-age-of-deep-learning/。

另一篇文章從人類-影像交互的角度探討這一主題,參見:https://tryolabs.com/blog/2018/03/01/introduction-to-visual-question-answering/。

保險業

電腦視覺在保險業中的應用影響很大,尤其是在理賠處理中。

電腦視覺應用可以指導客戶以視覺形式進行理賠文件處理。它可以實時分析影像並發送至適合的保險經紀人。同時,它可以估計和調整維護費用,確定是否在保險覆蓋範圍內,甚至檢測是否存在保險欺詐。所有這些最大程度上縮短了索賠流程,為客戶提供更好的體驗。

從預防的角度來看,電腦視覺在避免意外事故方面用處極大。大量可用於阻止碰撞的電腦視覺應用被整合到工業機械、汽車和無人機中。這是風險管理的新時代,可能改變整個保險業。

農業

電腦視覺對農業有極大影響,尤其是精準農業。

在糧食生產這一全球經濟活動中,存在一系列寶貴的電腦視覺應用。糧食生產面臨一些反覆出現的問題,之前這些問題通常由人類監控。而現在,電腦視覺演算法可以檢測或合理預測病蟲害。此類早期診斷可幫助農民快速採取合適措施,減少損失,保證生產品質。

另一項長期挑戰是除草,因為雜草對除草劑產生抗藥性,可能給農民帶來嚴重損失。現在出現了配備有電腦視覺技術的機器人,它們可以監控整片農田,精準噴洒除草劑。這極大地節約了使用農藥量,為地球環境和生產成本均帶來了極大的益處。

土壤品質也是農業中的一大主要因素。一些電腦視覺應用可以從手機拍攝的照片中識別出土壤的潛在缺陷和營養缺乏問題。分析之後,這些應用會針對檢測出的土壤問題,提供土壤恢復技術和可能的解決方案。

電腦視覺還可用於分類。一些演算法通過識別水果、蔬菜甚至花卉的主要特性(如大小、品質、重量、顏色、紋理等),對其進行分類。這些演算法還能夠檢測缺陷,估計出哪些農產品保鮮期較長、哪些應該放置在本地市場售賣。這極大延長了農產品的保鮮期,減少了農產品上市前所需時間。

安防

與零售業類似,對安全具備高要求的企業(如銀行或賭場)可從電腦視覺應用中獲益,這些應用對安防攝影機拍攝的影像進行分析,從而識別顧客。

而從另一個層面上來講,電腦視覺是國土安全任務中的強大工具。它可用於改進港口貨物檢驗,或者監控敏感場所,如大使館、發電站、醫院、鐵路和體育場。這裡,電腦視覺不僅能夠分析和分類影像,還能對場景提供詳細且有意義的描述,為決策實時提供關鍵因素。

通常,電腦視覺廣泛應用於國防任務,如偵察敵軍地形、自動確認影像中的敵軍、自動化車輛和機器移動,以及搜索援救。

典型的電腦視覺任務

高度複製人類視覺系統,這是如何做到的呢?

電腦視覺基於大量不同任務,並組合在一起實現高度複雜的應用。電腦視覺中最常見的任務是影像和影片識別,涉及確定影像包含的不同對象。

影像分類

電腦視覺中最知名的任務可能就是影像分類了,它對給定影像進行分類。我們看一個簡單的二分類例子:我們想根據影像是否包含旅遊景點對其進行分類。假設我們為此任務構建了一個分類器,並提供了一張影像(見下圖)。

埃菲爾鐵塔(圖源:https://cdn.pariscityvision.com/media/wysiwyg/tour-eiffel.jpg)

該分類器認為上述影像屬於包含旅遊景點的影像類別。但這並不意味著分類器認出埃菲爾鐵塔了,它可能只是曾經見過這座塔的照片,並且當時被告知影像中包含旅遊景點。

巴黎旅遊景點明信片。(圖源:http://toyworldgroup.com/image/cache/catalog/Ecuda%20Puzzles/Postcard%20Form%20Paris%20/14840-500×500.jpg)

該分類器的更強大版本可以處理不止兩個類別。例如,分類器將影像分類為旅遊景點的特定類型,如埃菲爾鐵塔、凱旋門、聖心大教堂等。那麼在此類場景中,每個影像輸入可能有多個答案,就像上面那張明信片一樣。

定位

假設,現在我們不僅想知道影像中出現的旅遊景點名稱,還對其在影像中的位置感興趣。定位的目標就是找出影像中單個對象的位置。例如,下圖中埃菲爾鐵塔的位置就被標記出來了。

被紅色邊界框標記出的埃菲爾鐵塔。(圖源:https://cdn.pariscityvision.com/media/wysiwyg/tour-eiffel.jpg)

執行定位的標準方式是,在影像中定義一個將對象圍住的邊界框。

定位是一個很有用的任務。比如,它可以對大量影像執行自動對象剪裁。將定位與分類任務結合起來,就可以快速構建著名旅遊景點(剪裁)影像數據集。

目標檢測

我們想像一個同時包含定位和分類的動作,對一張影像中的所有感興趣對象重複執行該動作,這就是目標檢測。該場景中,影像中的對象數量是未知的。因此,目標檢測的目標是找出影像中的對象,並進行分類。

目標檢測結果(圖源:http://research.ibm.com/artificial-intelligence/computer-vision/images/cv-research-areas-object-detection.jpg)

在這個密集影像中,我們可以看到電腦視覺系統識別出大量不同對象:汽車、人、自行車,甚至包含文本的標誌牌。

這個問題對人類來說都算困難的。一些對象只顯示出一部分,因為它們有一部分在影像外,或者彼此重疊。此外,相似對象的大小差別極大。

目標檢測的一個直接應用是計數,它在現實生活中應用廣泛,從計算收穫水果的種類到計算公眾集會或足球賽等活動的人數,不一而足。

目標識別

目標識別與目標檢測略有不同,儘管它們使用類似的技術。給出一個特定對象,目標識別的目標是在影像中找出該對象的實例。這並不是分類,而是確定該對象是否出現在影像中,如果出現,則執行定位。搜索包含某公司 logo 的影像就是一個例子。另一個例子是監控安防攝影機拍攝的實時影像以識別某個人的面部。

實例分割

我們可以把實例分割看作是目標檢測的下一步。它不僅涉及從影像中找出對象,還需要為檢測到的每個對象創建一個儘可能準確的掩碼。

(圖注)實例分割結果。

你可以從上圖中看到,實例分割演算法為四位披頭士成員和一些汽車創建掩碼(不過該結果並不完整,尤其是列儂)。

人工執行此類任務的成本很高,而實例分割技術使得此類任務的實現變得簡單。在法國,法律禁止媒體在未經監護人明確同意的情況下暴露兒童形象。使用實例分割技術,可以模糊電視或電影中的兒童面部。

目標追蹤

目標追蹤旨在追蹤隨著時間不斷移動的對象,它使用連續影片幀作為輸入。該功能對於機器人來說是必要的,以守門員機器人舉例,它們需要執行從追球到擋球等各種任務。目標追蹤對於自動駕駛汽車而言同樣重要,它可以實現高級空間推理和路徑規劃。類似地,目標追蹤在多人追蹤系統中也很有用,包括用於理解用戶行為的系統(如零售店的電腦視覺系統),以及在遊戲中監控足球或籃球運動員的系統。

執行目標追蹤的一種相對直接的方式是,對影片序列中的每張影像執行目標追蹤並對比每個對象實例,以確定它們的移動軌跡。該方法的缺陷是為每張影像執行目標檢測通常成本高昂。另一種替換方式僅需捕捉被追蹤對象一次(通常是該對象出現的第一次),然後在不明確識別該對象的情況下在後續影像中辨別它的移動軌跡。最後,目標追蹤方法未必就能檢測出對象,它可以在不知道追蹤對象是什麼的情況下,僅查看目標的移動軌跡。

電腦視覺運行原理

如前所示,電腦視覺的目標是模仿人類視覺系統的工作方式。演算法如何實現這一目標呢?本文將介紹其中最重要的幾個概念。

通用策略

深度學習方法和技術深刻改變了電腦視覺以及其他人工智慧領域,對於很多任務而言,使用深度學習方法已經成為標準操作。尤其是,卷積神經網路(CNN)的性能超過了使用傳統電腦視覺技術所能達到的最優結果。

以下四步展示了利用 CNN 構建電腦視覺模型的通用方法:

  1. 創建一個包含標註影像的數據集或者使用現有的數據集。標註可以是影像類別(適用於分類任務)、邊界框和類別對(適用於目標檢測問題),或者對影像中每個感興趣對象進行像素級分割(適用於實例分割問題)。
  2. 從每張影像中提取與待處理任務相關的特徵,這是建模的重點。例如,用來識別人臉的特徵、基於人臉標準的特徵與用來識別旅遊景點或人體器官的特徵存在顯著區別。
  3. 基於特徵訓練深度學習模型。訓練意味著向機器學習模型輸入很多影像,然後模型基於特徵學習如何解決任務。
  4. 使用不同於訓練所用數據的影像評估模型,從而測試訓練模型的準確率。

該策略非常基礎,但效果不錯。這類方法叫做監督機器學習,它需要包含模型待學習現象的數據集。

現有數據集

構建數據集通常成本高昂,但是它們對於開發電腦視覺應用至關重要。幸運的是,目前有一些現成的數據集。其中規模最大、最著名的是 ImageNet,該數據集包含 1400 萬人工標註影像。該數據集包含 100 萬張具備邊界框標註的影像。

帶有邊界框的 ImageNet 影像(圖源:http://www.image-net.org/bbox_fig/kit_fox.JPG)

具備對象屬性標註的 ImageNet 影像(圖源:http://www.image-net.org/attribute_fig/pullfigure.jpg)

另一個著名數據集是 Microsoft Common Objects in Context (COCO) 數據集,它包含 328,000 張影像、91 個對象類別(這些類別很容易識別,4 歲孩童也可以輕鬆識別出來),以及 250 萬標註實例。

COCO 數據集中的標註影像示例。(圖源:https://arxiv.org/abs/1405.0312)

儘管該領域可用數據集並不是特別多,但仍然有一些適合不同的任務,如 CelebFaces Attributes Dataset(CelebA 數據集,該人臉屬性數據集包含超過 20 萬張名人影像)、Indoor Scene Recognition 數據集(包含 15,620 張室內場景影像)、Plant Image Analysis 數據集(包括屬於 11 個不同類別的 100 萬張植物影像)。

訓練目標檢測模型

  • Viola–Jones 方法

有很多種方法可以解決目標檢測問題。很多年來,Paul Viola 和 Michael Jones 在論文《Robust Real-time Object Detection》中提出的方法成為流行的方法。

儘管該方法可用來檢測大量對象類別,但它最初是受人臉檢測目標的啟發。該方法快速、直接,是傻瓜相機中所使用的演算法,它可以在幾乎不浪費處理能力的情況下執行實時人臉檢測。

該方法的核心特徵是:基於哈爾特徵與大量二分類器一起訓練。哈爾特徵表示邊和線,計算簡單。

哈爾特徵(圖源:https://docs.opencv.org/3.4.3/haar_features.jpg)

儘管比較基礎,但在人臉檢測這一特定案例下,這些特徵可以捕捉到重要元素,如鼻子、嘴或眉間距。該監督方法需要很多正類和負類樣本。

檢測蒙娜麗莎的面部。

本文暫不討論演算法細節。不過,上圖展示了該演算法檢測蒙娜麗莎面部的過程。

  • 基於 CNN 的方法

深度學習變革了機器學習,尤其是電腦視覺。目前基於深度學習的方法已經成為很多電腦視覺任務的前沿技術。

其中,R-CNN 易於理解,其作者提出了一個包含三個階段的流程:

  1. 利用區域候選(region proposal)方法提取可能的對象。
  2. 使用 CNN 識別每個區域中的特徵。
  3. 利用支援向量機(SVM)對每個區域進行分類。

R-CNN 架構(圖源:https://arxiv.org/abs/1311.2524)

該區域候選方法最初由論文《Selective Search for Object Recognition》提出,儘管 R-CNN 演算法並不在意使用哪種區域候選方法。步驟 3 非常重要,因為它減少了候選對象的數量,降低了計算成本。

這裡提取的特徵沒有哈爾特徵那麼直觀。總之,CNN 可用於從每個區域候選中提取 4096 維的特徵向量。鑒於 CNN 的本質,輸入應該具備同樣的維度。這也是 CNN 的弱點之一,很多方法解決了這個問題。回到 R-CNN 方法,訓練好的 CNN 架構要求輸入為 227 × 227 像素的固定區域。由於候選區域的大小各有不同,R-CNN 作者通過扭曲影像的方式使其維度滿足要求。

滿足 CNN 輸入維度要求的扭曲影像示例。

儘管該方法取得了很好的結果,但訓練過程中存在一些困難,並且該方法最終被其他方法超越。其中一些方法在這篇文章中有深入介紹:https://tryolabs.com/blog/2017/08/30/object-detection-an-overview-in-the-age-of-deep-learning/。

商業用例

電腦視覺應用被越來越多的公司部署,用於回答業務問題或提升產品性能。它們或許已經成為人們日常生活的一部分,你甚至都沒有注意到它。以下是一些常見的使用案例。

視覺搜索引擎

2001 年,Google Images 的出現意味著視覺搜索技術可被大眾使用。視覺搜索引擎能夠基於特定內容標準檢索影像。常見用例是搜索關鍵詞,不過有時候我們會提供源影像,要求引擎找出相似影像。在某些案例中,可以指定更詳細的搜索條件,如沙灘的影像、夏天拍攝、至少包含 10 個人。

現在有很多視覺搜索引擎,有的可以網站形式直接使用,有的需要通過 API 調用,有的則是移動應用。

最著名的視覺搜索網站無疑是 Google Images、Bing 和 Yahoo。前兩個網站均可使用多個關鍵詞或者單張影像作為搜索輸入,以影像作為搜索輸入又名「反向影像搜索」(以圖搜圖)。Yahoo 僅支援關鍵詞搜索,搜索結果同樣不錯,如下圖所示。

Yahoo 影像搜索。

還有一些視覺搜索網站同樣值得關注,如僅支援反向影像搜索的 TinEye,以及僅支援文本搜索但覆蓋範圍極大的 Picsearch。

在移動應用方面,由於視覺搜索技術逐漸成為標準特徵,此類應用之間的區別較大。

此類實現包括 Google Goggles(後被 Google Lens 取代),它可從影像中獲取詳細資訊。例如,從一張貓照片中得到其品種資訊,或者提供博物館中藝術作品的資訊。

在電商市場中,Pinterest 開發了 Pinterest Lens。如果你需要現有衣物的新穿搭想法,你可以為這件衣服拍張照,之後 Pinterest Lens 會返回穿搭建議,該建議包括你可以購買的搭配單品。近年來,針對網購的視覺搜索成為增長最快的趨勢之一。

最後,視覺搜索的更高階案例是視覺問答系統,參見:https://tryolabs.com/blog/2018/03/01/introduction-to-visual-question-answering/。

Facebook 人臉識別

儘管早在 2000 年代中期,出於自動對焦目的而使用人臉檢測技術的相機已經普遍,但近年來人臉識別領域出現了很多更優秀的成績。最常見(也最具爭議)的應用或許就是識別影像或影片中的人物。這通常用於安防系統,但也出現在社交媒體中:人臉管理系統為人臉添加過濾器,以便按人臉執行搜索,甚至在選舉過程中阻止選民多次投票。人臉識別還可用到更複雜的場景,如識別面部表情中的情緒。

其中同時引發了興趣和擔憂的用例是 Facebook 的人臉識別系統。開發團隊的一個主要目標是阻止陌生人使用出現用戶人臉的影像(見下圖的示例),或者向視障用戶告知影像或影片中出現的人物。

Facebook 人臉識別。(圖源:https://cdn0.tnwcdn.com/wp-content/blogs.dir/1/files/2017/12/Facebook-Tagging-796×428.jpg)

除了那些令人擔憂的部分以外,這項技術在很多場景中是有益的,比如對抗網路騷擾。

Amazon Go

厭倦了超市和雜貨店的排隊等待?Amazon Go 商店提供別樣的體驗。在電腦視覺的幫助下,這裡不用排隊,也沒有包裝箱。

其思路很簡單:顧客進入商店,選擇所需商品,離開商店,不用排隊結賬。

這是如何實現的呢?多虧了 Amazon 的「Just Walk Out」技術。顧客必須下載一個移動 app,該 app 可以幫助 Amazon 識別他們的身份。當他們想進入 Amazon Go 商店時,該 app 提供一個二維碼。商店入口處有一些閘機供顧客出入商店,顧客進入商店時,閘機讀取顧客的二維碼。一個有趣的功能是,其他人可以陪伴該顧客一起進入商店,且陪伴者無需安裝該應用程式。

顧客可以在商店內自由移動,而這也是電腦視覺發揮作用之處。商店內安裝有一系列感測器,包括攝影機、運動感測器和商品上的重量感測器。這些設備收集了每個人的行為資訊。它們實時檢測顧客從貨架上拿取的貨品。顧客可以取下某個貨品,改變主意的話再放回去。系統最終會向第一個拿起它的顧客收費,即使它被遞給另一位想要購買的顧客,第一位拿起它的顧客仍然需要支付費用。於是系統創建了一個包含所有拿起貨品的虛擬購物車,並進行實時維護。這使得顧客的購物流程非常順利。

當顧客完成購物,即可走出商店。當他們經過閘機時,系統不會讓顧客掃描貨品或二維碼,而是記錄交易額並向顧客發送確認通知。

Amazon Go 是電腦視覺對現實世界和人類日常生活產生積極影響的一個案例。

特斯拉 Autopilot

讓汽車自動行駛不只是一個遙遠的夢。特斯拉 Autopilot 技術提供非常方便的自動駕駛功能。這並不是全自動駕駛系統,而是可在特定路段上駕駛汽車的駕駛助手。這是特斯拉強調的重點:在所有情況下,控制汽車都是駕駛員的責任。

自動駕駛通過目標檢測和追蹤技術實現。

要想使 Autopilot 工作,特斯拉汽車必須「高度武裝」:八個全景攝影機提供 250 米範圍內的 360 度影像、超聲波感測器用於檢測對象、雷達用來處理周圍環境資訊。這樣,特斯拉汽車才能夠根據交通條件調整行駛速度,在遇到障礙物時及時剎車,保持或變換車道,拐彎以及流暢地停車。

特斯拉 Autopilot 技術是電腦視覺對人類日常活動帶來積極影響的另一個精彩案例。

微軟 InnerEye

在醫療行業中,微軟的 InnerEye 是幫助放射科醫生、腫瘤專家和外科醫生處理放射影像的寶貴工具。其主要目的是從惡性腫瘤的 3D 影像中準確識別出腫瘤。

癌性腫瘤的 3D 影像。

基於電腦視覺和機器學習技術,InnerEye 輸出非常詳細的腫瘤 3D 建模影像。以上截圖展示了 InnerEye 創建的對腦部腫瘤的完整 3D 分割。從上述影片中,你可以看到專家控制 InnerEye 工具,指引它執行任務,InnerEye 像助手一樣運行。

在放射療法中,InnerEye 結果使得不傷害重要器官直接針對目標腫瘤進行放射成為可能。

這些結果還幫助放射科醫生更好地理解影像序列,基於腫瘤大小的變化,判斷疾病是否有進一步發展、穩定,或者對治療反應良好。這樣,醫療影像就成為一種重要的追蹤和衡量方式。

最後,InnerEye 可用於規劃精準手術。

電腦視覺在小公司的應用現狀

電腦視覺在大公司的實現常被大家談論,但這不意味著所有公司必須是Google或亞馬遜那種量級才能從該機器學習技術中受益。任何規模的公司都可以利用數據和電腦視覺技術變得更加高效,制定更好的決策。

我們來看一些小公司的現實案例:

Tryolabs 曾幫助一家位於舊金山的小型風險管理公司構建和實現了一個電腦視覺系統,用於擴展對屋頂檢查影像的處理。

在使用電腦視覺技術之前,公司專家人工分析無人機拍攝的照片,檢測屋頂建設中的損傷。儘管分析結果很準確,但由於服務耗時且人力資源有限,該服務無法得到有效擴展。

為了解決這個問題,我們構建了一個能夠理解影像並自動識別屋頂問題(如積水、電纜鬆散和鐵鏽)的深度學習系統。為此,我們開發了一個能夠基於屋頂影像檢測問題的深度神經網路、分析輸入影像的流程,以及使檢測結果可用於外部工具的 API。

因此,這家公司的訂單量和收益都有所增長。

如何實現電腦視覺項目

和在組織內值得進行的所有創新一樣,你應該選擇一種有策略的方式來實現電腦視覺項目。

利用電腦視覺技術實現成功創新取決於整體業務策略、資源和數據。

以下問題可以幫助你為電腦視覺項目構建戰略路線圖。

1、電腦視覺解決方案應該降低成本還是增加收益?

成功的電腦視覺項目要麼降低成本要麼提高收益(或者二者兼顧),你應該定義該項目的目標。只有這樣,它才能對組織及其發展產生重要影響。

2、如何衡量項目的成功?

每個電腦視覺項目都是不同的,你需要定義一個特定於該項目的成功指標。設置好指標後,你應該確保它被業務人員和數據科學家等認可。

3、能否保證資訊的獲取?

開啟電腦視覺項目時,數據科學家應該能夠輕鬆訪問數據。他們需要和來自不同部門(如 IT 部門)的重要同事合作。這些同事應以其業務知識提供支援,內部官僚主義則會成為主要約束。

4、 組織收集的數據是否合適?

電腦視覺演算法並非魔法。它們需要數據才能運作,輸入數據的品質決定其性能。有多種不同方法和來源可供收集合適數據,這取決於你的目標。無論如何,擁有的輸入數據越多,電腦視覺模型性能優秀的可能性越大。如果你對數據的量和質存在疑慮,你可以請數據科學家幫忙評估數據集品質,必要情況下,找到獲取第三方數據的最優方式。

5. 組織是否以恰當格式收集數據?

除了擁有合適量和類型的數據以外,你還需要確保數據的格式。假設你使用數千張完美的手機照片(解析度高,背景為白色)訓練目標檢測演算法。然後發現演算法無法運行,因為實際用例是在不同光照/對比度/背景條件下檢測持有手機的人,而不是檢測手機本身。這樣你之前的數據收集努力基本上就作廢了,你還需要重頭再來。此外,你應該了解,如果數據存在偏見,演算法會學到該偏見。

關於如何開啟成功的電腦視覺項目,參見部落格:https://tryolabs.com/blog/2019/02/13/11-questions-to-ask-before-starting-a-successful-machine-learning-project/。

希望本文能夠幫助讀者了解電腦視覺概念、運作原理以及現實應用。

原文鏈接:https://tryolabs.com/resources/introductory-guide-computer-vision/