МЛ комплекта распознавание текста v2 плохо распознает текстAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 МЛ комплекта распознавание текста v2 плохо распознает текст

Сообщение Anonymous »

У меня есть задача обнаружить текст из автомобильных деталей. Для этой задачи я выбрал комплект ML, и он прекрасно работает с печатными символами/числами. (Фото 1) < /p>
Фото 1 < /p>
Однако, когда мы пытались обнаружить текст из частей, где числа имеют несколько нестандартный вид, он перестал работать. (Фото 2) Несмотря на то, что текст четко виден.
Photo 2 < /p>
Вот мой код: < /p>

Код: Выделить всё

AndroidView(
factory = { ctx ->
PreviewView(ctx).apply {
implementationMode = PreviewView.ImplementationMode.COMPATIBLE
}
},
modifier = Modifier.fillMaxSize()
) { previewView ->
cameraProvider?.let { provider ->
if (preview == null || imageAnalyzer == null) {

preview = Preview.Builder()
.setTargetResolution(android.util.Size(1280, 720))
.build()

imageAnalyzer = ImageAnalysis.Builder()
.setTargetResolution(android.util.Size(1280, 720))
.setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)
.setOutputImageFormat(ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888)
.build()
.also { analysis ->
analysis.setAnalyzer(cameraExecutor) { imageProxy ->
val mediaImage : Image? = imageProxy.image

if (mediaImage != null) {
val image = InputImage.fromMediaImage(
mediaImage,
imageProxy.imageInfo.rotationDegrees
)

textRecognizer.process(image)
.addOnSuccessListener { visionText ->
val detectedText = visionText.textBlocks
.filter { block ->
isInScanningArea(
block.boundingBox!!,
imageProxy.width,
imageProxy.height
)
}
.joinToString(" ") { it.text }

val regex = Regex("\\b[A-Za-z0-9]+(-[A-Za-z0-9]+)+\\b")
val extractedText = regex.find(detectedText)?.value

if (!extractedText.isNullOrEmpty() && !findResultScan) {
findResultScan = true
resultScan = extractedText
}
}
.addOnCompleteListener { imageProxy.close() }
}
}
}

try {
provider.unbindAll()
camera = provider.bindToLifecycle(
lifecycleOwner,
CameraSelector.DEFAULT_BACK_CAMERA,
preview,
imageAnalyzer
)

preview?.surfaceProvider = previewView.surfaceProvider
} catch (e: Exception) {
e.printStackTrace()
}
}
}
}

< /code>
isInScanningArea 
- Здесь я пытаюсь найти текст специально в области сканирования. Но даже если я печатаю все, что камера видит VisionText.Text , она все равно не может обнаружить, что мне нужно. Решения на комплекте ML, которые специализируются на распознавании текста, но без успеха. < /p>
Все лучше для iOS. Он смог обнаружить текст из изображения 2, и даже Google переводит на Android, чтобы распознать его.

Подробнее здесь: https://stackoverflow.com/questions/794 ... nizes-text
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»