(论文)WS-DAN (弱监督数据增强)

背景

  • 近期在做外卖分类的项目,外卖分类属于细粒度图像分类,在分类的过程中要从图片的行人中和非机动车中区分出各类外卖(主要是美团、饿了吗)。刚好近期发现了一片关于细粒度图像分类较新的论文(See Better Before Looking Closer: Weakly Supervised Data Augmentation Network for Fine-Grained Visual Classification),于是就准备亲生尝试一下。
  • 论文地址:https://arxiv.org/pdf/1901.09891.pdf 点击阅读

目录

  • Weakly Suprevised Learning(弱监督学习)
  • Data Augmentation(数据增强)
  • WS-DAN (Weakly Supervised Data Augmentation Network)(弱监督数据增强网络)

Weakly Suprevised Learning(弱监督学习)

什么是弱监督学习

弱监督是相对监督而言,所谓的监督简单的说就是label,所以监督的强弱就是从label来划分的,弱监督就是data的label并不是很完善的情况,其种类如下:

  • 不完整监督: 部分样本label缺失。 即只有训练数据集的一个(通常很小的)子集有标签,其它数据则没有标签。在很多任务中都存在这种情况。例如,在图像分类中,真值标签是人工标注的;从互联网上获得大量的图片很容易,然而由于人工标注的费用,只能标注其中一个小子集的图像。
  • 粗粒度监督: 只有粗粒度的标签。 又以图像分类任务为例。我们希望图片中的每个物体都被标注;然而我们只有图片级的标签而没有物体级的标签。比如说你有一张水果的图片,但是你不知道图片中的水果具体是苹果还是梨。
  • 不准确监督:给的label包含噪声,甚至是错误的label,比如把“行人”标注为“汽车”。 即给定的标签并不总是真值。出现这种情况的原因有,标注者粗心或疲倦,或者一些图像本身就难以分类。

Data Augmentation(数据增强)

数据增强是常用的增加数据训练数据量的方法,被用来预防过拟合和提高深度学习模型的表现。在计算机视觉领域实践应用中常用的数据增强方法主要有:剪裁、翻转、旋转、比例缩放、位移、高斯噪声以及更高级的增强技术条件型生成对抗网络(Conditional GAN)。

  • 剪裁(Crop):从原始图像中随机抽样一部分,然后将此部分调整为原图像大小。这种方法通常也被称为随机剪裁
  • 翻转(Flip):可以对图片进行水平和垂直翻转。
  • 旋转(Rotation):对图像按照图像中心进行旋转一定角度,并将大小作为原图的大小。
  • 比例缩放(Scale):图像可以向内或者向外缩放。向内缩放后通常图像会小于原图,通常会对超出边界做处内容假设;向外缩放后通常会大于原图,通常会新图中剪裁出一部分。(它和随机剪裁得到对图像具有一定区别,有兴趣可以自己拿一张图片试一下看一下效果)
  • 位移(Translation):对同图像中对目标按照x或y方向平移,因为多数情况,我们的目标对象可能出现在图像的任何位置。
  • 高斯噪声(Gaussian Noise):当神经网络试图学习高频特征(即非常频繁出现的无意义模式),而这些高频特征对模型提升没有什么帮助的时候发生过拟合(Overfitting)。因此,对这些数据人为加入噪声,使其特征失真,减弱其对模型的影响,高斯噪声就是这种方法之一,
  • 条件型生成对抗网络(Conditional GANs):是一种强大的神经网络,能将一张图片从一个领域转换到另一个领域中去,比如改变风景图片的季节、转换图片风格等。

讲了那么多数据增强的方法,和弱监督学习有什么关系呢?

常用的数据增强方法中有很多采用的是随机的方法增广,像随机图像剪裁,对图像处理时是采用随机对目标图像进行剪裁对方法,这样做有一定的概率是能剪裁到我们需要对目标,但是更大的概率是会剪裁到我们并不需要的目标,比如背景等噪声目标。’(WS-DAN)Weakly Supervised Data Augmentation Network’(弱监督数据增强网络)在训练过程中通过弱监督学习产生一个用来表征目标显著特征的’attention map’;然后利用’attention map’有目标性的指导数据增强(包括注意力剪裁’attention cropping’和注意力丢弃’attention dropping’等)。

WS-DAN (Weakly Supervised Data Augmentation Network)(弱监督数据增强网络)

