调用腾讯智能云实现人脸融合

news2024/11/26 1:36:08

目录

  • 1. 作者介绍
  • 2. 人脸识别内容介绍
    • 2.1 人脸识别简介
    • 2.2 技术原理
  • 3. 实现流程及代码实现
    • 3.1 实现流程
    • 3.2 代码实现
      • 3.2.1 图片为url格式
      • 3.2.2 图片为base64格式
    • 3.3 完整代码
    • 3.4 问题分析

1. 作者介绍

杨煜星,女,西安工程大学电子信息学院,2023级研究生
研究方向:模式识别与人工智能
电子邮件:954154587@qq.com

黄浩磊,男,西安工程大学电子信息学院,2023级研究生,张宏伟人工智能课题组
研究方向:智能视觉检测与工业自动化技术
电子邮件:hhl57303@163.com

2. 人脸识别内容介绍

2.1 人脸识别简介

人脸融合技术是一种创新的图像处理方法,它能够将两个人或多个个体的面部特征合并,生成一张全新的、同时拥有这些个体面部特征的合成照片或视频。这项技术结合了计算机视觉、深度学习、图像处理等领域的前沿成果,不仅在娱乐产业中大放异彩,也在诸多其他领域展现出广泛的应用潜力。

2.2 技术原理

在这里插入图片描述

  1. 人脸检测与关键点定位:
    首先,系统需要识别并定位输入图像中的人脸。这通常通过人脸检测算法实现,它可以找出图像中所有的人脸区域。
    接着,关键点定位技术会精确地标记出每个人脸上的关键特征点,比如眼睛、鼻子、嘴巴的位置,有时还包括眉毛、下巴轮廓等。这些关键点对于后续的对齐和融合至关重要。
  2. 人脸对齐:
    为了使不同人脸的特征能够在空间上对应起来,需要对人脸图像进行对齐操作。这通常涉及到根据关键点的位置,对人脸进行旋转、缩放和平移,使得面部特征在空间上处于一致的位置。
  3. 特征提取:
    在对齐之后,系统会从每张人脸图像中提取特征向量,这些特征向量捕捉了人脸的独特信息,如面部结构、纹理等。这一过程可能涉及深度学习技术,如卷积神经网络(CNN),它们能够高效地从图像中提取高层次特征。
  4. 特征融合:
    这一步骤是人脸融合的核心。根据应用场景的需求,可以采取不同的融合策略。一种常见方法是按一定权重平均或插值两个人脸的特征向量,生成一个新的特征向量,代表融合后的面部特征。
  5. 人脸重建:
    利用生成的融合特征向量,系统通过逆向过程(如生成对抗网络GANs或其他重建算法)生成一个全新的面部图像。这个过程需要确保生成的面部看起来自然且逼真。
  6. 后处理:
    最后,可能需要进行一些后处理步骤,如色彩调整、光影处理等,以增强融合图像的真实感和整体协调性。

3. 实现流程及代码实现

3.1 实现流程

  1. 打开访问管理>>API密钥管理>>新建密钥,获得secret ID ,secret key
    在这里插入图片描述

  2. 腾讯云官网搜索人脸融合产品
    在这里插入图片描述

  3. 点击人脸融合进入操作界面,选择立即选购
    在这里插入图片描述

  4. 在人脸融合左侧选择栏选择活动管理,创建活动
    在这里插入图片描述

  5. 添加素材,注意选取图片要求,不可选用名人、明星照片,否则审核不通过
    在这里插入图片描述
    在这里插入图片描述

  6. 打开人脸融合>>产品文档>>图片人脸融合>>点击调试
    在这里插入图片描述

3.2 代码实现

3.2.1 图片为url格式

在发起点击调试后,选择大区,填相应的活动项目ID和素材ID,这些可以在控制台获取,再将url格式复制粘贴到上图所处位置。
在这里插入图片描述

