ロボット【Pepper(ペッパー)】認識している人の目が開いてるか閉じてるかの検出(NAOqiAPI)

こんにちわ~♪

今日は、昨日言った通り昨日紹介したメモリイベントと目を閉じてるか目を開けてるかを判定するNAOqiAPIを組み合わせて作った簡単なサンプルを紹介したいと思います(*^ω^*)/

昨日の記事を見たいって物好きな方はコチラからどうぞw

まずroot画像はこんな感じです。

test_openEyes

で、peopleOpenEyesボックスの中身が以下になります。

test_openEyes2

で、肝心のこのボックスのソースを今から紹介します。


 

def onLoad(self):

pass

def onUnload(self):

pass

def onInput_onStart(self):

ids = ALMemory.getData("PeoplePerception/PeopleList")

mes = ""

if len(ids) != 0:

for id in ids:

try:

eyes = ALMemory.getData("PeoplePerception/Person/" + str(id) + "/EyeOpeningDegree")

eye = (eyes[0] + eyes[1]) / 2

self.logger.info(str(eyes))

self.logger.info(str(eye))

if eye > 0.5:

mes = "目、空いてるよね?"

elif eye < 0.3:

mes = "目、つぶらないでー?"

else:

mes = "目、半開きになってない?"

except Exception as e:

mes = str(e)

self.onStopped(str(mes))

def onInput_onStop(self):

self.onUnload()

self.onStopped()

 


以上です。

使ってるAPIはALMemoryです。

ALMemoryから”PeoplePerception/Person/id/EyeOpeningDegree”の情報を読み込んでます。

戻り値は0.0~1.0で、両目分のデータを片目ずつ配列で返してくれます。

[“0.52365845″,”0.4235489651”]

適当に作りましたがだいたい上記のような戻り値になります。

このプロジェクトを起動してPepper(ペッパー)に認識されると目空いてるよね?とか、目、つぶらないでーとか言ってくれるハズですw

メモリイベントの発生頻度がイマイチですが、目の開閉程度じゃ発生しないのであれば、この使い方自体間違ってるかも??

何か改善点が見つかったらまた載せたいと思います(*^ω^*)/バイバイ

福岡でロボット開発といえば、株式会社システムトランジスタ

(通称シストラ)ロボティクス部d^ω^bからのお知らせでした。

  • このエントリーをはてなブックマークに追加

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください