iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 28
4
AI & Data

英雄集結:深度學習的魔法使們系列 第 28

[魔法小報] 深度學習在電腦視覺(Computer Vision)的技術與應用

電腦視覺(Computer Vision)一直是我非常著迷的領域,旨在模仿人類視覺系統,作為賦予機器人智能行為的助力,在1966年夏季,MIT AI LAB 成立並開始進行電腦視覺的研究,以下是其發展趨勢:
https://ithelp.ithome.com.tw/upload/images/20181024/20112540YgzSUmL51f.png

本文將介紹目前電腦視覺的應用和深度學習技術:

Image Classification

圖像分類(Image Classification)的問題定義:給定單一類別標籤的圖像,要求為一組未曾見過的測試圖像預測圖像類別並衡量預測的準確性。圖像分類涉及各種挑戰,包括雜訊、尺度變化、角度、光照、圖像變形、圖像遮蔽等等。深度學習使用數據驅動方法(data-driven approach )來解決這個問題。
最流行的架構是卷積神經網絡(CNN),CNN 的技術原理在 [魔法陣系列] Convolutional Neural Network(CNN)之術式解析 已提及,就不重複詳述了。
https://ithelp.ithome.com.tw/upload/images/20181110/20112540mj7mqeI05r.png

圖片來源:https://www.researchgate.net/figure/Deep-Convolutional-Neural-Network-CNN-for-classification-image-from-31_fig7_318277197

Object Detection

在圖像中要定義 Object ,通常涉及到 bounding box 跟該 Object 的標籤。Object Detection 跟上述 Image Classification 不同的是,它將分類跟定位(localization)應用在多個 objects 上,而非單一一個 Object。如下圖:
https://ithelp.ithome.com.tw/upload/images/20181110/20112540TU85addjaK.jpg

圖片來源:https://medium.com/comet-app/review-of-deep-learning-algorithms-for-object-detection-c1f3d437b852

相關技術:

  • R-CNN(Region-based Convolutional Neural Network)
    Selective Search 演算法掃描輸入的圖像以尋找可能的 Object,生成約兩千個 region proposals,然後在每個 region proposals 上使用 CNN,得到每個 CNN 的輸出後將其餵入 SVM 對 region 進行分類,並使用 linear regression 來收緊 Object 的 bounding box。
    這個方法的缺點是,訓練緩慢,且需要大量的硬碟空間。
    https://ithelp.ithome.com.tw/upload/images/20181110/20112540izWIqyyvsZ.jpg

    圖片來源:http://bangqu.com/952Y2o.html

  • Fast R-CNN
    為了提升檢測速度,Fast R-CNN 的想法是只算一次 CNN 就好,所以僅在整個圖像上運行一個 CNN,再基於 feature map 創建了 region proposals,後續各自連接上 FC 網路,最後用 softmax 層替換 SVM。
    Fast R-CNN 在速度方面表現得更好,因為它只為整個圖像訓練一個 CNN。 但是 Selective Search 演算法仍然需要花費大量時間來生成 region proposals。
    https://ithelp.ithome.com.tw/upload/images/20181110/20112540zS5117MmRS.png

    圖片來源:https://jhui.github.io/2017/03/15/Fast-R-CNN-and-Faster-R-CNN/

  • Faster R-CNN
    Faster R-CNN 實現了更快的速度以及更高的準確率。它不使用 Selective Search 演算法,而是使用 Region Proposal Network (RPN) 來選出region proposals。RPN 本身也是一個卷積網絡,輸入(input)是之前 CNN 輸出的 feature map,輸出(output)是一個 bounding box 以及該 bounding box 包含一個物體的機率。
    https://ithelp.ithome.com.tw/upload/images/20181110/20112540DXvQo3ruMA.png

    圖片來源:https://heartbeat.fritz.ai/the-5-computer-vision-techniques-that-will-change-how-you-see-the-world-1ee19334354b

Semantic Segmentation

Semantic Segmentation 試圖在語義上理解圖像中每個 pixel 的作用,例如在下圖,除了識別人、道路、汽車、樹木等之外,還必須描繪每個物體的邊界。因此,Semantic Segmentation 與分類不同,需要從模型中進行密集的 pixel-wise 的預測。
https://ithelp.ithome.com.tw/upload/images/20181111/20112540O3COJkDeNF.png

圖片來源:https://medium.com/@keremturgutlu/semantic-segmentation-u-net-part-1-d8d6f6005066

  • Fully Convolutional Networks (FCN)
    為 end-to-end 的 CNN 架構,所有的 layer 都是卷積層,無任何全連接層(fully connected layers),可適應任意尺寸的輸入,且減少參數的數量和計算時間。
    https://ithelp.ithome.com.tw/upload/images/20181111/20112540qbRrnOqcOj.png
    > 圖片來源:http://deeplearning.net/tutorial/fcn_2D_segm.html

Instance Segmentation

Instance Segmentation 將不同類別的 instance 做切割。Instance Segmentation 比分類任務更為複雜,例如景點有多個重疊的物體和不同的背景,不僅要對這些不同的物體進行分類,還要確定它們之間的邊界、差異和關係。
https://ithelp.ithome.com.tw/upload/images/20181111/20112540z8qPMQMAMG.png
> 圖片來源:https://medium.com/@keremturgutlu/semantic-segmentation-u-net-part-1-d8d6f6005066


Computer Vision 領域深又廣,相關應用還有先前提過的 Generative Models 或用來做視覺化特徵等等。強烈推薦閱讀 [魔法小報] 機器學習路上的強力支援們(網路學習資源推薦) 中列出的 CS231n 課程,你將會學習如何搭建、訓練和校調模型,能夠更深入的進入 Computer Vision 的世界。


上一篇
[實戰系列] 使用 Keras 搭建一個 DQN 魔法陣(模型)
下一篇
[魔法小報] 深度學習在自然語言處理(NLP)的技術與應用
系列文
英雄集結:深度學習的魔法使們31

尚未有邦友留言

立即登入留言