本文介绍的API接口是阿里云视觉智能开放平台的接口,
一、图像人脸融合和换脸的区别
图像人脸融合:将图像中的指定的某个人脸,融合进另一人的人脸特征。最终融合的结果图会和输入的两张人脸图片都有些相似。
换脸:换脸是将一张图片中的人脸,完全替代成另一个人脸。最终的结果图中人脸只会相似输入两张图片中的一个人脸特征。
二、使用图像人脸融合的前提条件
因为使用的是阿里云视觉智能开放平台,所以前提条件是针对该平台的。
1、开通人脸人体服务,因为图像人脸融合是人脸人体类目下的子能力。
2、最好购买个资源包,首购0.01元,以防后面调用API接口出现费用。首购的资源包可以满足测试使用。
三、可视化测试图像人脸融合
阿里云视觉智能开放平台提供了体验中心,体验中心是可以免费体验的,不会产生费用。用于可视化体验还是很nice。效果如下:
输入:
输出:
四、API调用图像人脸融合流程
下面将介绍下调用API接口的具体流程,下面示例是用python代码。
图像人脸融合是需要先建人脸融合模板,之后上传图片和模板图片进行融合,阿里云视觉智能开放平台对于用户上传的图像人脸融合模板是没有限制的,模板支持查询和删除等动作。还有重要的事情是:模板的增加,查询、删除都是免费的哈
图像人脸融合模板增加API:
模板图片限制:
图像格式:JPG、JPEG、PNG。
图像大小:不超过10 MB。
图像像素:大于128×128像素,小于2000×2000像素。
URL地址中不能包含中文字符。
请求参数:
Python SDK包引入:
pip install alibabacloud_facebody20191230==3.0.4
代码详情:
import sys
from typing import List
from alibabacloud_facebody20191230.client import Client as facebody20191230Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_facebody20191230 import models as facebody_20191230_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_tea_util.client import Client as UtilClient
class Sample:
def __init__(self):
pass
@staticmethod
def create_client(
access_key_id: str,
access_key_secret: str,
) -> facebody20191230Client:
"""
使用AK&SK初始化账号Client
@param access_key_id:
@param access_key_secret:
@return: Client
@throws Exception
"""
config = open_api_models.Config(
# 您的 AccessKey ID,
access_key_id=access_key_id,
# 您的 AccessKey Secret,
access_key_secret=access_key_secret
)
# 访问的域名
config.endpoint = f'facebody.cn-shanghai.aliyuncs.com'
return facebody20191230Client(config)
@staticmethod
def main(
args: List[str],
) -> None:
client = Sample.create_client('accessKeyId', 'accessKeySecret')
add_face_image_template_request = facebody_20191230_models.AddFaceImageTemplateRequest(
user_id='',
image_url=''
)
runtime = util_models.RuntimeOptions()
try:
# 复制代码运行请自行打印 API 的返回值
client.add_face_image_template_with_options(add_face_image_template_request, runtime)
except Exception as error:
# 如有需要,请打印 error
UtilClient.assert_as_string(error.message)
if name == '__main__':
Sample.main(sys.argv[1:])
图像人脸融合接口:
输入限制:
图像格式:JPG、JPEG、PNG。
图像大小:不超过20 MB。
图像分辨率:大于128×128像素,小于2000×2000像素。人脸尺寸建议大于64×64像素,人脸区域建议不大于全图区域的2/3。
URL地址中不能包含中文字符。
请求参数:
Python SDK包引入:
pip install alibabacloud_facebody20191230==3.0.4
代码详情:
import sys
from typing import List
from alibabacloud_facebody20191230.client import Client as facebody20191230Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_facebody20191230 import models as facebody_20191230_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_tea_util.client import Client as UtilClient
class Sample:
def __init__(self):
pass
@staticmethod
def create_client(
access_key_id: str,
access_key_secret: str,
) -> facebody20191230Client:
"""
使用AK&SK初始化账号Client
@param access_key_id:
@param access_key_secret:
@return: Client
@throws Exception
"""
config = open_api_models.Config(
# 您的 AccessKey ID,
access_key_id=access_key_id,
# 您的 AccessKey Secret,
access_key_secret=access_key_secret
)
# 访问的域名
config.endpoint = f'facebody.cn-shanghai.aliyuncs.com'
return facebody20191230Client(config)
@staticmethod
def main(
args: List[str],
) -> None:
client = Sample.create_client('accessKeyId', 'accessKeySecret')
merge_image_face_request = facebody_20191230_models.MergeImageFaceRequest(
user_id='',
template_id='',
image_url=''
)
runtime = util_models.RuntimeOptions()
try:
# 复制代码运行请自行打印 API 的返回值
client.merge_image_face_with_options(merge_image_face_request, runtime)
except Exception as error:
# 如有需要,请打印 error
UtilClient.assert_as_string(error.message)
if name == '__main__':
Sample.main(sys.argv[1:])
以上就是图像人脸融合的两个接口调用的代码详情和SDK包的详情,有需要的可以自己实际操作下。