MATLAB环境下基于深度学习的JPEG图像去块(Image Deblocking)_百度知 ...
发布网友
发布时间:2024-10-24 13:24
我来回答
共1个回答
热心网友
时间:2024-11-06 12:24
本文简要讲解如何训练一个经典的降噪卷积神经网络(DnCNN),并使用DnCNN网络减少JPEG压缩伪影(compresaion artifact)。关于所谓的压缩伪影compresaion artifact,参考相关博客。
为了描述方便,直接上英文。一旦DnCNN网络学会如何估计残差图像,就可以通过将残差图像加入到压缩后的亮度通道,然后将图像转换回RGB色彩空间以重建压缩JPEG图像的无失真版本。
图像压缩可以减少图像内存,JPEG图像格式采用了一种功能强大的压缩方法,该方法使用所谓的质量因子quality factor来指定压缩量。降低quality值会导致更高的压缩比和更小的内存占用,但会牺牲图像的视觉质量。JPEG压缩是有损的,这意味着压缩过程会导致图像丢失信息。对于JPEG图像,信息丢失显示为图像中的所谓的块效应blocking artifacts。具有高频的纹理区域(如草地和云)看起来模糊不清,而锐利的边缘,如房子的屋顶和灯塔顶部的护栏,表现出所谓的振铃效应(ringing artifacts)。
JPEG图像去块(deblocking)是减弱JPEG图像中压缩伪影的过程。本例讲解一种基于深度学习的方法,尝试将JPEG压缩伪影的影响降至最低。
DnCNN网络主要用于消除图像中的噪声,但也可以训练DnCNN以消除JPEG压缩伪影或提高图像的分辨率。本例使用DnCNN网络从头开始训练,建议使用计算能力为3.0或更高版本的支持CUDA的NVIDIA GPU,并需要并行计算工具箱。
图像的亮度通道Y通过红色、绿色和蓝色像素值的线性组合表示每个像素的亮度。作为对比,图像的两个色度通道Cb和Cr是红色,绿色和蓝色像素值的不同线性组合。DnCNN仅使用亮度通道进行训练,因为人类感知对亮度变化比颜色变化更敏感。
训练数据来自IAPR TC-12数据集,包含20,000张自然图像,包括人物、动物、城市等,约1.8GB。为了简便,将使用IAPR TC-12数据集的一小部分数据来训练网络,所有图像均为32位JPEG彩色图像。
训练图像的数量为251。准备训练数据,包括读取原始图像、创建文件夹和正确组织训练数据。指定用于渲染图像压缩伪影的质量值,质量值在[0,100]范围内。较小的质量值将导致高压缩比和更强的压缩伪影,因此对较小的质量值使用更密集的采样。
写入原始和压缩后的训练图像。定义用于训练的Mini-Batch Datastore,以将训练数据输送到网络。使用JPEGimagePatchDatastore方法从失真的输入图像中提取图形块,并从原始图像中的相应图形块中计算目标残差。图像块为网络输入,残差为网络输出。每个mini-batch包含128个大小为50x50像素的图形块。在训练期间,只会从每个图像中提取一个mini-batch,并且将从图像中的随机位置提取所有块。
设置DnCNN层并进行训练。使用dnCNNLayers函数创建DnCNN网络层,默认情况下,网络深度(卷积层数)为20。使用具有动量(SGDM)优化的随机梯度下降训练网络,使用trainingOptions函数指定SGDM的超参数。配置完训练参数后,使用trainNetwork函数训练DnCNN网络。在NVIDIA Titan X上进行训练大约需要40个小时。
现在可以使用DnCNN网络从新图像中移除JPEG压缩伪影。使用DnCNN执行JPEG图像去块的步骤如下:
· 创建具有三种不同质量值的JPEG压缩伪影的示例图像。
· 使用DnCNN网络去除压缩伪影。
· 直观地比较去块前后的图像。
· 通过量化压缩和去块后图像与未失真参考图像的相似性来评估其质量。
创建具有块效应Blocking Artifacts的示例图像,测试数据集包含21张未失真的图像。显示测试图像,选择一张图像用于JPEG图像去块的参考图像。创建三个JPEG质量值分别为10、20和50的压缩测试图像。预处理压缩图像,将压缩图像读入工作区,并展示图像。
应用DnCNN网络,执行网络的前向传播。使用denoiseImage函数对图像进行去噪,可将JPEG压缩伪影去看做一种图像噪声。色度通道不需要处理。将deblocked的亮度通道与原始色度通道连接起来,以获得YCbCr色彩空间中的deblocked图像。利用Ycbcr2rgb函数将去块后的YCbCr图像转换到RGB颜色空间,并展示去块后的图像。
将去块后的图像裁剪到指定的ROI,并显示结果。通过4个指标量化区块后的图像的质量,使用displayJPEGResults函数来计算质量指标。SSIM、PSNR、NIQE和BRISQUE分别评估图像的视觉影响、信号与干扰的比较、感知质量模型和图像质量模型。
总结本文演示如何构建和训练DnCNN网络,然后使用该网络减少图像中的JPEG压缩伪影,包括准备训练数据、创建训练图像、定义Mini-Batch Datastore、构建DnCNN网络层、设置训练参数、使用trainNetwork训练网络等步骤。在训练DnCNN网络或加载预训练的DnCNN网络后,以3个不同的质量值压缩测试图像,然后使用该网络去除压缩伪影。参考文献包括相关学术论文和资源。