我正试图通过Jason Hipp等人实施
algorithm.还有一个
presentation,更短更全面.
他们的方法的简要说明:
他们使用矢量量化作为区分任何给定图像中的前景和背景的工具.但是,它们不使用方形区域作为特征向量来生成代码字,而是使用圆形.这应该会降低计算复杂度.使用圆作为谓词向量,匹配问题被简化为线性模式匹配任务,并允许空间不变的匹配.因此,该方法被称为空间不变矢量量化.
因此,基本上,交互地选择谓词向量,然后对该谓词向量与当前位置的相关性进行穷举查询.
我的问题是:
>整个算法在哪里生成码本?如何?
>我看不出如何选择要生成的Codebook的参数.如果他们首先在图像中的所有可能位置对所有可能的圆进行采样,那么这在计算上非常重.他们如何确定要生成的集群/代码字的数量?
>为什么我会互相摆动子环?
现在我的实现基本上包括一个半径作为谓词向量的圆.它在本机图像空间中行进,并在所有可能的旋转中将谓词向量与当前像素周围的圆相关联.这是一个非常缓慢的过程,我无法从他们的算法中看到好处.
我没有实现任何接近矢量量化的东西,因为我看不出它是如何工作的.
任何提示或想法都表示赞赏.不幸的是,该方法的作者没有回答我的问题.
最佳答案 您的前两个问题并不特定于此算法,而是任何矢量量化算法.这是一个网页,以相对容易理解的术语描述如何进行矢量量化,包括生成码本:
http://www.data-compression.com/vq.html.
关于摆动:在这个算法中,关键的观察是通过矢量化作为环,表面不会被镶嵌(完全覆盖).例如,如果使用正方形,它们会对表面进行细分(完全覆盖它).重叠的环不一定完全覆盖图像.由于这个原因,“环”之间的像素可能会错过并导致匹配失败.为了弥补这一点,作者来回“摆动”环,以便最终覆盖所有像素.