我正在尝试用黑色/蓝色/红色/绿色标记检测写在白板上的形状。形状可以是圆形、矩形或三角形。图片可以在这篇文章的底部找到。
我使用 OpenCV 作为图像识别的框架。
我的首要任务是研究并列出可用于检测的不同策略。到目前为止,我发现了以下内容:
1)灰度,模糊,Canny Edge,轮廓检测,然后一些逻辑来确定检测到的轮廓是否是形状?
2) 具有不同形状特征的 Haar 训练
3)SVM分类
4) 灰度、模糊、Canny Edge、霍夫变换和某种颜色分割?
还有其他我错过的策略吗?任何较新的文章或经过测试的方法?你会怎么做?
其中一张测试图:https ://drive.google.com/file/d/0B6Fm7aj1SzBlZWJFZm04czlmWWc/view?usp=sharing
更新:第一个策略似乎效果最好,但远非完美。当盒子没有关闭,或者白板有很多噪音时,就会出现问题。Haar 训练似乎不是很有效,因为检测的形状很简单,没有很多特定的特征。我还没有尝试过 CNN,但它似乎最适合图像分类,而不是检测较大图像中的形状(但我不确定)