IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 图像处理之Texture Synthesis for Mobile Data Communications论文精读 -> 正文阅读

[人工智能]图像处理之Texture Synthesis for Mobile Data Communications论文精读

一、相关知识

1、纹理合成方法

在这里插入图片描述

纹理合成方法 可以分为两类:一类为过程纹理合成,另一类是基于样图的纹理合成,它又可以分为基于像素的纹理合成和基于块的纹理合成

其中过程纹理合成将纹理的生长过程表达为数学公式或一个迭代运算的过 程,可以模拟出木纹、云雾、大理石以及动物身上的斑纹等多种自然纹理。

基于样图的纹理合成可以从一小块样本纹理产生出任意大小的合成纹理,而 合成纹理与样本纹理看起来好像是使用同一规则产生出来的。 基于样图的纹理合成中的基于像素的纹理合成使用方形样本图像作为模板, 通过模式匹配过程确定每个像素的颜色,而基于块的纹理合成在确保块的无缝连 续连接的前提下自适应地排列样本图像。

在本文中,主要使用的是基于像素的纹理合成

2、LBP算子

在这里插入图片描述

本文采用的数据编码方式是局部二值模式,即LBP。局部二值模式 LBP 是一种用来描述图像局部纹理特征的算子,用于纹理特征的提取。

原始的 LBP 算子定义在像素 3 * 3 的邻域内,以邻域中心像素为阈值,相邻的8个像素的灰度值与邻域中心的像素值进行比较,若周围像素值大于中心像素值,则该像素点的位置被标记为1,否则为 0。

如该图所示,第一个像素值44<邻域中心像素值83,即对应位置被赋值 0,第二个像素值118>邻域中心像素值83,即对应位置被赋值 1,以此类推即可得出 8 位位二进制序列,将这 8 位二 进制数按照顺时针方向依次排列形成一个二进制数字 0111 1100,这个二进制数字就是中心像素的 LBP 值转化为十进制为124。中心像素的 LBP 值反映了该像素周围区域的纹理信 息。

但本文中使用的是圆形 LBP 算子,是对原始 LBP 算子的一种改进,它将 3*3 邻域扩展到任意邻域,并用圆形邻域代替正方形邻域。其允许在半径为 R 的圆 形邻域内有任意多个像素点,如图所示。第一幅是半径为 1,8 个像素点的圆形 LBP 算子,第二幅图是半径为 2,16 个像素点的圆形 LBP 算子,第一幅是半径 为 2,8 像素点的圆形 LBP 算子。

给定(xc,yc)是中心像素的位置,则邻域坐标(xp,yp)可由如下公式计算,R 为圆半径。剩下的计算过程计算方法与原始 LBP 算子基本一致,其中 gc、gp 分别 是半径为 R 的圆形邻域中中心像素和 P 个周围像素值。

二、基本思想

在这里插入图片描述

首先我们将秘密信息进行分段,使用圆形LBP算子嵌入到空白图像中(此处是以 5*5 分块为例)。 对于样本纹理图像我们通过将样本图像中的不敏感颜色分量分成上、中、下 三层对已经嵌入的 LBP 编码进行着色,得到painted LBP code。最后再对该图中剩余没有着色的空白像素点进行涂层和重涂等一系列操作,提高最后生成的合成纹理图像的视觉质量。

三、具体步骤

1、嵌入

在这里插入图片描述
在这里插入图片描述

第一步是在空白图像中嵌入秘密信息,我们 以这个 0110 1011…0101 0011 秘密信息为例,文中提出的是使用 8 位为一块进行分段,嵌入到 5*5 分块中。再以 LBP1 为例,取圆半径为 2,嵌入8 位二进制秘 密信息。注意此处的嵌入顺序和文章的图2 是相同的,从右边中间开始顺时针嵌入。当然也可以有其他嵌入顺序,作者在他的 2007 年文章中《Data-Embeddable Texture Synthesis》已经说明采用这种圆形 LBP 算子时不考虑旋转不变性等约束

2、LBP编码着色

在这里插入图片描述

我们首先需要提取样本纹理图像中的所有不敏感颜色分量,然后计算出其中值,再引入一个阈值 T,将样本颜色分 成上中下三类,对于中值和和阈值 T我们后面用实例详细说明。LBP 编码根据样本颜色的三类,将中值赋值给该块中心像素,剩下的周围 8 个 LBP 编码 1 和 0 分别随机选择属于上下类的像素颜色,即二进制 1 在上类颜色中随机选择一个像 素颜色,二进制 0 在下类颜色中随机选择一个像素颜色。依次完成对各个 LBP 编码块的着色

例一 —— 理解中值

在这里插入图片描述

我们以样本纹理灰度图像为例,在其中取一个 3*3 像素的块如图所示。我们先对这 9 个像 素点进行升序排列,可以看出该行像素值的中位数是 61,它将像素值分成数量相等的两部分,这就是文章选用中值的统计意义,因为我们在为二进制 1 和 0 选择上下类像素颜色,若果上下类颜色像素个数不相等时,容易出现一类选完, 另一类还剩很多的情况,无法进行着色

那么我们可以进一步思考,为什么要是中值,不能是平均值呢?它不是反映 一组数据的相对集中的中心位置嘛?我们接着用第二个小例子来说明,我们刚才的 9 个像素值求平均值得到平均值为 124.2,它将剩下的 8 个像素值分成 5 和 3, 两边数量不相等,就容易出现上面所说的情况。

