0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一个YOLO系列的算法实现库YOLOU

OpenCV学堂 来源:OpenCV学堂 作者:OpenCV学堂 2022-07-31 11:47 次阅读

这里推荐一个YOLO系列的算法实现库YOLOU,此处的“U”意为“United”的意思,主要是为了学习而搭建的YOLO学习库,也借此向前辈们致敬,希望不被骂太惨;

整个算法完全是以YOLOv5的框架进行,主要包括的目标检测算法有:YOLOv3、YOLOv4、YOLOv5、YOLOv5-Lite、YOLOv6、YOLOv7、YOLOX以及YOLOX-Lite。

同时为了方便算法的部署落地,这里所有的模型均可导出ONNX并直接进行TensorRT等推理框架的部署,后续也会持续更新。

模型精度对比

服务端模型

这里主要是对于YOLO系列经典化模型的训练对比,主要是对于YOLOv5、YOLOv6、YOLOv7以及YOLOX的对比,部分模型还在训练之中,后续所有预训练权重均会放出,同时对应的ONNX文件也会给出,方便大家部署应用落地。

注意,这里关于YOLOX也没完全复现官方的结果,后续有时间还会继续调参测试,尽可能追上YOLOX官方的结果。

下表是关于YOLOU中模型的测试,也包括TensorRT的速度测试,硬件是基于3090显卡进行的测试,主要是针对FP32和FP16进行的测试,后续的TensorRT代码也会开源。目前还在整理之中。

36c43e68-100f-11ed-ba43-dac502259ad0.png

轻量化模型

为了大家在手机端或者其他诸如树莓派瑞芯微AID以及全志等芯片的部署,YOLOU也对YOLOv5和YOLOX进行了轻量化设计。

下面主要是对于边缘端使用的模型进行对比,主要是借鉴之前小编参与的YOLOv5-Lite的仓库,这里也对YOLOX-Lite进行了轻量化迁移,总体结果如下表所示,YOLOX-Lite基本上可以超越YOLOv5-Lite的精度和结果。

36d2d1c6-100f-11ed-ba43-dac502259ad0.png

如何使用YOLOU?

安装

这里由于使用的是YOLOv5的框架进行的搭建,因此安装形式也及其的简单,具体如下:

gitclonehttps://github.com/jizhishutong/YOLOU
cdYOLOU
pipinstall-rrequirements.txt

数据集

这里依旧使用YOLO格式的数据集形式,文件夹形式如下:

train:../coco/images/train2017/
val:../coco/images/val2017/

具体的标注文件和图像list如下所示:

├──images#xx.jpgexample
│├──train2017
││├──000001.jpg
││├──000002.jpg
││└──000003.jpg
│└──val2017
│├──100001.jpg
│├──100002.jpg
│└──100003.jpg
└──labels#xx.txtexample
├──train2017
│├──000001.txt
│├──000002.txt
│└──000003.txt
└──val2017
├──100001.txt
├──100002.txt
└──100003.txt

参数配置

YOLOU为了方便切换不同模型之间的训练,这里仅仅需要配置一个mode即可切换不同的模型之间的检测和训练,具体意义如下:

36e3e83a-100f-11ed-ba43-dac502259ad0.png

注意:这里的mode主要是对于Loss计算的选择,对于YOLOv3、YOLOv4、YOLOv5、YOLOR以及YOLOv5-Lite直接设置mode=yolo即可,对于YOLOX以及YOLOX-Lite则设置mode=yolox,对于YOLOv6和YOLOv7则分别设置mode=yolov6和mode=yolov7

注意由于YOLOv7使用了Aux分支,因此在设置YOLOv7时有一个额外的参数需要配置,即use_aux=True

具体训练指令如下:

pythontrain.py--modeyolov6--datacoco.yaml--cfgyolov6.yaml--weightsyolov6.pt--batch-size32

检测指令如下:

