カスタム検出モデルのトレーニング
Roboflow、Google Colab、そして自分のデータセットを使用して、Limelight用のカスタム検出モデルを素早くトレーニングすることができます。
以下は、実行する必要のあるステップの概要です:
- 対象物の画像を収集し、アノテーションを付ける。
- この文脈での「アノテーション」とは、対象物の周りにバウンディングボックスを描く作業です。これらはすべてRoboflowのウェブインターフェース内で行うことができます。
- あるいは、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つのコードブロックの左上隅にある再生ボタンをクリックします。時間を節約するために、最後の「テスト」コードブロックはスキップしても構いません。

- 再起動ボタンが表示された場合は、無視してください。

- 次のようなウィンドウが表示された場合は、「キャンセル」をクリックしてください。

セクション1.1
- セクションを展開し、最初のコードブロックを実行して、tfrecord.zipファイルへのGoogle Driveリンクを入力します。Google Driveでtfrecord.zipが「リンクを知っている全員」にアクセス可能であることを確認してください。
セクション2
- 2つのコードブロックを実行して、tfrecord.zipを解凍し解析します。
セクション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をお持ちの場合は、8ビットtfliteモデルとlabels.txtをアップロードしてください。ランタイムエンジンを「coral」から「cpu」に変更する必要があります。
- FRCチーム - Google Coralをお持ちの場合は、limelight_neural_detector_coral.tfliteとlabels.txtファイルをLimelightにアップロードしてください。