ML Kit 文字识别+西里尔文
ML Kit text recognition + cyrillic
我正在尝试使用 ML 套件文本识别使用 android 的西里尔字母,但套件无法正确识别俄语?当我使用英文文本时,一切正常。我可以改善我的结果吗?也许,我做错了什么?
P.S 感谢创建此工具包的人,它很酷。
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 拍照
设备上的 ML Kit 目前仅支持拉丁字符集。云选项提供更多功能:https://firebase.google.com/docs/ml-kit/recognize-text
我正在尝试使用 ML 套件文本识别使用 android 的西里尔字母,但套件无法正确识别俄语?当我使用英文文本时,一切正常。我可以改善我的结果吗?也许,我做错了什么?
P.S 感谢创建此工具包的人,它很酷。
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 拍照
设备上的 ML Kit 目前仅支持拉丁字符集。云选项提供更多功能:https://firebase.google.com/docs/ml-kit/recognize-text