目录
介绍
参数模型
直线拟合
介绍
到目前为止,我们一直在做图像处理,你把一个图像
和 应用一些函数相加得到一个新的图像我标记为
。
这很好,整个课程,实际上是整个职业生涯,数以万计的PHD写在图像处理上。
但这不是我们来这里的原因。
我们来谈谈真正的计算机视觉。
在真实的视野中,你仍然可以拍摄一张照片,但你得到的是好东西。
整个想法是我们把图像放进去,然后把东西拿出来。
那么有哪些例子呢?
也许只是一条线。
左边有一张图片中间有一些关于它的边缘描述,你可以看到这张图片中有很多线条。
或者你想找到圆:
实际上这有点难看,但是有个保龄球。
找到保龄球的方法是找到图像中的所有圆圈。
嗯,你猜怎么着?
只有一个圆,那就是保龄球。
或者,这里还有一些硬币:
只要找到硬币就行了。
事实上,我要告诉你们这张特别的图片是很多年前,由我的一个朋友拼凑起来的。
他现在是一个非常著名的研究员,在做一些我不能说的事情。
但这是为了展示如何对圆进行霍夫变换。
你甚至可以找到类似的东西,帮我找到这辆车:
你们可以看到,在左边这里有一些我们可以定位汽车的例子。
但实际上,汽车就在中间。
实际上,这是一个任意形状的概念,我们会讲到如何求任意形状。
现在我们即将讨论广义霍夫变换。
参数模型
今天我们将关注于寻找参数模型。
参数模型的意思是它是一个类,它是一个模型,它代表了一组实例,每个实例都可以用参数的特定设置来表示。
例如,直线是参数模型。圆是一个参数模型。
而且,就像我说的,我们甚至可以谈论一个参数化模板,你有一个模板,你可以根据一些参数的值改变它的形状。
所以,当你试着去拟合一个参数模型,或者换句话说,你试着在你的图像中找到一个参数模型。
它们本质上是一个杯子,有一些东西你必须记住。
首先,你要用什么参数模型?
也就是说,如何表示,如何从参数到所表示的东西。
事实上,今天,我们将向你们展示即使对于像直线这样简单的东西,参数化是如何起作用的。
关于这个模型的另一件事,这实际上对我们有利,就是图像中的一点或者边缘或模板属于模型的概念,
不仅仅是通过查看边缘来确定,你需要观察很多不同的边或者整个模型。
扩展支持的概念是我们要利用的。
最后,当你去寻找参数模型时,你可以说,如果电脑是无限快的,每次我们使用一个电脑,它们就会觉得自己变得无限快。
我只需要在所有可能的地方检查每一条线。
事实上,即使是非常非常非常快的电脑,可能的模型的数量非常非常非常大,结果是,你真的,真的,真的,我迷路了。
事实证明,你是一台非常快的计算机,但是,你仍然需要担心计算的组合问题。
直线拟合
这里有一个简单的例子。
你可能会想,我为什么要找直线?
正如左边的例子,你可能想知道芯片的位置是否正确,这样你就能看到芯片上的线条。
或者这是得克萨斯大学的塔你发现的边缘,你可能只是想看到你是否可能在州议会和你想确保塔德克萨斯大学不是向左倾斜。
这对你们有些人来说是个笑话。但现在我们假设,找到直线是我们想做的。
你可能会想,等一下,我们花了很长时间学习如何找到边。
我们没有完成吗?我们不能找到边吗?
肯定可以找到!
我们来讨论一下寻线的困难:
这是同样的德克萨斯大学塔,还是由Christian Gromen赞助的,我们运行了一个边缘检测。
我在这里做的是:我放大出了一部分出来,以便我们可以讨论一些现象。
第一个问题是:这里有很多与直线无关的点。
所以下面这些小的边点,这些与直线无关,所以我们必须能够高效快速地处理它们:
第二个问题:实际上只有部分线路被检测到。
举个例子,你可以看到这条线有一个很大的缺口:
尽管我们真正想做的是:找到整条直线。
第三问题:噪音和不整齐实际上是可以帮助我们找到边缘的地方。
在这里,你会注意到,在这条线上,所有这些像素并没有完全在直线上:
你可以看到像素也在这里跳跃:
因此,我们必须能够从这些噪声测量到边缘的位置,以便找到实际的线。
小测验:
让我们试着建立一些关于如何从边到线的直觉。
记住,边缘图像只是像素的集合,像这样的像素,在那里可以找到可能的线条。
在这幅图中你能识别多少行?
答案:你可以用不同的方式来识别线条。
例如,这可能是一条短的线段:
右手边的一条长线段:
和一条对角线相交:
这是一组一致的线段,几乎占据了所有的边缘点。
但还有其他的可能性。
例如,这条长线段穿过,两边各有两个短线段。
这个问题没有唯一正确的答案。
希望这将使您了解如何在图像中查找线段并不是一项简单的任务。
——学会编写自己的代码,才能练出真功夫。