KR20200044179A - 문자 인식 장치 및 방법 - Google Patents

문자 인식 장치 및 방법 Download PDF

Info

Publication number
KR20200044179A
KR20200044179A KR1020180119146A KR20180119146A KR20200044179A KR 20200044179 A KR20200044179 A KR 20200044179A KR 1020180119146 A KR1020180119146 A KR 1020180119146A KR 20180119146 A KR20180119146 A KR 20180119146A KR 20200044179 A KR20200044179 A KR 20200044179A
Authority
KR
South Korea
Prior art keywords
character
characters
feature map
image
language
Prior art date
Application number
KR1020180119146A
Other languages
English (en)
Other versions
KR102235506B1 (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 KR1020180119146A priority Critical patent/KR102235506B1/ko
Publication of KR20200044179A publication Critical patent/KR20200044179A/ko
Application granted granted Critical
Publication of KR102235506B1 publication Critical patent/KR102235506B1/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/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]
    • G06K9/00402
    • G06K9/344
    • 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
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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/14Image acquisition
    • G06V30/148Segmentation of character regions
    • G06V30/153Segmentation of character regions using recognition of characters or words
    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/32Digital ink
    • G06K2209/01

Landscapes

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

Abstract

본 발명의 실시예에 따른 영상 인식 장치는, 영상으로부터 문자를 인식하여 디지털 문서를 생성하고, 생성된 디지털 문서를 생성하는 제어부, 및 디지털 문서를 출력하는 입출력부를 포함한다. 여기서, 제어부는 영상에 포함된 문자로부터 언어를 구분하는 언어 구분기, 구분된 언어의 문자를 문자의 기본단위로 분할하는 문자 분할기, 및 기본단위로 분할된 문자를 인식하고 인식된 문자를 사용하여 디지털 문서를 생성하는 문자 인식기를 포함하되, 언어 구분기, 문자 분할기 및 문자 인식기 각각은 문자 인식을 위해 콘볼루션 신경망을 사용하여 학습하거나 학습된 데이터를 사용한다.

Description