之后点击发起调用,再点击右侧代码示例>>SDK>>python,复制代码到pycharm,点击运行。
在这里插入图片描述

3.2.2 图片为base64格式

首先要将本地图片转为base64格式,再粘贴到image所处位置,然后点击发起调用,再点击右侧代码示例>>SDK>>python,复制代码到pycharm,点击运行。
在这里插入图片描述

这里左侧为素材图,右侧是要融合的图片,中间是融合后的效果,如下图所示
在这里插入图片描述

3.3 完整代码

  1. url形式的图片,代码融合实现:
import json
import types
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.facefusion.v20220927 import facefusion_client, models
try:
    # 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密
    # 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305
    # 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
    cred = credential.Credential("SecretId", "SecretKey")
    # 实例化一个http选项,可选的,没有特殊需求可以跳过
    httpProfile = HttpProfile()
    httpProfile.endpoint = "facefusion.tencentcloudapi.com"

    # 实例化一个client选项,可选的,没有特殊需求可以跳过
    clientProfile = ClientProfile()
    clientProfile.httpProfile = httpProfile
    # 实例化要请求产品的client对象,clientProfile是可选的
    client = facefusion_client.FacefusionClient(cred, "ap-beijing", clientProfile)

    # 实例化一个请求对象,每个接口都会对应一个request对象
    req = models.FuseFaceRequest()
    params = {
        "ProjectId": "-",
        "ModelId": "-",
        "RspImgType": "url",
        "MergeInfos": [
            {
                "Url": "http://www.talkimages.cn/images/medium/20133087/tkf003_973435.jpg"
            }
        ]
    }
    req.from_json_string(json.dumps(params))

    # 返回的resp是一个FuseFaceResponse的实例,与请求对象对应
    resp = client.FuseFace(req)
    # 输出json格式的字符串回包
    print(resp.to_json_string())

except TencentCloudSDKException as err:
    print(err)
  1. 本地图片融合代码实现方式
    对本地图片进行融合,首先需要将图片转为base64编码格式,以下程序即可转化:

import base64
import os


def image_to_base64(image_path):
    """
    将图片文件转换为Base64编码字符串。
    """
    if not os.path.isfile(image_path):
        raise FileNotFoundError(f"The image file {image_path} does not exist.")

    with open(image_path, 'rb') as image_file:
        encoded_string = base64.b64encode(image_file.read()).decode('utf-8')
    return f"data:image/{os.path.splitext(image_path)[1][1:]};base64,{encoded_string}"


# 图片文件路径
image_path = r'C:\Users\ly\Desktop\人脸\9.jpg'

try:
    # 转换图片为Base64编码
    base64_string = image_to_base64(image_path)
    print("Base64 Encoded Image:")
    print(base64_string)
except FileNotFoundError as e:
    print(e)

运行后会产生一段base编码:在这里插入图片描述
将以上标蓝的复制粘贴到image那里,接着进行运行代码

import json
import types
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.facefusion.v20220927 import facefusion_client, models
try:
    # 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密
    # 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305
    # 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
    cred = credential.Credential("SecretId ", " SecretKey")
    # 实例化一个http选项,可选的,没有特殊需求可以跳过
    httpProfile = HttpProfile()
    httpProfile.endpoint = "facefusion.tencentcloudapi.com"

    # 实例化一个client选项,可选的,没有特殊需求可以跳过
    clientProfile = ClientProfile()
    clientProfile.httpProfile = httpProfile
    # 实例化要请求产品的client对象,clientProfile是可选的
    client = facefusion_client.FacefusionClient(cred, "ap-beijing", clientProfile)

    # 实例化一个请求对象,每个接口都会对应一个request对象
    req = models.FuseFaceRequest()
    params = {
        "ProjectId": "-",
        "ModelId": "-",
        "RspImgType": "url",
        "MergeInfos": [
            {
                "Image":”将产生的base编码复制到这里”
            }
        ]
    }
    req.from_json_string(json.dumps(params))

    # 返回的resp是一个FuseFaceResponse的实例,与请求对象对应
    resp = client.FuseFace(req)
    # 输出json格式的字符串回包
    print(resp.to_json_string())

