-+

趣味工房 HIRO-G



< JetBotの製作その10  モデルの学習とテスト走行 >


1.モデルの学習

 前回収集した自前の教師データを使って、「JetBot」本体にて衝突回避自動走行モデルの学習とテスト走行に取り掛かります。

 いつものように「JetBot」本体を立上げ、ホストPCのブラウザで「JetBot」本体とホストPCを繋げた後、「Jupyter Notebook」を操作して「collision avoidance」「Train mdel」を選択しますと、写真1のように「Collision Avoidance-Train Model」が表示されます。 このプログラムでは「PyTorch」を使用してディープラーニングの学習が行われます。
 プログラムを進めますと、前回の「Collision Avoidance-DataCollection with controller」で作成した圧縮データの「dataset.zip」(@→が解凍され、次のステップ(写真2)で解凍された「free」と「blocked」データからなる「detaset」フォルダーが作成されます。 

 トレーニングするニューラルネットワークが写真3のように定義され、「torchvision」パケージの「転移学習」のトレーニング済みモデルとして「alexnetモデル」が使用されます。
 次いモデルをGPUへ転送しトレーニングが実行されますが、トレーニングは、写真4のように30エポックのニューラルネットワークをトレーニングし、各エポックの後に最高のパフォーマンスモデルが保存されます。 
 保存されるモデル名は、既存の「best_model.pth」と区別するために「best_model2.pth」(A→としました。 トレーニング終了後に写真5のように「best_model2.pth」(B→が作成されています。


2.テスト走行

 テスト走行は写真6のように、「AI No2-6: JetBotの製作その6 衝突回避走行テスト1」と同じ「Collision Avoidance-Live Demo」を使用しますが、「best_model.pth」の代わりに、今回、学習により作成した「best_model2.pth」を使いますので、予め写真7(C→のように変更します。

 変更後、順次プログラムを実行しますが、5ブロック目のプログラムを実行しますと、写真8のようにカメラの動作画面が表示されます。 この時に画面を右クリックすると、TV画面制御メニューが表示されるので、「Create view for Output」を選択すると、写真9のように別のWindowsTV画面(Output View)が開き、プログラムを進行させてもOutput ViewTV画面はそのままの位置に固定されるので、動画を確認するのに便利です。

8ブロック目までプログラムを実行させた時点で「掃除ロボット型JetBot」が自動走行をスタートさせ、前進(写真10)しました。 しばらく前進しインジケータで「blocked」の状況と判断(写真11)された時点で、衝突を回避するために左折しながら走行しました。
 写真12は、「blocked」の状況と判断された位置の状況で、写真13、写真14は衝突を回避するために左折しながら移動している様子の写真です。 写真15は、衝突を回避し「free」の状態となり石油ストーブの方向へ直進し、石油ストーブを「blocked」と認識した時点の状況写真です。
 写真16〜写真18は石油ストーブとの衝突を回避している様子の写真で、石油ストーブも上手く回避し、その後も障害物を認識し衝突することなく部屋中を自動走行し続けました。

 今回の学習結果では、かなり余裕を持って衝突を回避する動作となりましたが、一応、自前のデータで「JetBot」本体の学習環境を使って学習させ、走行テストまでは実施できました。
 次のステップは、AI No2-7: JetBotの製作その7 今後の進め方と実施手順 」でも触れています「JetBot」本体ではなく「学習用の専用PC」「学習環境」をセットアップして、衝突回避自動走行モデルの学習とテスト走行に向けて作業を進めたいと思います。


 「学習用PC」「学習環境」セットアップ作業の進め方としましては、先ずは、Windowsマシン「Anaconda」をインストールして学習環境を整えたいと思います。
 先の報告の通り、事前調査でも「機械学習用のPC」の構築には、先人の皆さんも苦労されていますので、かなりの苦難が待ち受けていると思われます。 
 Windowsで上手く行けば「Linux専用の学習用PC」の構築にも挑戦してみたいと思いますが、現状の知識では全く先が見通せません、取りあえずは行けるところまでやってみたいと思っています。








to AI No2-9       to AI No2-11

to AI No2-6  

to AI No2-7  

to 新テク・アラカルト








            写真10 自動走行スタート



         写真11 「blocked」と判断された状況




    写真12 「blocked」と判断された位置の状況
        


         写真13 衝突回避の左折走行状況その1




          写真14 衝突回避の左折走行その2




        写真15 石油ストーブを「blocked」と認識



      写真16 石油ストーブとの衝突回避左折走行その1



     写真17 石油ストーブとの衝突回避左折走行その2



     写真18 石油ストーブとの衝突回避左折走行その3


                   
< TREX450 SPORT >




 SDXに続き墜落。


 以下同文。








AI No2-10



JetBotの製作その10 モデルの学習とテスト走行
2022年3月20日


写真1 「Train Model」の選択



写真2 「Creater Detaset instance」



写真3 「Define the neural network」



写真4 「Train the neural network」



写真5 「best_model2.pth」



写真6 「Collision Avoidance-Live Demo」



写真7 「best_model2.pth」への変更



写真8 「カメラ起動」



写真9 「Output View」の固定



??