문자 인식 장치 및 방법{APPARATUS AND METHOD FOR RECOGNIZING CHARACTER}
본 발명은 문자 인식 장치 및 방법에 관한 것이다. 보다 상세하게는, 영상에 포함된 문자를 인식하여 디지털 문서로 변환하는 문자 인식 장치 및 방법에 관한 것이다.
일반적으로 광학문자인식(Optical Character Recognition, 이하 ‘OCR’이라 칭하기로 함)이란 스캐너를 통해 입력된 문서영상에서 문자에 해당하는 부분의 내용을 인식하는 기술을 말한다. 통계에 의하면 컴퓨터를 사용하는 시간 중 65% 이상의 시간을 기존 문서의 내용을 입력하거나 신규로 발생되는 정보를 입력하는데 사용하고 있다고 한다. 따라서, 이러한 정보 입력작업을 OCR 을 이용하여 자동화할 경우 시간적, 인력적, 경제적인 측면에서 막대한 이익을 창출할 수 있다.
이러한 OCR을 이용한 문자 인식 기술 중에서 한글을 인식하는 경우를 예를 들어 살펴보면, 한글은 자음과 모음이 섞여 있기 때문에 문자 인식을 위해서는 영상 내에서 자음과 모음의 위치를 구분하여야 한다. 이로 인해, 기존의 문자 인식 기술은 자음과 모음의 대략적인 평균 위치를 파악하여, 자음과 모음을 지정해서 각각 추출한 후에 자음과 모음을 따로 인식하여 최종적인 글자를 결정한다. 하지만, 이러한 기존의 문자 인식 기술은 폰트에 따라 변화하는 자음과 모음의 크기와 위치를 구분하는 데에 한계가 존재하며, 사용자가 직접 자음과 모음의 크기와 위치를 설정해야 하는 문제점이 있었다.
관련하여, 선행기술문헌인 한국공개특허 제10-2007-0099138호에서는 문자 인식 작업에 의해 판독된 문서를 검수하는 방법을 기재하고 있다. 선행기술문헌에서는 사용자가 수작업을 이용하여 생성된 문서의 신뢰성을 검증하기 위해 이미지 내에서의 문자와 인식대상 문서를 서로 비교하여 문서를 검수한다. 이와 같이, 기존의 문자 인식 기술은 전반적으로 사용자의 수작업에 상당히 의존하고 있는 것을 확인할 수 있다.
따라서 상술된 문제점을 해결하기 위한 기술이 필요하게 되었다.
한편, 전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.
본 명세서에서 개시되는 실시예들은 영상에 포함된 문자를 인식하여 디지털 문서로 변환하는 문자 인식 장치 및 방법을 제시하는데 목적이 있다.
본 명세서에서 개시되는 실시예들은 문자를 인식하기 위한 글자의 크기나 위치에 대해 사용자의 조작없이도 문자 인식이 가능한 문자 인식 장치 및 방법을 제시하는데 목적이 있다.
본 명세서에서 개시되는 실시예들은 영상 내 다양한 언어를 구분하여 문자를 인식할 수 있는 문자 인식 장치 및 방법을 제시하는데 목적이 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 일 실시예에 따르면, 문자 인식 장치는, 영상으로부터 문자를 인식하여 디지털 문서를 생성하고, 생성된 디지털 문서를 생성하는 제어부, 및 상기 디지털 문서를 출력하는 입출력부를 포함하고, 상기 제어부는, 영상에 포함된 문자로부터 언어를 구분하는 언어 구분기, 구분된 언어의 문자를 문자의 기본단위로 분할하는 문자 분할기, 및 기본단위로 분할된 문자를 인식하고 인식된 문자를 사용하여 상기 디지털 문서를 생성하는 문자 인식기를 포함하되, 상기 언어 구분기, 상기 문자 분할기 및 상기 문자 인식기 각각은 상기 문자 인식을 위해 콘볼루션 신경망을 사용하여 학습하거나 학습된 데이터를 사용한다.
다른 실시예에 따르면, 문자 인식 장치에 의해 수행되는 문자 인식 방법은, 영상에 포함된 문자로부터 언어를 구분하는 단계, 구분된 언어의 문자를 문자의 기본단위로 분할하는 단계, 및 기본단위로 분할된 문자를 인식하고 인식된 문자를 사용하여 디지털 문서를 생성하는 단계를 포함하되, 상기 구분하는 단계, 상기 분할하는 단계, 및 상기 디지털 문서를 생성하는 단계 각각은 콘볼루션 신경망을 사용하여 학습하거나 학습된 데이터를 사용하는 단계를 포함한다.
또 다른 실시예에 따르면, 문자 인식 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체로서, 영상에 포함된 문자로부터 언어를 구분하는 단계, 구분된 언어의 문자를 문자의 기본단위로 분할하는 단계, 및 기본단위로 분할된 문자를 인식하고 인식된 문자를 사용하여 디지털 문서를 생성하는 단계를 포함하되, 상기 구분하는 단계, 상기 분할하는 단계, 및 상기 디지털 문서를 생성하는 단계 각각은 콘볼루션 신경망을 사용하여 학습하거나 학습된 데이터를 사용하는 단계를 포함한다.
또 다른 실시예에 따르면, 문자 인식 장치에 기재된 방법을 수행하기 위해 매체에 저장된 프로그램으로서, 영상에 포함된 문자로부터 언어를 구분하는 단계, 구분된 언어의 문자를 문자의 기본단위로 분할하는 단계, 및 기본단위로 분할된 문자를 인식하고 인식된 문자를 사용하여 디지털 문서를 생성하는 단계를 포함하되, 상기 구분하는 단계, 상기 분할하는 단계, 및 상기 디지털 문서를 생성하는 단계 각각은 콘볼루션 신경망을 사용하여 학습하거나 학습된 데이터를 사용하는 단계를 포함한다.
전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 영상에 포함된 문자를 인식하여 디지털 문서로 변환하는 문자 인식 장치 및 방법을 제시할 수 있다.
본 발명의 과제 해결 수단 중 어느 하나에 의하면, 문자를 인식하기 위한 글자의 크기나 위치에 대해 사용자의 조작없이도 문자 인식이 가능한 문자 인식 장치 및 방법을 제시할 수 있다.
또한, 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 영상 내 다양한 언어를 구분하여 문자를 인식할 수 있는 문자 인식 장치 및 방법을 제시할 수 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 일 실시예에 따른 문자 인식 장치를 도시한 블록도이다.
도 2는 일 실시예에 따른 문자 인식 장치의 제어부를 도시한 블록도이다.
도 3은 일 실시예에 따른 언어 구분기를 도시한 블록도이다.
도 4는 일 실시예에 따른 문자 분할기를 도시한 블록도이다.
도 5는 일 실시예에 따른 한글을 인식하는 문자 인식기를 도시한 블록도이다.
도 6은 일 실시예에 따른 영문을 인식하는 문자 인식기를 도시한 블록도이다.
도 7은 일 실시예에 따른 문자 인식 장치의 문자 인식 방법을 도시한 순서도이다.
아래에서는 첨부한 도면을 참조하여 다양한 실시예들을 상세히 설명한다. 아래에서 설명되는 실시예들은 여러 가지 상이한 형태로 변형되어 실시될 수도 있다. 실시예들의 특징을 보다 명확히 설명하기 위하여, 이하의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서 자세한 설명은 생략하였다. 그리고, 도면에서 실시예들의 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 구성이 다른 구성과 "연결"되어 있다고 할 때, 이는 ‘직접적으로 연결’되어 있는 경우뿐 아니라, ‘그 중간에 다른 구성을 사이에 두고 연결’되어 있는 경우도 포함한다. 또한, 어떤 구성이 어떤 구성을 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 그 외 다른 구성을 제외하는 것이 아니라 다른 구성들을 더 포함할 수도 있음을 의미한다.
이하 첨부된 도면을 참고하여 실시예들을 상세히 설명하기로 한다.
도 1은 일 실시예에 따른 문자 인식 장치를 도시한 블록도이다.
도 1을 참조하면, 문자 인식 장치(100)는 네트워크를 통해 원격지의 서버에 접속하거나, 다른 전자 장치 또는 서버와 연결 가능한 전자 장치로 구현되거나 서버로 구현될 수 있다.
이때, 전자 장치는 컴퓨터나 휴대용 단말기, 텔레비전, 웨어러블 디바이스(Wearable Device) 등으로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(desktop), 랩톱(laptop)등을 포함하고, 휴대용 단말기는 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, PCS(Personal Communication System), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant),GSM(Global System for Mobile communications), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), Wibro(Wireless Broadband Internet), 스마트폰(Smart Phone), 모바일WiMAX(Mobile Worldwide Interoperability for Microwave Access) 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다. 또한, 텔레비전은 IPTV(Internet Protocol Television), 인터넷 TV(Internet Television), 지상파 TV, 케이블 TV 등을 포함할 수 있다. 나아가 웨어러블 디바이스는 예를 들어, 시계, 안경, 액세서리, 의복, 신발 등 인체에 직접 착용 가능한 타입의 정보처리장치로서, 직접 또는 다른 정보처리장치를 통해 네트워크를 경유하여 원격지의 서버에 접속하거나 타 단말과 연결될 수 있다.
문자 인식 장치(100)는 입출력부(110), 통신부(120), 저장부(130) 및 제어부(140)를 포함할 수 있다.
입출력부(110)는 사용자로부터 입력을 수신하기 위한 입력부와, 작업의 수행 결과 또는 문자 인식 장치(100)의 상태 등의 정보를 표시하기 위한 출력부를 포함할 수 있다. 예를 들어, 입출력부(110)는 사용자 입력을 수신하는 조작 패널 및 화면을 표시하는 디스플레이 패널 등을 포함할 수 있다.
구체적으로, 입력부는 키보드, 물리 버튼, 터치 스크린, 카메라 또는 마이크 등과 같이 다양한 형태의 사용자 입력을 수신할 수 있는 장치들을 포함할 수 있다. 또한, 출력부는 디스플레이 패널 또는 스피커 등을 포함할 수 있다. 다만, 이에 한정되지 않고 입출력부(110)는 다양한 입출력을 지원하는 구성을 포함할 수 있다. 입출력부(110)는 디지털화하기 위해 문자가 표시된 영상을 입력받을 수도 있다.
통신부(120)는 다른 디바이스 또는 네트워크와 유무선 통신을 수행할 수 있다. 이를 위해, 통신부(120)는 다양한 유무선 통신 방법 중 적어도 하나를 지원하는 통신 모듈을 포함할 수 있다. 예를 들어, 통신 모듈은 칩셋(chipset)의 형태로 구현될 수 있다.
통신부(120)가 지원하는 무선 통신은, 예를 들어 Wi-Fi(Wireless Fidelity), Wi-Fi Direct, 블루투스(Bluetooth), UWB(Ultra Wide Band) 또는 NFC(Near Field Communication) 등일 수 있다. 또한, 통신부(120)가 지원하는 유선 통신은, 예를 들어 USB 또는 HDMI(High Definition Multimedia Interface) 등일 수 있다. 상술된 통신은 예시일 뿐이며, 문자 인식 장치(100)가 통신을 수행할 수 있도록 하는 각종 통신 기법이 가능하다.
저장부(130)는 파일, 애플리케이션, 및 프로그램 등과 같은 다양한 종류의 데이터가 설치 및 저장될 수 있다. 저장부(130)에 저장된 데이터는 후술될 제어부(140)에 의해 액세스되어 이용되거나, 또는 제어부(140)에 의해 새로운 데이터가 저장될 수 있다. 또한 저장부(130)는 제어부(140)에 의해 실행될 수 있는 프로그램을 저장할 수 있다. 일 실시예에 따르면, 저장부(130)에는 복수의 인공 신경망 또는 인공 신경망이 저장될 수 있으며, 영상으로부터 문자를 인식하여 디지털화하기 위한 프로그램이 저장될 수 있다. 여기서, 저장부(130)에 저장된 인공 신경망은 콘볼루션 신경망과 순환 신경망을 포함할 수 있으며, 인공 신경망을 사용하여 학습된 데이터들이 저장될 수도 있다.
한편, 제어부(140)는 문자 인식 장치(100)의 전체적인 동작을 제어하며, CPU 등과 같은 프로세서를 포함할 수 있다. 제어부(140)는 입출력부(110)를 통해 수신한 유저 입력에 대응되는 동작을 수행하도록 문자 인식 장치(100)에 포함된 다른 구성들을 제어할 수 있다.
본 실시예에 따르면, 제어부(140)는 입력된 영상으로부터 문자를 인식하여 디지털 문서를 생성하고, 디지털 문서를 입출력부(110)를 통해 출력할 수 있다. 제어부(140)는 영상에 포함된 문자의 언어를 구분할 수 있다. 예를 들어, 제어부(140)는 입출력부(110)을 통해 문자가 표시된 영상을 수신하거나 저장부(130)를 통해 문자가 표시된 영상을 로드(load)할 수 있다.
제어부(140)는 구분된 언어 각각에 대해 문자의 기본단위로 분할된 문자를 인식하고, 인식된 문자를 사용하여 디지털 문서를 생성할 수 있다. 예를 들어, 한글의 경우, 음절이 기본단위가 되며, 알파벳의 경우는 알파벳 문자 각각이 기본단위가 될 수 있다.
특히, 제어부(140)는 문자 인식을 위해 콘볼루션 신경망을 사용하여 학습하거나 콘볼루션 신경망으로 학습된 데이터를 사용할 수 있다. 제어부(140)는 순환 신경망 등에 비해 문자 인식 성능이 우수한 콘볼루션 신경망을 전반적으로 사용하며, 순환 신경망은 문자의 분할에만 콘볼루션 신경망과 함께 사용될 수 있다.
이와 같이, 제어부(140)는 문자의 인식에 콘볼루션 신경망 또는 순환 신경망을 사용함에 따라 사용자의 추가적인 조작 없이도 문자를 자동으로 인식할 수 있다.
하기에서는 도 2를 참조하여, 제어부(140) 의 구조를 상세히 설명하기로 한다.
도 2는 일 실시예에 따른 제어부를 도시한 블록도이다.
도 2를 참조하면, 제어부(140)는 언어 구분기(210), 문자 분할기(220) 및 문자 인식기(230)를 포함할 수 있다.
언어 구분기(210)는 입력된 영상에 포함된 언어를 구분할 수 있다. 언어 구분기(210)는 언어를 구분하기 위해 콘볼루션 신경망을 이용할 수 있다. 언어 구분기(210)는 영상을 콘볼루션 신경망의 복수의 레이어(층), 즉 복수의 콘볼루션 레이어로 영상에 포함된 언어를 판정하기 위한 정보를 생성할 수 있다. 언어 구분기(210)는 판정을 위한 정보를 평균하여 계산할 수 있으며, 시그모이드(sigmoid) 연산 후에 평균을 계산할 수 있다. 언어 구분기(210)는 평균이 계산되면, 계산된 평균값을 사용하여 언어를 판정할 수 있다.
예를 들어, 언어 구분기(210)는 두 개의 언어를 판정할 수 있다고 가정하며, 한글을 포함한 영상에 대해 ‘0’의 값을 출력하도록 설정하고, 영어를 포함한 영상에 대해 ‘1’의 값을 출력하도록 설정할 수 있다. 만약, 언어 구분기(210)는 두 개 이상의 언어를 사용하는 경우, 출력되는 값을 증가시킬 수 있다. 예를 들어, 언어 구분기(210)는 세 개의 언어를 사용하는 경우, 세 번째의 언어(예를 들어, 일본어)에 ‘2’의 값을 출력하도록 하고, 네 개의 언어를 사용하는 경우, 네 번째의 언어(예를 들어, 중국어)에 ‘3’의 값을 출력하도록 값을 증가시켜 출력되도록 할 수 있다.
이하에서는 언어 구분기(210)가 ‘한글과’의 문자를 포함한 영상(201)과 “CNN”의 문자를 포함한 영상(202)을 수신하는 경우에 문자 인식이 수행되는 과정에 대해서 설명한다. 언어 구분기(210)는 영상에 포함된 문자가 한글인 경우 0에 가까운 값을 출력하고, 영상에 포함된 문자가 영어인 경우 1에 가까운 값을 출력하도록 설정할 수 있으며, 영상으로부터 획득된 값을 기준으로 언어를 구분할 수 있다.
언어 구분기(210)는 두 개 이상의 언어를 구분할 수 있는 경우, 스위치(미도시)를 포함할 수 있으며, 입력된 영상을 스위칭시켜 구분된 언어에 대응되는 문자 분할기(220)로 출력할 수 있다.
문자 분할기(220)는 영상 내에서 문자의 기본단위로 문자의 경계 영역을 구분하여 문자를 분할할 수 있다. 문자 분할기(220)는 문자를 분할하기 위해 콘볼루션 신경망과 순환 신경망이 연결된 구조를 사용할 수 있다. 여기서, ‘기본단위’는 문자를 구분하기 위한 하나의 완성된 문자 단위 하나를 의미하며, 예를 들어, 한글에서는 음절, 영어에서는 알파벳, 일본어에서는 히라가나 등으로 구분될 수 있다.
문자 분할기(220)는 복수의 언어에 대해 문자를 분할하는 경우, 복수의 언어 각각에 대응되는 문자 분할기(221, 222)를 포함할 수 있다. 예를 들어, 제 1 문자 분할기(221)가 한글의 문자를 분할하는 경우, ‘한글과’의 문자를 포함한 영상(201)은 제 1 문자 분할기(221)에서 음절 단위로 분할될 수 있다. 제 1 문자 분할기(221)는 음절 단위로 경계선을 구분하여 ‘한’, ‘글’, ‘과’로 분할된 문자(203)를 출력할 수 있다. 또한, 제 n 문자 분할기(222)가 영어의 문자를 분할하는 경우, ‘CNN’의 문자를 포함한 영상(202)은 제 n 문자 분할기(222)에서 알파벳 단위로 분할될 수 있다. 제 n 문자 분할기(222)는 알파벳 단위로 경계선을 구분하여 ‘C’, ‘N’, ‘N’으로 분할된 문자(204)를 출력할 수 있다.
문자 인식기(230)는 기본단위로 분할된 문자를 인식할 수 있으며, 인식된 문자를 사용하여 디지털 문서를 생성할 수 있다. 문자 인식기(230)는 문자를 인식하기 위해 콘볼루션 신경망을 사용할 수 있다. 문자 인식기(230)는 기본단위로 분할된 문자와 유사한 클래스의 문자에 대응되는 특징맵을 비교하여 문자를 인식할 수 있다.
문자 인식기(230)는 문자 분할기(220)와 같이, 복수의 언어에 대해 문자를 인식하는 경우, 복수의 언어 각각에 대응되는 문자 인식기(231, 232)를 포함할 수 있다. 예를 들어, 제 1 문자 인식기(231)가 한글의 문자를 인식하는 경우, ‘한’, ‘글’, ‘과’로 음절 각각을 인식할 수 있다. 또한, 제 n 문자 인식기(232)가 영어의 문자를 인식하는 경우, ‘C’, ‘N’, ‘N’으로 알파벳 각각을 인식할 수 있다. 한편, 제 1 문자 인식기(231)의 경우, 한글을 인식할 때, 문자, 즉 음절 내 초성, 중성 및 종성 등을 구분하여 인식할 수 있으나, 초성, 중성 및 종성의 구분없이 문자 자체로 한 번에 인식을 할 수도 있다.
문자 인식기(230)는 인식된 문자를 출력할 수 있으며, 인식된 문자를 디지털 문서로 문서화하여 출력할 수 있다.
한편, 언어 구분기(210)는 마침표, 느낌표, 물음표, 따옴표, 괄호, 부등호 및 연산기호 등으로 구분되는 특수문자, 또는 숫자 등은 인접한 문자에 대응되는 언어를 처리하는 모듈, 즉 문자 분할기(221, 222)와 문자 인식기(231, 231)를 통해 처리되도록 구분할 수 있다. 예를 들어 도 2를 참조하여 설명된 실시예에서, 한글과 함께 표시된 특수문자는 제 1 문자 분할기(221)와 제 1 문자 인식기(231)를 통해 처리되도록 하고, 영어와 함께 표시된 특수문자는 제 n 문자 분할기(222)와 제 2 문자 인식기(232)를 통해 처리되도록 할 수 있다.
도 3은 일 실시예에 따른 언어 구분기를 도시한 블록도이다.
도 3을 참조하면, 언어 구분기(210)는 복수의 콘볼루션 레이어(310, 320, 330, 340)와 평균 연산기(350)를 포함할 수 있다.
언어 구분기(210)는 제 1 콘볼루션 레이어(310) 내지 제 4 콘볼루션 레이어(340)를 포함할 수 있다.
예를 들어, 제 1 콘볼루션 레이어(310)는 소정 크기(nxn(예를 들어, 3x3))를 갖는 커널(kernel)을 사용할 수 있으며, 입력된 영상(301)으로부터 제 1 특징맵(302)을 생성할 수 있다. 이때, 제 1 특징맵(302)은 세로 성분(H), 가로 성분(W) 및 채널 성분(C)으로 구성될 수 있으며, H x W x C의 형태로 표시할 수 있다. 예를 들어, 제 1 콘볼루션 레이어(310)에서 출력되는 제 1 특징맵(302)은 소정 개수의 채널(C=32)을 갖고, ‘16 x W x 16’로 표시할 수 있다. 따라서, 입력된 영상(301)은 ‘32 x W x 1’로 표시할 수 있다.
제 2 콘볼루션 레이어(320)는 제 1 특징맵(302)을 입력받고, 입력된 제 1 특징맵(302)으로부터 제 2 특징맵(303)을 생성할 수 있다.
예를 들어, 제 2 콘볼루션 레이어(320)는 소정 크기(nxn(예를 들어, 3x3))를 갖는 커널을 사용할 수 있으며, 입력된 제 1 특징맵(302)으로부터 제 2 특징맵(303)을 생성할 수 있다. 예를 들어, 제 2 콘볼루션 레이어(320)에서 출력되는 제 2 특징맵(303)은 소정 개수의 채널(C=64)을 갖고, ‘4 x W x 64’로 표시할 수 있다.
제 3 콘볼루션 레이어(330)는 제 2 특징맵(303)을 입력받고, 입력된 제 2 특징맵(303)으로부터 제 3 특징맵(304)을 생성할 수 있다.
예를 들어, 제 3 콘볼루션 레이어(330)는 소정 크기(nxn(예를 들어, 1x1))를 갖는 커널을 사용할 수 있으며, 입력된 제 2 특징맵(303)으로부터 제 3 특징맵(304)을 생성할 수 있다. 예를 들어, 제 3 콘볼루션 레이어(330)에서 출력되는 제 3 특징맵(304)은 소정 개수의 채널(C=128)을 갖고, ‘1 x W x 128’로 표시할 수 있다.
제 4 콘볼루션 레이어(340)는 제 3 특징맵(304)을 입력받고, 입력된 제 3 특징맵(304)으로부터 제 4 특징맵(305)을 생성할 수 있다.
예를 들어, 제 4 콘볼루션 레이어(340)는 소정 크기(nxn(예를 들어, 1x1))를 갖는 커널을 사용할 수 있으며, 입력된 제 3 특징맵(304)으로부터 제 4 특징맵(305)을 생성할 수 있다. 예를 들어, 제 4 콘볼루션 레이어(340)에서 출력되는 제 4 특징맵(305)은 소정 개수의 채널(C=1)을 갖고, ‘1 x W x 1’로 나타낼 수 있다. 즉, 마지막에 위치한 제 4 콘볼루션 레이어(340)는 W 개수에 대응되는 숫자가 나열되는 형태의 값을 획득할 수 있다.
제 1 콘볼루션 레이어(310) 내지 제 4 콘볼루션 레이어(340)는 직렬로 연결되어 이전 콘볼루션 레이어의 출력을 입력으로 하고, 현재의 출력이 다음의 콘볼루션 레이어의 입력으로 제공될 수 있다. 제 1 콘볼루션 레이어(310) 내지 제 4 콘볼루션 레이어(340)는 콘볼루션 신경망의 각 레이어로서 입력된 영상에 대해 언어 구분을 위한 특징맵을 생성하고, 생성된 특징맵을 출력한다.
한편, 제 1 콘볼루션 레이어(310) 내지 제 4 콘볼루션 레이어(340)의 개수, 생성되는 특징맵의 채널 개수, 사용되는 커널의 크기 등은 예시적으로 설명된 것으로 다른 다양한 개수와 크기로 설정될 수 있다.
평균 연산기(350)는 제 4 특징맵(305)을 평균하여 0 내지 1 사이의 값을 획득할 수 있다. 평균 연산기(350)는 시그모이드(sigmoid) 연산 후에 평균값을 계산할 수 있다. 이때, 평균 연산기(350)는 제 4 특징맵(305)의 값들을 평균하기 때문에 가로 성분(W)의 길이에 관계없이 하나의 숫자값을 결과값을 출력할 수 있다.
평균 연산기(350)는 두 개의 언어의 사용에 따라 평균값이 0~1 사이의 값을 출력하는 경우, 언어를 구분하기 위해 기준값을 사용할 수 있다. 예를 들어, 0~1 사이의 평균값으로부터 언어를 구분하는 경우, 기준값은 0.5로 설정될 수 있다. 이때, 평균 연산기(350)는 평균값을 기준값과 비교할 수 있다. 평균 연산기(350)는 평균값이 기준값인 0.5보다 작은 경우, ‘0’에 가까운 값을 갖기 때문에 입력된 영상(301)의 언어를 한글로 구분하고, 평균값이 기준값인 0.5보다 큰 경우, ‘1’에 가까운 값을 갖기 때문에 입력된 영상(301)의 언어를 영어로 구분할 수 있다.
평균 연산기(350)는 두 개 이상의 언어를 구분하는 경우, 스위치(미도시)에 연결되거나 스위치를 포함하여 각 언어에 대응되는 문자 분할기(220)로 입력되기 위한 영상을 출력할 수 있다.
도 4는 일 실시예에 따른 문자 분할기를 도시한 블록도이다.
도 4를 참조하면, 문자 분할기(220)는 복수의 콘볼루션 레이어(410, 420, 430, 440, 450, 460), 양방향장단기메모리(Bidirectional LSTM, 이하 ‘BDLSTM’이라 칭하기로 함)(470), 전체 연결 레이어(480) 및 문자 분할 판정기(490)를 포함할 수 있다.
복수의 콘볼루션 레이어(410, 420, 430, 440, 450, 460)는 직렬로 연결되어, 이전 콘볼루션 레이어의 출력이 다음의 콘볼루션 레이어의 입력으로 제공될 수 있다. 여기서도, 특징맵의 가로 성분(W)은 고정될 수 있다.
제 1 콘볼루션 레이어(410) 내지 제 3 콘볼루션 레이어(430)는 소정 크기(예를 들어, 3 x 3)를 갖는 커널을 사용할 수 있으며, 제 4 콘볼루션 레이어(440) 내지 제 6 콘볼루션 레이어(460)는 소정 크기(예를 들어, 1 x 1)를 갖는 커널을 사용할 수 있다.
또한, 제 1 콘볼루션 레이어(410) 내지 제 6 콘볼루션 레이어(460)의 채널은 각각 32, 64, 256, 256, 512, 512로 나타낼 수 있으며, 단어 단위(“지미”)의 문자를 포함한 영상(401)을 입력받고, 입력받은 영상(401)에서 음절과 특수문자(따옴표(“, ”))를 구분하기 위한 특징맵을 생성할 수 있다. 제 1 콘볼루션 레이어(410) 내지 제 6 콘볼루션 레이어(460)는 도 3에 도시된 콘볼루션 레이어들의 연결 구조와 유사하고, 특징맵을 생성하기 때문에 구체적인 동작에 대한 설명은 생략한다.
한편, 제 6 콘볼루션 레이어(460)는 제 5 특징맵(406)으로부터 제 6 특징맵(407)을 생성할 수 있다.
BDLSTM(470)은 제 6 특징맵(407)을 순차적인(sequential) 데이터의 구조로 변환할 수 있다. BDLSTM(470)은 영상을 차례대로 탐색할 수 있도록 한다. 이때, BDLSTM(470)은 순환 신경망을 구현한 것으로, 복수의 콘볼루션 레이어들로 구성된 콘볼루션 신경망에 연결된다.
전체 연결 레이어(FC(Fully Connected) Layer)(480)는 BDLSTM(470)에서 출력되는 순차적인 데이터를 사용하여 문자의 경계 판단을 위한 정보를 가로 방향 픽셀 단위로 처리할 수 있다.
문자 분할 판정기(490)는 가로 방향 픽셀 단위로 처리된 정보를 사용하여 단위 문자의 경계 영역을 구분할 수 있다. 이를 통해, 문자 분할 판정기(490)는 입력된 단어(“지미”)를 포함한 영상(401)로부터 ‘“’, ‘지’, ‘미’, ‘”’로 문자를 분할하기 위한 정보인 ‘010010010’을 획득할 수 있다. 또한, 점선으로 표시된 바와 같이 ‘1’로 표시된 부분에서 문자를 구분하기 위한 경계 정보를 확인할 수 있다.
문자 분할 판정기(490)는 영상 내에서 문자를 분할할 수 있으며, 예문을 통해 제시된 언어는 한글이어서 음절 단위로 분할할 수 있다.
도 5는 일 실시예에 따른 한글을 인식하는 문자 인식기를 도시한 블록도이다.
도 5를 참조하면, 문자 인식기(230)는 제로 패딩기(510), 복수의 콘볼루션 레이어들(520, 530, 541~543, 551~553, 561~563), 복수의 전체 연결 레이어들(571~573) 및 복수의 정규화 처리기(581~583)를 포함할 수 있다.
제로 패딩기(510)는 소정 크기로 결정된 영역 내의 중심에 분할된 문자를 배치하고, 문자가 배치되지 않은 나머지 영역에 모두 ‘제로(0)’을 삽입한다. 영상 내에서 언어의 종류, 폰트, 특수문자 등으로 인해 분할된 문자의 크기는 다른 비율을 가질 수 있다. 이로 인해, 제로 패딩기(510)는 다른 비율을 갖는 문자를 모두 동일한 비율을 갖도록 분할된 문자의 크기를 동일하게 조정하기 위해 제로 패딩을 할 수 있다.
제로 패딩기(510)는 후단에 위치한 전체 연결 레이어들(571~573) 각각이 미리 결정된 크기를 갖는 입력 데이터만을 수신하여 처리할 수 있기 때문에 입력의 크기를 일정하게 유지시키기 위해 ‘제로(0)’를 삽입할 수 있다.
제로 패딩기(510)는 32 x 44 x 1의 미리 결정된 크기를 갖고, 모두 ‘0’의 값이 설정된 템플릿에 입력되는 영상, 즉 분할된 문자를 중심에 배치하여 연산을 수행하도록 할 수 있다.
예를 들어, 복수의 콘볼루션 레이어들(520, 530, 541~543, 551~553, 561~563)은 각각 3x3 커널로 구성될 수 있으며, 콘볼루션 레이어들(520, 530, 541~543, 551~553, 561~563)은 순차적으로 32, 64, 128, 256, 256 채널을 가질 수 있다. 또한, 콘볼루션 레이어들(520, 530, 541~543, 551~553)은 순차적으로 32x44x1의 크기를 갖는 구분된 문자를 입력받아 16 x 22 x 32(제 1 특징맵), 8 x 11 x 64(제 2 특징맵), 4 x 5 x 128(제 3 특징맵), 2 x 2 x 256(제 4 특징맵)을 출력할 수 있다.
제1 및 제2 콘볼루션 레이어들(520, 530)은 순차적으로 연결된 구조를 갖지만 제 3 콘볼루션 레이어(541~543), 제 4 콘볼루션 레이어(551~553) 및 제 5 콘볼루션 레이어(561~563)는 한글의 초성, 중성, 종성 각각에 대응되는 3 개의 라인으로 구분될 수 있다. 콘볼루션 레이어들(541, 551, 561)은 한글의 ‘초성’을 인식하고, 콘볼루션 레이어들(542, 552, 562)은 한글의 ‘중성’을 인식하고, 콘볼루션 레이어들(543, 553, 563)은 한글의 ‘종성’을 인식할 수 있다.
콘볼루션 레이어들(541~543, 551~553, 561~563)는 초기 학습 단계에서는 하나의 라인만을 사용하여 문자를 인식할 수 있으며, 학습량이 증가할수록 병렬로 분할된 라인을 모두 사용하여 문자를 인식할 수 있다.
복수의 전체 연결 레이어들(571~573)은 콘볼루션 레이어들(561~563)로부터 출력되는 특징맵에 대응되는 문자를 판별할 수 있다.
복수의 정규화 처리기(581~583)는 판별된 문자를 확률적인 값으로 정규화하여 대응되는 문자를 인식할 수 있다. 복수의 정규화 처리기(581~583)는 분할된 문자 ‘조’에 대해 각각 초성(ㅈ), 중성(ㅗ), 종성(없음(none))으로 인식할 수 있다.
복수의 정규화 처리기(581~583)를 통해 인식된 문자는 디지털 문서로 출력될 수 있다.
도 6은 일 실시예에 따른 영문을 인식하는 문자 인식기를 도시한 블록도이다.
도 6을 참조하면, 문자 인식기(230)는 제로 패딩기(610), 복수의 콘볼루션 레이어들(620, 630, 640, 650, 660), 전체 연결 레이어(670) 및 정규화 처리기(680)를 포함할 수 있다.
도 6에 도시된 문자 인식기(230)는 도 5의 문자 인식기(230)의 구조와 유사한 구조를 가지며, 병렬 구조가 아닌 점을 제외하면 전반적으로 유사한 기능을 기재하고 있으므로 여기서 상세한 설명은 생략한다.
예를 들어, 영어와 같은 알파벳은 한글과 같이 구분될 필요가 없으므로, 병렬 구조를 사용하지 않는다.
전반적으로 도 5에서와 유사한 구조를 가지며, 병렬 구조가 아닌 단일 구조를 갖는 차이점을 갖는다. 도 6에 도시된 영어와 같은 알파벳은 하나의 라인을 통해서도 문자를 인식할 수 있다.
도 7은 일 실시예에 따른 문자 인식 장치의 문자 인식 방법을 도시한 순서도이다.
도 7을 참조하면, 문자 인식 장치(100)는 영상으로부터 영상에 포함된 문자에 대응되는 언어를 구분할 수 있다(S710). 문자 인식 장치(100)는 언어 구분을 위해 복수의 콘볼루션 레이어로 구성된 콘볼루션 신경망을 사용할 수 있다.
문자 인식 장치(100)는 구분된 언어를 문자의 기본단위를 기준으로 분할할 수 있다(S720). 문자 인식 장치(100)는 문자를 분할하기 위해 복수의 콘볼루션 레이어로 구성된 콘볼루션 신경망을 사용하며, 콘볼루션 신경망과 순환 신경망이 연결된 구조를 사용할 수 있다.
문자 인식 장치(100)는 분할된 문자를 인식할 수 있다(S730). 문자 인식 장치(100)는 문자를 인식하기 위해 복수의 콘볼루션 레이어로 구성된 콘볼루션 순환 신경망을 사용할 수 있다.
문자 인식 장치(100)는 인식된 문자를 디지털화하여 출력할 수 있다(S740).
이와 같은, 문자 인식 장치(100)는 순환 신경망을 문자의 분할에만 사용하고, 실제 전반적인 문자 인식에는 순환 신경망에 비해 문자 인식 성능이 우수한 콘볼루션 순환 신경망을 사용한다. 이로 인해, 문자 인식 장치(100)는 문자 인식 성능이 향상될 수 있으며, 영상에 삽입될 수 있는 잡음으로부터의 영향도 최소화할 수 있다.
본 실시예에 따른, 문자 인식 장치(100)는 문자를 포함한 영상으로부터 문자를 인식하기 위한 자동문자인식(OCR) 기술로 활용될 수 있다. 문자 인식 장치(100)는 언어별로 구분된 신경망 구조를 사용하기 때문에, 다양한 언어에 대해 문자 인식을 할 수 있다. 또한, 문자 인식 장치(100)는 새로운 문자에 대한 인식이 필요한 경우에도, 해당 문자의 언어에 대응되는 신경망 구조를 학습시켜 병렬로 간단히 추가할 수 있어 다양한 언어에 대한 확장성을 보장할 수 있다.
본 실시예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(field programmable gate array) 또는 ASIC 와 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램특허 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다.
구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로부터 분리될 수 있다.
뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU 들을 재생시키도록 구현될 수도 있다
또한 본 발명의 일실시예에 따르는 문자 인식 방법은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 컴퓨터 프로그램(또는 컴퓨터 프로그램 제품)으로 구현될 수도 있다. 컴퓨터 프로그램은 프로세서에 의해 처리되는 프로그래밍 가능한 기계 명령어를 포함하고, 고레벨 프로그래밍 언어(High-level Programming Language), 객체 지향 프로그래밍 언어(Object-oriented Programming Language), 어셈블리 언어 또는 기계 언어 등으로 구현될 수 있다. 또한 컴퓨터 프로그램은 유형의 컴퓨터 판독가능 기록매체(예를 들어, 메모리, 하드디스크, 자기/광학 매체 또는 SSD(Solid-State Drive) 등)에 기록될 수 있다.
따라서 본 발명의 일실시예에 따르는 문자 인식 방법은 상술한 바와 같은 컴퓨터 프로그램이 컴퓨팅 장치에 의해 실행됨으로써 구현될 수 있다. 컴퓨팅 장치는 프로세서와, 메모리와, 저장 장치와, 메모리 및 고속 확장포트에 접속하고 있는 고속 인터페이스와, 저속 버스와 저장 장치에 접속하고 있는 저속 인터페이스 중 적어도 일부를 포함할 수 있다. 이러한 성분들 각각은 다양한 버스를 이용하여 서로 접속되어 있으며, 공통 머더보드에 탑재되거나 다른 적절한 방식으로 장착될 수 있다.
여기서 프로세서는 컴퓨팅 장치 내에서 명령어를 처리할 수 있는데, 이런 명령어로는, 예컨대 고속 인터페이스에 접속된 디스플레이처럼 외부 입력, 출력 장치상에 GUI(Graphic User Interface)를 제공하기 위한 그래픽 정보를 표시하기 위해 메모리나 저장 장치에 저장된 명령어를 들 수 있다. 다른 실시예로서, 다수의 프로세서 및(또는) 다수의 버스가 적절히 다수의 메모리 및 메모리 형태와 함께 이용될 수 있다. 또한 프로세서는 독립적인 다수의 아날로그 및(또는) 디지털 프로세서를 포함하는 칩들이 이루는 칩셋으로 구현될 수 있다.
또한 메모리는 컴퓨팅 장치 내에서 정보를 저장한다. 일례로, 메모리는 휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 다른 예로, 메모리는 비휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 또한 메모리는 예컨대, 자기 혹은 광 디스크와 같이 다른 형태의 컴퓨터 판독 가능한 매체일 수도 있다.
그리고 저장장치는 컴퓨팅 장치에게 대용량의 저장공간을 제공할 수 있다. 저장 장치는 컴퓨터 판독 가능한 매체이거나 이런 매체를 포함하는 구성일 수 있으며, 예를 들어 SAN(Storage Area Network) 내의 장치들이나 다른 구성도 포함할 수 있고, 플로피 디스크 장치, 하드 디스크 장치, 광 디스크 장치, 혹은 테이프 장치, 플래시 메모리, 그와 유사한 다른 반도체 메모리 장치 혹은 장치 어레이일 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 문자 인식 장치 110: 입출력부
120: 통신부 130: 저장부
140: 제어부 210: 언어 구분기
220, 221, 222: 문자 분할기 230, 231, 232: 문자 인식기
310, 320, 330, 340: 콘볼루션 레이어들
350: 평균 연산기
410, 420, 430, 440, 450, 460: 콘볼루션 레이어들
470: 양방향장단기메모리 480: 전체 연결 레이어
490: 문자 분할 판정기 510: 제로패딩기
520, 530, 541, 542, 543, 551, 552, 553, 561, 562, 563: 콘볼루션 레이어들
571, 572, 573: 전체 연결 레이어들
581, 582, 583: 정규화 처리기들
610: 제로 패딩기
620, 630, 640, 650, 660: 콘볼루션 레이어들
670: 전체 연결 레이어 680: 정규화 처리기

