Simulating Content Consistent Vehicle Datasets with Attribute Descent(略读)

news2025/1/20 1:39:19

提出了一个大型的3D合成数据集VehicleX。其中各个3D模型都有现实世界的车型对应。整个数据集有1362个id,其中包括11种主流车型。
论文:https://arxiv.org/pdf/1912.08855.pdf

摘要

本文使用图形引擎来模拟带有免费注释的大量训练数据。 在合成数据和真实数据之间,存在两个级别的域差距,即内容级别和外观级别。后者已经得到了广泛的研究,我们主要致力于缩小光照、视点等属性的内容差距。为了降低问题的复杂性,我们选择了一种更小、更可控的应用,即车辆再识别(re-ID)。介绍了一种大规模合成数据集车辆算法。它是在Unity中创建的,包含1362个具有可编辑属性的各种3D模型车辆。我们提出了一种属性下降方法,以使VehicleX逼近实际数据集中的属性。具体来说,我们对VehicleX中的每个属性进行操作,旨在最小化VehicleX与真实数据在Frechet Inception Distance (FID)方面的差异。该属性下降算法允许内容域适应与现有外观域适应方法正交。我们将优化的车辆数据与真实的车辆re-ID数据集混合,并观察持续的改进。通过扩充的数据集,我们报告了竞争准确性。我们的数据集,引擎和我们的代码可在https://github.com/yorkeyao/VehicleX
查看。
关键词:车辆检索、领域自适应、合成数据
在这里插入图片描述
图1所示。系统工作流程。(左:)给定一列属性和它们的值,我们使用渲染器(例如,Unity)进行车辆模拟。我们计算合成和实际车辆之间的 Fréchet 起始距离(FID),以表明它们的分布差异。通过使用所提出的属性下降算法更新属性值,我们可以在训练迭代过程中最小化FID。(右:)我们使用最小化FID的学习属性值来生成用于reid模型训练的合成数据。

在这里插入图片描述
图2所示。VehicleX引擎。(A)渲染平台的说明。我们调整车辆的方向,光线方向和强度,相机高度,以及相机和车辆之间的距离。(B)显示16种不同的车辆身份。

表1。比较一些真实世界和合成车辆re-ID数据集。“Attr”表示数据集是否有属性标签(例如,方向)。我们的身份是不同的3D模型,因此可以潜在地渲染无限数量的图像在不同的环境和相机设置。VehicleX是开源的,可以用来生成(拥有)无限数量的图像(相机)。
在这里插入图片描述
在这里插入图片描述
图3所示。(左:)属性编辑。我们旋转车辆,编辑光的方向和强度,或者改变相机的高度和距离。括号中的数字对应于Unity中的属性值。(右:)当在re-ID模型中使用属性调整过的车辆时,我们会进一步添加随机背景和干扰项。

在这里插入图片描述
图4. VehicleID [18]上的属性下降可视化。(A)通过训练迭代的FID-mAP曲线。 在属性下降期间,FID依次下降(越低越好),而域自适应mAP依次增大(越好越好)。为了说明简单,我们使用“light”来表示光的方向和强度,并使用“cam”。表示相机的高度和距离。(B)我们在每次迭代中显示合成车辆。我们通过设置方向为右、光线强度为暗、光线方向为西、相机高度为与车辆相等、相机距离为中值来初始化属性。通过优化过程,这些图像的内容越来越类似于(C)目标真实图像。
在这里插入图片描述
图5所示。图像w/和w/o风格域适应。(A)无风格域适应的合成图像。(B)(C)(D)我们使用SPGAN [7]将(A)中的图像分别转换为VeRi,VehicleID和CityFlow的样式。

表2.仅使用合成数据进行训练时,w / o和w/样式的DA的Re-ID准确性(mAP)。我们清楚地看到DA风格带来了显著的改进,因此是必要的。
在这里插入图片描述

表3.数据扩充中VehicleID的方法比较。我们的方法基于具有交叉熵(CE)损失的IDE [41]。属性下降在基线属性和随机属性上均持续改善,并且与最新技术相比具有竞争力。“R”指训练仅使用真实数据。“R+S”表示训练中既使用了合成数据,也使用了真实数据。“小”,“中”和“大”是指VehicleID测试集中的车辆数量[18]。
在这里插入图片描述

