SlideShare a Scribd company logo
1 of 24
Download to read offline
Deep Convolutional
Network Cascade for
Facial Point Detection
輪講用資料
長崎県立大学 国際情報学研究科情報メディア専攻
M2215001
片渕 小夜
目次
1. 研究背景
2. 従来手法
3. 提案手法
1. ネットワークの概要
2. Level1
3. Level2,Level3
4. CNNの構造
5. 学習を洗練させるために
6. 顔パーツの位置推定
4. CNN
4. 畳み込み層
5. プーリング層
6. 全結合層
5. ネットワーク構成図
6. 実験
1. 実験概要
2. 精度評価式
3. ネットワーク別の精度比較
4. カスケード接続の検証
5. 従来手法との精度比較
6. 最終の比較結果
7. まとめ
研究背景
現在広く使用されている顔認識システム
• 真顔で
• 十分な照明の元で
など,厳格に定められた条件下で撮影・認識している
• 極端な表情でもきちんと認識できる
• 照明に対しロバスト性のある
• より柔軟な環境下でも十分に成果の出せる
顔認識システムが求められている
従来手法
1.顔のパーツの局所特徴量を得る方法
• 画像によっては特徴量が十分に得られないことも
→顔パーツと思われる特徴量を大量にサジェストしてしまう
2.顔のパーツの形状または配置による制約をつける方法
• 画像中に含まれる目や口の領域や配置などを予め入力しておく
→効率的だが,笑顔や変顔など特殊な表情に対応できない
より厳密な結果を出すためには,
指数関数的に増加する計算量をこなし,
複雑な分類器を地道に作っていくしかない
提案手法
滝(カスケード)状にデータを流して結果を得る
Deep Convolutional Network Cascade
(全3層のうち)
1層目の出力
2,3層目の出力
従来手法の結果
提案手法
(1)ネットワークの概要
Le:左目
Re:右目
N:鼻
Lm:左口角
Rm:右口角
CNNを3つ用意し,各層の出力を入力データとして扱う
• 1層目(Level1)で大方の認識は完了させる
• 2,3層目で微調整を行う
提案手法
(2)Level1
• F1:顔全体を算出
• EN1:目と鼻の位置を算出
• NM1:鼻と口の位置を算出
顔のパーツに合わせ3つのCNNを構築
全てのCNNの結果を平均化し,
Level1の出力とする
提案手法
(3)Level2,Level3
顔のパーツ毎に5つのCNNを構築
各パーツの局所的な特徴は
曖昧かつ信頼性が低いので,
2,3層目が加えることの出来る
調整はごく僅かに設定されている
提案手法
(4)各CNNの構造
例:F1のCNN
※全てのCNNにおいて層構造は同じであるが,入力画像の大きさが違うため,
入力層の大きさは各パーツに合わせて変更している
• 畳み込み層・プーリング層の
セット:3セット
• 全結合層:2層
の全10層
提案手法
(5)学習をより洗練させるために
1.CNNは深くあるべき
深いネットワークを構築する事は,ローカルな局所特徴量を得る上に
高次元の特徴形成に有効である
2.畳み込み層通過後に調整を行う
当研究では畳み込み層の活性化関数にtanhを使用,
この活性化の後に絶対値を用いて調整を加える事でより精度が向上した
3.各顔パーツを認識するニューロンを共有する
基本的に各パーツは画像中の似通った場所に映り込むと考えられる
この為,ある画像に有用であったニューロンは他人の画像でも十分に効果がある
提案手法
(6)顔パーツの位置推定
𝑥 =
𝑥1
(1)
+ ⋯ + 𝑥𝑙1
(1)
𝑙1
+
𝑖=2
𝑛
∆𝑥1
(𝑖)
+ ⋯ + ∆𝑥𝑙 𝑖
(𝑖)
𝑙𝑖
顔パーツ𝑥の位置は,Level1で得られた初期位置と,
Level2,Level3で得られた微調整の結果の加算によって得られる
Level1の出力 Level2,Level3の出力
CNN
(1)畳み込み層
 入力画像はグレースケール画像で,𝐼(ℎ, 𝑤)で示す.
 畳み込み層が持つパラメータは𝐶(𝑠, 𝑛, 𝑝, 𝑞),絶対値を使用した調整を加える場