Claims (14)

  1. 영상으로부터 문자를 인식하여 디지털 문서를 생성하고, 생성된 디지털 문서를 생성하는 제어부; 및
    상기 디지털 문서를 출력하는 입출력부를 포함하고,
    상기 제어부는,
    영상에 포함된 문자로부터 언어를 구분하는 언어 구분기;
    구분된 언어의 문자를 문자의 기본단위로 분할하는 문자 분할기; 및
    기본단위로 분할된 문자를 인식하고 인식된 문자를 사용하여 상기 디지털 문서를 생성하는 문자 인식기를 포함하되,
    상기 언어 구분기, 상기 문자 분할기 및 상기 문자 인식기 각각은 상기 문자 인식을 위해 콘볼루션 신경망을 사용하여 학습하거나 학습된 데이터를 사용하는 문자 인식 장치.
  2. 제 1 항에 있어서,
    상기 문자 분할기는,
    상기 콘볼루션 신경망과 순환 신경망이 연결된 구조를 사용하여 상기 문자를 분할하는 문자 인식 장치.
  3. 제 1 항에 있어서,
    상기 언어 구분기는,
    상기 영상으로부터 소정 개수의 채널로 구성된 특징맵을 생성하여 다음 콘볼루션 레이어로 전달하며, 직렬로 연결된 구조를 갖는 복수의 콘볼루션 레이어; 및
    상기 복수의 콘볼루션 레이어 중에서 마지막 콘볼루션 레이어의 특징맵으로부터 평균값을 계산하고, 계산된 평균값을 미리 설정된 임계값과 비교하여 상기 영상에 포함된 언어를 구분하는 평균 연산기를 포함하는 문자 인식 장치.
  4. 제 1 항에 있어서,
    상기 문자 분할기는,
    상기 영상으로부터 소정 개수의 채널로 구성된 특징맵을 생성하여 다음 콘볼루션 레이어로 전달하며, 직렬로 연결된 구조를 갖는 복수의 콘볼루션 레이어;
    상기 복수의 콘볼루션 레이어 중에서 마지막 콘볼루션 레이어의 특징맵을 순차적인 데이터의 구조로 변환하는 양방향장단기메모리(BDLSTM);
    상기 문자의 경계 판단을 위한 정보를 시간 단위로 처리하는 제 1 전체 연결 레이어; 및
    상기 시간 단위로 처리된 정보를 사용하여 단위 문자의 경계 영역을 구분하는 분할 판정기를 포함하는 문자 인식 장치.
  5. 제 3 항과 제 4 항 중 어느 한 항에 있어서,
    상기 복수의 콘볼루션 레이어 각각은,
    입력된 영상 또는 특징맵에 대해 높이 성분(H), 가로 성분(W) 및 채널 성분(C) 중에서 가로 성분(W)을 고정시켜, 상기 복수의 콘볼루션 레이어 각각에서 출력되는 특징값의 가로 성분(W)을 동일한 값으로 유지시키는 문자 인식 장치.
  6. 제 1 항에 있어서,
    상기 문자 인식기는,
    상기 분할된 문자에 제로 패딩을 하는 제로 패딩부;
    상기 제로 패딩된 문자로부터 소정 개수의 채널로 구성된 특징맵을 생성하여 다음 콘볼루션 레이어로 전달하며, 직렬로 연결된 구조를 갖는 복수의 콘볼루션 레이어;
    상기 복수의 콘볼루션 레이어 중에서 마지막 콘볼루션 레이어의 특징맵에 대응되는 문자를 판별하는 제 2 전체 연결 레이어; 및
    상기 판별된 문자를 확률적인 값으로 정규화해서 대응되는 문자를 인식하는 정규화 처리기를 포함하는 문자 인식 장치.
  7. 문자 인식 장치의 문자 인식 방법에 있어서,
    영상에 포함된 문자로부터 언어를 구분하는 단계;
    구분된 언어의 문자를 문자의 기본단위로 분할하는 단계; 및
    기본단위로 분할된 문자를 인식하고 인식된 문자를 사용하여 디지털 문서를 생성하는 단계를 포함하되,
    상기 구분하는 단계, 상기 분할하는 단계, 및 상기 디지털 문서를 생성하는 단계 각각은 콘볼루션 신경망을 사용하여 학습하거나 학습된 데이터를 사용하는 단계를 포함하는 문자 인식 방법.
  8. 제 7 항에 있어서,
    상기 분할하는 단계는,
    상기 콘볼루션 신경망과 순환 신경망이 연결된 구조를 사용하여 상기 문자를 분할하는 단계를 포함하는 문자 인식 방법.
  9. 제 7 항에 있어서,
    상기 언어를 구분하는 단계는,
    상기 영상으로부터 직렬로 연결된 구조를 갖는 복수의 콘볼루션 레이어를 경유하여 생성된 소정 개수의 채널로 구성된 특징맵을 다음 콘볼루션 레이어로 전달하는 단계;
    상기 복수의 콘볼루션 레이어 중에서 마지막 콘볼루션 레이어의 특징맵으로부터 평균값을 계산하는 단계; 및
    계산된 평균값을 미리 설정된 임계값과 비교하여 상기 영상에 포함된 언어를 구분하는 단계를 포함하는 문자 인식 방법.
  10. 제 7 항에 있어서,
    상기 분할하는 단계는,
    상기 영상으로부터 직렬로 연결된 구조를 갖는 복수의 콘볼루션 레이어를 경유하여 소정 개수의 채널로 구성된 특징맵을 생성하여 다음 콘볼루션 레이어로 전달하는 단계;
    상기 복수의 콘볼루션 레이어 중에서 마지막 콘볼루션 레이어의 특징맵을 순차적인 데이터의 구조로 변환하는 단계;
    상기 문자의 경계 판단을 위한 정보를 시간 단위로 처리하는 단계; 및
    상기 시간 단위로 처리된 정보를 사용하여 단위 문자의 경계 영역을 구분하는 단계를 포함하는 문자 인식 방법.
  11. 제 9 항과 제 10 항 중 어느 한 항에 있어서,
    상기 복수의 콘볼루션 레이어 각각은,
    입력된 영상 또는 특징맵에 대해 높이 성분(H), 가로 성분(W) 및 채널 성분(C) 중에서 가로 성분(W)을 고정시켜, 상기 복수의 콘볼루션 레이어 각각에서 출력되는 특징값의 가로 성분(W)을 동일한 값으로 유지시키는 문자 인식 방법.
  12. 제 7 항에 있어서,
    상기 디지털 문서를 생성하는 단계는,
    상기 분할된 문자에 제로 패딩을 하는 단계;
    상기 제로 패딩된 문자로부터 직렬로 연결된 구조를 갖는 복수의 콘볼루션 레이어를 경유하여 생성된 소정 개수의 채널로 구성된 특징맵을 다음 콘볼루션 레이어로 전달하는 단계;
    상기 복수의 콘볼루션 레이어 중에서 마지막 콘볼루션 레이어의 특징맵에 대응되는 문자를 판별하는 단계; 및
    상기 특징맵을 구분한 정보를 확률적인 값으로 정규화해서 문자를 인식하는 단계를 포함하는 문자 인식 방법.
  13. 제 7 항에 기재된 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.
  14. 문자 인식 장치에 의해 수행되며, 제 7 항에 기재된 방법을 수행하기 위해 매체에 저장된 컴퓨터 프로그램.
