KR102241480B1 - Methods and devices for correcting reading errors in mathematical OCR(Optical Character Recognition) and stroke recognition - Google Patents

Methods and devices for correcting reading errors in mathematical OCR(Optical Character Recognition) and stroke recognition Download PDF

Info

Publication number
KR102241480B1
KR102241480B1 KR1020200137173A KR20200137173A KR102241480B1 KR 102241480 B1 KR102241480 B1 KR 102241480B1 KR 1020200137173 A KR1020200137173 A KR 1020200137173A KR 20200137173 A KR20200137173 A KR 20200137173A KR 102241480 B1 KR102241480 B1 KR 102241480B1
Authority
KR
South Korea
Prior art keywords
equation
user
character
display unit
network
Prior art date
Application number
KR1020200137173A
Other languages
Korean (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 KR1020200137173A priority Critical patent/KR102241480B1/en
Application granted granted Critical
Publication of KR102241480B1 publication Critical patent/KR102241480B1/en

Links

Images

Classifications

    • G06K9/00442
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06K2209/01
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Character Discrimination (AREA)

Abstract

The present specification provides a method for alleviating reading errors in mathematical equation recognition. The method for recognizing a mathematical equation inputted from a user by a user device comprises: a step of a receiving a first mathematical equation through a display unit from the user; a step of transmitting an image including the first mathematical equation to a network; a step of receiving a string of the first mathematical equation predicted in the network and a candidate list associated with the string of the first mathematical equation based on the image including the first mathematical equation from the network; a step of displaying the string of the first mathematical equation through the display unit to the user; a step of receiving a selection for a character with an error in the string of the first mathematical equation from the user; a step of displaying one or more candidates associated with the character with an error on the display unit based on the candidate list associated with the string of the first mathematical equation; and a step of receiving a selection for a correct answer candidate among the one or more candidates from the user.

Description

수학식의 OCR(Optical Character Recognition) 및 스트로크 인식에 있어서 판독 오류를 수정하는 방법 및 이를 위한 장치{Methods and devices for correcting reading errors in mathematical OCR(Optical Character Recognition) and stroke recognition}[Methods and devices for correcting reading errors in mathematical OCR (Optical Character Recognition) and stroke recognition]

본 명세서는 러닝 기술을 이용하여 필기 및 활자 이미지 또는 디바이스 스트로크 방식으로 쓰여진 수식을 인식할 때, 인식율을 높여도 문자의 특성 때문에 정확한 판독이 불가능한 경우, 판독의 결과값을 받은 사용자가 자신의 의도대로 쉽고 빠르게 수식을 수정하는 방법 및 이를 위한 장치에 관한 것이다.In this specification, when recognizing an equation written in a handwriting and print image or device stroke method using a learning technology, if accurate reading is not possible due to the characteristics of the character even if the recognition rate is increased, the user who received the result of the reading is It relates to a method and apparatus for easily and quickly modifying an equation.

광학 문자 인식(Optical character recognition; OCR)은 사람이 쓰거나 기계로 인쇄한 문자의 영상을 이미지 스캐너로 획득하여 기계가 읽을 수 있는 문자로 변환하는 것이다. 이미지 스캔으로 얻을 수 있는 문서의 활자 영상을 컴퓨터가 편집 가능한 문자코드 등의 형식으로 변환하는 소프트웨어로서 일반적으로 OCR이라고 하며, OCR은 인공지능이나 기계 시각(machine vision)의 연구분야로 시작되었다.Optical character recognition (OCR) is the conversion of an image of a character written by a human or printed by a machine with an image scanner and converted into machine-readable characters. It is a software that converts the printed image of a document that can be obtained by scanning an image into a format such as a character code that can be edited by a computer, and is generally referred to as OCR, and OCR began as a research field of artificial intelligence or machine vision.

종래의 OCR을 이용하여, 수학식을 인식하는 경우, 예를 들어, 0.x라고 필기했을 때, "0"을 "0, ㅇ, o" 셋 중에 무엇으로 인식해야 할지는 대단히 모호할 수 있다. 뿐만 아니라, "."도 소수점인지 곱하기인지 때로는 쉼표인지도 모호할 수 있다. 또한, "x"도 "

Figure 112020111839795-pat00001
" 중 무엇인지 구분하는 것에도, 어려움이 있다.In the case of recognizing an equation using the conventional OCR, for example, when writing as 0.x, it may be very ambiguous as to which of the three "0" to be recognized as "0, o, o". In addition, it can be ambiguous whether "." is also a decimal point, a multiplication, or sometimes a comma. Also, "x" is also "
Figure 112020111839795-pat00001
There is also a difficulty in distinguishing which one is among ".

공개특허공보 제10-2016-0101683호(20160825)Unexamined Patent Publication No. 10-2016-0101683 (20160825) 공개특허공보 제10-2016-0018495호(20160217)Unexamined Patent Publication No. 10-2016-0018495 (20160217) 공개특허공보 제10-2018-0060971호(20180607)Unexamined Patent Publication No. 10-2018-0060971 (20180607)

본 명세서의 목적은, 수학식 인식의 판독오류를 개선하기 위한 방법을 제안한다.An object of the present specification is to propose a method for improving the reading error of mathematical expression recognition.

또한, 본 명세서의 목적은, 수학식 인식의 판독오류를 개선하기 위해, 최초 수학식의 예측 결과와 함께 후보자 리스트를 사용자에게 전달하는 방법을 제안한다.In addition, an object of the present specification is to propose a method of delivering a candidate list together with a prediction result of an initial equation to a user in order to improve a reading error in recognition of an equation.

본 명세서가 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 이하의 명세서의 상세한 설명으로부터 본 명세서가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The technical problems to be achieved by the present specification are not limited to the technical problems mentioned above, and other technical problems that are not mentioned are obvious to those of ordinary skill in the technical field to which the present specification belongs from the detailed description of the following specification. It will be understandable.

본 명세서의 일 양상은, 사용자 디바이스에서, 사용자로부터 입력된 수학식을 인식하는 방법에 있어서, 상기 사용자로부터 디스플레이부를 통해, 제1 수학식을 입력받는 단계; 상기 제1 수학식이 포함된 이미지를 네트워크로 전송하는 단계; 상기 네트워크로부터, 상기 제1 수학식이 포함된 이미지에 근거하여, 상기 네트워크에서 예측된 1) 상기 제1 수학식의 문자열, 및 2) 상기 제1 수학식의 문자열과 관련된 후보자 리스트를 수신하는 단계; 상기 사용자에게, 상기 디스플레이부를 통해, 상기 제1 수학식의 문자열을 표시하는 단계; 상기 사용자로부터, 상기 제1 수학식의 문자열 중에 오류가 있는 문자를 선택받는 단계; 상기 제1 수학식의 문자열과 관련된 후보자 리스트에 근거하여, 상기 오류가 있는 문자와 관련된 적어도 하나 이상의 후보자들을 상기 디스플레이부에 표시하는 단계; 및 상기 사용자로부터, 상기 하나 이상의 후보자들 중에서, 정답 후보자를 선택받는 단계;를 포함할 수 있다.An aspect of the present specification is a method of recognizing an equation input from a user in a user device, the method comprising: receiving a first equation from the user through a display unit; Transmitting an image including the first equation to a network; Receiving, from the network, 1) a character string of the first equation, and 2) a candidate list related to the character string of the first equation, predicted by the network, based on the image including the first equation; Displaying the character string of the first equation to the user through the display unit; Receiving, from the user, a character with an error in the character string of the first equation; Displaying at least one or more candidates related to the erroneous character on the display unit based on a candidate list related to the character string of the first equation; And receiving, from the user, selecting a correct answer candidate from among the one or more candidates.

또한, 상기 오류가 있는 문자를 상기 정답 후보자로 교체하여, 상기 디스플레이부에 표시하는 단계; 를 더 포함할 수 있다.In addition, replacing the errored character with the correct answer candidate and displaying it on the display unit; It may further include.

또한, 상기 제1 수학식의 문자열 중 특정 문자를 상기 디스플레이부 상에서 지우고, 다시 입력하기 위한 아이콘을 표시하는 단계; 상기 아이콘이 선택된 경우, 상기 사용자로부터 상기 사용자가 지우고자 하는 문자를 선택받는 단계; 상기 사용자가 지우고자 하는 문자를 상기 디스플레이부에 표시하지 않고, 상기 사용자가 지우고자 하는 문자를 대체하는 문자를 상기 사용자에게 입력받는 단계; 및 상기 대체하는 문자를 상기 사용자가 지우고자 하는 문자가 표시되었던 위치에 표시하는 단계; 를 더 포함할 수 있다.In addition, deleting a specific character from the character string of the first equation on the display unit and displaying an icon for inputting again; When the icon is selected, receiving, from the user, a character to be erased by the user; Not displaying the character to be erased by the user on the display unit, and receiving a character to replace the character to be erased by the user from the user; And displaying the replacement character at a position where the character to be erased by the user has been displayed. It may further include.

또한, 제2 수학식이 포함된 이미지를 상기 네트워크로 전달하는 단계로서, 상기 제2 수학식은 상기 대체하는 문자가 포함됨; 상기 네트워크로부터, 상기 제2 수학식이 포함된 이미지에 근거하여, 상기 네트워크에서 예측된 1) 상기 제2 수학식의 문자열, 및 2) 상기 제2 수학식의 문자열과 관련된 후보자 리스트를 수신하는 단계; 및 상기 사용자에게, 상기 디스플레이부를 통해, 상기 제2 수학식의 문자열을 표시하는 단계;를 더 포함할 수 있다.In addition, transmitting an image including a second equation to the network, wherein the second equation includes the replacement character; Receiving, from the network, a list of candidates related to the character string of 1) the second equation, and 2) the character string of the second equation, predicted by the network, based on the image including the second equation; And displaying the character string of the second equation to the user through the display unit.

본 명세서의 또 다른 일 양상은, 사용자로부터 입력된 수학식을 인식하기 위한 사용자 디바이스에 있어서, 디스플레이부; 신호를 송수신하기 위한 송수신기; 및 상기 디스플레이부 및 상기 송수신기를 기능적으로 제어하는 프로세서;를 포함하며, 상기 프로세서는 상기 사용자로부터 상기 디스플레이부를 통해, 제1 수학식을 입력받고, 상기 송수신기를 통해, 상기 제1 수학식이 포함된 이미지를 네트워크로 전송하며, 상기 네트워크로부터, 상기 제1 수학식이 포함된 이미지에 근거하여, 상기 네트워크에서 예측된 1) 상기 제1 수학식의 문자열, 및 2) 상기 제1 수학식의 문자열과 관련된 후보자 리스트를 수신하고, 상기 사용자에게, 상기 디스플레이부를 통해, 상기 제1 수학식의 문자열을 표시하며, 상기 사용자로부터, 상기 제1 수학식의 문자열 중에 오류가 있는 문자를 선택받고, 상기 제1 수학식의 문자열과 관련된 후보자 리스트에 근거하여, 상기 오류가 있는 문자와 관련된 적어도 하나 이상의 후보자들을 상기 디스플레이부에 표시하며, 상기 사용자로부터, 상기 하나 이상의 후보자들 중에서, 정답 후보자를 선택 받을 수 있다.Another aspect of the present specification is a user device for recognizing an equation input from a user, comprising: a display unit; A transceiver for transmitting and receiving signals; And a processor that functionally controls the display unit and the transceiver, wherein the processor receives a first equation from the user through the display unit, and the image including the first equation through the transceiver Is transmitted to the network, and from the network, based on the image including the first equation, 1) the character string of the first equation, and 2) the candidate related to the character string of the first equation, predicted by the network Receiving a list, displaying the character string of the first equation to the user through the display unit, and receiving a selection of a character with an error from the character string of the first equation from the user, and the first equation Based on the candidate list related to the character string of, at least one or more candidates related to the erroneous character may be displayed on the display unit, and a correct answer candidate may be selected from the one or more candidates from the user.

