OHEM::Online Hard Example Mining--探究

article/2025/11/11 5:58:44

paper里直接说的最初的思想就是想把bootstrapping移植到dl当中来,所以产生了ohem吧。由于bootstrapping本身是迭代算法,直接应用到dl当中,会使dl的训练变得非常慢。为此,作者借用了其核心思想–让hard example起更大的作用,提出了ohem。具体的方法就是先让所有样本通过dl计算出loss,以loss大为hard example的标准,从而选出hard example来,然后再组成一组batch,进行训练。

难例挖掘是指,针对模型训练过程中导致损失值很大的一些样本(即使模型很大概率分类错误的样本),重新训练它们.维护一个错误分类样本池, 把每个batch训练数据中的出错率很大的样本放入该样本池中,当积累到一个batch以后,将这些样本放回网络重新训练.

OHEM是CVPR2016的文章,它提出一种通过online hard example mining 算法训练Region-based Object Detectors,其优点:

  1. 对于数据的类别不平衡问题不需要采用设置正负样本比例的方式来解决,这种在线选择方式针对性更强。

  2. 当数据集增大,算法可以在原来基础上提升更大。

当我们遇到数据集少,且目标检测positive proposal少时,一般实验效果会不如人意,咱们可以试试OHEM这个trick,也许可以带来不错的效果。

这里想提醒大家算法岗面试经常被问到。

Hard example mining:

主要有2种参见Hard example mining算法,优化SVM时候的算法和非SVM时的利用。

在优化SVM中使用Hard example mining时,训练算法主要维持训练SVM和在工作集上收敛的平衡迭代过程,同时在更新过程中去除一些工作集中样本并添加其他特殊的标准。这里的标准即去掉一些很容易区分的样本类,并添加一些用现有的模型不能判断的样本类,进行新的训练。工作集为整个训练集中的一小部分数据。

非SVM中使用时,该Hard example mining算法开始于正样本数据集和随机的负样本数据集,机器学习模型在这些数据集中进行训练使其达到该数据集上收敛,并将其应用到其他未训练的负样本集中,将判断错误的负样本数据(false positives)加入训练集,重新对模型进行训练。这种过程通常只迭代一次,并不获得大量的再训练收敛过程。

OHEM算法解释:

OHEM算法的核心是选择一些hard example作为训练的样本从而改善网络参数效果,hard example指的是有多样性和高损失的样本。

hard example是根据每个ROI的损失来选择的,选择损失最大的一些ROI。但是这里有一个问题:重合率比较大的ROI之间的损失也比较相似。因此这里作者采用NMS(non-maximum suppresison)去除重合率较大的ROI,这里作者给的阈值是当IOU大于0.7就认为重合率较高,需去除。

注意,这里作者没有采用设定背景和目标样本数的比例方式处理数据的类别不平衡问题。因为如果哪个类别不平衡,那么这个类别的损失就会比较大,这样被采样的可能性也比较大。

论文中把OHEM应用在Fast R-CNN中具体参看博文,是因为Fast R-CNN相当于目标检测各大框架的母体,很多框架都是它的变形,所以作者在Fast R-CNN上应用很有说明性。

1.Fast R-CNN框架简述

在这里插入图片描述
简单的说,Fast R-CNN框架是将224×224的图片当作输入,经过conv,pooling等操作输出feature map,通过selective search 创建2000个region proposal,将其一起输入ROI pooling层,接上全连接层与两个损失层。

2.OHEM应用于FRCNN
在这里插入图片描述
作者将OHEM应用在Fast RCNN的网络结构,如上图。这里包含两个ROI network,上面一个ROI network是只读的,为所有的ROI在前向传递的时候分配空间。下面一个ROI network则同时为前向和后向分配空间。

首先,ROI经过ROI plooling层生成feature map,然后进入只读的ROI network得到所有ROI的loss;然后是hard ROI sampler结构根据损失排序选出hard example,并把这些hard example作为下面那个ROI network的输入。

实际训练的时候,每个mini-batch包含N个图像,共|R|个ROI,也就是每张图像包含|R|/N个ROI。经过hard ROI sampler筛选后得到B个hard example。作者在文中采用N=2,|R|=4000,B=128。

另外关于正负样本的选择:当一个ROI和一个ground truth的IOU大于0.5,则为正样本;当一个ROI和所有ground truth的IOU的最大值小于0.5时为负样本。

总结来说,对于给定图像,经过selective search RoIs,同样计算出卷积特征图。但是在绿色部分的(a)中,一个只读的RoI网络对特征图和所有RoI进行前向传播,然后Hard RoI module利用这些RoI的loss选择B个样本。在红色部分(b)中,这些选择出的样本(hard examples)进入RoI网络,进一步进行前向和后向传播。

参考文章:

https://blog.csdn.net/u014380165/article/details/73148073

论文地址:

Training Region-based Object Detectors with Online Hard Example Mining


http://chatgpt.dhexx.cn/article/hdNFxbwE.shtml

相关文章

OHEM在线难样例挖掘的两个细节

代码上如何实现Read-only Layer与R _hard-sel权限共享? https://github.com/abhi2610/ohem/blob/master/models/pascal_voc/VGG_CNN_M_1024/fast_rcnn_ohem/train.prototxt 下面代码对应(a),前向传播过程 ## Readonly RoI Network layer {n…

OHEM 代码详解

目录 1.网络结构 2.OHEM 前向传播 3 .reference 1.网络结构 ########################## ## Readonly RoI Network ## ######### Start ########## layer {name: "roi_pool5_readonly"type: "ROIPooling"bottom: "conv5_3"bottom: "roi…

检测模型改进—OHEM与Focal-Loss算法总结

