首页 游戏 软件 资讯 排行榜 专题
首页
AI
PaddleHub人脸关键点检测:一键生成蜡笔小新的远房表弟

PaddleHub人脸关键点检测:一键生成蜡笔小新的远房表弟

热心网友
74
转载
2025-07-18
本文介绍了将人像转化为“蜡笔小宸”(蜡笔小新风格)的方法。步骤包括:登录“蜡笔大陆”安装所需库;用PaddleHub进行人脸68个关键点检测,为后续操作打基础;提取眉毛关键点,通过连线并控制宽度刻画粗眉;运用图像局部平移算法,依据人脸关键点进行“胖脸”操作,使脸部更圆润。还可通过run.py一键执行,调整参数获得对应效果。

paddlehub人脸关键点检测:一键生成蜡笔小新的远房表弟 - 游乐网

一键寻找蜡笔小新的远方表弟

蜡笔小新应该是好多小伙伴的童年回忆之一,不会有人不喜欢蜡笔小新那招牌的粗眉毛以及圆嘟嘟的小脸蛋吧!不会吧不会吧!下面嘞,我们以宸哥作为工具人,还原蜡笔小新的远房表弟————蜡笔小宸!

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

让我们先看一下蜡笔小宸,一睹为快!

PaddleHub人脸关键点检测:一键生成蜡笔小新的远房表弟 - 游乐网

跟着我的步伐,寻找蜡笔小新的远房表弟之路,正式开启!(二三四步骤为过程演示~一键寻找请在登陆蜡笔大陆之后跳至第五部分)

一、登陆蜡笔大陆

In [ ]
!pip install --upgrade pip!pip install opencv-python==4.5.4.60!pip install paddlehub==2.1.1
登录后复制

二、使用PaddleHub进行人脸关键点检测

人脸关键点检测是人脸识别和分析领域中的关键一步,它是诸如自动人脸识别、表情分析、三维人脸重建及三维动画等其它人脸相关问题的前提和突破口。该 PaddleHub Module 的模型转换自 https://github.com/lsy17096535/face-landmark ,支持同一张图中的多个人脸检测。此步的目的是获取人脸68个关键点的坐标,如下图所示。有了人脸68个关键点的坐标,再接下来进行蜡笔眉的刻画,以及嘟嘟脸的生成就会轻松许多。

PaddleHub人脸关键点检测:一键生成蜡笔小新的远房表弟 - 游乐网

In [3]
import cv2import paddlehub as hubimport matplotlib.pyplot as plt import matplotlib.image as mpimgimport numpy as npimport mathfrom PIL import Imagesrc_img = cv2.imread('example.webp')# 加载模型并进行预测module = hub.Module(name="face_landmark_localization")result = module.keypoint_detection(images=[src_img])tmp_img = src_img.copy()for index, point in enumerate(result[0]['data'][0]):# cv2.putText(img, str(index), (int(point[0]), int(point[1])), cv2.FONT_HERSHEY_COMPLEX, 3, (0,0,255), -1)cv2.circle(tmp_img, (int(point[0]), int(point[1])), 2, (0, 0, 255), -1)res_img_path = 'face_landmark.webp'cv2.imwrite(res_img_path, tmp_img)img = mpimg.imread(res_img_path) # 展示预测68个关键点结果(若未显示关键点可视化结果请再次运行此cell)plt.figure(figsize=(10,10))plt.imshow(img) plt.axis('off') plt.show()
登录后复制
[2024-11-30 14:27:46,626] [ WARNING] - The _initialize method in HubModule will soon be deprecated, you can use the __init__() to handle the initialization of the object[2024-11-30 14:27:46,743] [ WARNING] - The _initialize method in HubModule will soon be deprecated, you can use the __init__() to handle the initialization of the object---    Fused 0 subgraphs into layer_norm op.---    Fused 0 subgraphs into layer_norm op.
登录后复制
登录后复制登录后复制登录后复制

三、刻画蜡笔眉

在上一步中我们得到了人脸68个关键点坐标,其中18-22,23-27为眉毛的坐标值。想得到蜡笔小新这照片的粗粗眉,简单来讲只需将眉毛的坐标点连成线,控制适当的宽度即可。

这里可以使用opencv的line()函数轻松实现。

PaddleHub人脸关键点检测:一键生成蜡笔小新的远房表弟 - 游乐网

In [4]
def thick_eyebrows(image, face_landmark, width):for i in range(18-1, 22-1):cv2.line(image, face_landmark[i], face_landmark[i+1], (0, 0, 0), width)for i in range(23-1, 27-1):cv2.line(image, face_landmark[i], face_landmark[i+1], (0, 0, 0), width)return image# 提取出人脸关键点坐标face_landmark = np.array(result[0]['data'][0], dtype='int')# 生成蜡笔小新版眉毛width = 8src_img = thick_eyebrows(src_img, face_landmark, width)cv2.imwrite('thick_eyebrows.webp', src_img)img = mpimg.imread('thick_eyebrows.webp') # 展示蜡笔眉plt.figure(figsize=(10,10))plt.imshow(img) plt.axis('off') plt.show()
登录后复制
登录后复制登录后复制登录后复制

