SDPS-Net 教程:自校准深度光谱立体网络
SDPS-Net项目地址:https://gitcode.com/gh_mirrors/sd/SDPS-Net
1. 项目介绍
SDPS-Net 是一个基于深度学习的无标定光谱立体视觉系统,它通过引入中间监督,有效地降低了模型的学习难度,相比单一阶段的模型有所提升。在合成数据集和真实数据集上的实验表明,SDPS-Net 在之前未经校准的光谱立体方法中表现出显著的优越性。该工作发表于 CVPR 2019,并被选作口头报告。
2. 项目快速启动
首先,确保您已经安装了必要的依赖项,如 PyTorch 和相关库。然后执行以下步骤来准备和运行 SDPS-Net:
准备数据集
sh scripts/prepare_diligent_dataset.sh
这将下载并解压缩 DiLiGenT 数据集,对原图进行中心裁剪,留出15像素的边缘。
测试 SDPS-Net
使用GPU测试(默认配置):
CUDA_VISIBLE_DEVICES=0 python eval/run_stage2.py \
--retrain data/models/LCNet_CVPR2019.pth.tar \
--retrain_s2 data/models/NENet_CVPR2019.pth.tar
或者只使用CPU:
python eval/run_stage2.py \
--cuda \
--retrain data/models/LCNet_CVPR2019.pth.tar \
--retrain_s2 data/models/NENet_CVPR2019.pth.tar
结果将在 data/models/
目录下。
自定义数据集测试
python eval/run_stage2.py \
--retrain data/models/LCNet_CVPR2019.pth.tar \
--retrain_s2 data/models/NENet_CVPR2019.pth.tar \
--benchmark UPS_Custom_Dataset \
--bm_dir data/ToyPSDataset/
对于自己的数据集,可能需要调整 run_model_opts.py
中的输入参数。
训练新模型
sh scripts/download_synthetic_datasets.sh
此命令将下载训练所需的Blobby和Sculpture合成数据集。之后,可以按照项目中的说明进行模型训练。
3. 应用案例和最佳实践
- 非朗伯表面的光谱立体重建:SDPS-Net 适用于处理具有复杂反射性质的物体,例如金属或玻璃表面。
- 实时场景监测:集成到机器人或自动驾驶系统中,用于实时获取环境三维信息。
- 产品质量检测:在制造业中,可用于高精度的产品表面缺陷检测。
为了最佳实践,建议在不同光照条件和表面材质上测试模型,并调整超参数以优化性能。
4. 典型生态项目
- Blobby 和 Sculpture 数据集:这两个公开的合成数据集用于训练 SDPS-Net 模型,提供了不同形状和光照条件下的立体图像。
- DiLiGenT 数据集:广泛使用的光谱立体评估基准,包含多种现实世界的物体。
这些项目共同构成了 SDPS-Net 研究领域的一个小生态,为光谱立体视觉的研究和开发提供了基础资源和测试平台。