半监督中的基础论文,自监督和模型一致性的代表作。

  1. Consistency regularization: 无监督学习的方式,数据\(A\)和经过数据增强的\(A\)计做\(A'\) ,同时输入模型\(f\) ,由于其种类相同(未知但相同),所以\(f(A)=f(A')\) ,利用分布相同进行训练即可。
  2. Pseudo-labeling: 伪标签,使用人工标注数据集训练模型\(f\),然后使用此模型去预测未标注数据集,结果使用阈值进行过滤当做未标注数据的标签。

假设存在数据集 \(D\),有标签数据集\(D^l\) ,无标签数据集\(D^u\) ,所以\(D=\{D^l,D^u\}\) ,训练模型\(f\),训练步骤如下:

  1. 有标签的数据直接使用交叉熵loss
  2. 无标签的数据线进行前向计算得到结果计做\(Result\) ,设定阈值\(T\),\(0 \ \ if \ softmax(Result)>T \ else \ 0\) 制作一个one-hot的label,利用此label进行交叉熵loss计算
  3. 在训练的初期会经常出现loss为0的情况,因为前期不稳定,无标签的置信度小于阈值
  4. 这篇论文主要叙述数据增强的作用,阅读较为简单

将半监督迁移至目标检测的论文,训练步骤:

  1. 使用已标注的数据训练一个大模型\(f_{large}\)

  2. 使用这个大模型对未标注数据集进行预测,经过NMS,使用置信度阈值进行过滤,获得\(Pseudo-labeling\)

  3. 如果使用数据增强(几何变换),需要将label进行对齐

  4. 计算loss即可

2021最新的半监督目标检测,下面的论文是其中一个模块(Co-rectify)参考论文,以下给出训练步骤:

  1. 先使用标注图像训练一个大模型,未标注图像直接使用大模型生成(先进行NMS,后面置信度设置一个阈值进行过滤)
  2. 使用伪标签训练模型\(f_a\) ,其中数据使用弱数据增强(RandomFlip)
  3. 使用伪标签训练模型\(f_b\),其中数据使用强数据增强(mosaic、mixup等),模型\(f_b\)可以不等于\(f_b\)
  4. 模型 \(f_a\) 和 \(f_b\) 预测的结果进行联合预测,假设模型\(f_a\)的Head网络为\(head_a\),其他类似。例如模型输入为 \(data\) ,\(out_a = f_a(data),out_a'=f_b(data,out_a)\) 其中\(out_a\)为模型\(f_a\)的直接输出,\(out_a'\)是模型\(f_b\)的Head层输出(相当于RPN的结果)。最后将两个结果进行加权平均即可。
