149 lines
4.1 KiB
YAML
149 lines
4.1 KiB
YAML
# 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
|