表4.在第I和第II阶段之后,在生成的数据和VehicleID之间的FID值(属性下降是针对两个时期执行的)。测试了属性的不同顺序。“C”、“O”和“L”分别指相机、方位和照明。在epochII之后,FID值通常相似,这表明属性之间的相关性较弱,因此它们大多是独立的。
在这里插入图片描述

5.2实现细节

数据生成。对于VehicleID数据集,我们只针对VehicleID训练集优化单个属性列表。但大多数reid数据集,如VeRi776和CityFlow,都是根据多个摄像头视图自然划分的。由于特定的摄像头视图通常具有稳定的属性特征(如视点),因此我们对每个摄像头执行本文提出的属性下降算法,以模拟与每个摄像头的图像内容相似的图像。例如,我们使用VeRi-776训练集优化了20个属性列表,这个训练集有20个摄像机。属性下降执行两个epoch。一个epoch定义为列表中的所有属性更新一次。
图片风格转变。我们将SPGAN[7]应用于图像风格变换,这是一种最先进的风格级域自适应re-ID算法。示例结果如图5所示,影响如表2所示。以112,042幅随机属性图像为源域,以三个车辆数据集中的训练集为目标域,分别进行图像平移模型的训练。当对学习到的属性数据执行SPGAN时,我们基于学习到的属性是随机范围的子集这一事实,直接推断出学习到的属性图像。
基线配置。对于VeRi和VehicleID,我们使用id鉴别嵌入(IDE)[41]。我们采用了[22]的策略,增加了批处理归一化,在最后的feature层去除ReLU。我们也在VeRi上使用基于部分的卷积基线(PCB)[31]来提高精度。在PCB中,我们将图片水平分为六个相等的部分,并对每个部分进行分类。 对于CityFlow训练,我们使用交叉熵损失和三重态损失的组合,使用[22]中的设置。
实验协议。我们在vehicleX训练和联合训练设置上评估我们的方法。 在VehicleX训练下,我们在VehicleX上训练模型并在真实数据上进行测试。在联合训练下,我们将VehicleX数据与真实世界数据结合起来,进行两阶段训练; 测试是在相同的实际数据上进行的。
两阶段训练联合训练使用三个真实世界的数据集进行两阶段训练[42]。我们在第一阶段混合合成数据集和真实数据集,而在第二阶段只在真实数据集上使用finetune。以CityFlow为例,在第一阶段,我们对真实数据和合成数据进行训练。我们将车辆图像分为1695张(333张)+ 1362来自合成)身份。在第二阶段,我们用新的分类器替换分类层,该分类器将在真实数据集上进行训练(识别333个类)。 表5显示了此方法的显着改进。

表5.进行联合训练时两阶段训练的Re-ID准确性(mAP)的比较。 从第一阶段到第二阶段,我们可以看到明显的性能提升。
在这里插入图片描述

表6.使用[22]的各种训练数据集对VehicleID测试集(large)进行重识别测试精度(mAP)。前4个训练集分别由随机属性、随机搜索、LTS和属性下降生成。最后两个训练集是真实世界的训练集。FID测量训练集和VehicleID之间的域间距。
在这里插入图片描述

表7.在VeRi-776上进行测试时的方法比较。 VehicleX训练和联合训练结果都包括在内。“R”表示只使用真实数据进行训练,“S”表示只使用合成数据进行训练,“R+S”表示联合训练。VID→VeRi显示在VehicleID上训练的结果,在VeRi测试,Cityflow→VeRi表示在Cityflow上训练的结果,在VeRi上进行测试。除了一些最先进的方法,我们总结了在两个基线之上的结果,即IDE[41]和PCB[31]。
在这里插入图片描述

在这里插入图片描述
图6所示。学习属性和随机属性在联合训练中的性能比较。我们在三个数据集上展示了mAP,并使用统计显着性分析来显示训练稳定性。∗在统计学上表示显著(即0.01 < pvalue < 0.05),∗∗在统计学上表示非常显著(即0.001 < p-value < 0.01)。

我们注意到,使用合成数据作为训练集的改进比使用数据扩充更显著。当训练集只包含合成数据时,属性的质量越高,对reid结果的影响越直接。

表8.联合训练对CityFlow的方法比较。我们的基线是由CE损失和[22]三联体损失组成的。rank-1,rank-20和mAP由在线服务器计算。
在这里插入图片描述