본 명세서의 또 다른 일 양상은, 네트워크가 사용자 디바이스를 통해, 사용자로부터 입력된 수학식을 인식하는 방법에 있어서, 상기 사용자 디바이스로부터, 상기 사용자로부터 입력된 수학식이 포함된 이미지를 수신하는 단계; 상기 이미지 및 상기 수학식의 문자열을 예측하기 위한 학습 모델에 근거하여, 상기 수학식의 문자열을 예측하고, 상기 예측된 수학식의 문자열과 관련된 후보자 리스트를 생성하는 단계; 및 상기 사용자 디바이스로, 상기 수학식의 문자열 및 상기 후보자 리스트를 전송하는 단계; 를 포함할 수 있다.Another aspect of the present specification is a method for a network to recognize an equation input from a user through a user device, the method comprising: receiving, from the user device, an image including an equation input from the user; Predicting the character string of the equation based on the image and the learning model for predicting the character string of the equation, and generating a candidate list related to the predicted character string of the equation; And transmitting the character string of the equation and the candidate list to the user device. It may include.

또한, 상기 사용자 디바이스로부터, 상기 수학식의 문자열의 오류를 정정한 결과값을 수신하는 단계; 및 상기 결과값을 이용하여, 상기 학습 모델을 재학습하는 단계;를 더 포함할 수 있다.In addition, receiving, from the user device, a result of correcting an error in the character string of the equation; And retraining the learning model by using the result value.

본 명세서의 실시예에 따르면, 수학식 인식의 판독오류를 개선할 수 있다.According to an embodiment of the present specification, it is possible to improve a reading error in recognition of an equation.

또한, 본 명세서의 실시예에 따르면, 수학식 인식의 판독오류를 개선하기 위해, 최초 수학식의 예측 결과와 함께 후보자 리스트를 사용자에게 전달할 수 있다.In addition, according to an exemplary embodiment of the present specification, in order to improve a reading error in recognition of an equation, a list of candidates together with a prediction result of the initial equation may be delivered to the user.

또한, 본 명세서의 실시예에 따르면, 입력부과 결과부를 분리하지 않고 하나의 화면에서 판독오류 수정을 포함한 수학식의 편집이 가능하므로 디바이스 화면 공간 활용도가 높아진다.In addition, according to the exemplary embodiment of the present specification, since it is possible to edit an equation including reading error correction on one screen without separating the input unit and the result unit, the utilization of the device screen space is increased.

본 명세서에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 명세서가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects obtainable in the present specification are not limited to the above-mentioned effects, and other effects not mentioned will be clearly understood by those of ordinary skill in the art from the following description. .

도 1은 본 명세서의 수학식을 인식하기 위한 시스템에 대한 구성을 개념적으로 설명하기 위한 도이다.
도 2는 본 명세서의 일 실시예에 따른 수학식 인식 디바이스의 구성을 설명하기 위한 도이다.
도 3은 본 명세서가 적용될 수 있는 OCR 모델의 예시이다.
도 4는 본 명세서에서 적용될 수 있는 일반적인 문자 인식에서 후보자 추천 방법의 예시이다.
도 5 및 도 6은 본 명세서가 적용될 수 있는 디스플레이부의 예시이다.
도 7은 기존의 수학식 인식 방법의 예시이다.
도 8은 본 명세서가 적용될 수 있는 일 실시예이다.
도 9는 본 명세서가 적용될 수 있는 사용자 디바이스의 일 실시예이다.
본 명세서에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부 도면은 본 명세서에 대한 실시예를 제공하고, 상세한 설명과 함께 본 명세서의 기술적 특징을 설명한다.
1 is a diagram conceptually illustrating a configuration of a system for recognizing an equation of the present specification.
2 is a diagram illustrating a configuration of an equation recognition device according to an embodiment of the present specification.
3 is an example of an OCR model to which the present specification can be applied.
4 is an example of a candidate recommendation method in general character recognition that can be applied in the present specification.
5 and 6 are examples of a display unit to which the present specification can be applied.
7 is an example of an existing method for recognizing an equation.
8 is an embodiment to which the present specification may be applied.
9 is an embodiment of a user device to which the present specification may be applied.
The accompanying drawings, which are included as part of the detailed description to aid in understanding of the present specification, provide embodiments of the present specification, and describe technical features of the present specification together with the detailed description.

이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 명세서의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. Hereinafter, exemplary embodiments disclosed in the present specification will be described in detail with reference to the accompanying drawings, but the same or similar elements are assigned the same reference numerals regardless of the reference numerals, and redundant descriptions thereof will be omitted. The suffixes "module" and "unit" for constituent elements used in the following description are given or used interchangeably in consideration of only the ease of preparation of the specification, and do not have meanings or roles that are distinguished from each other by themselves. In addition, in describing the embodiments disclosed in the present specification, when it is determined that a detailed description of related known technologies may obscure the subject matter of the embodiments disclosed in the present specification, the detailed description thereof will be omitted. In addition, the accompanying drawings are for easy understanding of the embodiments disclosed in the present specification, and the technical idea disclosed in the present specification is not limited by the accompanying drawings, and all changes included in the spirit and scope of the present specification It should be understood to include equivalents or substitutes.

제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.Terms including ordinal numbers such as first and second may be used to describe various elements, but the elements are not limited by the terms. The above terms are used only for the purpose of distinguishing one component from another component.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.When a component is referred to as being "connected" or "connected" to another component, it is understood that it may be directly connected or connected to the other component, but other components may exist in the middle. It should be. On the other hand, when a component is referred to as being "directly connected" or "directly connected" to another component, it should be understood that there is no other component in the middle.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.Singular expressions include plural expressions unless the context clearly indicates otherwise.

본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.In this application, terms such as "comprises" or "have" are intended to designate the presence of features, numbers, steps, actions, components, parts, or combinations thereof described in the specification, but one or more other features. It is to be understood that the presence or addition of elements or numbers, steps, actions, components, parts, or combinations thereof does not preclude in advance.

도 1은 본 명세서의 수학식을 인식하기 위한 시스템에 대한 구성을 개념적으로 설명하기 위한 도이다.1 is a diagram conceptually illustrating a configuration of a system for recognizing an equation of the present specification.

도 1을 살펴보면, 수학식을 인식하기 위한 시스템은 사용자 디바이스(100) 및 수학식 인식 디바이스(300)를 포함할 수 있다.Referring to FIG. 1, a system for recognizing an equation may include a user device 100 and an equation recognition device 300.

사용자 디바이스(100)는 통신 네트워크를 이용하여 수학식 인식 디바이스(300)에 접속할 수 있다. 사용자는 사용자 디바이스(100)를 이용하여 수학식 인식 디바이스(300)에 접속하고, 수학식 인식 디바이스(300)와 데이터를 송수신함으로써, 수학식을 입력하고, 판독 받을 수 있다.The user device 100 may access the equation recognition device 300 using a communication network. A user may input and read an equation by accessing the equation recognition device 300 using the user device 100 and transmitting and receiving data with the equation recognition device 300.

사용자 디바이스(100)는 IP 할당된 디바이스로서 인터넷등을 통해 네트워크 통신을 수행할 수 있다. 사용자 디바이스(100)는 휴대성과 이동성이 보장되는 무선 통신 디바이스일 수 있다. 예를 들어 사용자 디바이스(100)는 네비게이션, PCS(Personal Communication System), GSM(Global System for Mobile communications), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), Wibro(Wireless Broadband Internet) 단말, 스마트폰(smartphone), 스마트 패드(smart pad), 타블렛 PC(Tablet PC) 등과 같은 모든 종류의 핸드 헬드(Hand held) 기반의 무선 통신 디바이스, 데스크탑 PC(desktop PC), 슬레이트 PC(slate PC), 노트북(랩탑) 컴퓨터(notebook(laptop) computer), PMP(Portable Multimedia Player) 등을 포함할 수 있다. The user device 100 is an IP-allocated device and may perform network communication through the Internet or the like. The user device 100 may be a wireless communication device in which portability and mobility are guaranteed. For example, the user device 100 includes navigation, Personal Communication System (PCS), Global System for Mobile communications (GSM), Personal Digital Cellular (PDC), Personal Handyphone System (PHS), Personal Digital Assistant (PDA), and IMT ( International Mobile Telecommunication)-2000, CDMA (Code Division Multiple Access)-2000, W-CDMA (W-Code Division Multiple Access), Wibro (Wireless Broadband Internet) terminal, smartphone, smart pad, All kinds of hand held wireless communication devices such as tablet PC, desktop PC, slate PC, notebook computer, It may include a Portable Multimedia Player (PMP) or the like.

본 명세서가 적용 가능한 사용 디바이스(100)는 상술한 종류에 한정되지 않고, 외부 디바이스와 통신이 가능한 형태의 디바이스를 모두 포함할 수 있음은 당연하다.It is natural that the use device 100 to which the present specification is applicable is not limited to the above-described types, and may include all types of devices capable of communicating with external devices.

상술한 사용자 디바이스(100)는 수학식을 인식하기 위한 앱을 설치 또는 탑재할 수 있다. 사용자는 사용자 디바이스(100)에 설치된 앱을 통해 수학식 인식 디바이스(300)에 접속함으로써, 수학식 인식 디바이스(300)로부터 후술되는 수학식 인식을 위한 서비스를 제공받을 수 있다.The user device 100 described above may install or mount an app for recognizing an equation. By accessing the equation recognition device 300 through an app installed on the user device 100, the user may receive a service for equation recognition, which will be described later, from the equation recognition device 300.

수학식 인식 디바이스(300)는 통신 네트워크를 통해 접속된 사용자 디바이스(100)에 입력된 수학식을 판독할 수 있다. 수학식 인식 디바이스(300)는 프로세서(310), 메모리(330) 및 통신 모듈(350) 등을 포함할 수 있다.The equation recognition device 300 may read an equation input to the user device 100 connected through a communication network. The equation recognition device 300 may include a processor 310, a memory 330, a communication module 350, and the like.

프로세서(310)는 언어처리를 수행하는 하드웨어/소프트웨어를 포함하고, 소프트웨어의 구동과 수학식 인식 디바이스(300)의 입출력과 기능 등을 제어할 수 있다.The processor 310 includes hardware/software that performs language processing, and may control the operation of software and input/output and functions of the mathematical expression recognition device 300.

메모리(330)는 미리 구축되어 있는 지식 베이스로 데이터를 저장하고 기계학습에 관련한 다양한 데이터베이스를 보관할 수 있다. 지식 베이스는 사용자로부터 입력되는 수학식을 판독하기 위한, 다양한 정보를 포함할 수 있다.The memory 330 may store data in a pre-built knowledge base and store various databases related to machine learning. The knowledge base may include various pieces of information for reading an equation input from a user.

