OHEM 笔记

OHEM 笔记说明1.本文是博主的学习记录,主要为了方便以后查看,当然如果能为别人提供帮助就更好了,如果有不对的地方请指正2.本文重点是了解OHEM算法以及它与hardnegativemining的异同点,尽量用较少篇幅表达清楚论文整体思路,其他一些不影响理解论文算法的东西有需要的请查看其他博客3.论文中的链接是我经过大量搜索,个人认为讲解最清楚的参考,看本文的过程中如对一些名词有疑惑可以直接点击参考…

大家好,又见面了,我是你们的朋友全栈君。

前言
1.本文重点是了解OHEM算法以及它与hard negative mining的异同点,尽量用较少篇幅表达清楚论文算法,其他一些不影响理解算法的东西不做赘述
2.博客主要是学习记录,为了更好理解和方便以后查看,当然如果能为别人提供帮助就更好了,如果有不对的地方请指正(论文中的链接是我经过大量搜索,个人认为讲解最清楚的参考)

论文链接
代码链接

Hard Negatie Mining与OHEM(Online Hard Example Mining)
1.相同点:
二者都是难例挖掘,解决样本不平衡问题(简单样本多,在目标检测中也可以说是负样本多,因为基本大部分容易分类的样本都是负样本)
2.不同点:
1)从名字就可以看出前者只注重挖掘难负例,也就是标签是负样本但网络认为它是正样本(与gt的iou大,但是没到阈值那种难以区分的负样本);而后者是挖掘所有难分类样本,并且是online(R-CNN采用了错题集的办法进行挖掘,Fast R-CNN使用的是IoU阈值+随机采样的方法进行Hard Negative Mining,也就是都必须先结束一轮训练(参考);而OHEM是先根据loss大小选择留下的roi,然后再根据这些roi反向传播更新参数完成一轮训练)
2)前者可以说是一种指导方向,因为在不同的检测算法中(比如R-CNNFast R-CNN以及带anchor的one-stage算法SSD等)Hard Negatie Mining具体操作是不同的;而后是一个算法

OHEM
作者将OHEM用于Fast R-CNN进行试验
在这里插入图片描述
如图,框架只是比Fast R-CNN多出下面一块(b),(a)和(b)是参数相同的网络,(a)只进行前向传播,(b)可以进行反向传播,具体过程为:
1.每个roi通过(a)进行前向传播计算损失,然后根据损失大小进行排序,再通过nms筛选留下损失大的一些roi
2.再将留下的损失大的roi经过(b)进行反向传播以更新参数
3.同步(a)和(b)的参数
注:
1)分为(a)和(b)两个网络就是空间换时间,(b)不需要对所有的roi都进行反向传播,只对留下的损失大的反向传播,实验表明内存差不多而速度快很多
2)这里的nms是根据loss进行的(之前见过的都是根据置信度),阈值设为0.7,因为loss相近表明roi位置相近,没必要留下位置差不多的,所以进行nms

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/139421.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • WebGame开发过程中的一些思考和总结

    WebGame开发过程中的一些思考和总结WebGame如今已经很火,市场也很大,盛大和腾讯都已经看中这一块市场。我自己也在做这方面的研发,总结和思考一些问题。

    2022年5月29日
    29
  • Python解析命令行读取参数 — argparse模块

    Python解析命令行读取参数 — argparse模块

    2022年2月23日
    41
  • 线性代数,行列式(加边法求行列式例题)

    一、二阶和三阶行列式1.二阶行列式PS:只适用于二元线性方程;2.三阶行列式 二、全排列及其逆序数1.全排列把n个不同的元素排成一列,叫做这n个元素的全排列;2.逆序数对于n个不同的元素,先规定各元素之间有一个标准次序,于是在这n个元素的任一排列中,当某两个元素的先后次序与标准次序不同时,就说有一个一个逆序,一个排列中所有逆序的总数叫做这个排列的逆序数。…

    2022年4月16日
    182
  • KNIME数据库扩展指南

    KNIME数据库扩展指南KNIME 数据库扩展指南介绍 KNIME 数据库扩展提供了一组 KNIME 节点 这些节点允许连接到 JDBC 兼容的数据库 这些节点位于 节点存储库 中的 数据库 类别中 您可以在其中找到许多数据库访问 操作和编写节点 数据库节点是每个 KNIMEAnalyti 安装的一部分 不需要安装任何其他的 KNIME 扩展 本指南描述了 KNIME 数据库扩展 并除其他外 展示了如何连接到数据库以及如何在数据库内部执行数据操作 外链图片转存失败 源站可能有防盗链机制 建议将图片保存下来直接上传

    2025年8月15日
    1
  • jar find小技巧

    jar find小技巧

    2021年5月12日
    143
  • linux中的ldd命令简介

    linux中的ldd命令简介在linux中,有些命令是大家通用的,比如ls,rm,mv,cp等等,这些我觉得没有必要再细说了。而有些命令,只有开发人员才会用到的,这类命令,作为程序员的我们,是有必要了解的,有的甚至需要熟练使用。有的人总说,这些命令不重要,用的时候去查就行了,这么多么扯淡的说法啊。具体用法细节是可以可查,但至少得知道有ldd这个东西吧。连ldd都不知道,怎么知道ldd是干啥的呢?

    2022年4月28日
    76

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号