머신러닝 PlatoBlockchain Data Intelligence를 활용하여 손글씨 인식을 쉽게 수행하는 방법. 수직 검색. 일체 포함.

머신러닝을 활용한 필기 인식 쉽게 하는 방법

머신러닝을 활용한 필기 인식 쉽게 하는 방법

손으로 쓴 OCR을 하고 싶으십니까? 이 블로그는 딥 러닝을 사용한 최신 필기 인식 방법에 대한 포괄적인 개요입니다. 우리는 최신 연구와 논문을 검토했으며 손글씨 리더도 처음부터 만들었습니다.


나노 넷 OCR API 흥미로운 것이 많다 사용 사례. 자세한 내용은 Nanonets AI 전문가에게 문의하십시오.


개요

광학 문자 인식(OCR) 시장 규모는 전년 대비 13.38% 성장하여 2025년까지 13.7억 XNUMX만 달러에 이를 것으로 예상됩니다. 이러한 성장은 OCR을 사용하여 인건비를 줄이고 귀중한 인력 시간을 절약하는 비즈니스 프로세스의 급속한 디지털화에 의해 주도됩니다. OCR이 해결된 문제로 간주되었지만, 여전히 어려운 문제 설명으로 간주되는 필기 인식(필기 OCR) 또는 필기 텍스트 인식(HTR)의 한 가지 핵심 구성 요소가 있습니다. 사람에 따른 필기 스타일의 편차가 크고 인쇄된 텍스트와 비교하여 필기 텍스트의 품질이 좋지 않아 기계가 읽을 수 있는 텍스트로 변환하는 데 상당한 장애물이 있습니다. 그럼에도 불구하고 이는 의료, 보험 및 은행과 같은 여러 산업에서 해결해야 할 중요한 문제입니다.

머신러닝을 활용한 필기 인식 쉽게 하는 방법
출처 :- https://www.semanticscholar.org/paper/Handwriting-recognition-on-form-document-using-and-Darmatasia-Fanany/

트랜스포머 아키텍처의 출현과 같은 딥 러닝의 최근 발전은 수기 텍스트 인식 크래킹의 진전을 빠르게 추적했습니다. 필기 텍스트 인식을 ICR (지능형 문자 인식)이라고합니다. ICR을 해결하는 데 필요한 알고리즘은 일반 OCR을 해결하는 것보다 훨씬 더 많은 지능이 필요하기 때문입니다.

이 기사에서 우리는 필기 텍스트 인식 작업, 그 복잡성 및 딥 러닝 기술을 사용하여 해결하는 방법에 대해 배울 것입니다.


손으로 쓴 양식에서 데이터를 추출하고 싶으십니까? 에 머리 나노 넷 무료로 손글씨 OCR 모델 구축을 시작하세요!


필기 인식의 과제

  1. 사람마다 뇌졸중의 큰 가변성과 모호함
  2. 개인의 필기 스타일도 수시로 변하고 일관성이 없습니다.
  3. 시간 경과에 따른 성능 저하로 인해 소스 문서 / 이미지의 품질 저하
  4. 인쇄 된 문서의 텍스트는 직선으로 배치되는 반면 인간은 백서에 직선으로 텍스트를 쓸 필요가 없습니다.
  5. 필기체 필기로 인해 문자 분리 및 인식이 어려워집니다.
  6. 필기체의 텍스트는 모든 텍스트가 똑바로 배치 된 인쇄 된 텍스트와 달리 오른쪽으로 가변 회전 할 수 있습니다.
  7. 학습 할 좋은 레이블이 지정된 데이터 세트를 수집하는 것은 합성 데이터에 비해 저렴하지 않습니다.

사용 사례

의료 및 의약품

환자 처방 디지털화는 의료 / 제약 산업의 주요 문제점입니다. 예를 들어 Roche는 매일 수백만 페타 바이트의 의료용 PDF를 처리하고 있습니다. 필기 텍스트 감지가 중요한 영향을 미치는 또 다른 영역은 환자 등록 및 양식 디지털화입니다. 서비스 툴킷에 필기 인식 기능을 추가함으로써 병원 / 약국은 사용자 경험을 크게 향상시킬 수 있습니다.