통신 모듈(330)은 무선 통신 모듈 또는 RF 모듈를 포함할 수 있다. 무선 통신 모듈은, 예를 들면, Wi-Fi, BT, GPS 또는 NFC를 포함할 수 있다.The communication module 330 may include a wireless communication module or an RF module. The wireless communication module may include, for example, Wi-Fi, BT, GPS or NFC.

수학식 인식 디바이스(300)에 관한 자세한 내용은 도 2에서 자세하게 설명하기로 한다.Details of the equation recognition device 300 will be described in detail with reference to FIG. 2.

도 2는 본 명세서의 일 실시예에 따른 수학식 인식 디바이스의 구성을 설명하기 위한 도이다.2 is a diagram illustrating a configuration of an equation recognition device according to an embodiment of the present specification.

도 2를 살펴보면, 본 명세서의 일 실시예에 따른 수학식을 인식하기 위한 디바이스(300)는 프로세서(310), 메모리(330), 통신 모듈(350)을 포함할 수 있다.Referring to FIG. 2, a device 300 for recognizing an equation according to an embodiment of the present specification may include a processor 310, a memory 330, and a communication module 350.

프로세서(310)는 하나 이상의 어플리케이션 프로세서(application processor, AP), 하나 이상의 커뮤니케이션 프로세서(communication processor, CP) 또는 적어도 하나 이상의 AI 프로세서(artificial intelligence processor)를 포함할 수 있다. 어플리케이션 프로세서, 커뮤니케이션 프로세서 또는 AI 프로세서는 서로 다른 IC(integrated circuit) 패키지들 내에 각각 포함되거나 하나의 IC 패키지 내에 포함될 수 있다.The processor 310 may include one or more application processors (APs), one or more communication processors (CP), or at least one or more artificial intelligence processors (AI processors). The application processor, the communication processor, or the AI processor may be included in different integrated circuit (IC) packages, respectively, or may be included in one IC package.

어플리케이션 프로세서는 운영체제 또는 응용 프로그램을 구동하여 어플리케이션 프로세서에 연결된 다수의 하드웨어 또는 소프트웨어 구성요소들을 제어하고, 멀티미디어 데이터를 포함한 각종 데이터 처리/연산을 수행할 수 있다. 일 예로, 어플리케이션 프로세서는 SoC(system on chip)로 구현될 수 있다. 프로세서(310)는 GPU(graphic prcessing unit)를 더 포함할 수 있다.The application processor may drive an operating system or an application program to control a plurality of hardware or software components connected to the application processor, and perform various data processing/operations including multimedia data. For example, the application processor may be implemented as a system on chip (SoC). The processor 310 may further include a graphic processing unit (GPU).

커뮤니케이션 프로세서는 네트워크로 연결된 사용자 디바이스(100)와의 통신에서 데이터 링크를 관리하고 통신 프로토콜을 변환하는 기능을 수행할 수 있다. 일 예로, 커뮤니케이션 프로세서는 SoC로 구현될 수 있다. 커뮤니케이션 프로세서는 멀티미디어 제어 기능의 적어도 일부를 수행할 수 있다.The communication processor may perform a function of managing a data link and converting a communication protocol in communication with the user device 100 connected through a network. For example, the communication processor may be implemented as an SoC. The communication processor may perform at least a part of the multimedia control function.

또한, 커뮤니케이션 프로세서는 통신 모듈(350)의 데이터 송수신을 제어할 수 있다. 커뮤니케이션 프로세서는 어플리케이션 프로세서의 적어도 일부로 포함되도록 구현될 수도 있다.In addition, the communication processor may control data transmission/reception of the communication module 350. The communication processor may be implemented to be included as at least a part of the application processor.

어플리케이션 프로세서 또는 커뮤니케이션 프로세서는 각각에 연결된 비휘발성 메모리 또는 다른 구성요소 중 적어도 하나로부터 수신한 명령 또는 데이터를 휘발성 메모리에 로드(load)하여 처리할 수 있다. 또한, 어플리케이션 프로세서 또는 커뮤니케이션 프로세서는 다른 구성요소 중 적어도 하나로부터 수신하거나 다른 구성요소 중 적어도 하나에 의해 생성된 데이터를 비휘발성 메모리에 저장할 수 있다.The application processor or the communication processor may load and process commands or data received from at least one of a nonvolatile memory or other components connected to each of the volatile memory. In addition, the application processor or the communication processor may store data received from at least one of the other components or generated by at least one of the other components in the nonvolatile memory.

메모리(330)는 내장 메모리 또는 외장 메모리를 포함할 수 있다. 내장 메모리는 휘발성 메모리(예를 들면, DRAM(dynamic RAM), SRAM(static RAM), SDRAM(synchronous dynamic RAM) 등) 또는 비휘발성 메모리 비휘발성 메모리(예를 들면, OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, NAND flash memory, NOR flash memory 등) 중 적어도 하나를 포함할 수 있다. 일례에 따르면, 내장 메모리는 SSD(solid state drive)의 형태를 취할 수도 있다. 외장 메모리는 플래시 드라이브(flash drive), 예를 들면, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital) 또는 메모리 스틱(memory stick) 등을 포함할 수 있다.The memory 330 may include an internal memory or an external memory. The built-in memory is a volatile memory (e.g., dynamic RAM (DRAM), static RAM (SRAM), synchronous dynamic RAM (SDRAM), etc.)) or a non-volatile memory non-volatile memory (e.g., one time programmable ROM (OTPROM), It may include at least one of PROM (programmable ROM), EPROM (erasable and programmable ROM), EEPROM (electrically erasable and programmable ROM), mask ROM, flash ROM, NAND flash memory, NOR flash memory, etc.). According to an example, the internal memory may take the form of a solid state drive (SSD). The external memory is a flash drive, for example, compact flash (CF), secure digital (SD), micro secure digital (Micro-SD), mini secure digital (Mini-SD), extreme digital (xD), or It may include a memory stick or the like.

통신 모듈(350)은 무선 통신 모듈 또는 RF 모듈를 포함할 수 있다. 무선 통신 모듈은, 예를 들면, Wi-Fi, BT, GPS 또는 NFC를 포함할 수 있다. 예를 들면, 무선 통신 모듈은 무선 주파수를 이용하여 무선 통신 기능을 제공할 수 있다. 추가적으로 또는 대체적으로, 무선 통신 모듈은 사용자 디바이스(100)를 네트워크(예: Internet, LAN, WAN, telecommunication network, cellular network, satellite network, POTS 또는 5G network 등)와 연결시키기 위한 네트워크 인터페이스 또는 모뎀 등을 포함할 수 있다.The communication module 350 may include a wireless communication module or an RF module. The wireless communication module may include, for example, Wi-Fi, BT, GPS or NFC. For example, the wireless communication module may provide a wireless communication function using a radio frequency. Additionally or alternatively, the wireless communication module provides a network interface or modem for connecting the user device 100 to a network (eg, Internet, LAN, WAN, telecommunication network, cellular network, satellite network, POTS or 5G network, etc.). Can include.

RF 모듈은 데이터의 송수신, 예를 들면, RF 신호 또는 호출된 전자 신호의 송수신을 담당할 수 있다. 일 예로, RF 모듈은 트랜시버(transceiver), PAM(power amp module), 주파수 필터(frequency filter) 또는 LNA(low noise amplifier) 등을 포함할 수 있다. 또한, RF 모듈은 무선 통신에서 자유공간상의 전자파를 송수신하기 위한 부품, 예를 들면, 도체 또는 도선 등을 포함할 수 있다.The RF module may be responsible for transmitting and receiving data, for example, transmitting and receiving an RF signal or a called electronic signal. For example, the RF module may include a transceiver, a power amp module (PAM), a frequency filter, or a low noise amplifier (LNA). In addition, the RF module may include a component for transmitting and receiving an electromagnetic wave in a free space in wireless communication, for example, a conductor or a conducting wire.

프로세서(310)는 AI 프로세서(311), 데이터 학습부(311a), 데이터 전처리부(311b), 데이터 선택부(311c), 모델 평가부(311d) 및 응답 모듈(315) 등을 포함할 수 있다.The processor 310 may include an AI processor 311, a data learning unit 311a, a data preprocessing unit 311b, a data selection unit 311c, a model evaluation unit 311d, a response module 315, and the like. .

AI 프로세서(311)는 메모리(330)에 저장된 프로그램을 이용하여 신경망을 학습할 수 있다. 특히, AI 프로세서(311)는 사용자 디바이스(100) 간로부터 입력된 수학식을 인식하기 위한 신경망을 학습할 수 있다. 여기서, 신경망은 인간의 뇌 구조(예를 들어, 인간의 신경망의 뉴런 구조)를 컴퓨터 상에서 모의하도록 설계될 수 있다. 신경망은 입력층(input layer), 출력층(output layer) 및 적어도 하나의 은닉층(hidden layer)를 포함할 수 있다. 각 층은 가중치를 갖는 적어도 하나의 뉴런을 포함하고, 신경망은 뉴런과 뉴런을 연결하는 시냅스(synapse)를 포함할 수 있다. 신경망에서 각 뉴런은 시냅스를 통해 입력되는 입력 신호를 가중치(weight) 및/또는 편향(bias)에 대한 활성함수(activation function)의 함수값으로 출력할 수 있다.The AI processor 311 may learn a neural network using a program stored in the memory 330. In particular, the AI processor 311 may learn a neural network for recognizing an equation input from between the user devices 100. Here, the neural network may be designed to simulate a human brain structure (eg, a neuron structure of a human neural network) on a computer. The neural network may include an input layer, an output layer, and at least one hidden layer. Each layer includes at least one neuron having a weight, and the neural network may include a synapse connecting neurons and neurons. In a neural network, each neuron may output an input signal input through a synapse as a function value of an activation function for weight and/or bias.

복수의 네트워크 모드들은 뉴런이 시냅스를 통해 신호를 주고받는 뉴런의 시냅틱 활동을 모의하도록 각각 연결 관계에 따라 데이터를 주고받을 수 있다. 여기서 신경망은 신경망 모델에서 발전한 딥러닝 모델을 포함할 수 있다. 딥러닝 모델에서 복수의 네트워크 노드들은 서로 다른 레이어에 위치하면서 콘볼루션(convolution) 연결 관계에 따라 데이터를 주고받을 수 있다. 신경망 모델의 예는 심층 신경망(deep neural network, DNN), 합성곱 신경망(convolutional neural network, CNN), 순환 신경망(recurrent neural network), 제한 볼츠만 머신(restricted Boltzmann machine), 심층 신뢰 신경망(deep belief network), 심층 Q-네트워크(deep Q-Network)와 같은 다양한 딥러닝 기법들을 포함하며, 비전인식, 음성인식, 자연어처리, 음성/신호처리 등의 분야에서 적용될 수 있다.The plurality of network modes can send and receive data according to their respective connection relationships to simulate the synaptic activity of neurons that send and receive signals through synapses. Here, the neural network may include a deep learning model developed from a neural network model. In a deep learning model, a plurality of network nodes are located in different layers and can exchange data according to a convolutional connection relationship. Examples of neural network models include a deep neural network (DNN), a convolutional neural network (CNN), a recurrent neural network, a restricted Boltzmann machine, and a deep belief network. ), and deep Q-Network, and can be applied in fields such as vision recognition, speech recognition, natural language processing, and voice/signal processing.

한편, 상술한 바와 같은 기능을 수행하는 프로세서(310)는 범용 프로세서(예를 들어, CPU)일 수 있으나, 인공지능 학습을 위한 AI 전용 프로세서(예를 들어, GPU)일 수 있다.Meanwhile, the processor 310 performing the above-described function may be a general-purpose processor (eg, a CPU), but may be an AI-only processor (eg, a GPU) for artificial intelligence learning.

