当前位置:   article > 正文

详细功能及代码快速帮您接入百度大脑人脸融合_百度照片融合功能在哪

百度照片融合功能在哪

本文主要介绍人脸融合API的调用使用攻略。这里只是调用测试,有的融合结果可能比较恐怖,希望不要拍砖。

一.平台接入

此步骤比较简单,不多阐述。可参照之前文档:

https://ai.baidu.com/forum/topic/show/943028

二.分析接口文档

1.接口API

https://ai.baidu.com/docs#/Face-Merge/6720b55c

(1)接口描述

图像融合:将检测到的两张人脸图片进行融合,输出一张融合后的人脸。

(2)请求说明

需要用到的信息有:

请求URL:https://aip.baidubce.com/rest/2.0/face/v1/merge

Header格式:Content-Type:application/json

图片要求:

模板图(template_image),要求被融合的人脸边缘需要与图片边缘保持一定距离,保证被融合的人脸的的核心区域完全在图片中。

目标图无严格限制, 建议选择正脸、清晰的图像。

(3)返回示例

返回渲染图片的Base64编码,需要进行解码还原成图片。

{   

"error_code": 0, 

"error_msg": "SUCCESS",    

"log_id": 1234567890123,    

"timestamp": 1533094576,    

"cached": 0,    

"result":

           {         "merge_image": "iVBORw0KGgoAAAANSUhEUgAAAeoAAAHqCAYAAADLb..."   

        } 

} 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

2.获取access_token

#client_id 为官网获取的AK, client_secret 为官网获取的SK
client_id =【百度云应用的AK】
client_secret =【百度云应用的SK】

#获取token
def get_token():
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + client_id + '&client_secret=' + client_secret
request = urllib.request.Request(host)
request.add_header('Content-Type', 'application/json; charset=UTF-8')
response = urllib.request.urlopen(request)
token_content = response.read()
if token_content:
token_info = json.loads(token_content.decode("utf-8"))
token_key = token_info['access_token']
return token_key
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

三.识别结果
模板图:
在这里插入图片描述
目标图:
在这里插入图片描述
融合图:
在这里插入图片描述
处理结果方面:可以看出,融合效果还是不错。

处理速度方面:处理时间1.64 s,可以接受。

四.源码共享

# -*- coding: utf-8 -*-

#!/usr/bin/env python



import urllib

import urllib.parse

import urllib.request

import json

import io

from PIL import Image

import base64



#client_id 为官网获取的AK, client_secret 为官网获取的SK

client_id = '*************************'

client_secret = '****************************'



#获取token

def get_token():

    host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + client_id + '&client_secret=' + client_secret

    request = urllib.request.Request(host)

    request.add_header('Content-Type', 'application/json; charset=UTF-8')

    response = urllib.request.urlopen(request)

    token_content = response.read()

    if token_content:

        token_info = json.loads(token_content.decode("utf-8"))

        token_key = token_info['access_token']

    return token_key



#获取人脸融合结果

def face_detect_url(image_template_url,image_target_url):

    request_url = "https://aip.baidubce.com/rest/2.0/face/v1/merge"

   

    params = dict()

    params['image_template'] = {"image": image_template_url,'image_type':'URL'}

    params['image_target'] = {"image": image_target_url,'image_type':'URL'}

    params['merge_degree']= 'HIGH'



    params = json.dumps(params).encode('utf-8')

   

    access_token=get_token()

    request_url = request_url + "?access_token=" + access_token

    request = urllib.request.Request(url=request_url, data=params)

    request.add_header('Content-Type', 'application/json')

    response = urllib.request.urlopen(request)

    content = response.read()

    if content:

        receipts = json.loads(content.decode("utf-8"))

        result = receipts['result']

        img_b64encode = result['merge_image']

#        print(img_b64encode)

        img_b64decode = base64.b64decode(img_b64encode)  # base64解码

        image = io.BytesIO(img_b64decode)

        img = Image.open(image)

        img.show()

        file=open('2.jpg','wb') 

        file.write(img_b64decode) 

        file.close() 

        print ('Success!')

        return content

    else:

        return ''



mage_template_url='http://dingyue.nosdn.127.net/JaftnDIuIbHgg97vQ8fDvHRWoWYgV8h=LFgrZXxW25oSy1541668286416compressflag.jpeg'

image_target_url='http://tx.haiqq.com/uploads/allimg/170503/0S3051605-0.jpg'

face_detect_url(image_template_url,image_target_url)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128

五.意见建议

目前对正面照片融合效果较好,如果模板照片和目标照片人物角度不一致,如有一方为侧脸,则融合效果不好,建议做相应完善处理。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/123652?site
推荐阅读
相关标签
  

闽ICP备14008679号