PaddleHub扣脸和换脸

2023-10-09 17:30
文章标签 paddlehub 扣脸

本文主要是介绍PaddleHub扣脸和换脸,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

PaddleHub扣脸和换脸

  • 主要思路
  • 环境介绍
  • 预训练模型介绍
  • 合成代码

主要思路

  1. 利用人脸关键点检测检测出脸部位置,然后根据检测结果将目标背景与目标脸脸部轴心放齐
  2. 再根据检测结果裁剪出脸部区域,对脸部区域进行分割,分割出脸和背景,根据分割结果将脸抠出来备用
  3. 将分割出来的脸经过亮度变化(很重要),大小变化,贴合再背景图的脸部中心位置

环境介绍

PaddleHub, 依托于paddlepaddle的深度学习框架,里面包含有CV,NLP等的预训练模型,其安装代码为

pip install paddlehub

此外还有opencv,matplotlib,math等常用包。安装方法不再赘述。

预训练模型介绍

本次主要用到了两个与训练包,face_landmark_localization和ace2p。
face_landmark_localization:用于面部检测,其训练集为AFW/AFLW,网络结构为Face_Landmark。送入一张面部照片可以将一下面部点的坐标返回
面部识别点
ace2p:人体解析(Human Parsing)是细粒度的语义分割任务,其旨在识别像素级别的人类图像的组成部分(例如,身体部位和服装)训练集为LIP,网络结构为ACE2P。ACE2P通过融合底层特征,全局上下文信息和边缘细节,端到端地训练学习人体解析任务。该结构针对Intersection over Union指标进行针对性的优化学习,提升准确率。以ACE2P单人人体解析网络为基础的解决方案在CVPR2019第三届LIP挑战赛中赢得了全部三个人体解析任务的第一名。该PaddleHub Module采用ResNet101作为骨干网络,接受输入图片大小为473x473x3。
人体解析

合成代码

这里将面部识别和分割进行封装在了一起

import cv2
import paddlehub as hub
import numpy as np
class face_Seg(object):'''imgFile:原始图片数据origLandMark:第一次detection的坐标faceImg:裁剪后的图片resLandMark:修改后的坐标mapImg:分割后的标注图片resFaceImg:最终分割后图片'''def __init__(self, imgFile):self.imgFile = imgFileself.origLandMark = Noneself.faceImg = Noneself.resLandMark = Noneself.mapImg = Noneself.resFaceImg = Noneself.oriMapImg = Noneself.orgBox = None@staticmethoddef keypoint_detection(images):return hub.Module(name="face_landmark_localization").keypoint_detection(images=images)@staticmethoddef human_parser(images):return hub.Module(name="ace2p").segmentation(images=images)'''获取原始图像'''def getOrgImgFile(self):return self.imgFile'''获取面部监测点信息'''def getOrLandMark(self):if np.all(self.origLandMark == None):try:res = self.keypoint_detection(images=[self.imgFile])except:print("无法打开图片或检测有问题!")return Noneself.origLandMark = np.array(res[0]['data'][0])return self.origLandMark'''获取面部图片的裁剪后图像'''def getFaceImg(self):if np.all(self.faceImg == None):LandMark = self

这篇关于PaddleHub扣脸和换脸的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

paddlehub的简单应用

1、下载安装 pip install paddlehub -i https://pypi.tuna.tsinghua.edu.cn/simple 报错: Collecting onnx<=1.9.0 (from paddle2onnx>=0.5.1->paddlehub)Using cached https://pypi.tuna.tsinghua.edu.cn/packages/73/e9

AIGC - SD(中英文本生成图片) + PaddleHub/HuggingFace + stable-diffusion-webui

