KR20190106853A - 텍스트 인식 장치 및 방법 - Google Patents

텍스트 인식 장치 및 방법

Info

Publication number
KR20190106853A
KR20190106853A KR1020190105040A KR20190105040A KR20190106853A KR 20190106853 A KR20190106853 A KR 20190106853A KR 1020190105040 A KR1020190105040 A KR 1020190105040A KR 20190105040 A KR20190105040 A KR 20190105040A KR 20190106853 A KR20190106853 A KR 20190106853A
Authority
KR
South Korea
Prior art keywords
card
text
processor
image
area
Prior art date
Application number
KR1020190105040A
Other languages
English (en)
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 KR1020190105040A priority Critical patent/KR20190106853A/ko
Publication of KR20190106853A publication Critical patent/KR20190106853A/ko
Priority to US16/809,390 priority patent/US20210064871A1/en

Links

Images

Classifications

    • G06K9/00442
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • G06F18/2193Validation; Performance evaluation; Active pattern learning techniques based on specific statistical tests
    • 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/0482Interaction with lists of selectable items, e.g. menus
    • G06K9/30
    • G06K9/34
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/1444Selective acquisition, locating or processing of specific regions, e.g. highlighted text, fiducial marks or predetermined fields
    • G06V30/1448Selective acquisition, locating or processing of specific regions, e.g. highlighted text, fiducial marks or predetermined fields based on markings or identifiers characterising the document or the area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/19Recognition using electronic means
    • G06V30/191Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
    • G06V30/19173Classification techniques
    • G06K2209/01
    • 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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Character Discrimination (AREA)
  • Image Analysis (AREA)

Abstract

텍스트 인식 방법 및 장치가 개시된다. 텍스트 인식 방법은, 가변 폭을 갖는 틀을 이용한 강제 구획을 통해 디지트의 폭과 위치 검출을 포함한다. 본 발명에 따르면, 5G 네트워크 서비스 및 딥 러닝(deep learning) 수행의 신경망(CNN)을 통해 양각 텍스트 및 프린트 텍스트의 구별이 가능하고, 카드 타입 별로 서로 다른 방식을 통해 카드번호가 인식될 수 있다.

Description

