KR102646607B1 - 딥러닝 기반의 문자 인식 시스템 - Google Patents

딥러닝 기반의 문자 인식 시스템 Download PDF

Info

Publication number
KR102646607B1
KR102646607B1 KR1020210137618A KR20210137618A KR102646607B1 KR 102646607 B1 KR102646607 B1 KR 102646607B1 KR 1020210137618 A KR1020210137618 A KR 1020210137618A KR 20210137618 A KR20210137618 A KR 20210137618A KR 102646607 B1 KR102646607 B1 KR 102646607B1
Authority
KR
South Korea
Prior art keywords
unit
video image
text
recognition
learning
Prior art date
Application number
KR1020210137618A
Other languages
English (en)
Other versions
KR20230054053A (ko
Inventor
김지현
김동현
Original Assignee
한국딥러닝 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국딥러닝 주식회사 filed Critical 한국딥러닝 주식회사
Priority to KR1020210137618A priority Critical patent/KR102646607B1/ko
Publication of KR20230054053A publication Critical patent/KR20230054053A/ko
Application granted granted Critical
Publication of KR102646607B1 publication Critical patent/KR102646607B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/413Classification of content, e.g. text, photographs or tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Character Discrimination (AREA)

Abstract

본 발명은 딥러닝 기반의 문자 인식 시스템에 관한 것으로, 해결하고자 하는 과제는 딥러닝 기반의 초고속 문자 인식 기술을 이용한 텍스트 라인 추출 및 비정형 문자 인식을 통해 업무 자동화를 실현시켜 업무 효율을 극대화시키는데 있다.
일례로, 비정형 문자의 자소 별로 CNN(Convolution Neural Network) 학습을 진행하여 학습 모델을 생성하는 학습 모델 생성부; 인식대상텍스트가 기재된 인쇄물을 촬영 또는 스캔하거나, 저장매체로부터 인식대상텍스트가 저장된 전자파일을 입력 받고, 촬영 또는 스캔된 인쇄물 또는 입력된 전자파일에 대한 영상 이미지를 획득하는 영상 이미지 획득부; 상기 영상 이미지에 표시된 글자 단위의 섹터를 형성하고, 형성된 섹터 간의 라인을 생성하되, 미리 설정된 구절 종료 인식 알고리즘에 기초하여 다수의 섹터로 이루어진 텍스트 라인을 각각 인식하여 추출하는 텍스트 라인 추출부; 및 상기 학습 모델을 이용하여 상기 텍스트 라인 별로 비정형 문자를 각각 인식하는 비정형 문자 인식부를 포함하는 딥러닝 기반의 문자 인식 시스템을 개시한다.

Description

딥러닝 기반의 문자 인식 시스템{SYSTEM FOR RECOGNIZING CHARACTER BASED ON DEEP LEARNING}
본 발명의 실시예는 딥러닝 기반의 문자 인식 시스템에 관한 것이다.
최근 무인화 기술의 발전에 따라, 영상 이미지에서 텍스트를 인식하는 문자열 인식(scene text recognition) 기술이 주목 받고 있다. 특히, 카메라 영상으로부터 문자를 검출하고 인식하는 시스템은 현대 사회에서 그 필요성이 크게 대두되고 있다.
스마트 폰을 사용한 자동 문자 번역 서비스, 간판을 인식 하는 기술, 도로의 이정표를 인식하는 기술 등 다양한 사용자 편의 기술의 기반 기술로서 높은 성능이 요구된다. 실내 환경 및 정형화된 텍스트에 대한 문자 검출 및 인식 기술인 OCR(Optical Character Recognition) 기술은 현재 상용화 단계에 이르러 그 높은 성능을 인정받고 있다.
이에 종래에는 문자열 인식을 위한 여러 가지 영상 처리 기법들이 개발되고 있다. 그 중 하나로 규칙 기반의 영상처리 기법이 있다. 하지만, 규칙 기반의 영상 처리 기법은 기반이 되는 수치 설계가 요구되며, 수치들을 설계 하는 전문가의 기술에 의한 영향을 많이 받는다. 또한, 규칙 기반의 영상 처리 기법은 영상 이미지의 가변성을 반영하지 못하여 정확도가 떨어지는 문제가 있다.
이러한 문제점을 보완하기 위해 최근에는 딥러닝(Deep Learning) 학습을 이용한 영상 처리 기법이 다수 개발되고 있으며, 딥러닝 기반의 영상 처리 기법으로는 컨볼루션 신경망(Convolutional Neural Network, 이하 CNN이라고 함)을 활용한 기계학습 기반의 영상처리 기법이 주로 개발되고 있다.
이러한 CNN을 이용한 문자 인식 기술이 다양하게 소개되고 있는데, CNN을 구성하는 노드들의 개수가 매우 큰 대규모 뉴럴 네트워크의 경우, 컴퓨팅 리소스가 적은 임베디드 기기나 모바일 기기에서 로딩 자체가 불가능하다. 메모리가 충분한 경우라도 대규모의 뉴럴 네트워크를 로딩하여 학습 및 추론 시에 속도 저하가 발생할 수 있다.
등록특허공보 제10-2223912호(등록일자: 2021년02월26일) 등록특허공보 제10-2083786호(등록일자: 2020년02월26일) 등록특허공보 제10-2142238호(등록일자: 2020년07월31일)
본 발명의 실시예는, 딥러닝 기반의 초고속 문자 인식 기술을 이용한 텍스트 라인 추출 및 비정형 문자 인식을 통해 업무 자동화를 실현시켜 업무 효율을 극대화시킬 수 있는 딥러닝 기반의 문자 인식 시스템을 제공한다.
본 발명의 실시예에 따른 딥러닝 기반의 문자 인식 시스템은, 비정형 문자의 자소 별로 CNN(Convolution Neural Network) 학습을 진행하여 학습 모델을 생성하는 학습 모델 생성부; 인식대상텍스트가 기재된 인쇄물을 촬영 또는 스캔하거나, 저장매체로부터 인식대상텍스트가 저장된 전자파일을 입력 받고, 촬영 또는 스캔된 인쇄물 또는 입력된 전자파일에 대한 영상 이미지를 획득하는 영상 이미지 획득부; 상기 영상 이미지에 표시된 글자 단위의 섹터를 형성하고, 형성된 섹터 간의 라인을 생성하되, 미리 설정된 구절 종료 인식 알고리즘에 기초하여 다수의 섹터로 이루어진 텍스트 라인을 각각 인식하여 추출하는 텍스트 라인 추출부; 및 상기 학습 모델을 이용하여 상기 텍스트 라인 별로 비정형 문자를 각각 인식하는 비정형 문자 인식부를 포함한다.
또한, 상기 학습 모델 생성부는, 자소 별로 대응하는 학습용 CNN을 이용하여 입력 이미지와 대응하는 레이블에 대한 학습을 수행하는 학습 수행부; 자소 별로 대응하는 추론용 CNN을 이용하여 상기 입력 이미지의 자소를 추론을 수행하는 추론 수행부; 및 상기 추론 수행부를 통해 추론된 다수의 자소를 결합하여 상기 입력 이미지에 대응하는 글자를 인식하는 글자 조합 로직부를 포함하고, 상기 학습 수행부는, 제1 CNN을 이용하여 데이터 셋에 대하여 초성을 학습하고, 제2 CNN을 이용하여 상기 데이터 셋에 대하여 중성을 학습하고, 제3 CNN을 이용하여 상기 데이터 셋에 대하여 받침을 학습할 수 있다.
또한, 상기 영상 이미지 획득부는, 인식대상텍스트가 기재된 인쇄물을 촬영하여 상기 영상 이미지를 획득하는 카메라부; 및 인식대상텍스트가 기재된 인쇄물을 스캔하여 상기 영상 이미지를 획득하는 스캐너부; 저장매체로부터 인식대상텍스트가 저장된 전자파일을 입력 받아 상기 영상 이미지를 획득하는 데이터 입력 장치부; 및 상기 카메라부, 상기 스캐너부 및 상기 데이터 입력 장치부 중 적어도 하나로부터 상기 영상 이미지가 획득되는 경우, 인식대상텍스트의 언어 구성 및 상기 영상 이미지에 줄 칸 표시가 포함되어 있는지 여부를 선택하여 영상 이미지 속성 정보를 입력하는 영상 이미지 속성 정보 입력부를 포함할 수 있다.
또한, 상기 텍스트 라인 추출부는, 상기 영상 이미지의 텍스트영역에 대하여 글자 단위로 다수의 임시 섹터를 형성하고, 상기 임시 섹터 내 글자 이미지에 대한 최상측 포인트, 최하측 포인트, 최좌측 포인트 및 최우측 포인트를 포함하는 바운더리 포인트를 각각 지정하는 바운더리 포인트 지정부; 상기 임시 섹터 각각에 대하여 상기 바운더리 포인트의 교차점을 센터 포인트로 지정하는 센터 포인트 지정부; 상기 센터 포인트 간을 좌측에서 우측 방향으로 순차적으로 연결하여 다수의 임시 텍스트 라인을 형성하고, 이웃하는 상기 센터 포인트 간의 간격을 계산하는 임시 텍스트 라인 형성부; 및 상기 임시 텍스트 라인에 포함된 구절종료를 표시하기 위해 미리 설정된 문자기호의 인식, 줄 칸을 넘김으로써 형성되는 공백의 인식, 미리 설정된 띄어쓰기 간격 이상의 공백으로 인한 구절종료를 나타내는 구절종료공백의 인식, 및 들여쓰기 인식 중 적어도 하나의 인식 방법을 이용하여 상기 임시 텍스트 라인을 구절단위로 재구성하여 텍스트 라인을 추출하는 텍스트 라인 재구성부를 포함할 수 있다.
또한, 상기 임시 텍스트 라인 형성부는, 상기 센터 포인트 간을 순차적으로 연결하되, 현재 센터 포인트를 기준으로 다음 연결될 센터 포인트가 상하 방향으로 2개 이상이 존재하는 경우 2개 이상의 센터 포인트 중 가장 상부에 위치한 센터 포인트로 연결하고, 상기 2개 이상의 센터 포인트 각각과 현재 센터 포인트 간의 직선거리가 서로 차이가 나는 경우 상호직선거리를 비교하여 1/2배 짧은 거리에 위치한 센터 포인트로 연결하되, 상호직선거리가 2배 이상 차이가 나지 않는 경우 상기 2개 이상의 센터 포인트 중 가장 상부에 위치한 센터 포인트로 연결하며, 상호직선거리가 2배 이상 차이가 나는 경우 상호직선거리가 2배 이상 차이가 나는 센터 포인트를 연결할 수 있다.
또한, 상기 텍스트 라인 재구성부는, (수식 1),
Figure 112021118370704-pat00002
(수식 2) 상기 센터 포인트 간의 간격(S)이 상기 수식 1을 만족하는 경우 상기 센터 포인트 간의 간격(S)을 상기 구절종료를 나타내는 구절종료공백의 간격(SR)으로 적용하고, 상기 센터 포인트 간의 간격(S)이 상기 수식 2를 만족하는 경우 상기 센터 포인트 간의 간격(S)이 상기 Smax2의 조건을 만족하는지를 확인한 후 해당 조건을 만족하는 경우 상기 센터 포인트 간의 간격(S)을 상기 Smax2로 적용하고 상기 Smax1은 상기 센터 포인트 간의 간격 중 최고 값을 나타내고, 상기 Smax2는 상기 센터 포인트 간의 간격 중 최고 값 다음 최고 값을 나타내고, 상기 k는 고정상수 4.1을 나타낼 수 있다.
또한, 상기 비정형 문자 인식부는, 상기 텍스트 라인에 대하여 글자 단위로 다수의 임시 섹터를 형성하고, 상기 임시 섹터 내 비정형 문자 중 연이어 쓰여진 글자에 대한 윤곽선 정보를 획득하고, 상기 학습 모델에 기초하여 상기 윤곽선 정보에 대한 초성 자성, 중성 자소 및 받침 자소를 인식하고, 인식된 자소를 조합으로 글자 정보를 출력할 수 있다.
본 발명에 따르면, 딥러닝 기반의 초고속 문자 인식 기술을 이용한 텍스트 라인 추출 및 비정형 문자 인식을 통해 업무 자동화를 실현시켜 업무 효율을 극대화시킬 수 있는 딥러닝 기반의 문자 인식 시스템을 제공할 수 있다.
도 1은 본 발명의 실시예에 따른 딥러닝 기반의 문자 인식 시스템의 전체 구성을 나타낸 블록도이다.
도 2는 본 발명의 실시예에 따른 학습 모델 생성부의 구성을 나타낸 블록도이다.
도 3은 본 발명의 실시예에 따른 학습 수행부와 추론 수행부를 구성하는 CNN 기반의 뉴럴 네트워크를 예시적으로 나타낸 도면이다.
도 4의 (a)는 한글의 기본 자음과 모음을 나타낸 도면이며, (b)는 한글의 복합 자음과 모음을 나타낸 도면이다.
도 5는 한글 글자를 구성하는 자소의 평면에서의 조합 패턴을 예시적으로 나타낸 도면이다.
도 6은 본 발명의 실시예에 따른 한글 데이터 셋 구조를 예시적으로 나타낸 도면이다.
도 7은 본 발명의 실시예에 따른 한글 인식을 위한 학습 수행부, 추론 수행부 및 글자 조합 로직부를 포함한 뉴럴 네트워크를 예시적으로 나타낸 도면이다.
도 8은 본 발명의 실시예에 따른 영상 이미지 획득부의 구성을 나타낸 블록도이다.
도 9는 본 발명의 실시예에 따른 텍스트 라인 추출부의 구성을 나타낸 블록도이다.
도 10은 본 발명의 실시예에 따른 바운더리 포인트 지정부, 센터 포인트 지정부, 임시 텍스트 라인 형성부 및 텍스트 라인 재구성부의 기본적인 프로세스 개념을 설명하기 위해 나타낸 도면이다.
도 11 내지 도 13은 본 발명의 실시예에 따른 임시 텍스트 라인 형성부를 통해 텍스트 라인이 수평하지 않은 상태에서 임시 텍스트 라인을 형성하는 방법을 설명하기 위해 나타낸 도면이다.
도 14는 본 발명의 실시예에 따른 비정형 문자 인식부의 기능을 설명하기 위해 나타낸 도면이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나 이상의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1은 본 발명의 실시예에 따른 딥러닝 기반의 문자 인식 시스템의 전체 구성을 나타낸 블록도이고, 도 2는 본 발명의 실시예에 따른 학습 모델 생성부의 구성을 나타낸 블록도이고, 도 3은 본 발명의 실시예에 따른 학습 수행부와 추론 수행부를 구성하는 CNN 기반의 뉴럴 네트워크를 예시적으로 나타낸 도면이고, 도 4의 (a)는 한글의 기본 자음과 모음을 나타낸 도면이며, (b)는 한글의 복합 자음과 모음을 나타낸 도면이고, 도 5는 한글 글자를 구성하는 자소의 평면에서의 조합 패턴을 예시적으로 나타낸 도면이고, 도 6은 본 발명의 실시예에 따른 한글 데이터 셋 구조를 예시적으로 나타낸 도면이고, 도 7은 본 발명의 실시예에 따른 한글 인식을 위한 학습 수행부, 추론 수행부 및 글자 조합 로직부를 포함한 뉴럴 네트워크를 예시적으로 나타낸 도면이고, 도 8은 본 발명의 실시예에 따른 영상 이미지 획득부의 구성을 나타낸 블록도이고, 도 9는 본 발명의 실시예에 따른 텍스트 라인 추출부의 구성을 나타낸 블록도이고, 도 10은 본 발명의 실시예에 따른 바운더리 포인트 지정부, 센터 포인트 지정부, 임시 텍스트 라인 형성부 및 텍스트 라인 재구성부의 기본적인 프로세스 개념을 설명하기 위해 나타낸 도면이고, 도 11 내지 도 13은 본 발명의 실시예에 따른 임시 텍스트 라인 형성부를 통해 텍스트 라인이 수평하지 않은 상태에서 임시 텍스트 라인을 형성하는 방법을 설명하기 위해 나타낸 도면이며, 도 14는 본 발명의 실시예에 따른 비정형 문자 인식부의 기능을 설명하기 위해 나타낸 도면이다.
도 1을 참조하면, 본 발명의 실시예에 따른 딥러닝 기반의 문자 인식 시스템(1000)은 학습 모델 생성부(100), 영상 이미지 획득부(200), 텍스트 라인 추출부(300) 및 비정형 문자 인식부(400) 중 적어도 하나를 포함할 수 있다.
상기 학습 모델 생성부(100)는, 비정형 문자의 자소 별로 CNN(Convolution Neural Network) 학습을 진행하여 학습 모델을 생성
이를 위해 학습 모델 생성부(100)는, 도 2에 도시된 바와 같이 학습 수행부(110), 추론 수행부(120) 및 글자 조합 로직부(130) 중 적어도 하나를 포함할 수 있다.
상기 학습 수행부(110)는, 자소 별로 대응하는 학습용 CNN을 이용하여 입력 이미지와 대응하는 레이블에 대한 학습을 수행할 수 있으며, 좀 더 구체적으로, 학습 수행부(110)는, 제1 CNN을 이용하여 데이터 셋에 대하여 초성을 학습하고, 제2 CNN을 이용하여 상기 데이터 셋에 대하여 중성을 학습하고, 제3 CNN을 이용하여 상기 데이터 셋에 대하여 받침을 학습할 수 있다.
일반적으로, 뉴럴 네트워크의 한 종류인 CNN(Convolutional Neural Network)은 이미지 인식과 음성 인식 등 다양한 곳에서 사용된다. 특히, 이미지 인식 분야에서 대부분의 딥러닝을 활용한 기법들은 CNN을 기반으로 하고 있다. CNN은 특징적으로 컨볼루션 계층(Convolution Layer)와 폴링 계층(Pooling Layer)를 포함하고 있다. 컨볼루션 계층(Convolution Layer)은 입력 데이터의 공간적 형상으로부터 공간적 정보를 추출하고, 추출된 공간적 정보를 다음 계층인 폴링 계층(Pooling layer)에 전달한다. 공간적으로 가까운 픽셀은 값이 비슷하거나, RGB(Red, Green Blue) 각 채널이 서로 밀접하게 관련되어 있거나, 거리가 먼 픽셀은 별 연관이 없는 등, 3차원 속에서 의미를 가지는 본질적인 패턴들이 추출된다.
한편, 이미지 인식의 한 종류라고 할 수 있는 문자 인식 혹은 필기체 인식의 분야에서도 CNN 기반의 뉴럴 네트 워크들은 좋은 성능을 보여주고 있다. 일반적인 CNN 기반의 문자 인식용 뉴럴 네트워크는 숫자 혹은 영문자를 대상으로 높은 인식률을 보이고 있다.
도 3에 도시된 CNN 기반의 뉴럴 네트워크의 예시에서 해당 뉴럴 네트워크는 특징을 추출하는 단계와 분류하는 단계로 구성될 수 있다.
여기서, 특징을 추출하는 단계는 5x5 컨볼루션(Convolution), 2x2 서브샘플링(subsampling), 5x5 컨 볼루션(Convolution), 2x2 서브샘플링(subsampling)에 의해 구현될 수 있다.
그리고, 분류하는 단계는 완전 연결(fully connected)에 구현될 수 있다. 0에서 9까지의 숫자들을 나 타내는 32x32 그레이 스케일 이미지 입력으로 10개의 숫자 중에서 하나로 인식할 수 있다. 10개의 서로 다른 숫자를 인식하기 위하여 출력 계층(N2 output layer)에서 노드의 개수 'k= 10'이다. 'N1' 계층 내의 모든 노드들에서 'N2' 계층 내의 모든 노드들로 전 연결(fully connected)되므로, 'N1'과 'N2' 계층 간 연결 선의 개수는 '10 x (N1의 노드 수)'가 될 수 있다.
일반적으로, 숫자 혹은 라틴 언어 계열의 문자들의 경우 비교적 적은 개수의 문자들로 구성된다. 이러한 숫자 혹 은 라틴 언어 계열의 문자는, 한글이나 한자와 달리 기본 글자들을 조합하여 새로운 글자를 만들어 내지는 않는다. 예를 들어, 필기체 숫자 인식의 경우, 0에서 9까지의 10가지 경우만을 구분/인식하면 된다. 또한, 영문자의 경우, 대소문자를 전부 포함하여 26x2=52개의 문자를 구분/인식하면 된다. 따라서 숫자 혹은 영문자를 인식하기 위한 CNN 기반의 뉴럴 네트워크의 경우 출력 계층에서의 노드의 수는 62개이다.
도 3에 도시된 바와 같이, 숫자 학습 및 추론용 뉴럴 네트워크의 예시로, 학습용 뉴럴 네트워크는 N2 레이어의 뒤에 오차 값 계산을 위한 'SoftMaxWithLoss' 계층을 통하여 예측값과 정답 간의 차이를 나타내는 손실(Loss)을 계산할 수 있다. 이렇게 계산된 손실값은 학습 과정 중에 뉴럴 네트워크 내의 노드들 간의 연결선에 부가되는 가중치 (Weight)값을 갱신하는데 사용된다. 그러나, 추론 시에는 가장 높은 점수만 알면 되므로, 일반적으로 손실값이 사용되지 않는다.
'N2 Output' 계층 내의 노드들에서 'SoftMaxWithLoss'로의 화살표 상의 함수 'S( )'는 해당 노드들에 대한 스코어(Score)를 의미한다. 즉, S(0)는 'N2 output' 계층에서 숫자 0에 대응하는 점수를 의미한다.
도 4의 (a)에 도시된 바와 같이, 한글의 기본 자모는 자음 14자와 모음 10자로 구성된다. 한글의 경우, 기본 자음 14자와 기본 모음 10자를 바탕으로 자음과 자음, 모음과 모음끼리 합쳐 새로 운 글자를 만들어 낼 수 있다. 한글은 자음 글자(consonant letters)와 모음 글자 (vowel letters)로 되어 있다. 한글은 음소 문자(phonemic writing system)이지만 음절 단위(syllabic unit)로 모아 쓰는 특징을 지니고 있다.
도 4의 (b)에 도시된 바와 같이,, 복합 자모는 자음 5자와 모음 11자로 구성된다. 현대 한국어의 표기를 위한 한글 맞춤법은 다음과 같은 초성 중성 받침(생략 가능)으로 모아 쓰기를 하도록 규정하고 있다. 예를 들어, '꿀벌'이라는 단어는 'ㄲㅜㄹㅂㅓㄹ'로 적지 않고 '꿀벌'로 적는다. 글자로서 의 음절(syllable)은 초성 (initial sound)과 중성(medial sound), 받침(final consonant)의 세 위치로 나뉜다.
여기서, 초성(initial sound)은 자음 글자 19개를 포함한다. 19개 중에서 'ㅇ'은 소리 (sound)가 없다. 예를 들어, '우유'에서 '우'와 '유'의 'ㅇ'은 소리 없이 자리를 채워 주는(space filler) 역할만 한다. 중성(medial sound)은 21개의 모음 글자를 포함한다. 받침(final consonant)은 16개의 홑 받침 글자, 11개의 겹받침 글자를 포함한다.
한글 맞춤법 설명에서는 초성 글자, 중성 글자, 받침 글자를 각각 'initial sound letter', 'medial sound letter', 'final consonants letter'로 영문 표기하고 있으나, 본 실시예에서는 글자(letter)와 자소(grapheme)간의 구분을 위하여, 초성 글자, 중성 글자, 받침 글자를 초성 자소(initial sound grapheme), 중성 자소(medial sound grapheme), 받침 자소(final consonants grapheme)으로 표기한다. 영문이나 숫자의 경우, 문자 자체가 더 이상 분해 불가능하여 글자(letter)가 바로 자소(grapheme)가 된다. 영문이나 아라비아 숫자를 더 분해하면 의미가 없는 선분이나 사선, 원이 된다.
아래에서는 한글이나 한자의 경우 하나의 글자를 의미를 가지는 더 작은 단위의 모양으로 분해할 수 있으며, 이를 자소(字素, grapheme)라고 정의한다. 마치 분자를 분해하며 더 이상 분해할 수 없는 원자가 되듯이, 한글이 나 한자에서 더이상 분해할 수 없는 단위의 것을 자소라 한다.
초성 자소 (initial sound graphemes): 19자(ㄱ ㄴ ㄷ ㄹ ㅁ ㅂ ㅅ ㅇ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ ㄲ ㄸ ㅃ ㅆ ㅉ (19개))
중성 자소(medial sound graphemes): 21자(ㅏ ㅑ ㅓ ㅕ ㅗ ㅛ ㅜ ㅠ ㅡ ㅣ ㅐ ㅒ ㅔ ㅖ ㅘ ㅙ ㅚ ㅝ ㅞ ㅟ ㅢ (21개))
받침 조 (final consonants graphemes): 27자
홑 받침: ㄱ ㄴ ㄷ ㄹ ㅁ ㅂ ㅅ ㅇ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ ㄲ ㅆ (16개)
겹받침: ㄳ ㄵ ㄶ ㄺ ㄻ ㄼ ㄽ ㄾ ㄿ ㅀ ㅄ (11개)
조합 가능한 글자의 수는 최대 19x21x(27+1)=11,172에 육박한다(유니코드의 경우, 'ㅼㅐ'나 'ㅄㅏㄹ' 같은 옛한 글을 포함하여 전체 1,638,750자를 지원). 따라서, 현대 한글을 위한 한글 인식기를 CNN 기반의 뉴럴 네트워크로 구성하는 경우, 아래 그림과 같이 출력 계층(N2 Output Layer)에는 노드의 개수 k=11,172이 된다.
학습용 뉴럴 네트워크는 'N2' 레이어의 뒤에 오차 값 계산을 위한 'SoftMaxWithLoss' 계층을 통하여 예측값과 정답 간의 차이를 나타내는 'Loss'를 계산하고, 계산된 'Loss'를 학습 과정 중에 뉴럴 네트워크 내의 노드들 간의 연결선에 부가되는 'Weight' 값을 갱신하는데 사용한다. 그러나, 추론 시에는 계산된 'Loss'가 가장 높은 점수만 알면 되므로, 일반적으로 사용되지 않는다.
'N2 Output' 계층 내의 노드들에서 'SoftMaxWithLoss'로의 화살표 상의 'S( )'는 해당 노드들에 대한 'Score'를 의미한다. 즉 S(가)는 'N2 output' 계층에서 한글 '가'에 대응하는 점수를 의미한다. 여기서, 'N1' 계층 내의 모든 노드들에서 'N2' 계층 내의 모든 노드들 간에 전 연결(fully connected)되므로, 'N1'과 'N2' 레이어 간 연결 선의 개수는 11,172 x (N1의 노드수)가 된다. 이와 같이 'N1' 계층에서 'N2' 계층으로의 연결선은 행렬 연산에 해당하므로, 10개의 숫자를 인식하는 경우와 비교할 때, 한글 인식에 필요한 연산의 개수가 'N1' 레이어에서 'N2' 레이어 사이에서 1,117(11,172/10)배 정도 증가한다.
한글 인식용 학습 및 추론 뉴럴 네트워크와 같이 네트워크를 구성하는 노드들의 개수가 매우 커지면, 해당 뉴럴 네트워크 자체를 로딩하기 위해서 많은 메모리가 필요하다. 임베디드 보드와 같은 소형 기기의 경우, 메모리의 크기가 작으므로, 대형 뉴럴 네트워크의 경우 로딩 자체가 불가능한 문제가 발생할 수도 있다. 로딩이 가능한 경우라도, 학습 및 추론 시에 많은 수의 노드는 속도 저하의 원인이 될 수 있다.
대규모 뉴럴 네트워크의 경우, 컴퓨팅 리소스가 적은 임베디드 기기나 모바일 기기에서 로딩 자체가 불가능 하 거나, 대상 기기의 컴퓨팅 자원이 충분하여 로딩이 가능하더라도 추론이나 학습 시 속도가 느려질 수 있다.
본 실시 예에 따른 학습 수행부(110)는, 상술된 문제점을 해결하기 위하여, 문자 인식을 위한 단일 뉴럴 네트워크 대신, 문자를 구성하고 있는 자소별 인식용 뉴럴 네트워크를 복수로 구성하고, 자소 별 뉴럴 네트워크의 결과들을 조합하여 최종적으로 입력 이미지의 문자를 인식할 수 있다.
한편, 본 실시예에를 설명하기 위하여 한글을 실시 예로 설명하고 있으나, 데이터 셋에 복수의 레이블을 사용하여 자소 별 레이블을 추가하고, 자소 별로 별도의 뉴럴 네트워크를 사용하여 자소 별로 추론한 결과를 조합하여 최종 글자를 추론하는 본 발명의 사상은 여타 자소 단위로 분해 가능한 문자 체계용 문자 인식에 사용될 수 있다고 이해되어야 할 것이다.
한편, 한글의 경우, 개별 글자 하나는 다음과 같이 6가지 형태의 초성 자소, 중성 자소, 받침 자소(생략 가능) 의 조합으로 구성된다.
한글의 개별 글자 는 초성 자소, 중성 자소, 받침 자소들의 위치가 평면 공간 상에서 의미 있는 패턴을 가지고 있음을 알 수 있다. 이러한 공간 상에서의 특징적 위치 패턴은 'Convolution' 연산을 통하여 공간에서의 위치적 특성에 기반하여 특징을 추출하는 CNN을 특성에도 부합한다.
한편, 한글을 위한 데이터 셋 설계는 다음과 같다. 현대 한글에서는 다음과 같이 초성 글자, 중성 글자, 받침 글자 별로 사용할 수 있는 자소가 규정되어 있다.
초성 자소(initial sound graphemes): 19자(ㄱ ㄴ ㄷ ㄹ ㅁ ㅂ ㅅ ㅇ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ ㄲ ㄸ ㅃ ㅆ ㅉ (19개)
중성 자소(medial sound graphemes): 21자(ㅏ ㅑ ㅓ ㅕ ㅗ ㅛ ㅜ ㅠ ㅡ ㅣ ㅐ ㅒ ㅔ ㅖ ㅘ ㅙ ㅚ ㅝ ㅞ ㅟ ㅢ (21개)
받침 조(final consonants graphemes): 27자
홑 받침: ㄱ ㄴ ㄷ ㄹ ㅁ ㅂ ㅅ ㅇ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ ㄲ ㅆ (16개)
겹받침: ㄳ ㄵ ㄶ ㄺ ㄻ ㄼ ㄽ ㄾ ㄿ ㅀ ㅄ (11개)
도 6에 도시된 바와 같이, 한글 인식용 뉴럴 네트워크에 사용할 데이터 셋을 위하여, 주어진 글자 하나에 대하여 한글 글자 조합 규칙에 따라, 같이 초성 자소, 중성 자소, 받침 자소에 대하여 각각 레이블(L1, L2, L3)를 지정해준다. 받침 자소가 없는 글자인 경우 L3의 값은 NULL로 지정해 줄 수 있다.
상기 추론 수행부(120)는, 자소 별로 대응하는 추론용 CNN을 이용하여 상기 입력 이미지의 자소를 추론을 수행하며, 글자 조합 로직부(130)는, 추론 수행부(120)를 통해 추론된 다수의 자소를 결합하여 입력 이미지에 대응하는 글자를 인식할 수 있다.
여기서, 추론 수행부(120)를 위한 한글 인식용 뉴럴 네트워크는 도 7을 참조하면, 초성 자소 학습 및 추론용 뉴럴 네트워크(제1 CNN), 중성 자소 학습 및 추론용 뉴럴 네트워크(제2 CNN), 받침 자소 학습 및 추론용 뉴럴 네트 워크(제3 CNN)을 포함할 수 있다.
한편, 도 7에서는 예시를 위하여 초성 자소, 중성 자소, 받침 자소의 학습 및 추론용 뉴럴 네트워크의 'Convolution', 'Subsampling'에 특정한 크기의 커널을 표시하였으나, 이는 예시를 위한 것으로 각각의 뉴럴 네트워크에 포함된 'Convolution', 'Subsampling' 계층에 사용 가능한 다른 크기의 서로 다른 종류의 커널을 사용할 수 있다. 즉, 본 실시예는 뉴럴 네트워크에 사용 가능한 하이퍼 파라미터들(hyper parameters)의 값을 한정하는 것은 아니다
상기 영상 이미지 획득부(200)는, 인식 대상 텍스트가 기재된 인쇄물을 촬영 또는 스캔하거나, 저장매체로부터 인식 대상 텍스트가 저장된 전자파일을 입력 받고, 촬영 또는 스캔된 인쇄물 또는 입력된 전자파일에 대한 영상 이미지를 획득할 수 있다.
이를 위해 영상 이미지 획득부(200)는, 도 8에 도시된 바와 같이 카메라부(210), 스캐너부(220), 데이터 입력 장치부(230) 및 영상 이미지 속성 정보 입력부(240) 중 적어도 하나를 포함할 수 있다.
상기 카메라부(210)는, 인식대상텍스트가 기재된 인쇄물을 촬영하여 영상 이미지를 획득할 수 있다. 이때, 영상 이미지에는 적어도 하나의 텍스트 라인(문자열)을 포함하는 이미지일 수 있으며, 일례로 손글씨로 작성된 문서를 촬영한 사진 파일일 수 있다.
상기 스캐너부(220)는, 인식대상텍스트가 기재된 인쇄물을 스캔하여 영상 이미지를 획득할 수 있다. 이때, 영상 이미지에는 적어도 하나의 텍스트 라인(문자열)을 포함하는 이미지일 수 있으며, 일례로 손글씨로 작성된 문서를 스캔한 전자문서파일(pdf, jpg, gif, png 등)일 수 있다.
상기 데이터 입력 장치부(230)는, 저장매체로부터 인식대상텍스트가 저장된 전자파일을 입력 받아 영상 이미지를 획득할 수 있다. 이때, 영상 이미지에는 적어도 하나의 텍스트 라인(문자열)을 포함하는 이미지일 수 있으며, 일례로 USB 등과 같은 저장매체로부터 다운로드 된 전자문서파일(pdf, jpg, gif, png 등)일 수 있으며, 해당 파일은 손글씨로 작성된 문서를 포함할 수 있다.
상기 영상 이미지 속성 정보 입력부(240)는, 카메라부(210), 스캐너부(220) 및 데이터 입력 장치부(230) 중 적어도 하나로부터 영상 이미지가 획득되는 경우, 인식대상텍스트의 언어 구성 및 영상 이미지에 줄 칸 표시가 포함되어 있는지 여부를 선택하여 영상 이미지 속성 정보를 입력할 수 있다. 여기서, 인식대상텍스트의 언어 구성으로는, 한국어, 영어, 일본어, 중국어, 아랍어, 러시아어, 포르투갈어 등의 어느 나라의 언어인지에 대한 정보, 숫자나 특수 기호가 포함되는지에 대한 여부, 그리고 프로그래밍 언어가 포함되는지 여부를 체크하여 속성 정보로서 입력할 수 있으며, 입력된 속성 정보에 따라 문자 인식 시 참고하여 인식 동작을 수행할 수 있다. 또한, 해당 영상 이미지에 줄 칸과 같은 표식이 포함되어 있는 경우(예를 들어 공책에 인쇄된 줄 칸, 오선지, 바둑판 패턴), 구체적으로 어떠한 형태의 줄 칸 이미지가 포함되어 있는지를 선택하여 후술하는 텍스트 라인 추출 및 인식 시 해당 줄 칸 이미지를 우선적으로 검출하여 제거한 상태로 후속의 프로세스를 진행할 수 있도록 한다.
상기 텍스트 라인 추출부(300)는, 영상 이미지에 표시된 글자 단위의 섹터를 형성하고, 형성된 섹터 간의 라인을 생성하되, 미리 설정된 구절 종료 인식 알고리즘에 기초하여 다수의 섹터로 이루어진 텍스트 라인을 각각 인식하여 추출할 수 있다.
이를 위해 텍스트 라인 추출부(300)는, 도 9에 도시된 바와 같이 바운더리 포인트 지정부(310), 센터 포인트 지정부(320), 임시 텍스트 라인 형성부(330) 및 텍스트 라인 재구성부(340) 중 적어도 하나를 포함할 수 있다.
상기 바운더리 포인트 지정부(310)는, 영상 이미지 획득부(200)로부터 입력된 영상 이미지의 텍스트영역에 대하여 글자 단위로 다수의 임시 섹터를 형성하고, 임시 섹터 내 글자 이미지에 대한 최상측 포인트, 최하측 포인트, 최좌측 포인트 및 최우측 포인트를 포함하는 바운더리 포인트를 각각 지정할 수 있다.
예를 들어, 도 10에 도시된 바와 같이 '바로 세우다.'라는 구절에 대한 텍스트 라인을 추출하고자 하는 경우 우선, "바"라는 글자에서 최상측 포인트(①), 최하측 포인트(②), 최좌측 포인트(③) 및 최우측 포인트(④)를 각각 지정할 수 있다. 이러한 최상측 포인트(①)는 해당 임시 섹터 내에서 "바"라는 글씨 중 가장 위쪽에 위치한 엣지 부분, 최하측 포인트(②)는 해당 임시 섹터 내에서 "바"라는 글씨 중 가장 아래쪽에 위치한 엣지 부분, 최좌측 포인트(③)는 해당 임시 섹터 내에서 "바"라는 글씨 중 가장 왼쪽에 위치한 엣지 부분, 최우측 포인트(④)는 해당 임시 섹터 내에서 "바"라는 글씨 중 가장 오른쪽에 위치한 엣지 부분을 의미할 수 있다. 이와 같이 "바"라는 글씨에 대하여 지정된 최상측 포인트(①), 최하측 포인트(②), 최좌측 포인트(③) 및 최우측 포인트(④) 정보는 센터 포인트 지정부(320)로 전달될 수 있다.
상기 센터 포인트 지정부(320)는, 임시 섹터 각각에 대하여 바운더리 포인트의 교차점을 센터 포인트로 지정할 수 있다.
예를 들어, 도 10에 도시된 바와 같이 최상측 포인트(①)와 최하측 포인트(②) 간을 연결하는 제1 가상선과, 최좌측 포인트(③)과 최우측 포인트(④) 간을 연결하는 제2 가상선이 교차하는 지점을 각 임시 섹터에 대한 센터 포인트(ⓒ)로 지정할 수 있다.
상기 임시 텍스트 라인 형성부(330)는, 센터 포인트 간을 좌측에서 우측 방향으로 순차적으로 연결하여 다수의 임시 텍스트 라인을 형성하고, 이웃하는 센터 포인트 간의 간격을 계산할 수 있다. 즉, 임시 텍스트 라인 형성부(330)는 한 라인에 대한 글자들에 대한 센터 포인트(ⓒ)가 모두 지정되면, 도 10에 도시된 바와 같이 해당 라인을 임시 텍스트 라인으로 지정한 후 해당 임시 텍스트 라인에 관한 데이터들을 텍스트 라인 재구성부(340)로 전달하여 줄 단위의 텍스트 라인을 추출 및 인식함으로써 문자의 의미 해석이 아닌 구조적인 해석 방식에 따른 텍스트 라인을 추출하여 인식할 수 있다.
한편, 상술한 바와 같이 한 줄의 글씨들이 수평에 맞춰 잘 작성되었다면 임시 텍스트 라인을 추출하는데 문제가 없으나, 각각의 줄의 수평이 맞지 않고 점차 올라가거나, 점차 내려가거나, 또는 올라가다 내려가는 등 소위 삐뚤삐뚤하게 작성된 경우에도, 임시 텍스트 라인 형성부(330)는 각각의 임시 텍스트 라인을 추출하여 인식할 수 있다.
좀 더 구체적으로 임시 텍스트 라인 형성부(330)는, 센터 포인트 간을 순차적으로 연결하되, 현재 센터 포인트를 기준으로 다음 연결될 센터 포인트가 상하 방향으로 2개 이상이 존재하는 경우 2개 이상의 센터 포인트 중 가장 상부에 위치한 센터 포인트로 연결할 수 있다.
예를 들어, 임시 텍스트 라인 형성부(330)는, 도 11에 도시된 바와 같이 "바", "로", "세"라는 글자 순으로 각각의 센터 포인트를 연결하면서 다음 블록의 센터 포인트가 상하 방향으로 2개가 존재하면(텍스트 라인의 수평이 맞지 않아 위아래 줄의 섹터에 대한 센터 포인트가 동시에 인식되는 경우), 현재 임시 섹터(A)의 센터 포인트를 기준으로 이웃하는 임시 섹터(B1, B2) 센터 포인트 간의 간격(d1, d2)을 각각 계산한 후, 둘 간의 간격 차가 없는 경우(같거나 거의 같은 경우) 위치적으로 상위에 있는 임시 섹터(B1)의 센터 포인트를 다음 센터 포인트로 지정하여 센터 포인트(또는 임시 섹터) 간을 연결해 나갈 수 있다.
단, 임시 텍스트 라인 형성부(330)는, 2개 이상의 센터 포인트 각각과 현재 센터 포인트 간의 직선거리가 서로 차이가 나는 경우 상호직선거리를 비교하여 1/2배 짧은 거리에 위치한 센터 포인트로 연결하되, 상호직선거리가 2배 이상 차이가 나지 않는 경우 2개 이상의 센터 포인트 중 가장 상부에 위치한 센터 포인트로 연결하며, 상호직선거리가 2배 이상 차이가 나는 경우 상호직선거리가 2배 이상 차이가 나는 센터 포인트를 연결할 수 있다.
예를 들어 임시 텍스트 라인 형성부(330)는, 도 12에 도시된 바와 같이 "바", "로", "세"라는 글자 순으로 각각의 센터 포인트를 연결하면서 다음 블록의 센터 포인트가 상하 방향으로 2개가 존재하면(텍스트 라인의 수평이 맞지 않아 위아래 줄의 섹터에 대한 센터 포인트가 동시에 인식되는 경우), 현재 임시 섹터(A)의 센터 포인트를 기준으로 이웃하는 임시 섹터(B1, B2) 센터 포인트 간의 간격(상호직선거리)(d1, d2)을 각각 계산한 후, 이들의 간격(d1, d2) 차가 미리 설정된 오차 범위를 벗어나면, 이들의 센터 포인트 간의 간격(d1, d2)을 서로 비교할 수 있으며, 구체적으로는 상대적으로 긴 길이의 간격(d1)이 상대적으로 짧은 길이의 간격(d2)의 두 배보다 짧은 경우 위치적으로 상위에 있는 임시 섹터(B1)의 센터 포인트를 다음 센터 포인트로 지정하여 센터 포인트 간을 연결해 나갈 수 있다. 이와 다르게, 도 13에 도시된 바와 같이 상대적으로 긴 길이의 간격(d1)이 상대적으로 짧은 길이의 간격(d2)의 두 배보다 긴 경우 짧은 길이의 간격(d2)을 갖는 다음 임시 섹터(B2)의 센터 포인트를 지정하여 센터 포인트(또는 임시 섹터) 간을 연결해 나갈 수 있다.
상기 텍스트 라인 재구성부(340)는, 임시 텍스트 라인에 포함된 구절종료를 표시하기 위해 미리 설정된 문자기호의 인식, 줄 칸을 넘김으로써 형성되는 공백의 인식, 미리 설정된 띄어쓰기 간격 이상의 공백으로 인한 구절종료를 나타내는 구절종료공백의 인식, 및 들여쓰기 인식 중 적어도 하나의 인식 방법을 이용하여 임시 텍스트 라인을 구절단위로 재구성하여 텍스트 라인을 추출할 수 있다.
이러한 텍스트 라인 재구성부(340)는 임시 텍스트 라인 형성부(330)에서 추출한 임시 텍스트 라인들을 의미적 해석 방식이 아닌 문장 구조적 또는 형식적 해석 방식에 따라 마침표, 느낌표, 물음표, 말줄임표 등 구절을 종료할 때 사용하는 문자기호를 1차적으로 인식할 수 있으며, 해당 문자기호가 인식되지 않는 경우 줄 칸을 넘김으로써 형성되는 공백을 인식할 수 있다. 이때의 공백은 오른손 잡이 글씨의 경우 대부분 한 줄의 마지막 끝에 다음 글씨가 없는 채로 가장 끝까지 빈 공간으로 존재할 수 있으나, 이러한 방법은 작성자의 작성 방식에 따라 오차가 크기 때문에 공백 길이를 특정하여 해당 영상 이미지의 임시 텍스트 라인 중 오른쪽에 생긴 공백을 줄 칸 넘기기를 위한 공백으로 한정적인 상황에서만 인식할 수 있도록 한다.
[수식 1]
[수식 2]
Figure 112021118370704-pat00004
또한, 텍스트 라인 재구성부(340)는, 센터 포인트 간의 간격(S)이 수식 1을 만족하는 경우 현재 센터 포인트 간의 간격(S)을 구절종료를 나타내는 구절종료공백의 간격(SR)으로 적용하고, 현재 센터 포인트 간의 간격(S)이 수식 2를 만족하는 경우 센터 포인트 간의 간격(S)이 Smax2의 조건을 만족하는지를 확인한 후 해당 조건을 만족하는 경우 센터 포인트 간의 간격(S)을 Smax2로 적용할 수 있다. 여기서, Smax1은 센터 포인트 간의 간격 중 최고 값을 나타내고, Smax2는 센터 포인트 간의 간격 중 최고 값 다음 최고 값을 나타내고, k는 고정상수로서 4.1의 값을 의미할 수 있다.
즉, 수식 1의 경우 현재 센터 포인트 간의 간격(S)이 이전에 추출되어 기록된 임시 텍스트 라인에 대한 정보를 바탕으로 가장 넓은 센터 포인트 간격(Smax1)과 그 다음 넓은 센터 포인트 간격(Smax2)의 평균에 대하여 고정상수(K)를 곱한 값보다 큰 경우에만 해당 공백을 구절종료를 나타내는 구절종료공백으로 인식할 수 있으며, 이때 인식된 간격(S)를 구절종료공백의 간격(SR)으로 업데이트 할 수 있다. 이와 다르게, 현재 센터 포인트 간의 간격(S)이 가장 넓은 센터 포인트 간격(Smax1)과 그 다음 넓은 센터 포인트 간격(Smax2)의 평균에 대하여 고정상수(K)를 곱한 값 이하인 경우, 현재 센터 포인트 간의 간격(S)을 구절종료공백의 간격(SR)이 아닌 것으로 판정한 후, 두 번째로 긴 간격(Smax2)과 비교하여 이보다 큰 경우 해당 간격(Smax2)을 업데이트 할 수 있으며, 그렇지 않은 경우 현재 센터 포인트 간의 간격(S)은 단순 띄어쓰기에 의한 공백의 간격으로서 판단할 수 있다.
상기 비정형 문자 인식부(400)는, 학습 모델 생성부(100)를 통해 구축된 학습 모델을 이용하여 텍스트 라인 별로 비정형 문자를 각각 인식할 수 있다. 본 실시예에서 비정형 문자는 사람이 직접 작성한 손 글씨를 의미하며, 특정 언어의 문자, 숫자, 기호 등만을 개별적으로 특정하는 것은 아니다.
좀 더 구체적으로 비정형 문자 인식부(400)는, 텍스트 라인 추출부(300)를 통해 추출된 텍스트 라인에 대하여 글자 단위로 다수의 임시 섹터를 형성하고, 임시 섹터 내 비정형 문자 중 연이어 쓰여진 글자에 대한 윤곽선 정보를 획득하고, 미리 구축된 학습 모델에 기초하여 도 14에 도시된 바와 같이, 해당 윤곽선 정보에 대한 초성 자성, 중성 자소 및 받침 자소를 인식하고, 인식된 자소를 조합으로 글자 정보를 출력할 수 있다. 상술한 바와 같이, 학습 모델 생성부(100)의 데이터 셋을 통하여 CNN이 학습되어, 노드 간의 연결선에 부가된 가중치 값이 최적으로 업데이트되고 나며, 데이터 셋과 동일한 모양이나 형태(shape)를 가지는 임의의 한글 이미지(외국어, 숫자, 기호 등)를 입력으로 하여 해당 해당 이미지에 포함된 글자를 인식할 수 있다. 병렬로 실행할 수도 있으나, 각각 순서에 상관 없이 직렬로 수행할 수도 있다.
이러한 비정형 문자 인식부(400)는, 컴퓨팅 자원이 지원하는 경우 병렬로 실행함으로써 수행 시간을 단축시킬 수 있다.
한편, 상술된 바와 같이 본 발명의 실시예를 분해 가능한 문자 체계의 한 예인 한글을 대상으로 설명하였으나, 분해 가능한 문자체계에는 본 발명의 사상을 확장하여 적용 가능할 수 있으므로, 본 실시예에 본 발명의 사상을 한정하지는 않는다. 예를 들어, 한자의 경우, 한글의 조합 패턴과는 다른 형태의 조합을 추가로 가질 수도 있다.
이상에서 설명한 것은 본 발명에 의한 딥러닝 기반의 문자 인식 시스템을 실시하기 위한 하나의 실시예에 불과한 것으로서, 본 발명은 상기 실시예에 한정되지 않고, 이하의 특허청구범위에서 청구하는 바와 같이 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변경 실시가 가능한 범위까지 본 발명의 기술적 정신이 있다고 할 것이다.
1000: 딥러닝 기반의 문자 인식 시스템
100: 학습 모델 생성부
110: 학습 수행부
120: 추론 수행부
130: 글자 조합 로직부
200: 영상 이미지 획득부
210: 카메라부
220: 스캐너부
230: 데이터 입력 장치부
240: 영상 이미지 속성 정보 입력부
300: 텍스트 라인 추출부
310: 바운더리 포인트 지정부
320: 센터 포인트 지정부
330: 임시 텍스트 라인 형성부
340: 텍스트 라인 재구성부
400: 비정형 문자 인식부

Claims (6)

  1. 비정형 문자의 자소 별로 CNN(Convolution Neural Network) 학습을 진행하여 학습 모델을 생성하는 학습 모델 생성부;
    인식대상텍스트가 기재된 인쇄물을 촬영 또는 스캔하거나, 저장매체로부터 인식대상텍스트가 저장된 전자파일을 입력 받고, 촬영 또는 스캔된 인쇄물 또는 입력된 전자파일에 대한 영상 이미지를 획득하는 영상 이미지 획득부;
    상기 영상 이미지에 표시된 글자 단위의 섹터를 형성하고, 형성된 섹터 간의 라인을 생성하되, 미리 설정된 구절 종료 인식 알고리즘에 기초하여 다수의 섹터로 이루어진 텍스트 라인을 각각 인식하여 추출하는 텍스트 라인 추출부; 및
    상기 학습 모델을 이용하여 상기 텍스트 라인 별로 비정형 문자를 각각 인식하는 비정형 문자 인식부를 포함하고,
    상기 텍스트 라인 추출부는,
    상기 영상 이미지의 텍스트영역에 대하여 글자 단위로 다수의 임시 섹터를 형성하고, 상기 임시 섹터 내 글자 이미지에 대한 최상측 포인트, 최하측 포인트, 최좌측 포인트 및 최우측 포인트를 포함하는 바운더리 포인트를 각각 지정하는 바운더리 포인트 지정부;
    상기 임시 섹터 각각에 대하여 상기 바운더리 포인트의 교차점을 센터 포인트로 지정하는 센터 포인트 지정부;
    상기 센터 포인트 간을 좌측에서 우측 방향으로 순차적으로 연결하여 다수의 임시 텍스트 라인을 형성하고, 이웃하는 상기 센터 포인트 간의 간격을 계산하는 임시 텍스트 라인 형성부; 및
    상기 임시 텍스트 라인에 포함된 구절종료를 표시하기 위해 미리 설정된 문자기호의 인식, 줄 칸을 넘김으로써 형성되는 공백의 인식, 미리 설정된 띄어쓰기 간격 이상의 공백으로 인한 구절종료를 나타내는 구절종료공백의 인식, 및 들여쓰기 인식 중 적어도 하나의 인식 방법을 이용하여 상기 임시 텍스트 라인을 구절단위로 재구성하여 텍스트 라인을 추출하는 텍스트 라인 재구성부를 포함하고,
    상기 텍스트 라인 재구성부는,
    (수식 1)
    (수식 2)
    상기 센터 포인트 간의 간격(S)이 상기 수식 1을 만족하는 경우 상기 센터 포인트 간의 간격(S)을 상기 구절종료를 나타내는 구절종료공백의 간격(SR)으로 적용하고, 상기 센터 포인트 간의 간격(S)이 상기 수식 2를 만족하는 경우 상기 센터 포인트 간의 간격(S)이 상기 Smax2의 조건을 만족하는지를 확인한 후 해당 조건을 만족하는 경우 상기 센터 포인트 간의 간격(S)을 상기 Smax2로 적용하고
    상기 Smax1은 상기 센터 포인트 간의 간격 중 최고 값을 나타내고,
    상기 Smax2는 상기 센터 포인트 간의 간격 중 최고 값 다음 최고 값을 나타내고,
    상기 k는 고정상수 4.1을 나타내는 것을 특징으로 하는 딥러닝 기반의 문자 인식 시스템.
  2. 제1 항에 있어서,
    상기 학습 모델 생성부는,
    자소 별로 대응하는 학습용 CNN을 이용하여 입력 이미지와 대응하는 레이블에 대한 학습을 수행하는 학습 수행부;
    자소 별로 대응하는 추론용 CNN을 이용하여 상기 입력 이미지의 자소를 추론을 수행하는 추론 수행부; 및
    상기 추론 수행부를 통해 추론된 다수의 자소를 결합하여 상기 입력 이미지에 대응하는 글자를 인식하는 글자 조합 로직부를 포함하고,
    상기 학습 수행부는,
    제1 CNN을 이용하여 데이터 셋에 대하여 초성을 학습하고,
    제2 CNN을 이용하여 상기 데이터 셋에 대하여 중성을 학습하고,
    제3 CNN을 이용하여 상기 데이터 셋에 대하여 받침을 학습하는 것을 특징으로 하는 딥러닝 기반의 문자 인식 시스템.
  3. 제1 항에 있어서,
    상기 영상 이미지 획득부는,
    인식대상텍스트가 기재된 인쇄물을 촬영하여 상기 영상 이미지를 획득하는 카메라부; 및
    인식대상텍스트가 기재된 인쇄물을 스캔하여 상기 영상 이미지를 획득하는 스캐너부;
    저장매체로부터 인식대상텍스트가 저장된 전자파일을 입력 받아 상기 영상 이미지를 획득하는 데이터 입력 장치부; 및
    상기 카메라부, 상기 스캐너부 및 상기 데이터 입력 장치부 중 적어도 하나로부터 상기 영상 이미지가 획득되는 경우, 인식대상텍스트의 언어 구성 및 상기 영상 이미지에 줄 칸 표시가 포함되어 있는지 여부를 선택하여 영상 이미지 속성 정보를 입력하는 영상 이미지 속성 정보 입력부를 포함하는 것을 특징으로 하는 딥러닝 기반의 문자 인식 시스템.
  4. 삭제
  5. 삭제
  6. 제1 항에 있어서,
    상기 비정형 문자 인식부는,
    상기 텍스트 라인에 대하여 글자 단위로 다수의 임시 섹터를 형성하고, 상기 임시 섹터 내 비정형 문자 중 연이어 쓰여진 글자에 대한 윤곽선 정보를 획득하고, 상기 학습 모델에 기초하여 상기 윤곽선 정보에 대한 초성 자성, 중성 자소 및 받침 자소를 인식하고, 인식된 자소를 조합으로 글자 정보를 출력하는 것을 특징으로 하는 딥러닝 기반의 문자 인식 시스템.
KR1020210137618A 2021-10-15 2021-10-15 딥러닝 기반의 문자 인식 시스템 KR102646607B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210137618A KR102646607B1 (ko) 2021-10-15 2021-10-15 딥러닝 기반의 문자 인식 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210137618A KR102646607B1 (ko) 2021-10-15 2021-10-15 딥러닝 기반의 문자 인식 시스템

Publications (2)

Publication Number Publication Date
KR20230054053A KR20230054053A (ko) 2023-04-24
KR102646607B1 true KR102646607B1 (ko) 2024-03-13

Family

ID=86141931

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210137618A KR102646607B1 (ko) 2021-10-15 2021-10-15 딥러닝 기반의 문자 인식 시스템

Country Status (1)

Country Link
KR (1) KR102646607B1 (ko)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102083786B1 (ko) 2018-09-13 2020-04-23 포항공과대학교 산학협력단 문자열 식별 방법 및 장치, 그리고 이를 이용한 디스플레이 영상 식별 시스템
KR102211763B1 (ko) * 2018-09-21 2021-02-03 네이버 주식회사 글자 검출 장치, 방법 및 시스템
KR102223912B1 (ko) * 2019-01-10 2021-03-08 한국전자통신연구원 다중 뉴럴 네트워크를 이용한 문자 인식을 위한 장치 및 그것의 동작 방법
KR102142238B1 (ko) 2020-02-25 2020-08-07 주식회사 엔디소프트 소정 이미지에 포함된 축약어, 손글씨, 비정형 단어 및 문장과 같은 텍스트 정보를 추출한 후 그 추출 결과를 소정 언어로 자동 번역하는 방법

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
한국 공개특허공보 제10-2020-0036098호(2020.04.07.) 1부.*
한국 공개특허공보 제10-2020-0092487호(2020.08.04.) 1부.*
한국 등록특허공보 제10-2083786호(2020.04.23.) 1부.*

Also Published As

Publication number Publication date
KR20230054053A (ko) 2023-04-24

Similar Documents

Publication Publication Date Title
Mathew et al. Benchmarking scene text recognition in Devanagari, Telugu and Malayalam
JP3345224B2 (ja) パターン抽出装置、パターン再認識用テーブル作成装置及びパターン認識装置
Jain et al. Unconstrained scene text and video text recognition for arabic script
RU2643465C2 (ru) Устройства и способы, которые используют иерархически упорядоченную структуру данных, содержащую непараметризованные символы, для преобразования изображений документов в электронные документы
JP2012185722A (ja) 文字認識装置、文字認識方法、文字認識システム、および文字認識プログラム
JP2005228328A (ja) デジタルインク質疑検索装置及びその方法
Ul-Hasan et al. A sequence learning approach for multiple script identification
EP3539051A1 (en) System and method of character recognition using fully convolutional neural networks
US10417342B1 (en) Deep learning device for local processing classical chinese poetry and verse
Sampath et al. Freeman code based online handwritten character recognition for Malayalam using backpropagation neural networks
US11842524B2 (en) Multi-modal learning based intelligent enhancement of post optical character recognition error correction
CN111985525A (zh) 基于多模态信息融合处理的文本识别方法
CN113610068B (zh) 基于试卷图像的试题拆解方法、系统、存储介质及设备
KR102223912B1 (ko) 다중 뉴럴 네트워크를 이용한 문자 인식을 위한 장치 및 그것의 동작 방법
Baek et al. COO: comic onomatopoeia dataset for recognizing arbitrary or truncated texts
RU2625533C1 (ru) Устройства и способы, которые строят иерархически упорядоченную структуру данных, содержащую непараметризованные символы, для преобразования изображений документов в электронные документы
Kanoun et al. Natural language morphology integration in off-line arabic optical text recognition
KR102646607B1 (ko) 딥러닝 기반의 문자 인식 시스템
Al Ghamdi A novel approach to printed Arabic optical character recognition
CN116822634A (zh) 一种基于布局感知提示的文档视觉语言推理方法
KR20210094823A (ko) 개인 필적 맞춤형 한글 폰트 생성 방법 및 장치
ITRM930179A1 (it) Apparecchio e procedimento per il riconoscimento di caratteri manoscritti.
Ashraf et al. An analysis of optical character recognition (ocr) methods
CN114332476A (zh) 维语识别方法、装置、电子设备、存储介质和产品
JP7315420B2 (ja) テキストの適合および修正の方法

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right