YOLOv9 RKNN C++ 项目使用教程
1. 项目目录结构及介绍
yolov9_rknn_Cplusplus/
├── CMakeLists.txt
├── README.md
├── include/
│ ├── yolov9.h
│ └── utils.h
├── src/
│ ├── main.cpp
│ ├── yolov9.cpp
│ └── utils.cpp
├── models/
│ ├── yolov9.rknn
│ └── yolov9.cfg
├── data/
│ ├── test_image.jpg
│ └── test_video.mp4
├── config/
│ └── config.json
└── build/
目录结构说明
- CMakeLists.txt: CMake 构建文件,用于编译项目。
- README.md: 项目说明文档。
- include/: 存放头文件,包含
yolov9.h和utils.h。 - src/: 存放源代码文件,包含
main.cpp、yolov9.cpp和utils.cpp。 - models/: 存放模型文件,包含
yolov9.rknn和yolov9.cfg。 - data/: 存放测试数据,包含
test_image.jpg和test_video.mp4。 - config/: 存放配置文件,包含
config.json。 - build/: 编译生成的文件存放目录。
2. 项目启动文件介绍
src/main.cpp
main.cpp 是项目的入口文件,负责初始化模型、加载配置、处理输入数据并输出检测结果。
#include <iostream>
#include "yolov9.h"
#include "utils.h"
int main() {
// 初始化模型
YOLOv9 model;
model.init("models/yolov9.rknn", "config/config.json");
// 处理图像
cv::Mat image = cv::imread("data/test_image.jpg");
std::vector<DetectionResult> results = model.detect(image);
// 输出结果
for (const auto& result : results) {
std::cout << "Class: " << result.class_id << ", Confidence: " << result.confidence << std::endl;
}
return 0;
}
主要功能
- 模型初始化: 通过
model.init方法加载模型和配置文件。 - 图像处理: 使用
cv::imread读取测试图像,并通过model.detect方法进行目标检测。 - 结果输出: 遍历检测结果并输出类别和置信度。
3. 项目配置文件介绍
config/config.json
config.json 是项目的配置文件,用于配置模型参数、输入输出路径等。
{
"model_path": "models/yolov9.rknn",
"input_size": [640, 640],
"confidence_threshold": 0.5,
"nms_threshold": 0.4,
"classes": ["person", "car", "bike"]
}
配置项说明
- model_path: 模型文件路径。
- input_size: 输入图像的尺寸,格式为
[width, height]。 - confidence_threshold: 置信度阈值,用于过滤低置信度的检测结果。
- nms_threshold: 非极大值抑制(NMS)阈值,用于去除重叠的检测框。
- classes: 检测目标的类别列表。
通过以上配置文件,可以灵活调整模型的输入输出参数,以适应不同的应用场景。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