合は𝐶𝑅(𝑠, 𝑛, 𝑝, 𝑞)
 𝑠 = カーネルの辺の長さ 𝑛 = 畳み込むフィルタの数 𝑝, 𝑞 = 重み共有パラメータ
 フィルタは領域qの大きさでp個に分割され,それぞれ重みを共有している
CNN
(1)畳み込み層
 𝐶 𝑠, 𝑛, 𝑝, 𝑞 は以下の式で求められる,この結果をプーリング層に渡す
𝑦𝑖,𝑗
(𝑡)
= tanh(
𝑟=0
𝑚−1
𝑘=0
𝑠−1
𝑙=0
𝑠−1
𝑥𝑖+𝑘,𝑗+𝑙
(𝑟)
∙ 𝑤 𝑘,𝑙
𝑟,𝑢,𝑣,𝑡
+ 𝑏 𝑢,𝑣,𝑡 )
𝑖 = ∆ℎ ∙ 𝑢, ⋯ , ∆ℎ ∙ 𝑢 + ∆ℎ − 1
𝑗 = ∆𝑤 ∙ 𝑣, ⋯ , ∆𝑤 ∙ 𝑣 + ∆𝑤 − 1
∆ℎ =
ℎ − 𝑠 + 1
𝑝
, ∆𝑤 =
𝑤 − 𝑠 + 1
𝑞
𝑢 = 0, ⋯ , 𝑝 − 1, 𝑣 = 0, ⋯ , 𝑞 − 1
𝑤: 重み 𝑏: バイアス
絶対値による調整𝐶𝑅(𝑠, 𝑛, 𝑝, 𝑞)を行う場合は,𝐶 𝑠, 𝑛, 𝑝, 𝑞 の絶対値をプーリング層
に渡す.
CNN
(2)プーリング層
 演算方法は最大プーリング,𝑃(𝑠)で表される
 Sはカーネルの辺,全てのカーネルは重複をしない
 プーリング層での演算は以下の式に沿って行われる
𝑦𝑖,𝑗
(𝑡)
= tanh(𝑔 𝑢,𝑣,𝑡 ∙ max
0≤𝑘,𝑙≤𝑠
𝑥𝑖∙𝑠+𝑘,𝑗∙𝑠+𝑙
𝑡
+ 𝑏 𝑢,𝑣,𝑡 )
ゲインgとバイアスbは畳み込み層から共有されたパラメータである
CNN
(3)全結合層
 全結合層はF(n)で表される
𝑦𝑖 = tanh(
𝑖=0
𝑚−1
𝑥𝑖 ∙ 𝑤𝑖∙𝑗 + 𝑏𝑗)
j=0,…,n-1で,nとmは現在の層と前層の結合したニューロンを示す.
 Level1の全結合層
全結合層は3つ用意され,それぞれF1(顔全体)・EN1(目と鼻)・NM1(鼻と口)を抽出する
 Level2,Level3の全結合層
