コンテンツにスキップ

Google Colaboratoryを使ったクラウド学習

FaBo JetRacerCloud Version 2.0.7

Jetson Nanoだけでもエッジでの学習はできますが、インターネット環境があればクラウドでも学習はできます。

Google Colaboratory(Google Colab)を使用することでGPUなどのハードウェアなしで使うことができます。 Jupyter NoteBookは初めから用意されており、リッチな環境により学習時間を短縮、画像枚数もより多く扱うことが容易になります。

データの準備

13_anotation.ipynbで作成した教師データのsample001と11_record_camera.ipnbで作成した走行画像のsample001をあらかじめ用意しておきます。

データセットをzipファイルにまとめる

11_record_camera.ipnbで録画した画像データを12_file_manager.ipynbで編集し13_anotation.ipynbで教師データを作り、収集したデータセットをクラウドへアップします。JetsonNanoの14_download_data.ipynbを開いて

データセット(画像データ)を一つのzipファイルにしてGoogle Colaboratoryへのファイルアップロードできるようにします。

タスク(ディレクトリ)をドロップダウンリストから選んで、圧縮したいデータセットフォルダを選択します。

学習用のデータsample001(datasetフォルダのアノテーションで作成されたデータ)を1つのファイルにまとめます。ZIPに圧縮ボタンを押します。

続きまして、テスト用データsample001(cameraフォルダにあるデータ)を1つのファイルにまとめます。

画像ファイル枚数によって終了時間が異なります。処理完了が出るまで待ちましょう。

zip化されたファイル名は、アノテーション済みのdataset、走行録画はcameraがデータセット名に接頭辞がつきます。

dataset_sample_001.zipとcamera_sample_001.zipができます。こちら2つのファイルをお使いのPCにダウンロードします。

Googleのマイドライブへデータセットをアップロードする

作成したzipファイルは、zipフォルダにあります。ダウンロードしたいファイルを右クリックDownloadを選択します。

一旦、お使いのパソコンにダウンロードします。

右クリックでダウンロードします。

Google Colaboratoryを使用する前に、事前にGoogleアカウントが必要です。Googleにログインします。

事前に、Googleドライブ内にworkspace_jetracerという名前の専用のフォルダを作りましょう。

zipファイルをGoogleドライブにアップロードします。

新規ボタンをクリックして、作業フォルダ(workspace_jetracer)を作り、そのフォルダ内にzipファイルをアップロードします。

14_download.ipynbでzipにしたdataset_sample_001.zipとcamera_sample_001.zipをPCからGoogleドライブにアップロードします。

(例)保存先のディレクトリ workspace_jetracer/

Google Colaboratory を使うための準備

Google Colaboratoryにアクセスします。

https://colab.research.google.com/?hl=ja

Google Colaboratoryにようこそ

Google Colaboratoryによる学習

15_train.ipynbにあるリンク先にアクセスします。

https://colab.research.google.com/drive/1GbDrNiosTKSJNOJiCiVgv6V8X-0GDBfW?usp=sharing

下の矢印にあるセルに移動してShift+Enterを実行します。2つのファイルが/content/にコピーされます。

下のコードを実行するとダイアログが表示されます。GoogleDriveへのアクセスを許可します。

今回は学習用のデータセットが1つの場合は、矢印のところに、DATA_ZIP = ["dataset_sample_001.zip"]を追記します。

また、同じセル内で下の矢印のように

1
2
DATA_ZIPS = DATA_ZIP
#DATA_ZIPS = DATA_ZIPS_STRIGHT
と変更する。

実行すると/content/ディレクトリにdatasetフォルダに解凍されるはずです。/content/dataset/sample001/

ファイルの結合、ファイルの枚数を確認します。

データ存在確認

データの結合(データが1つしかないので結合はしません。)

学習を実行します。エポック数はデフォルトで100になっています。状況に合わせて調整してください。30エポック改善が見られなかった場合は、その時のモデルをベストモデルとして、学習をストップして終了とします。

/content/ディレクトリにモデルが保存されます。

学習が完了し!cp /content/cloud_best_model.pth {DATA_FOLDER}を実行するとGoogleドライブにモデルがコピーされます。

モデルが追加されました。

以下を実行されますと作成したモデルがお使いのPCにダウンロードされます。こちらのファイルをJetsonのnotebookアップロードボタンで modelフォルダにアップロードします。

log.txt(実行結果)も保存されます。

lossが低くなるように任意のエポック数に変えて、学習させます。(無料でのご使用の場合は、時間制限があります。ご注意ください。)

検証動画を作成

Googleドライブworkspaceにある画像データ(camaera_sample_001.zip)を使用します。

以下を変更します。

1
CAMERA_DATA_NAME = "camera_sample_001.zip"

Googleドライブからコピーして解凍します。

動画を実行すると作成日時mp4ファイルが作成され自動でPCにダウンロードされます。動画を再生し検証します。動画ファイルが生成され動画が映し出されます。青い丸が推論結果の座標になります。

Googleコラボ上でも確認できます。

出来たモデルの評価を撮影済みの画像を使って評価します。結果が芳しくなかった場合は、データセットを増やしたり、エポック数を増やして再び学習し調整します。

Tip

Google Colaboratoryでの無料でお使いの場合は、GPUの使用時間制限がございます。データセット枚数とエポック数を調整しましょう。

保存した学習済みモデルのファイルをJetson Nanoのmodelディレクトリ(/home/jetson/jetracer/notebooks/model)へアップロードします。

Jetson NanoのJupyter labのアップロードボタンをクリックして、モデルpthファイルを/home/jetson/notebooks/model/へアップロードし16_convert.ipynb(TensorRT)にてモデルの最適化し、 17_run.ipynbにて自動走行します。

Tip

どんどん画像を結合し全体で学習して精度を上げていきましょう。

Tip

コーナリング中に乱れるような推論を極力無くしていきましょう。