計算機視覺這一年:這是最全的一份CV技術報告

劉曉坤發表於2017-11-26
The M Tank 編輯了一份報告《A Year in Computer Vision》,記錄了 2016 至 2017 年計算機視覺領域的研究成果,對開發者和研究人員來說是不可多得的一份詳細材料。該材料共包括四大部分,在本文中機器之心對第一部分做了編譯介紹,後續會放出其他部分內容。

內容目錄

簡介

第一部分

  • 分類/定位
  • 目標檢測
  • 目標追蹤

第二部分

  • 分割
  • 超解析度、風格遷移、著色
  • 動作識別

第三部分

  • 3D 目標
  • 人體姿勢估計
  • 3D 重建
  • 其他未分類 3D
  • 總結

第四部分

  • 卷積架構
  • 資料集
  • 不可分類的其他材料與有趣趨勢

結論

完整 PDF 地址:http://www.themtank.org/pdfs/AYearofComputerVisionPDF.pdf

簡介

計算機視覺是關於研究機器視覺能力的學科,或者說是使機器能對環境和其中的刺激進行視覺化分析的學科。機器視覺通常涉及對影象或視訊的評估,英國機器視覺協會(BMVA)將機器視覺定義為「對單張影象或一系列影象的有用資訊進行自動提取、分析和理解」。

對我們環境的真正理解不是僅通過視覺表徵就可以達成的。更準確地說,是視覺線索通過視覺神經傳輸到主視覺皮層,然後由大腦以高度特徵化的形式進行分析的過程。從這種感覺資訊中提取解釋幾乎包含了我們所有的自然演化和主體經驗,即進化如何令我們生存下來,以及我們如何在一生中對世界進行學習和理解。

從這方面來說,視覺過程僅僅是傳輸影象並進行解釋的過程,然而從計算的角度看,影象其實更接近思想或認知,涉及大腦的大量功能。因此,由於跨領域特性很顯著,很多人認為計算機視覺是對視覺環境和其中語境的真實理解,並將引領我們實現強人工智慧。

不過,我們目前仍然處於這個領域發展的胚胎期。這篇文章的目的在於闡明 2016 至 2017 年計算機視覺最主要的進步,以及這些進步對實際應用的促進。

為簡單起見,這篇文章將僅限於基本的定義,並會省略很多內容,特別是關於各種卷積神經網路的設計架構等方面。

這裡推薦一些學習資料,其中前兩個適用與初學者快速打好基礎,後兩個可以作為進階學習:

  • Andrej Karpathy:「What a Deep Neural Network thinks about your #selfie」,這是理解 CNN 的應用和設計功能的最好文章 [4]。
  • Quora:「what is a convolutional neural network?」,解釋清晰明瞭,尤其適合初學者 [5]。
  • CS231n: Convolutional Neural Networks for Visual Recognition,史丹佛大學課程,是進階學習的絕佳資源 [6]。
  • Deep Learning(Goodfellow,Bengio&Courville,2016),這本書在第 9 章提供了對 CNN 的特徵和架構設計等詳盡解釋,網上有免費資源 [7]。

對於還想進一步瞭解神經網路和深度學習的,我們推薦:

  • Neural Networks and Deep Learning(Nielsen,2017),這是一本免費線上書籍,可為讀者提供對神經網路和深度學習的複雜性的直觀理解。即使只閱讀了第 1 章也可以幫助初學者透徹地理解這篇文章。

下面我們先簡介本文的第一部分,這一部分主要敘述了目標分類與定位、目標檢測與目標追蹤等十分基礎與流行的計算機視覺任務。而後機器之心將陸續分享 Benjamin F. Duffy 和 Daniel R. Flynn 後面 3 部分對計算機視覺論述,包括第二部分的語義分割、超解析度、風格遷移和動作識別,第三部分三維目標識別與重建、和第四部分卷積網路的架構與資料集等內容。

基礎的計算機視覺任務

分類/定位

