생성 데이터 인텔리전스

딥 러닝을 이용한 ID 카드 디지털화 및 정보 추출 – 검토

시간


개요

이 기사에서는 조직이 딥 러닝을 사용하여 ID 카드 정보 추출, 데이터 입력 및 검토 절차를 자동화하여 효율성을 높이고 비용을 절감하는 방법에 대해 설명합니다. 우리는이 문제에 대해 과거에 사용 된 다양한 딥 러닝 접근법을 검토하고 결과를 비교하고 최신 분야를 조사합니다. 그래프 신경망과 이들이 디지털화에 어떻게 사용되는지 논의 할 것입니다.

ID 카드의 특정 사용 사례를 검토하는 동안 모든 형태의 문서, 송장 및 영수증 등을 다루는 사람은 심층 학습 및 OCR이 문제를 해결할 수있는 방법에 대한 기술적 이해를 구축하는 데 관심이 있습니다. 유능한.


여권, 운전 면허증 또는 주민등록증을 디지털화하고 싶습니까? 나노 넷으로 가서 오늘 저희에게 연락하십시오!


딥 러닝 및 디지털화

온 보딩 절차 중에 고객에 대한 충분한 양의 정보를 얻으려면 많은 조직에서 고객이 신원을 확인하고 관련 정보를 얻는 데 사용할 수있는 문서를 제출해야합니다. 몇 가지 예는 은행과 보험 회사를 포함합니다. 이 프로세스는 대개 많은 시간이 걸리고 많은 장소에서 수동으로 수행되므로 오류가 발생하기 쉽습니다. 고객은 직접 검토자가 검토 할 문서의 디지털 사본을 제출하고, 허위인지 식별하고, 이름, 주소 등과 같은 정보를 추출하여 데이터 입력 소프트웨어에 입력해야합니다.

딥 러닝 접근 방식과 OCR 기술이 발전함에 따라 실제 문서 정보 추출과 관련된 반자동 또는 완전 자동화 된 솔루션이 더 널리 채택되고 있습니다. 정보의 디지털화가 널리 보급되고있는 몇 가지 이유는 다음과 같습니다.  

  1. 정보 추출 – 우리는 ID 카드에 제공된 모든 정보를 캡처하여 나중에 사용할 수 있도록 고유 한 소스로 해당 데이터를 푸시 할 수 있습니다. 캡처 한 ID 카드에서 가져온 모든 정보는 간단한 텍스트 / 숫자 형식입니다. 이를 통해 데이터를 체계적인 방식으로 유지 관리하고 모든 종류의 확인 또는 등록 프로세스를 수행 할 수 있습니다.
  2. 더 빠른 속도와 효율성 – ID 카드를 디지털화하면 기업과 조직에 많은 시간과 비용을 절약 할 수 있습니다. 단순히 ID 카드를 스캔하여 모든 데이터를 검색하는 데 몇 초가 걸립니다. 수동 입력 및 검토 대신 빠른 디지털 프로세스로의 이러한 전환은 딥 러닝 기반 접근 방식 (나중에 논의 됨)을 통해 가능합니다.
  3. 오류없이 데이터를 기록 – 기술과 컴퓨터 성능이 향상됨에 따라 이제 기계는 많은 오류없이 데이터를 캡처 할 수 있습니다. 반복적 인 작업을 자동화하고 인간이 정보 추출 파이프 라인의 최종 단계에서 문서 정보를 검토 할 수있게하여 인적 오류 가능성을 줄일 수 있습니다.
  4. 모든 시스템에 쉽게 통합 – 디지털 솔루션을 모든 시스템에 쉽게 통합 할 수 있습니다. 예를 들어, 특정 ID 카드에서 정보를 식별하도록 훈련 된 모델은 사용자가 이미지를 대량으로 업로드하는 웹 사이트에 배포하거나 사용자가 이미지를 클릭하여 정보를 추출하는 휴대폰에서 사용할 수 있습니다 .

도전과 단점

