yolor 测试笔记

2023-10-30

模型147M,测试图片发现,没有比yolov5好:

下图测试,漏检了3个物体:

 

论文:https://arxiv.org/pdf/2105.04206.pdf

开源代码:https:// github.com/WongKinYiu/yolor

前言

人们通过视觉、听觉、触觉以及过去的经验“理解”世界。人类经验可以通过正常学习(我们称之为显性知识)或潜意识(我们称之为隐性知识)来学习。这些通过正常学习或潜意识习得的经验将被编码并储存在大脑中。使用这些丰富的经验作为一个庞大的数据库,人类可以有效地处理数据,即使它们是事先不可见的。

图片

在今天分享中,研究者提出了一个统一的网络,将隐性知识和显性知识编码在一起,就像人脑可以从正常学习和潜意识学习中学习知识一样。统一网络可以生成统一的表示以同时服务于各种任务。可以在卷积神经网络中执行内核空间对齐、预测优化和多任务学习。结果表明,当隐性知识被引入神经网络时,它有利于所有任务的性能。研究者进一步分析了从所提出的统一网络中学习到的隐式表示,它在捕捉不同任务的物理意义方面表现出很强的能力。

图片

2

背景

如下图所示,人类可以从不同角度分析同一条数据。然而,经过训练的卷积神经网络模型通常只能实现一个目标。一般来说,可以从经过训练的CNN中提取的特征通常对其他类型的问题适应性较差。造成上述问题的主要原因是我们只从神经元中提取特征,没有使用CNN中丰富的隐式知识。当真正的人脑在运行时,上述隐性知识可以有效地辅助大脑执行各种任务。

图片

隐性知识是指在潜意识状态下学到的知识。然而,对于隐性学习如何运作以及如何获得隐性知识,并没有系统的定义。在神经网络的一般定义中,从浅层获得的特征通常称为显性知识,从深层获得的特征称为隐性知识。在今天分享中,研究者将与观察直接对应的知识称为显性知识。对于模型中隐含的与观察无关的知识,称之为隐性知识

3

新框架

图片

研究者提出了一个统一的网络来整合隐性知识和显性知识,并使学习模型包含一个通用表示,而这个通用表示使子表示适用于各种任务。上图(c)说明了提出的统一网络架构。

接下来我们好好详细分析下隐性知识如何运作的?

本研究的主要目的是进行一个统一的网络,可以有效地训练隐性知识,所以在后续我们将首先关注如何训练隐性知识并对其进行快速推理。由于隐式表示zi与观察无关,我们可以将其视为一组常数张量Z={z1, z2, ..., zk}。接下来我们将介绍作为常数张量的隐性知识如何应用于各种任务。

· Manifold space reduction ·

研究者认为一个好的表示应该能够在它所属的流形空间中找到合适的投影,并促进后续客观任务的成功。例如,如下图所示,如果目标类别可以通过投影空间中的超平面成功分类,那将是最好的结果。在上面的例子中,我们可以通过投影向量和隐性表示的内积来达到降低流形空间维数,有效完成各种任务的目的。

图片

· Kernel space alignment ·

图片

在多任务和多head神经网络中,内核空间未对齐是一个常见问题,图上图(a)说明了多任务和多Head神经网络中内核空间未对齐的示例。

为了解决这个问题,研究者可以对输出特征和隐性表示进行加法和乘法,从而可以平移、旋转和缩放核空间以对齐神经网络的每个输出核空间,如下图(b)所示。

图片

上述操作模式可以广泛应用于不同领域,例如特征金字塔网络(FPN)中大目标和小目标的特征对齐,使用知识蒸馏来整合大模型和小模型,以及处理零样本域转移和其他问题。

· More functions ·

除了可以应用于不同任务的功能外,隐性知识还可以扩展到更多的功能中。如下图所示,通过引入加法,可以使神经网络预测中心坐标的偏移。还可以引入乘法来自动搜索Anchor的超参数集,这是基于锚的目标检测器经常需要的。此外,可以分别使用点乘和串联来执行多任务特征选择并为后续计算设置前提条件。

