2023年のEスポーツ問題におけるレーザーポインターの誤認識 -- K210/Openmv/Raspberry Pi/Jetson nanoを使用して黒い領域でのレーザーポインターのターゲット検出を実現

1 はじめに

1.1 黒い領域でのレーザーペンターゲット検出の背景紹介

ロボットナビゲーション、スマートホーム、自動運転などの多くの応用分野で物体検出技術の需要が高まっています。このブログでは、K210 チップを使用して、黒い領域でのレーザー ポインターのターゲット検出を実現することに焦点を当てます。

黒い領域でのレーザー ポインター オブジェクトの検出は、興味深く、挑戦的な問題です。K210 チップと関連アルゴリズムを使用して、後のアプリケーションのために黒い領域内のレーザー ポインターの位置と姿勢を正確に検出します。

1.2 K210チップの概要と利点

K210 チップは、中国企業 Sipeed によって開発された高性能、低消費電力の AI エッジ コンピューティング チップです。RISC-V アーキテクチャを採用し、強力なコンピューティング機能と豊富な周辺インターフェイスを備えており、組み込み人工知能アプリケーションに特に適しています。

K210 チップの主な利点は次のとおりです。

  • 高性能: K210 チップには、デュアルコア 64 ビット プロセッサと専用のニューラル ネットワーク アクセラレータが搭載されており、高速かつ効率的なニューラル ネットワーク推論を実現できます。
  • 低消費電力:K210チップは高度な低消費電力設計を採用しており、エッジデバイスでの省エネ動作と長期使用を実現できます。
  • 豊富な周辺インターフェイス: K210 チップには、カメラやディスプレイ インターフェイスなどのさまざまな周辺インターフェイスがあり、他のハードウェア デバイスとの接続や対話を容易にします。
  • オープンソースの利点: K210 チップは RISC-V アーキテクチャを使用しており、ハードウェアとソフトウェアの両方がオープンソース コミュニティによってサポートされているため、より柔軟でカスタマイズ可能な開発環境が提供されます。

2. ハードウェアの準備

2.1 K210チップの紹介

K210 チップは、強力なコンピューティング機能と豊富な周辺インターフェイスを備えた高度な人工知能エッジ コンピューティング チップです。黒い領域でのレーザー ポインターのターゲット検出を実現するには、次のハードウェア デバイスを準備する必要があります。

  • K210 開発ボード: Sipeed Maixduino などの K210 チップに基づく開発ボードを選択します。
  • カメラ モジュール: K210 開発ボードと互換性のあるカメラ モジュールを選択します。一般的に使用されるのは OV2640 と GC0328 です。
  • レーザーポインター: 黒い部分にターゲットマークを描くためのレーザーポインターを用意します。

2.2 カメラとレーザーポインターを接続する

物体を検出する前に、カメラとレーザー ポインターを K210 開発ボードに接続する必要があります。

まず、カメラ モジュールを K210 開発ボードのカメラ インターフェイスに挿入します。カメラの向きに注意してしっかり差し込んでください。

次に、レーザー ポインターの電源ケーブルを K210 開発ボードの電源ポートに接続します。レーザー ポインターの仕様と開発ボードのインターフェイスの種類に応じて、直接プラグや Dupont ワイヤー接続など、適切な接続方法を選択してください。

接続が完了したら、すべてのインターフェイス プラグが正しく挿入され、しっかりと固定されていることを確認してください。このようにして、カメラとレーザー ポインターと K210 開発ボードの間のハードウェア接続が完了しました。

次のステップに進む前に、接続をチェックして、緩みや間違った接続がないことを確認することをお勧めします。

3. ソフトウェアの準備

3.1 K210開発環境構築

K210 技術文書

黒い領域でレーザーポインターのターゲット検出を開始するには、K210 開発環境を構築する必要があります。主な手順と要件をいくつか示します。

