# Specim高光谱实时分割系统

## 项目概述

本项目是一个基于Specim高光谱相机的实时分割算法推理软件，采用深度学习技术实现高光谱图像的实时分割和分类。系统使用Unet神经网络模型进行像素级分割，能够准确识别和分类不同类型的材料，并实现与分割结果同步的实时数值回归。该项目为甲方提供定制化的实时图像分析解决方案，满足特定行业应用需求。

## 技术特点

- **高光谱成像**: 使用Specim FX17/FX10+FX50高光谱相机，覆盖SWIR光谱范围
- **实时处理**: 优化的算法实现30+ fps实时识别效率，满足工业生产需求
- **深度学习**: 基于Unet架构的语义分割模型，支持多种机器学习模型载入
- **实时回归**: 实现与分割结果同步的实时数值回归分析
- **跨平台部署**: 支持C++/CUDA平台和嵌入式平台部署

## 系统架构

### 硬件组成
- Specim FX17/FX10+FX50高光谱相机
- 工业级计算机（支持CUDA加速）
- 实时线扫数据采集系统
- 嵌入式计算平台（RK系列、Jetson系列）

### 软件架构
- 实时线扫数据API接口模块
- 数据预处理和校正模块
- 深度学习模型推理模块（支持多种模型格式）
- 实时分割和回归分析模块
- 定制化工况及检测成果展示界面
- 模型接口定义和扩展模块

## 核心技术

### 高光谱图像处理
- 光谱数据校正和归一化
- 噪声抑制和滤波
- 特征提取和降维

### 深度学习模型
- **模型架构**: Unet (U-Net) + 多种机器学习模型
- **输入**: 高光谱实时线扫数据
- **输出**: 像素级分割掩码 + 实时数值回归结果
- **模型支持**: 支持甲方已研发的多套机器学习模型载入
- **推理优化**: C++/CUDA平台优化，Sklearn框架重构

### 实时分割算法
- 实时线扫数据处理
- 多尺度特征融合
- 后处理优化
- 实时数值回归同步
- 模型接口标准化

## 应用场景

- 高光谱材料分析
- 实时质量检测
- 成分含量分析
- 材料分类识别
- 工业过程监控
- 科研数据分析

## 性能指标

- **实时性能**: 30+ fps实时识别效率
- **分割精度**: 与原有算法性能相当
- **回归准确率**: 保持现有回归效果
- **处理延迟**: 毫秒级响应时间
- **系统稳定性**: 支持长时间连续运行

## 技术优势

1. **高精度**: 高光谱信息提供丰富的物质特征，支持多种模型载入
2. **实时性**: C++/CUDA优化实现30+ fps实时处理
3. **灵活性**: 支持多种机器学习模型，定义标准化接口
4. **可扩展性**: 预留API接口，支持未来硬件升级
5. **跨平台**: 支持PC平台和嵌入式平台部署

## 开发环境

- **编程语言**: C++, Python
- **深度学习框架**: 支持多种模型格式（ONNX, TensorRT等）
- **图像处理**: OpenCV, Halcon
- **机器学习**: Sklearn, 自定义C++实现
- **加速计算**: CUDA, OpenVINO
- **可视化**: 定制化工况及检测成果展示界面

## 项目结构

```
specim-hyperspectral-segmentation/
├── README.md                 # 项目说明文档
├── src/                     # 源代码目录
│   ├── api/                 # 实时线扫数据API接口
│   ├── data_processing/     # 数据预处理和校正模块
│   ├── models/             # 深度学习模型推理模块
│   ├── inference/          # 实时分割和回归模块
│   ├── visualization/      # 工况及检测成果展示界面
│   └── utils/              # 工具函数和模型接口
├── models/                 # 预训练模型和模型接口定义
├── configs/                # 配置文件
├── tests/                  # 测试代码
└── docs/                   # 技术文档
```

## 安装和运行

### 环境要求
- C++ 17+
- CUDA 11.0+ (GPU加速)
- 8GB+ RAM
- Specim相机驱动
- 支持RK系列、Jetson系列嵌入式平台

### 安装步骤
```bash
# 克隆项目
git clone [repository-url]
cd specim-hyperspectral-segmentation

# 编译C++代码
mkdir build && cd build
cmake ..
make -j4

# 配置相机
./setup_camera

# 运行实时分割
./run_segmentation
```

## 使用说明

1. **相机配置**: 连接Specim FX17/FX10+FX50高光谱相机并配置参数
2. **模型加载**: 载入预训练的深度学习模型和机器学习模型
3. **实时分割**: 启动实时分割和回归分析流程
4. **结果输出**: 通过定制化界面查看分割结果、回归数值和工况信息
5. **API接口**: 使用预留的实时线扫数据API接口进行二次开发

## 模型部署

### 模型支持
- 支持甲方已研发的多套机器学习模型载入
- 支持多种深度学习模型格式（ONNX, TensorRT等）
- 定义灵活的模型接口，便于未来模型扩展

### 模型优化
- C++/CUDA平台移植和优化
- 使用Sklearn框架重构机器学习模型
- 实现与分割结果同步的实时数值回归

### 模型评估
```bash
./evaluate --model_path models/best_model.onnx
```

## 贡献指南

欢迎提交Issue和Pull Request来改进项目。请确保：
- 代码符合PEP 8规范
- 添加适当的测试用例
- 更新相关文档

## 许可证

本项目采用MIT许可证，详见LICENSE文件。

## 联系方式

- 项目维护者: [您的姓名]
- 邮箱: [您的邮箱]
- 项目主页: [项目链接]

## 更新日志

### v1.0.0 (2023-07-XX)
- 初始版本发布
- 实现Specim FX17实时线扫数据API接口集成
- 支持Specim FX10+FX50预留API接口
- 实现30+ fps实时识别效率
- 支持多种机器学习模型载入
- 实现实时数值回归与分割结果同步
- 定制化工况及检测成果展示界面

---

*本项目为甲方提供定制化的高光谱实时分析解决方案，支持多种模型载入和实时数值回归，为高光谱技术的工业应用提供技术支撑。* 