‘WS-DAN’通过两种渠道增强图像分类的表现,一种方式:因为我们从图片中提取了显著的特征,使图片看起来更加有效’See Better’;另一种方式:注意力圈定了目标的位置,使得模型能够更‘近’的观察我们的目标从而提高模型表现’Look Closer’。

  • Attention CroppingAttention Dropping能够使模型做到See Better Before Looking CloserSee BetterAttention map表示了目标的显著特征部分。我们可以随机选择其中的一个显著特征部分将它删除,进而产生更加显著的特征部分;或者将闲着特征部分剪裁下来用于提取更加详细的特征。

 

  •  

  • 训练过程:(a)弱监督注意力学习,通过弱监督注意力学习对每一张训练图片生成一个注意力图(attention maps)来表征对象对显著特征部分。(b)注意力引导数据增强,随机选择一张注意力图,通过注意力剪裁和注意力删除的方式去增强这张图片,最后原图和增强对数据都会被作为输入数据进行训练。

 

  •  

  • 测试过程:首先原图通过弱监督学习输出目标的类别概率和注意力图;然后通过目标定位和精炼定位目标的位置;最后将前两个阶段的数据结合。

 

  •  

  • BAP(Bilinear Attention Pooling)的过程:首先通过网络的主干(如resnet18)部分分别得到特征图(a)和注意力图(b)。每一个注意力图都代表了目标的特定部分。通过对注意力图和特征图的元素点乘得到各个分部特征图,让后利用卷积或者池化处理分部特征图,最后将各个分部特征图结合得到特征矩阵。

 

实践比较

  • 注意力剪裁和随机剪裁的比较: 随机剪裁容易剪裁到图像的背景,而注意力剪裁知道取那些部分会see better。

 

  •  

  • 注意力丢弃和随机丢弃的比较: 随机丢弃可能会将整个目标丢弃或者只丢弃背景部分,而注意力丢弃对剔除目标显著部分和的注意力求具有更高的效率。

 

补充

  • bilinear pooling:主要是外积,主要用于组合cnn(a和b)的feature map

 

  •  

  • 代码地址:https://github.com/GuYuc/WS-DAN.PyTorch 点击跳转

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/540104.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

罗马音平假名片假名转换器_关于五十音你所要知道的一切!文末附日网高清字帖...

