文章目录
- 小波变换与python
- 小波包变换
- 小波变换与深度学习的结合
- 频域(DCT,小波变换)与CNN结合
- 超分-wavelet
- [Invertible Image Rescaling 可逆图像缩放:完美恢复降采样后的高清图片(ECCV 2020 Oral )]()
- Wavelet Integrated CNNs for Noise-Robust Image Classification, CVPR2020
- [频域深度学习 Learning in the Frequency Domain](https://zhuanlan.zhihu.com/p/112751461)
- M2TR: multi-modal multi-scale transformers for deepfake detection (多模多尺度)
- 图像细节处理
- 区分细节与噪声
- 高动态范围中的细节增强(红外)
- 多尺度细节增强
- 低照度图像处理
- 保边滤波(双边滤波与快速双边滤波)
- 双边滤波
- opencv自带的快速的边缘保留滤波算法
- 其它快速双边滤波
- fast approximate 算法(2006)
- bilateral Grid (2013)
- Bilateral Guided Upsample
- 导向/引导滤波(Guided Fliter)(2010,2013,2015)
- 引导滤波与细节增强
- Fast End-to-End Trainable Guided Filter
- 边缘损失
- CVPR2020丨SPSR:基于梯度指导的结构保留超分辨率方法
- 附录:兄弟文字
小波变换与python
【小波变换】小波变换python实现–PyWavelets[Python]小波分析库Pywavelets的常用 API[Python ]小波变化库——Pywavelets 学习笔记
多尺度几何分析(Ridgelet、Curvelet、Contourlet、Bandelet、Wedgelet、Beamlet)
小波包变换
数字图像处理——第七章(小波变换和多分辨率处理)
于正交小波变换只对信号的低频(近似)信息做进一步分解,而对高频(细节)信息不再继续分解,使得它的频率分辨率随频率升高而降低。所以小波变换能够很好地表征一大类以低频信息为主要成分的信号,但它不能很好地分解和表示包含大量细节信息(细小边缘或纹理)的信号,如非平稳机械振动信号、遥感图象、地震信号和生物医学信号等。与之不同的是,小波包变换可以对高频部分提供更精细的分解,而且这种分解既无冗余,也无疏漏,所以对包含大量中、高频信息的信号能够进行更好的时频局部化分析。
小波变换与深度学习的结合
频域(DCT,小波变换)与CNN结合
超分-wavelet
Invertible Image Rescaling 可逆图像缩放:完美恢复降采样后的高清图片(ECCV 2020 Oral )
论文地址:arXiv 代码和预训练模型:github (已放出) 网文
Wavelet Integrated CNNs for Noise-Robust Image Classification, CVPR2020
- 源码:https://github.com/LiQiufu/WaveCNet
- 网文:
Wavelet Integrated CNNs提高图像分类的噪声鲁棒性
频域深度学习 Learning in the Frequency Domain
- 源码:https://github.com/calmevtime/DCTNet
- 网文:
频域深度学习 Learning in the Frequency Domain
M2TR: multi-modal multi-scale transformers for deepfake detection (多模多尺度)
论文:https://arxiv.org/pdf/2104.09770.pdf
网文:
M2TR: 复旦提出首个多模态多尺度Transformer
我们首先利用EfficientNet作为backbone提取了网络的浅层特征,然后利用Multi-scale Transformer进行多尺度特征提取和Cross Modality Fusion进行双模态融合。
区别于ViT的地方有三点:
- 1.不是在图像取patch而是在feature map上
- 2.不同head里取的patch size不同
- 3.patch被flatten成一维经过了self-attention之后会被重新reassemble成二维得到3D feature map
Cross Modality Fusion
首先我们对图像做DCT变换,得到了频率分布图,DCT变换具有良好的性质:高频集中在左上角而低频在右下角,因此我们手动对其进行划分,得到了高、中、低三个频段的频率分量,但是频率图不具有RGB图像的视觉特征,也没有办法利用CNN进行特征提取,为此我们对三个分量进行逆DCT变换,重新得到了RGB域的表示,但是这个表示是frequency-aware的,然后利用卷积层进行特征提取。
双模态(本文指的是:RGB与频域)融合是一个长久的问题,如何良好的嵌入到transformer更是关键,一种最简单的做法、也是现在很多利用频率信息的做法就是对RGB和Frequency采用一种two-stream的双流结结构,平行操作然后在中间或者输出的地方进行融合,这种做法我不是非常赞同,因为并行结构的一个重要前提是两个模态的地位或者信息量是均衡的,但是对于Deepfake来说,频率的信息其实还是具有噪声的,比如人脸的一些部分如头发等在频率也可能集中在高频区域里,因此合适的做法是把频域作为一种辅助模态。
基于这种想法、同时受启发于transformer的query-key-value的设计,我们提出了一种QKV的方法来融合两个模态:把RGB模态作为query、frequency模态作为memory,这样的设计一方面能突出RGB的作用,另一方面能更好地发掘frequency分布里的异常区域。
图像细节处理
区分细节与噪声
IVHC (Fast image noise estimation)—对应论文:Estimation of Gaussian, signal-dependent, and processed noise in Image and Video Signals
高动态范围中的细节增强(红外)
【红外图像增强算法】数字细节增强算法的缘由与效果(我对FLIR文档详解)FLIR数字图像细节增强 (DDE)高动态范围红外图像压缩的细节增强算法研究
FlyAI小课堂:小白学PyTorch(6) CLAHE 限制对比度自适应直方图均衡化 (一般用作对基础层的处理方法)
多尺度细节增强
- 多尺度的图像细节提升(有python代码,论文:DARK IMAGE ENHANCEMENT BASED ON PAIRWISE TARGET CONTRAST AND MULTI-SCALE DETAIL BOOSTING)
- 多尺度图像细节提升(multi-scale detail boosting)Python版(算法简单清晰)
- OPENCV-高反差保留算法
高反差保留算法,先使用高斯滤波器对图像进行平滑,高斯滤波器对边缘的平滑作用更加明显,使用原图减去高斯平滑之后的图,就得到强化边缘值。通过调节高斯模糊的半径可以控制得到的边缘的强度。
高反差保留 = 原图 - 高斯模糊图
然后将原图和高反差保留图进行叠加,可以得到锐化的图像。
- 提取图像细节的两种方法(加性分解/乘性分解)
- 图像细节增强。具体四种方法:
L0平滑:L0梯度最小化,前处理后图像与原图的相似性+平滑的程度(梯度非零个数)。【迭代求解,隐式】
引导滤波:局部线性假设+L2正则约束(表示输入输出的差异)【得到滤波核,显式】
双边滤波:空间邻近度+像素值相似度(和0阶各向异性相统一,分段线性近似+FFT加速)
加权最小二乘:在保持边缘和平滑滤波之间做平衡,输出输出相似性+惩罚项(梯度大则约束小)
低照度图像处理
低光照图像增强算法汇总(retinex/LIME算法,以及神经网络)
- 图像色彩增强之python实现——MSR,MSRCR,MSRCP,autoMSRCR(对低照度图像效果好,缺点是速度太慢)
保边滤波(双边滤波与快速双边滤波)
双边滤波
- 基本原理:图像去噪的方法很多,如中值滤波,高斯滤波,维纳滤波等等。但这些降噪方法容易模糊图片的边缘细节,对于高频细节的保护效果并不明显。相比较而言,bilateral filter双边滤波器可以很好的边缘保护,即可以在去噪的同时,保护图像的边缘特性。双边滤波(Bilateral filter)是一种非线性的滤波方法,是结合图像的空间邻近度和像素值相似度的一种折衷处理,同时考虑空域信息和灰度相似性,达到保边去噪的目的
- 缺点:速度太慢,时间是中值滤波、高斯滤波的几十倍,难以做到实时处理。
bilateral filter双边滤波器的通俗理解
OpenCV-Python学习—图像平滑(多种滤波算法函数,包括双边滤波与联合双边滤波)
opencv自带的快速的边缘保留滤波算法
高斯双边模糊与mean shift均值模糊两种边缘保留滤波算法,都因为计算量比较大,无法实时实现图像边缘保留滤波,限制了它们的使用场景,OpenCV中还实现了一种快速的边缘保留滤波算法cv2.edgePreservingFilter(…)。
高斯双边与mean shift均值在计算时候使用五维向量是其计算量大速度慢的根本原因,该算法通过等价变换到低纬维度空间,实现了数据降维与快速计算。
经测试,处理单张图像的时间与中值滤波、高斯滤波等相似。
Opencv-快速的图像边缘滤波算法
其它快速双边滤波
图像处理:从 bilateral filter 到 HDRnet—(包括Bilateral Grid(2013)、Bilateral Guided Upsample(2016))
https://hub.fastgit.org/search?l=Python&q=fast+Bilateral+filtering&type=Repositories
fast approximate 算法(2006)
论文: A Fast Approximation of the Bilateral Filter using a Signal Processing Approach
bilateral Grid (2013)
论文:https://groups.csail.mit.edu/graphics/bilagrid/bilagrid_web.pdf
源码:https://hub.fastgit.org/qq491577803/ImageFilter/blob/main/BilateraFilter/BilateralGrid.py
将空间域和像素值域都离散化、网格化,提出了 bilateral grid 数据结构,进一步加速了计算过程.
Bilateral Guided Upsample
https://people.csail.mit.edu/hasinoff/pubs/ChenEtAl16-bgu.pdf
由于很多复杂的滤镜处理速度比较慢,一个很常用的解决思路是对原图 downsample 之后做处理,然后用 upsample 得到处理结果。这里 Kaiming He 的 guide filter 就是一个这种思路的很好的应用。而在 BGU 这个例子里,利用 bilateral grid 来做 downsample - upsample 的工作,使得效果更为出色。(xys:BGU可能比guild filter更出色)
导向/引导滤波(Guided Fliter)(2010,2013,2015)
论文:何凯明出品
[1] K. He, J. Sun, and X. Tang. Guided image filtering. In ECCV, pages 1–14. 2010.
[2] K. He, J. Sun, and X. Tang. Guided image filtering. TPAMI, 35(6):1397–1409, 2013
[3] He K, Sun J. Fast Guided Filter[J]. Computer Science, 2015.
源码:
python源码 https://github.com/swehrwein/python-guided-filter
https://hub.fastgit.org/bravotty/GuidedFilter pytorch版源码 https://hub.fastgit.org/perrying/guided-filter-pytorch/blob/master/guided_filter.py
此外,cv2的扩展版直接有实现。
Guide filter从命名的方法就可以看出除了需要输入图片外,还需要一个guide image(导向图)。导向图 可以是一副单独的图像,也可以是需要处理的输入图像.当引导图像就是输入图像本身的时候,导向滤波就变成了一个Edge-perserving的滤波器。
- 导向滤波比起双边滤波来说在边界附近效果较好(导向滤波的一个很好的性能就是可以保持梯度,这是bilateral可以保留便于但做不到保持梯度,因为会有梯度翻转现象。);
- 另外,它还具有 O(N) 的线性时间的速度优势。(双边滤波是O(N^2))
何凯明在2015又发表了一篇《Fast Guided Filter》的文章,阐述了一种很实用的更快速的导向滤波流程。如下所示。其本质是通过下采样减少像素点,计算mean_a & mean_b后进行上采样恢复到原有的尺寸大小。假设缩放比例为s,那么缩小后像素点的个数为, 那么时间复杂度变为(只是需要注意的是上采样和下采样本身也是有时间消化的)。
可应用在图像增强、HDR压缩、图像抠图及图像去雾等场景。
引导滤波与细节增强
基于引导滤波的高动态红外图像增强处理算法
基于非锐化掩模引导滤波的水下图像细节增强算法研究
Fast End-to-End Trainable Guided Filter
深度学习【49】Fast End-to-End Trainable Guided Filter 在这篇文章里,作者将引导图片作为神经网络的学习的一部分,根据不同的任务会自动学习出该引导矩阵。
在利用神经网络生成图片中,特别是高分辨率图片,一般其速度非常慢,比如pix2pix。该论文在引入引导滤波后只需要先生产低分辨率图片,然后将引导矩阵上采样,接着利用引导滤波公式就能够生产高分辨率的图片。这样一来主要计算都集中在低分辨率的图片上,高分辨图片生成的计算量就变得很少。
边缘损失
CVPR2020 | 高低频分离超分方案 作者希望训练过程可以聚焦于图像的边缘细节,进而有效的增强视觉质量。在这里,作者采用Canny操作提取图像的边缘,边缘损失定义如下:
CVPR2020丨SPSR:基于梯度指导的结构保留超分辨率方法
论文使用了图像的梯度信息去指导图像复原。如何通过梯度信息指导图像复原?
主要有两点:
1.SPSR 采用了一个额外的梯度分支网络,生成高分辨率梯度图,作为额外的结构先验。
2.SPSR 引入了新的梯度损失,对超分辨率图像施加了二次约束。
因此,梯度信息以及梯度 Loss 能够进一步帮助生成网络更多的关注图像的几何结构。
附录:兄弟文字