KR20200092487A - 다중 뉴럴 네트워크를 이용한 문자 인식을 위한 장치 및 그것의 동작 방법 - Google Patents

다중 뉴럴 네트워크를 이용한 문자 인식을 위한 장치 및 그것의 동작 방법 Download PDF

Info

Publication number
KR20200092487A
KR20200092487A KR1020190003113A KR20190003113A KR20200092487A KR 20200092487 A KR20200092487 A KR 20200092487A KR 1020190003113 A KR1020190003113 A KR 1020190003113A KR 20190003113 A KR20190003113 A KR 20190003113A KR 20200092487 A KR20200092487 A KR 20200092487A
Authority
KR
South Korea
Prior art keywords
learning
neural network
character
input image
inference
Prior art date
Application number
KR1020190003113A
Other languages
English (en)
Other versions
KR102223912B1 (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 KR1020190003113A priority Critical patent/KR102223912B1/ko
Publication of KR20200092487A publication Critical patent/KR20200092487A/ko
Application granted granted Critical
Publication of KR102223912B1 publication Critical patent/KR102223912B1/ko

Links

Images

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/10Character recognition
    • G06V30/19Recognition using electronic means
    • G06V30/191Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
    • G06V30/19147Obtaining sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0454
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/18Extraction of features or characteristics of the image
    • G06V30/1801Detecting partial patterns, e.g. edges or contours, or configurations, e.g. loops, corners, strokes or intersections
    • G06V30/18019Detecting partial patterns, e.g. edges or contours, or configurations, e.g. loops, corners, strokes or intersections by matching or filtering
    • G06V30/18038Biologically-inspired filters, e.g. difference of Gaussians [DoG], Gabor filters
    • G06V30/18048Biologically-inspired filters, e.g. difference of Gaussians [DoG], Gabor filters with interaction between the responses of different filters, e.g. cortical complex cells
    • G06V30/18057Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/19Recognition using electronic means
    • G06V30/191Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
    • G06V30/19173Classification techniques
    • G06K2209/01

Landscapes

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

Abstract

본 발명의 실시 예에 따른 다중 뉴럴 네트워크를 이용하여 문자를 인식하는 장치의 동작 방법에 있어서, 자소별 뉴럴 네트워크 학습을 진행하는 단계, 상기 학습 결과와 학습 오차를 이용하여 자소들을 추론하는 단계, 및 상기 추론된 자소들을 조합함으로써 글자를 판단하는 단계를 포함할 수 있다.

Description

다중 뉴럴 네트워크를 이용한 문자 인식을 위한 장치 및 그것의 동작 방법{APPARATUS FOR RECOGNITION OF LETTERS USING MULTIPLE NEURAL NETWORKS AND OPERATING METHOD THEREOF}
본 발명은 다중 뉴럴 네트워크를 이용한 문자 인식을 위한 장치 및 그것의 동작 방법에 관한 것이다.
일반적으로, 카메라 영상으로부터 문자를 검출하고 인식하는 시스템은 현대 사회에서 그 필요성이 크게 대두되고 있다. 스마트폰을 사용한 자동 문자 번역 서비스, 간판을 인식 하는 기술, 도로의 이정표를 인식하는 기술 등 다양한 사용자 편의 기술의 기반 기술로써 높은 성능이 요구된다. 실내 환경 및 정형화된 Text에 대한 문자 검출 및 인식 기술인 OCR(Optical Character Recognition) 기술은 현재 상용화 단계에 이르러 그 높은 성능을 인정받고 있다. 최근에 뉴럴 네트워크(Neural Network)를 이용한 문자 인식 기술이 다양하게 소개되고 있다. 뉴럴 네트워크를 구성하는 노드들의 개수가 매우 큰 대규모 뉴럴 네트워크의 경우, 컴퓨팅 리소스가 적은 임베디드 기기나 모바일 기기에서 로딩 자체가 불가능하다. 메모리가 충분한 경우라도 대규모의 뉴럴 네트워크를 로딩하여 학습 및 추론 시에 속도 저하가 발생할 수 있다.
등록특허: 10-1777601, 등록일: 2017년 9월 6일, 제목: 초서체 혹은 흘림체로 작성된 문자의 판별 방법 및 시스템 일본공개특허: 특개2017-21589, 공개일: 2017년 12월 7일, 제목: 문자열 인식 장치, 방법 및 프로그램
본 발명의 목적은 분해 가능한 문자 체계를 사용하는 한글 혹은 한자 등의 문자 인식을 위한 단일 뉴럴 네트워크를 대신하여, 분해 가능한 문자를 구성하고 있는 자소별 인식용 뉴럴 네트워크를 복수로 구성하고, 각 뉴럴 네트워크의 결과들을 조합하여 최종적으로 입력 이미지의 문자를 인식하는 다중 뉴럴 네트워크를 이용한 문자 인식을 위한 장치 및 그것의 동작 방법을 제공하는 데 있다.
본 발명의 실시 예에 따른 다중 뉴럴 네트워크를 이용하여 문자를 인식하는 장치의 동작 방법에 있어서, 자소별 뉴럴 네트워크 학습을 진행하는 단계; 상기 학습 결과와 학습 오차를 이용하여 자소들을 추론하는 단계; 및 상기 추론된 자소들을 조합함으로써 글자를 판단하는 단계를 포함할 수 있다.
실시 예에 있어서, 상기 학습을 진행하는 단계는, 제 1 뉴럴 네트워크를 이용하여 데이터 셋에 대하여 초성을 학습하는 단계; 제 2 뉴럴 네트워크를 이용하여 상기 데이터 셋에 대하여 중성을 학습하는 단계; 및 제 3 뉴럴 네트워크를 이용하여 상기 데이터 셋에 대하여 받침을 학습하는 단계를 포함할 수 있다.
실시 예에 있어서, 상기 제 1, 제 2, 및 제 3 뉴럴 네트워크들의 각각은 CNN(convolution neural network)를 포함할 수 있다.
실시 예에 있어서, 상기 초성을 학습하는 단계는 상기 데이터 셋으로부터 입력 이미지 및 초성 자소에 대한 제 1 레이블을 수신하는 단계를 더 포함하고, 상기 중성을 학습하는 단계는 상기 데이터 셋으로부터 상기 입력 이미지 및 중성 자소에 대한 제 2 레이블을 수신하는 단계를 더 포함하고, 상기 받침을 학습하는 단계는 상기 데이터 셋으로부터 상기 입력 이미지 및 받침 자소에 대한 제 3 레이블을 수신하는 단계를 더 포함할 수 있다.
실시 예에 있어서, 상기 제 1, 제 2, 및 제 3 뉴럴 네트워크들의 각각은 대응하는 뉴럴 네트워크를 최적화시키기 위하여 SoftMaxWithLoss 계층에 예측 결과와 대응하는 레이블을 이용하여 상기 학습 오차를 계산하고, 상기 계산된 학습 오차를 이용하여 학습용 뉴럴 네트워크와 추론용 뉴럴 네트워크에 포함된 노드들 사이의 연결선에 부가된 weight을 업데이트 시키는 것을 특징으로 한다.
실시 예에 있어서, 상기 제 1, 제 2, "G 제 3 뉴럴 네트워크들은 병렬로 실행되는 것을 특징으로 한다.
실시 예에 있어서, 상기 제 1, 제 2, "G 제 3 뉴럴 네트워크들은 순서에 상관없이 직렬로 실행되는 것을 특징으로 한다.
실시 예에 있어서, 상기 자소들을 추론하는 단계는, 상기 제 1 뉴럴 네트워크를 이용하여 입력 이미지에 대하여 초성 자소를 추론하는 단계; 상기 제 2 뉴럴 네트워크를 이용하여 상기 입력 이미지에 대하여 중성 자소를 추론하는 단계; 및 상기 제 3 뉴럴 네트워크를 이용하여 상기 입력 이미지에 대하여 받침 자소를 추론하는 단계를 포함할 수 있다.
실시 예에 있어서, 상기 글자를 판단하는 단계는, 상기 추론된 초성 자소, 상기 추론된 중성 자소, 및 상기 추론된 받침 자소를 결합함으로써 상기 입력 이미지에 대한 한글 글자를 판단하는 단계를 포함할 수 있다.
실시 예에 있어서, 상기 문자는 상하 조합, 좌우 조합, 혹은 감쌈의 형태로 조합 패턴으로 구성되고, 상기 문자를 인식하기 위하여 상기 조합 패턴에 따라 자소별 학습 및 추론 뉴럴 네트워크가 진행되는 것을 특징으로 한다.
본 발명의 실시 예에 따른 다중 뉴럴 네트워크를 이용하여 문자를 인식하는 장치는: 자소별로 대응하는 학습용 CNN(convolution neural network)을 이용하여 입력 이미지와 대응하는 레이블에 대한 학습을 수행하는 장치; 자소별로 대응하는 추론용 CNN을 이용하여 상기 입력 이미지의 자소를 추론을 수행하는 장치; 및 상기 추론된 자소들을 결함으로써 상기 입력 이미지에 대응하는 글자를 인식하는 글자 조합 로직을 포함할 수 있다.
실시 예에 있어서, 상기 학습을 수행하는 장치는, 학습 결과와 학습 오차를 이용하여 상기 학습용 CNN와 상기 추론용 CNN을 연결하는 연결선의 가중치를 업데이트 시키는 것을 특징으로 한다.
실시 예에 있어서, 학습용 CNN들은 병렬로 실행되거나, 순서에 상관없이 직렬로 실행되는 것을 특징으로 한다.
실시 예에 있어서, 추론용 CNN들은 병렬로 실행되거나, 순서에 상관없이 직렬로 실행되는 것을 특징으로 한다.
본 발명의 실시 예에 따른 다중 뉴럴 네트워크를 이용한 문자 인식을 위한 장치 및 그것의 동작 방법은, 문자 인식을 위한 단일 뉴럴 네트워크를 자소 단위의 인식을 위한 복수의 뉴럴 네트워크들로 나누고, 자소 단위 인식 뉴럴 네트워크의 추론 결과를 조합함으로써 최종적으로 문자 인식을 할 수 있다. 이로써 본 발명의 실시 예에 따른 다중 뉴럴 네트워크를 이용한 문자 인식을 위한 장치 및 그것의 동작 방법은 한글 인식을 위한 뉴럴 네트워크의 출력 계층의 노드의 수를 19x21x(27+1) =11,172에서 19 + 21 + (27 +1) =68개로 줄일 수 있다.
또한, 본 발명의 실시 예에 따른 다중 뉴럴 네트워크를 이용한 문자 인식을 위한 장치 및 그것의 동작 방법은, 뉴럴 네트워크의 출력 계층의 노드의 수를 획기적으로 줄어듦 음으로써 메모리가 제한된 임베디드 디바이스나 모바일 기기 상에 한글 인식용 뉴럴 네트워크를 단독으로 탑재 가능하다.
또한, 본 발명의 실시 예에 따른 다중 뉴럴 네트워크를 이용한 문자 인식을 위한 장치 및 그것의 동작 방법은, 컴퓨팅 자원이 풍부한 일반 데스크탑이나 서버의 경우에도 상대적으로 적은 수의 노드로 학습 및 추론을 함으로써, 더 효율적이며, 수행시간과 같은 성능면에서 장점을 갖는다.
또한, 본 발명의 실시 예에 따른 다중 뉴럴 네트워크를 이용한 문자 인식을 위한 장치 및 그것의 동작 방법은, 문자로 이루어진 단어 인식 및 단어로 이루어진 문장 인식의 기초가 되는 단계이므로, 문장 인식 등의 여타 분야에 있어서 많은 속도 향상을 제공할 수 있다.
이하에 첨부되는 도면들은 본 실시 예에 관한 이해를 돕기 위한 것으로, 상세한 설명과 함께 실시 예들을 제공한다. 다만, 본 실시예의 기술적 특징이 특정 도면에 한정되는 것은 아니며, 각 도면에서 개시하는 특징들은 서로 조합되어 새로운 실시 예로 구성될 수 있다.
도 1은 CNN 기반의 뉴럴 네트워크(10)을 예시적으로 보여주는 도면이다.
도 2은 한글의 기본 자모를 보여주는 도면이다.
도 3은 한글의 복합 자모를 보여주는 도면이다.
도 4는 일반적인 한글 학습 및 추론용 뉴럴 네트워크의 예시적으로 보여주는 도면이다.
도 5는 한글 글자를 구성하는 자소의 평면에서의 조합 패턴을 예시적으로 보여주는 도면이다.
도 6은 본 발명의 실시 예에 따른 한글 데이터 셋 구조를 예시적으로 보여주는 도면이다.
도 7은 본 발명의 실시 예에 따른 한글 인식용 뉴럴 네트워크(100)을 예시적으로 보여주는 도면이다.
도 8은 본 발명의 실시 예에 따른 트레이닝 데이터 셋을 통한 뉴럴 네트워크의 학습 과정을 예시적으로 보여주는 도면이다.
도 9는 본 발명의 실시 예에 따른 학습된 뉴럴 네트워크를 이용한 한글 이미지에서의 글자 추론 과정을 예시적으로 보여주는 도면이다.
도 10은 한자를 구성하는 자소의 평면상에서의 조합 패턴을 예시적으로 보여주는 도면이다.
도 11은 본 발명의 실시 예에 따른 뉴럴 네트워크의 동작 방법을 예시적으로 보여주는 흐름도이다.
아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다.
상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 혹은 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 혹은 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다. 본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, "포함하다" 혹은 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 혹은 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 혹은 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 혹은 이들을 조합한 것들의 존재 혹은 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
아래에서는 설명의 편의를 위하여, 위하여 한글 혹은 한자를 예를 사용하여 내용을 기술하고 있으나, 이는 본 발명의 하나의 실시 예로써 한글 혹은 한자에 한정하는 것은 아니다. 본 발명의 기술 사상은 기본 자소(字素 grapheme)로 분해 가능한 문자에서 기본 자소를 조합하여 모아쓰기 형태 글자를 완성하는 다양한 문자 체계에 적용할 수 있다. 여기서 자소(字素)는 어떤 언어의 문자 체계에서 의미상 구별할 수 있는 가장 작은 단위를 의미한다.
일반적으로 뉴럴 네트워크의 한 종류인 CNN(Convolutional Neural Network)는 이미지 인식과 음성 인식 등 다양한 곳에서 사용된다. 특히 이미지 인식 분야에서 대부분의 딥러닝을 활용한 기법들은 CNN을 기반으로 하고 있다. CNN은 특징적으로 컨볼루션 계층(Convolution Layer)와 폴링 계층(Pooling Layer)를 포함하고 있다. Convolution Layer는 입력 데이터의 공간적 형상으로부터 공간적 정보를 추출하고, 추출된 공간적 정보를 다음 계층인 Pooling layer에 전달한다. 공간적으로 가까운 픽셀은 값이 비슷하거나, RGB(Red, Green Blue) 각 채널이 서로 밀접하게 관련되어 있거나, 거리가 먼 픽셀은 별 연관이 없는 등, 3차원 속에서 의미를 가지는 본질적인 패턴들이 추출된다.
한편, 이미지 인식의 한 종류라고 할 수 있는 문자 인식 혹은 필기체 인식의 분야에서도 CNN 기반의 뉴럴 네트워크들은 좋은 성능을 보여주고 있다. 일반적인 CNN 기반의 문자 인식용 뉴럴 네트워크는 숫자 혹은 영문자를 대상으로 높은 인식률을 보이고 있다.
도 1은 CNN 기반의 뉴럴 네트워크(10)을 예시적으로 보여주는 도면이다. 도 1을 참조하면, 뉴럴 네트워크(10)은 특징을 추출하는 단계와 분류하는 단계로 구성될 수 있다.
실시 예에 있어서, 특징을 추출하는 단계는 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개이다.
도 1에 도시된 바와 같이, 숫자 학습 및 추론용 뉴럴 네트워크의 예시로, 학습용 뉴럴 네트워크는 N2 레이어의 뒤에 오차 값 계산을 위한 SoftMaxWithLoss 계층을 통하여 예측값과 정답 간의 차이를 나타내는 손실(Loss)을 계산한다. 이렇게 계산된 손실값은 학습 과정 중에 뉴럴 네트워크 내의 노드들 간의 연결선에 부가되는 가중치(Weight)값을 갱신하는데 사용된다. 하지만, 추론 시에는 가장 높은 점수만 알면 되므로, 일반적으로 손실값이 사용되지 않는다.
N2 Output 계층 내의 노드들에서 SoftMaxWithLoss로의 화살표 상의 함수 S( )는 해당 노드들에 대한 스코어(Score)를 의미한다. 즉 S(0)는 N2 output 계층에서 숫자 0에 대응하는 점수를 의미한다.
도 2은 한글의 기본 자모를 보여주는 도면이다. 도 2를 참조하면, 한글의 기본 자모는 자음 14자와 모음 10자로 구성된다. 한글의 경우, 기본 자음 14자와 기본 모음 10자를 바탕으로 자음과 자음, 모음과 모음끼리 합쳐 새로운 글자를 만들어 낼 수 있다. 한글은 자음 글자 (consonant letters)와 모음 글자 (vowel letters)로 되어 있다. 한글은 음소 문자 (phonemic writing system) 이지만 음절 단위 (syllabic unit) 로 모아 쓰는 특징을 지니고 있다.
도 3은 한글의 복합 자모를 보여주는 도면이다. 도 3을 참조하면, 복합 자모는 자음 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이 된다.
도 4는 일반적인 한글 학습 및 추론용 뉴럴 네트워크의 예시적으로 보여주는 도면이다. 도 4를 참조하면, 학습용 뉴럴 네트워크(20)은 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)배 정도 증가한다.
한편, 한, 중, 일의 한자 문화권에서 사용되는 한자의 경우, 글자끼리 조합해서 새로운 글자를 만드는 것이 가능하다. 예를 들어 一(한 일), 人(사람 인), 木(나무 목), 日(날 일)이라는 글자만으로 休(쉴 휴), (따를 종), ··衆(무리 중), 晶(밝을 정), 杳(아득할 묘), (밝을 고), 本(근본 본), 末(끝 말), 未(아닐 미), 林(수풀 림), 森(빽빽할 삼), 旦(아침 단), 但(다만 단) 등의 다양한 글자를 만들 수 있다. 전자와 같이 하나의 부속요소로만 이루어져 있어 그 자체만으로 완전한 글자를 형성하는 글자를 독체자(獨體字)라고 하고, 독체자를 조합해서 만든 글자를 합체자(合體字)라고 한다.
한자 중에서 독체자가 차지하는 부분은 극히 일부분이고, 대부분의 글자는 두 글자가 좌우로, 혹은 위아래로 붙어 있는 형태를 띠고 있다. 그러나 , 晶, 森의 사례에서 볼 수 있듯이 같은 글자가 세 개 중첩되어 한 글자를 만드는 경우도 +日), 但(人+旦)과 같이 이미 두 글자 이상이 합쳐진 글자에 또 다른 글자가 합쳐지는 경우도 있으며, 壽(목숨 수, 老+), 禽(새 금, 今+)과 같이 구성요소들이 결합하는 과정에서 형체가 뭉개지는 경우도 있다. 또한 글자를 몇 개 까지를 합칠 수 있는지에 대한 제한도 없다.
한자 인식용 CNN 기반 뉴럴 네트워크를 만드는 경우, 인식해야 할 한자의 총 개수에 의해 뉴럴 네트워크의 복잡도가 결정된다. 중화인민공화국 베이징(北京) 궈안(安)자문설비공사의 한자뱅크에 수록된 한자는 총 91,251자이고, 유니코드 10.0 CJK(한중일) 통합 한자에서 한자는 87,882자이다. 이중에서 일반 중국, 일본인, 한국인이 통상적으로 읽고 사용하는 글자는 약 2,000 ~ 3,000자 정도이고, 한자를 사용하는 국가들은 이정도 숫자의 한자를 지정 한자로 정해서 사용하고 있다.
따라서 한자 인식기를 CNN기반 뉴럴 네트워크로 구현할 때, N1 계층내의 모든 노드들에서 N2 계층 내의 모든 노드들 간에 전 연결(fully connected)되므로, N1과 N2 계층간 연결 선의 개수는 2,000 ~ 3,000 x (N1의 노드수)가 된다. , 10개의 숫자를 인식하는 경우와 비교할 때, 한자 인식에 필요한 연산의 개수가 N1 레이어에서 N2 레이어사이에서 200 ~ 300 (2,000 ~ 3,000 /10)배 정도 증가한다.
도 4에 도시된 바와 같이 한글 인식용 학습 및 추론 뉴럴 네트워크와 같이 네트워크를 구성하는 노드들의 개수가 매우 커지면, 해당 뉴럴 네트워크 자체를 로딩하기 위해서 많은 메모리가 필요하다. 임베디드 보드와 같은 소형 기기의 경우, 메모리의 크기가 작으므로, 대형 뉴럴 네트워크의 경우 로딩 자체가 불가능한 문제가 발생할 수도 있다. 로딩이 가능한 경우라도, 학습 및 추론 시에 많은 수의 노드는 속도 저하의 원인이 될 수 있다.
대규모 뉴럴 네트워크의 경우, 컴퓨팅 리소스가 적은 임베디드 기기나 모바일 기기에서 로딩 자체가 불가능 하거나, 대상 기기의 컴퓨팅 자원이 충분하여 로딩이 가능하더라도 추론이나 학습 시 속도가 느려질 수 있다.
본 발명의 실시 예에 따른 문자 인식 장치 및 그것의 동작 방법은, 상술된 문제점을 해결하기 위하여, 문자 인식을 위한 단일 뉴럴 네트워크 대신, 문자를 구성하고 있는 자소별 인식용 뉴럴 네트워크를 복수로 구성하고, 자소별 뉴럴 네트워크의 결과들을 조합하여 최종적으로 입력 이미지의 문자를 인식할 수 있다.
한편, 발명의 구성 설명을 위하여 한글을 실시 예로 설명하고 있으나, 데이터 셋에 복수의 레이블을 사용하여 자소별 레이블을 추가하고, 자소별 별도의 뉴럴 네트워크를 사용하여 자소별로 추론한 결과를 조합하여 최종 글자를 추론하는 본 발명의 사상은 여타 자소 단위로 분해 가능한 문자 체계용 문자 인식에 사용될 수 있다고 이해되어야 할 것이다.
한편, 한글의 경우, 개별 글자 하나는 다음과 같이 6가지 형태의 초성 자소, 중성 자소, 받침 자소(생략 가능)의 조합으로 구성된다.
도 5는 한글 글자를 구성하는 자소의 평면에서의 조합 패턴을 예시적으로 보여주는 도면이다. 한글의 개별 글자는 초성 자소, 중성 자소, 받침 자소들의 위치가 평면 공간상에서 의미 있는 패턴을 가지고 있음을 알 수 있다. 이러한 공간 상에서의 특징적 위치 패턴은 Convolution 연산을 통하여 공간에서의 위치적 특성에 기반하여 특징을 추출하는 CNN을 특성에도 부합한다.
한편, 한글을 위한 데이터 셋 설계는 다음과 같다. 현대 한글에서는 다음과 같이 초성 글자, 중성 글자, 받침 글자 별로 사용할 수 있는 자소가 규정되어 있다.
초성 자소 (initial sound graphemes): 19자
ㄱ ㄴ ㄷ ㄹ ㅁ ㅂ ㅅ ㅇ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ ㄲ ㄸ ㅃ ㅆ ㅉ ( 19개 )
중성 자소 (medial sound graphemes): 21자
ㅏ ㅑ ㅓ ㅕ ㅗ ㅛ ㅜ ㅠ ㅡ ㅣ ㅐ ㅒ ㅔ ㅖ ㅘ ㅙ ㅚ ㅝ ㅞ ㅟ ㅢ ( 21개 )
받침 조 (final consonants graphemes): 27자
홑 받침 : ㄱ ㄴ ㄷ ㄹ ㅁ ㅂ ㅅ ㅇ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ ㄲ ㅆ ( 16개 )
겹받침 : ㄳ ㄵ ㄶ ㄺ ㄻ ㄼ ㄽ ㄾ ㄿ ㅀ ㅄ ( 11개 )
도 6은 본 발명의 실시 예에 따른 한글 데이터 셋 구조를 예시적으로 보여주는 도면이다. 도 6을 참조하면, 한글 인식용 뉴럴 네트워크에 사용할 데이터 셋을 위하여, 주어진 글자 하나에 대하여 한글 글자 조합 규칙에 따라, 같이 초성 자소, 중성 자소, 받침 자소에 대하여 각각 레이블(L1, L2, L3)를 지정해준다. 받침 자소가 없는 글자인 경우 L3의 값은 NULL로 지정해준다.
한편, 분해 가능한 문자 체계용 문자 학습 및 추론용 뉴럴 네트워크 및 글자 조합 로직은 다음과 같다.
도 7은 본 발명의 실시 예에 따른 한글 인식용 뉴럴 네트워크(100)을 예시적으로 보여주는 도면이다. 도 7을 참조하면, 한글 인식용 뉴럴 네트워크(100)은 초성 자소 학습 및 추론용 뉴럴 네트워크(110, 제 1 뉴럴 네트워크), 중성 자소 학습 및 추론용 뉴럴 네트워크(120, 제 2 뉴럴 네트워크), 받침 자소 학습 및 추론용 뉴럴 네트워크(130, 제 3 뉴럴 네트워크) 및 글자 조합 로직(140)을 포함할 수 있다.
한편, 도 7에서는예시를 위하여 초성 자소, 중성 자소, 받침 자소의 학습 및 추론용 뉴럴 네트워크의 Convolution, Subsampling에 특정한 크기의 커널을 표시하였으나, 이는 예시를 위한 것으로 각각의 뉴럴 네트워크에 포함된 Convolution, Subsampling 계층에 사용 가능한 다른 크기의 서로 다른 종류의 커널을 사용할 수 있다. 즉 본 예시가 뉴럴 네트워크에 사용 가능한 하이퍼 파라미터들(hyper parameters)의 값을 한정하는 것은 아니다.
도 8은 본 발명의 실시 예에 따른 트레이닝 데이터 셋을 통한 뉴럴 네트워크의 학습 과정을 예시적으로 보여주는 도면이다. 도 8를 참조하면, 트레이닝 데이터 셋을 통한 뉴럴 네트워크의 학습 과정은 다음과 같이 진행될 수 있다. 입력으로 주어지는 트레이닝 데이터 셋은 한글 이미지와 해당 한글 이미지에 대한 초성, 중성, 받침 자소에 대한 레이블로 구성될 수 있다.
초성 자소 (first sound grapheme) 학습 및 추론용 뉴럴 네트워크(110, 도 7 참조)는 데이터 셋 설계에서 고안한 포맷을 사용한 데이터셋으로부터 입력 이미지와 초성 자소에 대한 레이블 L1을 입력 받고, 해당 뉴럴 네트워크를 학습하고, 학습 과정 중 해당 뉴럴 네트워크를 최적화하기 위한 SoftMaxWithLoss 계층에 예측 결과와 레이블 L1을 사용하여 학습 오차를 Loss1 함수로 계산하고, 학습 오차를 줄이는 방향으로 초성 자소 학습 및 추론용 뉴럴 네트워크에 포함된 노드들 간의 연결선에 부가된 Weight들을 업데이트할 수 있다.
중성 자소 (medial sound grapheme) 학습 및 추론용 뉴럴 네트워크(120, 도 7 참조)는 데이터셋 설계에서 고안한 포맷을 사용한 데이터셋으로부터 입력 이미지와 중성 자소에 대한 레이블 L2을 입력 받고, 해당 뉴럴 네트워크를 학습하고, 학습 과정 중 해당 뉴럴 네트워크를 최적화하기 위한 SoftMaxWithLoss 계층에 예측 결과와 레이블 L2을 사용하여 학습 오차를 Loss2 함수로 계산하고, 학습 오차를 줄이는 방향으로 초성 자소 학습 및 추론용 뉴럴 네트워크에 포함된 노드들 간의 연결선에 부가된 Weight들을 업데이트 할 수 있다.
받침 자소 (final consonants grapheme) 학습 및 추론용 뉴럴 네트워크(130, 도 7 참조)는 데이터셋 설계에서 고안한 포맷을 사용한 데이터셋으로부터 입력 이미지와 받침 자소에 대한 레이블 L3을 입력 받고, 해당 뉴럴 네트워크를 학습하고, 학습 과정 중 해당 뉴럴 네트워크를 최적화하기 위한 SoftMaxWithLoss 계층에 예측 결과와 레이블 L3을 사용하여 학습 오차를 Loss3 함수로 계산하고, 학습 오차를 줄이는 방향으로 초성 자소 학습 및 추론용 뉴럴 네트워크에 포함된 노드들 간의 연결선에 부가된 Weight들을 업데이트할 수 있다.
한편, 도 6에 도시된 바와 같이 초성 자소 학습 및 추론용 뉴럴 네트워크(110), 중성 자소 학습 및 추론용 뉴럴 네트워크(120), 받침 자소 학습 및 추론용 뉴럴 네트워크(130)는 병렬로 실행할 수도 있으나, 각각 순서에 상관없이 직렬로 수행할 수도 있다. 컴퓨팅 자원이 지원하는 경우, 병렬로 실행함으로써, 수행 시간을 단축시킬 수 있다.
한편, 학습된 뉴럴 네트워크를 이용한 한글 이미지에서의 글자 추론 과정은 다음과 같다. 데이터 셋을 통하여 상기 뉴럴 네트워크가 학습이 되어, 노드 간의 연결선에 부가된 Weight 값이 최적으로 업데이트되고 나며, 데이터 셋과 동일한 shape를 가지는 임의의 한글 이미지를 입력으로 하여 해당 한글 이미지에 포함된 글자를 인식할 수 있다.
도 9는 본 발명의 실시 예에 따른 학습된 뉴럴 네트워크를 이용한 한글 이미지에서의 글자 추론 과정을 예시적으로 보여주는 도면이다. 도 9를 참조하면, 학습된 뉴럴 네트워크를 이용한 한글 이미지에서의 글자 추론 과정은 다음과 같이 진행될 수 있다.
글자 조합 로직(140, 도 7 참조)은 학습에 사용되지 않은 입력 이미지에 대하여 1) 초성 자소 (first sound grapheme) 학습 및 추론용 뉴럴 네트워크(110, 도 7 참조)를 통하여 입력 이미지에 포함된 초성 자소에 대하여 추론한 값, 2) 중성 자소 (medial sound grapheme) 학습 및 추론용 뉴럴 네트워크(120, 도 7 참조)를 통하여 입력 이미지에 포함된 초성 자소에 대하여 추론한 값, 3) 중성 자소 (medial sound grapheme) 학습 및 추론용 뉴럴 네트워크(도 7 참조)를 통하여 입력 이미지에 포함된 초성 자소에 대하여 추론한 값을 결합하면 입력 이미지에 대응하는 한글 글자를 추론할 수 있다.
한편, 도 9에 도시된 바와 같이 초성 자소 학습 및 추론용 뉴럴 네트워크(110), 중성 자소 학습 및 추론용 뉴럴 네트워크(120), 받침 자소 학습 및 추론용 뉴럴 네트워크(130)는 병렬로 실행할 수도 있으나, 각각 순서에 상관없이 직렬로 수행할 수도 있다. 컴퓨팅 자원이 지원하는 경우, 병렬로 실행함으로써, 수행 시간을 단축시킬 수 있다.
상술된 바와 같이 본 발명의 실시 예를 분해 가능한 문자 체계의 한 예인 한글을 대상으로 설명하였다. 하지만, 분해 가능한 문자체계에는 본 발명의 사상을 확장하여 적용 가능할 수 있으므로, 일 실시 예에 본 발명의 사상을 한정하지는 않는다. 예를 들어, 한자의 경우, 한글의 조합 패턴과는 다른 형태의 조합을 추가로 가진다.
도 10은 한자를 구성하는 자소의 평면상에서의 조합 패턴을 예시적으로 보여주는 도면이다. 도 10을 참조하면, 한자에서의 조합 패턴들을 분석하면, 최대 3개의 자소가 상하, 좌우, 감쌈의 형태로 조합될 수 있다.
따라서 이러한 조합 패턴에 따라서 해당 조합에 따른 자소별 학습 및 추론용 뉴럴 네트워크를 구성하고, 개별 뉴럴 네트워크에서의 추론 결과를 조합하여 한자를 인식할 수 있다. 이 경우에도 직접 조합된 글자를 인식하는 대규모 단일 뉴럴 네트워크와 비교할 때, 출력 계층에서의 노드의 개수의 수를 대폭적으로 줄일 수 있다. 따라서 학습 및 추론에 소요되는 시간을 감소시킬 수 있을 뿐만 아니라, 컴퓨팅 자원이 상대적으로 적은 모바일 기기나 임베디드 기기에 적합하도록 컴퓨팅 리소스 사용량을 줄인 뉴럴 네트워크를 구축하기 용이하다.
도 11은 본 발명의 실시 예에 따른 뉴럴 네트워크의 동작 방법을 예시적으로 보여주는 흐름도이다. 도 1 내지 도 11을 참조하면, 뉴럴 네트워크의 동작은 다음과 같이 진행될 수 있다.
데이터셋이 입력될 때, 자소별 뉴럴 네트워크 학습이 진행될 수 있다(S110). 이후 자소별 뉴럴 네트워크에서 학습 오차(Loss)가 계산될 수 있다. 학습 결과와 학습 오차를 이용하여 자소들이 추론될 수 있다(S120). 추론된 자소들을 조합함으로써 입력된 글자가 판단될 수 있다(S130).
실시 예에 따라서는, 단계들 및/혹은 동작들의 일부 혹은 전부는 하나 이상의 비-일시적 컴퓨터-판독가능 매체에 저장된 명령, 프로그램, 상호작용 데이터 구조(interactive data structure), 클라이언트 및/혹은 서버를 구동하는 하나 이상의 프로세서들을 사용하여 적어도 일부가 구현되거나 혹은 수행될 수 있다. 하나 이상의 비-일시적 컴퓨터-판독가능 매체는 예시적으로 소프트웨어, 펌웨어, 하드웨어, 및/혹은 그것들의 어떠한 조합일 수 있다. 또한, 본 명세서에서 논의된 "모듈"의 기능은 소프트웨어, 펌웨어, 하드웨어, 및/혹은 그것들의 어떠한 조합으로 구현될 수 있다.
본 발명의 실시 예들의 하나 이상의 동작들/단계들/모듈들을 구현/수행하기 위한 하나 이상의 비-일시적 컴퓨터-판독가능 매체 및/혹은 수단들은 ASICs(application-specific integrated circuits), 표준 집적 회로들, 마이크로 컨트롤러를 포함하는, 적절한 명령들을 수행하는 컨트롤러, 및/혹은 임베디드 컨트롤러, FPGAs(field-programmable gate arrays), CPLDs(complex programmable logic devices), 및 그와 같은 것들을 포함할 수 있지만, 여기에 한정되지는 않는다.
본 발명의 구성에 따르면 문자 인식을 위한 단일 뉴럴 네트워크를 자소 단위의 인식을 위한 복수의 뉴럴 네트워크들로 나누고, 자소 단위 인식 뉴럴 네트워크의 추론 결과를 조합하여 최종적으로 문자 인식을 하도록 하였다. 이를 통하여 한글 인식을 위한 뉴럴 네트워크의 출력 계층의 노드의 수를 19x21x(27+1) =11,172에서 19 + 21 + (27 +1) =68개로 줄일 수 있었다.
뉴럴 네트워크의 출력 계층의 노드의 수가 획기적으로 줄어들어서 메모리가 제한된 임베디드 디바이스나 모바일 기기 상에 한글 인식용 뉴럴 네트워크를 단독으로 탑재가 가능해질 수 있으며, 컴퓨팅 자원이 풍부한 일반 데스크탑이나 서버의 경우에도 상대적으로 적은 수의 노드로 학습 및 추론이 가능해지므로, 더 효율적이며, 수행시간과 같은 성능면에서 장점을 가진다.
또한 문자 인식은 문자로 이루어진 단어 인식 및 단어로 이루어진 문장 인식의 기초가 되는 단계이므로, 문장 인식 등의 여타 분야에 있어서 많은 속도 향상을 제공할 수 있게 된다.
한편, 상술 된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함할 것이다.
10, 20, 100: 뉴럴 네트워크
110: 제 1 뉴럴 네트워크
120: 제 2 뉴럴 네트워크
130: 제 3 뉴럴 네트워크
140: 글자 조합 로직

