Skip to main content

SenseCAP A1101を使用して水道メーターの数字認識モデルをトレーニングする

note

この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

SenseCAP A1101を使用して水道メーターの数字認識モデルをトレーニングする

概要

このWikiでは、特定のアプリケーション向けに独自のメーターモデルをトレーニングし、それを簡単にSenseCAP A1101にデプロイする方法を説明します。それでは始めましょう!

ハードウェア準備

ソフトウェア準備

このWikiでは以下のソフトウェア技術を使用します:

それではソフトウェアをセットアップしましょう。Windows、Linux、Intel Macのソフトウェアセットアップは同じですが、M1/M2 Macの場合は異なります。

tip

SenseCraft Model Assistantとは? Seeed Studio SenseCraft Model Assistantは、組み込みAIに焦点を当てたオープンソースプロジェクトです。OpenMMLabの優れたアルゴリズムを実世界のシナリオ向けに最適化し、実装をよりユーザーフレンドリーにすることで、組み込みデバイスでの推論をより高速かつ正確に実現しています。

Windows、Linux、Intel Mac

  • ステップ1. コンピュータにPythonがインストールされていることを確認します。インストールされていない場合は、こちらのページから最新バージョンのPythonをダウンロードしてインストールしてください。

  • ステップ2. 以下の依存関係をインストールします。

pip3 install libusb1

M1/M2 Mac

  • ステップ1. Homebrewをインストールします。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  • ステップ2. condaをインストールします。
brew install conda
  • ステップ3. libusbをダウンロードします。
wget https://conda.anaconda.org/conda-forge/osx-arm64/libusb-1.0.26-h1c322ee_100.tar.bz2
  • ステップ4. libusbをインストールします。
conda install libusb-1.0.26-h1c322ee_100.tar.bz2
caution

ファームウェアを変更する前に、BootLoaderのバージョンが2.0.0以上であることを確認する必要があります。バージョンが不明な場合は、このセクションに記載されている手順に従ってBootLoaderのバージョンを確認してください。バージョンが2.0.0未満の場合は、このセクションに記載されている手順に従ってBootLoaderを更新してください。

1. 画像データの収集

  • ステップ 1. USB Type-C ケーブルを使用して SenseCAP A1101 を PC に接続します。
  • ステップ 2. ブートボタンをダブルクリックして ブートモード に入ります。

これにより、ファイルエクスプローラーに SENSECAP という新しいストレージドライブが表示されます。

uf2 ファイルのコピーが完了すると、ドライブが消えます。これは、uf2 がモジュールに正常にアップロードされたことを意味します。

  • ステップ 4. この Python スクリプト をコピーして、PC 上で新しく作成した capture_images_script.py という名前のファイルに貼り付けます。

  • ステップ 5. Python スクリプトを実行して画像のキャプチャを開始します。

python3 capture_images_script.py

デフォルトでは、300ms ごとに画像をキャプチャします。これを変更したい場合は、以下の形式でスクリプトを実行できます。

python3 capture_images_script.py --interval <time_in_ms>

例えば、1秒ごとに画像をキャプチャする場合:

python3 capture_images_script.py --interval 1000

上記のスクリプトを実行すると、SenseCAP A1101 は内蔵カメラから連続的に画像をキャプチャし、すべてを save_img という名前のフォルダに保存します。

また、録画中にプレビューウィンドウが開きます。

十分な画像をキャプチャしたら、ターミナルウィンドウをクリックして以下のキーの組み合わせを押してキャプチャプロセスを停止します。

  • Windows: Ctrl + Break
  • Linux: Ctrl + Shift + \
  • Mac: CMD + Shift + \

画像収集後のデバイスファームウェアの変更

データセット用の画像の録画が終了したら、SenseCAP A1101 内のファームウェアを元に戻して、物体検出モデルを再度ロードできるようにする必要があります。以下の手順を進めます。

  • ステップ 1. 前述の手順に従って SenseCAP A1101 を ブートモード にします。

  • ステップ 2. この .uf2 ファイル をデバイスに応じて SENSECAP ドライブにドラッグ&ドロップします。

