YOLO V6系列(一) -- 跑通YOLO V6算法
YOLO V6系列(一) – 跑通YOLO V6算法
近期,看到美团视觉发布了YOLO V6算法,从名字看,感觉上是YOLO系列的一个新的里程碑吧,所以好好研究研究~
其实,简单的看了下内部的track和网络架构,感觉这个更像是YOLOX promax版本。话不多说,直接讲如何跑通YOLO V6算法。
一、简介
项目Github代码:YOLO V6算法
YOLOv6-nano 在 COCO val2017 数据集上达到 35.0 mAP,T4 上使用 TensorRT FP16 进行 bs32 推理,达到 1242 FPS,YOLOv6-s 在 COCO val2017 数据集上达到 43.1 mAP,T4 上使用 TensorRT FP16 进行 bs32 推理,达到 520 FPS。
二、训练步骤
项目文件夹(至少从文件夹就能看出来,比YOLO V5简洁多,v5的代码可读性确实不敢恭维0.0):
1.先安装相关的库
git clone https://github.com/meituan/YOLOv6
cd YOLOv6
pip install -r requirements.txt
2.制作自定义数据集
i. 先用LabelImg标注工具进行人工标注,得到xml文件
ii. 转换为txt格式的标签文件,可以参考我之前写的一篇blog:xml2txt脚本
iii. 按照yolo v6指定的数据集存放路径进行存放自定义数据集,如下图所示。我这里为了展示,就随便放了几张示例图。
- 找到
your yolov6 dir/data/dataset.yaml
文件,进行修改
这里,如果你使用coco数据集,记得把这个is_coco
设置为True,我这里使用的是voc格式的数据集,所以就是False。同时,修改自定义数据集的类别数nc
和所有类别名称names
。 - 根据需要,选择模型架构,这里官方提供了6种网络结构。这个我选择的是
your yolov6 dir/configs/yolov6s.py
。
5.修改train.py相关超参数(我这里是随便写的,具体的参数根据自己的需求进行修改)
parser = argparse.ArgumentParser(description='YOLOv6 PyTorch Training', add_help=add_help)parser.add_argument('--data-path', default=r'E:\work\常用模型\YOLOv6-main\data\dataset.yaml', type=str, help='path of dataset') #数据yaml文件路径parser.add_argument('--conf-file', default=r'E:\work\常用模型\YOLOv6-main\configs\yolov6s.py', type=str, help='experiments description file') #选择的网络结构路径parser.add_argument('--img-size', default=640, type=int, help='train, val image size (pixels)') parser.add_argument('--batch-size', default=2, type=int, help='total batch size for all GPUs')parser.add_argument('--epochs', default=3, type=int, help='number of total epochs to run')parser.add_argument('--workers', default=1, type=int, help='number of data loading workers (default: 8)') #数据加载线程数parser.add_argument('--device', default='0', type=str, help='cuda device, i.e. 0 or 0,1,2,3 or cpu')parser.add_argument('--eval-interval', default=1, type=int, help='evaluate at every interval epochs') #设置模型训练多少轮进行一次验证操作parser.add_argument('--eval-final-only', action='store_true', help='only evaluate at the final epoch') #是否使用最终训练的模型权重来验证parser.add_argument('--heavy-eval-range', default=50, type=int,help='evaluating every epoch for last such epochs (can be jointly used with --eval-interval)')parser.add_argument('--check-images', action='store_true', help='check images when initializing datasets') #图片初始化的时候是否进行检查操作parser.add_argument('--check-labels', action='store_true', help='check label files when initializing datasets') #标签初始化的时候是否进行检查操作parser.add_argument('--output-dir', default='../runs/train', type=str, help='path to save outputs')parser.add_argument('--name', default='exp', type=str, help='experiment name, saved to output_dir/name')parser.add_argument('--dist_url', default='env://', type=str, help='url used to set up distributed training')parser.add_argument('--gpu_count', type=int, default=0)parser.add_argument('--local_rank', type=int, default=-1, help='DDP parameter')parser.add_argument('--resume', nargs='?', const=True, default=False, help='resume the most recent training') #是否进行继续训练
6.python tools/train.py
开启训练~
推理步骤
修改tools/infer.py
并运行python tools/infer.py --weights output_dir/name/weights/best_ckpt.pt --source img.jpg --device 0
(具体参数,自己修改)
YOLO V6系列(一) -- 跑通YOLO V6算法相关推荐
- YOLO学习01(跑通yolov5尝试)
目录 一.前期理论学习 二.使用YOLO(复现yolov5) 1.环境搭建 2.认识YOLO代码中的文件并简单运行(detect.py) 3.模型训练(train.py) 一.前期理论学习 绘制思维导 ...
- yolov3网络结构图_目标检测——YOLO V3简介及代码注释(附github代码——已跑通)...
GitHub: liuyuemaicha/PyTorch-YOLOv3github.com 注:该代码fork自eriklindernoren/PyTorch-YOLOv3,该代码相比master分 ...
- 助理执业医师考试全程通(中医) v6.5 是什么
Welcome to my blog! <script language="javascript" src="http://avss.b15.cnwg.cn/cou ...
- yolo 学习系列(八):参考资源
yolo 学习系列(八):参考资源 0 关注博主 xiao__run sum_nap 1 入门准备 1.1 目标检测算法 R-CNN.fast-RCNN.faster-RCNN到yolo.SSD简要 ...
- 大疆 DJI mobile SDK系列详细教程——运行实例代码(跑通大疆官方提供Mobile SDK里的sample code)
大疆 DJI mobile SDK系列详细教程--运行实例代码(跑通大疆官方提供Mobile SDK里的sample code) 文章目录 一.官方文献与资源地址 二.操作步骤 提示:昨天在尝试跑通大 ...
- 安利钻石商务通 2006 v6.2 免费下载
Csdn-Blog <script language="javascript" src="http://www.023rcsc.com/count/count2.a ...
- 助理执业医师考试全程通(临床) v6.8 官方
Welcome to my blog! <script language="javascript" src="http://avss.b15.cnwg.cn/cou ...
- 深度学习和目标检测系列教程 13-300:YOLO 物体检测算法
@Author:Runsen YOLO,是目前速度更快的物体检测算法之一.虽然它不再是最准确的物体检测算法,但当您需要实时检测时,它是一个非常好的选择,而不会损失太多的准确性. YOLO 框架 在本篇 ...
- 跑通Yolov5的一些心得
跑通Yolov5的一些心得 1.文件安装准备(版本要求) #pytorch 1.5.1 #torchvision 0.6.1 #vs2015 conda create -n yolov5 python ...
最新文章
- 万字详解,JDK1.8新特性的Lambda、Stream和日期的使用详解
- 对接第三方平台JAVA接口问题推送和解决
- 人形AI捉迷藏惊煞网友:飞檐走壁纯靠自学,表情丰富还会合作,姚班学霸吴翼参与...
- java的面向对象的四大特征
- 3 域名正则_一个正则表达式怎么会引起线上CPU狂飙?
- 为什么 Go 模块在下游服务抖动恢复后,CPU 占用无法恢复
- 社区 正式发布了跨平台的 CoreWCF 0.2.0
- 拉普拉斯算子属于卷积方法吗_三代图卷积网络理论
- 【推荐论文】基于多视角学习和个性化注意力机制的新闻推荐(附论文下载链接)...
- Ghost Blog
- Linux常用终端命令及扩展(五)
- 20200121每日一句
- JavaSE_day01【Java概述、环境搭建、标识符、变量、基本数据类型】
- windows 7远程桌面和被远程连接电脑启动远程桌面服务
- MR-GMMapping:基于高斯混合模型的通信高效多机器人映射系统
- 工作5年,从年薪10W到年薪100W:会赚钱的人,都懂规划
- js相册图片抖动放大展示效果
- 支付宝扫五福,你扫了吗
- 获取时间戳,以秒,毫秒,微妙为单位
- Java使用Spire.Pdf或Aspose-Words实现Word转换Pdf在Linux服务器上的中文乱码问题