텍스트 인식 장치 및 방법{APPARATUS AND METHOD FOR RECOGNITION OF TEXT INFORMATION}
본 발명은 텍스트 인식 장치 및 방법에 관한 것으로, 더욱 상세하게는 객체에 표시된 텍스트, 예를 들어 신용 카드를 포함한 각종 카드에 표시된 텍스트 인식을 통해 텍스트 정보를 판독하는 장치 및 방법에 관한 것이다.
개인용 컴퓨터(PC)를 이용한 결제가 주를 이루었던 온라인 결제 시장에서 모바일 단말 소위 스마트폰을 이용한 모바일 결제액이 빠른 속도로 증가하고 있다.
스마트폰을 이용한 모바일 결제 방식은 크게 NFC를 이용한 결제 방식과 결제 애플리케이션을 이용한 결제 방식이 사용되고 있다. 근거리 무선 통신(near field communication, NFC)을 이용한 결제 방식은 매장에 미진한 NFC 리더기의 보급으로 인하여 사용이 제한적이다.
한편, 결제 애플리케이션을 이용한 결제 방식은 결제에 사용될 신용카드 번호를 포함하는 카드 정보를 미리 스마트폰에 저장하고 결제 시 비밀번호를 입력하여 간단하게 결제를 수행하는 방식으로 이루어진다.
스마트폰에 카드 정보를 저장했다가 결제 시에 사용하는 경우에도 카드 정보가 스마트폰에 입력 및 저장되어야 한다. 사용자의 편한 인터페이스 추구에 따른 스마트폰의 특징 때문에 간편한 절차에 의한 카드 정보 입력 방법의 필요에 따라 다양한 카드번호 인식 방법이 연구되고 있다.
전통적인 광학 문자인식(optical character recognition, OCR)은 인쇄물 상의 글자와 이미지를 디지털 데이터로 변환해 주는 자동 인식 솔루션이다. 그런데 OCR은 양각으로 표시된 텍스트 인식에는 인식률이 현저히 떨어져서 적합하지 않다.
양각으로 표시된 신용카드 번호는 일반 텍스트와 달리 배경과 대비의 구분이 어렵다. 많은 신용카드는 배경에 다양한 이미지로 장식되어 있어 번호 식별이 어려운 경우가 발생한다. 번호에 입혀진 금박 또는 은박이 벗겨져 번호 식별이 어려운 경우가 발생한다. 신용카드는 플라스틱 재질 때문에 표면에 빛의 반사가 일어날 수 있다. 또한, 신용카드 발급사에 따라 서로 다른 표준 글꼴을 사용하는 경우가 존재한다.
신용카드의 특징에 따라 양각의 신용카드 번호는 일반적인 텍스트 광학 문자인식(OCR)기술로는 인식할 수 없으며, 양각 텍스트 이미지에 대한 별도의 이미지 프로세싱 숫자 인식기술이 요구된다.
그리고 종래 기술은 16자리 고정된 형태 및 일정한 위치의 카드번호 인식에 한정되어 있어서, 다양한 타입의 카드번호 인식에 적합하지 않았다.
하나의 관련 기술로서 카드 번호의 영역 특성을 이용하는 신용카드 번호 인식 시스템이 등록번호 KR 제10-1295000호의 등록공보에 개시된다. 이 관련 기술에 따르면 카드번호의 처음 4자리를 양각 번호 및 인쇄된 번호를 통해 인식하고, 인식된 두 번호의 비교를 통해 카드번호를 결정하게 된다. 그런데 이 관련 기술이 양각 번호와 인쇄된 번호가 동시에 표시된 카드 타입에 한정되어 있어서 활용 범위가 좁은 것이 문제점이다.
또한, 다른 관련 기술로서 결제 카드의 유효기간 판독 방법이 등록번호 KR 제10-1880140호의 등록공보에 개시된다. 이 관련 기술에 따르면 복수의 카드 이미지를 통해 유효 숫자를 판단하고, 판단 결과 동일한 유효 숫자의 범위가 50%를 넘지 않으면 추가 카드 이미지를 통해 유효 숫자를 인식한다. 그런데 이 관련 기술에 따르면 카드 이미지의 상태에 따라 유효 숫자 특정에 혼란이 가중될 수 있는 문제점이 있다.
KR 등록특허공보 제10-1295000호 (2013.08.05. 등록) KR 등록특허공보 제10-1880140호 (2018.07.13. 등록)
본 발명의 일 과제는, 양각의 텍스트를 인식하기 위해 인식률이 낮은 OCR 엔진을 사용하였던 종래 기술의 문제점을 해결하는 것이다.
본 발명의 일 과제는, 양각 및 인쇄 방식의 카드를 체계적으로 구별하여 인식하지 못했던 종래 기술의 문제점을 해결하는 것이다.
본 발명의 일 과제는, 종래 기술이 제공하지 못했던, 강제 구획 틀을 이용하여 카드번호 영역의 인식률을 높일 수 있는 인식 방법을 제공하는 것이다.
본 발명의 과제는 이상에서 언급한 과제에 한정되지 않으며, 언급되지 않은 본 발명의 다른 과제 및 장점들은 하기의 실시 예에 의해 보다 분명하게 이해될 것이다. 또한, 본 발명의 과제 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 알 수 있을 것이다.
상술한 과제를 해결하기 위한 본 발명의 일 실시 예에 따른 텍스트 인식 방법은, 카드 이미지로부터 카드번호 인식을 포함하도록 구성될 수 있다. 그리고 카드번호 인식은, 카드번호 수직 구획(vertical segmentation) 및 수평 구획 (horizontal segmentation)을 포함하도록 구성될 수 있고, 수평 구획은, 카드번호의 구성 패턴에 기반을 두는, 카드번호를 구성하는 디지트(digit)의 크기와 수에 대응하는 틀(grid)로서, 가변 폭을 갖는 틀(grid)을 이용한 강제 구획(forced segmentation)을 통한 디지트의 폭과 위치 검출을 포함하도록 구성될 수 있다.
또한, 카드번호 인식은, 카드번호 확인을 위해 Luhn check, IIN check, Multi-frame 검사, 및 CNN mean confidence 검사의 다중 검사를 더 포함하도록 구성될 수 있다.
상술한 과제를 해결하기 위한 본 발명의 일 실시 예에 따른 텍스트 인식 방법은, 카드 이미지로부터 카드 영역 검출을 포함하도록 구성될 수 있다. 그리고 카드 영역 검출은, 카드의 에지 인식 및 에지에 기반을 둔 카드 영역 추출을 포함하되, 카드의 에지 인식은, 촬영 구도에 기반을 두어 카드의 상측 에지와 하측 에지 간의 관계 및 좌측 에지와 우측 에지 간의 관계 분석 및 관계 분석을 기반으로 카드의 에지 결정을 포함하도록 구성될 수 있다.
또한, 카드의 에지 인식에서, 카드의 가로와 세로 간의 실제 비율이 이용될 수 있다.
상술한 과제를 해결하기 위한 본 발명의 일 실시 예에 따른 텍스트 인식 방법은, 카드 이미지로부터 카드의 텍스트 표시 방식 판별을 포함하도록 구성될 수 있다. 그리고 카드의 텍스트 표시 방식 판별은, 마그네틱의 위치에 따른 카드의 전면 또는 후면 해당 여부, 텍스트 간의 여백 공간 계산을 통한 텍스트 배열 방향에 기반을 둔 카드의 가로(portrait) 또는 세로(landscape) 해당 여부 중에서 적어도 하나의 판별 및 판별에 기반을 둔 카드의 텍스트 표시 방식 예측을 포함하도록 구성될 수 있다.
또한, 카드의 텍스트 표시 방식 판별은, 양각(embossing) 방식 및 인쇄(printing) 방식 중에서 카드의 텍스트 표시 방식 판별에 해당될 수 있다.
또한, 텍스트 인식 방법은, 카드 이미지로부터 카드번호 및 유효기간 인식을 더 포함하도록 구성될 수 있다. 카드의 텍스트 표시 방식이 양각 방식으로 판별된 경우, 카드번호 및 유효기간 인식은, 카드번호 인식을 통해 카드회사 및 발급사 중에서 적어도 하나에 관한 정보 추출, 정보 및 미리 저장된 데이터베이스를 이용한 카드회사 및 발급사 별 유효기간 유형 검출, 및 인식된 유효기간을 상기 유효기간 유형을 이용한 검사를 포함하도록 구성될 수 있다.
또한, 텍스트 인식 방법은, 카드 이미지로부터 카드번호 및 유효기간 인식을 더 포함하도록 구성될 수 있다. 카드의 텍스트 표시 방식이 인쇄 방식으로 판별된 경우, 카드번호 및 유효기간 인식은, 카드의 전후면 및 가로세로 인식에 기반을 둔 후보 영역을 설정, OCR(optical character recognition)을 통해 후보 영역 내의 텍스트 인식 및 인식된 텍스트 중에서 숫자군을 이용한 카드번호 예측, 슬래시(slash)를 이용한 유효기간 예측을 포함하도록 구성될 수 있다.
또한, 텍스트 인식 방법은, 배경이 혼합된 텍스트를 인식하기 위해 카드 이미지 전처리를 더 포함하도록 구성될 수 있다.
상술한 과제를 해결하기 위한 본 발명의 일 실시 예에 따른 텍스트 인식 방법은, 사용자 인터페이스(user interface, UI) 상에서 카드 이미지를 입력받기 위해 가로 타입 카드 및 세로 타입 카드 중에서 어느 하나를 선택할 수 있는 메뉴 표시 및 사용자 선택에 따라 가로 타입 카드 및 세로 타입 카드 중에서 어느 하나의 카드 이미지 입력을 포함하도록 구성될 수 있다.
상술한 과제를 해결하기 위한 본 발명의 일 실시 예에 따른 텍스트 인식 장치는, 카드 이미지를 획득하는 카메라, 획득된 상기 카드 이미지를 표시하는 디스플레이부 및 카메라 및 디스플레이부를 제어하고 카드 이미지를 이용하여 카드에 표시된 텍스트를 인식하는 프로세서를 포함하도록 구성될 수 있다. 그리고 프로세서는, 카드번호 수직 구획(vertical segmentation) 및 수평 구획 (horizontal segmentation)을 이용하여 카드번호 영역을 검출하되, 카드번호의 구성 패턴에 기반을 두는, 카드번호를 구성하는 디지트(digit)의 크기와 수에 대응하는 틀(grid)로서, 가변 폭을 갖는 상기 틀(grid)을 이용한 수직 강제 구획(forced segmentation)을 통해 상기 디지트의 폭과 위치를 검출할 수 있다.
또한, 프로세서는, 카드번호 확인을 위해 Luhn check, IIN check, Multi-frame 검사, 및 CNN mean confidence 검사의 다중 검사를 수행할 수 있다.
상술한 과제를 해결하기 위한 본 발명의 일 실시 예에 따른 텍스트 인식 장치는, 카드 이미지를 획득하는 카메라, 획득된 상기 카드 이미지를 표시하는 디스플레이부 및 카메라 및 디스플레이부를 제어하고 카드 이미지를 이용하여 카드 영역을 검출하고, 카드 영역 상의 텍스트를 인식하는 프로세서를 포함하도록 구성될 수 있다. 그리고 프로세서는, 촬영 구도에 기반을 두어 카드의 상측 에지와 하측 에지 간의 관계 및 좌측 에지와 우측 에지 간의 관계를 분석하고, 관계 분석을 기반으로 카드 영역 검출을 위한 카드의 에지를 결정할 수 있다.
또한, 프로세서는, 카드의 가로와 세로 간의 실제 비율을 이용하여 카드의 에지를 결정할 수 있다.
상술한 과제를 해결하기 위한 본 발명의 일 실시 예에 따른 텍스트 인식 장치는, 카드 이미지를 획득하는 카메라, 획득된 상기 카드 이미지를 표시하는 디스플레이부 및 카메라 및 디스플레이부를 제어하고 카드 이미지를 이용하여 카드 영역 상의 텍스트를 인식하는 프로세서를 포함하도록 구성될 수 있다.
또한, 프로세서는, 마그네틱의 위치에 따른 카드의 전면 또는 후면 해당 여부, 텍스트 간의 여백 공간 계산을 통한 텍스트 배열 방향에 기반을 둔 카드의 가로(portrait) 또는 세로(landscape) 해당 여부 중에서 적어도 하나를 판별하고, 판별에 기반을 두어 카드의 텍스트 표시 방식을 예측할 수 있다.
또한, 프로세서는, 양각(embossing) 방식 및 인쇄(printing) 방식 중에서 상기 카드의 텍스트 표시 방식을 판별할 수 있다.
또한, 카드의 텍스트 표시 방식이 양각 방식으로 판별된 경우, 프로세서는, 인식된 카드번호에 기반을 두어 미리 준비된 카드회사 및 발급사 별 유효기간 유형에 관한 데이터베이스를 이용하여 상기 유효기간을 검사할 수 있다.
또한, 카드의 텍스트 표시 방식이 인쇄 방식으로 인식된 경우, 프로세서는, 카드의 전후면 및 가로세로 인식에 기반을 두어 설정된 후보 영역 내에서 인식된 텍스트 중에서 숫자군을 이용하여 카드번호를 예측하고, 슬래시(slash)를 이용하여 유효기간을 예측할 수 있다.
또한, 프로세서는, 배경이 혼합된 텍스트를 인식하기 위해 카드 이미지 전처리를 수행할 수 있다.
상술한 과제를 해결하기 위한 본 발명의 일 실시 예에 따른 텍스트 인식 장치는, 카드 이미지를 획득하는 카메라, 획득된 상기 카드 이미지를 표시하는 디스플레이부 및 카메라 및 디스플레이부를 제어하고 카드 이미지를 이용하여 카드 영역 상의 텍스트를 인식하는 프로세서를 포함하도록 구성될 수 있다. 그리고 프로세서는, 가로 타입 카드와 세로 타입 카드의 이미지를 서로 구별하여 입력 받을 수 있도록, 사용자 UI 상에서 카드 이미지 입력 메뉴 표시를 제어할 수 있다.
본 발명에 의하면, 양각 텍스트의 카드와 인쇄된 텍스트의 카드 간 구별이 가능하고, 카드 타입 별로 서로 다른 방식을 통해 카드번호가 인식될 수 있다.
또한, 높은 인식률로 카드 타입에 따라 양각 및 인쇄 방식의 카드번호가 모두 인식될 수 있다.
또한, 카드 발급에 관한 정보를 이용하여 카드번호의 인식 오류가 미리 방지될 수 있다.
도 1은 본 발명의 일 실시 예에 따른 텍스트 인식 방법이 이용될 수 있는 양각 텍스트 표시 방식 카드의 예시도이다.
도 2는 본 발명의 일 실시 예에 따른 텍스트 인식 장치의 네트워크 환경의 예시도이다.
도 3은 본 발명의 일 실시 예에 따른 텍스트 인식 장치에 해당하는 단말기의 블록도이다.
도 4는 본 발명의 일 실시 예에 따른 메모리의 블록 구성도이다.
도 5는 본 발명의 일 실시 예에 따른 학습장치의 블록 구성도이다.
도 6은 본 발명의 일 실시 예에 따른 텍스트 인식 방법의 흐름도이다.
도 7은 본 발명의 일 실시 예에 따른 카드 영역 검출 과정의 예시도이다.
도 8은 본 발명의 일 실시 예에 따른 카드번호 영역의 예시도이다.
도 9는 본 발명의 일 실시 예에 따른 카드번호 영역의 예시도이다.
도 10은 본 발명의 일 실시 예에 따른 카드번호 수직 구획의 예시도이다.
도 11은 본 발명의 일 실시 예에 따른 가변폭 틀(grid)을 이용한 수평 구획의 예시도이다.
도 12는 본 발명의 일 실시 예에 따른 수평 구획에 따른 스코어 분포의 예시도이다.
도 13은 본 발명의 일 실시 예에 따른 수평 구획 결과의 예시도이다.
도 14는 본 발명의 일 실시 예에 따라 인식된 텍스트의 각 디지트의 예시도이다.
도 15는 본 발명의 일 실시 예에 따른 인공지능 모델을 이용한 텍스트 인식의 예시도이다.
도 16은 본 발명의 일 실시 예에 따른 유효 기간 인식 과정의 예시도이다.
도 17은 본 발명의 일 실시 예에 따른 인쇄된 텍스트를 갖는 카드 인식 과정의 예시도이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대해 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시 예를 설명함에서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않은 것으로 이해되어야 할 것이다.
본 발명의 일 실시 예에 따른 텍스트 인식 방법 및 장치는 미디어(media)에 표시된 텍스트 인식에 관한 것으로, 더 상세하게는 촬영된 미디어의 이미지를 기반으로 미디어에 양각되거나 프린트된 텍스트 인식에 관한 것이다. 여기서, 미디어의 범위에 텍스트가 표시될 수 있는 신용카드, 체크카드, 신분증과 같은 각종 카드, 텍스트가 표시된 간판 및 텍스트가 표시된 상품 등이 포함될 수 있다.
도 1은 본 발명의 일 실시 예에 따른 텍스트 인식 방법이 이용될 수 있는 양각 텍스트 표시 방식 카드의 예시도이다.
도 1을 참조하면, 일반적으로 많이 사용되고 있는 비자 계열에 양각 텍스트 표시 방식의 신용카드 이미지가 묘사되어 있다. 묘사된 신용카드에서 카드번호는 양각 방식으로 새겨져 있고, 알파벳 V 모양의 그림이 카드번호와 겹쳐서 그려져 있다. 기존의 OCR 엔진은 프린트된 텍스트 인식을 위해 설계되었기 때문에 양각 방식의 신용카드 텍스트 인식에서 인식률이 떨어지는 것이 단점이 있다. 따라서, 양각된 텍스트 대상의 인식 알고리즘 및 양각된 텍스트와 프린트된 텍스트를 구별할 수 있는 알고리즘이 필요하다.
도 2는 본 발명의 일 실시 예에 따른 텍스트 인식 장치의 네트워크 환경의 예시도이다.
도 2를 참조하면, 본 발명의 일 실시 예에 따른 텍스트 인식 장치(100) 및 서버(200)가 네트워크(500)를 통해 통신 연결되어 있다.
본 발명의 일 실시 예에 따른 텍스트 인식 장치의 범위에는 모바일 단말, 랩톱 컴퓨터, 및 개인 컴퓨터(PC) 등, 다양한 종류의 단말기(100)가 포함될 수 있다.
서버(200)는 본 발명의 일 실시 예에서 설명되는 인공지능 모델과 관련하여 단말기(100)에 인공지능 모델과 관련된 각종 서비스를 제공하는 역할을 한다. 인공지능 모델에 대한 자세한 설명은 후술하기로 한다.
단말기(100)는 휴대전화, 프로젝터, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 디지털방송용 단말기, PDA(personal digital assistants), PMP(portable multimedia player), 내비게이션, 슬레이트 PC(slate PC), 태블릿 PC(tablet PC), 울트라북(ultrabook), 웨어러블 디바이스(wearable device, 예를 들어, 워치형 단말기 (smartwatch), 글래스형 단말기 (smart glass), HMD(head mounted display)), 셋톱박스(STB), DMB 수신기, 라디오, 세탁기, 냉장고, 데스크탑 컴퓨터, 디지털 사이니지(digital signage)와 같은 고정형 기기 및 이동 가능한 기기 등으로 구현될 수 있다.
네트워크(400)는 유선 및 무선 네트워크, 예를 들어 LAN(local area network), WAN(wide area network), 인터넷(internet), 인트라넷(intranet) 및 엑스트라넷(extranet), 그리고 모바일 네트워크, 예를 들어 셀룰러, 3G, LTE, 5G, WiFi 네트워크, 애드혹 네트워크 및 이들의 조합을 비롯한 임의의 적절한 통신 네트워크 일 수 있다.
네트워크(400)는 허브, 브리지, 라우터, 스위치 및 게이트웨이와 같은 네트워크 요소들의 연결을 포함할 수 있다. 네트워크(400)는 인터넷과 같은 공용 네트워크 및 안전한 기업 사설 네트워크와 같은 사설 네트워크를 비롯한 하나 이상의 연결된 네트워크들, 예컨대 다중 네트워크 환경을 포함할 수 있다. 네트워크(400)에의 액세스는 하나 이상의 유선 또는 무선 액세스 네트워크들을 통해 제공될 수 있다.
단말기(100)는 5G 네트워크를 통해 학습 장치인 서버(200)와 데이터를 전송하고 수신할 수 있다. 특히 인체 인식 활용 단말기(100, 300)는 5G 네트워크를 통해 모바일 브로드밴드(Enhanced Mobile Broadband, eMBB), URLLC(Ultra-reliable and low latency communications) 및 mMTC(Massive Machine-type communications) 중에서 적어도 하나의 서비스를 이용하여 학습 장치(200)와 데이터 통신을 할 수 있다.
eMBB(Enhanced Mobile Broadband)는 모바일 브로드밴드 서비스로, 이를 통해 멀티미디어 콘텐츠, 무선데이터 액세스 등이 제공된다. 또한, 폭발적으로 증가하고 있는 모바일 트래픽을 수용하기 위한 핫스팟 (hot spot)과 광대역 커버리지 등 보다 향상된 모바일 서비스가 eMBB를 통해 제공될 수 있다. 핫스팟을 통해 사용자 이동성이 작고 밀도가 높은 지역으로 대용량 트래픽이 수용될 수 있다. 광대역 커버리지를 통해 넓고 안정적인 무선 환경과 사용자 이동성이 보장될 수 있다.
URLLC(Ultra-reliable and low latency communications) 서비스는 데이터 송수신의 신뢰성과 전송 지연 측면에서 기존 LTE 보다 훨씬 엄격한 요구사항을 정의하고 있으며, 산업 현장의 생산 프로세스 자동화, 원격 진료, 원격 수술, 운송, 안전 등을 위한 5G 서비스가 여기에 해당한다.
mMTC(Massive Machine-type communications)는 비교적 적은 양의 데이터 전송이 요구되는 전송지연에 민감하지 않은 서비스이다. 센서 등과 같이 일반 휴대전화 보다 훨씬 더 많은 수의 단말들이 동시에 무선액세스 네트워크에 mMTC에 의해 접속할 수 있다. 이 경우, 단말의 통신모듈 가격은 저렴해야 하고, 배터리 교체나 재충전 없이 수년 동안 동작할 수 있도록 향상된 전력 효율 및 전력 절감 기술이 요구된다.
도 3은 본 발명의 일 실시 예에 따른 텍스트 인식 장치에 해당하는 단말기의 블록도이다.
도 3을 참조하면, 단말기(100)는 무선 통신부(110), 입력부(120), 러닝 프로세서(130), 센싱부(140), 출력부(150), 인터페이스부(160), 메모리(170), 프로세서(180) 및 전원 공급부(190)를 포함할 수 있다.
학습 모델(a trained model)은 단말기(100)에 탑재될 수 있다.
한편, 학습 모델은 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있으며, 학습 모델의 일부 또는 전부가 소프트웨어로 구현되는 경우 학습 모델을 구성하는 하나 이상의 명령어는 메모리(170)에 저장될 수 있다.
무선 통신부(110)는, 방송 수신 모듈(111), 이동통신 모듈(112), 무선 인터넷 모듈(113), 근거리 통신 모듈(114), 위치정보 모듈(115) 중 적어도 하나를 포함할 수 있다.
방송 수신 모듈(111)은 방송 채널을 통하여 외부의 방송 관리 서버로부터 방송 신호 및/또는 방송 관련된 정보를 수신한다.
이동통신 모듈(112)은, 이동통신을 위한 기술표준들 또는 통신방식(예를 들어, GSM(Global System for Mobile communication), CDMA(Code Division Multi Access), CDMA2000(Code Division Multi Access 2000), EV-DO(Enhanced Voice-Data Optimized or Enhanced Voice-Data Only), WCDMA(Wideband CDMA), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), LTE(Long Term Evolution), LTE-A(Long Term Evolution-Advanced) 등)에 따라 구축된 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다.
무선 인터넷 모듈(113)은 무선 인터넷 접속을 위한 모듈을 말하는 것으로, 단말기(100)에 내장되거나 외장될 수 있다. 무선 인터넷 모듈(113)은 무선 인터넷 기술들에 따른 통신망에서 무선 신호를 송수신하도록 이루어진다.
무선 인터넷 기술로는, 예를 들어 WLAN(Wireless LAN), Wi-Fi(Wireless-Fidelity), Wi-Fi(Wireless Fidelity) Direct, DLNA(Digital Living Network Alliance), WiBro(Wireless Broadband), WiMAX(World Interoperability for Microwave Access), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), LTE(Long Term Evolution), LTE-A(Long Term Evolution-Advanced) 등이 있다.
근거리 통신 모듈(114)은 근거리 통신(Short range communication)을 위한 것으로서, 블루투스(Bluetooth?), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association; IrDA), UWB(Ultra Wideband), ZigBee, NFC(Near Field Communication), Wi-Fi(Wireless-Fidelity), Wi-Fi Direct, Wireless USB(Wireless Universal Serial Bus) 기술 중 적어도 하나를 이용하여, 근거리 통신을 지원할 수 있다.
위치정보 모듈(115)은 이동 단말기의 위치(또는 현재 위치)를 획득하기 위한 모듈로서, 그의 대표적인 예로는 GPS(Global Positioning System) 모듈 또는 WiFi(Wireless Fidelity) 모듈이 있다. 예를 들어, 단말기는 GPS모듈을 활용하면, GPS 위성에서 보내는 신호를 이용하여 이동 단말기의 위치를 획득할 수 있다.
입력부(120)는 영상 신호 입력을 위한 카메라(121), 오디오 신호를 수신하기 위한 마이크로폰(122), 사용자로부터 정보를 입력 받기 위한 사용자 입력부(123)를 포함할 수 있다.
입력부(120)에서 수집한 음성 데이터나 이미지 데이터는 분석되어 사용자의 제어 명령으로 처리될 수 있다.
입력부(120)는 모델 학습을 위한 훈련 데이터 및 학습된 모델을 이용하여 출력을 획득할 때 사용될 입력 데이터 등을 획득할 수 있다.
입력부(120)는 가공되지 않은 입력 데이터를 획득할 수도 있으며, 이 경우 프로세서(180) 또는 러닝 프로세서(130)는 획득한 데이터를 전처리하여 모델 학습에 입력이 가능한 훈련 데이터 또는 전처리된 입력 데이터를 생성할 수 있다.
이때, 입력 데이터에 대한 전처리는, 입력 데이터로부터 입력 특징점(input feature)을 추출하는 것을 의미할 수 있다.
입력부(120)는 영상 정보(또는 신호), 오디오 정보(또는 신호), 데이터, 또는 사용자로부터 입력되는 정보의 입력을 위한 것으로서, 영상 정보의 입력을 위하여, 단말기(100)는 하나 또는 복수의 카메라(121)들을 구비할 수 있다.
카메라(121)는 화상 통화모드 또는 촬영 모드에서 이미지 센서에 의해 얻어지는 정지영상 또는 동영상 등의 화상 프레임을 처리한다. 처리된 화상 프레임은 디스플레이부(151)에 표시되거나 메모리(170)에 저장될 수 있다.
마이크로폰(122)은 외부의 음향 신호를 전기적인 음성 데이터로 처리한다. 처리된 음성 데이터는 단말기(100)에서 수행 중인 기능(또는 실행 중인 응용 프로그램)에 따라 다양하게 활용될 수 있다. 한편, 마이크로폰(122)에는 외부의 음향 신호를 입력 받는 과정에서 발생되는 잡음(noise)을 제거하기 위한 다양한 잡음 제거 알고리즘이 구현될 수 있다.
사용자 입력부(123)는 사용자로부터 정보를 입력 받기 위한 것으로서, 사용자 입력부(123)를 통해 정보가 입력되면, 프로세서(180)는 입력된 정보에 대응되도록 단말기(100)의 동작을 제어할 수 있다.
사용자 입력부(123)는 기계식 (mechanical) 입력수단(또는, 메커니컬 키, 예를 들어, 단말기(100)의 전/후면 또는 측면에 위치하는 버튼, 돔 스위치 (dome switch), 조그 휠, 조그 스위치 등) 및 터치식 입력수단을 포함할 수 있다. 일 예로서, 터치식 입력수단은, 소프트웨어적인 처리를 통해 터치스크린에 표시되는 가상 키(virtual key), 소프트 키(soft key) 또는 비주얼 키(visual key)로 이루어지거나, 상기 터치스크린 이외의 부분에 배치되는 터치 키(touch key)로 이루어질 수 있다.
러닝 프로세서(130)는 훈련 데이터를 이용하여 인공 신경망으로 구성된 모델을 학습한다.
구체적으로, 러닝 프로세서(130)는 앞서 설명한 다양한 학습 기법을 이용하여 인공 신경망을 반복적으로 학습시킴으로써, 인공 신경망의 최적화된 모델 파라미터들을 결정할 수 있다.
본 명세서에서는 훈련 데이터를 이용하여 학습됨으로써 파라미터가 결정된 인공 신경망을 학습 모델 또는 학습된 모델(a trained model)이라 칭할 수 있다.
이때, 학습 모델은 훈련 데이터가 아닌 새로운 입력 데이터에 대하여 결과 값을 추론해 내는데 사용될 수 있다.
러닝 프로세서(130)는 데이터 마이닝, 데이터 분석, 지능형 의사 결정, 및 기계 학습 알고리즘 및 기술을 위해 이용될 정보를 수신, 분류, 저장 및 출력하도록 구성될 수 있다.
러닝 프로세서(130)는 다른 컴포넌트, 디바이스, 단말기 또는 단말기와 통신하는 장치에 의해 수신, 검출, 감지, 생성, 사전 정의 또는 출력되는 데이터를 저장하도록 구성된 하나 이상의 메모리 유닛을 포함할 수 있다.
러닝 프로세서(130)는 단말기에 통합되거나 구현된 메모리를 포함할 수 있다. 일부 실시 예에서, 러닝 프로세서(130)는 메모리(170)를 사용하여 구현될 수 있다.
선택적으로 또는 부가적으로, 러닝 프로세서(130)는 단말기에 직접 결합된 외부 메모리 또는 단말기와 통신하는 서버에서 유지되는 메모리와 같이 단말기와 관련된 메모리를 사용하여 구현될 수 있다.
다른 실시 예에서, 러닝 프로세서(130)는 클라우드 컴퓨팅 환경에서 유지되는 메모리, 또는 네트워크와 같은 통신 방식을 통해 단말기에 의해 액세스 가능한 다른 원격 메모리 위치를 이용하여 구현될 수 있다.
러닝 프로세서(130)는 일반적으로 감독 또는 감독되지 않은 학습, 데이터 마이닝, 예측 분석 또는 다른 머신에서 사용하기 위해 데이터를 식별, 색인화, 카테고리화, 조작, 저장, 검색 및 출력하기 위해 데이터를 하나 이상의 데이터베이스에 저장하도록 구성될 수 있다. 여기서, 데이터베이스는 메모리(170), 학습 장치(200)의 메모리(230), 클라우드 컴퓨팅 환경에서 유지되는 메모리, 또는 네트워크와 같은 통신 방식을 통해 단말기에 의해 액세스 가능한 다른 원격 메모리 위치를 이용하여 구현될 수 있다.
러닝 프로세서(130)에 저장된 정보는 다양한 상이한 유형의 데이터 분석 알고리즘 및 기계 학습 알고리즘 중 임의의 것을 사용하여 프로세서(180) 또는 단말기의 하나 이상의 다른 제어기에 의해 이용될 수 있다.
이러한, 알고리즘의 예로는, k-최근 인접 시스템, 퍼지 논리 (예: 가능성 이론), 신경 회로망, 볼츠만 기계, 벡터 양자화, 펄스 신경망, 지원 벡터 기계, 최대 마진 분류기, 힐 클라이밍, 유도 논리 시스템 베이지안 네트워크, 페리트넷 (예: 유한 상태 머신, 밀리 머신, 무어 유한 상태 머신), 분류기 트리 (예: 퍼셉트론 트리, 지원 벡터 트리, 마코프 트리, 의사 결정 트리 포리스트, 임의의 포리스트), 판독 모델 및 시스템, 인공 융합, 센서 융합, 이미지 융합, 보강 학습, 증강 현실, 패턴 인식, 자동화 된 계획 등을 포함한다.
프로세서(180)는 데이터 분석 및 기계 학습 알고리즘을 사용하여 결정되거나, 생성된 정보에 기초하여 단말기의 적어도 하나의 실행 가능한 동작을 결정 또는 예측할 수 있다. 이를 위해, 프로세서(180)는 러닝 프로세서(130)의 데이터를 요청, 검색, 수신 또는 활용할 수 있고, 상기 적어도 하나의 실행 가능한 동작 중 예측되는 동작이나, 바람직한 것으로 판단되는 동작을 실행하도록 상기 단말기를 제어할 수 있다.
프로세서(180)는 지능적 에뮬레이션(즉, 지식 기반 시스템, 추론 시스템 및 지식 획득 시스템)을 구현하는 다양한 기능을 수행 할 수 있다. 이는 적응 시스템, 기계 학습 시스템, 인공 신경망 등을 포함하는, 다양한 유형의 시스템(예컨대, 퍼지 논리 시스템)에 적용될 수 있다.
프로세서(180)는, 또한 I/O 처리 모듈, 환경 조건 모듈, 음성 - 텍스트 (STT: Speech to Text) 처리 모듈, 자연어 처리 모듈, 작업 흐름 처리 모듈 및 서비스 처리 모듈과 같이, 음성 및 자연 언어 음성 처리를 수반하는 연산을 가능하게 하는 서브 모듈을 포함할 수 있다.
이들 서브 모듈들 각각은, 단말기에서의 하나 이상의 시스템 또는 데이터 및 모델, 또는 이들의 서브셋 또는 수퍼 셋에 대한 액세스를 가질 수 있다. 또한, 이들 서브 모듈들 각각은, 어휘 색인, 사용자 데이터, 작업 흐름 모델, 서비스 모델 및 자동 음성 인식 (ASR) 시스템을 비롯한 다양한 기능을 제공할 수 있다.
다른 실시 예에서, 프로세서(180) 또는 단말기의 다른 양태는 상기 서브 모듈, 시스템, 또는 데이터 및 모델로 구현 될 수 있다.
일부 예에서, 러닝 프로세서(130)의 데이터에 기초하여, 프로세서(180)는 사용자 입력 또는 자연 언어 입력으로 표현된 문맥 조건 또는 사용자의 의도에 기초하여 요구 사항을 검출하고 감지하도록 구성 될 수 있다.
프로세서(180)는 문맥 조건 또는 사용자의 의도에 기초하여 요구 사항을 완전히 결정하는데 필요한 정보를 능동적으로 이끌어 내고, 획득할 수 있다. 예를 들어, 프로세서(180)는 역사적 입력 및 출력, 패턴 매칭, 모호하지 않은 단어, 입력 의도 등을 포함하는 과거 데이터를 분석함으로써 요구 사항을 결정하는데, 필요한 정보를 능동적으로 이끌어낼 수 있다.
프로세서(180)는 문맥 조건 또는 사용자의 의도에 기초하여 요구 사항에 응답하는 기능을 실행하기 위한 태스크 흐름을 결정할 수 있다.
프로세서(180)는 러닝 프로세서(130)에서 프로세싱 및 저장을 위한 정보를 수집하기 위해, 단말기에서 하나 이상의 감지 컴포넌트를 통해 데이터 분석 및 기계 학습 작업에 사용되는 신호 또는 데이터를 수집, 감지, 추출, 검출 및/또는 수신하도록 구성 될 수 있다.
정보 수집은 센서를 통해 정보를 감지하는 것, 메모리(170)에 저장된 정보를 추출하는 것 또는 통신 수단을 통해 다른 단말기, 엔티티 또는 외부 저장 장치로부터 정보를 수신하는 것을 포함 할 수 있다.
프로세서(180)는 단말기에서 사용 히스토리 정보를 수집하여, 메모리(170)에 저장할 수 있다.
프로세서(180)는 저장된 사용 히스토리 정보 및 예측 모델링을 사용하여 특정 기능을 실행하기 위한 최상의 매치를 결정할 수 있다.
프로세서(180)는 센싱부(140)를 통해 주변 환경 정보 또는 기타 정보를 수신하거나 감지 할 수 있다.
프로세서(180)는 무선 통신부(110)을 통해 방송 신호 및/또는 방송 관련 정보, 무선 신호, 무선 데이터를 수신할 수 있다.
프로세서(180)는 입력부(120)로부터 이미지 정보 (또는 해당 신호), 오디오 정보 (또는 해당 신호), 데이터 또는 사용자 입력 정보를 수신 할 수 있다.
프로세서(180)는 정보를 실시간으로 수집하고, 정보 (예를 들어, 지식 그래프, 명령 정책, 개인화 데이터베이스, 대화 엔진 등)를 처리 또는 분류하고, 처리 된 정보를 메모리(170) 또는 러닝 프로세서(130)에 저장할 수 있다.
단말기의 동작이 데이터 분석 및 기계 학습 알고리즘 및 기술에 기초하여 결정될 때, 프로세서(180)는 결정된 동작을 실행하기 위해 단말기의 구성 요소를 제어 할 수 있다. 그리고 프로세서(180)는 제어 명령에 따라 단말을 제어하여 결정된 동작을 수행 할 수 있다.
프로세서(180)는 특정 동작이 수행되는 경우, 데이터 분석 및 기계 학습 알고리즘 및 기법을 통해 특정 동작의 실행을 나타내는 이력 정보를 분석하고, 분석된 정보에 기초하여 이전에 학습 한 정보의 업데이트를 수행 할 수 있다.
따라서, 프로세서(180)는 러닝 프로세서(130)과 함께, 업데이트 된 정보에 기초하여 데이터 분석 및 기계 학습 알고리즘 및 기법의 미래 성능의 정확성을 향상시킬 수 있다.
센싱부(140)는 이동 단말기 내 정보, 이동 단말기를 둘러싼 주변 환경 정보 및 사용자 정보 중 적어도 하나를 센싱 하기 위한 하나 이상의 센서를 포함할 수 있다.
예를 들어, 센싱부(140)는 근접센서(proximity sensor), 조도 센서(illumination sensor), 터치 센서(touch sensor), 가속도 센서(acceleration sensor), 자기 센서(magnetic sensor), 중력 센서(G-sensor), 자이로스코프 센서(gyroscope sensor), 모션 센서(motion sensor), RGB 센서, 적외선 센서(IR 센서: infrared sensor), 지문인식 센서(finger scan sensor), 초음파 센서(ultrasonic sensor), 광 센서(optical sensor, 예를 들어, 카메라(121 참조)), 마이크로폰(microphone, 122 참조), 배터리 게이지(battery gauge), 환경 센서(예를 들어, 기압계, 습도계, 온도계, 방사능 감지 센서, 열 감지 센서, 가스 감지 센서 등), 화학 센서(예를 들어, 전자 코, 헬스케어 센서, 생체 인식 센서 등) 중 적어도 하나를 포함할 수 있다. 한편, 본 명세서에 개시된 단말기는, 이러한 센서들 중 적어도 둘 이상의 센서에서 센싱되는 정보들을 조합하여 활용할 수 있다.
출력부(150)는 시각, 청각 또는 촉각 등과 관련된 출력을 발생시키기 위한 것으로, 디스플레이부(151), 음향 출력부(152), 햅틱 모듈(153), 광 출력부(154) 중 적어도 하나를 포함할 수 있다.
디스플레이부(151)는 단말기(100)에서 처리되는 정보를 표시(출력)한다. 예를 들어, 디스플레이부(151)는 단말기(100)에서 구동되는 응용 프로그램의 실행화면 정보, 또는 이러한 실행화면 정보에 따른 UI(User Interface), GUI(Graphic User Interface) 정보를 표시할 수 있다.
디스플레이부(151)는 터치 센서와 상호 레이어 구조를 이루거나 일체형으로 형성됨으로써, 터치스크린을 구현할 수 있다. 이러한 터치스크린은, 단말기(100)와 사용자 사이의 입력 인터페이스를 제공하는 사용자 입력부(123)로써 기능함과 동시에, 단말기(100)와 사용자 사이의 출력 인터페이스를 제공할 수 있다.
음향 출력부(152)는 호신호 수신, 통화모드 또는 녹음 모드, 음성인식 모드, 방송수신 모드 등에서 무선 통신부(110)로부터 수신되거나 메모리(170)에 저장된 오디오 데이터를 출력할 수 있다.
음향 출력부(152)는 리시버(receiver), 스피커(speaker), 버저(buzzer) 중 적어도 하나 이상을 포함할 수 있다.
햅틱 모듈(haptic module)(153)은 사용자가 느낄 수 있는 다양한 촉각 효과를 발생시킨다. 햅틱 모듈(153)이 발생시키는 촉각 효과의 대표적인 예로는 진동이 될 수 있다.
광출력부(154)는 단말기(100)의 광원의 빛을 이용하여 이벤트 발생을 알리기 위한 신호를 출력한다. 단말기(100)에서 발생 되는 이벤트의 예로는 메시지 수신, 호 신호 수신, 부재중 전화, 알람, 일정 알림, 이메일 수신, 애플리케이션을 통한 정보 수신 등이 될 수 있다.
인터페이스부(160)는 단말기(100)에 연결되는 다양한 종류의 외부 기기와의 통로 역할을 수행한다. 이러한 인터페이스부(160)는, 유/무선 헤드셋 포트(port), 외부 충전기 포트(port), 유/무선 데이터 포트(port), 메모리 카드(memory card) 포트, 식별 모듈이 구비된 장치를 연결하는 포트(port), 오디오 I/O(Input/Output) 포트(port), 비디오 I/O(Input/Output) 포트(port), 이어폰 포트(port)중 적어도 하나를 포함할 수 있다. 단말기(100)에서는, 상기 인터페이스부(160)에 외부 기기가 연결되는 것에 대응하여, 연결된 외부 기기와 관련된 적절할 제어를 수행할 수 있다.
한편, 식별 모듈은 단말기(100)의 사용 권한을 인증하기 위한 각종 정보를 저장한 칩으로서, 사용자 인증 모듈(user identify module; UIM), 가입자 인증 모듈(subscriber identity module; SIM), 범용 사용자 인증 모듈(universal subscriber identity module; USIM) 등을 포함할 수 있다. 식별 모듈이 구비된 장치(이하 '식별 장치')는, 스마트 카드(smart card) 형식으로 제작될 수 있다. 따라서 식별 장치는 상기 인터페이스부(160)를 통하여 단말기(100)와 연결될 수 있다.
메모리(170)는 단말기(100)의 다양한 기능을 지원하는 데이터를 저장한다.
메모리(170)는 단말기(100)에서 구동되는 다수의 응용 프로그램(application program 또는 애플리케이션(application)), 단말기(100)의 동작을 위한 데이터들, 명령어들을, 러닝 프로세서(130)의 동작을 위한 데이터들(예를 들어, 머신 러닝을 위한 적어도 하나의 알고리즘 정보 등)을 저장할 수 있다.
메모리(170)는 러닝 프로세서(130) 또는 학습 장치(200)에서 학습된 모델을 저장할 수 있다.
이때, 메모리(170)는 필요에 따라 학습된 모델을 학습 시점 또는 학습 진척도 등에 따라 복수의 버전으로 구분하여 저장할 수 있다.
이때, 메모리(170)는 입력부(120)에서 획득한 입력 데이터, 모델 학습을 위하여 이용되는 학습 데이터(또는 훈련 데이터), 모델의 학습 히스토리 등을 저장할 수 있다.
이때, 메모리(170)에 저장된 입력 데이터는 모델 학습에 적합하게 가공된 데이터뿐만 아니라, 가공되지 않은 입력 데이터 그 자체일 수 있다.
프로세서(180)는 상기 응용 프로그램과 관련된 동작 외에도, 통상적으로 단말기(100)의 전반적인 동작을 제어한다. 프로세서(180)는 위에서 살펴본 구성요소들을 통해 입력 또는 출력되는 신호, 데이터, 정보 등을 처리하거나 메모리(170)에 저장된 응용 프로그램을 구동함으로써, 사용자에게 적절한 정보 또는 기능을 제공 또는 처리할 수 있다.
또한, 프로세서(180)는 메모리(170)에 저장된 응용 프로그램을 구동하기 위하여, 도 1과 함께 살펴본 구성요소들 중 적어도 일부를 제어할 수 있다. 나아가, 프로세서(180)는 상기 응용 프로그램의 구동을 위하여, 단말기(100)에 포함된 구성요소들 중 적어도 둘 이상을 서로 조합하여 동작시킬 수 있다.
한편, 앞서 살펴본 것과 같이, 프로세서(180)는 응용 프로그램과 관련된 동작과, 통상적으로 단말기(100)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(180)는 상기 단말기의 상태가 설정된 조건을 만족하면, 애플리케이션들에 대한 사용자의 제어 명령의 입력을 제한하는 잠금 상태를 실행하거나, 해제할 수 있다.
전원공급부(190)는 프로세서(180)의 제어 하에서, 외부의 전원, 내부의 전원을 인가 받아 단말기(100)에 포함된 각 구성요소들에 전원을 공급한다. 이러한 전원공급부(190)는 배터리를 포함하며, 상기 배터리는 내장형 배터리 또는 교체 가능한 형태의 배터리가 될 수 있다.
단말기(100)는 음성 에이전트의 기능을 수행할 수 있다. 음성 에이전트는 사용자의 음성을 인식하고, 인식된 사용자의 음성에 적합한 응답을 음성으로 출력하는 프로그램일 수 있다.
도 4는 본 발명의 일 실시 예에 따른 메모리의 블록 구성도이다.
도 4를 참조하면, 단말기(100)에 포함된 메모리(170)의 구성요소가 간략하게 도시되어 있다. 메모리(170)에는 각종 컴퓨터 프로그램 모듈이 탑재될(loaded) 수 있다. 메모리(170)에 탑재되는 컴퓨터 프로그램의 범위에 운영체제(operating system) 및 하드웨어를 관리하는 시스템 프로그램 외에 응용 프로그램으로 전처리 모듈, 양각 텍스트 인식모듈(172), 프린트 텍스트 인식모듈(173), 인공지능 모델(174), 가변폭 틀 제어모듈(175) 및 검사 모듈(176)이 포함될 수 있다. 여기서, 응용 프로그램들 중에서 일부는 집적 회로(integrated circuit, IC)와 같은 하드웨어 형태로 구현될 수 있다.
프로세서(180)는 메모리(170)에 탑재된 각 모듈들(171 내지 176)을 제어하도록 설정되고, 이 설정에 따라 각 모듈들을 통해 해당 기능이 수행된다.
각 모듈들은 본 발명의 일 실시 예에 따른 텍스트 인식 방법을 구성하는 각 기능에 관한 명령어 셋을 포함하도록 설정될 수 있다. 프로세서(180)에 포함된 각종 로직 회로가 메모리(170)에 로드된 각종 모듈의 명령어 셋을 읽고, 실행하는 과정에서 각 모듈의 기능들이 단말기(100)에 의해 수행될 수 있다.
전처리 모듈(171)은 입력된 이미지에 전처리를 수행하는 역할을 한다. 여기서, 전처리의 범위에 이미지 이진화, 노이즈 제거, 카드영역 검출, 기하학적 변환, 카드번호 영역 검출, 밝기 히스토그램 분석이 포함될 수 있다.
양각 텍스트 인식모듈(172)은 카드 표면에 양각으로 표시된 텍스트를 인식하는 역할을 한다.
프린트 텍스트 인식모듈(173)은 카드 표면에 프린트된 텍스트를 인식하는 역할을 한다.
인공지능 모델(174)은 학습을 통해 축적된 경험을 바탕으로 입력 이미지에 대해 패턴을 찾거나, 학습된 결과와의 비교 분석을 통해 텍스트를 인식하는 역할을 한다.
여기서, 단말기(100)는 인공지능 모델(174)을 포함할 수 있다. 인공지능 모델(174)은, 예를 들어 머신 러닝을 통해 카드사 별 카드번호 영역의 수직 위치 및 수평 위치에 관한 정보를 습득하도록 훈련될 수 있다. 일 실시 예로서 인공지능 모델(174)은 학습 장치(200)인 서버(200)에서 학습 과정과 평가 과정을 거처 완성된 후, 단말기(100)의 메모리(170)에 저장될 수 있다.
그리고 저장된 인공지능 모델(174)은 단말기(100)에서 수집되는 사용자 로그 데이터를 이용하는 2차 학습 과정을 거쳐, 단말기(100)를 통해 수집되는 영상의 특징에서 비롯되는 각종 패턴들을 인식할 수 있다.
가변폭 틀 제어모듈(175)은 카드번호의 수평 구획에서 카드번호를 구성하는 디지트 영역을 검출하는 역할을 한다.
검사 모듈(176)은 인식된 카드번호 및 유효기간에 대한 신뢰도 검사를 수행하는 역할을 한다. 검사 모듈(176)은 인식된 텍스트에 대해 Luhn Check, IIN Check, BIN Check, Multi-Frame 검사, CNN Mean Confidence 검사 등의 다중 검사를 수행할 수 있다.
비자 계열 카드의 카드번호를 구성하는 전체 16개의 디지트에서, 제1 디지트 내지 제5 디지트는 BIN(bank identification number)를 나타낸다. 구체적으로 비자 카드는 제1 디지트가 4이고, 마스터 카드는 제1 디지트가 51이고, 다이너스 카드는 제1 내지 제4디지트가 3616이다.
제7 내지 제15 디지트는 발급사 임의의 규칙에 따른다. 그리고 마지각 제16 디지트는 Luhn Check 용도로 사용되는 검증 값에 해당한다.
따라서, 본 발명의 일 실시 예에 따른 카드사 별 BIN 정보 및 Luhn check를 통해 처음 6자리 디지트 및 마지막 디지트의 인식 오류가 미리 방지될 수 있다.
지금까지 도 4를 통해서 프로세서(180)의 제어에 의해 메모리(170)에 저장된 각종 응용 애플리케이션 모듈이 각 기능을 수행하는 것으로 설명되었으나, 메모리(170)에 포함된 각종 응용 애플리케이션 모듈의 일부 또는 전부가 서버(200) 측에 저장되어 있고, 단말기(100)는 서버(200)에서의 응용 애플리케이션 모듈 처리를 위해 무선 통신부(110)의 각 모듈을 이용하여 데이터의 전송 및 수신을 할 수 있다.
서버(200)는 학습에 따라 카드번호 영역과 디지트 영역을 검출하고, 텍스트를 인식할 수 있는 인공지능 모델을 훈련 시키는데 필요한 학습용 데이터와 각종 인공 지능 알고리즘과 관련된 컴퓨터 프로그램, 예를 들어 API, 데이터 워크플로우(data workflows) 등을 단말기(100)에 제공할 수 있다.
또한 서버(200)는 카드번호 영역과 디지트 영역을 검출하고, 텍스트 인식을 위한 학습에 필요한 학습용 데이터를 사용자 로그 데이터 형태로 단말기(100)를 통해 수집하고, 수집된 학습용 데이터를 이용하여 직접 훈련시킨 인공지능 모델을 단말기(100)에 제공할 수도 있다. 따라서 서버(200)는 학습 장치(200)로 지칭될 수 있다.
학습 장치(200)는 단말기(100)의 외부에 별도로 구성된 장치 또는 서버로, 단말기(100)의 러닝 프로세서(130)와 동일한 기능을 수행할 수 있다.
즉, 학습 장치(200)는 데이터 마이닝, 데이터 분석, 지능형 의사 결정 및 기계 학습 알고리즘을 위해 이용될 정보를 수신, 분류, 저장 및 출력하도록 구성될 수 있다. 여기서, 기계 학습 알고리즘은 딥 러닝 알고리즘을 포함할 수 있다.
학습 장치(200)는 적어도 하나의 단말기(100)과 통신할 수 있고, 단말기(100)을 대신하여 혹은 도와 데이터를 분석하거나 학습하여 결과를 도출할 수 있다. 여기서, 다른 장치를 도운다는 의미는 분산 처리를 통한 연산력의 분배를 의미할 수 있다.
인공 신경망의 학습 장치(200)는 인공 신경망을 학습하기 위한 다양한 장치로서, 통상적으로 서버를 의미할 수 있고, 학습 장치 또는 학습 서버 등으로 칭할 수 있다.
특히, 학습 장치(200)는 단일한 서버뿐만 아니라 복수의 서버 세트, 클라우드 서버 또는 이들의 조합 등으로 구현될 수 있다.
즉, 학습 장치(200)는 복수로 구성되어 학습 장치 세트(혹은 클라우드 서버)를 구성할 수 있고, 학습 장치 세트에 포함된 적어도 하나 이상의 학습 장치(200)는 분산 처리를 통하여 데이터 분석 또는 학습하여 결과를 도출할 수 있다.
학습 장치(200)는 주기적으로 혹은 요청에 의하여 단말기(100)에 기계 학습 또는 딥 러닝에 의하여 학습한 모델을 전송할 수 있다.
도 5는 본 발명의 일 실시 예에 따른 학습장치의 블록 구성도이다.
도 5를 참조하면, 학습 장치(200)는 단말기(100)의 외부에 별도로 구성된 장치 또는 서버로, 단말기(100)의 러닝 프로세서(130)와 동일한 기능을 수행할 수 있다.
즉, 학습 장치(200)는 데이터 마이닝, 데이터 분석, 지능형 의사 결정 및 기계 학습 알고리즘을 위해 이용될 정보를 수신, 분류, 저장 및 출력하도록 구성될 수 있다. 여기서, 기계 학습 알고리즘은 딥 러닝 알고리즘을 포함할 수 있다.
학습 장치(200)는 적어도 하나의 단말기(100)와 통신할 수 있고, 단말기(100)를 대신하여 혹은 도와 데이터를 분석하거나 학습하여 결과를 도출할 수 있다. 여기서, 다른 장치를 도운다는 의미는 분산 처리를 통한 연산력의 분배를 의미할 수 있다.
인공 신경망의 학습 장치(200)는 인공 신경망을 학습하기 위한 다양한 장치로서, 통상적으로 서버를 의미할 수 있고, 학습 장치 또는 학습 서버 등으로 칭할 수 있다.
특히, 학습 장치(200)는 단일한 서버뿐만 아니라 복수의 서버 세트, 클라우드 서버 또는 이들의 조합 등으로 구현될 수 있다.
즉, 학습 장치(200)는 복수로 구성되어 학습 장치 세트(혹은 클라우드 서버)를 구성할 수 있고, 학습 장치 세트에 포함된 적어도 하나 이상의 학습 장치(200)는 분산 처리를 통하여 데이터 분석 또는 학습하여 결과를 도출할 수 있다.
학습 장치(200)는 주기적으로 혹은 요청에 의하여 단말기(100)에 기계 학습 또는 딥 러닝에 의하여 학습한 모델을 전송할 수 있다.
도 5를 다시 참조하면, 학습 장치(200)는 통신부(Communication Unit, 210), 입력부(Input Unit, 220), 메모리(Memory, 230), 러닝 프로세서(Learning Processor, 240), 전원 공급부(Power Supply Unit, 250) 및 프로세서(Processor, 260) 등을 포함할 수 있다.
통신부(210)는 도 1의 무선 통신부(110) 및 인터페이스부(160)를 포괄하는 구성과 대응될 수 있다. 즉, 유무선 통신이나 인터페이스를 통하여 다른 장치와 데이터를 송수신할 수 있다.
입력부(220)는 도 1의 입력부(120)에 대응되는 구성이며, 통신부(210)를 통하여 데이터를 수신함으로써 데이터를 획득할 수도 있다.
입력부(220)는 모델 학습을 위한 훈련 데이터 및 학습된 모델(a trained model)을 이용하여 출력을 획득하기 위한 입력 데이터 등을 획득할 수 있다.
입력부(220)는 가공되지 않은 입력 데이터를 획득할 수도 있으며, 이 경우 프로세서(260)는 획득한 데이터를 전처리하여 모델 학습에 입력이 가능한 훈련 데이터 또는 전처리된 입력 데이터를 생성할 수 있다.
이때, 입력부(220)에서 수행하는 입력 데이터에 대한 전처리는, 입력 데이터로부터 입력 특징점(input feature)을 추출하는 것을 의미할 수 있다.
메모리(230)는 도 1의 메모리(170)에 대응되는 구성이다.
메모리(230)는 모델 저장부(231) 및 데이터베이스(232) 등을 포함할 수 있다.
모델 저장부(231)는 러닝 프로세서(240)을 통하여 학습 중인 또는 학습된 모델(또는 인공 신경망, 231a)을 저장하며, 학습을 통하여 모델이 업데이트되면 업데이트 된 모델을 저장한다.
이때, 모델 저장부(231)는 필요에 따라 학습된 모델을 학습 시점 또는 학습 진척도 등에 따라 복수의 버전으로 구분하여 저장할 수 있다.
도 5에 도시된 인공 신경망(231a)은 복수의 은닉층을 포함하는 인공 신경망의 하나의 예시일 뿐이며, 본 발명의 인공 신경망이 이에 한정되는 것은 아니다
인공 신경망(231a)은 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 인공 신경망(231a)의 일부 또는 전부가 소프트웨어로 구현되는 경우, 인공 신경망(231a)을 구성하는 하나 이상의 명령어는 메모리(230)에 저장될 수 있다.
데이터베이스(232)는 입력부(220)에서 획득한 입력 데이터, 모델 학습을 위하여 이용되는 학습 데이터(또는 훈련 데이터), 모델의 학습 히스토리 등을 저장한다.
데이터베이스(232)에 저장된 입력 데이터는 모델 학습에 적합하게 가공된 데이터뿐만 아니라, 가공되지 않은 입력 데이터 그 자체일 수 있다.
러닝 프로세서(240)는 도 1의 러닝 프로세서(130)에 대응되는 구성이다.
러닝 프로세서(240)는 훈련 데이터 또는 트레이닝 셋(training set)을 이용하여 인공 신경망(231a)을 훈련(training, 또는 학습)시킬 수 있다.
러닝 프로세서(240)는 프로세서(260)가 입력부(220)를 통해 획득한 입력 데이터를 전처리한 데이터를 바로 획득하여 인공 신경망(231a)을 학습하거나, 데이터베이스(232)에 저장된 전처리된 입력 데이터를 획득하여 인공 신경망(231a)을 학습할 수 있다.
구체적으로, 러닝 프로세서(240)는 앞서 설명한 다양한 학습 기법을 이용하여 인공 신경망(231a)을 반복적으로 학습시킴으로써, 인공 신경망(231a)의 최적화된 모델 파라미터들을 결정할 수 있다
본 명세서에서는 훈련 데이터를 이용하여 학습됨으로써 파라미터가 결정된 인공 신경망을 학습 모델 또는 학습된 모델(a trained model)이라 칭할 수 있다.
이때, 학습 모델은 인공 신경망의 학습 장치(200)에 탑재된 상태에서 결과 값을 추론할 수도 있으며, 통신부(210)를 통해 단말기(100)와 같은 다른 장치에 전송되어 탑재될 수도 있다.
또한, 학습 모델이 업데이트되는 경우, 업데이트된 학습 모델은 통신부(210)를 통해 단말기(100)와 같은 다른 장치에 전송되어 탑재될 수 있다.
전원 공급부(250)는 도 1의 전원 공급부(190)에 대응되는 구성이다. 서로 대응되는 구성에 대한 중복되는 설명은 생략한다.
그 밖에 학습 장치(200)는 인공지능 모델을 평가할 수 있으며, 평가 후에도 더 나은 성능을 위해 인공지능 모델을 업데이트 하고 업데이트된 인공지능 모델을 단말기(100)에 제공할 수 있다. 여기서, 단말기(100)는 학습 장치(200)가 수행하는 일련의 단계들을 로컬 영역에서 단독으로 또는 학습 장치(200)와의 통신을 통해 함께 수행할 수 있다. 예를 들어 단말기(100)는, 사용자 개인의 데이터에 의한 학습을 통해 인공지능 모델이 사용자의 개인적 패턴을 학습시킴으로써, 학습 장치(200)로부터 다운로드 받은 인공지능 모델을 업데이트할 수 있다.
도 6은 본 발명의 일 실시 예에 따른 텍스트 인식 방법의 흐름도이다.
도 6을 참조하면, 본 발명의 일 실시 예에 따른 텍스트 인식 방법(S100)은 S110 내지 S140 단계를 포함하도록 구성될 수 있다. 그리고 각 단계는 본 발명의 일 실시 예에 따른 텍스트 인식 장치(100), 즉 프로세서(180)에 의해 수행될 수 있다. 이하 각 단계에 대해 설명하기로 한다.
프로세서(180)는 카드 이미지를 입력받을 수 있다(S110). 카드 이미지는 단말기(100)에 포함된 카메라(121)를 통해 즉시로 촬영된 이미지, 과거에 촬영되어 저장된 이미지 및 외부로부터, 예를 들면 SNS, 이메일(E-mail), 메신저 등의 통신 수단을 통해 수신된 이미지 중에서 하나일 수 있다.
카드 이미지 입력 단계에서 프로세서(180)는 사용자에게 카메라의 구도, 조명, 초점, 떨림 방지에 대한 다양한 가이드 라인에 관한 정보를 사용자에게 표시할 수 있다.
일반적인 신용카드는 형태적 특징, 즉 가로 디자인의 양각의 텍스트로 표시된 카드번호를 포함한다. 그런데 최근에는 세로 디자인의 카드도 많이 발급되고 있어서, 세로 디자인의 카드에 적응적인 인식 알고리즘이 적용되어야 한다. 세로 디자인 여부를 단말기(100)가 판별하기 이전에, 사용자로부터 세로 디자인에 관한 정보를 미리 알 수 있다면, 단말기(100)의 세로 디자인 여부 판별 작업이 스킵 될 수 있다.
본 발명의 일 실시 예에 따라, 프로세서(180)는, 카드 이미지 입력 단계에서 가로 디자인 및 세로 디자인 카드를 서로 구별하여 입력될 수 있도록, 사용자 인터페이스(user interface, UI)를 제어할 수 있다.
이를 구현하기 위해, 프로세서(180)는 카드 이미지를 이용하여 가로 타입/세로 타입 카드를 선택할 수 있는 메뉴를 표시할 수 있다(S111).
다음으로 프로세서(180)는 사용자에 의해 선택된 카드 디자인 형태에 맞는 카드 이미지를 입력받을 수 있다(S112).
프로세서(180)는 복수의 이미지를 입력받을 수 있다. 또한, 프로세서(180)는 사용자의 1회 셔터 동작에도 불구하고, 카드 면에 초점을 맞추어 촬영하는 동작을 다중으로 처리하도록 카메라의 동작을 설정할 수 있다. 따라서 프로세서(180) 초점 포인트가 수정된 형태의 복수의 카드 이미지를 원본 이미지로 입력 받을 수 있다.
프로세서(180)는 입력된 복수의 카드 이미지 중에서 텍스트 인식 작업을 위한 대상 이미지를 선별할 수 있다. 선별 기준은 초점의 정확성 여부로서 프로세서(180) 초점 판별 과정을 통해 초점이 잘 맞는 카드 이미지를 선별할 수 있다.
프로세서(180)는 소벨 에지(sobel edge) 처리된 카드 이미지에서 윤곽선의 표준편차를 구할 수 있다. 이 표준편차는 포커스 스코어(focus score)로 정의될 수 있다. 포커스 스코어가 큰, 즉 표준편차가 큰 이미지는 잘 맞은 초점으로 인해 윤곽선이 뚜렷하다. 포커스 스코어가 작은, 즉 표준편차가 작은 이미지는 잘 맞지 않은 초점으로 인해 윤곽선이 흐릿하다. 따라서, 획득된 카드 이미지 중에서 임계 값 이상의 표준편차를 갖는 이미지 또는 가장 큰 값의 표준편차를 갖는 카드 이미지가 대상 이미지로 선별될 수 있다.
프로세서(100)는 선별된 카드 이미지로부터 카드 영역을 검출할 수 있다(S120). 본 과정은 텍스트 인식을 위한 필수 과정이기 보다는 텍스트 인식률에 신뢰성을 더하기 위한 선택 가능한 과정에 해당한다. 카드 영역 확정 후의 장점은, 신용카드가 ISO 표준에 해당할 경우, 카드 발급사의 특징에 따라 확정된 카드 영역에서 카드번호의 위치 및 유효 기간의 위치가 미리 예측될 수 있다는 것이다.
도 7은 본 발명의 일 실시 예에 따른 카드 영역 검출 과정의 예시도이다. 카드 영역 검출은 그 내부적으로 에지 검출, 에지 간의 교점 산출 및 기하학적 변환을 포함하도록 구성될 수 있다.
도 7을 참조하면, 첫 번째 이미지는 원시 이미지(raw image)를, 두 번째 이미지는, 카드 에지 인식 과정을, 세 번째 이미지는, 4개의 에지에 의한 교점 산출을, 네 번째 이미지는, 기하학적 변환(perspective transform)을 묘사한다.
원시 이미지는 사용자에 의해 촬영된 이미지를 말한다. 원시 이미지는 카드 영역 외의 불필요한 영역을 포함할 수 있다. 때로는 카드 영역이 손가락 등에 의해 가려진 카드 이미지가 원시 이미지로 이용될 수도 있다.
프로세서(180)는 원시 이미지 그대로를 에지 인식에 이용할 수 있으나, 텍스트 인식에 불필요한 부분, 예를 들어 색상 정보를 제거함으로써 흑백의 이미지로 변화 및 노이즈를 제거하는 전처리 과정을 수행할 수 있다.
다음으로 프로세서(180)는 전처리된 카드 이미지에 대해 에지 인식 알고리즘을 이용하여 카드의 4개 에지를 인식할 수 있다. 에지 인식 알고리즘으로 Canny Edge Detection 및 Hough Line Transform 알고리즘이 이용될 수 있다.
본 발명의 일 실시 예에 따른 에지 검출에서, 프로세서(180)는 Canny Edge Detection 알고리즘을 이용하여 카드의 에지를 검출할 수 있다. Canny Edge Detection 알고리즘의 적용 과정은 다시, 가우시안 필터를 이용한 이미지 노이즈 제거, 노이즈가 제거된 이미지에 소벨(sobel) 커널을 적용하여 그라디언트(gradient) 획득, Non-maximum suppression 수행, 및 hysteresis thresholding에 의한 Edge tracking을 포함하도록 구성될 수 있다. Hough Line transform을 통해 짧은 직선이 연장되고, 이 직선들 중의 하나가 에지로 검출될 수 있다.
본 발명의 일 실시 예에 따른 에지 검출에서, 프로세서(180)는 가로 에지 간의 각도 비교와 세로 에지 간의 각도 비교, 및 카드 비율의 반영을 통해 카드 에지 검출을 효율적으로 수행할 수 있다. 예를 들어 카드 이미지의 4개의 에지 영역이 상단 수평 에지부터 시계방향으로 제1 영역 내지 제4 영역으로 명명하기로 한다. 제1 영역에서 제1 에지 내지 제3 에지가 인식되고, 같은 방법으로 각 영역에서 3개의 후보 에지들이 인식되어 총 12개의 에지 후보가 인식된 경우를 가정한다. 이 경우 프로세서(180)는 에지 간의 각도 비교 및 카드 비율의 반영을 통해 전체 34개의 에지들의 조합 중에서 최적의 에지들의 조합을 검출할 수 있다.
프로세서(180)는, 구도 정보에 기초하여 서로 마주보는 에지 간의 각도를 서로 비교하고, 해당 구도에서 나타날 수 있는 에지 쌍을 적합한 에지들로 검출할 수 있다. 또한, 프로세서(180)는 신용카드 규격 정보를 이용하여, 가로 8.56cm, 및 세로 5.398cm, 세로와 가로 비율이 1:1.585인 규격 정보에 맞는 에지를 적합한 에지로 검출할 수 있다.
본 발명의 일 실시 예로서 프로세서(180)는 전 과정에서 검출한 4개의 에지가 교차하여 생성하는 4개의 교점을 산출할 수 있다. 4개의 교점에 의해 형성되는 카드 이미지는 카메라 구도에 따라 직사각형에서 벗어난 왜곡된 이미지일 수 있다.
본 발명의 일 실시 예로서 프로세서(180)는 기하학적 변환(perspective transform)을 이용하여 원근에 의한 카드 영역의 사다리꼴 왜곡을 수정할 수 있다. 따라서, 카메라의 위치가 카드 중앙에서 벗어나거나 카드 면에 평행하지 않은 상태에서 촬영된 이미지가 입력되는 경우에도, 기하학적 변환에 의해 입력 이미지는 테스트 인식을 위한 대상 이미지로 사용될 수 있다.
다음으로 프로세서(180)는 카드의 텍스트 표시 방식을 판별할 수 있다(S130). 본 과정은 다음 단계에 해당하는 S140과의 관계에서 S140을 구성하는 일부 과정보다 이후에 발생할 수 있다. 즉 카드번호 및 유효기간 인식을 위한 많은 과정 중에서 일부 과정이 S130보다 선행될 수 있기 때문이다. 즉 카드번호 및 유효기간을 인식하는 과정(S140) 중에, 카드의 텍스트 표시 방식이 판별되고, 그 결과에 따라 프로세서(180)는 카드번호 및 유효기간을 인식할 수 있다(S140).
본 발명의 일 실시 예에 따른 텍스트 인식은 카드번호 인식과 유효기간 인식을 포함하도록 구성될 수 있다. 그리고 카드번호의 인식은 카드번호의 영역 검출 및 검출된 영역에서의 번호 인식을 포함하도록 구성될 수 있다. 여기서, 카드번호의 영역 검출은 수직 영역 검출 및 수평 영역 검출을 포함하도록 구성될 수 있다.
이하 구체적인 과정을 묘사한 도면을 이용하여 신용카드 표면의 카드번호 및 유효 기간의 텍스트 인식 과정에 대해 상세히 설명하기로 한다.
카드번호 인식 전에 카드번호 영역이 검출되어야 한다. 카드번호 영역 검출은 카드번호 배열의 세로 위치 및 가로 위치 검출로 요약된다. 위치 검출을 위해 카드이미지의 픽셀 구조 분석이 필요하다.
도 8은 본 발명의 일 실시 예에 따른 카드번호 영역의 예시도이다.
도 9는 본 발명의 일 실시 예에 따른 카드번호 영역의 예시도이다.
도 8 및 도 9를 참조하면, 도 8에는 16자리의 비자 계열 카드의 카드번호 영역이, 도 9에는 15자리의 아멕스 계열 카드의 카드번호 영역이 묘사되어 있다. 도 8 및 도 9의 상단 카드영역에서 점선은 싱글 픽셀 배열의 행을 묘사한다. 그리고 하단의 그림은 하나의 행에 분포된 픽셀을 개략적으로 나타내고 있다. 비자 계열의 카드에서 4개의 연속된 디지트, 디지트 사이의 영역(11), 1개의 빈칸(12) 순으로 19개의 칸이 카드번호 영역을 구성한다. 아멕스 카드에서 4개의 연속된 디지트, 디지트 사이의 영역(21), 1개의 빈칸(22), 같은 방식으로 6개의 연속된 디지트, 1개의 빈칸 및 5개의 연속된 디지트가 카드번호 영역을 구성한다.
카드사 별 카드의 크기들은 서로 동일하거나 다를 수 있다. ISO 국제 표준을 따르는 가로 8.56cm, 세로 5,398cm의 카드 크기에 대해서 추출된 카드 이미지는 가로 428 픽셀, 세로 270 픽셀로 구성되는 것으로 가정한다.
본 발명의 일 실시 예에 따른 카드번호 영역 검출에서, 인공지능 모델, 예를 들어 인공 신경망의 한 종류인 다층 퍼셉트론(multi-layer perceptron, MLP)을 대상으로 카드 이미지를 학습 데이터로 하는 카드사 별 카드번호 패턴 인식에 대해 훈련이 필요하다.
카드 이미지를 구성하는 전체 픽셀들은 가로 428개의 픽셀을 가진 270개의 행으로 구획될 수 있다. MLP는 270개의 행을 입력받고, 각 행에 분포된 픽셀의 특징을 학습한다. 카드번호 영역의 픽셀 패턴은 다른 영역과 비교하여 디지트의 윤곽선을 형성하는 검은색의 픽셀이 많이 분포되어 있는 것이 특징이다. 그리고 MLP는 학습을 통한 픽셀 패턴에 기반을 두어 카드사 별 카드번호 영역을 인식한다. 예를 들어 비자 계열의 카드에서 카드번호는 27개의 행으로 구성되며, 27개의 행 중에서 제1 행은 전체 270개 행 중에서 153번째 행이고, 첫 번째 디지트를 구성하는 첫 번째 열은 가로 428개 열 중에서 38번째 열에 해당한다. MLP는 비자 계열뿐만 아니라, 아메리칸 익스프레스(이하 아멕스) 계열의 카드에 대해서도 학습을 통해 카드번호 영역의 픽셀 팬턴을 인식할 수 있다.
학습된 MLP를 이용한 카드 이미지의 수직 구획 및 수평 구획 과정에 대해 설명하기로 한다. 각 구획 과정을 통해 카드번호 영역이 검출되고 각 디지트 영역이 추출될 수 있다.
먼저, 추출된 카드영역 이미지가 MLP에 입력된다. MLP는 카드 이미지를 구성하는 픽셀을 판독하고, 판독 결과를 학습된 카드사 별 픽셀 패턴과 비교하여 각각의 점수를 매기게 된다. 즉 판독된 픽셀이 비자 계열 카드의 패턴에 가까우면 비자 스코어가 상대적으로 높게 형성되고, 판독된 픽셀이 아멕스 계열 카드의 패턴에 가까우면 아멕스 스코어가 상대적으로 높게 형성된다. 따라서, 이 과정에서 비자 계열인지, 아멕스 계열인지 카드 타입이 판별될 수 있다.
비자 스코어가 아멕스 스코어보다 높으면 해당 카드는 양각의 비자 카드일 확률이 높다. 또한, 아멕스 스코어가 비자 스코어보다 높으면 해당 카드는 양각의 아멕스 카드일 확률이 높다. 또한, 비자 스코어 및 아멕스 스코어가 모두 어느 임계 값 이하로 산출되면 해당 카드는 프린트 카드일 확률이 높다. 이는, 비자 스코어와 아멕스 스코어가 양각의 카드를 대상으로 하고 있기 때문이다. 아울러, 마그네트의 위치 및 카드번호의 배열 방향 검출을 통해 최종적으로 해당 카드가 프린트 카드인지 여부가 확정될 수 있다.
MLP는 카드번호 영역의 위치에 기반을 두어 카드 이미지의 중간 열에서부터 판독을 시작할 수 있다. MLP는 픽셀을 판독하고, 판독 결과에 따라 각 행에 대해 스코어를 계산할 수 있고, 27개의 행에 대해 스코어를 합산한다. 이러한 작업이 행을 바꿔가면서 순차적으로 수행되는 과정에서 27개 행의 스코어 합이 최대가 되는 위치가 카드번호의 수직 위치이다.
도 10은 본 발명의 일 실시 예에 따른 카드번호 수직 구획의 예시도이다.
도 10을 참조하면, 수직 구획 과정의 결과로서 검출된 카드번호 영역이 묘사되어 있다. 또한, 해당 영역에 대한 점수, 카드번호 영역의 시작 오프셋, 카드 계열, 칸의 수, 디지트의 수 및 비자 계열의 디지트 패턴이 수직 구획의 결과 값으로 산출될 수 있다.
카드번호 영역의 수직 위치에 기반을 두어, MLP는 카드영역을 구성하는 27개의 행에 대해 수평 구획을 수행할 수 있다. 수평 구획은 추출된 카드 이미지의 픽셀 분포와 카드사별 카드번호 패턴 비교를 통해 각 디지트 영역을 추출하는 과정이다. 예를 들어 비자 계열 카드의 4개의 4자리 디지트 배열에서 16개의 디지트 영역이, 아멕스 계열 카드의 4개, 6개 및 5개 디지트 배열에서 15개의 디지트 영역이 추출될 수 있다.
본 발명의 일 실시 예에 따른 수직 구획에서 가변폭의 틀을 이용하여 각 디지트 영역이 신속하고 정확하게 추출될 수 있다.
도 11은 본 발명의 일 실시 예에 따른 가변폭 틀(grid)을 이용한 수평 구획의 예시도이다.
도 11을 참조하면, 비자 계열 카드의 카드번호 영역을 구성하는 19개의 칸이 묘사되어 있다. 일정한 세로 길이를 갖고 폭이 가변하는 틀이 복수 개로 배열될 수 있다. 이러한 배열을 카드번호 영역 상에 표시하고 각각의 틀이 각 디지트에 맞도록 틀의 폭이 일률적으로 조절될 수 있다. 최적의 폭을 갖는 시점에서 수평 구획에 의한 가변 폭이 정해지면, 각 디지트 영역이 확정된다. 여기서, 가변 폭은 카드사 별 픽셀의 수평 분포 패턴에 기반을 두어 정해질 수 있다.
도 12는 본 발명의 일 실시 예에 따른 수평 구획에 따른 스코어 분포의 예시도이다.
도 12를 참조하면, 상단에 카드번호 영역이 묘사되어 있고, 하단에 수평 구획에 관한 스코어 분포가 나타나 있다. 카드번호 패턴에 따라 각 디지트 영역에서 높은 스코어가 나타남을 확인할 수 있다.
MLP는 카드번호 영역을 구성하는 행들, 예를 들어 비자 계열 카드의 27개의 행에 대해서, 행을 구성하는 픽셀 분포와 학습에 의한 카드사 별 카드영역에 분포된 픽셀들의 수평 패턴과 비교 분석을 하고, 그 유사 정도에 따라 수평 구획에 관한 스코어를 매길 수 있다. 최종적으로 MLP는 위에서 구한 스코어 분포를 기반으로 가변 틀의 폭 및 X 좌표 값을 결정할 수 있다.
도 13은 본 발명의 일 실시 예에 따른 수평 구획 결과의 예시도이다.
도 13을 참조하면, 수평 구획 과정의 결과로서 검출된 디지트 영역이 묘사되어 있다. 또한, 각 디지트의 오프셋, 베스트 스코어, 폭의 픽셀 수, 최초 픽셀 정보가 수평 구획의 결과 값으로 산출될 수 있다.
도 14는 본 발명의 일 실시 예에 따라 인식된 텍스트의 각 디지트의 예시도이다.
도 14를 참조하면, 상단의 디지트와 하단의 인식된 숫자가 표시되어 있다.
본 발명의 일 실시 예에 따른 카드영역 검출, 카드번호 검출 및 디지트 영역 검출을 통해 검출된 디지트는 텍스트 인식 과정을 통해 판독될 수 있다. 본 발명의 일 실시 예에 따른 텍스트 인식 다양한 알고리즘을 통해 구현될 수 있다. 인공 지능 모델, 예를 들어 인공 신경망 중의 하나인 합성곱 신경망(convolutional neural network, CNN)은 4개의 층을 이용하여 디지트 영역의 숫자를 판독할 수 있다.
도 15는 본 발명의 일 실시 예에 따른 인공지능 모델을 이용한 텍스트 인식의 예시도이다.
도 15를 참조하면, 머신 러닝을 수행하는 합성곱 신경망(Convolutional Neural Network, CNN)의 구조가 나타나 있다.
CNN은 이미지의 특징을 추출하는 영역과 클래스를 분류하는 영역으로 나뉠 수 있다. 특징 추출 영역은 Convolution Layer와 Pooling Layer를 여러 겹 쌓는 형태로 구성된다. Convolution Layer는 입력 데이터에 필터를 적용 후 활성화 함수를 반영하는 필수 요소이다. Convolution Layer 다음에 위치하는 Pooling Layer는 선택적인 레이어이다. CNN 마지막 부분에는 이미지 분류를 위한 Fully Connected Layer가 추가된다. 이미지의 특징을 추출하는 부분과 이미지를 분류하는 영역 사이에 이미지 형태를 배열 형태로 만드는 Flattern Layer가 위치한다.
CNN은 이미지 특징 추출을 위하여 입력데이터를 필터가 순회하며 합성곱을 계산하고, 그 계산 결과를 이용하여 Feature Map을 만든다. Convolution Layer Filter 크기, Stride, Padding 적용 여부, Max Pooling 크기에 따라 출력 데이터의 Shape이 변경된다.
도 16은 본 발명의 일 실시 예에 따른 유효 기간 인식 과정의 예시도이다.
도 16을 참조하면, 유효 기간 인식 과정이 묘사되어 있다. 첫 번째 그림은, 지정된 검색 영역을 나타내고, 두 번째 그림은 인식 알고리즘을 이용한 1차 인식 결과를 나타내고, 세 번째 그림은 1차 인식 영역에서 확장된 후보 영역을 나타내고, 네 번째 그림은 인공지능 알고리즘을 이용한 텍스트 인식 결과를 나타낸다.
먼저 프로세서(180)는 인식된 카드 타입 및 카드 타입에 따른 카드번호의 위치에 기반으로 유효 기간이 표시된 영역을 검색 영역으로 지정할 수 있다.
전통적인 양각 텍스트의 가로 디자인 카드는 카드번호 하단에 카드번호와는 작은 포트로 유효 기간이 표시된다. 세로 디자인 카드는 카드 후면에 복수의 행으로 카드번호가 표시되고, 카드번호 아래에 유효 기간이 표시된다. 카드에 따라 'VALID THRU'가 프린트되거나 'MONTH/YEAR'가 프린트된 경우도 있다. 본 발명의 일 실시 예에서, 프로세서(180)는 위의 2가지 영문 표기 중에서 적어도 하나를 이용하여 유효 기간이 표시된 검색 영역을 지정할 수 있다.
다음으로 프로세서(180)는 인식 알고리즘을 이용하여 유효 기간을 1차로 인식할 수 있다. 본 발명의 일 실시 예로서 인식 알고리즘으로 Cascade Classifier가 사용될 수 있다. 프로세서(180)는 인식 알고리즘을 이용하여 검색 영역보다 축소된 크기의 유효 기간 표시 영역을 추출할 수 있다.
다음으로 프로세서(180)는 1차로 인식된 영역보다 확장된 후보 영역을 산출할 수 있다. 이러한 과정은 1차 인식에 대해 신뢰성을 높이기 위한 부가 과정이다.
마지막으로 프로세서(180)는 후보 영역에 있는 텍스트를 인공지능 알고리즘을 이용하여 인식할 수 있다. 숫자 및 문자 인식에는 딥 러닝(deep learning)을 수행하는 인공 신경망 중의 하나인 합성곱 신경망(CNN)이 이용될 수 있다.
본 발명의 일 실시 예에서, 프로세서(180)는 달력상의 규칙을 이용하여 인식된 유효 기간을 검사할 수 있다. 즉 프로세서(180)는 유효 기간을 5년으로 봤을 때 현재 시점에서 표현 가능한 유효 기간에 기반을 두어 인식된 유효 기간을 검사할 수 있다.
프로세서(180)는 현재 2019년 8월 7일을 기점으로, 인식된 유효 기간이 '08/14' 내지 '08/24' 사이의 범위에 있는 월/년의 조합에 해당하는지 검사할 수 있다. 만약에 인식된 유효 기간이 위의 범위에 있지 않다면, 프로세서(180)는 타 프레임의 이미지를 이용하여 유효 기간 재인식 과정을 수행할 수 있다.
도 6을 다시 참조하면, 프로세서(180)는 몇 가지 규칙에 기반을 두어 카드의 텍스트 표시 방식을 판별할 수 있다(S130). 즉 프로세서(180)는 마그네트의 존재 여부 또는 텍스트의 배열 방향과 행의 수를 이용하여 카드에 표시된 텍스트가 양각된 것인지, 프린트된 것인지 판별할 수 있다.
먼저, 프로세서(180)는 카드 영역 내에 마그네트의 존재 여부를 판별하고, 이 판별 결과를 이용하여 카드의 전면 또는 후면 여부를 판별할 수 있다. 최근 발행된 신용카드는 IC 칩을 포함하고 있으면서, 마그네트도 함께 포함하고 있다.
신용카드에서 마그네트는 카드 후면에 배치되고, IC 칩은 전면에 배치되는 경우가 많다. 따라서, 카드 이미지에서 마그네트의 존재가 판별되면 해당 카드는 후면 카드일 확률이 높다. 그리고 후면 카드는 전통적인 전면에 양각된 카드와 달리 카드번호 및 유효 기간 중에서 적어도 하나를 프린트된 텍스트로 표시할 가능성이 높다.
또한, 프로세서(180)는 텍스트 간의 여백 공간 계산을 통해 텍스트의 배열 방향을 판별하고, 이 판별 결과를 이용하여 카드의 세로 또는 가로 여부를 판별할 수 있다.
최근 발행된 세로 방향으로 디자인된 카드는 세로로 놓여진 상태에서 카드번호가 배열된다. 카드번호의 배열 방향이 기존 카드와 구별되고, 상대적으로 짧은 행 길이 때문에 카드번호가 하나의 행에 표시되지 못하고 복수의 행으로 표시될 수 있다.
따라서, 카드 이미지에서 카드번호의 배열 방향이 기존 대비 -90 또는 +90도 만큼 차이가 있거나, 카드번호의 배열이 복수의 행으로 이루어진 경우 해당 카드는 세로 방향으로 디자인된 카드일 확률이 높다. 그리고 세로 방향으로 디자인된 카드는 전통적인 전면에 양각된 카드와 달리 카드번호 및 유효 기간에 프린트된 텍스트를 포함할 가능성이 높다.
도 17은 본 발명의 일 실시 예에 따른 인쇄된 텍스트를 갖는 카드 인식 과정의 예시도이다.
도 17을 참조하면, 프린트된 텍스트를 인식하는 과정이 묘사되어 있다. 첫 번째 그림은, 카드 후면의 이미지를 나타내고, 두 번째 그림은, 후보 영역을 나타내고, 세 번째 그림은, 텍스트 인식 결과를 나타내고, 네 번째 그림은 인식 결과에서 추출된 카드번호 및 유효 기간 표시를 나타낸다.
프로세서(180)는 마그네트의 존재를 통해 입력된 카드 이미지가 후면의 이미지임을 판별할 수 있다. 그리고 프로세서(180)는 해당 카드가 프린트된 텍스트를 포함하고 있을 것으로 예측하고, 프린트된 텍스트 인식에 적합한 알고리즘을 이용하여 텍스트를 인식할 수 있다.
다시 도 17을 참조하면, 프로세서(180)는 후면 카드에서 마그네트 영역, 서명란 및 최하단의 전화번호 등의 정보 표시 영역을 제외한 카드 영역을 카드번호 검출을 위한 후보 영역으로 설정할 수 있다.
프로세서(180)는 프린트된 텍스트가 선명하게 식별될 수 있도록, 후보 영역의 밝기 히스토그램 타입 별로 이미지를 전처리 할 수 있다. 여기서 사용되는 전처리 방법에는 thresholding 등이 포함될 수 있다. 따라서 프린트된 텍스트에 대해서는 양각된 텍스트와 구별되는 전처리 방법이 사용된다.
프로세서(180)는 OCR 엔진을 이용하여 후보 영역에 표시된 전체 텍스트를 인식할 수 있다.
다음으로 프로세서(180)는 인식된 전체 텍스트로부터 규칙에 맞는 카드번호 및 유효기간을 추출할 수 있다. 도 17을 다시 참조하면, 4자리 간격으로 나뉘어진 전체 16자리의 카드번호 및 슬래시에 의해 연결된 유효 기간이 파선의 직사각형 영역으로 표시된 것 같이 추출될 수 있다.
본 발명의 일 실시 예에 의하면, 양각 텍스트의 카드와 인쇄된 텍스트의 카드 간 구별이 가능하고, 카드 타입 별로 서로 다른 방식을 통해 카드번호가 인식될 수 있다.
또한, 높은 인식률로 카드 타입에 따라 양각 및 인쇄 방식의 카드번호가 모두 인식될 수 있다.
또한, 카드 발급에 관한 정보를 이용하여 카드번호의 인식 오류가 미리 방지될 수 있다.
이상 설명된 본 발명에 따른 실시 예는 컴퓨터상에서 다양한 구성요소를 통하여 실행될 수 있는 컴퓨터 프로그램의 형태로 구현될 수 있으며, 이와 같은 컴퓨터 프로그램은 컴퓨터로 판독 가능한 매체에 기록될 수 있다. 이때, 매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다.
한편, 상기 컴퓨터 프로그램은 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 프로그램의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함될 수 있다.
본 발명의 명세서(특히 특허청구범위에서)에서 '상기'의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 본 발명에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 발명의 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다.
본 발명에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 본 발명이 한정되는 것은 아니다. 본 발명에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 발명의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시 예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위는 본 발명의 사상의 범주에 속한다고 할 것이다.
121: 카메라
123: 사용자 입력부
170: 메모리
171: 전처리 모듈
172: 양각 텍스트 인식모듈
173: 프린트 텍스트 인식모듈
174: 인공지능 모델
175: 가변폭 틀 제어모듈
176: 검사 모듈
180: 프로세서

