图像空间人脸正面化代码运行小结

2023-10-18 05:58

本文主要是介绍图像空间人脸正面化代码运行小结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

因为组里实验的需要,我在这几天找了一些图像空间人脸正面化的方法进行了从侧面人脸到正面人脸的生成正面的人脸图像。

总体来说图像空间人脸正面化的方法开源程度不高,甚至可以说算小的。这些天,我看了DRGAN、TPGAN、DAGAN、Rotate and Render(三维的)这些算是图像空间人脸正面化的开源方法了,但是TPGAN和DAGAN都没有提供预训练模型,只提供了开源的代码,而人脸正面化训练消耗的时间和资源都是很大的,还有图片的预处理也是很相比于其他任务来说也是要求很高的,对于我们只想利用人脸正面化结果来说,这些开源的作用不大。

我在github上又找了两个其他人自己复现的TP-GAN的项目,代码和模型的开源都有,但是运行出来的效果不是很理想,所以就没有采用了。

其中最良心的要数DR-GAN了。DR-GAN中不但提供了预训练的模型,而且还有图像的预处理过程,及训练自己数据和做预测的详细步骤介绍。所以用DR-GAN运行出自己想要的结果是很容易的事情。DR-GAN的代码书写规范也是一个很好代码编写学习典范。

最后说说我运行的Rotate-and-Render-master,这是一篇2020年发表的使用三维的方法进行人脸正面化的方法,因为是最近发表,效果上肯定不会差。而且这篇文章从代码到模型,再到训练和推理步骤都很详细。但是对于没有接触过三维的同学来说代码和环境的配置可能有些吃力。

 

注:推荐使用Linux配置环境并运行程序,因为有些库文件在windows上很难安装或者只能在Linux安装。

 

附使用的代码地址:

DR-GAN:https://github.com/tranluan/DR-GAN

第三方TP-GAN:https://github.com/yh-iro/Keras_TP-GAN

https://github.com/scaleway/frontalization

Rotate-and-Render:https://github.com/Hangz-nju-cuhk/Rotate-and-Render

这篇关于图像空间人脸正面化代码运行小结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/230619

相关文章

C#中lock关键字的使用小结

《C#中lock关键字的使用小结》在C#中,lock关键字用于确保当一个线程位于给定实例的代码块中时,其他线程无法访问同一实例的该代码块,下面就来介绍一下lock关键字的使用... 目录使用方式工作原理注意事项示例代码为什么不能lock值类型在C#中,lock关键字用于确保当一个线程位于给定实例的代码块中时

flask库中sessions.py的使用小结

《flask库中sessions.py的使用小结》在Flask中Session是一种用于在不同请求之间存储用户数据的机制,Session默认是基于客户端Cookie的,但数据会经过加密签名,防止篡改,... 目录1. Flask Session 的基本使用(1) 启用 Session(2) 存储和读取 Se

Python获取浏览器Cookies的四种方式小结

《Python获取浏览器Cookies的四种方式小结》在进行Web应用程序测试和开发时,获取浏览器Cookies是一项重要任务,本文我们介绍四种用Python获取浏览器Cookies的方式,具有一定的... 目录什么是 Cookie?1.使用Selenium库获取浏览器Cookies2.使用浏览器开发者工具

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

Kotlin Map映射转换问题小结

《KotlinMap映射转换问题小结》文章介绍了Kotlin集合转换的多种方法,包括map(一对一转换)、mapIndexed(带索引)、mapNotNull(过滤null)、mapKeys/map... 目录Kotlin 集合转换:map、mapIndexed、mapNotNull、mapKeys、map

Redis中Stream详解及应用小结

《Redis中Stream详解及应用小结》RedisStreams是Redis5.0引入的新功能,提供了一种类似于传统消息队列的机制,但具有更高的灵活性和可扩展性,本文给大家介绍Redis中Strea... 目录1. Redis Stream 概述2. Redis Stream 的基本操作2.1. XADD

SpringSecurity整合redission序列化问题小结(最新整理)

《SpringSecurity整合redission序列化问题小结(最新整理)》文章详解SpringSecurity整合Redisson时的序列化问题,指出需排除官方Jackson依赖,通过自定义反序... 目录1. 前言2. Redission配置2.1 RedissonProperties2.2 Red

C++中NULL与nullptr的区别小结

《C++中NULL与nullptr的区别小结》本文介绍了C++编程中NULL与nullptr的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编... 目录C++98空值——NULLC++11空值——nullptr区别对比示例 C++98空值——NUL

C++ Log4cpp跨平台日志库的使用小结

《C++Log4cpp跨平台日志库的使用小结》Log4cpp是c++类库,本文详细介绍了C++日志库log4cpp的使用方法,及设置日志输出格式和优先级,具有一定的参考价值,感兴趣的可以了解一下... 目录一、介绍1. log4cpp的日志方式2.设置日志输出的格式3. 设置日志的输出优先级二、Window

Ubuntu如何分配​​未使用的空间

《Ubuntu如何分配​​未使用的空间》Ubuntu磁盘空间不足,实际未分配空间8.2G因LVM卷组名称格式差异(双破折号误写)导致无法扩展,确认正确卷组名后,使用lvextend和resize2fs... 目录1:原因2:操作3:报错5:解决问题:确认卷组名称​6:再次操作7:验证扩展是否成功8:问题已解