dn-5. 顔情報処理(Dlib,
InsightFace を使用)
(ディープラーニング入門演習)
URL: https://www.kkaneko.jp/ai/dn/index.html
1
金子邦彦
顔検出
顔検出
写真やビデオの中から、
顔を識別すること
・顔の場所と領域を検出
・複数ある場合にはすべ
て識別
2
顔検証
• 顔検証 (face
verification)
2つの別の写真あ
るいはビデオを照
合し、同一人物で
あるかを判定する
こと
3
同一人物である 同一人物でない
顔情報処理の用途
• 顔による本人確認
• 集団行動解析、人流解析、人数推定
• 顔情報処理(表情判定、3次元化、顔面切り抜き
など)の前処理
4
顔のランドマーク
顔のランドマーク
まゆげ、目、鼻、くち、
顔の輪郭など、顔の目
印となるポイント
顔特徴ベクトル
顔を数値ベクトル化し
たもの
5
顔の 68ランドマーク
Dlib
6
Dlib
• Dlib は,数多くの機能を持つソフトウエア.
• ソースコードはオープン
• Python, C++ のプログラムから使うためのイン
タフェースを持つ.
• 機能: 機械学習,数値計算,グラフィカルモデ
ル推論,画像処理,スレッド,通信,GUI,
データ圧縮・一貫性,テスト,さまざまなユー
ティリティ
URL: http://dlib.net/
7
Dlib の顔情報処理
Dlib には,顔情報処理に関して,次の機能が
ある
• 顔検出
• 顔ランドマークの検出
• 顔のアラインメント
• 顔のコード化
※ ディープニューラルネットワークの学習済
みモデルも配布されている
https://github.com/davisking/dlib-models
https://github.com/ageitgey/face_recognition/blob/mast
er/examples/face_recognition_knn.py
8
Dlib での顔のコード化
• 人工知能 (Resnet) を使用.すでに多数の顔画像に
より学習済み
• 顔のコード化の,さらなる精度向上には,1000万
をこえる新規画像が必要になる可能性あり
• 顔認証での利用では,精度向上のため,既知の顔
画像1つでなく,複数の顔画像のコードと照合す
ることを考慮する
https://github.com/ageitgey/face_recognition/blob/m
aster/examples/face_recognition_knn.py
顔認証は:顔画像から個体を識別すること
普通のアプリとライブラリの比較
10
• 普通のアプリ
• ライブラリ
「アプリ」というときは、
ひととおり機能がそろった
ソフトウエア.
そこで仕事を済ませる.
「ライブラリ」というときは、
基本機能が完備.
その上で、プログラムを作り
アプリを完成させる.
顔検出
• 写真やビデオの中から、顔を検出
11
顔のアラインメント
12
• 個々の顔の傾きを自動調整
顔の増量
13
• 元画像から,少しずつ変換した画像を多数生成
5ランドマーク
14
• 右目,左目,鼻の5つのランドマーク
68ランドマーク
• 顔の所定の箇所に設けられた68個のランドマーク
15
特徴ベクトル
• Dlibでは,顔のアライメントののち,ランドマー
クを用いて特徴ベクトルが算出される
16
顔検証 (face verification)
17
• 顔検証により,同一人物かを識別
同一人物である 同一人物でない
Dlib の応用例 表情判定
18
• 7種の表情 Angry, Disgust, Fear, Happy, Neutral,
Sad, Surprised のそれぞれの確率を判定
• https://github.com/ezgiakcora/Facial-Expression-
Keras で公開されている成果物
顔検出,顔認識などを
行ってみる
19
20
Colaboratory ノートブックの WEB ページ
テキストセル
コードセル
実行結果
コードセル
• オンラインで公開可能
• WEBブラウザでアクセス
• コードセルは
Python プログラム.
各自の Google アカウント
でログインすれば,
変更,再実行可能
21
Colaboratory ノートブックでの
ファイルアップロード
「ファイル」を
クリック
Google アカウントの取得
(プログラムの変更,再実行したい,ファイルをアップ
ロードしたいときに Google アカウントでのログインが
必要)
• 次のページを使用
https://accounts.google.com/SignUp
• 次の情報を登録する
氏名
自分が希望するメールアドレス
<ユーザー名>@gmail.com
パスワード
生年月日,性別
22
前準備
顔がうつったファイルを2つ以上準備.
・ファイル名は、数字と英字のみを使用
・各自で準備してください。説明では次の画像を使用
23
1.png 2.png
24
Google Colaboratory の WEBページは2つ
URL は次の通り
実験1
https://colab.research.google.com/drive/1S55yEFiQpdIRdjWbdH0z
zEYD5VAfklHd?usp=sharing
実験2
https://colab.research.google.com/drive/13fXJ4f2dF-
53YI_6i_rAJl17cuYuLE91?usp=sharing
(URL は YouTube 動画の概要欄,大学のセレッソの「レポート」内に記載)
プログラムを実行するときの注意点
25
① コードセルの左の実行ボタンで実行
② 次のようなエラーが出て、進めないことがある
• メニューで「ランタイム」
を選び
• 「ランタイムのタイプを変
更」。
• 新しく出てきた画面で、
ハードウエアアクセラレー
タのところを「GPU」に
して、「保存」と操作
• コードセルの実行を最初
からやり直す