보험

대규모 보험 업계는 하루에 20 천만 개 이상의 문서를 받고 있으며 청구 처리가 지연되면 회사에 심각한 영향을 미칠 수 있습니다. 클레임 문서에는 다양한 필기 스타일이 포함될 수 있으며 클레임 처리의 순수 수동 자동화는 파이프 라인을 완전히 늦출 것입니다.

머신러닝을 활용한 필기 인식 쉽게 하는 방법
출처 :-https://www.researchgate.net/figure/mages-of-handwritten-bank-cheques-from-different-countries-a-Brazilian-1-b-American_fig2_226705617

은행

사람들은 정기적으로 수표를 작성하고 수표는 대부분의 비 현금 거래에서 여전히 중요한 역할을합니다. 많은 개발 도상국에서 현재 수표 처리 절차에서는 은행 직원이 수표에있는 정보를 읽고 수동으로 입력하고 서명 및 날짜와 같은 항목을 확인해야합니다. 은행에서 매일 많은 수표를 처리해야하므로 손글씨 텍스트 인식 시스템은 비용과 인적 작업 시간을 절약 할 수 있습니다.

온라인 라이브러리

전 세계에 접근 할 수 있도록 이미지 스캔을 업로드함으로써 엄청난 양의 역사적 지식이 디지털화되고 있습니다. 그러나 이러한 노력은 색인화, 쿼리 및 탐색이 가능한 이미지의 텍스트를 식별 할 수있을 때까지 그다지 유용하지 않습니다. 필기 인식은 중세 및 20 세기 문서, 엽서, 연구 연구 등에 생명을 불어 넣는 데 중요한 역할을합니다.

행동 양식

필기 인식 방법은 크게 아래 두 가지 유형으로 나눌 수 있습니다.

머신러닝을 활용한 필기 인식 쉽게 하는 방법
  1. 온라인 방법 :-온라인 방법은 디지털 펜 / 스타일러스를 포함하고 위의 오른쪽 그림과 같이 텍스트가 작성되는 동안 스트로크 정보, 펜 위치에 액세스 할 수 있습니다. 작성되는 텍스트의 흐름과 관련하여 많은 정보가있는 경향이 있기 때문에 상당히 높은 정확도로 분류 할 수 있으며 텍스트에서 서로 다른 문자 간의 경계가 훨씬 더 명확 해집니다.
  2. 오프라인 방법 :-오프라인 방법은 일단 쓰여지면 텍스트를 인식하는 것을 포함하므로 소스(예: 종이)의 배경 소음이 추가될 수 있으므로 쓰기 중에 관련된 획/방향에 대한 정보가 없습니다.

현실 세계에서 획 정보를 캡처하는 센서가 있는 디지털 펜을 휴대하는 것이 항상 가능/확장 가능한 것은 아니므로 오프라인에서 텍스트를 인식하는 작업이 훨씬 더 관련성 있는 문제입니다. 따라서 이제 오프라인 텍스트 인식 문제를 해결하기 위한 다양한 기술에 대해 논의합니다.

분석기법

필기 인식을 해결하기 위한 초기 접근 방식에는 HMM(Hidden Markov Models), SVM 등과 같은 기계 학습 방법이 포함되었습니다. 초기 텍스트가 사전 처리되면 루프, 변곡점, 종횡비 등과 같은 주요 정보를 식별하기 위해 특징 추출이 수행됩니다. 개별 캐릭터의. 이러한 생성된 기능은 이제 결과를 얻기 위해 분류자(HMM)에 제공됩니다. 기계 학습 모델의 성능은 수동 특징 추출 단계와 제한된 학습 용량으로 인해 상당히 제한적입니다. 특징 추출 단계는 모든 개별 언어에 따라 다르므로 확장할 수 없습니다. 딥 러닝의 출현으로 필기 인식 정확도가 크게 향상되었습니다. 필기 인식을 위한 딥 러닝 분야의 저명한 연구 몇 가지를 살펴보겠습니다.

다차원 순환 신경망

