专栏首页机器学习AI算法工程YOLODet最新算法的目标检测开发套件,优化到部署

YOLODet最新算法的目标检测开发套件,优化到部署

YOLODet-PyTorch是端到端基于pytorch框架复现yolo最新算法的目标检测开发套件,旨在帮助开发者更快更好地完成检测模型的训练、精度速度优化到部署全流程。YOLODet-PyTorch以模块化的设计实现了多种主流YOLO目标检测算法,并且提供了丰富的数据增强、网络组件、损失函数等模块。

目前检测库下模型均要求使用PyTorch 1.5及以上版本或适当的develop版本。


代码 获取方式:

分享本文到朋友圈

关注微信公众号 datayx 然后回复 目标检测 即可获取。

YOLODet简介

特性:

  • 模型丰富: YOLODet提供了丰富的模型,涵盖最新YOLO检测算法的复现,包含YOLOv5、YOLOv4、PP-YOLO、YOLOv3等YOLO系列目标检测算法。
  • 高灵活度: YOLODet通过模块化设计来解耦各个组件,基于配置文件可以轻松地搭建各种检测模型。

支持的模型:

  • YOLOv5(s,m,l,x)
  • YOLOv4(标准版,sam版)
  • PP-YOLO
  • YOLOv3

更多的Backone:

  • DarkNet
  • CSPDarkNet
  • ResNet
  • YOLOv5Darknet

数据增强方法:

  • Mosaic
  • MixUp
  • Resize
  • LetterBox
  • RandomCrop
  • RandomFlip
  • RandomHSV
  • RandomBlur
  • RandomNoise
  • RandomAffine
  • RandomTranslation
  • Normalize
  • ImageToTensor

损失函数支持:

  • bbox loss (IOU,GIOU,DIOU,CIOU)
  • confidence loss(YOLOv4,YOLOv5,PP-YOLO)
  • IOU_Aware_Loss(PP-YOLO)
  • FocalLoss

训练技巧支持:

  • 指数移动平均
  • 预热
  • 梯度剪切
  • 梯度累计更新
  • 多尺度训练
  • 学习率调整:Fixed,Step,Exp,Poly,Inv,Consine
  • Label Smooth
  • 强烈说明 通过实验对比发现YOLOv5的正负样本划分定义和损失函数定义,使得模型收敛速度较快,远超原yolo系列对正负样本的划分和损失定义。对于如果卡资源不充足,想在短时间内收敛模型,可采用yolov5的正负样本划分和损失函数定义,相关参数为yolo_loss_type=yolov5
  • 额外补充 YOLOv5对于正样本的定义:在不同尺度下只要真框和给定锚框的的比值在4倍以内,该锚框即可负责预测该真值框。并根据gx,gy在grid中心点位置的偏移量会额外新增两个grid坐标来预测。通过这一系列操作,增加了正样本数量,加速模型收敛速度。而YOLO原系列对于真框,在不同尺度下只有在该尺度下IOU交并集最大的锚框负责预测该真框,其他锚框不负责,所以由于较少的正样本量,模型收敛速度较慢。

扩展特性:

  • Group Norm
  • Modulated Deformable Convolution
  • Focus
  • Spatial Pyramid Pooling
  • FPN-PAN
  • coord conv
  • drop block
  • SAM

代码结构说明

安装说明

安装和数据集准备请参考 INSTALL.md 。

要求

  • python3.7 +(不支持python2)
  • PyTorch 1.5或更高版本
  • CUDA 10.0或更高
  • NCCL 2
  • GCC(G++) 4.9或以上

快速开始

请参阅 GETTING_STARTED.md 了解YOLODet的基本用法。

模型训练

YOLODetection提供执行单卡多卡的训练。所有输出(日志文件和检查点)将保存到工作目录中。

这是由配置文件中的work_dir指定的。

*Important*: 配置文件的默认学习率是1个gpu和小批次大小为2,累计到64个批次大小进行梯度更新。

根据余弦败火规则,如果你使用不同的GPU或每个GPU的图像,你需要设置与批大小成比例的学习率,配置文件中的batch_sizesubdivisions确定。

使用GPU训练

可选参数:

  • --validate(强烈建议):在训练epoch期间每一次k(默认值是1,可以像这样修改this)来执行评估。
  • --work_dir ${WORK_DIR}:覆盖配置文件中指定的工作目录。
  • --device ${device}: 指定device训练, 0 or 0,1,2,3 or cpu,默认全部使用。
  • --resume_from ${CHECKPOINT_FILE}:从以前训练的checkpoints文件恢复训练。
  • --multi-scale:多尺度缩放,尺寸范围为训练图片尺寸+/- 50%

resume_fromload_from的不同:

resume_from加载模型权重和优化器状态,并且训练也从指定的检查点继续训练。它通常用于恢复意外中断的训练。 load_from只加载模型权重,并且训练从epoch 0开始。它通常用于微调。

用于测试图像的高级api接口

下面是一个构建模型和测试给定图像的示例。

预训练模型

YOLO

  • 重要说明: 由于本人资源有限,只有单张1080Ti的显卡可供训练,完整训练完训练周期较长。为了说明本框架可训练,推断和测试。本次给出的预训练模型只是训练24个epoch的模型,损失值还在下降中,未训练充分,仅供大家参考。如有条件的开发者可完成本次训练,并希望你能把训练好的预训练模型提供出来,供大家使用。我也会在重要位置进行声明和感谢。
  • 效果图
  • YOLOv5-l:

