使用yolo11训练无人机视角罂粟检测数据集VOC+YOLO格式3648张1类别步骤和流程
【数据集介绍】注意数据集中存在增强图片主要是旋转增强占据数据量大约一半注意查看图片数据集格式Pascal VOC格式YOLO格式(不包含分割路径的txt文件仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数)3648标注数量(xml文件个数)3648标注数量(txt文件个数)3648标注类别数1所在github仓库firc-dataset标注类别名称:[“yingsu”]每个类别标注的框数yingsu 框数 6066总框数6066每个类别占有图片数yingsu 占有图片数 3648图片分辨率多分辨率图片,如988x988,1280x1280等使用标注工具labelImg标注规则对类别进行画矩形框重要说明数据集没有划分训练验证测试集需自行划分特别声明本数据集不对训练的模型或者权重文件精度作任何保证图片预览标注例子【训练步骤】这里以yolo11训练为例。首先我们获取数据集压缩包7z格式或者zip格式后解压到一个非中文或者有空格路径下面。比如解压到C:\Users\Administrator\Downloads目录下面都是以这个目录演示训练流程。然后我们在数据集data文件夹下面新建一个脚本split.py写入下面代码importosimportshutilimportrandomclassVOCDataSplit(object):def__init__(self):pass defsplit(self,image_dir,label_dir,save_dir,trainval_radio0.9,train_radio0.9,copy_itTrue,need_test_datasetFalse,shuffle_fileTrue):train_images_diros.path.join(save_dir,train,images)train_labels_diros.path.join(save_dir,train,labels)val_images_diros.path.join(save_dir,val,images)val_labels_diros.path.join(save_dir,val,labels)test_images_diros.path.join(save_dir,test,images)test_labels_diros.path.join(save_dir,test,labels)os.makedirs(train_images_dir,exist_okTrue)os.makedirs(train_labels_dir,exist_okTrue)os.makedirs(val_images_dir,exist_okTrue)os.makedirs(val_labels_dir,exist_okTrue)ifneed_test_dataset:os.makedirs(test_images_dir,exist_okTrue)os.makedirs(test_labels_dir,exist_okTrue)files[]forfileinos.listdir(image_dir):iffile.endswith(.jpg):files.append(file)total_countlen(files)print(find {} images.format(total_count))ifshuffle_file:random.shuffle(files)ifneed_test_dataset:test_countint(total_count*(1-trainval_radio))train_countint((total_count-test_count)*train_radio)val_counttotal_count-test_count-train_countelse:train_countint(total_count*train_radio)val_counttotal_count-train_count test_count0print(train{},val{},test{}.format(train_count,val_count,test_count))train_filesfiles[:train_count]val_filesfiles[train_count:train_countval_count]test_filesfiles[train_countval_count:]print(start copy or move train files...)forfileintrain_files:ifcopy_it:shutil.copy(os.path.join(image_dir,file),os.path.join(train_images_dir,file))label_fileos.path.join(label_dir,file[:-3]txt)ifos.path.exists(label_file):shutil.copy(label_file,os.path.join(train_labels_dir,file[:-3]txt))else:shutil.move(os.path.join(image_dir,file),os.path.join(train_images_dir,file))label_fileos.path.join(label_dir,file[:-3]txt)ifos.path.exists(label_file):shutil.move(label_file,os.path.join(train_labels_dir,file[:-3]txt))print(start copy or move val files...)forfileinval_files:ifcopy_it:shutil.copy(os.path.join(image_dir,file),os.path.join(val_images_dir,file))label_fileos.path.join(label_dir,file[:-3]txt)ifos.path.exists(label_file):shutil.copy(label_file,os.path.join(val_labels_dir,file[:-3]txt))else:shutil.move(os.path.join(image_dir,file),os.path.join(val_images_dir,file))label_fileos.path.join(label_dir,file[:-3]txt)ifos.path.exists(label_file):shutil.move(label_file,os.path.join(val_labels_dir,file[:-3]txt))ifneed_test_dataset and test_count0:print(start copy or move test files...)forfileintest_files:ifcopy_it:shutil.copy(os.path.join(image_dir,file),os.path.join(test_images_dir,file))label_fileos.path.join(label_dir,file[:-3]txt)ifos.path.exists(label_file):shutil.copy(label_file,os.path.join(test_labels_dir,file[:-3]txt))else:shutil.move(os.path.join(image_dir,file),os.path.join(test_images_dir,file))label_fileos.path.join(label_dir,file[:-3]txt)ifos.path.exists(label_file):shutil.move(label_file,os.path.join(test_labels_dir,file[:-3]txt))class_fileos.path.join(label_dir,classes.txt)ifos.path.exists(class_file):class_names[]withopen(class_file,r)asf:class_namesf.read().rstrip(\n).split(\n)nclen(class_names)contenttrain: train_images_dir\ncontentval: val_images_dir\nifneed_test_dataset:contenttest: test_images_dir\ncontentnc: str(nc)\ncontentnames:\ncontent\n.join([f {i}: {name}fori,nameinenumerate(class_names)])withopen(os.path.join(save_dir,coco128.yaml),w)asf:f.write(content)print(all done!)if__name____main__:images_dirrC:\Users\Administrator\Downloads\data\JPEGImageslabels_dirrC:\Users\Administrator\Downloads\data\labelssave_dirrC:\Users\Administrator\Downloads\datasetvsVOCDataSplit()vs.split(images_dir,labels_dir,save_dir,trainval_radio0.9,train_radio0.9,copy_itTrue,shuffle_fileTrue,need_test_datasetFalse)注意 images_dirlabels_dirsave_dir根据自己实际情况进行调整。这个split.py脚本功能就是将JPEGImages和labels文件进行自动随机分割成标准yolo训练目录格式。脚本放在data文件夹下面即可然后运行脚本然后在C:\Users\Administrator\Downloads看到有个dataset文件夹生成至此标准训练格式完成了。打开coco128.yaml看到下面类似格式train:C:\Users\Administrator\Downloads\dataset\train\imagesval:C:\Users\Administrator\Downloads\dataset\val\imagesnc:1names:0:yingsu这些都不用修改我们只需要检查一下是不是对的就行。之后就是开始训练了注意训练yolov8模型需要自己提前安装好环境。使用预训练模型开始训练yolo taskdetect modetrainmodelyolo11n.pt datacoco128.yaml epochs100 imgsz640 batch8 workers2参数说明model: 使用的模型类型如 yolo11s.pt小模型、yolo11m.pt中、yolo11l.pt大data: 指定数据配置文件epochs: 训练轮数imgsz: 输入图像尺寸batch: 批量大小根据显存调整workers:指定进程数(windows最好设置0或者1或2,linux可以设置8)训练完成后最佳权重保存路径为runs/detect/train/weights/best.pt如果多次运行命令runs/detect/train2,runs/detect/train3文件夹生成只需要到数字最大文件夹查看就可以找到模型图片预测from ultralytics importYOLO# 加载训练好的模型modelYOLO(runs/detect/train/weights/best.pt)# 图像预测resultsmodel(path_to_your_image.jpg)视频或摄像头预测resultsmodel(path_to_video.mp4)# 视频 #resultsmodel(0)# 摄像头验证集评估yolo taskdetect modeval modelruns/detect/train/weights/best.pt datadata.yaml输出指标图像一般在模型训练后生成文件位置在runs/detect/train/results.png(以下仅仅是示例图并非这个数据集训练真实日志图)上面训练结果图片常用评估参数介绍【常用评估参数介绍】在目标检测任务中评估模型的性能是至关重要的。你提到的几个术语是评估模型性能的常用指标。下面是对这些术语的详细解释Class这通常指的是模型被设计用来检测的目标类别。例如一个模型可能被训练来检测车辆、行人或动物等不同类别的对象。Images表示验证集中的图片数量。验证集是用来评估模型性能的数据集与训练集分开以确保评估结果的公正性。Instances在所有图片中目标对象的总数。这包括了所有类别对象的总和例如如果验证集包含100张图片每张图片平均有5个目标对象则Instances为500。P精确度Precision精确度是模型预测为正样本的实例中真正为正样本的比例。计算公式为Precision TP / (TP FP)其中TP表示真正例True PositivesFP表示假正例False Positives。R召回率Recall召回率是所有真正的正样本中被模型正确预测为正样本的比例。计算公式为Recall TP / (TP FN)其中FN表示假负例False Negatives。mAP50表示在IoU交并比阈值为0.5时的平均精度mean Average Precision。IoU是衡量预测框和真实框重叠程度的指标。mAP是一个综合指标考虑了精确度和召回率用于评估模型在不同召回率水平上的性能。在IoU0.5时如果预测框与真实框的重叠程度达到或超过50%则认为该预测是正确的。mAP50-95表示在IoU从0.5到0.95间隔0.05的范围内模型的平均精度。这是一个更严格的评估标准要求预测框与真实框的重叠程度更高。在目标检测任务中更高的IoU阈值意味着模型需要更准确地定位目标对象。mAP50-95的计算考虑了从宽松到严格的多个IoU阈值因此能够更全面地评估模型的性能。这些指标共同构成了评估目标检测模型性能的重要框架。通过比较不同模型在这些指标上的表现可以判断哪个模型在实际应用中可能更有效。将模型导出为ONNX、TensorRT等格式以用于部署yolo export modelruns/detect/train/weights/best.pt formatonnx支持格式包括onnx, engine, tflite, pb, torchscript 等。经过上面训练可以使用模型做一步部署比如使用onnx模型在嵌入式部署使用engine模型在jetson上deepstream部署使用torchscript模型可以在C上部署等等。

