【CV面試】簡述CNN、計算機視覺、人臉識別

本文整理自多篇博客。雖然不是原創,但是也是費了心血整理的O(∩_∩)O

CNN:圖像、視頻

 卷積神經網絡是一類包含卷積計算且具有深度結構的前饋神經網絡,是深度學習的代表算法之一 。
 由於卷積神經網絡能夠進行平移不變分類,因此也被稱爲平移不變人工神經網絡(Shift-Invariant Artificial Neural Networks, SIANN)。

1.CNN解決了什麼問題?

在CNN出現之前,圖像對於人工智能來說是一個難題。原因如下。

1.1.將大數據量的圖片降維成小數據量

 圖像需要處理的數據量太大,導致成本很高,效率很低。
 圖像是由像素構成的,每個像素又是由顏色構成的。

現在隨隨便便一張圖片都是1000×1000像素以上的, 每個像素都有RGB 3個參數來表示顏色信息。
假如我們處理一張1000×1000像素的圖片,我們就需要處理1000×1000×3=300W個參數!

 CNN把大量參數降維成少量參數,再做處理。
 在大部分場景下,降維並不會影響結果。比如1000像素的圖片縮小成200像素,並不影響肉眼認出來圖片中是一隻貓還是一隻狗,機器也是如此。

1.2.保留圖片特徵,符合圖片處理的原則

圖像在數字化的過程中很難保留原有的特徵,導致圖像處理的準確率不高。
在這裏插入圖片描述
 CNN用類似視覺的方式保留了圖像的特徵,當圖像做翻轉、旋轉或變換位置時,它也能有效的識別出來是類似的圖像。

2.CNN的思想來源

  • 模仿人類大腦的特點,構造多層的神經網絡。
  • 較低層的識別初級的圖像特徵。
  • 若干底層特徵組成更上一層特徵。
  • 通過多個層級的組合,最終在頂層做出分類。
    在這裏插入圖片描述

人類的視覺原理:

  1. 攝入原始信號:瞳孔攝入像素 Pixels
  2. 初步處理:大腦皮層某些細胞發現邊緣和方向
  3. 抽象:大腦判定,眼前的物體的形狀,是圓形的
  4. 進一步抽象:大腦進一步判定該物體是隻氣球
    在這裏插入圖片描述
    在最底層特徵基本上是類似的,就是各種邊緣。越往上,越能提取出此類物體的一些特徵(輪子、眼睛、軀幹等)。到最上層,不同的高級特徵最終組合成相應的圖像,從而能夠讓人類準確的區分不同的物體。

3.基本原理

在這裏插入圖片描述

3.1.卷積層:提取特徵

 使用一個過濾器(卷積核) 來過濾圖像的各個小區域,從而得到這些小區域的特徵值(即,提取出圖片中局部的特徵),跟上面提到的人類視覺的特徵提取類似。
 在具體應用中,往往有多個卷積核。每個卷積核代表了一種圖像模式如果某個圖像塊與此卷積核卷積出的值大,則認爲此圖像塊十分接近於此卷積核

 如果我們設計了6個卷積核,可以理解爲:
 我們認爲這個圖像上有6種底層紋理模式,也就是我們用6種基礎模式就能描繪出一副圖像。
 以下是25種不同的卷積核的示例:
在這裏插入圖片描述

用一個卷積核掃完整張圖片,運算過程如下圖。

3.2.池化層:下采樣、降維、避免過擬合

 即使做完了卷積,圖像仍然很大(因爲卷積核比較小),所以爲了降低數據維度,就進行下采樣。
 池化層相比卷積層可以更有效的降低數據維度,這麼做不但可以大大減少運算量,還可以有效的避免過擬合。
 例:原始圖片是20×20的。下采樣窗口爲10×10,最終將其下采樣成爲一個大小2×2的特徵圖。

3.3.全連接層:輸出結果

 經過卷積層和池化層降維過的數據,全連接層才能“跑得動”,不然數據量太大,計算成本高,效率低下。

4.結構

 典型的CNN並非只是3層結構,而是多層結構。
 LeNet-5 的結構:卷積層 – 池化層- 卷積層 – 池化層 – 卷積層 – 全連接層,如下圖所示:
在這裏插入圖片描述

5.梯度的求法和反向傳播過程

把卷積核旋轉180°來反向傳播

6.Python實現

有個博主寫特別好

6.應用

  • 圖像分類、檢索
  • 目標定位監測:自動駕駛、安防、醫療
  • 目標分割:美圖秀秀、視頻後期加工、圖像生成
  • 人臉識別:安防、金融、生活
  • 骨骼識別:安防、電影、圖像視頻生成、遊戲

