partial-label BCE / 21 binary heads / per-attr mask(unknown→mask=0 不算 loss/metric)
v20260501 主改動:在 cvat2 project 5 person label 加入 fall(跌倒判定)attribute,並從 raicvat#6 fall dataset(48 tasks 含 MRT/機場/GUANXI 監視器),
並用 v20260415 ppe_attr(gx10 訓練的舊版 4-cls model)對所有 raicvat_* 76,184 person crops inference 取得 harness probability,
threshold 0.5 → 寫回 cvat2(PATCH action=update)。
其他 PPE source(既有 133k shapes)fall=unknown(mask=0 不算 loss)(partial-label 機制讓不相關樣本不影響 fall head 學習)。
資料:cvat2 project 5(30 tasks, 9 sources, ~163k crops)+ fall_p6 31,797 shapes (yes 2,318 / no 29,479)。
v20260430_mobilenetv3l — 12 版本中 cost-effective 最佳,含完整 21 個 PPE/姿態 attribute 識別能力(含 harness + fall)。
checkpoint: 5090-2:~/factory_ppe/runs/factory_ppe_v20260430_mobilenetv3l/best.pt
mobilenetv3_large_100.ra_in1k (4.2M params)nn.Linear(1280, 21) + Dropout(0.3)| version | backbone | data | n_attr | val_mAP | test_mAP | macro_f1 | params | epochs | time |
|---|---|---|---|---|---|---|---|---|---|
| v20260426_mobilenetv3l | MobileNetV3-L | base 6src | 19 | 0.6655 | 0.9850 | 0.9532 | 4.2M | 21 (best=13) | 22min |
| v20260426_efficientnetb0 | EfficientNet-B0 | base 6src | 19 | 0.6512 | 0.9830 | 0.9611 | 4.0M | 33 (best=25) | 37min |
| v20260426_convnexttiny | ConvNeXt-Tiny | base 6src | 19 | 0.6974 | 0.9880 | 0.9605 | 27.9M | 22 (best=16) | 68min |
| v20260427_efficientnetb0_cppe5 | EfficientNet-B0 | +CPPE-5 | 19 | 0.7640 | 0.9829 | 0.9537 | 4.0M | 17 (best=9) | 19min |
| v20260427_convnexttiny_cppe5 | ConvNeXt-Tiny | +CPPE-5 | 19 | 0.7602 | 0.9805 | 0.9421 | 27.9M | 11 (best=5) | 35min |
| v20260427_mobilenetv3l_cppe5 | MobileNetV3-L | +CPPE-5 | 19 | 0.7729 | 0.9788 | 0.9480 | 4.2M | 18 (best=10) | 19min |
| v20260428_convnexttiny | ConvNeXt-Tiny | +R2PPE | 19 | 0.9240 | 0.9925 | 0.9773 | 27.9M | 16 (best=10) | 61min |
| v20260428_mobilenetv3l | MobileNetV3-L | +R2PPE | 19 | 0.9238 | 0.9945 | 0.9770 | 4.2M | 17 (best=9) | 22min |
| v20260429_convnexttiny | ConvNeXt-Tiny | +4-task split | 19 | 0.9702 | 0.9779 | 0.9615 | 27.9M | 24 (best=18) | 86min |
| v20260429_mobilenetv3l | MobileNetV3-L | +4-task split | 19 | 0.9712 | 0.9833 | 0.9650 | 4.2M | 27 (best=19) | 33min |
| v20260430_convnexttiny | ConvNeXt-Tiny | +harness | 20 | 0.9648 | 0.9742 | 0.9462 | 27.9M | 12 (best=6) | 43min |
| v20260430_mobilenetv3l | MobileNetV3-L | +harness | 20 | 0.9701 | 0.9785 | 0.9541 | 4.2M | 32 (best=24) | 39min |
| v20260501_mobilenetv3l ⭐ | MobileNetV3-L | +fall | 21 | 0.9663 | 0.9775 | 0.9535 | 4.2M | 32 (best=24) | 47min |
final epoch val_AP per attribute:
| attribute | v430 (20-attr) | v501 (21-attr) | delta |
|---|---|---|---|
| hard_hat 安全帽 | 0.9933 | 0.9933 | +0.0000 |
| no_head_protection 無護頭 | 0.9968 | 0.9968 | +0.0000 |
| full_face_mask 全面罩 | 0.9983 | 0.9983 | +0.0000 |
| face_mask 口罩 | 0.9917 | 0.9917 | +0.0000 |
| no_gloves 無手套 | 0.9910 | 0.9910 | +0.0000 |
| cotton_gloves 棉手套 | 0.8151 | 0.8151 | +0.0000 |
| rubber_gloves 橡膠手套 | 1.0000 | 1.0000 | +0.0000 |
| no_protective_clothing 無防護衣 | 0.9999 | 0.9999 | +0.0000 |
| cleanroom_suit 無塵衣 | 1.0000 | 1.0000 | +0.0000 |
| splash_proof_gown 防潑罩袍 | 1.0000 | 1.0000 | +0.0000 |
| safety_vest 反光背心 | 0.9759 | 0.9759 | +0.0000 |
| safety_shoes 安全鞋 | 0.8233 | 0.8233 | +0.0000 |
| no_safety_shoes 無安全鞋 | 0.9900 | 0.9900 | +0.0000 |
| no_sleeves 無絕緣袖 | 0.9997 | 0.9997 | +0.0000 |
| heartbeat 生命徵象器 | 0.9669 | 0.9669 | +0.0000 |
| sleeves 絕緣袖 | 1.0000 | 1.0000 | +0.0000 |
| safety_glasses 護目鏡 | 0.8495 | 0.8495 | +0.0000 |
| hair_cover 髮帽 | 1.0000 | 1.0000 | +0.0000 |
| helmet_goggles 頭盔護目 | 1.0000 | 1.0000 | +0.0000 |
| harness 安全帶 | 0.9323 | 0.9323 | +0.0000 |
| fall 跌倒 | 0.9278 | 0.9278 | +0.0000 |
test split 跨 8 source ~13k samples:
| attribute | AP | F1 | P | R | thr | valid |
|---|---|---|---|---|---|---|
| hard_hat 安全帽 | 0.997 | 0.979 | 0.979 | 0.980 | 0.53 | 6101 |
| no_head_protection 無護頭 | 0.996 | 0.974 | 0.977 | 0.972 | 0.54 | 6101 |
| full_face_mask 全面罩 | 1.000 | 0.993 | 0.995 | 0.992 | 0.83 | 2626 |
| face_mask 口罩 | 0.998 | 0.980 | 0.974 | 0.986 | 0.40 | 1604 |
| no_gloves 無手套 | 0.999 | 0.986 | 0.978 | 0.994 | 0.45 | 2894 |
| cotton_gloves 棉手套 | 0.886 | 0.791 | 0.850 | 0.739 | 0.85 | 1813 |
| rubber_gloves 橡膠手套 | 1.000 | 0.998 | 0.995 | 1.000 | 0.48 | 2431 |
| no_protective_clothing 無防護衣 | 0.999 | 0.996 | 0.998 | 0.995 | 0.40 | 3405 |
| cleanroom_suit 無塵衣 | 1.000 | 0.997 | 1.000 | 0.994 | 0.86 | 1917 |
| splash_proof_gown 防潑罩袍 | 1.000 | 1.000 | 1.000 | 1.000 | 0.85 | 2322 |
| safety_vest 反光背心 | 0.979 | 0.947 | 0.946 | 0.948 | 0.54 | 5784 |
| safety_shoes 安全鞋 | 0.834 | 0.784 | 0.702 | 0.889 | 0.92 | 1813 |
| no_safety_shoes 無安全鞋 | 1.000 | 0.998 | 0.996 | 0.999 | 0.26 | 1813 |
| no_sleeves 無絕緣袖 | 1.000 | 0.993 | 0.991 | 0.995 | 0.46 | 1813 |
| heartbeat 生命徵象器 | 0.939 | 0.880 | 0.837 | 0.928 | 0.87 | 2662 |
| sleeves 絕緣袖 | 0.967 | 0.909 | 0.833 | 1.000 | 0.03 | 1813 |
| safety_glasses 護目鏡 | 0.997 | 0.979 | 0.976 | 0.981 | 0.64 | 1500 |
| hair_cover 髮帽 | 1.000 | 1.000 | 1.000 | 1.000 | 1.00 | 1813 |
| helmet_goggles 頭盔護目 | 1.000 | 0.996 | 1.000 | 0.992 | 0.87 | 2073 |
| harness 安全帶 | 0.947 | 0.879 | 0.890 | 0.868 | 0.81 | 13188 |
| fall 跌倒 | 0.990 | 0.964 | 0.953 | 0.976 | 0.87 | 2097 |
0/20 attribute 在 test 仍無 mask=1 sample
報告生成:2026-04-27|v20260429|v20260428|v20260427|label guide