feat: initial HSAP platform
Huaxu Sentinel Active Safety Platform with embedded algorithm code, Docker Compose setup, and vendored dataset scaffolds for clone-and-run. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
207
datasets/dms/manifests/dataset_class_summary.txt
Normal file
207
datasets/dms/manifests/dataset_class_summary.txt
Normal file
@@ -0,0 +1,207 @@
|
||||
|
||||
======================================================================
|
||||
【ddaw_1124】YOLO 检测 path: /home/chengfanglu/DATA/DMS/DATASET/gyp/ddaw_1124
|
||||
======================================================================
|
||||
|
||||
当前划分: train=3824 val=424 test=0 合计=4248
|
||||
类别数(nc): 9 类别ID: [0, 1, 2, 3, 4, 5, 6, 7, 8]
|
||||
|
||||
--- 当前:含该类别的图片数(按 split)---
|
||||
cls train val val% test 合计
|
||||
0 3072 348 10.2% 0 3420
|
||||
1 686 65 8.7% 0 751
|
||||
2 1827 210 10.3% 0 2037
|
||||
3 619 71 10.3% 0 690
|
||||
4 279 29 9.4% 0 308
|
||||
5 881 99 10.1% 0 980
|
||||
6 2415 273 10.2% 0 2688
|
||||
7 659 64 8.9% 0 723
|
||||
8 138 15 9.8% 0 153
|
||||
|
||||
当前 val 占比: min=8.7% max=10.3% 极差=1.7% (目标≈10%)
|
||||
✓ 当前各类 val 比例已较均衡
|
||||
|
||||
--- 分层重分后(模拟, val_ratio=0.1, seed=42) ---
|
||||
train=3823 val=425
|
||||
cls train val val%
|
||||
0 3074 346 10.1%
|
||||
1 674 77 10.3%
|
||||
2 1834 203 10.0%
|
||||
3 620 70 10.1%
|
||||
4 277 31 10.1%
|
||||
5 882 98 10.0%
|
||||
6 2423 265 9.9%
|
||||
7 651 72 10.0%
|
||||
8 138 15 9.8%
|
||||
|
||||
重分后 val 占比: min=9.8% max=10.3% 极差=0.4%
|
||||
✓ 分层后各类 val 比例均衡(极差≤2%)
|
||||
|
||||
======================================================================
|
||||
【addw_0523】YOLO 检测 path: /home/chengfanglu/DATA/DMS/DATASET/gyp/addw_0523
|
||||
======================================================================
|
||||
|
||||
当前划分: train=2375 val=594 test=0 合计=2969
|
||||
类别数(nc): 4 类别ID: [0, 1, 2, 3]
|
||||
|
||||
--- 当前:含该类别的图片数(按 split)---
|
||||
cls train val val% test 合计
|
||||
0 1367 370 21.3% 0 1737
|
||||
1 415 120 22.4% 0 535
|
||||
2 1018 229 18.4% 0 1247
|
||||
3 1812 445 19.7% 0 2257
|
||||
|
||||
当前 val 占比: min=18.4% max=22.4% 极差=4.1% (目标≈10%)
|
||||
⚠ 当前各类 val 比例不均衡
|
||||
|
||||
--- 分层重分后(模拟, val_ratio=0.1, seed=42) ---
|
||||
train=2671 val=298
|
||||
cls train val val%
|
||||
0 1565 172 9.9%
|
||||
1 481 54 10.1%
|
||||
2 1121 126 10.1%
|
||||
3 2029 228 10.1%
|
||||
|
||||
重分后 val 占比: min=9.9% max=10.1% 极差=0.2%
|
||||
✓ 分层后各类 val 比例均衡(极差≤2%)
|
||||
|
||||
======================================================================
|
||||
【isa_detect】YOLO 检测 path: /home/chengfanglu/DATA/DMS/DATASET/gyp/isa_detect
|
||||
======================================================================
|
||||
|
||||
当前划分: train=50480 val=9584 test=0 合计=60064
|
||||
类别数(nc): 4 类别ID: [0, 1, 2, 3]
|
||||
|
||||
--- 当前:含该类别的图片数(按 split)---
|
||||
cls train val val% test 合计
|
||||
0 15871 2971 15.8% 0 18842
|
||||
1 33355 7060 17.5% 0 40415
|
||||
2 7348 1204 14.1% 0 8552
|
||||
3 14715 2429 14.2% 0 17144
|
||||
|
||||
当前 val 占比: min=14.1% max=17.5% 极差=3.4% (目标≈10%)
|
||||
⚠ 当前各类 val 比例不均衡
|
||||
|
||||
--- 分层重分后(模拟, val_ratio=0.1, seed=42) ---
|
||||
train=54066 val=5940
|
||||
cls train val val%
|
||||
0 16883 1902 10.1%
|
||||
1 36344 4013 9.9%
|
||||
2 7693 855 10.0%
|
||||
3 15435 1707 10.0%
|
||||
|
||||
重分后 val 占比: min=9.9% max=10.1% 极差=0.2%
|
||||
✓ 分层后各类 val 比例均衡(极差≤2%)
|
||||
|
||||
======================================================================
|
||||
【dam_0516】YOLO 检测 path: /home/chengfanglu/DATA/DMS/DATASET/gyp/dam_0516
|
||||
======================================================================
|
||||
|
||||
当前划分: train=3780 val=1890 test=0 合计=5670
|
||||
类别数(nc): 15 类别ID: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
|
||||
|
||||
--- 当前:含该类别的图片数(按 split)---
|
||||
cls train val val% test 合计
|
||||
0 2582 1337 34.1% 0 3919
|
||||
1 726 373 33.9% 0 1099
|
||||
2 1670 829 33.2% 0 2499
|
||||
3 784 395 33.5% 0 1179
|
||||
4 266 136 33.8% 0 402
|
||||
5 1141 542 32.2% 0 1683
|
||||
6 2066 1050 33.7% 0 3116
|
||||
7 670 324 32.6% 0 994
|
||||
8 445 217 32.8% 0 662
|
||||
9 1088 528 32.7% 0 1616
|
||||
10 306 164 34.9% 0 470
|
||||
11 838 464 35.6% 0 1302
|
||||
12 883 489 35.6% 0 1372
|
||||
13 3700 1843 33.2% 0 5543
|
||||
14 360 151 29.5% 0 511
|
||||
|
||||
当前 val 占比: min=29.5% max=35.6% 极差=6.1% (目标≈10%)
|
||||
⚠ 当前各类 val 比例不均衡
|
||||
|
||||
--- 分层重分后(模拟, val_ratio=0.1, seed=42) ---
|
||||
train=5104 val=566
|
||||
cls train val val%
|
||||
0 3525 394 10.1%
|
||||
1 986 113 10.3%
|
||||
2 2240 259 10.4%
|
||||
3 1074 105 8.9%
|
||||
4 362 40 10.0%
|
||||
5 1497 186 11.1%
|
||||
6 2826 290 9.3%
|
||||
7 896 98 9.9%
|
||||
8 595 67 10.1%
|
||||
9 1473 143 8.8%
|
||||
10 423 47 10.0%
|
||||
11 1180 122 9.4%
|
||||
12 1241 131 9.5%
|
||||
13 4988 555 10.0%
|
||||
14 459 52 10.2%
|
||||
|
||||
重分后 val 占比: min=8.8% max=11.1% 极差=2.2%
|
||||
~ 分层后明显改善,少数类因样本极少会有小幅偏差
|
||||
|
||||
======================================================================
|
||||
【yoloface-0726】YOLO 检测 path: /home/chengfanglu/DATA/DMS/DATASET/gyp/yoloface-0726
|
||||
======================================================================
|
||||
|
||||
当前划分: train=4145 val=1464 test=0 合计=5609
|
||||
类别数(nc): 1 类别ID: [0]
|
||||
|
||||
--- 当前:含该类别的图片数(按 split)---
|
||||
cls train val val% test 合计
|
||||
0 4137 1462 26.1% 0 5599
|
||||
|
||||
当前 val 占比: min=26.1% max=26.1% 极差=0.0% (目标≈10%)
|
||||
✓ 当前各类 val 比例已较均衡
|
||||
|
||||
--- 分层重分后(模拟, val_ratio=0.1, seed=42) ---
|
||||
train=4970 val=551
|
||||
cls train val val%
|
||||
0 4960 551 10.0%
|
||||
|
||||
重分后 val 占比: min=10.0% max=10.0% 极差=0.0%
|
||||
✓ 分层后各类 val 比例均衡(极差≤2%)
|
||||
|
||||
======================================================================
|
||||
【isa_class_0116】分类(文件夹) path: /home/chengfanglu/DATA/DMS/DATASET/gyp/isa_class_0116
|
||||
======================================================================
|
||||
split: ['test', 'train'] 类别数: 92 总图片: 61747
|
||||
|
||||
--- 每类图片数(前20类 + 汇总)---
|
||||
class test train
|
||||
005 43 393
|
||||
010 55 501
|
||||
015 47 424
|
||||
020 67 604
|
||||
030 214 1933
|
||||
040 152 1369
|
||||
050 279 2513
|
||||
060 224 2024
|
||||
070 179 1614
|
||||
080 285 2572
|
||||
090 116 1045
|
||||
100 207 1866
|
||||
110 88 794
|
||||
120 156 1407
|
||||
130 47 429
|
||||
arrow_right 126 1138
|
||||
arrow_up 38 350
|
||||
bycycle 40 368
|
||||
dis_005 30 279
|
||||
dis_010 23 213
|
||||
(仅列前20类,共92类)
|
||||
|
||||
当前为 train/test 结构(无 val);若需 val 请用 stratified_split.py classify --src-split train
|
||||
若从 train 按类划 10% val: val% min=8.3% max=11.8% 极差=3.4%
|
||||
|
||||
test: 92类 min=1 max=310 avg=67 合计=6133
|
||||
|
||||
train: 92类 min=17 max=2792 avg=604 合计=55614
|
||||
|
||||
======================================================================
|
||||
【dam_src_0417】原始 jpg+xml path: /home/chengfanglu/DATA/DMS/DATASET/gyp/dam_src_0417
|
||||
======================================================================
|
||||
src_data_0417_pick: jpg=2455 xml=2455 (无 YOLO 标签,待转换后按类划分)
|
||||
62
datasets/dms/manifests/stratified_split_report.txt
Normal file
62
datasets/dms/manifests/stratified_split_report.txt
Normal file
@@ -0,0 +1,62 @@
|
||||
|
||||
【ddaw_1124】 train=3823 val=425 各类val%: min=9.8% max=10.3% 极差=0.4%
|
||||
cls0: train=3074 val=346 val%=10.1%
|
||||
cls1: train=674 val=77 val%=10.3%
|
||||
cls2: train=1834 val=203 val%=10.0%
|
||||
cls3: train=620 val=70 val%=10.1%
|
||||
cls4: train=277 val=31 val%=10.1%
|
||||
cls5: train=882 val=98 val%=10.0%
|
||||
cls6: train=2423 val=265 val%=9.9%
|
||||
cls7: train=651 val=72 val%=10.0%
|
||||
cls8: train=138 val=15 val%=9.8%
|
||||
|
||||
【addw_0523】 train=2671 val=298 各类val%: min=9.9% max=10.1% 极差=0.2%
|
||||
cls0: train=1565 val=172 val%=9.9%
|
||||
cls1: train=481 val=54 val%=10.1%
|
||||
cls2: train=1121 val=126 val%=10.1%
|
||||
cls3: train=2029 val=228 val%=10.1%
|
||||
|
||||
【dam_0516】 train=5104 val=566 各类val%: min=8.8% max=11.1% 极差=2.2%
|
||||
cls0: train=3525 val=394 val%=10.1%
|
||||
cls1: train=986 val=113 val%=10.3%
|
||||
cls2: train=2240 val=259 val%=10.4%
|
||||
cls3: train=1074 val=105 val%=8.9%
|
||||
cls4: train=362 val=40 val%=10.0%
|
||||
cls5: train=1497 val=186 val%=11.1%
|
||||
cls6: train=2826 val=290 val%=9.3%
|
||||
cls7: train=896 val=98 val%=9.9%
|
||||
cls8: train=595 val=67 val%=10.1%
|
||||
cls9: train=1473 val=143 val%=8.8%
|
||||
cls10: train=423 val=47 val%=10.0%
|
||||
cls11: train=1180 val=122 val%=9.4%
|
||||
cls12: train=1241 val=131 val%=9.5%
|
||||
cls13: train=4988 val=555 val%=10.0%
|
||||
cls14: train=459 val=52 val%=10.2%
|
||||
|
||||
【dam_0417】 train=2210 val=245 各类val%: min=8.6% max=10.7% 极差=2.1%
|
||||
cls0: train=1302 val=137 val%=9.5%
|
||||
cls1: train=237 val=26 val%=9.9%
|
||||
cls2: train=1117 val=125 val%=10.1%
|
||||
cls3: train=607 val=68 val%=10.1%
|
||||
cls4: train=220 val=24 val%=9.8%
|
||||
cls5: train=749 val=77 val%=9.3%
|
||||
cls6: train=1093 val=128 val%=10.5%
|
||||
cls7: train=585 val=64 val%=9.9%
|
||||
cls8: train=291 val=33 val%=10.2%
|
||||
cls9: train=902 val=97 val%=9.7%
|
||||
cls10: train=29 val=3 val%=9.4%
|
||||
cls11: train=451 val=54 val%=10.7%
|
||||
cls12: train=545 val=61 val%=10.1%
|
||||
cls13: train=2172 val=243 val%=10.1%
|
||||
cls14: train=297 val=28 val%=8.6%
|
||||
|
||||
【yoloface-0726】 train=4970 val=627 各类val%: min=11.2% max=11.2% 极差=0.0%
|
||||
cls0: train=4960 val=627 val%=11.2%
|
||||
|
||||
【isa_detect】 train=54066 val=5990 各类val%: min=10.0% max=10.4% 极差=0.4%
|
||||
cls0: train=16883 val=1951 val%=10.4%
|
||||
cls1: train=36344 val=4063 val%=10.1%
|
||||
cls2: train=7693 val=859 val%=10.0%
|
||||
cls3: train=15435 val=1708 val%=10.0%
|
||||
|
||||
【isa_class_0116】 classify 各类val%: min=8.3% max=11.8% 极差=3.4%
|
||||
53
datasets/dms/manifests/train_versions.yaml
Normal file
53
datasets/dms/manifests/train_versions.yaml
Normal file
@@ -0,0 +1,53 @@
|
||||
# 模型版本:current=线上/基线,candidate=待晋级(train → eval → promote)
|
||||
# data_yaml 由 active_packs 生成,路径固定为 manifests/yaml_active/
|
||||
|
||||
schema: model-versions-v2
|
||||
|
||||
ddaw:
|
||||
type: detect
|
||||
data_yaml: manifests/yaml_active/ddaw.yaml
|
||||
current: null
|
||||
candidate: null
|
||||
last_eval: null
|
||||
|
||||
addw:
|
||||
type: detect
|
||||
data_yaml: manifests/yaml_active/addw.yaml
|
||||
current: null
|
||||
candidate: null
|
||||
last_eval: null
|
||||
|
||||
addw_face:
|
||||
type: pose
|
||||
data_yaml: manifests/yaml_active/addw_face.yaml
|
||||
current: null
|
||||
candidate: null
|
||||
last_eval: null
|
||||
|
||||
isa:
|
||||
type: detect
|
||||
data_yaml: manifests/yaml_active/isa.yaml
|
||||
current: null
|
||||
candidate: null
|
||||
last_eval: null
|
||||
|
||||
dam:
|
||||
type: detect
|
||||
data_yaml: manifests/yaml_active/dam.yaml
|
||||
current: null
|
||||
candidate: null
|
||||
last_eval: null
|
||||
|
||||
dam_0417:
|
||||
type: detect
|
||||
data_yaml: manifests/yaml_active/dam_0417.yaml
|
||||
current: null
|
||||
candidate: null
|
||||
last_eval: null
|
||||
|
||||
isa_class:
|
||||
type: classify
|
||||
data_yaml: manifests/yaml_active/isa_class.yaml
|
||||
current: null
|
||||
candidate: null
|
||||
last_eval: null
|
||||
7
datasets/dms/manifests/yaml_active/addw.yaml
Normal file
7
datasets/dms/manifests/yaml_active/addw.yaml
Normal file
@@ -0,0 +1,7 @@
|
||||
# addw — packs: dms_v1
|
||||
path: /home/chengfanglu/DATA/workspace/DMS/DATASET/packs/dms_v1/addw
|
||||
train: /home/chengfanglu/DATA/workspace/DMS/DATASET/packs/dms_v1/addw/images/train
|
||||
val: /home/chengfanglu/DATA/workspace/DMS/DATASET/packs/dms_v1/addw/images/val
|
||||
|
||||
nc: 4
|
||||
names: ["face", "eye_open", "nod_face", "nod_eye"]
|
||||
5
datasets/dms/manifests/yaml_active/addw_face.yaml
Normal file
5
datasets/dms/manifests/yaml_active/addw_face.yaml
Normal file
@@ -0,0 +1,5 @@
|
||||
# addw_face — packs: dms_v1
|
||||
path: /home/chengfanglu/DATA/workspace/DMS/DATASET/packs/dms_v1/addw_face
|
||||
train: /home/chengfanglu/DATA/workspace/DMS/DATASET/packs/dms_v1/addw_face/images/train
|
||||
val: /home/chengfanglu/DATA/workspace/DMS/DATASET/packs/dms_v1/addw_face/images/val
|
||||
kpt_shape: [37, 3]
|
||||
7
datasets/dms/manifests/yaml_active/dam.yaml
Normal file
7
datasets/dms/manifests/yaml_active/dam.yaml
Normal file
@@ -0,0 +1,7 @@
|
||||
# dam — packs: dms_v1
|
||||
path: /home/chengfanglu/DATA/workspace/DMS/DATASET/packs/dms_v1/dam
|
||||
train: /home/chengfanglu/DATA/workspace/DMS/DATASET/packs/dms_v1/dam/images/train
|
||||
val: /home/chengfanglu/DATA/workspace/DMS/DATASET/packs/dms_v1/dam/images/val
|
||||
|
||||
nc: 15
|
||||
names: ["face", "eye_open", "eye_partially_open", "eye_close", "mouth_open", "mouth_partially_open", "mouth_close", "side_face", "nod_face", "glasses", "sunglasses", "smoke", "phone", "driver", "rise_face"]
|
||||
7
datasets/dms/manifests/yaml_active/dam_0417.yaml
Normal file
7
datasets/dms/manifests/yaml_active/dam_0417.yaml
Normal file
@@ -0,0 +1,7 @@
|
||||
# dam_0417 — packs: dms_v1
|
||||
path: /home/chengfanglu/DATA/workspace/DMS/DATASET/packs/dms_v1/dam_0417
|
||||
train: /home/chengfanglu/DATA/workspace/DMS/DATASET/packs/dms_v1/dam_0417/images/train
|
||||
val: /home/chengfanglu/DATA/workspace/DMS/DATASET/packs/dms_v1/dam_0417/images/val
|
||||
|
||||
nc: 15
|
||||
names: ["face", "eye_open", "eye_partially_open", "eye_close", "mouth_open", "mouth_partially_open", "mouth_close", "side_face", "nod_face", "glasses", "sunglasses", "smoke", "phone", "driver", "rise_face"]
|
||||
7
datasets/dms/manifests/yaml_active/ddaw.yaml
Normal file
7
datasets/dms/manifests/yaml_active/ddaw.yaml
Normal file
@@ -0,0 +1,7 @@
|
||||
# ddaw — packs: dms_v1
|
||||
path: /home/chengfanglu/DATA/workspace/DMS/DATASET/packs/dms_v1/ddaw
|
||||
train: /home/chengfanglu/DATA/workspace/DMS/DATASET/packs/dms_v1/ddaw/images/train
|
||||
val: /home/chengfanglu/DATA/workspace/DMS/DATASET/packs/dms_v1/ddaw/images/val
|
||||
|
||||
nc: 9
|
||||
names: ["face", "eye_open", "eye_partially_open", "eye_close", "mouth_open", "mouth_partially_open", "mouth_close", "side_face", "nod_face"]
|
||||
7
datasets/dms/manifests/yaml_active/isa.yaml
Normal file
7
datasets/dms/manifests/yaml_active/isa.yaml
Normal file
@@ -0,0 +1,7 @@
|
||||
# isa — packs: dms_v1
|
||||
path: /home/chengfanglu/DATA/workspace/DMS/DATASET/packs/dms_v1/isa
|
||||
train: /home/chengfanglu/DATA/workspace/DMS/DATASET/packs/dms_v1/isa/images/train
|
||||
val: /home/chengfanglu/DATA/workspace/DMS/DATASET/packs/dms_v1/isa/images/val
|
||||
|
||||
nc: 4
|
||||
names: ["indicative", "prohibitory", "warning", "vehicle"]
|
||||
5
datasets/dms/manifests/yaml_active/isa_class.yaml
Normal file
5
datasets/dms/manifests/yaml_active/isa_class.yaml
Normal file
@@ -0,0 +1,5 @@
|
||||
# isa_class — pack: dms_v1
|
||||
path: /home/chengfanglu/DATA/workspace/DMS/DATASET/packs/dms_v1/isa_class
|
||||
train: train
|
||||
val: val
|
||||
test: test
|
||||
Reference in New Issue
Block a user