公式のインストール方法

  • MaixPy IDE をインストールする: M​​aixPy IDE は、K210 チップ用の統合開発環境です。MaixPy IDE は公式 Web サイトからダウンロードしてインストールできます。必ずオペレーティング システムのバージョンを選択し、インストール ウィザードに従ってインストールしてください。

  • kflash_gui をインストールします。 kflash_gui は、ファームウェアを K210 チップにフラッシュするためのグラフィカル ツールです。kflash_gui のソース コードは GitHub で見つけて、指示に従ってインストールできます。

  • ファームウェアのダウンロード: K210 チップで使用されるファームウェアは、MaixPy ファームウェアと呼ばれる MicroPython のブランチです。MaixPy ファームウェアは、公式 Web サイトまたは GitHub リポジトリからダウンロードできます。K210 開発ボードのモデルとハードウェア構成に応じて、正しいファームウェア バージョンを選択してください。ファームウェアのダウンロードアドレス

  • ファームウェアの書き込み: kflash_gui ツールを使用して、ダウンロードした MaixPy ファームウェアを K210 チップに書き込みます。K210 開発ボードをコンピュータに接続し、kflash_gui のガイドに従って正しいポートとファームウェア ファイルを選択し、書き込みプロセスを開始します。

  • ハードウェア デバイスの接続: レーザー ポインター ターゲット検出を実行する前に、カメラやセンサーなどの適切なハードウェア デバイスを接続する必要があります。特定のニーズとハードウェア構成に従って、ハードウェア デバイスが K210 開発ボードに正しく接続されていることを確認してください。

3.2 関連する Python ライブラリをインストールする

レーザー ポインター ターゲット検出を実行する前に、必要な Python ライブラリをいくつかインストールし、画像にマークを付けるための Python をインストールする必要があります。

ラベル付け


   
   
    
    
  1. pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple
  2. pip install lxml -i https://pypi.tuna.tsinghua.edu.cn/simple
  3. pip install PyQt5_tools -i https://pypi.tuna.tsinghua.edu.cn/simple
  4. pip install PyQt5_tools -i https://pypi.tuna.tsinghua.edu.cn/simple

インストールが完了したら、cmdにlabelimg と入力すると、ポップアップ ボックスが labelimg ページとして表示されます。 

 図 1 labelimg の初期インターフェイス

 図 2 labelimg ラベル付けインターフェイス 

4. モデルのトレーニングと最適化

4.1 データの収集と準備

レーザー ポインター オブジェクト検出アルゴリズムの実装を開始する前に、データの取得と準備を行う必要があります。以下に主な手順をいくつか示します。

  • 黒い領域の写真を撮影する: カメラ モジュールを使用して、黒い領域の一連の写真を撮影します。写真内にレーザーポインターで描かれたターゲットマークがあることを確認し、照明と背景の状態の一貫性を制御します。

図3 レーザーポインターで撮影した黒い部分 

  • ターゲット位置をマークする: 収集した画像上にターゲット位置をマークします。画像注釈ツール (LabelImg など) を使用して、ターゲットの境界ボックスに注釈を付け、対応する注釈ファイルを生成できます。

  • トレーニング セットとテスト セットの分割: 収集したデータをトレーニング セットとテスト セットに分割します。通常、データの 80% がトレーニングに使用され、20% がテストに使用されます。

  • データ拡張: トレーニング セットに対してデータ拡張操作を実行して、トレーニング データの多様性を拡張します。例えば、ランダムな回転、反転、拡大縮小、平行移動などの操作が可能です。

上記の手順を完了すると、レーザー ポインター オブジェクト検出アルゴリズムのトレーニングとテストに使用できるデータセットが完成します。

注: データセットを収集する場合、収集されたデータは使用されるサイトの画像と一致している必要があります。例:日中に使用するモデルの場合は日中に撮影し、夜間に使用するモデルの場合は夜間に撮影し、スタジアムで使用するモデルの場合は夜間に撮影します。スタジアムでの写真。収集されるデータの量としては、一般的に 1 つのカテゴリあたり 500 程度です。

