カスタム検出器モデルのトレーニング
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つのコードブロックの左上隅にある再生ボタンをクリックします。最後の「テスト」コードブロックは時間を節約するためにスキップしても構いません。
セクション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セッションからアーカイブを解凍します。limelight_neural_detector_coral.tfliteとlabels.txtファイルをLimelightにアップロードします。