1. 概述 论文名称:Training Region-based Object Detectors with Online Hard Example Mining 代码地址:OHEM OHEM(online hard example miniing)算法的核心思想是: 根据输入样本的损失进行筛选,筛选出hard example,表示对分类和检测影响较大的样本,然后将筛选得到的这…

【训练方法】OHEM

目录 概述细节困难负样本挖掘(HEM)在线困难负样本挖掘(OHEM) 概述 目标检测任务重存在严重的正负样本不均衡问题,以往的解决方法是困难负样本挖掘方法(HEM),但是它不太适合端到端的…

OHEM(Online Hard Example Mining)在线难例挖掘(在线困难样例挖掘) Pytorch实现 HNM (目标检测)

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

OHEM介绍

目标检测之OHEM介绍 论文地址:https://arxiv.org/pdf/1604.03540.pdf 在two-stage检测算法中,RPN阶段会生成大量的检测框,由于很多时候一张图片可能只会有少量几个目标,也就是说绝大部分框是没有目标的,为了减少计算就…

OHEM

Training Region-based Object Detectors with Online Hard Example Mining 00 Astract 摘要主要讲了四点: (1) 训练过程需要进行参数的空间搜索 (2) 简单样本与难分辨样本之间的类别不平衡是亟需解决的问题 (3) 自动地选择难分辨样本来进行训练不仅效率高而且性能好…

样本均衡之OHEM

论文地址:Training Region-based Object Detectors with Online Hard Example Mining OHEM 主要解决神经网络中困难负样本的问题。 困难负样本是神经网络难以区分的负样本。我们希望模型在训练的时候,负样本的confidence接近0,但是如果不加…

OHEM 详解

OHEM 详解 一、Hard Negative Mining Method(一)Hard Negative Mining Method 思想(二)Hard Negative Mining Method 使用(三)Hard Negative Mining Method 缺点 二、OHEM(一)训练方…

OHEM(Online Hard Example Mining )算法

OHEM算法提出于论文 Training Region-based Object Detectors with Online Hard Example Mining,链接:https://arxiv.org/abs/1604.03540。在hard example(损失较大的样本)反向传播时,可以减少运算量。 OHEM主要思想是…

虚拟机VMware官网下载教程,中文详细步骤(图文)

目录 一、找到官网 二、注册,登录(之前有账号的直接登录) 三、下载 四、VMware安装 五、Ubuntu下载,安装 一、找到官网 中文官网:VMware 中国 - 交付面向企业的数字化基础 | CNhttps://www.vmware.com/cn.html …

虚拟机VMware Workstation安装使用教程

1.官网下载,百度一个序列号进行注册。 2.打开VM,创建虚拟机 2.初次使用的话,选择典型就可以 3.如果有已有的iso文件,可以选择“安装程序光盘印象文件”,但是这是简易安装,可能后期会出现bug,不…

VMware安装虚拟机详细教程

VMware安装虚拟机目录 一、VMware添加虚拟机二、虚拟机启动及配置三、IP地址、子网掩码、网关和域名 一、VMware添加虚拟机 在我们安装完VWware,下载好安装的操作系统的镜像文件后(这里我们是(centos7版本),可以开始安…

VMware下载与安装教程(详细)

虚拟机VMware下载与安装教程 1. VMware最新版下载Vmware历史版本下载 2. VMware的安装 1. VMware最新版下载 Vmware官网 官网界面如下 点击产品,找到 Workstation Pro 之后会跳转到如下界面,点击下载试用版 根据自己的操作系统是Linux还是Windows选择对应的版…

虚拟机 VMware 16安装教程

虚拟机 VMware 16下载 见评论区 软件简介 VMware(虚拟机)是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,它能在Windows系统上虚拟出多个计算机,每个虚拟计算机可以独立运行&#xff0c…

虚拟化技术之 VMware Workstation教程(一)

目录 第一章 虚拟化技术 1.1虚拟化技术简介 1.2主流的虚拟化厂商及产品 第二章 虚拟机的安装 2.1安装VMwareWorkstation 12 2.2物理机所需硬件 2.3在虚拟机中安装Windows 7操作系统 第三章 虚拟机的网络设置 3.1网络接入模式 3.2设置虚拟机上网 3.3设置两台虚拟机之…

VMware Workstation Pro详细安装教程

一,VMware Workstation Pro介绍 VMware Workstation(中文名“威睿工作站”)是一款功能强大的桌面虚拟计算机软件,提供用户可在单一的桌面上同时运行不同的操作系统,和进行开发、测试 、部署新的应用程序的最佳解决方案…

VMware虚拟机下载与安装教程(详细的很,一看就懂)

CSDN话题挑战赛第2期 参赛话题:学习笔记 🔶 个人主页: 神仙阿姨的博客 🔴 分享网站: 《Python自学网》👉👉适合新手入门到精通 | python全栈体系课程 | WEB开发 | 爬虫 | 自动化运维 …

VMware安装虚拟机操作步骤[史上最详细]

一、下载并安装VMware虚拟化软件 百度搜索关键词 安装步骤:傻瓜式安装(鼠标点点点,这里不做截屏演示) 二、安装秘钥 1、百度搜索关键词VMware秘钥,秘钥不一定都有效,一个一个试总有一个可以的 ​​​​​…

虚拟机VMware的安装及使用

一 虚拟机VMware的安装 1.准备工作 1)需要软件VMware安装包 VMware下载地址: http://www.uzzf.com/soft/51188.html 2)需要一个系统镜像 windows系统: http://www.xitongcheng.com/win7/ ubuntu系统镜像下载: http://www.ubuntu.org.cn/do…