diff --git a/README.md b/README.md index a9ba194..2838d23 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ python 05_prepare_ppe_shoe_subset.py --mode roi-source 2. Open Images 重新下载,并保留 `Person + shoe` ```bash -python 01_download_dataset.py --source openimages --mode roi-source --max-samples 8000 +python 01_download_dataset.py --source openimages --mode roi-source --max-samples 100000 ``` 默认输出目录: @@ -78,7 +78,7 @@ python 09_build_roi_shoe_dataset.py --clean ```bash python 05_prepare_ppe_shoe_subset.py --mode roi-source -python 01_download_dataset.py --source openimages --mode roi-source --max-samples 8000 +python 01_download_dataset.py --source openimages --mode roi-source --max-samples 100000 ``` 2. 构建 ROI 化训练集 @@ -103,6 +103,60 @@ python 09_build_roi_shoe_dataset.py --clean - 新模型会写到新的项目目录,不覆盖之前已有模型 - 如果 `train_roi` 已存在,Ultralytics 会自动递增运行目录名 +## 当前实验结论 + +截至目前,项目内已经验证了几条比较明确的结论: + +- 只看公开验证集 `mAP` 不够,必须同时看真实 `roi-shoes` 业务图的框位置和召回情况 +- 训练输入做成“人体下部脚部 ROI”是正确方向,整体上明显优于早期“鞋子单类紧框”训练 +- 扩大 Open Images 源图数量是有价值的,但必须配合 ROI 质量过滤,否则数据越多,噪声也越多 +- `100k filtered` 这一条线已经比 `20k filtered` 更有潜力,尤其对“大 ROI、细节丰富鞋面”的适应性更好 + +当前几版模型的经验判断是: + +- 旧主力模型:对“小目标、模糊目标、简单轮廓”更稳 +- `100k filtered` 系列:对“大一点、细节更丰富、纹理更复杂”的鞋更好 +- 在 `100k filtered` 的已跑版本里,`100 epochs` 是当前最均衡、最值得继续迭代的一版 + +## 后续训练方向 + +后续训练主线建议固定为: + +1. 以 `100k filtered` 训练集为基础继续迭代 +2. 以 `100 epochs` 版本权重作为下一轮微调底座 +3. 补充一批真实线上风格的脚部 ROI 标注图,做小规模业务微调 +4. 最终以真实 ROI 评测结果为主,而不是只看公开验证集 `mAP` + +推荐优先补充的真实 ROI 图类型: + +- 小而模糊、边缘不清、低对比度的鞋 +- 大 ROI、鞋面细节丰富、纹理复杂的鞋 +- 单鞋与双鞋混合出现、地面背景复杂的脚部 ROI + +建议的后续流程: + +```bash +# 1. 继续维护 100k filtered 公开 ROI 数据底座 +python 05_prepare_ppe_shoe_subset.py --mode roi-source +python 01_download_dataset.py --source openimages --mode roi-source --max-samples 100000 +python 09_build_roi_shoe_dataset.py --clean + +# 2. 使用 100k filtered 数据训练基础 ROI 模型 +12_train_roi_yolov8s_640.bat + +# 3. 在补充真实 ROI 标注后,再做业务微调 +# 建议直接从 100k-100 这一版权重继续训练 +``` + +当前项目建议保留两套判断标准: + +- 公开验证集指标: + - 观察 `precision / recall / mAP50 / mAP50-95` +- 真实业务 ROI 效果: + - 看是否漏检 + - 看检测框是否真正落在鞋区域 + - 看不同目标类型下的稳定性,而不是只看总平均数 + ## 方案:640x640 单模型(部署时用2窗口) **训练阶段**: