使用OpenCV检测写在白板上的符号

我正在尝试使用黑/蓝/红/绿标记来检测写在白板上的图形。 形状可以是圆形,长方形或三角形。 该图片可以在这篇文章的底部找到。

我使用OpenCV作为图像识别的框架。

我的第一个任务是研究和列出可用于检测的不同策略。 到目前为止,我发现了以下内容:

1)灰度,模糊,Canny边缘,轮廓检测,然后通过一些逻辑来确定检测到的轮廓是否是形状?

2)形状不同的哈尔训练

3)SVM分类

4)灰度,模糊,Canny边缘,Hough变换和某种颜色分割?

有没有其他的策略我错过了? 任何新的文章或测试方法? 你会怎么做?

其中一张测试图片:https://drive.google.com/file/d/0B6Fm7aj1SzBlZWJFZm04czlmWWc/view?usp =分享

更新:第一个策略似乎运作最好,但远非完美。 盒子未关闭或白板噪音很大时会出现问题。 哈尔训练似乎不是很有效,因为简单的形状可以在没有很多特定功能的情况下进行检测。 我还没有尝试CNN,但它似乎最适合于图像分类,而不是在较大的图像中检测形状(但我不确定)


我认为第一个选项应该可行。 您可以使用傅立叶描述符来分类分割的形状。

http://www.isy.liu.se/cvl/edu/TSBB08/lectures/DBgrkX1.pdf

另外,也许你可以在这里找到有用的东西:

http://www.pyimagesearch.com/2016/02/08/opencv-shape-detection/

如果你想尝试一种更具挑战性但现代化的方法,请考虑深度学习方法(我将从CNN开始)。 互联网上有很多可用的实现。 虽然这对于这个特定的项目可能是一种矫枉过正,但它可能会在未来帮助你...

链接地址: http://www.djcxy.com/p/61073.html

上一篇: Detect symbols written on a whiteboard using OpenCV

下一篇: Detecting comic strip dialogue bubble regions in images