{ "queue": { "size": 8, "strategy": "drop_oldest" }, "graphs": [ { "name": "cam1_sample_full_pipeline", "nodes": [ { "id": "in_cam1", "type": "input_rtsp", "role": "source", "enable": true, "url": "rtsp://10.0.0.49:8555/cam", "fps": 30, "width": 1280, "height": 720, "use_mpp": true, "use_ffmpeg": false, "force_tcp": true, "reconnect_sec": 5, "reconnect_backoff_max_sec": 30 }, { "id": "pre_cam1", "type": "preprocess", "role": "filter", "enable": true, "dst_w": 640, "dst_h": 640, "dst_format": "rgb", "dst_packed": true, "keep_ratio": false, "rga_gate": "cam1_sample_full_pipeline", "use_rga": true }, { "id": "yolo_cam1", "type": "ai_yolo", "role": "filter", "enable": true, "infer_fps": 10, "model_path": "./third_party/rknpu2/examples/rknn_yolov5_demo/model/RK3588/yolov5s-640-640.rknn", "model_version": "v5", "num_classes": 80, "conf": 0.35, "nms": 0.45, "class_filter": [] }, { "id": "face_det_cam1", "type": "ai_face_det", "role": "filter", "enable": true, "model_path": "./models/RetinaFace_mobile320.rknn", "conf": 0.7, "nms": 0.4, "max_faces": 10, "output_landmarks": true, "input_format": "rgb" }, { "id": "face_recog_cam1", "type": "ai_face_recog", "role": "filter", "enable": true, "model_path": "./models/mobilefacenet_arcface.rknn", "align": true, "emit_embedding": false, "max_faces": 10, "input_format": "rgb", "input_dtype": "uint8", "threshold": { "accept": 0.45, "margin": 0.05 }, "gallery": { "backend": "sqlite", "path": "./models/face_gallery.db", "load_on_start": true, "expected_dim": 512, "dtype": "auto" } }, { "id": "trk_cam1", "type": "tracker", "role": "filter", "enable": true, "mode": "bytetrack_lite", "per_class": true, "state_key": "cam1_sample_full_pipeline", "track_classes": [0], "ignore_classes": [], "allowed_models": ["yolov5", "yolov8"], "high_th": 0.5, "low_th": 0.1, "iou_th": 0.3, "max_age_ms": 1500, "min_hits": 2, "max_tracks": 128, "debug": { "stats": false, "stats_interval": 200 } }, { "id": "gate_face_cam1", "type": "gate", "role": "filter", "enable": true, "state_key": "cam1_sample_full_pipeline", "class_ids": [0], "require_confirmed": true, "min_count": 2, "max_age_ms": 1500, "min_interval_ms": 300, "min_box_area_ratio": 0.03 }, { "id": "pre_face_cam1", "type": "preprocess", "role": "filter", "enable": true, "dst_w": 0, "dst_h": 0, "dst_format": "rgb", "dst_packed": true, "keep_ratio": false, "rga_gate": "cam1_sample_full_pipeline", "use_rga": true }, { "id": "osd_cam1", "type": "osd", "role": "filter", "enable": true, "draw_bbox": true, "draw_text": true, "draw_face_det": false, "draw_face_bbox": false, "line_width": 2, "font_scale": 1, "labels": [] }, { "id": "post_cam1", "type": "preprocess", "role": "filter", "enable": true, "dst_w": 1280, "dst_h": 720, "dst_format": "nv12", "keep_ratio": false, "rga_gate": "cam1_sample_full_pipeline", "use_rga": true }, { "id": "pub_cam1", "type": "publish", "role": "filter", "enable": true, "codec": "h264", "fps": 30, "gop": 60, "bitrate_kbps": 2000, "use_mpp": true, "use_ffmpeg_mux": true, "outputs": [ { "proto": "rtsp_server", "port": 8555, "path": "/live/cam1" }, { "proto": "hls", "path": "./web/hls/cam1/index.m3u8", "segment_sec": 2 } ] }, { "id": "alarm_cam1", "type": "alarm", "role": "sink", "enable": true, "eval_fps": 10, "labels": [], "rules": [ { "name": "person_in_view", "class_ids": [0], "roi": { "x": 0.0, "y": 0.0, "w": 1.0, "h": 1.0 }, "min_score": 0.4, "min_box_area_ratio": 0.02, "require_track_id": true, "min_duration_ms": 1500, "min_hits": 3, "hit_window_ms": 1500, "cooldown_ms": 5000, "per_track_cooldown_ms": 5000 } ], "face_rules": [], "actions": { "log": { "enable": true, "level": "info" }, "snapshot": { "enable": true, "format": "jpg", "quality": 85, "upload": { "type": "minio", "endpoint": "http://10.0.0.49:9000", "bucket": "vi", "region": "us-east-1", "access_key": "admin", "secret_key": "12345678aA" } }, "clip": { "enable": true, "pre_sec": 5, "post_sec": 10, "format": "mp4", "fps": 30, "upload": { "type": "minio", "endpoint": "http://10.0.0.49:9000", "bucket": "vi", "region": "us-east-1", "access_key": "admin", "secret_key": "12345678aA" } }, "http": { "enable": false, "url": "http://127.0.0.1:8080/api/alarm", "timeout_ms": 3000, "include_media_url": true, "method": "POST" }, "external_api": { "enable": true, "getTokenUrl": "http://127.0.0.1:8080/api/getToken", "putMessageUrl": "http://127.0.0.1:8080/api/putMessage", "tenantCode": "32", "channelNo": "${vod_channelNo}", "timeout_ms": 3000, "include_media_url": true, "token_header": "X-Access-Token", "token_json_path": "responseBody.token", "token_cache_sec": 1200 } } }, { "id": "alarm_face_cam1", "type": "alarm", "role": "sink", "enable": true, "eval_fps": 5, "labels": [], "rules": [], "face_rules": [ { "name": "unknown_face", "type": "unknown", "cooldown_ms": 7000, "min_sim": 0.35, "min_hits": 2, "hit_window_ms": 1500, "min_face_area_ratio": 0.01, "min_face_aspect": 0.6, "max_face_aspect": 1.6 }, { "name": "known_person", "type": "person", "cooldown_ms": 7000, "min_sim": 0.6, "min_hits": 2, "hit_window_ms": 1500, "min_face_area_ratio": 0.01, "min_face_aspect": 0.6, "max_face_aspect": 1.6 } ], "actions": { "log": { "enable": false, "level": "info" }, "snapshot": { "enable": true, "format": "jpg", "quality": 85, "upload": { "type": "minio", "endpoint": "http://10.0.0.49:9000", "bucket": "vi", "region": "us-east-1", "access_key": "admin", "secret_key": "12345678aA" } }, "clip": { "enable": false }, "http": { "enable": true, "url": "http://127.0.0.1:8080/api/alarm", "timeout_ms": 3000, "include_media_url": true, "method": "POST" } } } ], "edges": [ ["in_cam1", "pre_cam1"], ["in_cam1", "pre_face_cam1"], ["pre_cam1", "yolo_cam1"], ["yolo_cam1", "trk_cam1"], ["trk_cam1", "osd_cam1"], ["osd_cam1", "post_cam1"], ["post_cam1", "pub_cam1"], ["pub_cam1", "alarm_cam1"], ["pre_face_cam1", "face_det_cam1"], ["face_det_cam1", "face_recog_cam1"], ["face_recog_cam1", "alarm_face_cam1"] ] } ] }