except TencentCloudSDKException as err:
    print(err)

3.4 问题分析

问题
在这里插入图片描述
解决:将本地图片转换成Base64格式
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1816911.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TextCtrl输入文本类

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 wx.StaticText类只能够用于显示纯粹的静态文本,但是有时需要输入文本与用户进行交互,此时,就需要使用wx.TextCtrl…

简单项目——前后端分离实现博客系统

文章目录 一、项目实现的准备工作二、数据库的设计以及构建三、封装数据库连接、创建实体类四、封装数据库的增删查改操作五、实现博客系统核心操作1.获取博客列表页2.获取博客详情页3. 实现博客登录页4. 实现所有页面检查并强制登录5.退出登录状态6. 实现博客发布7. 实现删除文…

线上观看人次2万+!「飞天技术沙龙-CentOS 迁移替换专场」北京站圆满结束

5 月 29 日,阿里云联合龙蜥社区共同举办的「飞天技术沙龙-CentOS 迁移替换专场」于北京圆满结束,在线观看人次 2 万。本次活动现场汇聚了来自浪潮信息、Intel、龙芯、统信软件、红旗软件、电子五所等多家操作系统产业头部企业和机构,大家围绕…

零基础非科班也能掌握的C语言知识21 编译链接(介于作者实力有限并且没有可以演示的过程软件仅仅浅谈)

编译链接 1.翻译环境和运行环境2.翻译环境2.1 编译2.1.1 预处理(预编译)2.1.2 编译2.1.3 汇编 2.2 链接 3.运行环境 1.翻译环境和运行环境 在ANSI C的任何⼀种实现中,存在两个不同的环境。 编译环境运行环境 2.翻译环境 翻译环境由编译和…

极氪汽车交出上市首份答卷:业绩交付“双开花”,新车型质量保优

近日,极氪汽车(NYSE:ZK,下同“极氪”)发布2024年第一季度财报,这也是该公司自5月20日登陆美股以来对外披露的首份业绩报告。 极氪汽车是继“蔚小理”之后第四家在美国上市的新能源车企,发布至今…

图形学初识--定义摄像机类(实战)

文章目录 前言正文定义摄像机的操作方式键盘操作鼠标操作 定义摄像机类核心数据视图矩阵回顾:模拟摄像机的移动模拟摄像机的旋转 结尾:喜欢的小伙伴点点关注赞哦! 前言 前面一些章节讲解了图形学的比较原理性的内容,这一章节咱就实战一下&am…

监控登录用户数

检查登录用户数 当登录系统用户数超过3个报警,并发送邮件提示 首先,配置发送邮件功能。 1、安装mailx [rootnode1 ~]# yum install mailx2、配置/etc/mail.rc [rootnode1 ~]# vim /etc/mail.rc set fromxxx163.com #发件人地址 set smtpsmtp.163…

深层网络:层数多真的更好吗?

深层网络:层数多真的更好吗? 在深度学习的世界里,"深度"始终是一个热门话题。随着技术的发展,我们有了越来越多的方法来构建更深的神经网络,这似乎暗示着“层数越多,效果越好”。然而&#xff0…

通用大模型与垂直大模型:双轨并进的人工智能未来

在人工智能(AI)的浩瀚宇宙中,大模型以其强大的学习能力和广泛的适用性,正逐步成为推动技术进步和产业革新的核心动力。在这股浪潮中,通用大模型与垂直大模型如同两颗璀璨的星辰,各自散发着独特的光芒,共同照亮了AI发展…

哪个品牌洗地机专业?四款明星精湛产品集结

当代快节奏的生活,人们每天下班回到家只想瘫倒在沙发,打扫卫生成为了一种负担......但洗地机的出现,大大的减轻了人们地板清洁的焦虑,因为它只需轻轻地推拉机子转悠房屋一圈,地面上的赃污便能清理干净,清洁…