Claims (14)

  1. 다중 뉴럴 네트워크를 이용하여 문자를 인식하는 장치의 동작 방법에 있어서,
    자소별 뉴럴 네트워크 학습을 진행하는 단계;
    상기 학습 결과와 학습 오차를 이용하여 자소들을 추론하는 단계; 및
    상기 추론된 자소들을 조합함으로써 글자를 판단하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 학습을 진행하는 단계는,
    제 1 뉴럴 네트워크를 이용하여 데이터 셋에 대하여 초성을 학습하는 단계;
    제 2 뉴럴 네트워크를 이용하여 상기 데이터 셋에 대하여 중성을 학습하는 단계; 및
    제 3 뉴럴 네트워크를 이용하여 상기 데이터 셋에 대하여 받침을 학습하는 단계를 포함하는 방법.
  3. 제 2 항에 있어서,
    상기 제 1, 제 2, 및 제 3 뉴럴 네트워크들의 각각은 CNN(convolution neural network)를 포함하는 방법.
  4. 제 2 항에 있어서,
    상기 초성을 학습하는 단계는 상기 데이터 셋으로부터 입력 이미지 및 초성 자소에 대한 제 1 레이블을 수신하는 단계를 더 포함하고,
    상기 중성을 학습하는 단계는 상기 데이터 셋으로부터 상기 입력 이미지 및 중성 자소에 대한 제 2 레이블을 수신하는 단계를 더 포함하고,
    상기 받침을 학습하는 단계는 상기 데이터 셋으로부터 상기 입력 이미지 및 받침 자소에 대한 제 3 레이블을 수신하는 단계를 더 포함하는 방법.
  5. 제 4 항에 있어서,
    상기 제 1, 제 2, 및 제 3 뉴럴 네트워크들의 각각은 대응하는 뉴럴 네트워크를 최적화시키기 위하여 SoftMaxWithLoss 계층에 예측 결과와 대응하는 레이블을 이용하여 상기 학습 오차를 계산하고, 상기 계산된 학습 오차를 이용하여 학습용 뉴럴 네트워크와 추론용 뉴럴 네트워크에 포함된 노드들 사이의 연결선에 부가된 weight을 업데이트 시키는 것을 특징으로 하는 방법.
  6. 제 4 항에 있어서,
    상기 제 1, 제 2, "G 제 3 뉴럴 네트워크들은 병렬로 실행되는 것을 특징으로 하는 방법.
  7. 제 4 항에 있어서,
    상기 제 1, 제 2, "G 제 3 뉴럴 네트워크들은 순서에 상관없이 직렬로 실행되는 것을 특징으로 하는 방법.
  8. 제 2 항에 있어서,
    상기 자소들을 추론하는 단계는,
    상기 제 1 뉴럴 네트워크를 이용하여 입력 이미지에 대하여 초성 자소를 추론하는 단계;
    상기 제 2 뉴럴 네트워크를 이용하여 상기 입력 이미지에 대하여 중성 자소를 추론하는 단계; 및
    상기 제 3 뉴럴 네트워크를 이용하여 상기 입력 이미지에 대하여 받침 자소를 추론하는 단계를 포함하는 방법.
  9. 제 8 항에 있어서,
    상기 글자를 판단하는 단계는,
    상기 추론된 초성 자소, 상기 추론된 중성 자소, 및 상기 추론된 받침 자소를 결합함으로써 상기 입력 이미지에 대한 한글 글자를 판단하는 단계를 포함하는 방법.
  10. 제 1 항에 있어서,
    상기 문자는 상하 조합, 좌우 조합, 혹은 감쌈의 형태로 조합 패턴으로 구성되고,
    상기 문자를 인식하기 위하여 상기 조합 패턴에 따라 자소별 학습 및 추론 뉴럴 네트워크가 진행되는 것을 특징으로 하는 방법.
  11. 다중 뉴럴 네트워크를 이용하여 문자를 인식하는 장치에 있어서:
    자소별로 대응하는 학습용 CNN(convolution neural network)을 이용하여 입력 이미지와 대응하는 레이블에 대한 학습을 수행하는 장치;
    자소별로 대응하는 추론용 CNN을 이용하여 상기 입력 이미지의 자소를 추론을 수행하는 장치; 및
    상기 추론된 자소들을 결함으로써 상기 입력 이미지에 대응하는 글자를 인식하는 글자 조합 로직을 포함하는 문자를 인식하는 장치.
  12. 제 11 항에 있어서,
    상기 학습을 수행하는 장치는, 학습 결과와 학습 오차를 이용하여 상기 학습용 CNN와 상기 추론용 CNN을 연결하는 연결선의 가중치를 업데이트 시키는 것을 특징으로 하는 문자를 인식하는 장치.
  13. 제 11 항에 있어서,
    학습용 CNN들은 병렬로 실행되거나, 순서에 상관없이 직렬로 실행되는 것을 특징으로 하는 문자를 인식하는 장치.
  14. 제 11 항에 있어서,
    추론용 CNN들은 병렬로 실행되거나, 순서에 상관없이 직렬로 실행되는 것을 특징으로 하는 문자를 인식하는 장치.
