partial-label BCE / 20 binary heads / per-attr mask(unknown→mask=0 不算 loss/metric)
v20260430 主改動:在 cvat2 project 5 person label 加入 harness(中油 / 一般工安「全身式安全帶」)attribute,
並用 v20260415 ppe_attr(gx10 訓練的舊版 4-cls model)對所有 raicvat_* 76,184 person crops inference 取得 harness probability,
threshold 0.5 → 寫回 cvat2(PATCH action=update)。
非 raicvat 場景(GUANXI/CPPE-5/R2PPE/SH17)一律 harness=no(這些場景不會有高處作業安全帶)。
資料:cvat2 project 5(27 tasks, 8 sources, ~133k crops)+ 18,194 harness=yes / 114,794 harness=no / 763 unknown。
v20260430_mobilenetv3l — 12 版本中 cost-effective 最佳,含完整 20 個 PPE attribute 識別能力(含 harness)。
checkpoint: 5090-2:~/factory_ppe/runs/factory_ppe_v20260430_mobilenetv3l/best.pt
mobilenetv3_large_100.ra_in1k (4.2M params)nn.Linear(1280, 20) + 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 |
final epoch val_AP per attribute:
| attribute | v429 (19-attr) | v430 (20-attr) | delta |
|---|---|---|---|
| hard_hat 安全帽 | 0.9913 | 0.9943 | +0.0030 |
| no_head_protection 無護頭 | 0.9960 | 0.9971 | +0.0012 |
| full_face_mask 全面罩 | 0.9972 | 0.9980 | +0.0008 |
| face_mask 口罩 | 0.9914 | 0.9927 | +0.0013 |
| no_gloves 無手套 | 0.9901 | 0.9912 | +0.0011 |
| cotton_gloves 棉手套 | 0.8143 | 0.8054 | -0.0089 |
| rubber_gloves 橡膠手套 | 1.0000 | 1.0000 | -0.0000 |
| no_protective_clothing 無防護衣 | 0.9999 | 0.9999 | +0.0000 |
| cleanroom_suit 無塵衣 | 0.9996 | 0.9998 | +0.0002 |
| splash_proof_gown 防潑罩袍 | 1.0000 | 1.0000 | +0.0000 |
| safety_vest 反光背心 | 0.9768 | 0.9772 | +0.0004 |
| safety_shoes 安全鞋 | 0.8169 | 0.8305 | +0.0136 |
| no_safety_shoes 無安全鞋 | 0.9891 | 0.9891 | +0.0000 |
| no_sleeves 無絕緣袖 | 0.9997 | 0.9998 | +0.0001 |
| heartbeat 生命徵象器 | 0.9633 | 0.9723 | +0.0090 |
| sleeves 絕緣袖 | 1.0000 | 1.0000 | +0.0000 |
| safety_glasses 護目鏡 | 0.8547 | 0.8409 | -0.0137 |
| hair_cover 髮帽 | 1.0000 | 1.0000 | +0.0000 |
| helmet_goggles 頭盔護目 | 1.0000 | 1.0000 | -0.0000 |
| harness ⭐ 安全帶 | —(v429 沒此 attr) | 0.9299 | 新增類 |
test split 跨 8 source ~13k samples:
| attribute | AP | F1 | P | R | thr | valid |
|---|---|---|---|---|---|---|
| hard_hat 安全帽 | 0.996 | 0.981 | 0.975 | 0.986 | 0.42 | 6101 |
| no_head_protection 無護頭 | 0.996 | 0.975 | 0.976 | 0.974 | 0.46 | 6101 |
| full_face_mask 全面罩 | 0.999 | 0.995 | 0.993 | 0.998 | 0.78 | 2626 |
| face_mask 口罩 | 0.998 | 0.976 | 0.974 | 0.977 | 0.37 | 1604 |
| no_gloves 無手套 | 0.999 | 0.988 | 0.986 | 0.990 | 0.59 | 2894 |
| cotton_gloves 棉手套 | 0.881 | 0.808 | 0.724 | 0.913 | 0.77 | 1813 |
| rubber_gloves 橡膠手套 | 1.000 | 0.999 | 0.998 | 1.000 | 0.78 | 2431 |
| no_protective_clothing 無防護衣 | 1.000 | 0.998 | 0.996 | 0.999 | 0.50 | 3405 |
| cleanroom_suit 無塵衣 | 1.000 | 0.994 | 0.994 | 0.994 | 0.59 | 1917 |
| splash_proof_gown 防潑罩袍 | 1.000 | 1.000 | 1.000 | 1.000 | 0.99 | 2322 |
| safety_vest 反光背心 | 0.980 | 0.944 | 0.951 | 0.937 | 0.79 | 5784 |
| safety_shoes 安全鞋 | 0.866 | 0.791 | 0.829 | 0.756 | 0.93 | 1813 |
| no_safety_shoes 無安全鞋 | 1.000 | 0.997 | 0.998 | 0.997 | 0.58 | 1813 |
| no_sleeves 無絕緣袖 | 1.000 | 0.993 | 0.995 | 0.991 | 0.74 | 1813 |
| heartbeat 生命徵象器 | 0.956 | 0.891 | 0.835 | 0.955 | 0.69 | 2662 |
| sleeves 絕緣袖 | 0.967 | 0.909 | 0.833 | 1.000 | 0.02 | 1813 |
| safety_glasses 護目鏡 | 0.996 | 0.979 | 0.981 | 0.976 | 0.75 | 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.78 | 2073 |
| harness 安全帶 | 0.936 | 0.870 | 0.865 | 0.876 | 0.76 | 13231 |
0/20 attribute 在 test 仍無 mask=1 sample
報告生成:2026-04-27|v20260429|v20260428|v20260427|label guide