当前位置: 首页 > 编程日记 > 正文

超越最新无监督域自适应方法,研究人员提轻量CNN新架构OSNet

640?wx_fmt=png

作者 | Kaiyang Zhou, Xiatian Zhu, Yongxin Yang, Andrea Cavallaro, and Tao Xiang

译者 | TroyChang

编辑 | Jane

出品 | AI科技大本营(ID:rgznai100)

CNN新架构OSNet

【导读】今天推荐论文《Learning Generalisable Omni-Scale Representations for Person Re-Identification》,这是一篇关于行人再识别领域的新研究(Person Re-Identification , re-ID)。这篇论文中,作者们提出了一个新的CNN架构——OSNet,在实验效果方面,这一新模型架构击败了最新的无监督域自适应方法。

640?wx_fmt=png

论文地址:

https://arxiv.org/pdf/1910.06827.pdf

Github:

https://github.com/KaiyangZhou/deep-person-reid

摘要

有效的行人再识别模型应该学习特征表示,这些特征表示既可以用于区别外观相似的人员,又可以在无需任务调整下用于跨数据集部署。

在本文中,我们提出了新的CNN架构来应对这两个挑战。首先,我们提出了一个被称为全尺度网络(OSNet)的CNN来学习特征,它不仅可以捕捉不同的空间尺度,而且可以封装多个尺度的协同组合,即全尺度特征。基本构建块由多个卷积流组成,每个卷积流检测一定范围内的特征。对于全尺度特征学习,提出了一种统一的聚合门,将多尺度特征与信道权值动态融合。OSNet是轻量级的,因为它的构建块包含分解卷积。

其次,为了改进通用特征学习,我们在OSNet中引入实例规范化层来处理跨数据集的差异。为了确定这些层在体系结构中的最佳位置,我们提出了一种有效的可微体系结构搜索算法。

大量的实验表明,在传统的相同数据集设置下,尽管OSNet比现有的re-ID模型要小得多,但它仍能实现最先进的性能。在更具挑战性和实用性的跨数据集设置中,OSNet击败了最新的无监督域自适应方法,同时并不需要任何目标数据来进行模型自适应。

引言

行人再识别(re-ID)是一个细粒度的实例识别问题,其目的是在没有重叠视野的摄像机视图中匹配行人。随着深度学习技术的发展,近年来对人再识别的研究已经从繁琐的特征工程转向了利用深度神经网络进行端到端特征表示学习,尤其是卷积神经网络。

尽管在CNN的端到端表示学习帮助下,re-ID的性能得到了显著提升,但是还有两个问题没有解决。第一个问题是判别特征学习。作为一个实例级识别任务,在不相交的摄像机视图下重新识别人需要克服类内变化大和类间模糊两大困难。例如,在图1(a)中,相机之间的视角变化(从正面到背面)给背包区域带来了较大的外观变化,使对同一个人的匹配变得具有挑战性。此外,从远处看,就像在监控视频中常见的那样,人们看起来非常相似,如图1中的错误匹配就是一个例子。这需要使用re-ID特性来捕获细微的细节(例如,图1(d)中的太阳眼镜),用以区分具有相似外表的人。

640?wx_fmt=jpeg

图1

第二个问题是通用特征学习。由于光线条件、背景、视点等方面的差异造成的re-ID数据集之间存在固有的区域差距(见图1),直接将在源数据集上训练的re-ID模型应用到不可见的目标数据集上,通常会导致的性能大幅下降。这表明所学习的re-ID特性严重地过拟合标记数据,并且不能进行区域泛化。

在本文中,我们设计了新的CNN架构来解决这两个问题。

OSNet网络结构

首先,我们认为这些特征需要全尺度的,定义为变量同构和异构尺度的组合,每一个都由多个尺度的混合组成。从图1可以明显看出对全尺度特性的需求。为了匹配和区分人与冒名顶替者,与局部小区域(如鞋子、眼镜)和整体身体区域相对应的特征是很重要的。

例如,给定图1(a)(左)中的查询图像,查看全局范围的特性(例如,年轻人,白t恤+灰色短裤组合)将搜索范围缩小到真正的匹配(中)和冒名顶替者(右)。现在,局部尺度(local-scale)特征开始发挥作用——鞋子区域暴露了右边的人是骗子的事实(运动鞋vs.凉鞋)。