메모리(330)는 사용자 디바이스(100) 및/또는 수학식 인식 디바이스(300)의 동작에 필요한 각종 프로그램 및 데이터를 저장할 수 있다. 메모리(330)는 AI 프로세서(311)에 의해 액세스되며, AI 프로세서(311)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다. 또한, 메모리(330)는 본 명세서의 일 실시예에 따른 데이터 분류/인식을 위한 학습 알고리즘을 통해 생성된 신경망 모델(예를 들어, 딥러닝 모델)을 저장할 수 있다. 나아가, 메모리(330)는 학습 모델(221) 뿐만 아니라, 입력 데이터, 학습 데이터, 학습 히스토리 등을 저장할 수도 있다.The memory 330 may store various programs and data necessary for the operation of the user device 100 and/or the equation recognition device 300. The memory 330 is accessed by the AI processor 311, and data read/write/edit/delete/update by the AI processor 311 may be performed. In addition, the memory 330 may store a neural network model (eg, a deep learning model) generated through a learning algorithm for classifying/recognizing data according to an embodiment of the present specification. Furthermore, the memory 330 may store not only the learning model 221 but also input data, training data, and learning history.

한편, AI 프로세서(311)는 데이터 분류/인식을 위한 신경망을 학습하는 데이터 학습부(311a)를 포함할 수 있다. 데이터 학습부(311a)는 데이터 분류/인식을 판단하기 위하여 어떤 학습 데이터를 이용할지, 학습 데이터를 이용하여 데이터를 어떻게 분류하고 인식할지에 관한 기준을 학습할 수 있다. 데이터 학습부(311a)는 학습에 이용될 학습 데이터를 획득하고, 획득된 학습데이터를 딥러닝 모델에 적용함으로써, 딥러닝 모델을 학습할 수 있다.Meanwhile, the AI processor 311 may include a data learning unit 311a that learns a neural network for data classification/recognition. The data learning unit 311a may learn a criterion for how to classify and recognize data using which training data to use in order to determine data classification/recognition. The data learning unit 311a may learn the deep learning model by acquiring training data to be used for training and applying the acquired training data to the deep learning model.