딥 러닝은 많은 자동화 문제에 대한 해결책이되었지만 여전히 연구원과 개발자가 훌륭한 품질을 제공하고 높은 정확도를 제공하는 완벽한 모델을 구축하려고하는 몇 가지 과제가 있습니다. 많은 물리적 및 기술적 오류가있을 수 있으며 그 중 몇 가지가 아래에 설명되어 있습니다.

다양한 디자인, 템플릿 및 다국어 환경 – 다양한 유형의 ID 카드를위한 여러 글꼴, 디자인 및 템플릿이 있습니다. 다양한 글꼴의 문자는 클래스 내 변형이 크며 많은 패턴 하위 공간을 형성하므로 문자 클래스 번호가 클 때 정확한 인식을 수행하기가 어렵습니다. 모든 모델이 임의의 이미지 세트로 학습되면 모델의 성능이 저하 될 가능성이 높습니다. 때로는 다른 언어로 인쇄 된 ID 카드가 거의 없습니다. 다국어 상황에서는 복잡한 기호 정보가 더 까다롭기 때문에 스캔 한 문서에서 정보를 캡처하는 것이 주요 연구 문제로 남아 있습니다.

방향과 왜곡 (회전) – 스캔 한 문서 또는 ID 카드는 일반적으로 센서 평면과 평행합니다. 그러나 이미지를 카메라 또는 디지털 형식으로 수동으로 캡처하면 방향 및 기울기와 같은 다른 문제가 있습니다. 휴대폰은 방향 센서와 함께 유리합니다. 장치가 기울어 졌는지 여부를 인식 할 수 있으며 비틀림이 발생하면 클라이언트가 사진을 찍지 못하게 할 수 있습니다. 왜도는 기본적으로 ID 카드가 캡처되는 각도의 정도입니다. 왜도가 크면 모델의 결과가 약간 나빠집니다. 그러나 프로젝션 프로파일, RAST 알고리즘, 허프 변환, 푸리에 변환 방법 등과 같은이 문제를 극복하기위한 몇 가지 기술이 있습니다.

장면 복잡성 – 일반적으로 장면 복잡도는 이미지가 캡처되는 환경에 의해 정의됩니다. 복잡도는 불균일 한 조명, 대비, 기울기 (이미지가 캡처 된 위치) 등과 같은 여러 요인에 따라 달라집니다. 캡처 된 정보는 비교 구조와 이미지를 처리하기 어려운 텍스트로 나타납니다. 따라서이를 극복하려면 정보 추출을 위해 ID 카드를 교육하거나 레이블을 지정하기 전에 이미지가 사전 처리되었는지 확인해야합니다. 조명 조건의 경우 텍스트를 강조 표시하고 모델이 이미지를보다 쉽게 ​​처리 할 수 ​​있도록하는 필터 및 향상기를 사용할 수도 있습니다.

디지털화 및 OCR – 전통적인 방법

ID 카드에서 정보를 추출 할 때 최첨단 성능을 달성하기 위해 딥 러닝이 어떻게 사용되는지 살펴 보겠습니다.  

객체 감지

Faster-RCNN, Mask-RCNN, YOLO, SSD, RetinaNet과 같은 널리 사용되는 딥 러닝 아키텍처를 사용하면 객체 감지를 사용하여 텍스트 문서에서 정보를 추출하는 작업이 훨씬 쉬워졌습니다. 여기서 모델은 캐릭터에 대해 훈련 된 다음 이미지에서 객체로 인식됩니다. 아래는 물체 감지를 사용하여 수행 한 이미지에서 텍스트를 식별하는 이미지를 명확하게 나타내는 이미지입니다.

네트워크의 출력은 텍스트로 연결해야하는 개별 문자로 구성됩니다. 단일 문자가 잘못 예측되면 오류가 전체 텍스트에 영향을 미치지 않습니다.

컨볼 루션 반복 신경망

