论文解读——掌纹生成网络 RPG-Palm

论文:RPG-Palm: Realistic Pseudo-data Generation for Palmprint Recognition(2023.7)
作者:Lei Shen, Jianlong Jin, Ruixin Zhang, Huaen Li, Kai Zhao, Yingyi Zhang, Jingyun Zhang, Shouhong Ding, Yang Zhao, Wei Jia
链接:https://arxiv.org/abs/2307.14016
代码:暂无

文章目录

  • 1、算法概述
  • 2、背景知识
  • 3、RPG-Palm细节
    • 3.1 Conditional Modulation Palmprint Generator
    • 3.2 Palmprint Encoder
    • 3.3 ID-aware Loss
    • 3.4 Improved Bézier Palm Creases Synthesis
  • 4、实验


1、算法概述

该文是腾讯在2022年提出的BézierPalm的升级版,利用BézierPalm生成的掌纹褶皱图作为条件,结合作者自己设计的generation model和ID-aware loss,达到了可以同时扩展掌纹数据的类间多样性和类内多样性。


2、背景知识

识别领域的数据生成算法,在人脸识别领域,有利用人脸属性、人脸结构及3D face来生成,对于指纹识别,也有手工制作或基于学习的方法来生成逼真的指纹图片。在掌纹识别任务中,BézierPalm用Bezier曲线模拟掌纹的褶皱;PalmGAN利用CycleGAN使得普通掌纹和多光谱掌纹之间转换样式提升了掌纹的跨越识别能力。但是PalmGAN这个方法不能创造新的掌纹id,而BézierPalm生成的掌纹褶皱图片(一个id可生成多张图片)与真正的掌纹图片有着比较明显的风格差异。所以作者想到利用BézierPalm生成的掌纹褶皱图片作为GAN的条件,结合作者自己设计的generation model和ID-aware loss,该方法可以同时扩展掌纹数据的类间多样性和类内多样性。于是达到生成虚拟的掌纹数据集目的,且这个数据集包含多个虚拟的id,一个id包含多张图片。


3、RPG-Palm细节

RPG-Palm整个框架包含训练和推理阶段,如下图所示:
在这里插入图片描述

注:读过BicycleGAN论文的看到这个框图就有点熟悉了,作者是在BicycleGAN的基础上改进的,下图是BicycleGAN框图作为对比。
在这里插入图片描述
仔细对比可以看出,本文框图中左上蓝色部分和BicycleGAN的Training cVAE-GAN一模一样,本文主要改进点在框图右下黄色部分,即对应BicycleGAN的Training cLR-GAN部分,本文作者将BicycleGAN的Training cLR-GAN中我画的红框部分去掉,并且去掉了后续的L1损失,新增了两个生成图像的Lid损失用于规范生成图像的id一致性。后面实验部分,作者所使用的参数也是依据BicycleGAN,在它的基础上新增了一个Lid损失的权重参数。


3.1 Conditional Modulation Palmprint Generator

生成器G以高斯噪声向量作为输入,以BézierPalm方法合成的掌纹折线图A作为条件,生成掌纹图片B’。生成器G结构类似于常见的图像生成器结构UNet,其详细结构如下图a所示,为了生成多样化的结果,引入了条件自适应实例规范化模块(CAdaIN),对每个Down-Block和Up-Block生成的细节进行调制。
在这里插入图片描述
CAdaIN模块可用以下公式表示:
在这里插入图片描述
其中Xi和X0代表CAdaIN模块的输入和输出特征,fc1和fc2代表两个FC层。通过使用随机噪声编码的潜在控制向量,实现了系统的控制CAdaIN可以调节特征产生不同的分布,从而产生多样化的掌纹图像。此外,为了进一步提高多样性,在调制特征中加入与特征图具有相同空间分辨率的随机噪声n0(也就是图中的Noise),以注入更多的随机性。
为了能产生逼真的生成效果,采用L1损失和对抗损失LD来更新生成器G,公式如下:
在这里插入图片描述
L1是常见的逐像素损失,它保证生成的掌纹图像与真实掌纹在数值上的相似性,但是由于生成的掌纹图像B’是以生成的掌纹褶皱图A为条件,而A与B其实不是“配对”的,即不是同一个id,所以过于强烈的像素约束可能会导致错误的过拟合到B的细节上。所以作者增加对抗损失LD用来放松约束,约束B和B’之间的语义相似度,LD的损失和PatchGAN的方法类似。

3.2 Palmprint Encoder

编码器E用于将掌纹图像B映射到高斯噪声域Q(z|B)。编码器结构如上图b结构,它是Resnet结构,输入为256x256,经过几个残差模块后分辨率下降到16x16,后面接FC,它被用来估计均值uQ和方差σQ2,最后,从高斯空间N(uQ,σQ2)中采样噪声向量Q(z|B)。
在训练过程中,作者在Q(z|B)~ N(uQ,σQ2)和噪声向量N(z)~N(0,1)之间保持KL散度,使得编码器E的目标域近似逼近标准正态分布。其损失函数可以用如下公式表示:
在这里插入图片描述
本文将编码器E和生成器G结合起来,从未配对的训练数据中学习域到域的映射,而不是使用完全监督的方式。首先,这种结构可以避免对人工标注配对数据的依赖。其次,条件双向域到域映射既能再现随机逼真的图像,又能保持手掌折痕条件的信息。