影象分類任務通常是指為整張影象分配特定的標籤,如下左圖整張影象的標籤為 CAT。而定位是指找到識別目標在影象中出現的位置,通常這種位置資訊將由物件周圍的一些邊界框表示出來。目前 ImageNet [9] 上的分類/定位的準確度已經超過了一組訓練有素的人類 [10]。因此相對於前一部分的基礎,我們會著重介紹後面如語義分割、3D 重建等內容。

計算機視覺這一年:這是最全的一份CV技術報告

圖 1:計算機視覺任務,來源 cs231n 課程資料。

然而隨著目標類別 [11] 的增加,引入大型資料集將為近期的研究進展提供新的度量標準。在這一方面,Keras [12] 創始人 Francois Chollet 將包括 Xception 等架構和新技術應用到谷歌內部的大型資料集中,該資料集包含 1.7 萬個目標類別,共計 350M(Million)的多類別影象。

計算機視覺這一年:這是最全的一份CV技術報告

圖 2:ILSVRC 競賽中,分類/定位的逐年錯誤率,來源 Jia Deng (2016),ILSVRC2016。

ImageNet LSVRC(2016)亮點:

  • 場景分類是指用「溫室」、「體育場」和「大教堂」等特定場景對影象進行分類。ImageNet 去年舉辦了基於 Places2[15] 子資料的場景分類挑戰賽,該資料集有 365 個場景共計 8 百萬 訓練影象。海康威視 [16] 選擇了深度類 Inception 的網路和並不太深的 ResNet,並利用它們的整合實現 9% 的 Top-5 誤差率以贏得競賽。
  • Trimps-Soushen 以 2.99% 的 Top-5 分類誤差率和 7.71% 的定位誤差率贏得了 ImageNet 分類任務的勝利。該團隊使用了分類模型的整合(即 Inception、Inception-ResNet、ResNet 和寬度殘差網路模組 [17] 的平均結果)和基於標註的定位模型 Faster R-CNN [18] 來完成任務。訓練資料集有 1000 個類別共計 120 萬的影象資料,分割的測試集還包括訓練未見過的 10 萬張測試影象。
  • Facebook 的 ResNeXt 通過使用從原始 ResNet [19] 擴充套件出來的新架構而實現了 3.03% 的 Top-5 分類誤差率。

目標檢測

目標檢測(Object Detection)即如字面所說的檢測影象中包含的物體或目標。ILSVRC 2016 [20] 對目標檢測的定義為輸出單個物體或物件的邊界框與標籤。這與分類/定位任務不同,目標檢測將分類和定位技術應用到一張影象的多個目標而不是一個主要的目標。

計算機視覺這一年:這是最全的一份CV技術報告

圖 3:僅有人臉一個類別的目標檢測。圖為人臉檢測的一個示例,作者表示目標識別的一個問題是小物體檢測,檢測圖中較小的人臉有助於挖掘模型的尺度不變性、影象解析度和情景推理的能力,來源 Hu and Ramanan (2016, p. 1)[21]。

目標識別領域在 2016 年主要的趨勢之一是轉向更快、更高效的檢測系統。這一特性在 YOLO、SSD 和 R-FCN 方法上非常顯著,它們都傾向於在整張影象上共享計算。因此可以將它們與 Fast/Faster R-CNN 等成本較高的子網路技術區分開開來,這些更快和高效的檢測系統通常可以指代「端到端的訓練或學習」。