然而,对于更具挑战性的情况,即使是变量同构尺度的特征也不够。需要更复杂和更丰富的跨多个尺度的特性。例如,要消除图1(b)(右)中的冒名顶替者,需要在前面具有特定标识的白色T恤上添加一些特征。

请注意,这个标志本身并没有什么特别之处——如果没有白色T恤作为背景,它可能会与许多其他图案混淆。同样,白色T恤在夏天随处可见(如图1(a))。它是独特的组合,由跨越小(标志尺寸)和中(上身尺寸)尺度的异构特性捕获,这使得这些特性最有效。

因此,我们提出了一种全新的CNN体系结构OSNet(Omni-scale Network,OSNet),它是专门为学习全尺度特征表示设计的。托换构建块(building block)由多个不同的卷积特征流组成(如图2所示),每个流所关注的特征尺度由指数(exponent)决定,指数是一个新的维度因子,跨流线性增加,以确保每个块中捕获不同尺度。

关键的是,由统一聚合门(AG)生成的通道权值动态融合得到的多尺度特征图。AG是一种跨所有流共享参数的子网络,具有许多有效的模型训练所需的特性。在可训练的AG下,生成的信道权值依赖于输入,从而实现了动态尺度融合。这种新颖的AG设计为全尺度特征学习提供了极大的灵活性:根据特定的输入图像,门可以通过为特定的流/尺度分配主导权重来聚焦于单个尺度;或者,它可以选择和混合,从而产生异构的特征尺度。

640?wx_fmt=png

图2

OSNet的另一个关键特性是轻量级。轻量级的ReID模型有两个优点:(1)由于收集跨摄像头匹配的人图像的困难,ReID数据集通常是中等大小。因此,具有少量参数的轻量级网络不容易出现过拟合;(2)在大规模的监控应用中(例如全市范围内使用数千个摄像头的监控),re-ID最实用的方式是在摄像头端进行特征提取,将提取的特征发送到中央服务器,而不是原始视频。对于设备上的处理,小型的re-ID网络显然是首选。为此,在我们的构建块中,我们将标准卷积分解为点卷积和深度卷积,使OSNet不仅在特征学习上有区别,而且在实现和部署上也很高效。

解决第二个问题,是由不同re-ID数据集造成的差距,我们注意到这些差距通常反映在不同的图像样式,如亮度、颜色温度和角度(参见图1)。这些风格差异是由不同的照明条件和相机/设置在不同的摄像机网络特征。现有的工作使用无监督域适应(UDA)方法解决了这个问题。这些需要未标记的目标域数据来进行模型调整。

相反,我们将其视为一个更一般的域泛化问题,而不使用任何目标域数据。通过消除给定新目标域的数据收集和模型更新的繁琐过程,使用我们的方法,可以对任何未知的目标数据集开箱即用地应用使用源数据集训练的re-ID模型。

OSNet是通过将提出的轻量级瓶颈(OS块)逐层堆叠来构建的。详细的网络架构如图3所示。与标准卷积相同的网络架构有690万个参数和33849万个多添加操作,比精简3×3卷积层设计的OSNet大3倍。图3中的标准OSNet在实践中可以很容易地伸缩,以平衡模型大小、计算成本和性能。为此,我们在之后使用了一个宽度倍增器4和一个图像分辨率增器。

640?wx_fmt=png

图3

实验

简单说一下实验,对当前七个广泛使用的re-ID数据集进行实验,包括Market1501 , CUHK03 , DukeMTMC-reID (Duke) , MSMT17 , VIPeR , GRID和CUHK01。前四个通常被认为是大型的ReID数据集,尽管它们的大小相当适中(对于最大的数据集MSMT17,大约有30k的训练图像)。其余三个数据集通常太小,如果没有适当的训练前,就无法训练深度模型。

对于CUHK03,我们使用767/700 split来检测图像。对于VIPeR、GRID和CUHK01,我们遵循,对大型的re-ID数据集进行模型预训练,然后对目标数据集进行微调,平均结果为10个随机分割。对于re-ID评价指标,我们使用累积匹配特征(CMC)秩精度和平均精度(mAP),其中结果以百分比报告。

