2021年3月19日金曜日

顔認識(主要486点)学習モデルFacemeshの利用

 【what is this】Googleの顔認識(主要486点)や指の認識(主要関節21点)の学習モデルが、PythonやJavaScriptなどで使えるようになっています[1]。本記事は、これに基づいた顔認識モデルFacemeshに関する小生独自の簡単な説明です。

顔のキーポイント(全486点)のリアルタイム認識
 Facemeshによる顔のキーポイントの検出例を図1に示します。人間の実写の他、写真や肖像画でもOKのようです。福沢諭吉と平賀源内の肖像画(何故かこのお二人)、および大学HPの広報(女子学生)写真で試しました。顔認識や感情分析に重要な、口や鼻や目の付近のメッシュは当然ながら細かくなっています。

唇と瞼の開き具合の認識
 主要点番号とその位置の対応は、mesh mapにありますので、その番号を指定して、必要な点の検出ができます。一例として、唇と瞼の開き具合を見るため、図2のように、8点(唇4点と瞼4点)を赤色に着色してみました。


 これら8点のマップは図3のとおりです。鼻や頬や顎についてのキーポイントも同様に得られます。(キーポイント番号は、その後改訂にともない、図3とは異なるかも知れません。)これらを利用すれば、例えば口の開き具合で、何かの動作を制御する等、自分なりの顔認識関係アプリを(簡単なものであれば)作れそうな気になります!

 図4は、日本語母音の発話時の口形の検出例です。なかなか面白そうですが、これですぐに読唇ができるわけではありません。実際の機械読唇技術に関しては、宮崎剛教授らの論文[2]等を参考にして深く検討する必要があるでしょう。


口の開閉でオンオフを制御してみる
 →この項はその後修正し、こちらにまとめました。


もう一歩前へ(状態だけでなく、動きも検知)
 
→この項はその後修正し、こちらにまとめました。

感想
(1)プログラミングの容易化
 
図3を改めて眺めてみました。このようにランドマーク(キーポイント)がリアルタイムに検出されるのであれば、この後は顔の表情を認識することは格段に容易になります。(情報系が苦手な学生を含む)より幅広い人々が、AI技術発展の恩恵を受けられると思います。
(2)スマホなどGPU無しでも推論ができる
 
以前は、上記例題のようなリアルタイム顔認識には、GPU付きの高性能PCが必要でしたが、今はこのような認識(推論)は普通のスマホで十分できてしまう。アイディアと工夫次第で、思いもつかぬアプリケーションも生まれそうに思われます。

参考文献・資料
[1]
 Face and hand tracking in the browser with MediaPipe and TensorFlow.js, https://blog.tensorflow.org/2020/03/face-and-hand-tracking-in-browser-with-mediapipe-and-tensorflowjs.html
[2] 宮崎 剛、中島豊四郎:[推薦論文]日本語の発話映像における初口形の検出方法提案、情報処理学会論文誌、Vol.53、No.3、pp.1472-1479、2012.

0 件のコメント:

コメントを投稿