今天开始,木子小花日本语教室将开始同时更新日语文法系列文章 和 日语真题详解系列文章,从五十音图的记忆方法到日语助词的用法整理,从N5的简单句子构成到N1复杂文法的接续记忆方法,力求做出全知乎(小声:全…

django的web开发笔记1(智能诊断系统数据概览记录)

接于上一篇,这一篇主要记录如何链接mysql数据库以及从数据库中调用数据信息到页面,同时包含百度地图api的一些使用。 其中包括模块,echert图表绘制数据调用,百度地图数据信息调用以及一些单机效果,页面数据调用等。 1…

左右xcode的重构选项的一些理解

Rename(重命名):对标示符进行重命名,以获得更好的代码可读性,这些标示符包含类,方法或者函数的名称. Extract(抽取):将你在XCode种选择的代码抽取到一个新的方法或函数中. Create SuperClass(创建父类):为Xcode中当前所选的类定义父类 Move Up(上移):将所选择的方法,属性,或实例…

window 如何查看tomcat 实时日志_如何处理生产环境Tomcat的catalina.out日志?

前语:不要为了读文章而读文章,一定要带着问题来读文章,勤思考。作者:jmcui 来源:http://1t.click/x4q# 前言随着每天业务的增长,Tomcat 的catalina.out日志 变得越来越大,占用磁盘空间不说。要…

paddlepaddle测试安装_百度paddlepaddle深度学习7日入门-CV疫情特辑心得

正值疫情严重之日,作为一名研究生被迫待在家里学习,手头的科研项目也严重受挫。。。偶然间,看到微信公众号发布这门课,马上报名,入坑!!!瞬间疫情其间有学习的目标了。。该课程学习依…

apache目录 vscode_VsCode搭建Java开发环境(Spring Boot项目创建、运行、调试)

VsCode搭建Java开发环境(Spring Boot项目创建、运行、调试)安装如下两个主要扩展即可,这两个扩展已关联java项目开发主要使用的maven、springboot等所需要的扩展。开始步骤:在 Visual Studio Code 中打开扩展视图(CtrlShiftX)。输入“java”搜索商店扩展…

android dp转px的公式_Android特效专辑——自定义不一样的Toast

大家都知道,Android的控件有时候很难满足我们的需求,所以我们需要自定义View。自定义的方式很多,有继承原生控件也有直接自定义View的,今天写的是自定义的Toast,当然,这个不是复写Toast,是换一种表达形式&a…

code iban 是有什么组成_深入浅出Zookeeper(四):客户端的请求在服务器中经历了什么...

作者 泊浮目 沃趣科技高级研发工程师出品 沃趣科技1. 前言当我们向zk发出一个数据更新请求时,这个请求的处理流程是什么样的?zk又是使用了什么共识算法来保证一致性呢?带着这些问题,我们进入今天的正文。2. 设计模式&#xff1…

启动activemq_「Java」 - SpringBoot amp; ActiveMQ

一、消息队列消息队列中间件是分布式系统中重要的组件,主要解决应用耦合、异步消息、流量削锋等问题,实现高性能、高可用、可伸缩和最终一致性架构,是大型分布式系统不可缺少的中间件。目前在生产环境中使用较多的消息队列有ActiveMQ、Rabbit…

永不休眠怎么设置_电脑休眠后应该怎样唤醒?

可能有朋友会碰到这种情况,电脑屏幕显示正在休眠,而且不停的转圈,这是怎么回事,如何唤醒?下面让坚哥为大家分析一下吧。电脑开机显示休眠一般根据以下几种情况进行处理:1、正常电脑休眠:一般的是按一下电源…

配置ssl证书_Mysql配置ssl证书

本环境基于mysql5.6配置,通过openssl生成证书进行配置一、确认环境信息1、查看数据库版本mysql> select version();-----------| version() |-----------| 5.6.36 |-----------2、查看数据库是否支持ssl配置mysql> show variables like have%ssl%;-----------…

如何让图片充满excel单元格_如何在Excel单元格建立下拉菜单

对于一些常用的数据我们往往会希望能够尽量快速的输入,下拉菜单就是一个最简单的解决办法。那么如何实现下拉菜单呢?跟随以下步骤,建立属于自己的下拉菜单吧!如何建立下拉菜单?一、确定内容:在单元格中&…

pgsql中float4导致java程序精度丢失_Java基础系列02

注释Java中支持三种注释:1.单行注释以//开始换行结束。2.多行注释以/*开始,以*/结束。3.说明注释以/**开始,以*/结束。关键字关键字:是指在程序中,Java已经定义好的单词,具有特殊含义。例如上篇文章中Hello…

用idea建立jsp项目_用idea创建maven项目,配置tomcat详解

用idea创建maven项目,配置tomcat详解,电脑上得有jdk1.7,或者1.8,然后就是maven3.x吧,再有就是tomcat7以上下面就直接开始看图啦:这个我刚刚开始没注意细看,原来web app 的骨架有2个呢&#xff0…

求立方根_初一数学立方根考点详解,立足基础,把握题型,学会方法

初一数学实数部分,平方根和立方根这两部分的知识点比较的基础,但是考试中却是经常会考,并且有很多的“陷阱”,也是让学生猝不及防,今天我和同学们继续学习交流立方根的知识点,通过详解考点,帮助…

mysql双主数据一致性_MySQL双主一致性架构优化 | 架构师之路-阿里云开发者社区...

一、双主保证高可用MySQL数据库集群常使用一主多从,主从同步,读写分离的方式来扩充数据库的读性能,保证读库的高可用,但此时写库仍然是单点。在一个MySQL数据库集群中可以设置两个主库,并设置双向同步,以冗…

spool导出姓名中文乱码_MySQL不同字符集转化标准—7步实现,杜绝乱码!

引言作为资深的DBA程序员,在工作中是否会遇到更这样的情况呢?原有数据库的字符集由于前期规划不足,随着业务的发展不能满足业务的需求。如原来业务系统用的是utf8字符集,后期有存储表情符号的需求,uft8字符集就不能满足…

easyexcel 设置标题_使用easyexcel完成复杂表头及标题的导出功能(自定义样式)

如需客户端指定excel版本,只需要判断后缀名然后在controller中的.excelType(ExcelTypeEnum.XLS)做指定输出内容格式即可***(注意表格行高列宽统一设置是在实体类的类名注解上,如果需要对表格进行精细的宽高设置需要删除掉这两个注解,可以在拦截器使用row的方法进行设置)1. ## 引…

nmon安装为什么重启mysql_Nmon的安装及使用

一、下载Nmon根据CPU的类型选择下载相应的版本:二、初始化工具[rootmululu ~]# cd /opt[rootmululu opt]# mkdir nmon[rootmululu opt]# cd nmon[rootmululu nmon]#wget http://sourceforge.net/projects/nmon/files/download/nmon_x86_12a.zip[rootmululu nmon]# u…

Iptables详解+实例

2019独角兽企业重金招聘Python工程师标准>>> Iptabels是与Linux内核集成的包过滤防火墙系统,几乎所有的linux发行版本都会包含Iptables的功能。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则Iptables有利于…