本文在同区域行人再识别和跨区域行人在识别问题上分别与当前SOTA的方法进行了比较。

640?wx_fmt=png

从上图可以看出在VIPeR上,可以观察到OSNet的性能显著优于所有其他选择(超过11%)。GRID比VIPeR更具挑战性,因为除了额外的干扰物之外,它只有250张125个身份的训练图像。在CUHK01上,有大约1900张训练图像,OSNet的表现明显优于主轴和JLML,分别为6.7%和16.8%。总体而言,OSNet在这些小数据集上的性能是优越的,这表明它在没有大规模训练数据的实际应用中有很大的优势。

总结

在本文中,我们提出了一种轻量级的CNN架构OSNet,它能够学习人的全方位特征表示。与现有的ReID CNNs相比,OSNet具有在每个构建块内显式学习多尺度特征的独特能力,其中统一聚合门动态融合多尺度特征生成全尺度特征。

为了改进跨域的泛化,我们通过可微架构搜索为OSNet配备了实例规范化,从而产生了一种称为OSNet- ain的域自适应变体。在相同域的re-ID设置中,结果显示OSNet在比基于resnet的竞争对手小得多的同时,还能达到最先进的性能。

在跨域的ReID设置中,OSNet-AIN在不可见的目标数据集上表现出了非凡的泛化能力,甚至在没有对目标域数据进行每域模型自适应的情况下,也击败了最新的UDA方法。

