引言
摩尔纹,是一种在数码照相机或者扫描仪等设备上,感光组件出现的高频干扰的条纹,是一种会使图片出现彩色的高频率不规则的条纹。它是18世纪法国研究人员摩尔首先发现的一种光学现象,因为它是不规则的,所以并没有明显的形状规律。
虽然在一些特定场景下,通过引入摩尔纹特效,合理运用可以让画面更具有层次感和立体感,但是在大多数情况下,人们是不希望产生摩尔纹的。
如下图所示,不同尺度、频率和颜色的摩尔纹会严重降低拍摄图像的视觉质量和美感价值。在拍摄时,摩尔纹通常是由相机的图像传感器(像素网格)和被拍摄物体的某些细节(如细线、网格)之间的干涉产生的。
现如今市面上有如下几种方法来手动去除拍摄图像中的摩尔纹:
改变相机角度:在拍摄过程中,尝试调整相机的角度,观察摩尔纹的变化,找到更优的拍摄角度去除摩尔纹
改变焦点:过于清晰的焦点和高度细节可能会导致摩尔纹。适当调整焦点,改变清晰度,有助于去除摩尔纹
改变镜头焦距:尝试使用不同的焦距拍摄同一场景,找到合适的焦距去除摩尔纹
软件处理:使用图像处理软件如Photoshop等,通过调整图像的对比度、亮度、色彩等参数,可以减少或去除摩尔纹
滤镜:使用低通滤镜可以减少高频信号的干扰,从而降低摩尔纹出现的概率
但是在拍摄图像中摩尔纹的自动去除面临着巨大的挑战,其至关重要的一步是摩尔纹识别。在货拉拉的业务场景中,摩尔纹识别任务非常重要,在搬家签到、司机证件识别、车辆车贴识别等应用场景中都有涉及。
本篇内容针对摩尔纹识别任务,分别从直接方法和间接方法来介绍摩尔纹识别技术,并在最后简要介绍货拉拉在项目落地中对这些技术的实践应用。
摩尔纹识别
直接方法
直接识别摩尔纹的方法是通过传统图像处理和分析方法或者深度学习方法对输入图像进行分类,设定一个阈值以区分输入图像是摩尔纹图像还是正常图像。
传统方法
空间域特征:摩尔纹通常会在图像中形成可见的边缘或线条。具体可以使用边缘检测算法(如Sobel、Laplacian等)来识别摩尔纹
频域特征:摩尔纹通常在频域中表现为特定的峰值或重复模式。通过对图像进行傅里叶变换或小波变换,可以将图像从空间域转换到频域;然后通过分析频域中的能量分布来识别摩尔纹
统计分析特征:摩尔纹可能会在图像的统计直方图中形成特定的分布模式,而直方图统计分析通常会结合LBP(二值局部模式)方法,分析这些模式有助于识别摩尔纹。
深度学习方法
构建一个深度学习模型。这个模型通常是卷积神经网络,而卷积神经网络(CNN)通常包含多个卷积层,池化层,以及全连接层。卷积层用于提取图片中的特征,池化层用于降低数据的维度,全连接层用于特征分类。利用摩尔纹图片和正常图片来训练该卷积神经网络,最终通过分类的数值大小实现对摩尔纹的识别。如下图所示
目前大多数摩尔纹识别的直接方法是先用传统方法对输入图像做预处理,提取边缘特征或频率特征,抑或是统计特征,然后将所提取的特征输入到卷积神经网络中进行分类,从而区分正常图像和摩尔纹图像。
间接方法
基于间接方法识别摩尔纹主要分为两个步骤,第一步是对输入图像(正常图像和摩尔纹图像)进行去摩尔纹,第二步是比较去摩尔纹后前后图像的差异,找出一个通用的合理阈值,以此来鉴定输入图像是正常图像还是摩尔纹图像。
去摩尔纹模型
近几年去摩尔纹模型发展比较迅速,主要应用在底层视觉任务中,分别有MBCNN,WDNet和ESDNet等。本文简单介绍其中一款较为鲁棒和高效的模型ESDNet。
如下图所示,ESDNet采用编码器-解码器网络作为其主干网络,通过跳跃连接来保持高分辨率信息,以便于恢复去摩尔纹的图像。ESDNet的核心是SAM模块,它使用金字塔结构来提取不同尺度的特征,通过双线性插值生成不同分辨率的特征图,然后通过卷积分支进一步提取上下文信息。
另外SAM模块还包括一个动态融合模块,它通过学习动态权重来融合不同尺度的特征,这个融合过程可以根据每个图像的特点进行自适应调整。总结来说,ESDNet通过其创新的SAM模块和精心设计的网络架构,有效地解决了高清图像上的摩尔纹去除问题。
去摩尔纹前后图像差异比较
结合去摩尔纹后的图像特点,在第二步骤中采用的图像信息统计分析的方式可大致分为以下三类。
图像质量评价指标
采用图像质量评价指标进行尝试主要是基于对去摩尔纹前后图像变化的直观理解。
PSNR(Peak Signal-to-Noise Ratio)是衡量两个图像质量差异的指标,数值越大,图像内容越接近。以摩尔纹图像为例,去除摩尔纹后,会失去大量信息,导致相似度下降。相反,正常图像在去除摩尔纹后,变化较小。因此,我们可以通过设定PSNR的阈值,来判断图像是否含有摩尔纹。
SSIM(Structural Similarity Index)是一种用于测量两个图像结构相似性的指标,值越高,图像结构越相似。当摩尔纹图像去除摩尔纹后,其结构信息会有所损失,导致与原图的相似度降低。然而,正常图像在去除摩尔纹后,其结构相似度基本不变。因此,我们可以通过设定SSIM的阈值,来识别图像是否为摩尔纹图像。
MSE(Mean Squared Error)是衡量两张图像之间差异的指标,其计算方式是对应像素之间的差值平方的平均值。MSE越高,表示两张图像之间的差异越大。和PSNR与SSIM一致,即认为摩尔纹图像经过去摩尔纹后与其自身的MSE理论上大于正常图像经过去摩尔纹后与其自身的MSE。
CIEDE(Color Difference and Error)是表示两张图像之间的颜色差异或感知差异的指标。理由同上述PSNR、SSIM和MSE。
采用经验权重对上述四种指标的值进行加权。因为上述这四种指标表现的图像变化信息各有侧重,利用加权的方式得出一个综合得分,从而能够兼顾图像上各类信息的变化。
高频信息统计
摩尔纹属于图像上高频信息的一种,带摩尔纹图像去摩尔纹后,某个高频频段统计量应该会明显下降,相反没有摩尔纹的图像去摩尔纹后,不会出现明显下降,以此来作为判据去区分原图是否为摩尔纹图像。
融合高频信息和颜色度量的复杂度:DDA 结合统计图像高频信息和颜色度量的方法,用于评估摩尔纹的复杂度,并根据复杂度选择不同模型去处理。简单来说,我们可以用这种方法计算图像去除摩尔纹前后的复杂度。正常图像去除摩尔纹后,复杂度变化小。而摩尔纹图像去除摩尔纹后,复杂度差异大。如果差异超过一定阈值,就可以判断摩尔纹被去除,从而分类为摩尔纹图像。
高频段统计量差异量:使用傅立叶变换获取正常图像和摩尔纹图像经过去摩尔纹后前后各自的图像频域表示,然后通过频域分析计算各自高频频段统计量的差异。直观上正常图像经过去摩尔纹后的前后高频段统计量差异理论上小于摩尔纹图像经过去摩尔纹后的前后高频统计量差异,可在其中选择合适阈值来区分原图是否为摩尔纹图像。
频谱形态学处理前后变化:对傅立叶变换后的频谱图做中心化和二值化,然后进行形态学处理(腐蚀和膨胀),只保留较大的联通域。直观上,正常图像经过去摩尔纹网络后的频谱图在形态学处理后的前后变化理论上不大,而摩尔纹图像的则应该有消失的区域,且这种消失区域的位置应该存在一定规律。
信息熵差异
将图像转换为灰度图并计算直方图,然后归一化直方图,最后计算信息熵。直观上,正常图像经过去摩尔纹网络后的前后信息熵变化理论上小于摩尔纹图像经过去摩尔纹网络后的前后信息熵变化。甚至理想程度上,摩尔纹图像的信息熵变化应该是负的,因为信息熵是用来衡量图像灰度级分布的不确定性或复杂性的指标。摩尔纹类似高频噪声,去除摩尔纹的过程会导致图像中的灰度分布更趋于均匀,减少不确定性,通常会降低图像的信息熵。而正常图像的信息墒变化应该是正的,因为正常图像没有摩尔纹可以去除,但经过去摩尔纹模型后,通常会引入了一些新的信息,从而增大了信息墒。
实践
在货拉拉的各项业务流程中,我们采用了先进的摩尔纹识别算法,以提高工作效率和准确性。在搬家签到、司机证件识别、车贴审核等业务场景中,这种算法发挥了重要作用。它能够有效地鉴别翻拍图片,从而减少了审核人员的工作量,提高了审核的准确性和效率。
在搬家签到业务场景中,司机需要提交签到照片,我们的系统会通过摩尔纹识别算法来判断这张照片是否为翻拍,从而确保签到的真实性。这不仅可以防止欺诈行为,也可以提高我们的服务质量。在司机证件识别和车贴审核的过程中,我们也使用了摩尔纹识别算法。通过这种方式,我们可以快速准确地识别出翻拍的证件和车贴,从而避免了可能的欺诈行为,保证了业务的正常运行。
总体而言,摩尔纹识别算法在货拉拉的各项业务中发挥了重要作用,它不仅提高了我们的工作效率,也保障了业务的安全性和准确性,下面我们对搬家签到业务场景进行详细说明。
搬家签到
在货拉拉的搬家签到业务中,在搬家小哥对用户的家具、电器进行打包之前,系统会有一个搬家签到的任务。这个任务的目的是为了确认搬家小哥已经到达用户的家中,并且准备开始搬家工作。这是一个非常重要的步骤,因为它可以保证搬家业务的安全性和可靠性。
然而,每天都有数以万计的搬家任务需要进行签到,尤其是在非工作日,这对货拉拉的审核人员来说是一个巨大的挑战。因为有些虚假的搬家签到图片难以识别,这就需要我们的审核人员花费更多的时间和精力去进行人工审核。这不仅效率低下,而且还可能出现误判的情况。
为了解决这个问题,我们开始研究如何利用深度学习模型对虚假签到图片进行自动审核。我们的目标是通过深度学习模型,自动识别出虚假的搬家签到图片,从而减少人工审核的工作量,并提高审核的准确性和效率。我们收集了一些虚假的搬家签到图片,如下图所示,它们可能是由于各种原因被伪造的。我们通过深度学习模型,可以有效地防止欺诈行为,保证搬家业务的安全性。
针对上述场景,我们利用摩尔纹识别的方法来构建深度学习模型,以此来鉴别签到图片是正常图片还是带摩尔纹图片,然后针对被模型鉴别为摩尔纹的图片再过一遍人工筛选,进行最终的确认。前期我们经过摸索,采用摩尔纹识别的直接方法来构建深度学习模型,但无论是传统方法,还是深度学习方法,还是传统方法+深度学习方法组合,都无法完美地解决这个问题,或多或少会带来召回高,精度低,或者精度高召回低,总之无法达到令业务方满意的地步。
近几年,扩散模型发展特别迅猛。自2015年在国际机器学习大会(ICML)发表的一篇利用非均衡热力学做无监督学习的论文 ,扩散模型的数学理论就此诞生。随后2020年DDPM 首次将扩散模型应用于图像生成领域,通过扩散过程引入噪声,再通过逆扩散过程去除噪声,还原干净图像,自此扩散模型在图像生成领域大放异彩。后来Stable Diffusion 引入文字来生成图像,并且做成了可应用的文生图工具,扩散模型可谓是“炙手可热”,如今我们也利用了扩散模型来处理摩尔纹。
我们借鉴最新的扩散模型技术DIAD ,如下图所示,扩散模型有两个过程,一个加噪过程,一个去噪过程。与传统的扩散模型不同,在训练阶段,DIAD仅使用正常图片去训练。更为独特的是,DIAD在去噪过程中不仅将噪声图像作为输入,还将原始图像作为另一输入。处理原始图像的部分被称为SG模块,它能在保留原始图像的语义信息的同时,重建摩尔纹区域。然后,SG模块的输出被用来引导不同尺度的噪声图像进行去噪,最终得到重建图像。在推理采样过程中,如果输入的是摩尔纹图像,那么根据SG模块的引导功能,最终能够重建出一幅去除摩尔纹的图像。如果输入的是正常图像,那么将重建出正常图像。
具体运用在摩尔纹识别任务中如下:第一步我们仅使用正常的签到图片去训练扩散模型(去摩尔纹模型),第二步我们利用相应的差异比较方法区分输入图片是否为摩尔纹图片。其中训练好的扩散模型能做到在推理采样过程中无论输入图片是摩尔纹图片与否,模型的输出图片都是正常图片,如果输入输出两者有差异,那模型可以认定该图片为虚假签到图片。
总结展望
摩尔纹识别作为一项相对简单的任务,其核心挑战在于如何实现高召回率和低误判率。这需要我们在算法设计和模型优化上下足功夫,以提升识别的准确性和效率。在扩散模型的应用上,我们看到了一种有效的解决方案。在摩尔纹识别任务中,我们借助了扩散模型来模拟和预测正常图片的形成和变化过程,再通过差异比较方法来鉴别摩尔纹图片。
展望未来,我们将进一步研究和优化扩散模型在摩尔纹识别中的应用。我们将探索更多的算法策略,以提升模型的性能和稳定性。同时,我们也将关注新的技术和方法,争取为摩尔纹识别领域带来更大的进步。