Hard Negatie Mining与Online Hard Example Mining(OHEM)都属于难例挖掘,它是解决目标检测老大难问题的常用办法,运用于R-CNN,fast R-CNN,faster rcnn等two-stage模型与SSD等(有anchor的)one-stage模型训练时的训练方法。

OHEM和难负例挖掘名字上的不同。

  • Hard Negative Mining只注意难负例
  • OHEM 则注意所有难例,不论正负(Loss大的例子)

难例挖掘的思想可以解决很多样本不平衡/简单样本过多的问题,比如说分类网络,将hard sample 补充到数据集里,重新丢进网络当中,就好像给网络准备一个错题集,哪里不会点哪里。

      难例挖掘与非极大值抑制 NMS 一样,都是为了解决目标检测老大难问题(样本不平衡+低召回率)及其带来的副作用。

根据每个RoIs的loss的大小来决定哪些是难样例, 哪些是简单样例, 通过这种方法, 可以更高效的训练网络, 并且可以使得网络获得更小的训练loss

Pytorch实现

def ohem_loss(batch_size, cls_pred, cls_target, loc_pred, loc_target, smooth_l1_sigma=1.0
):"""Arguments:batch_size (int): number of sampled rois for bbox head trainingloc_pred (FloatTensor): [R, 4], location of positive roisloc_target (FloatTensor): [R, 4], location of positive roispos_mask (FloatTensor): [R], binary mask for sampled positive roiscls_pred (FloatTensor): [R, C]cls_target (LongTensor): [R]Returns:cls_loss, loc_loss (FloatTensor)"""ohem_cls_loss = F.cross_entropy(cls_pred, cls_target, reduction='none', ignore_index=-1)ohem_loc_loss = smooth_l1_loss(loc_pred, loc_target, sigma=smooth_l1_sigma, reduce=False)#这里先暂存下正常的分类loss和回归lossloss = ohem_cls_loss + ohem_loc_loss#然后对分类和回归loss求和sorted_ohem_loss, idx = torch.sort(loss, descending=True)#再对loss进行降序排列keep_num = min(sorted_ohem_loss.size()[0], batch_size)#得到需要保留的loss数量if keep_num < sorted_ohem_loss.size()[0]:#这句的作用是如果保留数目小于现有loss总数,则进行筛选保留,否则全部保留keep_idx_cuda = idx[:keep_num]#保留到需要keep的数目ohem_cls_loss = ohem_cls_loss[keep_idx_cuda]ohem_loc_loss = ohem_loc_loss[keep_idx_cuda]#分类和回归保留相同的数目cls_loss = ohem_cls_loss.sum() / keep_numloc_loss = ohem_loc_loss.sum() / keep_num#然后分别对分类和回归loss求均值return cls_loss, loc_loss

