【问题标题】:What is appropriate angle for camera to recognize coins?相机识别硬币的合适角度是多少?
【发布时间】:2018-03-27 08:04:03
【问题描述】:

我想做一个硬币识别项目,相机将拍摄几枚硬币的照片,然后按价值识别它们,将它们相加并输出金额。我想通过查看它们的大小来识别价值,(硬币越大价值越大)但我能想到的问题是,如果照片是从不同的角度拍摄的,或者相机与硬币的距离与平时不同怎么办?如何解决它,或者有什么替代方法吗?我之前没有图像处理方面的经验,我想边走边学。

【问题讨论】:

  • this example 作为演示,了解那些经典的图像处理工具可以为您做什么(至少在预处理方面)。我不会追求尺寸度量,而是某种对象检测(可能已经在示例中解决),然后是对象分类(经典 ML 工具)。

标签: android image-processing computer-vision


【解决方案1】:

如果您没有任何经验,您想要实现的目标并不是那么容易......但是,如果您能够了解成像过程的基础知识及其背后的几何形状,那么相机角度就不是问题:通过使用经过校准的相机,您可以检索硬币所在表面的 omography(假设它们在桌子上)。

当您尝试识别您的硬币时,您实际上可以尝试使用椭圆拟合算法或霍夫圆变换在使用 omography 从原始图像获得的桌子的鸟瞰图上找到圆。

【讨论】:

    【解决方案2】:

    在我看来,valleymanbs 所说的基本上是正确的。只需添加一些我认为对您很重要的事情。 你需要了解以下几点

    1. 校准相机。 -> 得到焦距和主点等内在参数,以及相机旋转和平移等外在参数,以便稍后对图像进行校正。

    2. 纠正图像。 -> 图像修正将修改图像,以便您获得 .为此,我建议您将相机放在放置硬币的桌子正上方。相机和桌子之间的距离要大,这意味着您的相机的分辨率也应该足够高。

    3. 只要您了解相机校准和图像校正的原理并获得硬币的图像,您就可以使用日食算法或霍夫变换进行图像分割,以获得硬币的环绕圆。

    4. 然后您可以进行一些图像处理,例如二值化或腐蚀,无论需要什么来计算圆的面积。

    5. 但是,我个人不会只使用硬币大小等一个特征来确定硬币的价值,因为一些具有不同价值的硬币可能具有非常相似的大小。因此,我会向您推荐另一种称为分类器的技术。您可以添加颜色甚至纹理等功能。那么在你的情况下,我认为你可以应用 SVM:支持向量机将你的硬币分类到正确的类别中。

      我了解到您对图像处理没有经验。但是您的解决方案没有捷径可走。我建议你花点时间了解我的建议框架和每一步的根本原因。玩得开心。 :) 希望对您有所帮助。

    【讨论】:

    • 很好地澄清了我对新手的回答,谢谢yirui。我只是补充一下你正确说的话,在某种预处理之后,你也在第 4 点建议,你仍然可以搜索圆圈(即使用 OpenCV 的斑点检测器),选择检测到的斑点周围的 ROI,然后运行分类器就在这些投资回报率上。您建议的双重检查,不仅是大小,当然是可取的,但拟合 blob 既简单又非常快速......您还可以保留该检查并使用分类器对其进行稳健化。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-07
    • 2020-03-14
    • 1970-01-01
    • 1970-01-01
    • 2012-09-20
    • 1970-01-01
    • 2020-05-09
    相关资源
    最近更新 更多