KR1020190003113A 2019-01-10 2019-01-10 다중 뉴럴 네트워크를 이용한 문자 인식을 위한 장치 및 그것의 동작 방법 KR102223912B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190003113A KR102223912B1 (ko) 2019-01-10 2019-01-10 다중 뉴럴 네트워크를 이용한 문자 인식을 위한 장치 및 그것의 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190003113A KR102223912B1 (ko) 2019-01-10 2019-01-10 다중 뉴럴 네트워크를 이용한 문자 인식을 위한 장치 및 그것의 동작 방법

Publications (2)

Publication Number Publication Date
KR20200092487A true KR20200092487A (ko) 2020-08-04
KR102223912B1 KR102223912B1 (ko) 2021-03-08

Family

ID=72048905

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190003113A KR102223912B1 (ko) 2019-01-10 2019-01-10 다중 뉴럴 네트워크를 이용한 문자 인식을 위한 장치 및 그것의 동작 방법

Country Status (1)

Country Link
KR (1) KR102223912B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102399945B1 (ko) * 2021-11-04 2022-05-19 홍진 유아 학습용 전자 장치의 광학 문자 인식 방법
KR20220109821A (ko) 2021-01-29 2022-08-05 경북대학교 산학협력단 불균형 초서 인식을 위한 주목도를 이용한 로우샷 전이 방법, 이를 수행하기 위한 기록 매체 및 장치
KR20230054053A (ko) * 2021-10-15 2023-04-24 한국딥러닝 주식회사 딥러닝 기반의 문자 인식 시스템

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017021589A (ja) 2015-07-10 2017-01-26 株式会社東芝 情報処理装置、方法及びプログラム
KR101777601B1 (ko) 2016-01-11 2017-09-13 경북대학교 산학협력단 초서체 또는 흘림체로 작성된 문자의 판별 방법 및 시스템
US20180349743A1 (en) * 2017-05-30 2018-12-06 Abbyy Development Llc Character recognition using artificial intelligence
KR20190008168A (ko) * 2018-12-28 2019-01-23 정우곤 인공지능 딥러닝 기술을 이용하여 예쁜글씨를 폰트화하는 과정에서 초/중/종성을 분리하고 이를 이용하여 템프리트에서 얻지 못하는 한글글자를 구성하는 기술
KR20190065665A (ko) * 2017-12-04 2019-06-12 주식회사 솔루게이트 딥 러닝을 이용한 한국어 개체명 인식 장치 및 방법
KR20200044208A (ko) * 2018-10-11 2020-04-29 주식회사 엔씨소프트 음절 기반의 벡터를 이용한 한글 오류 보정 방법 및 한글 오류 보정 시스템
KR20200062806A (ko) * 2018-11-27 2020-06-04 삼성생명보험주식회사 문서 이미지 상에서 글자를 인식하기 위한 방법

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017021589A (ja) 2015-07-10 2017-01-26 株式会社東芝 情報処理装置、方法及びプログラム
KR101777601B1 (ko) 2016-01-11 2017-09-13 경북대학교 산학협력단 초서체 또는 흘림체로 작성된 문자의 판별 방법 및 시스템
US20180349743A1 (en) * 2017-05-30 2018-12-06 Abbyy Development Llc Character recognition using artificial intelligence
KR20190065665A (ko) * 2017-12-04 2019-06-12 주식회사 솔루게이트 딥 러닝을 이용한 한국어 개체명 인식 장치 및 방법
KR20200044208A (ko) * 2018-10-11 2020-04-29 주식회사 엔씨소프트 음절 기반의 벡터를 이용한 한글 오류 보정 방법 및 한글 오류 보정 시스템
KR20200062806A (ko) * 2018-11-27 2020-06-04 삼성생명보험주식회사 문서 이미지 상에서 글자를 인식하기 위한 방법
KR20190008168A (ko) * 2018-12-28 2019-01-23 정우곤 인공지능 딥러닝 기술을 이용하여 예쁜글씨를 폰트화하는 과정에서 초/중/종성을 분리하고 이를 이용하여 템프리트에서 얻지 못하는 한글글자를 구성하는 기술

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220109821A (ko) 2021-01-29 2022-08-05 경북대학교 산학협력단 불균형 초서 인식을 위한 주목도를 이용한 로우샷 전이 방법, 이를 수행하기 위한 기록 매체 및 장치
KR20230054053A (ko) * 2021-10-15 2023-04-24 한국딥러닝 주식회사 딥러닝 기반의 문자 인식 시스템
KR102399945B1 (ko) * 2021-11-04 2022-05-19 홍진 유아 학습용 전자 장치의 광학 문자 인식 방법

