论文解读——掌纹生成网络 RPG-Palm升级版PCE-Palm

该文章是2023年论文RPG-Palm的升级版
论文:PCE-Palm: Palm Crease Energy Based Two-Stage Realistic Pseudo-Palmprint Generation
作者:Jin, Jianlong and Shen, Lei and Zhang, Ruixin and Zhao, Chenglong and Jin, Ge and Zhang, Jingyun and Ding, Shouhong and Zhao, Yang and Jia, Wei
出版刊物:Proceedings of the AAAI Conference on Artificial Intelligence
代码:https://github.com/Ukuer/PCE-Palm


文章目录

  • 1、算法概述
  • 2、背景知识
  • 3、算法细节
    • 3.1 Transfer from Bézier Palm to PCE Domain
    • 3.2 Generate Realistic Palmprint from PCE Domain
    • 3.3 推理阶段
  • 4、实验


1、算法概述

腾讯优图的掌纹生成文章,从2022年的BézierPalm,到2023年的RPG-Palm,到今年2024年的PCE-Palm,该文章是将RPG-Palm中从Bézier曲线一步到位生成掌纹图片拆分成了两步进行,新增了中间一步叫做PCE图像,减小了一步到位生成掌纹图像的难度。


2、背景知识

因为该论文是基于RPG-Palm进行改进升级的,所以有必要了解一下RPG-Palm算法的训练和推理步骤,详细论文解读见博文掌纹生成网络RPG-Palm论文解读,RPG-Palm算法框架如下图所示:
在这里插入图片描述
图(a)是训练阶段,图(b)是推理阶段;
生成器G结构类似于常见的图像生成器结构UNet,为了生成多样化的结果,引入了条件自适应实例规范化模块(CAdaIN),对每个Down-Block和Up-Block生成的细节进行调制。D是判别器,而编码器E用于将掌纹图像进行编码,论文中了Resnet结构,为了保证生成的id类内一致,作者添加了ID-aware Loss。
推理阶段,可以看到,是一步到位的,即直接从Bézier图像经过生成器G生成了“伪”掌纹图像。


3、算法细节

PCE-Palm掌纹生成算法基于RPG-Palm算法将推理步骤拆分成两个阶段,中间插入了生成PCE图像( palm crease energy),下图是两者的区别:
在这里插入图片描述
可以看到,从Bézier曲线图到掌纹图像之间有着巨大差距,而RPG-Palm算法试图一步到位生成(上面的箭头),而本文的PCE-Palm算法分两步,首先从Bézier曲线图生成手掌折痕图,第二步再加入皮肤纹理(下面的箭头)。

3.1 Transfer from Bézier Palm to PCE Domain

在第一阶段,生成器GB->P将随机采样的Bézier曲线转换为PCE图像。第一阶段主要的网络就是生成器GB->P,为了模拟高斯MFRAT
滤波器(Jia,Huang,andZhang2008)的效果,作者提出了线特征增强模块( line feature enhancement block, LFEB)用于增强生成器GB->P对线路能量特性的关注能力。第一阶段及生成器GB->P以及线特征增强模块LFEB的结构如下:
在这里插入图片描述
PCEM模块用于从真实掌纹图像中提取PCE图像,它的结构如下:
在这里插入图片描述


3.2 Generate Realistic Palmprint from PCE Domain

第二阶段是利用PCE图像生成逼真的掌纹图像,其训练生成器GP->R的框图如下:
在这里插入图片描述
其中,生成器GP->R和编码器E依然和RPG-Palm一样,均是采用Unet和Resnet结构,PCEM模块同第一阶段一样,用于从掌纹图像中提取PCE图像信息。

与RPG-Palm不一样的是,对于确认生成的掌纹与真实像不像这里的损失,RPG-Palm用是的Lid损失函数加L1和判别器D的损失,Lid损失函数是计算两张图片特征的余弦相似度大小;而本论文是用的循环ID一致性损失Lcyc加L1和判别器D的损失,这个循环ID一致性损失Lcyc说白了也是L1损失,只是计算的两张图片是PCE图像,一个是由真实掌纹图而来,一个是由生成的掌纹图而来,它是基于这个假设,生成的掌纹图越像真实掌纹图,那么两者的PCE图应该也非常像。