相关新闻

048、双管正激变换器原理

048、双管正激变换器原理

048、双管正激变换器原理 上个月帮朋友救一个项目,48V转12V/20A的电源模块,单管正激拓扑,MOS管和续流二极管烧了一轮又一轮。客户催得紧,朋友急得嘴角起泡。我拿到板子一看,复位绕组和漏感尖峰处理得稀碎,MOS管关断瞬间电压应力直接飙到200V+,管子不炸才怪。后来改成双…

2026/7/23 17:40:51阅读更多 →
openwrt dhcp不分配_虚拟机安装openwrt软路由以x86为例

openwrt dhcp不分配_虚拟机安装openwrt软路由以x86为例

一、安装纯净版可以去官方下载https://openwrt.org/ ,然后安装自己喜欢的插件。二、下载一些大神已经编译好的镜像文件。可以去一些论坛或者github 去搜索下载。大佬提供的好多是img的文件。三、对于img的文件进行安装,需要准备三个工具。 1、IMG写盘…

2026/7/23 17:40:51阅读更多 →
openwrt查看用户连接五元组_无线wifi软路由——小白也能玩转Openwrt

openwrt查看用户连接五元组_无线wifi软路由——小白也能玩转Openwrt

点击上方蓝字关注我们去年上半年我们发了一篇R2S软路由的介绍文章,很受大家欢迎,这款软路由小编还一直在使用。最近小编强迫症发作了,为什么软路由不能拥有无线发射呢?小编仔细查找了R2S的wiki,发现它是支持特定型号的…

