弱监督目标检测之二 连续优化多实例学习

2023-11-17

上一次的博客提到了我们实验室发表在CVPR2018以及IEEE TPAMI上的工作MELM[1],这一次的博客进一步介绍基于MELM的最新的工作C-MIL,也是实验室今年被CVPR2019接收的4篇论文之一,《C-MIL: Continuation Multiple Instance Learning for Weakly Supervised Object Detection》。论文也是今年CVPR oral。C-MIL基于VGG16的骨架网络在PASCAL VOC 2007上取得了state-of-the-art的目标检测结果,mAP为50.5,比我们之前的工作MLEM的性能47.3有一个很大margin的性能提升。代码将会开源。在论文中,我们提到了一种基于连续优化的方法,更好地解决弱监督目标检测问题的非凸性,将图片bag中的实例proposals进行有效地划分,划分的每一个子集subsets里面的每一个实例有类别(有相似的类别得分)和空间之间(实例之间有重叠并超过一定的阈值)的联系,并在相应的子集上定义相应的更加光滑smooth的目标函数,从而不同的subsets的目标函数联合去逼近最终的目标函数,从而更好地优化目标函数,避免模型较早陷入局部极小值,从而获得更好的优化结果。

下面就简要地对本文的工作进行介绍。

1  Introduction

弱监督视觉目标检测在计算机视觉领域获得了越来越高的关注度。相比于全监督设置下的目标检测,由于弱监督目标检测的监督信息只是指示图片中是否包含相应类别物体的image-level的信息,因此就大大的减少了time-consuming的bounding-box级别的标注。在前一篇博客中也介绍了很多相关的工作,都致力于解决弱监督目标检测存在的一些问题,比如定位的随机性,由于问题的非凸性导致的局部极小值以及只检测部分discriminative的parts,而不是整个物体的object extent。比如提出了空间正则化方法WCCN[2],WSDNN[3],MLEM[1],加入语义context信息ContextLocnet[4],以及渐进的优化WCCN[2],progressive domain adaptation[5],OICR[6]等。

在本文中,我们在多实例学习Multiple Instance Learning中引入了continuation方法,提出了C-MIL模型以更好地解决非凸性问题。C-MIL把每一张图片看做一个bag,图片中的每一个proposal看做实例。在训练过程中,不同于传统的MIL方法只学习到了物体最具特征判别力的部分,C-MIL学习到了实例的子集,子集中的每一个实例是空间(实例之间有一定的重叠)和类别(实例得分相似)相关的。

这一些实例的子集是根据continuation参数进行划分的,在本文中我们提到了几种不同的continuation参数设置方法,比如线性、Sigmoid、指数、对数等。当参数为最小值的时候,图片划分为一个子集,其中这一个子集包含了所有的实例proposals,这时候C-MIL的损失函数是凸的分类损失函数。当参数设置为最大时,每一个实例就是一个子集,这时候目标函数就是非凸的MIL的损失函数。在训练过程中,参数就设置为从最初的训练epoch到最后的epoch数值从最小0到最大1。用这样的方式,我们可以用一系列的易于优化的光滑的函数去逼近原来的损失函数。图1是MIL和C-MIL的优化过程的对比。

通过端到端的训练,每一张图片中的最具判别力的子集会被挖掘,而其他的子集内的实例将会被抑制。

                                        

                                                                                                             图 1

总结一下,我们的贡献主要是下面三个。

  1. 提出了一个很novel的C-MIL的框架,通过使用一系列的光滑的易于优化的损失函数对原来的损失函数进行优化,减轻多实例学习过程中的非凸性。
  2. 提出了一个实例子集划分的参数策略,并结合深度神经网络去激活full object extent。

      3. 在常用的目标检测数据集上获得了state-of-the-art的弱监督目标检测与定位性能。

2.  Methodology

下面介绍一些论文的名词定义。

为第个bag(图片),为所有的bags,的标签,指示是否包含正的instance,其中,-1代表负例图片,1代表正例图片。分别代表bag图片中的实例和相应的标签,,N代表中实例的个数,为待学习的网络参数。

2.1  MIL Revisit

有了上面的约定,MIL方法可以分为两个交替优化的步骤:实例选择和检测器估计。在实例选择阶段,一个实例选择器可以计算每一个proposal的类别得分,最后根据计算的得分进行正样本挖掘。

                                                                                                                                                  公式 1

其中是得分最高的proposals。