데이터 학습부(311a)는 적어도 하나의 하드웨어 칩 형태로 제작되어 수학식 인식 디바이스(300)에 탑재될 수 있다. 일 예로, 데이터 학습부(311a)는 인공지능을 위한 전용 하드웨어 칩 형태로 제작될 수 있고, 범용 프로세서(CPU) 또는 그래픽 전용 프로세서(GPU)의 일부로 제작되어 수학식 인식 디바이스(300)에 탑재될 수 있다. 또한, 데이터 학습부(311a)는 소프트웨어 모듈로 구현될 수도 있다. 소프트웨어 모듈(또는 인스트럭션(instruction)을 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록 매체(non-transitory computer readable media)에 저장될 수 있다. 이 경우에 적어도 하나의 소프트웨어 모듈은 OS(operating system)에 제공되거나, 애플리케이션에 의해 제공될 수 있다.The data learning unit 311a may be manufactured in the form of at least one hardware chip and mounted on the equation recognition device 300. As an example, the data learning unit 311a may be manufactured in the form of a dedicated hardware chip for artificial intelligence, and may be manufactured as a part of a general-purpose processor (CPU) or a graphics dedicated processor (GPU) to be mounted on the equation recognition device 300. I can. Also, the data learning unit 311a may be implemented as a software module. When implemented as a software module (or a program module including an instruction), the software module may be stored in a computer-readable non-transitory computer readable media. In this case, at least one software module may be provided to an operating system (OS) or may be provided by an application.

데이터 학습부(311a)는 획득된 학습 데이터를 이용하여, 신경망 모델이 소정의 데이터를 어떻게 분류/인식할지에 관한 판단기준을 가지도록 학습할 수 있다. 이때, 데이터 학습부(311a)에 의한 학습 방식은 지도 학습(supervised learning), 비지도 학습(unsupervised learning), 강화 학습(reinforcement learning)으로 분류될 수 있다. 여기서, 지도 학습은 학습 데이터에 대한 레이블(label)이 주어진 상태에서 인공 신경망을 학습시키는 방법을 지칭하며, 레이블이란 학습 데이터가 인공 신경망에 입력되는 경우 인공 신경망이 추론해야 하는 정답(또는 결과 값)을 의미할 수 있다. 비지도 학습은 학습 데이터에 대한 레이블이 주어지지 않는 상태에서 인공 신경망을 학습시키는 방법을 의미할 수 있다. 강화 학습은 특정 환경 안에서 정의된 에이전트(agent)가 각 상태에서 누적 보상을 최대화하는 행동 혹은 행동 순서를 선택하도록 학습시키는 방법을 의미할 수 있다. 또한, 데이터 학습부(311a)는 오류 역전파법(backpropagation) 또는 경사 하강법(gradient decent)을 포함하는 학습 알고리즘을 이용하여 신경망 모델을 학습시킬 수 있다. 신경망 모델이 학습되면 학습된 신경망 모델은 학습 모델(331)이라 호칭할 수 있다. 학습 모델(331)은 메모리(330)에 저장되어 학습 데이터가 아닌 새로운 입력 데이터에 대한 결과를 추론하는 데 사용될 수 있다.The data learning unit 311a may learn to have a criterion for determining how the neural network model classifies/recognizes predetermined data by using the acquired training data. In this case, the learning method by the data learning unit 311a may be classified into supervised learning, unsupervised learning, and reinforcement learning. Here, supervised learning refers to a method of training an artificial neural network when a label for training data is given, and the label is the correct answer (or result value) that the artificial neural network must infer when training data is input to the artificial neural network. Can mean Unsupervised learning may mean a method of training an artificial neural network in a state in which a label for training data is not given. Reinforcement learning may mean a method in which an agent defined in a specific environment learns to select an action or action sequence that maximizes the cumulative reward in each state. In addition, the data learning unit 311a may train the neural network model using a learning algorithm including an error backpropagation method or a gradient decent method. When the neural network model is trained, the trained neural network model may be referred to as a learning model 331. The learning model 331 may be stored in the memory 330 and used to infer a result of new input data other than the training data.

한편, AI 프로세서(311)는 학습 모델(331)을 이용한 분석 결과를 향상시키거나, 학습 모델(331)의 생성에 필요한 리소스 또는 시간을 절약하기 위하여 데이터 전처리부(311b) 및/또는 데이터 선택부(311c)를 더 포함할 수도 있다.Meanwhile, the AI processor 311 is a data preprocessing unit 311b and/or a data selection unit to improve the analysis result using the learning model 331 or to save resources or time required for generating the learning model 331 (311c) may be further included.

데이터 전처리부(311b)는 획득된 데이터가 상황 판단을 위한 학습/추론에 이용될 수 있도록, 획득된 데이터를 전처리할 수 있다. 일 예로, 데이터 전처리부(311b)는 입력 장치를 통해 획득된 입력 데이터에 대하여 전처리로서 특징 정보(feature information)을 추출할 수 있으며, 특징 정보는 특징 벡터(feature vector), 특징점(feature point) 또는 특징맵(feature map) 등의 포맷으로 추출될 수 있다.The data preprocessor 311b may preprocess the acquired data so that the acquired data can be used for learning/inference for determining a situation. As an example, the data preprocessor 311b may extract feature information as a preprocess for input data acquired through an input device, and the feature information may be a feature vector, a feature point, or It can be extracted in a format such as a feature map.

데이터 선택부(311c)는 데이터 학습부(311a) 또는 데이터 전처리부(311b)에서 전처리된 학습 데이터 중 학습에 필요한 데이터를 선택할 수 있다. 선택된 학습 데이터는 학습 모델(331)에 제공될 수 있다. 일 예로, 데이터 선택부(311c)는 사용자가 음성, 문자 또는 다양한 입력 장치를 통해 입력한 수학식에 근거하여, "정답"으로 판단된 수학식에 포함된 객체에 대한 데이터만을 학습 데이터로 선택할 수 있다. 또한, 데이터 선택부(311c)는 입력 장치를 통해 획득된 입력 데이터 또는 전처리부에서 전처리된 입력 데이터 중 추론에 필요한 데이터를 선택할 수도 있다.The data selection unit 311c may select data necessary for learning from among the training data preprocessed by the data learning unit 311a or the data preprocessing unit 311b. The selected training data may be provided to the learning model 331. As an example, the data selection unit 311c may select only data for an object included in the equation determined as the "correct answer" as the learning data, based on a user's voice, text, or an equation input through various input devices. have. In addition, the data selection unit 311c may select data necessary for inference among input data obtained through an input device or input data preprocessed by a preprocessor.

또한, AI 프로세서(311)는 신경망 모델의 분석 결과를 향상시키기 위하여 모델 평가부(311d)를 더 포함할 수 있다. 모델 평가부(311d)는, 신경망 모델에 평가 데이터를 입력하고, 평가 데이터로부터 출력되는 분석 결과가 소정 기준을 만족하지 못하는 경우, 모델 학습부로 하여금 다시 학습하도록 할 수 있다. 이 경우, 평가 데이터는 학습 모델(331)을 평가하기 위한 기 설정된 데이터일 수 있다. 일 예로, 모델 평가부(311d)는 평가 데이터에 대한 학습된 신경망 모델의 분석 결과 중, 분석 결과가 정확하지 않은 평가 데이터의 개수 또는 비율이 미리 설정된 임계치를 초과하는 경우에 소정 기준을 만족하지 못한 것으로 평가할 수 있다.In addition, the AI processor 311 may further include a model evaluation unit 311d to improve the analysis result of the neural network model. The model evaluation unit 311d may input evaluation data to the neural network model, and when an analysis result output from the evaluation data does not satisfy a predetermined criterion, the model learning unit may retrain. In this case, the evaluation data may be preset data for evaluating the learning model 331. As an example, the model evaluation unit 311d does not satisfy a predetermined criterion when the number or ratio of evaluation data in which the analysis result is not accurate among the analysis results of the learned neural network model for evaluation data exceeds a preset threshold. It can be evaluated as

응답 모듈(315)은 프로세서의 제어 하에 사용자 디바이스에게 입력된 수학식의 후보자를 응답 할 수 있다. 이에 대한 자세한 설명은 후술하기로 한다.The response module 315 may respond to a candidate of an equation input to the user device under the control of the processor. A detailed description of this will be described later.

통신 모듈(350)은 AI 프로세서(311)에 의한 AI 프로세싱 결과를 사용자 디바이스(100)로 전송할 수 있다.The communication module 350 may transmit the AI processing result by the AI processor 311 to the user device 100.

사용자 디바이스(100)도 전술한 수학식 인식 디바이스(300)의 구성을 포함할 수 있다.The user device 100 may also include the configuration of the above-described equation recognition device 300.

딥러닝 기반의 OCR(Optical Character Recognition) 모델Deep learning-based OCR (Optical Character Recognition) model

도 3은 본 명세서가 적용될 수 있는 OCR 모델의 예시이다.3 is an example of an OCR model to which the present specification can be applied.

OCR 모델이란, 인쇄물 또는 사진 상의 텍스트와 이미지를 디지털 데이터로 변환해주는 자동인식기술이다. 기술 사용의 예로 명함의 텍스트나 서류상의 필체 정보 인식 등이 있다. 일반적인 OCR 모델은 텍스트 라인(text line)을 찾는 모듈과 문자(letter)를 분할하는 모듈 등 세분화된 모듈로 동작한다. 이러한 문자의 서로 다른 패턴을 인식하는 특징(feature)은 개발자가 직접 설계해야 했다. 또한, 고품질 이미지에서만 제한적으로 동작이 가능했다.The OCR model is an automatic recognition technology that converts text and images on printed materials or photographs into digital data. Examples of technology use include recognition of text on business cards or handwriting information on documents. The general OCR model operates as a subdivided module, such as a module that searches for a text line and a module that divides a letter. The feature that recognizes these different patterns of characters had to be designed by the developer himself. In addition, limited operation was possible only in high-quality images.

최근 OCR 분야는 딥러닝을 적용해 정확도가 이전보다 향상되었으며, 대량의 데이터 학습을 통해 이미지에서 텍스트를 인식하는 규칙(feature extraction)을 스스로 만들어낸다. 다음은 이러한 딥러닝 기술을 이용한 OCR 모델의 예시이다.In recent years, the accuracy of the OCR field has been improved by applying deep learning, and through learning a large amount of data, it creates a feature extraction for text recognition from images by itself. The following is an example of an OCR model using this deep learning technology.

S71 : 전처리(pre-processing)S71: pre-processing

컴퓨터는 비슷한 밝기값을 가진 픽셀을 덩어리로 인식할 수 있는 바, 주변과 색깔이 다르고, 연속점의 구조가 다른 글자는 더 쉽게 탐지해 낼 수 있다. 이를 위해 전처리 과정을 거치면 인식률을 크게 개선할 수 있다.Computers can recognize pixels with similar brightness values as chunks, so characters with different colors from their surroundings and with a different structure of consecutive dots can be detected more easily. For this, the recognition rate can be greatly improved by going through a pre-processing process.

이러한 전처리 과정의 예는 다음과 같다. 저컬러 이미지를 회색조(grayscale)로 변환한다. 이어 히스토그램 정규화(histogram equalization)를 진행한다. 영상의 밝기 분포를 재분배해 명암 대비를 최대화하면 더 선명한 이미지를 가질 수 있다. 하지만 배경과 문자를 명확하게 구분하는 데는 여전히 한계가 있다. 이를 해결하기 위해 이진화 작업(binarization)을 진행한다. 픽셀값이 255(흰색)면 '0'으로, 0~254(회색 및 검은색)면 '1'로 바꾸는 것이다. 그 결과, 배경과 글자를 좀 더 명확하게 분리할 수 있다.An example of this pretreatment process is as follows. Converts low color images to grayscale. Then, histogram equalization is performed. By redistributing the brightness distribution of the image to maximize the contrast, you can have a sharper image. However, there is still a limit to clearly distinguishing between background and text. To solve this, we proceed with binarization. If the pixel value is 255 (white), it is changed to '0', and if the pixel value is 0 to 254 (gray and black), it is changed to '1'. As a result, the background and text can be separated more clearly.

S72 : 글자 검출(text detecting)S72: text detecting

이미지를 DNN과 같은 학습 모델(331)에 넣은 후, 특징값을 얻는다. 구하려는 데이터는 텍스트 영역(text box)과 텍스트 영역의 회전 각도(rotation angle)다. 입력 이미지에서 텍스트 영역을 골라내면 불필요한 계산을 줄일 수 있다. 회전 정보는 기울어진 텍스트 영역을 수평 형태로 만들 때 활용한다. 그런 뒤 이미지를 텍스트 단위로 잘라낸다. 이 단계를 거치고 나면 개별 글자(character) 이미지 또는 단어(word) 이미지를 획득할 수 있다.After putting the image into a learning model 331 such as a DNN, feature values are obtained. The data to be obtained are the text box and the rotation angle of the text area. Choosing a text area from the input image can reduce unnecessary calculations. Rotation information is used when making an inclined text area horizontal. Then crop the image into text units. After this step, an individual character image or word image can be obtained.

S73 : 글자 인식(text recognition)S73: text recognition

잘라낸 각 이미지가 어떤 글자를 포함하고 있는지를 인식하기 위해, 학습 모델이 사용된다. 학습 모델은 이미지 형태의 개별 단어·글자를 인식하는 방법을 학습한다. 한편, 학습 모델이 인식할 수 있는 단어나 문자열 종류는 언어마다 다르다. 따라서 범용적인 OCR를 위해서는 이미지만 가지고 언어를 추정하는 모듈도 구비할 필요가 있다.In order to recognize which characters are contained in each cropped image, a learning model is used. The learning model learns how to recognize individual words and characters in the form of images. On the other hand, the types of words or strings that the learning model can recognize differs for each language. Therefore, for general-purpose OCR, it is also necessary to have a module that estimates language using only images.

S74 : 후처리(post-processing)S74: post-processing

OCR도 사람이 텍스트를 받아들이는 방법과 유사한 방식으로 글자 인식 오류를 후처리한다. 방법으로는 크게 2가지가 있다. 첫 번째는 글자마다의 특징을 이용하는 방법이다. '일/밀', '먕/양', '파/따'처럼 유사한 형태의 글자(유사 쌍)를 구분해 오류를 정정한다. 두 번째는 문맥 정보를 이용하는 방법이다. 이를 위해서는 언어 모델이나 사전이 필요한데, 웹상의 수많은 텍스트 데이터를 학습한 언어 모델을 딥러닝으로 구축하기도 한다. OCR also post-processes character recognition errors in a manner similar to how humans accept text. There are two main methods. The first is how to use the characteristics of each letter. It corrects errors by distinguishing letters (similar pairs) of similar forms such as'work/mil','myo/yang', and'pa/ta'. The second is a method of using contextual information. For this, a language model or dictionary is required, and a language model that has learned a lot of text data on the web is also built through deep learning.

본 명세서는 기존의 딥러닝 기반의 OCR 모델을 수학식 인식을 위한 시스템을 통해, 보다 발전된 형태로 적용하는 것을 그 목적으로 한다. 이를 위해, 사용자 디바이스(100) 및/또는 수학식 인식 디바이스(300)는 OCR 모델을 포함할 수 있다.The object of the present specification is to apply an existing deep learning-based OCR model in a more advanced form through a system for mathematical expression recognition. To this end, the user device 100 and/or the equation recognition device 300 may include an OCR model.

도 4는 본 명세서에서 적용될 수 있는 일반적인 문자 인식에서 후보자 추천 방법의 예시이다.4 is an example of a candidate recommendation method in general character recognition that can be applied in the present specification.

도 4를 참조하면, 사용자는 사용자 디바이스(100)에 포함된 디스플레이부(410)를 통해, 문자를 입력할 수 있다. 예를 들어, 디스플레이부(410)는 터치 센서와 상호 레이어 구조를 이루거나 일체형으로 형성됨으로써, 터치 스크린을 구현할 수 있다. 이러한 터치 스크린은, 사용자 디바이스(100)와 사용자 사이의 입력 인터페이스를 제공하는 입력부로서 기능함과 동시에, 사용자 디바이스(100)와 사용자 사이의 출력 인터페이스를 제공할 수 있다.Referring to FIG. 4, a user may input text through the display unit 410 included in the user device 100. For example, the display unit 410 may form a layer structure with a touch sensor or are integrally formed to implement a touch screen. Such a touch screen may function as an input unit providing an input interface between the user device 100 and the user, and may provide an output interface between the user device 100 and the user.

디스플레이부(410)는 사용자가 입력한 문자를 사용자에게 출력할 수 있다. 사용자 디바이스(100)는 입력되는 문자의 굵기와 연관된 PenSize를 사용자에게 입력받을 수 있다. 또한, 사용자 디바이스(100)는 OCR을 통해, 인식될 수 있는 언어를 사용자로부터 선택받을 수 있다.The display unit 410 may output a character input by the user to the user. The user device 100 may receive a PenSize associated with the thickness of the input character from the user. In addition, the user device 100 may receive a recognizable language selected from the user through OCR.

사용자 디바이스(100)는 수학식 인식 디바이스(300)로부터, 사용자가 입력한 문자의 후보자 리스트(420)를 수신하고, 디스플레이 할 수 있다. 예를 들어, 사용자가 디스플레이부(410)에 '가나다'를 필기하는 경우, 수학식 인식 디바이스(300)는 학습 모델(331)을 통해, '가나다', '가나나', '가나아' 등등 예상되는 후보자 리스트를 생성하고, 사용자 디바이스(100)로 전달 할 수 있다. 사용자는 디스플레이부(410)에 표시된 후보자 리스트 중에서 적합한 후보자를 선택할 수 있다.The user device 100 may receive and display a candidate list 420 of a character input by the user from the equation recognition device 300. For example, when the user writes'Kanada' on the display unit 410, the equation recognition device 300 uses the learning model 331,'Kanada','Kanaa','Kanaa', etc. An expected candidate list may be generated and transmitted to the user device 100. The user may select a suitable candidate from the candidate list displayed on the display unit 410.

다만, 일반적으로 사용되는 상기 방식을 수학식 인식에 그대로 적용하기에는 어려움이 있다. 예를 들어, 수학식은 짧은 한,두개의 숫자, 문자로 구성될 수도 있지만 분수, 첨자, 상하 결합형태 등과 같이, 문자와 다른 복잡한 구조로 구성될 수 있다. 또한, 이러한 복잡한 구조의 결합 형태를 갖는 수학식이 사용자 디바이스(100) 입력되는 경우, 학습 모델(331)이 생성하는 후보자 리스트의 경우의 수가 너무 많아지는 문제가 발생할 수 있다.However, it is difficult to apply the generally used method to mathematical expression recognition as it is. For example, the equation may be composed of one or two short numbers and letters, but may be composed of a complex structure other than letters, such as fractions, subscripts, and upper and lower combinations. In addition, when the user device 100 inputs an equation having a combination of such a complex structure, there may be a problem in that the number of candidate lists generated by the learning model 331 is too large.

도 5 및 도 6은 본 명세서가 적용될 수 있는 디스플레이부의 예시이다.5 and 6 are examples of a display unit to which the present specification can be applied.

도 5 및 도 6을 참조하면, 사용자 디바이스(100)는 전술한 문제점을 해결하기 위해, 입력된 수학식의 요소별 후보자 리스트를 수학식 인식 디바이스(300)로부터, 전달 받을 수 있다.5 and 6, in order to solve the above-described problem, the user device 100 may receive a list of candidates for each element of an input equation from the equation recognition device 300.

예를 들어, 수학식 인식 디바이스(300)는 사용자 디바이스(100)로부터 수신한 수학식이 포함된 이미지를 학습 모델(331)을 이용한 OCR을 통해, 수학식의 각 요소를 예측하고, 각 요소들의 후보자 리스트를 생성할 수 있다.For example, the equation recognition device 300 predicts each element of the equation through OCR using the learning model 331 on the image containing the equation received from the user device 100, and is a candidate for each element. You can create a list.

도 5(a)를 참조하면, 사용자는 사용자 디바이스(100)에 수학식을 입력할 수 있다. 예를 들어, 사용자는 디스플레이부(410)를 통해, 수학식을 입력할 수 있다.Referring to FIG. 5A, a user may input an equation into the user device 100. For example, the user may input an equation through the display unit 410.

사용자 디바이스(100)는 입력된 수학식을 표시할 수 있으며, 입력된 수학식이 포함된 이미지를 수학식 인식 디바이스(300)로 전송할 수 있다. 수학식 인식 디바이스(300)는 수학식이 포함된 이미지를 분석하여, 1) 수학식의 문자열 및 2) 수학식의 문자열에 포함된 각 요소들의 후보자 리스트를 판단하고, 사용자 디바이스(100)로 전송할 수 있다.The user device 100 may display the input equation and may transmit an image including the input equation to the equation recognition device 300. The equation recognition device 300 analyzes the image containing the equation, determines 1) a character string of the equation and 2) a candidate list of each element included in the character string of the equation, and transmits it to the user device 100. have.

