2026-05-18 v4 · 數據來自 cvat2 #12 全 151 task scan(不是舊 manifest snapshot)
| 項目 | 數量 |
|---|---|
| Total task | 151 |
| Train subset | 50 task |
| Validation subset | 34 task |
| Test subset | 46 task |
| (empty) subset 未分 split | 21 task |
aluminized_apron=yes 的 polygon — 標完但被忽略。這些 task 必須分到 Train/Val/Test 才會被使用。
| attr | Train yes | Val yes | Test yes | (empty) yes | TOTAL yes |
|---|---|---|---|---|---|
hard_hat | 16,508 | 2,061 | 2,116 | 113 | 20,798 |
no_head_protection | 16,075 | 1,742 | 1,833 | 0 | 19,650 |
no_sleeves | 15,577 | 1,647 | 1,806 | 0 | 19,030 |
no_protective_clothing | 15,378 | 1,607 | 1,789 | 0 | 18,774 |
no_gloves | 15,085 | 1,578 | 1,738 | 0 | 18,401 |
no_safety_shoes | 14,756 | 1,534 | 1,707 | 0 | 17,997 |
harness | 6,255 | 771 | 831 | 0 | 7,857 |
safety_vest | 3,893 | 516 | 472 | 0 | 4,881 |
heartbeat | 880 | 120 | 148 | 0 | 1,148 |
aluminized_apron | 277 | 0 | 0 | 293 | 570 |
cleanroom_suit | 389 | 45 | 51 | 0 | 485 |
safety_shoes | 440 | 35 | 45 | 0 | 520 |
cotton_gloves | 214 | 23 | 171 | 0 | 408 |
fall | 208 | 159 | 25 | 0 | 392 |
splash_proof_gown | 302 | 33 | 31 | 0 | 366 |
full_face_mask | 215 | 29 | 25 | 0 | 269 |
face_mask | 125 | 8 | 49 | 0 | 182 |
safety_glasses | 138 | 9 | 10 | 0 | 157 |
rubber_gloves | 109 | 13 | 14 | 0 | 136 |
sleeves | 57 | 5 | 5 | 0 | 67 |
hair_cover | 29 | 3 | 3 | 0 | 35 |
helmet_goggles | 13 | 1 | 1 | 0 | 15 |
紅底 = 該 split 個位數,數據統計上不穩。橘底 = TOTAL < 600,模型學不夠。綠底 = 數據夠用。
aluminized_apron — 不是缺資料,是 split + manifest 問題真實情況:之前報告寫「0 yes 完全缺資料」是錯的。cvat2 #12 上實際有 2 個 task 標好 570 yes:
標記師該做的:
(empty) 切到 Test(這樣模型評估時才有 aluminized_apron test 樣本可看)aluminized_apron attr(不要留 unknown),補 Val / Test split工程師該做的(標記師不必管):重 build crops manifest 把 #2960 / #2959 納入訓練。
(empty) subset task 全部要分 splitcvat2 #12 內 21 個 task 沒有 subset,這些 task 內的所有標注 對訓練/評估完全無效。標記師需要逐個 task:
aluminized_apron yes 標的 task 優先進 Test(因 Val/Test 全 0)下面 7 個 attr 在 cvat2 真實場域標注 < 600,模型對「真實工廠的這些 attr」訓練不夠:
| attr | Train | Val | Test | TOTAL | 怎麼補 |
|---|---|---|---|---|---|
helmet_goggles 護目鏡帽 | 13 | 1 | 1 | 15 | 太少不可信,整體補 +200 yes |
hair_cover 髮網 | 29 | 3 | 3 | 35 | 食品廠 / 無塵室 / 醫療場景,+200 yes |
sleeves 長袖 | 57 | 5 | 5 | 67 | 實驗室 / 食品廠,+200 yes |
rubber_gloves 橡膠手套 | 109 | 13 | 14 | 136 | 化工 / 醫療場域真實工人,+400 yes |
safety_glasses 護目鏡 | 138 | 9 | 10 | 157 | 多顏色 / 多款式,+400 yes |
face_mask 口罩 | 125 | 8 | 49 | 182 | 真實工廠(非醫療),+400 yes |
full_face_mask 全面罩 | 215 | 29 | 25 | 269 | +200 yes |
| attr | TOTAL yes | 狀態 | 怎麼補 |
|---|---|---|---|
fall | 392 | 夠用但 Test 25 太少 | +50 yes 給 test |
splash_proof_gown | 366 | 夠用 | 多樣式(補不同顏色 / 廠商)+ 200 yes |
cotton_gloves | 408 | 夠用但模型 R@P95 卡 13% → 需 hard negative | +400 hard-neg(灰裸手 / 灰塑膠手套) |
cleanroom_suit | 485 | 夠用 | 多場域(半導體不同廠)+ 300 yes |
safety_shoes | 520 | 夠用但 Val/Test 各 35/45 不足 | +200 yes 多顏色 + Val/Test 切分 |
heartbeat | 1148 | 數量夠 | 不必補 |
下面這些 attr 的 cvat2 yes 數量 > 4,000,標記師不必再標這幾個:
| attr | TOTAL yes |
|---|---|
hard_hat | 20,798 |
no_head_protection | 19,650 |
no_sleeves | 19,030 |
no_protective_clothing | 18,774 |
no_gloves | 18,401 |
no_safety_shoes | 17,997 |
harness | 7,857 |
safety_vest | 4,881 |
| 步驟 | 動作 | 目標 |
|---|---|---|
| 1 | 把 21 個 (empty) subset task 分到 Train/Val/Test | 解鎖已標好但浪費的 task |
| 2 | task #2959 切到 Test | aluminized_apron 終於有 Test 樣本 |
| 3 | P1 七個 attr 補 yes(按上表 quota) | 真實場域樣本到位 |
| 4 | 未來新建 raicvat task 時主動標 22 個 attr | 避免又是 partial-label |
| 5 | cotton_gloves hard negative 補強 | 降 FP,解開 R@P95 卡住 |
之前報告數字來自「模型訓練 manifest」(crops_v515) — 那是訓練時的 snapshot。snapshot build 後標記師又補了 #2959/#2960 兩個 task 共 570 yes,但 manifest 沒重 build,所以模型「不知道」這些 yes 存在。直接從 cvat2 看才是真實狀況。
cvat2 #12 上幾乎每個 task 都會標 no_safety_shoes(每個工人都有腳),所以實際很多。之前報告的「231 yes」是 crops_v515 manifest 內「同時也是 raicvat 真實 source 的 person crop」— 那是子集。cvat2 直接 scan 數字才是該 attr 真實的訓練樣本量。
原則:
不確定的請 ping 工程師判斷。
每補 200-500 張工程師會重訓並對比補資料前 / 後,1-2 週發新版報告。直接從報告看該 attr 的「抓到率」變化。
不會。工程師已確認訓練時 unknown 完全 skip,不參考、不扣分。所以唯一需要做的是把 unknown 變成 yes 或 no,模型才學得到。
直接留 unknown,ping 工程師確認標準。留 unknown 不會扣分,但標錯會扣分。
如果你想嘗試用 AI 合成補某個 attr(例如 aluminized_apron 真實樣本難取得時)— 以下是 5090-2 上的合成環境位置 + 給你的 Claude / 工程助手的操作 playbook
5090-2 SSH access 需要工程師私下提供,請 ping 工程師取得:
~/.ssh/authorized_keys請連進 5090-2,讀 /home/ubuntu/runs_new/apron_synth_v515/V2_FAIL_ANALYSIS.md 和 V2_RESEARCH_REPORT.md,理解之前 2 輪失敗的原因,然後幫我跑一輪新合成(用我準備的 reference set)。
| 路徑 | 內容 |
|---|---|
~/runs_new/apron_synth_v515/ | v1 完整合成資料 + 報告 + 6 個版本 script (v2-v7) |
~/runs_new/apron_synth_v515/scripts_v2/ | v2 完整 pipeline(p1a-p5 共 11 個 script,可參照修改) |
~/runs_new/apron_synth_v515/prod/ | v1 量產 43 張(4.7% 成功,當 baseline 對照) |
~/runs_new/apron_synth_v515/V2_FAIL_ANALYSIS.md | 必讀:v2 為何失敗 + 不要再踩的坑 |
~/runs_new/apron_lora_v1/aluminized_apron_v515/ | v1 LoRA weights (89 MB, trigger token alumap) |
~/runs_new/apron_lora_v2/aluminized_apron_v2/ | v2 LoRA weights (89 MB, trigger token silverbib) |
~/hf_cache/ | 144 GB:SDXL inpaint / ControlNet OpenPose / IP-Adapter / Qwen2.5-VL 都已下載 |
5090-2 上有現成 tmux session 可重用,不要新開:
| session | 用途 | 怎麼用 |
|---|---|---|
apron_research | 之前 v1/v2/SOTA 都在這跑,現 idle | tmux attach -t apron_research → /clear → 部署新 brief |
apron_v2 | v2 訓練專用 session | 備用,預設用上面那個 |
mf-3dgen / mf-web | ❌ 別人的 (mf project) | 不要動 |
| 項目 | 狀態 | 處置 |
|---|---|---|
| Disk free | 7.6 GB / 937 GB (100% used) | 跑新合成前先請工程師清 hf_cache(不要自己砍) |
| GPU | 2× RTX 5090 (31 GB each) | GPU 0 上 ppe-demo / hunyuan worker 已占 18GB,必須加 enable_model_cpu_offload() |
| cvat2 API | system / 91QeHAkke4Xa, project 12 | 合成完上 subset=AI 給標記師 audit,不要進 Train/Val/Test |
cat ~/runs_new/apron_synth_v515/V2_FAIL_ANALYSIS.md
cat ~/runs_new/apron_synth_v515/V2_RESEARCH_REPORT.md
理解:(1) garment_set 為何要嚴格清乾淨 (2) SDXL inpaint prior 為何偏 hooded coverall (3) 為何 CLIP eval 失效
5090-2:~/runs_new/apron_synth_v515/garment_set_v3_human/cd ~/runs_new/apron_synth_v515/scripts_v2
# 修改 p2a_caption.py 指向 garment_set_v3_human/
# 修改 p2b_train_lora.py output 指向 ~/runs_new/apron_lora_v3/
python3 p2a_caption.py
python3 p2b_train_lora.py # ~13 min on RTX 5090
# 參考 ~/runs_new/apron_synth_v515/prod/ 怎麼跑 v1
# 跑 20-50 張 → 上傳 cvat2 #12 subset=AI 命名 AI_v3_human_ref_<ts>
# 標記師逐張審 → 算成功率
# 成功率 < 50% → 停止,回 Step 2 改 reference set
AI_ prefix + subset=AI(與真實標分開)apron_lora_v3