点击我爱计算机视觉标星,更快获取CVML新技术


机器之心发布

机器之心编辑部

近年来最新的一系列实例分割模型,例如 Mask R-CNN 等,其高准确度很大程度上依赖于大量的训练数据(COCO 数据集包含 20 余万张训练图片)。但是获取像素级别的标注是一项成本高昂且复杂精细的工作。为此,上海交通大学 MVIG 实验室(卢策吾团队)提出了 InstaBoost——一种基于 crop-paste 的实例分割数据增强方法。实验表明,在 Mask R-CNN 和 Cascade R-CNN 等框架中应用 InstaBoost,可以在 COCO 实例分割数据集上达到 2.2 mAP 的提升。同时,该方法还能够将物体检测的精度在 COCO 数据集上最高提升 4mAP。该论文已被ICCV 2019接收。

目前,研究团队已将代码及训练好的模型全部开源,包括 Res50, Res101 base 的 Mask R-CNN, Cascade Mask R-CNN, SSD 等,未来还将有更多模型开源,如 yolact 等。

该方法的操作非常简单,目前已发布为 pip 包,只需 python 中加一行代码,import instaboost,换一个 dataloader 函数就可以在 COCO 实例分割数据集上实现显著的性能提升。

近年来,基于 CNN 的深度学习算法,如 Mask R-CNN 等,在实例分割任务中有了非常广泛的应用。但是出于像素级别的标注成本高,周期长,难度大等原因,这些深度学习框架的潜力因为缺少大量的训练数据而难以被充分挖掘出来。

此前我们报道过,Google 研究团队曾研究利用 bounding box 标签,运用强化学习进行数据增强,并获得了一定提升。不过,在实例分割领域,如何利用 mask 标签在 COCO 数据集上获得提升,仍是一个需要探索的问题。

然而实例分割这种像素级的分类要比目标检测难很多,对应的数据增强也要困难很多,这主要体现在它并不能随意把目标切割并移到另外的背景上,因为它们对分割结果也有很大的影响。

来自上海交通大学 MVIG 实验室的研究人员在实例分割应用中对其进行改进优化,成功的将模型的实例分割精度大幅提升,同时也能实现目标检测的提升。

  • 论文地址:https://arxiv.org/abs/1908.07801

  • 代码地址:https://github.com/GothicAi/InstaBoost

    演示Demo:

实例分割任务中的数据增强

早期一些方法使用 domain adaptation 等思路,将其他领域的数据作为信息来源辅助数据增强,但是这些方法没有充分利用训练集的 mask 标注信息。

近期一些研究使用基于 crop-paste 的方法在目标检测任务中取得了不错的效果。简单来说,这些方法将物体按照 mask 标注的信息从原图片中剪下来,然后粘贴到一个随机的背景图片上。但是研究者发现这种方法在分割任务中,由于实例和背景契合程度较差,在实验中表现比 baseline 要差。为了解决这一问题,一些论文提出了使用 context model 去为二者一致性打分,但是这种该方法计算成本过高,难以在实际场景中应用。

研究者在这篇论文中提出了两种递进的实例层面的数据增强算法:Random InstaBoost 和 Map-guided InstaBoost。这类算法极大地提高了检测和分割精度。

Matting 和 Inpainting

在将图片前景和背景按照标注进行分离的过程中,如果完全按照标注去切割前景,前景的边界处会呈不自然的多边形锯齿状,这与 COCO 数据标注方式有关。为了解决这一问题,研究者使用《A global sampling method for alpha matting》一文中提出的方法对前景轮廓做 matting 处理,以得到与物体轮廓契合的边界。

在前景背景分离后,背景上会存在若干个空白区域,这些区域可以使用 inpainting 算法进行填补。论文中使用了《Navier-stokes, fluid dynamics, and image and videoinpainting》文章中提出的 inpainting 算法。

从左至右:原图,inpainting 处理后的背景,matting 处理后的前景。

Random InstaBoost

为了尽可能保证粘贴后前景和背景融合的契合程度,直觉上来说将前景粘贴到原位置的附近是最可靠的。Random InstaBoost 方法即是在上述先验的判断下提出的。研究者通过定义一个四元数 (tx, ty, s, r) 来映射前景在数据增强前后的变换。四个参数从左至右分别表示了水平位移,垂直位移,放缩程度和旋转角度。将这四个参数在 (0, 0, 1, 0) 附近进行独立的随机扰动,即可生成一系列符合外观一致性的增强图片。

