DA-CLIP中关于图像退化检测和复原处理,推理过程代码的整体理解(三)

这篇文章算是前两篇文章后面所有工作的汇总吧。然后埋下一些坑有时间再完善相关的解读。

1.前述成果

 前两篇文章中主要讲解了windows下DA-CLIP的部署和app.py中关于演示代码非检测复原部分的讲解。

DA-CLIP深度学习图像复原项目运行指导(一)_基于clip模型的图像修复-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_60350022/article/details/136688746?spm=1001.2014.3001.5502项目演示代码讲解——以DA-CLIP深度学习图像复原项目为例(二)-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_60350022/article/details/136817365?spm=1001.2014.3001.5502

2.个人心路历程

这篇文章拖了差不多将近一个月,内容也比较复杂需要大量铺垫,讲讲都做了些什么吧。

3.12前在整理多任务图像复原相关论文,与我的本科毕设相关。当时也看了Restormer、DeblurGAN啥的,选择DA-CLIP项目的主要原因是readme提供了有Gradio界面的信息,这样我运行起来更改方便很多,其次是退化类型多样,并且有退化类型检测这个模块,非常契合我的毕设要求,没看之前确实没找到有关退化类型分类的相关文章,还想着是不是要弄个分类器。

第一周:花了一天左右安装环境运行项目,接下来整理app.py演示代码非检测复原部分的运行逻辑,写第二篇文章。解决运行项目留下来的一些问题并完善第一篇文章。

第二周:退化类型检测相关对CLIP系列从论文到代码定义调用过程进行梳理。研究了一些生成数据集的代码。

第三周:这个时间已经接近4月1日毕设初稿提交时间。但是一、系统能运行但是没有我的工作点二、原理还没理清IRSDE论文和检测复原模块代码还没整理。只能先开论文,按照一天一章的进度和一天进行14小时的实验、论文整理折磨之后顺利提交初稿。期间尝试使用额外数据集old photo进行训练。在train的时候卡住了,tensor size不匹配,一时半会解决不了。也是搞了那么久才发现原理DA-CLIP和IRSDE作者是同一个团队,之前的文章解读都没提到这回事。Orz

第四周:论文进行一些格式修改、查重。没啥问题后摆烂几天。

第五周:没工作没考上研晚上睡不着一个通宵解决了train的报错问题,但是训练参数设置和对比学习过程没看,没跑什么结果。现在整理工作准备答辩。

3.相关工作CLIP、open_clip、BLIP、SDE、IRSDE

3.1CLIP,论文使用该模型架构训练具有退化意识的模型da_clip

推荐小白先看b站沐神的CLIP论文精讲,可以快速了解模型结构、实验对比、成果、不足等各方面

下文是相关的精讲总结

李沐论文精读系列四:CLIP和改进工作串讲(LSeg、GroupViT、VLiD、 GLIPv1、 GLIPv2、CLIPasso)_n-vocabulary object detection via vision and langu-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_56591814/article/details/127421979?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171082962316800185832229%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=171082962316800185832229&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-1-127421979-null-null.142%5Ev99%5Epc_search_result_base7&utm_term=%E6%9D%8E%E6%B2%90clip%E7%9A%84%E5%AE%9E%E9%AA%8C&spm=1018.2226.3001.4187#t21根据沐神b站的论文精讲最后的小实验,我也根据代码做了一下复现实验,还是挺有意思的,确实能看出来CLIP图文训练时可能也包含某种“偏见”。通过代码可以了解CLIP 的使用过程和基本结构

沐神CLIP论文精读中的小实验-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_60350022/article/details/136842756?spm=1001.2014.3001.5501

拿部分LQ图像进行CLIP退化准确率检测。实验显示对CLIP的结果基本差不多,然后acc较低的inpainting,可能是词没弄对?但是确实不容易识别

CLIP退化类型检测小实验-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_60350022/article/details/136879790 DA-CLIP 退化检测代码,只在演示代码上做了修改。如果想要进行完整的测试,需要完善一下图像输入和指标计算相关代码,可以参考下面3.5模型评估test.py文件的相关代码。

【DA-CLIP】图像退化类型检测功能演示代码-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_60350022/article/details/137832065?spm=1001.2014.3001.5502

在模型训练选择的测试集训练集上确实能够达到十边形战士,个个都是近1的概率。

部分网上找的照片,人眼能确定的多雾、低光照、阴影遮挡等也能有很高的识别准确率。

