blog
ブログ
2016.04.25

Pepper技術ブログ:NAOqiMemoryKeyメモ

こんにちは!
日本システムデザイン Pepper担当のスエヨシです。
NAOqi Framework (Pepper ミドルウェア)で提供されている各APIで利用可能なメモリキー情報について、
公式ドキュメント記載の情報を調査しましたので、
覚書として記載します。

pepper_no_image

◆NAOqi Memory Keys

以下、下記の公式ドキュメントページを翻訳した内容となります。
NAOqi Memory Key Index – Aldebaran documentation

BacklightingDetection/BacklightingValue フレーム毎に計測される逆光の値。
(0:逆光なし、1:逆光の可能性有り、2:逆光が確定)
CloseObjectDetection/ObjectInfo 直近で検出された近接物体の情報。
DarknessDetection/DarknessValue フレーム毎に計測される暗さの値。
EngagementZones/LastMovementsInZone1 エンゲージメントゾーン1で検出された動きのリスト。
このメモリキーは、キー”MovementDetection/MovementInfo”と同様の構造となっている。
EngagementZones/LastMovementsInZone2 エンゲージメントゾーン2で検出された動きのリスト。
このメモリキーは、キー”MovementDetection/MovementInfo”と同様の構造となっている。
EngagementZones/LastMovementsInZone3 エンゲージメントゾーン3で検出された動きのリスト。
このメモリキーは、キー”MovementDetection/MovementInfo”と同様の構造となっている。
EngagementZones/PeopleInZone1 エンゲージメントゾーン1で検出された人物IDのリスト。
EngagementZones/PeopleInZone2 エンゲージメントゾーン2で検出された人物IDのリスト。
EngagementZones/PeopleInZone3 エンゲージメントゾーン3で検出された人物IDのリスト。
footContact 一つの脚部が接地している場合に1.0fを返す。
leftFootContact 左脚部が接地している場合に1.0fを返す。
leftFootTotalWeight 左脚部にかかる総重量をkg単位で返す。
MovementDetection/MovementInfo 直近で検出された動きの情報。
PeoplePerception/Person/<ID>/AgeProperties 当該人物の推定年齢を”[(年齢), (信頼度)]”のフォーマットで返す。
年齢は0~75の範囲、信頼度は0~1の範囲に限定される。
PeoplePerception/Person/<ID>/AnglesYawPitch 当該人物の形状上部の、ロボットの胴体に対するヨー(水平角)とピッチ(俯仰角)の角度(ラジアン値)。
PeoplePerception/Person/<ID>/Distance ロボットカメラと当該人物の間の距離(m)。
PeoplePerception/Person/<ID>/EngagementZone 当該人物のエンゲージメントゾーンのID。(未知の場合は0)
PeoplePerception/Person/<ID>/ExpressionProperties 当該人物の表情の推定。
関連データは5つの感情(普通・喜び・驚き・怒り・悲しみ)の検出スコアを含む配列となる。
各スコアは0~1の範囲をとり、人物が対応する各感情である確率を表す。
検出に失敗した場合を除き、5つの値全てを合計すると1となる。
(検出失敗時は5つの値全てに0が設定される。)
PeoplePerception/Person/<ID>/EyeOpeningDegree 当該人物の両目の開き具合を”[(左目), (右目)]”のフォーマットで返す。
双方の値は0~1の範囲をとる。(0が目を開けている状態、1が目を閉じている状態)
PeoplePerception/Person/<ID>/GazeDirection 当該人物の視線の方向を”[(ヨー), (ピッチ)]”のフォーマットのラジアン値で返す。
視線方向は顔の面に対して計算される。
PeoplePerception/Person/<ID>/GenderProperties 当該人物の推定性別を”[(性別), (信頼度)]”のフォーマットで返す。
性別は女性なら0、男性なら1となり、信頼度は0~1の範囲となる。
PeoplePerception/Person/<ID>/HeadAngles 当該人物の頭の向きを3軸(ヨー・ピッチ・ロール)によるラジアン値で返す。
PeoplePerception/Person/<ID>/IsFaceDetected 当該人物の顔が検出されたか否か。尚、一度も顔認証をされたことのない人物に対しては、このキーがメモリ上に作成されない可能性がある。
PeoplePerception/Person/<ID>/IsLookingAtRobot 当該人物がロボットを見ているか否か。
PeoplePerception/Person/<ID>/IsSitting 当該人物の姿勢。
0が立っている状態、1が座っている状態、2は未知の姿勢。
PeoplePerception/Person/<ID>/IsVisible 当該人物がロボットから見えるか否か。
PeoplePerception/Person/<ID>/IsWaving 当該人物がロボットに手を振っているか否か。
手振りに関するより詳細な情報については、IsWavingLeft・IsWavingRight・IsWavingCenterの3つのメモリキーを参照。
PeoplePerception/Person/<ID>/IsWavingCenter 当該人物の体の前方で何らかの動き(例えば手を振る等)が検出された場合、trueを返す。
尚、当該人物がどちらの手を使ったかを検出することはできない。
PeoplePerception/Person/<ID>/IsWavingLeft 当該人物の体の左側で何らかの動き(例えば手を振る等)が検出された場合、trueを返す。
PeoplePerception/Person/<ID>/IsWavingRight 当該人物の体の右側で何らかの動き(例えば手を振る等)が検出された場合、trueを返す。
PeoplePerception/Person/<ID>/LookingAtRobotScore 当該人物がロボットを見ている度合いを信頼度(0~1の範囲)のスコアで返す。
PeoplePerception/Person/<ID>/NotSeenSince 当該人物が直近で検出されてからの経過時間(秒)。
PeoplePerception/Person/<ID>/PositionInRobotFrame FRAME_ROBOT空間における、当該人物の3D頭部位置。
PeoplePerception/Person/<ID>/PositionInTorsoFrame FRAME_TORSO空間における、当該人物の3D頭部位置。
PeoplePerception/Person/<ID>/PositionInWorldFrame FRAME_WORLD空間における、当該人物の3D頭部位置。
PeoplePerception/Person/<ID>/PresentSince 当該人物が最初に検出されてからの経過時間(秒)。
PeoplePerception/Person/<ID>/RealHeight 当該人物の推定身長をメートル単位で返す。
この値は、時間経過毎に最大の検出値を計算する。
PeoplePerception/Person/<ID>/ShirtColor 当該人物の服装の原色。この値は、「黒」「灰」「白」「赤」「橙」「黄」「緑」「青」「紫」のいずれかとなる。
PeoplePerception/Person/<ID>/ShirtColorHSV 当該人物の服装の原色をHSV色空間による値で返す。
H(色相)は0~360の範囲、S(彩度)は0~1の範囲、V(明度)は0~1の範囲で表される。
PeoplePerception/Person/<ID>/SmileProperties 当該人物の笑顔度の推定値を”[(笑顔度), (信頼度)]”のフォーマットで返す。
笑顔度は0~1の浮動小数点数で表され、0は「笑っていない」状態、1は「大笑い」を表す。
また、信頼度は0~1の範囲となる。
rightFootContact 右脚部が接地している場合に1.0fを返す。
rightFootTotalWeight 右脚部にかかる総重量をキログラム単位で返す。
robotPose 現在の姿勢を浮動小数点数(整数変換)で表す。
ALRobotPoseProxy::getPoseNames()を使用することで該当する姿勢の名称を判別できる)
※非推奨 → ALRobotPostureモジュールで代替
robotPoseSince 現在の姿勢が検出されてからの経過時間(秒)を表す浮動小数点値。
※非推奨 → ALRobotPostureモジュールで代替
Segmentation3D/BlobsList セグメンテーション後のブロブのリスト。
Segmentation3D/TopOfTrackedBlob 追跡中のブロブに関する情報。
UserSession/OpenSessions 現在開始されている全ユーザセッションのユーザセッションIDのリスト。
VisualSpaceHistory/VisualGrid/Data タイムスタンプ付きの頭部向き情報(ヨー・ピッチ・タイムスタンプ)を含むビジュアルグリッドデータ。
ALVisualSpaceHistoryで計算された値?

以上です。
公式ドキュメントを翻訳しただけではニュアンスが良く分からないものもある為、
できることなら各メモリキーについても実際の値を含めて確認しておきたいですね。

弊社ではPepperのアプリケーション開発を行っています。
詳しくはこちらをご参照ください。

contact

ご相談・ご質問等ございましたら、お気軽にお問い合わせください。

翻訳