AI Cloud CODE DeepLearning IBM Cloud Jetson LINE Node Red Python エッジ チャットボット 子供

赤ちゃんをJetson NanoのエッジAIにも見守ってもらう② -赤ちゃん検知AI-

ai baby monitor system

前回の赤ちゃん見守りAIのシステム構想をしたので、その続きです。

最初に、赤ちゃん検知AIを作成しようと思います。

検知は、と顔。

体:特に使わなそうなのと、布団よく被っているので省略
顔:笑う、泣くなど表情検知用

スポンサーリンク

画像取得

学習用の画像を集めるために、Jetsonとカメラをベビーベットに固定して、画像を収集。

ディスプレイで見るより、茶色っぽく保存されていますが、とりあえずこのままデータを集めます。

*追記:少し、ウェイトかけると茶色っぽくなくなりました。カメラに接続してすぐの画像が変な場合はウェイト入れてみてください。

使うAI

AIは2段階で分けます

  •  顔との位置を検出するもの
  •  顔の表情を検出するのもの

OpenCVとかで、顔検出はあると思いますが、好きな方、適した方を選ぶと良いのかと思います。

2段階に分けずに、位置検出時に、顔の表情の分類をするのも良いと思います。

位置検出の学習

概要

顔と体を検出しようと思っていましたが、特に体検出してそのデータを使うこともないので、
顔のみを検出します。

*下記の検出するのに使用した画像は100枚です。

AI作り方

顔1つのみの検出になるので、下記記事参照いただければと思います。

YOLO V2を使ってピーマン検知している記事です。

検出の種類(顔、体など)が2種類以上は、プログラム変更する必要があります。

*YOLOは考え方が難しいので、アルゴリズムの説明はしていません。

顔の表情の学習

概要

顔の表情は、顔を検出して、切り取ってものを集めて学習する。

  • 普通/寝る
  • 泣く
  • 笑う

笑う以外はすぐ集まりそうですね。笑うはおいおい。

泣いているのも、かわいそうなので、少しずつ。

顔部分切り取り方(クリッピング)

YOLOを動かすと、out_boxesという値が取得できるので、この値を使用します。

左上のy,x 右下のy,xを表しています。

次にこの座標データでどのように切り取るかですが、

OpenCVで取得する画像は、[高さ,幅,RGB]の配列のデータになるので、

単純に、高さ、幅の範囲を指定して画像を保存します。

切り取る範囲は、144×144がちょうど良い大きさなので、このサイズとします。

以下サンプル、コードです。

ピーマン検知で使っているpythonファイルとかを使っていますので、Githubにあるファイルが必要になります。

AIの作り方

画像の分類は下記記事で使っているものを使います。

切り取った赤ちゃんの顔の画像をcry、normal、laughなどのフォルダに分けて、
分類できるAIを作ります。

ちゃんと分類できてます。

今後、寝てる、起きてるとかもちゃんと分けていきたいと思います。

モデルの保存

前述の記事ではAIモデルの保存をしていません。

Jetson nanoで動かすには、モデルの保存が必要なので、下記コードで保存します。

ファイル名はなんでも良いです。

学習の精度UP応用

データ数が少ない時に使われる手法です。

顔のデータは144×144のサイズにしているのと、顔の向きはどの向きでも考えられます。

ですので、1つの切り取った顔のデータを読み込む時に、画像を回転させたものも1つのデータとして読み込みます。そうすることで、より精度が上がります。

Jetson Nano 実装

JetsonNanoにはピーマン位置検知の時に使ったものをベースに、以下を追加しています。

  • 検知した顔を切り取り
  • 顔の表情の分類
  • FTPでxserverに転送(後でLINEで写真共有のためのサンプルコード)

コードは下記になります。

画像は一枚のみ取得して、AIで判別させています。

画像一枚でなく、ループすることで、動画でリアルタイムに検知もできると思います。

最後に

これでざっくりですが、赤ちゃんの状態をAIで検知することができるようになりました。

まだ、画像が足りないのと、赤ちゃんの成長に合わせて都度学習させる予定です。

ボーン検知とかでポーズの種類とか色々遊んでみるのも良さそう。

次は、Jetson nanoで泣いているよ!とかいう風に見守っている結果を、LINEで共有できるようにしたいと思います。

細かく、説明できてない部分もあるので、興味があれば気軽に問い合わせください。

-AI, Cloud, CODE, DeepLearning, IBM Cloud, Jetson, LINE, Node Red, Python, エッジ, チャットボット, 子供
-, , ,

© 2020 ひつじ工房 Powered by AFFINGER5