uf2 ファイルのコピーが完了すると、ドライブが消えます。これは、uf2 がモジュールに正常にアップロードされたことを意味します。

2. RoboFlow を使用したデータセットの生成

RoboFlow はオンラインベースのアノテーションツールです。ここでは、録画した映像を直接 RoboFlow にインポートし、一連の画像としてエクスポートできます。このツールは非常に便利で、データセットを「トレーニング、検証、テスト」に分割するのを助けてくれます。また、ラベル付け後にこれらの画像にさらに処理を追加することも可能です。さらに、ラベル付けされたデータセットを COCO フォーマット に簡単にエクスポートできるため、まさに必要な形式を提供してくれます!

  • ステップ 1. こちらをクリックして RoboFlow アカウントにサインアップします。

  • ステップ 2. Create New Project をクリックしてプロジェクトを開始します。

  • ステップ 3. Project Name を入力し、License (CC BY 4.0)Project type (Object Detection (Bounding Box)) をデフォルトのままにします。What will your model predict? の列にはアノテーショングループ名を入力します。

  • ステップ 4. SenseCAP A1101 を使用してキャプチャした画像をドラッグ&ドロップします。

  • ステップ 5. 画像が処理されたら、Finish Uploading をクリックします。画像がアップロードされるまでしばらく待ちます。
  • ステップ 6. 画像がアップロードされたら、Assign Images をクリックします。
  • ステップ 7. 画像を選択し、数字の周りに矩形ボックスを描画して、ラベルを digits に設定し、ENTER を押します。
  • ステップ 8. 残りの画像についても同じ操作を繰り返します。

  • ステップ 9. データセット内のすべての画像にアノテーションを続けます。

  • ステップ 10. ラベル付けが完了したら、Add images to Dataset をクリックします。

  • ステップ 11. 次に、画像を「Train、Valid、Test」に分割します。データセットが多い場合は 80/20、少ない場合は 85/15 に分割できます。Train は 80 未満にしないよう注意してください。
  • ステップ 12. Generate New Version をクリックします。
  • ステップ 13. 必要に応じて PreprocessingAugmentation を追加できます。ここでは Resize オプションを 192x192 に変更します。

ここでは、画像サイズを192x192に変更します。このサイズを使用してトレーニングを行うことで、トレーニングが高速化されます。そうしない場合、トレーニングプロセス中にすべての画像を192x192に変換する必要があり、CPUリソースを多く消費し、トレーニングプロセスが遅くなります。

  • ステップ14. 次に、残りのデフォルト設定を進めて、Generateをクリックします。
  • ステップ15. Exportをクリックし、FormatCOCOに選択し、show download codeを選択してContinueをクリックします。

これにより、後でGoogle Colabトレーニング内で使用するコードスニペットが生成されます。このウィンドウをバックグラウンドで開いたままにしてください。

Google Colab上でSenseCraft Model Assistantを使用してトレーニング

公開データセットを選択した後、データセットをトレーニングする必要があります。ここでは、Google Colaboratory環境を使用してクラウド上でトレーニングを実行します。さらに、Colab内でRoboflow APIを使用してデータセットを簡単にダウンロードします。

こちらをクリックして、すでに準備されたGoogle Colabワークスペースを開き、ワークスペースに記載されている手順を確認し、コードセルを1つずつ実行してください。

注意: Google Colabでは、ステップ4のコードセル内で、上記で説明したようにRoboflowからコードスニペットを直接コピーできます。

以下の手順を案内します:

  • トレーニング用の環境をセットアップ
  • データセットをダウンロード
  • トレーニングを実行
  • トレーニング済みモデルをダウンロード

3. トレーニング済みモデルをデプロイして推論を実行

