blobs周りをチューニングしたらきびきび動く様になりました。機械学習の学習に煮詰まったので息抜きにチューニング。広角レンズで視野を広げ、動作パターンをいじって、カメラ設定かえたらだいぶ追従性上がってザクとシャアザクぐらい変わった。2019しかし、この動作はOpenMVのfind_blobsという機能で画面内の色を検出しているだけで、いわゆるAIを使った物体検出ではありませんでした。エッジAIチップたるK210を搭載しているのですから、AIを使って追いかけっこをさせたい!ということで、物体検出機能をAI処理に変更してみました。RoverCの制御は概ね次の流れで進行しています。1.UnitV:カメラで画像取得、ターゲットを発見したら画像内でのX方向の位置と見かけの大きさをStickCに報告。速度を決めてRoverCに指令。3.RoverC:StickC様のいいなり。Stick様の言う通り動けるように、ホイールの回転方向を制御。今回は1.の部分のターゲット認識をAIで行います。detectionの学習済モデルを流用し、人の顔を認識させ追いかけさせることにしました。IDEのインストールなどが必要です。前回の記事を参考にしてください。(あまり詳しくは書いていませんが)また、M5StickVについてもRover制御用コードを書きこんでおきます。前回記事の通りでOKです。学習済モデルのインストール今回はUnitVのdemo用学習済モデルを使用します。私も勉強中なので詳しく説明できませんが、画像を喰わせるとターゲットの座標を吐きだしてくれる賢い奴です。AIの神髄はこの学習済モデルを如何に上手に作るかとい点にあるようですが、私にはまだ難しいので今後の課題としておきます。UnitVやM5StickVで学習済モデルを使う方法は他にも多くの記事が有りますので詳細は割愛しますが、次の記事を参考に学習済モデル'facedetect.kmodel'をUnitVのメモリアドレス'0x280000'番地に書き込みましょう。書きこむには'K-flash.gui'というツールを用いると簡単です。detectionデモとRoverCデモのコードを合体させただけです。プログラムは素人なのでお作法とかテクニック皆無なので公開するのはとても恥ずかしいのですが、こんなコードで動きました。顔認識は色の影響を受けにくいのでauto_gainはonの方が良さそうです。#targetのセンター座標を計算。detectモデルを使って検出及び追跡させた結果が次のtweetです。暗くて見えにくくて済みません。UnitVのエッジAI端末としての面目躍如!!UnitV+M5stickC+RoverCのオブジェクト検出方法を顔検出に変更できた。動画ではスマホにおっさんの顔写真を映して、UnitVに検出させてる。従来のimg.find_blobs()による色検出よりも時間がかかり、検出精度も低いので、Rover側も慎重な動作に改めている。detectモデルに変更するだけですいすい追跡してくれるはずでしたが、そうそううまい話があるわけも無く。残念ながら顔認識は色認識ほど認識精度が良く無く、一度見つけた顔もすぐ見失ってしまいます。(色認識では、ターゲットを、見つけやすい自発光オブジェクトにしたチート仕様にしたことも一因ですが。)tweetの例では、すぐに見失ってしまう理由として次の仮説を立て、Roverの動作パターンを修正しています。1.顔認識の精度が悪い・・・学習モデルの改良は(私には)難しい。2.顔認識の速度が遅い・・・そんなの改良できない。(カメラを変えるとちょっとは早くなる)3.移動により画像が流れたり振動でブレる・・・Roverをゆっくり動かす。時々停止して画像のブレを無くす。見失ったらその場で立ち止まってもう一度良く見る。色検出の際は、カメラに広角レンズを取り付ける事で視認範囲を広げる事が出来ましたが、顔検出の際は逆効果です。広角レンズはマイナス倍率となって、同じ距離のターゲットでもより小さく見えてしまいます。画素数の低下は検出可能距離の低下につながりますので、ov2640の標準レンズの方が認識率があがります。blobsほど精度よく(連続的に、安定して)検出し続けてくれませんでした。細かい考察は後にして、とにかく顔を追いかけさせたい、おもちゃは動かしてナンボ。言う事で、M5StickCのコードを次のように修正しています。修正部分はloop()内のみです。//探索時のローテーション運動の継続時間(msec)。面積が閾値以上だと十分近づいたと判断して停止。//回転方向を最後にターゲットを見つけた方向に変更する。//ターゲットたった今見失ったら1秒停止(その間にブレの無い画像を取得して再判定する。//ターゲットを見失っている間はその場で回転して探索。}}まとめこれで念願の初AIが達成できました。モジュール使ってるだけなのでAI搭載デジカメ使ってるのと大差ないかもしれませんが、AIしてる実感は得られました。次の目標はオリジナルの学習済モデル作成かなぁ。最近は現場仕事が減ってきてものづくり成分が不足中です。upLoginユーザーは見つかりませんでした。