우리가 알고 있는 RNN/LSTM은 순차적 데이터를 처리하여 시간 패턴을 식별하고 결과를 생성할 수 있습니다. 그러나 그들은 1D 데이터를 다루는 것으로 제한되어 있으므로 이미지 데이터에 직접 적용할 수 없습니다. 이 문제를 해결하기 위해 본 논문의 저자들은 아래 그림과 같이 다차원 RNN/LSTM 구조를 제안하였다.

머신러닝을 활용한 필기 인식 쉽게 하는 방법

다음은 일반 RNN과 다차원 RNN의 차이점입니다. 일반적인 RNN에서 히든 레이어는 i-1 시간에 이전 히든 레이어에서 상태를 수신한다고 말합니다. 다차원 RNN에서 예를 들어 2 차원 RNN이라고 말하면 은닉층 (i, j)은 이전의 여러 은닉층, 즉 (i-1, j) 및 (i, j-1)에서 상태를 수신하므로 둘 다에서 컨텍스트를 캡처합니다. 네트워크를 통해 로컬 영역을 명확하게 이해하는 데 중요한 이미지의 높이와 너비. 이는 BI-LSTM이 t-1 및 t + 1에서 정보를 수신하는 방식과 유사하게 이전 계층뿐만 아니라 미래 계층에서도 정보를 얻기 위해 확장됩니다. 유사하게 2D MDRNN 히든 레이어 i는 이제 정보 (i-1, j), (i, j-1), (i + 1, j), (i, j + 1)을 수신하여 모든 방향에서 컨텍스트를 캡처 할 수 있습니다.

머신러닝을 활용한 필기 인식 쉽게 하는 방법

전체 네트워크 구조가 위에 나와 있습니다. 위의 MDRNN 논의에서 RNN 블록을 LSTM 블록으로 대체하는 MDLSTM이 사용됩니다. 입력은 이제 MDSTM 레이어로 공급되는 3x4 크기의 블록으로 나뉩니다. 네트워크는 MDLSTM 레이어의 계층 적 구조와 ANN (feed-forward) 레이어를 직렬로 사용합니다. 그런 다음 최종 출력은 1D 벡터로 변환되고 출력을 생성하기 위해 CTC 함수에 제공됩니다.

연결주의 시간 분류 (CTC) 음성 인식, 필기 인식 등과 같은 작업을 처리하는 데 사용되는 알고리즘입니다. 입력 데이터와 출력 전사만 사용할 수 있지만 정렬 세부 사항은 제공되지 않습니다. 특정 문자에 정렬됩니다. 각 캐릭터가 차지하는 공간의 양이 사람마다 그리고 때에 따라 필적에 따라 다르기 때문에 각 캐릭터에게 동일한 영역을 제공하는 것과 같은 단순한 경험적 방법은 효과가 없습니다.

필기 인식 사용 사례의 경우 특정 문장의 입력 이미지 영역을 입력으로 고려하십시오. X=[x1,x2,…,x ** T] 예상 출력 동안 Y=[y1,y2,…,y ** U] . X가 주어지면 정확한 Y를 찾아야 합니다. CTC 알고리즘은 입력 X를 취하고 최종 출력에 대한 예측을 할 수 있는 모든 가능한 Y에 대한 분포를 제공함으로써 작동합니다.

CTC는 입력 영역에서 중복 문자와 반복 문자를 구별하기 위해 기본 문자 say를 사용합니다. 예를 들어 특정 문자는 여러 입력 영역에 걸쳐 있을 수 있으므로 CTC는 동일한 문자를 연속적으로 출력합니다. 예:- 입력 james 및 CTC의 출력은 jjaammmee입니다. 최종 출력은 반복 출력을 축소하여 파생되므로 james를 얻습니다. 그러나 이제 hello에서 'l'이라고 말하는 중복 문자를 표시하려면 분리가 필요하므로 모든 출력은 하이픈(-)으로 분리됩니다. 이제 hello에 대한 출력은 h-ee-ll-lll-oo가 될 수 있으며 축소되면 hello가 아니라 hello가 됩니다. CTC 작동 방식에 대한 자세한 정보는 여기에서 볼 수 있습니다. CTC.

