Files

5.4 KiB
Raw Permalink Blame History

一、功能概述

Api 类是一个用于处理检测结果、告警信息和告警视频的工具类。

api_demo.py 为原始默认实现。

api_demo_tcp.py实现最简单的tcp通讯如果需要自动重连队列等业务代码请自行实现。

此类名、方法名等框架是固定的,不可修改。你可以通过实现回调方法的具体逻辑(如 send_result_callbacksend_alert_callbacksend_alert_video_callback)以及配置类的属性(如 ignore_resultignore_alert 等)来实现具体功能。

二、类的属性

Api必须包含以下主要属性,用于控制其行为:

属性名称 默认值 描述
ignore_result True 是否发送检测结果。True 表示不发送,False 表示发送。
ignore_alert True 是否发送告警信息。True 表示不发送,False 表示发送。
draw_image True 是否在告警图片上绘制告警信息。True 表示绘制,False 表示不绘制。
ignore_alert_video True 是否发送告警视频。True 表示不发送,False 表示发送。

三、类的方法

Api必须包含以下三个方法,用于发送检测结果、告警信息和告警视频。可根据需求实现具体的回调方法。

1. 检测结果

  • 方法send_result_callback(self, result):

  • 功能:发送检测结果。

  • 参数

    • result:检测结果的内容。具体格式和内容如下:
  • 示例

    {
        "hit": false, //是否命中
        "time": 1742458167.288579, //告警时间戳
        "device": {
            "id": "设备id",
            "name": "设备名称",
            "desc": "设备描述"
        },
        "source": {
            "id": "数据源id",
            "ipv4": "ip地址",
            "desc": "数据源描述"
        },
        "alg": {
            "name": "算法名称英文",
            "ch_name": "算法名称中文",
            "type": "general"
        },
        "reserved_data": {
            "bbox": {
                "rectangles": [
                    {
                        "xyxy": [668,562,790,656], //左上角、右下角坐标
                        "color": [0,0,255], //BGR颜色
                        "label": "未佩戴安全帽", //标签
                        "conf": 0.91, //置信度
                        "ext": {} //扩展字段
                    }
                ],
                "polygons": {}, //多边形对象
                "lines": {}  //线段对象
            },
            "custom": {}
        },
        "hazard_level": "", //危险等级
    }
    

2. 告警信息

  • 方法send_alert_callback(self, alert)

  • 功能:发送告警信息。

  • 参数

    • alert:告警信息的内容。具体格式和内容如下:
  • 示例

    {
        "id": "67dbcd3c5dc58a7aaa019e41",  //告警id
        "alert_time": 1742458171.808598, //告警时间戳
        "device": {
            "id": "设备id",
            "name": "设备名称",
            "desc": "设备描述"
        },
        "source": {
            "id": "数据源id",
            "ipv4": "ip地址", 
            "desc": "数据源描述"
        },
        "alg": {
            "name": "算法名称英文",
            "ch_name": "算法名称中文",
            "type": "general"
        },
        "hazard_level": "", //危险等级
        "image": "img_base64", //base64编码的图片数据
        "reserved_data": {
            "bbox": {
                "rectangles": [
                    {
                        "xyxy": [668,560,790,656], //左上角、右下角坐标
                        "color": [0,0,255], //BGR颜色
                        "label": "未佩戴安全帽", //标签
                        "conf": 0.91, //置信度
                        "ext": {} //扩展字段
                    }
                ],
                "polygons": {},//多边形对象
                "lines": {}  //线段对象
            },
            "custom": {}
        }
    }
    

3. 告警视频

  • 方法send_alert_video_callback(self, alert_video):

  • 功能:发送告警视频。

  • 参数

    • alert_video:告警视频的内容。具体格式和内容如下:
  • 示例

    {
        "id": "67dbcd3c5dc58a7aaa019e41", //告警id
        "alert_time": 1742458171.808598, //告警时间戳
        "device": {
            "id": "设备id",
            "name": "设备名称",
            "desc": "设备描述"
        },
        "source": {
            "id": "数据源id",
            "ipv4": "ip地址",
            "desc": "数据源描述"
        },
        "alg": {
            "name": "算法名称英文",
            "ch_name": "算法名称中文",
            "type": "general"
        },
        "hazard_level": "", //危险等级
        "video": "video_base64" //base64编码的视频数据
    }
    

四、注意事项

  1. 属性配置:在调用发送方法之前,确保已经正确配置了类的属性,以启用或禁用所需的功能。
  2. 方法实现:默认情况下,send_result_callbacksend_alert_callbacksend_alert_video_callback 方法是空方法。在实际使用中,需要根据具体需求实现这些方法的逻辑,例如将数据发送到服务器。