视频异步识别接口
1. 视频文件提交接口
2. 视频流提交接口
3. 关闭视频检测接口
1. 视频文件提交接口
请求地址:
http://api.open.tuputech.com/v3/recognition/video/asyncscan/'your_secretId'
'your_secretId'需替换为您的secretId,请联系我们为您开通secretId。
请求方法:
POST
请求头
参数名称 |
类型 |
是否必需 |
说明 |
Content-Type |
String |
是 |
application/json |
关于视频文件的限制
视频大小限制:不超过3G;
支持的格式:flv, mkv, mp4, rmvb, avi, wmv, 3gp, ts, mov, gif, m3u8。
关于视频并发的限制
视频异步处理最大并发为10个,即同时在线处理最大数量为10个。
调用超过10个,则需要等待处理中的视频完成后才能调用。
关于视频截图的尺寸
如果视频的分辨率的短边超过1024,则截取的图片以“1024/短边”等比例截取。
例如:视频分辨率为1920x1080,截图的尺寸为1820x1024。
请求参数
参数名称 |
类型 |
是否必需 |
说明 |
video |
String |
是 |
视频地址,支持HTTP(S)。 |
customInfo |
Object |
否 |
自定义信息,用于给视频附加额外信息(比如:直播客户可能传房间号,或者主播ID信息)。 |
interval |
Number |
否 |
视频截图间隔,范围[1, 10]秒,默认3秒。 |
callbackUrl |
String |
是 |
回调地址,用于通知返回结果,支持HTTP(S)。 |
callbackRules |
Object |
否 |
回调规则,用于返回指定类型的数据,默认返回所有类型的数据。 |
realTimeCallback |
Boolean |
否 |
是否实时回调,用于实时回调视频片段结果,默认false。 |
audio |
Boolean |
否 |
是否开启语音识别,使用该功能请联系我们,默认false。 |
task |
Array |
否 |
指定本次调用要审核的任务。 |
timestamp |
Number |
是 |
当前的服务器的Unix时间戳。 |
nonce |
Number |
是 |
随机数。 |
signature |
String |
是 |
我们采用的数字证书签名算法是:"RSA-SHA256" ,签名输出类型是:"base64" ,具体步骤如下: 1、所有参与签名的参数为:secretId,timestamp,nonce,用英文半角逗号“,”相连,得到sign_string; 2、利用您的私钥,使用算法"RSA-SHA256" 签名,输出为 "base64" 格式,得到参数signature的值。
点击管理公钥证书查看如何生成私钥,及如何上传您的公钥用于数字签名的认证;点击API SDK查看代码示例。 |
callbackRules参数
参数名称 |
类型 |
是否必需 |
说明 |
[taskId] |
Array |
否 |
识别任务的回调规则。 |
taskId参数
参数名称 |
类型 |
是否必需 |
说明 |
label |
Number |
否 |
指定返回的识别分类。 |
review |
Boolean |
否 |
指定返回的复审类型。 |
offset |
Boolean |
否 |
是否返回图片的截帧位置,默认true。 |
total |
Boolean |
否 |
是否返回图片搜索的人物的全量图片,默认true。 |
faceId |
String / Array |
否 |
指定图片搜索返回的人物名称。 |
typeName |
String / Array |
否 |
指定图片搜索返回的人物类型。 |
similarity |
Number |
否 |
指定图片搜索返回大于等于相似度的结果。 |
curl请求示例
curl -X POST --header 'Content-Type: application/json' \
-d '{
"video": "http://vfx.mtime.cn/Video/2019/03/14/mp4/190314223540373995.mp4",
"callbackUrl": "your_callback",
"timestamp": 1560829321048,
"nonce": 0.5879054662123078,
"signature": "aLXNL+R4pLyRUCUMGBabzRASQWCNrO/UoHOaCjWOhPcXQ3mbrzww/w1gQjcLhiuWyGcLesldH/Ep3Oj3cglKT0lgFi+2XqoWoat/1m+1QN/2WKx7GNd3EaIeCqe4UL2P7jVkj9sLPiIL7Pup7Kl8OZDnn9X67ghH32WaicrYsvs="
}' \
'http://api.open.tuputech.com/v3/recognition/video/asyncscan/your_secretId'
请求示例
{
"video": "http://tuputech.com/video.mp4",
"customInfo": {
"id": 1
},
"interval": 1,
"callbackUrl": "http://customer.com/callback",
"callbackRules": {
"54bcfc6c329af61034f7c2fc": [
{
"label": 0,
"review": false
}
],
"5b7be1f59b0c77a8c2afb351": [
{
"faceId": ["xxx", "yyy"]
},
{
"typeName": "国家或地区领导人"
},
{
"similarity": 0.7
}
]
},
"realTimeCallback": false,
"audio": false,
"task": ["54bcfc6c329af61034f7c2fc"],
"timestamp": 1559554003759,
"nonce": 0.6157904536165131,
"signature": "p0fX2Vb5JMtN0wM7WkQRsyq/aH2zk3zYYRlBAydPmuWkofb06KdSPhq4URYHaAFU/dXodfJS9x2PbZBNz084RF0NIiJvBUcK8mFeA/YliRJnGqv2x3BiNffN61nWJirALvmjbfEWwTdINxFArAIvsV35ivuTBO/jDueWhoxEI9Y="
}
返回参数
参数名称 |
类型 |
说明 |
signature |
String |
我们采用的数字证书签名算法是:"RSA-SHA256" ,签名输出类型是:"base64" ,首先下载图普科技的公钥证书,然后按如下步骤认证: 1、收到的JSON数据经过JSON.parse(),得到JSON对象,记为data; 2、data含两个字段:signature、json;signature是数字签名,json是真正的有效数据的字符串格式; 3、用signature对json进行签名认证,算法:RSA-SHA256 ,输出类型:base64 ,得到认证结果; 4、认证通过后,对json进行JSON.parse(),得到JSON数据,详见"json"字段说明。 |
json |
String |
json 字段经过JSON.parse(json)后,得到具体的结果。 |
json参数
参数名称 |
类型 |
说明 |
videoId |
String |
视频唯一标识。 |
code |
Number |
返回码,参考服务公共状态码解析。 |
message |
String |
返回信息。 |
nonce |
Number |
随机数。 |
timestamp |
Number |
当前的服务器的Unix时间戳。 |
返回示例
{
"json": {
"videoId": "5cef85b518e5bc327d102e42",
"code": 0,
"message": "success",
"nonce": 0.13782089185808521,
"timestamp": 1559554942044
},
"signature": "gRoui70Wj4r6TLAIT7WcBSqPKCO9yrbHnv2tgwGLwJWcBRDcuYjRHrb3h7pISsEK1TkBw7fTGTExdTHoFXFbMZ1fLpkmFjxbvFvC6Yp2C9DmmL5BXcRf6B43zXQtCLSFLDUtEB6/Y2/AgNFgTUTXFllssjdkzfgQpCBi5bnEI="
}
回调参数
参数名称 |
类型 |
说明 |
signature |
String |
我们采用的数字证书签名算法是:"RSA-SHA256" ,签名输出类型是:"base64" ,首先下载图普科技的公钥证书,然后按如下步骤认证: 1、收到的JSON数据经过JSON.parse(),得到JSON对象,记为data; 2、data含两个字段:signature、json;signature是数字签名,json是真正的有效数据的字符串格式; 3、用signature对json进行签名认证,算法:RSA-SHA256 ,输出类型:base64 ,得到认证结果; 4、认证通过后,对json进行JSON.parse(),得到JSON数据,详见"json"字段说明。 |
json |
String |
json 字段经过JSON.parse(json)后,得到具体的结果。 |
json参数
参数名称 |
类型 |
说明 |
videoInfo |
Object |
视频信息。 |
fragmentInfo |
Object |
视频片段信息。 |
customInfo |
Object |
自定义信息,请求参数中的customInfo。 |
[taskId] |
Object |
识别任务的结果。 |
code |
Number |
返回码,参考服务公共状态码解析。 |
message |
String |
返回信息。 |
nonce |
Number |
随机数。 |
timestamp |
Number |
当前的服务器的Unix时间戳。 |
视频片段回调
videoInfo参数
参数名称 |
类型 |
说明 |
id |
String |
视频唯一标识。 |
captureStart |
String |
视频截图开始时间,ISO时间。 |
fragmentInfo参数
参数名称 |
类型 |
说明 |
id |
String |
视频片段唯一标识。 |
offsetStart |
Number |
视频片段截帧开始位置,单位秒。 |
offsetEnd |
Number |
视频片段截帧结束位置,单位秒。 |
taskId参数
参数名称 |
类型 |
说明 |
fileList |
Array |
每张图片的识别结果。 |
fileList参数(图片分类)
参数名称 |
类型 |
说明 |
url |
String |
图片链接。 |
rate |
Number |
分类得分,介于0-1的浮点数。 |
label |
Number |
识别分类。 |
review |
Boolean |
是否需要复审。 |
fileList参数(图片搜索)
参数名称 |
类型 |
说明 |
url |
String |
图片链接。 |
similarity |
Number |
人物相似度。 |
label |
Number |
识别分类。 |
review |
Boolean |
是否需要复审。 |
faceId |
String |
人物名称。 |
typeName |
String |
人物类型。 |
facePosition |
Array |
人脸方框坐标 [左上角坐标,右上角坐标,右下角坐标,左下角坐标]。 |
视频汇总结果回调
videoInfo参数
参数名称 |
类型 |
说明 |
id |
String |
视频唯一标识。 |
captureStart |
String |
视频截图开始时间,ISO时间。 |
duration |
Number |
视频时长,单位秒。 |
frames |
Number |
视频帧数,单位帧。 |
status |
String |
视频状态,end/error。 |
message |
String |
视频结果信息。 |
taskId参数(图片分类)
参数名称 |
类型 |
说明 |
fileList |
Array |
指定label的部分图片的识别结果。 |
avgScores |
Array |
平均分反映一组图片的整体。 |
maximums |
Array |
各个分类的图片的最高分。 |
statistics |
Array |
各个分类的图片数量。 |
label |
Number |
最终识别分类。 |
review |
Boolean |
是否需要复审。 |
fileList参数(图片分类)
参数名称 |
类型 |
说明 |
url |
String |
图片链接。 |
rate |
Number |
分类得分,介于0-1的浮点数。 |
label |
Number |
识别分类。 |
review |
Boolean |
是否需要复审。 |
offset |
Number |
截帧位置,单位秒。 |
taskId参数(图片搜索)
参数名称 |
类型 |
说明 |
fileList |
Array |
指定label的部分图片的识别结果。 |
maximums |
Array |
各个分类的图片的最高分。 |
statistics |
Array |
各个分类的图片数量。 |
matchList |
Array |
匹配的全部人物列表。 |
label |
Number |
最终识别分类。 |
review |
Boolean |
是否需要复审。 |
fileList参数(图片搜索)
参数名称 |
类型 |
说明 |
url |
String |
图片链接。 |
similarity |
Number |
人物相似度。 |
label |
Number |
识别分类。 |
review |
Boolean |
是否需要复审。 |
personId |
String |
人物ID。 |
faceId |
String |
人物名称。 |
typeName |
String |
人物类型。 |
facePosition |
Array |
人脸方框坐标 [左上角坐标,右上角坐标,右下角坐标,左下角坐标]。 |
offset |
Number |
截帧位置,单位秒。 |
matchList参数(图片搜索)
参数名称 |
类型 |
说明 |
personId |
String |
人物ID。 |
faceId |
String |
人物名称。 |
typeName |
String |
人物类型。 |
taskId参数(知名人物搜索)
参数名称 |
类型 |
说明 |
fileList |
Array |
指定label的部分图片的识别结果。 |
maximums |
Array |
各个分类的图片的最高分。 |
statistics |
Array |
各个分类的图片数量。 |
matchList |
Array |
匹配的全部人物列表。 |
fileList参数(知名人物搜索)
参数名称 |
类型 |
说明 |
url |
String |
图片链接。 |
scene |
String |
检测场景。 |
similarity |
Number |
人物相似度。 |
label |
Number |
识别分类。 |
review |
Boolean |
是否需要复审。 |
personId |
String |
人物ID。 |
faceId |
String |
人物名称。 |
typeName |
String |
人物类型。 |
facePosition |
Array |
人脸方框坐标 [左上角坐标,右上角坐标,右下角坐标,左下角坐标]。 |
offset |
Number |
截帧位置,单位秒。 |
matchList参数(知名人物搜索)
参数名称 |
类型 |
说明 |
scene |
String |
检测场景。 |
personId |
String |
人物ID。 |
faceId |
String |
人物名称。 |
typeName |
String |
人物类型。 |
taskId参数(自定义图库)
参数名称 |
类型 |
说明 |
fileList |
Array |
指定label的部分图片的识别结果。 |
maximums |
Array |
各个分类的图片的最高分。 |
statistics |
Array |
各个分类的图片数量。 |
label |
Number |
最终识别分类。 |
fileList参数(自定义图库)
参数名称 |
类型 |
说明 |
url |
String |
图片链接。 |
label |
Number |
识别分类。 |
similarity |
Number |
图片相似度。 |
relatives |
Array |
相似的在库图片。 |
offset |
Number |
截帧位置,单位秒。 |
relatives参数
参数名称 |
类型 |
说明 |
path |
String |
图片链接。 |
score |
Number |
匹配分数。 |
taskId参数(语音转译审核)
参数名称 |
类型 |
说明 |
violations |
Array |
语音违规片段的识别结果。 |
text |
String |
语音识别的文本内容。 |
violations参数
参数名称 |
类型 |
说明 |
startTime |
Number |
开始时间。 |
endTime |
Number |
结束时间。 |
content |
String |
文本内容,可能为空。 |
action |
String |
是否违规,block:违规,pass:通过,review:复审。 |
label |
String |
违规标签。 |
review |
Boolean |
是否需要复审。 |
rate |
String |
吻合分数。 |
details |
Array |
命中的关键词详细信息,如果actions为pass,则details为空数组,详见以下details数据结构。 |
details参数
参数名称 |
类型 |
说明 |
keyword |
String |
测试文本中违规的词语。 |
hint |
String |
命中的关键词。 |
mainLabel |
String |
关键词的主标签。 |
subLabel |
String |
关键词的次标签。 |
taskId参数(低俗语音)
参数名称 |
类型 |
说明 |
violations |
Array |
语音违规片段的识别结果。 |
violations参数
参数名称 |
类型 |
说明 |
label |
Number |
违规标签。 |
review |
Boolean |
是否需要复审。 |
details |
Array |
片段细分信息。 |
details参数
参数名称 |
类型 |
说明 |
startTime |
Number |
开始时间,单位秒。 |
endTime |
Number |
结束时间,单位秒。 |
label |
Number |
违规标签。 |
rate |
Number |
吻合分数。 |
taskId参数(OCR文本审核)
参数名称 |
类型 |
说明 |
fileList |
Array |
指定label的部分图片的识别结果。 |
avgScores |
Array |
平均分反映一组图片的整体。 |
maximums |
Array |
各个分类的图片的最高分。 |
statistics |
Array |
各个分类的图片数量。 |
label |
Number |
最终识别分类。 |
review |
Boolean |
是否需要复审。 |
fileList参数(OCR文本审核)
参数名称 |
类型 |
说明 |
url |
String |
图片链接。 |
text |
String |
文本信息。 |
scores |
Number |
准确率, 介于0-1的浮点数。 |
location |
Array |
文字方框坐标 [左上角坐标,右上角坐标,右下角坐标,左下角坐标]。 |
degree |
Number |
文字旋转角度,取值范围是[-180, 180],正表示顺时针,负表示逆时针。 |
textAnalysis |
Object |
文本审核结果。 |
offset |
Number |
截帧位置,单位秒。 |
textAnalysis参数
参数名称 |
类型 |
说明 |
label |
Number |
识别分类。 |
review |
Boolean |
是否需要复审。 |
rate |
Number |
分类得分,介于0-1的浮点数。 |
details |
Array |
文本违规信息。 |
details参数
参数名称 |
类型 |
说明 |
keyword |
String |
测试文本中违规的词语。 |
hint |
String |
命中的关键词。 |
mainLabel |
String |
关键词的主标签。 |
subLabel |
String |
关键词的次标签。 |
taskId参数(违禁台标)
参数名称 |
类型 |
说明 |
fileList |
Array |
指定label的部分图片的识别结果。 |
avgScores |
Array |
平均分反映一组图片的整体。 |
maximums |
Array |
各个分类的图片的最高分。 |
statistics |
Array |
各个分类的图片数量。 |
fileList参数(违禁台标)
参数名称 |
类型 |
说明 |
url |
String |
图片链接。 |
location |
Array |
物体方框坐标 [左上角坐标,右上角坐标,右下角坐标,左下角坐标]。 |
category |
Number |
识别类别。 |
scores |
Number |
识别分数, 介于0-1的浮点数。 |
offset |
Number |
截帧位置,单位秒。 |
taskId参数(logo检测)
参数名称 |
类型 |
说明 |
fileList |
Array |
指定label的部分图片的识别结果。 |
avgScores |
Array |
平均分反映一组图片的整体。 |
maximums |
Array |
各个分类的图片的最高分。 |
statistics |
Array |
各个分类的图片数量。 |
fileList参数(logo检测)
参数名称 |
类型 |
说明 |
url |
String |
图片链接。 |
location |
Array |
物体方框坐标 [左上角坐标,右上角坐标,右下角坐标,左下角坐标]。 |
degree |
Number |
物体旋转角度,取值范围是[-180, 180],正表示顺时针,负表示逆时针。 |
category |
Number |
识别类别。 |
scores |
Number |
识别分数, 介于0-1的浮点数。 |
text |
Number |
logo名称。 |
offset |
Number |
截帧位置,单位秒。 |
视频片段回调示例(实时回调为false没有视频片段回调)
{
"json": {
"videoInfo": {
"id": "5cef85b518e5bc327d102e42",
"captureStart": "2019-06-01T00:00:00.000Z"
},
"fragmentInfo": {
"id": "5cef85b518e5bc327d102e42",
"offsetStart": 0,
"offsetEnd": 60
},
"customInfo": {
"id": 1
},
"54bcfc6c329af61034f7c2fc": {
"fileList": [
{
"url": "https://static.tuputech.com/api/image/original/cloud-api/storage-0831/2019-06-20/15-7/5c8760515a82342809627fea/15610140357610.8919706822430384.jpg",
"rate": 0.7911882400512695,
"label": 2,
"review": false
}
]
},
"5b7be1f59b0c77a8c2afb351": {
"fileList": [
{
"url": "https://static.tuputech.com/api/image/original/cloud-api/storage-0831/2019-06-20/15-7/5c8760515a82342809627fea/15610140357660.906444779265335.jpg",
"similarity": 0.32518404722213745,
"label": 2,
"review": false,
"facePosition": [
[
0.19140625,
0.25
],
[
0.3125,
0.25
],
[
0.3125,
0.4652777777777778
],
[
0.19140625,
0.4652777777777778
]
],
"typeName": "外国政治人物",
"faceId": "非政治人物"
}
]
},
"5c8f44ca25ade48455a63bad": {
"fileList": [
{
"url": "https://static.tuputech.com/api/image/original/cloud-api/storage-0831/2019-06-20/15-7/5c8760515a82342809627fea/15610140357660.906444779265335.jpg",
"label": 2,
"similarity": 0.6458022594451904,
"relatives": [
{
"path": "https://static.tuputech.com/lts/image/original/lts-52/LTS-Bucket-UserDefineImages/2019-03-29/cloud-api/storage-0831/2019-03-29/10/0.9202317260827633/15538277415580.7420568768203986.jpg",
"score": 0.6458022594451904
}
]
}
]
},
"5caee6b2a76925c55a09a6d2": {
"violations": [
{
"startTime": 12,
"endTime": 15,
"content": "毛泽东",
"action": "block",
"label": "Politics",
"review": false,
"rate": 0.896484,
"details": [
{
"keyword": "毛泽东",
"hint": "毛泽东",
"mainLabel": "Politics",
"subLabel": "National_Leader"
}
]
}
],
"text": "毛泽东你好"
},
"code": 0,
"message": "success",
"nonce": 0.13782089185808521,
"timestamp": 1559554942044
},
"signature": "gRoui70Wj4r6TLAIT7WKz2skjcBSqPKCO9yrbHnv2tgwGLwJWcBRDcuYjRHrb3h7K1TkBw7fTGTExdTHoFXFbMZ1fLpkmFjxbvFvC6Yp2C9DmmL5BXcRf6B43zXQtCLSFLDUtEB6/Y2/AgNFgTUdfsXFVxHq4zfgQpCBi5bnEI="
}
视频结果回调示例(实时回调为true)
{
"json": {
"videoInfo": {
"id": "5d0b2f0511b3e74eadf152dd",
"captureStart": "2019-06-20T07:00:22.851Z",
"duration": 8.5,
"frames": 204,
"status": "end",
"message": "success"
},
"customInfo": {
"id": 1
},
"code": 0,
"message": "success",
"nonce": "0.9994704892215807",
"timestamp": 1561014050113
},
"signature": "gRoui70Wj4r6TLAIT7WKz2NcBSqPKCO9ysddbHnv2tgwGLwJWcBRDcuYjRHrb3h7pISs1TkBw7fTGTExdTHoFXFbMZ1fLpkmFjxbvFvC6Yp2C9DmmL5BXcRf6B43zXQtCLSFLDUtEB6/Y2/"
}
视频结果回调示例(实时回调为false)
{
"json": {
"videoInfo": {
"id": "5d0b2f0511b3e74eadf152dd",
"captureStart": "2019-06-20T07:00:22.851Z",
"duration": 8.5,
"frames": 204,
"status": "end",
"message": "success"
},
"customInfo": {
"id": 1
},
"54bcfc6c329af61034f7c2fc": {
"fileList": [
{
"url": "https://static.tuputech.com/api/image/original/cloud-api/storage-0831/2019-06-20/15-7/5c8760515a82342809627fea/15610140357610.8919706822430384.jpg",
"rate": 0.7911882400512695,
"label": 0,
"review": false,
"offset": 0
}
],
"avgScores": [
{
"score": 0.9632003605365753,
"label": 0
},
{
"score": 0.036799637170042844,
"label": 1
}
],
"maximums": [
{
"max": 0.9982892870903015,
"label": 0
},
{
"max": 0.18442420661449432,
"label": 1
}
],
"statistics": [
{
"count": 10,
"label": 0
},
{
"count": 0,
"label": 1
}
],
"label": 0,
"review": false
},
"5b7be1f59b0c77a8c2afb351": {
"fileList": [
{
"url": "https://static.tuputech.com/api/image/original/cloud-api/storage-0831/2019-06-20/15-7/5c8760515a82342809627fea/15610140357660.906444779265335.jpg",
"similarity": 0.32518404722213745,
"label": 2,
"review": false,
"facePosition": [
[
0.19140625,
0.25
],
[
0.3125,
0.25
],
[
0.3125,
0.4652777777777778
],
[
0.19140625,
0.4652777777777778
]
],
"typeName": "外国政治人物",
"faceId": "金正恩",
"personId": "5cc01fe9da417194068fdd41",
"offset": 0
}
],
"statistics": [
{
"count": 1,
"label": 0
},
{
"count": 3,
"label": 2
},
{
"count": 6,
"label": 3
}
],
"matchList": [
{
"personId": "5cc01fe9da417194068fdd41",
"faceId": "金正恩",
"typeName": "外国政治人物"
}
],
"label": 0,
"review": false
},
"5e13f8b2170dd16ec51f2c95": {
"fileList": [
{
"url": "https://static.tuputech.com/api/image/original/cloud-api/storage-0831/2019-06-20/15-7/5c8760515a82342809627fea/15610140357660.906444779265335.jpg",
"scene": "politician",
"similarity": 0.32518404722213745,
"label": 2,
"review": false,
"facePosition": [
[
0.19140625,
0.25
],
[
0.3125,
0.25
],
[
0.3125,
0.4652777777777778
],
[
0.19140625,
0.4652777777777778
]
],
"typeName": "外国政治人物",
"faceId": "金正恩",
"personId": "5cc01fe9da417194068fdd41",
"offset": 0
}
],
"statistics": [
{
"count": 1,
"label": 0
},
{
"count": 3,
"label": 2
},
{
"count": 6,
"label": 3
}
],
"matchList": [
{
"scene": "politician",
"personId": "5cc01fe9da417194068fdd41",
"faceId": "金正恩",
"typeName": "外国政治人物"
}
]
},
"5c8f44ca25ade48455a63bad": {
"maximums": [
{
"max": 0.7245864868164062,
"label": 2
}
],
"statistics": [
{
"count": 4,
"label": 2
}
],
"fileList": [
{
"url": "https://static.tuputech.com/api/image/original/cloud-api/storage-0831/2019-06-20/15-7/5c8760515a82342809627fea/15610140357660.906444779265335.jpg",
"label": 2,
"similarity": 0.6458022594451904,
"relatives": [
{
"path": "https://static.tuputech.com/lts/image/original/lts-52/LTS-Bucket-UserDefineImages/2019-03-29/cloud-api/storage-0831/2019-03-29/10/0.9202317260827633/15538277415580.7420568768203986.jpg",
"score": 0.6458022594451904
}
],
"offset": 10
}
],
"label": 2
},
"5caee6b2a76925c55a09a6d2": {
"violations": [
{
"startTime": 12,
"endTime": 15,
"content": "毛泽东",
"action": "block",
"label": "Politics",
"review": false,
"rate": 0.896484,
"details": [
{
"keyword": "毛泽东",
"hint": "毛泽东",
"mainLabel": "Politics",
"subLabel": "National_Leader"
}
]
}
],
"text": "毛泽东你好"
},
"5c8213b9bc807806aab0a574": {
"violations": [
{
"label": 1,
"review": false,
"details": [
{
"startTime": 10,
"endTime": 20,
"label": 1,
"rate": 0.9998823404
}
]
}
]
},
"5e1d634d2809c24f6d909bd3": {
"fileList": [
{
"url": "https://static.tuputech.com/api/image/original/cloud-api/storage-0831/2019-06-20/15-7/5c8760515a82342809627fea/15610140357660.906444779265335.jpg",
"text": "毛泽东",
"scores": 0.9951668977737427,
"degree": 0,
"location": [
[
0.4256518406293357,
0.5753968315895163
],
[
0.5806905895660593,
0.5753968315895163
],
[
0.5806905895660593,
0.65079364460096
],
[
0.4256518406293357,
0.65079364460096
]
],
"textAnalysis": {
"label": 3,
"review": false,
"rate": 0.9,
"details": [
{
"keyword": "毛泽东",
"hint": "毛泽东",
"mainLabel": 3
}
]
},
"offset": 10
}
],
"avgScores": [
{
"score": 0.9,
"label": 3
}
],
"maximums": [
{
"max": 0.9,
"label": 3
}
],
"statistics": [
{
"count": 1,
"label": 3
}
],
"label": 3,
"review": false
},
"5dca1869d3d8752b37f94ee1": {
"fileList": [
{
"url": "https://static.tuputech.com/api/image/original/cloud-api/storage-233/2020-06-01/17-7/5c8760515a82342809627fea/15910053542810.3343467625425356.jpg",
"location": [
[
0.03537565228836477,
0.03303825855255127
],
[
0.2027942005938315,
0.03303825855255127
],
[
0.2027942005938315,
0.271730899810791
],
[
0.03537565228836477,
0.271730899810791
]
],
"category": 0,
"scores": 0.9999051094055176,
"offset": 1
}
],
"avgScores": [
{
"score": 0.39996163845062255,
"category": 0
}
],
"maximums": [
{
"max": 0.9999051094055176,
"category": 0
}
],
"statistics": [
{
"count": 2,
"category": 0
}
]
},
"5eeadb619ac44c1316975f51": {
"avgScores": [
{
"score": 0.745452880859375,
"category": 0
}
],
"maximums": [
{
"max": 0.80084228515625,
"category": 0
}
],
"statistics": [
{
"count": 2,
"category": 0
}
],
"fileList": [
{
"url": "https://static.tuputech.com/api/image/original/cloud-api/storage-0831/2020-08-24/14-7/5c8760515a82342809627fea/15982522135770.7805975910322889.jpg",
"location": [
[
0.06879091262817383,
0.05533757335261295
],
[
0.1368561167466013,
0.05533757335261295
],
[
0.1368561167466013,
0.16865464260703636
],
[
0.06879091262817383,
0.16865464260703636
]
],
"degree": 0,
"category": 0,
"scores": 0.80072021484375,
"text": "logo",
"offset": 1
}
]
},
"code": 0,
"message": "success",
"nonce": "0.9994704892215807",
"timestamp": 1561014050113
},
"signature": "gRoui70Wj4r6TLAIT7WKz2NcBSqPKCO9yrbHnv2tgwcBRDcuYjRHrb3h7pISsEK1TkBw7fTGTExdTHoFXFbMZ1fLpkmFjxbvFvC6Yp2C9DmmL5BXcRf6B43zXQtCLSFLDUtEB6/Y2/AgNFgTUTXFVxHq4zfgQi5bnEI="
}
2. 视频流提交接口
请求地址:
http://api.open.tuputech.com/v3/recognition/video/stream/'your_secretId'
'your_secretId'需替换为您的secretId,请联系我们为您开通secretId。
请求方法:
POST
请求头:
参数名称 |
类型 |
是否必需 |
说明 |
Content-Type |
String |
是 |
application/json |
请求参数
参数名称 |
类型 |
是否必需 |
说明 |
video |
String |
是 |
视频流地址,支持RTMP。 |
customInfo |
Object |
否 |
自定义信息,用于给视频附加额外信息(比如:直播客户可能传房间号,或者主播ID信息)。 |
interval |
Number |
否 |
视频截图间隔,范围[1, 10]秒,默认3秒。 |
fragmentTime |
Number |
否 |
视频片段时长,范围[10, 60]秒,默认60秒。 |
callbackUrl |
String |
是 |
回调地址,用于通知返回结果,支持HTTP(S)。 |
callbackRules |
Object |
否 |
回调规则,用于返回指定类型的数据,默认返回所有类型的数据。 |
timestamp |
Number |
是 |
当前的服务器的Unix时间戳。 |
nonce |
Number |
是 |
随机数。 |
signature |
String |
是 |
我们采用的数字证书签名算法是:"RSA-SHA256" ,签名输出类型是:"base64" ,具体步骤如下: 1、所有参与签名的参数为:secretId,timestamp,nonce,用英文半角逗号“,”相连,得到sign_string; 2、利用您的私钥,使用算法"RSA-SHA256" 签名,输出为 "base64" 格式,得到参数signature的值。
点击管理公钥证书查看如何生成私钥,及如何上传您的公钥用于数字签名的认证;点击API SDK查看代码示例。 |
其余内容与视频文件接口(实时回调)一致。
3. 关闭视频检测接口
请求地址:
http://api.open.tuputech.com/v3/recognition/video/close/'your_secretId'
'your_secretId'需替换为您的secretId,请联系我们为您开通secretId。
请求方法:
POST
请求头
参数名称 |
类型 |
是否必需 |
说明 |
Content-Type |
String |
是 |
application/json |
请求参数
参数名称 |
类型 |
是否必需 |
说明 |
videoId |
String |
是 |
视频唯一标识。 |
timestamp |
Number |
是 |
当前的服务器的Unix时间戳。 |
nonce |
Number |
是 |
随机数。 |
signature |
String |
是 |
我们采用的数字证书签名算法是:"RSA-SHA256" ,签名输出类型是:"base64" ,具体步骤如下: 1、所有参与签名的参数为:secretId,timestamp,nonce,用英文半角逗号“,”相连,得到sign_string; 2、利用您的私钥,使用算法"RSA-SHA256" 签名,输出为 "base64" 格式,得到参数signature的值。
点击管理公钥证书查看如何生成私钥,及如何上传您的公钥用于数字签名的认证;点击API SDK查看代码示例。 |
请求示例
{
"videoId": "5cef85b518e5bc327d102e42",
"timestamp": 1559554003759,
"nonce": 0.6157904536165131,
"signature": "p0fX2Vb5JMtN0wM7WkQRsyaH2zk3zYYRlBAydPmuWkofb06KdSPhq4URYHaAFU/dXodfJS9x2PbZBNz084RF0NIiJvBUcK8mFeA//jDueWhoxEI9Y="
}
返回参数
参数名称 |
类型 |
说明 |
signature |
String |
我们采用的数字证书签名算法是:"RSA-SHA256" ,签名输出类型是:"base64" ,首先下载图普科技的公钥证书,然后按如下步骤认证: 1、收到的JSON数据经过JSON.parse(),得到JSON对象,记为data; 2、data含两个字段:signature、json;signature是数字签名,json是真正的有效数据的字符串格式; 3、用signature对json进行签名认证,算法:RSA-SHA256 ,输出类型:base64 ,得到认证结果; 4、认证通过后,对json进行JSON.parse(),得到JSON数据,详见"json"字段说明。 |
json |
String |
json 字段经过JSON.parse(json)后,得到具体的结果。 |
json参数
参数名称 |
类型 |
说明 |
videoId |
String |
视频唯一标识。 |
code |
Number |
返回码,参考服务公共状态码解析。 |
message |
String |
返回信息。 |
nonce |
Number |
随机数。 |
timestamp |
Number |
当前的服务器的Unix时间戳。 |
返回示例
{
"json": {
"videoId": "5cef85b518e5bc327d102e42",
"code": 0,
"message": "success",
"nonce": 0.13782089185808521,
"timestamp": 1559554942044
},
"signature": "gRoui70Wj4r6TLAIT7WcBSqPKCO9yrbHnv2tgwGLwJWcBRDcuYjRHrb3h7pISsEK1TkBw7fTGTExdTHoFXFbMZ1fLpkmFjxbvFvC6Yp2C9DmmL5BXcRf6B43zXQtCLSFLDUtEB6/Y2/AgNFgTUTXFllssjdkzfgQpCBi5bnEI="
}