100 lines
2.7 KiB
YAML
100 lines
2.7 KiB
YAML
# 篮子接触分段 + 段内耗材识别
|
||
# 入口: main_basket.py / main_basket_stream.py / main_segments_offline.py
|
||
|
||
io:
|
||
video: input/sample.mp4
|
||
excel: input/视频中的商品信息表.xlsx
|
||
out: output/result.txt
|
||
# false:段内耗材分类不做 Excel/JSON 白名单裁剪(全 41 类);Excel 仍用于 product_id 映射
|
||
use_whitelist: false
|
||
# use_whitelist=true 时:null 从 excel C 列读白名单;或指定 {"allowed_names":[...]} JSON
|
||
whitelist_json: null
|
||
|
||
weights:
|
||
hand: weights/hand_detect.pt
|
||
goodbad: weights/goodbad_frame.pt
|
||
haocai: weights/haocai_classify.pt
|
||
|
||
runtime:
|
||
work_dir: null
|
||
keep_work_dir: false
|
||
python: null
|
||
|
||
device:
|
||
type: cuda
|
||
half: false
|
||
|
||
# 段内:手检 → 双手 ROI → 好坏帧门控 → 耗材分类
|
||
phase2:
|
||
seek_margin_sec: 3.0
|
||
frame_stride: 1
|
||
det_conf: 0.6
|
||
# 双手 union 紧框后仅向下延伸(相对框高)
|
||
pad_bottom_ratio: 0.5
|
||
imgsz_det: 1920
|
||
# 段内需检测到至少两只手才裁 ROI(取最大两只 union);merge_* 已不使用
|
||
merge_iou_gt: 0.0
|
||
merge_center_dist_max_px: null
|
||
merge_center_dist_max_frac_diag: null
|
||
tracking_alpha: 0.6
|
||
tracking_max_lost_frames: 0
|
||
|
||
classification:
|
||
imgsz_cls: 224
|
||
good_top1_conf_threshold: 0.8
|
||
good_top1_retry_threshold: 0.6
|
||
haocai_min_conf: 0.8
|
||
haocai_min_conf_retry: 0.5
|
||
empty_cache_every: 0
|
||
|
||
gap_merge:
|
||
enabled: true
|
||
max_gap_sec: 2.0
|
||
|
||
output:
|
||
legacy_12_col_only: true
|
||
|
||
doctor_identity:
|
||
enabled: true
|
||
checkpoint: doctor_identity_package/doctor_info.pth
|
||
labels_csv: doctor_identity_package/labels.csv
|
||
pose_min_detection_confidence: 0.30
|
||
min_identity_confidence: 0.00
|
||
middle_seconds: 10.0
|
||
sample_fps: 3.0
|
||
pad_frac: 0.15
|
||
|
||
# 篮子接触分段(main_basket.py / main_basket_stream.py)
|
||
basket:
|
||
det_conf: 0.6
|
||
contact_iou_threshold: 0.05
|
||
contact_iou_on: 0.03
|
||
contact_iou_off: 0.01
|
||
confirm_seconds: 0.1
|
||
cooldown_seconds: 3.0
|
||
segment_start_offset_sec: 1.0
|
||
segment_end_offset_sec: 6.0
|
||
min_segment_sec: 4.0
|
||
scan_frame_stride: 1
|
||
roi_frame: first
|
||
save_roi_json: null
|
||
load_roi_json: null
|
||
skip_roi_select: false
|
||
roi_backend: tkinter
|
||
|
||
# 推流实时识别(main_basket_stream.py)
|
||
# 接触判定 / 手检 imgsz / 好坏帧 / 耗材阈值:与离线共用 basket + phase2 + classification
|
||
# 段内推理:本地 MP4 回源 4K + phase2.imgsz_det=1920(与离线一致);RTSP/缓存 fallback 时 JPEG 宽≤1920
|
||
stream:
|
||
rtsp: null
|
||
ring_buffer_sec: 10.0
|
||
cache_max_width: 1920
|
||
jpeg_quality: 85
|
||
fps: 25.0
|
||
# 段窗口与 basket 一致:[contact+1, contact+6],时长 5s
|
||
segment_start_offset_sec: 1.0
|
||
segment_end_offset_sec: 6.0
|
||
min_segment_sec: 4.0
|
||
infer_source: file
|
||
infer_fallback: cache
|