(*本文为 AI科技大本营编译文章,载请微信联系 1092722531

精彩推荐

2019 中国大数据技术大会(BDTC)再度来袭!豪华主席阵容及百位技术专家齐聚,15 场精选专题技术和行业论坛,超强干货+技术剖析+行业实践立体解读,深入解析热门技术在行业中的实践落地。

即日起,限量 5 折票开售,数量有限,扫码购买,先到先得!

640?wx_fmt=png

推荐阅读

640?wx_fmt=png

你点的每个“在看”,我都认真当成了AI

相关文章:

在一台机器上搭建多个redis实例

2019独角兽企业重金招聘Python工程师标准>>> 默认Redis程序安装在/usr/local/redis目录下; 配置文件:/usr/local/redis/redis.conf,该配置文件中配置的端口为默认端口:6379; Redis的启动命令路径&#xff1…

使用kaptcha生成验证码

2019独角兽企业重金招聘Python工程师标准>>> kaptcha是一个简单好用的验证码生成工具,通过配置,可以自己定义验证码大小、颜色、显示的字符等等。下面就来讲一下如何使用kaptcha生成验证码以及在服务器端取出验证码进行校验。 一、搭建测试环…

主成分分析(PCA) C++ 实现

主成分分析(Principal Components Analysis, PCA)简介可以参考: http://blog.csdn.net/fengbingchun/article/details/78977202以下是PCA的C实现,参考OpenCV 3.3中的cv::PCA类。使用ORL Faces Database作为测试图像。关于ORL Faces Database的介绍可以参…

为何Google、微软、华为将亿级源代码放一个仓库?从全球最大代码管理库说起...

作者 | 夕颜编辑 | Just出品 | AI 科技大本营(ID:rgznai100)【导读】2017 年,在当时微软的一篇官方博客中,时任微软云开发服务副总裁的 Brian Harry 表示微软内部代码开始向 Git 迁移,宣布推出针对大规模 repo 的“Git…

jquery mobie导致超链接不可用

在a标签中添加rel"external"即可转载于:https://blog.51cto.com/here2142/1435434

编译器GCC与Clang的异同

GCC:GNU(Gnus Not Unix)编译器套装(GNU Compiler Collection,GCC),指一套编程语言编译器,以GPL及LGPL许可证所发行的自由软件,也是GNU项目的关键部分,也是GNU工具链的主要组成部分之一。GCC(特别是其中的C语…

如何正确选择聚类算法? | CSDN博文精选

作者 | Josh Thompson翻译 | 张睿毅校对 | 王雨桐来源 | 数据派THU(ID:DatapiTHU)本文将介绍四种基本的聚类算法—层次聚类、基于质心的聚类、最大期望算法和基于密度的聚类算法,并讨论不同算法的优缺点。聚类算法十分容易上手,但…

Python工具 | 9个用来爬取网络站点的 Python 库

1️⃣Scrapy 一个开源和协作框架,用于从网站中提取所需的数据。 以快速,简单,可扩展的方式。 官网2️⃣cola 一个分布式爬虫框架。 GitHub3️⃣Demiurge 基于 PyQuery 的爬虫微型框架。 官网4️⃣feedparser 通用 feed 解析器。 官网5️⃣Gra…

Python并发编程实例教程

有关Python中的并发编程实例,主要是对Threading模块的应用,文中自定义了一个Threading类库。 一、简介  我们将一个正在运行的程序称为进程。每个进程都有它自己的系统状态,包含内存状态、打开文件列表、追踪指令执行情况的程序指针以及一个保存局部变量的调用栈。…

Nginx负载均衡之TCP端口高可用(二)

在前面我们实现了基本的HTTP反向代理,从互联网过来的请求已经可以分发到后端多台网站服务器上,但不是所有的业务都是网络类型的,此篇文章我们主要讨论的是TCP 端口的负载均衡做法,昨天也有小伙伴提到了,在HTTP反向代理…

语音识别大牛Daniel Povey为何加入小米?“手机+AIoT”强大生态,开源战略是关键...

整理 | 夕颜出品 | AI科技大本营(ID:rgznai100)10 月 17 日,语音识别开源工具 Kaldi 创始人,语音和 AI 领域大牛 Daniel Povey 在10 月 19 日,小米集团副总裁、集团技术委员会主席崔宝秋发布微博,欢迎 Dani…

Python运维项目中用到的redis经验及数据类型

先感叹下,学东西一定要活学活用! 我用redis也有几年的历史了,今个才想到把集合可以当python list用。 最近做了几个项目都掺杂了redis, 遇到了一些个问题和开发中提高性能的方法,这都分享出来,共同学习。…

图像边缘检测之拉普拉斯(Laplacian)C++实现

拉普拉斯算子(Laplacian)可应用到图像边缘检测中。在OpenCV中当kernel大小为3*3时,支持两种kernel算子,分别为:在OpenCV中默认的计算方式如下,假设有一个5*5的小图像,原始值依次为1,2,…25,如下图红色部分,…

从0到1,Airbnb的深度学习实践经验总结

作者 | Haldar译者 | 陆离出品 | AI科技大本营(ID: rgznai100)此前,AI科技大本营发布了关于希望通过介绍的研究成果为读者提供一些有用的帮助和指引。模型中的生态系统本文要讨论的机器学习现实应用,是关于根据用户预约的可能性来…

高并发大流量专题---8、动态语言的并发处理

高并发大流量专题---8、动态语言的并发处理 一、总结 一句话总结: 和本科毕业论文连起来了:基于消息中间件Rocket MQ的研究;用于并发处理的消息队列 1、什么是进程、线程、协程? 进程(Process)是计算机中的…

1. 文件系统——磁盘分区、各目录功能、硬盘

一、磁盘分区及文件访问入口在前文中介绍过,Linux的整个文件系统像一棵倒置的数,最顶层的是根文件系统,其下有很多一级子目录,一级子目录下面是二级子目录,依此类推:/:根目录/bin,/s…

吴恩达老师深度学习视频课笔记:逻辑回归公式推导及C++实现

逻辑回归(Logistic Regression)是一个二分分类算法。逻辑回归的目标是最小化其预测与训练数据之间的误差。为了训练逻辑回归模型中的参数w和b,需要定义一个成本函数(cost function)。成本函数(cost function):它是针对整个训练集的。衡量参数w和b在整个训…

网络运行时间提高100倍,Google使用的AI视频理解架构有多强?

译者 | 刘畅出品 | AI科技大本营(ID:rgznai100)视频理解是一个很有挑战性的问题。由于视频包含时空数据,因此图像的特征表示需要同时提取图像和运动信息。这不仅对自动理解视频语义内容有重要性,还对机器人的感知和学习也至关重要…

iOS学习笔记(十三)——获取手机信息(UIDevice、NSBundle、NSLocale)

2019独角兽企业重金招聘Python工程师标准>>> iOS的APP的应用开发的过程中,有时为了bug跟踪或者获取用反馈的需要自动收集用户设备、系统信息、应用信息等等,这些信息方便开发者诊断问题,当然这些信息是用户的非隐私信息&#xff0…

吴恩达老师深度学习视频课笔记:单隐含层神经网络公式推导及C++实现(二分类)

关于逻辑回归的公式推导和实现可以参考: http://blog.csdn.net/fengbingchun/article/details/79346691 下面是在逻辑回归的基础上,对单隐含层的神经网络进行公式推导:选择激活函数时的一些经验:不同层的激活函数可以不一样。如果…

「2019中国大数据技术大会」超值学生票来啦!

大会官网:https://t.csdnimg.cn/U1wA经过11年的沉淀与发展,中国大数据技术大会见证了大数据技术生态在中国的建立、发展和成熟,已经成为国内大数据行业极具影响力的盛会,也是大数据人非常期待的年度深度分享盛会。在新的时代背景下…

校验正确获取对象或者数组的属性方法(babel-plugin-idx/_.get)

背景: 开发中经常遇到取值属性的时候,需要校验数值的有效性。 例如: 获取props对象里面的friends属性 props.user && props.user.friends && props.user.friends[0] && props.user.friends[0].friends 对于深层的对…

Ring Tone Manager on Windows Mobile

2019独角兽企业重金招聘Python工程师标准>>> 手机铃声经常能够体现一个人的个性,有些哥们儿在自习室不把手机设置成震动,一来电就#$^%^&^%#$&$*,声音还很大,唯恐别人听不到。 Windows Mobile设备上如何来设置手…

OpenCV3.3中K-Means聚类接口简介及使用

OpenCV3.3中给出了K-均值聚类(K-Means)的实现,即接口cv::kmeans,接口的声明在include/opencv2/core.hpp文件中,实现在modules/core/src/kmeans.cpp文件中,其中:下面对此接口中的参数作个简单说明:(1)、data&#xff1a…

一文读懂对抗机器学习Universal adversarial perturbations | CSDN博文精选

作者 | Icoding_F2014来源 | CSDN博客本文提出一种 universal 对抗扰动,universal 是指同一个扰动加入到不同的图片中,能够使图片被分类模型误分类,而不管图片到底是什么。示意图:形式化的定义:对于d维数据分布 μ&…

Reactor模式与Proactor模式

博主一脚刚踏进分布式的大门(看《分布式Java应用》,如果大家有啥推荐的书欢迎留言~),发现书中对NIO采用的Reactor模式、AIO采用的Proactor模式一笔带过,好奇心趋势我找了一下文章,发现两篇挺不错的文章&…

linux下使profile和.bash_profile立即生效的方法

使profile生效的方法1.source /etc/profile使用.bash_profile生效的方法1 . .bash_profile2 source .bash_profile3 exec bash --login转载于:https://blog.51cto.com/shine20/1436473

吴恩达老师深度学习视频课笔记:多隐含层神经网络公式推导(二分类)

多隐含层神经网络的推导步骤非常类似于单隐含层神经网络的步骤,只不过是多重复几遍。关于单隐含层神经网络公式的推导可以参考: http://blog.csdn.net/fengbingchun/article/details/79370310 逻辑回归是一个浅层模型(shadow model),或称单层…

Python中的元编程:一个关于修饰器和元类的简单教程

作者 | Saurabh Kukade译者 | 刘畅出品 | AI科技大本营(ID:rgznai100)最近,作者遇到一个非常有趣的概念,它就是用 Python 进行元编程。我想在本文中分享我对该主题的见解。作者希望它可以帮助解决这个问题,因为很多人说…

获取用户电脑的上网IP地址

在项目中经常要获取用户的上网的IP地址&#xff0c;如何获取用户的IP地址&#xff0c;方法很多&#xff0c;现在介绍以下2种。 /// <summary> /// 获取本机在局域网的IP地址 /// </summary> /// <returns></returns> …