각 위치에 대한 가장 높은 확률의 단순 휴리스틱을 기반으로 CTC의 출력을 디코딩하는 동안 실제 세계에서는 의미가 없을 수 있는 결과를 얻을 수 있습니다. 이 문제를 해결하기 위해 다른 디코더를 사용하여 결과를 개선할 수 있습니다. 다양한 유형의 디코딩에 대해 논의해 보겠습니다.

  1. 최적 경로 디코딩 :-이것은 우리가 지금까지 논의한 일반적인 디코딩입니다. 각 위치에서 우리는 모델의 출력을 가져와 가장 높은 확률로 결과를 찾습니다.
  2. 빔 검색 디코딩 :-매번 네트워크에서 단일 출력을 취하는 대신 빔 검색은 모든 가능성이 가장 높은 여러 출력 경로를 유지하고 새로운 출력으로 체인을 확장하고 빔 크기를 일정하게 유지하기 위해 가능성이 낮은 경로를 삭제하는 것을 제안합니다. 이 접근 방식을 통해 얻은 결과는 탐욕스러운 접근 방식을 사용하는 것보다 더 정확합니다.
  3. 언어 모델을 사용한 빔 검색 :- 빔 검색은 그리드 검색보다 정확한 결과를 제공하지만 여전히 의미 있는 결과를 갖는 문제를 해결하지는 못합니다. 이 문제를 해결하기 위해 모델과 언어 모델의 확률을 모두 사용하여 빔 검색과 함께 언어 모델을 사용하여 최종 결과를 생성할 수 있습니다.

정확한 디코딩 결과 생성에 대한 자세한 내용은 여기에서 확인할 수 있습니다. 기사

인코더-디코더 및주의 네트워크

인코더-디코더 네트워크를 포함하는 Seq2Seq 모델은 최근 음성 인식, 기계 번역 등의 작업을 해결하는 데 인기가 있어 추가 주의 메커니즘을 배포하여 필기 인식의 사용 사례를 해결하도록 확장되었습니다. 이 분야에 대한 몇 가지 획기적인 연구에 대해 논의해 보겠습니다.

스캔, 참석 및 읽기

이 중요한 작업 인 Scan, Attend and Read (SAR)에서 저자는 엔드 투 엔드 필기 인식을위한주의 기반 모델의 사용을 제안합니다. 연구의 주된 기여는 전처리 단계에서 줄로 분할하지 않고 텍스트를 자동으로 전사하여 전체 페이지를 스캔하여 결과를 제공 할 수 있다는 것입니다.

머신러닝을 활용한 필기 인식 쉽게 하는 방법

SAR은 위에서 논의한 것과 유사한 MDLSTM 기반 아키텍처를 사용하며 최종 계층에서 한 가지 작은 변경이 있습니다. 마지막 선형 레이어, 즉 위 그림의 최종 Sum 블록 뒤에 피쳐 맵이 수직 차원에서 축소되고 최종 소프트 맥스 함수가 ​​적용되어 출력을 얻습니다.

머신러닝을 활용한 필기 인식 쉽게 하는 방법

SAR 아키텍처는 기능 추출기 역할을하는 MDLSTM 아키텍처로 구성됩니다. softmax 출력 및 CTC 손실이있는 최종 축소 모듈은주의 모듈과 LSTM 디코더로 대체됩니다. 사용 된주의 모델은 콘텐츠 기반주의와 위치 기반주의의 혼합 조합으로 다음 문서에서 자세히 설명합니다. 디코더 LSTM 모듈은 이전 상태, 이전주의 맵 및 인코더 기능을 사용하여 최종 출력 문자 및 다음 예측을위한 상태 벡터를 생성합니다.

Convolve, 참석 및 철자

이 논문은 필기 단어 인식을위한주의 기반 시퀀스-투-시퀀스 모델을 제안합니다. 제안 된 아키텍처는 CNN과 양방향 GRU로 구성된 인코더, 관련 기능에 초점을 맞춘주의 메커니즘, 해당 단어를 철자 할 수있는 단방향 GRU로 구성된 디코더, 한 글자 씩.

