カスタム検出モデルのトレーニング
Roboflow、Google Colab、そして独自のデータセットを使用して、Limelight用のカスタム検出モデルを素早くトレーニングすることができます。
必要な手順の概要は以下の通りです:
- 対象物の画像を収集し、アノテーションを付ける
- この文脈での「アノテーション」とは、対象物の周りに境界ボックスを描く作業のことです。これらはすべてRoboflowのWebインターフェースで行うことができます。
- または、Roboflow Universeから公開データセットを選択することもできます
- アノテーション付きデータセットを.tfrecordとしてエクスポートし、Google Driveにアップロードして、Google Colabで無料のトレーニングノートブック を使用します。
- Google Colabを使用すると、クラウド上の強力なGPUを使って無料でニューラルネットワークをトレーニングできます。
チュートリアル:
1. データセット
Limelightトレーニングノートブックは、圧縮された.tfrecordデータセットを必要とします。Roboflowではワンクリックで.tfrecordアーカイブをエクスポートできます。
Roboflowで独自のデータセットを構築するか、Roboflow Universeでアノテーション済みのデータセットを探すことができます。
独自のデータセットを構築する場合は、以下を参考にしてください:
-
データセットの多様性を最大限に高める必要があります。データセットの多様性は、実際にLimelightが配備された後に見ることになる多様性を上回る必要があります。
-
データセットの品質と正確性は非常に重要です。境界ボックスが正確で、単一の規則に従っていることを確認してください。 例えば、部分的に隠れている物体の境界ボックスは、物体の見える部分のみを捉えるようにします。
-
クラスラベルには小文字のみを使用してください
-
クラスラベルの数を最小限に抑えてください
-
Roboflowの拡張機能を活用しますが、それらが意味をなすことを確認してください。例えば、赤と青のボールを検出する場合、拡張データセットで色相を反転させたり大きく変更したりしないようにしてください。
データセットのラベル付けまたは選択が完了したら、Roboflowの「Download Dataset」ボタンを使用してTensorflow TFRecordとしてエクスポートします。このアーカイブをGoogle Driveにアップロードしてください。
2. モデルのトレーニング
カスタム検出器をトレーニングするには、Limelight検出器トレーニングノートブックでGoogle Colabセッションを開始します。
このノートブックではコードの変更は必要ありません。以下の手順に従ってモデルをトレーニングしてください:
セクション1
- 最初のセクションを展開し、最初の3つのコードブロックの左上にある再生ボタンをクリックします。時間を節約するため、最後の「testing」コードブロックはスキップしても構いません。
セクション2
-
2番目のセクションを展開します。最初のブロックの再生ボタンをクリックして、Google DriveフォルダをColabセッションの「Files」ペインにマウントします。画面左側のフォルダボタンをクリックして、ファイルペインを開きます。
-
Google Driveがマウントされたら、「Files」ペインの更新ボタンをクリックします。このセクションの2番目のコードブロックを実行して、すでにアップロードされている.tfrecord.zipファイルをgdriveフォルダから選択します。ファイルを見つけて「select」ボタンをクリックします。
-
次の2つのコードブロックを実行して、TFRecordを解凍し検証します。
セクション3
- セクション3のすべてのコードブロックを実行して、トレーニングの準備をします
セクション4
-
セクション4のすべてのコードブロックを実行して、トレーニングを開始します。
-
トレーニングスクリプトの実行中、ファイルペインとTensorboardを更新して進捗を監視できます。2000ステップごとに新しいチェックポイントが「training_progress」フォルダに表示されます。
-
トレーニングは40000ステップで自動的に停止しますが、このセクションの最後のコードブロックの停止ボタンで任意のポイントで停止 できます。チェックポイントが利用可能である限り、量子化とコンパイルに進むことができます。
セクション5-7
- セクション5のすべてのコードブロックを実行して、ラベルファイルを生成し、モデルを互換性のあるFlatBuffer形式に変換します
- セクション6のすべてのコードブロックを実行して、INT8/8ビット推論用にモデルを量子化します
- セクション7のすべてのコードブロックを実行して、Google CoralとLimelight用にモデルを準備します。最後のコードブロックは時間がかかり、トレーニングされたモデルを.zipファイルとしてダウンロードします。
Limelightへのアップロード
- Colabセッションからアーカイブを解凍します。
- FTCチーム - Limelight3Aをお持ちの場合は、8bit tfliteモデルとlabels.txtをアップロードします。ランタイムエンジンを「coral」から「cpu」に変更する必要があります
- FRCチーム - Google Coralをお持ちの場合は、limelight_neural_detector_coral.tfliteとlabels.txtファイルをLimelightにアップロードします。