3.3 ID-aware Loss

对于训练识别模型来说,生成的掌纹不仅需要多样化,而且需要带有预先定义的id身份信息。对于相同的输入条件A,生成的掌纹图片应该具有相同的id信息,即应该具有相同的掌纹折痕。因此,增加了一个ID感知损失LID来约束生成器。如Fig2(a)中所示,生成器G通过利用相同的输入条件图片A和噪声N(z)生成掌纹图像B”,理论上,B’与B”应该带有相同的id信息。所以用ID感知损失LID表示两者的id一致性损失。公式为:
在这里插入图片描述
公式中“.”代表向量点积,DMB是采用MobileFaceNet结构得到的预训练掌纹识别模型提取的512维特征向量。即LID计算同一ID下生成的两张图像的提取特征之间的余弦相似度。有了ID感知损失,增加生成器的随机性和多样性便不会破坏类内ID的一致性。
总的训练损失如下:
在这里插入图片描述

3.4 Improved Bézier Palm Creases Synthesis

在推理阶段,仅使用生成器G利用生成的手掌折痕A中生成掌纹图像,如Fig2(b)所示。受BézierPalm的启发,作者也采用两级bezier曲线合成了包含三条主线和随机皱纹线的手掌折痕图像用于生成大量的虚拟id掌纹图像。但是作者发现随机调整bezier曲线可能导致一些随机生成的折痕的布局与真实掌纹的布局有很大的不同。如下图所示:
在这里插入图片描述
所以,本文将从以下三个点来改进BézierPalm生成的掌纹折痕。
首先,作者根据真实掌纹情况调整三条主线参数点(即起点、控制点和终点)的粗略范围。使合成主线的布局更接近真实掌纹主线布局。
其次,对合成规则进行调整,生成更多长度适中、分布均匀的皱纹线。
第三,加入基于RLOC的相似性约束,使不同id的主线具有充分的可区分性。RLOC是一种经典的掌纹识别方法,它可以测量两个折痕图像的相似度。为了避免为不同的id生成非常相似的主线,我们过滤掉了一些超过RLOC类间相似性阈值的折痕图像。
最后,将改进后的随机bézier曲线输入到生成器G中,得到相应的掌纹图像。


4、实验

ImageNet ILSVRC2012上分类实验
网络训练采用渐进式学习,设置如下:
在这里插入图片描述
得到的分类结果如下:
在这里插入图片描述
消融实验:略

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

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

相关文章

阿里Qwen2-72B大模型已是开源榜的王者,为什么还要推出其他参数模型,被其他模型打榜?

6 月 27 日,全球知名的开源平台 Hugging Face 的联合创始人兼首席执行官 Clem 在社交平台激动宣布,阿里 Qwen2-72B 成为了开源模型排行榜的王者。 这是一件大好事,说明了我们在大模型领域从先前的追赶,逐渐走向了领导,…

不看后悔!国内AI大比拼的精彩看点全汇总

至2022年AI爆发后,在中国已催生了上千个AI产品。 这些产品涵盖了从头部大厂到高等院校,再到初创企业的广泛阵容。 如: 大厂:百度文心、阿里通义、腾讯元宝、字节豆包、讯飞星火等高校:清华大学、北京大学等初创&…

【问题解决】plt.show()画出来的图像只在pycharm右侧栏显示

问题情况如下: 画出的图只在右侧栏显示,而我们想弹出一个独立的窗口,拖动鼠标可以360度查看图像,还可以保存图片。 【 问题解决 】: File -> Settings ->Tools-> Python Scientific -> 将“Show plots i…

2024 AI工程师世界博览会

6月24日至6月27日在旧金山举行的 AI 工程师世界博览会是AI 从业者和爱好者的首要活动之一。本次年度会议展示了人工智能技术的最新进展,并提供了对行业趋势的宝贵见解。 模型不是壁垒 大型语言模型(LLMs)的快速发展是会议的中心主题。OpenAI…

字节码编程ASM之生成变量并sout

写在前面 本文看下如何通过asm生成变量并sout。 1:代码 直接看代码吧,注释很详细,有不懂的,留言告诉我: package com.dahuyuo.asmtest;import org.objectweb.asm.*; import org.objectweb.asm.commons.AdviceAdapt…

Oracle EBS PO采购订单预审批状态处理

系统版本 RDBMS : 12.1.0.2.0 Oracle Applications : 12.2.6 问题症状: 采购订单状态:预审批 采购订单流程报错如下: po.plsql.PO_DOCUMENT_ACTION_AUTH.approve:90:archive_po not successful - po.plsql.PO_DOCUMENT_ACTION_PVT.do_action:110:unexpected error in acti…

C++ 教程 - 08 文件操作与异常处理

