Image processing 开源方式的实时图像处理OCR应用?

Image processing 开源方式的实时图像处理OCR应用?,image-processing,open-source,computer-vision,ocr,Image Processing,Open Source,Computer Vision,Ocr,我心中有一个我想制作的应用程序。我们有壁挂式时间表板,在白色背景上使用黑线将其划分为小矩形。磁性姓名标签被放置在一个特定的分区中,以表明此人将在该单元中工作。这个系统在人与人之间的交流中工作得非常好,但是我想用一种自动的方式将这个日程信息自动保存到数据库中 我正在设想一个系统,在这个系统中,摄像机被设置在一个固定的位置,聚焦在时间表板上。相机会定期给电路板拍照。我想写一些代码来破译哪些姓名标签在哪个区域。这需要一些OCR或符号识别。每个姓名标签上都有大的数字,我将用它们来识别姓名标签所在的人 在

我心中有一个我想制作的应用程序。我们有壁挂式时间表板,在白色背景上使用黑线将其划分为小矩形。磁性姓名标签被放置在一个特定的分区中,以表明此人将在该单元中工作。这个系统在人与人之间的交流中工作得非常好,但是我想用一种自动的方式将这个日程信息自动保存到数据库中

我正在设想一个系统,在这个系统中,摄像机被设置在一个固定的位置,聚焦在时间表板上。相机会定期给电路板拍照。我想写一些代码来破译哪些姓名标签在哪个区域。这需要一些OCR或符号识别。每个姓名标签上都有大的数字,我将用它们来识别姓名标签所在的人

在处理新的编程问题时,我自然会使用Python。我发现这个帖子->看起来是一个很好的开始(使用PIL和numpy)

你知道这样做的好方法吗


更新:我已经尝试过SimpleCV,现在看起来不错。

既然您提到要使用Python解决这个问题,也许您可以看看。它将为您提供一种从相机抓取图像并进行基本图像处理的简单方法。

这实际上是一个相当困难的问题,尽管看起来很简单。但是你可以通过对你的形象做一些事情来让它更容易管理。我有以下建议:

  • 尽量使你的相机用合理的镜头直视电路板,这样边缘上的图像失真最小,并且没有透视失真
  • 考虑到你将偶尔拍摄图像进行分析,我认为性能绝对不是问题,所以用闪光灯或长曝光时间拍摄高分辨率图像(因为你拍摄的一切都是静止的)以获得尽可能好的图像质量
  • 如果您期望的不同标签的数量不是太多,您可能会发现,只需尝试通过匹配图像中这些标签的参考图像,而不需要进行完整的数字OCR。如果你的图像足够好的话,这就容易多了。这本书非常完整
  • High Performance Mark对您关于在标签上包含的问题有很好的评论。我想加上一个选项,但那是一样的。两者都很容易检测,并且有很好的库来帮助您阅读它们
  • 如果您决定确实需要OCR,您应该查看可用的OCR软件包,而不是尝试推出自己的软件包。试着打开发动机或发动机

我非常同意jilles de witt的观点,即OCR是一项极其困难的图像分析任务,需要从头开始开发。代码读取将是一个更好的选择,但这也将很难编程,并且需要复杂或有点挑战性的成像,正如其他人所指出的那样。然而,对于这个应用程序,你真的不需要实现OCR或正式的条形码、QR或其他2d代码


由于您的应用程序被限制在有限数量的目标上,也许您可以编写自己的简单代码。例如,您可以在每个人的姓名后的2x2数组中放置0到4个大点。这个简单的示例代码唯一地标识了16个唯一的标记,与正式代码相比,这些特征更容易成像、提取和解码。如果代码位置不一致,请添加一行定位符。

我认为,如果您在姓名标签上添加条形码,或使用易于OCR的字体书写数字,您可以使任务更轻松。根据我使用非常类似的图像捕获设置的经验,如果您试图拍摄的表面具有高反射性,例如,大多数白板都具有高反射性,并且闪光灯与相机位于同一位置,则闪光灯通常没有任何帮助。但是,好的照明是最有用的。是的,如果你使用闪光灯,你应该确定位置,这样反射b就不会成为问题。一般来说,你应该从你能得到的最好的图像开始。我喜欢条形码或二维码的想法。也许每个标签都有一个清晰的边框,带有条形码。