6 结论

本文从内容层面研究了合成数据与真实数据之间的领域差距问题。即,我们在图形引擎中自动编辑源域图像内容,以减少合成图像和真实图像之间的内容差距。我们利用这个思想来研究车辆重识别任务,其中车辆边界框的使用减少了需要优化的属性集。较少的关注属性和它们之间的低依赖关系使我们可以使用我们提出的属性下降方法来逐一优化它们。我们表明,学习到的属性带来了具有统计学意义的re-ID准确性的提高。此外,我们的实验揭示了在使用合成数据方面的一些重要见解,例如,风格DA带来了显著的改善,两阶段训练有利于联合训练。

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

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

相关文章

回归预测 | MATLAB实现RF随机森林多输入单输出回归预测(含回归树,误差柱状图,多指标)

回归预测 | MATLAB实现RF随机森林多输入单输出回归预测(含回归树,误差柱状图,多指标) 目录 回归预测 | MATLAB实现RF随机森林多输入单输出回归预测(含回归树,误差柱状图,多指标)效果分析基本介绍输出结果程序设计学习总结参考资料效果分析

Mars3D Studio平台发布

近日我们基于提供丰富及智能化功能&#xff0c;助力团队做出精美的交互场景的理念&#xff0c;研发了Mars3D Studio平台&#xff0c;于2023年1月10日正式发布上线&#xff01;欢迎大家访问http://studio.mars3d.cn/ 网站进行体验。一、资源广场团队公开的丰富资源数据&#xff…

LeetCode题目笔记——1658. 将 x 减到 0 的最小操作数

文章目录题目描述题目难度——中等方法一&#xff1a;反向思考&#xff0c;双指针求最长子数组代码/Python代码/C方法二&#xff1a;滑动窗口代码总结我把这篇也归到面试题那一栏&#xff0c;因为觉得这题的思路和思考方式还挺好的&#xff0c;或许能用到其他题上 题目描述 给…

基于Node.js Vue清新严选助农电商平台/电商平台/购物平台

摘 要网络技术的快速发展给各行各业带来了很大的突破&#xff0c;也给各行各业提供了一种新的管理模块&#xff0c;对于清新严选助农电商将是又一个传统管理到智能化信息管理的改革&#xff0c;设计清新严选助农电商平台的目的就是借助计算机让复杂的购买商品操作变简单&#x…

gcc和gdb的使用——Linux

Linux学习全部合集点击即可订阅 “人生得意须尽欢” 这里是目录标题gcc的基本操作gcc处理代码的步骤预处理编译汇编链接头文件和库静态库动态库gdb调试makefile什么是makefile&#xff1f;进度条的实现缓冲区回车和换行git的使用.gitigonregcc的基本操作 编写代码的最基本操作…

【工具Share】用VBA获取批量文件中的同一个单元格内容

最近鼓捣了个工具&#xff0c;可以批量从固定文件夹的excel中获取同一个单元格中的具体内容&#xff08;当然&#xff0c;你也可以根据自己的需要&#xff0c;进行多个单元格内容的取得&#xff09; 可能这么说比较抽象&#xff0c;举例来说比如你在多个相同模板的excel中定义了…

java循环结构的概述

在之前的文章中&#xff0c;已经给大家详细地介绍过变量相关的内容&#xff0c;比如变量的概念、命名规范、变量的定义及底层原理等内容。但其实变量还有作用范围的概念&#xff0c;并且根据作用范围的不同&#xff0c;变量还可以分为成员变量、局部变量等内容。在我们今天开始…

Nacos config 配置中心详解

Nacos 提供用于存储配置和其他元数据的 key/value 存储&#xff0c;为分布式系统中的外部化配置提供服务器端和客户端支持。使用 Spring Cloud Alibaba Nacos Config&#xff0c;您可以在 Nacos Server 集中管理你 Spring Cloud 应用的外部属性配置。Spring Cloud Alibaba Naco…

【算法基础(1)】认识时间复杂度和常用排序算法

1 认识时间复杂度 1.1 什么是时间复杂度&#xff1f; 时间复杂度是一个函数&#xff0c;它定性描述该算法的运行时间&#xff0c;在软件开发中&#xff0c;时间复杂度就是用来方便开发者估算出程序运行时间&#xff0c;通常用算法的操作单元数量来代表程序消耗的时间&#xf…

