今回は、SCORER-SDK-Pythonのサンプルプログラムを使った顔トラッキングをご紹介します。このプログラムは、SCORERの映像から顔の座標を取得し、各時間における顔のトラッキング情報を収集します。
①SCORERのセットアップ
下記二つの記事をご参照ください。
blog.futurestandard.jp
blog.futurestandard.jp
②開発環境のセットアップ
下記リンク先PDFファイルの「2. 開発環境の準備」、「3. サンプルプログラムの実行」、「4. SCORER SDKの更新」を実施してください。
http://downloads.scorer.jp/SCORER_SDK_Starter_Guide_v0.4.1.pdf
③SCORERカメラの設定
下記アドレスからSCORERのSCC画面に遷移し、画像を参考にカメラ設定を修正してください(Video QualityをLowにすると動作が安定します。また一部設定では、プログラムが正常に動作しない可能性があります)。
http://{RaspberrypiのIPアドレス}:20001
④サンプルプログラムの確認
下記アドレスからSCORER開発者画面に遷移し、「SCORER SDK Samples」リンクをクリックします。
http://{RaspberrypiのIPアドレス}:20002
遷移した先の画面上に「Face_track」リンクがあることを確認してください。
※ブラウザキャッシュにより一時的にページが更新されない場合があります。その場合は、キャッシュを削除するか、時間をおいてページを更新してください。
上記対応後もリンクが表示されない場合は「②開発環境のセットアップ」の「4. SCORER SDKの更新」を再度実施してください。
⑤サンプルプログラムの実行
Cloud9から~/scorer-sdk-python/samples/Face_Trackに移動し、face_track.pyを開いた状態で「Run」を押して実行します。
その後、再度SCORER開発者画面に移動し、Web Show1をスタート状態にしてリンクをクリックします。
すると、下記のように顔トラッキング結果の映像が出力されます。顔の輪郭が緑の長方形、顔の中心座標の推移が黒点と黒線で表示されます。
これで顔トラッキングを実行することができました。
⑥ログの確認
このプログラムは、取得した顔の情報をログとして出力しています。
ログは3種類あり、全て~/scorer-sdk-python/samples/Face_Track/logに出力されます。
・detect.log:各顔検出タイミングに検知した顔の長方形座標
(左上のx座標、左上のy座標、高さ、横幅])を格納。
2018-11-01 15:32:39 No1:[337 17 44 44] No2:[448 222 87 87] No3:[297 203 103 103] Detected Num:3 2018-11-01 15:32:39 No1:[301 25 46 46] No2:[436 2 86 86] No3:[420 229 86 86] No4:[272 213 99 99] Detected Num:4 2018-11-01 15:32:39 No1:[287 32 44 44] No2:[420 5 92 92] No3:[412 235 87 87] No4:[266 220 96 96] Detected Num:4
・lost_faces.log:トラッキング処理からロストした顔のID、検出開始時間、
顔の中心座標の推移、検出終了時間を格納。
Object ID:1 Tracking Start:2018-11-01 15:32:02 2018-11-01 15:32:02[ 371.5 272.5] 2018-11-01 15:32:03[ 354.5 277.5] 2018-11-01 15:32:03[ 351.5 277.5] 2018-11-01 15:32:04[ 347. 275.] 2018-11-01 15:32:04[ 356.5 277.5] 2018-11-01 15:32:04[ 371. 281.] 2018-11-01 15:32:04[ 371.5 279.5] 2018-11-01 15:32:04[ 352.5 276.5] 2018-11-01 15:32:05[ 347. 276.] 2018-11-01 15:32:05[ 346.5 276.5] 2018-11-01 15:32:05[ 354. 277.] 2018-11-01 15:32:05[ 361.5 276.5] 2018-11-01 15:32:06[ 359.5 272.5] 2018-11-01 15:32:06[ 357.5 275.5] 2018-11-01 15:32:06[ 352.5 278.5] 2018-11-01 15:32:06[ 352.5 278.5] 2018-11-01 15:32:07[ 379.5 276.5] 2018-11-01 15:32:07[ 380. 277.] 2018-11-01 15:32:07[ 380. 276.] 2018-11-01 15:32:07[ 377.5 277.5] Tracking End:2018-11-01 15:32:08
・progress.log:各顔トラッキングタイミングに整理された顔の数の情報を格納。
- Inputed objects:今回検出処理で検出された顔の数
- Tracked objects last time:前回トラッキング処理でロストせずに残っていた顔の数
- Tracked objects this time:今回トラッキング処理でロストせずに残っている顔の数
- Losted objects:今回トラッキング処理でロストした顔の数
2018-11-01 15:32:35 Inputed objects:1 Tracked objects last time:2 Tracked objects this time:2 Losted objects:0 2018-11-01 15:32:35 Inputed objects:1 Tracked objects last time:2 Tracked objects this time:2 Losted objects:0 2018-11-01 15:32:36 Inputed objects:4 Tracked objects last time:2 Tracked objects this time:5 Losted objects:0
以上で顔検出、トラッキングの説明は終了です。この機能は、
・顔写真からの年齢、性別判定
・人の滞在時間測定
など様々な顔画像を利用した機能に応用することができます。
次回は1つ目の年齢、性別判定のサンプルプログラムをご紹介します。