# SpharxWorks_workshop
**Repository Path**: spharx/workshop
## Basic Information
- **Project Name**: SpharxWorks_workshop
- **Description**: 工具链 SpharxToolchain01:workshop,L0~L2数据处理。
- **Primary Language**: Unknown
- **License**: GPL-3.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2026-02-06
- **Last Updated**: 2026-03-21
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Workshop 数据处理平台
Workshop 是 SpharxWorks 平台的核心数据采集和预处理子系统,采用模块化、容器化的架构设计,实现了从原始传感器数据到标准化高质量数据集的完整处理链路。作为物理世界数据工厂,Workshop 为后续的深度加工(Deepness)提供高质量的数据基础。
*"From data intelligence emerges"*
*"始于数据,终于智能"*
## 🏗️ 系统架构
```mermaid
graph LR
A[原始数据输入] --> B[00_ingest
数据导入]
B --> C[01_quality
质量检测]
C --> D[02_enhance
数据增强]
D --> E[03_calibrate
相机标定]
E --> F[04_pack
数据打包]
F --> G[05_delivery
数据交付]
style A fill:#e1f5fe
style G fill:#f3e5f5
```
## 📁 项目结构
```
workshop/
├── base/ # 基础镜像构建
│ └── Dockerfile # Python 3.10 基础环境
├── common/ # 公共组件
│ ├── configs/ # 配置文件
│ │ ├── modules/ # 各模块配置
│ │ │ ├── 00_ingest.yaml # 数据导入配置
│ │ │ ├── 01_quality.yaml # 质量检测配置
│ │ │ ├── 02_enhance.yaml # 数据增强配置
│ │ │ ├── 03_calibrate.yaml # 相机标定配置
│ │ │ ├── 04_pack.yaml # 数据打包配置
│ │ │ └── 05_delivery.yaml # 数据交付配置
│ │ ├── deps.lock # 依赖版本锁定
│ │ ├── logging.yaml # 日志配置
│ │ └── pipeline_config.yaml # 全局流水线配置
│ ├── schemas/ # 数据模型定义
│ │ ├── __init__.py
│ │ ├── dataset.py # 数据集模型
│ │ ├── scene.py # 场景元数据
│ │ └── sensor_stream.py # 传感器流模型
│ └── scripts/ # 公共脚本工具
│ ├── config_loader.py # 配置加载器
│ └── data_io/ # 数据IO工具
├── docs/ # 项目文档
│ ├── WORKSHOP_ARCH.md # 系统架构设计
│ ├── PROGRESS.md # 项目进度报告
│ ├── CODING_STANDARDS.md # 编码规范
│ ├── CONTRIBUTING.md # 贡献指南
│ └── ... # 其他技术文档
├── hardware/ # 硬件支持
│ ├── calibration/ # 标定工具
│ ├── camera/ # 相机驱动
│ └── scripts/ # 硬件配置脚本
├── partdata/ # 数据目录
│ ├── deps/ # 编译依赖
│ ├── models/ # 模型权重
│ │ └── yolov8n.pt # YOLOv8 检测模型
│ ├── logs/ # 运行日志
│ ├── tests/ # 测试数据
│ ├── raw/ # 原始输入数据
│ ├── workshop_output/ # 处理中间结果
│ └── datasets/ # 最终数据集
├── pipelines/ # 处理管道模块
│ ├── 00_ingest/ # 数据导入模块
│ │ ├── Dockerfile
│ │ ├── requirements.txt
│ │ └── runner.py
│ ├── 01_quality/ # 质量检测模块
│ │ ├── Dockerfile
│ │ ├── requirements.txt
│ │ └── runner.py
│ ├── 02_enhance/ # 数据增强模块
│ │ ├── Dockerfile
│ │ ├── requirements.txt
│ │ └── runner.py
│ ├── 03_calibrate/ # 相机标定模块
│ │ ├── Dockerfile
│ │ ├── requirements.txt
│ │ └── runner.py
│ ├── 04_pack/ # 数据打包模块
│ │ ├── Dockerfile
│ │ ├── requirements.txt
│ │ └── runner.py
│ └── 05_delivery/ # 数据交付模块
│ ├── Dockerfile
│ ├── requirements.txt
│ └── runner.py
├── scripts/ # 运维脚本
│ ├── build/ # 构建相关脚本
│ ├── deploy/ # 部署相关脚本
│ ├── dispose/ # 清理相关脚本
│ │ ├── dispose_build_all.sh
│ │ └── dispose_deploy.sh
│ ├── download/ # 下载相关脚本
│ │ ├── download_deps.sh
│ │ ├── download_models.sh
│ │ └── download_sources.sh
│ ├── init/ # 初始化脚本
│ │ └── init_project.sh
│ ├── lib/ # 公共函数库
│ │ └── common.sh
│ ├── pipeline/ # 流水线控制脚本
│ └── utils/ # 实用工具脚本
├── tests/ # 测试套件
│ ├── unit/ # 单元测试
│ ├── integration/ # 集成测试
│ └── docs/ # 测试文档
├── docker-compose.yml # 服务编排配置
├── Makefile # 构建自动化
├── .env.template # 环境变量模板
└── README.md # 本文档
```
## 🚀 快速开始
### 环境准备
```bash
# 1. 克隆项目
git clone https://github.com/spharx/spharxworks.git
cd spharxworks/workshop
cd workshop
# 2. 项目初始化
./scripts/init/init_project.sh
# 3. 配置环境变量
cp .env.template .env
# 编辑 .env 文件设置必要参数
# 4. 下载依赖和模型
./scripts/download/download_deps.sh
./scripts/download/download_models.sh
```
### 构建和部署
```bash
# 一键构建所有镜像
make all
# 或单独构建模块
make ingest # 构建数据导入模块
make quality # 构建质量检测模块
make enhance # 构建数据增强模块
make calibrate # 构建相机标定模块
make pack # 构建数据打包模块
# 启动基础处理流程(不含交付模块)
docker-compose up -d ingest quality enhance calibrate pack
# 启动完整流程(包含交付模块)
docker-compose --profile delivery up -d
# 查看服务状态
docker-compose ps
# 查看服务日志
docker-compose logs -f [service-name]
# 停止所有服务
docker-compose down
```
### 清理环境
```bash
# 删除所有 workshop 镜像
make clean
# 删除镜像并清理构建缓存
make clean-all
# 清理部署文件
./scripts/dispose/dispose_deploy.sh
```
## 🛠️ 核心功能模块
### 00_ingest - 数据导入模块
- **功能**: 接收和解析原始传感器数据
- **特性**: 隐私脱敏处理、标准化数据结构生成
- **输入**: ROS Bag 文件、RealSense 数据流
- **输出**: 标准化目录结构(rgb/、depth/、timestamps.csv等)
- **关键技术**: Intel RealSense SDK、OpenCV
### 01_quality - 质量检测模块
- **功能**: 多层次数据质量评估
- **特性**: 硬件层检测(模糊度、曝光、帧率)、语义层分析(预留)
- **输出**: quality_report.json、质量指标数据
- **配置**: 可调节的质量阈值和检测参数
### 02_enhance - 数据增强模块
- **功能**: 基于目标检测的数据增强和标注
- **特性**: YOLOv8 实时目标检测、图像去噪、自动标注生成
- **输出**: COCO 格式标注文件、增强后的图像
- **模型**: yolov8n.pt(可替换为其他 YOLOv8 模型)
### 03_calibrate - 相机标定模块
- **功能**: 相机内外参标定
- **特性**: 棋盘格标定法、标定精度验证
- **输出**: 内参矩阵、外参矩阵、标定报告
- **支持**: 单相机内参标定(外参标定预留)
### 04_pack - 数据打包模块
- **功能**: 标准化数据集打包
- **特性**: ROS Bag 格式、COCO 格式、数据完整性校验
- **输出**: 标准化数据集、SHA256 校验和
- **验证**: 自动完整性检查和格式验证
### 05_delivery - 数据交付模块
- **功能**: 数据集上传和交付
- **特性**: OSS 对象存储、SFTP 传输、交付状态通知
- **方式**: 阿里云 OSS、SFTP、本地存储
- **配置**: 支持多种交付渠道和重试机制
## 📊 技术栈
### 核心技术
- **容器化**: Docker + Docker Compose
- **编程语言**: Python 3.10+
- **核心框架**:
- OpenCV (计算机视觉)
- PyTorch (深度学习)
- YOLOv8 (目标检测)
- NumPy (数值计算)
- **硬件支持**: Intel RealSense SDK
- **配置管理**: YAML + 环境变量
- **监控告警**: Streamlit Web 面板(预留)
### 依赖管理
```yaml
# 通过 deps.lock 文件锁定版本
torch>=1.13.0
torchvision>=0.14.0
opencv-python>=4.8.0
ultralytics>=8.0.0
numpy>=1.24.0
pyyaml>=6.0
```
## ⚙️ 配置管理
### 模块配置示例
**数据导入配置** (`common/configs/modules/00_ingest.yaml`):
```yaml
privacy:
enable_blur: true
blur_kernel_size: 15
face_detection: true
data_format:
output_structure: "standard"
compression_level: 6
```
**数据增强配置** (`common/configs/modules/02_enhance.yaml`):
```yaml
yolo:
model: "yolov8n.pt"
conf_threshold: 0.25
iou_threshold: 0.45
enhancement:
enable_denoising: true
noise_reduction_strength: 0.3
```
### 环境变量配置
```bash
# .env 文件关键配置
LOG_LEVEL=INFO # 日志级别
MAX_WORKERS=4 # 最大工作进程数
GPU_ENABLED=false # GPU加速开关
YOLO_MODEL=yolov8n.pt # YOLO模型文件
QUALITY_THRESHOLD=0.8 # 质量检测阈值
```
## 🎯 最佳实践
### 目录结构管理
```bash
# 所有大型数据存储在 partdata/ 目录
# 通过 Docker 卷挂载方式使用数据
# 确保镜像轻量化和数据持久化分离
partdata/
├── raw/ # 原始输入数据(只读挂载)
├── workshop_output/ # 处理中间结果
├── datasets/ # 最终数据集
├── models/ # 模型权重
└── logs/ # 运行日志
```
### 依赖管理策略
```bash
# 1. 使用 deps.lock 文件锁定依赖版本
# 2. 通过 download_deps.sh 脚本下载依赖到本地
# 3. Docker 构建时直接 COPY 本地依赖,避免网络依赖
# 4. 定期更新依赖版本并测试兼容性
```
### 配置管理规范
```bash
# 1. 所有可配置参数都在 common/configs/ 目录下
# 2. 模块配置: common/configs/modules/{module_name}.yaml
# 3. 全局配置: common/configs/pipeline_config.yaml
# 4. 环境变量: 通过 .env 文件管理运行时参数
```
### 性能优化建议
```bash
# 1. 合理设置资源限制(内存、CPU)
# 2. 启用健康检查确保服务稳定
# 3. 使用 tmpfs 提升临时文件性能
# 4. 配置适当的重启策略
# 5. 监控资源使用情况及时调整
```
## 🔒 安全与合规
### 容器安全
- **用户权限**: 使用非 root 用户运行容器
- **最小权限**: 只安装必要依赖,移除不必要能力
- **只读文件系统**: 关键目录设置为只读
- **安全选项**: 启用安全强化选项
### 数据保护
- **隐私处理**: 自动人脸模糊和敏感信息过滤
- **访问控制**: 容器内最小权限原则
- **数据加密**: 敏感配置文件加密存储
- **完整性校验**: SHA256 校验和验证
### 合规性
- **审计日志**: 完整的操作日志记录
- **版本控制**: 配置和代码版本管理
- **数据留存**: 符合数据保护法规要求
## 📈 系统监控
### 服务状态监控
```bash
# 查看所有服务状态
docker-compose ps
# 查看特定服务日志
docker-compose logs -f ingest
# 实时监控资源使用
docker stats
# 健康检查
docker-compose exec ingest python -c "import sys; print('Service OK')"
```
### Web 监控面板(预留)
```bash
# 启动监控面板
streamlit run dashboard/app.py
# 访问地址: http://localhost:8501
# 功能: 实时状态展示、处理进度跟踪、性能指标监控
```
## 📚 文档资源
### 核心文档
- [📘 系统架构设计](docs/WORKSHOP_ARCH.md) - 详细架构说明
- [📊 项目进度报告](docs/PROGRESS.md) - 开发里程碑和现状
- [🛠️ 编码规范](docs/CODING_STANDARDS.md) - 开发标准和规范
- [🤝 贡献指南](docs/CONTRIBUTING.md) - 参与项目开发
- [🔒 安全政策](docs/SECURITY.md) - 安全实践和漏洞报告
### 技术参考
- [🐳 Docker 部署指南](docs/DOCKER_DEPLOYMENT.md) - 容器化部署说明
- [⚙️ 配置管理手册](docs/CONFIGURATION.md) - 配置文件详解
- [🧪 测试框架说明](docs/TESTING.md) - 测试策略和用例
- [📈 性能优化指南](docs/PERFORMANCE.md) - 性能调优建议
## 🤝 贡献指南
欢迎提交 Issue 和 Pull Request!
### 开发流程
1. **Fork 项目**
2. **创建功能分支** (`git checkout -b feature/AmazingFeature`)
3. **提交更改** (`git commit -m 'Add some AmazingFeature'`)
4. **推送到分支** (`git push origin feature/AmazingFeature`)
5. **开启 Pull Request**
### 代码规范
- 遵循 PEP 8 Python 编码规范
- 使用 Black 格式化代码
- 编写单元测试覆盖新功能
- 更新相关文档说明
### 测试要求
```bash
# 运行单元测试
pytest tests/unit/
# 运行集成测试
pytest tests/integration/
# 代码质量检查
flake8 .
black --check .
```
## 📄 许可证
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情
## 📞 联系方式
**项目维护**: SPHARX极光感知科技
**技术支持**: support@spharx.cn
**项目主页**: [SpharxWorks GitHub](https://github.com/spharx/spharxworks)
**社区交流**: [GitHub Issues & Discussions](https://github.com/spharx/spharxworks/issues)
## 🚀 与 Deepness 集成
Workshop 作为 SpharxWorks 的数据采集前端,与 Deepness 深度加工系统紧密集成:
```mermaid
graph LR
A[物理世界] --> B[Workshop
数据采集]
B --> C[Deepness
深度加工]
C --> D[应用系统]
style B fill:#e3f2fd
style C fill:#f3e5f5
```
- **数据输出**: 生成 Deepness 兼容的标准输入格式
- **触发机制**: 文件系统事件监听或 API 调用
- **状态同步**: 处理进度回调和状态通知
- **质量保证**: 确保输入数据满足深度加工要求
---
构建 AI 时代的物理世界数据基础设施
From data intelligence emerges
始于数据,终于智能
## 许可证 SpharxWorks 采用 **GPL-3.0 开源协议 + 商业闭源授权** 双轨授权模式,您可根据自身使用场景选择对应授权。 ### 开源授权(GPL-3.0) 个人学习、学术研究、非商业原型验证、开源社区贡献等非商业场景,可免费使用本项目,需严格遵守GPL-3.0协议的开源义务,完整协议详见 [LICENSE-GPL-3.0](LICENSE-GPL-3.0)。 ### 商业闭源授权 任何将本项目用于闭源商业产品、商业服务、盈利性项目的行为,均需提前向SPHARX极光感知科技申请商业授权,获得闭源使用豁免、官方技术支持、定制化服务等权益。 商业授权详情详见 [LICENSE-COMMERCIAL](LICENSE-COMMERCIAL),授权申请请联系: - 官方邮箱:lidecheng@spharx.cn、wangliren@spharx.cn - 官方网站:https://spharx.cn © 2026 SPHARX极光感知科技,保留所有权利。