【opencv450-目标检测】coco数据集yolo4-tiny预训练模型加载测试

该代码示例展示了如何在C++中运用OpenCV库进行目标检测。通过加载数据集,初始化模型并检测图像,程序将输出检测结果并保存到结果图片中。此过程涉及到图像读取、尺寸调整以及检测模型的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 

识别效果

控制台主程序:

#include "Detection.h"
#include <iostream>

using namespace std;
using namespace cv;
using namespace dnn;

void TestDetection()
{
	std::vector<cv::String> files;
	glob("./data", files);

	for (size_t i = 0; i < files.size(); i++)
	{
		Mat img = imread(files[i]);
		cout << "width: " << img.cols << endl;
		cout << "height: " << img.rows << endl;
		Detection detection = Detection();
		detection.Initialize(img.cols, img.rows);
		detection.Detecting(img);
		string save_path = files[i].substr(0, files[i].rfind(".")) + "result.jpg";
		imwrite(save_path, detection.GetFrame());
		//detection.~Detection();
	}
	//waitKey();
	return;
	//string image_path = "./data/1.bmp";
	//string save_path = "./data/1.jpg";
	//string image_path = "./data/test.jpg";
	//string save_path = "./data/testresult.jpg";
	//Mat img = imread(image_path);
	//cout << "width: " << img.cols << endl;
	//cout << "height: " << img.rows << endl;

	/*Detection detection = Detection();
	detection.Initialize(img.cols, img.rows);
	detection.Detecting(img);
	imwrite(save_path, detection.GetFrame());*/
	//return;
}

int main()
{
	TestDetection();
	return 0;
}

 

### 使用YOLOv-CLS框架训练自定义数据集 #### 准备环境 为了使用YOLOv-CLS框架训练自定义数据集,首先需要准备合适的开发环境。通常建议在Ubuntu系统上操作,因为大多数深度学习框架在此类Linux发行版上有更好的支持[^1]。 #### 安装依赖库 尽管Darknet框架本身易于安装且几乎没有外部依赖项,但在使用YOLOv-CLS之前可能仍需安装一些必要的Python包和其他工具链来辅助整个流程。这包括但不限于OpenCV、NumPy等常用库以及CUDA Toolkit如果打算利用GPU加速的话。 #### 获取并编译源码 下载YOLOv-CLS项目的官方仓库到本地计算机,并按照README文档指示完成Makefile配置与编译过程。对于某些特定版本的YOLO变体如Tiny YOLO, 可能还需要调整Makefile内的选项以启用相应的优化特性。 #### 数据标注与整理 创建一个结构良好的文件夹用于存储图像及其对应的标签信息。每张图片应有一个同名但扩展名为`.txt`的文字档记录其中目标物体的位置坐标及类别编号。这些标注可以通过LabelImg这类图形界面软件轻松实现。 #### 配置参数文件 类似于其他YOLO架构,在开始训练前必须编辑几个重要的设置文件: - **.names**: 列举所有待检测的目标种类名称; - **.data**: 描述项目基本信息,比如路径指向训练集列表(`train`)、验证集列表(`valid`)、类别数(`classes`)等字段; - **.cfg**: 定义神经网络的具体拓扑结构和超参设定,此部分往往最为复杂也最关键[^2]。 针对YOLOv-CLS而言,上述提到的数据描述文件(.data)应该被适当地修改以适应新引入的任务需求。例如,假设正在构建一个多分类器,则应在相应位置指明正确的测试/评估模式而非默认的对象检测方式(eval=coco)。 #### 启动训练进程 一切就绪之后便可通过命令行启动实际的学习环节。一般形式如下所示: ```bash ./darknet detector train cfg/custom_data.data cfg/yolov4-custom.cfg custom.weights -dont_show ``` 这里假定已经准备好预训练权重(custom.weights),它有助于加快收敛速度并提高最终性能表现。如果不具备初始权重则可尝试从头开始训练(-clear flag), 不过这样做会消耗更多时间资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值