반복 신경망은 텍스트 데이터 처리로 잘 알려져 있습니다. 하지만 신분증에서 정보를 추출하기 위해서는 이미지 (캡처 된)와 텍스트 (식별해야하는)를 처리하는 교차점이 필요합니다. 이를 달성하기 위해 2015 년에 CRNN이 도입되었습니다. CRNN에서 첫 번째 수준에는 기본 완전 컨볼 루션 네트워크가 있습니다. 네트워크의 다음 레벨은 피처 레이어로 정의되며 "특성 열"로 나뉩니다. 특성 열은 시퀀스를 출력하고 문자 간의 관계를 찾는 데 사용되는 양방향 LSTM에 입력됩니다. 아래는 흐름을 설명하는 이미지입니다.

출처 : https://arxiv.org/pdf/1609.04243.pdf
출처: https://arxiv.org/pdf/1609.04243.pdf 

결과 - CRNN은 처음에 음악 분류에 사용 된 후 천천히 텍스트 인식 및 분류 도구가되었습니다. 이 네트워크는 분류 작업에서 77 %의 정확도를 달성했습니다. 연구에 사용 된 CRNN의 깊이는 최대 20 개의 레이어였으며 2500 개의 샘플에 대해 훈련되었습니다.

STN-OCR 네트워크

공간 변압기 네트워크 이미지에서 공간 분산을 제거하기 위해 아핀 변환을 적용합니다. 이미지의 어떤 부분이 가장 중요한지를 배우고 그에 따라 이미지의 크기를 조정하거나 회전하여 해당 부분에 초점을 맞 춥니 다.

STN-OCR은 반 감독 신경망이며 지역화 네트워크, 그리드 생성기 및 샘플러로 구성됩니다. 현지화 네트워크는 입력 이미지를 가져 와서 적용하려는 변환에 대한 매개 변수를 제공합니다. 그리드 생성기는 원하는 출력 템플릿을 사용하고 현지화 네트워크에서 얻은 매개 변수를 곱한 후 원하는 결과를 얻기 위해 변환을 적용 할 지점의 위치를 ​​제공합니다. 변환 된 기능 맵을 생성하기 위해 이중 선형 샘플링 커널이 사용됩니다. 이 최종 변환 된 피쳐 맵은 입력 이미지의 텍스트를 예측하기 위해 다음 인식 작업을 거칩니다.

다음은 이미지 정보를 식별하는 STN-OCR 네트워크의 네트워크 아키텍처입니다.

이미지 출처 : https://arxiv.org/pdf/1707.08831.pdf

결과 – 저자는 예측과 텍스트 레이블의 교차 엔트로피 손실 또는 CTC 손실을 계산하여 얻은 오류 그래디언트를 사용했습니다. 네트워크는 SVHN 데이터 세트의 이미지에서 텍스트를 식별하는 데 95.2 %의 정확도를 달성했습니다. 네트워크가 90.3 %의 정확도로 수행되는 강력한 판독 데이터 세트에 동일한 네트워크가 사용되었습니다.

주의 OCR

주의 OCR CNN과 RNN을 새로운주의 메커니즘과 결합한 것입니다. 여기에서는 동일한 CNN 기능 추출기를 통해 서로 다른 뷰를 가진 이미지를 전달한 다음 결과를 하나의 큰 기능 맵으로 연결합니다. 먼저 컨볼 루션 네트워크 레이어를 사용하여 인코딩 된 이미지 특징을 추출합니다. 이러한 추출 된 기능은 문자열로 인코딩되고주의 메커니즘이 처리 할 수 ​​있도록 순환 네트워크를 통해 전달됩니다. 구현에 사용 된주의 메커니즘은 Seq2Seq 기계 번역 모델. 이주의 기반 디코더를 사용하여 이미지의 텍스트를 최종 예측합니다.

출처 : https://arxiv.org/pdf/1704.03549.pdf
출처: https://arxiv.org/pdf/1704.03549.pdf