全結合層は左目・右目・鼻・左口角・右口角毎に用意され,Level1で得られた結果を中
心とした微妙な調整を行うために働く
ネットワーク構成図
それぞれ,
Level1の
• 顔(F1):S0
• 目と鼻(EN1),鼻と口(NM1):S1
Level2,Level3:S2
を採用している
S3~S7は比較用のネットワーク構成を示す
実験
(1)実験概要
様々なネットワーク構成,カスケード構成を試験し,市販システムとの
精度を比較する
精度評価は検出誤差と顔パーツの誤検出率によって行う
使用する画像
• 13466枚の顔画像を用意
• 5590枚はLFWと呼ばれるデータセットから取得,残りはWebからダウンロード
• 全ての顔画像に対して,顔のパーツの位置をラベリング
• 13466枚の中からランダムに10000枚を学習し,残りの3466枚を検証用に使用
実験
(2)精度評価式
精度評価は検出誤差と顔パーツの誤検出率によって行う
𝑒𝑟𝑟 = (𝑥 − 𝑥′)2+(𝑦 − 𝑦′)2/𝑙
𝑥, 𝑦: ラベルデータ, 𝑥′, 𝑦′: 検出点
𝑙:顔面における顔パーツの位置
検出誤差errが5%よりも大きい場合は失敗としてカウントする
※目の位置は検出誤差正規化に使用される
実験
(3)ネットワーク別の精度比較
顔の各パーツ別の平均誤差
• より多くの層を持つネットワークが誤差が少ない
• ローカルの重みを共有した方がより精度が良い
• 絶対値による調整を行ったほうが良い
顔認識においてCNNは有効であり,
よりネットワークが深いほど精度が良い
実験
(4)カスケード接続の検証
カスケード接続による精度の変化
Level1の段階で得られた誤差より,
Level2を通して得られた誤差は大幅に減少
Level3では僅かに誤差を減少させる
実験
(5)従来手法との精度比較
 Luxand Face SDK, Microsoft Research Face SDK
 BioIDという顔認識用データセットを使用,23人の被験者による1521枚の画像セット
で,全て前向き.均一な照明下で撮影
 MS Research Face SDKは目と鼻の頂点を認識しないので口角部分を比較
水色が提案手法,その他が従来手法.
提案手法は誤差が非常に少なく,課題解決のためかなり有効と考えられる
実験
(6)従来手法との精度比較
 LFPW
 Webから1432枚の画像をダウンロード,うち1132枚を学習用,300枚を検証用画像に
割り当てる
 照明,撮影角度などかなり制約の少ない画像を含む.
 提案手法を用いた精度比較では,検証用画像にLFPWの中の学習用・検証用の画像を
使用
水色が提案手法,その他が従来手法.
提案手法は誤差が非常に少なく,課題解決のためかなり有効と考えられる
実験
(7)最終の比較結果
青・赤:従来手法の誤差
緑:従来手法
全ての顔パーツにおいて,従来手法よりも誤差が少ない
鼻・口においては大幅に誤差を減少させることが出来た
まとめ
顔認識において,カスケードCNNは非常に有効
重要な機能を洗練させることで,比較的小さなネットワークで
より良い精度を得ることが可能になった
商用ソフトウェアに応用し,更なる精度向上に貢献する

More Related Content

Similar to 輪講用資料「Deep Convolutional Network Cascade for Facial Point Detection」

深層学習 - 画像認識のための深層学習 ②
深層学習 - 画像認識のための深層学習 ②深層学習 - 画像認識のための深層学習 ②
深層学習 - 画像認識のための深層学習 ②Shohei Miyashita
 
Muramatsu Bachelor Thesis
Muramatsu Bachelor ThesisMuramatsu Bachelor Thesis
Muramatsu Bachelor Thesispflab
 
関西CVPRML勉強会資料20150627
関西CVPRML勉強会資料20150627関西CVPRML勉強会資料20150627
関西CVPRML勉強会資料20150627tsunekawas
 
End-to-end learning of keypoint detector and descriptor for pose invariant 3D...
End-to-end learning of keypoint detector and descriptor for pose invariant 3D...End-to-end learning of keypoint detector and descriptor for pose invariant 3D...
End-to-end learning of keypoint detector and descriptor for pose invariant 3D...YasuakiMori2
 
Deep Neural Networkに基づく日常生活行動認識における適応手法
Deep Neural Networkに基づく日常生活行動認識における適応手法Deep Neural Networkに基づく日常生活行動認識における適応手法
Deep Neural Networkに基づく日常生活行動認識における適応手法NU_I_TODALAB
 
Dynamic Routing Between Capsules
Dynamic Routing Between CapsulesDynamic Routing Between Capsules
Dynamic Routing Between Capsulesharmonylab
 

