首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用OpenCV 3训练“欧元”硬币识别支持向量机?

如何用OpenCV 3训练“欧元”硬币识别支持向量机?
EN

Stack Overflow用户
提问于 2016-01-07 18:02:16
回答 1查看 1.7K关注 0票数 3

今年我的圣诞假期项目是开发一个小型的Android应用程序,它应该能够在图片中检测任意的欧元硬币,识别它们的价值,并将值加起来。

我的assumptions/requirements对图片的一个良好的识别是

  • 均匀背景
  • 图片应大致为DinA4纸的大小
  • 硬币可能不重叠,但可以互相触摸。
  • 硬币的数字面必须向上/可见。

我最初的想法是,对于硬币的价值-识别后,最好首先检测实际的硬币/他们的区域在图片中。然后,任何识别都只会出现在图片的这些区域,在这些区域可以找到实际的硬币。

因此,第一步是找到圆圈。我已经使用3管道完成了,就像几本书和帖子中所建议的那样:

  1. 转换为灰色
  2. CannyEdge检测
  3. 高斯模糊
  4. HoughCircle检测
  5. 过滤掉内部/多余的圆圈

检测工作相当成功,这里是结果的图片:用蓝色边框HoughCircles检测硬币

现在每一枚硬币都得到了的认可!

我找到了这个问题的解决方案,并想出了

  • 模板匹配
  • 特征检测
  • 机器学习

模板匹配看起来非常不适合这个问题,因为硬币可以相对于模板硬币任意旋转(而且模板匹配算法不是旋转不变的!因此,我必须旋转硬币!)此外,模板硬币的像素永远不会与先前检测到的硬币区域的像素完全匹配。因此,我认为任何计算相似度的算法都只会产生很差的结果。

然后,我研究了特性检测。这对我来说更合适。我检测到一个模板硬币的特征和候选硬币图片,并绘制匹配( ORB和BRUTEFORCE_HAMMING组合)。不幸的是,在错误的候选硬币中也发现了模板硬币的特征。看下面的图片,其中的模板或“特色”硬币在左边,一个20美分的硬币。右边是候选硬币,最左边的硬币是20美分的硬币。事实上,我希望这枚硬币能有最多的匹配,但不幸的是没有。因此,这似乎不是一种识别硬币价值的可行方法。特征匹配-模板硬币与候选硬币之间的匹配

因此,机器学习是第三种可能的解决方案。从大学到现在,我还在研究神经网络,它们是如何工作的。不幸的是,我的实际知识相当贫乏,我根本不知道支持向量机(SVM),这是OpenCV支持的机器学习。

所以我的问题其实不是源代码相关的,而是更多的如何设置学习过程。

  1. 我是应该在普通硬币图像上学习,还是应该首先提取特征并学习这些特征?(我想:特征)
  2. 每枚硬币应该有多少正反两面?
  3. 我是否也要学习旋转硬币,或者这个旋转会由支持向量机“自动”处理?那么,即使我只把它训练在非旋转硬币上,支持向量机会识别旋转硬币吗?
  4. 我的图片要求之一("DinA4")将硬币的尺寸限制在一定的大小,例如图片高度的1/12。我应该在大致相同大小或不同大小的硬币上学习吗?我认为,不同的尺寸会导致不同的特性,这无助于学习过程,你认为呢?

当然,如果您有不同的解决方案,这也是受欢迎的!如有任何帮助,将不胜感激!)

再见,谢谢!

EN

回答 1

Stack Overflow用户

发布于 2016-01-07 20:23:54

回答你的问题:

1-我应该在普通硬币上学习-图像还是我应该首先提取特征并学习这些特征?(我想:特性)

对于许多对象分类任务,最好先提取特征,然后利用学习算法训练分类器。(例如,特征可以是,学习算法可以是支持向量机或Adaboost)。这主要是因为与像素值相比,特征具有更多有意义的信息。(它们可以描述边缘、形状、纹理等)然而,像深度学习这样的算法将提取有用的特征作为学习过程的一部分。

2 -每枚硬币应有多少正面和负面因素?

您需要回答这个问题,这取决于您想要识别的类的变化和您使用的学习算法。对于支持向量机,如果您使用HOG功能,并且希望识别硬币上的特定数字,那么您就不需要太多了。

3-我是否也要学习旋转硬币,或者这个旋转会被支持向量机“自动处理”?那么支持向量机会识别旋转硬币吗,即使我只把它训练在非旋转硬币上呢?

同样,这取决于您要选择的特性(而不是支持向量机,这是学习算法)的最终决定。HOG特性不是旋转不变的,但也有像SIFT或冲浪这样的特性。

4--我的照片之一--上面的要求("DinA4")将硬币的尺寸限制在一定的尺寸,例如1/12的图片高度。我应该在大致相同大小或不同大小的硬币上学习吗?我认为,不同的尺寸会导致不同的特性,这无助于学习过程,您认为呢?

同样,选择您的算法,他们中的一些要求您的固定/相似的宽度/高度比。你可以在相关的论文中找到具体的要求。

如果您决定使用支持向量机,请查看,如果您对神经网络感到满意,那么使用Tensorflow是个好主意。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34662077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档