Yolov5 C++ および onnxruntime linux ubutnu デプロイメントの実装

yolov5_cpp プロジェクト説明ドキュメント

このプロジェクトは、写真やビデオを処理できる YOLOv5 モデルを使用した物体検出のアプリケーションです。
同時に、LIME アルゴリズム (低照度画像強化) を使用して、入力画像の品質を向上させます。
処理中、このプログラムは、元の入力フレーム、ターゲット検出後のフレーム、および LIME 拡張検出フレームの 3 つのウィンドウを表示します。
C++ YOLO v5 ONNX オブジェクト検出用のランタイム推論コード。

構造体

├── build.sh             # 构建脚本
├── CMakeLists.txt       # CMake构建文件
├── images               # 示例图片和视频文件
├── include              # 头文件
│   ├── cmdline.h        # 命令行解析
│   ├── detector.h       # YOLO检测器定义
│   ├── lime.h           # LIME算法定义
│   ├── utils.h          # 实用工具函数
│   └── visualizer.h     # 可视化工具函数
├── lime                 # LIME算法相关文件
├── models               # 预训练YOLOv5模型和类别名称文件
├── README.md            # 项目说明文档
└── src                  # 源代码文件
    ├── add_fps.cpp      # 添加FPS显示功能
    ├── add_lime.cpp     # 添加LIME功能
    ├── add_thread.cpp   # 添加多线程功能
    ├── detector.cpp     # YOLO检测器实现
    ├── lime.cpp         # LIME算法实现
    ├── main.cpp         # 主程序
    ├── utils.cpp        # 实用工具函数实现
    └── visualizer.cpp   # 可视化工具函数实现

依存関係:

  • OpenCV 4.x
  • ONNXランタイム 1.12.0
  • OS: Windows 10 および Ubuntu 20.04 でテスト済み
  • CUDA 11+ [オプション]

建てる

プロジェクトをビルドして次のコマンドを実行するには

cd yolov5_cpp
./build.sh
cd build

または

mkdir build
cd build
cmake
make

走る

まだ実行可能ファイルを実行していない場合は、実行可能ファイルを実行する前に、PyTorch モデルを ONNX に変換する必要があります。公式チュートリアルを確認してください

On Windows: 実行可能ファイルを実行するには、OpenCV および ONNX ランタイム ライブラリを環境パスに追加し、or必要なすべてのライブラリを実行可能ファイル (onnxruntime.dll および opencv_world.dll) の近くに配置する必要があります。

CLI、 --gpu (オプション) から実行します。

  • -m または --model_path: ONNX モデル ファイルへのパス
  • -c または --class_names: クラス名ファイルへのパス
  • -i または --input: 画像またはビデオ ファイルへのパスを入力します
  • –gpu: (オプション) GPU アクセラレーションを使用します
./build.sh
cd build
./yolov5_cpp -m ../models/yolov5s.onnx -c ../models/coco.names -i ../images/bus.jpg --gpu
# On Windows ./yolo_ort.exe with arguments as above

参考文献

  • YOLO v5 リポジトリ: https://github.com/ultralytics/yolov5
  • YOLOv5 ランタイム スタック リポジトリ: https://github.com/zhiqwang/yolov5-rt-stack
  • ONNXRuntime 推論の例: https://github.com/microsoft/onnxruntime-inference-examples

おすすめ

転載: blog.csdn.net/weixin_42065767/article/details/131157940