JetBotのroad_followingを使いやすくする。
この記事について
この記事はAI RC Car アドベントカレンダー17日目の記事です。この記事ではJetBotのroad_followingのデモを実行しやすくするTipsを紹介します。
JetBotのroad_followingのデモ
JetBotの公式リポジトリに置いてあるJetBotのデモはゲームコントローラを使い、ブラウザ上に表示された画像上の座標を入力することでアノテーションを行なっていきます。このままでももちろんデモとして成功します。しかし、ゲームコントローラで画像上の狙った場所にカーソールを持っていくのは至難の業です。さらに、ゲームパッドで入力された座標を逐次Pythonのインタプリタで処理しているため、ブラウザとJetBotが通信を行なっています。そのため、通信環境が著しく悪くなる走行会や展示会場では問題になります。
JetRacerのinteractive_regressionを利用する
interactive_regressionはJetRacer用のPythonノートブックですが、学習させる内容は全くな同じため、JetBotにも利用することができます。interactive_regressionは画像をWEBブラウザ上でのクリックであつけることができるため、簡単に画像のアノテーションを行うことが可能です。さらに学習とバリデーションを同じノートブック上で行えるため、走行前に、コース上で学習が足りていな部分を簡単に見つけることができます。
JetBot向けinteractive_regression
JetBot向けにinteractive_regressionを修正するのはとても簡単にです。JetRacerとの差分はカメラモジュールの呼出部分のみです。カメラオブジェクトの呼びだし箇所を変更すれば大丈夫です。さらに3セル目で呼び出されているfrom jetcam.utils import bgr8_to_jpeg
は不要なため、コメントアウトしておきます。具体的にはオリジナルのinteracitivi_regressionの最初のセルを以下のように書き換えます。
from jetbot import Camera, bgr8_to_jpeg camera = Camera(width=224, height=224) camera.start()
jupyter_clickable_image_widgetをインストールする必要があります。JetBotにログイン後、以下のGitHubリポジトリのREADMEを参照し、インストールを行います。
インストール後はJetRacerと同様にデータ収集と学習を行えば大丈夫です。JetRacerの学習の練習にもなります。
まとめ
Jupyterノートブック上で画像クリックによるアノテーションから学習までできるのは非常に楽で良いです。jupyter_clickable_image_widgetは便利なので、自前のプロジェクトでも積極的に活用していきたいです。