From c25276c48127b8e8013123fbb0b1aa84cd62ca75 Mon Sep 17 00:00:00 2001 From: zhanghuilai Date: Wed, 25 Feb 2026 09:39:14 +0800 Subject: [PATCH] first commit --- README.md | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..da53350 --- /dev/null +++ b/README.md @@ -0,0 +1,171 @@ + +# 高光谱塑料分类工具 + +![CC BY-NC](https://i.creativecommons.org/l/by-nc/4.0/88x31.png) +[![Python Version](https://img.shields.io/badge/python-3.12%252B-blue)](https://www.python.org/) + +## 基于高光谱成像和深度学习的微塑料材料分类与识别工具 + +### 功能特性 +- 支持BIL格式高光谱数据读取和处理 +- 使用UNet模型进行图像分割和掩膜生成 +- 多种塑料材料的分类识别 +- 背景校正和光谱特征提取 +- 输出ENVI标准格式分类结果 + +### 安装 + +#### 前置要求 +- Python 3.12 +- CUDA (可选,用于GPU加速) +- 足够的内存处理高光谱数据 +- 固态硬盘 +#### 安装步骤 +1. 克隆仓库: + + ```bash + git clone + cd hyperspec-plastic-classification + ``` + +2. 安装依赖: + + ```bash + pip install -r requirements.txt + ``` + +### 使用方法 + +#### 基本用法 + +```bash +python main.py --bil_path /path/to/input.bil --output_path /path/to/output --model_path /path/to/model.m +``` + +#### 参数说明 + +| 参数 | 必需 | 默认值 | 描述 | +|-----------------|------|-----------------------------------------------------|--------------------------------| +| --bil_path | 是 | 无 | 输入BIL文件路径 | +| --output_path | 是 | 无 | 输出目录路径 | +| --model_path | 是 | 无 | 分类模型路径 | +| --unet_path | 否 | ./unet_pytorch/logs/best_epoch_weights.pth | UNet模型权重路径 | + +#### 示例 + +```bash +# 使用默认UNet权重 +python main.py --bil_path ./data/input.bil --output_path ./results --model_path ./models/svm.m + +# 指定所有参数 +python main.py --bil_path ./data/input.bil --output_path ./results --model_path ./models/svm.m --unet_path ./custom_unet_weights.pth + +# Windows系统示例 +python main.py --bil_path "C:\Users\HyperSpec\test\MPData2.bil" --output_path "C:\Users\HyperSpec\test" --model_path ".\classification_model\modelsave\svm.m" --unet_path ".\unet_pytorch\logs\best_epoch_weights.pth" +``` + +### 项目结构 + +``` +hyperspec-plastic-classification/ +├── main.py # 主程序入口 +├── bil2rgb.py # BIL转RGB模块 +├── unet_pytorch/ # UNet模型相关 +│ ├── predict_rgb.py +│ └── logs/ +│ └── best_epoch_weights.pth # 预训练UNet权重 +├── classification_model/ # 分类模型 +│ └── Parallel/ +│ └── predict_plastic.py +├── modelsave/ +│ └── svm.m # 预训练分类模型 +├── shape_spectral.py # 光谱特征提取 +├── shape_spectral_background.py # 背景校正 +├── requirements.txt # 项目依赖 +└── README.md # 项目说明 +``` +![img.png](img.png) +### 输入输出格式 + +#### 输入文件格式 +- BIL 格式高光谱数据文件 (.bil) +- 对应的 HDR 头文件 (.hdr) + +#### 输出文件格式 +- ENVI 分类结果文件 (.dat) +- ENVI 头文件 (.hdr) + +### 处理流程 + +1. 读取BIL格式高光谱数据 +2. 转换为RGB图像 +3. 使用UNet模型生成掩膜 +4. 提取光谱特征 +5. 应用背景校正 +6. 数据清理和过滤 +7. 使用分类模型预测材料类型 +8. 保存ENVI格式分类结果 + +### 支持的塑料类型 + +工具支持以下塑料材料的分类: + +| 类别编号 | 材料名称 | +|----------|----------| +| 1 | ABS | +| 2 | HDPE | +| 3 | LDPE | +| 4 | PA6 | +| 5 | PET | +| 6 | PP | +| 7 | PS | +| 8 | PTFE | +| 9 | PVC | + +### 依赖库 + +主要依赖的 Python 库: + +- opencv-python +- numpy +- matplotlib +- pandas +- pywavelets +- scikit-learn +- torch + +完整依赖请查看 `requirements.txt` 文件。 + +### 许可证 + +本项目采用 Creative Commons 非商业许可证。 + + + +### 常见问题 + +1. **运行时报错"ModuleNotFoundError"** + + 确保已安装所有依赖:`pip install -r requirements.txt` + +2. **处理大型文件时内存不足** + + 考虑减少处理区域或增加系统内存 + +3. **分类结果不准确** + + 检查输入数据质量,确认模型是否适合当前数据类型 + +### 联系方式 + +作者:[北京依锐思] +邮箱:[huilai_zhang@126.com](mailto:your.email@example.com) +项目地址:[https://github.com/yourusername/hyperspec-plastic-classification](https://github.com/yourusername/hyperspec-plastic-classification) + +### 更新日志 + +- v1.0.0 (2025-08-26) + 初始版本发布 + - 支持BIL格式高光谱数据处理 + - 集成UNet分割和SVM分类 + - 输出ENVI格式分类结果