循环ID一致性损失Lcyc公式如下:
在这里插入图片描述
生成器GP->R的损失函数以及第二阶段整个损失函数的公式如下:
在这里插入图片描述


3.3 推理阶段

推理阶段就没那么复杂了,直接利用上面两节训练好的生成器GB->P和生成器GP->R进行生成就行,首先用随机抽样的控制点生成Bézier曲线。然后,使用生成器GB→P将Bézier曲线转换到PCE域。之后,用训练好的生成器GP→R可以以PCE图像作为ID条件生成逼真的掌纹。为了生成多样化的掌纹,将随机噪声向量输入到GP→R中作为潜在的控制向量,以再现各种光线和皮肤纹理。如下面框图所示:
在这里插入图片描述
同时,作者为了最大限度地减少了生成掌纹和真实掌纹之间的差距。还根据皮肤纹理学方面的知识,设计了Bézier曲线的5个模板,生成Bézier曲线均基于这些模板,如下图所示:
在这里插入图片描述


4、实验

开放集掌纹识别对比情况如下表所示:
在这里插入图片描述

限制id数量下掌纹识别对比情况如下:
在这里插入图片描述

在开放集协议下,采用不同的生成方法进行定量识别的对比情况如下:
在这里插入图片描述

消融实验
在这里插入图片描述

线特征增强模块LFEB提升掌纹中线的特征提取能力,可视化结果如下:
在这里插入图片描述
可以看到,掌纹图像经过LFEB模块后,线特征得到了强化,有点图像锐化的效果,对于后续生成PCE图像有帮助。

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

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

相关文章

对gPTP上PTP安全控制的评估