四、打肿脸充小新

在这里,使用了图像局部平移算法。思路是:由变形前坐标,根据变形映射关系,得到变形后坐标。这其中变形映射关系是最关键的,不同的映射关系,将得到不同的变形效果。平移、缩放、旋转,对应的是不同的映射关系,即不同的变换公式。当然实际在计算过程中,用的是逆变换,即由变形后坐标,根据逆变换公式反算变形前坐标,然后插值得到该坐标rgb像素值,将该rgb值作为变形后坐标对应的像素值。这样才能保证变形后的图像是连续、完整的。

In [5]
# 进行胖脸操作def fat_face(image, face_landmark):    end_point = face_landmark[30]    # 胖左脸,3号点到5号点的距离作为一次胖脸距离    dist_left = np.linalg.norm(face_landmark[3] - face_landmark[5])    image = local_traslation_warp(image, face_landmark[3], end_point, dist_left)    # 胖右脸,13号点到15号点的距离作为一次胖脸距离    dist_right = np.linalg.norm(face_landmark[13] - face_landmark[15])    image = local_traslation_warp(image, face_landmark[13], end_point, dist_right)    return image
登录后复制In [6]
# 局部平移算法def local_traslation_warp(image, start_point, end_point, radius):radius_square = math.pow(radius, 2)image_cp = image.copy()dist_se = math.pow(np.linalg.norm(end_point - start_point), 2)height, width, channel = image.shapefor i in range(width):for j in range(height):# 计算该点是否在形变圆的范围之内# 优化,第一步,直接判断是会在(start_point[0], start_point[1])的矩阵框中if math.fabs(i - start_point[0]) > radius and math.fabs(j - start_point[1]) > radius:continuedistance = (i - start_point[0]) * (i - start_point[0]) + (j - start_point[1]) * (j - start_point[1])if distance < radius_square:# 计算出(i,j)坐标的原坐标# 计算公式中右边平方号里的部分ratio = (radius_square - distance) / (radius_square - distance + dist_se)ratio = ratio * ratio# 映射原位置new_x = i + ratio * (end_point[0] - start_point[0])new_y = j + ratio * (end_point[1] - start_point[1])new_x = new_x if new_x >= 0 else 0new_x = new_x if new_x < height - 1 else height - 2new_y = new_y if new_y >= 0 else 0new_y = new_y if new_y < width - 1 else width - 2# 根据双线性插值法得到new_x, new_y的值image_cp[j, i] = bilinear_insert(image, new_x, new_y)return image_cp# 双线性插值法def bilinear_insert(image, new_x, new_y):w, h, c = image.shapeif c == 3:x1 = int(new_x)x2 = x1 + 1y1 = int(new_y)y2 = y1 + 1part1 = image[y1, x1].astype(np.float) * (float(x2) - new_x) * (float(y2) - new_y)part2 = image[y1, x2].astype(np.float) * (new_x - float(x1)) * (float(y2) - new_y)part3 = image[y2, x1].astype(np.float) * (float(x2) - new_x) * (new_y - float(y1))part4 = image[y2, x2].astype(np.float) * (new_x - float(x1)) * (new_y - float(y1))insertvalue = part1 + part2 + part3 + part4return insertvalue.astype(np.int8)
登录后复制In [7]
# 进行胖脸操作fat_nums = 3for i in range(1, fat_nums):src_img = fat_face(src_img, face_landmark)cv2.imwrite('res.webp', src_img)img = mpimg.imread('res.webp') # 展示蜡笔眉+嘟嘟嘴plt.figure(figsize=(10,10))plt.imshow(img) plt.axis('off') plt.show()
登录后复制
登录后复制登录后复制登录后复制

五、一键执行~(上述为过程展示部分,可在此处一键寻找远方表弟哦)

run.py中引出了四个参数,分别是:

img_path 输入图片路径width 眉毛宽度res_img_path 输出图片路径fat_nums 嘟嘟脸系数
登录后复制

依照参数描述进行相应的修改即可,顺利运行下方命令并打印出done之后,可在左侧(/home/aistudio)目录下找到输出图片(默认:res.webp)

In [ ]
!python run.py --img_path example.webp --width 8 --res_img_path res.webp --fat_nums 3
登录后复制

来瞧瞧效果吧!(受害者不定期更新~)

PaddleHub人脸关键点检测:一键生成蜡笔小新的远房表弟 - 游乐网

PaddleHub人脸关键点检测:一键生成蜡笔小新的远房表弟 - 游乐网

PaddleHub人脸关键点检测:一键生成蜡笔小新的远房表弟 - 游乐网

PaddleHub人脸关键点检测:一键生成蜡笔小新的远房表弟 - 游乐网

(妈妈,妈妈,我跟PPDE大佬们同框了哈哈哈哈)

来源:https://www.php.cn/faq/1413476.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

openclaw在飞书测试报错access not configured.
AI
openclaw在飞书测试报错access not configured.

