많은 국가의 공식 여행 문서 또는 신분증에는 문서 데이터를 더욱 정확하게 처리할 수 있도록 기계 판독 영역(MRZ)이 포함되어 있습니다. MRZ는 ICAO Document 9303에 따라 작성된 OCR-B 글꼴 텍스트 2줄 또는 3줄로 구성됩니다(자세한 사양은 ICAO 웹사이트 참조).이 시나리오는 고객 온보딩 또는 신원 확인 프로세스에서 신분증의 기계 판독 영역으로부터 데이터를 추출하는 데 사용됩니다. 시스템은 문서 이미지에서 MRZ를 인식하고 그 안의 데이터를 추출합니다. 추출된 데이터에는 문서와 소지자에 대한 개인정보가 포함된 여러 field가 들어 있습니다(문서 유형, 만료일, 문서 소지자의 이름과 성 등). fields를 검색하고, 데이터를 검증한 다음, 후속 처리를 위해 외부 파일에 저장할 수 있습니다.MRZ에서 데이터를 추출하기 위해 일반적으로 스캔하거나 전자 형식으로 저장한 이미지 파일은 여러 처리 단계를 거치며, 각 단계마다 고유한 특성이 있습니다:
스캔한 이미지 또는 사진 전처리
MRZ가 있는 신분증의 인적사항 페이지를 스캔하거나 사진으로 촬영합니다. 모바일 장치의 디지털 카메라로 촬영한 사진은 해상도와 품질이 낮을 수 있습니다. 또한 이미지는 인식 전에 일부 전처리가 필요할 수 있습니다.
MRZ에서 데이터 추출
각 이미지에서는 MRZ를 하나만 캡처할 수 있습니다. 2줄 또는 3줄 각각의 텍스트를 인식하고 파싱하여 데이터 field를 추출합니다. 일부 field와 MRZ 전체에는 체크섬이 있어 데이터 검증에 도움이 됩니다.
외부 파일로 내보내기
추출된 데이터를 외부 형식으로 저장할 수도 있습니다. XML 및 JSON이 지원됩니다.아래에 설명된 절차는 Linux 및 Windows용 MRZExtraction 코드 샘플에 구현되어 있습니다.
아래에서는 이 시나리오에서 ABBYY FineReader Engine 12를 사용하는 권장 방식에 대해 자세히 설명합니다. 제안된 방식은 이 시나리오에 가장 적합한 처리 설정을 사용합니다.
1단계. ABBYY FineReader Engine 불러오기
ABBYY FineReader Engine 사용을 시작하려면 Engine 객체를 생성해야 합니다. Engine 객체는 ABBYY FineReader Engine 객체 계층 구조의 최상위 객체로, 다양한 전역 설정과 일부 처리 메서드, 그리고 다른 객체를 생성하는 메서드를 제공합니다.Engine 객체를 생성하려면 InitializeEngine 함수를 사용할 수 있습니다. Engine 객체를 불러오는 다른 방법 (Win)도 참조하세요.
이 시나리오에 적합한 처리 설정은 Engine 객체의 LoadPredefinedProfile 메서드를 사용해 불러올 수 있습니다. 이 메서드는 설정 프로필 이름을 입력 Parameter로 사용합니다. 자세한 내용은 프로필 사용를 참조하세요.이 시나리오에 대한 설정은 MachineReadableZone 사전 정의 프로필에서 사용할 수 있습니다:
이미지의 모든 텍스트를 감지하고 추출할 수 있습니다(그림, 벡터 그래픽, 표는 감지되지 않음).
FRPage 객체의 ExtractMrz 메서드를 호출하면서, 이전 단계에서 구성한 MrzProcessingParams 객체를 입력 Parameter로 전달합니다. 기본 MRZ 캡처 설정을 사용하려면 NULL만 전달하면 됩니다. 그러면 캡처된 MRZ에서 구문 분석한 정보가 포함된 MrzData 객체가 반환됩니다.
MrzData 객체에는 MRZ에서 추출한 모든 데이터가 들어 있습니다. GetLine 메서드를 사용해 기계 판독 텍스트의 각 줄에 액세스할 수 있으며, GetField 및 GetFieldByType 메서드를 사용해 field를 순회할 수 있습니다. 다음 유형의 field가 추출됩니다.
문서 유형
문서 하위 유형
발행 국가
성
이름
문서 번호
국적
생년월일
성별
만료일
개인 번호
추가 데이터 줄 1
추가 데이터 줄 2
MrzField 객체는 추출된 field에 대한 전체 정보를 제공합니다. field 값을 가져오려면 Text 속성을 사용하고, 이미지에서 field의 위치를 가져오려면 Region 속성을 사용합니다. 데이터를 검증하려면 MrzData 및 MrzField 객체의 Checksum, HasChecksum, IsChecksumVerified 속성을 통해 제공되는 체크섬을 사용합니다. 모든 field 유형이 체크섬을 지원하는 것은 아니므로, 체크섬을 가져오기 전에 값을 확인할 수 있도록 HasChecksum 속성이 제공됩니다.MrzField 객체의 Insert 및 Remove 메서드를 사용하면 field의 인식된 텍스트를 수동으로 편집할 수 있습니다.
애플리케이션이 작동하는 데 필요한 파일 목록을 자동으로 생성하려면 FREngineDistribution.csv 파일을 사용할 수 있습니다. 이 시나리오에 따라 처리하려면 5번째 열(RequiredByModule)에서 다음 값을 선택합니다.CoreCore.ResourcesOpeningOpening, ProcessingProcessingProcessing.OCRProcessing.OCR, Processing.ICRProcessing.OCR.NaturalLanguagesProcessing.OCR.NaturalLanguages, Processing.ICR.NaturalLanguagesExportExport, Processing표준 시나리오를 수정하는 경우 필요한 모듈도 그에 맞게 변경하십시오. 또한 인터페이스 언어, 인식 언어, 그리고 애플리케이션에서 사용하는 추가 기능(예: PDF 파일을 열어야 하는 경우의 Opening.PDF)도 지정해야 합니다. 자세한 내용은 FREngineDistribution.csv 파일 작업을 참조하십시오.