论文标题:Evaluation of PTP Security Controls on gPTP(对gPTP上PTP安全控制的评估) 作者信息: Mahdi Fotouhi, Alessio Buscemi, Thomas Engel:卢森堡大学科学、技术与医学系(Faculty of Science, Tech…

1.微服务灰度发布(方案设计)

前言 微服务架构中的灰度发布(也称为金丝雀发布或渐进式发布)是一种在不影响现有用户的情况下,逐步将新版本的服务部署到生产环境的策略。通过灰度发布,你可以先将新版本的服务暴露给一小部分用户或特定的流量,观察其…

【流量、洪水数据下载】网站介绍和下载经验....不断更新!

EarthData 介绍 NASA:链接 数据下载 视频教程:Discover and Access Earth Science Data Using Earthdata Search 数据下载需要注册,已经被卡在邮箱验证上【2024-12-26】… Essential Climate Variables——【The Global Climate Observing System(GCOS) 介绍 其是支…

数据仓库工具箱—读书笔记02(Kimball维度建模技术概述04、使用一致性维度集成)

Kimball维度建模技术概述 记录一下读《数据仓库工具箱》时的思考,摘录一些书中关于维度建模比较重要的思想与大家分享🤣🤣🤣 第二章前言部分作者提到:技术的介绍应该通过涵盖各种行业的熟悉的用例展开(赞同…

分布式专题(10)之ShardingSphere分库分表实战指南

一、ShardingSphere产品介绍 Apache ShardingSphere 是一款分布式的数据库生态系统, 可以将任意数据库转换为分布式数据库,并通过数据分片、弹性伸缩、加密等能力对原有数据库进行增强。Apache ShardingSphere 设计哲学为 Database Plus,旨在…

RK3588在Android13/14如何查看GPU,NPU,DDR,RGA数据

由于Android13上selinux的权限管控加强,原来android12的方法已经无法获取到性能相关数据了,故单独介绍Android13上的性能数据获取 首先需要保障能过获取到root权限,adb root能够生效,adb shell进入shell命令行 mount -t debugfs…

基础优化方法

梯度下降 学习率代表每一次沿着这个方向走多远, batchsize的概念 梯度下降通过不断沿着反梯度方向更新参数求解 两个重要的超参数是 batchsize 和 学习率

阿里云人工智能ACA(五)——深度学习基础

一、深度学习概述 1. 深度学习概念 1-1. 深度学习基本概念 深度学习是机器学习的一个分支基于人工神经网络(模仿人脑结构)通过多层网络自动学习特征能够处理复杂的模式识别问题 1-2. 深度学习的优点与缺点 优点 强大的特征学习能力可以处理复杂问题…

浏览器工作原理与实践-12|栈空间和堆空间:数据是如何存储的

12|栈空间和堆控件:数据是如何存储的 JavaScript内存机制 function foo(){var a 1var b aa 2console.log(a) // 2console.log(b) // 2 } foo()function foo(){var a {name:"极客时间"}var b aa.name "极客邦"console.log(a) // {name:&…

计算机网络习题(第1章 概论 第2章 数据通信基础)

第1章 概论 1、计算机网络 2、互联网 3、计算机网络体系结构 分层模型 OSI/RM 7层模型 TCP/IP 5层模型 协议、PDU、SDU、SAP等术语 数据封装(计算) 第2章 数据通信基础 1、数据通信系统组成 2、主要性能指标 数据传输速率 码元速率 时延 …

CS 144 check7: putting it all together

Exercises 经验:两边的TCP连接建立得尽快,如果服务器端启动了,客户端没有紧接着启动就连不上。 这是什么神奇的bug呢? 和我之前给域控刷SOC的版本一样。如果域控启动了,在我本地的电脑没有马上和域控的SOC通上信&…

kubernetes存储架构之PV controller源码解读

​ kubernetes存储之PV controller源码解读 摘要 本文介绍kubernetes存储架构的基础,并重点对PV controller的源码进行了学习 引入 从一个业务场景出发,假如你所在的公司,有个物理机,上面部署了web服务器,随着业务…

springboot497基于java国产动漫网站设计和实现(论文+源码)_kaic

摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对信息管理混乱,出错率高,信息安全性差&#x…

音视频入门知识(二)、图像篇

⭐二、图像篇 视频基本要素:宽、高、帧率、编码方式、码率、分辨率 ​ 其中码率的计算:码率(kbps)=文件大小(KB)*8/时间(秒),即码率和视频文件大小成正比 YUV和RGB可相互转换 ★YUV(原始数据&am…

Windows下C++使用SQLite

1、安装 进入SQLite Download Page页面,下载sqlite-dll-win-x86-*.zip、sqlite-amalgamation-*.zip、sqlite-tools-win-x64-*.zip三个包,这三个包里分别包含dll文件和def文件、头文件、exe工具。 使用vs命令行工具生成.lib文件:进入dll和def文…

[代码随想录23回溯]回溯的组合问题+分割子串

前言 回溯是什么&#xff1f; 题目链接 39. 组合总和 - 力扣&#xff08;LeetCode&#xff09; 40. 组合总和 II - 力扣&#xff08;LeetCode&#xff09; 131. 分割回文串 - 力扣&#xff08;LeetCode&#xff09; 一、组合问题 private:vector<vector<int>>r…

xinput1_3.dll放在哪里?当xinput1_3.dll丢失时的应对策略:详细解决方法汇总

在计算机系统的运行过程中&#xff0c;我们偶尔会遇到一些令人困扰的问题&#xff0c;其中xinput1_3.dll文件丢失就是较为常见的一种情况。这个看似不起眼的动态链接库文件&#xff0c;实则在许多软件和游戏的正常运行中发挥着至关重要的作用。一旦它丢失&#xff0c;可能会导致…

运行Zr.Admin项目(后端)

1.下载Zr.Admin代码压缩包 https://codeload.github.com/izhaorui/Zr.Admin.NET/zip/refs/heads/main 2.打开项目 我这里装的是VS2022社区版 进入根目录&#xff0c;双击ZRAdmin.sln打开项目 3.安装.net7运行时 我当时下载的代码版本是.net7的 点击安装 点击安装&#xff0…

MySQL 锁概述

1.锁的分类 根据不同的分类角度可将锁分为&#xff1a; 按是否共享分&#xff1a;S 锁、X 锁按粒度分&#xff1a;表级锁、行级锁、全局锁&#xff08;锁整个库&#xff09;、页锁&#xff08;锁数据页&#xff09;意向锁&#xff1a;意向 S 锁、意向 X 锁&#xff1a;都是表…

记Fastjson2的一个报ConcurrentModificationException的bug

错误背景&#xff1a;fastjson2的parseObject方法&#xff0c;在spring webflux项目中被调用&#xff0c;有时会报java.util.ConcurrentModificationException错误。报错处的代码如下图&#xff1a; 改了半天与并发安全相关的代码&#xff0c;还是会报此错误。后来改变思路搜…