Распознавание текста не является точным на устройстве Android с использованием камеры и Firebase ML Kit - PullRequest
2 голосов
/ 08 июля 2019

Я использую Firebase ML Kit на устройстве Android для распознавания текста с помощью камеры без нажатия на изображение. Я использую его, получая кадры и получая растровые изображения из кадров. Затем передача растровых изображений в метод распознавания текста. Но признанный текст не является точным. Кроме того, оно постоянно меняется, но никогда не дает точных результатов. Пожалуйста, дайте мне знать, что я делаю неправильно.

получение кадров и растровых изображений:

  public void onSurfaceTextureUpdated(SurfaceTexture surface) {
            frame = Bitmap.createBitmap(textureView.getWidth(), textureView.getHeight(), Bitmap.Config.ARGB_8888);
            textureView.getBitmap(frame);

            Bitmap emptyBitmap = Bitmap.createBitmap(textureView.getBitmap(frame).getWidth(), textureView.getBitmap(frame).getHeight(), textureView.getBitmap(frame).getConfig());
            if (textureView.getBitmap(frame).sameAs(emptyBitmap)) {
                // myBitmap is empty/blank
                System.out.println(" empty !!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
            } else {
                System.out.println(" bitmap");


                        bitmap = textureView.getBitmap(frame);
                                runTextRecognition();
            }

распознавание текста:

private void runTextRecognition() {
    System.out.println(" text recognition!!!");
    FirebaseVisionImage image = FirebaseVisionImage.fromBitmap(bitmap);
    FirebaseVisionTextRecognizer recognizer = FirebaseVision.getInstance().getOnDeviceTextRecognizer();
    recognizer.processImage(image).addOnSuccessListener(new OnSuccessListener<FirebaseVisionText>() {
        @Override
        public void onSuccess(FirebaseVisionText texts) {
            System.out.println("Text recognized ::: " + texts);
            textRecognized = true;
            processTextRecognitionResult(texts);

        }
    }).addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            e.printStackTrace();
        }
    });

}

1 Ответ

0 голосов
/ 08 июля 2019

Вы можете попробовать Mobile Text Vision API для оптического распознавания символов в Android.

Подробнее о реализации см. В этой лаборатории Google Code https://codelabs.developers.google.com/codelabs/mobile-vision-ocr/index.html?index=..%2F..index#0

Специально для создания шага OcrDetectorProcessor.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...