ディープラーニングライブラリ TensorFlow.js と、人体の姿勢推定ができる機械学習モデル PoseNet Modelをつかって、顔写真に自動的に目線がはいるようにしてみました。
最大8人まで認識するようになっています。
端末から画像を選んで読み込むか、以下のサンプル画像を選択してください。
サンプル画像
画像を選択すると画像を解析して目線が入ります。画像が小さかったり、画像の大きさに対して写っている顔が小さい場合は精度が落ちるため、縦幅か横幅が1600px以上の画像をおすすめします。また、寝そべっているなど写真の向きに対して顔が横になっている場合は認識できないようです。
処理はすべて端末内で実行され、画像がサーバーに送信・保存されることはありません。
負荷の高い処理を行うため、端末のスペックによっては連続した操作や大きな画像を読み込むなどした場合にブラウザがクラッシュすることがあります。PC以外は画像を縮小する処理を挟んでからTensorFlowに投げているため、PCとスマホで結果が異なる場合があります。