這種共享計算的基本原理通常是避免將獨立的演算法聚焦在各自的子問題上,因為這樣可以避免訓練時長的增加和網路準確度的降低。也就是說這種端到端的適應性網路通常發生在子網路解決方案的初始之後,因此是一種可回溯的優化(retrospective optimisation)。然而,Fast/Faster R-CNN 技術仍然非常有效,仍然廣泛用於目標檢測任務。

  • SSD:Single Shot MultiBox Detector[22] 利用封裝了所有必要計算並消除了高成本通訊的單一神經網路,以實現了 75.1% mAP 和超過 Faster R-CNN 模型的效能(Liu et al. 2016)。
  • 我們在 2016 年看到最引人注目的系統是「YOLO9000: Better, Faster, Stronger」[23],它引入了 YOLOv2 和 YOLO9000 檢測系統 [24]。YOLOv2 很大程度上提升了 2015 年提出的 YOLO 模型 [25] 效能,它能以非常高的 FPS(使用原版 GTX Titan X 在低解析度影象上達到 90FPS)實現更好的結果。除了完成的速度外,系統在特定目標檢測資料集上準確度要優於帶有 ReNet 和 SSD 的 Faster RCNN。

YOLO9000 實現了檢測和分類的聯合訓練,並將其預測泛化能力擴充套件到未知的檢測資料上,即它能檢測從未見過的目標或物體。YOLO9000 模型提供了 9000 多個類別的實時目標檢測,縮小了分類和檢測資料集間的鴻溝。該模型其它詳細的資訊和預訓練模型請檢視:http://pjreddie.com/darknet/yolo/。

  • Feature Pyramid Networks for Object Detection [27] 是 FAIR [28] 實驗室提出的,它能利用「深度卷積網路的內部多尺度、金字塔型的層級結構構建具有邊際額外成本的特徵金字塔」,這意味著表徵能更強大和快速。Lin et al. (2016) 在 COCO[29] 資料集上實現了頂尖的單模型結果。若與基礎的 Faster R-CNN 相結合,將超過 2016 年最好的結果。
  • R-FCN:Object Detection via Region-based Fully Convolutional Networks [30],這是另一種在影象上避免應用數百次高成本的各區域子網路方法,它通過使基於區域的檢測器在整張影象上進行全卷積和共享計算。「我們每張影象的測試時間只需要 170ms,要比 Faster R-CNN 快 2.5 到 20 倍」(Dai et al., 2016)。

計算機視覺這一年:這是最全的一份CV技術報告

圖 4:目標檢測中的準確率權衡,來源 Huang et al. (2016, p. 9)[31]。

注意:Y 軸表示的是平均準確率(mAP),X 軸表示不同元架構(meta-architecture)的各種特徵提取器(VGG、MobileNet...Inception ResNet V2)。此外,mAP small、medium 和 large 分別表示對小型、中型和大型目標的檢測平均準確率。即準確率是按「目標尺寸、元架構和特徵提取器」進行分層的,並且影象的解析度固定為 300。雖然 Faster R-CNN 在上述樣本中表現得更好,但是這並沒有什麼價值,因為該元架構相比 R-FCN 來說慢得多。

Huang et al. (2016)[32] 的論文提供了 R-FCN、SSD 和 Faster R-CNN 的深度效能對比。由於機器學習準確率對比中存在的問題,這裡使用的是一種標準化的方法。這些架構被視為元架構,因為它們可以組合不同的特徵提取器,比如 ResNet 或 Inception。

論文的作者通過改變元架構、特徵提取器和影象解析度研究準確率和速度之間的權衡。例如,對不同特徵提取器的選擇可以造成元架構對比的非常大的變化。

實時商業應用中需要低功耗和高效同時能保持準確率的目標檢測方法,尤其是自動駕駛應用,SqueezeDet[33] 和 PVANet[34] 在論文中描述了這種發展趨勢。

COCO[36] 是另一個常用的影象資料集。然而,它相對於 ImageNet 來說更小,更常被用作備選資料集。ImageNet 聚焦於目標識別,擁有情景理解的更廣泛的語境。組織者主辦了一場包括目標檢測、分割和關鍵點標註的年度挑戰賽。在 ILSVRC[37] 和 COCO[38] 上進行的目標檢測挑戰賽的結果如下:

  • ImageNet LSVRC 影象目標檢測(DET):CUImage 66% 平均準確率,在 200 個類別中有 109 個勝出。
  • ImageNet LSVRC 視訊目標檢測(VID):NUIST 80.8% 平均準確率。
  • ImageNet LSVRC 視訊追蹤目標檢測:CUvideo 55.8% 平均準確率。
  • COCO 2016 目標檢測挑戰賽(邊界框):G-RMI(谷歌)41.5% 平均準確率(比 2015 的勝者 MSRAVC 高出 4.2% 絕對百分點)。