次に、トレーニングの最後に取得したmodel-1.uf2をSenseCAP A1101に移動します。

  • ステップ1. 最新バージョンのGoogle ChromeまたはMicrosoft Edgeブラウザをインストールして開きます。

  • ステップ2. USB Type-Cケーブルを使用してSenseCAP A1101をPCに接続します。

  • ステップ3. SenseCAP A1101のブートボタンをダブルクリックして、マスストレージモードに入ります。

これにより、ファイルエクスプローラーにSENSECAPという新しいストレージドライブが表示されます。

  • ステップ4. model-1.uf2ファイルをSENSECAPドライブにドラッグ&ドロップします。

uf2ファイルのコピーが完了すると、ドライブが消えます。これは、uf2がモジュールに正常にアップロードされたことを意味します。

注意: 4つのモデルファイルが準備できている場合は、各モデルを1つずつドラッグ&ドロップできます。最初のモデルをドロップし、コピーが完了するのを待ち、再度ブートモードに入り、次のモデルをドロップする、という手順を繰り返します。SenseCAP A1101に1つのモデル(インデックス1)のみをロードした場合、そのモデルがロードされます。

  • ステップ5. こちらをクリックしてカメラストリームのプレビューウィンドウを開きます。
  • ステップ6. Connectボタンをクリックします。その後、ブラウザにポップアップが表示されます。SenseCAP Vision AI - Pairedを選択し、Connectをクリックします。
  • ステップ7. プレビューウィンドウを使用してリアルタイムの推論結果を確認します!

上記のように、数字が検出され、それらの周りにバウンディングボックスが表示されています。

4. SenseCAP MateでSenseCAP A1101を使用して推論を実行する

ブラウザ上で推論を実行するだけでなく、SenseCAP Mateを使用してモデル推論を実装することもできます。以下の手順で実装を進めます。

  • ステップ 1.  まず、A1101のファームウェアを消去する必要があります。これはerase_model.uf2を使用して実現できます。その後、A1101のファームウェアを最新バージョンにアップグレードし、水道メーターの数字認識モデルをA1101にドロップします。

    ファームウェア: erase_model.uf2SenseCAP-A1101_v02-00.uf2

    モデル: water_meter.uf2pfld_meter.uf2digital_meter.uf2

    注意: water_meterとdigital_meterは、デスクトップ上でモデル名をuser-define6として識別し、APP側ではdigital_meterとして表示されます。pfld_meterで識別されるモデル名はuser-define5であり、APP側ではPoint_meterとして表示されます。ユーザーは展開プロセス中に実際の使用要件に応じてモデルをアップロードする必要があります。

  • ステップ 2.  こちらをクリックしてカメラストリームのプレビューウィンドウを開きます。

  • ステップ 3.  Connectボタンをクリックします。その後、ブラウザにポップアップが表示されます。SenseCAP A1101 - Pairedを選択し、Connectをクリックします。

  • ステップ 4(オプション). モデルでDigital Meterを選択し、アルゴリズムでDigital Meterを選択します。Saveをクリックし、次にInvokeをクリックします。これでプレビューウィンドウを使用してリアルタイムの推論結果を確認できます。
  • ステップ 5. SenseCAP Mateを開き、自分のA1101とペアリングします。上記と同じモデルとアルゴリズムを選択します。その後、Generalをクリックし、下部のDetectをクリックします。
  • ステップ 6. 以下のように、AIプレビューがデジタルメーター認識結果を表示します。

上記の手順を完了した後、以下の4つのステップを通じて自分のA1101をデバイスに追加します。これにより、SenseCAP Mateのようなクラウドプラットフォームを通じて、デバイス識別の結果データをいつでもどこでも確認できます。

リソース

技術サポート & 製品ディスカッション


弊社製品をお選びいただきありがとうございます!お客様が弊社製品をスムーズにご利用いただけるよう、さまざまなサポートをご用意しております。異なる好みやニーズに対応するため、いくつかのコミュニケーションチャネルを提供しています。

Loading Comments...