image-processing - 当图像可能失真时,如何检测图像中的特定目标 "logo"?

标签 image-processing computer-vision detection object-detection

假设我的数据库中有所有这些商业产品的 Logo (它们只是图像),并且我在现实世界中拍摄这些 Logo 的照片,我怎样才能使我的程序能够检测到照片中的此类 Logo ?限制条件是:

例如,一名足球运动员可能穿着一件带有可口可乐 Logo 的衬衫,但他的衬衫到处都是皱纹,这使得 Logo 变形。下面是它的外观示例。左边是原版,右边是变形版:

logo test C

另一个例子是我拍了一张正前方街道的照片,在照片中,人行道上有一个麦当劳标志,从照片的角度来看,人行道上的这个麦当劳标志可能看起来像街道上的“M”。右边,左边的“M”是原始图像:

logo test M

因此,考虑到这些限制, Logo 在现实世界中可能看起来会以任何方式扭曲,但当然,如果照片中的 Logo 扭曲到我们无法理解的程度,那就超出了范围。但如果标志有一种原始的“气味”,那么应该是可能的,不是吗?

在这种情况下如何检测照片中的 Logo ?我应该寻找哪些算法或方法?

最佳答案

这更像是一项机器学习任务。获取一些尽可能扭曲 View 中的 Logo 示例图像。然后训练一些物体检测器来为您找到 Logo 。

您可能需要考虑的事情

  • 您将需要大量训练数据才能做到这一点。您可能想要生成合成(镜像)扭曲以获得足够的训练数据

  • 关于目标检测的文献非常丰富,有许多不同的算法。不存在开箱即用的解决方案。尝试几种算法,我会从一袋词或 SVM 开始

  • 您可能需要使用“滑动窗口”检测方式才能找到图像中的 Logo 。将 Logo 视为您想要在一堆数据中检测的 2D 图案

祝你好运!

关于image-processing - 当图像可能失真时,如何检测图像中的特定目标 "logo"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12152735/

相关文章:

image-processing - 在这种情况下,熵是什么意思?

ios - 如何使用 `AVFoundation` 检测相机是否存在?

image - 使用透视变换倾斜图像

swift - 碰撞检测不适用于为得分加 1

c# - 检测是否以提升的权限运行? (包括域管理员帐户)

algorithm - 如何使用 Opencv 存储大量图像的分层 K-Means 树?

python-2.7 - 使用Python读取压缩的ESRI BIL文件

C# 如何将我的 getPixel/SetPixel 颜色处理转换为 Lockbits?

python - OpenCV对象检测一个困难的对象

python - 机器学习: Does computing the accuracy score for binary labels always result in a low accuracy score?