HTTP结果回调
更新时间:2024-05-16
说明
当用户需要获取EdgeBoard的分析结果时,EdgeBoard开发管理平台支持将视频流任务结果通过HTTP协议推送到指定地址,方便客户进行二次开发。
HTTP回调方式:EdgeBoard ----- post -----> 用户服务器
EdgeBoard <------ response---- 用户服务器
HTTP回调接口:http://ip:port/xxxxxxx 。该接口由用户定义,不做固定格式要求。
回调功能设置
添加任务时,【开启】回调状态,填写回调地址,回调图片勾选【保存】,回传结果会带有base64图片,勾选【渲染】,会返回带有渲染结果的base64图片。
数据返回格式
{
"task_id":0, //任务ID号
"task_type":"eb::vehicle_tracking", //任务类型
"camera_id":0, //摄像头ID号
"camera_name":"rtsp_camera", //摄像头名称
"camera_sn":"xafasfajfasdfas", //摄像头SN码
"model_id":0, //模型ID号
"background":"base64xxxxxxxxxxxx",//背景图片,勾选页面中【回调图片】和【是否渲染】,会返回该字段
"height":1920, //回调图片的高
"width":1080, //回调图片的宽
"time":"1637218917000", //回调图片时间戳
"result_data":[ //推理结果
{
"track_id":0,//跟踪的模型支持该字段
"image_data":xxxxx,
"label_id":0,
"label_name":"fire",
"score":0.83354",
"x0":0.1, //左上角、右下角坐标
"y0":0.1,
"x1":0.2,
"y1":0.2
},
....
],
"fence_data":[//画面框定信息
{
"id":0,
"name":"停车位1",
"coordinates":[
[0.1,0.1],
[0.2,0.2],
[0.3,0.3]
]
},
{
"id":1,
"name":"停车位2",
"coordinates":[
[0.1,0.1],
[0.2,0.2],
[0.3,0.3],
[0.4,0.4]
]
}
]
}
HTTP回调协议
HTTP请求方法:post
URI:客户自定义
Request:
Post request(content-type: application/json; charset=UTF-8):
Response 返回:
Http Status 200 (ok)
HTTP回调接口搭建示例
import base64
import tornado.ioloop
import tornado.web
import json
import time
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world")
def post(self):
post_data = self.request.body.decode('utf-8')
json_data = json.loads(post_data)
#print(json_data)
self.set_status(200)
print (json.dumps(json_data, ensure_ascii=False, indent=4))
self.finish()
def make_app():
return tornado.web.Application([
(r"/httpcallback", MainHandler),
])
if __name__ == "__main__":
app = make_app()
app.listen(8888)
tornado.ioloop.IOLoop.current().start()