pythondetect.py--source0#webcam
file.jpg#image
file.mp4#video
path/#directory
path/*.jpg#glob
'https://youtu.be/NUsoVlDFqZg'#YouTube
'rtsp://example.com/media.mp4'#RTSP,RTMP,HTTPstream

检测结果

服务端模型

36f484d8-100f-11ed-ba43-dac502259ad0.png

轻量化模型

371a2490-100f-11ed-ba43-dac502259ad0.png

参考

[1].https://github.com/jizhishutong/YOLOU

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 算法
    +关注

    关注

    23

    文章

    4587

    浏览量

    92478
  • 数据集
    +关注

    关注

    4

    文章

    1200

    浏览量

    24617
  • 轻量化
    +关注

    关注

    0

    文章

    26

    浏览量

    8068

原文标题:YOLOU开源 | 汇集YOLO系列所有算法,集算法学习、科研改进、落地于一身!

文章出处:【微信号:CVSCHOOL,微信公众号:OpenCV学堂】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Pure path studio内能否自己创建component,来实现特定的算法,例如LMS算法

    TLV320AIC3254EVM-K评估模块, Pure path studio软件开发环境。 问题:1.Pure path studio 内能否自己创建component,来实现特定的
    发表于 11-01 08:25

    分享嵌入式通用FIFO环形缓冲区实现

    开源项目ringbuff ,是款通用FIFO环形缓冲区实现的开源,作者MaJerle,遵循 MIT 开源许可协议。
    的头像 发表于 10-23 16:20 206次阅读
    分享<b class='flag-5'>一</b><b class='flag-5'>个</b>嵌入式通用FIFO环形缓冲区<b class='flag-5'>实现</b><b class='flag-5'>库</b>

    使用OpenVINO C# API部署YOLO-World实现实时开放词汇对象检测

    YOLO-World是融合了实时目标检测与增强现实(AR)技术的创新平台,旨在将现实世界与数字世界无缝对接。该平台以YOLO(You Only Look Once)
    的头像 发表于 08-30 16:27 518次阅读
    使用OpenVINO C# API部署<b class='flag-5'>YOLO</b>-World<b class='flag-5'>实现</b>实时开放词汇对象检测

    安全帽佩戴检测算法

    安全帽佩戴监控是铁路工程施工人员安全管理中的重点和难点,它对检测算法的准确 率与检测速度都有较高的要求。本文提出种基于神经网络架构搜索的安全帽佩戴检测算法 NAS-YOLO。该神经网
    的头像 发表于 06-26 22:22 344次阅读
    安全帽佩戴检测<b class='flag-5'>算法</b>

    OpenVINO™ C# API部署YOLOv9目标检测和实例分割模型

    YOLOv9模型是YOLO系列实时目标检测算法中的最新版本,代表着该系列在准确性、速度和效率方面的又次重大飞跃。
    的头像 发表于 04-03 17:35 694次阅读
    OpenVINO™ C# API部署YOLOv9目标检测和实例分割模型

    纵观全局:YOLO助力实时物体检测原理及代码

    YOLO 流程的最后步是将边界框预测与类别概率相结合,以提供完整的检测输出。每个边界框的置信度分数由类别概率调整,确保检测既反映边界框的准确性,又反映模型对对象类别的置信度。
    的头像 发表于 03-30 14:43 2142次阅读

    Camera算法集成实现指南

    最常见的双摄算法是双摄景深算法或者叫双摄背景虚化算法,除此之外,也有彩色+黑白用于增强夜拍效果的双摄算法。单帧算法和多帧
    的头像 发表于 01-25 15:12 1615次阅读

    【EASY EAI Nano】RV1126实时读取摄像头并进行yolo检测显示

    实现了三并行模块,分别是 摄像头读取,使用opencv转换到适合大小 yolo检测 托管到Qt进行现实 检测的DEMO从每帧10次改到每帧2次,可以看到还是具备定实时性。
    发表于 01-14 18:53

    在英特尔AI开发板上用OpenVINO NNCF优化YOLOv7

    提高了性能和效率。YOLO算法作为one-stage目标检测算法最典型的代表,其基于深度神经网络进行对象的识别和定位,运行速度很快,可以用于实时系统。YOLOv7 是 YOLO 模型
    的头像 发表于 01-05 09:29 668次阅读
    在英特尔AI开发板上用OpenVINO NNCF优化YOLOv7

    mysql怎么新建个数据库

    mysql怎么新建个数据库 如何新建个数据库在MySQL中 创建个数据库是MySQL中的基
    的头像 发表于 12-28 10:01 832次阅读

    浮点LMS算法的FPGA实现

    运算的运算步骤远比定点运算繁琐,运算速度慢且所需硬件资源大大增加,因此基于浮点运算的LMS算法的硬件实现直以来是学者们研究的难点和热点。 本文正是基于这种高效结构的多输入FPA,在FPGA上成功
    的头像 发表于 12-21 16:40 695次阅读

    基于YOLO技术的植物检测与计数

    利用Roboflow平台对数据进行有效的管理和标注。对于植物检测,使用实时目标检测能力强的YOLO方法。YOLO通过将输入图像划分为网格并预测每个网格单元的边界框和类别概率,在不牺牲精度的情况下实现了令人印象深刻的检测速度。
    的头像 发表于 12-12 09:41 790次阅读
    基于<b class='flag-5'>YOLO</b>技术的植物检测与计数

    目标检测算法YOLO的发展史和原理

    大家或许知道,首字母缩写YOLO在英文语境下较为流行的含义,即You Only Live Once,你只能活次。我们今天要介绍的YOLO却有着与前者不样的含义。在
    的头像 发表于 11-18 10:33 5547次阅读
    目标检测<b class='flag-5'>算法</b><b class='flag-5'>YOLO</b>的发展史和原理

    mysql是什么类型的数据

    MySQL是种关系型数据管理系统(RDBMS),用于存储和管理大量结构化数据。它被广泛用于各种应用程序和网站的后端,包括电子商务平台、社交媒体网站、金融系统等等。MySQL的特点是性能高、可靠性
    的头像 发表于 11-16 14:43 1642次阅读

    如何实现malloc

    甚至把malloc当做操作系统所提供的系统调用或C的关键字。实际上,malloc只是C的标准中提供的普通函数,而且实现malloc的基本思想并不复杂,任何
    的头像 发表于 11-13 14:31 722次阅读
    如何<b class='flag-5'>实现</b><b class='flag-5'>一</b><b class='flag-5'>个</b>malloc