예를 들어, 수학식의 문자열은 학습 모델(331)이 예측한, 가장 정확도가 높은 요소들의 집합일 수 있다.For example, the string of the equation may be a set of elements with the highest accuracy predicted by the learning model 331.

또한, 후보자 리스트는 학습 모델(331)이 예측한, 일정 범위의 정확도를 갖는 요소들이 포함된 리스트일 수 있다.Also, the candidate list may be a list including elements predicted by the learning model 331 and having a certain range of accuracy.

도 5(b)를 참조하면, 사용자 디바이스(100)는 수신한 수학식의 문자열을 표시할 수 있다. 다만, 이 경우에도 사용자는 도 5(c)의 수학식을 의도하고, 입력하였으나, 학습 모델(331)은 "0" 요소를 "ㅇ"또는 "O" 요소로 잘못 예측하여, 사용자 디바이스(100)에 전달할 수 있다.Referring to FIG. 5B, the user device 100 may display a received string of equations. However, even in this case, the user intended and input the equation of FIG. 5(c), but the learning model 331 erroneously predicts the “0” element as the “o” or “O” element, and the user device 100 ).

도 6(a), 도 6(b) 및 도 6(c)를 참조하면, 사용자가 수학식의 문자열 중에 오류가 있는 문자를 선택하면, 사용자 디바이스(100)는 후보자 리스트에서 선택된 문자와 관련된 후보자들을 표시할 수 있다.6(a), 6(b), and 6(c), when a user selects a character with an error from the character string of an equation, the user device 100 is a candidate related to the character selected from the candidate list. Can be displayed.

사용자는 표시된 후보자들 중에서 의도한 문자를 나타내는 정답 후보자를 선택할 수 있으며, 사용자 디바이스(100)는 선택된 정답 후보자로 오류가 있는 문자를 대체하고, 대체된 문자가 포함된 수학식을 표시할 수 있다.The user may select a correct answer candidate representing the intended character from among the displayed candidates, and the user device 100 may replace the erroneous character with the selected correct answer candidate and display an equation including the replaced character.

도 6(d)를 참조하면, 사용자는 만약 개별 문자의 오류가 아닌, 일부 수학식 구조의 오류가 있는 경우, 해당 오류만 지우고, 재입력하여 수학식의 재인식을 요청할 수 있다.Referring to FIG. 6(d), if there is an error in some equation structure rather than an individual character error, the user may request re-recognition of the equation by deleting only the error and re-entering it.

예를 들어, 사용자는 지우개 아이콘을 선택하고, 사용자가 지우고자 하는 문자를 선택하는 경우, 사용자 디바이스(100)는 선택된 문자를 표시하지 않을 수 있으며, 사용자는 대체 문자를 사용자 디바이스(100)에 입력할 수 있다. 사용자 디바이스(100)는 입력된 대체 문자를 선택된 문자가 표시되었던 위치에 표시할 수 있다. 또한, 사용자 디바이스(100)는 이렇게 재생성된 수학식의 이미지를 다시 수학식 인식 디바이스(300)로 전송하여, 전술한 수학식 인식 절차를 재요청할 수 있다.For example, when the user selects an eraser icon and the user selects a character to be erased, the user device 100 may not display the selected character, and the user inputs a replacement character into the user device 100 can do. The user device 100 may display the input replacement character at a location where the selected character has been displayed. In addition, the user device 100 may transmit the regenerated image of the equation again to the equation recognition device 300 to request the above-described equation recognition procedure again.

전술한 수학식 인식 디바이스(300)의 동작은 사용자 디바이스(100)에 설치되는 앱을 통해, 오프라인 상태에서 사용자 디바이스(100) 자체에서 유사한 동작으로 수행될 수 있음은 물론이다. 이를 위해, 상기 앱은 수학식 OCR 이 가능하며, 학습 모델(331)을 포함할 수 있다.It goes without saying that the above-described operation of the equation recognition device 300 may be performed by a similar operation in the user device 100 itself in an offline state through an app installed in the user device 100. To this end, the app is capable of mathematical expression OCR, and may include a learning model 331.

도 7은 기존의 수학식 인식 방법의 예시이다.7 is an example of an existing method for recognizing an equation.

도 7을 참조하면, 기존의 광학 인식 및 스트로크 수학식 인식의 경우(예를 들어, MS math 앱), 사용자가 입력한 수학식을 수정할 때, 처음 입력한 필기를 지우개로 수정하여 재인식 시키거나, 입력된 결과의 잘못된 부분을 지우고 다시 수정을 요청하는 방식이었다.Referring to FIG. 7, in the case of conventional optical recognition and stroke mathematical recognition (eg, MS math app), when a user inputs a mathematical expression, the first handwritten handwriting is corrected with an eraser and re-recognized, It was a method of erasing the wrong part of the input result and requesting correction again.

이러한 방식에서는, 수학식을 재인식하는 경우, 사용자 디바이스(100)가 다시 인공지능 서버나 해당 기능을 수행하는 어플리케이션에 처음과 동일한 작업 수행을 요청해야 한다. 이러한 인공지능 인식은 많은 컴퓨터 자원을 요구하므로, 1개의 수식을 완전히 인식시키기 위해서 여러번의 인식 과정을 거치는 비용의 낭비가 발생했다. 또한, 이러한 방식에서는, 입력창과 결과창이 분리되어 있어야만 하기 때문에 필기입력 공간이 부족한 문제가 발생했다.In this manner, when the equation is re-recognized, the user device 100 must again request the artificial intelligence server or an application that performs the function to perform the same operation as the first time. Since such artificial intelligence recognition requires a lot of computer resources, there was a waste of cost of going through the recognition process several times in order to fully recognize one formula. In addition, in this method, the handwriting input space is insufficient because the input window and the result window must be separated.

그러나, 본 명세서에서 제시하는 방식은 거의 대부분 최초 예측 결과와 함께 전달하는 후보자 리스트를 통해, 인식 완료가 가능하므로 추가적인 비용이 발생하지 않는다. However, most of the schemes presented in the present specification do not incur additional costs since recognition can be completed through a candidate list delivered together with the initial prediction result.

또한, 재인식 과정이 없으므로 수학식 수정이 바로 진행될 수 있어, 수학식을 입력하는 속도가 증대될 수 있다.In addition, since there is no re-recognition process, the correction of the equation can be performed immediately, and the speed of inputting the equation can be increased.

또한, 전술한 지우개 기능은 기존의 방식과 다르게 인식된 수학식의 결과를 직접 수정하기 때문에, 정상적으로 인식된 문자는 그대로 유지시키고 수정된 부분만 재인식 시키는 효과를 발휘할 수 있다.In addition, since the above-described eraser function directly corrects the result of the recognized equation differently from the conventional method, it is possible to exert an effect of maintaining the normally recognized character as it is and re-recognizing only the modified part.

보다 자세하게, 활자화된 부분의 인식은 그렇지 않은 부분의 필기에 비해 월등히 인식율이 높기 때문에, 수학식의 구조를 수정하고 다시 인식받는 데, 유리할 수 있다.In more detail, since the recognition rate of the printed part is much higher than that of the handwriting of the non-printed part, it may be advantageous to correct the structure of the equation and receive it again.

또한, 본 명세서에서 제시하는 방식은 입력창과 결과창을 하나의 화면에 구현할 수 있으므로 작은 화면의 디바이스에서도 넓은 입력창을 구현하는데 유리하다.In addition, the method presented in the present specification is advantageous in implementing a wide input window even on a device with a small screen, since the input window and the result window can be implemented on one screen.

도 8은 본 명세서가 적용될 수 있는 일 실시예이다.8 is an embodiment to which the present specification may be applied.

도 8을 참조하면, 사용자 디바이스(100)는 네트워크와 연결되며, 수학식 인식을 위한 앱을 포함할 수 있다. 네트워크는 수학식 인식 디바이스(300)를 포함한다.Referring to FIG. 8, the user device 100 is connected to a network and may include an app for recognizing an equation. The network includes an equation recognition device 300.

사용자 디바이스(100)는 사용자로부터 디스플레이부(410)를 통해, 제1 수학식을 입력받는다(S810).The user device 100 receives a first equation from the user through the display unit 410 (S810).

사용자 디바이스(100)는 제1 수학식이 포함된 이미지를 네트워크로 전송한다(S820).The user device 100 transmits an image including the first equation to the network (S820).

네트워크는 제1 수학식이 포함된 이미지에 근거하여, 제1 수학식의 문자열을 예측한다(S830). 예를 들어, 네트워크는 학습 모델(331)을 이용한 OCR을 통해, 제1 수학식의 문자열 예측할 수 있다. 보다 자세하게, 네트워크는 학습 모델(331)을 이용하여, 신뢰도값이 가장 높은 문자들의 집합으로 제1 수학식의 문자열을 예측할 수 있다.The network predicts the character string of the first equation based on the image including the first equation (S830). For example, the network may predict the character string of the first equation through OCR using the learning model 331. In more detail, the network may predict the character string of the first equation using the learning model 331 as a set of characters having the highest reliability value.

네트워크는 예측된 제1 수학식의 문자열에 포함된 각 요소들의 후보자 리스트를 예측한다(S840). 예를 들어, 후보자 리스트는 일정범위의 신뢰도값을 갖는 문자들의 집합일 수 있다.The network predicts a candidate list of each element included in the predicted character string of the first equation (S840). For example, the candidate list may be a set of characters having a certain range of reliability values.

네트워크는 제1 수학식의 문자열 및 후보자 리스트를 사용자 디바이스(100)로 전송한다(S850).The network transmits the character string and the candidate list of the first equation to the user device 100 (S850).

사용자 디바이스(100)는 디스플레이부(410)에 제1 수학식의 문자열을 표시한다(S860).The user device 100 displays the character string of the first equation on the display unit 410 (S860).

사용자 디바이스(100)는 사용자에 의한 제1 수학식의 오류정정을 수행한다(S870). The user device 100 performs error correction of the first equation by the user (S870).

예를 들어, 사용자 디바이스(100)는 사용자로부터 제1 수학식의 문자열 중에 오류가 있는 문자를 선택받고, 후보자 리스트에서 오류가 있는 문자와 관련된 하나 이상의 후보자들을 표시할 수 있다. 보다 자세하게, 사용자 디바이스(100)는 후보자들의 신뢰도값에 따라 정렬하여, 후보자들을 표시할 수 있다. 이후, 사용자 디바이스(100)는 사용자로부터 표시된 후보자들 중에서 정답 후보자를 선택받을 수 있다. 사용자 디바이스(100)는 오류가 있는 문자를 선택된 정답 후보자로 교체하여, 디스플레이부(410)에 표시할 수 있다.For example, the user device 100 may receive a selection of a character with an error from the character string of the first equation from the user, and display one or more candidates related to the character with an error from the candidate list. In more detail, the user device 100 may display candidates by sorting them according to their confidence values. Thereafter, the user device 100 may receive a correct answer candidate selected from among the displayed candidates from the user. The user device 100 may replace a character with an error with a selected correct answer candidate and display it on the display unit 410.