從以上結果可以看出,在 ImageNet 上的結果表明「MSRAVC 2015 的結果為『引入 ResNet』設定了很高的標準。在整個專案中對所有的類別的目標檢測效能都有所提升。在兩個挑戰賽中,定位任務的效能都得到較大的提升。關於小型目標例項的大幅效能提升結果詳見參考文獻」(ImageNet,2016)。[39]

計算機視覺這一年:這是最全的一份CV技術報告

圖 5.ILSVRC 的影象目標檢測結果(2013-2016),來源 ImageNet. 2016. [Online] Workshop

目標追蹤

目標追蹤即在給定的場景中追蹤感興趣的一個或多個特定目標的過程,在視訊和現實世界的互動中(通常是從追蹤初始的目標檢測開始的)有很多應用,且對於自動駕駛而言非常重要。

  • Fully-Convolutional Siamese Networks for Object Tracking[40],將一個連體網路(Siamese network)結合一個基礎的追蹤演算法,使用端到端的訓練方法,達到了當前最佳,圖框顯示率超過了實時應用的需求。這篇論文利用傳統線上學習方法構建追蹤模型。
  • Learning to Track at 100 FPS with Deep Regression Networks[41],該論文試圖改善線上訓練方法中存在的缺陷。他們構建了一個使用前饋網路學習目標運動、外觀和方向中的普遍關係的追蹤器,從而可以在沒有線上訓練的情況下有效地追蹤到新的目標。該演算法在一個標準的追蹤基準測試中達到了當前最佳,同時可以 100FPS 的幀數追蹤所有的目標(Held et al.,2016)。
  • Deep Motion Features for Visual Tracking[43] 結合了手工設計的特徵、深度外觀特徵(利用 CNN)和深度運動特徵(在光流影象上訓練),並取得了當前最佳的結果。雖然深度運動特徵在動作識別和視訊分類中很常見,但作者聲稱這是其首次被應用於視覺追蹤上。該論文獲得了 ICPR2016 的「計算機視覺和機器人視覺」的最佳論文。

「本論文展示了深度運動特徵(motion features)對檢測和追蹤框架的影響。我們還進一步說明了手工製作的特徵、深度 RGB 和深度運用特徵包含互補資訊。據我們所知,這是第一個提出融合外表資訊和深度運動特徵,並用於視覺追蹤的研究。我們全面的實驗表明融合方法具有深度運動特徵,並超過了單純依賴外表資訊的方法。」

  • Virtual Worlds as Proxy for Multi-Object Tracking Analysis [44] 方法解決了現有虛擬世界中缺乏真實可變性視訊追蹤基準和資料集。該論文提出了一種新的真實世界複製方法,該方法從頭開始生成豐富、虛擬、合成和照片逼真的環境。此外,該方法還能克服現有資料集中存在的一些內容匱乏問題。生成的影象能自動通過正確的真值進行標註,並允許應用於除目標檢測/追蹤外其它如光流等任務。
  • Globally Optimal Object Tracking with Fully Convolutional Networks [45] 專注處理目標變化和遮擋,並將它們作為目標追蹤的兩個根本限制。「我們提出的方法通過使用全卷積網路解決物體或目標外表的變化,還通過動態規劃的方法解決遮擋情況」(Lee et al., 2016)。

參考文獻:


[1] British Machine Vision Association (BMVA). 2016. What is computer vision? [Online] Available at: http://www.bmva.org/visionoverview [Accessed 21/12/2016]