\[\left\{\begin{aligned}
\left(c_{i}, \mathbf{t}_{i}\right) &=f_{a}\left(\mathbf{x}_{u}\right) \\
\left(c_{i}^{r}, \mathbf{t}_{i}^{r}\right) &=f_{b}\left(\mathbf{x}_{u} ; \mathbf{t}_{i}\right), \\
c_{i}^{*} &=\frac{1}{2}\left(c_{i}+c_{i}^{r}\right), \\
\mathbf{t}_{i}^{*} &=\frac{1}{c_{i}+c_{i}^{r}}\left(\mathbf{t}_{i} c_{i}+\mathbf{t}_{i}^{r} c_{i}^{r}\right) .
\end{aligned}\right.
\]
  1. loss使用下面的函数表示,监督loss和伪监督loss
\[\begin{aligned}
\ell_{u}=& \sum_{u}\left[\frac{1}{N_{c l s}} \sum_{i} L_{c l s}\left(p\left(c_{i} \mid A\left(\mathbf{x}_{u}\right)\right), \hat{c}_{i}^{u}\right)\right.\\
&\left.+\frac{\lambda}{N_{r e g}} \sum_{i}\left(\max \left(c_{i}^{u}\right) \geq \tau\right) L_{r e g}\left(p\left(\mathbf{t}_{i} \mid A\left(\mathbf{x}_{u}\right)\right), \mathbf{t}_{i}^{u}\right)\right]
\end{aligned}
\]

  • 总结

由于看到Waymo object detect 2D比赛中有人使用此方案,所以才进行探索一下:第二名方案论文。这里总结一下这个比赛的方案,关于弱监督套路一样,以上三篇论文完全代表其发展进程了。

  1. 基础)将手动标注的图像进行训练,且此模型尽量是大模型(比赛有速度和精度要求,论文使用YoloR)。参赛给的训练数据集
  2. 基础)将未标注的图像进行伪标注。参赛给的测试集
  3. 优化)anchor的选择,由于目标差异比较大(自行车和汽车两类bbox分布较为接近、自行车单独计算),和后面模型结合起来分析
  4. 优化)针对小目标的处理,由于数据在图像中间分布,所以裁剪之后进行放大,提高小目标的出镜率
  5. 优化)使用TensorRT进行加速
  6. 优化)针对困难样本(模糊等),使用弱监督的Co-rectify方案,论文里面说是 we learn from the self-learning method which use multi-different models check with each other to automatically clean the dataset during the model training process to solve this problem and improve the model performance. 也就仅仅一句话带过,这里后面进行拓展说明。
  7. 优化)Model Ensemble,多个模型进行投票。这里采用不用模型预测不同目标的方式,YOLOR-W6预测车辆和行人,YOLOR-P6预测自行车。

这里主要说明一下采用的Co-rectify方案(出自Paper),两个结构相同且参数不同的模型YOLOR-W/P,由于是单阶段网络,所以只能直接预测,而不是像原始论文使用Head分支进行。假设模型 \(f_w\) 和 \(f_p\) 预测的结果进行联合预测。如模型输入为 \(data\) ,\(out_w = f_w(data),out_w'=f_b(data)\) 其中\(out_w\)为模型\(f_a\)的直接输出,\(out_w'\)是模型\(f_b\)的输出。直接进行加权平均,会使得模型朝着一个方向学习。如原始论文中原文:

The key to the success of co-rectify is that the two models will not converge to the same model. We take two measures to ensure that the two models converge independently.
First, although the two models have the same structure, they use different initialization parameters. Second, although the two models share the same data in each mini-batch, their data augmentations and pseudo annotations are also different.

虽然说两个模型的参数是不同的,但是此处的目的是去除模糊框,如何做到两个模型就能去除模糊框?

个人猜测是1)模糊框是少数,大量的数据训练本身就能去除这类样本。2)两个型模同时训练,会增加网络的鲁棒性,毕竟每个网络都有自己擅长的点(不同目标的检测精度不同),联合之后各取所长吧。

