Skip to content

Mainlst/real-time-bounding-box_Yolo_OpenCV

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

YOLOv4-Tiny リアルタイム物体検出プログラム

このプログラムは、YOLOv4-Tinyを使用してカメラからのリアルタイムビデオストリームで物体検出を行うPythonスクリプトです。

動作環境

  • Python 3.7以上
  • OpenCV 4.5以上
  • NumPy
  • PyInstaller(必要に応じて実行ファイル化する場合)

必要なファイル

以下のファイルがプログラムと同じディレクトリ、または適切なパスに配置されている必要があります:

  1. yolov4-tiny.weights - YOLOv4-Tinyの学習済み重みファイル
  2. yolov4-tiny.cfg - YOLOv4-Tinyの設定ファイル
  3. coco.names - COCOデータセットのクラス名が記載されたファイル

インストール方法

  1. 必要なライブラリをインストールしてください。
    pip install opencv-python numpy
  2. 必要なYOLOファイル(weights, cfg, names)をダウンロードし、適切な場所に配置してください。

実行方法

スクリプトを実行してカメラ映像のリアルタイム物体検出を開始します:

python detect.py

終了方法

  • ウィンドウが開いたら、qキーを押してプログラムを終了してください。

プログラムの動作

  1. リソースパスの取得

    • resource_path 関数を使用して、PyInstaller環境下でも正確なファイルパスを取得します。
  2. YOLOモデルの読み込み

    • yolov4-tiny.cfgyolov4-tiny.weights をロードし、DNNモデルを初期化します。
  3. クラス名の読み込み

    • coco.names からクラス名を読み込み、物体検出結果にラベルを付与します。
  4. リアルタイムビデオストリームの処理

    • カメラからフレームを取得し、物体検出を実施します。
    • 高い信頼度(50%以上)の検出結果に基づき、バウンディングボックスとクラスラベルを描画します。
  5. 出力ウィンドウ

    • フレームサイズを1280x960にリサイズし、リアルタイムで検出結果を表示します。

サンプル出力

プログラムはカメラ映像にリアルタイムでバウンディングボックスを描画し、物体のクラス名を表示します。

主な機能

  • 左右反転: フレームを鏡像として処理します。
  • 物体検出: YOLOモデルで物体検出を行い、信頼度の高い結果のみを表示します。
  • リサイズ: 出力フレームは1280x960にリサイズされます。

注意事項

  • ウェイトや設定ファイルがない場合、プログラムは正常に動作しません。
  • カメラデバイスが接続されていない場合もエラーになります。

ライセンス

このプロジェクトは自由に利用可能ですが、YOLOのライセンス規約に従う必要があります。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages