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
|