功能 stable-diffusion(文本生成图片)webui-win搭建(开启api+界面汉化)PaddleHubHuggingFace: SD2,中文-alibaba/EasyNLP stable-diffusion-webui 下载与安装 环境相关下载python(文档推荐:Install Python 3.10.6 (Newer version of Python does n

AIGC-stable-diffusion(文本生成图片)+PaddleHub/HuggingFace

功能 stable-diffusion(文本生成图片)PaddleHub,HuggingFace两种调用方式 PaddleHub 环境 pip install paddlepaddle-gpupip install paddlehub 代码 from PIL import Imageimport paddlehub as hubmodule = hub.Module(name='

如何在paddlehub库中找到paddlehub.Module()所在的位置

要在PaddleHub库中找到paddlehub.Module()的位置,您可以通过以下步骤在PaddleHub库的源代码中进行查找: 1.确定PaddleHub库的安装位置:首先,确定您安装PaddleHub库的位置。通常,PaddleHub库会被安装在Python的site-packages目录中,您可以通过以下命令找到该目录: python -c "import padd

PaddlePaddle----基于paddlehub的OCR识别

Paddlehub介绍         PaddleHub是一个基于PaddlePaddle深度学习框架开发的预训练模型库和工具集,提供了丰富的功能和模型,包括但不限于以下几种: 1.文本相关功能:包括文本分类、情感分析、文本生成、文本相似度计算等预训练模型和工具。 2.图像相关功能:包括图像分类、目标检测、人脸识别、图像生成等任务的预训练模型和工具。 3.视频相关功能:包括视频分类、视频

paddlehub实现人物抠图换背景

文章目录 前言简介paddlehub安装功能实现引入库用到的hub库每帧的图像处理结果输出 总结 前言 看完文章您将学会: paddlehub的使用方法 如何用cv2加载图片并保存 如何用cv2逐帧加载视频以及将图片逐帧保存成视频 如何将png格式的图片放入另一张图片 本文涉及paddlehub的人脸检测、图像分割和图像生成三个部分 详细的文档请访问: https://ww

【PaddleHub模型贡献】一行代码实现蛇种识别

一行代码实现蛇种识别 一、模型开发1.安装必要的资源库2.数据预处理2.1解压数据集2.2划分训练集 3.模型训练3.1设置使用0号GPU卡3.2图像预处理+数据增强3.3数据迭代器的定义3.4开始炼丹 4.查看模型预测效果 二、封装Module1.导出inference模型2.模型转换3.模型安装4.模型预测预测单张图片预测多张图片 三、在GitHub上提pr1.Fork PaddleH

【PaddleHub模型贡献】一行代码实现驾驶员状态识别

驾驶员状态识别 一、工具简介PaddleXPaddleHub 二、数据集介绍三、模型开发1.安装PaddleX2.定义数据加载器3.模型训练4.导出预测模型5.评估模型性能 四、模型转换五、模型预测六、总结与升华个人简介 一般来讲,人在疲劳的时候会有比较典型的面部表情或动作特征,如较长的眨眼持续时间、较慢的眼睑运动、点头、打哈欠等。 基于摄像头的驾驶员监测方案正是利用这一点:首先

【OCR识别】PaddleHub实现验证码识别

文章目录 前言无脑安装使用PaddleHub寻找预训练模型库完整代码效果图 前言 前面有篇文章介绍了 【网站验证码识别】 ,但是其是利用 tesseract 工具的命令行来实现图片内容的识别。 这几天我突然想起,大学时参加百度 AI 比赛用过其 PaddleHub 框架,而且该工具有支持 Python 的第三方库,这不就可以尝试一下。 无脑安装使用 只要基本熟悉 Pyth

【OCR识别】PaddleHub实现验证码识别

文章目录 前言无脑安装使用PaddleHub寻找预训练模型库完整代码效果图 前言 前面有篇文章介绍了 【网站验证码识别】 ,但是其是利用 tesseract 工具的命令行来实现图片内容的识别。 这几天我突然想起,大学时参加百度 AI 比赛用过其 PaddleHub 框架,而且该工具有支持 Python 的第三方库,这不就可以尝试一下。 无脑安装使用 只要基本熟悉 Pyth