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指定的数据集存放路径进行存放自定义数据集,如下图所示。我这里为了展示,就随便放了几张示例图。

  1. 找到your yolov6 dir/data/dataset.yaml文件,进行修改

    这里,如果你使用coco数据集,记得把这个is_coco设置为True,我这里使用的是voc格式的数据集,所以就是False。同时,修改自定义数据集的类别数nc和所有类别名称names
  2. 根据需要,选择模型架构,这里官方提供了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算法相关推荐

  1. YOLO学习01(跑通yolov5尝试)

    目录 一.前期理论学习 二.使用YOLO(复现yolov5) 1.环境搭建 2.认识YOLO代码中的文件并简单运行(detect.py) 3.模型训练(train.py) 一.前期理论学习 绘制思维导 ...

  2. yolov3网络结构图_目标检测——YOLO V3简介及代码注释(附github代码——已跑通)...

    GitHub: liuyuemaicha/PyTorch-YOLOv3​github.com 注:该代码fork自eriklindernoren/PyTorch-YOLOv3,该代码相比master分 ...

  3. 助理执业医师考试全程通(中医) v6.5 是什么

    Welcome to my blog! <script language="javascript" src="http://avss.b15.cnwg.cn/cou ...

  4. yolo 学习系列(八):参考资源

    yolo 学习系列(八):参考资源 0 关注博主 xiao__run sum_nap 1 入门准备 1.1 目标检测算法 R-CNN.fast-RCNN.faster-RCNN到yolo.SSD简要 ...

  5. 大疆 DJI mobile SDK系列详细教程——运行实例代码(跑通大疆官方提供Mobile SDK里的sample code)

    大疆 DJI mobile SDK系列详细教程--运行实例代码(跑通大疆官方提供Mobile SDK里的sample code) 文章目录 一.官方文献与资源地址 二.操作步骤 提示:昨天在尝试跑通大 ...

  6. 安利钻石商务通 2006 v6.2 免费下载

    Csdn-Blog <script language="javascript" src="http://www.023rcsc.com/count/count2.a ...

  7. 助理执业医师考试全程通(临床) v6.8 官方

    Welcome to my blog! <script language="javascript" src="http://avss.b15.cnwg.cn/cou ...

  8. 深度学习和目标检测系列教程 13-300:YOLO 物体检测算法

    @Author:Runsen YOLO,是目前速度更快的物体检测算法之一.虽然它不再是最准确的物体检测算法,但当您需要实时检测时,它是一个非常好的选择,而不会损失太多的准确性. YOLO 框架 在本篇 ...

  9. 跑通Yolov5的一些心得

    跑通Yolov5的一些心得 1.文件安装准备(版本要求) #pytorch 1.5.1 #torchvision 0.6.1 #vs2015 conda create -n yolov5 python ...

最新文章

  1. 万字详解,JDK1.8新特性的Lambda、Stream和日期的使用详解
  2. 对接第三方平台JAVA接口问题推送和解决
  3. 人形AI捉迷藏惊煞网友:飞檐走壁纯靠自学,表情丰富还会合作,姚班学霸吴翼参与...
  4. java的面向对象的四大特征
  5. 3 域名正则_一个正则表达式怎么会引起线上CPU狂飙?
  6. 为什么 Go 模块在下游服务抖动恢复后,CPU 占用无法恢复
  7. 社区 正式发布了跨平台的 CoreWCF 0.2.0
  8. 拉普拉斯算子属于卷积方法吗_三代图卷积网络理论
  9. 【推荐论文】基于多视角学习和个性化注意力机制的新闻推荐(附论文下载链接)...
  10. Ghost Blog
  11. Linux常用终端命令及扩展(五)
  12. 20200121每日一句
  13. JavaSE_day01【Java概述、环境搭建、标识符、变量、基本数据类型】
  14. windows 7远程桌面和被远程连接电脑启动远程桌面服务
  15. MR-GMMapping:基于高斯混合模型的通信高效多机器人映射系统
  16. 工作5年,从年薪10W到年薪100W:会赚钱的人,都懂规划
  17. js相册图片抖动放大展示效果
  18. 支付宝扫五福,你扫了吗
  19. 获取时间戳,以秒,毫秒,微妙为单位
  20. Java使用Spire.Pdf或Aspose-Words实现Word转换Pdf在Linux服务器上的中文乱码问题

热门文章

  1. 认识路由器与交换机,在常见的企业组网中起什么样的作用呢?
  2. 医学图像分割方法及卷积神经网络在医学图像分割上的应用
  3. Mybatis和MybatisPlus3.4的使用
  4. 视频聊天网站的研究、发展以及趋势(转)
  5. c语言visit函数作用,[求助]二叉树遍历的程序里面的visit函数如何实现
  6. 苹果越狱后必备软件,总有你需要的!11月23日追加14个,支持【iOS4】
  7. 2021.11.17
  8. 如何将IE 11 改为 IE 8
  9. Windows下双显示器截屏方法
  10. vr全景技术开启智能化vr酒店宣传新模式