KR1020180119146A 2018-10-05 2018-10-05 문자 인식 장치 및 방법 KR102235506B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180119146A KR102235506B1 (ko) 2018-10-05 2018-10-05 문자 인식 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180119146A KR102235506B1 (ko) 2018-10-05 2018-10-05 문자 인식 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20200044179A true KR20200044179A (ko) 2020-04-29
KR102235506B1 KR102235506B1 (ko) 2021-04-02

Family

ID=70466906

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180119146A KR102235506B1 (ko) 2018-10-05 2018-10-05 문자 인식 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102235506B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230056902A (ko) * 2021-10-21 2023-04-28 서울시립대학교 산학협력단 재난 경보 메시지를 출력하는 사용자 단말, 방법 및 재난 경보 메시지를 제공하는 서버
CN116453132A (zh) * 2023-06-14 2023-07-18 成都锦城学院 基于机器翻译的日语假名和汉字识别方法、设备及存储器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160064928A (ko) * 2014-11-28 2016-06-08 삼성전자주식회사 필기 입력 장치 및 그 제어 방법
JP2017194945A (ja) * 2016-11-17 2017-10-26 AI inside株式会社 文字認識装置、方法およびプログラム
JP2017215859A (ja) * 2016-06-01 2017-12-07 日本電信電話株式会社 文字列認識装置、方法、及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160064928A (ko) * 2014-11-28 2016-06-08 삼성전자주식회사 필기 입력 장치 및 그 제어 방법
JP2017215859A (ja) * 2016-06-01 2017-12-07 日本電信電話株式会社 文字列認識装置、方法、及びプログラム
JP2017194945A (ja) * 2016-11-17 2017-10-26 AI inside株式会社 文字認識装置、方法およびプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230056902A (ko) * 2021-10-21 2023-04-28 서울시립대학교 산학협력단 재난 경보 메시지를 출력하는 사용자 단말, 방법 및 재난 경보 메시지를 제공하는 서버
CN116453132A (zh) * 2023-06-14 2023-07-18 成都锦城学院 基于机器翻译的日语假名和汉字识别方法、设备及存储器
CN116453132B (zh) * 2023-06-14 2023-09-05 成都锦城学院 基于机器翻译的日语假名和汉字识别方法、设备及存储器

