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

article/2025/11/11 5:52:45

Online Negative Example Mining

论文链接

背景:

在模型训练中,大量的训练数据中会存在一些难以区分的负样本,找到这样的负样例再进行针对性地训练,能够对模型精度有一定的提升。在 two-stage 的目标检测方法中,经过区域生成算法或者网络生成的 region proposals 通常会经过正负样本的筛选和比例平衡后,才送入之后的检测网络进行训练。但是正负样本的定义和训练的比例是需要人为定义的。如果要筛选 hard mining。通常使用的都是 hard negative mining 的方法。但是此方法不适用于 end-to-end 的模型。因为会大大降低模型的训练速度。OHEM是一种线上的困难负样例挖掘解决方案,可以自动地选择 had negative 来进行训练,不仅效率高而且性能好。

简单介绍:

  1. 传统 hard negative mining method:
    传统算法需要迭代训练,放入巻积神经网络,每次都需要冻结网络生成困难负样例,很难应用在端-端的检测模型。(SVM + 传统 hard negative mining method)

  2. OHEM的基准算法是Fast R-CNN,可以把交替训练的步骤和 SGD 结合起来。之所以可以这样,作者认为虽然 SGD 每迭代一次只用到少量的图片,但每张图片都包含上千个 RoI,可以从中选择 hard examples,这样的策略可以只在一个 mini-batch 中固定模型,因此模型参数是一直在更新的。
      更具体的,在第 t 次迭代时,输入图片到卷积网络中得到特征图,然后把特征图和所有的 RoIs 输入到 RoI 网络中并计算所有 RoIs 的损失,把损失从高到低排序,然后选择 B / N (B 为 Roi 总个数,N 为输入图片个数)个 RoIs。这里有个小问题,位置上相邻的 RoIs 通过 RoI 网络后会输出相近的损失,这样损失就翻倍。作者为了解决这个问题,使用了 NMS(非最大值抑制) 算法,先把损失按高到低排序,然后选择最高的损失,并计算其他 RoI 与这个 RoI 的 IoU (交叉比),移除 IoU 大于一定阈值的 RoI,然后反复上述流程直到选择了 B/N 个 RoIs。

OHEM 结构图图中的b模块正是OHEM 比 Fast R-CNN 多出的模块。

  1. 对于two-stage模型,可以把它的两部分是提取推荐框分类回归两个部分,而OHEM的作用恰好是两个部分的中间。

在提取推荐框之后,会有很多ROI传输到后面网络。这部分的输出便是推“可能存在目标的位置“,以image patch(会给数以千计的小片(你可以叫ROI,也可以叫推荐框,还可以叫image patch))的形式给到后面的分类和回归网络。分类回归会对这些小片进行分类、坐标和尺寸回归以及置信度打分(confidence, 置信度是指,模型对这个输出有多大把握)。如果在训练阶段,那可以通过这些参数与标注结果进行计算得出损失值。OHEM恰恰利用了这个损失值。

  1. 操作流程:

    1. 正常进行一次Faster RCNN的前向传播,获得每个小片单独的损失值;

    2. 对小片们进行非极大值抑制(NMS),不了解NMS点链接去了解,非常简单;

    3. 对nms之后剩下的小片按损失值进行排序,然后选用损失值最大的前一部分小片当作输入再进一遍b部分,通过这种方法,可以屏蔽掉loss值非常低的小片。loss值非常高的小片意味着,模型训练很多次还对这些小片有着很高的loss,那么就认为这是困难负例。所谓的线上挖掘,就是先计算loss->筛选->得到困难负例。

    4. 把困难负例输入到图1中(b)模块,(b)模块是(a)模块的copy版,连参数都是一样的。只是(a)模块是不可训练的,用于寻找困难负例嘛。(b)模块是用来反向传播的部分,然后把更新的参数共享到(a)部分(a部分也跟着一起更新)。其实在程序的实现上,(a)模块可以复用,不需要额外来一个(b)模块。ab部分可以并行操作:a对下一张图像进行前向,b对上一张图像进行反向。


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

相关文章

OHEM::Online Hard Example Mining--探究

paper里直接说的最初的思想就是想把bootstrapping移植到dl当中来,所以产生了ohem吧。由于bootstrapping本身是迭代算法,直接应用到dl当中,会使dl的训练变得非常慢。为此,作者借用了其核心思想–让hard example起更大的作用&#x…

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秘钥,秘钥不一定都有效,一个一个试总有一个可以的 ​​​​​…