开放能力
开发平台
行业应用
生态合作
开发与教学
资讯 社区 控制台
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术
AR与VR
数据智能
场景方案
部署方案
行业应用
智能教育
智能医疗
智能零售
智能工业
企业服务
智能政务
信息服务
智能园区

HTTP结果回调

说明

当用户需要获取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()
上一篇
系统设置
下一篇
HTTP模型推理服务接口