概要
BasicAwarenessを使ってDetectした人の性別と年齢を取得します。
使うボックス
Choregraphe標準のボックスを使って実装します。
1. BasicAwareness
ALBasicAwarenessの制御とイベントの監視を行うボックスです。
そもそもBasicAwarenessっていうのは
Pepperが音に反応したり、顔を見つけたりするための機能です。
上から2番目が音に反応したときのイベント
3番目が顔を見つけたときのイベント
4番目が顔を見失ったときのイベントです。
UserSessionにもFocusedUserがありますが、
役割は別なのでうまく使い分けましょう。
2. Get Gender
名前の通り性別を識別するためのボックスです。
レンチマークで閾値(年齢の正確さ)とタイムアウトを設定できます。
閾値が高すぎるとタイムアウトして性別が取れないのでいい感じのところを設定して下さい。
3. Get Age
こちらも上のGet Genderボックスと同じインターフェースになってます。
実装
上記のボックスを使用して実装する場合このような配置になります。
解説
Get GenderとGet Ageのボックスを見るとわかりますが、
PeoplePerception/PeopleListというメモリにPeopleIdが入っているかを見ています。
BasicAwarenessによって人の顔を認識した場合
BasicAwarenessボックスのHumanTrackedからPeopleIdが出力されます。
つまりBasicAwarenessのHumanTrackedから値が出力されたときは
かならずPeopleIdがPeoplePerception/PeopleListに入っているので
Get AgeとGet Genderボックスで年齢と性別を取得できる確率が非常に高くなります。
BasicAwarenessボックスがUnloadされない限りは監視を続けるので
アプリ内でDetect中の人の年齢や性別を使うアプリではボックスをUnloadせずに常駐させておくといいです。