注: 画像を収集する場合、画像のサイズは [640, 640] であることが好ましく、小さすぎても大きすぎても認識の精度に影響します。

4.2 モデルの選択

レーザー ポインターのターゲット検出を実現するには、適切なターゲット検出モデルを選択してトレーニングする必要があります。

K210はモデルごとに最適なモデルが異なり、正式モデルではyolov2、yolov3、

yolov4、yolov7、yolovx。これらのモデル、一般的な K210 の場合、トレーニングには yolov3 モデルを使用することをお勧めします。もちろん上位モデルになるほどトレーニング効果は高くなりますが、それは自分の開発ボードがそれを実現できるかどうかにかかっています。

4.3 モデルのトレーニング

オンライントレーニングとローカルトレーニングの2つの方法があります。

K210:

Maixhub モデルのトレーニング - Sipeed Wiki

K210オンライントレーニング公式サイト

Linux のローカル モデル トレーニング - Sipeed Wiki

Windows のローカル トレーニング - Sipeed Wiki

オープンMV:

OpenVINO アプリケーション ケース: エッジ コンピューティング カメラへの YOLO モデルの展開_カメラへのアルゴリズムの展開

https://github.com/SingTown/Traffic-Sign-FOMO/blob/main/README-CN.md
 

ラズベリーパイ:

Raspberry Pi 4B トレーニング yolo モデル

ジェットソンナノ:

https://github.com/SingTown/Traffic-Sign-FOMO/blob/main/README-CN.md

モデルを選択したら、準備されたデータセットを使用してモデルをトレーニングできます。一般に、物体検出モデルをトレーニングする手順は次のとおりです。

  1. データセットの読み込み: トレーニング セットやテスト セットを含む、準備されたデータセットをモデルにインポートします。

  2. モデルの初期化: 選択したモデル アーキテクチャに基づいて空のオブジェクト検出モデルを初期化します。

  3. オプティマイザーの選択: モデルパラメーターを最適化するために、Adam や SGD などの適切なオプティマイザーを選択します。

  4. モデル トレーニング: トレーニング セット データを使用してモデルをトレーニングし、各トレーニング サイクル (エポック) 後にテスト セット データを使用してモデルのパフォーマンスを評価します。

  5. モデルの保存: トレーニング プロセス中に、適切なチェックポイント (チェックポイント) を選択して、トレーニング プロセス中にモデル パラメーターを保存します。

注: トレーニングを使用する場合、通常はパラメーターを変更する必要はありませんが、変更が必要なパラメーターは、トレーニング ラウンド数、認識カテゴリ、GPU の使用有無、モデル ファイル、入力画像サイズです。

上記の手順を完了すると、レーザー ポインター オブジェクト検出モデルを使用できるようになります。

4.4 モデル予測