머신러닝을 활용한 필기 인식 쉽게 하는 방법

인코더는 CNN을 사용하여 시각적 특징을 추출합니다. 사전 훈련된 VGG-19-BN 아키텍처가 특징 추출기로 사용됩니다. 입력 이미지는 특징 맵 X로 변환된 다음 모든 채널을 열 방향으로 분할하고 결합하여 순차적 정보를 얻음으로써 X'로 재구성됩니다. X'는 양방향 GRU를 사용하여 추가로 H로 변환됩니다. GRU는 본질적으로 LSTM과 유사한 신경망이며 시간 정보를 캡처할 수 있습니다.

또한 디코더의 출력을 예측하는 동안주의 모델이 사용됩니다. 이 논문은 탐구 된 두 가지 유형의주의 메커니즘에 대해 설명합니다.

  1. 콘텐츠 기반주의 :-이 아이디어는 디코더의 현재 숨겨진 상태와 인코더의 기능 맵 사이의 유사성을 찾는 것입니다. 현재 시간 단계에서 현재 문자를 예측하는 데 사용할 수있는 인코더의 특징 맵에서 가장 상관 관계가있는 특징 벡터를 찾을 수 있습니다. 어텐션 메커니즘의 작동 방식에 대한 자세한 내용은 여기에서 확인할 수 있습니다. 주의
  2. 위치 기반주의 :- 콘텐츠 기반 위치 메커니즘의 주요 단점은 위치 정보가 인코더의 출력에 포함된다는 암시적인 가정이 있다는 것입니다. 그렇지 않으면 디코더에서 반복되는 문자 출력을 구별할 방법이 없습니다. 예를 들어 Charmander라는 단어를 고려하면 문자 a가 두 번 반복되며 위치 정보가 없으면 디코더는 이를 별도의 문자로 예측할 수 없습니다. 이를 완화하기 위해 인코더 출력과 이전 정렬을 모두 사용하여 현재 문자와 해당 정렬을 예측합니다. 위치 기반 출석 작동 방식에 대한 자세한 내용을 볼 수 있습니다. 여기에서 지금 확인해 보세요..

디코더는 단방향 다중 계층 GRU입니다. 각 시간 단계 t에서 이전 시간 단계에서 입력을 수신하고주의 모듈에서 컨텍스트 벡터를 수신합니다. 다항식 디코딩 및 레이블 평활화는 일반화 기능을 향상시키기 위해 훈련에서 탐색됩니다.

변압기 모델

인코더-디코더 네트워크는 필기 인식에 대한 결과를 달성하는 데 상당히 우수하지만 관련된 LSTM 레이어로 인해 훈련에 병목 현상이 있으므로 병렬화할 수 없습니다. 최근 변환기는 다양한 언어 관련 작업을 해결하는 데 꽤 성공적이었고 LSTM을 대체했습니다. 이제 변환기 기반 모델이 필기 인식에 어떻게 적용될 수 있는지 논의해 보겠습니다.

읽는 내용에주의를 기울이십시오

이 작업에서 저자는 시각 및 텍스트 단계 모두에서 다중 헤드 어텐션 자기주의 레이어를 사용하는 변환기 기반 아키텍처의 사용을 제안했으며, 따라서 디코딩 할 문자 시퀀스의 언어 관련 종속성뿐 아니라 문자 인식을 모두 학습 할 수 있습니다. 언어 지식이 모델 자체에 내장되어 있기 때문에 언어 모델을 사용하는 추가 후 처리 단계가 필요하지 않으므로 어휘의 일부가 아닌 출력을 예측할 수 있습니다. 이 텍스트 인코딩은 단어 수준이 아닌 문자 수준에서 발생합니다. 변환기 아키텍처를 사용하면 모든 지역 또는 캐릭터에 대해 병렬로 모델을 훈련 할 수 있으므로 훈련 프로세스가 훨씬 간단 해집니다.

머신러닝을 활용한 필기 인식 쉽게 하는 방법

