dehazing
图片去雾工具包,它通过深度卷积网络(DNN)对图片进行去雾处理。
特性
- 基于深度学习的高效去雾算法
- 支持 GPU 加速(CUDA)
- 简洁易用的 API 接口
- 支持与 image 库集成进行图像处理
快速开始
使用 cargo 安装 dehazing 与 image 库:
示例代码
以下是一个完整的示例,展示如何使用 dehazing 对图像进行去雾处理:
let device = cuda_if_available.unwrap;
let base_dir = env!;
// 加载预训练模型
let model = with_device.unwrap;
// 打开输入图像
let img = open.unwrap;
// 将图像转换为 RGB8 格式并转换为 Tensor
let raw = img.to_rgb8.into_vec;
let data = from_vec
.unwrap
.to_dtype
.unwrap
.broadcast_div
.unwrap
.permute
.unwrap
.unsqueeze
.unwrap;
println!;
// 进行去雾推理
let out = model.forward.unwrap;
// 处理输出张量
let out = out.squeeze.unwrap; // 移除批次维度 [c, h, w]
let = out.dims3.unwrap;
// 将输出张量转换为图像数据
let image_data: = out
.permute
.unwrap // [H, W, C] 符合图像布局
.flatten_all
.unwrap
.
.unwrap
.iter
.map
.collect;
// 保存图像
let img_out =
from_raw.expect;
img_out.save.expect;
println!;
模型说明
本项目基于 DehazeNet 架构实现了一个端到端的去雾模型。该模型使用深度卷积神经网络来预测大气光和透射图,从而恢复清晰图像。
设备支持
- CPU:默认支持
- GPU(CUDA):可通过
candle-core的 CUDA 支持启用
确保你的系统安装了合适的 CUDA 驱动,并在编译时启用 cuda 特性。
依赖项
candle-core:用于张量计算和深度学习模型构建image:用于图像加载和保存
目录结构建议
编译与运行
确保你已经安装 Rust 工具链,并使用以下命令运行项目:
如果希望启用 GPU 支持,请确保 candle-core 启用了 cuda 特性。
注意事项
- 输入图像需为
.png或支持的格式 - 输出路径
result/需提前创建 - 若未找到图像或模型加载失败,程序将抛出错误信息
贡献
欢迎提交 PR 和 Issue 反馈!请遵循项目的编码风格和文档规范。
许可证
本项目采用 MIT License。详情请参阅 LICENSE 文件。
更多信息
如需了解模型细节、性能评估或训练方法,请查阅项目的官方文档或相关论文。