深度學習筆記(33) 特徵點檢測

深度學習筆記(33) 特徵點檢測


1. 特徵點

利用神經網絡進行對象定位,即通過輸出四個參數值bx、by、bh和bw給出圖片中對象的邊界框
概括地說,神經網絡可以通過輸出圖片上特徵點的(x,y)座標來實現對目標特徵的識別

假設正在構建一個人臉識別應用,出於某種原因,希望算法可以給出眼角的具體位置
眼角座標爲(x,y),可以讓神經網絡的最後一層多輸出兩個數字 llxlly,作爲眼角的座標值

在這裏插入圖片描述
如果想知道兩隻眼睛的四個眼角的具體位置,那麼從左到右,依次用四個特徵點來表示這四個眼角
對神經網絡稍做些修改,輸出第一個特徵點(ll1xll1y),第二個特徵點(ll2xll2y
依此類推,這四個臉部特徵點的位置就可以通過神經網絡輸出了


2. 設定特徵點

也許除了這四個特徵點,還想得到更多的特徵點輸出值
還可以根據嘴部的關鍵點輸出值來確定嘴的形狀,從而判斷人物是在微笑還是皺眉
也可以提取鼻子周圍的關鍵特徵點
爲了便於說明,可以設定特徵點的個數
假設臉部有64個特徵點,有些點甚至可以幫助定義臉部輪廓或下頜輪廓
選定特徵點個數,並生成包含這些特徵點的標籤訓練集
然後利用神經網絡輸出臉部關鍵特徵點的位置

在這裏插入圖片描述
具體做法是,準備一個卷積網絡和一些特徵集
將人臉圖片輸入卷積網絡
輸出1或0,1表示有人臉,0表示沒有人臉,然後輸出(ll1xll1y)……直到(ll64xll64y
這裏用ll代表一個特徵,有129個輸出單元
其中1表示圖片中有人臉,因爲有64個特徵,64×2=128
這只是一個識別臉部表情的基本構造模塊

如果玩過Snapchat或其它娛樂類應用
應該對AR(增強現實)過濾器多少有些瞭解,Snapchat過濾器實現了在臉上畫皇冠和其他一些特殊效果
檢測臉部特徵也是計算機圖形效果的一個關鍵構造模塊,比如實現臉部扭曲,頭戴皇冠等等
當然爲了構建這樣的網絡,需要準備一個標籤訓練集
也就是圖片x和標籤y的集合,這些點都是人爲辛苦標註的


3. 關鍵特徵點

如果對人體姿態檢測感興趣,還可以定義一些關鍵特徵點
如胸部的中點,左肩,左肘,腰等等

然後通過神經網絡標註人物姿態的關鍵特徵點
再輸出這些標註過的特徵點,就相當於輸出了人物的姿態動作
在這裏插入圖片描述
當然,要實現這個功能,需要設定這些關鍵特徵點
從胸部中心點(ll1xll1y)一直往下,直到(ll32xll32y)

一旦瞭解如何用二維座標系定義人物姿態,操作起來就相當簡單了
批量添加輸出單元,用以輸出要識別的各個特徵點的(x,y)座標值

要明確一點,特徵點1的特性在所有圖片中必須保持一致
就好比,特徵點1始終是右眼的外眼角,特徵點2是右眼的內眼角,特徵點3是左眼內眼角,特徵點4是左眼外眼角等等
所以標籤在所有圖片中必須保持一致
假如標記了一個足夠大的數據集,那麼神經網絡便可以輸出上述所有特徵點
可以利用它們實現其他有趣的效果,比如判斷人物的動作姿態,識別圖片中的人物表情等等


參考:

《神經網絡和深度學習》視頻課程


相關推薦:

深度學習筆記(32) 目標定位
深度學習筆記(31) 遷移與增強
深度學習筆記(30) Inception網絡
深度學習筆記(29) 1×1 卷積
深度學習筆記(28) 殘差網絡


謝謝!

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