首页 > 其他分享 >ridcp_pytorch基于codebook先验知识的图像去雾模型

ridcp_pytorch基于codebook先验知识的图像去雾模型

时间:2024-09-24 09:20:02浏览次数:10  
标签:... -- ridcp RIDCP codebook python pytorch 特征

RIDCP

论文

RIDCP: Revitalizing Real Image Dehazing via High-Quality Codebook Priors

模型结构

ridcp先使用Encoder对输入进行特征提取得到Z,特征Z流向Gvq以及G,流向Gvq的Z被替换(CHM方法)为码本中的特征Zvq,然后Zvq通过Gvq获取各个层的特征Fvqi,通过G获取到的特征Fi通过与Fvqi的特征进行融合(NFA方法)得到新的特征Fi,直至G的最后一层,得到目标输出。

算法原理

用途:该算法通过有效利用先验知识(码本)来完成图像去雾功能。

原理:

  1. 融合特征(NFA),消除仅使用码本特征导致的图像失真;
  2. 使用CHM(距离计算方式)匹配更好的码本特征。

NFA

CHM

这里 z^代表通过Encoder获取到的特征, zk代表码本中的第k个特征,α 有最佳值21.25,fhk与fck为统计值。

环境配置

Docker (方法一)

docker pull image.sourcefind.cn:5000/dcu/admin/base/pytorch:2.1.0-ubuntu20.04-dtk24.04.1-py3.10
docker run --shm-size 10g --network=host --name=ridcp -v /opt/hyhal:/opt/hyhal:ro --privileged --device=/dev/kfd --device=/dev/dri --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -v 项目地址(绝对路径):/home/ -it <your IMAGE ID> bash   
pip install -r requirements.txt
BASICSR_EXT=True python setup.py develop

Dockerfile (方法二)

# 需要在对应的目录下
docker build -t <IMAGE_NAME>:<TAG> .
# <your IMAGE ID>用以上拉取的docker的镜像ID替换
docker run -it --shm-size 10g --network=host --name=ridcp --privileged --device=/dev/kfd --device=/dev/dri --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined 
<your IMAGE ID> bash
BASICSR_EXT=True python setup.py develop

Anaconda (方法三)

1、关于本项目DCU显卡所需的特殊深度学习库可从光合开发者社区下载安装: https://developer.hpccube.com/tool/

DTK驱动:dtk24.04.1
python:python3.10
torch:2.1.0
torchvision:0.16.0
torchaudio:2.1.2
deepspeed:0.12.3
apex:1.1.0

Tips:以上dtk驱动、python、torch等DCU相关工具版本需要严格一一对应

2、其它非特殊库参照requirements.txt安装

pip install -r requirements.txt

3、其他

BASICSR_EXT=True python setup.py develop

Tips: 使用阿里的pip源

数据集

下载地址(训练集):百度网盘 请输入提取码 (提取码:qqqo)

datasets
    |- clear_images_no_haze_no_dark_500
        |- xxx.jpg
        |- ...
    |- depth_500
        |- xxx.npy
        |- ...

下载地址(测试集):https://sites.google.com/view/reside-dehaze-datasets/reside-β

RTTS
    |- Annotations
        |- xxx.xml
        |- ...
    |- ImageSets
        |- Main
            |- xxx.txt
            |- ...
    |- JPEGImages
        |- xxx.png
        |- ...

训练

模型下载:百度网盘 请输入提取码 (HQPs,CHM,提取码:huea)

# 这里的X表示设备编号,如0,1,2,3
CUDA_VISIBLE_DEVICES=X,X,X,X python basicsr/train.py -opt options/RIDCP.yml

推理

模型下载:百度网盘 请输入提取码 (RIDCP,提取码:huea)

python inference_ridcp.py -i examples -w pretrained_models/pretrained_RIDCP.pth -o results --use_weight --alpha -21.25

参数说明:

  1. -i <路径>: 输入的图片或者文件夹
  2. -w <路径>: 模型参数
  3. -o <路径>: 处理完后的结果路径

result

上图是输入图像,下图是输出图像

精度

应用场景

算法类别

图像去雾

热点应用行业

交通,医疗,环保,气象

