识别屏幕上的伪影

识别屏幕上的伪影
由于信息技术发展水平的不断提高,电子文档逐年变得更加方便和需求旺盛,并开始超越传统纸质媒体。 因此,及时关注保护传统纸质介质上的信息内容,以及电子文档上的信息内容都非常重要。 每一个拥有商业、国家和其他机密的大公司都希望防止可能的信息泄漏和机密信息泄露,如果发现泄漏,则采取措施阻止泄漏并查明违规者。

关于保护选项的一些信息

为了执行这些任务,引入了某些保护元件。 这些元素可以是条形码、可见标签、电子标签,但最有趣的是隐藏标签。 最引人注目的代表之一是水印;它们可以应用于纸张上或在打印机上打印之前添加。 众所周知,打印机在打印时会添加自己的水印(黄点和其他标记),但我们会考虑可以在员工工作场所的计算机屏幕上显示的其他工件。 此类工件由特殊的软件包生成,该软件包将工件绘制在用户工作空间的顶部,从而最大限度地减少工件本身的可见性,并且不会干扰用户的工作。 这些技术在科学发展和用于呈现隐藏信息的算法方面有着悠久的根源,但在现代世界中相当罕见。 这种方法主要出现在军事领域和纸面上,用于及时识别不道德的员工。 这些技术刚刚开始引入商业环境。 现在,可见水印被积极用于保护各种媒体文件的版权,但不可见水印却相当罕见。 但它们也引起了最大的兴趣。

安全文物

识别屏幕上的伪影 人类不可见水印形成各种伪影,原则上人眼不可见,并且可以以非常小的点的形式掩盖在图像中。 我们将考虑可见物体,因为肉眼不可见的物体可能超出了大多数显示器的标准色彩空间。 这些文物由于高度隐形而具有特殊价值。 然而,让CEH完全隐形是不可能的。 在它们的实现过程中,容器图像的某种失真被引入到图像中,并且其上出现某种伪像。 让我们考虑两种类型的对象:

  1. 周期性
  2. 混沌(由图像转换引入)

循环元素表示重复元素的某个有限序列,这些元素在屏幕图像上重复多次(图 1)。

重叠图像(图 2)的各种变换可能会导致混沌伪影,例如全息图的引入。

识别屏幕上的伪影
米。 1 骑行工件
识别屏幕上的伪影
米。 2 混沌神器

首先,让我们看看识别循环伪影的选项。 此类工件可以是:

  • 文本水印在屏幕上重复出现
  • 二进制序列
  • 每个网格单元中的一组混沌点

所有列出的伪像都直接应用于显示内容的顶部;因此,可以通过识别每个颜色通道的直方图的局部极值来识别它们,并相应地剪掉所有其他颜色。 该方法涉及使用每个直方图通道的局部极值的组合。 问题在于在具有许多急剧过渡细节的相当复杂的图像中搜索局部极值;直方图看起来非常锯齿,这使得这种方法不适用。 您可以尝试应用各种过滤器,但它们会引入自己的失真,这最终可能导致无法检测到水印。 还可以选择使用某些边缘检测器(例如 Canny 边缘检测器)来识别这些伪影。 这些方法适用于在过渡过程中非常清晰的伪影;检测器可以突出显示图像轮廓,然后选择轮廓内的颜色范围对图像进行二值化,以便进一步突出伪影本身,但这些方法需要相当精细的调整才能突出显示伪影。所需的轮廓,以及图像本身相对于所选轮廓中的颜色的后续二值化。 这些算法被认为相当不可靠,并尝试使用更稳定且独立于图像颜色分量类型的算法。

识别屏幕上的伪影
米。 3 转换后的水印

至于前面提到的混沌伪影,识别它们的算法将截然不同。 由于混沌伪影的形成是通过在图像上施加某种水印来假设的,该水印是通过某些变换(例如,离散傅里叶变换)进行变换的。 这种转换产生的伪影分布在整个屏幕上,很难识别它们的模式。 基于此,水印将以“随机”伪影的形式位于整个图像中。 这种水印的识别归结为使用变换函数的直接图像变换。 转换结果如图(图3)所示。

但出现了许多问题,导致在不太理想的条件下无法识别水印。 根据转换类型的不同,可能会遇到各种困难,例如,无法识别通过相对于屏幕大角度拍摄的文档,或者只是质量相当差的照片,或者保存在高损失压缩的文件。 所有这些问题导致水印识别变得复杂;对于有角度的图像,需要对图像应用更复杂的变换或应用仿射变换,但这都不能保证水印的完全恢复。 如果我们考虑屏幕捕获的情况,则会出现两个问题:第一个是在屏幕本身上显示时的失真,第二个是从屏幕本身保存图像时的失真。 第一个非常难以控制,因为存在不同质量的监视器的矩阵,并且由于缺乏一种或另一种颜色,它们根据其颜色表示来插值颜色,从而将失真引入水印本身。 第二个更加困难,因为您可以以任何格式保存屏幕截图,因此会丢失部分颜色范围,因此,我们可以简单地丢失水印本身。

实施问题

在现代世界中,有相当多的引入水印的算法,但没有一种算法能够保证在实现后100%可能进一步识别水印。 主要困难是确定每种特定情况下可能出现的再现条件集。 如前所述,很难创建一种识别算法来考虑所有可能的失真特征并尝试破坏水印。 例如,如果对当前图像应用高斯滤波器,并且原始图像中的伪影非常小并且与图像的背景形成对比,那么要么无法识别它们,要么部分水印将丢失。 让我们考虑一下照片的情况,它很可能会出现莫尔条纹(图 5)和“网格”(图 4)。 由于屏幕矩阵的离散性和记录设备矩阵的离散性而出现莫尔条纹;在这种情况下,两个网状图像相互叠加。 网格很可能会部分覆盖水印伪影并导致识别问题;反过来,在某些水印嵌入方法中,莫尔条纹使其无法识别,因为它使图像的一部分与水印重叠。

识别屏幕上的伪影
米。 4 图像网格
识别屏幕上的伪影
米。 5 云纹

为了提高水印识别的门槛,需要采用基于自学习神经网络的算法,在运行过程中自身会学习识别水印图像。 现在有大量的神经网络工具和服务,例如来自谷歌的。 如果需要,您可以找到一组参考图像并训练神经网络识别必要的伪影。 这种方法最有希望识别高度扭曲的水印,但为了快速识别,它需要大量的计算能力和相当长的训练时间才能正确识别。

所描述的一切看起来都很简单,但是您越深入地研究这些问题,您就越了解要识别水印,您需要花费大量时间来实现任何算法,甚至需要更多的时间来使其达到所需的概率识别每个图像。

来源: habr.com

添加评论