胃肠镜清洗数据集-动作混合-auto
收藏资源简介:
# cleansight-ActionMixed-auto CleanSight 内镜清洗**时序动作训练数据集**——自动标注流水线产物(YOLO 自动检测框 + Label Studio 人工动作标签合并)。 > **当前版本 v3**(2026-08-28 重建;2026-09-05 审核更新 + 取消 test)· catalog `temporal.actionmixed-auto-v3` · revision `7b039550` > 源:Label Studio project-16 导出 `project-16-at-2026-09-05-07-46-8edb5c66.json`(18 个 2026-08 新录视频;task#203 未审暂缓不入库) ## 一、这个数据集长什么样(重要:无图片) 本数据集**不含图片**。时序模型(GRU / MS-TCN / Transformer)的输入是从检测框坐标计算的 40 维特征(`actionmixed-bbox-8cls-v1`:8 检测类 × 5 项统计),全程不需要像素: ``` <repo 根>/ ├── labels/ │ ├── data.yaml # 动作类别表(6 类,id 0-5) │ └── <split>/<视频名>.mp4.txt # 每行 "frame_id action_id" │ # frame_id: 1-based 真实视频帧号,按 ~7.5fps 均匀采样 │ # 未标注区间 = idle ├── frames/ │ ├── data.yaml # 检测类别表(8 类) │ └── <split>/<视频名>.mp4-<帧号:06d>.txt # 每行 "class_id cx cy w h"(归一化 YOLO 格式) └── task_ids.yaml # LS task id 溯源:split → 视频 → project-16 task id ``` ### 类别表 动作(6, `labels/data.yaml`): | id | 动作 | 备注 | |---|---|---| | 0 | idle | 未标注区间默认 | | 1 | water_injection | **原 air_injection,project-16 起随 LS 更名,id 位置不变** | | 2 | flush | | | 3 | long_brush_insert | | | 4 | long_brush_withdraw | | | 5 | short_brush_cleaning | | 检测(8, `frames/data.yaml`):hand / scope_control_body / scope_mid_section / scope_distal_end / syringe / air_gun / short_brush / brush_tip_out。检测器为 yolo11s-g1-v1 + yolo11s-g2-v1。 ## 二、数据集划分 | split | 视频数 | 标签帧 | idle | water | flush | lb_insert | lb_withdraw | sb_cleaning | LS task id | |---|---|---|---|---|---|---|---|---|---| | train | 14 | 9,575 | 6,274 | 194 | 893 | 1,289 | 437 | 488 | 见 task_ids.yaml | | val | 4 | 3,384 | 2,308 | 17 | 183 | 495 | 206 | 175 | 见 task_ids.yaml | > **test 集已取消(2026-09-05)**:原 test 锚定视频 #195(5b181b9b)并入 train、#199(1b2c95ff)并入 val。取消前 manifest(train 13 / val 3 / test 2)与 v3 首版指标不可比。 已知数据边界(如实记录): - 无独立 test 集;重训前需将实验配置 `split_eval` 改为 `val`,评测报告注明口径变更; - water_injection 全库仅 2 个视频(#201 共 194 帧在 train,#207 共 17 帧在 val); - 同一视频不跨 split;帧泄漏策略 `frame` 由 `tools/validate_testsets.py` 校验。 ## 三、使用方法 ### 下载 ```bash # 方式 A:Cleansight_models 仓库内一键下载到 datasets/ 正确位置(需 MODELSCOPE_TOKEN) python -m framework.cleansight_eval.cli.dataset --preset actionmixed-auto # 方式 B:直接 git clone(数据本体为小文本文件,无需 LFS) git clone https://www.modelscope.cn/datasets/lhh010/cleansight-ActionMixed-auto.git datasets/cleansight-ActionMixed-auto ``` ### 在 Cleansight_models 中训练/评测 数据集由 `framework/testsets.yaml` 的 `temporal.actionmixed-auto-v3` 登记(身份/revision/manifests 以此为准),落盘位置 `datasets/cleansight-ActionMixed-auto`。 ```bash # 校验数据就绪与身份一致 python tools/validate_testsets.py --catalog framework/testsets.yaml --json # 训练(配置已指向 v3) python -m framework.cleansight_eval.cli.train --model gru --config framework/experiments/gru-actionmixed-auto.yaml ``` ## 四、构建流水线(复现/扩量) ```bash # 1. 检测(源视频 + yolo11 权重) python -m framework.cleansight_eval.cli.annotate run --videos <视频目录> \ --config framework/experiments/auto-annotate-yolo11.yaml --frame-stride 4 # 2. 合并人工动作标签(LS project-16 导出) python -m framework.cleansight_eval.cli.annotate convert \ --annotations outputs/annotations-yolo11 \ --labels-export <project-16 导出.json> \ --out datasets/cleansight-ActionMixed-auto --split train # 3. 重划 split 后:更新 benchmark/manifests/actionmixed-auto/{train,val}.txt # → 重算 revision(剩余 split manifest 拼接 sha256,testsets.yaml) → validate 全绿 → git push 本仓库 ``` 标签名随 LS 同步:LS 改名后需同步 `_constants.py::ACTION_CLASSES` 并重建(action id 位置保持不变)。 ## 五、版本历史 | 版本 | 日期 | 数据源 | 检测源 | 说明 | |---|---|---|---|---| | v1 | 2026-08-17 | project-10,11 视频 | legacy yolo v3 | 首版,short_brush/brush_tip_out 恒零 | | v2 | 2026-08-27 | project-10,26 视频 | yolo11s-g1/g2-v1 | 类别均衡重划;备份于本地 -v2-backup | | **v3** | **2026-08-28** | **project-16,18 视频** | yolo11s-g1/g2-v1 | **标签随 LS 同步(air→water);test 锚定 task#195/#199;附 task_ids 溯源** | | v3(09-05) | 2026-09-05 | project-16 导出 0905(19 task) | 同上 | task#196/197/198/208/209/210 审核标注更新;val 重划(#202→train,#205→val);取消 test(#195→train,#199→val);revision 7b039550 | 各版本指标互不可比。维护规范:`Cleansight_models/docs/DATASET_BUILDING_GUIDE.md` 与 `docs/TEMPORAL_DATASET_TRANSFORMATION_PLAN.md`。



