ML Kit Text Recognition v2无法识别汽车零件非标准文本问题求助
汽车零件非标准样式数字的ML Kit文本识别问题
问题描述
我正在完成汽车零件的文本识别任务,使用ML Kit识别标准印刷符号/数字时效果良好,但遇到带有非标准样式数字的零件文本时,即便文本清晰可见,ML Kit也无法识别。iOS端的ML Kit以及安卓端谷歌翻译均能正常识别这类文本,我尝试过其他ML Kit文本识别方案,均未解决问题。
相关代码
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() } } } }
补充说明
isInScanningArea用于限定扫描区域内的文本识别,但即使直接输出相机捕获的全部文本visionText.text,也无法识别目标内容。
内容的提问来源于stack exchange,提问作者Serhii Krainik
相关产品推荐
相关产品推荐