Similar to 輪講用資料「Deep Convolutional Network Cascade for Facial Point Detection」 (10)

深層学習 - 画像認識のための深層学習 ②
深層学習 - 画像認識のための深層学習 ②深層学習 - 画像認識のための深層学習 ②
深層学習 - 画像認識のための深層学習 ②
 
Muramatsu Bachelor Thesis
Muramatsu Bachelor ThesisMuramatsu Bachelor Thesis
Muramatsu Bachelor Thesis
 
Efficient Det
Efficient DetEfficient Det
Efficient Det
 
MIRU_Preview_JSAI2019
MIRU_Preview_JSAI2019MIRU_Preview_JSAI2019
MIRU_Preview_JSAI2019
 
関西CVPRML勉強会資料20150627
関西CVPRML勉強会資料20150627関西CVPRML勉強会資料20150627
関西CVPRML勉強会資料20150627
 
End-to-end learning of keypoint detector and descriptor for pose invariant 3D...
End-to-end learning of keypoint detector and descriptor for pose invariant 3D...End-to-end learning of keypoint detector and descriptor for pose invariant 3D...
End-to-end learning of keypoint detector and descriptor for pose invariant 3D...
 
はじパタLT2
はじパタLT2はじパタLT2
はじパタLT2
 
DeepCas
DeepCasDeepCas
DeepCas
 
Deep Neural Networkに基づく日常生活行動認識における適応手法
Deep Neural Networkに基づく日常生活行動認識における適応手法Deep Neural Networkに基づく日常生活行動認識における適応手法
Deep Neural Networkに基づく日常生活行動認識における適応手法
 
Dynamic Routing Between Capsules
Dynamic Routing Between CapsulesDynamic Routing Between Capsules
Dynamic Routing Between Capsules
 

More from Saya Katafuchi

Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その2
Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その2Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その2
Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その2Saya Katafuchi
 
Hands On OpenCV! 画像処理ライブラリを使って面白いプログラムを作ろう!
Hands On OpenCV! 画像処理ライブラリを使って面白いプログラムを作ろう!Hands On OpenCV! 画像処理ライブラリを使って面白いプログラムを作ろう!
Hands On OpenCV! 画像処理ライブラリを使って面白いプログラムを作ろう!Saya Katafuchi
 
第一回カオス時系列解析
第一回カオス時系列解析第一回カオス時系列解析
第一回カオス時系列解析Saya Katafuchi
 
卒論執筆のために3年生からやる5つのこと
卒論執筆のために3年生からやる5つのこと卒論執筆のために3年生からやる5つのこと
卒論執筆のために3年生からやる5つのことSaya Katafuchi
 
第3回長崎デジタルコンテストLT『リバースエンジニアリング入門』
第3回長崎デジタルコンテストLT『リバースエンジニアリング入門』第3回長崎デジタルコンテストLT『リバースエンジニアリング入門』
第3回長崎デジタルコンテストLT『リバースエンジニアリング入門』Saya Katafuchi
 
20140514在校生向けUnity&AR講座
20140514在校生向けUnity&AR講座20140514在校生向けUnity&AR講座
20140514在校生向けUnity&AR講座Saya Katafuchi
 
20140508 在校生向けUnity&AR講座
20140508 在校生向けUnity&AR講座20140508 在校生向けUnity&AR講座
20140508 在校生向けUnity&AR講座Saya Katafuchi
 
201310合同ゼミ論文紹介
201310合同ゼミ論文紹介201310合同ゼミ論文紹介
201310合同ゼミ論文紹介Saya Katafuchi
 
VirtualDJでPCDJっぽいことをやった
VirtualDJでPCDJっぽいことをやったVirtualDJでPCDJっぽいことをやった
VirtualDJでPCDJっぽいことをやったSaya Katafuchi
 
ヤンデレのUnityに愛されて眠れない〜りたーんず〜
ヤンデレのUnityに愛されて眠れない〜りたーんず〜ヤンデレのUnityに愛されて眠れない〜りたーんず〜
ヤンデレのUnityに愛されて眠れない〜りたーんず〜Saya Katafuchi
 
ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜
ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜
ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜Saya Katafuchi
 
