| name | yolo-camera-skill |
| description | 从摄像头采集素材,自动预标注、风险评分、人工复核、训练 YOLO,并输出报表和实时检测结果。适合固定场景下的目标检测闭环。 |
YOLO Camera Skill
目标
把“采集 → 预标注 → 风险评分 → 复核 → 训练 → 报表 → 实时检测”做成一个可控、可拒识、可回流的闭环,而不是把模型输出直接当最终真值。
适用场景
- 用户手边有实物,希望通过摄像头快速训练一个识别模型
- 用户希望用手机或电脑摄像头采集素材并快速迭代
- 用户需要一个从采集到上线的完整检测闭环
设计原则
- 候选生成高召回,真值生成高保守:
YOLO / FastSAM / qwen_label.py 只负责候选,不直接写训练集。
- 不确定就拒识:低置信目标必须进入复核队列,禁止强行标注。
- 先规则后训练:所有自动标注都要经过质量校验、风险评分和类别策略。
- 人工只看高价值样本:只让人处理低置信、新分布、冲突样本。
- 持续回流:复核结果、误检、漏检进入难例集,周期性再训练。
推荐工作流(五层闭环)
1)采集层
运行 capture_from_camera.py
- 录制视频或直接抽帧
- 支持可视化预览,方便确认采集状态
- 输出
captured_frames/ 或视频文件,供后续处理
2)候选生成层
运行 qwen_label.py
- 对图片进行自动预标注
- 生成候选框、来源、初始置信度
- 对小目标、复杂场景可配合分块或多策略融合
3)质量判定与风险路由层
运行 risk_scoring.py 或 qwen_label.py 的风险评分阶段
- 类别合法性、边界合法性、面积合法性、重叠合法性校验
- 生成风险分数,按阈值分为:
auto_accept 自动通过
needs_review 人工复核
reject 拒识
- 支持类别级阈值配置,避免一刀切
4)训练与回流层
运行 prepare_data.py + train.py
prepare_data.py:将标注结果转换为 YOLO 数据格式
train.py:仅使用通过校验的高质量样本训练 YOLO
- 复核修改后的样本自动回流到训练集/难例集
- 输出可复现的数据集结构和
best.pt
5)检测与报表层
运行 live_detect.py + report.py
live_detect.py:实时检测并记录统计日志,可选收集难例
report.py:汇总统计、生成曲线图和报表
- 帮助你判断模型是否真的在变好
推荐目录结构
yolo-camera-skill/
├── capture_from_camera.py
├── qwen_label.py
├── risk_scoring.py
├── hard_case_collect.py
├── prepare_data.py
├── train.py
├── live_detect.py
├── report.py
├── pipeline.py
├── configs.yaml
├── data/
├── runs/
└── README.md
配置建议
configs.yaml
统一管理类别、阈值、风险权重、采集参数、训练参数和检测参数。
示例:
auto_accept_threshold: 0.85
review_threshold: 0.55
min_box_area: 32
max_overlap_iou: 0.85
enable_tiling: true
tile_size: 640
tile_overlap: 0.2
自动标注策略
你应该保留的能力
- 预标注候选生成
- 风险评分
- 难例收集
- 类别级阈值
- 人工复核队列
- 报表统计
你应该弱化的能力
- 让模型一次性输出最终真值
- 逐张粗暴复核但不记录日志
- 没有规则直接入库
典型使用方式
一、采集素材
python capture_from_camera.py --mode image --save_interval 10 --output_dir captured_frames
二、完整快速流程
python pipeline.py --mode full_quick
三、检测 + 难例收集
python pipeline.py --mode detect
python live_detect.py --model best_bracelet.pt --collect_hard
四、实时检测
python live_detect.py --model best_bracelet.pt --conf 0.3
python live_detect.py --model best_bracelet.pt --conf 0.3 --collect_hard
工业化落地建议
- 先把类别收紧到少量高频类
- 先做规则和阈值,再优化模型
- 把低置信样本、误检样本、漏检样本单独存档
- 每次训练都记录数据版本和标注版本
- 先提升“脏标剔除率”,再追求覆盖率
前置条件
- Python 3.9+
ultralytics、opencv-python、matplotlib
- 如使用云端预标注,需要配置
DASHSCOPE_API_KEY
说明
这套方案的重点不是把模型当最终真值,而是把它当候选生成器,再由规则和复核保证质量。