はじめに
JavaScript で手軽に機械学習を扱える「ml5.js」の「FaceApi」に関するメモです。
●FaceApi
https://learn.ml5js.org/#/reference/face-api
記事を書いた経緯
ml5.js の公式リファレンスを眺めていて、ふと FaceApi の内容が目にとまり、この FaceApi の内容はあまり詳しく見たことがなかったので、あらためて見てみたというのがこの記事を書いた流れです。
注意が必要な部分
ml5.js の FaceApi は、その元になっている「face-api.js」の全機能を使えるわけではなく、一部の機能のみを使えるもののようです。
具体的な内容は、トップページの以下の部分に書いてあります。
「does not support expressions, age or gender estimation.」と書かれているように、以下の中の「Face Expression Recognition」「Age Estimation & Gender Recognition」は扱えないようです(以下の中の「Face Recognition」「Face Landmark Detection」のみに対応しているようです)。
●justadudewhohacks/face-api.js: JavaScript API for face detection and face recognition in the browser and nodejs with tensorflow.js
https://github.com/justadudewhohacks/face-api.js/tree/master
【追記】 非公式のバージョンで上記の機能に対応したものがありました
上で、公式の ml5.js だと対応していない機能がある、という話を書いていました。
その話について、非公式のもの(ml5.js に手が加えられたバージョン)で、上記の機能に対応したものがあるのを発見しました。詳細は、以下の記事をご覧ください。
●ml5.js の FaceApi で face-api.js の表情認識などの対応が組み込まれたものがあった - Qiita
https://qiita.com/youtoy/items/f942fc997e0b05d90495
ml5.js の FaceApi で扱えるモデル
ml5.js の FaceApi の説明を見ていると、扱えるモデルは以下に書かれた 5つになりそうです。
ちなみに、face-api.js のほうで扱うことができるモデルは、公式情報を見ると以下となっているようです。
console.log(faceapi.nets)
// ageGenderNet
// faceExpressionNet
// faceLandmark68Net
// faceLandmark68TinyNet
// faceRecognitionNet
// ssdMobilenetv1
// tinyFaceDetector
// tinyYolov2
それらを比較すると、利用できないモデルは「ageGenderNet」「faceExpressionNet」「tinyYolov2」となるようです。