1. 接口说明

通过该接口可对图片中人物表情进行识别。

2. 接口地址

POST http://tupapi.xfyun.cn/v1/expression

3. 请求参数

在 Http Request Header 中配置授权认证参数,见【接口描述-授权认证。 其中 X-Param 为各配置参数组成的 JSON 串经 BASE64 编码之后的字符串,原始 JSON 串各字段说明如下:

参数 类型 必填 说明 备注
image_url string 图片下载链接 采用请求头设置image_url参数传入图片时填此参数
image_name string 图片名称 image_url方式和Body传图片方式都需要设置图片名称,例如:img.jpg

注意:图片数据可以通过两种方式上传,第一种在请求头设置image_url参数,第二种将图片二进制数据写入请求体中。若同时设置,以第一种为准。

X-Param生成示例:

原始JSON串:
{
    "image_name": "img.jpg",
    "image_url":""
}
BASE64编码(即X-Param):
eyJlbmdpbmVfdHlwZSI6InNtczE2ayIsImF1ZSI6InJhdyJ9

在 Http Request Body 中配置以下参数

将图片的二进制数据写入 Http Request Body 中

4. 返回值

返回值为 json 串,各字段如下:

JSON字段 类型 说明
code string 结果码(具体见错误码)
data array 识别结果
desc string 错误描述,会话成功为success
sid string 会话ID,用来唯一标识本次会话,如会话报错无法解决,可以通过工单提供 sid 给讯飞技术人员分析解决。

data字段说明:

JSON字段 类型 说明
rate string 介于0-1间的浮点数,表示该图像被识别为某个分类的概率值,概率越高、机器越肯定
label number 大于等于0时,表明图片属于哪个分类或结果;等于-1时,代表该图片文件有错误,或者格式不支持(gif图不支持)
name string 图片的url地址或名称
review bool 本次识别结果是否存在偏差,返回true时存在偏差,可信度较低,返回false时可信度较高,具体可参考rate参数值
tag string 图片标签,值为Local Image或Using Buffer(无实际意义)

label值范围及对应表情:

label值 对应表情
0 其他(非人脸表情图片)
1 其他表情
2 喜悦
3 愤怒
4 悲伤
5 惊恐
6 厌恶
7 中性

结果示例如下:

失败结果:

{
    "code":"10106",
    "data":[],
    "desc":"invalid parameter|invalid X-Param",
    "sid":"tup00000001@ch239c0ef594db6a6b00"
}

成功结果:

{
    "code":"0",
    "data":[
        {
            "label":2,
            "name":"img.jpg",
            "rate":0.9147182106971741,
            "review":false,
            "tag":"Local Image"
        }
    ],
    "desc":"success",
    "sid":"tup00000001@ch13b40efd51096a6b00"
}

5. 调用示例

python脚本示例(python2)

说明:将脚本中IMG_PATH, API_KEY, APPID, 换成相应的待分析图片路径,讯飞开放平台提供的apiKey,讯飞开放平台应用的appid即可,运行脚本可打印相应结果。

#-*- coding: utf-8 -*-
import requests
import time
import hashlib
import base64

URL = "http://tupapi.xfyun.cn/v1/expression"
APPID = "APPID"
API_KEY = "API_KEY"
ImageName = "img.jpg"
ImageUrl = ""
FilePath = "IMG_PATH"

def getHeader(image_name,image_url):
    curTime = str(int(time.time()))
    param = "{\"image_name\":\""+image_name+"\""+",\"image_url\":\""+image_url+"\""+"}"
    paramBase64 = base64.b64encode(param)

    m2 = hashlib.md5()
    m2.update(API_KEY + curTime + paramBase64)
    checkSum = m2.hexdigest()

    header = {
        'X-CurTime': curTime,
        'X-Param': paramBase64,
        'X-Appid': APPID,
        'X-CheckSum': checkSum,
    }
    return header

def getBody(filePath):
    binfile = open(filePath, 'rb')
    data = binfile.read()
    return data


time1 = int(round(time.time()*1000))
r = requests.post(URL, headers=getHeader(ImageName,ImageUrl), data=getBody(FilePath))
time2 = int(round(time.time()*1000))
print(r.content)
print(time2-time1)
Copyright © iflytek.com 2018 all right reserved,powered by Gitbook该文件修订时间: 2018-11-03 10:26:45

results matching ""

    No results matching ""