1. 接口说明

通过该接口可对图片进行场景识别。

2. 接口地址

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

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

label值范围及对应场景:

label值 对应场景 label值 对应场景 label值 对应场景 label值 对应场景
0 卧室_客厅 11 森林 22 纯人物图 33 汽车站
1 教室 12 街道 23 播音室 34 市场_集市
2 餐厅(公共) 13 室外运动场 24 房屋_建筑 35 图书馆_书店
3 草地田地花园 14 海滩_沙滩 25 医院 36 公路
4 沙漠 15 泳池 26 网吧游戏厅棋牌室 37 古建筑
5 办公室_会议室 16 游乐场 27 雕塑石碑牌坊 38 厨房
6 酒吧KTV舞厅 17 没有场景 28 宿舍 39 餐厅(家里)
7 室内运动场 18 其他场景 29 化妆室_理发店 40 洗手间
8 商场 19 车内船上飞机上 30 健身房 41 浴室_洗澡间
9 山峰 20 礼堂_演出厅 31 机场 42 停车场
10 池塘海洋 21 广场_空地 32 火车站 -1 图片错误

结果示例如下:

失败结果:

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

成功结果:

{
    "code":"0",
    "data":{
        "fileList":[
            {
                "label":22,
                "labels":[
                    22,
                    18,
                    19,
                    0,
                    12
                ],
                "name":"img.jpg",
                "rate":0.9624900221824646,
                "rates":[
                    0.9624900221824646,
                    0.03550189360976219,
                    0.0009935186244547367,
                    0.00045110780047252774,
                    0.00023404983221553266
                ],
                "review":false,
                "tag":"Local Image"
            }
        ]
    },
    "desc":"success",
    "sid":"tup00000001@ch3d9c0f04d71e6a6b00"
}

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/scene"
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 ""