OHEM(Online Hard Example Mining)在线难例挖掘(在线困难样例挖掘) HNM (目标检测)相关推荐

  1. ACMNO.7 输入两个正整数m和n,求其最大公约数和最小公倍数。 输入 两个整数 输出 最大公约数,最小公倍数 样例输入 5 7 样例输出 1 35

    题目描述 输入两个正整数m和n,求其最大公约数和最小公倍数. 输入 两个整数 输出 最大公约数,最小公倍数 样例输入 5 7 样例输出 1 35 来源/分类 C语言 示例照片: 设计思路: 本题最难的 ...

  2. 使用Gem5在aarch64架构下运行SPEC2006样例(三)——样例运行

    一.写在前面 如果只是想完成课程设计的话,可以使用本部分的方法.如果需要使用Simpoint加速运行,可以略过本篇,见下一篇. 二.正常执行 1.编写脚本 在Gem5主目录下使用命令: touch r ...

  3. 【回文数】求11到n之间(包括n),既是素数又是回文数的整数有多少个。 输入 一个大于11小于1000的整数n。 输出 11到n之间的素数回文数个数。 样例输入 Copy 23 样例输出 Copy 1

    #include<stdio.h>int a(int n) {for(int i=2;i<n/i;i++);{if(n%2==0)//若n%2==0则不是素数.return 0;}r ...

  4. 困难负样本挖掘方法——OHEM

    Online Negative Example Mining 论文链接 背景: 在模型训练中,大量的训练数据中会存在一些难以区分的负样本,找到这样的负样例再进行针对性地训练,能够对模型精度有一定的提升 ...

  5. 想说说关于在刷题网站(牛客 、C语言网、力扣)上测试样例过了但是OJ判错这档子事

    目录 1.话题引入 2.在刷题过程中一些自己想说的 3.刷题时的一些小建议 4.个人感悟 1.话题引入 首先介绍一下我自己,本人是一名专科大一的学生:非计算机本专业:因为想拓宽自己的知识面和技术:于是 ...

  6. Cocos2d-x 3.2 Lua演示样例FontTest(字体測试)

    Cocos2d-x 3.2 Lua演示样例FontTest(字体測试) 本篇博客介绍Cocos2d-x 3.2中Lua測试项目中的FontTest样例,主要使用了字体文件来创建我们想要的字体样式: 第 ...

  7. fpga开发教程 labview_LabVIEW项目样例 - NI VST FPGA软件编程使用步骤与实例教程

    3. LabVIEW项目样例 NI VST仪器设计库的能力强大,但是并不能单枪匹马地完全满足软件设计仪器实现默认功能的要求,也不能提供大多数VSA和VSG仪器编程人员所熟悉的简单主机接口. LabVI ...

  8. cloudsim样例描述

    样例描述 cloudsim-2.1.1\examples目录下提供了一些CloudSim样例程序,每个样例模拟的环境如下: (1)CloudSimExample1.java:创建一个一台主机.一个任务 ...

  9. PTA | 实验二 | PTA综合实验参考样例 | C++/C语言OJ练习题

    为鼓励居民节约用水,自来水公司采取按用水量阶梯式计价的办法,居民应交水费y(元)与月用水量x(吨)的关系如下,请编写程序实现水费的计算. 输入格式: 输入在一行中给出实数x. 输出格式: 按照以下的格 ...

最新文章

  1. matlab 向量去除空格,MATLAB向量
  2. 原来程序员在某个圈子还是蛮吃香的嘛~
  3. 我在OSC的第一篇博文
  4. JAVA.Properties了解一下
  5. matlab线性拟合和非线性拟合,matlab多元非线性拟合
  6. ubuntu18.10终端的方块改成竖线
  7. 经验分享:三步走教你升级企业NAS设备
  8. jvm 崩溃日志设置_JVM致命错误日志(hs_err_pid.log)分析(转载)
  9. 3.2.7.1 替换细节
  10. java数据结构与算法pdf下载
  11. 将类似 Fri Jun 14 2019 00:00:00 GMT+0800 (中国标准时间) 的日期转化为 XXXX-XX-XX的形式...
  12. 钱币兑换问题c语言编程,关于兑换货币问题
  13. Flask-SQLAlchemy的使用(详解)
  14. MongoDB分组查询数据库sql
  15. ChatGPT初体验——开发好帮手
  16. 饮料如何畅销市场?看农夫山泉如何玩转营销
  17. 美国国会将合成尼古丁电子烟归为烟草制品管控
  18. 任正非说打出和平,说出了芯片行业的真谛,竞争才能带来好处
  19. 如何有效学习《恋上数据结构与算法》,更快地理解数据代码?
  20. if与switch的性能比较

热门文章

  1. 《javascript 语言精粹》精华部分
  2. windows服务器 的DNS服务器备份与还原步骤小结
  3. BigDecimal加减乘除及setScale的用法小结
  4. 《一出好戏》讲述人性,使用Python抓取猫眼近10万条评论并分析,一起揭秘“这出好戏”到底如何?...
  5. 2019年证券从业资格考试真题题库视频课程等资料汇总
  6. javaweb JAVA JSP天然气煤气销售系统jsp销售网站 (jsp电子商务系统,购物商城)在线煤气购物案例
  7. 计算机应用基础的认识和计划,计算机应用基础学习计划..doc
  8. Python之课堂作业三
  9. 红石计算机简单教程,【图片】《小学生也看得懂的红石计算机教程:从零构建自己的红石计算机》【minecraft吧】_百度贴吧...
  10. java计算机毕业设计影视论坛源码+数据库+系统+lw文档+部署