如上图,无论圆的大小都可以将其检测出来。不考虑尺度和远近。
两个圆中的内容是一样的虽然大小不同,尺度不变的covariance。 前面提出先对图像进行边缘提取使用高斯卷积,高斯卷积实际上做了两件事情一件是高斯平滑一件是求导,看导数最大点对应边缘。 高斯二阶导也可以求边缘,当二阶导为0的时候就是边缘,对于高斯二阶导也可以称作是Laplacian和,首先用二阶过零点检测边缘,但是实际上没有用这个判断边缘。首先也是进行平滑处理,然后使用高斯二阶导得出最后一个图的相应结果。 高斯一阶导需要一个参数:因为窗框可以根据方差确定。使用二阶导进行尺度选择。 使用Laplace核进行卷积的结果是第二个图,当高斯核合适的时候对应着二阶导的一个最大值,当信号和二阶导的模版能够匹配上的时候就会产生一个二阶偏导的最大值。(啥叫能够匹配上啊?) 然后把这些二阶偏导的最低值连接在一起。现在是信号发生改变但是模版不变,最后找到一个和模版对齐的信号。可是现实的情况是信号是未知的,现考虑使用一堆的模版对其进行卷积然后选择出最合适的模版。去看看哪个信号由最大的相应,但是发现下面的情况: 图像显示一开始laplace核卷积的结果还正常,随着sigma的不断增大,信号不断衰减,无法进行比较了。
竖着的左半部分是正着的权值。方差在变化的时候,对应的包围的面积越来越小,因为sigma越来越大,分母越来越大(得出的那个图片上标注的数据应该是对这个函数进行积分运算求包围面积得到的结果吧??) 如果将上面得出的结果上乘以sigma就可以补尝sigma,使其的面积不受sigma影响,只是一个sqrt(2pai)-1(为啥高斯核的权值模版是这样的?) 高斯偏导是一阶导,然而laplace偏导是二阶导,所以应该使用sigma2,补偿结果如下: 判断信号的正中心的点,找到信号圆对应的半径 判断原图的中心点的圆的尺度有多大,对应在每个sigma的模版的时候的信号就如上图,由上图可知sigma为8的点是匹配程度最好的点。 高斯二阶导模版可以来检测尺度 上面检测的是一维的但是通常我们使用的都是二维的:
真正应用的时候要补偿一个sigma的平方,不要让他的信号衰减。
也就是一开始判断的那个圆的半径和那个匹配上的核的sigma之间的关系 要有最大的响应,要求信号的宽度正好和零界面垂直。 看一下是否只有合适的时候响应值最大,其他情况都不能比它大。 是把那个立体的图形等于0⃣️的平面的方程写出来大概是上面的方程,有一些常数项被省略掉了。等于0,因为那个位置的z是0,如果这个公式为0的话,只能是前面的一部分为0,所以导出半径和sigma的关系如下:(上面那个公式是从二阶导的共公式推过来的)因为信号刚好和0⃣️平面对上了,所以处理的时候那个零平面对应的信号的长度就可以通过整个变成圆的半径来求解(等量代换)
把每个核的响应值画到一个图片里,这样得出的图像如右图所示。变换高斯二阶导的核,核越大圆就越大,大窗框的时候检测大的信号,小窗框检测小的信号。 只在局部范围下上下进行比较,每三个做一个圆,一般在做的时候只考虑上下两个空间。这样可能画好几个圆,但是保留了许多可能性。 这里还要有“非最大化抑制”,因为在中间的点的周围还有其他的点形成的圆可能和这个点形成的圆描述的东西相同,这个时候不仅仅要将当前的点和上下两个点进行 比较还要和自己周围and上下对应的两个点周围的所有点进行比较,一共27个点。既比了尺度又进行了非最大化抑制。 这个算法最大的问题,是很慢。好处就是可以很精确的检测出所有的features。
现在四个DoG空间的尺度可以输出两个结果,下面研究如何取k值。 下采样的时候从倒数第三个开始,这样才能保证下采样到上面的图像的第一个刚好是2倍的关系 ㊗️coding 后面在上下两个部分输出的会形成一个尺度空间。目的是希望上下两个部分输出的尺度空间能够形成一个连续的尺度空间,问这个时候k的值怎么取才能让上下两个部分输出的 尺度空间连续。在大图上和小图上进行的处理是一样的,但是在小图上需要在扩大2倍,在小图上的计算会快很多。 这个公式保证了上下两个空间输出尺度空间的连续性。 ⚠️最底下的一层没法输出,因为没有下面的进行比较,无法判断是否是极值点。