計算機視覺

日萌社

人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度學習實戰(不定時更新)


 

1.1 計算機視覺概念

1.1.1 什麼是計算機視覺

  • 定義:計算機視覺(Computer vision)是一門研究如何使機器“看”的科學,更進一步的說,就是指用攝影機和計算機代替人眼對目標進行識別、跟蹤和測量等,用計算機處理成爲更適合人眼觀察或傳送給儀器檢測的圖像。

比如下圖,做到的不僅僅是檢測到圖像前景中有四個人、一條街道和幾輛車。除了這些基本信息,人類還能夠看出圖像前景中的人正在走路,其中一人赤腳,我們甚至知道他們是誰。我們可以理性地推斷出圖中人物沒有被車撞擊的危險,白色的大衆汽車沒有停好。人類還可以描述圖中人物的穿着,不止是衣服顏色,還有材質與紋理。人類能夠理解和描述圖像中的場景。

披頭士專輯《艾比路》的封面

區分計算機視覺與其相關領域

計算機視覺,圖像處理,圖像分析,機器人視覺和機器視覺是彼此緊密關聯的學科。計算機視覺的研究很大程度上針對圖像的內容。如果你翻開帶有上面這些名字的教材,你會發現在技術和應用領域上他們都有着相當大部分的重疊。這表明這些學科的基礎理論大致是相同的,甚至讓人懷疑他們是同一學科被冠以不同的名稱。然而,各研究機構,學術期刊,會議及公司往往把自己特別的歸爲其中某一個領域,於是各種各樣的用來區分這些學科的特徵便被提了出來。下面將給出一種區分方法,儘管並不能說這一區分方法完全準確。

  • 圖像處理

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

  • 機器視覺

主要是指工業領域的視覺研究,例如自主機器人的視覺,用於檢測和測量的視覺。這表明在這一領域通過軟件硬件,圖像感知與控制理論往往與圖像處理得到緊密結合來實現高效的機器人控制或各種實時操作。

1.1.2 計算機視覺公司以及領域分析

爲什麼學習計算機視覺

  • 1、市場大

人類有 70-80% 的信息來源於視覺。相比語音場景的單一,CV 可以做的事情更多。計算機視覺在這不到一年的時間裏已經遍地開花,地鐵的安防攝像頭、火車站飛機場的人臉識別閘機、智能手機的人臉識別解鎖與支付功能……不知不覺中,計算機視覺技術“滲透”到了人們生活的方方面面。

  • 2、創業公司、資本多

2017 年稱得上中國“獨角獸”企業的公司已達 164 家,這其中包括了 7 家人工智能企業,而計算機視覺企業就在其中佔了四個名額,他們分別是:曠視科技、商湯科技、雲從科技與依圖科技。計算機視覺在這一年獲得超過 230 億元的投資,在中國人工智能領域的投資當中佔比超過三分之一

計算機視覺應用被越來越多的公司部署,用於回答業務問題或提升產品性能。它們或許已經成爲人們日常生活的一部分,你甚至都沒有注意到它。

1.1.2.1 計算機視覺公司

國內做的好的公司

1、曠視科技北京曠視科技有限公司成立於2012年11月,公司專注於人臉識別技術和相關產品應用研究,面向開發者提供服務,能提供一整套人臉檢測、人臉識別、人臉分析以及人臉3D技術的視覺技術服務,主要通過提供雲端API、離線SDK、以及面向用戶的自主研發產品形式,將人臉識別技術廣泛應用到互聯網及移動應用場景中。

曠視的核心 AI 技術應用早已拓展到了手機行業,基於核心的深度學習和計算機視覺技術推出人臉支付、人臉識別解鎖、人像光效、人像背景虛化、視頻美化、3D Animoji 等一系列移動端 AI 產品,以滿足不同手機廠商在人臉解鎖、圖像增強、相機增強、智能圖像和視頻處理上的需求,在不到一年的時間內已經與華爲、小米、vivo、OPPO 等國內頭部手機企業實現深度合作。