モデルがトレーニングされた後、トレーニングされたモデルを使用してレーザー ポインターを検出および識別できます。

 K210 識別コード


    
    
     
     
  1. fpioa_managerインポートから*
  2. インポート センサー、画像、液晶、時間
  3. KPUをKPUとしてインポート
  4. task = kpu.load( 0x300000 ) # モデルをロードします
  5. lcd.init(freq= 15000000 )
  6. センサー.リセット()
  7. sensor.set_pixformat(センサー.RGB565)
  8. センサー.set_framesize(センサー.QVGA)
  9. sensor.set_windowing(( 224 , 224 ))
  10. sensor.set_brightness( 2 ) #明るさを設定します(範囲は[-2~2])
  11. #sensor.set_contrast(-1) #コントラストを設定します (範囲は [-2,+2])
  12. #sensor.set_auto_gain(1,2) #カメラの自動ゲイン モードを設定します
  13. sensor.run( 1 ) #画像キャプチャ制御 (1: キャプチャ開始、0: キャプチャ終了)
  14. Clock = time. Clock() #時計オブジェクトを取得する
  15. クラス = [ 'ライト' ]
  16. アンカー = ( 11.223436456.5 )
  17. a = kpu.init_yolo2(task, 0.17 , 0.3 , 5 , anchor) #yolov2 ネットワーク モデルの初期化パラメーターを入力します
  18. #(タスク、0.17、0.3、5、アンカー)それぞれ、kpuネットワークオブジェクト、確率閾値、box_iou閾値、アンカーポイントの数、モデルパラメータと一致するアンカーポイントパラメータ
  19. while ( True ):
  20. Clock.tick() #記録開始時間(ミリ秒)
  21. img = sensor.snapshot() #カメラを使用して写真を撮ります
  22. code = kpu.run_yolo2(task, img) #task は、kpu_load によって返される kpu_net オブジェクトです
  23. #img はセンサーから収集された画像です
  24. #run_yolo2 によって返される値は、kpu_yolo2_find のリストです。
  25. コードの場合 :
  26. コード内のiの場合:
  27. a=img.draw_rectangle(i.rect()) #画像上に四角形を描画します。ここでは、タプルとして返された座標が長方形の枠を外しています。
  28. #検出した画像の4つの座標を返す
  29. a = lcd.display(img) #フレーム化された画像を LCD 画面に表示します
  30. print ( "オブジェクトは:" ,classes[i.classid()]) # 認識されたカテゴリを出力します
  31. print ( "確率は: " , 100.00 *i.value()) # 信頼度を出力します
  32. それ以外の場合 :
  33. a = lcd.display(img) # オブジェクトが認識されない場合は、画像のレンダリングを続行します
  34. a = kpu.deinit(task) #初期化解除。kpu_load は kpu_net オブジェクトを返します

5. 最終的な効果 

 

図4 モデル認識結果

 注: モデル認識の精度は、画像の注釈の品質と画像の数に関係します。

実際、厳格な基準は私たちの無限の可能性を制限することはできません。みんなおいでよ!

1 はじめに

1.1 黒い領域でのレーザーペンターゲット検出の背景紹介

ロボットナビゲーション、スマートホーム、自動運転などの多くの応用分野で物体検出技術の需要が高まっています。このブログでは、K210 チップを使用して、黒い領域でのレーザー ポインターのターゲット検出を実現することに焦点を当てます。

黒い領域でのレーザー ポインター オブジェクトの検出は、興味深く、挑戦的な問題です。K210 チップと関連アルゴリズムを使用して、後のアプリケーションのために黒い領域内のレーザー ポインターの位置と姿勢を正確に検出します。

1.2 K210チップの概要と利点

K210 チップは、中国企業 Sipeed によって開発された高性能、低消費電力の AI エッジ コンピューティング チップです。RISC-V アーキテクチャを採用し、強力なコンピューティング機能と豊富な周辺インターフェイスを備えており、組み込み人工知能アプリケーションに特に適しています。

K210 チップの主な利点は次のとおりです。

  • 高性能: K210 チップには、デュアルコア 64 ビット プロセッサと専用のニューラル ネットワーク アクセラレータが搭載されており、高速かつ効率的なニューラル ネットワーク推論を実現できます。
  • 低消費電力:K210チップは高度な低消費電力設計を採用しており、エッジデバイスでの省エネ動作と長期使用を実現できます。
  • 豊富な周辺インターフェイス: K210 チップには、カメラやディスプレイ インターフェイスなどのさまざまな周辺インターフェイスがあり、他のハードウェア デバイスとの接続や対話を容易にします。
  • オープンソースの利点: K210 チップは RISC-V アーキテクチャを使用しており、ハードウェアとソフトウェアの両方がオープンソース コミュニティによってサポートされているため、より柔軟でカスタマイズ可能な開発環境が提供されます。

2. ハードウェアの準備

2.1 K210チップの紹介