pageoffice在线编辑word文件并禁止选中

一、整篇文档禁止选中 wordDoc.setDisableWindowSelection(true); //禁止word的选择文字功能 二、根据条件判断是否禁止选中 比如&#xff1a;选中内容超过一定字数&#xff0c;取消选中 解决方案&#xff1a;使用后端提供的OnWordSelectionChange事件。 PageOfficeCtrl po…

sgRNAs基因编辑

CRISPR-Cas9知识学习笔记 https://www.163.com/dy/article/FGCP58KC0532AN5N.html https://crispr.dbcls.jp CRISPR&#xff08;clustered regularly interspaced short palindromic repeats&#xff0c;成簇的规律间隔短回文重复序列&#xff09;和CRISPR-associated protein …

Spring Cloud Gateway服务网关的部署与使用(结合nacos)

一、微服务网关1.什么是微服务网关在传统的单体架构中&#xff0c;我们只需要开放一个服务给客户端调用即可。但是微服务架构中是将一个系统拆分成多个微服务&#xff0c;不同的微服务一般会有不同的网络地址&#xff0c;客户端在访问这些微服务时必须记住几十甚至百个地址&…

springboot多项目结构

微服务的目录结构一般分为如下几个模块&#xff1a; 当我们做的项目稍微大一点之后&#xff0c;就会经常遇到需要把不同的模块分离出来的时候&#xff0c;比如微信的朋友圈、微信支付、聊天服务等模块&#xff0c;像这种微服务项目一般都会把base、common、前端抽离出来。 com…

DP8403国产3W双通道无滤波器D类立体声音频放大器兼容替代CS8403

目标DP8403简介功能框图&#xff1a;DP8403主要特性DP8403简介 DP8403是3W双通道无滤波器D类立体声音频功率放大器芯片&#xff0c;能够以D类放大器的效率提供AB类功率放大器的性能。采用D类结构&#xff0c;DP8403 能够在 4Ω负载和 5V 电源条件下&#xff0c;提供高达 3W 输…

MySQL (五)------数据库三范式、外键约束、多表间关系、多表关联查询、子查询

数据库三范式 好的数据库设计对数据的存储性能和后期的程序开发&#xff0c;都会产生重要的影响。建立科学的&#xff0c;规范的数据库就需要满足一些规则来优化数据的设计和存储&#xff0c;这些规则就称为范式。 1.1 第一范式: 确保每列保持原子性 第一范式是最基本的范式…

深入理解java反射原理

系列文章目录 文章目录系列文章目录前言一、 如何获取反射中的Class对象&#xff1f;二、反射的步骤三、详细解答1. 获取对象类的实例2、newInstance() 的实现方式3、获取Method对象4. 调用invoke()方法。总结前言 反射是在运行状态中&#xff0c;对于任意一个类&#xff0c;都…

C 程序设计教程(10)—— 数据输入函数(scanf)用法详解

C 程序设计教程&#xff08;10&#xff09;—— 数据输入函数&#xff08;scanf&#xff09;用法详解 该专栏主要介绍 C 语言的基本语法&#xff0c;作为《程序设计语言》课程的课件与参考资料&#xff0c;用于《程序设计语言》课程的教学&#xff0c;供入门级用户阅读。 目录…

Ubuntu安装PyTango步骤

继续上一篇&#xff1a; https://blog.csdn.net/woshigaowei5146/article/details/128443892?spm1001.2014.3001.5502 环境 虚拟机&#xff1a;VMware Ubuntun&#xff1a;20.04LTS Tango&#xff1a;9.3.5 安装 PyTango作为官方debian/ubuntu包在linux上可用: for Python…

195:vue+openlayers 加载json格式热力图,调节半径大小和模糊程度

第195个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers中加载JSON格式的数据,呈现热力图。这里可以调节热力图的半径大小和模糊程度。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例代码(共100行)headDa…

【JavaGuide面试总结】Java高级特性基础篇·上

【JavaGuide面试总结】Java高级特性基础篇上1.为什么 Java 中只有值传递&#xff1f;2.static 关键字使用场景3.Exception 和 Error 有什么区别&#xff1f;4.Checked Exception 和 Unchecked Exception 有什么区别&#xff1f;5.Throwable 类常用方法有哪些&#xff1f;6.fina…