通过我的新任务,我正在寻找一种方法来检测图像上是否存在文本。图像是地图 - 例如可以是谷歌地图。任务是检测街道/城市标签的放置位置。
我知道 opencv 库具有可以检测特征(例如人脸)的算法 - haar 分类器或 hog(定向梯度直方图),但我听说此类算法的学习过程非常困难。
您是否知道可以做到这一点的任何算法、方法或库(检测图像上是否存在文本)?
谢谢,约翰
通过我的新任务,我正在寻找一种方法来检测图像上是否存在文本。图像是地图 - 例如可以是谷歌地图。任务是检测街道/城市标签的放置位置。
我知道 opencv 库具有可以检测特征(例如人脸)的算法 - haar 分类器或 hog(定向梯度直方图),但我听说此类算法的学习过程非常困难。
您是否知道可以做到这一点的任何算法、方法或库(检测图像上是否存在文本)?
谢谢,约翰
视觉中有一个标准问题,称为图像中的文本检测。它与 OCR 完全不同。OCR 关注它所说的内容,而文本检测是关于确定图像中是否有文本。Adi Shavit 的第三个链接是解决这个问题的方法。您可以查看关于文本检测的 google 学者被广泛引用的文章。
您需要将其调整为特定类型的地图图像,否则问题将非常困难(请参阅上一篇关于文章链接的帖子)。
OCR 是可行的方法,您应该使用现有的库。然而,OCR 主要是对白色背景上的文本进行的。要将您的问题简化为常规的 OCR 问题,您应该尝试处理地图的颜色空间。地图文本可能具有非常特定的颜色,这可能足以找到这些像素。然后,您可以根据连接区域的大小过滤检测到的像素。
如果您实际上只想找到文本标签的位置,您可以执行上述操作,并且几乎只需跳过 OCR 步骤。如果标签不是太靠近,可以使用简单的聚类算法来找到它们各自的位置。