当前位置: 首页 > news >正文

论文解读——掌纹生成网络 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++ 面向对象编程:关系运算符重载、函数调用运算符重载

对 、<、> 三个运算符分别进行重载&#xff0c;可见以下代码&#xff1a; #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 && …...

拉普拉斯分布极大似然估计

在拉普拉斯分布中&#xff0c;概率密度函数 (PDF) 表示为&#xff1a; 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)2b1​exp(−b∣x−μ∣​), 其中 μ \mu μ 是位置参数&…...

VLMs之Gemma 2:PaliGemma 2的简介、安装和使用方法、案例应用之详细攻略

VLMs之Gemma 2&#xff1a;PaliGemma 2的简介、安装和使用方法、案例应用之详细攻略 导读&#xff1a;2024年12月4日&#xff0c;PaliGemma 2是一个基于Gemma 2系列语言模型的开源视觉语言模型 (VLM) 家族。PaliGemma 2 通过提供一个规模化、多功能且开源的VLM家族&#xff0c;…...

qwenvl 代码中的attention pool 注意力池如何理解,attention pool注意力池是什么?

qwenvl 中的attention pool如何理解&#xff0c;其实这就是一个概念的问题 看qwenvl的huggingface的代码的时候&#xff0c;发现代码里有一个Resampler 以及attn_pool&#xff0c;这和之前理解的连接池 线程池 表示资源复用的意思不太一样&#xff0c;查了一下&#xff1a; 注…...

源码分析之Openlayers中GeometryCollection类

概述 本文主要介绍GeometryCollection类,GeometryCollection类继承于Geometry类,关于Geometry类,参考这篇文章源码分析之Openlayers中Geometry基类介绍 GeometryCollection类就是一组几何对象的集合. 源码分析 GeometryCollection类源码实现 GeometryCollection类源码实现…...

常见LLM大模型总结

常见LLM大模型总结 模型名称发布机构主要特点参数规模应用场景GPT-4OpenAI强大的推理能力&#xff0c;支持多模态&#xff08;图像文本&#xff09;&#xff0c;上下文理解更深1.7万亿参数聊天机器人、内容生成、代码生成ChatGPTOpenAI面向对话优化&#xff0c;支持多轮对话记…...

向量检索+大语言模型,免费搭建基于专属知识库的 RAG 智能助手

随着生成式人工智能技术的飞速发展&#xff0c;越来越多的人和企业开始应用AI到日常的工作和生活中。但公域的AI助手其数据来自互联网上的大量公开文本&#xff0c;虽然具有广泛的知识&#xff0c;但在面对一些特定领域的专业问题时&#xff0c;可能会出现回答不够准确或深入的…...

基础11C++中的异常处理以及swap

一、异常处理手段 抛出异常&#xff1a;throw 异常 作用&#xff1a;让调用者看见这个异常&#xff0c;如果调用者不理睬&#xff0c;就让调用者的调用者看见 接住异常: try {可能异常的code} catch(异常类型) {处理方式} 异常类型&#xff1a;一般为const &&#xff0c;防…...

写作词汇积累:得偿所望、可见一斑、搭腔

得偿所望 【得偿所望】是指经过长时间的期盼和努力&#xff0c;最终实现了自己的愿望或目标。 【得偿所望】强调了愿望实现后的满足感和成就感&#xff0c;是一个充满正能量和积极情感的词语。 【得偿所望】与【得偿所愿】在表达上也具有相似的含义&#xff0c;都指愿望得到了…...

android jetpack compose Model对象更新变量 UI不更新、不刷新问题

以前是搞老本行Android原生开发的&#xff0c;因为工作原因&#xff0c;一直在用vue小程序&#xff1b;因为一些工作需要&#xff0c;又需要用到Android原生开发&#xff0c;建了个项目&#xff0c;打开源码一看&#xff0c;天塌了&#xff01;&#xff01;&#xff01;我以前的…...

数据库概论

目录 1、数据库管理系统(DBMS) 1.1 DBMS的主要功能 1. 数据库的定义功能 2. 数据库的操纵功能 3. 数据库的运行控制功能 4. 数据库的维护 5. 数据字典(Data Dictionary&#xff0c;DD) 2、数据模型 2.1 信息和数据(了解) 2.2 数据模型的三个层次 2.3 信息世界中的基…...

基于python使用UDP协议对飞秋进行通讯—DDOS

基于飞秋的信息传输 声明&#xff1a;笔记的只是方便各位师傅学习知识&#xff0c;以下代码、网站只涉及学习内容&#xff0c;其他的都与本人无关&#xff0c;切莫逾越法律红线&#xff0c;否则后果自负。 老规矩&#xff0c;封面在文末&#xff01; 飞秋介绍 &#xff08;…...

数据库管理-第275期 Oracle 23ai:画了两张架构图(20241225)

数据库管理275期 2024-12-25 数据库管理-第275期 Oracle 23ai&#xff1a;画了两张架构图&#xff08;20241225&#xff09;1 系统管理分片2 用户定义分片总结 数据库管理-第275期 Oracle 23ai&#xff1a;画了两张架构图&#xff08;20241225&#xff09; 作者&#xff1a;胖…...

使用Streamlit部署机器学习模型

机器学习&#xff1a; 计算机能够从经验中学习&#xff0c;而无需明确编程。机器学习是目前最热门的领域之一&#xff0c;世界各地的顶级公司都在使用它来改善他们的服务和产品。但是没有使用在Jupyter Notebook中训练的机器学习模型。因此&#xff0c;我们需要部署这些模型&am…...

树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频

使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问&#xff08;基础概念问题&#xff09; 1. 请解释Spring框架的核心容器是什么&#xff1f;它在Spring中起到什么作用&#xff1f; Spring框架的核心容器是IoC容器&#…...

Caliper 配置文件解析:fisco-bcos.json

config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...

Vite中定义@软链接

在webpack中可以直接通过符号表示src路径&#xff0c;但是vite中默认不可以。 如何实现&#xff1a; vite中提供了resolve.alias&#xff1a;通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...

C++实现分布式网络通信框架RPC(2)——rpc发布端

有了上篇文章的项目的基本知识的了解&#xff0c;现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...