发明名称 一种基于学的低比特率压缩图像超分辨率重建方法
摘要 本发明公开了一种基于学的低比特率压缩图像超分辨率重建方法,算法分为离线部分和在线部分。离线部分,首先采用不同压缩质量参数值对低分辨率图像进行压缩;然后对压缩图像进行滤波处理,接着将滤波后压缩图像的量化失真程度作为特征,将滤波后的LR图像按照其失真程度分为多类并建立分类样本库,然后分别用各类样本进行超分辨率模型的训练。在线部分,首先对输入图像进行滤波处理,接着判定其压缩失真类别,然后根据判定结果,选择相应类别的样本库和超分辨率模型,实现基于学的超分辨率复原。相比其他算法,本发明的方法能针对不同失真程度的输入LR图像自适应的调节与其相匹配的样本库,并能有效解决块效应失真对图像超分辨率的影响,与直接对低比特率失真图像进行超分辨率复原相比,本发明方法所重建的图像具有更高的主客观质量。
申请公布号 CN103475876B 申请公布日期 2016.06.22
申请号 CN201310379154.1 申请日期 2013.08.27
申请人 北京工业大学 发明人 李晓光;赵寒;卓力;魏振利
分类号 H04N19/86(2014.01)I;G06K9/62(2006.01)I 主分类号 H04N19/86(2014.01)I
代理机构 北京思海天达知识产权代理有限公司 11203 代理人 刘萍
主权项 一种基于学习的低比特率压缩图像超分辨率复原方法;算法分为离线部分和在线部分;所述离线部分包括4个步骤;首先将用于训练的图像样本采用不同的压缩比生成具有不同压缩质量的图像,然后进行滤波处理去除压缩失真图像中的部分块效应,接着根据压缩图像失真程度建立分类样本库并训练基于学习超分辨率复原中的预测模型,为在线部分的输入图像超分辨率复原做准备;所述在线部分包括3个步骤;实现输入低比特率压缩图像的去块效应,类别判定和最终的超分辨率复原;所述的离线部分,具体步骤如下:1.1不同CQ值对LR图像进行压缩:对m幅LR图像运用JPEG压缩方法,进行n个不同CQ值的压缩处理,生成不同压缩失真程度的样本图像共m×n幅;这里LR图像是指未经压缩的低分辨率图像,CQ值为采用JPEG对图像进行压缩时的压缩质量参数;1.2对压缩图像进行滤波处理:对1.1中得到的图像采用后处理滤波方法进行滤波处理,去除失真图像中的部分块效应;以上所述后处理滤波方法,首先对图像进行纹理分类,将图像划分为边缘区域,纹理区域和平坦区域;然后根据图像块的类型,针对性地选择不同的滤波方法对图像进行滤波;以上所述对图形进行纹理分类的具体方法为:选择Sobel算子提取图像像素点的梯度信息,采用的方向模板如公式(1):<img file="FDA0000924845630000011.GIF" wi="1797" he="270" />对于一幅图像,首先用这4个方向模板分别与该图像进行卷积,得到图像4个方向上的梯度值,对于图像中每一个点而言,由于该点拥有4个梯度值,选择4个梯度值中最大的一个作为该点的梯度值,记作g<sub>max</sub>;然后采用3种成分模型将图像分为边缘、纹理和平坦区域;具体骤是:1、计算阈值,TH<sub>1</sub>=0.12×g<sub>max</sub>和TH<sub>2</sub>=0.06×g<sub>max</sub>,其中g<sub>max</sub>是所得4个方向的整幅图像的梯度值中最大的梯度值;TH<sub>1</sub>、TH<sub>2</sub>为高低门限阈值,作为判别像素点纹理分类的依据,0.12和0.06是经验值;2、采用公式(2)将图像像素分为边缘、纹理或平坦区域;<maths num="0001"><math><![CDATA[<mrow><mfenced open = '{' close = ''><mtable><mtr><mtd><mrow><mi>e</mi><mi>d</mi><mi>g</mi><mi>e</mi><mi>p</mi><mi>i</mi><mi>x</mi><mi>e</mi><mi>l</mi><mo>,</mo></mrow></mtd><mtd><mtable><mtr><mtd><mrow><mi>i</mi><mi>f</mi></mrow></mtd><mtd><mrow><mi>G</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>&gt;</mo><msub><mi>TH</mi><mn>1</mn></msub><mo>,</mo></mrow></mtd></mtr></mtable></mtd></mtr><mtr><mtd><mrow><mi>s</mi><mi>m</mi><mi>o</mi><mi>o</mi><mi>t</mi><mi>h</mi><mi>p</mi><mi>i</mi><mi>x</mi><mi>e</mi><mi>l</mi><mo>,</mo></mrow></mtd><mtd><mtable><mtr><mtd><mrow><mi>i</mi><mi>f</mi></mrow></mtd><mtd><mrow><mi>G</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>&lt;</mo><msub><mi>TH</mi><mn>2</mn></msub><mo>.</mo></mrow></mtd></mtr></mtable></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000924845630000012.GIF" wi="1149" he="173" /></maths>其中,G(i,j)是图像中每个像素点的梯度值,当像素点(i,j)位置的梯度值大于TH<sub>1</sub>时,该像素点就被划分为边缘区edgepixel;当像素点(i,j)位置的梯度值小于TH<sub>2</sub>时该像素点就被划分为平坦区smoothpixel;如果像素点(i,j)位置的梯度值在TH<sub>1</sub>和TH<sub>2</sub>之间时该像素点就被划分为纹理区;以上所述,针对性的选择不同的滤波方法对图像进行滤波的具体方法为:对图像进行纹理划分后,根据图像块的类型,针对性地用不同的滤波方式对图像块进行滤波,具体方法如下:用滤波强度最大的滤波器去除平坦块的块效应,在滤波时只选择相邻块都是平坦块的边界;假设a,b分别为两个8×8像素大小的平坦块,且a,b的位置关系是左右相邻的,将a的右4列和b的左4列像素组成一个新的图像块c,则a、b中间的块效应将被完整地保留在c中,因此对a,b之间块效应的滤波实则是对c进行滤波操作;设c中任意一行从左到右的8个像素点依次表示为:p<sub>3</sub>,p<sub>2</sub>,p<sub>1</sub>,p<sub>0</sub>,q<sub>0</sub>,q<sub>1</sub>,q<sub>2</sub>,q<sub>3</sub>;那么对c中任意一行采用公式(3)、(4)、(5)进行滤波:p'<sub>0</sub>=(p<sub>2</sub>+2p<sub>1</sub>+2p<sub>0</sub>+2q<sub>0</sub>+q<sub>1</sub>+4)/8    (3)p′<sub>1</sub>=(p<sub>2</sub>+p<sub>1</sub>+p<sub>0</sub>+q<sub>0</sub>+2)/4    (4)p'<sub>2</sub>=(2p<sub>3</sub>+3p<sub>2</sub>+p<sub>1</sub>+p<sub>0</sub>+q<sub>0</sub>+4)/8    (5)其中p′<sub>0</sub>、p′<sub>1</sub>和p′<sub>2</sub>是p<sub>0</sub>,p<sub>1</sub>,p<sub>2</sub>经过滤波后的结果,p<sub>3</sub>点不进行处理;对q点值进行滤波时,只需在滤波器中将公式(3)、(4)、(5)中相应位置的p点像素改为q点像素,q点像素改为p点像素就可以了;即为将q<sub>0</sub>采用p<sub>0</sub>的滤波方式,q<sub>1</sub>采用p<sub>1</sub>的滤波方式,q<sub>2</sub>采用p<sub>2</sub>的滤波方式,q<sub>3</sub>采用p<sub>3</sub>的滤波方式进行滤波;当a,b的位置是上下相邻的时候,只需要将a,b同时旋转90度然后按照左右相邻的情况进行滤波即可;对于相邻块都是边缘块的情况,沿用前述中c块的组成方式得到c块,由于c中间位置的像素亮度有明显的跳变,将c的这种块效应用一个二维阶梯函数blk来模拟,如公式(6)所示:<maths num="0002"><math><![CDATA[<mrow><mi>b</mi><mi>l</mi><mi>k</mi><mo>=</mo><mfenced open = '{' close = ''><mtable><mtr><mtd><mrow><mn>1</mn><mo>/</mo><mn>2</mn><mo>,</mo><mi>i</mi><mo>=</mo><mn>1</mn><mo>,</mo><mo>...</mo><mo>,</mo><mn>8</mn><mo>;</mo><mi>j</mi><mo>=</mo><mn>1</mn><mo>,</mo><mo>...</mo><mo>,</mo><mn>4</mn></mrow></mtd></mtr><mtr><mtd><mrow><mo>-</mo><mn>1</mn><mo>/</mo><mn>2</mn><mo>,</mo><mi>i</mi><mo>=</mo><mn>1</mn><mo>,</mo><mo>...</mo><mo>,</mo><mn>8</mn><mo>;</mo><mi>j</mi><mo>=</mo><mn>5</mn><mo>,</mo><mo>...</mo><mo>,</mo><mn>8</mn></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000924845630000021.GIF" wi="1317" he="174" /></maths>其中,数值1/2和‑1/2代表了图像块c中间的阶梯效应;首先对c块中的每一行中央处像素的块效应强度进行评估,如公式(7):β=[c(i,6)‑3×c(i,5)+3×c(i,4)‑c(i,3)]/2     (7)其中β代表c块中间位置的块效应强度;然后选择一个适合的平滑函数取代产生块效应的阶梯函数,考虑到边缘块的细节信息较多,且存在块效应的位置纹理结构复杂,因此只对边界处像素进行轻微平滑,采用的平滑函数如公式(8):<maths num="0003"><math><![CDATA[<mrow><mtable><mtr><mtd><mrow><mi>f</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mrow><mo>(</mo><mfrac><mrow><mo>-</mo><mn>1</mn></mrow><mrow><mn>1</mn><mo>+</mo><mi>exp</mi><mrow><mo>(</mo><mo>-</mo><mo>(</mo><mi>x</mi><mo>)</mo><mo>/</mo><msub><mi>&beta;</mi><mrow><mi>l</mi><mi>e</mi><mi>v</mi><mi>e</mi><mi>l</mi></mrow></msub><mo>)</mo></mrow></mrow></mfrac><mo>)</mo></mrow><mo>+</mo><mn>1</mn><mo>/</mo><mn>2</mn></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>&beta;</mi><mrow><mi>l</mi><mi>e</mi><mi>v</mi><mi>e</mi><mi>l</mi></mrow></msub><mo>=</mo><mn>5</mn><mo>&times;</mo><mrow><mo>(</mo><mfrac><mn>1</mn><mrow><mn>1</mn><mo>+</mo><mi>exp</mi><mrow><mo>(</mo><mo>-</mo><mo>(</mo><mrow><mn>10</mn><mo>&times;</mo><mi>&beta;</mi><mo>-</mo><mn>50</mn></mrow><mo>)</mo><mo>/</mo><mn>10</mn><mo>)</mo></mrow></mrow></mfrac><mo>)</mo></mrow><mo>+</mo><mn>5</mn></mrow></mtd></mtr></mtable><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000924845630000031.GIF" wi="1389" he="351" /></maths>将该平滑函数进行离散化,构造出一维平滑函数:de_blk(j)=[f(‑49) f(‑35) f(‑21) f(‑7) f(7) f(21) f(35) f(49)]c'(i,j)=c(i,j)+β×[de_blk(j)‑blk(j)]        (9)这里,de_blk(j)是由f(x)产生的1×8大小的数组,c<sup>、</sup>(i,j)为c的第i行被滤波后的结果,这里c(i,j)是指c的第i行所有元素,blk(j)是指c中任意一行被模拟成blk后的值,这样图像中的每一行经过平滑后有效去除块效应;为了不使整幅图像由于滤波造成过分的模糊现象,将不对边缘块与其他类型块之间的边界做处理;对于纹理块之间的边界以及纹理块与平坦块之间的边界,采用与相邻块都为平坦块的情况相类似的滤波方法,区别在于滤波时对p<sub>2</sub>位置和q<sub>2</sub>位置的像素点不进行滤波处理,具体滤波过程如下:沿用前述中c块的组成方式得到c块;设c中任意一行从左到右的8个像素点依次表示为:p<sub>3</sub>,p<sub>2</sub>,p<sub>1</sub>,p<sub>0</sub>,q<sub>0</sub>,q<sub>1</sub>,q<sub>2</sub>,q<sub>3</sub>;那么对c中任意一行采用公式(3)、(4)进行滤波,其中p′<sub>0</sub>、p′<sub>1</sub>是p<sub>0</sub>,p<sub>1</sub>经过滤波后的结果,p<sub>2</sub>、p<sub>3</sub>点不进行处理;对q点值进行滤波时,只需在滤波器中将公式(3)、(4)中相应位置的p点像素改为q点像素,q点像素改为p点像素就可以了;即为将q<sub>0</sub>采用p<sub>0</sub>的滤波方式,q<sub>1</sub>采用p<sub>1</sub>的滤波方式,q<sub>2</sub>采用p<sub>2</sub>的滤波方式,q<sub>3</sub>采用p<sub>3</sub>的滤波方式进行滤波;当a,b的位置是上下相邻的时候,只需要将a,b同时旋转90度然后按照左右相邻的情况进行滤波即可;1.3对滤波后的图像压缩失真程度进行评估:计算每幅滤波后图像的块效应失真MSDS值,作为每幅图像的块效应失真程度评估值;MSDS值为均方斜率误差;在计算MSDS时,是计算相邻图像块边界处的像素差值和靠近边界的像素平均亮度差值,具体方法为:同前所述组成c块的方法,设块c为相邻块a和b组成的新块,则计算a和b的MSDS值如公式如(10)所示:<maths num="0004"><math><![CDATA[<mrow><mi>M</mi><mi>S</mi><mi>D</mi><mi>S</mi><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><mn>7</mn></munderover><mo>&lsqb;</mo><mi>c</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mn>4</mn><mo>)</mo></mrow><mo>-</mo><mi>c</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mn>3</mn><mo>)</mo></mrow><mo>&rsqb;</mo><mo>-</mo><mn>1</mn><mo>/</mo><mn>2</mn><mo>{</mo><mo>&lsqb;</mo><mi>c</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mn>3</mn><mo>)</mo></mrow><mo>-</mo><mi>c</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mn>2</mn><mo>)</mo></mrow><mo>&rsqb;</mo><mo>+</mo><mo>&lsqb;</mo><mi>c</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mn>5</mn><mo>)</mo></mrow><mo>-</mo><mi>c</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mn>4</mn><mo>)</mo></mrow><mo>&rsqb;</mo><mo>}</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>10</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000924845630000041.GIF" wi="1605" he="167" /></maths>由于每一个图像块都不只有一个与其相邻的图像块,因此每一个块的MSDS值都是与其相邻块求得的每一个MSDS值的和;而一幅图像的MSDS值则是所有块的MSDS值的平均值;1.4基于K均值聚类的样本库建立:用得到的评估值为特征,采用K均值聚类的方法按照滤波后的图像的失真程度将这些图像分为N类;针对每个类中的图像,建立用于超分辨率复原的样本库,结合与样本库中LR图像对应的HR图像进行基于学习的超分辨率复原模型的训练,为在线部分的输入图像超分辨率复原做准备;HR图像为高分辨率图像,LR图像为低分辨率图像;所述的在线部分,具体步骤如下:2.1对输入图像进行滤波处理:输入图像为一幅待处理的低比特压缩图像,采用如上所述在线部分的步骤2.2中的后处理滤波方式对其进行滤波处理,去除图像中的部分块效应;2.2输入图像的块效应失真类别判定:对滤波后的图像计算MSDS值,作为该图像的块效应失真评估分数;根据得到的分数与N个类别中的样本图像的分数计算相似度,判断输入图像所属的压缩失真类别;判断输入图像所属的压缩失真类别具体方法为:首先,对输入的图像进行滤波处理,并计算获得其MSDS值,然后计算它与N个类别的聚类中心间的欧氏距离,以与输入图像的欧氏距离最小的聚类中心所在类别,为输入图像所属的类别;2.3实现基于学习的超分辨率重建选择与输入图像最相近的一类中的样本作为输入图像的样本库,将滤波后的输入图像的数据输入到离线部分已经训练好的超分辨率复原模型中,实现图像的超分辨率复原。
地址 100124 北京市朝阳区平乐园100号