7.2 KiB
算法与后台解耦规则
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"
}
}