Map-guided InstaBoost

在 Random InstaBoost 方法中,前景的中心位置 (x,y) 被严格限制在了原位置 (x0,y0) 附近。为了解决这一问题,作者提出了使用外观一致性热度图(appearance consistency heatmap)来引导前景中心粘贴的位置。

外观一致性热度图计算原理大致如下。

外观描述符 D(•)

公式中,(cx, cy) 表示实例的中心坐标,Ci 表示第 i 个轮廓线,wi 表示其对应的权重,i=1 表示最内部的轮廓线。轮廓线通过将实例轮廓膨胀后取差集获得。如下图所示,内外黑色区域之前的三个不同深度区域即为果盘的三个轮廓线。在 w 的取值上,我们按照先验,规定越靠近实例影响越大,权重越大,即 w1>w2>w3。

外观距离

外观距离定义为,外观描述符之间局部外观一致性的度量。由于我们已经定义了具有三个轮廓区域和相应权重关联描述符,D1=D(c1x, c1y) 和 D2=D(c2x, c2y) 之间的外观距离被定义为:

其中 Ik(x, y) 表示图片 k 在 (x, y) 坐标像素点的 RGB 值,Δ可以表示任何距离公式,在实验中作者使用了欧氏距离。对于部分坐标点移出图片的情况,我们将其距离定义为无穷大。

热度图生成与引导平移

通过固定 D0 为实例的原始位置,遍历图片中其余像素点,计算背景上所有可能的 d(D, D0),并通过下列公式将其归一化:

其中 M=max(d(D, D0)),m=min(d(D, D0))。通过将 h(•) 映射到背景图片上的每一个像素,即可获得一个热度图。通过热度与概率之间的映射,可以使用蒙特卡洛方法进行采样,得到高外观一致性的粘贴位置。下图为几则热度图与增强后的实例。

实验结果

在实验过程中,作者使用 Mask R-CNN 和 Cascade R-CNN 两个框架在 COCO 数据集上分别进行了测试,测试结果如下图所示。结果显示,在目标检测和实例分割任务上,InstaBoost 在 mAP 标准下最高带来 4mAP 和 2.2mAP 的提升。

研究人员还使用 Mask R-CNN 在 VOCSDS 数据集上进行实验,目标检测和实例分割提升分别是 4.2mAP 和 3.9mAP,仍旧十分可观。

随后,研究人员从速度和鲁棒性方面将 InstaBoost 与现有方法进行对比。

从速度上来看,InstaBoost 可以作为在线算法嵌入到 dataloader 内部,在 Mask R-CNN 上对比,使用前后每轮迭代仅增加了 0.03s 的时间成本。而使用 context model 的算法,需要对特定数据集预先进行训练等操作,花费大量额外时间,并且难以作为在线算法内嵌到代码框架内。

从鲁棒性的角度来看,传统的 Mask R-CNN 的框架,在训练到 24 个 Epoch 的时候,出现比较严重的过拟合现象,精度开始下降。使用 InstaBoost 之后,模型在 48 个 Epoch 之后精度仍然呈上升趋势。说明 InstaBoost 很大程度上提升了分割框架的鲁棒性。

为了更直观的反应 InstaBoost 对实例分割效果的提升,这里列出部分可视化对比结果:

  • 论文地址:https://arxiv.org/abs/1908.07801

  • 代码地址:https://github.com/GothicAi/InstaBoost


图像分割交流群

关注最新最前沿的语义分割、实例分割、全景分割技术,欢迎加入专属交流群,扫码添加CV君拉你入群,(如已为CV君其他账号好友请直接私信)

(请务必注明:分割)

喜欢在QQ交流的童鞋,可以加52CV官方QQ群:805388940。

(不会时时在线,如果没能及时通过验证还请见谅)

长按关注我爱计算机视觉

