| # Error Analysis 2026-05-24 |
|
|
| 本文档汇总 A official、B full、B-lite 和 B old + `occlusion_only` 的同口径逐图错误分析。 |
| 当前目标是先判断语义信息在什么场景帮助主任务、在什么场景伤害主任务,再决定是否继续训练新模型。 |
|
|
| ## 输入运行 |
|
|
| - `A_official`: `/home/yyao/lsy/agent-base-linux-codex/runs/validation_eval/qwen3_5_35b_a3b_exp_a_official` |
| - `B_full_rerun`: `/home/yyao/lsy/agent-base-linux-codex/runs/validation_eval/qwen3_5_35b_a3b_exp_b_attr_rerun_20260501_174649_max12000_stream` |
| - `B_old_occlusion_only`: `/home/yyao/lsy/agent-base-linux-codex/runs/validation_eval/qwen3_5_35b_a3b_ablation_occlusion_only_tp4_20260501_2058` |
| - `B_lite_dataset`: `/home/yyao/lsy/agent-base-linux-codex/runs/validation_eval/qwen3_5_35b_a3b_exp_b_lite_v0_20260504_2206_dataset` |
|
|
| ## 总体指标 |
|
|
| | Run | Precision | Recall | F1 | Avg IoU | Maturity Acc | Occlusion Acc | Pred | Matched | Risk Cases | Mean Risk | |
| |---|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:| |
| | A_official | 0.9145 | 0.8857 | 0.8999 | 0.9074 | 0.9408 | 0.0 | 1076 | 984 | 20 | 1.5859 | |
| | B_full_rerun | 0.8668 | 0.9253 | 0.8951 | 0.9033 | 0.8998 | 0.7463 | 1186 | 1028 | 20 | 1.8125 | |
| | B_old_occlusion_only | 0.9046 | 0.9046 | 0.9046 | 0.906 | 0.9107 | 0.6975 | 1111 | 1005 | 20 | 1.5547 | |
| | B_lite_dataset | 0.876 | 0.9091 | 0.8922 | 0.904 | 0.8909 | 0.7351 | 1153 | 1010 | 20 | 1.875 | |
|
|
| ## 初步结论 |
|
|
| - 当前 F1 最好的口径是 `B_old_occlusion_only`,F1 为 `0.9046`。 |
| - 当前遮挡属性最好的口径是 `B_full_rerun`,occlusion acc 为 `0.7463`。 |
| - 当前成熟度准确率最高的是 `A_official`,maturity acc 为 `0.9408`。 |
| - B-lite 能学习遮挡属性,但没有超过 A official 的检测和成熟度基线,说明语义信息不宜继续以长文本输出形式直接压到检测任务上。 |
| - 下一阶段应优先把语义用于后验验证、风险筛选和伪标签过滤。 |
|
|
| ## 错误标签分布 |
|
|
| | Error Tag | Image Count | |
| |---|---:| |
| | `bbox_alignment_risk` | 14 | |
| | `dense_scene_sensitive` | 36 | |
| | `maturity_error_risk` | 61 | |
| | `occlusion_error_risk` | 77 | |
| | `possible_false_positive` | 71 | |
| | `possible_missed_detection` | 67 | |
|
|
| ## Risk Case 重叠 |
|
|
| | Run | Risk Case Count | |
| |---|---:| |
| | `A_official` | 20 | |
| | `B_full_rerun` | 20 | |
| | `B_old_occlusion_only` | 20 | |
| | `B_lite_dataset` | 20 | |
|
|
| Risk case 被多个实验同时命中的分布: |
|
|
| | 命中实验数 | 图像数 | |
| |---:|---:| |
| | 1 | 10 | |
| | 2 | 12 | |
| | 3 | 10 | |
| | 4 | 4 | |
|
|
| ## 最高风险样本 |
|
|
| | Image Key | Max Risk | Risk Runs | Error Tags | Best F1 | Worst F1 | |
| |---|---:|---:|---|---|---| |
| | `IMG_20191215_112843_jpg.rf.0e020631b2ff9bf178eefcc9e309b875_orig.jpg` | 8 | 4 | `bbox_alignment_risk`, `dense_scene_sensitive`, `maturity_error_risk`, `occlusion_error_risk`, `possible_false_positive`, `possible_missed_detection` | B_full_rerun | B_lite_dataset | |
| | `IMG_1187_jpg.rf.3d3e2bc9c31942b052ed4cb4889546cd_orig.jpg` | 7 | 4 | `bbox_alignment_risk`, `dense_scene_sensitive`, `possible_false_positive`, `possible_missed_detection` | B_old_occlusion_only | A_official | |
| | `IMG_1242_jpg.rf.26200c8f2c2a985094bb5d3c03b5e754_orig.jpg` | 7 | 4 | `dense_scene_sensitive`, `maturity_error_risk`, `occlusion_error_risk`, `possible_false_positive`, `possible_missed_detection` | A_official | B_lite_dataset | |
| | `IMG_20191215_112604_jpg.rf.818f95a56efa2cb722edacc3af26c09d_orig.jpg` | 7 | 4 | `bbox_alignment_risk`, `dense_scene_sensitive`, `maturity_error_risk`, `occlusion_error_risk`, `possible_false_positive`, `possible_missed_detection` | A_official | B_full_rerun | |
| | `IMG_20191215_112836_jpg.rf.8a499c79911328bb6879fa58c10768ed_orig.jpg` | 7 | 4 | `dense_scene_sensitive`, `possible_false_positive`, `possible_missed_detection` | B_full_rerun | A_official | |
| | `IMG_20191215_112909.jpg` | 7 | 4 | `dense_scene_sensitive`, `occlusion_error_risk`, `possible_false_positive`, `possible_missed_detection` | A_official | B_old_occlusion_only | |
| | `IMG20211230170257_00_jpg.rf.9c0fcbc6329d4bc4bb29a19b21ffc3d5.jpg` | 7 | 3 | `maturity_error_risk`, `possible_false_positive`, `possible_missed_detection` | B_lite_dataset | B_full_rerun | |
| | `IMG20211226161001_00_jpg.rf.c7c10a7d94dd5b7df7bd0950509d592d.jpg` | 6 | 4 | `maturity_error_risk`, `occlusion_error_risk`, `possible_false_positive`, `possible_missed_detection` | A_official | B_old_occlusion_only | |
| | `IMG20211226162202_00_jpg.rf.9aa4e47e9ee261e02716a19550c8a344.jpg` | 6 | 4 | `occlusion_error_risk`, `possible_false_positive`, `possible_missed_detection` | A_official | B_full_rerun | |
| | `IMG_20191215_112617_jpg.rf.b1a388efd223e03fec31d3df9f5f437b.jpg` | 6 | 4 | `possible_false_positive`, `possible_missed_detection` | B_full_rerun | A_official | |
| | `IMG20211226160908_00_jpg.rf.8c697b77eb53b1c176486e3a1fb26f14.jpg` | 6 | 3 | `bbox_alignment_risk`, `occlusion_error_risk`, `possible_false_positive`, `possible_missed_detection` | B_full_rerun | B_lite_dataset | |
| | `IMG20211226163021_00_jpg.rf.7b50dd7bb9ffd12705c288a75a722823.jpg` | 5 | 4 | `maturity_error_risk`, `occlusion_error_risk`, `possible_false_positive`, `possible_missed_detection` | A_official | B_full_rerun | |
| | `IMG20211230174505_00_jpg.rf.96444d7eb331967fac99820ddce4fbaa.jpg` | 5 | 4 | `dense_scene_sensitive`, `maturity_error_risk`, `occlusion_error_risk`, `possible_false_positive`, `possible_missed_detection` | B_full_rerun | B_old_occlusion_only | |
| | `IMG_1130_jpg.rf.e742c27f51bcd188352761cc173d0b8a_orig.jpg` | 5 | 4 | `dense_scene_sensitive`, `maturity_error_risk`, `possible_false_positive`, `possible_missed_detection` | B_lite_dataset | A_official | |
| | `IMG_1139_jpg.rf.8757303148dc7b66106fd3e641459fd8_orig.jpg` | 5 | 4 | `bbox_alignment_risk`, `dense_scene_sensitive`, `occlusion_error_risk`, `possible_false_positive`, `possible_missed_detection` | B_full_rerun | B_old_occlusion_only | |
| | `IMG_20191215_111017_jpg.rf.83704e10824aba4c89b1854ea5f73fd3.jpg` | 5 | 4 | `dense_scene_sensitive`, `maturity_error_risk`, `occlusion_error_risk`, `possible_false_positive`, `possible_missed_detection` | B_full_rerun | A_official | |
| | `IMG_20191215_111513_jpg.rf.f2e996d41716becea631c4d684f7dd7b.jpg` | 5 | 4 | `maturity_error_risk`, `occlusion_error_risk`, `possible_false_positive`, `possible_missed_detection` | A_official | B_full_rerun | |
| | `IMG_20191215_111949_jpg.rf.87f750340c92125f381ac94487d8a9ff.jpg` | 5 | 4 | `bbox_alignment_risk`, `dense_scene_sensitive`, `occlusion_error_risk`, `possible_false_positive`, `possible_missed_detection` | B_full_rerun | A_official | |
| | `IMG_20191215_112325.jpg` | 5 | 4 | `dense_scene_sensitive`, `maturity_error_risk`, `occlusion_error_risk`, `possible_false_positive`, `possible_missed_detection` | A_official | B_old_occlusion_only | |
| | `IMG_20191215_112339_jpg.rf.f2737ec8f97d2af58f42249a0b6a4f73_orig.jpg` | 5 | 4 | `dense_scene_sensitive`, `occlusion_error_risk`, `possible_false_positive`, `possible_missed_detection` | A_official | B_lite_dataset | |
|
|
| ## 人工复核图 |
|
|
| 已导出最高风险 Top 30 样本的五联对比图: |
|
|
| - 输出目录:`runs/analysis/validation_error_analysis_20260524/visual_review_images/` |
| - 高清 300 DPI 输出目录:`runs/analysis/validation_error_analysis_20260524/visual_review_images_300dpi/` |
| - 说明文件:`runs/analysis/validation_error_analysis_20260524/visual_review_images/README.md` |
| - manifest:`runs/analysis/validation_error_analysis_20260524/visual_review_images/manifest.jsonl` |
|
|
| 每张图包含: |
|
|
| 1. GT。 |
| 2. A official。 |
| 3. B full rerun。 |
| 4. B old + `occlusion_only`。 |
| 5. B-lite dataset。 |
|
|
| 建议优先查看前 10 张,它们在多个实验中都被标为高风险,适合判断密集目标、误检、漏检和成熟度错误的主要来源。 |
|
|
| ## 人工复核结果 |
|
|
| 人工复核记录见: |
|
|
| - `docs/reviews/people/validation_error_analysis_20260524.md` |
| - `docs/reviews/people/validation_error_analysis_20260524_summary.md` |
|
|
| 人工复核前 10 张最高风险图后,当前结论需要修正: |
|
|
| 1. 多数高风险样本中的 GT 存在明显漏标,尤其是密集、遮挡和小目标番茄。 |
| 2. 模型多出来的框基本没有明显多框或重复框问题,很多更像是真实番茄候选。 |
| 3. B-lite 在前 5 张高风险密集图中最接近人工判断。 |
| 4. A official 在部分图像上仍更稳,尤其 006、007、008、010。 |
| 5. 当前自动评估中的 false positive 可能包含大量 GT 漏标候选,因此 precision 可能被低估。 |
|
|
| 因此,下一步应优先推进漏标候选挖掘和 Gold v1 重审,而不是直接把模型多框解释为误检。 |
|
|
| ## 漏标候选挖掘结果 |
|
|
| 已基于 A official、B full rerun、B old + `occlusion_only`、B-lite dataset 的预测结果生成漏标候选: |
|
|
| - 脚本:`pipelines/mine_missing_label_candidates.py` |
| - 文档:`docs/analysis/missing_label_candidates_20260524.md` |
| - 输出目录:`runs/analysis/missing_label_candidates_20260524/` |
|
|
| 结果摘要: |
|
|
| - 原始 unmatched prediction:`449` |
| - 聚类后候选:`227` |
| - 含候选图像数:`64` |
| - 四模型共同支持候选:`22` |
| - 三模型共同支持候选:`46` |
|
|
| ## 下一步 |
|
|
| 1. 人工优先查看 `runs/analysis/missing_label_candidates_20260524/preview_images/` 中 support=4 和 support=3 的候选。 |
| 2. 建立 Gold v1 Review 层,保留 Gold v1 不变,避免破坏数据可追溯性。 |
| 3. 用 `SemanticVerifier` 对候选框做番茄性、成熟度和遮挡验证。 |
| 4. 基于 accepted 候选构建 Gold v2 Candidate。 |
| 5. 在 review-adjusted GT 形成前,不建议继续训练新的长文本属性增强模型。 |
|
|