一种基于摩尔纹的摄屏图片溯源方法
技术领域
本发明属于光学领域,涉及一种基于摩尔纹的摄屏图片溯源方法。该方法利用计算机图像学,填补了摄屏图片无法溯源的空白。
背景技术
当两个空间图案相互叠加时,由于光学图案的非线性作用,原始图案上将产生新的可见图案,即摩尔纹。以灰度图像为例,在灰度图像中,每个点(x,y)被赋予0到1之间的值,表示其光反射程度:0表示黑色(即无反射),1为白色(即全反射),中间值为中间色调。假设m是两层图像m1和m2的叠加:
m(x,y)=m1(x,y)×m2(x,y)
其中,m1和m2是频率分别为f1和f2的余弦周期函数,则可得:
m=m1×m2
=(a1+b1cos(2πf1t))×(a2+b2cos(2πf2t))
=a1a2+a1b2cos(2πf2t)+a2b1cos(2πf1t)
+b1b2cos(2π(f1+f2)t)+b1b2cos(2π(f1-f2)t)
因此,两个余弦周期函数的叠加产生两个附加频率(f1+f2)和(f1-f2)。由于人眼对低频信号更加敏感,(f1-f2)频率分量更易于观测。类似地,当m1和m2是一般曲线图案,其中m1=p1(φ1(x,y))和m2=p2(φ2(x,y))时,可以使用卷积定理计算它们叠加图案m的频谱,如下所示:
其中M,M1和M2分别代表m,m1和m2的傅里叶变换,表示2D卷积。根据光学中的摩尔纹模型,周期函数和相位函数是独立的,可以单独计算。设mnl代表m1和m2叠加产生的非线性分量,频率为(f1-f2)。由于mnl也是曲线图案,可以将其写为mnl=pnl(φnl(x,y))。分解可计算其周期函数pnl(u)和相位函数φnl(x,y),如下所示:
pnl(u)=IFT(FT(p1(u))·FT(p2(-u)))
φnl(x,y)=φ1(x,y)-φ2(x,y)
其中FT(T)和IFT(T)分别是输入T的傅立叶变换和傅里叶反变换,p1(u),p2(u),φ1(x,y)和φ2(x,y)是m1和m2对应的周期和相位函数。以上分析基于灰度图像,若为彩色图像,将上述方法应用于每个颜色通道即可。
智能手机摄像头感光部件也是一个非线性系统,其非线性由相机传感器上的色彩滤波阵列(CFA)引起,因此在拍摄空间图案时可能产生摩尔现象。色彩滤波阵列CFA是一种使用在像素传感器上的微小颜色滤波器,用于捕获颜色信息。拜耳滤波器是智能手机内置摄像头中最常用的色彩滤波阵列,它以2×2矩阵的形式提供了红、绿和蓝三种光线的强度。当智能手机拍摄显示设备时,显示设备屏幕像素点投影到相机传感器上形成具有空间频率f1的光栅,CFA形成具有空间频率f2的另一层光栅。当相机相对显示设备位于适当的距离和角度时,空间频率(f1-f2)的差值落在可观察的频率范围内,满足最低能量的要求,照片上就会表现出纹波图像,即摩尔纹。
本发明利用智能手机摄像头存在的非线性作用,提出基于摩尔纹的摄屏图片溯源办法。根据建立的人眼色彩感知模型,生成不同能量的摩尔纹光栅带,进而对设备信息进行编码,生成摩尔水印。当通过智能手机拍摄嵌入了摩尔水印的显示设备后,可以对照片中的摩尔纹能量特征进行分析得到设备信息。
在现有技术背景下,基本没有方法能够解决摄屏图片溯源的难题,本发明方法可以通过摩尔水印的嵌入和提取实现摄屏图片的溯源。
发明内容
本发明的目的在于针对现有技术的不足,提供一种基于摩尔纹的摄屏图片溯源方法。根据建立的人眼色彩感知模型,实现显示设备摩尔水印的嵌入,通过对电子摄像头拍摄到的图片中摩尔纹的分析得到显示设备的唯一编号信息,达到溯源目的。
本发明的基于摩尔纹的摄屏图片溯源方法,包括以下步骤:
1)获取待测设备当前显示页面可嵌入摩尔水印的区域的色彩信息;
2)建立人眼感知模型,以步骤1)获得的色彩信息以及待测设备的唯一编号作为人眼感知模型的输入,生成对应的光栅带,即摩尔水印,将生成的摩尔水印替换至步骤1)中所述的区域上;
3)使用智能手机或者其他具有电子摄像头的设备拍摄该显示设备,获得待溯源摄屏图片。
4)对于待溯源图片,利用摩尔纹特征进行图像切割,得到含摩尔水印的有效区域,对摩尔水印进行ACE色彩增强、饱和度增强,然后对摩尔水印进行有效色彩像素、形状、饱和度的数学统计分析,再通过K-means算法进行聚类运算,实现嵌入信息的提取,达到溯源目的。
上述技术方案中,进一步的,步骤1)中所述的获取当前显示页面可嵌入摩尔水印区域的色彩信息的方法如下:
(1)对显示设备当前显示页面进行实时截图,利用聚类算法得到当前页面中纯色区域S_p的位置,然后在纯色区域内进行滑窗操作,得到可嵌入摩尔水印区域S_e的准确位置信息(start_x,start_y)以及高度S_height和宽度S_width。
(2)对S_e区域中的像素进行RGB分析,得到RGB三个通道的像素值VR,VG,VB。
进一步的,步骤2)中所述的人眼色彩感知模型建立过程如下:
根据人眼对光线的感知连续性,当光栅足够细时(光栅宽度为显示器两个单位分辨率宽度),人眼对显示器色彩的感知会进行一个等效均值滤波处理。等效过程可量化为算数平均值:
其中Veye为人眼感知的两条光栅的能量,V1,V2分别是两条光栅各自的能量,这里的光栅能量就是像素值。然后利用Gamma Correction理论校正光栅能量。Gamma描述了相机或荧幕的非线性反应的现象,当一个相机接收到两倍于原来照片的光强时,相机不会把新照片的像素数据保存成两倍的RGB值,人眼对色彩深浅的感知与光强直接相关。主流相机的成像格式为JPG,在这种格式下,相机成像对光强非线性的处理是将感光部件得到的图像像素值数据进行映射,映射函数为:
其中Vstore是相机拍摄图片存储的像素值,Vsensor是相机感光部件实际接收到的光强对应的像素值,gamma为校正参数,常见显示器的校正参数为2.2,苹果公司的Retina屏幕校正参数为1.8。对于显示器,也会有类似的光强和像素值之间非线性的关系,所以显示器在显示图片时,为了还原图片的真实观感,也需要一个映射关系:
Vdisplay=g(Vstore)=(Vstore)gamma
其中Vdisplay为显示器显示图片时实际输出真实观感对应的像素值,显然,两种映射关系是互补的。
根据人眼对色彩感知的连续性,对显示器色彩感知的等效均值滤波进行量化,对于单一通道的灰度图,建立如下模型:
其中δ为均值滤波后的光栅能量与原参考能量(Vaim)gamma(Vaim为嵌入区域的背景颜色的像素值)的相对误差,针对给定的光栅能量基值Vbase,使dis从0-Vbase逐渐变化,当相对误差出现极小值时,即得到了此Vbase对应下的光栅能量差disbase,Vbase在Vaim±10范围内取值,不同的Vbase对应不同的光栅能量,光栅能量基值与嵌入区域背景颜色像素值之差越大,则光栅能量越高。
对于RGB三通道,建立如下模型:
先将嵌入区域的背景颜色RGB像素值VR,VG,VB按照下式转换为灰度图格式:
Vgray=0.2989VR+0.5870VG+0.1140VB
在计算某个通道的disbase时,固定另外两个通道的像素值(如VG,VB)不变,在该通道像素值(VR)±10范围内取值作为V,使dis从0-V逐渐变化,求V+=V+dis、V_=V-dis 新的该通道像素值,代入上述转换公式中求得Vgray+和Vgray-。当相对误差出现极小值时,即得到了此V对应下的光栅能量差disbase。
将步骤1)获得的色彩信息输入上述模型,最终选出两组Vbase-disbase,一组为高能量光栅,记为VbaseH-disbaseH,一组为低能量光栅,记为VbaseL-disbaseL。
进一步的,步骤2)中所述的待测设备信息对应摩尔水印的生成方法如下:
将待嵌入设备唯一编号信息转换为二进制序列,在序列前端加设一位起始位为1,在后端加设一位停止位为1,起始位与停止位间的二进制序列按照单极性不归零电平码规则进行编码获得要嵌入的二进制序列信息。
将需要嵌入的二进制序列信息code={S1,S2,…,SN}作为摩尔水印的输入,将待嵌入区域水平维度均分为N个光栅带,若Si=1,则对应光栅带里像素点有:
若Si=0,对应光栅带里像素点有:
其中V1,V2是相邻两光栅的像素值,整个光栅带区域里光栅按照水平维度交替存在。
最后用生成的摩尔光栅带取代待嵌入区域,显示在显示设备上。
进一步的,步骤3)中所述的待溯源摄屏图片的获得过程中需要拍摄设备满足最低的像素要求,以及避免拍摄时过剧烈的抖动。
进一步的,步骤4)中所述的嵌入信息的提取过程如下:
对摩尔水印进行有效色彩像素、形状、饱和度数学统计分析可得到四个维度特征class_red,class_green,class_blue,class_hsv,其中class_red用摩尔纹红色能量像素点数量表征,class_green用摩尔纹绿色能量像素点数量表征,class_blue用摩尔纹蓝色能量像素点数量表征。
(1)本发明中,摩尔纹的特征可概括为在纯色背景上会出现红绿蓝的条纹带,对于待溯源图片,先利用现有机器学习物品识别平台分割出显示设备和环境。在显示设备区域中进行聚类,找出纯色区域的位置,然后在纯色区域内进行滑窗操作(窗口往往会设置得较小),在窗口内对摩尔纹红绿蓝条纹带的特征进行统计,如果统计结果为零,则窗口内不含摩尔纹,筛选出统计结果不为零的区域,视为摩尔水印有效区域位置。
(2)为了使待溯源图片中的摩尔纹不明显,满足人眼观感自然的要求,在步骤1)中摩尔纹光栅带的整体能量设置都较低,所以为了提取待溯源图片中摩尔纹的特征,本发明方法使用自动色彩均衡(ACE)算法增强摩尔水印有效区域。此发明对ACE算法还进行了改进,ACE算法是通过差分来计算目标点与周围像素点的相对明暗关系来校正目标点像素值,虽然增强效果好,但时间复杂度很高。其计算公式为:
其中ω()是权重系数,距离目标点越远权重越小,这里的距离可用欧氏距离表征。g() 是相对对比度调节参数,非线性的,可取计算公式为:
g(x)=max{min(ax,1.0),-1.0}
其中a为控制参数,值越大,细节增强越明显。
根据算法实际效果,发现ACE算法有两个规律:①对一幅图像I进行ACE增强后得到输出Y,再对Y进行一次ACE增强,输出仍是Y本身;②对一幅图像I进行ACE增强后进行尺寸缩放得到Y,对Y进行ACE增强,输出仍是Y本身。根据这两个规律,可得到快速ACE增强算法:对待增强的图片I进行有限次的尺寸缩小,对缩小后的图片进行ACE 增强,然后对增强结果逐级尺寸放大即可得到原图ACE增强结果。
(3)对摩尔水印进行有效色彩像素、形状、饱和度数学统计分析可得到四个维度特征 class_red,class_green,class_blue,class_hsv,其中class_red用摩尔纹红色能量像素点数量表征,class_green用摩尔纹绿色能量像素点数量表征,class_blue用摩尔纹蓝色能量像素点数量表征。摩尔纹颜色能量像素点定义计算公式为:
其中Vi_max/Vi_min分别是每个像素点RGB三个通道中像素值的最大值和最小值, N_pixel是某个区域中像素点的数量,α是调整因子,由它判断每个像素点属于背景点还是摩尔纹特征点。根据每个像素点最大像素值出现在哪个通道来将count加到哪个数量表征上,如果是R通道,则对class_red加1,如果是G通道,则对class_green加1,如果是B通道,则对class_blue加1。
摩尔纹除色彩特征外,灰度和饱和度上的特征依然明显。饱和度特征用class_hsv表征,将待溯源图片的摩尔纹有效区域经过饱和度增强后,将其从RGB色彩空间转换到HSV色彩空间,在HSV空间中,图片中每个像素的饱和度可直接从S通道读取。
饱和度增强采用饱和度调整算法,先将图片转换到HSL色彩空间,L通道表示像素点的明度,首先设置饱和度调整的百分比P,如果P≥0,先计算一个调整系数β:
其中S为像素点的当前饱和度,调整后的图像RGB通道像素值为:
RGB′=RGB+β′·(RGB-255·L)
如果P<0,β=P,调整后的图像RGB通道像素值为:
RGB′=255·L+(RGB-255·L)·(1+β)
只要设置好调整百分比大于0,就可以实现图像饱和度增强。
在增强后的整幅图片中心区域(1/4面积)对所有像素点的饱和度求平均值S_ave和标准差S_std,根据计算公式:
σ=S_ave+th·S_std
得到饱和度阈值σ,其中th为概率因子,一般th=1.5。以σ为饱和度阈值,记录下每个区域中超过饱和度阈值的像素点数量count_hsv,该数量会因为摄像头聚焦位置的不同在不同区域呈现极大的差别,所以再使用一个激活函数来尽量减小聚焦位置的影响。激活函数定义为:
激活函数的输入x就是前面统计的count_hsv,通过数据可视化操作,可以将摩尔纹有效区域以水平宽度方向按照fsigmoid进行展开得到count_hsv随水平距离的变化波形,设置阈值得到每个波峰波谷的宽度,波峰代表1,波谷代表0,将每个波峰或波谷的宽度作为class_hsv。
每个光栅带对应特征向量为λ=[class_red,class_green,class_blue,class_hsv],以光栅带的特征向量进行聚类,聚类算法为K-means,将所有光栅带聚成两类,分别对应1和0,得到提取结果。
本发明的有益效果是:
本发明利用拍摄电子显示设备经常出现的摩尔纹现象,实现了对摄屏图片关于显示设备信息的准确溯源。在现有技术背景下,因为诸多噪声、干扰的存在,没有很有效的方法能实现对任意摄屏图片的溯源。与传统的嵌入所谓的盲水印实现溯源相比,因其需要实现肉眼不能解码的要求,盲水印的能量一般很低,其是否有效往往取决于于待溯源照片的来源,现有的盲水印技术能正常工作仅限于屏幕截图操作,如果使用摄像头对嵌入盲水印的显示设备进行摄屏操作,引入的各种噪声和干扰,外加摄像头相对显示设备距离、角度的不同引起的照片扭曲、拉伸和平移都会对盲水印所含信息造成致命影响。而本发明提出的摩尔水印方法,充分利用光学领域中对显示设备、电子摄像头、人眼对光线的非线性作用的相关研究,经过大量实验验证(不同显示设备、不同摄屏手机、不同主流应用软件主题),溯源准确率对图像噪声、环境光线、距离、平移等因素不敏感,在摄像头相对显示设备偏移±15°范围内也能实现高准确率的溯源,本发明方法的认证准确率在93%以上。
附图说明
图1是本发明方法中摩尔水印嵌入的一种具体方法流程图;
图2是本发明方法中摩尔水印提取的一种具体方法流程图;
具体实施方式
下面结合实施例和说明书附图对本发明做进一步说明。
本发明实施例的方法流程,如图1,2所示。
本发明的基于摩尔纹的摄屏图片溯源方法,包括以下步骤:
1)首先是摩尔水印的生成和嵌入过程,具体如下:
(1)运行当前应用软件的插件程序,对显示设备当前显示页面进行截图;
(2)利用聚类算法找出截图中的纯色区域,在纯色区域中进行滑窗操作,得到摩尔水印待嵌入区域的位置信息、尺寸信息以及RGB各个通道的像素值VR,VG,VB;
(3)以VR,VG,VB作为人眼色彩感知模型的输入,得到两组不同能量(disbase)的光栅数据VbaseH,VbaseL;
(4)将需要嵌入的二进制序列信息code={S1,S2,…,SN}作为摩尔水印的输入,将待嵌入区域水平维度均分为N个光栅带,若Si=1,则对应光栅带里像素点有:
其中V1,V2是相邻两光栅的像素值,整个光栅带区域里光栅按照水平维度交替存在。
若Si=0,对应光栅带里像素点有:
(5)用摩尔水印光栅带替换待嵌入区域,插件程序将嵌入摩尔水印后的截图显示在显示设备上;
(6)当显示设备当前显示页面发生改变时,重复运行整个摩尔水印嵌入过程。
2)使用摄像头拍摄已嵌入摩尔水印的显示设备得到待溯源照片,接下来是溯源过程,具体步骤如下:
(1)根据摩尔纹特征量化模型,在待溯源照片中找出摩尔纹的可能存在区域;
(2)对摩尔纹区域分别进行两种图像增强,一种是ACE增强,得到增强图片E1,另一种是饱和度调整增强,得到增强图片E2;
(3)对E1进行色彩能量像素点数量统计,先将摩尔纹区域在水平维度上进行均分,然后进行红绿蓝三种色彩的像素点数量统计,得到class_red,class_green,class_blue,最后进行归一化,计算公式为:
(4)对于E2,在摩尔纹区域内对像素点就水平维度进行饱和度数量统计并画出特性曲线,对特性曲线采用汉明窗低通滤波器去除高频尖峰,设置阈值,得到特性曲线波峰波谷的宽度class_hsv_i,再进行归一化,得到C_hsv;
(5)经过前四步操作,可以得到每个均分区域对应的摩尔纹四维归一化特征向量
λi=[C_red,C_green,C_blue,C_hsv]
采用K-means++聚类算法对N个特征向量进行聚类,类型种数设置为2,聚类结果就是嵌入的二进制序列。