以上內容大部分整理自公衆號:AI知識庫

科普:計算機視覺

  • 計算機視覺是人工智能的一個重要分支,它要解決的問題就是:看懂圖像裏的內容
  • 計算機視覺是一個跨學科的科學領域,涉及如何製作計算機以從數字圖像或視頻中獲得高層次的理解。從工程的角度來看,它尋求自動化人類視覺系統可以完成的任務

1.原理:同CNN【2.CNN的思想來源】

構造多層的神經網絡,較低層的識別初級的圖像特徵,若干底層特徵組成更上一層特徵,最終通過多個層級的組合,最終在頂層做出分類。

2.挑戰:同CNN【1.CNN解決了什麼問題?】

  • 特徵難以提取
     同一只貓在不同的角度、不同的光線、不同的動作下,像素差異是非常大的。就算是同一張照片,旋轉90度後,其像素差異也非常大!
     哪怕圖片裏的內容相似甚至相同,但是在像素層面,其變化會非常大。
  • 需要計算的數據量巨大
     手機上隨便一張1000*2000像素的照片就要處理600萬個參數,再算算現在越來越流行的4K視頻。就知道這個計算量級有多恐怖了。

CNN解決了上面的兩大難題(見上面CNN章節)

3.CV的8大任務

在這裏插入圖片描述
具體任務的詳情見網頁

4.CV的具體應用實例

在這裏插入圖片描述
以上內容整理自公衆號:AI知識庫

科普:人臉識別

  • 人臉識別,是基於人的臉部特徵信息進行身份識別的一種生物識別技術。
  • 人臉識別是身份識別的一種方式,目的就是要判斷圖片和視頻中人臉的身份是什麼

1.特點

  1. 便捷性: 人臉是生物特徵,不需要攜帶類似身份證的東西
  2. 非強制性: 識別的過程甚至不需要對象的配合,只要拍攝到人臉就可以進行識別,例如安防領域就是如此。
  3. 非接觸性: 不需要跟設備進行接觸,相比指紋更加安全一些。
  4. 並行處理: 一張照片裏有多個人臉時可以一起處理,不像指紋和虹膜,需要一個一個來。

2.關鍵步驟

2.1.人臉檢測

目的: 尋找圖片中人臉的位置。當發現有人臉出現在圖片中時,不管這個臉是誰,都會標記出人臉的座標信息,或者將人臉切割出來。
方法: 可以使用方向梯度直方圖(HOG) 來檢測人臉位置。先將圖片灰度化,接着計算圖像中像素的梯度。通過將圖像轉變成HOG形式,就可以獲得人臉位置。
在這裏插入圖片描述

2.2.人臉對齊

目的:不同角度的人臉圖像,對齊成同一種標準的形狀
方法:定位人臉上的特徵點,然後通過幾何變換(仿射、旋轉、縮放),使各個特徵點對齊(將眼睛、嘴等部位移到相同位置)。
在這裏插入圖片描述

2.3.人臉編碼

目的: 人臉圖像的像素值會被轉換成緊湊且可判別的特徵向量,這也被稱爲模板(template)
注意: 理想情況下,同一個主體的所有人臉都應該映射到相似的特徵向量
在這裏插入圖片描述

2.4.人臉匹配

目的: 比較兩個模板,得到相似度分數。該分數給出了兩者屬於同一個主體的可能性

3.難點

人臉圖像在現實世界中的呈現具有高度的可變性
在這裏插入圖片描述

4.算法發展歷程

在這裏插入圖片描述

4.1.傳統機器學習算法的3個階段

  1. 幾何特徵階段
  2. 表象特徵階段
  3. 紋理特徵階段

4.2.深度學習算法的3個階段

  1. 網絡更深、更寬: VGG 網絡→ Inception 網絡→ Resnet 網絡。
  2. 擴大數據集,提高算法性能: 曠視、商湯等在學術公開競賽中取得好成績的廠商,開始發展實際業務。
  3. 更加輕量化: 與第一階段相反,大家開始在不降低識別性能的基礎上,研究網絡的輕量化。輕量化的主要目的:(1)提升算法速度,甚至能夠部署到移動端;(2)便於硬件實現,從而將人臉識別算法直接做成一個硬件模塊。

5.應用實例

  • 門禁系統
  • 安防系統
  • 無人超市
  • 電子護照及身份證
  • 自主服務系統(如ATM)
  • 信息安全系統,如刷臉支付
  • 娛樂型應用,如抖音裏的部分道具

參考

https://easyai.tech/ai-definition/cnn/
https://easyai.tech/ai-definition/computer-vision/
https://easyai.tech/ai-definition/facial-recognition/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章