Claims (20)

  1. 텍스트 인식 방법으로서,
    카드 이미지로부터 카드번호를 인식하는 단계를 포함하되,
    상기 카드번호를 인식하는 단계는,
    카드번호 수직 구획(vertical segmentation) 및 수평 구획 (horizontal segmentation) 단계를 포함하고,
    상기 수평 구획 단계는,
    카드번호의 구성 패턴에 기반을 두는, 상기 카드번호를 구성하는 디지트(digit)의 크기와 수에 대응하는 틀(grid)로서, 가변 폭을 갖는 상기 틀(grid)을 이용한 강제 구획(forced segmentation)을 통해 상기 디지트의 폭과 위치를 검출하는 단계를 포함하는,
    텍스트 인식 방법.
  2. 제1항에 있어서,
    상기 카드번호를 인식하는 단계는,
    카드번호 확인을 위해 Luhn check, IIN check, Multi-frame 검사, 및 CNN mean confidence 검사의 다중 검사 단계를 더 포함하는,
    텍스트 인식 방법.
  3. 텍스트 인식 방법으로서,
    카드 이미지로부터 카드 영역을 검출하는 단계를 포함하고,
    상기 카드 영역 검출 단계는,
    상기 카드의 에지를 인식하는 단계; 및
    상기 에지에 기반을 두어 카드 영역을 추출하는 단계를 포함하되,
    상기 카드의 에지를 인식하는 단계는,
    촬영 구도에 기반을 두어 카드의 상측 에지와 하측 에지 간의 관계 및 좌측 에지와 우측 에지 간의 관계를 분석하는 단계; 및
    상기 관계 분석을 기반으로 카드의 에지를 결정하는 단계를 포함하는,
    텍스트 인식 방법.
  4. 제3항에 있어서,
    상기 카드의 에지를 인식하는 단계에서,
    상기 카드의 가로와 세로 간의 실제 비율이 이용되는,
    텍스트 인식 방법.
  5. 텍스트 인식 방법으로서,
    카드 이미지로부터 카드의 텍스트 표시 방식을 판별하는 단계를 포함하되,
    상기 카드의 텍스트 표시 방식을 판별하는 단계는,
    마그네틱의 위치에 따른 카드의 전면 또는 후면 해당 여부, 텍스트 간의 여백 공간 계산을 통한 텍스트 배열 방향에 기반을 둔 카드의 가로(portrait) 또는 세로(landscape) 해당 여부 중에서 적어도 하나를 판별하는 단계; 및
    상기 판별에 기반을 두어 카드의 텍스트 표시 방식을 예측하는 단계를 포함하는,
    텍스트 인식 방법.
  6. 제5항에 있어서,
    상기 카드의 텍스트 표시 방식을 판별하는 단계는,
    양각(embossing) 방식 및 인쇄(printing) 방식 중에서 상기 카드의 텍스트 표시 방식을 판별하는 단계에 해당하는,
    텍스트 인식 방법.
  7. 제5항에 있어서,
    카드 이미지로부터 카드번호 및 유효기간을 인식하는 단계를 더 포함하고,
    상기 카드의 텍스트 표시 방식이 양각 방식으로 판별된 경우,
    상기 카드번호 및 유효기간을 인식하는 단계는,
    상기 카드번호 인식을 통해 카드회사 및 발급사 중에서 적어도 하나에 관한 정보를 추출하는 단계;
    상기 정보 및 미리 저장된 데이터베이스를 이용하여 카드회사 및 발급사 별 유효기간 유형을 검출하는 단계; 및
    인식된 유효기간을 상기 유효기간 유형을 이용하여 검사하는 단계를 포함하는,
    텍스트 인식 방법.
  8. 제5항에 있어서,
    카드 이미지로부터 카드번호 및 유효기간을 인식하는 단계를 더 포함하고,
    상기 카드의 텍스트 표시 방식이 인쇄 방식으로 판별된 경우,
    상기 카드번호 및 유효기간을 인식하는 단계는,
    카드의 전후면 및 가로세로 인식에 기반을 두어 후보 영역을 설정하는 단계;
    OCR(optical character recognition)을 통해 상기 후보 영역 내의 텍스트를 인식하는 단계; 및
    인식된 텍스트 중에서 숫자군을 이용하여 카드번호를 예측하고, 슬래시(slash)를 이용하여 유효기간을 예측하는 단계를 포함하는,
    텍스트 인식 방법.
  9. 제5항에 있어서,
    배경이 혼합된 텍스트를 인식하기 위해 카드 이미지 전처리 단계를 더 포함하는,
    텍스트 인식 방법.
  10. 텍스트 인식 방법으로서,
    사용자 인터페이스(user interface, UI) 상에서 카드 이미지를 입력받기 위해 가로 타입 카드 및 세로 타입 카드 중에서 어느 하나를 선택할 수 있는 메뉴를 표시하는 단계; 및
    사용자 선택에 따라 가로 타입 카드 및 세로 타입 카드 중에서 어느 하나의 카드 이미지를 입력받는 단계를 포함하는,
    텍스트 인식 방법.
  11. 텍스트 인식 장치로서,
    카드 이미지를 획득하는 카메라;
    획득된 상기 카드 이미지를 표시하는 디스플레이부; 및
    상기 카메라 및 디스플레이부를 제어하고 상기 카드 이미지를 이용하여 카드에 표시된 텍스트를 인식하는 프로세서를 포함하되,
    상기 프로세서는,
    카드번호 수직 구획(vertical segmentation) 및 수평 구획 (horizontal segmentation)을 이용하여 카드번호 영역을 검출하되,
    카드번호의 구성 패턴에 기반을 두는, 상기 카드번호를 구성하는 디지트(digit)의 크기와 수에 대응하는 틀(grid)로서, 가변 폭을 갖는 상기 틀(grid)을 이용한 수직 강제 구획(forced segmentation)을 통해 상기 디지트의 폭과 위치를 검출하는,
    텍스트 인식 장치.
  12. 제11항에 있어서,
    상기 프로세서는,
    카드번호 확인을 위해 Luhn check, IIN check, Multi-frame 검사, 및 CNN mean confidence 검사의 다중 검사를 수행하는,
    텍스트 인식 장치.
  13. 텍스트 인식 장치로서,
    카드 이미지를 획득하는 카메라;
    획득된 상기 카드 이미지를 표시하는 디스플레이부; 및
    상기 카메라 및 디스플레이부를 제어하고 상기 카드 이미지를 이용하여 카드 영역을 검출하고, 카드 영역 상의 텍스트를 인식하는 프로세서를 포함하되,
    상기 프로세서는,
    촬영 구도에 기반을 두어 카드의 상측 에지와 하측 에지 간의 관계 및 좌측 에지와 우측 에지 간의 관계를 분석하고, 상기 관계 분석을 기반으로 상기 카드 영역 검출을 위한 카드의 에지를 결정하는,
    텍스트 인식 장치.
  14. 제13항에 있어서,
    상기 프로세서는,
    상기 카드의 가로와 세로 간의 실제 비율을 이용하여 카드의 에지를 결정하는,
    텍스트 인식 장치.
  15. 텍스트 인식 장치로서,
    카드 이미지를 획득하는 카메라;
    획득된 상기 카드 이미지를 표시하는 디스플레이부; 및
    상기 카메라 및 디스플레이부를 제어하고 상기 카드 이미지를 이용하여 카드 영역 상의 텍스트를 인식하는 프로세서를 포함하되,
    상기 프로세서는,
    마그네틱의 위치에 따른 카드의 전면 또는 후면 해당 여부, 텍스트 간의 여백 공간 계산을 통한 텍스트 배열 방향에 기반을 둔 카드의 가로(portrait) 또는 세로(landscape) 해당 여부 중에서 적어도 하나를 판별하고, 상기 판별에 기반을 두어 카드의 텍스트 표시 방식을 예측하는,
    텍스트 인식 장치.
  16. 제15항에 있어서,
    상기 프로세서는,
    양각(embossing) 방식 및 인쇄(printing) 방식 중에서 상기 카드의 텍스트 표시 방식을 판별하는,
    텍스트 인식 장치.
  17. 제15항에 있어서,
    상기 카드의 텍스트 표시 방식이 양각 방식으로 판별된 경우,
    상기 프로세서는,
    인식된 카드번호에 기반 미리 준비된 카드회사 및 발급사 별 유효기간 유형에 관한 데이터베이스를 이용하여 상기 유효기간을 검사하는
    텍스트 인식 장치.
  18. 제15항에 있어서,
    상기 프로세서는,
    상기 카드의 텍스트 표시 방식이 인쇄 방식으로 인식된 경우,
    카드의 전후면 및 가로세로 인식에 기반을 두어 설정된 후보 영역 내에서 인식된 텍스트 중에서 숫자군을 이용하여 카드번호를 예측하고, 슬래시(slash)를 이용하여 유효기간을 예측하는,
    텍스트 인식 장치.
  19. 제15항에 있어서,
    상기 프로세서는,
    배경이 혼합된 텍스트를 인식하기 위해 카드 이미지 전처리를 수행하는,
    텍스트 인식 장치.
  20. 텍스트 인식 장치로서,
    카드 이미지를 획득하는 카메라;
    획득된 상기 카드 이미지를 표시하는 디스플레이부; 및
    상기 카메라 및 디스플레이부를 제어하고 상기 카드 이미지를 이용하여 카드 영역 상의 텍스트를 인식하는 프로세서를 포함하되,
    상기 프로세서는
    가로 타입 카드와 세로 타입 카드의 이미지를 서로 구별하여 입력받을 수 있도록, 사용자 UI 상에서 카드 이미지 입력 메뉴 표시를 제어하는,
    텍스트 인식 장치.
