论文解读——掌纹生成网络 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图像有帮助。
相关文章:
论文解读——掌纹生成网络 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,…...
Android修行手册 - 移动端几种常用动画方案对比
Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分…...
16 循环语句——for循环
#字符串是可以进行迭代的 for 循环: for 变量 in 可迭代的东西: 代码 把可迭代的东西中的每一项内容拿出来,挨个的赋值给变量,每一次的赋值都要执行一次循环体(代码) s "你好呀,我叫赛利…...
代码随想录-笔记-其八
让我们开始:动态规划! 70. 爬楼梯 - 力扣(LeetCode) 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? class Solution { public:int climbStairs(i…...
Effective C++ 条款 15:在资源管理类中提供对原始资源的访问
文章目录 条款 15:在资源管理类中提供对原始资源的访问核心思想原始资源的访问方式标准库中的实现示例设计建议总结 条款 15:在资源管理类中提供对原始资源的访问 核心思想 为什么需要访问原始资源? 在使用 RAII(Resource Acquis…...
Linux高并发服务器开发 第五天(压缩解压缩/vim编辑器/查找替换/分屏操作/vim的配置)
目录 1.压缩和解压缩 1.1压缩 1.2解压缩 2.vim编辑器 2.1vim的3种工作模式 2.2切换编辑模式 2.3保存和退出 2.4光标移动 2.5复制粘贴 2.6剪切、删除 2.7查找 替换 2.7.1查找 2.7.2替换 3.分屏操作 3.1快速翻屏 3.2分屏 4.vim的配置 4.1系统配置 4.2用户配置…...
C++ 面向对象编程:关系运算符重载、函数调用运算符重载
对 、<、> 三个运算符分别进行重载,可见以下代码: #include<iostream> using namespace std;class location { public:location(int x1, int y1) :x(x1), y(y1){};bool operator(const location& l1) const{return x l1.x && …...
拉普拉斯分布极大似然估计
在拉普拉斯分布中,概率密度函数 (PDF) 表示为: f ( x ∣ μ , b ) 1 2 b exp ( − ∣ x − μ ∣ b ) , f(x | \mu, b) \frac{1}{2b} \exp\left(-\frac{|x - \mu|}{b}\right), f(x∣μ,b)2b1exp(−b∣x−μ∣), 其中 μ \mu μ 是位置参数&…...
VLMs之Gemma 2:PaliGemma 2的简介、安装和使用方法、案例应用之详细攻略
VLMs之Gemma 2:PaliGemma 2的简介、安装和使用方法、案例应用之详细攻略 导读:2024年12月4日,PaliGemma 2是一个基于Gemma 2系列语言模型的开源视觉语言模型 (VLM) 家族。PaliGemma 2 通过提供一个规模化、多功能且开源的VLM家族,…...
qwenvl 代码中的attention pool 注意力池如何理解,attention pool注意力池是什么?
qwenvl 中的attention pool如何理解,其实这就是一个概念的问题 看qwenvl的huggingface的代码的时候,发现代码里有一个Resampler 以及attn_pool,这和之前理解的连接池 线程池 表示资源复用的意思不太一样,查了一下: 注…...
源码分析之Openlayers中GeometryCollection类
概述 本文主要介绍GeometryCollection类,GeometryCollection类继承于Geometry类,关于Geometry类,参考这篇文章源码分析之Openlayers中Geometry基类介绍 GeometryCollection类就是一组几何对象的集合. 源码分析 GeometryCollection类源码实现 GeometryCollection类源码实现…...
常见LLM大模型总结
常见LLM大模型总结 模型名称发布机构主要特点参数规模应用场景GPT-4OpenAI强大的推理能力,支持多模态(图像文本),上下文理解更深1.7万亿参数聊天机器人、内容生成、代码生成ChatGPTOpenAI面向对话优化,支持多轮对话记…...
向量检索+大语言模型,免费搭建基于专属知识库的 RAG 智能助手
随着生成式人工智能技术的飞速发展,越来越多的人和企业开始应用AI到日常的工作和生活中。但公域的AI助手其数据来自互联网上的大量公开文本,虽然具有广泛的知识,但在面对一些特定领域的专业问题时,可能会出现回答不够准确或深入的…...
基础11C++中的异常处理以及swap
一、异常处理手段 抛出异常:throw 异常 作用:让调用者看见这个异常,如果调用者不理睬,就让调用者的调用者看见 接住异常: try {可能异常的code} catch(异常类型) {处理方式} 异常类型:一般为const &,防…...
写作词汇积累:得偿所望、可见一斑、搭腔
得偿所望 【得偿所望】是指经过长时间的期盼和努力,最终实现了自己的愿望或目标。 【得偿所望】强调了愿望实现后的满足感和成就感,是一个充满正能量和积极情感的词语。 【得偿所望】与【得偿所愿】在表达上也具有相似的含义,都指愿望得到了…...
android jetpack compose Model对象更新变量 UI不更新、不刷新问题
以前是搞老本行Android原生开发的,因为工作原因,一直在用vue小程序;因为一些工作需要,又需要用到Android原生开发,建了个项目,打开源码一看,天塌了!!!我以前的…...
数据库概论
目录 1、数据库管理系统(DBMS) 1.1 DBMS的主要功能 1. 数据库的定义功能 2. 数据库的操纵功能 3. 数据库的运行控制功能 4. 数据库的维护 5. 数据字典(Data Dictionary,DD) 2、数据模型 2.1 信息和数据(了解) 2.2 数据模型的三个层次 2.3 信息世界中的基…...
基于python使用UDP协议对飞秋进行通讯—DDOS
基于飞秋的信息传输 声明:笔记的只是方便各位师傅学习知识,以下代码、网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。 老规矩,封面在文末! 飞秋介绍 (…...
数据库管理-第275期 Oracle 23ai:画了两张架构图(20241225)
数据库管理275期 2024-12-25 数据库管理-第275期 Oracle 23ai:画了两张架构图(20241225)1 系统管理分片2 用户定义分片总结 数据库管理-第275期 Oracle 23ai:画了两张架构图(20241225) 作者:胖…...
使用Streamlit部署机器学习模型
机器学习: 计算机能够从经验中学习,而无需明确编程。机器学习是目前最热门的领域之一,世界各地的顶级公司都在使用它来改善他们的服务和产品。但是没有使用在Jupyter Notebook中训练的机器学习模型。因此,我们需要部署这些模型&am…...
label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...
[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】,分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...
【JavaSE】多线程基础学习笔记
多线程基础 -线程相关概念 程序(Program) 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存…...
关于uniapp展示PDF的解决方案
在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项: 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库: npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...
c++第七天 继承与派生2
这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分:派生类构造函数与析构函数 当创建一个派生类对象时,基类成员是如何初始化的? 1.当派生类对象创建的时候,基类成员的初始化顺序 …...