如何优化大屏网站的响应式设计?技巧一览

为了显示不同屏幕尺寸设备的显示效果,有必要优先考虑响应设计,因为开发人员可以在不同的设备中构建应用程序。响应设计是一种灵活的设计,可以兼顾多屏幕和多场景,可以使我们的网页布局在各种屏幕下呈现出更好的效果。今天&#xf…

“JS加密在线”:简单直接的在线JS加密网站

网站名:“JS加密在线”, 功能:JavaScript源代码加密。 UI: http://jsjiami.online/ 非常简洁的JS加密网站,几乎只有两个功能:上传JS文件、下载加密后的JS文件。 JS加密,就应该这样简单直接。…

Splashtop 荣获“2024年安全校园白金奖”

2024年6月12日 加利福尼亚州库比蒂诺 作为远程访问和 IT 支持领域的领先企业,Splashtop 很荣幸地宣布获得“2024年安全校园白金奖”。Splashtop 的 Foxpass Cloud RADIUS 解决方案在专注校园安全的重要杂志《今日校园安全》颁发的访问控制和云端管理类别奖项中荣获…

Hyper-V 安装Win11注意事项

1. 安装前检查设置,勾选TPM2. 启动的时候要一直按F2,否则提示找不到系统镜像 3. 安装完成后开机后在查看里取消增强会话,否则开机进入锁屏界面,无法输入密码进入系统。一般这种情况出现在通过微软账户登录的系统,可首…

CG-85C 振弦式土压力计厂家 结构物内部土压力变化量如何测量?

产品概述 振弦式土压力计由背板、感应板、信号传输电缆、振弦及激振电磁线圈等组成,是了解被测结构物内部土压力变化量、并可同步测量埋设点温度的监测设备。 功能特点 ◆精度高,能够提供准确的测量结果。 ◆稳定性好,不易受到外界因素的…

后端开发面经系列 -- 小鹏汽车一面面经

小鹏汽车一面面经 公众号:阿Q技术站 来源:职言详情页 (maimai.cn) 文章目录 小鹏汽车一面面经1、String类型为什么不可变?1. 安全性2. 缓存和性能优化3. 哈希码缓存4. 类设计和接口5. 简单性和可读性 2、在浏览器中输入url地址到显示主页的过…

Anti-ABCD3 Antibody-Monoclonal Antibody against Human ABCD3

本篇是对Atlas生产的Anti-ABCD3 Antibody的简单介绍,如需购买该产品或了解更多产品详情,可联系一级代理商欣博盛生物。 产品名称:Anti-ABCD3 Antibody 品牌:Atlas antibodies 货号:AMAb90995 规格:100ul…

大模型「训练」与「微调」概念详解【6000字长文】

本文你将学到什么 1、大模型预训练与微调的基本流程 2、预训练、训练、后期预训练、微调的区别 3、大模型训练与微调的一些概念,如: Post-pretrain、SFT、RLHF、模型对齐、Lora、Q-Lora、大模型量化、微调指标、微调参数、大模型评测指标 预训练与微…

AI Agent 热门的10篇论文

人工智能代理领域广阔,涵盖广泛的主题,包括多代理系统、强化学习、上下文感知系统以及将大型语言模型 (LLMs) 集成到基于代理的系统中。以下是 arXiv 的一些顶级论文,涵盖了人工智能代理的各个方面: A Framework For Intelligent Multi Agent System Based Neural Network …

[深度学习]使用python转换pt并部署yolov10的tensorrt模型封装成类几句完成目标检测加速任务

【简单介绍】 使用Python将YOLOv10模型从PyTorch格式(.pt)转换为TensorRT格式,并通过封装成类来实现目标检测加速任务,是一个高效且实用的流程。以下是该过程的简要介绍: 模型转换: 利用官方提供导出命令…