发明名称 一种基于纹理优化的非同质图像合成方法
摘要 一种基于纹理优化的非同质图像合成方法,所述图像合成方法包括以下步骤:1)生成标签图A,颜色图A',新标签图B的高斯金字塔,A<sub>L</sub>,A′<sub>L</sub>,B<sub>L</sub>,B′<sub>L</sub>表示对应金字塔的第L层;2)设定初始层L,生成初始化样图;3)对不同类型的图像定义不同的全局度量准则;4)从最粗糙层L开始,对金字塔从粗糙层到精细层循环做:4.1)对该层邻域窗口金字塔winSizePyr中的每个邻域大小做:4.1.1)根据A<sub>L</sub>,A′<sub>L</sub>,B<sub>L</sub>,B′<sub>L</sub>执行M步骤,得到Match<sub>L</sub>;4.1.2)根据A<sub>L</sub>,A′<sub>L</sub>,B<sub>L</sub>,B′<sub>L</sub>,Match<sub>L</sub>执行E步骤,得到优化后的新的B′<sub>L</sub>;4.2)对B′<sub>L</sub>超采样得到B′<sub>L-1</sub>。本发明快速性良好、合成质量较高、合成效率更快。
申请公布号 CN102867290B 申请公布日期 2015.04.22
申请号 CN201210309392.0 申请日期 2012.08.28
申请人 浙江工业大学 发明人 范菁;史晓颖;汤颖;董天阳
分类号 G06T5/00(2006.01)I 主分类号 G06T5/00(2006.01)I
代理机构 杭州天正专利事务所有限公司 33201 代理人 王兵;王利强
主权项 一种基于纹理优化的非同质图像合成方法,其特征在于:所述图像合成方法包括以下步骤:1)生成标签图A,颜色图A’,新标签图B的高斯金字塔,A<sub>L</sub>,A'<sub>L</sub>,B<sub>L</sub>,B'<sub>L</sub>表示对应金字塔的第L层;2)设定初始层L,生成初始化样图;初始化过程分以下三步:首先,生成离散的纹理标签图IDA、IDB;接着,提取边缘,进行chamfer距离变换,得到距离图像DA、DB;然后,利用区域生长法生成初始化样图;IDA,IDB为对A,B进行色彩范围划分后得到的纹理标签图,A,B中具有相似颜色的区域用同一个标签来表示,距离图像中每个像素的灰度值表示其与最近边界像素的距离,可以用于边缘匹配;定义如下的度量准则:d(p<sub>A</sub>,p<sub>B</sub>)=w*||N(p<sub>A</sub>)<sub>IDA</sub>‑N(p<sub>B</sub>)<sub>IDB</sub>||<sub>chamfer</sub>+||N(p<sub>A</sub>)<sub>DA</sub>‑N(p<sub>B</sub>)<sub>DB</sub>||<sub>L2</sub> (w=1/90)   (1)该度量准则根据离散纹理标签图和距离图像来比较标签图A和B的边缘信息,其中N(p<sub>A</sub>)<sub>IDA</sub>,N(p<sub>B</sub>)<sub>IDB</sub>代表p<sub>A</sub>,p<sub>B</sub>点在IDA,IDB图中的邻域,N(p<sub>A</sub>)<sub>DA</sub>,N(p<sub>B</sub>)<sub>DB</sub>代表p<sub>A</sub>,p<sub>B</sub>在DA,DB图中的邻域,||||<sub>chamfer</sub>为邻域的chamfer距离,||||<sub>L2</sub>为邻域的L2距离;两个邻域N<sub>a</sub>、N<sub>b</sub>间的chamfer距离定义如下:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mrow><mo>|</mo><mo>|</mo><mi></mi><mo>|</mo><mo>|</mo></mrow><mi>chamfer</mi></msub><mo>=</mo><munder><mi>&Sigma;</mi><mrow><mi>p</mi><mo>&Element;</mo><mi>Na</mi></mrow></munder><munder><mi>min</mi><mrow><mi>q</mi><mo>&Element;</mo><mi>Nb</mi></mrow></munder><mi>L</mi><mn>1</mn><mrow><mo>(</mo><mi>p</mi><mo>,</mo><mi>q</mi><mo>)</mo></mrow><mo>+</mo><munder><mi>&Sigma;</mi><mrow><mi>q</mi><mo>&Element;</mo><mi>Nb</mi></mrow></munder><munder><mi>min</mi><mrow><mi>p</mi><mo>&Element;</mo><mi>Na</mi></mrow></munder><mi>L</mi><mn>1</mn><mrow><mo>(</mo><mi>p</mi><mo>,</mo><mi>q</mi><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000639863880000011.GIF" wi="1247" he="114" /></maths>L1(p,q)为两点的L1距离即曼哈顿距离,邻域chamfer距离的求法为:对邻域N<sub>a</sub>中的每个点p,在N<sub>b</sub>中找到和它具有相同标签值的q,且q和p之间的L1距离最小,如果在N<sub>b</sub>中找不到和p点具有相同标签值的点,则L1(p,q)赋值为两倍的邻域大小,将所有点的L1距离相加,对N<sub>b</sub>中的点q做同样操作,将两部分的结果相加;基于公式(1),用区域生长方法在IDA,DA中查找和IDB,DB中p<sub>B</sub>点边缘特征最相似的p<sub>A</sub>点,生成一张和IDB具有相似区域划分的初始化样图initB;具体过程如下:首先新建initB图,随机地在initB图中选取一个种子点p<sub>B</sub>进行生长,在各个方向的生长区域中,当其邻近点p<sub>B</sub>'满足检测准则就并入小块区域,当新的点被合并后,再用新的区域重复这一过程,结束条件为:(1)d(p<sub>B</sub>,p<sub>B</sub>')&lt;阈值,(2)initB中所有像素都被处理;p<sub>B</sub>和p<sub>B</sub>'点处于同一区域的判断条件如下:基于公式(1)在IDA、DA中找到和p<sub>B</sub>最相似的p<sub>A</sub>点,该区域的阈值为(d(p<sub>A</sub>,p<sub>B</sub>)+5)*1.25;若d(p<sub>A</sub>,p<sub>B</sub>')的值小于阈值,则p<sub>B</sub>和p<sub>B</sub>'属于同一区域,同时把p<sub>A</sub>点坐标赋值给initB图中p<sub>B</sub>'点;initB存储的是对应点的坐标值,根据A’图可把initB还原成颜色图colorInitB;3)对不同类型的图像定义不同的全局度量准则;定义同时度量标签图和颜色图的全局能量函数:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>E</mi><mi>TBN</mi></msub><mo>=</mo><mi>w</mi><mo>*</mo><munder><mi>&Sigma;</mi><mrow><mi>q</mi><mo>&Element;</mo><msup><mi>X</mi><mo>+</mo></msup></mrow></munder><mi>label</mi><mrow><mo>(</mo><mi>p</mi><mo>,</mo><mi>q</mi><mo>)</mo></mrow><mo>+</mo><munder><mi>&Sigma;</mi><mrow><mi>q</mi><mo>&Element;</mo><msup><mi>X</mi><mo>+</mo></msup></mrow></munder><mi>color</mi><mrow><mo>(</mo><mi>p</mi><mo>,</mo><mi>q</mi><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000639863880000021.GIF" wi="898" he="109" /></maths>其中p为A,A’中一点,q为B,B’中一点,label(p,q)和color(p,q)分别捕获了标签图和颜色图之间的匹配程度,w为权重;X<sup>+</sup>为B,B’中像素点的一个子集,对于B’中的点q(q∈X<sup>+</sup>),在样图对A,A’中找到最相似点p,使得w*||F<sub>A(p)</sub>‑F<sub>B(q)</sub>||<sup>2</sup>+||F<sub>A'(p)</sub>‑F<sub>B'(q)</sub>||<sup>2</sup>最小,F代表某点的特征,能量函数E<sub>TBN</sub>可以进一步表示为:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msub><mi>E</mi><mi>TBN</mi></msub><mo>=</mo><mi>w</mi><mo>*</mo><munder><mi>&Sigma;</mi><mrow><mi>q</mi><mo>&Element;</mo><msup><mi>X</mi><mo>+</mo></msup></mrow></munder><msup><mrow><mo>|</mo><mo>|</mo><msub><mi>F</mi><mrow><mi>A</mi><mrow><mo>(</mo><mi>p</mi><mo>)</mo></mrow></mrow></msub><mo>-</mo><msub><mi>F</mi><mrow><mi>B</mi><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow></mrow></msub><mo>|</mo><mo>|</mo></mrow><mn>2</mn></msup><mo>+</mo><munder><mi>&Sigma;</mi><mrow><mi>q</mi><mo>&Element;</mo><msup><mi>X</mi><mo>+</mo></msup></mrow></munder><msup><mrow><mo>|</mo><mo>|</mo><msub><mi>F</mi><mrow><msup><mi>A</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><mi>p</mi><mo>)</mo></mrow></mrow></msub><mo>-</mo><msub><mi>F</mi><mrow><msup><mi>B</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow></mrow></msub><mo>|</mo><mo>|</mo></mrow><mn>2</mn></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000639863880000022.GIF" wi="1061" he="129" /></maths>TBN图像大致可分为自然图像和结构性图像两类,针对不同类型的图像,选取不同的特征F,使合成结果符合人类视觉感知;对于自然纹理,简单地采用邻域颜色的L2距离作为相似性度量准则即能获得较好的结果,能量函数定义如下,N表示对应点的邻域,其中N<sub>B'(q)</sub>=N<sub>A'(S(q))</sub>;<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msub><mi>E</mi><mi>TBN</mi></msub><mo>=</mo><mi>w</mi><mo>*</mo><munder><mi>&Sigma;</mi><mrow><mi>q</mi><mo>&Element;</mo><msup><mi>X</mi><mo>+</mo></msup></mrow></munder><msup><mrow><mo>|</mo><mo>|</mo><msub><mi>N</mi><mrow><mi>A</mi><mrow><mo>(</mo><mi>p</mi><mo>)</mo></mrow></mrow></msub><mo>-</mo><msub><mi>N</mi><mrow><mi>B</mi><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow></mrow></msub><mo>|</mo><mo>|</mo></mrow><mn>2</mn></msup><mo>+</mo><munder><mi>&Sigma;</mi><mrow><mi>q</mi><mo>&Element;</mo><msup><mi>X</mi><mo>+</mo></msup></mrow></munder><msup><mrow><mo>|</mo><mo>|</mo><msub><mi>N</mi><mrow><msup><mi>A</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><mi>p</mi><mo>)</mo></mrow></mrow></msub><mo>-</mo><msub><mi>N</mi><mrow><msup><mi>B</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow></mrow></msub><mo>|</mo><mo>|</mo></mrow><mn>2</mn></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000639863880000031.GIF" wi="1132" he="126" /></maths>对于结构性纹理,将特征距离图引入结构性的TBN图像合成,来捕获纹理细节,首先得到颜色图A’的特征图,然后对其进行距离变换,得到特征距离图FDA,将其作为结构信息加入到全局能量优化的度量准则中,解决了合成图像细节特征丢失的问题,结构性纹理的能量方程定义如下:<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><msub><mi>E</mi><mi>TBN</mi></msub><mo>=</mo><mi>w</mi><mn>1</mn><mo>*</mo><munder><mi>&Sigma;</mi><mrow><mi>q</mi><mo>&Element;</mo><msup><mi>X</mi><mo>+</mo></msup></mrow></munder><msup><mrow><mo>|</mo><mo>|</mo><msub><mi>N</mi><mrow><mi>A</mi><mrow><mo>(</mo><mi>p</mi><mo>)</mo></mrow></mrow></msub><mo>-</mo><msub><mi>N</mi><mrow><mi>B</mi><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow></mrow></msub><mo>|</mo><mo>|</mo></mrow><mn>2</mn></msup><mo>+</mo><mi>w</mi><mn>2</mn><mo>*</mo><munder><mi>&Sigma;</mi><mrow><mi>q</mi><mo>&Element;</mo><msup><mi>X</mi><mo>+</mo></msup></mrow></munder><msup><mrow><mo>|</mo><mo>|</mo><msub><mi>N</mi><mrow><mi>FDA</mi><mrow><mo>(</mo><mi>p</mi><mo>)</mo></mrow></mrow></msub><mo>-</mo><msub><mi>N</mi><mrow><mi>FDA</mi><mrow><mo>(</mo><mi>s</mi><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow><mo>)</mo></mrow></mrow></msub><mo>|</mo><mo>|</mo></mrow><mn>2</mn></msup><mo>+</mo><munder><mi>&Sigma;</mi><mrow><mi>q</mi><mo>&Element;</mo><msup><mi>X</mi><mo>+</mo></msup></mrow></munder><msup><mrow><mo>|</mo><mo>|</mo><msub><mi>N</mi><mrow><msup><mi>A</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><mi>p</mi><mo>)</mo></mrow></mrow></msub><mo>-</mo><msub><mi>N</mi><mrow><msup><mi>B</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow></mrow></msub><mo>|</mo><mo>|</mo></mrow><mn>2</mn></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000639863880000032.GIF" wi="1665" he="121" /></maths>w1,w2分别为标签值和特征值的权重,对于B’中的待合成点q,它的特征值根据坐标索引s(q)在FDA中查找,该能量方程考虑结构信息相似性度量,联合图像颜色通道和特征信息通道,能使全局优化过程中在样图中找到较好的候选点;4)从最粗糙层L开始,对金字塔从粗糙层到精细层循环做:4.1)对该层邻域窗口金字塔winSizePyr中的每个邻域大小做:4.1.1)根据A<sub>L</sub>,A'<sub>L</sub>,B<sub>L</sub>,B'<sub>L</sub>执行M步骤,得到Match<sub>L</sub>,具体过程如下:保持目标纹理B,B’不变,根据特征F对目标纹理B,B’中的点q在样图纹理A,A’中找到最佳匹配点v,存在纹理Match<sub>L</sub>中,形式化的表示如下:<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><msub><mi>Match</mi><mi>L</mi></msub><mo>&DoubleLeftArrow;</mo><msub><mrow><mi>arg</mi><mi>min</mi></mrow><mrow><mi>v</mi><mo>,</mo><mi>v</mi><mo>&Element;</mo><mi>c</mi><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow></mrow></msub><mrow><mo>(</mo><msup><mrow><mo>|</mo><mo>|</mo><mrow><msub><mi>F</mi><mrow><msub><mi>B</mi><mi>L</mi></msub><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow></mrow></msub><mo>-</mo><msub><mi>F</mi><mrow><msub><mi>A</mi><mi>L</mi></msub><mrow><mo>(</mo><mi>v</mi><mo>)</mo></mrow></mrow></msub><mo>|</mo><mo>|</mo></mrow></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>|</mo><mo>|</mo><msub><mi>F</mi><mrow><msup><msub><mi>B</mi><mi>L</mi></msub><mo>&prime;</mo></msup><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow></mrow></msub><mo>-</mo><msub><mi>F</mi><mrow><msup><msub><mi>A</mi><mi>L</mi></msub><mo>&prime;</mo></msup><mrow><mo>(</mo><mi>v</mi><mo>)</mo></mrow></mrow></msub><mo>|</mo><mo>|</mo></mrow><mn>2</mn></msup><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000639863880000033.GIF" wi="1211" he="91" /></maths>采用基于k‑coherence的离散求解器进行TBN纹理优化,其中M步骤用k‑coherence搜索进行最相似邻域查找,k‑coherence搜索分为预处理和搜索合成两个阶段;在预处理阶段,对于样图A,A’中的点p,在A,A’中查找和其最相似的点,并将查找得到的点坐标值存在纹理中;在搜索阶段,对B’中的每个点q,从q的邻域中收集k‑coherence候选集c(q),在候选集中查找和q邻域最相似的点,存在Match<sub>L</sub>中;用CUDA(Compute Unified Device Architecture)架构实现时,block的个数与图像像素点个数一致,线程个数为候选点个数,一个block的任务是对一个像素点查找最相似点;首先收集k‑coherence的候选集存放在块内共享内存中,然后每个线程并行地计算一个候选集点和当前点的距离,计算结果也存放于共享内存中,当一个block内的所有线程都计算得到距离后,从块内共享内存中读取所有点的距离,查找距离最小的最相似点;4.1.2)根据A<sub>L</sub>,A'<sub>L</sub>,B<sub>L</sub>,B'<sub>L</sub>,Match<sub>L</sub>执行E步骤,得到优化后的新的B'<sub>L</sub>,具体过程如下:E步骤保持目标纹理B,B’中点在样图纹理A,A’中的最佳匹配Match<sub>L</sub>不变,根据当前目标纹理和M步骤计算得到的最佳匹配,最小化下一个目标纹理B'<sub>L</sub>,形式化的表示如下:<maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><msub><msup><mi>B</mi><mo>&prime;</mo></msup><mi>L</mi></msub><mo>&DoubleLeftArrow;</mo><msub><mrow><mi>arg</mi><mi>min</mi></mrow><mrow><mi>x</mi><mo>,</mo><mi>x</mi><mo>&Element;</mo><mi>D</mi><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow></mrow></msub><mrow><mo>(</mo><msub><mi>E</mi><mi>TBN</mi></msub><mo>)</mo></mrow><mo>;</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000639863880000041.GIF" wi="678" he="71" /></maths>采用离散优化的方法逐像素的计算目标纹理值,根据当前q点在Match<sub>L</sub>图中的邻域计算平均颜色值,平均颜色值的通道数与特征选取有关;根据B’的邻域建立候选集D(q),D(q)中和平均颜色值最相似的点被设置为B'<sub>L</sub>(q)的值,实现最小化能量函数E<sub>TBN</sub>;D(q)由k‑coherence搜索得到,和步骤4.1.1)采用的方法一样;另外在每个block中,先计算平均颜色值,然后拿候选点与平均颜色值相比较,得到优化后的点坐标;4.2)对B'<sub>L</sub>超采样得到B'<sub>L‑1</sub>,具体过程如下:对已有的坐标图B'<sub>L</sub>超采样得到B'<sub>L‑1</sub>,在超采样过程中,将图像划分为N块,每个block处理一个图像块,B'<sub>L</sub>和纹理内存相绑定,每个线程依次执行如下操作:获得B'<sub>L‑1</sub>(p)的坐标(u,v),在B'<sub>L</sub>中取坐标为(u/2,v/2)点的颜色值color,B'<sub>L‑1</sub>(p)点的值即为color*2+(u%2,v%2)。
地址 310014 浙江省杭州市下城区朝晖六区