Google Vision API文字识别器无法使用

时间:2017-11-30 09:42:34

标签: android ocr google-vision vision-api

我使用Google Vision API从任何对象(如报纸或墙上的文字)中读取文字。我尝试过来自Google开发者网站的相同示例,但我的Text Recognizer始终在IsOperational函数上返回false。我在Blackberry keyone上进行了测试,并在Moto x上测试过它的工作正常。

  

Gradle文件:compile 'com.google.android.gms:play-services-vision:11.0.4'

任何人都可以帮助我。在此先感谢

TextRecognizer textRecognizer = new TextRecognizer.Builder(context).build();
textRecognizer.setProcessor(new OcrDetectorProcessor(mGraphicOverlay, OcrCaptureActivity.this));
if(!textRecognizer.isOperational()) { 
  Log.e("TextRecog","Not Operational"); IntentFilter lowstorageFilter = new 
  IntentFilter(Intent.ACTION_DEVICE_STORAGE_LOW); boolean hasLowStorage = registerReceiver(null, lowstorageFilter) != null;
}

3 个答案:

答案 0 :(得分:0)

[TextRecognizer](https://developers.google.com/android/reference/com/google/android/gms/vision/text/TextRecognizer)中的isOperational方法继承自Detector类。设置后,该方法不会立即返回true。

来自docs

“表示检测器是否具有本地可用的所有依赖关系以进行检测。

首次安装应用时,可能需要下载所需的文件。如果返回false,则这些文件尚不可用。通常这个下载在应用程序安装时处理,但不保证这一点。在某些情况下,下载可能已被延迟。“

基本上,如果它返回false,则将其编码为等待并重试。我假设您正在手机上运行测试,在该方法返回true之前,您需要花些时间下载所有必需的库。

答案 1 :(得分:0)

您必须将此添加到AndroidManifest.xml

    <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"
    >


    <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />
    <meta-data
        android:name="com.google.android.gms.vision.DEPENDENCIES"
        android:value="ocr"/>

答案 2 :(得分:0)

在应用清单中添加视觉API的元数据

 <meta-data
    android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />
<meta-data
    android:name="com.google.android.gms.vision.DEPENDENCIES"
    android:value="ocr"/>