2026/7/23 17:40:51阅读更多 →
【Rust自学】7.5. use关键字 Pt.2 :重导入与换国内镜像源教程

【Rust自学】7.5. use关键字 Pt.2 :重导入与换国内镜像源教程

7.5 use关键字 Pt.2 :重导出与换国内镜像源教程 7.5.1. 使用pub use重新导出名称 使用use将路径导入作用域内后,该名称在词法作用域内是私有的。 以 7.4. use关键字 Pt.1:use的使用与as关键字 的代码为例: mod front_of_house…

2026/7/23 18:49:03阅读更多 →
硬件限制下的AI训练场景与优化方案

硬件限制下的AI训练场景与优化方案

一、先明确你的硬件核心限制 配置:i7-4710MQ(4 核 8 线程)+16G DDR3+GTX960M 4G 移动端显存 致命瓶颈:仅 4G 独立显存,移动端 GPU 算力弱、CUDA 最高仅支持 10.2/11.1,新版 PyTorch 不兼容;全量训练极易 OOM 显存溢出。 仅能做小型模型从零训练、轻量大模型 LoRA 微调、…

2026/7/23 18:49:03阅读更多 →
金九银十Java面试1000问:基础/网络/算法/设计模式/多线程全覆盖,面试必刷

金九银十Java面试1000问:基础/网络/算法/设计模式/多线程全覆盖,面试必刷

本来已经在为去大厂工作摩拳擦掌的 Java 朋友,社招又是需要 5 年以上的,今年显得格外艰难: 就业人数高达 874 万!人才竞争加剧!大多数公司的招聘需求缩减!对社招来说,人才招聘要求愈来愈高&…

2026/7/23 18:49:03阅读更多 →
【Rust自学】8.1. Vector

【Rust自学】8.1. Vector

8.1 向量Vector 8.1.0. 本章内容 第八章主要讲的是 Rust 中常见的集合。Rust 提供了很多集合类型的数据结构,这些集合可以包含很多值。但是第八章所讲的集合与数组和元组有所不同。 第八章中的集合是存储在堆内存上而非栈内存上的,这也意味着这些集合…

2026/7/23 18:49:02阅读更多 →
LoongRL技术解析:强化学习驱动的大模型长文本处理方案

LoongRL技术解析:强化学习驱动的大模型长文本处理方案

1. LoongRL技术全景解析:突破大模型长上下文推理的钥匙当我在处理一个涉及200页技术文档的问答任务时,传统大模型的表现让我彻底崩溃——要么丢失关键细节,要么生成完全偏离主题的答案。这正是LoongRL要解决的核心痛点:让AI真正理…

2026/7/23 18:49:02阅读更多 →
《硬盘突然打不开?别慌!专业数据恢复告诉你哪些操作千万别做》

《硬盘突然打不开?别慌!专业数据恢复告诉你哪些操作千万别做》

在日常使用电脑的过程中,很多人都会遇到硬盘突然打不开的情况。可能是双击盘符后长时间无响应,可能是提示无法访问,也可能是直接弹出错误对话框。遇到这种问题,大多数用户第一反应是反复尝试打开、重启电脑、插拔硬盘,…

2026/7/23 18:47:02阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/23 0:56:31阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/23 0:56:31阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 0:56:31阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:00:28阅读更多 →
从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:28阅读更多 →
油泥处理设备哪里能买到

油泥处理设备哪里能买到

油泥处理设备哪里有?这是许多从事油田、炼化、清罐业务的从业者最关心的问题。根据河南三丰环保设备有限公司的行业经验,选购油泥处理设备的核心在于设备能否适配当地环保法规与原料特性,而非单纯看价格。该公司总经理王钦田先生指出&#xf…

2026/7/23 0:00:28阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/22 22:56:18阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/22 18:55:50阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/22 18:55:50阅读更多 →