本文分享自微信公众号 - 机器学习AI算法工程(datayx)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-04-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 飞桨端到端开发套件揭秘:低成本开发的四大秘密武器

    11 月 5 日,在 Wave Summit+2019 深度学习开发者峰会上,飞桨全新发布和重要升级了最新的 21 项进展,在深度学习开发者社区引起了巨大的反响...

    量子位
  • 算法SOTA、功能全面、性能最佳,PaddleDetection 2.0重磅升级!

    目标检测技术作为视觉技术届的顶梁柱,不仅单兵作战在人脸、车辆、商品、缺陷检测等场景有出色的表现,也是文本识别,图像检索、视频分析、目标跟踪等复合技术的核心模块,...

    用户1386409
  • YOLOv3 精度再次提高 4.3%,训练提速 40%!PaddleDetection全面升级

    喜欢看科幻电影的朋友一定会对这样的画面印象深刻:钢铁侠去解救被恐怖分子挟持的人质时,他的战衣可以快速的从人群之中识别持有武器的恐怖分子,并确定恐怖分子的位置,然...

    CV君
  • 超越YOLOv5的PP-YOLOv2和1.3M超轻量PP-YOLO Tiny都来了!

    单阶段目标检测界的扛把子 --YOLO,以其 「又快又好的效果」 在学术及产业界全面风靡。自 20 年下半年 YOLOv4、YOLOv5、PP-YOLO、YOL...

    机器之心
  • 用乐高积木实现跨镜跟踪算法 | PPSIG诚邀你加入

    飞桨社区特殊兴趣小组(PPSIG)旨在通过开放的社区形式与全球的开发者共同构建一个开放、多元和架构包容的生态体系,以开源理念和技术实践为驱动,让全球开发者更紧密...

    用户1386409
  • 视觉算法工业部署及优化学习路线分享

    最近这个问题在知乎比较火,这里将本公众号两个作者的回答以文章的方式分享出来,希望对感兴趣的读者有帮助。

    BBuf
  • 超越YOLOv5的PP-YOLOv2和1.3M超轻量PP-YOLO Tiny都来了!

    单阶段目标检测界的扛把子--YOLO,以其 「又快又好的效果」 在学术及产业界全面风靡。自 20 年下半年 YOLOv4、YOLOv5、PP-YOLO、YOLO...

    用户1386409
  • 15分钟实现AI端计算模型训练、加速与部署 | 百度EasyDL公开课

    端计算模型目前已应用到各行业的AI落地实践中,如部署在野外气象观测点用于环境监测,以及响应垃圾分类政策用来打造智能垃圾桶等等。

    量子位
  • 我用PaddleDetection做了一个“交通违章逆行车辆”自动检测系统

    对于目前绝大多数的交通监控而言,依旧是沿用传统的管理模式。随着国民经济的日益发展和交通产业需求的日益增长,智能交通视觉系统的发展将趋向用机器视觉下的图像处理技术...

    用户1386409
  • YOLOv3比原作高10个点,飞桨更新至73个视觉算法、203个预训练模型

    随着防控措施效果显现,新冠疫情在全国范围内已经得到了控制。当我们走进地铁与车站,甚至很多小区与超市,都会看到口罩人脸检测系统与红外测温系统,这些都是人工智能在疫...

    机器之心
  • Instagram 的持续部署实践

    在Instagram,我们每日部署后端代码的次数达30-50次,只要有工程师将修改内容提交到主服务器,部署就会进行,而且在大多情况下无需人工介入。这听起来也许很...

    CSDN技术头条
  • 哪里不知道“瞄”哪里,这项AI黑科技,打开手机就能体验

    在一年一度的百度AI开发者大会上,百度高级副总裁、移动生态事业群组总经理沈抖拿着手机,打开百度App做了这样一个演示。

    量子位
  • 旷视AI「炼丹房」Brain++ 再升级!首席科学家孙剑发AI「灵魂」三问

    那么在炼丹过程中,数据便是金木水火土等自然元素,算法框架是用来炼丹的炉子,算力就是炼丹炉下的三昧真火。

    新智元
  • Scaled-YOLOv4 介绍

    分享一篇新出的重要文章:Scaled-YOLOv4: Scaling Cross Stage Partial Network,作者出自YOLOv4的原班人马,其...

    用户3578099
  • 137% YOLOv3加速、10倍搜索性能提升!这样的惊喜,最新版PaddleSlim有10个

    最新消息,历经一年四个版本打磨之后,百度推出最新深度学习模型压缩工具PaddleSlim1.0。

    量子位
  • 基于PaddleDetection的锥桶检测并在Gazebo环境中实现部署

    【飞桨开发者说】吴瀚,武汉理工大学本科在读,人工智能技术爱好者、飞桨开发者,希望能将AI技术更好地落地实践、服务生活。感兴趣的方向有:计算机视觉、迁移学习、推理...

    用户1386409
  • PaddleX全流程开发工具公开邀测啦!

    依托飞桨开源深度学习框架和丰富的工具组件,PaddleX进行全流程的整合打通,为开发者提供飞桨全流程开发的最佳实践。它集飞桨核心框架、模型库、工具及组件等深度学...

    用户1386409
  • 机器人智能巡检,让“煤矿”更安全

    提到“煤矿”,你想到的第一个词是什么?百度“煤矿”二字,搜索量第一的是“煤矿事故”。一场场事故让人触目惊心,矿难家属一遍遍无助的哭喊声更是令人揪心。矿工的人身安...

    用户1386409
  • 当YOLOv5遇见OpenVINO!

    YOLOv5 于2020年6月发布!一经推出,便得到CV圈的瞩目,目前在各大目标检测竞赛、落地实战项目中得到广泛应用。

    AI科技评论

扫码关注云+社区

领取腾讯云代金券