K210 チップは、強力なコンピューティング機能と豊富な周辺インターフェイスを備えた高度な人工知能エッジ コンピューティング チップです。黒い領域でのレーザー ポインターのターゲット検出を実現するには、次のハードウェア デバイスを準備する必要があります。

  • K210 開発ボード: Sipeed Maixduino などの K210 チップに基づく開発ボードを選択します。
  • カメラ モジュール: K210 開発ボードと互換性のあるカメラ モジュールを選択します。一般的に使用されるのは OV2640 と GC0328 です。
  • レーザーポインター: 黒い部分にターゲットマークを描くためのレーザーポインターを用意します。

2.2 カメラとレーザーポインターを接続する

物体を検出する前に、カメラとレーザー ポインターを K210 開発ボードに接続する必要があります。

まず、カメラ モジュールを K210 開発ボードのカメラ インターフェイスに挿入します。カメラの向きに注意してしっかり差し込んでください。

次に、レーザー ポインターの電源ケーブルを K210 開発ボードの電源ポートに接続します。レーザー ポインターの仕様と開発ボードのインターフェイスの種類に応じて、直接プラグや Dupont ワイヤー接続など、適切な接続方法を選択してください。

接続が完了したら、すべてのインターフェイス プラグが正しく挿入され、しっかりと固定されていることを確認してください。このようにして、カメラとレーザー ポインターと K210 開発ボードの間のハードウェア接続が完了しました。

次のステップに進む前に、接続をチェックして、緩みや間違った接続がないことを確認することをお勧めします。

3. ソフトウェアの準備

3.1 K210開発環境構築

K210 技術文書

黒い領域でレーザーポインターのターゲット検出を開始するには、K210 開発環境を構築する必要があります。主な手順と要件をいくつか示します。

公式のインストール方法

  • MaixPy IDE をインストールする: M​​aixPy IDE は、K210 チップ用の統合開発環境です。MaixPy IDE は公式 Web サイトからダウンロードしてインストールできます。必ずオペレーティング システムのバージョンを選択し、インストール ウィザードに従ってインストールしてください。

  • kflash_gui をインストールします。 kflash_gui は、ファームウェアを K210 チップにフラッシュするためのグラフィカル ツールです。kflash_gui のソース コードは GitHub で見つけて、指示に従ってインストールできます。

  • ファームウェアのダウンロード: K210 チップで使用されるファームウェアは、MaixPy ファームウェアと呼ばれる MicroPython のブランチです。MaixPy ファームウェアは、公式 Web サイトまたは GitHub リポジトリからダウンロードできます。K210 開発ボードのモデルとハードウェア構成に応じて、正しいファームウェア バージョンを選択してください。ファームウェアのダウンロードアドレス

  • ファームウェアの書き込み: kflash_gui ツールを使用して、ダウンロードした MaixPy ファームウェアを K210 チップに書き込みます。K210 開発ボードをコンピュータに接続し、kflash_gui のガイドに従って正しいポートとファームウェア ファイルを選択し、書き込みプロセスを開始します。

  • ハードウェア デバイスの接続: レーザー ポインター ターゲット検出を実行する前に、カメラやセンサーなどの適切なハードウェア デバイスを接続する必要があります。特定のニーズとハードウェア構成に従って、ハードウェア デバイスが K210 開発ボードに正しく接続されていることを確認してください。

3.2 関連する Python ライブラリをインストールする

レーザー ポインター ターゲット検出を実行する前に、必要な Python ライブラリをいくつかインストールし、画像にマークを付けるための Python をインストールする必要があります。

ラベル付け


   
   
  
  
  1. pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple
  2. pip install lxml -i https://pypi.tuna.tsinghua.edu.cn/simple
  3. pip install PyQt5_tools -i https://pypi.tuna.tsinghua.edu.cn/simple
  4. pip install PyQt5_tools -i https://pypi.tuna.tsinghua.edu.cn/simple