在常规神经网络的训练过程中,通常会最小化以使fθ(x)尽可能接近目标。这意味着我们期望对同一目标的不同观察是fθ获得的子空间中的单个点,如下图(a)所示。换句话说,我们期望得到的解空间是仅对当前任务ti有区别,对各种潜在任务中的ti以外的任务不变,T \ ti,其中 T = {t1, t2, ..., tn}。

对于通用神经网络,我们希望得到的表征可以服务于属于T的所有任务。因此,我们需要放松,使得可以在流形空间上同时找到每个任务的解,如上图(b)所示。但是,上述要求使我们无法使用简单的数学方法,例如one-hot向量的最大值或欧几里得距离的阈值来获得ti的解。为了解决这个问题,我们必须对误差项进行建模,以找到不同任务的解决方案,如上图6所示。

4

实验及检测可视化

图片

图片

图片

这个作者实验做的也特别充分,有兴趣的同学可以自己看下论文,从中发现一些创作灵感。我也是根据公布的源代码随便在公共数据集上测试下,效果与YoloV4比,精度可能差不多,速度确实快不少。今天就以鬼吹灯——云南虫谷这一小段检测片段,效果不是很好,因为我用的是公共数据集简单训练的效果,等有机会基于优化的网络好好训练一个模型。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

yolor 测试笔记 的相关文章

  • 如何发送和接收RTP封包的H264,用FFmpeg解码

    这篇文章给大家介绍怎么打包H264分片到RTP包 并且实现一个播放程序演示接收RTP包和用FFmpeg解码 为了让大家更了解H264打包成RTP的细节 有必要罗嗦一下向大家介绍一些相关的基础知识 下面分三节介绍 其中前面两节是基础知识 第三
  • android setWebChromeClient和setWebViewClient的使用区别

    开发中我发现两个控件的使用 由于我做的开发依旧是前期开发 所以功能比较简单 在这里我使用的webView空间一般是使用的如下这个方法 webView setWebViewClient new webViewClient 然后新建一个内部类实

