【问题标题】:Unity3D - OCR Number RecognitionUnity3D - OCR 数字识别
【发布时间】:2017-02-25 21:39:00
【问题描述】:

我们最初的用例要求用 Unity3D 编写一个应用程序(仅用 C# 编写并同时部署到 iOS 和 Android),它允许手机用户将他们的相机对准杂志文章的标题,使用 OCR阅读标题,然后我们将在后端处理该标题以获取相关故事。 Vuforia 是这个用例的最佳选择,因为它具有快速的原生字符识别功能。

在对初始应用程序进行了一些演示之后,出现了更多潜在用途。任何只需要识别 A-z 字符的用例在 Vuforia 中都很容易,但第二个它需要数字识别,我们不得不寻找其他地方,因为 Vuforia 不支持数字识别(现在或不久的将来的任何地方)。

尝试的解决方法:

  1. Google Cloud Vision - 效果很好,但不是原生的,而且相机图像有时非常大,所以几乎没有我们需要的那么快。甚至考虑过使用 OpenCV Unity 资产来识别数字,然后发送多个小得多的 API 调用,但仍然不是原生的,需要额外的步骤。
  2. 按照SO 的说明为 Tesseract 使用 .Net 包装器 - 可能效果很好,但在构建并尝试将外部 dll 引入 Unity 后,我收到此错误 .Net Assembly Not Found(很可能是版本问题.Net 中编译 dll)。
  3. 在服务器上从源代码安装 Tesseract,然后创建我们自己的 API - 老实说,当 Google 运行良好且得到积极维护时,我们为什么要尝试这个。

有没有人在 Unity 中遇到过同样的问题并最终找到了好的解决方案?

【问题讨论】:

    标签: opencv unity3d ocr tesseract vuforia


    【解决方案1】:

    Vuforia 本身不提供任何系统来检测数字,仅检测字母。为了解决这个问题,我遵循了下一个策略(仅针对常见图像附近的数字):

    1. 识别图像。
    2. 在识别出目标图像后立即截屏(此截屏必须包含数字)。
    3. 将屏幕截图发送到 OCR 网络服务并获取响应。
    4. 从响应中提取数字。
    5. 使用这些数字做任何您需要的事情并显示 AR 信息。

    这种方法解决了这个问题,但它并不像一个魅力。他们的成功取决于屏幕截图的质量和 OCR 服务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-11
      • 1970-01-01
      • 2015-10-21
      • 1970-01-01
      • 2014-04-25
      • 1970-01-01
      相关资源
      最近更新 更多