1. 程式人生 > >斯坦福大學計算機視覺課程cs231-01-影象分類

斯坦福大學計算機視覺課程cs231-01-影象分類

CS231設計為以計算機視覺解決實現影象分類問題和資料驅動方法的入門課程,課程內容如下:

  • 影象分類,資料驅動方法,流水線介紹
  • 臨近分類器/K-NN
  • 驗證集,交叉驗證,超引數調整
  • 最近鄰居的優點/缺點
  • 概要
  • 總結:KNN在現實中的應用

影象分類

動機.本節中,我們將介紹影象分類問題,即從一個固定的分類集合為輸入影象分配一個標籤。這是“計算機視覺”中的核心問題之一,儘管其簡單,卻有著各種各樣的實際應用。而且,正如我們後面將會看到的那樣,許多其他看似不同的計算機視覺任務(如物件檢測,分割)可以歸結為影象分類。

示例.比如,在下面的影象中,影象分類模型將獲取單個影象,並將為4個標籤{cat,dog,hat,mug}分配對應概率({0.6,0.3,0.05,0.05},其中0.6表示影象標籤為貓的概率0.6,其餘類比)。正如下圖所示,請記住,對於計算機,一張影象被表示為一個大的三維數字陣列。在這個例子中,貓的影象是248畫素寬,400畫素高,並具有三個顏色通道紅色,綠色,藍色(或簡稱為RGB)。因此,影象由248 x 400 x 3個數字組成,或總共297,600個數字。每個數字是一個從0(黑色)到255(白色)的整數。我們的任務是將本季度的一百萬個數字變成一個單一的標籤,如“貓”。


影象分類中的任務是預測給定影象的單個標籤(或者標籤上的分佈,如圖所示,以表示我們的信心)。影象是從0到255的整數的三維陣列,大小為寬×高×3。3代表三個顏色通道紅,綠,藍。

挑戰.由於識別視覺概念(例如貓)的任務對於人類來說是相對微不足道的,所以從計算機視覺演算法的角度考慮所涉及的挑戰是值得的。正如我們在下面提出的一個無窮無盡的挑戰列表,請記住影象的原始表示形式,作為亮度值的三維陣列:

  • 視角變化:物件的單個例項因相機的拍攝角度進行多種定向。

  • 規模變化:相同視覺類通常在尺寸上有所不同(在現實世界中的大小,不僅僅是在影象的範圍上)。

  • 形變:許多目標物體不是剛體,可以以多種方式變形。

  • 閉塞:目標物件可以被遮擋。有時只有一小部分物件(只有少數畫素)可見。

  • 照明條件:照明的影響在畫素級上非常明顯。

  • 背景混亂:目標物件可能融合到所處環境中,使他們很難辨認。

  • 分類變化:目標類別通常可以比較寬泛,如椅子。這些物件有很多不同的型別,每個都有自己的外觀。

一個好的影象分類模型必須對所有這些變化的叉積具有穩定性,同時保持對類間變化的敏感性。

資料驅動的方法.我們如何實現可以將影象分為不同的類別的演算法?不同於編寫一個用於排序演算法,實現用於識別影象中的貓的演算法並不是顯式的。因此,我們不是直接在程式碼中指定每一個目標影象的類別,而是採用與孩​​子(認識事物)一樣的方法:我們將為計算機提供每個類的很多例項,然後開發通過觀察這些例項來學習每個類的視覺外觀的學習演算法。這種方法被稱為資料驅動方法。因為它依賴於最開始收集的具有標籤的影象集合作為訓練集。以下是一個訓練集可能示例:

一個示例訓練集為四個視覺類別。實際上,我們可能會為每個類別提供數千個類別和數十萬個影象。

影象分類流水線.影象分類中的任務是獲取表示單個影象的畫素陣列併為其分配標籤。我們完整的流水線可以形式化如下:

  • 輸入:一個含N個影象的集合,每個影象都標有K個不同類別之一的標籤。將這些資料稱為訓練集。
  • 學習:我們的任務是利用訓練集來學習每個類的外觀特徵。將這一步稱為訓練分類器,或者學習模型。
  • 評估:最後,我們將評估分類器的質量,要求它預測一組以前從未見過的影象的標籤。然後,比較這些影象的真實標籤和分類的預測標籤。直覺上,我們希望更多的預測與真實答案(我們稱之為基本事實)相匹配。