Unity3D - OCR号码识别

问题描述 投票:1回答:1

我们的初始用例要求在Unity3D中编写应用程序(仅在C#中编写并同时部署到iOS和Android),允许移动电话用户将他们的相机保持在杂志文章的标题上,使用OCR来阅读标题,然后我们将在后端处理该标题以获取相关故事。 Vuforia因其快速的原生字符识别而在这个用例中是最好的。

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

尝试的变通办法:

  1. Google Cloud Vision - 效果很好,但不是本机和相机图像有时非常大,所以没有我们要求的那么快。甚至考虑使用OpenCV Unity资产来识别数字,然后发送多个更小的API调用,但仍然不是本机和一个额外的步骤。
  2. 按照SO的指示使用.Net包装器来实现Tesseract - 可能会很好用,但是在构建并尝试将外部dll带入Unity之后我收到了这个错误.Net Assembly Not Found(最有可能是.Net版本的问题dll被编译在)。
  3. 从服务器上的源安装Tesseract,然后创建我们自己的API - 老实说不清楚为什么我们在Google的运行良好并且积极维护时尝试这一点。

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

opencv unity3d ocr tesseract vuforia
1个回答
1
投票

Vuforia本身并没有提供任何系统来检测数字,只是字母。为了解决这个问题,我遵循了下一个策略(仅适用于普通图像附近的数字):

  1. 识别图像。
  2. 在识别目标图像之后捕获屏幕截图(此屏幕截图必须包含数字)。
  3. 将屏幕截图发送到OCR Web服务并获取响应。
  4. 从响应中提取数字。
  5. 使用这些数字来执行您需要的任何操作并显示AR信息。

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

© www.soinside.com 2019 - 2024. All rights reserved.