cmvr_edge_ai/configs/server_detect.yaml

149 lines
4.1 KiB
YAML
Raw Normal View History

# 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