네트워크 아키텍처는 다음 구성 요소로 구성됩니다.

  1. 비주얼 인코더 :-관련 기능을 추출하고 다양한 캐릭터 위치에 다중 머리 시각적 자기주의를 적용합니다.
  2. 텍스트 전 사기 :-그것은 텍스트 입력을 받고, 인코딩하고, 다중 머리 언어 자기주의를 적용하고 시각적 및 텍스트 기능 모두에 상호주의를 적용하는 작업을 수행합니다.
비주얼 엔코더

Resnet50 백본은 위 그림과 같이 기능을 추가하는 데 사용됩니다. Resnet3 Fc에서 출력된 50차원 기능 맵은 동일한 너비와 (fxh, w) 모양을 유지하여 2d로 모양을 변경하는 Temporal Encoding 모듈로 전달됩니다. 이것은 모양을 (f, w)로 줄이기 위해 완전히 연결된 레이어에 공급되고 결과 출력은 Fc'입니다. 또한 Vaswani의 Transformer 논문에서 언급한 위치 정보를 유지하기 위해 위치 인코딩 TE가 Fc'에 추가되었습니다. 변압기 아키텍처 설계 방법에 대한 추가 정보를 볼 수 있습니다. 여기에서 지금 확인해 보세요.. 출력은 완전히 연결된 레이어를 통과하여 모양 (f, w)의 최종 피쳐 맵을 얻습니다. 최종 출력은 8 개의 헤드가있는 다중 헤드주의 모듈을 통해 전달되어 시각적으로 풍부한 기능 맵을 얻습니다.

텍스트 전 사기

입력 텍스트는 문자 수준 임베딩을 생성하는 인코더를 통해 전달됩니다. 이러한 임베딩은 Visual Encoder에서 Temporal Encoder 모듈을 사용하는 방식과 유사한 시간적 위치와 결합됩니다. 이 결과는 Visual 인코더의주의 모듈과 유사한 Multi-Head Language Self-Attention 모듈로 전달됩니다. 시각적 인코더에서 시각적 특징을 따라 생성 된 텍스트 특징은 이미지와 텍스트 입력 모두에서 학습 된 특징을 정렬하고 결합하는 작업을 담당하는 상호주의 모듈로 전달됩니다. 출력은 최종 결과를 얻기 위해 softmax 함수를 통해 전달됩니다.

테스트 데이터를 평가할 때 트랜스 크립 션을 사용할 수 없습니다. 따라서 시작 토큰 <S> 만 입력으로 전달되고 첫 번째 예측 문자가 시스템에 피드백되어 두 번째 예측 문자가 출력됩니다. 이 추론 프로세스는 시퀀스 기호 <E>의 끝이 생성되거나 최대 출력 길이 N에 도달 할 때까지 루프에서 반복됩니다.

필기 텍스트 생성

필기 텍스트 생성은 실제처럼 보이는 필기 텍스트를 생성하는 작업이므로 기존 데이터 세트를 보강하는 데 사용할 수 있습니다. 우리가 알고 있듯이 딥 러닝은 훈련하는 데 많은 데이터가 필요하지만 다른 언어에 대해 레이블이 지정된 필기 이미지의 거대한 말뭉치를 얻는 것은 성가신 작업입니다. 이를 해결하기 위해 Generative Adversarial Networks를 사용하여 훈련 데이터를 생성할 수 있습니다. 여기에서 그러한 아키텍처 중 하나에 대해 논의해 보겠습니다.

스크래블GAN

ScrabbleGAN은 스타일과 어휘 모두에서 다재다능한 필기 텍스트 이미지를 합성하기 위해 반 감독 방식을 따릅니다. 다양한 길이의 이미지를 생성하는 기능이 있습니다. 생성기는 또한 결과 텍스트 스타일을 조작하여 텍스트가 필기체 여야하는지 또는 펜 스트로크가 얼마나 두껍거나 얇아 야하는지 결정할 수 있습니다.

머신러닝을 활용한 필기 인식 쉽게 하는 방법