在检测器估计阶段,采用上面选择的实例训练实例分类器分别是实例选择器和实例分类器的网络参数。

MIL网络,将上面的两个步骤结合在一起,将两个子网络的参数联合进行优化,损失函数定义如下。

                                                                                                                     公式 2

其中第一项为标准的hinge loss。

                                                                                                                   公式 3

第二项为实例分类器的损失函数。

                                                                                                             公式 4

其中的标签,按照下面的方式进行定义。

                                                                                                                                         公式 5

其中如果否则

2.2  Convexity Analysis

考虑到对一系列凸函数的值取最大值得到的函数还是凸函数。当,公式3是凸的,但是当,就是非凸的。因此MIL网络的损失函数(公式2)是非凸的,因此会存在一些局部极小值。这样一旦检测器采用这些不够准确的instances进行训练,会导致检测器的性能受到很大的影响,特别是在早期的训练阶段就被误导。

因此下面的两个问题是需要解决的,第一是如何优化非凸函数;第二是在实例选择器未被训练好的早期阶段怎么进行实例的选择。

2.3  Continuation MIL

C-MIL方法从模型优化的开始到结束会定义一系列光滑的损失函数并得到相应的解,,其中时的解,时候的解。在模型训练的过程中,定义了一系列的,分别对应不同的训练epoch,公式2的损失函数在不同的epoch会以一下相应不同的方式呈现。

                                                

                                                                                                                      公式 6

是实例子集,的index。这样是实例选择的损失函数,是实例分类器的损失函数。

Continuation Instance Selection

当训练实例选择器的时候,一个bag按照一定方法分为一个个的实例子集,其中每一个实例子集中的实例有前面所说的空间和类别上的联系。实例子集建立方法如下。

  1. 选择得分最高但是还未属于任何一个实例子集的实例(proposal)建立一个新的实例子集;
  2. 将那些与上述得分最高的实例重叠超过或者等于的实例归入该新的实例子集。迭代重复进行上述两个步骤即可。

这里需要对λ的两个特例进行说明,当的时候,每一个被划分一个单个的包含bag所有实例的子集,而当的时候,每一个实例就是一个子集。该实例选择器的损失函数如下。

                                                                                                                                                                                                                                                                                                                                           公式7

其中f是实例子集的得分,定义如下。

                                                                                                                                               公式 8

|Bi,J(λ)|是子集Bi,J(λ)中的实例个数。Bi,j∈Bi,J(λ)。MIL与C-MIL实例选择的差异如图2所示。

                                              

                                                                                                                      图 2

Continuation Detector Estimation

得分最高的实例子集用于检测器的训练。这里采用一个continuation的方法对子集中的实例进行选择,将其实例分为正类实例和负类实例。定义子集中得分最高的实例为,然后按照以下的方法对实例进行正负分类。

                                                                                                                                         公式 9

检测器的损失函数定义如下。

                                                                                                                     公式 10

2.4  Implementation

系统整体实现架构图如下所示。

                                                            

                                                                                                                            图 3

上面提到的两个模块加在骨架网络倒数第二个全连接层的top。采用Selective Search方法为每一张图片产生大概2000个proposals,然后将图片依次通过骨架网络的全卷积层,最后在全卷积层的top层(CNOV5)的feature map上进行ROI-pooling从而产生对每一个proposal的特征表达,最后再经过两个全连接层进行特征的进一步提取,最后再经过上述的两个模块进行相应的实例选择以及实例分类。

3.  Experiments

C-MIL在PASCAL VOC 2007和PASCAL VOC 2012上进行了测试,都取得了state-of-the-art的定位和检测性能。

相关的更加detailed的实验设置见原论文。下面将对相应的实验结果进行展示。

3.1  Continuation Method

这一部分主要是评估参数的设置方式以及连续优化方法对最终性能的影响。

Continuation parameter

主要采用了前面已经提到过的5中参数控制方法(见图4)。

                                         

                                                                                                   图 4

而相应的参数控制策略对最终性能的影响如图5所示。

                                         

                                                                                                  图 5

Continuation optimization

Continuation优化方法对最终性能的影响如图6所示。

                               

                                                                                        图 6

