在网络信息社会,数字图像是人们获取信息的一个重要来源,成为人们进行信息交流的重要媒介。然而,在一些运用场合,数字图像的拥有者和使用者都不希望在图像存储、图像传输、图像使用等过程中被非法浏览或者处理;例如在文物保护领域,珍贵的文物图像、壁画图像在存储、传输、使用等环节都需要进行加密处理。随着计算机技术和网络技术的不断发展,传统的数字图像加密技术总体而言变得保密性不高,在实际应用中需要加以改进,近几年来,基于混沌系统理论的加密算法是一个重要的研究方向。
作为机器视觉领域的一个重要研究方向,双目立体视觉一直是热点和难点;其基本原理是从两个不同视角观察同一场景中的物体,以获取在不同视角下的二维图像,通过成像几何原理和视差原理来重建场景中物体的三维轮廓、位置等信息具体原理如图1所示。
图1中下标2表示左相机,r表示右相机。世界坐标系中一点A(X,y,Z)在左右相机的成像面Cl和Cr上的像点坐标分别为al(ul,vl)和ar(ur,vr)。这两个像点是同一个对象点A在左右相机成
像面上的像,它们被称为“同名点”;需要注意的是从两幅图像中找到同名点是双目立体视觉一个极其重要的问题。为了恢复对象点A在世界坐标系中的坐标,分别作像点与各自相机的光心Ol和or的连线,即投影线alOL和arol;根据三角测量原理可知投影线的交点即为对象点A(X,y,Z)。
本文的加密算法为了达到对数字图像加密/解密的目的,通过利用双目立体视觉重建原理,对图像像素颜色分量利用投影矩阵(密钥矩阵)正投影进行加密,通过反投影进行廨密。算法属于秘密分割类型,即图像信息被分割成两个密图来携带。
一、加密算法基本原理及实现
加密算法首先将像素的颜色值分量R、G、B映射到三维空间中,R、G、B分量类似于三维空间中的X、y、Z分量;再通过两个不同的密钥矩阵将映射到三维空间中的颜色值正投影到二维空间;利用密钥矩阵对R、G、B分量进行投影生成密矩阵,投影后部分颜色值信息丢失,但是这部分丢失的信息隐藏在另外一个密钥矩阵对颜色值投影产生的密矩阵中;在解码阶段,利用反投影原理及两个密矩阵信息互相补偿的原理恢复数字图像。
1、加密流程
(1)构建合适的密钥矩阵
摄像机投影矩阵是用来完成三维世界到二维图像之间的一种映射,在算法中密钥矩阵实现三维颜色空间向二维空间的投影,也是本文加密算法的密钥。像素颜色向量C用4维齐次矢量(R,G,B,1)T表示;密矩阵的元素值G表示为3维齐次矢量的形式(r,g,l)T;p表示3x4密钥矩阵。则加密过程可以表示为:
其中P包含了从颜色值空间到密矩阵元素值和姿态变换以及标定矩阵,即密钥矩阵可以分解为标定矩阵、旋转矩阵、平移矩阵。
算法中采用的两个密钥矩阵应满足:
1)小孔透视投影线性成像模型;
2)窄基线;
3)不同的标定矩阵、旋转矩阵、平移矩阵。
(2)获取密矩阵
分别将密钥矩阵P1、P2代人公式(1),对映射到三维空间的每j个颜色分量进行正投影,获得的两个兰维的密矩阵Ml、M2,如图2,图3所示。密矩阵的大小与源图像大小一致,其中元素的取值类型是双精度型。利用两个加密矩阵可以产生两幅密图,两幅密图可以分开传输,携带的信息互为补偿。
2、解码流程
(1)获取颜色空间的对象点
加密算法根据线性三角测量原理来获取对象点的位置,两幅密矩阵中坐标位置相同的元素是同名点;采用基于空间两异面同名光线的公垂线中点的方法进行颜色空间任意点的三维重建,其最优解满足最小均方误差的最小二乘解。
如图4所示,图中下标Z表示左相机,r表示右相机。某个像素颜色值C(R,G,B)在左右相机的密矩阵Cl和Cr上的“像点”的值分别为Cl(rl,gl)和cr(rr,gr)。这两个“像点”是同一个像素颜色值C的像。分别作它们与各自相机的光心ol和or的连线,即投影线CLOL和cror,,投影线的交点为颜色空间中的对象点C(R,G,B)。
但是,由于相机成像模型非理想的小孔成像、CCD成像噪音、标定参数误差等因素的影响,实际这两条投影线在颜色空间中未必相交于一点,而且这两条投影线不可能平行。因此,对于根据cl(rl,gl)和cr(rr,gr)重建C的问题可以转化为根据两条异面投影线CLOL和cror,寻找C的问题。为了保证C在密矩阵Cl和Cr上的投影点坐标尽可能地接近cl(rl,gl)和cr(rr,gr),可以使点C到投影线cl(rl,gl)和cr(rr,gr)的距离平方和最小a在算法中G的值取投影线公垂线段的中点。根据以上原理得到具体解码流程如下:
图5中:
m11,m21,m13分别表示密矩阵Ml(i=1,2)每行的前三列元素组成的行向量;W=(R,G,B)T表示原图像素颜色的分量值。
二、仿真实验结果及抗攻击性能分析
为了检验本文加密算法的性能,对其进行加密和解密实验,并对实验结果进行了分析。
1、实验结果
选取220×165的经典彩色图像Lena.jpg进行仿真实验。实验结果如图6-10所示,其中图6是原图,图7是从密矩阵1产生的密图1,图8是从密矩阵2产生的密图2,图9是解密图,图1O是改变其中任意一个3x4的密钥矩阵的任意两个元素得到的矩阵作为密钥矩阵进行解密得到的解密图。
从图9可知采用正确的密钥矩阵解密出图像较原图整体稍偏白,这是由于算法是基于二维图像恢复三维空间中物体三维几何信息的原理,而这个过程是一个不适定性问题,也即一个病态问题;所以算法属于有损加密。但是数字图像信息并不像文本信息那么敏感,可以允许一定的失真度。
例如比较图6和图9,基本上人眼察觉不出两幅图像的差别。从图7和图8可知,根据密图无法推测出原图的结构信息和像素颜色信息。
2、抗攻击性能分析
首先分析算法的密钥空间复杂度,算法密钥是透视投影矩阵,大小固定,可以分解为标定相机矩阵、旋转矩阵、平移矩阵等三个矩阵,矩阵元素在整个实数空间范围取值,所以密钥空间可以为无限大。
其次分析算法的密钥敏感性,图10是改变其中任一个密钥矩阵的任意两个元素得到的矩阵作为密钥矩阵进行解密得到的解密图,可知算法密钥的敏感性强,有较强的抵御恶意攻击的能力。
小知识之立体视觉
当闭上一只眼睛拿东西时,物件的距离和空间感会变得不一样又或是当你轮流遮盖一只眼睛看某一件近距离的东西时,有没有留意到左右眼睛所看出来的物件位置是不同的这种情况是因为人体的两只眼睛位置不同,令每只眼睛看出来的影像有所差异。当左右眼睛所看到的影像传到脑部时,脑部会将两个影像合而为一,形成对物件的立体及空间感,即是「立体视觉」。