결과 – 스트리트 뷰 이미지에 대해 조사하여 까다로운 FSNS (French Street Name Signs) 데이터 세트에서 84.2 %의 정확도를 달성하여 16 %를 달성 한 이전의 최신 기술 (Smith'72.46)을 크게 능가했습니다. 일반 CNN은 최대 80.4 %의 정확도를 제공했습니다.

CNN이 충분하지 않은 이유

Convolutional Neural Networks는 이미지 분류, 비디오 처리, 음성 인식 및 자연어 이해와 같은 작업에서 매우 잘 작동합니다. 이러한 작업의 데이터는 일반적으로 유클리드 공간에 표시됩니다. 그러나 비 유클리드 도메인에서 데이터가 생성되고 객체 간 복잡한 관계 및 상호 의존성을 갖는 그래프로 표시되는 응용 프로그램이 점점 더 많아지고 있습니다.

그래프 신경망이 작동하는 곳입니다.

신경망 및 디지털화 그래프

그래프 네트워크는 그래프를 입력으로 사용하는 특수한 유형의 신경망입니다. 어떤 그래프인지 궁금하다면 이들은 객체 (노드)와 관계 (에지)를 모델링하는 간단한 데이터 구조입니다. 주요 아이디어는 데이터 처리 단계에서 그래프 구조 정보를 통합하기 위해 그래프 노드 사이의 토폴로지 관계를 사용하여 기본 그래프 구조 데이터를 인코딩하는 것입니다.

참조 : 딥 워크: 사회 대표의 온라인 학습

Graph Networks를 기반으로하는 가장 인기있는 연구 중 하나는 Deep Walk입니다. 알고리즘은 임의의 보행을 수행하여 노드 시퀀스를 만듭니다. 스킵 그램 모델을 사용하여 노드 임베딩을 생성 한 다음이 노드를 분류하는 데 사용합니다. 위는 딥 네트워크의 입력 및 출력 이미지이며, 그래프의 다른 색상은 입력 그래프의 다른 레이블을 나타냅니다. 출력 그래프 (2 차원 임베딩)에서 동일한 레이블을 가진 노드가 함께 클러스터링되고 다른 레이블을 가진 대부분의 노드가 올바르게 분리되어 있음을 알 수 있습니다.

컨벌루션 네트워크 그래프

출처 : 링크

GCN에서는 그래프 형태의 입력 데이터가 공급됩니다. 특징 추출 과정에서 그들은 그래프에서 컨볼 루션을 수행하기 위해 스펙트럼 및 공간 접근 방식을 사용합니다.이를 통해 ID 카드 또는 텍스트 문서의 텍스트 좌표를 더 높은 정밀도로 식별 할 수 있습니다. 공간 기능 사용의 주요 이점 중 하나는 동질적인 그래프 구조가 필요하지 않다는 것입니다. 즉, 입력이 다른 유형일 수 있습니다. 일반 풀링 레이어와 서브 샘플링 레이어의 사용은 텍스트의 특징을 강조하는 것입니다. 특징 추출이 완료되면 분류 네트워크를 사용하여 좌표 내에서 찾은 텍스트를 식별하고 점수를 반환합니다. 이를 통해 텍스트를 생성하고 출력을 레이블로 반환 할 수 있습니다. 다음을 통해 그래프 네트워크에 대해 자세히 알아볼 수 있습니다. 이 문서 그리고 확인 Github 저장소.

CNN 및 GCN

이제 CNN과 GCN의 핵심 차이점을 살펴 보겠습니다. 아래 이미지에서 왼쪽에 있는 것은 이미지의 픽셀이 전체 노드로 간주되고 이웃이 필터 크기에 의해 결정되는 2차원 컨볼루션을 나타냅니다(이웃은 3×3 필터일 수 있음, 4×4 필터 등). 2D 컨볼루션은 이미지에서 특징을 강조 표시하고 추출하기 위해 이웃과 함께 빨간색 노드의 픽셀 값의 가중 평균을 취합니다. 반면에 Graph Convolution에서 빨간색 노드의 숨겨진 표현을 찾으려면 빨간색 노드의 노드 피처의 평균값을 이웃과 함께 가져와야 합니다.

2D 컨볼 루션 vs 그래프 컨볼 루션 –

시각적으로 풍부한 문서를위한 GCN

시각적으로 풍부한 문서의 텍스트는 정보 손실없이 시퀀스로 직렬화 할 수 없습니다. biLSTM-CRF 기반 모델과 같은 고전적인 정보 추출 모델은 문서 이미지의 시각적 특징을 고려할 수 없었습니다. 이 종이 그래프 컨볼 루션을 사용하여 시각적 특징도 고려할 수있는 방식으로 문제에 접근했습니다.

모델 아키텍처

GCN의 경우 입력이 그래프 신호로로드됩니다. 이 논문에서는 VRD에서 정보를 추출하기 위해 그래프 컨벌루션을 사용했습니다. 각 텍스트 세그먼트는 세그먼트의 위치와 그 안의 텍스트로 구성됩니다. 따라서 텍스트 구성 요소의 위치는 경계 상자를 사용하여 네 개의 좌표로 결정됩니다.

VRD에 표시되는 텍스트 및 시각적 정보를 결합하기 위해 그래프 컨벌루션 기반 모델을 사용합니다. 그래프 임베딩은 텍스트 임베딩과 더 결합 된 문서 벡터를 얻기 위해 모든 텍스트 세그먼트에 대해 학습됩니다 (bi-LSTM이 사용됨). 출력은 완전히 연결된 레이어와 CRF 레이어를 통과하여 최종적으로 예측을 얻습니다.

퍼포먼스

모델은 VATI (Value Added Tax Invoice)와 IPR (International Purchase Receipts)의 두 가지 실제 데이터 세트에서 성능에 대해 평가됩니다. 이 모델은 두 개의 BiLSTM-CRF 모델과 비교됩니다. 기준선 I는 BiLSTM-CRF를 각 개별 문장에 적용합니다. BaselineII는 IOB 태깅 모델을 연결된 문서에 적용합니다. 또한 시각적 특징 및 텍스트 특징 추출과주의 메커니즘없이 자체 모델을 분석하고 비교를 제공합니다. 결과는 아래와 같습니다.

ID 카드 디지털화를위한 GCN

다음은 입력이 문서 그래프로로드되고 각 노드가 서로 연결된 방식입니다. 그래프에서 노드는 텍스트 세그먼트 (보통 OCR)를 나타내며 가장자리는 두 노드 간의 상대적인 모양 및 거리와 같은 시각적 종속성을 나타냅니다.

이제 ID 카드 정보 추출 문제를 고려하고 그래프의 모든 노드 (입력으로 사용할)가 레이블 (ID 카드 필드)과 연관되어 있고 노드의 레이블을 예측한다고 가정합니다. 여기에서 노드는 문서의 모든 단어이고, 특징 벡터는 경계 상자 정보와 연결된 단어 벡터이며 레이블은 이름, 주소 등을 나타내는 필드입니다.이 입력을 통해 네트워크는 다음을 이해하는 노드 표현을 학습합니다. 이웃 노드에 대한 정보. 이러한 그래프 임베딩은 biLSTM을 통과 한 다음 완전히 연결된 레이어를 거쳐 최종적으로 다른 필드를 얻습니다. biLSTM 출력은 OCR 텍스트를 순차적으로 생성하는 데 사용할 수 있으며 디코더 아키텍처를 통해 전달하여 위치를 지정할 수 있습니다.

Nanonets를 사용한 ID 카드 디지털화

XNUMXD덴탈의 나노 넷 OCR API OCR 모델을 쉽게 만들 수 있습니다. 데이터를 업로드하고 주석을 달며 모델을 설정하여 한 줄의 코드를 작성하거나 GPU에 대해 걱정하거나 딥 러닝 모델에 적합한 아키텍처를 찾지 않고도 브라우저 기반 UI를 통해 예측을 기다릴 수 있습니다.

15 분 내에 ID 카드 디지털화

자체 데이터를 업로드하고 모델을 학습하고 각 예측의 JSON 응답을 획득하여 자체 시스템과 통합하고 최신 알고리즘과 강력한 인프라를 기반으로 구축 된 머신 러닝 기반 앱을 구축 할 수 있습니다.

방법은 다음과 같습니다.

GUI 사용 : https://app.nanonets.com/

아래 단계에 따라 Nanonets-OCR API를 사용할 수도 있습니다 .‌

1 단계 : Repo 복제, 종속성 설치 (레포 링크)

git clone https://github.com/NanoNets/nanonets-id-card-digitization.git
cd nanonets-id-card-digitization
sudo pip install nanonets

2 단계 : 무료 API 키 받기
에서 무료 API 키 받기 https://app.nanonets.com/#/keys

번호판 감지 GIF

3 단계 : API 키를 환경 변수로 설정

export NANONETS_API_KEY=YOUR_API_KEY_GOES_HERE

4 단계 : 교육용 이미지 업로드
훈련 데이터는 images (이미지 파일) 및 annotations (이미지 파일의 주석)

python ./code/training.py

참고 : 다음 단계에 필요한 MODEL_ID가 생성됩니다.

5 단계 : 환경 변수로 모델 ID 추가

export NANONETS_MODEL_ID=YOUR_MODEL_ID

참고 : 이전 단계에서 YOUR_MODEL_ID를받습니다.

6 단계 : 모델 상태 얻기
이 모델은 훈련하는 데 ~ 2 시간이 걸립니다. 모델이 훈련되면 이메일을 받게됩니다. 그 동안 모델의 상태를 확인하십시오

python ./code/model-state.py

7 단계 : 예측하기
모델이 훈련되면 모델을 사용하여 예측할 수 있습니다

python ./code/prediction.py PATH_TO_YOUR_IMAGE.jpg

샘플 사용법 :

python ./code/prediction.py ./images/111.jpg

루프에서 나노 네트와 인간

‌‌ '보통'화면은 수정 및 입력 프로세스를 돕고 수동 검토 자의 작업량을 거의 90 % 줄이고 조직의 비용을 50 % 줄입니다.

기능 포함

  1. 올바른 예측 추적
  2. 어느 것이 잘못되었는지 추적
  3. 부정확 한 것을 수정하십시오
  4. 잘못된 것을 삭제하십시오
  5. 누락 된 예측 채우기
  6. 날짜 범위로 이미지 필터링
  7. 조정되지 않은 이미지에 대한 조정 된 이미지 수 얻기

모든 필드는 사용하기 쉬운 GUI로 구성되어있어 사용자가 코드를 입력하거나 기술의 작동 방식을 이해할 필요없이 OCR 기술을 활용하고 더 나은 방식으로 사용할 수 있도록 지원합니다.

요약

이 기사에서는 ID 카드에서 정보를 추출하고 디지털화하는 방법에 대해 간략하게 설명했습니다. 우리는 모든 인기있는 기술을 장단점으로 검토했습니다.

신경망이 작동하는 방식과 컨볼 루션 신경망을 사용하여 이미지의 기능과 패턴을 식별하는 방법을 살펴 보았습니다. 지금까지 OCR 작업에 사용 된 여러 가지 방법에 대해 설명하고 어떤 기술이 잘 작동하는지 비교할 수 있습니다. 나중에, 우리는 정보 추출을위한 대중적인 기술 중 하나 인 GCN에 대해 논의했습니다. 그들은 스캔 된 문서로부터 정보 추출 과정에서 최첨단 성능을 달성했습니다.

마지막으로, ID 카드 디지털화는 여러 조직과 비즈니스 모델에서 많은 시간과 인적 노력을 줄입니다. 딥 러닝을 사용하여이 문제를 자동화하고 다양한 응용 프로그램에 실시간으로 솔루션을 배포 할 수 있습니다. 이러한 모델은 비용과 노력을 줄일뿐만 아니라 확장 가능하고 고성능입니다. 그러나 최첨단 성능 모델을 구축하는 기술에는 많은 연구와 실험이 필요합니다. 이 기사는 시작하는 방법을 이해하고 모든 인기있는 기술에 대해 간략하게 설명합니다.

출처 : https://nanonets.com/blog/id-card-digitization-deep-learning/

spot_img

최신 인텔리전스

spot_img