Also Published As

Publication number Publication date
KR102235506B1 (ko) 2021-04-02

Similar Documents

Publication Publication Date Title
US10540579B2 (en) Two-dimensional document processing
US10262237B2 (en) Technologies for improved object detection accuracy with multi-scale representation and training
US9619735B1 (en) Pure convolutional neural network localization
US9785865B2 (en) Multi-stage image classification
Xu et al. Integrate the original face image and its mirror image for face recognition
US11132575B2 (en) Combinatorial shape regression for face alignment in images
US11475588B2 (en) Image processing method and device for processing image, server and storage medium
US9898452B2 (en) Annotation data generation and overlay for enhancing readability on electronic book image stream service
EP3274909A1 (en) Low-cost face recognition using gaussian receptive field features
CN112749695A (zh) 文本识别的方法和装置
KR102122561B1 (ko) 문서 이미지 상에서 글자를 인식하기 위한 방법
US11163821B2 (en) Image extraction apparatus, image extraction method, and recording medium storing an image extraction program
US11514699B2 (en) Text block recognition based on discrete character recognition and text information connectivity
US10242277B1 (en) Validating digital content rendering
KR102235506B1 (ko) 문자 인식 장치 및 방법
KR20210065076A (ko) 문서 레이아웃의 분석 방법, 장치, 전자기기 및 저장매체
US9710701B2 (en) Handwriting data search
CN113159013A (zh) 基于机器学习的段落识别方法、装置、计算机设备和介质
US10032071B2 (en) Candidate handwriting words using optical character recognition and spell check
US20190065449A1 (en) Apparatus and method of generating alternative text
KR101176963B1 (ko) 간판 영상 문자 인식 및 후처리 시스템
US20240169000A1 (en) Information processing method and apparatus, device, and medium
US20190043495A1 (en) Systems and methods for using image searching with voice recognition commands
KR102367853B1 (ko) 맞춤형 스튜디오 구축 방법
KR20200057813A (ko) 복수 개의 낱알을 식별하는 방법 및 그 장치

Legal Events

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