图像的高效标记检测

信息处理 图像处理 计算机视觉 互相关 检测 增强现实
2022-02-08 16:16:39

我需要有效地检测彩色图像中已知数量的简单标记(棋盘图案)。

我通过 WebGL 将标准化互相关 (NCC) 实现为像素着色器,因为我需要它在浏览器的客户端应用程序中工作。检测工作正常并且足够强大,但我需要更好的性能。目前计算 NCC 图像需要几秒钟的时间,而且我已经在使用“明显”的优化,例如裁剪图像(我有一个粗略的指示应该在哪里标记)和降低分辨率。我还优化了代码本身(例如使用循环展开,但这是另一回事,可能属于 SO)。

图像的分辨率为 900x520 像素,标记为 22 方形像素。该代码在配备英特尔凌动处理器的平板电脑上运行。

我的问题是:是否有算法可以更好地利用我对图像和标记几何的了解,最理想的是适合几乎无分支像素着色器的算法?例如,我正在考虑一个带通滤波器(可以说是只留下标记频率的傅立叶变换)或 FNCC(JP Lewis 的论文),或者利用标记是黑白的事实的东西。

不幸的是,这些方法似乎相对昂贵,因为图像的 FFT 并不便宜,而且我的标记与图像分辨率相比很小。盲目地测试大量算法不是一种选择,除非有一个我不知道的库可以帮助我在 JavaScript 或 glsl 像素着色器中实现它。即使那样,更有效算法的指示也会有所帮助。

编辑:添加了标记的图像。当然,背景通常是透明的,即 NCC 将忽略那些像素

我在图片中寻找的标记图像

1个回答

这是一个鞍点。我建议使用导数运算符来发现这种不连续性。事实上,Haralick 在他的Topographic Primal Sketch中对这些方法进行了广泛的概述。

使用近似 Facet 模型可以提高速度。我在这里用它们进行边缘检测

这里也有一种实现


尽管这个问题和主题相当古老,但我想更新一下,以下工作中提出的方法不包含分支,非常适合着色器:

Birdal、Tolga、Ievgeniia Dobryden 和 Slobodan Ilic。X-Tag:灵活准确的束调整基准标签3D Vision (3DV),2016 年第四届国际会议。IEEE,2016 年。