3 votes

La reconnaissance de texte n'est pas précise sur un appareil Android utilisant une caméra et le kit ML de Firebase

J'utilise Firebase ML Kit sur un appareil Android pour la reconnaissance de texte en utilisant une caméra sans cliquer sur l'image. Je l'utilise en recevant des images et en obtenant des bitmaps à partir des images. Puis je passe les bitmaps dans la méthode de reconnaissance de texte. Mais le texte reconnu n'est pas précis. De plus, il change constamment mais ne donne jamais de résultats précis. Veuillez me dire ce que je fais de mal.

obtenir des cadres et des Bitmaps :

  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();
            }

la reconnaissance de texte :

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();
        }
    });

}

3voto

AroshiS Points 69

Le texte que j'essayais de reconnaître était MRZ. J'ai contacté le support Firebase, ils ont eux-mêmes effectué des tests et ont conclu que l'API du kit ML n'est pas capable de lire du texte de type MRZ et qu'ils pourraient l'intégrer à l'avenir.

1voto

TheAnkush Points 557

Vous pouvez essayer Mobile Text Vision API for OCR (Optical Character Recognition) dans Android.

Reportez-vous à ce laboratoire de code Google pour les détails de mise en œuvre https://codelabs.developers.google.com/codelabs/mobile-vision-ocr/index.html?index=..%2F..index#0

En particulier la création de l'étape OcrDetectorProcessor.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X