2、Sense Time商湯科技商湯集團是一家科技創新公司,致力於引領人工智能核心“深度學習”技術突破,構建人工智能、大數據分析行業解決方案。在人工智能產業興起的大背景下,商湯集團憑藉在技術、人才、專利上超過十年的積累,迅速成爲了人工智能行業領軍企業之一。商湯科技已與國內外 700 多家公司和機構建立合作,涵蓋智慧城市、智能手機、互動娛樂及廣告、汽車、金融、零售、教育、醫療、地產等多個行業。

其它每個領域的代表公司:

智能駕駛:佑駕創新、馭勢科技、格林深瞳、圖森未來;

智能安防:商湯科技、格靈深瞳、曠視科技、速感科技、閱面科技、依圖科技、極視角;

智能醫療:商湯科技、依圖科技;

智能家居:速感科技、依圖科技;智慧金融:格靈深瞳、曠視科技、商湯科技、依圖科技;

智能硬件:雲天勵飛、速感科技、閱面科技、依圖科技

智慧商業:商湯科技、極視角、曠視科技、碼隆科技、圖普科技、雲天勵飛

娛樂:曠視科技、圖漾信息、圖普科技

計算機視覺領域尤其複雜,它擁有大量的實際應用。從電商到傳統行業,各種類型和規模的公司現在都可以利用計算機視覺的強大能力,這是依賴於人工智能和機器學習(更具體地說是計算機視覺)的創新所帶來的利好。

1.1.2.2 應用方向

國內人工智能產業中的計算機視覺領域的公司數量已達 300多家。涵蓋各個領域、場景。下面我們就來看看,計算機視覺影響的典型場景。

  • 目前 CV 公司比較集中的技術賽道有:人臉識別、自動駕駛、醫療圖像等,但目前而言,商業化落地最快的還是人臉識別及其業務相關的一些技術,比如銀行會用到人臉和自然場景下的 OCR(文字識別),還有浸入式大數據風控,安防會用到人臉、人體、車輛與大數據分析等。

注:計算機視覺還在很多如互聯網領域、手機行業都會有應用場景,識別與認證、AI 攝影、3D 視覺、視頻處理。

1、行爲追蹤

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

添加視線方向檢測後,零售店能夠回答這一重要問題:將店內商品放在哪個位置可以提升消費者體驗,最大化銷售額。計算機視覺還是開發防盜竊機制的強大工具。人臉識別算法可用於識別已知的商店扒手,或檢測出某位顧客將商品放入自己的揹包。

2、醫療行業

在醫療行業中,現有計算機視覺應用的數量非常龐大。毫無疑問,醫療圖像分析是最著名的例子,它可以顯著提升醫療診斷流程。此類系統對 MRI 圖像、CT 掃描圖像和 X 光圖像進行分析,找出腫瘤等異常,或者搜索神經系統疾病的症狀。在很多情況下,圖像分析技術從圖像中提取特徵,從而訓練能夠檢測異常的分類器。但是,一些特定應用需要更細化的圖像處理。

例如,對結腸鏡檢查圖像進行分析時,分割圖像是必要的,這樣才能找出腸息肉,防止結直腸癌。

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

上圖是觀察胸腔元素所需的圖像分割結果。該系統分割每個重要部分並着色:肺動脈(藍色)、肺靜脈(紅色)、縱膈(黃色)和橫膈(紫色)。目前大量此類應用已經投入使用,如估計產後出血量、量化冠狀動脈鈣化情況、在沒有 MRI 的情況下測定人體內的血流量。

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

4、自動駕駛

你是否思考過,自動駕駛汽車如何「看」路?計算機視覺在其中扮演核心角色,它幫助自動駕駛汽車感知和了解周圍環境,進而恰當運行。計算機視覺最令人興奮的挑戰之一是圖像和視頻目標檢測。這包括對不同數量的對象進行定位和分類,以便區分某個對象是交通信號燈、汽車還是行人,如下圖所示:

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

