vision代表着图像中物体的piece,它虽然对物体的feature没有understanding,但它企图去抓feature。这就是认定图像有一致的localization,不管在什么位置,不管物体的位置和朝向,这个特定的feature点都跟着物体走。feature找到后,要去encode这个feature,这个的对slam或stereo非常有用。 我们再回归边缘检测。边缘检测就是在图像中找到比较显著的不连续的边界。在一维里,用高斯函数的二阶导卷积图像里得到一些小波浪,这些小波浪会跟着图像走,这就是有localization特性。然而对一个pattern,要用两个边界去刻画。我们不仅需要知道feature的位置,还要知道大小。这个函数的积分信号和卷积和不是我想要的。信号的size当和卷积和的kernel size差不多的时候,我们可以得到一个local minimum,这个点就是我们想要的。 这个点可以告诉我们feature的位置和大小。实际上遍历各种不同大小的kernel去卷积,我们把它拓展到二维,就是一维函数沿轴旋转一下。二维函数的本身是高斯和的二次求导。这个函数能够在不同的宽度间拿到不同的值,使得不同的层互相比,到处找local minimum。最后拿到的数据中,每个圆圈的中心表示feature在哪里,每个圆圈的大小表示feature有多大。 最关键的在于如果我把这个图像挪动,缩小,转动,这些feature点也会跟着走。还有就是卷积的图像不只是一张。这些feature点是在不同的层上找的。因此找minimal不是在x,y上找,而是在x,y,z上找,然后投影。所以当我们很好的抓到这些位置之后,那么首先要确定feature的位置,当feature点位置确定,要确定来自同一个函数,意味着我们要有一个尺度的衡量,我们不仅要知道一个feature点的大小和位置,我们还要在知道内容是什么。基于算法找到feature后,用一个向量表示feature的内容,并抵御缩放带来的影响。这个feature里物体的远近出来的值差不多。x,y的移动已经归一化。z轴也归一化掉。这个大量被使用在3D重构。本质思想是线条朝向记下来,计算梯度,用朝向刻画内容,再用8个bit去刻画。由于相机的图像是在不同的位置拍摄的,假如没有运动的很快,就会是有重叠的,但拍的时候由于在动,不能简单的叠加,要一对一对的解图像间的关系并拼起来。 抓到feature点后就来找对应。对应里可能会有很多的错误。求解的就是把所有的对应关系联立上面大方程。每一个点做一个变换。这个变化是一个3×3的矩阵。只要超过9个方程,矩阵就可以求解。不正确的对应关系不能包含在线性系统里面,不然结果会偏掉,假设正确的对应远大于错误的,随便找几个对应关系。求解t,大部分正确但有偏差的。反向验证对应关系,跟transformation是否一致,过于不一致就丢掉。拍摄的时候光照的参数有点不一样,细节一致,绝对亮度稍微有点不一样。这就已经不是vision的事情了,是graphics的问题。有个泊松image的方法,梯度留下,绝对亮度丢掉。点与点之间的相对梯度关系连起来求泊松方程,解出image。这样解完以后边界就会消失了。摒弃了绝对亮度,利用梯度的亮度重新生成。 (责任编辑:本港台直播) |