源码仓库及问题反馈

ModelZoo / RIDCP_pytorch · GitLab

参考资料

标签:...,--,ridcp,RIDCP,codebook,python,pytorch,特征
From: https://blog.csdn.net/qq_27815483/article/details/141722504

相关文章

  • 使用Python的subprocess执行另外一个python文件(应用之一是Pytorch中如何让多个不同的
    文章目录subprocess基础使用subprocess高级使用subprocess多进程subprocess执行情况在深度学习中的应用话不多说了,直接看代码。subprocess基础使用假设我要运行一个名字叫helloworld.py的文件,在主程序如下运行即可。主程序importsubprocessp=subprocess.Pop......
  • 动手学深度学习8.7. 通过时间反向传播-笔记&练习(PyTorch)
    本节课程地址:本节无视频本节教材地址:8.7.通过时间反向传播—动手学深度学习2.0.0documentation(d2l.ai)本节开源代码:...>d2l-zh>pytorch>chapter_multilayer-perceptrons>bptt.ipynb通过时间反向传播到目前为止,我们已经反复提到像梯度爆炸或梯度消失,以及需要对循环......
  • PyTorch 模型调试与故障排除指南
    在当代深度学习领域,PyTorch已成为开发和训练神经网络的主要框架之一。然而随着模型复杂度的增加和数据规模的扩大,开发者常常面临各种调试和优化挑战。本文旨在为PyTorch开发者提供一个全面的调试指南,涵盖从基础概念到高级技术的广泛内容。本指南的目标读者包括:正在学习PyTo......
  • 【已解决 含代码调试分析】pytorch的维度,为什么计算loss是0维度的,0维度是是什么?作用是
    嘿,你能搜索到这个问题,说明你说一个认真学习的同学,这个问题的细节值得思考。欢迎收藏,会持续更新。请仔细看后面的调试界面。三维维度很好理解,就是只管的认为是长宽高,你能看出下面的计算结果吗?importtorchdim_3=torch.randn(1,2,3)dim_2=torch.randn(1,2)dim_1......
  • fastsam_pytorch图像分割算法模型
    FastSAM论文FastSegmentAnything模型结构以yolov8-seg的instancesegmentation为基础,检测时集成instancesegmentation分支,主要分为两步全实例分割(allinstanceSegmentation)和基于prompt的mask输出(Prompt-guidedSelection),仅使用了2%的SA-1B数据集便得到了差不多的......
  • 《深度学习》—— PyTorch的介绍及PyTorch的CPU版本安装
    文章目录一、PyTorch的简单介绍二、pytorch的CPU版本安装三、torch、torchvision、torchaudio三个库的介绍一、PyTorch的简单介绍PyTorch是一个由FacebookAI实验室开发的深度学习框架,它基于Python,并提供了高效的GPU加速和灵活的模型定义能力。1.PyTorch的基本特点......
  • GoogleNet模型原理及Pytorch实现
    GoogleNet模型,也被称为Inception-v1,是由Google团队在2014年提出的一种深度卷积神经网络架构,专门用于图像分类和特征提取任务。该模型在ILSVRC(ImageNetLargeScaleVisualRecognitionChallenge)比赛中取得了优异成绩,其创新的核心在于引入了“Inception”模块。以下是对Goog......
  • ResNet模型原理及Pytorch实现
    ResNet(ResidualNetwork,残差网络)模型是由微软亚洲研究院的何凯明等人在2015年提出的一种深度神经网络结构。其核心原理在于通过残差连接(residualconnections)解决了深层网络训练中的梯度消失和梯度爆炸问题,使得网络可以训练得更深,性能更强。以下是ResNet模型原理的详细解析:......
  • 每天五分钟深度学习框架pytorch:pytorch中已经定义好的损失函数
    本文重点前面我们学习了pytorch中两种模式的损失函数,一种是nn,另外一种是functional,本文将讲解pytorch中已经封装好的损失函数。其实nn的方式就是类,而functional的方式就是方法。nn中使用的也是functional。损失函数中的参数无论是nn还是functional,大多数的损失函数都有size......
  • 【大模型专栏—入门篇】一文打通你的Pytorch安装
    大模型专栏介绍......