可以直接看下面一幅图理解,以平均值划分,就出现该图的情况,还有一个二进制 1 无法着色,另外剩下一个下类颜色分量。但是我们使用中值就不会出现这种情况。 其实,不使用平均值划分本质上还是平均值易受极端值的影响,比如本例 中的 255,导致数量分布不均匀,它只能在某些像素值差异不大的情况下使用

例二 —— 理解阈值T
在这里插入图片描述

以刚才的样本纹 理的灰度图像为例,我们画出其灰度直方图,并计算出最小值为 12,中值为 115, 最大值为 255。 (灰度直方图是灰度级的函数,表示图像中具有某种灰度级的像素的个数,反映 了图像中每种灰度出现的频率。灰度直方图的横坐标是灰度级,纵坐标是该灰度 级出现的频度,是图像最基本的统计特征) 接着我们为这幅灰度图像加上高斯噪声进行攻击,继续画出灰度直方图,求出最小值、中值和最大值分别为 0,116,255。

如果我们不引入阈值 T,此时我们假设一个像素值为 115.5,在原始图对应着二进制 1,当被噪声攻击时,中值发生变化,在噪声图中,115.5 对应值二进 制 0。显然,如果不引入阈值 T,我们将后面提取信息时将 1 误判成 0,无法正 确提出秘密信息。 所以我们引入阈值 T,忽略中间范围的像素值,避免提取时产生误判,且文章中给出阈值 T 的建议值为 30

3、涂层和重涂
在这里插入图片描述
首先需要在上层类和下层类中删除样本纹理图像中的高频颜色成分,提高合成纹理图像的视觉质量;然后 根据文章中的公式 2 遍历样本纹理图像,寻找最合适的样本颜色像素值依次为空白像素点进行着色。

我们来简单看一下该公式的含义,p 表示空白像素点的二维 坐标,v 表示以 p 为中心的偏移坐标集合,r 为集合 v 中的具体坐标。当合成纹 理图像中的某个位置没有着色即为 null,样本纹理图像和合成纹理图像的颜色差 异 D 即为 0;若某位置已着色,即计算颜色差值的平方和,可以简单看作两个 图像的相似度度量。遍历完整个样本纹理图像,找出总和 S 最小值,将其中心颜 色像素值赋值给合成纹理图像中的 p 处。重复此过程,直到绘制完所有像素。

其实公式 2 本质上是模板匹配,将以 p 为中心的 N 个像素的方形上下文窗口视为模板,并搜索样本中的最佳匹配区域。下面我们用具体的例子来更直观地理解整个过程。

例三 —— 理解涂层
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我们此处为了方便展示,取 w=1, N=(2*1+1)2-1=8 的窗口大小。文章中建议取 w=7 即 N=224 的窗口大小。同样, 我们需要在样本纹理图像中取的窗口大小也是 w=1 即 N=8,利用公式 2 进行计算,样本纹理图像的窗口每次移动一个像素点,依次计算,最终可以得到一个最小值 S,将该颜色像素值 cq 赋值给合成纹理图像窗口中心的未上色的空白像素点。接下来重复以上操作,可以接着得到 cr、cs、cu 等位置的颜色像素值。且随 着合成纹理图像中的着色的像素点越来越多,各个像素点着色的效果将越来越好 ,直至绘制完大部分空白像素点。

从图中可以很明显看出,边缘某些空白像素点并没有着上色,而且我们可以 知道最开始时着色时,由于周围的已经着色的像素点比较少,着色效果并不理想。 所以文章提出了筛选 LBP 颜色和重涂的过程,也就是我们接下来的两个例子需 要说明的重点。

例四 —— 理解筛选LBP颜色
在这里插入图片描述
文章中提出将嵌入的LBP 编码的周围 8 个像素点全部涂上相同的颜色,以提高对图像失真引起的位置误差 的鲁棒性。我们在左边的图中按照文章叙述将 LBP 编码周围像素涂上相同颜色, 现在来对比涂之前和涂之后有什么区别:可以很明显看出,边缘未着色的空白像素点可以着上色,且着色时可供计算的已着色的像素点变多,可以得出更好的颜色像素值,使其与周围的像素点更加相似,提高图像的视觉质量

例五 —— 理解重涂
在这里插入图片描述
注意此处给出例子和之前不 太一样,我们将 LBP 的半径缩小了,考虑一种极端情况。我们依旧取 w=1 即 N=8 的窗口大小,虽然我们已经将 LBP 周围的像素点都已经涂上相同颜色,但是在最初的几个窗口中,都是空白像素点,无法着色。只有当我们第一次涂色完成后,再进行一次涂色,原来附近没有着色的像素点在第 一次涂色过程中被着色,我们就可以将第一次剩下的没有着色的像素点进行补充着色

4、提取秘密信息

在这里插入图片描述
手机可以自动检 测正方形区域的四个角,并通过四个角的投影变换纠正失真。然后,我们 提取所有像素的编码成分,并计算其上下分类,以划分LBP 点的每个编码 成分。我们将校准后的图像分为预先定义的块数,并计算每个块内的点的 位置,从而确定其编码成分。

我们继续使用前面的例一,当我们知道一个 3*3 块的像素值,通过与 中间像素值的比较可以得出嵌入的二进制序列为 11110000。

四、总结

1、首次提出在纹理合成过程中嵌入秘密信息
2、支持打印机打印合成纹理图像并在手机上实现数据检测
3、可以嵌入比基于自然图像调制的现有技术更多的数据

论文地址:Texture Synthesis for Mobile Data Communications

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-10-08 20:42:06  更:2022-10-08 20:44:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 20:22:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码