インストールが完了したら、cmdにlabelimg と入力すると、ポップアップ ボックスが labelimg ページとして表示されます。 

 図 1 labelimg の初期インターフェイス

 図 2 labelimg ラベル付けインターフェイス 

4. モデルのトレーニングと最適化

4.1 データの収集と準備

レーザー ポインター オブジェクト検出アルゴリズムの実装を開始する前に、データの取得と準備を行う必要があります。以下に主な手順をいくつか示します。

  • 黒い領域の写真を撮影する: カメラ モジュールを使用して、黒い領域の一連の写真を撮影します。写真内にレーザーポインターで描かれたターゲットマークがあることを確認し、照明と背景の状態の一貫性を制御します。

図3 レーザーポインターで撮影した黒い部分 

  • ターゲット位置をマークする: 収集した画像上にターゲット位置をマークします。画像注釈ツール (LabelImg など) を使用して、ターゲットの境界ボックスに注釈を付け、対応する注釈ファイルを生成できます。

  • トレーニング セットとテスト セットの分割: 収集したデータをトレーニング セットとテスト セットに分割します。通常、データの 80% がトレーニングに使用され、20% がテストに使用されます。

  • データ拡張: トレーニング セットに対してデータ拡張操作を実行して、トレーニング データの多様性を拡張します。例えば、ランダムな回転、反転、拡大縮小、平行移動などの操作が可能です。

上記の手順を完了すると、レーザー ポインター オブジェクト検出アルゴリズムのトレーニングとテストに使用できるデータセットが完成します。

注: データセットを収集する場合、収集されたデータは使用されるサイトの画像と一致している必要があります。例:日中に使用するモデルの場合は日中に撮影し、夜間に使用するモデルの場合は夜間に撮影し、スタジアムで使用するモデルの場合は夜間に撮影します。スタジアムでの写真。収集されるデータの量としては、一般的に 1 つのカテゴリあたり 500 程度です。

注: 画像を収集する場合、画像のサイズは [640, 640] であることが好ましく、小さすぎても大きすぎても認識の精度に影響します。

4.2 モデルの選択

レーザー ポインターのターゲット検出を実現するには、適切なターゲット検出モデルを選択してトレーニングする必要があります。

K210はモデルごとに最適なモデルが異なり、正式モデルではyolov2、yolov3、

yolov4、yolov7、yolovx。これらのモデル、一般的な K210 の場合、トレーニングには yolov3 モデルを使用することをお勧めします。もちろん上位モデルになるほどトレーニング効果は高くなりますが、それは自分の開発ボードがそれを実現できるかどうかにかかっています。

4.3 モデルのトレーニング

オンライントレーニングとローカルトレーニングの2つの方法があります。

K210:

Maixhub モデルのトレーニング - Sipeed Wiki

K210オンライントレーニング公式サイト

Linux のローカル モデル トレーニング - Sipeed Wiki

Windows のローカル トレーニング - Sipeed Wiki

オープンMV:

OpenVINO アプリケーション ケース: エッジ コンピューティング カメラへの YOLO モデルの展開_カメラへのアルゴリズムの展開

https://github.com/SingTown/Traffic-Sign-FOMO/blob/main/README-CN.md
 

ラズベリーパイ:

Raspberry Pi 4B トレーニング yolo モデル

ジェットソンナノ:

https://github.com/SingTown/Traffic-Sign-FOMO/blob/main/README-CN.md

モデルを選択したら、準備されたデータセットを使用してモデルをトレーニングできます。一般に、物体検出モデルをトレーニングする手順は次のとおりです。

  1. データセットの読み込み: トレーニング セットやテスト セットを含む、準備されたデータセットをモデルにインポートします。

  2. モデルの初期化: 選択したモデル アーキテクチャに基づいて空のオブジェクト検出モデルを初期化します。

  3. オプティマイザーの選択: モデルパラメーターを最適化するために、Adam や SGD などの適切なオプティマイザーを選択します。

  4. モデル トレーニング: トレーニング セット データを使用してモデルをトレーニングし、各トレーニング サイクル (エポック) 後にテスト セット データを使用してモデルのパフォーマンスを評価します。

  5. モデルの保存: トレーニング プロセス中に、適切なチェックポイント (チェックポイント) を選択して、トレーニング プロセス中にモデル パラメーターを保存します。