可见实例选择和目标检测器都加上连续优化的方法可以显著提高检测的性能。在图7显示了MIL和C-MIL方法的定位和分类的性能比较。在早期训练阶段,MIL的性能优于C-MIL的性能,但是后面C-MIL的性能最终赶上了MIL的性能。但是对于检测来说,由于MIL会定位一些最具discriminative的部分,但是存在忽略full object extent,,但是C-MIL会同时优化分类和检测,因此在后面的训练阶段C-MIL的定位结果优于MIL的结果。

                                         

                                                                                                            图 7

3.2  Performance Comparation

基于VGG16骨架网络的C-MIL在主流的数据集PASCAL VOC 2007和PASCAL VOC 2012上同其它方法的性能比较如下。

                                       

                                                                                               图 8

                                            

                                                                                                图 9

在PASCAL VOC 2007数据集上的定位性能见图10.

                                         

                                                                                                          图 10

本论文提出了一个有效的C-MIL框架用于弱监督目标检测。C-MIL采用一系列光滑的损失函数逼近原来的损失函数的从而减轻多实例学习问题的非凸性。这些光滑的易于优化的损失函数定义在按照参数策略划分的子集上。提出来的C-MIL方法显著地提高了弱监督目标检测的性能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

弱监督目标检测之二 连续优化多实例学习 的相关文章

  • C语言中的结构体(struct)

    C语言中 结构体类型属于一种构造类型 其他的构造类型还有 数组类型 联合类型 本文主要介绍关于结构体以下几部分 1 概念 为什么要有结构体 因为在实际问题中 一组数据往往有很多种不同的数据类型 例如 登记学生的信息 可能需要用到 char型
  • TCP滑动窗口和拥塞控制

    目录 滑动窗口 什么是滑动窗口 为什么要使用滑动窗口 滑动窗口的工作原理 滑动窗口会出现的几种问题 数据包丢失怎么解决 ACK丢失怎么解决 拥塞控制 拥塞控制是什么 拥塞控制的实现 理解拓展 拥塞控制是如何判断网络拥塞情况的 滑动窗口 什么
  • 虚拟机防火墙以及端口操作

    CentOS7 firewalld 默认安装 和 iptables 都不是防火墙 它们只是防火墙的管理程序 防火墙的开启 关闭 禁用命令 设置开机启用 禁用防火墙 systemctl enable disable firewalld ser
  • ⛳ 面试题-单例模式会存在线程安全问题吗?

    目录 面试题 单例模式会存在线程安全问题吗 一 单例模式 简介 二 饿汉式 三 懒汉式 3 1 懒汉式 在调用 getInstance 的时候才创建对象 线程不安全 3 2 改造1 对懒汉式进行加锁改造 线程安全 3 3 改造2 对懒汉式继
  • 网络抓包命令

    Linux环境下抓包 可以使用tcpdump命令 tcpdump i ens192 w dataAll pcap port 8008 这其中 ens192 指代网卡 可以通过ifconfig获取 也可以直接用 any 代替 意思是抓取全部网
  • CSS快速实现居中

    上效果 实现 父元素 diplay flex div用 margin auto
  • Windows7(sp1)上第一次搭建Flutter开发环境踩坑记录

    环境变量的配置 系统环境的要求 SDK的下载这些在Flutter中文网和各种博客中已经讲的很多了 过程中有问题也可以很快的解决 有一点需要说一下 我先是从Flutter中文网直接下载的SDK压缩包 解压后在Flutter目录下打开flutt
  • linux启动kvm虚拟机,CentOS 7系统KVM虚拟机支持UEFI启动

    1 安装OVMF Open Virtual Machine Firmware root DT Node 172 30 200 203 cat gt etc yum repos d kraxel repo lt create new qemu
  • nginx 卸载后重新安装/etc/nginx配置文件没了,cannot open /etc/nginx/nginx.conf (No such file or directory)

    sudo apt get purge remove nginx common sudo apt get purge remove nginx sudo apt get autoremove sudo apt install nginx
  • 解决nginx报错:502 Bad Gateway以及504 Gateway Time-out问题

    wordpress及宝塔面板的基本环节 出现nginx错误 502 Bad Gateway 502 Bad Gateway以及504 Gateway Time out 504 Gateway Time out问题后的解决办法 更多分类文章
  • Intellij IDEA 自动生成 serialVersionUID

    Setting gt Inspections gt Serialization issues gt Serializable class without serialVersionUID 选上以后 在你的class中 Alt Enter就会
  • 网络安全行业的那些岗位

    网络安全行业 正在蓬勃发展 想要找网络安全岗位的 可以参考这篇文章 一 网络安全岗位 1 需要网络安全人员的企业 有三种企业招聘网络安全人员 乙方企业 甲方企业 国有企业 乙方企业是专门从事网络安全行业的企业 为客户提供安全产品 如防火墙
  • VMware vRealize Suite 8.8.0

    https pan baidu com s 16 VtEGgAMia8vLjMweHjGA 输入提示信息 j323 目录 VMware vRealize Suite 2019 8 8 0 百度网盘群共享 629229614 VMware爱好
  • 抖音,B站,小红书三大平台品牌投放特征与建议

    目前 小红书 抖音 B站作为品牌投放的主要平台 应该如何选择 一 抖音 平台特征 用户类型 抖音用户男女均衡 以19 30岁年龄阶段用户为主 一二线城市用户偏多 南方用户偏多 内容形式 表演剧情 vlog 颜值出境等丰富多样的短视频展示形式
  • 【雅思备考】写作表达积累

    小作文 Line graph amount of source of provided generating 用来描述来源 means of xxx generation 生产方式 over a period of over the per
  • 【重磅推荐】vue之web3.js以太坊开发总结与完整案例!

    一个完整的Vue web3 js 基于Metamask开发测试和正式上线 FirstContract sol文件 pragma solidity gt 0 4 24 lt 0 7 0 contract FirstContract strin
  • www外部异步加载(不卡)-适合大量加载

    www外部异步加载 不卡 适合大量加载
  • 第一二天作业-BGP MPLS + OSPF分流互备做法

    三 MPLS OSPF分流互备做法 MPLS OSPF分流互备做法配置命令 在中间骨干区域所有路由器先配置OSPF 然后在中间骨干区域所有路由器上配置MPLS 先创建mpls lsr id 在全局开启mpls 在全局开启mpls ldp 在
  • Linux操作系统的层次与组成

    1 Linux操作系统的层次结构 简单来说 Linux操作系统整体分为三层 1 硬件系统 包括CPU 内存 硬盘 网卡等 2 内核 这是操作系统的核心 负责管理硬件系统 同时为上层的应用程序提供操作接口 3 用户进程 表示计算机中运行的所有
  • java版微信和支付宝 支付的调起 和 回调

    写下项目中经常用到的微信和支付宝支付的拉起和回调的代码 1 支付参数和退款参数的封装 package co yixiang modules storePaymentOrder payment dto import lombok Data 支

