ML Kit распознавание текста + кириллица - PullRequest
0 голосов
/ 17 января 2020

Я пытаюсь использовать распознавание текста комплекта ML для кириллицы c с использованием android, но комплект неправильно распознает русский язык? Когда я использовал текст Engli sh, все было в порядке. Могу ли я улучшить свой результат? Может я что-то не так делаю?

PS Спасибо людям, которые создали этот комплект, это круто.

enter image description here

 override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    cameraProviderFuture = ProcessCameraProvider.getInstance(context!!)

    cameraProviderFuture.addListener(Runnable {
        val cameraProvider = cameraProviderFuture.get()
        bindPreview(cameraProvider)
    }, ContextCompat.getMainExecutor(context))

    takePicture.setOnClickListener {
        imageCapture.takePicture(File(getVideoFilePath(context!!)),
                ContextCompat.getMainExecutor(context),
                object : ImageCapture.OnImageSavedCallback {
                    @RequiresApi(Build.VERSION_CODES.P)
                    override fun onImageSaved(file: File) {
                        startTextRecognition(file)
                    }
                    override fun onError() {}
                })
    }
}

private fun startTextRecognition(textImage: File) {
    val recognizer = FirebaseVision.getInstance().onDeviceTextRecognizer
    recognizer.processImage(FirebaseVisionImage.fromFilePath(context, textImage.toUri()))
            .addOnSuccessListener {
                processTextRecognitionResult(it)
            }.addOnFailureListener {
                it.printStackTrace()
            }
}

  private fun processTextRecognitionResult(text: FirebaseVisionText) {
    var str = ""
    val blocks = text.textBlocks
    blocks.forEach { textBlock ->
        textBlock.lines.forEach { line ->
            line.elements.forEach {
                str += it.text + " "
            }
        }
    }
    textResult.text = str
}

Я использую CameraX для фотографирования

1 Ответ

1 голос
/ 29 января 2020

ML Kit на устройстве в настоящее время поддерживает только латинские наборы символов. Дополнительные опции доступны в облаке: https://firebase.google.com/docs/ml-kit/recognize-text

...