一、相关知识

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

图像处理之Texture Synthesis for Mobile Data Communications论文精读相关推荐

  1. 《Exploring Cross-lingual Singing Voice Synthesis Using Speech Data》论文阅读

    任务 歌唱合成的目的是给定乐谱和旋律, 合成歌唱音频.歌唱合成系统能够通过训练目标说话人相关的同一语言下的歌唱/语音数据来构建. 目前大多数的歌唱合成系统只支持一种语言,给定说话人的语音数据(同一语言 ...

  2. jquery html data属性,jQuery Mobile Data 属性

    jQuery Mobile Data 属性 jQuery Data 属性 jQuery Mobile 使用 HTML5 data-* 属性来为移动设备创建更具触摸友好性和吸引性的外观. 在下面的参考列 ...

  3. 开启/关闭 移动数据连接 Mobile Data

    开启/关闭 移动数据连接 Mobile Data    Dataconnection 开关的API 并没有直接提供给上层使用,不过可以通过Java的反射机制使用 ITelephony来实现. Meth ...

  4. 卷积神经网络图像纹理合成 Texture Synthesis Using Convolutional Neural Networks

    卷积神经网络的图像纹理合成 TextureSynthesis Using Convolutional Neural Networks Taylor Guo, 2017年4月29日 星期六 摘要 本文介 ...

  5. Text to image论文精读MISE:多模态图像合成和编辑Multimodal Image Synthesis and Editing: A Survey

    由于信息在现实世界中以各种形式存在,多模态信息之间的有效交互和融合对于计算机视觉和深度学习研究中多模态数据的创建和感知起着关键作用. 近期 OpenAI 发布的 DALLE-2 和谷歌发布的 Imag ...

  6. [论文精读]GRAF: Generative Radiance Fields for 3D-Aware Image Synthesis

    [论文精读]GRAF: Generative Radiance Fields for 3D-Aware Image Synthesis 目录 [论文精读]GRAF: Generative Radian ...

  7. A Glance at Secure Multiparty Computation for Privacy Preserving Data Mining论文总结

    A Glance at Secure Multiparty Computation for Privacy Preserving Data Mining论文总结 Abstract I. INTRODU ...

  8. jQuery Mobile Data 属性

    按钮 带有 data-role="button" 的超链接.button 元素.工具栏中的链接以及 input 字段都会自动渲染成按钮样式,不需要添加 data-role=&quo ...

  9. Data Mining 论文翻译:Deep Learning for Spatio-Temporal Data Mining: A Survey

    原文链接:[1906.04928] Deep Learning for Spatio-Temporal Data Mining: A Survey (arxiv.org) IEEE Transacti ...

  10. Semantic SLAM with Autonomous Object-Level Data Association 论文笔记

    Semantic SLAM with Autonomous Object-Level Data Association 系列文章 摘要&介绍 系统框架 目标检测和追踪 目标检测 物体级数据关联 ...

最新文章

  1. LeetCode Add Strings(大整数加法)
  2. Python网络请求urllib和urllib3详解
  3. Python进阶08 异常处理
  4. 如何系统学习机器学习?
  5. ubuntu 15.04 /var/log/下各个日志文件及修复无message文件和debug文件
  6. 推荐几个.NET开源图表组件 [转]
  7. the java home_the java_home environment variable is not defined correctly
  8. opencv获得图片的像素宽度_OpenCV中获取图像某一像素值
  9. 转:关于Apache与Nginx的优势比较(经典)
  10. 机器学习数学基础之微分
  11. sci期刊投稿指南 计算机科学 人工智能方向 145本sci期刊目录 从一区到四区(2022年 最新影响因子更新了)
  12. 几种RIA技术(富互联网应用程序)比较
  13. 计算机科学系绩效分配方案,山西大学计算机与信息技术学院岗位绩效实施方案.docx...
  14. C语言实现图的关键路径算法
  15. zint.dll 二维码、条形码库的获取及简单使用
  16. remapkey不能打开注册表_解除封锁注册表被禁用的几种解决办法
  17. 【Linux】进程终止与进程等待/僵尸进程与孤儿进程
  18. kubernetes-准入控制器-13
  19. Zookeeper、Curator
  20. python老王卖西瓜_搞不懂Python?大神教你用Python买西瓜!

热门文章

  1. 视频转换gif动图 - 在线gif制作工具
  2. MATLAB读取Execl数据并绘制曲线图
  3. python unmatched_Python
  4. 分布式 | zabbix 监控 dble
  5. python求最小公倍数_Python 最小公倍数算法
  6. 软件测试实习面试都问啥?
  7. 佳博打印机驱动安装方法
  8. OpenJDK构建工具IcedTea 1.7发布
  9. 【面试题】总结最高频软件测试|思维发散|计算机基础|Linux|测试用例|接口测试|等技术面试题
  10. 学习笔记-支付宝支付