# Passive Detect Server deployment example. api_version: cmvr.edge.ai/v1 runtime: thread_workers: 2 server: enabled: true http: bind: 127.0.0.1 port: 8081 # 绑定局域网地址时必须设置 bearer_token,并配置下面两项 TLS;只有受信隔离网络 # 才应改用 allow_insecure_remote: true 明文传输 token。 # bearer_token: env://CMVR_EDGE_AI_BEARER_TOKEN # tls_certfile: /etc/cmvr-edge-ai/tls/server.crt # tls_keyfile: /etc/cmvr-edge-ai/tls/server.key request_timeout_s: 30 max_request_bytes: 16777216 max_image_bytes: 10485760 routes: detect.ppe: pipeline: detect_ppe model_id: construction-ppe-yolov8@2 queue_capacity: 4 detect.mobile_phone: pipeline: detect_mobile_phone model_id: yolov8n-mobile-phone@2 queue_capacity: 4 # Public clients know only the route categories above. Model IDs, weights and # devices remain in this server-owned configuration. pipelines: detect_ppe: nodes: request_source: uses: server.request_source@1 with: category: detect.ppe image_decoder: uses: media.image_decoder.pillow@1 with: input_name: image pixel_format: BGR8 max_pixels: 25000000 accepted_media_types: [image/jpeg, image/png] detector: uses: detection.model@1 with: model: construction-ppe-yolov8@2 confidence: 0.50 # Passive requests must all produce a response, so this pipeline does # not configure max_fps or any frame-dropping edge. attach_frame: true model_options: weights: models/detection/construction-ppe-yolov8/v2/model.onnx providers: [CPUExecutionProvider] intra_op_threads: 1 inter_op_threads: 1 imgsz: 640 iou: 0.70 max_det: 100 response: uses: server.detection_response@1 with: category: detect.ppe backend: onnxruntime-yolov8 jpeg_quality: 85 response_sink: uses: server.response_sink@1 edges: - from: request_source.requests to: image_decoder.requests qos: &ppe_request_qos profile: request capacity: 4 overflow: block - from: image_decoder.frames to: detector.frames qos: *ppe_request_qos - from: detector.detections to: response.detections qos: *ppe_request_qos - from: response.responses to: response_sink.responses qos: *ppe_request_qos detect_mobile_phone: nodes: request_source: uses: server.request_source@1 with: category: detect.mobile_phone image_decoder: uses: media.image_decoder.pillow@1 with: input_name: image pixel_format: BGR8 max_pixels: 25000000 accepted_media_types: [image/jpeg, image/png] detector: uses: detection.model@1 with: model: yolov8n-mobile-phone@2 detect_labels: [mobile_phone] confidence: 0.50 attach_frame: true model_options: weights: models/detection/yolov8n-mobile-phone/v2/model.onnx providers: [CPUExecutionProvider] intra_op_threads: 1 inter_op_threads: 1 imgsz: 640 iou: 0.70 max_det: 100 response: uses: server.detection_response@1 with: category: detect.mobile_phone backend: onnxruntime-yolov8 jpeg_quality: 85 response_sink: uses: server.response_sink@1 edges: - from: request_source.requests to: image_decoder.requests qos: &phone_request_qos profile: request capacity: 4 overflow: block - from: image_decoder.frames to: detector.frames qos: *phone_request_qos - from: detector.detections to: response.detections qos: *phone_request_qos - from: response.responses to: response_sink.responses qos: *phone_request_qos