3.2open_clip是clip的开源实现,包含训练、测试、模型结构、开源数据集等相关代码。论文在该仓库基础上添加了自定义了daclip_model.py和daclip_ViT-B-32.json等文件

openai clip官方仓库主要关注于模型的原始实现,在自定义和扩展性方面提供的支持较少,未公开论文原始训练数据集。

 open_clip使用开源数据集训练,如LAION(Large-scale Image-Text Open-domain Non-Aligned)数据集,这是一个非常大的非对齐图像-文本数据集。该仓库也提供了更细粒度的控制选项,如梯度检查点、多种数据源的混合训练等。

博主对该仓库主要模型定义代码model.py进行了简单分析

open_clip仓库成分与模型文件model.py 介绍icon-default.png?t=N7T8http://t.csdnimg.cn/qzQwJ

 在此基础上回顾app.py文件中关于DACLIP模型创建过程【3万字代码解读】DA-CLIP/open_clip模型创建、模型配置读取、预训练权重地址读取_open-clip-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_60350022/article/details/137052422

3.3BLIP,论文使用该模型生成所需的干净图像caption,并组合形成图像-文本-退化类型对


DA-CLIP关于使用BLIP生成数据集的代码注释icon-default.png?t=N7T8https://mp.csdn.net/mp_blog/creation/editor/136825949?not_checkout=1

博主对DA-CLIP的生成数据集的相关代码进行解读,包含使用BLIP的小demo

【DA-CLIP】Windows下使用clip_interrogator/BLIP进行生成图像-文本-退化类型数据集的generate_caption.py代码运行逻辑_blip模型代码-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_60350022/article/details/137061820

 关于BLIP的代码和原理,还没了解为什么BLIP代码需要CLIP代码相关去生成caption,但有了CLIP模型创建过程方便我理解BLIP的模型创建和debug,上面这篇文章主要是解决运行bug 。

【DA-CLIP】生成图像描述generate_captions.py代码理解+实践-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_60350022/article/details/137180758这篇文章是生成caption和图像文本对的csv成功运行。

3.4训练过程

有了数据集train.csv和val.csv可以开始训练模型了。

【DA-CLIP】使用train.py训练_torch was not compiled with flash attention-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_60350022/article/details/137186089这篇文章主要是解决运行报错,将命令行输入进行训练转为运行py文件

【DA-CLIP】The size of tensor a (39) must match the size of tensor b (77) at non-singleton dimension 1-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_60350022/article/details/137507694这篇文章是对训练报错进行探究和解决

训练过程代码讲解先欠着,好像只从CLIP训练你想要退化类型的退化意识DA-CLIP

3.5模型评估

保存复原图像,计算并记录每个图像的PSNR、SSIM和LPIPS分数,打印出这些分数的平均值。

【DA-CLIP】test.py解读,调用DA-CLIP和IRSDE模型复原计算复原图与GT图SSIM、PSNR、LPIPS-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_60350022/article/details/137381378?spm=1001.2014.3001.5502

3.6SDE,论文使用改进的IRSDE进行图像复原

扩散模型。主要是逆扩散公式。score得分计算。博主还在学习中。

代码应该是从IRSDE项目改进过来的。但是是如何完成从单任务单模型,到一个模型处理那么多任务的转变这个研究先欠着

【IR-SDE】Image Restoration SDE项目演示运行app.py-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_60350022/article/details/137690246?spm=1001.2014.3001.5502这是对IRSDE项目的derain模型演示运行讲解。

其他研究也先欠着,(暂时还不知道研究啥

[DA-CLIP]中图像复原IR-SDE模型创建和定义代码-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_60350022/article/details/137093518回到DA-CLIP项目,这篇对里面的IRSDE模型创建代码解读

【DA-CLIP】复原过程代码解读-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_60350022/article/details/137699012这篇文章从app.py运行使用到的IRSDE上下文代码调用过程深入解读。

encode_image图像编码过程生成image_context, degra_context。过程代码溯源与解析。

【DA-CLIP】encode_image图像编码过程和IRSDE对image_context,、degra_context的使用-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_60350022/article/details/137692282?spm=1001.2014.3001.5502这个生成过程代码可以理解控制器与图像编码器的区别与联系

内容嵌入和退化嵌入使用过程的Prompt和交叉注意力机制代码。

image_context,、degra_context使用过程的Prompt和交叉注意力机制代码-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_60350022/article/details/138222225?spm=1001.2014.3001.5501

代码和IRSDE论文里公式参数的一一对应关系

4.论文相关

我的思路是论文+代码研究。基于以上学习基本理解该框架图。

  • 35
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值