1. 程式人生 > >計算機視覺入門(一)

計算機視覺入門(一)

pen HA 圖像處理 area opencv col numpy 幾何變換 卷積神經網絡

一、掌握知識

  (一)計算機視覺之OpenCV

      • 圖片讀取與展示、圖片寫入、圖片質量控制、像素操作
      • 幾何變換、圖片特效、圖像美化、機器學習
      • 機器學習:視頻分解圖片、圖片合成視頻

  (二)計算機視覺之TensorFlow:手寫數字識別

      • 常量變量、Numpy模塊使用
      • 四則運算、matplotlib模塊使用
      • 矩陣操作基礎、神經網絡

  (三)計算機視覺之TensorFlow:刷臉識別

      • Harr+adaboost人臉識別
      • Hog+svm小獅子識別

二、附錄(相關知識)

  (一)KNN算法(鄰近算法)

      K最近鄰(kNN,k-NearestNeighbor)分類算法是數據挖掘分類技術中最簡單的方法之一。所謂K最近鄰,就是k個最近的鄰居的意思,說的是每個樣本都可以用它最接近的k個鄰居來代表。kNN算法的核心思想是如果一個樣本在特征空間中的k個最相鄰的樣本中的大多數屬於某一個類別,則該樣本也屬於這個類別,並具有這個類別上樣本的特性。該方法在確定分類決策上只依據最鄰近的一個或者幾個樣本的類別來決定待分樣本所屬的類別。kNN方法在類別決策時,只與極少量的相鄰樣本有關。由於kNN方法主要靠周圍有限的鄰近的樣本,而不是靠判別類域的方法來確定所屬類別的,因此對於類域的交叉或重疊較多的待分樣本集來說,kNN方法較其他方法更為適合。

算法流程

1. 準備數據,對數據進行 預處理

2. 選用合適的數據結構存儲訓練數據和測試元組

3. 設定參數,如k

4.維護一個大小為k的的按距離由大到小的 優先級隊列,用於存儲最近鄰訓練元組。隨機從訓練元組中選取k個元組作為初始的最近鄰元組,分別計算測試元組到這k個元組的距離,將訓練元組標號和距離存入優先級隊列

5. 遍歷訓練元組集,計算當前訓練元組與測試元組的距離,將所得距離L 與優先級隊列中的最大距離Lmax

6. 進行比較。若L>=Lmax,則舍棄該元組,遍歷下一個元組。若L < Lmax,刪除優先級隊列中最大距離的元組,將當前訓練元組存入優先級隊列。

7. 遍歷完畢,計算優先級隊列中k 個元組的多數類,並將其作為測試元組的類別。

8. 測試元組集測試完畢後計算誤差率,繼續設定不同的k值重新進行訓練,最後取誤差率最小的k 值。

  (二)CNN卷積神經網絡結構

卷積神經網絡(Convolutional Neural Network, CNN)是深度學習技術中極具代表的網絡結構之一,在圖像處理領域取得了很大的成功,在國際標準的ImageNet數據集上,許多成功的模型都是基於CNN的。CNN相較於傳統的圖像處理算法的優點之一在於,避免了對圖像復雜的前期預處理過程(提取人工特征等),可以直接輸入原始圖像。

圖像處理中,往往會將圖像看成是一個或多個的二維向量,如之前博文中提到的MNIST手寫體圖片就可以看做是一個28 × 28的二維向量(黑白圖片,只有一個顏色通道;如果是RGB表示的彩色圖片則有三個顏色通道,可表示為三張二維向量)。傳統的神經網絡都是采用全連接的方式,即輸入層到隱藏層的神經元都是全部連接的,這樣做將導致參數量巨大,使得網絡訓練耗時甚至難以訓練,而CNN則通過局部連接權值共享等方法避免這一困難,有趣的是,這些方法都是受到現代生物神經網絡相關研究的啟發

計算機視覺入門(一)