1.1.2.3 行業案例

這裏給商湯公司的應用解決方案系列圖:比如說商湯公司做的一些計算機視覺方案:https://www.sensetime.com/Service/。

智慧零售

智能手機

進行人臉識別、AR特效、圖片處理等等功能,同樣也可以在各種APP中應用。

視覺搜索引擎

Yahoo 僅支持關鍵詞搜索,搜索結果同樣不錯,如下圖所示。

微軟 InnerEye

在醫療行業中,微軟的 InnerEye 是幫助放射科醫生、腫瘤專家和外科醫生處理放射圖像的寶貴工具。其主要目的是從惡性腫瘤的 3D 圖像中準確識別出腫瘤。基於計算機視覺和機器學習技術,InnerEye 輸出非常詳細的腫瘤 3D 建模圖像。以上截圖展示了 InnerEye 創建的對腦部腫瘤的完整 3D 分割。從上述視頻中,你可以看到專家控制 InnerEye 工具,指引它執行任務,InnerEye 像助手一樣運行。

特斯拉 Autopilot

特斯拉 Autopilot 技術提供非常方便的自動駕駛功能。這並不是全自動駕駛系統,而是可在特定路段上駕駛汽車的駕駛助手。特斯拉汽車裝有:八個全景攝像頭提供 250 米範圍內的 360 度圖像、超聲波傳感器用於檢測對象、雷達用來處理周圍環境信息。

1.1.3 總結

  • 計算機視覺定義
  • 計算機視覺公司與應用場景

1.2 計算機視覺任務

1.2.1 計算機視覺發展歷程

  • 1、1963年,Larry Roberts發表了(可能是)CV領域的第一篇專業論文,用以對簡單幾何體進行邊緣提取和三維重建。1966年,麻省理工學院(MIT)發起了一個夏季項目,目標是搭建一個機器視覺系統,完成模式識別(pattern recognition)等工作。
    • 從現在來看,當時的目標確實定的過大,以至於到了50多年後的今天爲止,即使CV領域有了數以千計的科學工作者,仍然無法建立起整個機器視覺系統。
  • 2、七十年代,同樣是在MIT,學者David Marr發表的著作《Vision》從嚴謹又長遠的角度給出了CV的發展方向和一些基本算法,其中不乏現在爲人熟知的“圖層”的概念、邊緣提取、三維重建等。

    • 整個60年代到80年代,雖然CV的概念已經提出了20年,但是與“識別”相關的工作進展得並不順利。除了上述些許學者們點燃的星星之火,很難看到太多突破性的方法和文獻。因此人們開始思考:如果圖像識別太困難了,那爲什麼不先試試圖像分割呢?
  • 3、1999年David Lowe提出了尺度不變特徵變換(SIFT, Scale-invariant feature transform)目標檢測算法,用於匹配不同拍攝方向、縱深、光線等圖片中的相同元素。

    • (1)2001年,在互聯網泡沫的大背景下,CV領域卻發展得風生水起,並再次取得重大突破性進展:Paul Viola和Michael Johns使用Adaboost算法實現了實時性的人臉檢測。而這一技術僅在5年後就被富士膠片公司(Fujifilm)用於產品中——首個帶有實時人臉檢測功能的照相機。
    • (2)同一時期,Lazbnik, Schmid 和 Ponce等人提出了空間金字塔匹配算法(SPM, Spatial Pyramid Matching),具有開創性地將圖片進行分塊和特徵提取,以驗證圖片間的相似度。Dalal和Triggs等人提出了進行人物識別的HoG特徵(Histogram of Gradient)。2009年,Felzenswalb, McAllester和Ramanan等人提出了可變形部件模型(DPM, Deformable Parts Model)。
  • 4、隨着互聯網的不斷髮展,學習計算機視覺可用的圖片資源越來越多
    • (1)Everingham等人在2006年至2012年間搭建了一個大型圖片數據庫,供機器識別和訓練,稱爲PASCAL Visual Object Challenge,該數據庫中有20種類別的圖片,每種圖片數量在一千至一萬張不等。
    • (2)後來Li Fei-fei等人搭建了圖像數據庫ImageNet,總計兩萬兩千種類別,和一千四百餘萬張圖片。通過訓練ImageNet所給出的數據集,識別錯誤率正逐年下降,並在2015年就已經低於了正常人類的錯誤率。圖中值得注意的是,在2012年,識別錯誤率突然下降了近10個百分點,這得益於卷積神經網絡(CNN,Convolutional Neural Network)的運用,或者更爲大家所知曉的概念就是——深度學習(Deep Learning)。CNN在識別錯誤率上遠低於同年的其他模型,這標誌着以深度學習爲核心的CV時代正式開啓。