随机推荐

  • c++ 编码转化

    UTF 8到GB2312的转换 char U2G const char utf8 int len MultiByteToWideChar CP UTF8 0 utf8 1 NULL 0 wchar t wstr new wchar t le
  • 软件测试入门第一步【测试用例】

    测试用例 是指对一项特定的软件产品进行测试任务的描述 体现测试方案 方法 技术和策略 内容包括测试目标 测试环境 输入数据 测试步骤 预期结果 测试脚本等 并形成文档 每个具体测试用例都将包括下列详细信息 编制人 审定人 编制日期 版本 用
  • git-自动化脚本

    首先我们要从https github com github 上申请一个GitHub仓库 过程就不介绍了 现在我们来写个git的自动回滚脚本 通过版本号来回滚代码 cat usr local src git sh bin bash autho
  • Kafka日志告警关键字

    在配置Kafka日志告警时 可以关注以下关键字 ERROR 表示发生了错误 需要进一步检查错误消息以确定具体的问题 Exception 表示发生了异常情况 需要进一步检查异常信息以确定具体的问题 Failed 表示操作失败 如消息发送失败
  • Set的常见用法详解(STL)新手入门!!!

    目录 1 2 Set的常见用法详解 1 set的定义 2 set容器内元素的访问 3 set的常见用途 1 2 Set的常见用法详解 前言 set翻译为集合 是内部自动有序且不含重复元素的容器 当需要去除重复元素且可能因为这些元素比价大或者
  • mysql alter语句用法:增加字段、修改字段、删除字段等

    文章目录 1修改表名 修改字段数据类型 修改字段名 增加字段 删除字段 1修改表名 alter table 旧表名 rename 新表名 修改字段数据类型 alter table 表名 modify 属性名 数据类型 要修改的部分 修改为你
  • 每天下午5点使用计算机结束时断开终端的连,在每天下午5点使用计算机结束时断开终端的连接属于()...

    相关题目与解析 在每天下午5点使用计算机结束时断开终端的连接 这种方式属于保护 A 外部终端的物理安全B 通 在每天下午5点使用计算机结束时断开终端的连接属于 对于外部计算机终端的安全管理 以下正确的是 允许在一台主机上同时连接多个终端 各
  • 华为手机计算机删除怎么恢复出厂设置,华为手机恢复出厂设置能彻底清除垃圾吗? 恢复出厂怎么操作...

    1 华为手机恢复出厂设置能不能彻底清除垃圾是根据机主的备份而定的 2 安卓手机恢复出厂设置只能清除手机本机内存中的垃圾 并且会把所有手机上的数据 应用 信息 资料等都会清除的 而在外置内存卡上反而会增加不少不能使用的垃圾文件 3 华为手机恢
  • 揭秘数据探查:引领企业数据治理质量提升,助力业务高速发展!

    在日常工作中 产品 运营 研发及数据分析师常常会发现 处理 加工和识别数据等数据处理工作往往会占用整个工作流程80 的时间 造成这种困境的原因 大致有三点 1 数据量大且混乱 数据质量参差不齐 2 整体概括信息缺乏 度量信息如最大值 最小值
  • 优雅的关闭socket

    http blog sina com cn s blog 4dbcd2730100v5cu html 转载于以上网址 我们在利用IOCP 完成端口 进行程序设计的时候 经常要关闭一些不满足条件的套接字 假如我们直接采用closesocket
  • Vuforia——环境配置

    开发环境 Unity 2021 1 14flc1 Vuforia Engine AR 9 8 8 开发前要注意先配好Git 否则Vuforia插件无法导入 配置Vuforia 2021版本没有内置Vuforia 我也尝试去Asset Sto
  • 原生JS实现评论功能

    利用js的追加 appendChild实现评论
  • Android studio项目目录结构

    Android studio项目目录结构 一 gradle目录 二 idea目录 三 moudle App 目录 1 build目录 2 libs目录 3 src目录 1 AndroidTest 2 Java 3 res A 资源介绍 图片
  • Qt信号槽传递自定义结构体

    1 定义结构体并注册元对象 1 定义结构体 struct Student int m id int m age QString m name 2 注册元对象 Q DECLARE METATYPE Student class MainWind
  • git命令行提交文件

    命令行提交文件 git init 初始化创建 git文件 git add 添加所有需要提交的文件 git commit m 初始化 提交添加的文件到本地 git remote add origin git地址 与远程github建立链接 g
  • Java给定一个正整数n,求1+2+3+...+n之和并输出。

    package com haitong homeworktwo import java util Scanner public class One public static void main String args System out
  • python excel修改数据库_【超详细】用Python行云流水地操作Excel和数据库

    前言 本想就着这个机会学习下Java读取Excel的 奈何搜了一圈 发现还是Pandas最为简单明了 打算先就Python写一版 后面在学习时可能还会发一篇 用Java优雅地操作Excel和数据库 准备工作 软件包 关于软件安装和环境配置
  • 【C++】volatile关键字

    我们都知道当使用编译器时候 编译器会为我们的代码做出一些优化 关于validate关键字的功能和原理我们将用一个例子来给出解释 功能 当一个变量被volidate关键字修饰时 意味着当我们每次使用这个变量时都会从变量所在的内存中去获取 而不
  • 技术经验总结之——“&”符在XML中的转义

    1 符在XML的转义 lt action name docadd class com huawei netforce dcm ui DocAddAction gt lt result name success type dispatcher
  • yolor 测试笔记

    模型147M 测试图片发现 没有比yolov5好 下图测试 漏检了3个物体 论文 https arxiv org pdf 2105 04206 pdf 开源代码 https github com WongKinYiu yolor 前言 人们