0%

Image Classification

website:CS231n: Convolutional Neural Networks for Visual Recognition

影像分類是電腦視覺的核心任務,但其中有許多障礙要克服

遇到的問題

Semantic Gap 語義鴻溝

  • Semantic Gap指的是在不同系統中形成的結構造成差異
  • 人眼傳送到大腦所看到的物體形成的過程!=攝影機傳送到電腦看到物體形成的過程
  • 人眼看到的是物體是光線照射到物體,經過反射後部份光線射入我們的眼睛。人腦所想的通常是高階特徵ex:飛機、汽車、室內空間
  • 在電腦中看到的數位影像是個三維tensor(R, G, B channel)。電腦主要觀察低階特徵ex:顏色分布、紋理(texture)

Viewpoint variation 視野角度變化

  • 攝影機視野改變造成觀測結果產生變化

Background Clutter 非均值的背景

  • 背景可能非常雜亂

Illumination 亮度的變化

  • 不同的燈源,打光方式造成同一個物體不同成像結果

Occlusion 被遮蔽的物體

  • 物體被遮擋一部分,但還是可以透過特徵來辨認出來

Deformation 物體形狀的變化

Intraclass variation 同類型的不同變化

沒辦法透過硬編碼的方式在這些問題下輕易的分類出貓咪

機器學習: 數據驅動方法

寫一個影像分類演算法與排序演算法非常不同,假設今天是要辨識一隻貓咪,我們必須考慮到貓咪的各種形狀、顏色等變化。
因此,與其透過硬編碼方式定義出複雜的經驗法則,不如透過給予很多數據來建立一個學習演算法。
流程:

  1. 收集數據集(影像與對應的類別標記)
  2. 機器學習演算法訓練分類器
  3. 使用分類器預測新讀進來的影像

Nearest Neighbor Classifier

Nearest Neighbor

  • 比較兩影像之間的距離
    L1距離公式:$d_1(I_1, I_2) = \sum_{p} |I^P_1 - I^P_2|$

$其中I_1, I_2 是影像,P是I_1, I_2像素點的索引$

這個距離公式就是逐點計算兩影像像素值差異的總和,加絕對值是為了避免正負號誤差加總後造成抵銷

實作KNN測試cifar10 in github

參考