1.2.2 典型的計算機視覺任務

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

  • 四大主要任務

    • 圖像分類
    • 目標檢測
    • 目標分割
    • 目標追蹤
  • 1、圖像分類

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

我們要得出這張建築圖片是否是埃菲爾鐵塔。

  • 2、目標檢測
    •  目標檢測通常是從圖像中輸出單個目標的Bounding Box(邊框)以及標籤

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

在這個密集圖像中,我們可以看到計算機視覺系統識別出大量不同對象:汽車、人、自行車,甚至包含文本的標誌牌。這個問題對人類來說都算困難的。一些對象只顯示出一部分,因爲它們有一部分在圖像外,或者彼此重疊。此外,相似對象的大小差別極大。目標檢測的一個直接應用是計數,它在現實生活中應用廣泛,從計算收穫水果的種類到計算公衆集會或足球賽等活動的人數,不一而足。

  • 3、語義分割(Semantic Segmentation)

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

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

還有實例分割與語義分割有所不同,物體分割不僅需要對圖像中不同的對象進行分類,而且還需要確定它們之間的界限、差異和關係。

  • 4、目標追蹤

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

  • 其他任務技術:
    • 圖像標註 (Image Captioning)
      • 圖像標註是一項引人注目的研究領域,它的研究目的是給出一張圖片,你給我用一段文字描述它。(根據圖片生成描述文字)
    • 圖像生成(Image Generator):文字轉圖像
    • 超分辨率、風格遷移、着色
      • 超分辨率指的是從低分辨率對應物估計高分辨率圖像的過程,以及不同放大倍數下圖像特徵的預測,這是人腦幾乎毫不費力地完成的。最初的超分辨率是通過簡單的技術,如bicubic-interpolation和最近鄰。在商業應用方面,克服低分辨率限制和實現“CSI Miami”風格圖像增強的願望推動了該領域的研究。
      • 風格轉換:作爲一個主題,一旦可視化是相當直觀的,比如,拍攝一幅圖像,並用不同的圖像的風格特徵呈現。
      • 着色:是將單色圖像更改爲新的全色版本的過程。最初,這是由那些精心挑選的顏色由負責每個圖像中的特定像素的人手動完成的。2016年,這一過程自動化成爲可能,同時保持了以人類爲中心的色彩過程的現實主義的外觀。
    • 行爲識別
      • 行爲識別的任務是指在給定的視頻幀內動作的分類,以及最近纔出現的,用算法預測在動作發生之前幾幀的可能的相互作用的結果。
    • 人體姿勢估計
      • 人體姿勢估計試圖找出人體部位的方向和構型。 2D人體姿勢估計或關鍵點檢測一般是指定人體的身體部位,例如尋找膝蓋,眼睛,腳等的二維位置。

注:在基礎課程部分會着重介紹分類、檢測、分割、追蹤幾種任務,也是計算機視覺關鍵的任務。在後面案例或者項目中中會基於基礎階段介紹的算法來進行講解其熱門他方向(如人臉識別、關鍵點檢測等)

1.2.3 總結

  • 計算機視覺發展歷程
  • 計算機視覺的任務

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章