[2] Krizhevsky, A., Sutskever, I. and Hinton, G. E. 2012. ImageNet Classification with Deep Convolutional Neural Networks, NIPS 2012: Neural Information Processing Systems, Lake Tahoe, Nevada. Available: http://www.cs.toronto.edu/~kriz/imagenet_classification_with_deep_convolutional.pdf 

[3] Kuhn, T. S. 1962. The Structure of Scientific Revolutions. 4th ed. United States: The University of Chicago Press.

[4] Karpathy, A. 2015. What a Deep Neural Network thinks about your #selfie. [Blog] Andrej Karpathy Blog. Available: http://karpathy.github.io/2015/10/25/selfie/ [Accessed: 21/12/2016]

[5] Quora. 2016. What is a convolutional neural network? [Online] Available: https://www.quora.com/What-is-a-convolutional-neural-network [Accessed: 21/12/2016]

[6] Stanford University. 2016. Convolutional Neural Networks for Visual Recognition. [Online] CS231n. Available: http://cs231n.stanford.edu/ [Accessed 21/12/2016]

[7] Goodfellow et al. 2016. Deep Learning. MIT Press. [Online] http://www.deeplearningbook.org/ [Accessed: 21/12/2016] Note: Chapter 9, Convolutional Networks [Available: http://www.deeplearningbook.org/contents/convnets.html]

[8] Nielsen, M. 2017. Neural Networks and Deep Learning. [Online] EBook. Available: http://neuralnetworksanddeeplearning.com/index.html [Accessed: 06/03/2017].

[9] ImageNet refers to a popular image dataset for Computer Vision. Each year entrants compete in a series of different tasks called the ImageNet Large Scale Visual Recognition Challenge (ILSVRC). Available: http://image-net.org/challenges/LSVRC/2016/index 

[10] See「What I learned from competing against a ConvNet on ImageNet」by Andrej Karpathy. The blog post details the author』s journey to provide a human benchmark against the ILSVRC 2014 dataset. The error rate was approximately 5.1% versus a then state-of-the-art GoogLeNet classification error of 6.8%. Available: http://karpathy.github.io/2014/09/02/what-i-learned-from-competing-against-a-convnet-on-imagenet/ 

[11] See new datasets later in this piece.

[12] Keras is a popular neural network-based deep learning library: https://keras.io/ 

[13] Chollet, F. 2016. Information-theoretical label embeddings for large-scale image classification. [Online] arXiv: 1607.05691. Available: arXiv:1607.05691v1

[14] Chollet, F. 2016. Xception: Deep Learning with Depthwise Separable Convolutions. [Online] arXiv:1610.02357. Available: arXiv:1610.02357v2

[15] Places2 dataset, details available: http://places2.csail.mit.edu/. See also new datasets section.

[16] Hikvision. 2016. Hikvision ranked No.1 in Scene Classification at ImageNet 2016 challenge. [Online] Security News Desk. Available: http://www.securitynewsdesk.com/hikvision-ranked-no-1-scene-classification-imagenet-2016-challenge/ [Accessed: 20/03/2017].

[17] See Residual Networks in Part Four of this publication for more details.

[18] Details available under team information Trimps-Soushen from: http://image-net.org/challenges/LSVRC/2016/results

[19] Xie, S., Girshick, R., Dollar, P., Tu, Z. & He, K. 2016. Aggregated Residual Transformations for Deep Neural Networks. [Online] arXiv: 1611.05431. Available: arXiv:1611.05431v1

[20] ImageNet Large Scale Visual Recognition Challenge (2016), Part II, Available: http://image-net.org/challenges/LSVRC/2016/ [Accessed: 22/11/2016]

[21] Hu and Ramanan. 2016. Finding Tiny Faces. [Online] arXiv: 1612.04402. Available: arXiv:1612.04402v1

[22] Liu et al. 2016. SSD: Single Shot MultiBox Detector. [Online] arXiv: 1512.02325v5. Available: arXiv:1512.02325v5