常见报错解析:“Access Not Configured”故障排除指南 许多开发者和团队成员在使用OpenClaw集成飞书时,都曾遭遇过一个典型的中断提示:“access not configured”(访问未配置)。该提示会明确显示您的飞书账户ID及一组唯一的配对验证码,并指出需要联系机器人所有

热心网友
04.02
OpenClaw 常用指令速查
AI
OpenClaw 常用指令速查

OpenClaw 常用指令大全与使用详解 openclaw status:此命令是查看OpenClaw系统整体健康状态的核心指令,执行后即获取服务运行状况的全面报告,是日常运维的首要诊断工具。 openclaw gateway restart:在修改网关配置后,必须运行此指令以重启网关服务,使配置文

热心网友
04.02
OpenClaw 操控浏览器
AI
OpenClaw 操控浏览器

如何通过 OpenClaw 实现 Chrome 浏览器自动化操控 在软件开发与自动化测试领域,持续学习是常态。本文旨在详细介绍如何利用 OpenClaw 连接并控制一个已开启的 Chrome 浏览器实例,实现点击、文本输入、文件上传、页面滚动、屏幕截图以及执行 JavaScript 等自动化操作。整

热心网友
04.01
# OpenClaw QQ 机器人接入完整指南
AI
# OpenClaw QQ 机器人接入完整指南

项目概述 你是否希望将强大的 AI 助手带入日常聊天?本教程将指导你完成搭建流程,让你能在 QQ 上直接调用 OpenClaw 智能助手,实现无门槛的 AI 对话体验。 架构说明 ┌─────────────┐ ┌──────────────┐ ┌─────────────┐ │ QQ 用户 │ ─

热心网友
04.01
OpenClaw 保姆级 window部署
AI
OpenClaw 保姆级 window部署

一 下载并安装Node js,全程保持默认设置 首先,请前往Node js官方网站的下载中心:https: nodejs org zh-cn download。根据您的操作系统(Windows Mac Linux)下载对应的安装程序。运行安装向导时,整个过程非常简单,您只需连续点击“下一步”按钮

热心网友
04.01

最新APP

火柴人传奇
火柴人传奇
动作冒险 04-01
街球艺术
街球艺术
体育竞技 04-01
飞行员模拟
飞行员模拟
休闲益智 04-01
史莱姆农场
史莱姆农场
休闲益智 04-01
绝区零
绝区零
角色扮演 04-01

热门推荐

解限机天袭者滨湾运输中心怎么实战
游戏攻略
解限机天袭者滨湾运输中心怎么实战

解限机天袭者滨湾运输中心实战教学:制霸空中与地形的终极指南 在《解限机》游戏的所有对战地图中,滨湾运输中心无疑是对玩家战术素养与地图掌控力的顶级试炼场。这片区域地形结构极为复杂,高楼耸立,集装箱遍布,形成了无数视野盲区与火力交叉点。若想在滨湾运输中心取得胜利,空有强大机甲与火力是远远不够的,关键在于

热心网友
04.06
Soul聊天记录如何批量删除
手机教程
Soul聊天记录如何批量删除

Soul聊天记录一键清理:批量删除完整步骤与隐私保护技巧 管理社交应用,如同定期整理你的数字家园。随着使用时间增长,Soul中的聊天记录会不断累积,无论是为了释放宝贵的手机存储空间,还是出于对个人隐私安全的重视,掌握批量删除功能都显得尤为必要。本文将为你提供一份清晰、易操作的Soul聊天记录批量删除

热心网友
04.06
GTA6不再延期 开发进入最终收尾阶段
游戏资讯
GTA6不再延期 开发进入最终收尾阶段

知名爆料人Kiwi Talkz近日透露,《GTA6》开发已进入最终收尾阶段,游戏确认不会再次延期。据爆料消息指出,其他游戏厂商要追赶R星在《GTA6》中达成的技术与内容高度,恐需15至20年时间。R星团队在部分技术目标上的规划极具突破性,展现了远超行业当前水准的雄心。 对于持续等待的全球玩家来说,这

热心网友
04.06
鸣潮奥古斯塔怎么培养
游戏攻略
鸣潮奥古斯塔怎么培养

《鸣潮》奥古斯塔养成全攻略:核心材料解析与高效培养路线 若想在《鸣潮》中将强力角色奥古斯塔培养成真正的战场主宰,详尽了解其养成材料是至关重要的第一步。这些资源直接决定了角色从前期成长到后期成型的完整路径,规划是否合理将极大影响实战表现与队伍构建。 首先,系统梳理奥古斯塔所需的各类养成素材是基础。经验

热心网友
04.06
索尼PC移植策略生变 第一方重回独占
游戏资讯
索尼PC移植策略生变 第一方重回独占

索尼工作室悄然修改措辞,PlayStation独占策略或将全面收紧,引发行业热议 近期,游戏行业内部关注到一个值得玩味的现象:索尼互动娱乐旗下多家核心第一方工作室,静悄悄地更新了其官方网站的简介说明。仔细对比可以发现,更新后的措辞发生了微妙但关键的转变——此前涉及PC平台的描述已基本被移除,取而代之

热心网友
04.06