또한, 사용자 디바이스(100)는 제1 수학식의 문자열 중 특정 문자를 지우고 다시 입력하기 위한 지우개 아이콘을 표시할 수 있다. 사용자에 의해 지우개 아이콘이 선택된 경우, 사용자 디바이스(100)는 사용자로부터 사용자가 지우고자 하는 문자를 선택받고, 사용자가 지우고자 하는 문자를 디스플레이부(410)에 표시하지 않을 수 있다. In addition, the user device 100 may display an eraser icon for erasing and re-entering a specific character from the character string of the first equation. When the eraser icon is selected by the user, the user device 100 may receive a character to be erased by the user from the user and may not display the character to be erased by the user on the display unit 410.

사용자 디바이스(100)는 사용자가 지우고자 하는 문자를 대체하는 문자를 사용자로부터 입력받고, 대체하는 문자를 사용자가 지우고자 하는 문자가 표시되었던 위치에 표시할 수 있다.The user device 100 may receive a character that replaces a character that the user wants to erase from the user, and display the character that the user wants to erase at a location where the character that the user wants to erase is displayed.

사용자 디바이스(100)는 오류정정의 결과값을 네트워크로 전달한다(S880). 예를 들어, 사용자 디바이스(100)는 학습 모델(331)을 학습시키기 위해, 사용자가 선택한 정답 후보자, 또는 사용자가 입력한 대체하는 문자를 네트워크로 전달 할 수 있다.The user device 100 transmits the error correction result value to the network (S880). For example, in order to train the learning model 331, the user device 100 may transmit a correct answer candidate selected by the user or a replacement character input by the user to the network.

네트워크는 오류정정 결과값을 이용하여, 학습 모델(331)을 재학습한다(S890). 이를 통해, 네트워크는 학습을 위한 데이터를 다양한 사용환경에 있는 사용자 디바이스(100)로부터, 제공받을 수 있다.The network retrains the learning model 331 using the error correction result value (S890). Through this, the network may receive data for learning from the user device 100 in various use environments.

도 9는 본 명세서가 적용될 수 있는 사용자 디바이스의 일 실시예이다.9 is an embodiment of a user device to which the present specification may be applied.

도 9를 참조하면, 도 8의 사용자 디바이스(100)의 동작을 보다 자세히 예시한다.Referring to FIG. 9, the operation of the user device 100 of FIG. 8 is illustrated in more detail.

1. 사용자 디바이스(100)는 사용자로부터 디스플레이부(410)를 통해, 제1 수학식을 입력받는다.1. The user device 100 receives a first equation from a user through the display unit 410.

2. 사용자 디바이스(100)는 제1 수학식이 포함된 이미지를 네트워크로 전송한다.2. The user device 100 transmits an image including the first equation to the network.

3. 사용자 디바이스(100)는 네트워크로부터, 상기 제1 수학식이 포함된 이미지에 근거하여, 상기 네트워크에서 예측된 1) 상기 제1 수학식의 문자열, 및 2) 상기 제1 수학식의 문자열과 관련된 후보자 리스트를 수신한다.3. The user device 100 from the network, based on the image including the first equation, predicted in the network, 1) the character string of the first equation, and 2) related to the character string of the first equation Receive a list of candidates.

4. 사용자 디바이스(100)는 상기 사용자에게, 상기 디스플레이부(410)를 통해, 상기 제1 수학식의 문자열을 표시하고, 사용자로부터, 상기 제1 수학식의 문자열 중에 오류가 있는 하나 이상의 문자를 선택받는다.4. The user device 100 displays the character string of the first equation to the user through the display unit 410, and displays one or more characters with errors in the character string of the first equation from the user. Be chosen.

5. 사용자 디바이스(100)는 상기 제1 수학식의 문자열과 관련된 후보자 리스트에 근거하여, 상기 오류가 있는 문자와 관련된 적어도 하나 이상의 후보자들을 상기 디스플레이부(410)에 표시하고, 상기 사용자로부터, 상기 하나 이상의 후보자들 중에서, 정답 후보자를 선택받는다. 예를 들어, 정답 후보자는 후보자들 중에, 사용자가 의도한 문자를 의미할 수 있다.5. The user device 100 displays at least one or more candidates related to the erroneous character on the display unit 410 based on the candidate list related to the character string of the first equation, and from the user, the From one or more candidates, a candidate with a correct answer is selected. For example, the correct answer candidate may mean a character intended by the user among candidates.

또한, 사용자 디바이스(100)는 상기 오류가 있는 문자를 상기 정답 후보자로 교체하여, 상기 디스플레이부(410)에 표시할 수 있다.In addition, the user device 100 may replace the erroneous character with the correct answer candidate and display it on the display unit 410.

또한, 사용자 디바이스(100)는 상기 제1 수학식의 문자열 중 특정 문자를 상기 디스플레이부(410) 상에서 지우고, 다시 입력하기 위한 아이콘을 표시할 수 있다. 상기 아이콘은 전술한 지우개 아이콘을 의미할 수 있다.In addition, the user device 100 may erase a specific character from the character string of the first equation on the display unit 410 and display an icon for inputting it again. The icon may mean the above-described eraser icon.

만일 사용자에 의해 상기 아이콘이 선택된 경우, 사용자 디바이스(100)는 상기 사용자로부터 상기 사용자가 지우고자 하는 문자를 선택받을 수 있다.If the icon is selected by the user, the user device 100 may receive a character to be erased by the user from the user.

사용자 디바이스(100)는 상기 사용자가 지우고자 하는 문자를 상기 디스플레이부(410)에 표시하지 않고, 상기 사용자가 지우고자 하는 문자를 대체하는 문자를 상기 사용자에게 입력받을 수 있다.The user device 100 may not display a character that the user wants to erase on the display unit 410, and may receive a character that replaces the character that the user wants to erase from the user.

사용자 디바이스(100)는 입력받은 대체하는 문자를 상기 사용자가 지우고자 하는 문자가 표시되었던 위치에 표시할 수 있다.The user device 100 may display the input replacement character at a location where the character desired to be erased by the user has been displayed.

이를 통해, 사용자 디바이스(100)는 제1 수학식의 오류가 정정된 제2 수학식이 포함된 이미지를 생성할 수 있다. 사용자 디바이스(100)는 이러한 제2 수학식이 포함된 이미지를 상기 네트워크로 전달할 수 있다. 예를 들어, 상기 제2 수학식은 사용자에 의해 입력된 대체하는 문자가 포함될 수 있다.Through this, the user device 100 may generate an image including the second equation in which the error in the first equation is corrected. The user device 100 may transmit an image including the second equation to the network. For example, the second equation may include a replacement character input by the user.

사용자 디바이스(100)는 네트워크로부터, 상기 제2 수학식이 포함된 이미지에 근거하여, 상기 네트워크에서 예측된 1) 상기 제2 수학식의 문자열, 및 2) 상기 제2 수학식의 문자열과 관련된 후보자 리스트를 수신하고, 사용자에게, 상기 디스플레이부(410)를 통해, 상기 제2 수학식의 문자열을 표시할 수 있다.The user device 100 is a list of candidates related to the 1) the second equation predicted by the network, and 2) the second equation, based on the image including the second equation from the network. After receiving, the user can display the character string of the second equation through the display unit 410.

이를 통해, 예측된 제2 수학식의 문자열은 제1 수학식의 문자열보다 높은 신뢰도를 기대할 수 있다.Through this, the predicted character string of the second equation can be expected to have a higher reliability than the character string of the first equation.

전술한 본 명세서는, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 명세서의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 명세서의 등가적 범위 내에서의 모든 변경은 본 명세서의 범위에 포함된다.The foregoing specification can be implemented as computer-readable code on a medium in which a program is recorded. The computer-readable medium includes all types of recording devices that store data that can be read by a computer system. Examples of computer-readable media include hard disk drives (HDDs), solid state disks (SSDs), silicon disk drives (SDDs), ROMs, RAM, CD-ROMs, magnetic tapes, floppy disks, optical data storage devices, etc. There is also a carrier wave (for example, transmission over the Internet) also includes the implementation of the form. Therefore, the detailed description above should not be construed as restrictive in all respects and should be considered as illustrative. The scope of this specification should be determined by reasonable interpretation of the appended claims, and all changes within the scope of equivalents of this specification are included in the scope of this specification.

또한, 이상에서 서비스 및 실시 예들을 중심으로 설명하였으나 이는 단지 예시일 뿐 본 명세서를 한정하는 것이 아니며, 본 명세서가 속하는 분야의 통상의 지식을 가진 자라면 본 서비스 및 실시 예의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 예를 들어, 실시 예들에 구체적으로 나타난 각 구성 요소는 변형하여 실시할 수 있는 것이다. 그리고 이러한 변형과 응용에 관계된 차이점들은 첨부한 청구 범위에서 규정하는 본 명세서의 범위에 포함되는 것으로 해석되어야 할 것이다.In addition, although the services and embodiments have been described above, these are only examples and do not limit the specification, and those of ordinary skill in the field to which this specification belongs will not depart from the essential characteristics of the service and embodiments It will be appreciated that various modifications and applications not illustrated above are possible. For example, each component specifically shown in the embodiments can be modified and implemented. And differences related to these modifications and applications should be construed as being included in the scope of the present specification defined in the appended claims.

Claims (10)