[23] Redmon, J. Farhadi, A. 2016. YOLO9000: Better, Faster, Stronger. [Online] arXiv: 1612.08242v1. Available: arXiv:1612.08242v1 

[24] YOLO stands for「You Only Look Once」.

[25] Redmon et al. 2016. You Only Look Once: Unified, Real-Time Object Detection. [Online] arXiv: 1506.02640. Available: arXiv:1506.02640v5 

[26]Redmon. 2017. YOLO: Real-Time Object Detection. [Website] pjreddie.com. Available: https://pjreddie.com/darknet/yolo/ [Accessed: 01/03/2017].

[27] Lin et al. 2016. Feature Pyramid Networks for Object Detection. [Online] arXiv: 1612.03144. Available: arXiv:1612.03144v1

[28] Facebook's Artificial Intelligence Research

[29] Common Objects in Context (COCO) image dataset

[30] Dai et al. 2016. R-FCN: Object Detection via Region-based Fully Convolutional Networks. [Online] arXiv: 1605.06409. Available: arXiv:1605.06409v2 

[31] Huang et al. 2016. Speed/accuracy trade-offs for modern convolutional object detectors. [Online] arXiv: 1611.10012. Available: arXiv:1611.10012v1

[32] ibid

[33] Wu et al. 2016. SqueezeDet: Unified, Small, Low Power Fully Convolutional Neural Networks for Real-Time Object Detection for Autonomous Driving. [Online] arXiv: 1612.01051. Available: arXiv:1612.01051v2

[34] Hong et al. 2016. PVANet: Lightweight Deep Neural Networks for Real-time Object Detection. [Online] arXiv: 1611.08588v2. Available: arXiv:1611.08588v2

[35] DeepGlint Official. 2016. DeepGlint CVPR2016. [Online] Youtube.com. Available: https://www.youtube.com/watch?v=xhp47v5OBXQ [Accessed: 01/03/2017].

[36] COCO - Common Objects in Common. 2016. [Website] Available: http://mscoco.org/ [Accessed: 04/01/2017].

[37] ILSRVC results taken from: ImageNet. 2016. Large Scale Visual Recognition Challenge 2016.

 [Website] Object Detection. Available: http://image-net.org/challenges/LSVRC/2016/results [Accessed: 04/01/2017].

[38] COCO Detection Challenge results taken from: COCO - Common Objects in Common. 2016. Detections Leaderboard [Website] mscoco.org. Available: http://mscoco.org/dataset/#detections-leaderboard [Accessed: 05/01/2017].

[39] ImageNet. 2016. [Online] Workshop Presentation, Slide 31. Available: http://image-net.org/challenges/talks/2016/ECCV2016_ilsvrc_coco_detection_segmentation.pdf [Accessed: 06/01/2017].

[40] Bertinetto et al. 2016. Fully-Convolutional Siamese Networks for Object Tracking. [Online] arXiv: 1606.09549. Available: https://arxiv.org/abs/1606.09549v2 

[41] Held et al. 2016. Learning to Track at 100 FPS with Deep Regression Networks. [Online] arXiv: 1604.01802. Available: https://arxiv.org/abs/1604.01802v2 

[42] David Held. 2016. GOTURN - a neural network tracker. [Online] YouTube.com. Available: https://www.youtube.com/watch?v=kMhwXnLgT_I [Accessed: 03/03/2017].

[43] Gladh et al. 2016. Deep Motion Features for Visual Tracking. [Online] arXiv: 1612.06615. Available: arXiv:1612.06615v1

[44] Gaidon et al. 2016. Virtual Worlds as Proxy for Multi-Object Tracking Analysis. [Online] arXiv: 1605.06457. Available: arXiv:1605.06457v1

[45] Lee et al. 2016. Globally Optimal Object Tracking with Fully Convolutional Networks. [Online] arXiv: 1612.08274. Available: arXiv:1612.08274v1

原報告地址:http://www.themtank.org/a-year-in-computer-vision

相關文章