# 算法与后台解耦规则 # 1、方法 postgres 的ai_model_list 表,id字段声明为6位长度数字 1、第1位表示算法类别,1xxxxx 表明为目标识别、2xxxxx标明为语义分割、3xxxxx表示变化监测 2、最后两位表示二次计算,100001 表示做目标识别、100002表示做目标识别,且做人员计数 # 接口名:视频流识别 接收前端的视频流、模型、识别类型,算法做计算,并且将计算结果存储到minio,消息通过mqtt发送 ## 1、请求 接口 /ai/stream/back_detect 方法 post headers X-API-Token:5e8899fe-dc74-4280-8169-2f4d185f3afa body ``` { "task_id": "1234567890", #任务id "sn":"", #无人机sn "content_body": { "source_url": "rtmp://192.168.0.142:1935/live/123456", #无人机视频流url "confidence":0.4, #置信度 "model_func_id":[100001,100002] #方法id } } ``` ## 2、响应 算法的响应分为两个部分 1、rest响应,表明收到请求 2、mqtt消息,持续输出计算结果 ### 1、rest ``` { "status": "success", "task_id": "1234567890", "message": "Detection started successfully" } ``` ### 2、mqtt ip 112.44.103.230 端口 1883 topic thing/product/ai/events ``` { "task_id": "1234567890", "minio": { "minio_path": "ai_result/20250702/1751425303860-output-1751425303800959985.jpg", "file_type": "pic" }, "box_detail": { "result_100001": { "func_id_10001": 100001, "type_name": "行人", "cls_count": 1, "box_count": [ [ { "track_id": 22099, "confidence": 0.34013107419013977, "cls_id": 0, "type_name": "行人", "box": [ 15.935794830322266, 694.75390625, 33.22901916503906, 713.1658935546875 ] } ] ] } }, "uav_location": { "data": { "attitude_head": 60, "gimbal_pitch": 60, "gimbal_roll": 60, "gimbal_yaw": 60, "height": 10, "latitude": 10, "longitude": 10, "speed_x": 10, "speed_y": 10, "speed_z": 10 }, "timestamp": 1751425301213249700 } } ``` # 接口名:图片识别 接收前端的图片,算法做计算,并且将计算结果存储到minio,消息通过mqtt发送 ## 1、请求 接口 /ai/pic/back_detect_pic 方法 post headers X-API-Token:5e8899fe-dc74-4280-8169-2f4d185f3afa body ``` { "task_id": "0001111", "content_body": { "s3_id":1, #根据id适配,minio相关存储参数 "s3_url":[ "test/frame_0000.jpg","test/frame_0001.jpg","test/frame_0002.jpg" # minio文件地址 ], "confidence":0.4, #算法置信度 "model_func_id":[10001,10002] #方法id } } ``` ## 2、响应 算法的响应分为两个部分 1、rest响应,表明收到请求 2、mqtt消息,持续输出计算结果 ### 1、rest ``` { "status": "success", "task_id": "0001111", "message": "Detection started successfully" } ``` ### 2、mqtt ip 112.44.103.230 端口 1883 topic thing/product/ai/events ``` { "task_id": "0001111", #任务id "minio": { "minio_path": "ai_result/20250627/1751006943659-frame_0001.jpg", # minio 存储路径 "file_type": "pic" }, "box_detail": { "model_id": 10001, "box_count": [ { "type": 3, # 类型 "type_name": "车辆", #类型名称 "count": 71 #数量 }, { "type": 0, "type_name": "车辆", "count": 7 } ] } } ``` # 接口名:地类分割 接收前端的图片,算法做计算,并且将计算结果存储到minio,消息通过mqtt发送 ## 1、请求 接口 /ai/pic/back_detect_pic 方法 post headers X-API-Token:5e8899fe-dc74-4280-8169-2f4d185f3afa body ``` { "task_id": "7a5c83e0-fe0d-47bf-a8e1-9bd663508783", "content_body": { "s3_id":1,#根据id适配,minio相关存储参数 "s3_url":[ "test/patch_0011.png", # minio文件地址 "test/patch_0012.png" ], "model_func_id":[20000,20001] #方法id } } ``` ## 2、响应 算法的响应分为两个部分 1、rest响应,表明收到请求 2、mqtt消息,持续输出计算结果 ### 1、rest ``` { "status": "success", "task_id": "0001111", "message": "Detection started successfully" } ``` ### 2、mqtt ip 112.44.103.230 端口 1883 topic thing/product/ai/events ``` { "task_id": "7a5c83e0-fe0d-47bf-a8e1-9bd663508783", "minio": [ { "minio_path_before": "ai_result/20250710/1752128232469-patch_0011.png", # 需要分割的图片 "minio_path_after": "ai_result/20250710/1752128234222-patch_0011.png", #分割之后的图片 "minio_path_boundary": "ai_result/20250710/1752128234264-patch_0011.pngfinal_vis.png", # 分割的边界图片 "minio_path_json": "ai_result/20250710/1752128234326-patch_0011.pnginstance_results.json", #分割生成的json文件 "file_type": "pic" }, { "minio_path_before": "ai_result/20250710/1752128240382-patch_0012.png", "minio_path_after": "ai_result/20250710/1752128241553-patch_0012.png", "minio_path_boundary": "ai_result/20250710/1752128241587-patch_0012.pngfinal_vis.png", "minio_path_json": "ai_result/20250710/1752128241631-patch_0012.pnginstance_results.json", "file_type": "pic" } ] } ``` # 接口名:地类变化监测 接收前端的图片,对一期、二期的图像做变化监测,并且将计算结果存储到minio,消息通过mqtt发送 ## 1、请求 接口 /ai/pic/back_detect_pic 方法 post headers X-API-Token:5e8899fe-dc74-4280-8169-2f4d185f3afa body ``` { "task_id": "9fa19ec3-d982-4897-af6c-2c78f786c760", "content_body": { "s3_id":1, "s3_url":{ "early":"/test/1-00205.png", # 一期图像minio文件地址 "later":"/test/2-00205.png" # 二期图像minio文件地址 }, "model_func_id":[30000,30001] } } ``` ## 2、响应 算法的响应分为两个部分 1、rest响应,表明收到请求 2、mqtt消息,持续输出计算结果 ### 1、rest ``` { "status": "success", "task_id": "0001111", "message": "Detection started successfully" } ``` ### 2、mqtt ip 112.44.103.230 端口 1883 topic thing/product/ai/events ``` { "task_id": "9fa19ec3-d982-4897-af6c-2c78f786c760", "minio": { "minio_path_1": "ai_result/20250627/1751007686483-1-00205.png", # 一期影像,minio地址 "minio_path_2": "ai_result/20250627/1751007686541-2-00205.png", # 二期影像,minio地址 "minio_path_result": "ai_result/20250627/1751007686.458642-result-2-00205.png", #识别结果,minio地址 "file_type": "pic" } } ```