回覆列表
  • 1 # LongerVision

    經典CV只做一件事:3D reconstruction...

    Machine Learning 是機器學習!所以 Bishop 的書叫Machine Learning and Pattern Recognition ... 雖然廣義的CV包羅永珍,但是...還是建議:把基本概念搞清楚吧...

  • 2 # 鎂客網

    簡單地說就是,深度學習雖然是未來的大方向,但是目前來說還不具備完全替代計算機視覺學習的條件。這個就有點像,我們都認為新能源汽車(電動車是目前的主流)會是未來的趨勢,但是,目前為止,燃油車依然佔有主導地位,電動車並不能取代燃油車。類似地,深度學習暫時不能夠取代傳統計算機視覺技術。一方面是我們的需求並不是非新技術不能滿足,另外一方面是技術的成熟和普及需要時間。

    一. 深度學習已成計算機視覺研究的標配

    早在2016年的CVPR 2016上,深度學習就已然成為計算機視覺研究的基本選項。在涉及到人臉識別、影象識別、影片識別、行人檢測、大規模場景識別的有關論文裡都用到了深度學習的方法。除此之外,Google,Facebook這樣的大企業亦有助力,深度學習相比其它的AI實現方法,呈現出碾壓的態勢。

    二. 技術不是越先進越實用

    傳統計算計視覺技術通常採用滑動視窗的框架,把一張圖分解成百萬級數量的子視窗,再針對每個視窗使用分類器判斷是否包含目標物體。

    基於深度學習的物體檢測的經典演算法是RCNN系列,可以看成對海量滑動視窗分類,只是用全卷積的方式。深度學習可以做到傳統方法無法企及的精度,這是最重要的一點。除此之外,深度學習通用性很強,獲得的特徵有很強的遷移能力,而且工程開發、最佳化、維護成本低。因此,毫無疑問的是,深度學習相比於傳統的視覺技術有很明顯的優勢,這也是為什麼深度學習被廣泛應用於視覺研究之中。

    但是,在實際應用中,根據我們的需求,我們需要綜合多方面的因素決定技術路線的選擇問題。比如說技術的成熟程度,適配工作,應用穩定性以及人才儲備等等因素。技術再先進,如果不能使用好,那麼就不能發揮出先進技術的優勢,反而不能滿足現實需求。

    三. 新技術的成熟和推廣需要時間

    雖然深度學習是個很好的技術,但是新技術需要不斷完善,最終成熟之後再大規模推廣和應用。這是需要時間過程的。我們傳統的技術還能滿足一般需求,而新技術還需要時間進一步發展成熟並被更多組織和開發人員廣泛選擇,而不僅僅是研究人員。但是不管怎麼說,深度學習已經成為一種趨勢,相信取代傳統技術也是不久的將來就會發生的事情。

    對新技術的需求不緊迫,新技術的廣泛應用需要時間,這就是深度學習暫時沒有替代傳統計算機視覺技術的主要原因。

  • 3 # 機器之心Pro

    本文作者認為,深度學習只是一種計算機視覺工具,而不是包治百病的良藥,不要因為流行就一味地使用它。傳統的計算機視覺技術仍然可以大顯身手,瞭解它們可以為你省去很多的時間和煩惱;並且掌握傳統計算機視覺確實可以讓你在深度學習方面做得更好。這是因為你可以更好地理解深度學習的內部狀況,並可執行預處理步驟改善深度學習結果。

    本文的靈感同樣來自論壇中常常出現的一個問題:

    深度學習已經取代了傳統的計算機視覺嗎?

    或是換種說法:

    既然深度學習看起來如此有效,是否還有必要學習傳統的計算機視覺技術?

    這個問題很好。深度學習確實給計算機視覺和人工智慧領域帶來了革命性的突破。許多曾經看似困難的問題,現在機器可以比解決的比人類還好。影象分類就是最好的印證。確實,如從前所述,深度學習有責任將計算機視覺納入行業版圖。

    但深度學習仍然只是計算機視覺的一個工具,且顯然不是解決所有問題的靈丹妙藥。因此,本文會對此進行詳細闡述。也就是說,我將說明傳統的計算機視覺技術為何仍十分有用,值得我們繼續學習並傳授下去。

    本文分為以下幾個部分/論點:

    深度學習需要大資料

    深度學習有時會做過了頭

    透過深度學習,傳統計算機視覺也會幫助你

    進入正文之前,我認為有必要詳細解釋一下什麼是「傳統計算機視覺」,什麼是深度學習及其革命性。

    背景知識

    在深度學習出現以前,如果你有一項諸如影象分類的工作,你會進行一步叫做「特徵提取」的處理。所謂「特徵」就是影象中「有趣的」、描述性的、或是提供資訊的小部分。你會應用我在本文中稱之為的「傳統計算機視覺技術」的組合來尋找這些特徵,包括邊緣檢測、角點檢測、物件檢測等等。

    在使用這些與特徵提取和影象分類相關的技術時,會從一類物件(例如:椅子、馬等等)的影象中提取出儘可能多的特徵,並將其視為這類物件的「定義」(稱作「詞袋」)。接下來你要在其它影象中搜索這些「定義」。如果在另一個影象中存在著詞袋中相當一部分的特徵,那麼這個影象就被歸為包含那個特定物件(如椅子、馬等等)的分類。

    這種影象分類的特徵提取方法的難點在於你必須在每張影象中選擇尋找哪些特徵。隨著你試圖區分的類別數目開始增長,比如說超過 10 或 20,這就會變得非常麻煩甚至難以實現。你要尋找角點?邊緣?還是紋理資訊?不同類別的物件最好要用不同種類型的特徵來描述。如果你選擇使用很多的特徵,你就不得不處理海量的引數,而且還需要自己來微調。

    深度學習引入了「端到端學習」這一概念,(簡而言之)讓機器在每個特定類別的物件中學習尋找特徵,即最具描述性、最突出的特徵。換句話說,讓神經網路去發現各種型別影象中的潛在模式。

    因此,藉助端到端學習,你不再需要手動決定採用哪種傳統機器視覺技術來描述特徵。機器為你做好了這一切。《連線》雜誌如此寫道:

    舉例來說,如果你想教會一個 [深度] 神經網路識別一隻貓,你不必告訴它去尋找鬍鬚、耳朵、毛或是眼睛。你只需展示給它成千上萬的貓的影象,它自然會解決這一問題。如果它總是會將狐狸誤認為是貓,你也不用重寫程式碼。你只需對它繼續進行訓練。

    下圖描述了特徵提取(使用傳統計算機視覺)和端到端學習之間的這種區別:

    深度學習需要大量資料

    首先,深度學習需要資料,許許多多的資料。前文提到過的著MISTRA像分類模型的訓練都基於龐大的資料集。排名前三的訓練資料集分別是:

    ImageNet——150 萬影象,1000 個物件分類/類別,

    COCO——250 萬影象,91 個物件分類,

    PASCAL VOC——50 萬影象,20 個物件分類。

    但是一個訓練不良的模型在你的訓練資料之外很可能表現糟糕,因為機器並沒有對於問題的洞察力,也就不能在沒看到資料的情況下進行概括歸納。而且對你來說檢視訓練模型內部並進行手動調整又太過困難,因為一個深度學習模型內部擁有數以百萬計的引數——每個引數在訓練期間都會被調整。某種程度上說,一個深度學習模型就是一個黑箱。

    傳統的計算機視覺完全透明,允許你更好地評估判斷你的解決方案是否在訓練環境之外依然有效。你對問題的深入見解可以放進你的演算法之中。並且如果任何地方出現故障,你也可以更輕易地弄清楚什麼需要調整,在哪裡調整。

    深度學習有時做過了頭

    這大概是我最喜歡的支援研究傳統計算機視覺技術的理由。

    訓練一個深度神經網路需要很長的時間。你需要專門的硬體(例如高效能 GPU)訓練最新、最先進的影象分類模型。你想在自己還不錯的筆記本上訓練?去度個一週的假吧,等你回來的時候訓練很可能扔未完成。

    此外,如果你的訓練模型表現不佳呢?你不得不返回原點,用不同的訓練引數重做全部工作。這一過程可能會重複數百次。

    但有時候所有這些完全沒必要。因為傳統計算機視覺技術可以比深度學習更有效率地解決問題,而且使用的程式碼更少。例如,我曾經參與的一個專案是檢查每個透過傳送帶的罐子裡是否有一個紅勺子。現在你可以透過前文敘述的曠日持久的過程來訓練一個深度神經網路去檢測勺子,或者你也可以寫一個簡單的以紅色為閾值的演算法(將任何帶有一定範圍紅色的畫素都標記為白色,所有其它的畫素標記為黑色),然後計算有多少白色的畫素。簡簡單單,一個小時就可以搞定!

    掌握傳統的計算機視覺技術可能會為你節省大量的時間並減少不必要的煩惱。

    傳統計算機視覺會會提升你的深度學習技巧

    理解傳統的計算機視覺實際上能幫你在深度學習上做得更好。

    舉例來說,計算機視覺領域最為普遍使用的神經網路是卷積神經網路。但什麼是卷積?卷積事實上是一種被廣泛使用的影象處理技術(比如,索貝爾邊緣檢測)。瞭解這一點可以幫助你理解神經網路內部究竟發生了什麼,從而進行設計和微調以更好地解決你的問題。

    還有一件事叫做預處理。你輸入給模型的資料往往要經過這種處理,以便為接下來的訓練做準備。這些預處理步驟主要是透過傳統的計算機視覺技術完成的。例如,如果你沒有足夠的訓練資料,你可以進行一個叫做資料增強的處理。資料增強是指對你訓練資料集中的影象進行隨機的旋轉、移動、裁剪等,從而創造出「新」影象。透過執行這些計算機視覺操作,可以極大地增加你的訓練資料量。

    結論

    本文闡述了為什麼深度學習還沒有取代傳統計算機視覺技術,以及後者仍值得學習和傳授。首先,本文將目光放在了深度學習往往需要大量資料才能表現良好這一問題上。有時並不具備大量資料,而傳統計算機視覺在這種情況下可作為一種替代方案。第二,深度學習針對特定的任務偶爾會做過頭。在這些任務中,標準的計算機視覺比起深度學習可以更為高效地解決問題,並且使用更少的程式碼。第三,掌握傳統計算機視覺確實可以讓你在深度學習方面做得更好。這是因為你可以更好地理解深度學習的內部狀況,並可執行預處理步驟改善深度學習結果。

    總而言之,深度學習只是一種計算機視覺的工具,而不是包治百病的良藥。不要因為流行就一味地使用它。傳統的計算機視覺技術仍然可以大顯身手,瞭解它們可以為你省去很多的時間和煩惱。

  • 中秋節和大豐收的關聯?
  • 你怎麼理解古人說“三窮三富不到老”這句話?