基于变换不变低秩纹理(TILT)的图像校正(附代码)

本文介绍低秩纹理映射算法(TILT)的原理与应用,通过低秩性与噪声的稀疏性恢复纹理,适用于图像校正,如车牌、身份证照片、交通标志牌和人脸校正,提高识别准确率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原理简介

事实上,对于未加旋转的图像,由于图像的对称性与自相似性,我们可以将其看作是一个带噪声的低秩矩阵。当图像由端正发生旋转时,图像的对称性和规律性就会被破坏,也就是说各行像素间的线性相关性被破坏,因此矩阵的秩就会增加。

 低秩纹理映射算法(TransformInvariant Low-rank Textures,TILT)是一种用低秩性与噪声的稀疏性进行低秩纹理恢复的算法。它的思想是通过几何变换把D所代表的图像区域校正成正则的区域,如具有横平竖直、对称特性,这些特性可以通过低秩性来进行刻画。通过计算图像透视变换各种角度之后的矩阵对应的秩,找到矩阵的秩最小的情况,利用透视变换的角度对原图像进行处理,即可将图片变为正则。当图像由端正发生旋转时,规律性被破坏矩阵的秩相应的就会增加。本文提出了变化不变纹理,用低秩性与噪声的稀疏性进行低秩恢复,通过几何变换把不规则的区域校正成端正的,如具有横平竖直、对称等特性,进而通过低秩来刻画这些特性。如下面的例子:

红色窗口代表着原始的输入,绿色窗口则是通过我们模型校正过的纹理。可以这样理解,在绿色窗口中的图像一般都变成对称的了,因此图像具有低秩性。可以发现,校正过图像的秩要明显的低一些了。

低秩纹理的定义

现在开始进入核心部分。在这篇文章中,我们将二维纹理表示为一个定义在实数二维空间上的一个函数I0(x,y),我们称I0为低秩纹理当且仅当一维函数张成一个有限维的线性空间,也就是有下式成立

如果r是一个有限数,我们就称I0为秩为r的纹理。容易发现,如果函数I0(x,y)的秩为1,那么函数一定是g(x).h(y)的形式。(这里我不知道该怎么解释,原文是这样说的,但是下面紧跟着给出的式子可以从分块矩阵相乘的角度进行类似理解)推广一下,一个秩为r的函数I0(x,y)可以显式地分解为r个秩为1函数的组合,即

下面几幅图像具有理想的低秩纹理

上面可以看出,一个水平或者竖直的边(e)可以看成秩为1的纹理,一个角(f)可以看成秩为2的纹理。可以这样说,低秩纹理整合了很多传统的局部特征(边、角)。通过上述定义可以发现,规则对称的样式(pattern)更容易形成低秩纹理。所以,低秩纹理这一概念包含了一更为宽泛的“特征”或者区域,而不仅仅局限于边角之类的。然而,需要指出的是,现实场景中并非所有的对称纹理或形状具有低秩性,我们仅考虑那些产生低秩矩阵的对称纹理。

给定一低秩纹理(对应一函数),显然将函数扩大多少倍或者对坐标进行线性变换其秩并不会发生改变,也就是说按照我们的定义,通过变换得到的新的低秩纹理(对应一个新的函数)的与最初的低秩纹理具有相同的秩。在现实应用中,观测到的往往是变换得到的I(x,y)而希望复原原始的I0(x,y)。在本文中,无特别声明,我们认为可通过scale和transform得到彼此的两个低秩纹理等价,即成立,这个等价群众的元素具有如下形式

公式3可理解为人工地将(x,y)拓展为(x,y,1),1有单位截距的意味。

现实中,二维纹理图像函数并非连续的,我们通常都是离散采样将连续函数I0(x,y)表示为一个m*n的矩阵。对低秩纹理,我们总是假设采样窗口的大小显著大于纹理固有的秩,即成立。

容易得知,只要采样率不致使由公式(2)定义的函数失真,那么得到的矩阵的秩同连续函数的秩一样。方便起见,我们将采样得到的矩阵同样记作I0(x,y),相对其自身的维度,i0(x,y)有较低的秩。

通过迭代凸优化算法求解模型

通过适当的松弛模型可转化为

注意到尽管上面的目标函数是凸的,但是其约束是非线性的,因此整个额外难题依然是非凸的。解决该问题的一个通用的技术是在当前估计和迭代中线性化其约束条件,其线性版本为

至此变为线性问题且易于求解。

不断更新

用低秩纹理这个性质来校正图像,直接从图像中的不变特征出发,在原始的输入图像上选取变换区域进行处理,并且在该算法的模型构建过程中,加入对噪声图像的估计和约束,使得模型对图像中少量的噪声具有鲁棒性,其校正效果也比传统的方法有很大的改善,但在出现如下两种情况时,该方法的校正结果依然是误差较大或者完全失败。一个是平面问题,当输入图像的变换区域不在同一平面时,如侧面与侧面相接、侧面和地面相接,则TILT校正失败。如下图

使用方式

选择一张图片,点击选择左上角和右下角

对图片进行处理

计算透视变换后各种情况的矩阵的秩:

找出矩阵的秩最小的旋转角度

得到最后结果:

通过TILT可以做一些场景下的图像校正。如车牌校正、身份证照片校正、交通标志牌校正、人脸校正等。从而提高识别的准确率。

作者提供了代码可以下载,链接如下:http://perception.csl.illinois.edu/matrix-rank/tilt.html

参考资源链接:[鱼眼图像处理与目标检测:深度学习矫正与YOLOv3优化](https://wenku.csdn.net/doc/68z93ok1oq?utm_source=wenku_answer2doc_content) 针对鱼眼图像的畸变特征,进行有效的图像矫正对于提高目标检测精度至关重要。《鱼眼图像处理与目标检测:深度学习矫正与YOLOv3优化》一文中详细介绍了结合变换变低纹理TILT)和最近邻插值进行图像矫正的方法,这可以帮助我们优化YOLOv3在处理畸变图像时的性能。 首先,变换变低纹理TILT)是一种有效的图像处理技术,它能够保持图像中的纹理特征变性,即使在进行图像矫正和变换之后。通过利用TILT,我们可以确保在矫正鱼眼图像时,图像中的纹理特征会被扭曲,从而为YOLOv3提供更加准确的特征表示。 其次,最近邻插值是图像处理中常用的一种像素值估计方法,在图像矫正中可以用来减少插值引入的模糊。在矫正鱼眼图像时,采用最近邻插值可以保持目标边缘的锐利度,这对于YOLOv3的目标定位至关重要。 具体操作步骤包括: 1. 使用TILT技术处理图像,提取并保持图像纹理特征。 2. 利用鱼眼镜头的标定参数和畸变模型,计算出图像的矫正映射。 3. 应用最近邻插值算法,在矫正映射的基础上重建图像。 4. 将矫正后的图像输入到经过改进的YOLOv3模型中进行目标检测。 实现上述步骤后,可以显著提高YOLOv3在鱼眼图像上的目标检测精度。通过这种综合使用图像处理技术和深度学习模型的方法,我们可以有效地解决鱼眼图像的畸变问题,使得目标检测更加准确和可靠。建议在深入研究《鱼眼图像处理与目标检测:深度学习矫正与YOLOv3优化》的基础上,对YOLOv3及其在鱼眼图像处理中的应用进行更多的探索和实验,以掌握更多实用的技能和知识。 参考资源链接:[鱼眼图像处理与目标检测:深度学习矫正与YOLOv3优化](https://wenku.csdn.net/doc/68z93ok1oq?utm_source=wenku_answer2doc_content)
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值