아키텍처는 BigGAN을 기반으로하는 완전 컨볼 루션 생성기로 구성됩니다. 입력의 각 문자에 대해 해당 필터가 선택되고 모든 값이 함께 연결되고 생성 된 텍스트 스타일을 제어하는 ​​노이즈 벡터 z가 곱해집니다. 위에서 볼 수 있듯이 각 개별 문자에 대해 생성 된 영역이 겹치므로 연결된 재귀 텍스트를 생성하는 데 도움이 될뿐만 아니라 다양한 문자 크기의 유연성을 허용합니다. 예를 들어 m은 많은 공간을 차지하고 e와 t는 제한된 면적을 차지합니다. 전체 단어 또는 문장에 대해 동일한 스타일을 유지하기 위해 스타일 벡터 z는 모든 문자에 대해 일정하게 유지됩니다.

BigGAN 아키텍처를 기반으로 하는 convolutional discriminator는 이미지의 생성 스타일이 가짜인지 진짜인지 분류하는 데 사용됩니다. 판별자는 문자 수준 주석에 의존하지 않으므로 클래스 조건부 GAN을 기반으로 하지 않습니다. 이것의 장점은 레이블이 지정된 데이터가 필요하지 않으므로 훈련 데이터의 일부가 아닌 보이지 않는 말뭉치의 데이터를 훈련 판별기에 사용할 수 있다는 것입니다. 판별기와 함께 텍스트 인식기 R은 생성된 텍스트가 실제 세계에서 의미가 있는지 또는 횡설수설인지 분류하도록 훈련되었습니다. 인식기는 CRNN 아키텍처를 기반으로 하며 반복 헤드가 제거되어 인식기가 약간 약해지고 불분명한 경우에도 텍스트를 인식하지 못합니다. R의 출력에서 ​​생성된 텍스트는 생성기에 제공된 입력 텍스트와 비교되고 해당 패널티가 손실 함수에 추가됩니다.

ScrabbleGAN에서 생성 된 출력은 다음과 같습니다.

머신러닝을 활용한 필기 인식 쉽게 하는 방법

데이터 세트 :-

  1. IAM :-IAM 데이터 세트에는 100 명의 다른 저자가 작성한 영어 단어의 약 657 만 개의 이미지가 포함되어 있습니다. 기차, 테스트 및 유효성 검사 세트에는 상호 배타적 인 작성자가 작성한 단어가 포함되어 있습니다 .Link :- http://www.fki.inf.unibe.ch/databases/iam-handwriting-database
  2. CVL :-CVL 데이터 세트는 약 310 명의 참가자가 작성한 83 개의 손으로 쓴 문서로 구성되어 있으며 결과적으로 약 XNUMX 만 XNUMX 천 개의 단어가 학습 및 테스트 세트로 나뉩니다 .Link :- https://cvl.tuwien.ac.at/research/cvl-databases/an-off-line-database-for-writer-retrieval-writer-identification-and-word-spotting/
  3. 라임 :-약 60k 이미지의 프랑스어 단어를 포함하고 1300 명의 저자가 작성한 각 사람이 쓴 약 5 개의 메일에 해당합니다. http://www.a2ialab.com/doku.php?id=rimes_database:start

측정 항목 :-

문자 오류율 :-한 문자열을 다른 문자열로 변환하는 데 필요한 문자 대체 (Sc), 삽입 (Ic) 및 삭제 (Dc)의 합계 인 Levenshtein 거리를 해당 문자열의 총 문자 수로 나눈 값으로 계산됩니다. groundtruth (Nc)

머신러닝을 활용한 필기 인식 쉽게 하는 방법

단어 오류율 :-한 문자열을 다른 문자열로 변환하는 데 필요한 단어 대체 (Sw), 삽입 (Iw) 및 삭제 (Dw)의 합계를 groundtruth의 총 단어 수 (Nw)로 나눈 값으로 계산됩니다.

머신러닝을 활용한 필기 인식 쉽게 하는 방법

나만의 필기 인식 모델 훈련

이제 손으로 쓴 텍스트 인식 모델을 훈련하는 방법을 살펴보겠습니다. 우리는 IAM 데이터 세트에 대해 훈련할 것이지만 귀하의 자체 데이터 세트에 대해서도 모델을 훈련할 수 있습니다. 이 설정과 관련된 단계에 대해 논의해 보겠습니다.