マルウェア解析講座そのいち〜仮想環境下では暴れないけど質問ある?〜
マルウェア解析講座そのいち〜仮想環境下では暴れないけど質問ある?〜マルウェア解析講座そのいち〜仮想環境下では暴れないけど質問ある?〜
マルウェア解析講座そのいち〜仮想環境下では暴れないけど質問ある?〜Saya Katafuchi
 
Reverseengineering koukai
Reverseengineering koukaiReverseengineering koukai
Reverseengineering koukaiSaya Katafuchi
 
i phoneでbasicやるよ!
i phoneでbasicやるよ!i phoneでbasicやるよ!
i phoneでbasicやるよ!Saya Katafuchi
 

More from Saya Katafuchi (17)

20190324vvvvオフ会
20190324vvvvオフ会20190324vvvvオフ会
20190324vvvvオフ会
 
Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その2
Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その2Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その2
Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その2
 
Hands On OpenCV! 画像処理ライブラリを使って面白いプログラムを作ろう!
Hands On OpenCV! 画像処理ライブラリを使って面白いプログラムを作ろう!Hands On OpenCV! 画像処理ライブラリを使って面白いプログラムを作ろう!
Hands On OpenCV! 画像処理ライブラリを使って面白いプログラムを作ろう!
 
第一回カオス時系列解析
第一回カオス時系列解析第一回カオス時系列解析
第一回カオス時系列解析
 
卒論執筆のために3年生からやる5つのこと
卒論執筆のために3年生からやる5つのこと卒論執筆のために3年生からやる5つのこと
卒論執筆のために3年生からやる5つのこと
 
第3回長崎デジタルコンテストLT『リバースエンジニアリング入門』
第3回長崎デジタルコンテストLT『リバースエンジニアリング入門』第3回長崎デジタルコンテストLT『リバースエンジニアリング入門』
第3回長崎デジタルコンテストLT『リバースエンジニアリング入門』
 
20140514在校生向けUnity&AR講座
20140514在校生向けUnity&AR講座20140514在校生向けUnity&AR講座
20140514在校生向けUnity&AR講座
 
20140508 在校生向けUnity&AR講座
20140508 在校生向けUnity&AR講座20140508 在校生向けUnity&AR講座
20140508 在校生向けUnity&AR講座
 
201310合同ゼミ論文紹介
201310合同ゼミ論文紹介201310合同ゼミ論文紹介
201310合同ゼミ論文紹介
 
VirtualDJでPCDJっぽいことをやった
VirtualDJでPCDJっぽいことをやったVirtualDJでPCDJっぽいことをやった
VirtualDJでPCDJっぽいことをやった
 
ヤンデレのUnityに愛されて眠れない〜りたーんず〜
ヤンデレのUnityに愛されて眠れない〜りたーんず〜ヤンデレのUnityに愛されて眠れない〜りたーんず〜
ヤンデレのUnityに愛されて眠れない〜りたーんず〜
 
Capture the flag!
Capture the flag!Capture the flag!
Capture the flag!
 
Tesseract-OCR in iOS
Tesseract-OCR in iOSTesseract-OCR in iOS
Tesseract-OCR in iOS
 
ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜
ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜
ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜
 
マルウェア解析講座そのいち〜仮想環境下では暴れないけど質問ある?〜
マルウェア解析講座そのいち〜仮想環境下では暴れないけど質問ある?〜マルウェア解析講座そのいち〜仮想環境下では暴れないけど質問ある?〜
マルウェア解析講座そのいち〜仮想環境下では暴れないけど質問ある?〜
 
Reverseengineering koukai
Reverseengineering koukaiReverseengineering koukai
Reverseengineering koukai
 
i phoneでbasicやるよ!
i phoneでbasicやるよ!i phoneでbasicやるよ!
i phoneでbasicやるよ!
 

輪講用資料「Deep Convolutional Network Cascade for Facial Point Detection」