KR102206604B1 - Apparatus and method for recognizing character - Google Patents
Apparatus and method for recognizing character Download PDFInfo
- Publication number
- KR102206604B1 KR102206604B1 KR1020190022102A KR20190022102A KR102206604B1 KR 102206604 B1 KR102206604 B1 KR 102206604B1 KR 1020190022102 A KR1020190022102 A KR 1020190022102A KR 20190022102 A KR20190022102 A KR 20190022102A KR 102206604 B1 KR102206604 B1 KR 102206604B1
- Authority
- KR
- South Korea
- Prior art keywords
- character
- data
- score map
- input data
- character recognition
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000001514 detection method Methods 0.000 claims abstract description 56
- 238000012549 training Methods 0.000 claims description 18
- 230000015654 memory Effects 0.000 claims description 14
- 238000000605 extraction Methods 0.000 claims description 12
- 230000002194 synthesizing effect Effects 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 26
- 230000008569 process Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 6
- 238000005070 sampling Methods 0.000 description 6
- 239000000284 extract Substances 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/24—Character recognition characterised by the processing or recognition method
-
- G06K9/3233—
-
- G06K9/00402—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/24—Aligning, centring, orientation detection or correction of the image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/14—Image acquisition
- G06V30/146—Aligning or centring of the image pick-up or image-field
-
- G06K2209/01—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/12—Bounding box
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Medical Informatics (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Character Discrimination (AREA)
- Character Input (AREA)
- Image Analysis (AREA)
Abstract
글자 인식 장치에 의한 입력 데이터 내 글자를 인식하는 방법에 있어서, 입력 데이터를 글자 검출 모델에 입력하는 단계; 글자 검출 모델에서 출력되는 출력 데이터에 기초하여 입력 데이터 내 단어 영역의 위치 정보를 획득하는 단계; 획득한 위치 정보에 대응하는 부분 데이터를 입력 데이터로부터 추출하는 단계; 및 부분 데이터를 글자 인식 모델에 입력하여 부분 데이터 내 글자를 인식하는 단계를 포함하는 것을 특징으로 하는 일 실시예에 따른 글자 인식 방법이 개시된다.A method of recognizing a character in input data by a character recognition device, the method comprising: inputting the input data into a character detection model; Acquiring location information of a word area in the input data based on output data output from the character detection model; Extracting partial data corresponding to the obtained location information from the input data; And recognizing a character in the partial data by inputting the partial data into a character recognition model.
Description
본 개시는 데이터 처리 분야에 관한 것이다. 보다 구체적으로, 본 개시는 이미지 등의 데이터에서 글자를 인식하는 글자 인식 장치 및 방법에 관한 것이다.The present disclosure relates to the field of data processing. More specifically, the present disclosure relates to a character recognition apparatus and method for recognizing characters from data such as images.
핀테크(fintech) 기술의 발전에 따라, 휴대폰 등에 카드 정보를 저장하여 놓고 간편하게 결제할 수 있게 하는 서비스가 제공되고 있다. 신용카드, 체크카드 등의 실물 카드 이미지에서 카드 번호 및 유효 기간 등의 정보를 인식 및 저장하는 기술은 간편 결제 서비스를 위한 핵심이 되는 기술 중 하나이다. With the development of fintech technology, a service that allows convenient payment by storing card information in a mobile phone or the like has been provided. A technology for recognizing and storing information such as card number and expiration date in real card images such as credit cards and debit cards is one of the core technologies for simple payment service.
그러나, 카드 이미지에서 글자를 인식함에 있어, 카드 내 양각으로 인쇄된 글자가 다수 존재하고, 카드 배경이 다양하므로, 카드 번호 및 유효 기간을 정확하게 인식하는 것에 기술 장벽이 존재한다.However, in recognizing letters in a card image, there are many embossed letters in the card and various card backgrounds, so there is a technical barrier to accurately recognizing the card number and expiration date.
일 실시예에 따른 글자 인식 장치 및 이에 의한 글자 인식 방법은 이미지 등의 데이터에서 글자를 정확하고 신속하게 인식하는 것을 기술적 과제로 한다.A character recognition apparatus according to an embodiment and a character recognition method therefor is a technical task to accurately and quickly recognize characters from data such as images.
또한, 일 실시예에 따른 글자 인식 장치 및 이에 의한 글자 인식 방법은 실물 카드의 이미지 내에서 글자를 정확하게 인식하여 핀테크 산업의 발전에 기여하는 것을 기술적 과제로 한다.In addition, the character recognition apparatus according to an exemplary embodiment and a method of character recognition according to the character recognition apparatus accurately recognizes characters in an image of a physical card, thereby contributing to the development of the fintech industry as a technical task.
일 실시예에 따른 글자 인식 방법은, 입력 데이터를 글자 검출 모델에 입력하는 단계; 상기 글자 검출 모델에서 출력되는 출력 데이터에 기초하여 상기 입력 데이터 내 단어 영역의 위치 정보를 획득하는 단계; 상기 획득한 위치 정보에 대응하는 부분 데이터를 상기 입력 데이터로부터 추출하는 단계; 및 상기 부분 데이터를 글자 인식 모델에 입력하여 상기 부분 데이터 내 글자를 인식하는 단계를 포함할 수 있다.A character recognition method according to an embodiment includes the steps of inputting input data into a character detection model; Acquiring location information of a word area in the input data based on output data output from the character detection model; Extracting partial data corresponding to the acquired location information from the input data; And inputting the partial data into a character recognition model to recognize a character in the partial data.
다른 실시예에 따른 글자 인식 장치는, 프로세서; 및 적어도 하나의 인스트럭션을 저장하는 메모리를 포함하되, 상기 프로세서는 상기 적어도 하나의 인스트럭션에 따라, 입력 데이터를 글자 검출 모델에 입력하고, 상기 글자 검출 모델에서 출력되는 출력 데이터에 기초하여 상기 입력 데이터 내 단어 영역의 위치 정보를 획득하고, 상기 획득한 위치 정보에 대응하는 부분 데이터를 상기 입력 데이터로부터 추출하고, 상기 부분 데이터를 글자 인식 모델에 입력하여 상기 부분 데이터 내 글자를 인식할 수 있다.A character recognition apparatus according to another embodiment includes: a processor; And a memory for storing at least one instruction, wherein the processor inputs input data into a character detection model according to the at least one instruction, and the input data is stored based on output data output from the character detection model. A character in the partial data may be recognized by obtaining location information of a word area, extracting partial data corresponding to the obtained location information from the input data, and inputting the partial data into a character recognition model.
일 실시예에 따른 글자 인식 장치 및 이에 의한 글자 인식 방법은 이미지 등의 데이터에서 글자를 정확하고 신속하게 인식할 수 있다.The apparatus for recognizing characters and the method for recognizing characters according to the embodiment may accurately and quickly recognize characters from data such as images.
또한, 일 실시예에 따른 글자 인식 장치 및 이에 의한 글자 인식 방법은 실물 카드의 이미지 내에서 글자를 정확하게 인식하여 핀테크 산업의 발전에 기여할 수 있다. In addition, the apparatus for recognizing letters and the method for recognizing letters according to the embodiment may contribute to the development of the fintech industry by accurately recognizing letters within an image of a physical card.
다만, 일 실시예에 따른 글자 인식 장치 및 이에 의한 글자 인식 방법이 달성할 수 있는 효과는 이상에서 언급한 것들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.However, the effects that can be achieved by the character recognition apparatus and the character recognition method according to the embodiment are not limited to those mentioned above, and other effects not mentioned are the technical fields to which the present disclosure belongs from the following description. It will be able to be clearly understood by those of ordinary skill.
본 명세서에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 일 실시예에 따른 글자 인식 장치를 도시하는 도면이다.
도 2는 일 실시예에 따른 글자 인식 방법을 설명하기 위한 순서도이다.
도 3은 일 실시예에 따른 글자 인식 장치를 통해 글자가 인식되는 과정을 설명하기 위한 도면이다.
도 4는 글자 검출 모델에 의해 출력되는 출력 데이터를 도시하는 예시적인 도면이다.
도 5는 글자 검출 모델에서 출력된 출력 데이터에 기초하여 입력 데이터 내 단어 영역의 위치 정보를 획득하는 방법을 설명하기 위한 도면이다.
도 6은 도 5에 도시된 이진화 과정 및 병합 과정을 설명하기 위한 도면이다.
도 7은 도 5에 도시된 단어 박스 결정 과정을 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 특징 추출 모델의 구조를 설명하기 위한 도면이다.
도 9는 일 실시예에 따른 글자 인식 모델의 구조를 설명하기 위한 도면이다.
도 10은 일 실시예에 따른 글자 검출 모델의 훈련 방법을 설명하기 위한 순서도이다.
도 11은 제 1 GT 스코어 맵을 생성하는 방법을 설명하기 위한 도면이다.
도 12는 제 2 GT 스코어 맵을 생성하는 방법을 설명하기 위한 도면이다.
도 13은 서로 인접한 글자 박스들 사이에서 연결 박스를 결정하는 방법을 설명하기 위한 도면이다.
도 14는 일 실시예에 따른 글자 인식 장치의 구성을 도시하는 블록도이다.
도 15는 일 실시예에 따른 글자 인식 장치가 적용될 수 있는 서버 장치 및 클라이언트 장치를 도시하는 도면이다.In order to more fully understand the drawings cited in the present specification, a brief description of each drawing is provided.
1 is a diagram illustrating a character recognition apparatus according to an exemplary embodiment.
2 is a flow chart illustrating a method for recognizing letters according to an exemplary embodiment.
3 is a diagram for describing a process of recognizing a character through a character recognition apparatus according to an exemplary embodiment.
4 is an exemplary diagram showing output data output by a character detection model.
5 is a diagram for explaining a method of acquiring position information of a word region in input data based on output data output from a character detection model.
6 is a diagram illustrating a binarization process and a merging process shown in FIG. 5.
FIG. 7 is a diagram illustrating a process of determining a word box shown in FIG. 5.
8 is a diagram illustrating a structure of a feature extraction model according to an exemplary embodiment.
9 is a diagram illustrating a structure of a character recognition model according to an embodiment.
10 is a flowchart illustrating a method of training a character detection model according to an exemplary embodiment.
11 is a diagram for explaining a method of generating a first GT score map.
12 is a diagram for describing a method of generating a second GT score map.
13 is a diagram for describing a method of determining a connection box between text boxes adjacent to each other.
14 is a block diagram illustrating a configuration of a character recognition apparatus according to an exemplary embodiment.
15 is a diagram illustrating a server device and a client device to which a character recognition device according to an exemplary embodiment can be applied.
본 개시는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고, 이를 상세한 설명을 통해 설명하고자 한다. 그러나, 이는 본 개시를 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.In the present disclosure, various changes may be made and various embodiments may be provided, and specific embodiments are illustrated in the drawings, and will be described through detailed description. However, this is not intended to limit the present disclosure to a specific embodiment, it should be understood to include all changes, equivalents, and substitutes included in the spirit and scope of the present disclosure.
실시예를 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 실시예의 설명 과정에서 이용되는 숫자(예를 들어, 제 1, 제 2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.In describing the embodiments, when it is determined that a detailed description of a related known technology may unnecessarily obscure the subject matter, the detailed description thereof will be omitted. In addition, numbers (eg, first, second, etc.) used in the description process of the embodiment are merely identification symbols for distinguishing one component from another component.
또한, 본 명세서에서 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.In addition, in the present specification, when one component is referred to as "connected" or "connected" to another component, the one component may be directly connected to the other component or may be directly connected, It should be understood that as long as there is no substrate to be used, it may be connected or may be connected via another component in the middle.
또한, 본 명세서에서 '~부(유닛)', '모듈' 등으로 표현되는 구성요소는 2개 이상의 구성요소가 하나의 구성요소로 합쳐지거나 또는 하나의 구성요소가 보다 세분화된 기능별로 2개 이상으로 분화될 수도 있다. 또한, 이하에서 설명할 구성요소 각각은 자신이 담당하는 주기능 이외에도 다른 구성요소가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성요소 각각이 담당하는 주기능 중 일부 기능이 다른 구성요소에 의해 전담되어 수행될 수도 있음은 물론이다.In addition, in the components expressed as'~ unit (unit)','module', etc. in the present specification, two or more components are combined into one component, or two or more components are divided into more subdivided functions. It can also be differentiated into. In addition, each of the components to be described below may additionally perform some or all of the functions that other components are responsible for in addition to its own main function, and some of the main functions that each component is responsible for are different. It goes without saying that it may be performed exclusively by components.
또한, 본 명세서에서 '글자'는 단어나 문장을 구성하는 기본 문자 단위를 의미할 수 있다, 예를 들어, 영어의 경우에는 각각의 알파벳이 글자에 해당할 수 있고, 숫자의 경우에는 '0' 내지 '9'의 숫자 각각이 글자에 해당할 수 있고, 한국어의 경우에는 자음과 모음이 결합된 문자(예를 들어, '가'), 자음, 모음 및 자음이 결합된 문자(예를 들어, '강'), 단독으로 기재된 자음(예를 들어, 'ㄱ'), 단독으로 기재된 모음(예를 들어, 'ㅏ')이 글자에 해당할 수 있다. 또한, 글자는 기호(예를 들어, '/', '-' 등)를 포함할 수도 있다.In addition, in the present specification,'character' may mean a basic unit of characters constituting a word or sentence. For example, in English, each alphabet may correspond to a letter, and in the case of numbers, '0' Each of the numbers of to '9' may correspond to a letter, and in the case of Korean, a character combined with a consonant and a vowel (for example,'ga'), a character combined with a consonant, vowel, and consonant (for example, 'Kang'), consonants written alone (for example,'ㄱ'), and vowels written alone (for example,'ㅏ') may correspond to letters. In addition, the letters may include symbols (eg,'/','-', etc.).
또한, 본 명세서에서 '단어'는 적어도 하나의 글자를 포함하는 문자 단위를 의미할 수 있다. '단어'를 구성하는 글자들은 서로 간에 소정 간격 이상 이격되어 있지 않을 수 있다. '단어'는 하나의 글자로 이루어질 수도 있다. 예를 들어, 영어의 부정사 'a'는 하나의 글자로 이루어졌지만 주변 글자와 소정 거리 이상 이격되어 있는 경우 '단어'에 해당할 수 있다.In addition, in the present specification,'word' may mean a character unit including at least one letter. The letters constituting the'word' may not be spaced apart from each other by more than a predetermined distance. The'word' can also consist of a single letter. For example, the infinitive'a' in English may be composed of a single letter, but may correspond to a'word' if it is separated by a predetermined distance from the surrounding letters.
또한, 본 명세서에서 '글자 그룹'은 후술하는 어느 하나의 부분 데이터에서 인식된 적어도 하나의 글자들을 의미할 수 있다.In addition, in the present specification, the'character group' may mean at least one character recognized in any one piece of data to be described later.
이하, 본 개시의 기술적 사상에 의한 실시예들을 차례로 상세히 설명한다.Hereinafter, embodiments according to the technical idea of the present disclosure will be described in detail in order.
도 1은 일 실시예에 따른 글자 인식 장치(100)를 도시하는 도면이다.1 is a diagram illustrating a
일 실시예에 따른 글자 인식 장치(100)는 입력 데이터(10)를 획득하고, 입력 데이터(10) 내에서 글자(50)를 인식한다. 입력 데이터(10)는 체크카드, 신용카드 등의 실물 카드를 촬영한 이미지를 포함할 수 있으며, 또는 후술하는 바와 같이, 실물 카드 등을 촬영한 이미지에 기초하여 특징 추출 모델(800)에서 출력된 특징 맵(feature map)을 포함할 수도 있다.The
글자 인식 장치(100)는 입력 데이터(10)에서 카드 번호, 유효 기간 등의 카드 정보를 인식 및 저장할 수 있다. 글자 인식 장치(100)에 의해 인식 및 저장된 카드 정보는 물건 등의 구매를 위해 대금을 지불하는데 이용될 수 있다.The
이하에서는, 도 2 및 도 3을 참조하여 글자 인식 장치(100)의 동작에 대해 설명한다. Hereinafter, the operation of the
도 2는 일 실시예에 따른 글자 인식 방법을 설명하기 위한 순서도이고, 도 3은 일 실시예에 따른 글자 인식 장치(100)를 통해 글자가 인식되는 과정을 설명하기 위한 도면이다.2 is a flowchart illustrating a method of recognizing a character according to an exemplary embodiment, and FIG. 3 is a diagram illustrating a process of recognizing a character through the
S210 단계에서, 글자 인식 장치(100)는 입력 데이터(10)를 글자 검출 모델(410)에 입력한다. 글자 인식 장치(100)는 글자 검출 모델(410)을 미리 저장할 수 있다. 글자 검출 모델(410)은 학습용 데이터에 기초하여 훈련될 수 있다.In step S210, the
S220 단계에서, 글자 인식 장치(100)는 글자 검출 모델(410)에서 출력되는 출력 데이터(30)에 기초하여 입력 데이터(10) 내 단어 영역의 위치 정보를 획득한다.In step S220, the
글자 검출 모델(410)에서 출력되는 출력 데이터(30)는, 입력 데이터(10) 내 글자가 존재할 것으로 예상되는 지점의 위치를 나타낸다. 글자 인식 장치(100)는 출력 데이터(30)에 기초하여 입력 데이터(10) 내 적어도 하나의 글자를 포함하는 단어 영역의 위치 정보를 획득한다.The
S230 단계에서, 글자 인식 장치(100)는 단어 영역의 위치 정보에 대응하는 부분 데이터(40)를 입력 데이터(10)로부터 추출한다. 일 실시예에서, 단어 영역의 위치 정보가 복수 개로 획득된 경우, 각 위치 정보에 대응하는 복수의 부분 데이터들(40)이 입력 데이터(10)로부터 추출될 수 있다.In step S230, the
S240 단계에서, 글자 인식 장치(100)는 부분 데이터(40)를 글자 인식 모델(420)에 입력하여 부분 데이터(40)에 포함된 글자(50)를 인식한다. 부분 데이터(40)가 복수 개인 경우, 글자 인식 장치(100)는 복수의 부분 데이터(40) 각각을 글자 인식 모델(420)에 입력하여 복수의 부분 데이터(40) 각각에 포함된 글자(50)들을 인식할 수 있다. In step S240, the
일 실시예에서, 글자 인식 장치(100)는 글자 검출 모델(410)의 출력 데이터(30)를 부분 데이터(40)와 함께 글자 인식 모델(420)로 입력할 수도 있다. 글자 검출 모델(410)의 출력 데이터(30)는 입력 데이터(10) 내 개별 글자의 위치 정보를 포함할 수 있으므로, 글자 인식 모델(420)의 글자 인식의 정확도가 보다 향상될 수 있다.In an embodiment, the
글자 인식 장치(100)는 인식된 글자를 저장하거나, 네트워크를 통해 외부 장치로 전송할 수 있다.The
도 4는 글자 검출 모델(410)에 의해 출력되는 출력 데이터(30)의 일 예를 도시하는 예시적인 도면이다.4 is an exemplary diagram illustrating an example of
출력 데이터(30)는 입력 데이터(10) 내 글자가 존재할 확률을 입력 데이터(10)에 대응되는 데이터 공간(예를 들어, 이미지 공간)상에 나타내는 제 1 스코어 맵(31), 및 입력 데이터(10) 내 글자들 사이의 연결성(connectivity)을 입력 데이터(10)에 대응되는 데이터 공간상에 나타내는 제 2 스코어 맵(33)을 포함할 수 있다.The
제 1 스코어 맵(31) 내 각 위치에 저장된 값(예를 들어, 픽셀 값)은 해당 위치에 대응하는 입력 데이터(10)에 글자가 존재할 확률을 나타낼 수 있다. 또한, 제 2 스코어 맵(33) 내 각 위치에 저장된 값(예를 들어, 픽셀 값)은 해당 위치에 대응하는 입력 데이터(10) 내에서 복수의 글자들이 서로 인접할 확률을 나타낼 수 있다.A value (eg, a pixel value) stored at each location in the
위치 대응 관계에 대한 계산을 용이하게 하기 위하여 제 1 스코어 맵(31) 및 제 2 스코어 맵(33)의 크기는 입력 데이터(10)와 동일하게 할 수 있다.In order to facilitate the calculation of the position correspondence relationship, the size of the
후술하는 바와 같이, 글자 검출 모델(410)은 학습용 데이터에 대응하여 생성된 제 1 GT(ground truth) 스코어 맵 및 제 2 GT 스코어 맵과 유사한 제 1 스코어 맵(31) 및 제 2 스코어 맵(33)이 출력되도록 훈련될 수 있다.As described later, the
글자 인식 장치(100)는 제 1 스코어 맵(31) 및 제 2 스코어 맵(33)에 기초하여 입력 데이터(10) 내 단어 영역의 위치 정보를 결정할 수 있는데, 이에 대해서는 도 5 내지 도 7을 참조하여 설명한다.The
도 5는 글자 검출 모델(410)에서 출력된 출력 데이터(30)에 기초하여 입력 데이터(10) 내 단어 영역의 위치 정보를 획득하는 방법을 설명하기 위한 도면이고, 도 6은 도 5에 도시된 이진화 과정 및 병합 과정을 설명하기 위한 도면이고, 도 7은 도 5에 도시된 단어 박스 결정 과정을 설명하기 위한 도면이다.5 is a diagram for explaining a method of acquiring position information of a word area in the
S510 단계 및 S520 단계에서, 글자 인식 장치(100)는 제 1 스코어 맵(31) 내 데이터 값들을 임계 값과 비교하여 제 1 스코어 맵(31)을 이진화(binarization)하고, 제 2 스코어 맵(33) 내 데이터 값들을 임계 값과 비교하여 제 2 스코어 맵(33)을 이진화한다. 일 예에서, 글자 인식 장치(100)는 제 1 스코어 맵(31) 및 제 2 스코어 맵(33) 내 데이터 값들 중 임계 값 이상의 데이터 값들을 제 1 값으로 변경하고, 임계 값 미만의 데이터 값들을 제 2 값으로 변경할 수 있다.In steps S510 and S520, the
도 6에 도시된 바와 같이, 제 1 스코어 맵(31) 및 제 2 스코어 맵(33)에서 임계 값 이상의 값을 갖는 데이터들은 이진화된 제 1 스코어 맵(601) 및 이진화된 제 2 스코어 맵(603)에서 제 1 값을 갖도록 변경되고, 제 1 스코어 맵(31) 및 제 2 스코어 맵(33)에서 임계 값 미만의 값을 갖는 데이터들은 이진화된 제 1 스코어 맵(601) 및 이진화된 제 2 스코어 맵(603)에서 제 2 값을 갖도록 변경될 수 있다.As shown in FIG. 6, data having a value equal to or greater than a threshold value in the
제 1 스코어 맵(31)의 이진화를 위한 임계 값과 제 2 스코어 맵(33)의 이진화를 위한 임계 값은 서로 동일하거나 서로 상이할 수 있다.A threshold value for binarization of the
S530 단계에서, 글자 인식 장치(100)는 이진화된 제 1 스코어 맵(601)와 이진화된 제 2 스코어 맵(603)을 병합(merge)한다. 예를 들어, 글자 인식 장치(100)는 이진화된 제 1 스코어 맵(601)과 이진화된 제 2 스코어 맵(603) 내 데이터 값들을 더하거나, or 연산을 하여 병합 맵(605)을 생성할 수 있다. 예를 들어 도 6에 도시된 바와 같이, 이진화된 제 1 스코어 맵(601) 및 이진화된 제 2 스코어 맵(603) 내 제 1 값을 갖는 데이터들이 병합 맵(605)에 함께 포함될 수 있다. 이러한 방법으로 병합 맵(605)은 입력 데이터(10) 내 글자가 존재할 가능성이 높은 영역(606)들과 그렇지 않은 영역들로 구분될 수 있다.In step S530, the
S540 단계에서, 글자 인식 장치(100)는 병합 맵(605)을 이용하여 글자가 포함된 영역을 나타내는 단어 박스(610)를 결정하게 된다. In step S540, the
예를 들면, 병합 맵(605) 내에서 동일한(내지는 동일한 범위의) 값을 가지고 서로 인접하게 연결된 영역(606)들의 적어도 일부를 단어 영역으로 결정하고, 결정된 단어 영역을 포함하는 단어 박스(610)를 결정할 수 있다. 일 실시예에서, 글자 인식 장치(100)는 병합 맵(605) 내 단어 영역들의 구분을 위해 단어 영역 각각에 대해 레이블링(labeling)을 할 수도 있다.For example, in the
일 실시예에서, 글자 인식 장치(100)는 병합 맵(605)을 이용하여 인식된 영역(606) 각각이 실제 단어를 포함하는지를 검증하기 위해, 추가 확인을 할 수 있다. 구체적으로 예를 들어, 병합 맵(605) 내에서 동일한(내지는 동일한 범위의) 값을 가지고 서로 인접하게 연결된 영역(606)을 단어 후보 영역으로 두고, 단어 후보 영역 내의 각 데이터에 대응하는 제 1 스코어 맵(601)의 값들 중에 정해진 임계치보다 높은 것이 하나 이상 존재하면 해당 단어 후보 영역을 단어 영역으로 결정할 수 있다. 즉, 각 단어 후보 영역에 대응하는 제 1 스코어 맵(601)의 값들 중 가장 큰 값과 임계값을 비교하여 각 단어 후보 영역이 단어 영역에 해당하는지 여부를 검증할 수 있다.In an embodiment, the
이렇게 하면 글자와 유사한 배경이 있어 단어 후보 영역으로 결정된 경우들을 필터링할 수 있게 된다.In this way, it is possible to filter out cases that have a background similar to a letter and are determined as a word candidate region.
일 실시예에서, 글자 인식 장치(100)는 단어 영역에 해당하는 것으로 검증된 데이터들의 영역을 포함하는 최소 크기의 단어 박스(610)를 결정할 수 있다.In an embodiment, the
글자 인식 장치(100)는 결정된 단어 박스(610)의 위치 정보(예를 들어, 입력 데이터(10) 또는 병합 맵(605) 상에서의 단어 박스(610)의 모서리들의 위치 값)를 단어 영역의 위치 정보로 결정할 수 있다.The
단어 영역의 위치 정보가 결정되면, 글자 인식 장치(100)는 해당 위치 정보에 대응하는 부분 데이터(40)를 입력 데이터(10)로부터 추출하고, 추출된 부분 데이터(40)를 글자 인식 모델(420)에 입력하여 부분 데이터(40) 내 글자를 인식할 수 있다.When the location information of the word area is determined, the
앞서 설명한 바와 같이, 글자 검출 모델(410)로 입력되는 입력 데이터(10)는 원본 이미지에 기초하여 특징 검출 모델(800)에서 출력되는 특징 맵(feature map)을 포함할 수 있다. 도 8은 특징 검출 모델(800)의 구조를 설명하기 위한 도면이다.As described above, the
원본 이미지(20)는 특징 검출 모델(800)로 입력될 수 있다. 여기서, 원본 이미지(20)는 특징 검출 모델(800)로 입력되는 이미지를 의미하는 것이며, 최초 카드 등을 촬영한 이미지를 복사한 이미지 또는 변형한 이미지가 아님을 의미하는 것은 아니다.The
원본 이미지(20)는 제 1 컨볼루션층(805), 제 2 컨볼루션층(810), 제 3 컨볼루션층(815), 제 4 컨볼루션층(820), 제 5 컨볼루션층(825) 및 제 6 컨볼루션층(830)에서 컨볼루션 처리가 된다. 제 6 컨볼루션층(830)의 출력과 제 5 컨볼루션층(825)의 출력이 연접(concatenation) 연산되어 제 1 업 컨볼루션층(835)으로 입력되고, 제 1 업 컨볼루션층(835)으로 입력된 값들은 컨볼루션 처리(836), 배치 정규화(normalization)(837), 컨볼루션 처리(838) 및 배치 정규화(839)를 통해 제 1 업 샘플링층(840)으로 입력된다. 제 1 업 샘플링층(840)의 출력은 제 4 컨볼루션층(820)의 출력과 연접 연산되어 제 2 업 컨볼루션층(845) 및 제 2 업 샘플링층(850)에서 처리된다. 제 2 업 샘플링층(850)의 출력은 제 3 컨볼루션층(815)의 출력과 연접 연산되어 제 3 업 컨볼루션층(855)과 제 3 업 샘플링층(860)에서 처리되고, 처리 결과는 제 2 컨볼루션층(810)의 출력과 연접 연산되어 제 4 업 컨볼루션층(865)에 입력된다. 그리고, 제 4 업 컨볼루션층(865)으로부터 출력된 결과를 입력 데이터(10)로 사용할 수 있다.The
일 실시예에서, 입력 데이터(10)의 가로 크기 및 세로 크기는 원본 이미지(20)의 가로 크기 및 세로 크기의 1/2일 수 있으나, 이에 한정되는 것은 아니다.In one embodiment, the horizontal size and the vertical size of the
도 8에 도시된 특징 검출 모델(800)의 구조는 하나의 예시일 뿐이며, 컨볼루션층, 업 컨볼루션층, 업 샘플링층의 개수 및 처리 순서는 다양하게 변형될 수 있다.The structure of the
도 9는 일 실시예에 따른 글자 인식 모델(420)의 구조를 설명하기 위한 도면이다.9 is a diagram illustrating a structure of a
글자 인식 모델(420)은 입력 데이터(10)로부터 추출된 부분 데이터(40)를 입력받고, 부분 데이터(40) 내 글자(50)들을 인식한다. 글자 인식 모델(420)은 컨볼루션 네트워크(421), RNN(recurrent neural network)(423) 및 디코더(decoder)(425)를 포함할 수 있다.The
컨볼루션 네트워크(421)는 적어도 하나의 컨볼루션 층을 포함하고, 부분 데이터(40)를 컨볼루션 처리하여 특징 맵을 추출한다. 일 예시에서, 컨볼루션 네트워크(421)는 공지된 VGG, ResNet 등을 포함할 수 있지만, 일 실시예에서 글자 인식 모델(420)은 원본 이미지(20)의 특징 맵(즉, 입력 데이터)으로부터 추출된 부분 데이터(40)를 입력 받을 수 있으므로, 필요로 하는 컨볼루션 층의 개수는 적을 수 있다.The
RNN(423)은 부분 데이터(40)에 대응하는 특징 맵으로부터 특징 벡터의 시퀀스를 추출한다. RNN(423)은 bi-LSTM (bidirectional Long-short-term memory)을 통해 연속되는 특징 벡터들의 컨텍스트(context) 관계를 파악할 수 있다.The
디코더(425)는 특징 벡터들의 시퀀스 정보에서 글자를 추출한다. 디코더(425)는 어텐션(attention) 단계 및 생성(generation) 단계를 수행할 수 있는데, 어텐션 단계에서, 디코더(425)는 어떤 시퀀스에서 정보를 뽑을지 여부를 나타내는 웨이트를 계산하고, 생성 단계에서 가중치를 시퀀스에 적용하고, LSTM(Long-short-term memory)을 통해 개별 글자를 추출할 수 있다.The
한편, 일 실시예에서, 글자 인식 장치(100)는 여러 부분 데이터(40)들 각각에서 인식된 글자 그룹들을 소정 기준에 따라 분류할 수 있다. 일 예에서, 글자 인식 장치(100)는 어느 부분 데이터(40)에서 인식된 글자 그룹에 소정의 기호(예를 들어, /)가 포함되어 있으면, 해당 글자 그룹을 제 1 종류의 정보로 결정할 수 있다. 카드 내 유효 기간에는 년도와 월을 구분하기 위한 소정의 기호가 포함되어 있는 것이 일반적이므로, 글자 인식 장치(100)는 어느 부분 데이터(40)에서 인식된 글자 그룹에 소정 기호가 포함되어 있으면 해당 글자 그룹을 유효 기간 정보로 결정할 수 있는 것이다. Meanwhile, in an embodiment, the
만약, 소정의 기호가 포함되어 있는 글자 그룹의 개수가 복수 개인 경우, 글자 인식 장치(100)는 년도에 해당하는 숫자(예를 들어, 기호를 기준으로 우측에 위치하는 숫자)가 큰 글자 그룹을 유효 기간 정보로 결정할 수 있다. 카드에 유효 기간과 발급 일자가 포함되어 있는 경우, 유효 기간에 포함된 년도가 발급 일자에 포함된 년도보다 클 것이므로, 글자 인식 장치(100)는 년도에 해당하는 숫자가 큰 글자 그룹을 유효 기간 정보로 결정할 수 있는 것이다.If the number of character groups including a predetermined symbol is plural, the
또한, 일 실시예에서, 글자 인식 장치(100)는 복수의 부분 데이터(40) 각각에서 인식된 글자 그룹들 중 소정의 기호를 포함하고 있지 않은 글자 그룹들을 제 2 종류의 정보로 결정할 수 있다. 제 2 종류의 정보는 예를 들어, 카드 번호 정보를 포함할 수 있다. In addition, in an embodiment, the
또한, 일 실시예에서, 글자 인식 장치(100)는 복수의 부분 데이터(40)들 각각에서 인식된 글자 그룹들을, 입력 데이터(10) 내에서의 복수의 부분 데이터(40)들의 위치에 따라 정렬할 수 있다. 일 예로, 글자 인식 장치(100)는 입력 데이터(10) 내 좌상단을 기준으로 Z 스캔 방식으로 글자 그룹들을 정렬할 수 있다. In addition, in an embodiment, the
글자 인식 장치(100)는 정렬된 글자 그룹들 중 연속으로 정렬된 소정 개수의 글자 그룹에 포함된 글자의 개수에 기초하여 글자의 재인식이 필요한지 여부를 결정할 수 있다. 일 예로, 글자 인식 장치(100)는 정렬된 글자 그룹들 중 소정 개수의 숫자를 각각 포함하면서 연속으로 정렬된 소정 개수의 글자 그룹이 존재하는 경우, 글자 인식이 정확히 수행되어 글자의 재인식이 필요하지 않은 것으로 결정할 수 있다. 일반적으로 카드 번호는 16개의 숫자들을 포함하되, 4개의 숫자끼리 하나의 글자 그룹을 이룬다는 면에서, 글자 인식 장치(100)는 정렬된 글자 그룹들 중 4개의 숫자를 포함하는 4개의 글자 그룹이 연속으로 정렬되어 있는 경우, 글자의 재인식이 필요하지 않은 것으로 결정할 수 있다.The
또한, 일 실시예에서, 글자 인식 장치(100)는 여러 부분 데이터(40)들에서 인식된 글자 그룹들에 소정의 기호가 존재하지 않으면, 글자의 재인식이 필요한 것으로 결정할 수 있다.In addition, in an embodiment, the
글자의 재인식이 필요한 경우, 글자 인식 장치(100)는 이미지의 재촬영이 필요하다는 정보를 스피커, 모니터 등을 통해 출력하거나 네트워크를 통해 외부 장치로 알릴 수 있다. 일 실시예에서, 글자 인식 장치(100)가 카메라의 프리뷰 이미지로부터 글자를 인식하는 중에, 글자의 재인식이 필요한 것으로 결정된 경우, 카메라를 통해 연속적으로 촬영되고 있는 프리뷰 이미지로부터 글자를 재인식할 수도 있다.When re-recognition of a character is required, the
이하에서는, 도 10 내지 도 13을 참조하여 글자 검출 모델(410)을 훈련시키는 방법에 대해 설명한다.Hereinafter, a method of training the
도 10은 일 실시예에 따른 글자 검출 모델(410)의 훈련 방법을 설명하기 위한 순서도이다.10 is a flowchart illustrating a training method of the
S1010 단계에서, 글자 인식 장치(100)는 학습용 데이터(60) 내 글자가 존재할 확률을 데이터 공간상에 나타내는 제 1 GT 스코어 맵(71), 및 학습용 데이터(60) 내 글자들 사이의 연결성을 데이터 공간상에 나타내는 제 2 GT 스코어 맵(73)을 획득한다. 학습용 데이터(60)의 가로 크기 및 세로 크기는 입력 데이터(10)의 가로 크기 및 세로 크기와 동일할 수 있다. 또한, 학습용 데이터(60)의 가로 크기 및 세로 크기는 제 1 GT 스코어 맵(71)의 가로 크기 및 세로 크기와 동일하고, 제 2 GT 스코어 맵(73)의 가로 크기 및 세로 크기와도 동일할 수 있다.In step S1010, the
일 실시예에서, 학습용 데이터(60)는 전술한 원본 이미지(20)와 마찬가지로 카드 등의 대상체를 촬영한 이미지 또는 해당 이미지에 기초하여 추출된 특징 맵을 포함할 수 있다.In an embodiment, like the
글자 인식 장치(100)는 학습용 데이터(60)로부터 제 1 GT 스코어 맵(71) 및 제 2 GT 스코어 맵(73) 중 적어도 하나를 직접 생성할 수도 있고, 또는 네트워크나 외부 관리자를 통해 제 1 GT 스코어 맵(71) 및 제 2 GT 스코어 맵(73) 중 적어도 하나를 수신할 수도 있다.The
제 1 GT 스코어 맵(71) 내 값들은 해당 지점에서 학습용 데이터(60)에 글자가 위치할 확률을 나타낼 수 있다. 또한, 제 2 GT 스코어 맵(73) 내 값들은 해당 지점에서 복수의 글자들이 서로 인접할 확률을 나타낼 수 있다.Values in the first
S1020 단계에서, 글자 인식 장치(100)는 학습용 데이터(60)를 글자 검출 모델(410)에 입력한다.In step S1020, the
S1030 단계에서, 학습용 데이터(60)에 대응하여 글자 검출 모델(410)에서 출력되는 제 1 스코어 맵 및 제 2 스코어 맵 각각과 제 1 GT 스코어 맵(71) 및 제 2 GT 스코어 맵(73)의 비교 결과에 따라 글자 검출 모델(410)의 내부 가중치가 갱신될 수 있다.In step S1030, each of the first score map and the second score map output from the
제 1 스코어 맵 및 제 2 스코어 맵 각각과 제 1 GT 스코어 맵(71) 및 제 2 GT 스코어 맵(73)의 비교 결과에 따라 로스(loss) 값이 산출될 수 있다. 로스 값은 예를 들어, L2 Loss 값에 해당할 수 있다. 로스 값은 그 외에도, L1 loss, smooth L1 loss 등 다양한 방법을 이용할 수 있다. 산출된 로스 값은 글자 검출 모델(410)에 입력되고, 글자 검출 모델(410)은 로스 값에 따라 내부 가중치를 갱신할 수 있다.A loss value may be calculated according to a result of comparing each of the first score map and the second score map with the first
도 11은 제 1 GT 스코어 맵(71)을 생성하는 방법을 설명하기 위한 도면이고, 도 12는 제 2 GT 스코어 맵(73)을 생성하는 방법을 설명하기 위한 도면이다. 또한, 도 13은 서로 인접한 글자 박스들(62a, 62b) 사이에서 연결 박스(63a)를 결정하는 방법을 설명하기 위한 도면이다.FIG. 11 is a diagram for explaining a method of generating the first
도 11을 참조하면, 학습용 데이터(60) 내 적어도 하나의 글자들을 포함하는 단어 영역들에 대해 단어 박스들(61a, 61b, 61c, 61d, 61e)이 결정된다. 그리고, 단어 박스(61a, 61b, 61c, 61d, 61e) 내 포함된 글자들의 개수에 따라 단어 박스(61a, 61b, 61c, 61d, 61e)가 적어도 하나의 글자 박스(62a, 62b, 62c, 62d)로 분할된다. 예를 들어, 어느 하나의 단어 박스 내에 4개의 글자들이 포함되어 있는 경우, 해당 단어 박스는 총 4개의 글자 박스로 분할될 수 있다. 글자 박스(62a, 62b, 62c, 62d) 각각에 소정의 이미지(1100), 예를 들어, 2D 가우시안 이미지가 합성되어 제 1 GT 스코어 맵(71)이 생성될 수 있다.Referring to FIG. 11,
도 12 및 도 13을 참조하면, 복수의 글자 박스들(62a, 62b, 62c, 62d) 중 서로 인접한 글자 박스들 사이의 경계선(L) 상에 위치하는 연결 박스(63a, 63b, 63c)가 결정되고, 연결 박스(63a, 63b, 63c)에 소정 이미지(1100), 예를 들어, 2D 가우시안 이미지가 합성되어 제 2 GT 스코어 맵(73)이 생성될 수 있다.12 and 13, among a plurality of
연결 박스(63a, 63b, 63c)는, 서로 인접한 글자 박스들의 내부 공간에 설정된 복수의 지점들을 연결함으로써 결정될 수 있다. 구체적으로, 도 13에 도시된 바와 같이, 서로 인접한 글자 박스들(62a, 62b) 중 좌측 글자 박스(62a) 내 2개의 지점 및 우측 글자 박스(62b) 내 2개의 지점을 연결한 연결 박스(63a)가 결정될 수 있다.The
일 예에서, 서로 인접한 좌측 글자 박스(62a) 및 우측 글자 박스(62b)의 모서리들 중 좌측 하단 모서리와 우측 상단 모서리를 연결하고, 좌측 상단 모서리와 우측 하단 모서리를 연결하여 상부 및 하부의 삼각형들을 결정하고, 해당 삼각형들의 중점들을 연결함으로써 연결 박스(63a)가 결정될 수도 있다.In one example, among the corners of the left and
도 14는 일 실시예에 따른 글자 인식 장치(100)의 구성을 도시하는 블록도이다.14 is a block diagram illustrating a configuration of a
도 14를 참조하면, 글자 인식 장치(100)는 메모리(1410), 통신 모듈(1430) 및 프로세서(1450)를 포함할 수 있다. 메모리(1410)에는 적어도 하나의 인스트럭션이 저장될 수 있고, 프로세서(1450)는 적어도 하나의 인스트럭션에 따라 글자 검출 및 글자 검출 모델(410)의 훈련을 제어할 수 있다.Referring to FIG. 14, the
도 14는 하나의 메모리(1410)와 하나의 프로세서(1450)만을 도시하고 있으나, 글자 인식 장치(100)는 복수의 메모리 및/또는 복수의 프로세서를 포함할 수도 있다.14 illustrates only one
메모리(1410)는 글자 검출 모델(410) 및 글자 인식 모델(420)을 저장할 수 있다. 또한, 메모리(1410)는 특징 추출 모델(800)을 더 저장할 수 있다.The
프로세서(1450)는 글자 검출 모델(410)로 입력 데이터(10)를 입력하고, 글자 검출 모델(410)에서 출력되는 출력 데이터에 기초하여 입력 데이터(10) 내 단어 영역의 위치 정보를 획득할 수 있다. 그리고, 프로세서(1450)는 획득한 위치 정보에 대응하는 부분 데이터를 글자 인식 모델(420)에 입력하고, 글자 인식 모델(420)에서 출력된 글자 정보를 메모리(1410) 또는 기타 저장 장치에 저장할 수 있다.The
일 실시예에서, 프로세서(1450)는 학습용 데이터(60)에 기초하여 글자 검출 모델(410), 글자 인식 모델(420) 및 특징 추출 모델(800) 중 적어도 하나를 훈련시킬 수 있다.In an embodiment, the
통신 모듈(1430)은 네트워크를 통해 외부 장치와 데이터를 송수신한다. 예를 들어, 통신 모듈(1430)은 외부 장치와 이미지를 송수신하거나, 입력 데이터(10) 내에서 인식된 글자 정보를 외부 장치와 송수신할 수 있다.The
도 15는 일 실시예에 따른 글자 인식 장치(100)가 적용될 수 있는 서버 장치(1510) 및 클라이언트 장치(1520)를 도시하는 도면이다.15 is a diagram illustrating a
글자 인식 장치(100)는 서버 장치(1510)로 구현되거나 또는 클라이언트 장치(1520)로 구현될 수 있다.The
글자 인식 장치(100)가 서버 장치(1510)로 구현되는 경우, 서버 장치(1510)는 클라이언트 장치(1520)로부터 이미지를 수신하고, 수신된 이미지 내에서 글자를 인식하여 저장할 수 있다. 일 예에서, 서버 장치(1510)는 클라이언트 장치(1520)로부터 수신된 이미지 내에서 인식된 글자 정보를 클라이언트 장치(1520)로 전송할 수도 있다. 또한, 서버 장치(1510)는 클라이언트 장치(1520)를 포함한 외부 장치로부터 학습용 데이터를 수신하거나, 또는 내부에 저장된 학습용 데이터를 이용하여 글자 검출 모델(410), 글자 인식 모델(420) 및 특징 추출 모델(800) 중 적어도 하나의 훈련을 제어할 수도 있다.When the
글자 인식 장치(100)가 클라이언트 장치(1520)로 구현되는 경우, 클라이언트 장치(1520)는 클라이언트 장치(1520)의 카메라에 의해 촬영된 이미지 또는 클라이언트 장치(1520)에 저장된 이미지 내에서 글자를 인식하여 저장할 수 있다. When the
일 실시예에서, 클라이언트 장치(1520)는 글자 검출 모델(410), 글자 인식 모델(420) 및 특징 추출 모델(800) 중 적어도 하나의 실행을 위한 데이터를 서버 장치(1510)로부터 수신할 수 있다. 클라이언트 장치(1520)는 카메라 모듈을 통해 촬영된 이미지, 내부 메모리에 저장된 이미지 또는 외부 장치로부터 수신된 이미지를 글자 검출 모델(410), 글자 인식 모델(420) 및 특징 추출 모델(800) 중 적어도 하나에 입력시켜 글자를 인식할 수 있다.In one embodiment, the
클라이언트 장치(1520)는 외부 장치로부터 학습용 데이터를 수신하거나, 또는 내부에 저장된 학습용 데이터를 이용하여 글자 검출 모델(410), 글자 인식 모델(420) 및 특징 추출 모델(800) 중 적어도 하나의 훈련을 제어할 수도 있다. 구현예에 따라, 글자 검출 모델(410), 글자 인식 모델(420) 및 특징 추출 모델(800) 중 적어도 하나의 실행을 위한 데이터를 클라이언트 장치(1520)로 제공한 서버 장치(1510)가 학습용 데이터에 기초하여 글자 검출 모델(410), 글자 인식 모델(420) 및 특징 추출 모델(800) 중 적어도 하나의 훈련을 제어할 수도 있다. 이 경우, 서버 장치(1510)는 훈련 결과 갱신된 가중치 정보만을 클라이언트 장치(1520)로 전송하고, 클라이언트 장치(1520)는 수신된 정보에 따라 글자 검출 모델(410), 글자 인식 모델(420) 및 특징 추출 모델(800) 중 적어도 하나를 갱신할 수 있다.The
도 15는 클라이언트 장치(1520)로서, 데스크탑 PC를 도시하고 있으나, 이에 한정되는 것은 아니고 클라이언트 장치(1520)는 노트북, 스마트폰, 태블릿 PC, AI(artificial intelligence) 로봇, AI 스피커, 웨어러블 기기 등을 포함할 수 있다.15 illustrates a desktop PC as a
한편, 상술한 본 개시의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 작성된 프로그램은 매체에 저장될 수 있다.Meanwhile, the above-described embodiments of the present disclosure can be written as programs that can be executed on a computer, and the written programs can be stored in a medium.
매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.The medium may be one that continuously stores a program executable by a computer, or temporarily stores a program for execution or download. In addition, the medium may be a variety of recording means or storage means in a form in which a single piece of hardware or several pieces of hardware are combined. The medium is not limited to a medium directly connected to a computer system, but may be distributed on a network. Examples of media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical recording media such as CD-ROMs and DVDs, magnetic-optical media such as floptical disks, and And ROM, RAM, flash memory, and the like may be configured to store program instructions. In addition, examples of other media include an app store that distributes applications, a site that supplies or distributes various software, and a recording medium or storage medium managed by a server.
이상, 본 개시의 기술적 사상을 바람직한 실시예를 들어 상세하게 설명하였으나, 본 개시의 기술적 사상은 상기 실시예들에 한정되지 않고, 본 개시의 기술적 사상의 범위 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 여러 가지 변형 및 변경이 가능하다.Above, the technical idea of the present disclosure has been described in detail with reference to a preferred embodiment, but the technical idea of the present disclosure is not limited to the above embodiments, and those having ordinary knowledge in the art within the scope of the technical idea of the present disclosure Various modifications and changes are possible by the user.
100: 글자 인식 장치
1410: 메모리
1430: 통신 모듈
1450: 프로세서
1510: 서버 장치
1520: 클라이언트 장치100: character recognition device
1410: memory
1430: communication module
1450: processor
1510: server device
1520: client device
Claims (15)
입력 데이터를 글자 검출 모델에 입력하는 단계;
상기 글자 검출 모델에서 출력되는 출력 데이터에 기초하여 상기 입력 데이터 내 단어 영역의 위치 정보를 획득하는 단계;
상기 획득한 위치 정보에 대응하는 부분 데이터를 상기 입력 데이터로부터 추출하는 단계; 및
상기 부분 데이터를 글자 인식 모델에 입력하여 상기 부분 데이터 내 글자를 인식하는 단계를 포함하되,
상기 출력 데이터는, 상기 입력 데이터 내 글자가 존재할 확률을 나타내는 제 1 스코어 맵 및 상기 입력 데이터 내 글자들 사이의 연결성을 나타내는 제 2 스코어 맵을 포함하는 것을 특징으로 하는 글자 인식 방법.
In a method for recognizing a character in input data by a character recognition device,
Inputting input data into a character detection model;
Acquiring location information of a word area in the input data based on output data output from the character detection model;
Extracting partial data corresponding to the acquired location information from the input data; And
Including the step of recognizing a character in the partial data by inputting the partial data into a character recognition model,
And the output data includes a first score map indicating a probability of the existence of a character in the input data and a second score map indicating connectivity between the characters in the input data.
상기 단어 영역의 위치 정보를 획득하는 단계는,
상기 제 1 스코어 맵 및 상기 제 2 스코어 맵 내 값들과 임계 값의 비교 결과에 따라 상기 제 1 스코어 맵 및 상기 제 2 스코어 맵을 이진화하는 단계;
이진화된 상기 제 1 스코어 맵과 이진화된 상기 제 2 스코어 맵을 병합하는 단계;
병합 맵 내에서 소정 값을 갖는 영역을 결정하는 단계; 및
상기 결정된 영역을 포함하는 단어 영역의 위치 정보를 결정하는 단계를 포함하는 것을 특징으로 하는 글자 인식 방법.
The method of claim 1,
Acquiring the location information of the word area,
Binarizing the first score map and the second score map according to a result of comparing values in the first score map and the second score map with a threshold value;
Merging the binarized first score map and the binarized second score map;
Determining an area having a predetermined value in the merge map; And
And determining location information of a word area including the determined area.
상기 단어 영역의 위치 정보를 결정하는 단계는,
상기 결정된 영역을 포함하는 최소 크기의 단어 박스를 결정하는 단계; 및
상기 결정된 단어 박스의 위치 정보를 상기 단어 영역의 위치 정보로 결정하는 단계를 포함하는 것을 특징으로 하는 글자 인식 방법.
The method of claim 3,
The step of determining the location information of the word area,
Determining a word box having a minimum size including the determined area; And
And determining position information of the determined word box as position information of the word area.
상기 글자 인식 방법은,
학습용 데이터 내 글자가 존재할 확률을 나타내는 제 1 GT 스코어 맵, 및 상기 학습용 데이터 내 글자들 사이의 연결성을 나타내는 제 2 GT 스코어 맵을 획득하는 단계; 및
상기 학습용 데이터를 상기 글자 검출 모델에 입력하는 단계를 더 포함하되,
상기 학습용 데이터에 대응하여 상기 글자 검출 모델에서 출력되는 제 1 스코어 맵 및 제 2 스코어 맵 각각과 상기 제 1 GT 스코어 맵 및 상기 제 2 GT 스코어 맵의 비교 결과에 따라 상기 글자 검출 모델의 내부 가중치가 갱신되는 것을 특징으로 하는 글자 인식 방법.
The method of claim 1,
The character recognition method,
Obtaining a first GT score map indicating a probability of the existence of a character in the learning data, and a second GT score map indicating a connection between the characters in the learning data; And
Further comprising the step of inputting the learning data into the character detection model,
According to the comparison result of each of the first score map and the second score map output from the character detection model and the first GT score map and the second GT score map corresponding to the training data, the internal weight of the character detection model is Character recognition method, characterized in that updated.
상기 제 1 GT 스코어 맵을 획득하는 단계는,
상기 학습용 데이터 내 단어를 포함하는 단어 박스를 결정하는 단계;
상기 결정된 단어 박스에 포함된 글자의 개수에 따라 상기 단어 박스를 복수의 글자 박스로 분할하는 단계; 및
상기 복수의 글자 박스 각각에 소정의 이미지를 합성하여 상기 제 1 GT 스코어 맵을 생성하는 단계를 포함하는 것을 특징으로 하는 글자 인식 방법.
The method of claim 5,
The step of obtaining the first GT score map,
Determining a word box including words in the training data;
Dividing the word box into a plurality of letter boxes according to the number of letters included in the determined word box; And
And generating the first GT score map by synthesizing a predetermined image on each of the plurality of text boxes.
상기 제 2 GT 스코어 맵을 생성하는 단계는,
상기 복수의 글자 박스들 중 서로 인접한 글자 박스들 사이의 경계선 상에 위치하는 연결 박스를 결정하는 단계; 및
상기 연결 박스에 소정의 이미지를 합성하여 상기 제 2 GT 스코어 맵을 생성하는 단계를 포함하는 것을 특징으로 하는 글자 인식 방법.
The method of claim 6,
The step of generating the second GT score map,
Determining a connection box positioned on a boundary line between adjacent text boxes among the plurality of text boxes; And
And generating the second GT score map by synthesizing a predetermined image in the connection box.
상기 글자 인식 방법은,
상기 부분 데이터 내에서 인식된 글자 그룹에 소정의 기호가 포함되어 있는 경우, 해당 글자 그룹을 제 1 종류의 정보로 결정하는 단계를 더 포함하는 것을 특징으로 하는 글자 인식 방법.
The method of claim 1,
The character recognition method,
And when a predetermined symbol is included in a character group recognized in the partial data, determining the character group as a first type of information.
상기 입력 데이터로부터 추출된 부분 데이터의 개수는 복수 개이되,
상기 글자 인식 방법은,
복수의 부분 데이터들 각각에서 인식된 글자 그룹들을, 상기 입력 데이터 내에서의 상기 복수의 부분 데이터들의 위치에 따라 정렬하는 단계를 더 포함하는 것을 특징으로 하는 글자 인식 방법.
The method of claim 1,
The number of partial data extracted from the input data is plural,
The character recognition method,
And aligning the character groups recognized from each of the plurality of partial data according to the positions of the plurality of partial data in the input data.
상기 글자 인식 방법은,
상기 정렬된 글자 그룹들 중 연속으로 정렬된 소정 개수의 글자 그룹에 포함된 글자의 개수에 기초하여 글자의 재인식이 필요한지 여부를 결정하는 단계를 더 포함하는 것을 특징으로 하는 글자 인식 방법.
The method of claim 9,
The character recognition method,
And determining whether re-recognition of a letter is required based on the number of letters included in a predetermined number of letter groups arranged in succession among the sorted letter groups.
상기 글자를 인식하는 단계는,
상기 글자 검출 모델에서 출력되는 출력 데이터를 상기 글자 인식 모델로 더 입력시켜 상기 부분 데이터 내 글자를 인식하는 단계를 포함하는 것을 특징으로 하는 글자 인식 방법.
The method of claim 1,
Recognizing the letter,
And recognizing a character in the partial data by further inputting output data output from the character detection model to the character recognition model.
상기 입력 데이터는,
원본 이미지에 대응하여 특징 추출 모델로부터 출력된 특징 맵을 포함하는 것을 특징으로 하는 글자 인식 방법.
The method of claim 1,
The input data,
Character recognition method comprising a feature map output from the feature extraction model corresponding to the original image.
A program stored in a medium to execute the character recognition method of claim 1 in combination with hardware.
적어도 하나의 인스트럭션을 저장하는 메모리를 포함하되,
상기 프로세서는 상기 적어도 하나의 인스트럭션에 따라,
입력 데이터를 글자 검출 모델에 입력하고,
상기 글자 검출 모델에서 출력되는 출력 데이터에 기초하여 상기 입력 데이터 내 단어 영역의 위치 정보를 획득하고,
상기 획득한 위치 정보에 대응하는 부분 데이터를 상기 입력 데이터로부터 추출하고,
상기 부분 데이터를 글자 인식 모델에 입력하여 상기 부분 데이터 내 글자를 인식하되,
상기 출력 데이터는, 상기 입력 데이터 내 글자가 존재할 확률을 나타내는 제 1 스코어 맵 및 상기 입력 데이터 내 글자들 사이의 연결성을 나타내는 제 2 스코어 맵을 포함하는 것을 특징으로 하는 글자 인식 장치.
Processor; And
Including a memory for storing at least one instruction,
The processor according to the at least one instruction,
Input data into the character detection model,
Obtaining location information of a word area in the input data based on output data output from the character detection model,
Extracting partial data corresponding to the acquired location information from the input data,
By inputting the partial data into a character recognition model to recognize characters in the partial data,
The output data includes a first score map indicating a probability of the existence of a character in the input data and a second score map indicating connectivity between the characters in the input data.
입력 데이터를 글자 검출 모델에 입력하는 단계;
상기 글자 검출 모델에서 출력되는 출력 데이터에 기초하여 상기 입력 데이터 내 단어 영역의 위치 정보를 획득하는 단계;
상기 획득한 위치 정보에 대응하는 부분 데이터를 상기 입력 데이터로부터 추출하는 단계; 및
상기 부분 데이터를 글자 인식 모델에 입력하여 상기 부분 데이터 내 글자를 인식하는 단계를 포함하되,
상기 글자를 인식하는 단계는,
상기 글자 검출 모델에서 출력되는 출력 데이터를 상기 글자 인식 모델로 더 입력시켜 상기 부분 데이터 내 글자를 인식하는 단계를 포함하는 것을 특징으로 하는 글자 인식 방법.In a method for recognizing a character in input data by a character recognition device,
Inputting input data into a character detection model;
Acquiring location information of a word area in the input data based on output data output from the character detection model;
Extracting partial data corresponding to the acquired location information from the input data; And
Including the step of recognizing a character in the partial data by inputting the partial data into a character recognition model,
Recognizing the letter,
And recognizing a character in the partial data by further inputting output data output from the character detection model to the character recognition model.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190022102A KR102206604B1 (en) | 2019-02-25 | 2019-02-25 | Apparatus and method for recognizing character |
PCT/KR2020/001333 WO2020175806A1 (en) | 2019-02-25 | 2020-01-29 | Device for recognizing characters and method for recognizing characters by means of same |
JP2021549641A JP7297910B2 (en) | 2019-02-25 | 2020-01-29 | Character recognition device and character recognition method by character recognition device |
KR1020210006280A KR102351578B1 (en) | 2019-02-25 | 2021-01-15 | Apparatus and method for recognizing character |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190022102A KR102206604B1 (en) | 2019-02-25 | 2019-02-25 | Apparatus and method for recognizing character |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210006280A Division KR102351578B1 (en) | 2019-02-25 | 2021-01-15 | Apparatus and method for recognizing character |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200106110A KR20200106110A (en) | 2020-09-11 |
KR102206604B1 true KR102206604B1 (en) | 2021-01-22 |
Family
ID=72240107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190022102A KR102206604B1 (en) | 2019-02-25 | 2019-02-25 | Apparatus and method for recognizing character |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP7297910B2 (en) |
KR (1) | KR102206604B1 (en) |
WO (1) | WO2020175806A1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102386162B1 (en) * | 2020-11-13 | 2022-04-15 | 주식회사 와들 | System for generating product information data from image and method thereof |
KR102548826B1 (en) * | 2020-12-11 | 2023-06-28 | 엔에이치엔클라우드 주식회사 | Method and system for providing deep learning-based menu |
WO2024013864A1 (en) * | 2022-07-13 | 2024-01-18 | 株式会社東芝 | Character recognition device, character recognition method, and program |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101805318B1 (en) * | 2016-11-01 | 2017-12-06 | 포항공과대학교 산학협력단 | Method and apparatus for identifying text region |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3840206B2 (en) | 2003-06-23 | 2006-11-01 | 株式会社東芝 | Translation method and program in copying machine |
JP2010191724A (en) | 2009-02-18 | 2010-09-02 | Seiko Epson Corp | Image processor and control program |
KR101727137B1 (en) | 2010-12-14 | 2017-04-14 | 한국전자통신연구원 | Method and apparatus for extracting text area, and automatic recognition system of number plate using the same |
KR101295000B1 (en) * | 2013-01-22 | 2013-08-09 | 주식회사 케이지모빌리언스 | System for recognizing credit card number using area property of card number and method thereof |
US20150100537A1 (en) * | 2013-10-03 | 2015-04-09 | Microsoft Corporation | Emoji for Text Predictions |
US9449239B2 (en) | 2014-05-30 | 2016-09-20 | Apple Inc. | Credit card auto-fill |
KR101824600B1 (en) | 2015-09-08 | 2018-03-14 | 에스케이플래닛 주식회사 | A system and method credit card number and expiration date recognition using a terminal device |
JP2017058950A (en) | 2015-09-16 | 2017-03-23 | 大日本印刷株式会社 | Recognition device, image pickup system, and image pickup device, and recognition method and program for recognition |
KR102376201B1 (en) * | 2017-04-04 | 2022-03-18 | 한국전자통신연구원 | System and method for generating multimedia knowledge base |
-
2019
- 2019-02-25 KR KR1020190022102A patent/KR102206604B1/en active IP Right Grant
-
2020
- 2020-01-29 JP JP2021549641A patent/JP7297910B2/en active Active
- 2020-01-29 WO PCT/KR2020/001333 patent/WO2020175806A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101805318B1 (en) * | 2016-11-01 | 2017-12-06 | 포항공과대학교 산학협력단 | Method and apparatus for identifying text region |
Also Published As
Publication number | Publication date |
---|---|
KR20200106110A (en) | 2020-09-11 |
WO2020175806A1 (en) | 2020-09-03 |
JP7297910B2 (en) | 2023-06-26 |
JP2022522425A (en) | 2022-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ye et al. | Text detection and recognition in imagery: A survey | |
CN109948615B (en) | Multi-language text detection and recognition system | |
US9171204B2 (en) | Method of perspective correction for devanagari text | |
US8744196B2 (en) | Automatic recognition of images | |
US9262699B2 (en) | Method of handling complex variants of words through prefix-tree based decoding for Devanagiri OCR | |
CN104217203B (en) | Complex background card face information identifying method and system | |
KR102206604B1 (en) | Apparatus and method for recognizing character | |
KR102211763B1 (en) | Apparatus, method and system for detecting character | |
CN108681735A (en) | Optical character recognition method based on convolutional neural networks deep learning model | |
CN111401309B (en) | CNN training and remote sensing image target identification method based on wavelet transformation | |
KR102351578B1 (en) | Apparatus and method for recognizing character | |
Halima et al. | Nf-savo: Neuro-fuzzy system for arabic video ocr | |
Essa et al. | Enhanced technique for Arabic handwriting recognition using deep belief network and a morphological algorithm for solving ligature segmentation | |
Dat et al. | An improved CRNN for Vietnamese Identity Card Information Recognition. | |
Wicht et al. | Camera-based sudoku recognition with deep belief network | |
US20230036812A1 (en) | Text Line Detection | |
CN111476090B (en) | Watermark identification method and device | |
KR102026280B1 (en) | Method and system for scene text detection using deep learning | |
CN116052189A (en) | Text recognition method, system and storage medium | |
Ou et al. | ERCS: An efficient and robust card recognition system for camera-based image | |
Shinde et al. | Using CRNN to Perform OCR over Forms | |
Konstantakis et al. | A writer identification system of greek historical documents using matlab | |
Dugar et al. | From pixels to words: A scalable journey of text information from product images to retail catalog | |
CN112818823B (en) | Text extraction method based on bill content and position information | |
CN107168988A (en) | Inquire about method, device, equipment and the computer-readable storage medium of lottery information |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |