feat: 合并 Docker Compose、标注表格优化与部署文档

将 platform + CVAT 合并为单文件 docker-compose.yml,完善 .env 与 init/dev_up 脚本;
新增 docs/DEPLOY.md 与更新 README 以支持新机器部署;含数据湖示例、车队地图、
紧凑表格 UI、ADAS det_7cls 路径与批次台账等近期改动。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-16 17:06:31 +08:00
parent 0b8ade048e
commit 483e027482
117 changed files with 5933 additions and 1499 deletions

View File

@@ -0,0 +1,21 @@
# 数据湖 inbox 落盘示例
本仓库镜像 HSAP 真实 inbox 路径。
**详细树形说明见 [`datasets/README.md`](datasets/README.md)**,批次清单见 [`datasets/manifest.yaml`](datasets/manifest.yaml)。
## ADAS 2D / 3D同在 adas 项目下)
| 类型 | 路径 | project | task |
|------|------|---------|------|
| **ADAS 2D 七类** | `datasets/adas/inbox/det_7cls/{批次}/` | `adas` | `det_7cls` |
| **ADAS 3D MOON** | `datasets/adas/inbox/cuboid_7cls/{批次}/` | `adas` | `cuboid_7cls` |
DMS 舱内addw/ddaw/dam 等)仍在 `datasets/dms/inbox/`
## 复制到数据湖
```bash
bash copy_to_inbox.sh
```
然后:**批次台账 → 扫描数据湖 → 登记到台账**。

View File

@@ -0,0 +1,24 @@
#!/usr/bin/env bash
# 将 lake_example 样例复制到 HSAP 数据湖 inbox不覆盖已有批次
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
HSAP_ROOT="${HSAP_ROOT:-$(cd "$SCRIPT_DIR/../HSAP" && pwd)}"
SRC="$SCRIPT_DIR/datasets"
echo "HSAP_ROOT=$HSAP_ROOT"
echo "源: $SRC"
echo ""
echo "业务线 → 目标路径:"
echo " DMS cabin (addw/ddaw/...) → datasets/dms/inbox/"
echo " ADAS 2D (adas/inbox/det_7cls) → datasets/adas/inbox/det_7cls/"
echo " ADAS 3D (adas/inbox/cuboid) → datasets/adas/inbox/cuboid_7cls/"
echo " 车道线 (lane/inbox) → datasets/lane/inbox/"
echo ""
rsync -av --ignore-existing "$SRC/dms/inbox/" "$HSAP_ROOT/datasets/dms/inbox/"
rsync -av --ignore-existing "$SRC/adas/inbox/" "$HSAP_ROOT/datasets/adas/inbox/"
rsync -av --ignore-existing "$SRC/lane/inbox/" "$HSAP_ROOT/datasets/lane/inbox/"
echo ""
echo "完成。请到 批次台账 → 扫描数据湖 → 登记。"
echo "索引: $SRC/README.md | manifest: $SRC/manifest.yaml"

View File

@@ -0,0 +1,39 @@
# 数据湖 inbox 示例根目录
本目录 **镜像** HSAP 真实数据湖路径,复制后可直接被「扫描数据湖」识别。
## ADAS 2D / 3D 都在 `adas/` 下
| 路径 | 类型 | project | task |
|------|------|---------|------|
| **`adas/inbox/det_7cls/`** | ADAS **2D** 七类 | `adas` | `det_7cls` |
| **`adas/inbox/cuboid_7cls/`** | ADAS **3D** MOON | `adas` | `cuboid_7cls` |
DMS 舱内数据仍在 `dms/inbox/`addw、ddaw、dam 等),不含 ADAS 七类。
## 完整目录树
```text
datasets/
├── dms/inbox/ project=dms
│ ├── addw/20260616_addw_pilot/
│ ├── ddaw/20260616_ddaw_pilot/
│ ├── addw_face/20260616_face_pilot/
│ ├── dam/batch_0516/20260616_dam_wave/
│ ├── forward/detect/20260616_fwd_det/
│ └── forward/classify/20260616_fwd_cls/
├── adas/inbox/ project=adas
│ ├── det_7cls/20260616_adas2d_pilot/ ★ 2D 七类
│ └── cuboid_7cls/20260616_3d_pilot/ ★ 3D MOON
└── lane/inbox/20260616_lane_pilot/ project=lane
```
## 样例批次清单
见 [`manifest.yaml`](manifest.yaml)。
## 复制
```bash
bash ../copy_to_inbox.sh
```

