针对之前数据采集过程中摩尔纹的严重干扰,导致OCR对这种图片检测与识别精度不高的问题,搜索了大量有关如何消除摩尔纹的资料,包括传统的图像处理方法以及深度学习方法,发现这篇论文无论从方法上还是效果上都挺不错的。

 

【论文题目】Moiré Photo Restoration Using Multiresolution Convolutional Neural Networks

【摘要】数码相机和手机使我们能够方便地记录珍贵的时刻。虽然数字图像质量不断提高,但拍摄高质量的数字屏幕照片仍然具有挑战性,因为照片经常被摩尔纹污染,这是相机传感器的像素网格与设备屏幕之间干扰的结果。摩尔纹会严重损害照片的视觉质量。然而,很少有研究旨在解决这个问题。在本文中,我们介绍了一种新的多分辨率完全卷积网络,用于自动从照片中去除摩尔纹。由于摩尔纹跨越很宽的频率范围,我们提出的网络在计算如何消除每个频带内的莫尔条纹之前,对输入图像执行非线性多分辨率分析。我们还创建了一个包含100,000多个图像对的大型基准数据集,用于研究和评估莫尔图案去除算法。与现有的图像恢复问题学习架构相比,我们的网络在此数据集上实现了最先进的性能。

【亮点】多分辨率全卷积网络模型、创建的大量摩尔纹干扰数据集

 

一、什么是摩尔纹?

首先,什么是摩尔纹?你有没有这样的经历,当你拍摄某些衣物,或者从显示器拍摄某些照片的过程中,会发现其中某一区域会呈现螺纹状的干扰。。没错,这就是摩尔纹。。

 

去摩尔纹算法 python 图像去摩尔纹_数据集

去摩尔纹算法 python 图像去摩尔纹_卷积_02

去摩尔纹算法 python 图像去摩尔纹_卷积_03

当两个相似,重复的线条,圆圈或点的图案与不完美的对齐重叠时,会出现一个新的动态图案。这种新模式称为摩尔纹,可能涉及多种颜色。当两个原始图案相对于彼此移动时,摩尔纹改变其元素的形状和频率。摩尔纹是大规模干涉图案。为了发生这种干涉图案,两个原始图案不能完全对齐。摩尔纹放大了错位。两种原始图案之间最轻微的错位可能会产生大规模,易于看见的摩尔纹。随着未对准程度的增加,摩尔纹的频率也可能增加。要想消除摩尔纹,必须是的屏幕点或条纹的间距小于相机像素尺寸,但这通常是不可能的。

去摩尔纹算法 python 图像去摩尔纹_数据集_04

 

二、使用全卷积网络

网络整体结构如下图所示。图像输入为256*256*3,使用非线性激活函数+卷积核,可以看出:

去摩尔纹算法 python 图像去摩尔纹_评价指标_05

去摩尔纹算法 python 图像去摩尔纹_评价指标_06

(1)网络中不采用池化层,通过步长为2的卷积核来代替池化操作。

(2)下采样过程中大量使用3*3卷积核,步长为1。

(3)在反卷积过程中,增大了图像分辨率,生成3通道像素图,最后通过叠加完成输出。

去摩尔纹算法 python 图像去摩尔纹_评价指标_07

这样,粗尺度和细尺度的图像,经过神经网络处理,可以去除低频与高频分量的摩尔纹。

为了获得更好的性能,我们在网络架构中嵌入了一个多分辨率金字塔。 与使用线性滤波构建的传统图像金字塔相比,我们的体系结构中的图像金字塔实际上是使用非线性滤波构建的,因为非线性激活始终跟随每个卷积层。 我们的金字塔中的非线性允许网络在下采样期间更有效地执行。 更重要的是,在我们的网络中,每个分辨率都与一个网络分支相关联,其中六个堆叠卷积层保持相同的分辨率。 这样的网络分支能够执行复杂的非线性变换(例如去除特定频带内的摩尔纹),并且比U-Net中的跳过连接(Skip Connection)更强大。

 

三、构建数据集

使用ImageNet ISVRC 2012中10000验证集与5000测试图像,构建了135000对图像,使用其中90%进行训练,剩下10%进行验证及预测。通过图像捕获、图像对齐等步骤收集所需要的数据。

在图像收集过程中,使用3种手机以及3种显示器,组合共有9种,共收集了135000对图像。

去摩尔纹算法 python 图像去摩尔纹_卷积_08

捕获图像的方式选择使用黑色边框覆盖图像(因黑色边框受到摩尔纹影响小)。为了增加图像对齐期间可以使用的角的个数,我们进一步从黑色边框的每个边缘拉出一个黑色块。然后,我们用纯白色填充黑色边框(和块)外面的其余部分,这使我们能够轻松检测捕获图像中的黑色边框。(如下图a所示)

去摩尔纹算法 python 图像去摩尔纹_去摩尔纹算法 python_09

在图像采集过程中,我们随机改变手机和电脑屏幕之间的距离和角度,但是需要注意的是,黑色边框是必须被采集的。

利用20个点的黑色区域的角,采集图像。但是由于摩尔纹的影响,可能会出现假角的问题,这时需要利用黑色块与白色区域的比例关系来矫正黑色区域的20个点。

最后通过手机录制视频的方式拍摄显示器上的图像,每张图片的停留时间大约0.3秒。

 

四、对比实验效果

由于我们不知道任何解决完全相同问题的现有方法,我们将我们的方法与相关图像恢复问题中的最新方法进行比较,包括图像去噪,去模糊,超分辨率和纹理去除。我们选择VDSR作为图像超分辨率算法的代表,DnCNN和IRCNN来自最新的图像去噪方法,以及RTV和SDF之间的纹理去除技术。为此,我们数据集中的摩尔纹照片的子集具有一定程度的模糊性,并且去模糊技术可以重建高频细节。我们还添加了两种最新的基于图像去模糊技术的网络模型:金字塔CNN和IRCNN。此外,由于我们采用分层网络架构,我们还将网络与图像分割神经网络U-Net进行比较。

因图像噪声与摩尔纹的原理不同(摩尔纹主要是由于光的干涉引发的现象),IRCNN对图像恢复、去噪效果好,但是摩尔纹消除不够好;金字塔卷积网络采用线性的固定的高斯滤波,U-net有着良好的统计数据,但是性能较差;纹理去除技术的RTV与SDF,使用大内核会导致图像过度平滑,小内核根本除不掉。

去摩尔纹算法 python 图像去摩尔纹_去摩尔纹算法 python_10

图像质量的主要评价指标包括峰值信噪比(Peak Signal to Noise Ratio,PSNR)与结构相似性(Structural Similarity,SSIM)。

峰值信噪比(PSNR)单位是dB,数值越大表示失真越小,PSNR是最普遍和使用最为广泛的一种图像客观评价指标,然而它是基于对应像素点间的误差,即基于误差敏感的图像质量评价。

结构相似性(SSIM)反映人眼主观感受,取值范围[0,1],值越大,图像质量越好。

 

五、模型的泛化性能与局限性

(1)泛化性能:在使用华为P9手机拍照拍出来的摩尔纹也能有效去除,且针对现实场景下密级图案(衣物、高楼)等去除效果好。

(2)局限性:①对于大的摩尔纹细节无法有效去除。②无法降低多种原因造成的图像模糊程度(例如运动拍摄、预处理中不完美的图像对齐、高频摩尔纹的破坏等)

 

【参考资料】

[1]论文下载:http://arxiv.org/pdf/1805.02996