ICCV 2019 | 上海交大MVIG团队提出InstaBoost,换个dataloader函数, COCO提升3mAP相关推荐

  1. ICCV 2019 | 旷视研究院提出文字检测新方法:像素聚合网络PAN

    本文介绍ICCV 2019 旷视研究院提出任意形状文字检测模型:像素聚合网络 PAN,它考虑了任意文字识别过程中速度与精度的权衡,在大幅提升识别性能的同时也显著降低了计算量,成为当前该领域最佳方法. ...

  2. ICCV 2019 | 爱奇艺提出半监督损失函数,利用无标签数据优化人脸识别模型

    点击我爱计算机视觉标星,更快获取CVML新技术 论文发表于ICCV 2019 作者 | 爱奇艺技术产品团队 编辑 | 唐里 论文标题:Unknown Identity Rejection Loss: ...

  3. ICCV 2019 | 清华等联合提出高精度、高效率点云3D重建网络框架PointMVSNet

    点击我爱计算机视觉标星,更快获取CVML新技术 机器之心发布 作者:Rui Shen.Songfang Han.Jing Xu.Hao Su 本文介绍了一种基于点云的 MVS 神经网络框架 Point ...

  4. ICCV 2019 Oral | 解读北大提出的期望最大化注意力网络EMANet

    点击我爱计算机视觉标星,更快获取CVML新技术 本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载. 导读:本文作者为52CV分割群里一位技术大佬,论文中将期望最大化机 ...

  5. ICCV 2019 | 旷视研究院提出行人搜索当前最佳新方法

    本文中旷视研究院提出了一个基于行人重识别的定位修正框架,它能够修正行人检测的结果,使其更加有利于行人搜索任务.实验结果显示,该方法性能优于现有最领先方法. 论文名称:Re-ID Driven Loca ...

  6. ICCV 2019 | 旷视研究院提出VANet:具备视角感知力的车辆重识别网络

    本文介绍旷视研究院提出具备视角感知力的车辆重识别网络 VANet,它可以克服因被拍摄车辆的视角变化过于巨大所造成的性能严重削弱的问题. 论文名称:Vehicle Re-identification w ...

  7. ICCV 2019 | 旷视研究院推出基于深度强化学习的绘画智能体

    两年一度的国际计算机视觉大会 ICCV 2019 ( IEEE International Conference on Computer Vision) 将于当地时间 10 月 27 至 11 月 2 ...

  8. ICCV 2019 Vehicle Re-identification with Viewpoint-aware Metric Learning

    文章目录 摘要 1.引言 2.相关工作 2.1 关于重识别 2.2 深度度量学习 3.VANet 3.1 度量学习baseline 3.2 视角感知的度量学习 3.2.1 空间内约束 3.2.2 跨空 ...

  9. ICCV 2019 COCO Mapillary挑战赛冠军团队技术分享

    近日,在 ICCV 2019 Workshop 举办的 COCO + Mapillary Joint Recognition Challenge(COCO + Mapillary 联合挑战赛)公布了最 ...

最新文章

  1. 10行代码爬取全国所有A股/港股/新三板上市公司信息
  2. Linux设置SSH登录(SecureCrt)
  3. 中石油训练赛 - Watch Later(状压dp)
  4. 今天开始记录我的开发生涯
  5. php bloginfo templatedirectory,PHP变量不显示使用bloginfo('template_directory')的图像
  6. 攻防世界(Ctf-Web 新手练习区 Writeup)
  7. 安卓手机上跑_直接在电脑上浏览操作安卓手机 #效率App #scrcpy
  8. asp.net mvc5+Echarts3.0+AspNet.SignalR2.0 实时监控cpu占用率推送
  9. Git:拉取远程分支
  10. Atitit 文档资料管理同步解决方案
  11. vc6.0c语言如何延迟清屏时间,[转载]关于在vc6.0中输出运动的笑脸问题
  12. python编写函数判断奇偶数_python判断奇数
  13. 什么是独立主机?独立主机的优势有些?
  14. 微信小程序实现生成海报并且保存本地
  15. 构造-牛客寒假集训营3-牛牛的DRB迷宫II
  16. 案件被终本后,如何继续执行?
  17. 传输媒体、表示媒体、感觉媒体、表现媒体的区别
  18. 数据结构进阶(Go语言)
  19. CA认证简单介绍与工作流程
  20. 你的孤独,虽败犹荣 摘抄

热门文章

  1. GOF之行为型模式Ⅱ(重点)
  2. B. Fortune Telling
  3. android intent-filter category,android intent-filter category.DEFAULT
  4. 临键锁如何实现幻读_如何用Redis实现分布式锁?
  5. 云服务器怎么管理文件,怎么管理云服务器的文件
  6. 声场测试话筒_国内外常见的测量话筒有哪些?大师们身边必备这几款!
  7. 爬虫用java还是python_网络爬虫是用python比较好,还是Java比较好呢?
  8. poj1753_flipgame_枚举
  9. Win10 取消桌面快捷键图标
  10. vue 父向子组件传递数据,子组件向父组件传递数据方式