乾貨|如何利用CNN建立計算機視覺模型?

dicksonjyl560101發表於2019-05-24

如何利用 CNNs 建立計算機視覺模型?什麼是現有的資料集?訓練模型的方法有哪些?本文在嘗試理解計算機視覺的最重要的概念的過程中,為現有的一些基本問題,提供了答案。

在機器學習中最熱門的領域之一是計算機視覺,它具有廣泛的應用前景和巨大的潛力。它的發展目的是:複製人類視覺的強大能力。但是如何透過演算法來實現呢?

讓我們來看看構建計算機視覺模型中,最重要的資料集以及方法。

現有的資料集

計算機視覺演算法並不神奇。 他們需要資料才能工作,並且它們只會與你輸入的資料的情況一樣。這些是收集正確資料的不同來源,具體還是要取決於任務:

ImageNet是最龐大且最著名的資料集之一,它是一個現成的資料集,包含1400萬幅影像,使用WordNet概念手工註釋。在整個資料集中,100萬幅影像包含邊界框註釋。

乾貨|如何利用CNN建立計算機視覺模型?

帶有物件屬性註釋的ImageNet影像。圖片來源

另一個著名的例子是Microsoft COCO(Common Objects in Contex,常見物體影像識別)的 DataSet,它包含了32.8萬張圖片,其中包括91種物件型別,這些物件型別很容易被識別,總共有250萬個標記例項。

乾貨|如何利用CNN建立計算機視覺模型?

來自COCO資料集的帶註釋影像的示例

雖然沒有太多可用的資料集,但有幾個適合不同的任務,

研究人員運用了包含超過20萬名人頭像的CelebFaces Attributes資料集和超過300萬影像的"臥室"室內場景識別資料集(15,620幅室內場景影像);和植物影像分析資料集(來自11個不同物種的100萬幅植物影像)。

照片資料集,透過這些大量的資料,不斷訓練模型,使其結果不斷最佳化。

一個總體戰略

深度學習方法和技術已經深刻地改變了計算機視覺以及人工智慧的其他領域,以至於在許多工中,它的使用被認為是標準的。特別是,卷積神經網路(CNN)已經超越了使用傳統計算機視覺技術的最先進的技術成果。

這四個步驟概述了使用CNN建立計算機視覺模型的一般方法:

  1. 建立由帶註釋的影像組成的資料集,或使用現有的資料集。註釋可以是影像類別(用於分類問題)、邊界框和類(用於物件檢測問題)、或者是對影像中感興趣的每個物件進行畫素級分割(對於例項分割問題)。
  2. 從每個影像中提取與當前任務相關的特性。這是問題建模的關鍵點。例如,用於識別人臉的特徵,基於面部標準的特徵,明顯不同於用於識別旅遊景點或人體器官的特徵。
  3. 訓練一個基於特徵分離的深度學習模型。訓練意味著給機器學習模型提供許多影像,它將根據這些特徵學習如何解決手頭的任務。
  4. 使用訓練階段沒有使用的影像來評估模型。透過這樣做,可以測試訓練模型的準確性。
  5. 這個策略很基本,但可以很好地達到了目的。這種方法稱為監督機器學習,需要一個包含模型且必須學習的現象的資料集。

訓練物件檢測模型

解決物件檢測挑戰的方法有很多種。 在Paul Viola 和 Michael Jones 的論文《健壯實時物件檢測》(Robust Real-time Object Detection)中提出了普遍的方法。

論文傳送門: 「連結」

雖然該方法可以訓練用來檢測不同範圍的物件類,但其最初的目的是面部檢測。它是如此的快速和直接,並且它是在傻瓜相機中實現的演算法,這也使得實時人臉檢測幾乎沒有處理能力。

該方法的核心特性是使用一組基於Haar特性的二進位制分類器進行訓練的。這些特徵表示邊和線,在掃描影像時非常容易計算。

乾貨|如何利用CNN建立計算機視覺模型?

Haar features

雖然非常基本,但在特定的人臉情況下,這些特徵允許捕獲重要的元素,如鼻子、嘴巴或眉毛之間的距離。它是一種監督方法,需要識別物件型別的許多正例和反例。

基於CNN的方法

深度學習已經成為機器學習中一個真正的遊戲規則改變者,特別是在計算機視覺領域中,基於深度學習的方法是許多常見任務的前沿。

在提出的各種實現目標檢測的深度學習方法中,R-CNN(具有CNN特徵的區域)特別容易理解。本文作者提出了三個階段的過程:

  • 使用區域建議方法提取可能的物件。
  • 使用CNN識別每個區域的特徵。
  • 利用支援向量機對每個區域進行分類。
乾貨|如何利用CNN建立計算機視覺模型?

R-CNN Architecture. 圖片來源

雖然R-CNN演算法對於具體採用的區域建議方法是不可知的,但是在原著中選擇的區域建議的方法是選擇性搜尋。步驟3非常重要,因為它減少了候選物件的數量,從而降低了方法的計算開銷。

這裡提取的特徵不如前面提到的Haar特徵直觀。綜上所述,我們使用CNN從每個區域提案中提取4096維特徵向量。考慮到CNN的性質,輸入必須始終具有相同的維度。這通常是CNN的弱點之一,不同的方法以不同的方式解決這個問題。對於R-CNN方法,經過訓練的CNN架構需要輸入227×227畫素去固定區域。由於提議的區域大小與此不同,作者的方法只是扭曲影像,使其符合所需的尺寸。

乾貨|如何利用CNN建立計算機視覺模型?

與CNN所需的輸入維度匹配的扭曲影像的示例

雖然取得了很好的效果,但是訓練遇到了一些障礙,最終這種方法被其他人超越了。其中一些在文章中進行了深入的回顧——《深度學習的物件檢測:權威指南》。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2645376/,如需轉載,請註明出處,否則將追究法律責任。

相關文章