Data

IAM 데이터 세트 레지스터를 다운로드하려면 여기에서 지금 확인해 보세요.. 일단 등록되면 words.tgz를 여기에서 지금 확인해 보세요.. 여기에는 손으로 쓴 단어 이미지의 데이터 세트가 포함됩니다. 또한 주석 파일 words.txt를 여기에서 지금 확인해 보세요..

자체 데이터 세트를 사용하려면 IAM 데이터 세트의 데이터 구조를 따라야합니다.

머신러닝을 활용한 필기 인식 쉽게 하는 방법

위는 AIM 데이터 세트 폴더 구조가 어떻게 보이는지 보여줍니다. 여기서 01, a02 등은 각각 데이터의 하위 폴더가 있는 상위 폴더를 나타냅니다. 각 하위 폴더에는 폴더 이름이 파일 이름에 접두사로 추가된 이미지 세트가 있습니다.

또한 이미지 파일의 경로와 해당 트랜스 크립 션을 언급하는 주석 파일이 필요합니다. 예를 들어 텍스트가 지명 된 위의 이미지를 고려하면 아래는 주석 파일 words.txt의 표현입니다.

a01-000u-01-00 ok 156 VBG 지명

  1. a01-000u-01-00-> a01-000u 형식의 줄에 대한 단어 ID
  2. ok / err-> 분할 출력 품질 표시기
  3. 156->이 단어를 포함하는 라인을 이진화하는 회색 수준
  4. 395 932-> x, y, w, h 형식의이 단어 주위의 경계 상자
  5. VBG->이 단어의 문법적 태그입니다. 여기 Verb Gerund입니다
  6. 지명->이 단어의 전사

건축물 :-

CTC 손실이있는 CRNN 기반 아키텍처를 훈련 할 것입니다. CNN은 RNN으로 전달되는 시각적 특징을 추출하는 데 사용되며 CTC 손실은 출력을 얻기 위해 탐욕스러운 디코더로 끝에 적용됩니다.

머신러닝을 활용한 필기 인식 쉽게 하는 방법

트레이닝

우리는 CRNN 코드를 사용할 것입니다. 여기에서 지금 확인해 보세요. 모델을 훈련시키기 위해 아래 단계에 따라 데이터를 준비하십시오.

python checkDirs.py

위 명령을 실행하면 아래와 같은 출력이 표시됩니다.

[OK] 단어 /
[OK] words / a01 / a01-000u /
[확인]words.txt
[확인] test.png
[OK] words/a01/a01-000u/a01-000u-00-00.png

이제 훈련을 시작할 준비가되었습니다.

루트 디렉토리로 이동하여 실행하십시오.

python main.py --train

결과

약 50 에포크 훈련 후 문자 오류율 (CER)은 10.72 %이고 단어 오류율 (WER)은 26.45 %이므로 단어 정확도는 73.55 %입니다. 일부 예측은 아래 그림에서 볼 수 있습니다.

머신러닝을 활용한 필기 인식 쉽게 하는 방법

이 모델은 캐릭터를 매우 정확하게 예측할 수 있지만 끔찍하게 예측되는 경우, 스토리는 스타리로 예측되는 등의 경우가 거의 없습니다. 이러한 문제는 의미있는 단어를 생성하고 간단한 실수를 수정할 수있는 디코더와 함께 후 처리 단계로 언어 모델을 사용하여 해결할 수 있습니다.

요약

필기 텍스트를 더 잘 인식하는 데 도움이되는 기술이 크게 발전했지만 HTR은 OCR에 비해 해결 된 문제와는 거리가 멀기 때문에 아직 업계에서 광범위하게 사용되지 않습니다. 그럼에도 불구하고 기술 발전의 속도와 변압기와 같은 모델의 도입으로 HTR 모델이 곧 일반화 될 것으로 예상 할 수 있습니다.

이 주제에 대한 더 많은 연구를 보려면 다음에서 시작할 수 있습니다. 여기에서 지금 확인해 보세요.

추가 읽기

타임 스탬프 :

더보기 AI 및 머신 러닝