You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 10:32:44