背景介绍
本科毕业论文
本科毕业论文要求上比较感觉比较看重两点,一是格式,二是工作量。
- 格式比较繁琐,尽量参考学长学姐的范文,再加上老师和自己审查几遍差不多了。
- 工作量上,我做了运行复现、功能界面扩展和功能测试。以下为老师出题时的要求
感觉只完成了七成?
我刚开始接触感觉这个题目是比较难的那种。首先一开始我是没有听过统一图像复原(e.g.,universal image restoration,multi-task framework,Unified image restoration),之前接触 下来我 以为普遍都是某个模型方法在某个类型数据集上SOTA ,针对不同任务就算是同样的模型结构但是使用不同的模型权重文件。
而且由于之前有点深度学习基础,所以开题报告选了比较新的GRL模型作为参考,但是比较尴尬 的点是代码比较复杂不知道怎么处理ckpt文件运行模型,而且缺少运行界面设计、复原类型也较少。
7月选题、9月开题报告、1月中期审查。由于下半年在考研 ,中期审查时其实没什么成果。然后又放春节。2月底其实才真正开始研究毕设系统设计。考研出分大概率没希望了所以也没什么顾虑。
又重新做了一两周的文献研究。
后续的时间任务安排之前已经写过了DA-CLIP中关于图像退化检测和复原处理,推理过程代码的整体理解(三)http://t.csdnimg.cn/F6Upn
多任务图像复原
Context-aware Pretraining for Efficient Blind Image Decomposition
Blind Image Decomposition | 一个模型解决多个图像复原问题 - 知乎 (zhihu.com)
文章做了一个多任务图像复原方法分类,我感觉我的题目要求更接近于b,不同任务有不同编码器但使用统一的解码器 ,而DA-CLIP更接近c统一的编码器和解码器。而这个Blind Image Decomposition想实现单张图像多种复原一起进行,其实也可以借鉴,不过3月初看的时候还是个空仓库未开源代码 。
不过Blind Image Decomposition (BID) and Blind Image Decomposition network (BIDeN)是开源的。
AutoDIR:无法解决flare removal and inpainting
IPT
IPT CVPR 2021 | 底层视觉预训练Transformer | 华为开源代码解读 - 知乎 (zhihu.com)
仓库介绍
本系统项目地址https://github.com/cicada5126/daclip-IRS
简介
当前项目没有对原始项目的恢复模型结构进行任何调整,也没有重新选择用于训练和测试的数据集。而是对界面和功能进行了修改和完善,以满足本科毕业设计的设计要求。为了理解和扩展项目,在config/ ddaclip -sde/ 提供了以下界面代码功能:
- `detect_clip.py`和`detect_daclip.py`分别是使用CLIP和DA-CLIP进行退化类型检测的接口。相关的参考文章:CLIP退化类型检测小实验-CSDN博客
和【DA-CLIP】图像退化类型检测功能演示代码-CSDN博客。
-
`interface_v1.py`和`interface_v2.py`是根据本科毕业论文要求开发的修复功能。它们包括自动检测结果和手动选择所需的退化类型。人工选择的检测方法用文本编码的退化嵌入代替图像控制器的退化嵌入。v2的不同之处在于,当手动选择的结果与自动检测结果的最大值相匹配时,使用Image-controller的退化嵌入来达到最佳的恢复效果。
-
`testsingle.py`提供单个图像的PSNR、SSIM和LPIPS的计算,引用`test.py`。
Dependencies
-
OS: win11
-
nvidia:
- cuda: 12.1
-
python 3.9
本项目Python 3.9,因为在使用pipreqs导出相关依赖项时,它未能正确识别本地环境中存在的包和已导入但未实际使用的包,然后在查询PIP时将其设置为最新版本。这些要求已经经过测试,并确认在博主机器上可以运行。此项目的依赖项仅包括运行和测试所需的依赖项,不包括与训练相关的依赖项。
Python 3.8也是可接受的;您可以使用原始项目中的需求,但请注意,没有必要安装列出的所有cudnn11相关依赖项。应该根据个人的本地环境设置安装cudnn、CUDA工具包和pytorch-gpu的版本。
与原始项目的60个依赖项相比,这个项目只有16个依赖项
gradio使用的是项目里的版本,做了 一点中文修改和css修改 ,但是需要相关依赖支持所以 环境里再下载一份。
Install
If anaconda3 is used I advise you first create a virtual environment with:不指定python版本创建的 虚拟环境文件是空的
conda create --name daclip-ISR python=3.9 conda activate daclip-ISR cd yourprojdir pip install -r requirements.txt
Install pytorch for your gpu
for me:
pip install torch==2.2.1+cu121 -f https://download.pytorch.org/whl/torch_stable.html pip install torchvision==0.17.1+cu121 -f https://download.pytorch.org/whl/torch_stable.html(安装时依赖冲突所以重装torchvision )
Pretrained Models
下载两个mix版就行
界面展示
这是interfacev1的操作示意图
效果说明 : interface里 手动选择退化类型的方法 ,只在去雾、低光照、去雨上有比较明显效果 ,多雨和 JPEG有一点点接近没有效果。其它的完全没有复原效果。如果需要展示可以选择这 三类 相关数据集或图片。
模型在原数据集上的表现很完美 ,人脸 面部修复效果还比较一般,挺多图片的面部细节不行
论文 原图左边为退化图 ,右边为该方法 复原后 图像。
一些问题
- 一些 人脸图像复原退化类型检测计算为JPEG压缩伪影,可能是daclip训练的问题
- 界面的进度条实际上显示的 当前处理时间 到上一张图像处理时间的进度,后台有计算 当前模型处理的轮次和平均时间,可以优化一下gradio的 进度显示。
总结
DACLIP模块的作用分析论文图表吧,博主就不扩展了。
个人感觉这个统一图像复原还是很不错的(在复原训练测试的数据集和部分数据集外的图片 )。
原论文总结:
本文提出了DA-CLIP来利用大规模预训练的视觉语言模型作为图像恢复的通用框架。我们的方法的核心是一个控制器,它可以准确地预测来自LQ图像的退化嵌入,并控制CLIP图像编码器来输出干净的内容嵌入。为了训练DA-CLIP,我们构建了一个包含从HQ图像中合成标题的混合降解数据集。然后,使用提示学习模块和交叉注意机制,将DA-CLIP集成到下游的图像恢复模型中。对特定于退化和统一图像恢复任务的实验评估表明,DACLIP在各种退化类型中持续提高了恢复性能。另一方面,我们注意到当前的数据集很难在同一场景中恢复多个降级。在未来的工作中,我们感兴趣的是创建实用的模型,这些模型对真实世界捕获的照片更健壮,并且能够完全恢复混合退化类型的图像。