Waymo object detect 2D解决方案论文拓展的更多相关文章

  1. ICCV2019论文点评:3D Object Detect疏密度点云三维目标检测

    ICCV2019论文点评:3D Object Detect疏密度点云三维目标检测 STD: Sparse-to-Dense 3D Object Detector for Point Cloud 论文链 ...

  2. Deep Reinforcement Learning for Visual Object Tracking in Videos 论文笔记

    Deep Reinforcement Learning for Visual Object Tracking in Videos 论文笔记 arXiv 摘要:本文提出了一种 DRL 算法进行单目标跟踪 ...

  3. Visual Studio 2015打开ASP.NET MVC的View提示"Object reference not set to an instance of an object"错误的解决方案

    使用Visual Studio 2013打开没有问题,但Visual Studio 2015打开cshtml就会提示"Object reference not set to an insta ...

  4. Online Object Tracking: A Benchmark 论文笔记(转)

    转自:http://blog.csdn.net/lanbing510/article/details/40411877 有博主翻译了这篇论文:http://blog.csdn.net/roamer_n ...

  5. CVPR2018 关于视频目标跟踪(Object Tracking)的论文简要分析与总结

    本文转自:https://blog.csdn.net/weixin_40645129/article/details/81173088 CVPR2018已公布关于视频目标跟踪的论文简要分析与总结 一, ...

  6. Online Object Tracking: A Benchmark 论文笔记

    Factors that affect the performance of a tracing algorithm 1 Illumination variation 2 Occlusion 3 Ba ...

  7. Learning Rich Features from RGB-D Images for Object Detection and Segmentation论文笔记

    相关工作: 将R-CNN推广到RGB-D图像,引入一种新的编码方式来捕获图像中像素的地心姿态,并且这种新的编码方式比单纯使用深度通道有了明显的改进. 我们建议在每个像素上用三个通道编码深度图像:水平视 ...

  8. CVPR 2020 全部论文 分类汇总和打包下载

    CVPR 2020 共收录 1470篇文章,根据当前的公布情况,人工智能学社整理了以下约100篇,分享给读者. 代码开源情况:详见每篇注释,当前共15篇开源.(持续更新中,可关注了解). 算法主要领域 ...

  9. CVPR 2020论文收藏(转知乎:https://zhuanlan.zhihu.com/p/112337176)

    CVPR 2020 共收录 1470篇文章,根据当前的公布情况,人工智能学社整理了以下约100篇,分享给读者. 代码开源情况:详见每篇注释,当前共15篇开源.(持续更新中,可关注了解). 算法主要领域 ...

随机推荐

  1. 【Docker】5. 常用命令—镜像命令

    学习命令,官方文档千万别忘记了,不会的就到这里来查. 一.帮助命令 1.显示docker哪些命令 docker --help 另外,也可以查看具体命令的用法,比如我想知道命令docker images ...

  2. Alpha事后分析

    设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们的软件的功能主要是让一些基于表单识别的项目(如微软智能表单识别项目)减少在数据生成方面上浪费的 ...

  3. [Qt] 基本概念

    QObject :所有 Qt 类的基类 QWidget类:包含所有组件的类 Widgets:组件,组成Qt界面的基本元素 window:界面,是不含有父组件的组件 Child Widgets:子组件, ...

  4. 其他CSS属性

    一.设置元素的颜色和透明度 a.color color 属性规定文本的颜色.这个属性设置了一个元素的前景色(在 HTML 表现中,就是元素文本的颜色):光栅图像不受 color 影响.这个颜色还会应用 ...

  5. centos 6 x64 yum(sohu)

    centos 6 x64 yum(sohu) weixin_34405354 2012-08-23 10:07:35 24 收藏 文章标签: 运维 版权 [base] name=Base baseur ...

  6. Linux_软件包管理基本概述

    一.回去软件包的途径 1.系统发行版的光盘或官方的服务器镜像站 http://mirrors.aliyun.com        //阿里云镜像站 http://mirrors.sohu.com    ...

  7. 用于监视Linux上的内存使用情况的Bash脚本

    用于监视Linux上的内存使用情况的Bash脚本 2019-06-17 11:32:45作者:戴进稿源:云网牛站 在本文中,我们添加了两个shell脚本来监视Linux操作系统上的内存利用率,即用于监 ...

  8. vue实例属性之el,template,render--(转载)

    转载链接:https://www.cnblogs.com/camille666/p/vue_instance_prop_el_template_render.html 一.el,template,re ...

  9. LTP--linux稳定性测试 linux性能测试 ltp压力测试 内核更新 稳定性测试

    LTP--linux稳定性测试 linux性能测试 ltp压力测试 zhangzj1030关注14人评论33721人阅读2011-12-09 12:07:45   说明:在写这篇文章之前,本人也不曾了 ...

  10. SQL注入和XSS攻击

    SQL注入 定义:黑客通过在请求的数据中填入特殊字符,影响服务器数据库操作程序正常执行,从而达到攻击的目的. 形式: 拼接SQL: 登录验证:前台输入 username:yan password:12 ...