文章目录 文件操作文件对象其他方法异常处理 文件操作 需要头文件 <iostream><fstream> 读取文件 ifstream obj; obj.open(const char* filename, std::in)写入文件ofstream obj; obj.open(const char* filename, std::out)读、写文件 fstream&#xff0c;包含了i…

Python 面试【★★★】

欢迎莅临我的博客 &#x1f49d;&#x1f49d;&#x1f49d;&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

Matplotlib 简介

import matplotlib.pyplot as plt plt.plot([1, 2, 3, 4]) plt.ylabel(some numbers) plt.show() 当使用plot只传入单个数组时&#xff0c;matplotlib会认为这是y的值&#xff0c;并自动生成长度相同&#xff0c;但是从0开始的x值&#xff0c;所以这里的x会自动生成为 [0,1,2,…

【代码随想录】【算法训练营】【第57天】 [卡码99]岛屿数量 [卡码100]岛屿的最大面积

前言 思路及算法思维&#xff0c;指路 代码随想录。 题目来自 卡码网。 day 57&#xff0c;周三&#xff0c;再ding一下~ 题目详情 [卡码99] 岛屿数量 题目描述 卡码99 岛屿数量 LeetCode类似题目200 岛屿数量 解题思路 前提&#xff1a; 思路&#xff1a; 重点&#…

Android adb logcat日志过滤输出

Android adb logcat日志过滤输出 adb logcat 输出所有Android设备上的日志。 adb logcat *:Error 过滤输出日志级别只为Error的日志。 过滤某些标签或tag&#xff0c;依次执行: adb shell logcat grep | "你的标签或tag" Android Studio level过滤查看各个等级的日志…

销毁终结者:IT 采购必知:高效数据销毁服务 文件销毁 硬盘销毁 数据销毁 销毁

在 IT 领域&#xff0c;设备的更新换代是常态&#xff0c;但旧设备中残留的数据却可能成为企业的潜在威胁。为了保障企业的数据安全&#xff0c;专业的数据销毁服务不可或缺。 我们专注于提供高效的文件销毁、数据销毁和硬盘销毁服务&#xff0c;确保您的企业信息得到妥善处理…

JavaScript懒加载图像

懒加载图像是一种优化网页性能的技术&#xff0c;它将页面中的图像延迟加载&#xff0c;即在用户需要查看它们之前不会立即加载。这种技术通常用于处理大量或大尺寸图像的网页&#xff0c;特别是那些包含长页面或大量媒体内容的网站。 好处 **1. 加快页面加载速度&#xff1a…

视频监控平台web客户端的免密查看视频页:在PC浏览器上如何调试手机上的前端网页(PC上的手机浏览器的开发者工具)

目录 一、手机上做前端页面开发调试 1、背景 2、视频监控平台AS-V1000的视频分享页 3、调试手机前端页面代码的条件 二、手机端的准备工作 1、手机准备 2、手机的开发者模式 3、PC和手机的连接 &#xff08;1&#xff09;进入调试模式 &#xff08;2&#xff09;选择…

#数据结构 笔记三

二叉树 1. 概念 二叉树Binary Tree是n个结点的有限集合。它或者是空集n0&#xff0c;或者是由一个根结点以及两颗互不相交、分别称为左子树和右子树的二叉树组成。 二叉树与普通有序树不同&#xff0c;二叉树严格区分左子和右子&#xff0c;即使只有一个子结点也要区分左右。…

React@16.x(47)路由v5.x(12)源码(4)- 实现 Route

目录 1&#xff0c;原生 Route 的渲染内容2&#xff0c;实现 1&#xff0c;原生 Route 的渲染内容 对如下代码来说&#xff1a; import { BrowserRouter as Router, Route } from "react-router-dom"; function News() {return <div>News</div>; }func…

【虚拟机】虚拟机网络无法访问问题【已解决】

【虚拟机】虚拟机无法上网问题【已解决】 问题探究解决方法法1&#xff1a;查看相关“网络服务”是否处于正常启动状态法2&#xff1a;重启网络法3&#xff1a;重新安装VMWare法4&#xff1a;使用NAT模式&#xff0c;每次打开win7都没连上网的解决办法 问题探究 安装了很多个虚…

上位机图像处理和嵌入式模块部署(mcu项目1:实现协议)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 这种mcu的嵌入式模块理论上都是私有协议&#xff0c;因为上位机和下位机都是自己开发的&#xff0c;所以只需要自己保证上、下位机可以通讯上&…

Feign 原理流程图练习-01

目录 作业: 老师给的参考流程图 要求 解答 知识扩展 Feign基础原理 接口定义 代理对象生成 请求调用 请求发送 响应处理 容错与熔断 总结 作业: 老师给的参考流程图 pdf版本 【金山文档 | WPS云文档】 Feign https://kdocs.cn/l/ctbagIyxN348 ​ 要求 结合上面…

基于Redisson实现分布式锁

基于redisson实现分布式锁 之前背过分布式锁几种实现方案的八股文&#xff0c;但是并没有真正自己实操过。现在对AOP有了更深一点的理解&#xff0c;就自己来实现一遍。 1、分布式锁的基础知识 分布式锁是相对于普通的锁的。普通的锁在具体的方法层面去锁&#xff0c;单体应…