사용자 디바이스에서, 사용자로부터 입력된 수학식을 인식하는 방법에 있어서,
상기 사용자로부터 디스플레이부를 통해, 제1 수학식을 입력받는 단계;
상기 제1 수학식이 포함된 이미지를 네트워크로 전송하는 단계;
상기 네트워크로부터, 상기 제1 수학식이 포함된 이미지에 근거하여, 상기 네트워크에서 예측된 1) 상기 제1 수학식의 문자열, 및 2) 상기 제1 수학식의 문자열과 관련된 후보자 리스트를 수신하는 단계;
상기 사용자에게, 상기 디스플레이부를 통해, 상기 제1 수학식의 문자열을 표시하는 단계;
상기 사용자로부터, 상기 제1 수학식의 문자열 중에 오류가 있는 문자를 선택받는 단계;
상기 제1 수학식의 문자열과 관련된 후보자 리스트에 근거하여, 상기 오류가 있는 문자와 관련된 적어도 하나 이상의 후보자들을 상기 디스플레이부에 표시하는 단계;
상기 사용자로부터, 상기 하나 이상의 후보자들 중에서, 정답 후보자를 선택받는 단계;
상기 오류가 있는 문자를 상기 정답 후보자로 교체하여, 상기 디스플레이부에 표시하는 단계;
상기 제1 수학식의 문자열 중 특정 문자를 상기 디스플레이부 상에서 지우고, 다시 입력하기 위한 아이콘을 표시하는 단계;
상기 아이콘이 선택된 경우, 상기 사용자로부터 상기 사용자가 지우고자 하는 문자를 선택받는 단계;
상기 사용자가 지우고자 하는 문자를 상기 디스플레이부에 표시하지 않고, 상기 사용자가 지우고자 하는 문자를 대체하는 문자를 상기 사용자에게 입력받는 단계; 및
상기 대체하는 문자를 상기 사용자가 지우고자 하는 문자가 표시되었던 위치에 표시하는 단계;
를 포함하는, 사용자로부터 입력된 수학식을 인식하는 방법.
In a user device, a method of recognizing an equation input from a user,
Receiving a first equation from the user through a display unit;
Transmitting an image including the first equation to a network;
Receiving, from the network, 1) a character string of the first equation, and 2) a candidate list related to the character string of the first equation, predicted by the network, based on the image including the first equation;
Displaying the character string of the first equation to the user through the display unit;
Receiving, from the user, a character with an error in the character string of the first equation;
Displaying at least one or more candidates related to the erroneous character on the display unit based on a candidate list related to the character string of the first equation;
Receiving, from the user, a candidate for a correct answer from among the one or more candidates;
Replacing the erroneous character with the correct answer candidate and displaying it on the display unit;
Erasing a specific character from the character string of the first equation on the display unit and displaying an icon for inputting it again;
When the icon is selected, receiving, from the user, a character to be erased by the user;
Not displaying the character to be erased by the user on the display unit, and receiving a character to replace the character to be erased by the user from the user; And
Displaying the text to be replaced at a position where the text to be erased by the user has been displayed;
Including, a method of recognizing an equation input from a user.
삭제delete 삭제delete 제1항에 있어서,
제2 수학식이 포함된 이미지를 상기 네트워크로 전달하는 단계로서, 상기 제2 수학식은 상기 대체하는 문자가 포함됨;
상기 네트워크로부터, 상기 제2 수학식이 포함된 이미지에 근거하여, 상기 네트워크에서 예측된 1) 상기 제2 수학식의 문자열, 및 2) 상기 제2 수학식의 문자열과 관련된 후보자 리스트를 수신하는 단계; 및
상기 사용자에게, 상기 디스플레이부를 통해, 상기 제2 수학식의 문자열을 표시하는 단계;
를 더 포함하는, 사용자로부터 입력된 수학식을 인식하는 방법.
The method of claim 1,
Transmitting an image including a second equation to the network, wherein the second equation includes the replacement character;
Receiving, from the network, a list of candidates related to the character string of 1) the second equation, and 2) the character string of the second equation, predicted by the network, based on the image including the second equation; And
Displaying the character string of the second equation to the user through the display unit;
A method for recognizing an equation input from a user further comprising a.
사용자로부터 입력된 수학식을 인식하기 위한 사용자 디바이스에 있어서,
디스플레이부;
신호를 송수신하기 위한 송수신기; 및
상기 디스플레이부 및 상기 송수신기를 기능적으로 제어하는 프로세서;를 포함하며,
상기 프로세서는
상기 사용자로부터 상기 디스플레이부를 통해, 제1 수학식을 입력받고,
상기 송수신기를 통해, 상기 제1 수학식이 포함된 이미지를 네트워크로 전송하며, 상기 네트워크로부터, 상기 제1 수학식이 포함된 이미지에 근거하여, 상기 네트워크에서 예측된 1) 상기 제1 수학식의 문자열, 및 2) 상기 제1 수학식의 문자열과 관련된 후보자 리스트를 수신하고,
상기 사용자에게, 상기 디스플레이부를 통해, 상기 제1 수학식의 문자열을 표시하며,
상기 사용자로부터, 상기 제1 수학식의 문자열 중에 오류가 있는 문자를 선택받고,
상기 제1 수학식의 문자열과 관련된 후보자 리스트에 근거하여, 상기 오류가 있는 문자와 관련된 적어도 하나 이상의 후보자들을 상기 디스플레이부에 표시하며,
상기 사용자로부터, 상기 하나 이상의 후보자들 중에서, 정답 후보자를 선택받고,
상기 오류가 있는 문자를 상기 정답 후보자로 교체하여, 상기 디스플레이부에 표시하며,
상기 제1 수학식의 문자열 중 특정 문자를 상기 디스플레이부 상에서 지우고, 다시 입력하기 위한 아이콘을 표시하고,
상기 아이콘이 선택된 경우, 상기 사용자로부터 상기 사용자가 지우고자 하는 문자를 선택받고,
상기 사용자가 지우고자 하는 문자를 상기 디스플레이부에 표시하지 않고, 상기 사용자가 지우고자 하는 문자를 대체하는 문자를 상기 사용자에게 입력받으며,
상기 대체하는 문자를 상기 사용자가 지우고자 하는 문자가 표시되었던 위치에 표시하는, 사용자로부터 입력된 수학식을 인식하기 위한 사용자 디바이스.
In a user device for recognizing an equation input from a user,
A display unit;
A transceiver for transmitting and receiving signals; And
Includes; a processor that functionally controls the display unit and the transceiver,
The processor is
Receiving a first equation from the user through the display unit,
Through the transceiver, the image including the first equation is transmitted to a network, and from the network, based on the image including the first equation, 1) the character string of the first equation, predicted by the network, And 2) receiving a list of candidates related to the character string of the first equation,
Displaying the character string of the first equation to the user through the display unit,
From the user, a character with an error is selected from the character string of the first equation,
Displaying at least one or more candidates related to the erroneous character on the display unit based on the candidate list related to the character string of the first equation,
From the user, from among the one or more candidates, a correct answer candidate is selected,
The errored character is replaced with the correct answer candidate and displayed on the display unit,
Delete a specific character from the character string of the first equation on the display unit and display an icon for re-entry,
When the icon is selected, a character to be erased by the user is selected from the user,
The user does not display a character to be erased on the display unit, and a character to replace the character to be erased by the user is input by the user,
A user device for recognizing an equation input from a user, displaying the replacement character at a position where the character desired to be erased by the user has been displayed.
삭제delete 삭제delete 제5항에 있어서,
상기 프로세서는
상기 송수신기를 통해, 제2 수학식이 포함된 이미지를 상기 네트워크로 전달하고, 상기 제2 수학식은 상기 대체하는 문자가 포함되며,
상기 네트워크로부터, 상기 제2 수학식이 포함된 이미지에 근거하여, 상기 네트워크에서 예측된 1) 상기 제2 수학식의 문자열, 및 2) 상기 제2 수학식의 문자열과 관련된 후보자 리스트를 수신하고,
상기 사용자에게, 상기 디스플레이부를 통해, 상기 제2 수학식의 문자열을 표시하는, 사용자로부터 입력된 수학식을 인식하기 위한 사용자 디바이스.

The method of claim 5,
The processor is
Through the transceiver, an image including a second equation is transmitted to the network, and the second equation includes the replacement character,
1) a character string of the second equation predicted by the network, and 2) a candidate list related to the character string of the second equation, based on the image including the second equation, from the network,
A user device for recognizing an equation input from a user to display the character string of the second equation to the user through the display unit.

삭제delete 삭제delete
KR1020200137173A 2020-10-22 2020-10-22 Methods and devices for correcting reading errors in mathematical OCR(Optical Character Recognition) and stroke recognition KR102241480B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200137173A KR102241480B1 (en) 2020-10-22 2020-10-22 Methods and devices for correcting reading errors in mathematical OCR(Optical Character Recognition) and stroke recognition

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200137173A KR102241480B1 (en) 2020-10-22 2020-10-22 Methods and devices for correcting reading errors in mathematical OCR(Optical Character Recognition) and stroke recognition

Publications (1)

Publication Number Publication Date
KR102241480B1 true KR102241480B1 (en) 2021-04-19

Family

ID=75718696

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200137173A KR102241480B1 (en) 2020-10-22 2020-10-22 Methods and devices for correcting reading errors in mathematical OCR(Optical Character Recognition) and stroke recognition

Country Status (1)

Country Link
KR (1) KR102241480B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102399945B1 (en) * 2021-11-04 2022-05-19 홍진 A method of optical character recognition of electronic device for children learning
KR102442339B1 (en) 2022-03-29 2022-09-13 주식회사 애자일소다 Apparatus and method for ocr conversion of learning material
KR20220131774A (en) * 2021-03-22 2022-09-29 유왕상 Artificial intelligence learning data collection method for improving recognition rate using eraser function and candidate list

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160018495A (en) 2013-04-24 2016-02-17 마이스크립트 Permanent synchronization system for handwriting input
KR20160101683A (en) 2015-02-17 2016-08-25 삼성전자주식회사 Formula inputting method, apparatus and electronic device
KR20180060971A (en) 2016-11-29 2018-06-07 삼성전자주식회사 Apparatus and method for providing a sentence based on a user input

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160018495A (en) 2013-04-24 2016-02-17 마이스크립트 Permanent synchronization system for handwriting input
KR20160101683A (en) 2015-02-17 2016-08-25 삼성전자주식회사 Formula inputting method, apparatus and electronic device
KR20180060971A (en) 2016-11-29 2018-06-07 삼성전자주식회사 Apparatus and method for providing a sentence based on a user input

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220131774A (en) * 2021-03-22 2022-09-29 유왕상 Artificial intelligence learning data collection method for improving recognition rate using eraser function and candidate list
KR102508200B1 (en) * 2021-03-22 2023-03-09 주식회사 아이텍솔루션 Artificial intelligence learning data collection method for improving recognition rate using eraser function and candidate list
KR102399945B1 (en) * 2021-11-04 2022-05-19 홍진 A method of optical character recognition of electronic device for children learning
KR102442339B1 (en) 2022-03-29 2022-09-13 주식회사 애자일소다 Apparatus and method for ocr conversion of learning material

Similar Documents

Publication Publication Date Title
KR102241480B1 (en) Methods and devices for correcting reading errors in mathematical OCR(Optical Character Recognition) and stroke recognition
EP3218901B1 (en) Prediction-based sequence recognition
US8977042B2 (en) Rotation-free recognition of handwritten characters
US7646913B2 (en) Allograph based writer adaptation for handwritten character recognition
US20200143191A1 (en) Method, apparatus and storage medium for recognizing character
CN102855082B (en) Character recognition for overlay text user input
KR101312804B1 (en) Two tiered text recognition
KR102473543B1 (en) Systems and methods for digital ink interaction
KR20080030573A (en) Ink warping for normalization and beautification/ink beautification
CN109919077B (en) Gesture recognition method, device, medium and computing equipment
KR20080034956A (en) Style aware use of writing input
Kaur et al. A comprehensive survey on word recognition for non-Indic and Indic scripts
CN110929802A (en) Information entropy-based subdivision identification model training and image identification method and device
WO2021208617A1 (en) Method and apparatus for recognizing station entering and exiting, terminal, and storage medium
CN111199541A (en) Image quality evaluation method, image quality evaluation device, electronic device, and storage medium
CN114677515B (en) Weak supervision semantic segmentation method based on similarity between classes
US20220188541A1 (en) Parsing an Ink Document using Object-Level and Stroke-Level Processing
Lahoti et al. Android based american sign language recognition system with skin segmentation and SVM
WO2024055864A1 (en) Training method and apparatus for implementing ia classification model using rpa and ai
Sasipriyaa et al. SFGDO: Smart flower gradient descent optimization enabled generative adversarial network for recognition of Tamil handwritten character
Noubigh et al. Open vocabulary recognition of offline Arabic handwriting text based on deep learning
KR102508200B1 (en) Artificial intelligence learning data collection method for improving recognition rate using eraser function and candidate list
EP3785145B1 (en) System and method for automatic language detection for handwritten text
Sakib et al. Offline Bengali handwritten sentence recognition using BiLSTM and CTC networks
CN114822504A (en) Speech recognition method, apparatus, device and storage medium based on artificial intelligence

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant