• 【目标检测】YOLOR理论简介+实践测试VisDrone数据集


    前言

    YOLOR是2021年提出的一种算法,其一作Chien-Yao Wang(台湾)同时也是最近刚出的YOLOv7的第一作者。

    论文地址:https://arxiv.org/abs/2105.04206
    论文项目地址:https:// github.com/WongKinYiu/yolor

    理论简介

    YOLOR的论文不容易啃,因为其在里面写了大篇幅的数学推导概念,我不做深入推导研究,仅对其思想进行简单复述。

    YOLOR的核心思想也是借鉴了人脑生理学结构。人类可以通过正常的感官和经验来进行主动学习,这部分学习到的知识被称为显性知识,与此同时,人类也可以通过潜意识来进行学习,这部分学习到的知识被成为隐性知识
    在这里插入图片描述

    在传统的神经网络模型中,往往提取了神经元特征而丢弃了隐式知识的学习运用,作者将直接可观察的知识定义为显式知识,隐藏在神经网络中且无法观察的知识定义为隐式知识。
    因此,作者就针对这一点做了下列一些研究贡献:

    1. 提出了一个可以完成各种任务的统一网络,它通过整合内隐知识和外显知识来学习一般表示,人们可以通过这种一般表示来完成各种任务。所提出的网络以非常小的额外成本(不到1万的参数量和计算量)有效地提高了模型的性能。
    2. 将核空间对齐、预测精细化和多任务学习引入内隐知识学习过程,并验证了它们的有效性。
    3. 分别讨论了利用向量、神经网络和矩阵分解等工具对隐性知识进行建模的方法,并验证了其有效性。
    4. 证实了所提出的内隐表示可以准确地对应特定的物理特征,并且我们也将其以视觉的方式呈现出来。

    下面具体的内容太复杂且枯燥了,深入了解的可以看原论文或博文[1]总结的思维导图:

    在这里插入图片描述
    下面是论文里展现的作者使用不同模型的实验结果:

    在这里插入图片描述
    在这里插入图片描述

    实践测试

    东西好不好,还得看实际用了才知道。
    看到源码基本上也是基于YOLOv5改的,因此看过我之前这篇博文【目标检测】YOLOv5跑通VisDrone数据集的读者应该对跑通YOLOR也轻车熟路。

    下面我就使用VisDrone数据集和yolor_csp_x_star这个模型跑100个epoch,再进行测试,下面是测试结果,同样和之前【目标检测】TPH-YOLOv5:基于transformer的改进yolov5的无人机目标检测做个实验的模型进行对比,结果如下:

    算法mAP@.5mAP@.5:.95s
    yolov5-5.034.9%20.6%
    yolov5-6.133.1%18.7%
    tph-yolov537.4%21.7%
    yolov632.5%17.4%
    yolor37.7%22.8%

    注:只是100个epoch的得到的best.pt的测试结果,并未达到最优性能,通常论文里展示的测试结果都是300个epoch以上。

    仅看mAP数值的话,YOLOR的数值在迭代100轮的情况下,数值最高,说明YOLOR的确是有所提升效果的。

    下面我导入之前测试过的小目标人体检测视频,可以看到YOLOR的检测效果并没有像数值预期的那样理想,说明对于小目标情况,YOLOR并不非常适用(这是未经足够实验得出的结论,仅供参考)。

    YOLOR_VisDrone数据集检测效果

    代码备份

    跑YOLOR的代码可以明显发现作者的目光并不局限于AP,有时候,AR在一些具体任务中,比AP更重要。作者对这点进行了优化,训练完之后,不像原版只保存best.pt和last.pt,而是保存多个模型。
    在这里插入图片描述
    可能是由于作者的一些失误,原始代码在运行时有一些小bug。我进行了简单修正,特将代码备份如下(包含yolor_csp_x_star.pt权重文件和我运行的一些结果):
    https://pan.baidu.com/s/1lXiu82q0sQPTCU0C4UmcAQ?pwd=8888

    References

    [1]https://blog.csdn.net/weixin_42917352/article/details/120050525

  • 相关阅读:
    【Linux】Linux权限
    护眼灯频闪是什么意思?无频闪护眼灯哪个好
    【C++系列P3】‘类与对象‘-三部曲——[基础知识](1/3)
    Feign远程调用
    生态短讯 | Tapdata 与 TDengine 完成产品兼容性互认证,打造物联网实时数据生态
    uni-app 5小时快速入门 10 uni-app生命周期详解(上)
    PyQT5 普通按钮互斥选中
    算法导论 ——分治中求解递归式的三种方法
    selenium屏幕操作事件TouchActions
    降低模拟量信号干扰的10个有效方法
  • 原文地址:https://blog.csdn.net/qq1198768105/article/details/126032655