View File

@@ -0,0 +1,10 @@
# ADAS inboxproject=adas
2D 与 3D 都在本目录下,靠 **task 子目录** 区分。
| 子目录 | task | 说明 |
|--------|------|------|
| **det_7cls/** | det_7cls | 2D 七类矩形框 |
| cuboid_7cls/ | cuboid_7cls | 3D MOON cuboid |
复制目标:`HSAP/datasets/adas/inbox/`(软链至 `data/送标/adas/inbox/`

View File

@@ -0,0 +1,6 @@
line: ADAS 3D MOON
project: adas
task: cuboid_7cls
mode: null
batch: 20260616_3d_pilot
inbox_path: datasets/adas/inbox/cuboid_7cls/20260616_3d_pilot

View File

@@ -0,0 +1,23 @@
类型: ADAS · 3D Cuboid 七类 (MOON-3D)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
★ 同属 project=adas2D 在同级 det_7cls/ ★
API 登记:
项目 (project): adas
任务 (task): cuboid_7cls
子模式: (空)
数据湖路径:
datasets/adas/inbox/cuboid_7cls/{批次名}/
images/
calib/ ← 相机内参,建议必填
与 2D 的区别:
- 3D 本目录 → task=cuboid_7cls, cuboid 标注, 训练包 adas_moon3d_v1
- 2D 在 adas/inbox/det_7cls/ → task=det_7cls, 矩形框, 训练包 adas_v1
标完导出: labels/quaternion_json/*.json
复制示例:
cp -a lake_example/datasets/adas/inbox/cuboid_7cls/20260616_3d_pilot \
HSAP/datasets/adas/inbox/cuboid_7cls/

View File

@@ -0,0 +1,8 @@
schema: huaxu-batch-v1
project: adas
task: cuboid_7cls
batch: 20260616_3d_pilot
stage: raw_pool
location: inbox
format: cvat_cuboid
# 3D 批次:建议同目录提供 calib/*.yaml

View File

@@ -0,0 +1,18 @@
schema: huaxu-camera-calib-v1
camera: cam0
model: front_6mm
image_size: [1920, 1080]
# Intrinsic Matrix K (3x3)
K:
- [1189.69669, 0.0, 1007.54822]
- [0.0, 1189.69669, 517.47476]
- [0.0, 0.0, 1.0]
fx: 1189.69669
fy: 1189.69669
cx: 1007.54822
cy: 517.47476
# Distortion Coefficients (k1,k2,p1,p2,k3,k4,k5,k6)
distortion: [0.28289, -0.09676, -0.00014, 0.00002, -0.00215, 0.70977, -0.08417, -0.02529]

Binary file not shown.

After

Width:  |  Height:  |  Size: 710 KiB

View File

@@ -0,0 +1,28 @@
# ADAS 3D Cuboid 七类MOON-3D
```
adas/inbox/cuboid_7cls/{批次名}/
images/
calib/ ← 建议有,用于 3D 拟合
```
## 台账 / API
| 字段 | 值 |
|------|-----|
| **project** | `adas` |
| **task** | `cuboid_7cls` |
## 与 2D 的区别(同在 adas 项目下)
| | ADAS 2D | ADAS 3D本目录 |
|---|---------|-------------------|
| 路径 | `adas/inbox/det_7cls/` | `adas/inbox/cuboid_7cls/` |
| task | `det_7cls` | `cuboid_7cls` |
| 标注 | 矩形框 bbox | cuboid 3D |
| 导出 | YOLO | quaternion_json |
| 训练包 | adas_v1 | adas_moon3d_v1 |
## 样例
- `20260616_3d_pilot/`

View File

@@ -0,0 +1,6 @@
line: ADAS 2D
project: adas
task: det_7cls
mode: null
batch: 20260616_adas2d_pilot
inbox_path: datasets/adas/inbox/det_7cls/20260616_adas2d_pilot

View File

@@ -0,0 +1,19 @@
类型: ADAS · 2D 七类检测YOLO
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
★ 与 3D 同属 project=adastask 不同 ★
API 登记:
项目 (project): adas
任务 (task): det_7cls
子模式: (空)
数据湖路径:
datasets/adas/inbox/det_7cls/{批次名}/images/
与 3D 的区别:
- 2D 本目录 → task=det_7cls, 矩形框标注, 训练包 adas_v1
- 3D 在 adas/inbox/cuboid_7cls/ → task=cuboid_7cls, cuboid 标注, 训练包 adas_moon3d_v1
复制示例:
cp -a lake_example/datasets/adas/inbox/det_7cls/20260616_adas2d_pilot \
HSAP/datasets/adas/inbox/det_7cls/

View File

@@ -0,0 +1,7 @@
schema: huaxu-batch-v1
project: adas
task: det_7cls
batch: 20260616_adas2d_pilot
stage: raw_pool
location: inbox
format: yolo

View File

@@ -0,0 +1,25 @@
# ADAS 2D 七类检测YOLO
```
adas/inbox/det_7cls/{批次名}/images/
```
## 台账 / API
| 字段 | 值 |
|------|-----|
| **project** | `adas` |
| **task** | `det_7cls` |
## 与 3D 同项目、不同任务
| | ADAS 2D本目录 | ADAS 3D |
|---|-------------------|---------|
| 路径 | `adas/inbox/det_7cls/` | `adas/inbox/cuboid_7cls/` |
| task | `det_7cls` | `cuboid_7cls` |
| 标注 | 矩形框 bbox | cuboid 3D |
| 训练包 | adas_v1 | adas_moon3d_v1 |
## 样例
- `20260616_adas2d_pilot/`

View File

@@ -0,0 +1,14 @@
# DMS inbox 示例project=dms
| 子目录 | 任务 task | 子模式 mode | 示例批次 |
|--------|-----------|-------------|----------|
| addw/ | addw | — | 20260616_addw_pilot |
| ddaw/ | ddaw | — | 20260616_ddaw_pilot |
| addw_face/ | addw_face | — | 20260616_face_pilot |
| dam/batch_0516/ | dam | batch_0516 | 20260616_dam_wave |
| forward/detect/ | forward | detect | 20260616_fwd_det |
| forward/classify/ | forward | classify | 20260616_fwd_cls |
ADAS 七类 2D/3D 见 `datasets/adas/inbox/`(不在 dms 下)。
复制目标:`HSAP/datasets/dms/inbox/`

View File

@@ -0,0 +1,5 @@
line: DMS ADDW
project: dms
task: addw
batch: 20260616_addw_pilot
inbox_path: datasets/dms/inbox/addw/20260616_addw_pilot

View File

@@ -0,0 +1,5 @@
类型: DMS · ADDW 分心检测 (2D)
项目: dms | 任务: addw | 子模式: (空)
新进: 仅 images/train/*.jpg无 labels/
复制到: datasets/dms/inbox/addw/20260616_addw_pilot/
台账: 项目=dms 任务=addw 批次名=20260616_addw_pilot

View File

@@ -0,0 +1,8 @@
schema: huaxu-batch-v1
project: dms
task: addw
batch: 20260616_addw_pilot
stage: raw_pool
location: inbox
format: yolo
# 登记后由平台写入 counts 等字段;此为手工落盘参考模板

View File

@@ -0,0 +1,5 @@
line: DMS ADDW Face
project: dms
task: addw_face
batch: 20260616_face_pilot
inbox_path: datasets/dms/inbox/addw_face/20260616_face_pilot

View File

@@ -0,0 +1,4 @@
类型: DMS · ADDW 人脸关键点 (pose)
项目: dms | 任务: addw_face
导出: YOLO pose 37 关键点
复制到: datasets/dms/inbox/addw_face/20260616_face_pilot/

View File

@@ -0,0 +1,6 @@
line: DMS DAM
project: dms
task: dam
mode: batch_0516
batch: 20260616_dam_wave
inbox_path: datasets/dms/inbox/dam/batch_0516/20260616_dam_wave

View File

@@ -0,0 +1,4 @@
类型: DMS · DAM 驾驶员监控 (2D)
项目: dms | 任务: dam | 子模式: batch_0516 (必填)
注意: inbox 路径含 dam/batch_0516/ 两层
复制到: datasets/dms/inbox/dam/batch_0516/20260616_dam_wave/

View File

@@ -0,0 +1,5 @@
line: DMS DDAW
project: dms
task: ddaw
batch: 20260616_ddaw_pilot
inbox_path: datasets/dms/inbox/ddaw/20260616_ddaw_pilot

View File

@@ -0,0 +1,3 @@
类型: DMS · DDAW 疲劳检测 (2D)
项目: dms | 任务: ddaw
复制到: datasets/dms/inbox/ddaw/20260616_ddaw_pilot/

Binary file not shown.

After

Width:  |  Height:  |  Size: 349 KiB

View File

@@ -0,0 +1,6 @@
line: ADAS Forward Classify
project: dms
task: forward
mode: classify
batch: 20260616_fwd_cls
inbox_path: datasets/dms/inbox/forward/classify/20260616_fwd_cls

View File

@@ -0,0 +1,3 @@
类型: ADAS · 前向交通标志 细分类
项目: dms | 任务: forward | 子模式: classify
复制到: datasets/dms/inbox/forward/classify/20260616_fwd_cls/

View File

@@ -0,0 +1,6 @@
line: ADAS Forward Detect
project: dms
task: forward
mode: detect
batch: 20260616_fwd_det
inbox_path: datasets/dms/inbox/forward/detect/20260616_fwd_det

View File

@@ -0,0 +1,3 @@
类型: ADAS · 前向交通标志 粗检测 (2D)
项目: dms | 任务: forward | 子模式: detect
复制到: datasets/dms/inbox/forward/detect/20260616_fwd_det/

View File

@@ -0,0 +1,5 @@
line: Lane UFLD
project: lane
task: lane_v1
batch: 20260616_lane_pilot
inbox_path: datasets/lane/inbox/20260616_lane_pilot

View File

@@ -0,0 +1,5 @@
类型: 车道线 UFLD 分割
项目: lane | 无 task 子目录
新进: 仅 images/*.jpg|png
标完导出: annotations/*.png + list/train_gt.txt
复制到: datasets/lane/inbox/20260616_lane_pilot/

View File

@@ -0,0 +1,6 @@
schema: huaxu-batch-v1
project: lane
batch: 20260616_lane_pilot
stage: raw_pool
location: inbox
format: ufld_archive

Binary file not shown.

After

Width:  |  Height:  |  Size: 673 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 593 KiB

View File

@@ -0,0 +1,9 @@
# 车道线 inboxproject=lane
```
lane/inbox/{批次名}/images/
```
无 task 子目录。台账 project=lane。
样例:`20260616_lane_pilot/`

View File

@@ -0,0 +1,70 @@
version: 1
description: lake_example 各业务线落盘样例(镜像 HSAP/datasets/inbox
examples:
- id: dms_addw
line: DMS · ADDW
project: dms
task: addw
mode: null
batch: 20260616_addw_pilot
path: dms/inbox/addw/20260616_addw_pilot
- id: dms_ddaw
line: DMS · DDAW
project: dms
task: ddaw
batch: 20260616_ddaw_pilot
path: dms/inbox/ddaw/20260616_ddaw_pilot
- id: dms_addw_face
line: DMS · ADDW 人脸关键点
project: dms
task: addw_face
batch: 20260616_face_pilot
path: dms/inbox/addw_face/20260616_face_pilot
- id: dms_dam
line: DMS · DAM
project: dms
task: dam
mode: batch_0516
batch: 20260616_dam_wave
path: dms/inbox/dam/batch_0516/20260616_dam_wave
- id: dms_forward_detect
line: ADAS · 前向粗检测
project: dms
task: forward
mode: detect
batch: 20260616_fwd_det
path: dms/inbox/forward/detect/20260616_fwd_det
- id: dms_forward_classify
line: ADAS · 前向细分类
project: dms
task: forward
mode: classify
batch: 20260616_fwd_cls
path: dms/inbox/forward/classify/20260616_fwd_cls
- id: adas_2d
line: ADAS · 2D 七类
project: adas
task: det_7cls
batch: 20260616_adas2d_pilot
path: adas/inbox/det_7cls/20260616_adas2d_pilot
- id: adas_3d
line: ADAS · 3D MOON Cuboid
project: adas
task: cuboid_7cls
batch: 20260616_3d_pilot
path: adas/inbox/cuboid_7cls/20260616_3d_pilot
- id: lane
line: 车道线 UFLD
project: lane
task: lane_v1
batch: 20260616_lane_pilot
path: lane/inbox/20260616_lane_pilot