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

Flutter中Google ML Kit文字识别无法正确读取RMZ码的问题

解决Flutter中Google ML Kit识别MRZ码时的格式失真问题

一、尝试让Google ML Kit输出原始MRZ格式

Google ML Kit的通用文字识别默认会做本地化格式化(比如日期转换),且对<符号的识别准确率受图像质量影响,可通过以下方式优化:

  • 关闭自动格式化干扰:指定识别语言为英文(MRZ核心用英文和特殊符号),减少本地化转换逻辑影响:
final options = TextRecognitionOptions(
  language: 'en',
);
final textDetector = TextRecognizer(options: options);
RecognizedText recognisedText = await textDetector.processImage(inputImage);
  • 优化图像预处理:MRZ区域的清晰度直接决定<符号的识别率,可提前做这些处理:
    • 确保图像对焦清晰,MRZ区域无模糊、反光
    • 用image包将图像转为灰度图,增强黑白对比度
    • 裁剪图像到MRZ区域,减少无关内容干扰

二、更靠谱的替代方案:用专门的MRZ识别插件

ML Kit是通用文字识别工具,对MRZ这种有固定格式的专用条码,不如专门工具精准,推荐这两个Flutter插件:

  • mrz_scanner:专为MRZ识别设计,支持护照、身份证等证件,直接输出结构化MRZ数据,无需手动处理符号和日期格式:
import 'package:mrz_scanner/mrz_scanner.dart';

// 从本地图像文件识别
final mrzResult = await MrzScanner.scanImage(File('path/to/your/image'));

// 相机实时识别示例
MrzScannerController controller = MrzScannerController();
// 在Widget中使用预览组件
MrzScannerPreview(
  controller: controller,
  onMrzScanned: (result) {
    print(result.documentNumber);
    print(result.dateOfBirth); // 可获取原始YYMMDD格式
    print(result.expiryDate);
  },
);
  • flutter_mrz_parser:如果已经拿到原始MRZ文本,用这个插件直接解析结构化数据,同时保留原始符号和格式:
import 'package:flutter_mrz_parser/flutter_mrz_parser.dart';

final rawMrzText = "P<UTOERIKSSON<<ANNA<MARIA<<<<<<<<<<<<<<<<<<<\nL898902C36UTO7408122F1204159ZE184226B<<<<<10";
final parsedResult = MrzParser.parse(rawMrzText);
print(parsedResult.dateOfBirth.raw); // 直接输出原始YYMMDD格式

三、必须用ML Kit时的手动修复方案

如果只能依赖ML Kit,可在识别后根据MRZ的固定规则手动补全格式:

  • 按MRZ格式规则补全<:比如护照MRZ每行固定44个字符,识别后对不足长度的行用<补全
  • 还原日期格式:将识别出的DD/MM/YYYY转换回YYMMDD:
// 还原日期格式
String restoreMrzDate(String formattedDate) {
  if (formattedDate.contains('/')) {
    final parts = formattedDate.split('/');
    return '${parts[2].substring(2)}${parts[1]}${parts[0]}';
  }
  return formattedDate;
}

// 补全缺失的<符号(以护照MRZ为例)
String fillMissingLessThan(String line) {
  return line.length < 44 ? line.padRight(44, '<') : line;
}

内容的提问来源于stack exchange,提问作者Ramanathan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 01:15:52