TriggEyeの性能評価
計測した部屋は、広さ6畳、照明は全灯、カーテンは閉め、カメラは天井の隅に設置した
https://gyazo.com/b615985e532d46ca92f8a1f0b57df72a
table:計測結果
起動前 顔なし 顔あり
カメラの解像度 640x480 1920x1080 640x480 1920x1080
検知できた距離 0.1~1.4m 0.1~3.2m
解析速度 30fps 20~23fps 20~23fps 3~6fps
消費電力 11~12W 19W 24~27W 37~41W 40~50W
CPU使用率 1~2% 8% 17% 36~44% 40~57%
GPU使用率 0% 6% 16% 6% 16%
メモリ使用量 3.2GB 4.1GB 4.1GB 4.1GB 4.1GB
部屋のほぼ全域で、カメラ目線を検知できた (解像度が1920x1080の場合)
反応速度は遅いが(3~6fps、すなわち、0.167~0.333秒)、精度が高いので、ほぼ気にならない
かなり薄暗い部屋でも十分に実用的
調光機能付きの照明で、一番暗くしても、検知できた距離はほぼ同じ
昼間にカーテンを締め切った薄暗い部屋でも同様
低解像度(640x480)でも、1.4m以内なら、反応が速く(20~23pfs)、検知精度も高い
オートフォーカス性能の高いカメラを使えば、もう少し遠くまで検知できるかも
負荷の有無 = 顔認識の有無
カメラに顔が映っていなければ、腕や体が激しく動いていても、負荷は少ない(640x480ならCPU8%)
カメラに顔が映っていると、顔が止まっていても動いていても、負荷が大きい(1080pだとCPU40~57%)
メモリ使用量は0.6~0.9GB
table: TriggEyeの起動前後のシステム全体のメモリ使用量
起動前 起動中 差 = TriggEyeのメモリ使用量
Linux 1.9GB 2.5GB 0.6GB
Windows 3.2GB 4.1GB 0.9GB
計測に使用したプロセッサはGPU内蔵式なのでVRAM割当量(1~2GB)を加えた合計3.5~6.1GBが必要
GPUはほぼ未使用
GPUは解析結果の動画再生に使われているだけ(のはず)
認識精度を上げるコツ
目線だけでなく、顔もまっすぐカメラに向ける
顔が真正面になるほど、OpenFaceの特徴量が正確になる
少し顎を上げると、反応しやすい (カメラを天井付近に設置した場合)
顔をあまり動かさない
動きが多いほど、反応が遅くなる
顔がカメラに近いほど、精度も反応も良くなる
ささやかな副効用
隣の部屋のGoogle Homeが誤起動しない
人間がウェイクワードを発声すると、隣の部屋のGoogle Homeが起動してしまうことがよくあるが、TriggEyeを使う場合は、100均スピーカーのそばのGoogle Homeしか反応しない
2019/8/21