随机推荐

  • tensorflow训练的模型,用C++ 部署,需要的看过来

    目录 1 先准备tensorflow 和 opencv 的lib 2 项目配置就不说了 3 试一下效果 4 代码 首先 感谢一下rockingdingo Issues rockingdingo tensorflow tutorial Git
  • 入行IT,为什么建议你学Java?

    计算机编程语言 顾名思义 是人用来跟计算机交流的编程语言 学好一门热门的计算机编程语言进入IT行业 获得较高的薪资是没有问题的 关键是热门的计算机编程语言超级多 计算机编程语言入门学什么好 当然是Java 想必很多朋友也很好奇 如此多的计算
  • 【Web方向】 PHP代码审计 CTF题目wp1

    目录 一 第一步 二 第二步 三 第三步 四 第四步 README 一 第一步 分析这道题 是要求使判断条件符合 然后输出flag 第一个if语句是不能直接给data赋值Welcome to CTF的 否则会这样无反应 查了下才知道这是因为
  • 四十一.枚举问题2.生理周期

    生理周期 解题思路 从d 1天开始 一直试到第21252天 对其中每个日期k 看是否满足 k p 23 0 k e 28 0 k i 33 0 include
  • 全自动高清录播服务器,全自动高清录播服务器 高清录播系统

    高清录播系统外观参数 规格参数是了解一台设备的基础 多家高清录播服务器对比之后发现虽有小异 却基本相同 那如何从外观参数上决出移动录播主机的是否高能呢 从外观看常规移动录播主机大小与功能成正比 其次 常规的移动录播主机虽配有高频 CPU 功
  • (Ext基础篇) 弹出窗口

    从外观上来讲 浏览器自带的alert confirm prompt等对话框并不好看 而且配置也不灵活 诸如按钮的添加 删除 以及修改按下按钮所触发的事件等操作都非常难以执行 而在EXT的msgbox里都能实现 而且外观相当漂亮 本节将详细介
  • Idea内存占用过高解决方法

    问题描述 大多数人都知道使用idea时 发现idea内存消耗比较严重 尤其开启了idea后 CPU占比可以直接飙升到100 这主要体现在刚启动的时候 系统的内存高达80 以上 甚至风扇呼呼作响 于是开始找各种解决方案 目前 就我个人电脑来说
  • Ruby on Rails微信开发1——开发模式的启用与接口配置

    参照博客 027 微信公众帐号开发教程第3篇 开发模式启用及接口配置 根据微信开发者文档 启用公共平台开发者模式并进行接口配置流程如下 加密 校验流程如下 1 将token timestamp nonce三个参数进行字典序排序 2 将三个参
  • Spark SQL 之 Temporary View

    Spark SQL 之 Temporary View spark SQL的 temporary view 是支持原生SQL 的方式之一 spark SQL的 DataFrame 和 DataSet 均可以通过注册 temporary vie
  • 华为OD机试真题-跳房子II-2023年OD统一考试(B卷)

    题目描述 跳房子 也叫跳飞机 是一种世界性的儿童游戏 游戏参与者需要分多个回合按顺序跳到第1格直到房子的最后一格 跳房子的过程中 可以向前跳 也可以向后跳 假设房子的总格数是count 小红每回合可能连续跳的步数都放在数组steps中 请问
  • 《三》微软Dynamics CRM 2016单服务器安装部署(Dynamics CRM 2016 安装)

    Microsoft Dynamic CRM 2016安装 在 AD域控和数据库服务器安装好的前提下 接下来我们来安装 Dynamic CRM Server 一 以具有管理员级别特权的用户身份登录到将安装Microsoft Dynamics
  • 如何使用Log4j?

    1 Log4j是什么 Log4j可以帮助调试 有时候debug是发挥不了作 用的 和分析 要下载和了解更详细的内容 还是访问其官方网站吧 http jakarta apache org log4j 2 Log4j的概念 Log4j中有三个主
  • Springboot Maven或Gradle 解决log4j2漏洞

    log4j2漏洞风靡全球 影响的版本范围 Apache Log4j 2 x lt 2 14 1 根据官方的解释需要将log4j2包的版本 升级到2 15 0 测试使用 Springboot 2 1 5 Gradle 6 3版本进行测试 当时
  • Spring 中的切点表达式介绍

    Spring 中的切点表达式介绍 翻译原文链接 Introduction to Pointcut Expressions in Spring 1 概述 在本教程中 我们将讨论 Spring AOP 切点表达式语言 In this tutor
  • Windows系统加固指引

    Windows系统加固指引 前言 1 禁用Guest账户禁用或删除其他无用账户 2 更改默认Administrator用户名 3 不显示最后登录的用户名 4 密码复杂度要求设置 5 windows帐户锁定策略 防止暴力破解 6 删除用户和组
  • leetcode专项刷题_数组(2)_两数之和/访问所有点的最小时间/统计有序矩阵中的负数/种花问题

    文章目录 两数之和 II 输入有序数组 题目解释 代码实现 访问所有点的最小时间 题目解释 代码实现 统计有序矩阵中的负数 题目解释 代码实现 种花问题 题目解释 代码实现 检查整数及其两倍数是否存在 题目解释 实现代码 两数之和 II 输
  • 云计算大会观感及对云计算的思考

    我思故我在 我眼中的第四届中国云计算大会 作者 朱金灿 来源 http blog csdn net clever101 承蒙CSDN的邀请 于2012年5月23日到5月25日参加了第四届中国云计算 在我看来这届大会的最大亮点是在于嘉宾的技术
  • kafka 安装使用及cpp kafka例子

    1 下载kafka 安装包 wget http mirrors tuna tsinghua edu cn apache kafka 2 3 0 kafka 2 12 2 3 0 tgz tar xvzf kafka 2 12 2 3 0 t
  • Codeforces Round 896 (Div. 2) A~D

    A Make It Zero 思路 长度为偶数 从1到n操作两次 长度为奇数 先从1到n操作一次 然后从1到n 1做两次 最后n 1到n做一次 AC代码 include
  • 弱监督目标检测之二 连续优化多实例学习

    上一次的博客提到了我们实验室发表在CVPR2018以及IEEE TPAMI上的工作MELM 1 这一次的博客进一步介绍基于MELM的最新的工作C MIL 也是实验室今年被CVPR2019接收的4篇论文之一 C MIL Continuatio