2016-10-17 191 views
0

我們最初的使用案例要求在Unity3D中編寫應用程序(僅用C#編寫,並同時部署到iOS和Android),允許移動電話用戶將相機放在雜誌的標題中文章,使用OCR來閱讀標題,然後我們會在後端處理該標題以獲取相關故事。由於其快速的本地字符識別,Vuforia對於這個用例來說是最好的。Unity3D - OCR號碼識別

最初的應用程序演示了一下之後,出現了更多的潛在用途。任何只需要識別A-Z字符的用例在Vuforia中都很容易識別,但是第二個需要識別號碼的用例因爲Vuforia不支持數字識別(現在或者在不久的將來)。

嘗試解決方法:

  1. Google Cloud Vision - 偉大工程,但不是本機和攝像機圖像有時相當大,所以幾乎沒有一樣快,我們需要。甚至考慮使用Unity資產來識別號碼,然後發送多個小得多的API調用,但仍然不是原生的和一個額外的步驟。
  2. SO的指令使用.Net包裝Tesseract - 可能會很好,但建立並嘗試將外部dll進入Unity後,我收到此錯誤.Net Assembly Not Found(最有可能的問題與.Net版本dlls被編譯進去)。
  3. 在源服務器上安裝Tesseract,然後創建我們自己的API - 說實話,我們不清楚爲什麼當Google的工作如此出色並且得到積極維護時我們嘗試了這一點。

有沒有人遇到過同樣的問題在Unity中,最終找到了一個好的解決方案?

回答

0

Vuforia本身不提供任何系統來檢測數字,只是字母。爲了解決這個問題,我遵循了下一個策略(僅適用於普通圖像附近的數字):

  1. 識別圖像。
  2. 在識別目標圖像之後立即捕獲截圖(此截圖必須包含數字)。
  3. 將屏幕截圖發送到OCR Web服務並獲取響應。
  4. 從響應中提取數字。
  5. 使用這些數字來做任何你需要的,並顯示AR信息。

這種方法解決了這個問題,但它不像魅力。他們的成功取決於截圖和OCR服務的質量。