Also Published As

Publication number Publication date
KR102223912B1 (ko) 2021-03-08

Similar Documents

Publication Publication Date Title
US11625539B2 (en) Extracting trigger words and arguments from text to obtain an event extraction result
TWI437449B (zh) 多重模式輸入方法及輸入方法編輯器系統
US8077974B2 (en) Compact stylus-based input technique for indic scripts
KR102223912B1 (ko) 다중 뉴럴 네트워크를 이용한 문자 인식을 위한 장치 및 그것의 동작 방법
CN111310441A (zh) 基于bert的语音识别后文本修正方法、装置、终端及介质
CN111144102B (zh) 用于识别语句中实体的方法、装置和电子设备
US20200279079A1 (en) Predicting probability of occurrence of a string using sequence of vectors
CN113688245B (zh) 基于人工智能的预训练语言模型的处理方法、装置及设备
US20220318500A1 (en) System and method for generating contextualized text using a character-based convolutional neural network architecture
CN110377882A (zh) 用于确定文本的拼音的方法、装置、系统和存储介质
CN113642316A (zh) 中文文本纠错方法、装置、电子设备及存储介质
CN110633456B (zh) 语种识别方法、装置、服务器及存储介质
US7533014B2 (en) Method and system for concurrent use of two or more closely coupled communication recognition modalities
CN101739143A (zh) 文字输入方法及系统
EP3869382A2 (en) Method and device for determining answer of question, storage medium and computer program product
CN113988063A (zh) 一种文本纠错方法、装置、设备及计算机可读存储介质
US20210224307A1 (en) Information processing device, information processing system, and computer program product
CN105683873A (zh) 容错输入法编辑器
US20150185868A1 (en) Brahmi phonemics based keyboard for providing textual inputs in indian languages
Rehman et al. ASCII based GUI system for arabic scripted languages: a case of urdu.
WO2021172786A1 (ko) 중의적 음절 데이터 처리 방법 및 장치
CN113204966A (zh) 语料增广方法、装置、设备及存储介质
KR102202524B1 (ko) 문자입력 방법 및 문자입력 시스템
CN109284012A (zh) 一种古彝文语言输入控制系统及方法、信息数据处理终端
KR102646607B1 (ko) 딥러닝 기반의 문자 인식 시스템

Legal Events

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