注: トレーニングを使用する場合、通常はパラメーターを変更する必要はありませんが、変更が必要なパラメーターは、トレーニング ラウンド数、認識カテゴリ、GPU の使用有無、モデル ファイル、入力画像サイズです。

上記の手順を完了すると、レーザー ポインター オブジェクト検出モデルを使用できるようになります。

4.4 モデル予測

モデルがトレーニングされた後、トレーニングされたモデルを使用してレーザー ポインターを検出および識別できます。

 K210 識別コード


    
    
   
   
  1. fpioa_managerインポートから*
  2. インポート センサー、画像、液晶、時間
  3. KPUをKPUとしてインポート
  4. task = kpu.load( 0x300000 ) # モデルをロードします
  5. lcd.init(freq= 15000000 )
  6. センサー.リセット()
  7. sensor.set_pixformat(センサー.RGB565)
  8. センサー.set_framesize(センサー.QVGA)
  9. sensor.set_windowing(( 224 , 224 ))
  10. sensor.set_brightness( 2 ) #明るさを設定します(範囲は[-2~2])
  11. #sensor.set_contrast(-1) #コントラストを設定します (範囲は [-2,+2])
  12. #sensor.set_auto_gain(1,2) #カメラの自動ゲイン モードを設定します
  13. sensor.run( 1 ) #画像キャプチャ制御 (1: キャプチャ開始、0: キャプチャ終了)
  14. Clock = time. Clock() #時計オブジェクトを取得する
  15. クラス = [ 'ライト' ]
  16. アンカー = ( 11.223436456.5 )
  17. a = kpu.init_yolo2(task, 0.17 , 0.3 , 5 , anchor) #yolov2 ネットワーク モデルの初期化パラメーターを入力します
  18. #(タスク、0.17、0.3、5、アンカー)それぞれ、kpuネットワークオブジェクト、確率閾値、box_iou閾値、アンカーポイントの数、モデルパラメータと一致するアンカーポイントパラメータ
  19. while ( True ):
  20. Clock.tick() #記録開始時間(ミリ秒)
  21. img = sensor.snapshot() #カメラを使用して写真を撮ります
  22. code = kpu.run_yolo2(task, img) #task は、kpu_load によって返される kpu_net オブジェクトです
  23. #img はセンサーから収集された画像です
  24. #run_yolo2 によって返される値は、kpu_yolo2_find のリストです。
  25. コードの場合 :
  26. コード内のiの場合:
  27. a=img.draw_rectangle(i.rect()) #画像上に四角形を描画します。ここでは、タプルとして返された座標が長方形の枠を外しています。
  28. #検出した画像の4つの座標を返す
  29. a = lcd.display(img) #フレーム化された画像を LCD 画面に表示します
  30. print ( "オブジェクトは:" ,classes[i.classid()]) # 認識されたカテゴリを出力します
  31. print ( "確率は: " , 100.00 *i.value()) # 信頼度を出力します
  32. それ以外の場合 :
  33. a = lcd.display(img) # オブジェクトが認識されない場合は、画像のレンダリングを続行します
  34. a = kpu.deinit(task) #初期化解除。kpu_load は kpu_net オブジェクトを返します

5. 最終的な効果 

 

図4 モデル認識結果

 注: モデル認識の精度は、画像の注釈の品質と画像の数に関係します。

実際、厳格な基準は私たちの無限の可能性を制限することはできません。みんなおいでよ!

おすすめ

転載: blog.csdn.net/qq_33505204/article/details/132094587