KR1020190105040A 2019-08-27 2019-08-27 텍스트 인식 장치 및 방법 KR20190106853A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190105040A KR20190106853A (ko) 2019-08-27 2019-08-27 텍스트 인식 장치 및 방법
US16/809,390 US20210064871A1 (en) 2019-08-27 2020-03-04 Apparatus and method for recognition of text information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190105040A KR20190106853A (ko) 2019-08-27 2019-08-27 텍스트 인식 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20190106853A true KR20190106853A (ko) 2019-09-18

Family

ID=68070475

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190105040A KR20190106853A (ko) 2019-08-27 2019-08-27 텍스트 인식 장치 및 방법

Country Status (2)

Country Link
US (1) US20210064871A1 (ko)
KR (1) KR20190106853A (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110909809A (zh) * 2019-11-27 2020-03-24 上海智臻智能网络科技股份有限公司 基于深度学习的卡证图像识别方法
KR102142347B1 (ko) * 2019-10-01 2020-08-07 주식회사 카카오뱅크 신분증 인식 방법 및 이를 제공하는 어플리케이션
KR102187123B1 (ko) * 2020-02-12 2020-12-04 주식회사 카카오뱅크 홀로그램 검출 서비스 제공 서버 및 홀로그램 검출 방법
CN112784612A (zh) * 2021-01-26 2021-05-11 浙江香侬慧语科技有限责任公司 基于迭代修改的同步机器翻译的方法、装置、介质及设备
CN113963339A (zh) * 2021-09-02 2022-01-21 泰康保险集团股份有限公司 一种信息提取方法和装置
KR20220077665A (ko) * 2020-12-02 2022-06-09 씨제이올리브네트웍스 주식회사 상품정보 인식을 위한 딥러닝 기반의 광학식 문자 판독 방법 및 이를 위한 시스템
WO2023204548A1 (ko) * 2022-04-20 2023-10-26 삼성전자 주식회사 이미지를 처리하는 전자 장치 및 그 동작 방법

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102127171B1 (ko) * 2019-08-30 2020-06-26 주식회사 카카오뱅크 신분증 인식 모델을 이용한 분산 학습 방법, 서버, 어플리케이션 및 이를 통한 신분증 인식 방법
CN113835582B (zh) * 2021-09-27 2024-03-15 青岛海信移动通信技术有限公司 一种终端设备、信息显示方法和存储介质
CN114495103B (zh) * 2022-01-28 2023-04-04 北京百度网讯科技有限公司 文本识别方法、装置、电子设备和介质
US11933986B2 (en) * 2022-03-11 2024-03-19 Bank Of America Corporation Apparatus and methods to extract data with smart glasses
WO2024039362A1 (en) * 2022-08-15 2024-02-22 Innopeak Technology, Inc. Methods and systems for text recognition with image preprocessing

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101295000B1 (ko) 2013-01-22 2013-08-09 주식회사 케이지모빌리언스 카드 번호의 영역 특성을 이용하는 신용 카드의 번호 인식 시스템 및 신용 카드의 번호 인식 방법
KR101880140B1 (ko) 2017-05-26 2018-07-20 주식회사 페이콕 결제 카드의 유효기간 판독 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150006362A1 (en) * 2013-06-28 2015-01-01 Google Inc. Extracting card data using card art
CN105450411B (zh) * 2014-08-14 2019-01-08 阿里巴巴集团控股有限公司 利用卡片特征进行身份验证的方法、装置及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101295000B1 (ko) 2013-01-22 2013-08-09 주식회사 케이지모빌리언스 카드 번호의 영역 특성을 이용하는 신용 카드의 번호 인식 시스템 및 신용 카드의 번호 인식 방법
KR101880140B1 (ko) 2017-05-26 2018-07-20 주식회사 페이콕 결제 카드의 유효기간 판독 방법

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11568665B2 (en) 2019-10-01 2023-01-31 Kakaobank Corp. Method and apparatus for recognizing ID card
WO2021066541A1 (ko) * 2019-10-01 2021-04-08 주식회사 카카오뱅크 신분증 인식 방법 및 장치
KR102142347B1 (ko) * 2019-10-01 2020-08-07 주식회사 카카오뱅크 신분증 인식 방법 및 이를 제공하는 어플리케이션
CN110909809B (zh) * 2019-11-27 2023-09-05 上海智臻智能网络科技股份有限公司 基于深度学习的卡证图像识别方法
CN110909809A (zh) * 2019-11-27 2020-03-24 上海智臻智能网络科技股份有限公司 基于深度学习的卡证图像识别方法
US11625566B2 (en) 2020-02-12 2023-04-11 Kakaobank Corp. Hologram detection service providing server and hologram detection method
KR102187123B1 (ko) * 2020-02-12 2020-12-04 주식회사 카카오뱅크 홀로그램 검출 서비스 제공 서버 및 홀로그램 검출 방법
US11907783B2 (en) 2020-02-12 2024-02-20 Kakaobank Corp. Hologram detection service providing server and hologram detection method
WO2021162440A1 (ko) * 2020-02-12 2021-08-19 주식회사 카카오뱅크 홀로그램 검출 서비스 제공 서버 및 홀로그램 검출 방법
KR20210102830A (ko) * 2020-02-12 2021-08-20 주식회사 카카오뱅크 홀로그램 검출 서비스 제공 서버 및 홀로그램 검출 방법
KR20220077665A (ko) * 2020-12-02 2022-06-09 씨제이올리브네트웍스 주식회사 상품정보 인식을 위한 딥러닝 기반의 광학식 문자 판독 방법 및 이를 위한 시스템
CN112784612B (zh) * 2021-01-26 2023-12-22 浙江香侬慧语科技有限责任公司 基于迭代修改的同步机器翻译的方法、装置、介质及设备
CN112784612A (zh) * 2021-01-26 2021-05-11 浙江香侬慧语科技有限责任公司 基于迭代修改的同步机器翻译的方法、装置、介质及设备
CN113963339A (zh) * 2021-09-02 2022-01-21 泰康保险集团股份有限公司 一种信息提取方法和装置
WO2023204548A1 (ko) * 2022-04-20 2023-10-26 삼성전자 주식회사 이미지를 처리하는 전자 장치 및 그 동작 방법

Also Published As

Publication number Publication date
US20210064871A1 (en) 2021-03-04

Similar Documents

Publication Publication Date Title
US20210064871A1 (en) Apparatus and method for recognition of text information
CN107871117B (zh) 用于检测对象的设备和方法
US10943126B2 (en) Method and apparatus for processing video stream
US20200250461A1 (en) Target detection method, apparatus, and system
US9721156B2 (en) Gift card recognition using a camera
US9436883B2 (en) Collaborative text detection and recognition
CN108734162B (zh) 商品图像中目标识别方法、系统、设备及存储介质
KR20190106865A (ko) 동영상 검색방법 및 동영상 검색 단말기
CN111914812B (zh) 图像处理模型训练方法、装置、设备及存储介质
US20140341443A1 (en) Joint modeling for facial recognition
KR102663375B1 (ko) 음성 및 영상 자동 포커싱 방법 및 장치
CN111414888A (zh) 低分辨率人脸识别方法、系统、装置及存储介质
CN112036400B (zh) 构建用于目标检测的网络的方法和目标检测方法及系统
US11734400B2 (en) Electronic device and control method therefor
US10917721B1 (en) Device and method of performing automatic audio focusing on multiple objects
KR102246471B1 (ko) 이미지 내 동물의 코 영역을 검출하는 방법 및 장치
CN111539390A (zh) 一种基于Yolov3的小目标图像识别方法、设备和系统
US20230074386A1 (en) Method and apparatus for performing identity recognition on to-be-recognized object, device and medium
CN116311546A (zh) 活体检测方法和系统
US20220139113A1 (en) Method and device for detecting object in image
US11087121B2 (en) High accuracy and volume facial recognition on mobile platforms
CN114927236A (zh) 一种面向多重目标图像的检测方法及系统
CN110705439B (zh) 一种信息的处理方法、装置及设备
CN114445716A (zh) 关键点检测方法、装置、计算机设备、介质及程序产品
US11445120B2 (en) Information processing method for adjustting an image capture region based on spoken utterance and apparatus therefor

Legal Events

Date Code Title Description
A201 Request for examination