KR101486495B1 - 사후 광학 문자 인식 처리에서의 형상 클러스터링 기법 - Google Patents

사후 광학 문자 인식 처리에서의 형상 클러스터링 기법 Download PDF

Info

Publication number
KR101486495B1
KR101486495B1 KR20097007242A KR20097007242A KR101486495B1 KR 101486495 B1 KR101486495 B1 KR 101486495B1 KR 20097007242 A KR20097007242 A KR 20097007242A KR 20097007242 A KR20097007242 A KR 20097007242A KR 101486495 B1 KR101486495 B1 KR 101486495B1
Authority
KR
South Korea
Prior art keywords
cluster
ocr
delete delete
image
clusters
Prior art date
Application number
KR20097007242A
Other languages
English (en)
Other versions
KR20090058557A (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
Priority claimed from US11/517,818 external-priority patent/US8175394B2/en
Priority claimed from US11/519,368 external-priority patent/US7697758B2/en
Priority claimed from US11/519,376 external-priority patent/US7650035B2/en
Priority claimed from US11/519,320 external-priority patent/US7646921B2/en
Application filed by 구글 인코포레이티드 filed Critical 구글 인코포레이티드
Publication of KR20090058557A publication Critical patent/KR20090058557A/ko
Application granted granted Critical
Publication of KR101486495B1 publication Critical patent/KR101486495B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • 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/24Character recognition characterised by the processing or recognition method
    • G06V30/248Character recognition characterised by the processing or recognition method involving plural approaches, e.g. verification by template match; Resolving confusion among similar patterns, e.g. "O" versus "Q"
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/25Fusion techniques
    • G06F18/254Fusion techniques of classification results, e.g. of results related to same input data
    • 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/1918Fusion techniques, i.e. combining data from various sources, e.g. sensor fusion
    • 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/22Character recognition characterised by the type of writing
    • G06V30/224Character recognition characterised by the type of writing of printed characters having additional code marks or containing code marks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Character Discrimination (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Image Processing (AREA)

Abstract

광학 문자 인식(OCR) 프로세스의 출력을 포함하여, 다양한 문서 처리시의 형상 클러스터링 및 그 적용을 위한 기술과 시스템이 개시된다.
Figure R1020097007242
광학 문자 인식, OCR, 클러스터, 화상.

Description

사후 광학 문자 인식 처리에서의 형상 클러스터링 기법{SHAPE CLUSTERING IN POST OPTICAL CHARACTER RECOGNITION PROCESSING}
본 PCT 출원은 아래의 네 개의 미국 특허 출원들로부터 우선권을 주장한다:
"Shape Clustering in Post Optical Character Recognition Processing"의 명칭으로 2006년 9월 8일에 출원된 출원번호 제11/517,818호;
"Shape Clustering and Cluster-Level Manual Identification in Post Optical Character Recognition Processing"의 명칭으로 2006년 9월 11일에 출원된 출원번호 제11/519,368호;
"Optical Character Recognition based on Shape Clustering and Multiple Optical Character Recognition Processes"의 명칭으로 2006년 9월 11일에 출원된 출원번호 제11/519,376호; 및
"High Resolution Replication of Document based on Shape Clustering"의 명칭으로 2006년 9월 11일에 출원된 출원번호 제11/519,320호.
상기 특허 출원들의 개시내용은 본 출원의 명세서의 일부로서 참조에 의해 병합되어 있다.
본 명세서는 형상 클러스터링 및 광학 문자 인식에 관한 것이다.
광학 문자 인식(OCR)은 컴퓨터 소프트웨어(이를 총칭하여 OCR 엔진으로서 부를 것이다)를 이용하여 원래에 종이, 마이크로필름, 또는 기타 여하의 매체를 통해서 인쇄되거나, 타이핑되거나, 또는 이와 달리 쓰여진 텍스트의 디지탈 화상들을 처리하고, 이 화상들로부터 머신 인식가능 및 편집가능 텍스트를 생성한다. OCR 엔진에 의해 처리된 문서의 디지털 화상은 다수의 기록물 페이지의 화상들을 포함할 수 있다. OCR 엔진에 의해 처리되는 텍스트의 화상들은 텍스트의 디지탈 화상들을 캡처하는 화상 스캐너를 이용하는 것을 포함한 다양한 화상처리 방법에 의해 획득될 수 있다.
OCR 엔진은 일반적으로 각각의 페이지상에 기록된 텍스트를 총체적으로 에워싸도록 되어 있는 직사각형 테두리 박스를 생성한다. 일반적으로, 문서 화상이 그레이 스케일 또는 칼라 정보를 갖는 경우, OCR 엔진은 화상을 이진화(binarize)하고 이로써 각각의 화상 픽셀은 전경(foreground) 픽셀(예컨대, 검은색) 또는 배경(background) 픽셀(예컨대, 흰색 영역)이 되도록 결정된다. 각각의 테두리 박스는 보통 OCR 엔진에 의해 인식된 하나의 문자의 텍스트 픽셀들의 하나 이상의 연관된 그룹들을 에워싸지만, 인접한 문자의 일부와 중첩될 수도 있거나, 또는 극단적인 경우에는 인접한 문자 전체와 중첩될 수도 있다. 이와 같은 상황에서, 해당 테두리 박스의 내부에 속한 것으로서 OCR 엔진에 의해 식별된 픽셀들을 다른 테두리 박스에 속하지만 상기 해당 테두리 박스와 중첩하는 픽셀들로부터 분리시키기 위한 여러가지 방법들이 존재한다. 이러한 방법들에는, 쓰레싱홀딩 및 연관된 성분 분석에 의해 마스크 화상을 생성하는 것, 다각형 아웃라인을 구축하는 것, 및 평행사변 형 테두리 박스를 구축하는 것을 포함한다. OCR 엔진은 일반적으로 각각의 테두리 박스를 하나 이상의 OCR 문자 코드에 할당한다. 각각의 OCR 코드는 OCR 엔진이 테두리 박스내에서 인식한 하나 이상의 문자들을 식별해준다. 만약 OCR 엔진이 테두리 박스내에서 어떠한 문자도 인식하지 못하면, 어떠한 OCR 문자 코드도 테두리 박스에 할당되지 않을 수 있다. OCR 문자 코드에 의해 식별된 각각의 문자는 표준 문자 인코딩, 예컨대 ASCII 또는 유니코드 인코딩으로 표현될 수 있다.
각각의 테두리 박스는 문서 화상의 일부 또는 작은 화상을 원래 형태 또는 이진화된 이진 형태로 격리시키는 클리핑 경로로서 간주될 수 있다. 이러한 작은 화상들은 자신들의 각각의 테두리 박스에 의해 문서 화상으로부터 클리핑되는 것으로 간주될 수 있기 때문에, 이러한 작은 화상들은 클립 또는 클립 화상으로서 칭해질 것이다. 각각의 클립 화상은 테두리 박스, OCR 문자 코드 또는 코드들과 관계를 갖고 있기 때문에, 따라서 테두리 박스에 할당된 문자 또는 문자들은 또한 클립 화상에 할당된 코드 또는 문자로서 칭해지거나 또는 이렇게 식별될 수 있다. 이와 달리 언급하지 않는 한, 클립 또는 클립 화상 용어는 문서 화상의 일부분인 화상과 OCR 엔진에 의한 문자 인식을 위해 처리되는 화상을 일컬을 것이다.
OCR 엔진은 처리동안에 에러를 유발시킬 수 있다. 예를 들어, OCR 엔진은 테두리 박스내의 문자의 일부분만을 포함하거나 또는 단일 테두리 박스내에서 단일 문자로서 인식된 다수의 문자들을 포함하는 것을 예로 포함하여 원본 화상을 부적절하게 분할할 수 있다. 다른 예로서, 테두리 박스에 의해 에워싸여진 클립 화상과 다른 문자 코드를 위한 참조 화상간의 어느정도의 화상 유사성 또는 OCR 엔진에 의 해 수신된 디지탈 화상의 불량한 화상 품질로 인하여, OCR 엔진은 부정확한 OCR 문자 코드를 테두리 박스에 할당할 수 있다.
본 명세서는 무엇보다도, 광학 문자 인식(OCR) 프로세스의 출력을 포함하여, 다양한 문서 처리시의 형상 클러스터링 및 그 적용을 위한 기술과 시스템을 설명한다.
일 양태에서, 본 방법은, OCR 프로세스에 의해 처리된 문서의 수신된 OCR 출력내에서 정의된 클립 화상들을 클립 화상들의 클러스터들로 분류시키는 단계; 각각의 클러스터들내의 클립 화상들을 처리하여 각각의 클러스터용 클러스터 화상을 생성하는 단계; OCR 프로세스에 의해 하나 이상의 OCR 문자 코드가 잘못 할당되었던 클러스터를 검출하기 위해 클러스터 화상들을 비교하는 단계; OCR 출력내에서 하나 이상의 잘못 할당된 OCR 문자 코드를 갖는 것으로 검출된 제1 클러스터에 하나 이상의 새로운 OCR 문자 코드를 할당하는 단계; 및 수정된 OCR 출력을 생성하기 위해 하나 이상의 새로운 OCR 문자 코드를 이용하여 OCR 출력내의 제1 클러스터의 클립 화상들 중 하나의 화상의 각각의 발생(occurrence)에서 잘못 할당된 OCR 문자 코드를 교체시키는 단계를 포함할 수 있다. 각각의 클러스터는 OCR 프로세스에 의해 하나 이상의 동일한 문자 코드들이 할당된 클립 화상들을 포함한다.
다른 양태에서, 광학 문자 인식(OCR)을 위한 시스템은 OCR 엔진과 사후(post)-OCR 엔진을 포함할 수 있다. OCR 엔진은 문서의 원본 화상으로부터 추출된 클립 화상을 포함하는 OCR 출력을 생성하고, 하나 이상의 문자를 각각의 클립 화상에 할당하도록 문서의 원본 화상을 처리하는 동작을 한다. 사후-OCR 엔진은 OCR 출력내의 클립 화상들을 클립 화상의 클러스터들로 분류시키도록 동작한다. 각각의 클러스터는 OCR 엔진에 의해 하나 이상의 동일한 문자들이 할당된 클립 화상들을 포함한다. 사후-OCR 엔진은 각각의 클러스터내의 클립 화상들을 처리하여 각각의 클러스터용 클러스터 화상을 생성하고, OCR 엔진에 의해 하나 이상의 OCR 문자 코드가 잘못 할당되었던 클러스터를 검출하기 위해 클러스터 화상들을 비교하도록 동작한다. 사후-OCR 엔진은 또한 OCR 출력내에서 하나 이상의 잘못 할당된 OCR 문자 코드를 갖는 것으로 검출된 제1 클러스터에 하나 이상의 새로운 OCR 문자 코드를 할당하고, 수정된 OCR 출력을 생성하기 위해 하나 이상의 새로운 OCR 문자 코드를 이용하여 OCR 출력내의 제1 클러스터의 클립 화상들 중 하나의 화상의 각각의 발생에서 잘못 할당된 OCR 문자 코드를 교체시키도록 동작한다.
다른 양태에서, 사후 광학 문자 인식(OCR) 처리 방법은 광학 문자 인식(OCR) 프로세스에 의해 처리된 문서의 수신된 OCR 출력내에서 정의된 클립 화상들을 클립 화상들의 클러스터들로 분류시키는 단계; 각각의 클러스터들내의 클립 화상들을 처리하여 각각의 클러스터용 클러스터 화상을 생성하는 단계를 포함할 수 있다. 각각의 클러스터는 OCR 프로세스에 의해 하나 이상의 동일한 문자 코드들이 할당되고 동일 또는 유사한 크기를 갖는 클립 화상들을 포함한다. 하나 이상의 제1 OCR 문자 코드가 할당된 제1 클러스터에 대해, 이 방법은, (1) 하나 이상의 제1 OCR 문자 코드와 구별되는 하나 이상의 제2 OCR 문자 코드가 할당된 제2 클러스터로서, 제2 클러스터의 클러스터 화상은 하나 이상의 제1 OCR 문자 코드와 구별되는 하나 이상의 OCR 문자가 할당된 다른 클러스터의 클러스터 화상보다는 제1 클러스터의 클러스터 화상에 형상이 가까운 것인, 제2 클러스터, 및 (2) 제1 클러스터와 동일한 하나 이상의 제1 OCR 문자 코드가 할당된 제3 클러스터로서, 제3 클러스터의 클러스터 화상은 하나 이상의 제1 OCR 문자 코드가 할당된 다른 클러스터의 클러스터 화상보다는 제1 클러스터의 클러스터 화상에 형상이 가까운 것인, 제3 클러스터를 식별한다. 이 방법은 제1 클러스터에 할당된 하나 이상의 제1 OCR 문자 코드들에서의 신뢰성 레벨을 판정하기 위해 적어도 제1 클러스터와 제2 클러스터의 클러스터 화상들간의 형상 차이 및 제1 클러스터와 제3 클러스터의 클러스터 화상들간의 형상 차이를 이용한다.
다른 양태에서, 광학 문자 인식(OCR)을 위한 시스템은 OCR 엔진과 사후- OCR 엔진을 포함할 수 있다. OCR 엔진은 원본 화상으로부터 추출된 클립 화상을 포함하는 OCR 출력을 생성하고, 하나 이상의 문자를 각각의 클립 화상에 할당하도록 문서의 원본 화상을 처리하는 동작을 하고, 사후-OCR 엔진은 OCR 출력내의 클립 화상들을 클립 화상의 클러스터들로 분류시키도록 동작한다. 각각의 클러스터는 OCR 엔진에 의해 하나 이상의 동일한 문자 코드들이 할당된 동일 또는 유사한 크기의 클립 화상들을 포함한다. 사후-OCR 엔진은 각각의 클러스터내의 클립 화상들을 처리하여 각각의 클러스터용 클러스터 화상을 생성한다. 사후-OCR 엔진은 또한, 하나 이상의 제1 OCR 문자 코드가 할당된 제1 클러스터에 대해, (1) 하나 이상의 제1 OCR 문자 코드와 구별되는 하나 이상의 제2 OCR 문자 코드가 할당된 제2 클러스터로서, 제2 클러스터의 클러스터 화상은 하나 이상의 제1 OCR 문자 코드와 구별되는 하나 이상의 OCR 문자가 할당된 다른 클러스터의 클러스터 화상보다는 제1 클러스터의 클러스터 화상에 형상이 가까운 것인, 제2 클러스터, 및 (2) 제1 클러스터와 동일한 하나 이상의 제1 OCR 문자 코드가 할당된 제3 클러스터로서, 제3 클러스터의 클러스터 화상은 하나 이상의 제1 OCR 문자 코드가 할당된 다른 클러스터의 클러스터 화상보다는 제1 클러스터의 클러스터 화상에 형상이 가까운 것인, 제3 클러스터를 식별하도록 동작한다. 이 시스템에서, 사후-OCR 엔진은 제1 클러스터에 할당된 하나 이상의 제1 OCR 문자 코드들에서의 신뢰성 레벨을 판정하기 위해 적어도 제1 클러스터와 제2 클러스터의 클러스터 화상들간의 형상 차이 및 제1 클러스터와 제3 클러스터의 클러스터 화상들간의 형상 차이를 이용하도록 동작한다.
다른 양태에서, 광학 문자 인식(OCR)을 위한 시스템은 클러스터 생성 엔진과 클러스터 처리 엔진을 포함할 수 있다. 클러스터 생성 엔진은 문서의 원본 화상을 처리할 때에 OCR 엔진에 의해 산출된 개별적인 화상들을 갖는 OCR 출력과 OCR 엔진에 의해 각각의 개별적인 화상들에 할당된 하나 이상의 문자들을 수신하도록 동작한다. 클러스터 생성 엔진은 OCR 출력내의 개별적인 화상들을 특정 화상 크기를 가지며 OCR 엔진에 의해 하나 이상의 동일한 OCR 문자 코드가 할당된 개별적인 화상들의 클러스터로 분류하는 동작을 한다. 클러스터 처리 엔진은 클러스터의 클러스터 화상 및 다른 클러스터의 클러스터 화상간의 형상 계측 차이를 획득하고, 획득된 형상 계측 차이에 기초하여 OCR 엔진에 의해 각각의 클러스터에 할당된 하나 이상의 OCR 문자 코드의 할당내에 에러가 존재하는지를 검출하도록 동작한다. 클러스터 처리 엔진은 또한 클러스터에 대한 하나 이상의 잘못 할당된 OCR 문자 코드를 정정하도록 동작한다.
다른 양태에서, 광학 문자 인식(OCR)을 위한 방법은 문서의 원본 화상을 처리할 때에 OCR 엔진에 의해 산출된 개별적인 화상들을 갖는 OCR 출력과 OCR 엔진에 의해 각각의 개별적인 화상들에 할당된 하나 이상의 문자들을 수신하는 단계; OCR 출력내의 개별적인 화상들을 특정 화상 크기를 가지며 OCR 엔진에 의해 하나 이상의 동일한 OCR 문자 코드가 할당된 개별적인 화상들의 클러스터로 분류하는 단계; 클러스터의 클러스터 화상 및 다른 클러스터의 클러스터 화상간의 형상 계측 차이를 획득하고, 획득된 형상 계측 차이에 기초하여 OCR 엔진에 의해 각각의 클러스터에 할당된 하나 이상의 OCR 문자 코드의 할당내에 에러가 존재하는지를 검출하는 단계; 및 클러스터에 대한 하나 이상의 잘못 할당된 OCR 문자 코드를 정정하는 단계를 포함할 수 있다.
다른 양태에서, 방법은 원본 문서 화상을 처리하는 광학 문자 인식(OCR) 프로세스로부터, 수신된 OCR 출력내에서 정의된 클립 화상들을 클립 화상들의 클러스터들로 분류시키는 단계를 포함할 수 있다. 각각의 클러스터는 OCR 프로세스에 의해 하나 이상의 동일한 특정 문자가 할당된 동일 또는 유사한 화상 크기와 형상을 갖는 클립 형상들을 포함한다. 각각의 클러스터에 대한 평균 화상을 생성하기 위해 원본 문서 화상으로부터의 그레이 스케일 또는 칼라 정보가 각각의 클러스터내의 클립 화상들을 평균화할 때에 적용된다.
다른 양태에서, 광학 문자 인식(OCR)을 위한 시스템은 OCR 엔진과 사후- OCR 엔진을 포함할 수 있다. OCR 엔진은 원본 화상으로부터 추출된 클립 화상을 갖는 OCR 출력을 생성하고 하나 이상의 문자를 각각의 클립 화상에 할당하도록 문서의 원본 화상을 처리하는 동작을 한다. 사후-OCR 엔진은 OCR 출력내의 클립 화상들을 클립 화상의 클러스터들로 분류시키는 동작을 한다. 각각의 클러스터는 OCR 엔진에 의해 하나 이상의 동일한 특정 문자 코드들이 할당된 동일 또는 유사한 크기 및 형상을 갖는 클립 화상들을 포함한다. 사후-OCR 엔진은 각각의 클러스터에 대한 평균 화상을 생성하기 위해 원본 문서 화상으로부터의 그레이 스케일 또는 칼라 정보가 각각의 클러스터내의 클립 화상들을 평균화할 때에 적용하도록 동작한다.
다른 양태에서, 광학 문자 인식(OCR) 프로세스로부터의 출력을 처리하기 위한 방법은 문서의 원본 화상을 처리하여 생성된 OCR 프로세스의 출력에서의 개별적인 화상들을 개별적인 화상들의 클러스터들로 분류시키는 단계; 각각의 클러스터내의 개별적인 화상들을 표시하기 위해 클러스터 화상을 사용하는 단계; 낮은 레벨의 신뢰도를 갖는 클러스터를 선택하여 선택된 클러스터의 클러스터 화상과의 하나 이상의 문자들의 수동 할당을 획득하는 단계; 및 수동 할당에 의해 획득된 하나 이상의 문자들을 이용하여 OCR 프로세스의 출력내의 OCR 프로세스에 의해 이전에 할당된 하나 이상의 특정 문자들 각각을 검증 또는 교체시키는 단계를 포함할 수 있다. 이 방법에서, 각각의 클러스터는 OCR 프로세스에 의해 하나 이상의 동일한 특정 문자들이 할당된 유사한 화상 크기와 형상을 갖는 개별적인 화상들을 포함한다.
다른 양태에서, 광학 문자 인식(OCR)을 위한 시스템은 OCR 엔진과 사후- OCR 엔진을 포함할 수 있다. OCR 엔진은 원본 화상으로부터 추출된 개별적인 화상들을 산출시키고 하나 이상의 문자들을 각각의 개별적인 화상들에 할당하도록 문서의 원본 화상을 처리하는 동작을 한다. 사후-OCR 엔진은 OCR 출력내의 개별적인 화상들을 개별적인 화상들의 클러스터들로 분류시키는 동작을 한다. 각각의 클러스터는 OCR 엔진에 의해 하나 이상의 동일한 특정 문자 코드들이 할당된 유사한 화상 크기 및 형상을 갖는 개별적인 화상들을 포함한다. 사후-OCR 엔진은 각각의 클러스터내의 개별적인 화상들을 표시하는 클러스터 화상을 생성하고, 낮은 레벨의 신뢰도를 갖는 클러스터를 선택하여 선택된 클러스터의 클러스터 화상과의 하나 이상의 문자들의 수동 할당을 획득하고; 및 수동 할당에 의해 획득된 하나 이상의 문자들을 이용하여 OCR 엔진에 의해 이전에 할당된 하나 이상의 특정 문자들 각각을 검증 또는 교체시키는 동작을 한다.
다른 양태에서, 광학 문자 인식(OCR) 프로세스에 의해 처리된 문서의 수신된 OCR 출력내에서 정의된 클립 화상들을 클립 화상들의 클러스터들로 분류시키는 단계; 각각의 클러스터내의 클립 화상들을 표시하는 클러스터 화상을 생성하는 단계; 특정 클러스터의 클러스터 화상의 사용자 신원정보를 요청하기 위해 온라인 도전-응답 테스트의 일부로서 특정 클러스터의 클러스터 화상을 선택하는 단계; 및 온라인 도전-응답 테스트로부터 수신된 사용자 신원정보를 이용하여 OCR 프로세스에 의해 특정 클러스터에 할당된 하나 이상의 특정 문자들을 검증 또는 정정하는 단계를 포함할 수 있다. 이 방법에서, 각각의 클러스터는 OCR 프로세스에 의해 하나 이상의 동일한 특정 문자들이 할당된 유사한 화상 크기와 형상을 갖는 클립 화상들을 포함한다.
다른 양태에서, 방법은 광학 문자 인식(OCR) 프로세스에 의해 처리된 문서의 수신된 OCR 출력내에서 정의된 클립 화상들을 클립 화상들의 클러스터들로 분류시키는 단계; 각각의 클러스터내의 클립 화상들을 표시하는 클러스터 화상을 이용하는 단계; 온라인 게임을 이용하여 온라인 게임의 일부로서 사용자 응답에 대해 특정 클러스터의 클러스터 화상을 온라인 게임의 하나 이상의 사용자들에게 제공하는 단계; 및 온라인 게임으로부터 수신된 사용자 응답을 이용하여 OCR 프로세스에 의해 특정 클러스터에 할당된 하나 이상의 특정 문자들을 검증 또는 정정하는 단계를 포함할 수 있다. 이 방법에서, 각각의 클러스터는 OCR 프로세스에 의해 하나 이상의 동일한 특정 문자들이 할당된 유사한 화상 크기와 형상을 갖는 클립 화상들을 포함한다.
다른 양태에서, 광학 문자 인식(OCR)을 위한 시스템은 OCR 엔진, 사후-OCR 처리 엔진 및 의결 처리 엔진을 포함할 수 있다. 각각의 OCR 엔진은 문서의 원본 화상을 처리하고 각각의 OCR 출력을 산출하도록 동작한다. 각각의 사후-OCR 처리 엔진은 각각의 OCR 엔진으로부터 OCR 출력을 수신하도록 동작하고, 문서의 각각의 수정된 OCR 출력을 산출하도록 동작한다. 의결 처리 엔진은 수정된 OCR 출력으로부터 일부분들을 선택하고 선택된 일부분들을 최종 OCR 문서 출력내로 집결시키도록 동작한다. 각각의 사후-OCR 처리 엔진은 수신된 OCR 문서 출력내에서 정의된 클립 화상들을 클립 화상들의 클러스터들로 분류시키고, 대응하는 OCR 엔진에 의해 하나 이상의 동일한 특정 문자들이 할당된 유사한 화상 크기와 형상을 갖는 클립 화상들을 포함한다. 각각의 사후-OCR 엔진은 각각의 클러스터내의 클립 화상들을 표시하는 클러스터 화상을 생성하도록 동작한다. 의결 처리 엔진은 각각의 클러스터의 클러스터 화상 및 다른 클러스터의 클러스터 화상간의 형상 차이를 이용하여 대응하는 OCR 엔진에 의해 각각의 클러스터에 할당된 하나 이상의 특정 문자들내에 에러가 존재하는지를 검출하고; 하나 이상의 특정 문자들을 특정 클러스터에 새롭게 할당함으로써 특정 클러스터내에서 각각 검출된 에러를 정정하고; 특정 클러스터에 대한 새롭게 할당된 하나 이상의 특정 문자들을 이용하여 대응하는 수정된 OCR 출력내에서 대응하는 OCR 엔진에 의해 이전에 할당된 하나 이상의 특정 문자들 각각을 교체시키도록 동작한다.
다른 양태에서, 광학 문자 인식(OCR)을 위한 방법은 문서의 원본 화상을 처리하고 OCR 출력을 산출시키기위해 각각 OCR 엔진을 이용하는 단계; 각각의 수정된 OCR 문서 출력을 산출시키기 위해 다른 OCR 출력을 처리함으로써 OCR 출력들 각각을 개별적으로 처리하는 단계;를 포함할 수 있고, 상기 처리하는 단계는 수신된 OCR 문서 출력내에서 정의된 클립 화상들을 클립 화상들의 클러스터들로 분류시키는 단계, 각각의 클러스터내의 클립 화상들을 표시하는 클러스터 화상을 생성하는 단계, 각각의 클러스터의 클러스터 화상 및 다른 클러스터의 클러스터 화상간의 형상 차이를 이용하여 대응하는 OCR 엔진에 의해 각각의 클러스터에 할당된 하나 이상의 특정 문자들내에 에러가 존재하는지를 검출하는 단계를 포함한다. 각각의 클러스터는 대응하는 OCR 엔진에 의해 하나 이상의 동일한 특정 문자들이 할당된 유사한 화상 크기와 형상을 갖는 클립 화상들을 포함한다. 이 방법은 하나 이상의 특정 문자들을 특정 클러스터에 새롭게 할당함으로써 특정 클러스터내에서 각각 검출된 에러를 정정하는 단계; 특정 클러스터에 대한 새롭게 할당된 하나 이상의 특정 문자들을 이용하여 대응하는 수정된 OCR 출력내에서 대응하는 OCR 엔진에 의해 이전에 할당된 하나 이상의 특정 문자들 각각을 교체시키는 단계; 및 수정된 OCR 출력으로부터 일부분들을 선택하고 선택된 일부분들을 최종 OCR 문서 출력내로 집결시키는 단계를 더 포함한다.
다른 양태에서, 방법은 제1 광학 문자 인식(OCR) 엔진을 통해 문서 화상을 처리하여 제1 OCR 출력을 생성하고, 제2 OCR 엔진을 통해 상기 문서 화상을 처리하여 제2 OCR 출력을 생성하는 단계를 포함할 수 있다. 제1 OCR 출력은 문서 화상내에 위치한 제1 클립 화상들을 식별해주는 제1 테두리 박스 및 각각의 제1 클립 화상에 할당된 하나 이상의 문자들 각각을 포함한다. 제2 OCR 출력은 문서 화상내에 위치한 제2 클립 화상들을 식별해주는 제2 테두리 박스 및 각각의 제2 클립 화상에 할당된 하나 이상의 문자들 각각을 포함한다. 이 방법은 제1 OCR 출력에 형상 클러스터링을 적용하여 제1 클립 화상을 갖는 제1 클러스터 및 제1 클립 화상에 대한 하나 이상의 문자들의 각각의 할당에 대한 각각의 신뢰도 점수를 산출시키는 단계; 제2 OCR 출력에 형상 클러스터링을 적용하여 제2 클립 화상을 갖는 제2 클러스터 및 제2 클립 화상에 대한 하나 이상의 문자들의 각각의 할당에 대한 각각의 신뢰도 점수를 산출시키는 단계; 및 제1 OCR 출력과 제2 OCR 출력으로부터 최종 OCR 출력을 생성하는 단계를 더 포함한다. 최종 OCR 출력은 테두리 박스들을 포함하고, 제1 클립 화상과 제2 클립 화상에 대한 하나 이상의 문자들의 할당에 대한 신뢰도 점수를 이용하여 테두리 박스 각각에 대해 하나 이상의 문자들 각각을 선택 및 할당한다.
다른 양태에서, 광학 문자 인식(OCR)을 위한 시스템은 제1 OCR 엔진, 제1 사후-OCR 엔진, 제2 OCR 엔진, 제2 사후-OCR 엔진 및 의결(vote) 처리 엔진을 포함할 수 있다. 제1 OCR 엔진은 문서 화상내에 위치하는 제1 클립 화상들을 식별해주는 제1 테두리 박스들 및 제1 클립 화상들 각각에 할당된 하나 이상의 문자들 각각을 포함하는 제1 OCR 출력을 생성하기 위해 문서 화상을 처리하도록 동작한다. 제1 사후-OCR 엔진은 제1 OCR 출력에 형상 클러스터링을 적용하여 제1 클립 화상을 갖는 제1 클러스터 및 제1 클립 화상에 대한 하나 이상의 문자들의 각각의 할당에 대한 각각의 신뢰도 점수를 산출하도록 동작한다. 제2 OCR 엔진은 문서 화상내에 위치하는 제2 클립 화상들을 식별해주는 제2 테두리 박스들 및 제2 클립 화상들 각각에 할당된 하나 이상의 문자들 각각을 포함하는 제2 OCR 출력을 생성하기 위해 문서 화상을 처리하도록 동작한다. 제2 사후-OCR 엔진은 제2 OCR 출력에 형상 클러스터링을 적용하여 제2 클립 화상을 갖는 제2 클러스터 및 제2 클립 화상에 대한 하나 이상의 문자들의 각각의 할당에 대한 각각의 신뢰도 점수를 산출하도록 동작한다. 의결 처리 엔진은 제1 OCR 출력과 제2 OCR 출력을 수신 및 처리하고, 신뢰도 점수에 기초하여 제1 클러스터와 제2 클러스터로부터 최종 OCR 출력을 산출하는데 이용된다.
다른 양태에서, 본 방법은 제1 광학 문자 인식(OCR) 엔진을 통해 문서 화상을 처리하여 제1 OCR 출력을 생성하는 단계와, 제2 OCR 엔진을 통해 상기 문서 화상을 처리하여 제2 OCR 출력을 생성하는 단계를 포함할 수 있다. 제1 OCR 출력은 문서 화상내에 위치한 제1 클립 화상들을 식별해주는 제1 테두리 박스 및 각각의 제1 클립 화상에 할당된 하나 이상의 문자들 각각을 포함한다. 제2 OCR 출력은 문서 화상내에 위치한 제2 클립 화상들을 식별해주는 제2 테두리 박스 및 각각의 제2 클립 화상에 할당된 하나 이상의 문자들 각각을 포함한다. 이 방법은 제1 클립 화상들과 제2 클립 화상들을 각각의 클러스터가 클립 화상에 할당된 하나 이상의 동일한 문자들을 갖는 클립 화상들만을 포함하는 클러스터들로 분류시키는 단계; 각각의 클러스터에 대해 클러스터 화상을 생성하는 단계; 클러스터 화상들을 이용하여 클립 화상에 대한 문자의 할당을 검증 또는 정정하고, 클립 화상에 대한 하나 이상의 문자들의 할당 각각에 대한 신뢰도 점수를 판정하는 단계; 및 클러스터 화상에 대한 문자의 할당을 이용하여 최종 OCR 출력을 생성하는 단계를 더 포함한다.
다른 양태에서, 광학 문자 인식(OCR)을 위한 시스템은 제1 OCR 엔진, 제2 OCR 엔진, 사후-OCR 엔진 및 의결 처리 엔진을 포함할 수 있다. 제1 OCR 엔진은 제1 OCR 출력을 생성하도록 문서 화상을 처리하는 동작을 한다. 이 제1 OCR 출력은 문서 화상내에 위치한 제1 클립 화상들을 식별해주는 제1 테두리 박스 및 각각의 제1 클립 화상에 할당된 하나 이상의 문자들 각각을 포함한다. 제2 OCR 엔진은 제2 OCR 출력을 생성하도록 문서 화상을 처리하는 동작을 한다. 이 제2 OCR 출력은 문서 화상내에 위치한 제2 클립 화상들을 식별해주는 제2 테두리 박스 및 각각의 제2 클립 화상에 할당된 하나 이상의 문자들 각각을 포함한다. 사후-OCR 엔진은 제1 및 제2 OCR 출력을 수신하고, 제1 클립 화상과 제2 클립 화상을 클러스터들로 분류시키는데 이용된다. 각각의 클러스터는 클립 화상에 할당된 하나 이상의 동일한 문자들을 갖는 클립 화상 및 각각의 클러스터에 대한 클립 화상을 표시하는 클러스터 화상만을 포함한다. 의결 처리 엔진은 사후-OCR 엔진으로부터의 클러스터 화상에 대한 문자의 할당에 기초하여 최종 OCR 출력을 생성하도록 동작한다.
다른 양태에서, 본 방법은 제1 OCR 출력을 생성하기 위해 제1 광학 문자 인식(OCR) 엔진을 통해 문서 화상을 처리하는 단계; 형상 클러스터링을 제1 OCR 출력에 적용하여 제1 OCR 수정된 출력을 산출시키는 단계를 포함할 수 있다. 제1 OCR 출력은 문서 화상내에 위치한 클립 화상을 식별해주는 테두리 박스 및 각각의 클립 화상에 대해 하나 이상의 문자들을 할당하는 문자 할당을 포함한다. 제1 OCR 수정된 출력은 클립 화상에 대한 문자의 할당의 수정과 문서 화상내에서 인식된 단어를 포함한다. 이 방법은 제1 OCR 수정된 출력내에서 의심 단어를 식별하는 단계로서, 의심 단어는 의심 문자로서 식별된 문자를 갖는 단어인, 식별 단계; 및 의심 단어를 제2 OCR 엔진으로 처리하여 의심 단어를 인식하는 단계를 더 포함한다.
다른 양태에서, 광학 문자 인식(OCR)을 위한 시스템은 제1 OCR 엔진, 제1 사후-OCR 엔진 및 제2 OCR 엔진을 포함할 수 있다. 제1 OCR 엔진은 문서 화상을 처리하여 문서 화상내에 위치한 클립 화상을 식별해주는 테두리 박스 및 각각의 클립 화상에 대한 하나 이상의 문자들을 할당하는 문자 할당을 포함하는 제1 OCR 출력을 생성하도록 동작한다. 제1 사후-OCR 엔진은 형상 클러스터링을 제1 OCR 출력에 적용하여 클립 화상에 대한 문자의 할당의 수정과 문서 화상내에서 인식된 단어를 포함하는 제1 OCR 수정된 출력을 산출하도록 동작한다. 제1 사후-OCR 엔진은 제1 OCR 수정된 출력내에서 의심 단어를 식별하도록 동작하고, 의심 단어는 의심 문자로서 식별된 문자를 갖는 단어이다. 제2 OCR 엔진은 의심 단어를 수신 및 처리하여 의심 단어를 인식한다.
다른 양태에서, 본 방법은 문서의 화상을 처리하여 비중첩하는 화상의 서브 영역들의 콜렉션을 산출하는 단계로서, 서브 영역 각각은 제1 해상도를 갖는 것인, 상기 화상의 서브 영역들의 콜렉션을 산출하는 단계; 및 콜렉션내의 각각의 서브 영역들이 하나의 클러스터내에 포함되는 시각적으로 유사한 클립 서브 영역들의 다수의 클러스터들을 생성하는 단계; 각각의 클러스터내의 서브 영역들로부터 제1 해상도보다 높은 제2 해상도를 갖는 다수의 클러스터들 각각에 대한 대표 클러스터 화상을 생성하는 단계; 및 화상내의 서브 영역들을 서브 영역들 각각이 포함되는 클러스터들을 표시하는 클러스터 화상으로 교체시킴으로써 문서의 복제 화상을 산출시키는 단계를 포함할 수 있다.
다른 양태에서, 본 방법은 광학 문자 인식(OCR) 프로세스를 문서의 원본 화상에 적용하여 원본 화상의 여러 위치들에서 클립 화상들을 산출하는 단계로서, 각각의 클립 화상은 제1 해상도를 갖는 것인, 클립 화상들을 산출하는 단계; 클립 화상들을 클립 화상들의 클러스터들로 분류시키는 단계로서, 각각의 클러스터들은 OCR 프로세스에 의해 하나 이상의 동일한 문자들이 할당되고 서로 동일 또는 유사한 크기를 갖는 클립 화상들을 포함하는 것인, 상기 분류 단계; 각각의 클러스터들내의 각각의 클립 화상을 제1 해상도보다 높은 제2 해상도의 변환 클립 화상으로 변환시키는 단계; 각각의 클러스터내의 변환된 클립 화상들을 평균화하여 클러스터 화상을 생성하는 단계; 및 제2 해상도를 갖는 문서의 원본 화상의 복사본을 생성하기 위해 클러스터들의 클러스터 화상들을 이용하여 OCR 프로세스에 의해 초기에 산출된 대응하는 클립 화상들을 교체시키는 단계를 포함할 수 있다.
또 다른 양태에서, 시스템은 광학 문자 인식(OCR) 엔진과 사후-OCR 엔진을 포함할 수 있다. OCR 엔진은 문서의 원본 화상을 처리하여 원본 화상의 여러 위치들에서 클립 화상들을 포함하는 OCR 출력을 산출하도록 동작한다. 각각의 클립 화상은 제1 해상도를 갖는다. 사후-OCR 엔진은 OCR 엔진과 통신하여 OCR 출력을 수신한다. 사후-OCR 엔진은 클립 화상들을 클립 화상들의 클러스터들로 분류시키도록 동작하며, 각각의 클러스터들은 OCR 엔진에 의해 하나 이상의 동일한 문자들이 할당되고 서로 동일 또는 유사한 크기를 갖는 클립 화상들을 포함한다. 사후-OCR 엔진은, 각각의 클러스터들내의 각각의 클립 화상을 제1 해상도보다 높은 제2 해상도의 변환 클립 화상으로 변환시키고; 각각의 클러스터내의 변환 클립 화상들을 평균화하여 클러스터 화상을 생성하고; 및 제2 해상도를 갖는 문서의 원본 화상의 복사본을 생성하기 위해 클러스터들의 클러스터 화상들을 이용하여 OCR 엔진에 의해 초기에 산출된 대응하는 클립 화상들을 교체시키도록 동작한다.
본 발명의 특정 실시예들이 하나 이상의 장점들을 실현시키도록 구현될 수 있다. 예를 들어, 일반적인 스타일로 인쇄되거나 기록된 방대한 문서들로부터의 대형 샘플들은 샘플 갯수가 충분히 큰 경우에 액세스가능한 화상 정보를 포함한다. 이와 같은 정보는 문자들을 식별할 때에 강화된 정확성을 제공하는데 사용될 수 있다. 본 명세서에서 설명된 형상 클러스터링 기술은 유사 패턴 및 비유사 패턴에 관한 추가적인 화상 정보를 추출하기 위해 대형 샘플들을 처리하는데 적용될 수 있다.
본 발명의 하나 이상의 실시에들의 상세사항이 첨부된 도면과 이하의 상세설명에서 기술된다. 본 발명의 다른 특징, 양태, 및 장점이 상세설명, 도면, 및 청구항으로부터 분명해질 것이다.
도 1은 클립 화상들과 연계되고, 특정한 OCR 엔진으로부터의 출력에서 획득되는 OCR 문자 코드가 할당된, OCR 생성 테두리 박스들의 예를 도시한다.
도 2는 사후-OCR 처리에서 형상 클러스터링을 적용하는 예시적인 방법을 도시한다.
도 3은 수정된 OCR 출력을 산출하기 위해 OCR 출력에 형상 클러스터링을 적용하는 예시적인 사후-OCR 처리 엔진을 도시하는 블럭도이다.
도 4는 도 3에서의 클러스터 생성 엔진에 의한 클러스터 분류를 위한 예시적인 프로세스를 도시하는 흐름도이다.
도 5는 자신들의 중심점에서 정렬된 클러스터내의 클립 화상들을 평균화함으로써 클러스터 화상을 계산처리하기 위한 하나의 예시적인 프로세스를 도시한다.
도 6은 OCR 문자 코드 할당을 위한 형상 클러스터링을 이용하기 위해 클러스터 처리 소프트웨어(330)에 의해 수행될 수 있는 예시적인 방법을 도시한다.
도 7 내지 도 9는 OCR 엔진의 출력으로부터 획득된 클러스터의 예 및 도 3에서의 클러스터 처리 엔진에 의해 계산된 관련 클러스터 파라미터를 도시한다.
도 10은 의심 클러스터 화상을 재분할하기 위해 높은 신뢰도 점수를 갖는 클러스터를 클러스터 화상 템플릿으로서 이용함으로써 의심 클러스터 화상이 보다 작 은 클러스터 화상들로 재분할되는 슬라이딩 윈도우 프로세스의 예를 도시한다.
도 11a 및 도 11b는 도 10에서의 슬라이딩 윈도우 프로세스의 세부 동작을 도시한다.
도 12는 수동 정정 프로세스가 도 3에서의 클러스터 처리 소프트웨어의 일부로서 포함될 수 있는 자동화된 수동 정정의 하나의 구현예를 도시한다.
도 13은 두 개 이상의 OCR 엔진과 사후-OCR 처리 엔진을 의결처리(vote) 구성내에 포함하는 예시적인 OCR 시스템을 도시한다.
도 14는 두 개 이상의 다수의 OCR 엔진과 단일 사후-OCR 처리 엔진을 의결처리 구성내에 포함하는 다른 예시적인 OCR 시스템을 도시한다.
도 15는 제1 OCR 엔진을 사용하여 원본 문서 화상을 처리하고, 제1 사후-OCR 처리 엔진을 사용하여 제1 OCR 엔진으로부터의 OCR 출력을 처리하여, 수정된 OCR 출력을 산출하는 예시적인 OCR 시스템을 도시한다.
도 16은 고해상도의 문서 버전을 산출하는 하나의 예시적인 프로세스를 도시한다.
도 17은 예시적인 고해상도 프린트 주문형 시스템을 도시한다.
도 18은 OCR 및 사후-OCR 처리를 이행하는 예시적인 컴퓨터 시스템을 도시한다.
도 19는 OCR 및 사후-OCR 처리를 기초로 온라인 OCR 서비스를 제공하는 예시적인 컴퓨터 시스템을 도시한다.
다양한 도면들내에서의 동일한 참조부호 및 호칭은 동일한 구성요소를 가리 킨다.
여러 OCR 엔진들의 OCR 출력은 다양할 수 있지만, 많은 수가 문자 테두리 박스와 테두리 박스에 대한 OCR 관련 문자 코드를 포함한다. 도 1은 OCR-생성 테두리 박스, 연계된 클립 화상 및 특정 OCR 엔진의 출력으로부터 획득된 할당된 OCR 문자 코드의 예를 도시한다. OCR 엔진은 문서의 원본 디지탈 화상을 처리하고, 원본 화상을 인식된 개별 문자들에 대응하는 개별적인 클립 화상으로 분할한다. OCR 엔진은 테두리 박스를 산출시키고 이를 이용하여 하나 이상의 개별적으로 인식된 문자들을 에워싸고 식별해준다. 예를 들어, 도 1에서의 테두리 박스(110, 120, 140 및 160)는 구두점, 글자 "F", 글자 "o", 및 숫자 "4"를 각각 에워싼다. 각각의 OCR 문자 코드는 하나 이상의 문자를 나타낼 수 있다. 각각의 문자는 언어의 기본 단위인 하나 이상의 언어 토큰을 포함할 수 있고, 예컨대, 글자, 숫자, 및 심볼 또는 부호를 포함할 수 있다. 심볼 또는 부호는 예컨대, 구두점 부호, 인쇄 부호 또는 발음구별 부호일 수 있다. 따라서, 문자의 예시들은 글자, 숫자, 심볼 또는 부호, 및 두 개 이상의 언어 토큰의 합자(ligature)일 수 있다. 도 1은 글자, 숫자 및 구두점 부호에 대한 대응하는 할당된 OCR 문자 코드로부터 생성된 OCR 문자의 특정 예시들을 도시한다. 텍스트 문자(130, 150)는 글자 "F"에 대한 테두리 박스(120)와 숫자 "4"에 대한 테두리 박스(160)내에 각각 포함된 문서 화상 부분에 대해 OCR 엔진에 의해서 할당된 OCR 문자 코드로부터 생성된다.
도 1에서 도시된 예시에서, OCR-엔진-생성 테두리 박스는 직사각형이며, 그 크기 및 종횡비는 에워싸여진 개별직인 문자들의 크기 및 종횡비에 따라 달라진다. 이 예시에서, 각각의 테두리 박스는 하나의 문자의 화상 픽셀을 에워싼다.
처리될 문서의 원본 화상은 이진 화상, 그레이 스케일 화상 또는 칼라 화상 중 하나 이상일 수 있다. 그레이 스케일 데이터 또는 칼라 데이터는 일반적으로 이진 데이터보다 세밀한 정보를 포함하므로, 정교하거나 세밀한 화상 특징의 추출에 유익하다. 일부 OCR 엔진에서는, 원본 화상이 우선 이진 화상으로 변환되고, 그 후 변환된 이진 화상은 광학 문자 인식을 위해 처리된다. 이러한 전환은 OCR 처리 및 사후(post)-OCR 처리의 품질에 악영향을 미칠 수 있다. 따라서, 이하에 설명되는 기술들의 일부는, 사후-OCR 처리에서 사용하기 위한 그레이 스케일 또는 칼라 정보를 획득하기 위해 원본 화상에 액세스하고 이에 따라 처리 정확성을 향상시킨다.
본 명세서에서 설명된 기술들은 일반적인 스타일로 인쇄되거나 기록된 방대한 문서들로부터의 대형 샘플들내에 수록된 화상 정보를 이용하여 문자들을 식별할 때에 강화된 정확성을 제공하는데 사용될 수 있다. 유사 패턴 및 비유사 패턴에 관한 추가적인 화상 정보를 추출하기 위해 형상 클러스터링 기술이 대형 샘플을 처리하는데 적용된다. 형상 클러스터링 기술에 적용하는데 적합한 방대한 문서의 예시들에는, 신문, 저널 및 잡지와 같은 정기 인쇄간행물의 콜렉션, 유사한 필체를 갖는 동일인 또는 서로다른 사람에 의한 수기 문서의 콜렉션, 책 등을 포함한다.
도 2는 사후-OCR 처리에서 형상 클러스터링을 적용하는 예시적인 방법을 도시한다. 문서의 원본 디지탈 화상이 제일 먼저 원본 디지탈 화상내의 클립 화상을 둘러싸는 개별적인 테두리 박스를 포함하는 OCR 출력을 산출하도록 OCR 엔진에 의 해 처리된다. OCR 엔진은 또한 OCR 문자 코드들을 테두리 박스들 각각에 할당한다. 이러한 OCR 출력의 사후-OCR 처리는 아래와 같이 수행될 수 있다. OCR 출력내의 테두리 박스에 의해 정의된 클립 화상들은 클립 화상들의 서로다른 클러스터들로 분류된다(단계 210). 하나의 클러스터내로 분류된 클립 화상들은 하나 이상의 공통 OCR 문자 코드가 할당되고, OCR 엔진에 의해 동일 또는 유사한 크기로서 인식되며, 형상 거리(shape distance)와 같은 적절한 형상 계측에 기초하여 동일 또는 유사한 형상을 갖는 것으로 사후-OCR 처리에 의해 판정된다. 예를 들어, 이와 같은 클러스터는 특정한 클립 화상 크기이거나 또는 이와 근사한 크기를 갖는 글자 "C"에 대한 동일 또는 유사한 클립 화상들을 포함할 수 있다. 따라서, 위 분류 프로세스는 적절한 형상 계측을 이용하여 하나 이상의 공통 OCR 문자 코드가 할당되고 동일 또는 유사한 크기를 갖는 서로다른 클립 화상들의 형상들을 비교한다. 이와 같은 두 개의 클립 화상들 사이의 형상 거리는 예컨대, 형상 유사성 정도를 판정하도록 계산처리될 수 있다. 이러한 형상 비교는 클립 화상들을 클러스터들로 분리시키는데, 여기서, 각각의 클러스터들은 형상 계측에 의해 측정된 동일 또는 유사한 형상의 클립 화상들, 각각의 테두리 박스의 크기(예컨대, 1차원 테두리 박스를 따르는 픽셀의 수)에 의해 측정된 동일 또는 유사한 크기의 클립 화상들, 하나 이상의 공통 OCR 문자 코드가 할당된 클립 화상들을 갖는다. 각각의 클러스터내의 클립 화상들을 표시하는 클러스터 화상이 생성될 수 있다(단계 220). 클러스터 화상은 각각의 클러스터의 클립 화상들의 대표 화상일 수 있으며, 여러가지 방법을 통해 생성될 수 있다. 예를 들어, 클러스터내의 클립 화상들은 클러스터 화상으로서 평균 화상 을 산출하기 위해 평균화될 수 있다. 다른 예로서, 클러스터내의 클립 화상들 중 하나가 클러스터 화상으로서 선택될 수 있다. 각각의 클러스터마다 클러스터 화상이 생성된 후, 각각의 클러스터는 다양한 사후-OCR 처리 동작에서 클러스터 화상 및 클러스터에 할당된 하나 이상의 OCR 문자 코드에 의해 표시될 수 있다.
주목할 것은, 클러스터들이 형성된 후에, 일부 후속 처리 동작들이 클러스터 레벨로 수행될 수 있다는 것이다. 클러스터에 대한 하나 이상의 OCR 문자 코드의 할당을 검증하고, OCR 출력내에서 클러스터에 대해 잘못 할당된 하나 이상의 OCR 문자 코드를 검출하기 위해, 각각의 클러스터 화상은 형상 유사성을 기초로 다른 클러스터 화상들과 비교된다(단계 230). 서로다른 클러스터 화상들을 비교할 때에 에러가 검출되지 않으면, OCR 엔진에 의해 클러스터에 대해 할당된 하나 이상의 OCR 문자 코드는 정확한 것으로 검증받는다. 만약 에러가 검출되면, 하나 이상의 새로운 OCR 문자 코드가 생성되어 클러스터에 할당된다(단계 240). 서로다른 클러스터들간의 형상 유사성을 기초로 각각의 클러스터내에서 하나 이상의 OCR 문자 코드의 할당을 검사하고, 잘못된 할당을 정정하는 이러한 프로세스는 부분적으로 각각의 할당의 신뢰성 레벨을 가리키는 클러스터 화상에 대한 각각의 할당에 관한 신뢰도 점수를 판정하는데 사용될 수 있다. 하나 이상의 새로운 OCR 문자 코드가 생성된 후, 수정된 OCR 출력을 산출하기 위해, OCR 출력내의 클러스터의 클립 화상들의 각각의 발생(occurrence)에서 하나 이상의 새로운 OCR 문자 코드를 이용하여 잘못 할당된 하나 이상의 OCR 문자 코드를 교체한다(단계 250). OCR 에러의 이러한 정정은 클러스터 레벨로 수행되고, 해당 클러스터내의 모든 화상들에 적용된다. 이 러한 클러스터 레벨의 처리는 한번에 원본 문서내의 하나의 화상 인스턴스 또는 모양에 대한 에러 정정을 수행하는 기술에 비해 보다 효율적일 수 있다. 적어도 이러한 이유로 인해, 이러한 클러스터 레벨 처리는 OCR 처리시 효율적으로 방대한 문서들을 처리한다는 점에서 유리할 수 있다.
형상 유사성을 기초로 한 클러스터 화상들의 비교를 통해 OCR 엔진에 의한 클러스터에 대한 하나 이상의 OCR 문자 코드의 할당에서 에러가 발견되지 않은 경우에는, 해당 비교는 OCR 엔진에 의한 할당을 검증받게 된다. 이러한 검증 이후에, 클러스터에 대한 하나 이상의 OCR 문자 코드의 할당의 신뢰도 레벨이 상승될 수 있기 때문에, 이러한 검증은 가치가 있을 수 있다. 따라서, OCR 엔진에 의해 초기에 생성된 하나 이상의 OCR 문자 코드의 할당에 대해 어떠한 정정도 취해지지 않을지라도, 클러스터 화상들의 비교는 사후-OCR 처리에서의 OCR 품질을 향상시킬 수 있다. 신뢰도 점수는 또한 다른 인자들, 예컨대, 클러스터에 대한 하나 이상의 OCR 문자 코드의 할당이 수동 식별 및 클러스터내의 클립 화상들의 갯수에 의해 검증받았는지의 여부에 의해 영향을 받을 수 있다. 본 명세서에서, 수동이란 사람과 같은 독립적 개체의 수고를 필요로 하는 것을 의미한다. 수동 식별에 의한 검증은 높은 신뢰도 점수를 클러스터에 할당하는데 사용될 수 있다. 통계적으로, 클러스터내의 많은 수의 클립 화상들은 보다 작은 수의 클립 화상들을 갖는 클러스터에 비해 클러스터에 대한 높은 신뢰도 레벨을 시사해준다.
도 3은 수정된 OCR 출력을 산출하기 위해 OCR 출력에 형상 클러스터링을 적용하는 예시적인 사후-OCR 처리 엔진(310)을 도시하는 블럭도이다. OCR 엔진(300) 은 문서(301)의 디지탈 화상을 처리하고 OCR 출력(302)을 산출하는 OCR 소프트웨어 모듈이다. 사후-OCR 처리 엔진(310)은 임의의 OCR 에러를 정정하기 위해 OCR 출력(302)을 추가로 처리하고 이로써 향상된 OCR 정확성을 갖는 수정된 OCR 출력을 산출하는 소프트웨어 모듈이다. 이 예시에서, 사후-OCR 처리 엔진(310)은 클러스터 생성 소프트웨어(320), 클러스터 처리 소프트웨어(330) 및 출력 처리 소프트웨어(340)를 포함한다. 클러스터 생성 소프트웨어(320)는 OCR 출력(302)을 수신하고, 클립 화상들의 형상 유사성을 기초로 OCR 출력(302)내의 개별적인 클립 화상들을 클러스터(322)내로 분류시키도록 동작한다. 클러스터 처리 소프트웨어(330)는 클러스터(322)를 처리하고 클러스터(322)를 특성화 또는 수정하여 수정된 클러스터(332)를 산출시킬 수 있으며, 여기서는 일부 클러스터들이 추가로 특성화되고 OCR 출력(302)내의 OCR 에러의 일부가 클러스터링 처리로부터 획득된 특성을 기초로 정정된다. 클러스터 처리 소프트웨어(330)는 각각의 클러스터내의 클립 화상들로부터 형상 정보를 추출하기 위해 형상 클러스터링을 적용시킬 수 있다. 추출된 형상 정보는 서로다른 클러스터들에 대한 클러스터 화상의 형상들을 비교하고, 서로다른 클러스터들의 형상 차이, 특히 서로 다르게 할당된 OCR 문자 코드를 갖는 클러스터들간의 형상 차이를 획득하는데 사용될 수 있다. 이러한 형상 비교는 이후에 OCR 출력(302)내에서 할당된 OCR 문자 코드에 에러가 존재하는지를 판정하는데 사용될 수 있다. 출력 처리 소프트웨어(340)는 수정된 클러스터(332)를 OCR 출력(302)에 적용시키고 수정된 OCR 출력(350)을 생성할 때에 OCR 출력(302)내에서 검출된 에러를 정정할 수 있다. 에러는 클러스터에 대한 하나 이상의 OCR 문자 코 드의 부정확한 할당일 수 있다. 클러스터 처리 소프트웨어(330)는 또한 수정된 클러스터(332)내의 클러스터 정보를 이용하여 단어에서의 부정확한 클립 화상의 분할을 정정할 수 있다. 클립 화상의 부정확한 분할은 도 10, 도 11a, 및 도 11b를 참조하여 후술된다.
도 3에서의 사후-OCR 시스템 및 그 변형이 통신 네트워크내의 하나 이상의 컴퓨터 서버에서 구현될 수 있다. 하나 이상의 컴퓨터 서버는 OCR 엔진(300) 및 사후-OCR 처리 엔진(310)을 제공하는데 사용될 수 있다. 네트워크내의 클라이언트 컴퓨터는 문서 화상(301)의 OCR 출력을 요청하기 위해 문서 화상(301)을 하나 이상의 컴퓨터 서버에 보낼 수 있다. OCR 엔진(300) 및 사후-OCR 처리 엔진(310)은 클라이언트의 문서 화상을 처리하고 수정된 OCR 출력(350)을 산출하며, 수정된 OCR 출력(350)은 통신 네트워크를 통해 클라이언트 컴퓨터에 보내질 수 있다.
도 3에서 도시된 바와 같이, 일부 구현예에서, 클러스터 생성 소프트웨어(320)는 클러스터(322)를 생성하기 위해 문서의 원본 화상에 직접 액세스할 수 있고, OCR 출력(302)내에서 입수가능하지 않을 수 있는 문서의 원본 화상의 그레이 스케일 또는 칼라 데이터를 회수할 수 있다. 그러므로, 이 예시에서, 원본 화상의 그레이 스케일 또는 칼라 데이터는 클러스터에 대한 OCR 문자 코드 할당을 검증 및 수정하고 사후-OCR 처리 엔진(310)에서의 처리 정확성을 향상시키는데 사용된다.
다른 구현예에서, 클러스터 처리 소프트웨어(330)는 의심스럽게 할당된 하나 이상의 OCR 문자 코드를 갖는 클러스터를 선택하고 선택된 클러스터에 대한 화상의 수동 식별을 획득할 수 있다. 이러한 수동 식별은 선택된 클러스터에 대한 화상과 의 하나 이상의 문자의 수동 할당을 생성한다. 본 명세서는 하나 이상의 OCR 문자 코드가 의심스럽게 할당되었음을 일부 구현예가 판정하는 방법을 후술한다.
클러스터 처리 소프트웨어(330)의 출력은 수정된 클러스터(332)이다. 출력 처리 소프트웨어(340)는 수정된 OCR 출력(350)을 산출시키기 위해 수정된 클러스터(332)에 대한 OCR 문자 코드를 이용하여 OCR 출력(302)내의 OCR 문자 코드를 업데이트한다. 클러스터 처리 소프트웨어(330)에서의 처리와 마찬가지로, 출력 처리 소프트웨어(340)는 OCR 출력(302)내의 OCR 문자 코드를 업데이트할 때에 클러스터 레벨에서 동작한다. 출력 처리 소프트웨어(340)는 또한 재할당, 즉 많은 수의 클립 화상들을 갖는 클러스터, 수동 식별을 통해 획득한 문자 코드를 갖는 클러스터와 같이, 높은 신뢰도 점수를 갖는 선택된 클러스터로부터의 매칭 화상들을 기초로 관련 클러스터 화상을 두 개 이상의 새로운 클러스터 화상들에 재할당하고 새로운 클러스터 화상들에 OCR 문자 코드를 할당을 위해 하나 이상의 OCR 문자 코드의 의심스러운 할당을 갖는 의심 클러스터를 포함하는 단어를 선택할 수 있다.
도 4는 도 3에서의 클러스터 생성 엔진(320)에 의해 수행될 수 있는 클러스터 생성을 위한 예시적인 프로세스를 도시하는 흐름도이다. 이 프로세스에서, 클러스터 생성 소프트웨어(320)는 OCR 엔진(300)에 의해 할당된 OCR 문자 코드에 더하여 클립 화상들의 형상과 크기에 관한 OCR 출력(302)내의 정보를 이용하여 클립 화상들을 클러스터, 버킷(bucket) 및 클래스(class)로 분류한다. 하나의 클러스터내로 분류된 클립 화상들은 OCR 엔진(300)에 의해 하나 이상의 공통 OCR 문자 코드가 할당되었고 대체로 각각의 테두리 박스의 크기를 기초로 특정 클립 화상 크기를 갖 는 것으로서 OCR 엔진(300)에 의해 인식되었다. 특히, 이 프로세스에서, 하나의 클러스터내의 클립 화상들은 서로 동일 또는 유사한 형상이 되도록 형상 계측을 기초로 선택된다. 일부 구현예에서, 폰트 타입 정보는 클러스터 생성 소프트웨어(320)에 의해 클러스터를 생성할 때에 명시적으로 사용되지 않는다. 하지만, 클러스터를 생성할 때에 사용되는 형상 비교 프로세스는 동일 또는 유사한 폰트의 문자 및 동일 또는 유사한 폰트 크기의 문자에 대한 클립 화상들을 동일한 클러스터내에 배치시키는 경향이 있다. 예를 들어, 타임 로마체(Time Roman) 폰트의 12 포인트 폰트 크기를 갖는 글자 "g"에 대한 클립 화상들이 하나의 클러스터내로 분류되는 반면에 타임 로마체 폰트의 10 포인트 폰트 크기를 갖는 글자 "g"에 대한 클립 화상들은 다른 클러스터내로 분류될 수 있다. 클러스터는 버킷으로 그룹화될 수 있으며, 각각의 버킷은 하나 이상의 공통 OCR 문자 코드가 할당된 동일 및 유사한 크기의 클러스터들을 갖는다. 하나 이상의 공통 OCR 문자 코드가 할당된 모든 버킷들은 하나 이상의 공통 OCR 문자 코드에 의해 식별된 클러스터의 클래스로서 함께 그룹화될 수 있다. 예를 들어, 서로 다른 폰트 및 폰트 크기를 갖는 글자 "c"에 대한 클립 화상들의 모든 클러스터들은 "c" 클래스내에 위치한다. 따라서, 스물 여섯개의 알파벳 영문글자에 대한 클립 화상들은 스물 여섯개의 서로다른 클래스들내로 분류된다.
도 4에서의 예시적인 클러스터 생성에서, 클러스터 생성 소프트웨어(320)는 먼저 클립 화상들을 클래스들로 분할하고, 여기서 하나의 클래스내의 클립 화상들에는 화상들 자신의 형상 및 크기에 상관없이 하나 이상의 공통 OCR 문자 코드가 할당된다(단계 410). 각각의 클래스에서, 클러스터 생성 소프트웨어(320)는 클립 화상들을 버킷들로 분할하며, 여기서 하나의 버킷내의 클립 화상들은 크기가 동일 또는 유사하지만 서로다른 폰트 타입과 같이 서로 다른 형상일 수 있다(단계 420). 이것은 모든 클래스들에서 행해진다. 각각의 버킷내에서, 클러스터 생성 소프트웨어(320)는 클립 화상들을 클러스터들로 분할하며, 여기서 하나의 클러스터내의 클립 화상들은 서로로부터의 각자의 형상 거리에 기초하여 동일 또는 유사한 형상, 예컨대, 폰트 타입과 크기가 동일 또는 유사한 문자를 갖는다(단계 430).
클립 화상들의 클러스터들로의 분류 이후에, 클러스터 생성 소프트웨어(320)는 클러스터의 형상을 표시하는 각각의 클러스터마다의 클러스터 화상을 생성한다. 클러스터 화상은 클러스터내의 클립 화상들의 대표 화상이며, 이것은 예컨대 각 클러스터내의 클립 화상들을 평균화하거나 또는 클립 화상들로부터 특정 클립 화상을 선택함으로써 생성될 수 있다(단계 440). 그 결과, 각각의 클러스터가 클러스터 화상과 클러스터에 할당된 각각의 하나 이상의 OCR 문자 코드에 의해 표시될 수 있다(단계 450). 사후-OCR 처리 엔진(310)에 의한 후속 처리에서, 다양한 사후-OCR 처리 동작이 개개의 클립 화상들을 처리하는 것 없이 클러스터 레벨로 수행될 수 있다. 다수의 평균화 기술들이 클러스터 화상을 획득하기 위해 적용될 수 있다. 도 5는 자신들의 중심점에서 정렬된 클립 화상들을 평균화함으로써 클러스터 화상을 계산처리하기 위한 하나의 예시적인 프로세스를 도시한다. 각각의 클립 화상에 대한 테두리 박스내의 화상 정보는 각각의 클립 화상의 중심점을 계산하는데 사용될 수 있다(단계 510). 클러스터내의 서로다른 클립 화상들에 대한 테두리 박스들이 각자의 계산된 중심점들에 대하여 정렬된다(단계 520). 클러스터에 대해 정렬된 클립 화상들의 픽셀값은 평균화되어 클러스터 화상으로서의 평균 화상을 생성한다(단계 530). 각각의 픽셀값은 클러스터 생성 동안에 클러스터 생성 소프트웨어(320)에 의한 서로다른 클립 화상들의 형상을 비교할 때에 어떤 클립 화상 픽셀값이 초기에 사용되었었는지에 따라 이진값, 그레이 스케일값 또는 칼라값일 수 있다. 클립 화상들의 그레이 스케일 또는 칼라 픽셀값은 클러스터를 생성하는데 사용될 수 있고, 이진 픽셀값으로부터 획득된 클러스터 화상으로부터 입수가능하지 않을 수 있는 정교하고 세밀한 특징을 갖는 클러스터 화상을 계산하는데 사용될 수 있다. OCR 엔진(300)이 OCR 출력(302)에서 오직 이진 화상 정보만을 제공하는 경우, 사후-OCR 처리 엔진(310)은 그레이 스케일 또는 칼라 정보를 획득하기 위해 문서(301)의 원본 화상에 직접 액세스할 수 있다. OCR 출력(302)내의 각각의 개별적인 클립 화상들에 대한 테두리 박스의 위치 좌표가 알려지고, 문서(301)의 원본 화상으로부터 대응하는 그레이 스케일 또는 칼라 픽셀 정보를 획득하기 위해 테두리 박스가 알려진 위치 좌표를 기초로 문서(301)의 원본 화상에 적용될 수 있다. 그 후, 각각의 클립 화상 마다 획득된 그레이 스케일 또는 칼라 정보는 클러스터(320)를 생성하기 위해 클립 화상들의 형상을 비교하고, 대응하는 클러스터 화상으로서 각각의 클러스터내의 클립 화상들의 평균 화상들을 계산하는데 사용된다.
상술한 바와 같이, 클러스터의 기본 단위로서의 클립 화상은 하나 이상의 OCR 문자 코드를 표시하는 화상일 수 있다. 그러므로, 두 개 이상의 OCR 문자 코드가 단일 클립 화상에 할당될 수 있다. 하나 이상의 OCR 문자 코드를 각각의 단일 테두리 박스와 연계된 클립 화상에 대해 할당하기 위해, 많은 OCR 엔진들이 기본 단위로서 단일 테두리 박스를 사용하도록 설계된다. 본 명세서에서 클러스터링 기술을 이행시에, 클러스터의 기본 단위는 OCR 엔진에 의해 산출된 단일 테두리 박스와 연계된 클립 화상, 및 OCR 엔진에 의해 산출된 두 개 이상의 인접하는 테두리 박스와 연계된 클립 화상일 수 있다. 후자의 경우, 인접하는 클립 화상은 수신된 OCR 출력내의 두 개 이상의 인접하는 테두리 박스들과 각각 연계된 두 개 이상의 클립 화상들의 조합인 "연합" 클립 화상이다. 따라서, 클러스터 생성 소프트웨어(320)는 수신된 OCR 출력내의 연합 클립 화상들을 형상과 크기가 동일 또는 유사하고 OCR 엔진에 의해 각각의 인접하는 테두리 박스들에 할당된 동일한 문자들과 연계된 연합 클립 화상들의 연합 클러스터들로 분류하도록 설계될 수 있다. OCR 엔진에 의해 산출된 두 개 이상의 인접하는 테두리 박스들과 연계된 연합 클립 화상이 클러스터를 형성하기 위한 기본 단위로서 사용되는 경우, 도 3에서의 클러스터 생성 소프트웨어(320)는 본질적으로 클립 화상의 크기를 판정할 때에 두 개 이상의 인접하는 테두리 박스들 각각을 연합 단일 테두리 박스로서 취급한다. 이와 같은 연합 테두리 박스는 OCR 엔진에 의해 산출되지 않고, 이것은 현재의 사후-OCR 처리 엔진(310)내의 클러스터 생성 소프트웨어(320)의 산출물이며 클러스터 생성 소프트웨어(320)에 의해 생성된다.
본 명세서에서 설명한 다양한 처리 동작들에서, 두 개 이상의 인접하는 OCR-생성 테두리 박스를 갖는 이와 같은 연합 테두리 박스의 사용 또는 취급은, 테두리 박스와 연계된 클립 화상들의 형상 거리의 계산, 테두리 박스의 중심점, 서로다른 테두리 박스들의 정렬, 테두리 박스와 연계된 클립 화상들의 평균화, 테두리 박스내의 클립 화상의 수동 식별 및 보간처리의 획득을 포함하여, 단일 OCR-생성 테두리 박스의 사용 또는 취급과 동일 또는 유사할 수 있다. 따라서, 본 명세서에서의 테두리 박스는 OCR 엔진에 의해 생성된 단일 테두리 박스 또는 OCR 엔진에 의해 생성된 두 개 이상의 인접하는 테두리 박스를 결합시킨 테두리 박스일 수 있다. 따라서, OCR 엔진에 의해 생성된 두 개 이상의 인접하는 테두리 박스를 결합시킨 연합 테두리 박스와 연계된 연합 클립 화상은 OCR 엔진에 의해 생성된 두 개 이상의 인접하는 테두리 박스와 각각 연계된 개개의 클립 화상들의 조합일 수 있고, 클러스터 처리에서 OCR 엔진에 의해 생성된 단일 테두리 박스와 관련된 클립 화상과 동일한 방법으로 취급될 수 있다.
주목할 것은, OCR 엔진에 의해 생성된 두 개 이상의 인접하는 테두리 박스를 각각 결합시킨 테두리 박스와 연계된 연합 클립 화상들은 본 명세서에서 설명한 클러스터링 처리에서 클러스터링될 수 있다는 것이다. 따라서, 각각의 클러스터와 서로다른 문자의 모든 클러스터들과의 비교시에, 이 비교는 각각의 클러스터 부재가 두 개 이상의 OCR-생성 테두리 박스를 결합시킨 테두리 박스를 가지며 이에 따라 복수의 문자들이 할당되는 클러스터들을 포함한다. 그 결과, 클러스터링 처리에서의 비교는 다른 클러스터들과의 다수의 불일치를 가져올 수 있다.
예를 들어, 문자 "r"에 대한 OCR 문자 코드가 할당된 "r" 클러스터는 문자 "r"에 대한 클립 화상 샘플들을 포함한다. "r" 클러스터내의 이러한 클립 화상 샘플들 중 일부, 예컨대, "r" 클립 화상 및 그 다음의 "n" 클립 화상은 또한 "rn"에 대한 클립 화상들의 일부로서 "rn"의 OCR 문자 합자가 할당된 2-문자 클러스터내에 포함될 수 있다. "rn" 클러스터에 대한 클러스터 화상은 "r" 및 "n" 클러스터들을 포함하는 다른 수 많은 클러스터들보다 "m" 클러스터에 형상 측면에서 보다 가까울 수 있다. 상충하는 증명이 존재할 수 있지만, 각각의 클러스터가 의심 클러스터, 수용가능 클러스터, 또는 섬(island) 클러스터인지를 판정하기 위한 전반적인 프로세스가 마찬가지로 존속한다. 위의 n=2의 예시는 n-그램(gram) 클러스터까지 확장하며, n이 증가할 수록 계산 요건은 증가하고 이로써 정확성은 감소될 수 있다.
클러스터 처리 소프트웨어(330)는 각각의 클러스터(322)를 평가하여 OCR 엔진(300)에 의해 각각의 클러스터에 원래 할당된 하나 이상의 OCR 문자 코드가 수정된 OCR 출력(350)내에서 사용하기에 충분히 신뢰적인지를 판정한다. OCR 엔진(300)에 의해 클러스터에 원래 할당된 하나 이상의 OCR 문자 코드가 비신뢰적인 것으로판정되면, 클러스터 화상을 표시하는데 보다 신뢰적인 하나 이상의 OCR 문자 코드를 획득하기 위해 클러스터 처리 소프트웨어(330)는 해당 클러스터에 대하여 추가적인 처리를 수행할 수 있다. 이러한 처리는 수정된 클러스터(332)를 산출하기 위해 클러스터(322) 중 일부를 수정한다. 그 후, 수정된 클러스터(332)에 대해 할당된 OCR 문자 코드는 수정된 OCR 출력(350)을 산출하는데 사용된다.
특정 클러스터에 할당된 하나 이상의 OCR 문자 코드의 신뢰성 레벨은 또한 신뢰도 레벨로서도 불리워지며, 이것은 신뢰도 점수에 의해 수치적으로 표시될 수 있다. 문턱(threshold) 신뢰도 점수를 넘는 신뢰도 점수를 갖는 수용가능 클러스터 및 문턱 신뢰도 점수보다 아래의 신뢰도 점수를 갖는 의심 클러스터로서 식별하기 위해 문턱 신뢰도 점수가 클러스터 처리 소프트웨어(330)에 대해 설정될 수 있다. 복수의 인자 또는 파라미터가 개별적으로 또는 어떠한 조합을 가지면서 신뢰도 점수를 결정하는데 사용될 수 있다. 하나의 관련 인자는 클러스터내의 클립 화상들의 갯수이다. 통계적으로, 클러스터내의 많은 수의 클립 화상들은 보다 작은 수의 클립 화상들을 갖는 클러스터에 비해 클러스터에 대한 높은 신뢰도 레벨을 시사해준다. 다른 관련 인자는 하나 이상의 특정한 OCR 문자 코드의 신뢰성을 반영할 수 있는 클립 화상 또는 클러스터 화상에 대한 하나 이상의 OCR 문자 코드를 획득하는 방법이다. 예를 들어, 클러스터 화상은 사람에 의해 수동적으로 식별될 수 있으며, 수동 식별에 기초하여 생성된 대응하는 하나 이상의 OCR 문자 코드는 매우 신뢰적인 할당으로서 간주될 수 있고 이에 따라 높은 신뢰도 점수가 할당될 수 있다.
후술하는 예시들은 신뢰도 점수를 판정하고 이러한 점수에 기초하여 클러스터를 등급화하기 위해, 클러스터내의 클립 화상들의 갯수를 이용하고 클러스터와 다른 클러스터간의 형상 유사성을 이용하는 방법에 관하여 상세사항을 제공한다.
클러스터 처리 소프트웨어(330)는 OCR 엔진(300)에 의해 할당된 OCR 문자 코드내의 에러를 검출 및 정정하고 OCR 엔진(300)에 의해 할당된 OCR 문자 코드를 검증하기 위해 클러스터 생성 소프트웨어(320)에 의해 생성된 서로다른 클러스터들의 형상 정보를 서로 연관시킬 수 있다. 이러한 프로세스 동안에, 클러스터 처리 소프트웨어(330)는 수정된 클러스터(332)를 산출하기 위해, 보다 구체적으로는, 각각의 클러스터 화상에 대한 문자 코드 할당을 검증(및 필요한 경우 정정) 함으로써 클러스터과 문자 코드의 연계성(association)을 산출하기 위해, OCR 출력(302)내의 에 러를 정정함으로써 일부 클러스터들을 수정할 수 있다. 일부 구현예에서, 클러스터 처리 소프트웨어(330)는 두 개의 클러스터들의 클러스터 화상들간의 형상 차이의 측정치로서 그리고 클러스터의 신뢰도 점수를 판정하기 위한 하나의 인자로서의 형상 거리를 계산하기 위해 형상 계측을 적용시킨다. 형상들의 비교를 위한 형상 계측의 이러한 사용은 또한 클러스터가 먼저 클러스터 생성 소프트웨어(320)에 의해 생성된 때에 클립 화상들의 비교시에 사용될 수 있다. 따라서, 클러스터 처리 소프트웨어(330)에서의 두 개의 클러스터 화상들간의 형상 거리를 계산하기 위한 이하의 예시적인 기술들은 클러스터 생성 소프트웨어(320)에서의 클립 화상들간의 형상 거리를 계산하는데 사용될 수 있다.
복수의 형상 계측이 클러스터 처리 소프트웨어(330)에서 사용될 수 있다. 예를 들어, 이진 화상인 경우, 하우스도르프 거리(Hausdorff distance)에 기초된 다양한 형상 거리가 사용될 수 있다. 클러스터 생성 소프트웨어(320)에서의 클러스터 화상을 획득하는 것과 마찬가지로, 형상 거리를 계산할 때에 클립 화상들에 대한 픽셀값의 칼라 또는 그레이 스케일 표시를 사용함으로써 형상 비교에서의 보다 높은 정확성이 취득될 수 있다. OCR 출력(302)이 클립 화상들에 대한 이진 화상 정보만을 제공하는 경우, 그레이 스케일 또는 칼라 정보가 OCR 엔진(300)에 의해 처리된 문서의 원본 화상(301)으로부터 사후-OCR 처리 엔진(310)에 의해 직접 획득될 수 있다. 클러스터 생성 소프트웨어(320)가 클러스터(322)에 대한 클러스터 화상들을 계산할 때에 원본 화상(301)으로부터 그레이 스케일 또는 칼라 정보를 이미 획득한 경우, 클러스터 처리 소프트웨어(330)는 형상 거리를 계산하는데에 동일한 그 레이 스케일 또는 칼라 정보를 이용할 수 있다. 그렇지 않은 경우, 클러스터 처리 소프트웨어(330)는 그레이 스케일 또는 칼라 정보 획득을 위해 원본 화상(301)에 액세스할 수 있다.
두 개의 클러스터 화상들 I 및 J사이의 형상 거리를 판정하기 위해, 클러스터 화상 I 및 J는 자신의 테두리 박스의 중심점에 기초하여 정렬된다. 일부 구현예에서, 정렬된 클러스터 화상 I 및 J사이의 형상 거리는 다음과 같이 계산될 수 있다:
Figure 112009021217556-pct00001
여기서 n은 1보다 큰 양의 정수이고, I(P)와 J(P)는 두 개의 클러스터 화상들 I 및 J 각자의 테두리 박스의 정렬시에 이 양 화상들에 공통되는 픽셀 위치 P에서의 양쪽의 화상들의 그레이 스케일 또는 칼라 픽셀값이며, 모든 픽셀 위치들에 걸쳐 합계가 취해진다.
해당 클러스터와 다른 클러스터간의 형상 거리에 기초하여 각각의 클러스터에 할당된 하나 이상의 OCR 문자 코드의 신뢰도 레벨을 평가하기 위해 클러스터 처리 소프트웨어(330)는 상기의 형상 계측 또는 다른 형상 계측을 이용할 수 있다. 예를 들어, 문턱 형상 거리보다 큰 형상 거리만큼 가장 가까운 클러스터로부터 떨어져 있는 "섬" 클러스터를 식별하기 위해 문턱 형상 거리가 선택될 수 있다. 클러스터가 모든 버킷 및 클래스내의 다른 모든 클러스터들로부터 너무 멀리 떨어져 있는 경우, 해당 클러스터는 클러스터 화상, 특히 서로다른 OCR 문자 코드가 할당된 클러스터에 대해 할당된 하나 이상의 OCR 문자 코드의 신뢰도 레벨을 승인 또는 비승인하기 위해 오로지 형상 거리만을 기초하여 더 이상 다른 클러스터들과 알맞게 비교될 수 없다. 따라서, 클러스터 처리 소프트웨어(330)는 신뢰도 레벨이 수용가능하지 않고 추가적인 처리 또는 검증을 거치게 되는 의심 클러스터로서 섬 클러스터를 식별할 수 있다. 예를 들어, 클러스터 처리 소프트웨어(330)는 사람에 의한 수동 식별을 위해 섬 클러스터를 선택할 수 있고, 이에 따라 높은 신뢰도 점수를 갖는 수용가능한 클러스터로 의심 클러스터를 전환시킬 수 있다.
클러스터의 신뢰도 레벨을 측정하기 위한 다른 파라미터는 클러스터내의 클립 화상들의 갯수이다. 클러스터가 많은 수의 클립 화상들을 갖는다는 사실은 클러스터에 대한 높은 신뢰도 레벨을 직접 시사해준다. 이러한 이유로, 클러스터 처리 소프트웨어(330)는 클러스터들을 평가하기 위해 클러스터내의 클립 화상들의 갯수에 대한 문턱값을 이용할 수 있다. 클러스터내의 클립 화상들의 갯수가 문턱값보다 작은 경우, 해당 클러스터는 의심 클러스터로서 라벨표시되고, 추가적인 처리 및 검증을 받게 된다. 클러스터 처리 소프트웨어(330)에서의 추가적인 처리 및 검증의 하나의 구현예는 사람에 의한 수동 식별이다. 수동 식별의 결과는 의심 클러스터를 높은 신뢰도 점수를 갖는 수용가능 클러스터로 전환시키는데 사용될 수 있다.
의심 클러스터가 아닌 클러스터의 경우, 클러스터 처리 소프트웨어(330)는 이와 같은 클러스터들을 수용가능 클러스터들로서 식별할 수 있고, 수정된 OCR 출력(350)을 산출하는데 이들을 이용할 수 있다. 의심 클러스터에 대한 추가적인 처리 또는 검증이 이용가능하지 않는 경우에 상기 의심 클러스터에 대한 하나 이상의 OCR 문자 코드의 할당은 수정된 OCR 출력(350)내에 포함될 수 있다. 의심 클러스터에 대한 추가적인 처리 또는 검증이 이용가능한 경우에 클러스터 처리 소프트웨어(330)는 수정된 OCR 출력(350)내에 의심 클러스터를 임시적으로 포함할 수 있고 의심 클러스터를 업데이트할 수 있다.
각각의 자신들의 클래스들내에서 가장 많은 갯수의 클립 화상들을 갖는 클러스터들은 마스터 클러스터들로서 식별될 수 있는데, 그 이유는 이러한 마스터 클러스터는 동일한 클래스내에서 비-마스터 클러스터보다 수용가능한 클러스터일 가능성이 높은 경향이 있기 때문이다. 하지만, 마스터 클러스터는 다양한 환경하에서는 의심 클러스터일 수 있다. 예를 들어, 마스터 클러스터는 섬 클러스터일 수 있거나 또는 클러스터 처리 소프트웨어(330)에서 설정된 문턱값보다 적은 갯수의 클립 화상들을 가질 수 있다.
클러스터 처리 소프트웨어(330)는 클러스터 생성 소프트웨어(320)에 의해 출력되는 클러스터(322)를 등급화하고 처리하기 위해 클러스터내의 클립 화상들의 갯수에 대한 문턱값과 문턱 형상 거리를 적용할 수 있다. 하나의 구현예에서, 모든 클래스내의 모든 클러스터들은 클러스터내의 클립 화상들 또는 인스턴스들의 갯수에 기초하여 내림순으로 등급화되고 이러한 순서로 한번에 하나의 클러스터를 처리한다. 각각의 C 클러스터의 경우, 만약 C 클러스터가 자신의 클래스내에서 마스터 클러스터이면, 클러스터 처리 소프트웨어(330)는 상기 처리를 건너뛸 수 있고, 다음으로 작은 클러스터를 처리하도록 진행한다. 일부 구현예에서, 만약 C 클러스터 가 마스터 클러스터가 아닌 경우, 클러스터 처리 소프트웨어(330)는 형상 계측, 예 컨대, 형상 거리의 측면에서 가장 가까운 C' 클러스터에 대한 C 클러스터의 거리를 판정한다. C' 클러스터는 C 클러스터보다 큰 클러스터이며 의심 클러스터로서 표시되지 않는다. C' 클러스터는 마스터 클러스터일 수 있거나, 또는 C 클러스터가 상기와 같이 정의된 시퀀스로 처리되기 전에 처리되는 클러스터일 수 있다. 만약 C' 클러스터가 C 클러스터와는 다른 연계된 OCR 문자 코드를 갖는 것으로 발견되면, 클러스터 처리 소프트웨어(330)는 OCR 엔진(300)이 C 클러스터에 대한 할당에서 에러를 유발시킨 것으로 판정한다. 따라서, 클러스터 처리 소프트웨어(330)는 C 클러스터에 할당된 OCR 문자 코드를 변경시킬 수 있고, C' 클러스터와 연계된 다른 OCR 문자 코드를 C 클러스터에 할당할 수 있다. 만약 C' 클러스터가 C 클러스터와 동일한 연계된 OCR 문자 코드를 갖는 것으로 발견되면, 클러스터 처리 소프트웨어(330)는 OCR 엔진(300)이 C 클러스터에 대해 정확한 할당을 행한 것으로 판정한다. 현재 고려하고 있는 C 클러스터에 가장 가까운 C' 클러스터가 의심 클러스터로서 표시되는 경우를 다루기 위해 위 프로세스는 클러스터 처리 소프트웨어(330)에 의해 반복될 수 있다. 이것이 발생하면, 동일한 클래스내에서 어떠한 C 클러스터도 C' 의심 클러스터를 포함하지 않을 때 까지, 클러스터 처리 소프트웨어(330)는 다른 클러스터들을 처리하여 C' 비-의심 클러스터를 검색하는 것을 계속한다.
클러스터 처리 소프트웨어(330)는 OCR 에러를 검출하고 어떤 클러스터에 할당된 OCR 문자 코드를 변경시킴으로써 일부 에러를 정정하도록 상기 프로세스를 실행할 수 있다. 이러한 프로세스는 OCR 문자 코드의 할당에서 향상된 정확성을 갖는 수정된 클러스터(332)를 산출시킨다. 출력 처리 소프트웨어(340)는 감소된 에러를 갖는 수정된 OCR 출력(350)을 산출하기 위해 수정된 클러스터(332)를 OCR 출력(302)에 적용할 수 있다.
클러스터 처리 소프트웨어(330)는 또한 전체 문서내의 모든 클러스터들에 대해 두 개의 클러스터들의 평균 화상들간의 형상 거리를 계산하는데 선택된 형상 계측을 적용하고 그런 다음에 형상 거리 및 각각의 클러스터내의 화상들의 갯수에 기초하여 클러스터들을 마스터 클러스터, 수용가능 클러스터, 의심 클러스터, 및 섬 클러스터로 분류하도록 프로그램될 수 있다. 이러한 클러스터의 서로다른 카테고리는 의심 클러스터의 일부를 수용가능 클러스터로 변경시키기 위해 서로를 비교함으로써 추가로 처리될 수 있다.
도 6은 OCR 문자 코드 할당을 위한 형상 클러스터링을 이용하기 위해 클러스터 처리 소프트웨어(330)에 의해 수행되는 예시적인 방법을 도시한다. 이 예시에서, 클러스터 처리 소프트웨어(330)는 클러스터에 할당된 초기 OCR 문자 코드의 신뢰도 레벨을 평가하고, 적절한 경우, 클러스터에 할당된 하나 이상의 초기 OCR 문자 코드를 처리중에 있는 클러스터에 대해 가장 짧은 형상 거리를 갖는 다른 클러스터에 대한 하나 이상의 다른 OCR 문자 코드로 교체한다. 원래 OCR 출력 문서(302)내에 존재하는 감소된 OCR 에러를 갖는 문서(301)에 대한 수정된 클러스터 콜렉션(332)을 산출하기 위해, 클러스터 처리 소프트웨어(330)는 모든 클러스터들을 평가 및 처리한다. 보다 구체적으로, 특정 클러스터의 클러스터 화상과 이와 다른 모든 클러스터들의 클러스터 화상들간의 형상 거리가 클래스에 상관 없이 계산된다(단계 610). 모든 클래스들내에서 가장 가까운 클러스터로부터의 형상 거리가 문턱 거리보다 큰 클러스터는 해당 클러스터에 대한 하나 이상의 OCR 문자 코드 각각을 변경시키는 것 없이 "섬" 클러스터로서 라벨표시된다(단계 620). 이러한 프로세스는 클러스터들을 섬 클러스터와 비-섬 클러스터로서 분류시킨다. 각각의 섬 클러스터에 대해, 클러스터 처리 소프트웨어(330)는 이와 같은 클러스터를 의심 클러스터로서 라벨표시하고, 서로다른 처리 메카니즘을 인보크하여 예컨대 수동 식별 또는 이러한 의심 클러스터내의 클립 화상을 포함하는 각각의 단어를 재분할하는 것을 이용해 클러스터를 처리한다. 각각의 비-섬 클러스터에 대해서, 동일한 클래스내의 연계된 가장 가까운 클러스터와 다른 클래스로부터의 연계된 가장 가까운 클러스터가 식별될 수 있으며, 이와 같은 가장 가까운 클러스터들 각각은 현재 처리중에 있는 비-섬 클러스터보다 많은 샘플 클립 화상들을 갖는다(단계 630). 다음으로, 클러스터 처리 소프트웨어(330)는 위의 두 개의 선택된 클러스터들 간에 가장가까운 클러스터가 수용가능한 클러스터인지, 즉 수정된 OCR 출력(350)에서 사용하기에 충분히 신뢰적인지를 판정한다(단계 640). 본 명세서의 앞의 섹션에서 설명한 바와 같이, 클러스터가 수용가능한지는 예컨대, 해당 클러스터에 할당된 신뢰도 점수에 의해 판정될 수 있다.
가장 가까운 클러스터가 수용가능한 클러스터이고, 처리중인 비-섬 클러스터와 다른 클래스내에 위치하는 경우, 현재 처리중인 비-섬 클러스터의 하나 이상의 OCR 문자 코드는 현재 클러스터에 대한 하나 이상의 새로운 OCR 문자 코드로서 가장 가까운 클러스터와 연계된 하나 이상의 OCR 문자 코드로 교체된다(단계 650 및 단계 670). 가장 가까운 클러스터가 수용가능한 클러스터이고, 처리중인 비-섬 클 러스터와 동일한 클래스에 위치하는 경우, 현재 클러스터의 하나 이상의 OCR 문자 코드는 정확한 것으로 검증되고, 이에 따라 수정된 OCR 출력(350)에서의 사용을 위해 변경 없이 유지된다(단계 650 및 단계 680).
한편, 만약 가장 가까운 클러스터가 수용가능한 클러스터인 경우, 클러스터 처리 소프트웨어(330)는 현재 처리중인 비-섬 클러스터에 가장 가까운 수용가능한 클러스터를 검색하는 것을 계속할지를 판정한다(단계 660). 만약 계속하는 것으로 판정되면, 위의 검색 프로세스는 반복된다. 만약 그렇지 않은 경우, 현재 처리중인 클러스터의 하나 이상의 OCR 문자 코드는 유지되고 수정된 OCR 출력(350)내에서의 사용을 위해 수용가능한 것으로서 라벨표시된다(단계 680). 후자의 경우에서, 형상 비교는 원래 OCR 할당을 승인 또는 거절하지 않는다.
도 7 내지 도 9는 OCR 엔진의 출력으로부터 획득된 클러스터의 예 및 클러스터의 사후-OCR 처리의 결과를 도시한다. 클러스터 처리 소프트웨어(330)에 의해 계산된 클러스터 파라미터가 상술한 바와 같이 라벨표시된다. 도 7에서, 상단 행(710)은 OCR 엔진에 의해 분류된 하나의 크기로부터 형성된 "C" 클러스터 화상을 표시한다. 이러한 클러스터들은 형상 및 크기가 서로 약간 다르며, 또한 OCR 엔진에 의해 "C" 클러스터로서 부정확하게 분류된 여섯 개의 "G" 클러스터들을 상단 행(710)의 중앙 영역에서 포함한다. 중앙 행(720)은 "C" 클래스내의 모든 "C" 클러스터들의 가장 가까운 대응 매칭을 보여준다. 중앙 행은 "C" 클러스터로서 OCR 엔진에 의해 부정확하게 분류된 두 개의 "G" 클러스터를 포함하는 것을 유념한다. 하단 행(730)은 "C" 클래스내에 있지 않는 모든 클러스터들의 가장 가까운 대응 매칭 을 갖는다. 하단 행(730)내의 각각의 클러스터 화상의 좌측 위의 모서리에서의 라벨표시는 클러스터에 할당된 OCR 문자 코드의 OCR 문자를 보여준다. 중앙 행에서, 세 개의 숫자들(701, 702 및 703)은 두번째 행(720)에서의 클러스터를 특성화하는 클러스터 파라미터이다. 상단쪽 숫자(701)는 상단 행의 클러스터들 각각에서의 샘플들의 갯수이며, 두번째 숫자(702)는 상단 "C" 클러스터와 중앙의 다른 "C" 클러스터 사이의 형상 거리이며, 하단쪽 숫자(703)는 상단 "C" 클러스터와 하단의 가장 가까운 비(non)-"C" 클러스터 사이의 형상 거리이다. 예를 들어, 도 7에서의 오른쪽 위의 C 클러스터는 1899 개의 샘플들을 갖는다. 만약 중앙의 숫자가 아래의 숫자보다 작다면, 대응하는 상단 클러스터는 "C" 클러스터로서 OCR 엔진에 의해 정확하게 분류될 가능성이 높으며, 그렇지 않은 경우, OCR 엔진은 상단 행내에서 잘못 분류된 "G" 클러스터에 대한 적색 샘플에 의해 나타나는 에러를 유발시킬 가능성이 높다. 도 7에서, 부정확하게 라벨표시된 클러스터에 대한 샘플들의 총 갯수는 (1+30+9+1+2+7) = 50이며, 따라서 50개의 에러들은 클러스터 레벨 처리에 의해 자동적으로 정정될 수 있다.
도 7은 형상 클러스터링 처리에 기초된 클러스터에 대한 OCR 할당에 대한 신뢰도 레벨을 더 보여준다. 클러스터 처리 소프트웨어(330)는 라벨링 파라미터를 이용하여 클러스터가 수용가능한지, 높은 신뢰도 점수를 갖는 것으로 검증되었는지, 또는 잘못된 OCR 할당으로 인해 의심 또는 거절되었는지를 라벨표시한다. 도 7은 각각의 클러스터 화상의 오른쪽 아래 모서리에서의 표시를 이용하여 이러한 라벨링 파라미터를 그래픽적으로 표시한다. 각각의 클러스터 화상의 오른쪽 아래 모서리에 서의 이러한 표시는 클러스터의 특성과 라벨링을 파악하는데 이용되고, 사후-OCR 처리 소프트웨어에 의해 사용되지 않을 수 있다. 만약 클러스터가 수용가능하지만 수동 식별 또는 다른 수단을 통해 높은 신뢰도 점수를 갖는 것으로 검증되지 않은 경우, 클러스터 화상의 오른쪽 아래 모서리는 표시되지 않는다. 만약 클러스터가 수용가능하고 수동 식별 또는 다른 수단을 통해 높은 신뢰도 점수를 갖는 것으로 검증된 경우, 클러스터 화상의 오른쪽 아래 모서리는 체크 부호로 표시된다. 만약 클러스터가 수용가능하지 않고 잘못된 것으로 검증된 경우, 클러스터 화상의 오른쪽 아래 모서리는 X표 부호로 표시된다. 부정확하게 라벨표시된 클러스터는, OCR 엔진에 의해 "C"로서 부정확하게 할당되었던 상단 행(710)의 중앙 영역에서의 여섯 개의 "G" 클러스터들과 같이, 자신의 오른쪽 아래 모서리에서 X표 부호로 표시된다. 도 8은 OCR 엔진에 의해 모두 "B"로서 초기에 인식된 클러스터들의 예를 도시한다. 도 8에서 도시된 바와 같이, 클러스터 처리 소프트웨어(330)에 의한 클러스터 처리는 가장 가까운 비-"B" 클러스터(이 경우에서는 "R" 클러스터)에 대한 거리가 가장 가까운 "B" 클러스터에 대한 거리보다 작으며, 따라서 14개의 클러스터들 중에서 10개는 실제적으로 "R" 클러스터임을 정확하게 발견한다. 오른쪽 아래 모서리에서 X표 부호에 의해 표시된 바와 같이, 도 8에서의 상단 행의 왼쪽 끝에 있는 글자 "R"에 대한 첫번째 클러스터는 OCR 엔진에 의해 "B" 클러스터로서 부정확하게 할당된다.
도 9는 시퀀스 "fri"에 대한 클립 화상의 38개 예시들이 OCR 엔진에 의해 "M"으로서 부정확하게 식별되는 "섬" 클러스터의 예를 도시한다. 만약 수동 식별이 이러한 OCR 에러를 정정하고, 적절한 합자 "fri"를 섬 클러스터에 할당하는데 사용되면, 섬 클러스터는 높은 신뢰도 점수를 갖는 수용가능 클러스터로 재분류될 수 있다. 이러한 재분류 이후에, 새롭게 할당된 문자 "fri"에 기초하는 단일 클러스터 레벨의 정정이 문서내의 모든 38개의 에러를 정정하는데 사용될 수 있다.
도 9에서의 예는 OCR 엔진이 서로다른 문자들의 그룹을 단일 클립 화상(예컨대, "fri")으로 부정확하게 분할하고 이에 따라 이 그룹을 단일 문자(예컨대, "M")로서 취급할 수 있음을 시사해준다. 이와 같은 분할 에러를 갖는 클러스터는 단일 문자의 전형적인 클러스터보다 자신의 테두리 박스의 크기만큼 크게 측정되는 경향이 있다. 사람에 의한 수동 식별이 이와 같은 에러를 정정하는데 사용될 수 있다. 클러스터 처리 소프트웨어(330)는 수동 식별을 위해 의심 클러스터를 자동적으로 선택하고, 수동 식별의 결과를 이용하여 클러스터에 대한 하나 이상의 OCR 문자 코드의 할당을 업데이트하고, 이로써 의심 클러스터를 수용가능 클러스터로 변환시키는데 사용될 수 있다.
이와 달리, 도 3의 사후-OCR 처리 엔진(310)은 수동 식별을 포함하는 형상 클러스터링에 의해 획득된 높은 신뢰도 점수를 갖는 수용가능 클러스터의 클러스터 화상과의 매칭을 검색함으로써 이와 같은 큰 의심 클러스터 화상을 두 개 이상의 보다 작은 클러스터 화상으로 재분할할 수 있다. 이 프로세스에서, 높은 신뢰도 점수를 갖는 수용가능 클러스터는 수정된 클러스터(332)내에서 높은 신뢰도 점수를 갖는 수용가능 클러스터의 풀(pool)로부터 선택되어 클러스터 화상 템플릿으로서 이용된다. 클러스터 화상 템플릿과 의심 클러스터의 각각의 서브섹션간의 형상 유 사성을 비교하기 위해, 클러스터 화상 템플릿과 의심 클러스터는 한번에 하나의 픽셀씩, 의심 클러스터 화상 곳곳에 템플릿을 공간적으로 슬라이딩시킴으로써 비교된다. 이러한 매칭 프로세스는 모든 매칭을 식별하기 위해 풀내의 모든 수용가능 클러스터에 대해 반복된다. 이러한 매칭 프로세스에서 산출된 두 개 이상의 보다 작은 클러스터 화상은 두 개 이상의 새로운 클러스터에 대응하고 그런 다음 새로운 클러스터가 처리된다.
높은 신뢰도 점수를 갖는 수용가능 클러스터 풀의 클러스터 화상 템플릿으로서의 이러한 이용은 클러스터링 형상처리 이후의 OCR 출력(302)내에서 의심 단어를 처리할 수 있다. 하나의 구현예에서, 출력 처리 소프트웨어(340)는 임의의 매칭을 식별하기 위해 의심 단어 곳곳에 클러스터 화상 템플릿 각각을 구동시키도록 프로그램될 수 있다. 적어도 하나의 매칭이 존재하는 경우, OCR 출력(302)에서의 인접하는 서로다른 테두리 박스내의 클립 화상들로 OCR 엔진에 의해 분할되었던 의심 단어의 화상은 인접하는 서로다른 새로운 테두리 박스내의 새로운 클립 화상들로 재분할된다. 각각의 새로운 테두리 박스는, 예를 들어, 단일 문자 또는 합자의 클립 화상일 수 있다.
도 10은 수정된 클러스터(332)에서 높은 신뢰도 점수를 갖는 선택된 클러스터들의 풀을 클러스터 화상 템플릿으로서 이용함으로써 의심 단어의 클립 화상(1001)이 보다 작은 문자 또는 합자의 화상들(1002)로 재분할되는 슬라이딩 윈도우의 예를 도시한다. 이러한 선택된 클러스터들의 풀은 예를 들어, 수동 식별을 통해 획득된 클러스터들, 많은 갯수의 샘플 클립 화상들을 갖는 클러스터들, 형상 클 러스터링에 의해 정정된 것으로 검증되었던 클러스터들을 포함할 수 있다. 슬라이딩 윈도우 프로세스(1010)는 선택된 클러스터들 각각을 의심 단어의 서브섹션과 비교하고, 그런 다음 클러스터 화상 템플릿과의 매칭을 기초로 의심 단어를 재분할한다. 이러한 슬라이딩 윈도우 프로세스(1010)는 출력 처리 소프트웨어(340)의 일부로서 소프트웨어에 의해 구현될 수 있다.
출력 처리 소프트웨어(340)는 선택된 클러스터의 클러스터 화상을 클러스터 화상 템플릿으로서 선택한다. 이러한 선택된 클러스터는 할당된 하나 이상의 OCR 문자 코드에 대한 높은 신뢰도 점수를 갖는다. 출력 처리 소프트웨어(340)는 제일 먼저 의심 단어의 클립 화상(1001)내의 서로다른 화상 부분들과 클러스터 화상 템플릿을, 한번에 하나의 화상 부분씩, 미리결정된 슬라이딩 방향을 따라 정렬시킨다. 미리결정된 슬라이딩 방향은 예를 들어, 왼쪽에서부터 오른쪽으로의 수평 방향일 수 있다. 따라서, 클러스터 화상 템플릿은 의심 단어내의 서로다른 부분들과 정렬된다. 클러스터 화상 템플릿과 단어 화상의 서로다른 부분들 사이의 형상 계측 거리가 각각 획득된다. 획득된 형상 계측 거리는 단어 화상의 일부분이 클러스터 화상 템플릿과 매칭되는지를 판정하는데 사용된다. 클러스터 화상 템플릿과 매칭하는 단어 화상의 매칭 부분은 단어 화상의 하나 이상의 다른 부분들로부터 분리된다. 선택된 클러스터에 할당된 하나 이상의 OCR 문자 코드는 수정된 OCR 출력내에서 단어 화상의 분리된 매칭 부분에 할당된다.
도 11a 및 도 11b는 도 10에서의 슬라이딩 윈도우 프로세스(1010)의 동작의 상세모습을 도시한다. 도 11a는 의심 단어 화상(1001)의 서로다른 부분들과의 정렬 을 위해 높은 신뢰도 점수를 갖는 클러스터 화상으로부터 선택된 클러스터 화상 템플릿(1100)을 이용하는 슬라이딩 윈도우 프로세스(1010)을 도시한다. 예를 들어, 클러스터 화상 템플릿(1100)은 의심 단어 화상(1001)과 중첩되기 위해 슬라이딩 방향을 따라 두 개의 인접한 위치들 사이에서 하나의 픽셀만큼 쉬프트되어 있는 일련의 서로다른 부분들에 배치된다. 도 11b는 예시적인 처리 동작을 도시한다. 제일 먼저, 클러스터 화상 템플릿(1100)이 높은 신뢰도 점수를 갖는 이용가능한 클러스터 화상으로부터 선택된다(단계 1110). 클러스터 화상 템플릿(1100)의 중심점과 의심 단어 화상(1001)의 시작 부분의 중심점을 정렬시킨다(단계 1120). 클러스터 화상 템플릿(1100)과 의심 단어 화상(1001)의 중첩된 시작 부분 사이의 형상 거리가 계산된다(단계 1130). 그런 다음 클러스터 화상 템플릿(1100)과 의심 단어 화상(1001)의 다음 부분을 정렬시키기 위해 클러스터 화상 템플릿(1100)과 의심 단어 화상(1001)이 슬라이딩 방향을 따라 서로에 대해 한 픽셀 만큼 쉬프트되고(단계 1140), 형상 거리가 다시 계산된다(단계 1150). 슬라이딩 윈도우 프로세스(1010)가 클러스터 화상 템플릿(1100)과 의심 단어 화상(1001)의 서로다른 화상 부분들 사이의 각각의 형상 계측 거리를 계산하도록 이러한 프로세스는 서로다른 위치들에서 반복된다(단계 1160). 계산된 형상 계측 거리는 의심 단어 화상(1001)의 화상 부분이 클러스터 화상 템플릿(1100)과 매칭되는지 판정하는데 사용된다. 위 프로세스는 높은 신뢰도 점수를 갖는 모든 선택된 클러스터들에 대해 반복된다(단계 1170).
만약 매칭이 존재하면, 의심 단어 화상(1001)의 매칭 부분은 분리되어 매칭된 클러스터 화상 템플릿에 대한 하나 이상의 OCR 문자 코드들 각각을 할당받는다. 이러한 결과물은 출력 처리 소프트웨어(340)에 의해 산출된 수정된 OCR 출력(350)에서 사용된다. 만약 분할 이후 의심 단어 화상(1001)의 남아 있는 하나 이상의 세그먼트들이 클러스터 화상 템플릿과 매칭된다면, 각각의 OCR 문자 코드는 수정된 OCR 출력(350)에서 사용된다. 만약 분할 이후 의심 단어 화상(1001)의 남아 있는 하나 이상의 세그먼트들이 클러스터 화상 템플릿과 매칭하지 않는다면, 이러한 세그먼트들은 식별불가능 화상으로서 표시되고, 다른 방법(예컨대, 수동 식별)에 의해 추가적으로 처리되거나 또는 수정된 OCR 출력(350)에서 이와 같이 라벨표시될 수 있다. 슬라이딩 윈도우 프로세스 이후에 단 하나의 매칭도 존재하지 않으면, 의심 단어 화상(1001)은 식별불가능 화상으로서 표시되고, 다른 방법(예컨대, 수동 식별)에 의해 추가적으로 처리되거나 또는 수정된 OCR 출력(350)에서 이와 같이 라벨표시될 수 있다.
도 10, 도 11a 및 도 11b에서 도시된 슬라이딩 윈도우 프로세스(1010)는 또한 의심 클러스터 화상을 두 개 이상의 보다 작은 분할된 클러스터 화상들로 재분할하기 위해 클러스터 처리 소프트웨어(330)의 일부로서 구현될 수 있다. 이와 관련하여, 도 10, 도 11a 및 도 11b에서 도시된 처리 단계들은 의심 단어 화상을 대신하여 의심 클러스터의 클러스터 화상에 적용된다. 분할된 클러스터 화상들은 클러스터(320)내의 다른 클러스터들과 마찬가지로 클러스터 처리 소프트웨어(330)에 의해 추가로 처리된다. 클러스터 처리 소프트웨어(330)는 클러스터 화상 템플릿으로서 제1 클러스터의 제1 클러스터 화상을 선택한다. 제1 클러스터 화상은 하나 이상의 할당된 OCR 문자 코드에 대해 높은 신뢰도 점수를 갖는다. 낮은 신뢰도 점수 를 갖는 제2 클러스터, 예컨대 의심 클러스터로부터의 제2 클러스터 화상은 선택되어 슬라이딩 윈도우 프로세스(1010)에 의해 재분할된다. 클러스터 처리 소프트웨어(330)는 제일 먼저 제2 클러스터 화상내의 서로다른 화상 부분들과 클러스터 화상 템플릿을, 한번에 하나의 화상 부분씩, 미리결정된 방향을 따라 정렬시킬 수 있다. 만약 매칭이 존재하면, 이후에 의심 클러스터 화상의 매칭 부분은 형성되는 제3 클러스터에 대한 새로운 제3 클러스터 화상으로서 사용된다. 클러스터 화상 템플릿(1100)에 대응하는 의심 클러스터 화상내의 각각의 클립 화상들에서의 대응 부분은 새로운 클립 화상들을 형성하기 위해 클립 화상으로부터 분리된다. 새로운 클립 화상들은 제2 클러스터내의 클립 화상들로부터 각각 분리되어, 클러스터 화상 템플릿(1100)에 할당되는 하나 이상의 OCR 문자 코드가 할당된 제3 클러스터를 형성하는데 사용된다. 제3 클러스터에 대한 새로운 클립 화상들의 분리 이후에 의심 클러스터 화상의 클립 화상들의 나머지들은 적어도 하나의 제4 클러스터를 형성하는데 사용된다. 의심 클러스터 화상을 세 개의 세그먼트들로 분할하기 위해 매칭된 부분의 위치가 의심 클러스터 화상의 중앙에 위치하면, 의심 클러스터 화상의 클립 화상들의 나머지들은 두 개의 서로다른 새로운 클러스터들을 형성할 수 있다. 그런 다음 새롭게 분할된 클러스터들은 수정된 OCR 출력(350)을 산출할 때에 제2 클러스터를 교체하는데 사용된다.
의심 클러스터들은 또한 수동 정정의 높은 정확성을 이용하기 위해 수동 식별 및 정정을 클러스터 레벨의 자동화된 방식으로 병합함으로써 처리될 수 있다. 본 명세서에서 설명된 클러스터링 기술들은 수 많은 다른 수동 OCR 정정 기술들의 고가이며 수고스러운 프로세스를 경감시키도록 구현될 수 있다.
도 12는 수동 정정 프로세스(1210)가 도 3에서의 클러스터 처리 소프트웨어(330)의 일부로서 포함될 수 있는 자동화된 수동 정정의 하나의 구현예를 도시한다. 동작시, 클러스터 처리 소프트웨어(330)는 수동 식별을 요청하기 위해 클러스터, 예컨대, 의심 클러스터의 클러스터 화상을 선택하고, 수동 식별을 이용하여 선택된 클러스터에 대한 하나 이상의 새로운 OCR 문자 코드를 생성한다.
수동 식별 요청이 하나 이상의 온라인 수동 정정 자원(1220)에 보내질 수 있다. 온라인 수동 정정 자원(1220)은 오퍼레이터가 요청된 의심 클러스터 화상과 할당된 OCR 문자를 바라보고, 클러스터 화상과 관련된 텍스트 또는 클러스터 화상에 대한 새로운 정정된 텍스트의 확인을 반송하게 해주는 온라인 컴퓨터일 수 있다. 하나의 요청은 다수의 의심 클러스터들에 대한 화상들을 포함할 수 있다. 수동 정정 프로세스(1210)는 온라인 수동 정정 자원(1220)으로부터의 응답을 이용하여 수정된 클러스터(332)내의 클러스터를 업데이트한다. 예를 들어, 수동 정정 프로세스(1210)는 의심 클러스터에 대한 하나 이상의 현존하는 OCR 문자 코드를 온라인 수동 정정 자원(1220)으로부터 회답된 응답을 기초로 생성된 하나 이상의 새로운 OCR 문자 코드로 교체시킬 수 있다. 수동으로 정정되거나 확인된 각각의 클러스터 마다, 클러스터 처리 소프트웨어(330)는 의심 클러스터로부터의 클러스터를 수용가능 클러스터로 변경시키고, 이후의 사후-OCR 처리시에 사용하기 위해 수용가능 클러스터에 높은 신뢰도 점수를 할당한다. 이것은 수정된 클러스터(332)가 클러스터 처리 소프트웨어(330)에 의한 수동 정정 결과로 업데이트되도록 해준다.
이와 달리, 자동화된 수동 정정은 수동 정정을 위한 지정된 사람 또는 오퍼레이터 없이 온라인 자원을 이용하여 구현될 수 있다. 온라인 게임 또는 서비스를 위해 사용자의 수동 입력이 필요한 온라인 게임 또는 서비스의 일부로서 온라인 수동 정정 자원이 설계될 수 있다.
예를 들어, 의심 클러스터의 클러스터 화상이 플레이어가 화상을 식별할 것을 요구하는 온라인 게임을 위한 화상으로서 사용될 수 있다. 플레이어가 화상을 제공받고 이 화상에서 나타난 객체의 명칭을 입력할 것을 요청받는 이와 같은 온라인 게임에 관한 하나의 예는 http://www.espgame.org/에서의 ESP게임이다. 플레이어가 입력하는 명칭, 예컨대 문자 코드는 한편으로 온라인 게임의 일부로서 사용되는 반면에, 다른 한편으로는 사후-OCR 처리를 위한 의심 클러스터 화상의 수동 식별로서 동시적으로 사용된다.
다른 예로서, 웹 싸이트의 사용자가 사람인지 여부를 판정하기 위해 로그인 프로세스의 일부로서 다양한 웹 싸이트들이 CAPTCHA("Completely Automated Public Turing test to tell Computers and Humans Apart") 화상과 같은 도전-응답 테스트를 이용한다. 의심 클러스터의 화상은 CAPTCHA로서 이용될 수 있거나 또는 CAPTCHA의 일부로서 이용될 수 있다. 따라서, 왜곡된 텍스트를 갖는 CAPTCHA에 의심 클러스터의 영상이 종단부에서 첨가될 수 있다. 서비스에 대한 액세스를 얻고자 하는 사용자는 CAPTCHA를 해결하고 CAPTCHA의 종단부에서 의심 클러스터 화상에 의해 제시되는 하나 이상의 문자가 무엇일지에 대한 최상의 추측을 모두 하려고 할 것이다. 사용자 식별된 문자가 수신되어 OCR 프로세스에 의한 의심 클러스터 화상에 할 당된 하나 이상의 특정 문자를 검증 또는 정정하는데 사용된다. CAPTCHA를 통한 사용자 식별의 정확성을 향상시키기 위해, 클러스터 화상에 대한 회답된 응답을 통해 리던던시 체크를 제공하도록 의심 클러스터의 동일한 클러스터 화상이 서로다른 CAPTCHA로 서로 다른 사용자들에게 보내질 수 있으며, 여기서 서로다른 사용자들로부터의 동일한 클러스터 화상에 대한 일관된 답변은 회답된 응답이 신뢰적임을 나타내는 강력한 표시이다. 따라서, 하나의 구현예에서, 특정 클러스터의 평균 화상의 사용자 식별내용이 온라인 도전-응답 테스트를 기초로 다수의 서로다른 사용자들 각각으로부터 획득된다. 특정 클러스터의 평균 화상의 특정한 사용자 식별내용은 다수의 서로다른 사용자들 중 다른 사용자들로부터 획득된 사용자 식별내용을 이용하여 확인된다. 그 후 확인된 사용자 식별내용은 OCR 프로세스에 의해 특정 클러스터에 할당된 하나 이상의 특정 문자 코드를 검증 또는 정정하는데 사용된다.
OCR 엔진에 의해 생성된 클러스터 화상은 어떠한 문자도 나타내지 않는 무의미 화상일 수 있다. 이것은 여러가지 방법으로 발생될 수 있다. 예를 들어, OCR 엔진에 의한 적절한 분할은 클립 화상내의 다른 문자의 일부와 결합된 클립 화상내의 문자의 일부를 산출시킬 수 있다. 다른 예로서, OCR 엔진에 공급되는 원본 문서 화상은 클립 화상내에 무의미 표시를 가질 수 있다. 무의미 클러스터 화상이 상기 자동화된 수동 정정 기술 중 임의의 기술에서 수동 식별을 위한 의심 클러스터 화상으로서 분류되면, 무의미 의심 클러스터 화상을 바라보는 사람은 이 화상은 무의미하거나 또는 이 화상은 하나 또는 그 이상의 완전한 문자가 아님을 말해주는 메세지로 응답할 수 있다. 수동 정정 프로세스(1210)는 이와 같은 클러스터의 의심 상 태를 유지하고 이러한 클러스터의 성질을 알림으로써 이러한 상황을 처리하도록 구성될 수 있다. 예를 들어, 자동화 재분할이 부정확하게 분할된 문자들에 적용될 수 있고, 만족할만한 분할이 획득될 때 까지 필요한 경우 반복적으로, 그 결과물이 수동 검증 프로세스에 다시 공급될 수 있다.
도 12에서 도시된 사후-OCR 시스템 및 그 변형이 통신 네트워크내의 하나 이상의 컴퓨터 서버에서 구현될 수 있다. 하나 이상의 컴퓨터 서버가 OCR 엔진 및 사후-OCR 엔진을 제공하는데 사용될 수 있다. 네트워크내 클라이언트 컴퓨터는 문서의 OCR 출력을 요청하기 위해 문서 화상을 하나 이상의 컴퓨터 서버에 보낼 수 있다. OCR 엔진 및 사후-OCR 엔진은 클라이언트의 문서 화상을 처리하고, 통신 네트워크를 통해 클라이언트 컴퓨터에 보내질 수 있는 OCR 출력을 산출시킨다. 하나 이상의 온라인 서버가 사후-OCR 엔진에 의한 사용을 위해 온라인 수동 정정 자원을 공급하도록 통신 네트워크에 접속될 수 있다. 사후-OCR 엔진은 선택된 클러스터의 클러스터 화상에 대한 하나 이상의 문자의 수동 할당을 획득하기 위해 낮은 레벨의 신뢰도를 갖는 클러스터를 선택하도록 동작한다. 이와 관련하여, 온라인 서버에 대해 요청이 이뤄지고, 이어서 온라인 서버는 선택된 클러스터 화상에 대한 수동 할당을 생성한다. 온라인 서버는 예컨대, 온라인 서버에 의해 운영되는 웹 싸이트에 액세스하는 사용자 컴퓨터에서의 사용자에게 도전-응답 테스트를 공급하는 컴퓨터, 또는 온라인 사용자로부터 응답을 요청하는 ESP 게임 또는 다른 게임을 운영하는 컴퓨터일 수 있다.
본 명세서에서 설명된 사후-OCR 처리 기술들에 대한 응용들 중 하나는 두 개 이상의 OCR 엔진을 갖춘 OCR 시스템에서의 사후-OCR 처리이다. 두 개 이상의 OCR 엔진의 이러한 사용은 OCR 처리에서의 리더던시의 이점을 한층 이용할 수 있고 OCR 정확성을 한층 개선시킬 수 있다. 이와 같은 시스템은 다양한 구성으로 구현될 수 있다.
도 13은 병렬식으로 동작하도록 연결된 두 개 이상의 OCR 엔진(1301, 1302)과 사후-OCR 처리 엔진(1311, 1312)을 의결처리(vote) 구성내에 포함하는 예시적인 OCR 시스템을 도시한다. 각각의 OCR 엔진은 사후-OCR 처리 엔진과 짝지어진다. 따라서, 화상처리된 문서(1300)는 병렬식으로 연결된 모든 OCR 엔진에 의해 독립적으로 처리된다. 그 후 각각의 OCR 출력은 각각의 사후-OCR 처리 엔진에 의해 추가적으로 처리된다. 이러한 프로세스는 동일한 화상처리 문서(1300)에 대해 다수의 OCR 출력들을 산출시킨다. 각각의 사후-OCR 처리 엔진은 도 3에서 도시된 사후-OCR 처리에 기초된 처리 기능의 일부 또는 그 전체를 수행하도록 설계될 수 있다. 의결 처리 엔진(1320)이 사후-OCR 처리 엔진으로부터 서로다른 OCR 출력들을 수신하고, 수신된 서로다른 OCR 출력들을 추가로 처리하여 최종 OCR 출력(1330)을 산출하도록 제공된다. 의결 처리 엔진(1320)은 최종 OCR 출력(1330)을 산출할 때에 여러가지 의결처리 방법들을 적용할 수 있다.
하나의 구현예에서, 예컨대, 도 13에서의 각각의 사후-OCR 처리 엔진은 클러스터 생성 소프트웨어(320)를 수행하고, 각각의 OCR 엔진에 의해 행해진 문자 할당을 수정하는 것 없이 도 3에서 도시된 클러스터에 대한 클립 화상(322)을 산출할 수 있다. 의결 처리 엔진(1320)은 여러 사후-OCR 처리 엔진들에 의해 산출된 대응 하는 화상들에 대한 클러스터들 중 임의의 것을 최종 OCR 출력(1330)에서 선택할 수 있다. 여러가지 사후-OCR 처리 엔진들은 신뢰도 점수를 사후-OCR 처리 엔진으로부터 생성된 클러스터들에 할당할 수 있고, 최종 OCR 출력(1330)을 위해 의결 처리 엔진(1320)은 이 신뢰도 점수를 이용하여 가장 높은 신뢰도 점수를 갖는 사후-OCR 처리 엔진으로부터 클러스터를 선택할 수 있다. 그 결과, 최종 OCR 출력(1330)이 여러 사후-OCR 처리 엔진들로부터의 가장 신뢰적인 클러스터들의 조합을 기초로 의결 처리 엔진(1320)에 의해 생성되고, OCR 엔진 및 사후-OCR 처리 엔진의 한 쌍에 의해 산출된 OCR 출력보다 우수한 OCR 정확성을 가질 수 있다.
다른 구현예에서, 도 13에서의 각각의 사후-OCR 처리 엔진은 각각의 OCR 엔진에 의해 초기에 행해진 문자 할등을 수정 또는 검증하도록 구성될 수 있다. 이러한 수정은 예컨대 도 3에서의 수정된 클러스터(332)를 산출시키도록 클러스터 생성 소프트웨어(320)를 적용함으로써 달성될 수 있다. 도 13에서의 각각의 사후-OCR 처리 엔진은 향상된 신뢰성을 갖는 수정된 OCR 출력을 산출시킨다. 그 후 의결 처리 엔진(1320)은 이 수정된 OCR 출력을 이용하여 클러스터의 신뢰도 점수를 기초로 최종 OCR 출력(1330)을 산출시킨다.
도 13에서의 시스템의 다른 구현예에서, 각각의 사후-OCR 처리 엔진(1311 또는 1312)은 각각의 OCR 엔진(1301 또는 1302)으로부터 수신된 OCR 출력내의 테두리 박스에 의해 정의된 클립 화상들을 클립 화상들의 클러스터로 분류하도록 구성될 수 있다. 각각의 클러스터는 대응하는 OCR 엔진에 의해 하나 이상의 동일한 특정 OCR 문자가 할당된 유사한 화상 크기와 형상의 클립 화상들을 갖는다. 각각의 사후 -OCR 처리 엔진은 또한 클러스터 화상으로서 평균 화상을 생성하기 위해, 각각의 클러스터에 대한 클러스터 화상, 예컨대 각각의 클러스터내의 평균 클립 화상들을 산출시킨다. 대응하는 OCR 엔진에 의해 각각의 클러스터에 할당된 하나 이상의 특정 OCR 문자내에 에러가 존재하는지를 검출하기 위해 그리고 특정 클러스터에 대해 하나 이상의 특정 OCR 문자를 새롭게 할당함으로써 특정 클러스터내에서의 각각의 검출된 에러를 정정하기 위해, 의결 처리 엔진(1320)은 각각의 클러스터의 클러스터 화상과 이와 다른 클러스터의 클러스터 화상사이의 형상 거리를 이용하도록 구성될 수 있다. 의결 처리 엔진(1320)은 대응하는 수정된 OCR 출력내에서 대응하는 OCR 엔진에 의해 이전에 할당된 하나 이상의 특정 문자 각각을 교체하기 위해 특정 클러스터에 대해 새롭게 할당된 하나 이상의 OCR 문자를 이용하도록 또한 동작할 수 있다.
도 13에서의 시스템에서, 두 개의 서로다른 OCR 엔진들은 화상을 서로 다르게 할당할 수 있다. 의결 처리 엔진(1320)은 사후-OCR 처리 엔진의 출력으로부터 최상의 클러스터를 선택할 수 있다. 하나의 OCR 엔진은 단일 문자의 화상을 두 개의 인접하는 테두리 박스내의 두 개의 개별적인 클립 화상들로 부적절하게 분할하는 반면에 다른 OCR 엔진은 단일 문자의 동일 화상을 단일 클립 화상으로서 정확하게 식별하고 이것을 하나의 테두리 박스내에 위치시키는 예를 고려해본다. 의결 처리 엔진(1320)은 두 개의 대안들을 각각 산출시키는 신뢰도 점수와 사후-OCR 처리 엔진의 갯수를 기초로 두 개의 대안들 중 하나만을 선택할 수 있다. 위 예에서, 보다 많은 OCR 엔진들이 이러한 대안적인 클러스터를 산출하기 때문에 단일 테두리 박스내에 단일 문자의 화상 전체를 포함하는 대안적인 클러스터가 의결 처리 엔진(1320)에 의해 선택될 수 있다.
도 14는 두 개 이상의 다수의 OCR 엔진(1401, 1402)과 하나의 사후-OCR 처리 엔진(1420)을 의결처리 구성내에 포함하는 다른 예시적인 OCR 시스템을 도시한다. OCR 엔진(1401, 1402)은 원본 화상처리 문서(1400)를 처리하여 자신의 각각의 OCR 출력을 산출하도록 서로 독립적으로 동작한다. 단일 사후-OCR 처리 엔진(1410)은 OCR 출력을 수신하고 수신된 OCR 출력내의 모든 클립 화상들을 클러스터들로 분류시킨다. 클러스터는 서로다른 OCR 출력들로부터의 클립 화상들을 포함할 수 있고, 각각의 클러스터내의 클립 화상들은 예컨대 해당 클러스터를 표시하는 클러스터 화상을 생성하기 위해 클립 화상들을 평균화할 때에 사용된다. 다음으로, 클립 화상들이 생성되고 서로다른 클러스터들의 형상들이 클러스터의 OCR 문자 코드의 할당을 검증 및 정정하기 위해 비교된다. 이러한 프로세스는 수정된 클러스터를 산출한다. 의결 처리 엔진(1420)이 최종 OCR 출력(1430)을 생성하기 위해 이 수정된 클러스터를 이용하도록 이용된다.
의결 처리 엔진(1420)은, 일 구현예에서, 서로다른 OCR 출력들에서 생성된 원본 화상처리 문서(1400)내의 특정 위치에서의 동일한 영상 인스턴스에 대한 상충하는 클립 화상들을 처리할 수 있다. 특정 위치에서의 화상 인스턴스를 표시하기 위해, 상충하는 화상들에 대한 신뢰도 점수를 비교하여 보다 높은 신뢰도 점수를 갖는 클립 화상을 선택한다.
원본 화상처리 문서(1400)를 병렬식으로 처리하는 두 개의 OCR 엔진(1401, 1402)을 갖는 도 14에서의 시스템의 동작의 추가적인 특정 예시를 고려해본다. 제1 OCR 엔진(1401)은 제1 OCR 출력을 생성하도록 원본 문서 화상(1400)을 처리하는데 사용된다. 제1 OCR 출력은 문서 화상내에 위치한 제1 클립 화상들을 식별해주는 제1 테두리 박스와 각각의 제1 클립 화상들에 할당된 하나 이상의 각각의 문자들을 포함한다. 제2 OCR 엔진(1402)은 제2 OCR 출력을 생성하도록 원본 문서 화상(1400)을 처리하는데 사용된다. 제2 OCR 출력은 문서 화상내에 위치한 제2 클립 화상들을 식별해주는 제2 테두리 박스와 각각의 제2 클립 화상들에 할당된 하나 이상의 각각의 문자들을 포함한다. 다음으로, 사후-OCR 처리 엔진(1410)이 제1 클립 화상들과 제2 클립 화상들을 클러스터들로 분류시키는데에 사용되고, 각각의 클러스터들은 클립 화상에 할당된 하나 이상의 동일한 문자를 갖는 클립 화상들만을 포함한다. 사후-OCR 처리 엔진(1410)은 또한 예컨대 클러스터내의 클립 화상들을 평균화함으로써 각각의 클러스터에 대한 클러스터 화상을 생성한다. 그런 후 위에서 생성된 클러스터 화상들은 클립 화상들에 대한 문자 할당을 정정하고 클립 화상에 대한 하나 이상의 문자의 각각의 할당에 대한 신뢰도 점수를 판정하는데 사용된다. 클러스터 처리를 향상시키기 위해, 원본 문서 화상(1400)으로부터의 그레이 스케일 또는 칼라 정보가 검색되어 사후-OCR 처리 엔진(1410)에 의해 사용될 수 있다. 의결 처리 엔진(1420)은 제1 클립 화상들 중의 임의의 화상이 제2 클립 화상들 중의 임의의 화상과 문서 화상(1400)내의 위치를 공유하는지, 그리고 제1 클립 화상들 중의 하나의 화상에 할당된 하나 이상의 문자가 제2 클립 화상들 중의 하나의 화상에 할당된 하나 이상의 문자와 상이한지를 판정한다. 만약, 제1 클립 화상들 중의 임의 의 화상이 제2 클립 화상들 중의 임의의 화상과 문서 화상(1400)내의 위치를 공유하고, 그리고 제1 클립 화상들 중의 하나의 화상에 할당된 하나 이상의 문자가 제2 클립 화상들 중의 하나의 화상에 할당된 하나 이상의 문자와 상이한 경우, 의결 처리 엔진(1420)은 제1 클립 화상들 중의 하나의 화상과 제2 클립 화상들 중의 하나의 화상에 대한 각각의 신뢰도 점수를 이용하여 상기 위치에 대한 하나 이상의 문자를 선택한다.
도 13 및 도 14에서 도시된 의결처리 OCR 시스템 및 이것의 변형은 통신 네트워크내에서 하나 이상의 컴퓨터 서버에서 구현될 수 있다. 하나 이상의 컴퓨터 서버는 OCR 엔진, 하나 이상의 사후-OCR 처리 엔진 및 의결 처리 엔진을 제공하는데 사용될 수 있다. 네트워크내의 클라이언트 컴퓨터는 문서 화상을 하나 이상의 컴퓨터 서버에 보내어 문서의 OCR 출력을 요청할 수 있다. 하나 이상의 컴퓨터 서버상의 OCR 엔진, 하나 이상의 사후-OCR 처리 엔진 및 의결 처리 엔진은 클라이언트의 문서 화상을 처리하고, 통신 네트워크를 통해 클라이언트 컴퓨터에 보내질 수 있는 OCR 출력을 산출시킨다.
도 15는 제1 OCR 엔진(1510)을 사용하여 원본 문서 화상(1500)을 처리하고, 제1 사후-OCR 처리 엔진(1520)을 사용하여 제1 OCR 엔진(1510)으로부터의 OCR 출력을 처리하여, 수정된 OCR 출력을 산출시키는 예시적인 OCR 시스템을 도시한다. 제1 사후-OCR 처리 엔진(1520)은 상술한 바와 같이 제1 OCR 엔진(1510)에 의한 클립 화상 출력에 대한 클러스터 분류 및 클러스터링 처리를 수행하고, 의심 단어의 화상이 존재하는 클러스터에 대한 의심 클러스터 화상의 형태로 각각의 의심 단어를 식 별한다. 그런 후 제2 OCR 엔진(1530)이 의심 문자에 대한 하나 이상의 OCR 문자 코드의 할당을 검증 또는 정정함으로써 수정된 OCR 출력내의 임의의 의심 문자를 추가로 처리하고 최종 OCR 출력(1501)을 산출하는데 사용된다. 주목할 것은, 제2 OCR 엔진(1530)은 추가적인 처리를 위해 의심 클러스터의 화상들을 재분할할 수 있다는 것이다.
택일적 사항으로서, 제2 사후-OCR 처리 엔진이 형상 클러스터링을 제2 OCR 엔진(1530)으로부터의 출력에 추가로 적용하는데 사용될 수 있고, 이러한 형상 클러스터링의 결과는 최종 OCR 출력 문서(1501)를 형성하는데 사용된다.
사후-OCR 처리 기술은 방대한 문서의 저해상도 스캔으로부터 고해상도 인쇄출력을 생성하는데 사용될 수 있다. 일부 상업용 OCR 엔진들은 저해상도, 예컨대 200 dpi 또는 300 dpi(인치당 도트)로 화상을 처리할 수 있다. 이와 같은 저해상도 화상은 고품질의 인쇄출력용으로는 부적절할 수 있다. 본 발명의 개시내용에서 설명된 사후-OCR 처리 기술들에서의 클러스터에 대한 평균 화상들은 각각의 클러스터내의 많은 수의 화상들에 걸친 평균화처리로 인하여 스캔된 문서내의 각각의 개별적인 화상보다 높은 해상도를 갖는 경향이 있다. 또한, 각각의 클립 화상들은 보다 높은 해상도 클립 화상으로 보간처리될 수 있다. 이러한 보간처리는 각각의 클러스터마다 클러스터 화상의 해상도를 한층 증가시킨다. 따라서, 클러스터 화상은 스캔된 문서내의 각각의 화상 인스턴스를 고해상도 인쇄 요구 시스템과 같은 고해상도 응용에서와 동일한 화상의 수퍼 해상도 버전을 갖는 스캔된 문서로 교체시키는데 사용될 수 있다.
도 16은 고해상도의 문서 버전을 산출시키는 하나의 예시적인 프로세스를 도시한다. 제일 먼저 문서의 화상이 화상의 서브 영역들의 콜렉션을 산출하도록 처리된다(단계 1610). 각각의 서브 영역들은 제1 해상도를 갖는다. 서브 영역들은 화상내에서 서로다른 위치에서 존재한다. 하나의 서브 영역은 인접한 서브 영역으로부터 완전히 분리되어 있을 수 있거나, 또는 인접하는 서브 영역과 부분적으로 중첩할 수 있다. 문서는 다양한 형태, 예컨대, 책, 신문 또는 잡지에서의 일반적인 스타일의 기사와 같은 다수의 서브 문서들의 콜렉션 형태, 및 각각의 서브 영역들이 문서의 한 페이지 부분이 되는 다수의 페이지 문서 형태를 취할 수 있다. 서브 영역들과 각각의 테두리 박스가 문서의 화상으로부터 분리되어 있는 연계된 클립 화상을 갖기 때문에, OCR 엔진은, 예컨대 이러한 프로세스에서 사용되어 문서의 화상을 테두리 박스로 분리시킬 수 있다. 테두리 박스는 비중첩하는 서브 영역들일 수 있다. 각각의 서브 영역은, 일부 구현예에서, 그레이 스케일 또는 칼라 정보를 포함할 수 있다. 그런 후 서브 영역들은 시각적으로 유사한 클립 서브 영역들의 다수의 클러스터들을 생성하도록 처리되며, 콜렉션내의 각각의 서브 영역들은 하나의 클러스터내에 포함된다(단계 1620). 이러한 프로세스는 형상 클러스터링, 예컨대 k-차원 트리 데이터 구조를 사용할 수 있는 계층적 응집 클러스터링 알고리즘에 의해 달성될 수 있다. 각각의 클러스터는 OCR 엔진에 의해 하나 이상의 동일한 특정 OCR 문자 코드가 할당되고, 대략 동일한 크기의 서브 영역들만을 포함할 수 있다. 그런 다음 대표 클러스터 화상이 다수의 클러스터들 각각 마다 대표 클러스터내의 서브 영역들로부터 제1 해상도보다 높은 제2 해상도를 가지면서 생성된다(단계 1630). 각각의 클러스터 화상은, 예컨대 제1 해상도의 각각의 서브 영역들을 제2 해상도의 보간처리된 서브 영역들로 보간처리하고, 각각의 클러스터내에서 보간처리된 서브 영역들을 평균화함으로써 생성될 수 있다. 다음으로, 화상내의 서브 영역들은 각각의 서브 영역들이 포함된 클러스터들에 대한 클러스터 화상들로 교체된다(단계 1640). 이러한 교체는 제2의 보다 높은 해상도를 갖는 문서의 복제 화상을 산출시킨다. 복제 화상은 프린터에서 인쇄되어 원본 문서의 고해상도 인쇄출력을 산출시킬 수 있다.
도 17은 위 프로세스에 기초된 예시적인 고해상도 프린트 주문형 시스템을 도시한다. 제일 먼저 문서는 저해상도 화상(1701)으로서 디지탈화된다. 그런 다음 OCR 엔진이 이용되어 화상(1701)이 처리되고 OCR 출력(302)이 산출된다. 사후-OCR 처리 엔진(1710)이 제공되어 OCR 출력(302)이 저해상도 화상으로 처리되고, 수정된 OCR 출력 문서가 인쇄용 고해상도로 산출된다. 엔진(1710)은 도 3의 사후-OCR 처리 엔진(310)내의 클러스터 생성 소프트웨어(320)와 클러스터 처리 소프트웨어(330)를 포함한다. 따라서, 도 2, 도 4, 도 5, 및 도 6에서 도시된 프로세스 및 수동 식별 프로세스와 같은 상술한 클러스터링 동작이 클러스터(322)와 수정된 클러스터(332)를 산출시키도록 적용될 수 있다. 주목할 것은, 고해상도 클러스터 화상을 랜더링하기 위해 원본 문서내의 화상 상세사항을 캡쳐하도록 원본 문서로부터의 그레이 스케일 또는 칼라 정보가 클러스터링 프로세스에서 사용될 수 있다. 도 3의 사후-OCR 처리 엔진(310)과는 달리, 엔진(1710)은 희망하는 고해상도의 최종 화상(1720)을 산출하기 위해 클러스터 처리 소프트웨어(330)에 의해 산출된 클러스터 화상에 기초하여, 화상처리된 입력 문서내의 각 화상에 대해 화상 보간처리를 수행하기 위한 고해상도 보간처리 엔진(1712)을 포함한다.
하나의 구현예에서, 사후-OCR 처리 엔진(1710)은 다음과 같이 동작한다. 제일 먼저, 클러스터 생성 소프트웨어(320)는 200dpi 또는 300dpi의 저해상도를 갖는 OCR 출력(302)을 수신 및 처리하여 클러스터(322)를 산출시킨다. 택일적 사항으로서, 클러스터 생성 소프트웨어(320)는 OCR 엔진(300)에 의해 생성된 테두리 박스용 클립 화상들에 대한 그레이 스케일 또는 칼라 정보를 원본 문서로부터 획득하는데 사용될 수 있다. 그런 후 각각의 클립 화상들에 대한 그레이 스케일 또는 칼라 정보가 클러스터(322)를 생성하기 위해 클러스터 생성 소프트웨어(320)에 의해 사용된다. 다음으로, 클러스터 처리 소프트웨어(330)가 향상된 OCR 정확성을 갖는 수정된 클러스터(332)를 산출하기 위해 클러스터 형상을 기초로 클러스터를 특성화 또는 수정하도록 클러스터(322)를 처리한다. 클러스터 처리 소프트웨어(330)는 선택된 클러스터 화상, 예컨대 섬 클러스터 또는 기타 의심 클러스터 화상에 대한 OCR 문자 코드의 할당을 검증 또는 정정하기 위해 상술한 클러스터 레벨 수동 식별 방법과 같은 수동 식별 프로세스를 제공할 수 있다. 높은 신뢰도 점수를 갖는 클러스터들(322)의 클러스터 화상을 기초로 선택된 각각의 의심 클러스터를 분할하기 위해 슬라이딩 윈도우 처리가 또한 하나 이상의 선택된 의심 클러스터에 적용될 수 있다. 클러스터링 처리 이후에, 수정된 클러스터(332)는 일반적으로 초기 클러스터(322)와 비교하여 향상된 신뢰도 점수와 강화된 OCR 정확성을 갖는다. 수정된 클러스터(332) 각각의 해상도는 본질적으로 클러스터(322) 각각의 해상도와 동일하 다.
다음으로, 고해상도 보간처리 엔진(1712)은 화상 보간처리 알고리즘을 각 클러스터내의 각각의 클립 화상들에 적용하고 각각의 클립 화상들 마다의 고해상도 클립 화상을 산출시킨다. 쌍일차(bilinear) 보간처리 알고리즘을 포함하여 다양한 보간처리 알고리즘이 사용될 수 있다. 그 결과로, 모든 클립 화상들은 보간처리 이전의 해상도보다 높은 해상도를 갖도록 변환된다. 예로서, 300dpi 클립 화상이 1200dpi 클립 화상으로 보간처리될 수 있다. 각각의 클러스터 마다, 보간처리된 클립 화상들의 중심점이 계산되고 보간처리된 클립 화상들은 자신들의 중심점에서 정렬된다. 각각의 클러스터 마다의 보간처리되고 정렬된 클립 화상들은 클러스터 화상으로서의 평균 화상을 산출하도록 평균화된다. 각각의 클립 화상들의 보간처리 및 평균화 동작으로 인해, 이러한 클러스터 화상은 보간처리가 없는 클러스터 화상보다 높은 해상도를 갖는다. 그런 후 고해상도 보간처리 엔진(1712)은 입력 문서의 화상의 복제물로서의 고해상도 문서(1720)를 산출시키기 위해 화상처리된 입력 문서내의 해당 클러스터내의 모든 화상 인스턴스들을 각각의 고해상도 클러스터 화상을 이용하여 교체시킨다. 이러한 복제물(1720)은 보간처리된 고해상도의 문서를 출력하기 위해 프린터로 보내질 수 있다.
도 17에서 도시된 시스템은 통신 네트워크내에서 하나 이상의 컴퓨터 서버에서 구현될 수 있다. 네트워크내의 클라이언트 컴퓨터는 문서 화상의 고해상도 복제물을 요청하기 위해 저해상도 문서 화상을 하나 이상의 컴퓨터 서버에 보낼 수 있다. 하나 이상의 컴퓨터 서버상의 OCR 엔진 및 사후-OCR 처리 엔진은 클라이언트의 문서 화상을 처리하고, 고해상도 복제물을 산출시킨다. 고해상도 복제물은 통신 네트워크를 통해 클라이언트 컴퓨터에 보내질 수 있거나 또는 통신 네트워크에 접속된 프린터에서 인쇄될 수 있다.
본 명세서에서 설명된 공개 실시예들 및 기타 실시예들 그리고 기능 동작들은 디지탈 전자 회로내, 또는 본 명세서에서 개시된 구조물 및 이들의 구조적 등가물을 포함하는 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어내, 또는 이들의 하나 이상의 조합으로 구현될 수 있다. 공개 실시예들 및 기타 실시예들은 하나 이상의 컴퓨터 프로그램 제품, 즉 데이터 처리 장치에 의해 실행되거나 또는 데이터 처리 장치의 동작을 제어하기 위한 컴퓨터 판독가능 매체상에 내장된 컴퓨터 프로그램 명령어의 하나 이상의 모듈으로서 구현될 수 있다. 컴퓨터 판독가능 매체는 머신-판독가능 저장 장치, 머신-판독가능 저장 기판, 메모리 장치, 머신-판독가능 전송 신호를 구축하기 위한 물체의 조성물, 또는 이들의 하나 이상의 조합일 수 있다. 용어 "데이터 처리 장치"는 프로그램가능 프로세서, 컴퓨터, 또는 다수의 프로세서 또는 컴퓨터의 예를 포함하여, 모든 장치, 장비, 및 머신을 망라한다. 장치는 하드웨어에 더하여, 해당 컴퓨터 프로그램을 위한 실행 환경을 생성하는 코드(예컨대, 프로세서 펌웨어를 구성하는 코드), 프로토콜 스택, 데이터베이스 관리 시스템, 운영 시스템, 또는 이들 중 하나 이상의 조합을 포함할 수 있다. 전송 신호는 인공적으로 생성된 신호, 예컨대, 적절한 수신기 장치로의 전송 정보를 인코딩하기 위해 생성되는 머신-생성 전기적, 광학적 또는 전자기적 신호이다.
컴퓨터 프로그램(이는 또한 프로그램, 소프트웨어, 소프트웨어 애플리케이 션, 스크립트, 또는 코드로서도 알려져 있다)은 컴파일되거나 해석된 언어를 포함하여 임의의 형태의 프로그래밍 언어로 기록될 수 있고, 독립형 프로그램로서 또는 모듈, 컴포넌트, 서브루틴, 또는 컴퓨팅 환경에서 사용되는 적절한 기타 유닛으로서 배치되는 것을 포함하여 임의의 형태로 배치될 수 있다. 컴퓨터 프로그램은 화일 시스템내의 화일과 반드시 대응하는 것은 아니다. 프로그램은 기타 프로그램 또는 데이터(예컨대, 마크업 언어 문서내에 저장된 하나 이상의 스크립트)를 소유하는 화일의 일부내에, 해당 프로그램 전용의 단일 화일 또는 다수의 조화된(coordinate) 화일들(예컨대, 하나 이상의 모듈, 서브 프로그램, 또는 코드 부분을 저장하는 화일들)로 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 하나의 장소에 위치되거나 또는 다수의 장소에 걸쳐 분포되어 통신 네트워크에 의해 상호접속된 다수의 컴퓨터상에서 실행되도록 배치될 수 있다.
본 명세서에서 설명된 프로세스 및 논리 흐름은 입력 데이터에 대해 동작하고 출력을 생성시킴으로써 기능을 수행하도록 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램가능 프로세서에 의해 수행될 수 있다. 프로세스 및 논리 흐름은 또한 예컨대, FPGA(필드 프로그램가능 게이터 어레이) 또는 ASIC(응용 특정 집적 회로)의 특수 목적의 논리 회로에 의해 수행될 수 있고, 이러한 논리 회로로서 장치가 구현될 수도 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는 예로서 범용 또는 특수목적의 마이크로프로세서와, 그리고 임의의 종류의 디지탈 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 ROM 또는 RAM 또는 이들 모두로부터 명령과 데이터를 수신할 것이다. 컴퓨터의 필수 구성요소는 명령을 수행하는 프로세서와 명령과 데이터를 저장하는 하나 이상의 메모리 장치이다. 일반적으로, 컴퓨터는 또한, 데이터를 저장하는 하나 이상의 대량 저장 장치, 예컨대 자기 디스크, 광자기 디스크 또는 광학 디스크를 포함할 수 있거나, 또는 이러한 장치로 데이터를 전송하거나 이러한 장치로부터 데이터를 수신하도록 동작적으로 결합될 수 있을 것이다. 하지만, 컴퓨터는 이와 같은 장치를 가질 필요는 없다. 컴퓨터 프로그램 명령 및 데이터를 저장하는데 적합한 컴퓨터-판독가능 매체는 예컨대, EPROM, EEPROM, 및 플래쉬 메모리 장치; 내부 하드 디스크 또는 제거가능 디스크; 광자기 디스크, 및 CD-ROM 및 DVD-ROM 디스크와 같은 자기 디스크의 예들을 포함하여, 모든 형태의 비휘발성 메모리, 매체 및 메모리 장치를 포함한다. 프로세서 및 메모리는 특수 목적의 논리 회로에 의해 부가될 수 있거나 또는 이러한 논리 회로내에 병합될 수 있다.
사용자와의 상호작용을 제공하기 위해, 공개된 실시예들은 예컨대, 사용자에게 정보를 디스플레이해주기 위한 CRT(음극선 관) 또는 LCD(액정 디스플레이) 모니터와 같은 디스플레이 장치, 사용자가 컴퓨터에게 입력을 제공할 수 있도록 해주는 키보드 및 포인팅 장치(예컨대, 마우스 또는 트랙볼)를 갖는 컴퓨터상에서 구현될 수 있다. 다른 종류의 장치들이 또한 사용자와의 상호작용을 제공하는데 사용될 수 있으며, 예컨대, 사용자에게 제공되는 피드백은 시각적 피드백, 청각적 피드백, 또는 촉감적 피드백과 같은 임의의 형태의 감각적 피드백일 수 있고, 사용자로부터의 입력은 음향적, 음성적, 또는 촉감적 입력을 포함하는 임의의 형태로 수신될 수 있 다.
공개된 실시예들은 예컨대 데이터 서버로서의 백-엔드(back-end) 컴포넌트를 포함하거나, 또는 예컨대 응용 서버로서의 미들웨어 컴포넌트를 포함하거나, 또는 예컨대, 사용자가 본 명세서에서 개시된 것의 구현물과 상호작용가능케 해주는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터와 같은 프론트-엔드(front-end) 컴포넌트를 포함하거나, 또는 하나 이상의 백-엔드, 미들웨어, 또는 프론트-엔트 컴포넌트들의 임의의 조합을 포함하는 컴퓨팅 장치에서 구현될 수 있다. 본 시스템의 컴포넌트들은 예컨대, 통신 네트워크와 같은 임의의 디지탈 데이터 통신 형태 또는 디지탈 데이터 통신 매체에 의해 상호연결될 수 있다. 통신 네트워크의 예로는 근거리 네트워크("LAN") 및 인터넷과 같은 광역 네트워크("WAN")를 포함한다.
공개된 실시예들을 구현하기 위한 시스템은 클라이언트 컴퓨터(클라이언트)와 컴퓨터 서버(서버)를 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로 멀리 떨어져 있으며, 이들은 일반적으로 통신 네트워크를 통해 상호작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터상에서 구동되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들에 의해 발생할 수 있다.
도 18은 OCR 처리 및 사후-OCR 처리를 이행하는 예시적인 컴퓨터 시스템을 도시한다. 본 시스템은 컴퓨터와 같은 네트워크(1800)에 접속된 통신 장치가 통신할 수 있도록 해주는 통신 네트워크(1800)를 포함한다. 예를 들어, 통신 네트워크(1800)는 기업체내의 컴퓨터 네트워크와 같은 단일 컴퓨터 네트워크 또는 인터넷 과 같은 상호접속된 컴퓨터 네트워크들의 네트워크일 수 있다. 하나 이상의 OCR 서버(1810)가 통신 네트워크(1800)에 접속되어 본 명세서에서 설명된 (1) OCR 처리를 위한 하나 이상의 OCR 엔진과 (2) 사후-OCR 처리를 위한 하나 이상의 사후-OCR 처리 엔진을 제공한다. OCR 처리를 위한 하나 이상의 OCR 엔진은 또한 하나 이상의 사후-OCR 처리 엔진을 제공하는 하나 이상의 컴퓨터 서버들과 다른 컴퓨터 서버들상에 배치될 수 있다. 동작시, 하나 이상의 클라이언트 컴퓨터[예컨대, 클라이언트(1801, 1802)]는 통신 네트워크(1800)를 이용하여 OCR 서비스를 위한 OCR 서버(1810)에 원격적으로 액세스할 수 있다. 클라이언트(1801)는 예컨대, 화상처리된 문서의 OCR 처리 요청을 OCR 서버(1810)에 보낼 수 있다. 클라이언트(1801)는 화상처리된 문서를 OCR 서버(1810)에 보낸다. 화상처리된 문서를 수신한 후에, OCR 서버(1801)는 화상처리된 문서를 OCR 처리를 위한 하나 이상의 OCR 엔진에 전달한다. 그런 다음 OCR 엔진으로부터의 OCR 출력은 추가적인 처리를 위해 사후-OCR 처리 엔진에 보내져서 수정된 OCR 출력이 산출된다. 그 후 OCR 서버(1810)는 수정된 OCR 출력을 클라이언트(1801)에 보낸다. 도 16 및 도 17에서 설명된 고해상도 인쇄는 또한 도 18에서의 시스템에서 구현될 수 있다.
도 19는 상술한 OCR 처리 및 사후-OCR 처리를 기초로 온라인 OCR 서비스를 제공하는 예시적인 컴퓨터 시스템을 도시한다. 이 시스템은 하나 이상의 OCR 저장 서버(1920)를 이용하여 예컨대, 선택된 책 및 기사와 같은 선택된 문서 화상에 대한 OCR 출력의 검색가능 라이브러리를 저장한다. 사용자는 OCR 저장 서버(1920)에 액세스하여 관심있는 특정 문서에 대한 OCR 텍스트 문서를 검색 및 회수할 수 있 다. 본 시스템은 컴퓨터와 같은 네트워크(1900)에 접속된 통신 장치가 통신할 수 있도록 해주는 통신 네트워크(1900)를 포함한다. 예를 들어, 통신 네트워크(1900)는 기업체내의 컴퓨터 네트워크와 같은 단일 컴퓨터 네트워크 또는 인터넷과 같은 상호접속된 컴퓨터 네트워크들의 네트워크일 수 있다. 하나 이상의 OCR 서버(1910)가 통신 네트워크(1900)에 접속되어 본 명세서에서 설명된 (1) OCR 처리를 위한 하나 이상의 OCR 엔진과 (2) 사후-OCR 처리를 위한 하나 이상의 사후-OCR 처리 엔진을 제공한다. OCR 처리를 위한 하나 이상의 OCR 엔진은 또한 하나 이상의 사후-OCR 처리 엔진을 제공하는 하나 이상의 컴퓨터 서버들과 다른 컴퓨터 서버들상에 배치될 수 있다. 통신 네트워크(1900)에는 또한 OCR 서버(1910)상에서의 OCR 처리 및 사후-OCR 처리에 의한 검색가능한 사전처리된 OCR 출력을 저장하는 하나 이상의 OCR 저장 서버(1920)가 접속된다. OCR 저장 서버(1920)에 OCR 출력을 제공하기 위해 OCR 서버(1910)상에서의 OCR 처리 및 사후-OCR 처리를 제어하도록 시스템 관리 제어가 도 19에서의 시스템내에 제공된다. OCR 저장 서버(1920)내의 사전처리된 OCR 출력은 검색 및 회수를 위해 색인표시되고 목록화된다. 선택된 문서에 대한 새로운 OCR 출력이 OCR 서버(1910)로부터 수신될 때마다, OCR 저장 서버(1920)내의 데이터베이스는 업데이트된다. 동작시, 하나 이상의 클라이언트 컴퓨터[예컨대, 클라이언트(1901, 1902)]는 희망하는 OCR 출력을 회수하기 위해 통신 네트워크(1900)를 이용하여 OCR 저장 서버(1920)에 원격적으로 액세스하거나 또는 이를 검색할 수 있다. 클라이언트(1901)는 예컨대, 화상처리된 문서의 OCR 출력 요청을 OCR 저장 서버(1920)에 보낼 수 있거나 또는 화상처리된 문서의 OCR 출력을 데이터베이스에 서 검색하기 위해 저장 서버(1920)에 액세스할 수 있다. 만약 요청된 OCR 출력이 저장 서버(1920)내에 존재하면, 서버(1920)는 클라이언트(1901)에게 OCR 출력을 보낸다. 그렇지 않은 경우, 클라이언트(1901)는 요청된 OCR 출력이 현재 이용가능하지 않음을 통지받는다. 서버(1920)는 OCR 요청을 기록해둘 수 있고, 시스템 관리 제어는, 요청 기록에 기초하여, OCR 처리와 사후-OCR 처리를 제어하여 사용자에 의해 OCR 서비스가 요청되었지만 OCR 출력이 서버(1920)상에 저장되지 않은 선택된 새로운 문서 화상을 처리한다. 도 16 및 도 17에서 설명된 고해상도 인쇄는 또한 도 19에서의 시스템에서 구현될 수 있다.
본 명세서는 수 많은 특정사항들을 포함하지만, 이들은 임의의 발명의 범위 또는 청구될 수 있는 대상의 범위에 대한 제한으로서 해석되서는 안되고, 오히려 특정 실시예들에 특정한 특징들의 설명으로서 해석되어야 한다. 개별적인 실시예들을 통해 본 명세서에서 설명된 어떠한 특징들은 또한 단일 실시예에서 조합의 형태로 구현될 수 있다. 반대로, 단일 실시예를 통해 설명된 다양한 특징들은 또한 다수의 실시예들에서 개별적으로 구현될 수 있거나 또는 임의의 적절한 서브조합형태로 구현될 수 있다. 또한, 특징들이 어떠한 조합형태로 작용하는 것으로서 상술되고 심지어 이와 같이 처음에 청구되지만, 청구된 조합으로부터의 하나 이상의 특징들이 일부 경우에서 제거될 수 있고, 청구된 조합은 서브조합 또는 서브조합의 변형에 대한 것일 수 있다.
마찬가지로, 동작들이 도면들에서 특정한 순서로 도시되었지만, 이것은 이와 같은 동작들이 도시된 특정 순서로 또는 순차적 순서로 수행되거나, 또는 언급된 모든 동작들이 희망하는 결과를 얻기 위해 수행되는 것을 요구하는 것으로서 이해해서는 안된다. 어떤 환경에서는, 멀티태스킹 및 병렬적 처리가 이로울 수 있다. 또한, 상술된 실시예들에서의 다양한 시스템 컴포넌트들의 분리가 모든 실시예들에서의 그러한 분리를 요구하는 것으로서 이해해서는 안되고, 설명한 프로그램 컴포넌트 및 시스템은 대체로 단일 소프트웨어 제품내에 함께 통합될 수 있거나 또는 다수의 소프트웨어 제품들로 패키징될 수 있음을 이해해야 한다.
이에 따라, 특정 실시예들이 설명되었다. 이하의 청구범위의 범위내에 기타의 실시예들이 존재한다.

Claims (205)

  1. 광학 문자 인식(OCR)을 위한 방법으로서,
    광학 문자 인식(OCR) 프로세스에 의해 처리된 문서의 수신된 OCR 출력내에서 정의된 클립 화상들을 상기 클립 화상들의 복수의 클러스터들로 분류시키는 단계로서, 상기 클러스터들 각각은 상기 OCR 프로세스에 의해 하나 이상의 동일한 문자 코드가 할당된 클립 화상들을 포함하는 것인, 상기 분류 단계;
    상기 복수의 클러스터들 각각내의 클립 화상들을 처리하여 각각의 클러스터에 대한 클러스터 화상을 생성하는 단계;
    상기 OCR 프로세스에 의해 하나 이상의 OCR 문자 코드가 잘못 할당되었던 클러스터를 검출하기 위해 클러스터 화상들을 비교하는 단계;
    수용가능한 클러스터에 할당된 하나 이상의 OCR 문자 코드를 이용하여, 상기 OCR 출력내에서 하나 이상의 잘못 할당된 OCR 문자 코드를 갖는 것으로 검출된 제1 클러스터에, OCR 엔진에 의해, 하나 이상의 새로운 OCR 문자 코드들을 할당하는 단계; 및
    수정된 OCR 출력을 산출하기 위해 상기 하나 이상의 새로운 OCR 문자 코드들을 이용하여 상기 OCR 출력내의 상기 제1 클러스터의 클립 화상들의 각각의 발생(occurrence)에서 상기 잘못 할당된 OCR 문자 코드를 교체시키는 단계를 포함하며,
    상기 클립 화상들 각각은 상기 수신된 OCR 출력내의 테두리 박스에 의해 정의되고, 상기 클러스터들은 (1) 각각의 클립 화상들이 상기 수신된 OCR 출력내의 단일 테두리 박스와 연계되어 있는 클러스터들, 및 (2) 각각의 클립 화상들이 상기 수신된 OCR 출력내의 두 개 이상의 인접하는 테두리 박스들과 연계되어 있는 클러스터들을 포함하는 것인, 광학 문자 인식 방법.
  2. 제 1 항에 있어서, 상기 각각의 클러스터내의 클립 화상들은 상기 OCR 엔진에 의해 특정 형상과 특정 클립 화상 크기를 갖는 것으로 인식되는 것인, 광학 문자 인식 방법.
  3. 삭제
  4. 제 1 항에 있어서,
    상기 수신된 OCR 출력내의 연합 클립 화상들을 그 형상 및 크기에 기초하여 연합 클립 화상들의 복수의 연합 클러스터들로 분류하는 단계로서, 상기 연합 클립 화상들 각각은 상기 수신된 OCR 출력내에서 두 개 이상의 인접하는 테두리 박스들과 연계된 두 개 이상의 클립 화상들의 조합인 것인, 상기 분류 단계; 및
    상기 클러스터들에 대한 각각의 처리를 상기 연합 클러스터들에 적용하는 단계
    를 더 포함하는, 광학 문자 인식 방법.
  5. 제 1 항에 있어서, 상기 각각의 클러스터들에 대한 클러스터 화상은 상기 각각의 클러스터들내의 클립 화상들의 평균으로부터 얻어지는 것인, 광학 문자 인식 방법.
  6. 제 1 항에 있어서, 상기 각각의 클러스터들에 대한 상기 클러스터 화상은 상기 각각의 클러스터들내의 상기 클립 화상들 중 하나의 클립 화상으로부터 선택되는 것인, 광학 문자 인식 방법.
  7. 제 1 항에 있어서,
    상기 OCR 출력내의 클러스터에 할당된 하나 이상의 OCR 문자 코드들내에 에러가 존재하는지를 검출하기 위해 각각의 클러스터 및 이와 다른 클러스터들 사이의 클러스터 화상에서의 형상 차이를 이용하는 단계를 더 포함하는, 광학 문자 인식 방법.
  8. 제 7 항에 있어서, 두 개의 클러스터들 사이의 형상 차이의 척도(measure)로서 클러스터 화상들 사이의 형상 계측 거리(distance)를 획득하는 단계를 더 포함하는 것인, 광학 문자 인식 방법.
  9. 제 8 항에 있어서, 제2 클러스터가 다른 모든 클러스터들 중에서 상기 제1 클러스터로부터 가장짧은 형상 계측 거리를 갖고 상기 제1 클러스터보다 높은 신뢰도 점수를 갖는 경우에, 상기 제1 클러스터에 할당된 하나 이상의 제1 OCR 문자 코드를, 상기 수정된 OCR 출력내에서 사용된 상기 제1 클러스터에 대한 새롭게 할당된 하나 이상의 OCR 문자 코드로서, 상기 제2 클러스터에 할당된 하나 이상의 상이한 제2 OCR 문자 코드들로 교체하는 단계를 더 포함하는, 광학 문자 인식 방법.
  10. 제 9 항에 있어서, 상기 제2 클러스터에 대한 상기 하나 이상의 제2의 OCR 문자 코드들은 대응하는 클립 화상의 수동 식별에 기초하여 생성되는 것인, 광학 문자 인식 방법.
  11. 제 8 항에 있어서, 다른 모든 클러스터들 중 임의의 클러스터로부터, 문턱(threshold) 형상 계측 거리보다 큰 형상 계측 거리를 갖는 클러스터를 선택하고 이 클러스터를 추가적으로 처리하여 상기 선택된 클러스터에 현재 할당된 하나 이상의 OCR 문자 코드들을 검증하는 단계를 더 포함하는, 광학 문자 인식 방법.
  12. 제 11 항에 있어서,
    상기 선택된 클러스터의 클러스터 화상의 수동 식별을 요청하는 단계; 및
    상기 수동 식별을 이용하여, 상기 선택된 클러스터에 할당된 하나 이상의 OCR 문자 코드들을 검증하거나 또는 이를 대체할 하나 이상의 새로운 OCR 문자 코드들을 생성하는 단계
    를 더 포함하는, 광학 문자 인식 방법.
  13. 제 9 항에 있어서, 상기 제2 클러스터는 상기 제1 클러스터보다 많은 수의 클립 화상들을 갖는 것인, 광학 문자 인식 방법.
  14. 제 1 항에 있어서,
    상기 하나 이상의 OCR 문자 코드가 잘못할당되었던 클러스터들을 검출하기 위해 상기 클러스터 화상들을 비교하는 단계는,
    상기 하나 이상의 동일한 문자 코드가 할당된 각각의 클러스터의 클러스터 화상과 다른 모든 클러스터들 각각 사이의 형상 계측 거리를 각각의 클러스터들 간의 거리로서 판정하는 단계; 및
    제2 클러스터가 상기 제1 클러스터와 동일한 하나 이상의 문자 코드들이 할당된 다른 클러스터들 보다 상기 제1 클러스터에 가까운 경우, 상기 제1 클러스터에 할당된 상기 하나 이상의 문자 코드들과는 다른 하나 이상의 문자 코드들이 상기 제2 클러스터에 할당된 경우, 및 상기 제2 클러스터가 상기 제1 클러스터보다 높은 신뢰도 레벨을 갖는 경우에, 잘못 할당된 하나 이상의 OCR 문자 코드들을 갖는 상기 제1 클러스터를 검출하는 단계
    를 포함하는 것인, 광학 문자 인식 방법.
  15. 제 1 항에 있어서, 각각의 클러스터 화상을 획득하기 위해 각각의 클립 화상들에 대한 문서의 원본 화상내의 그레이 스케일 정보 또는 칼라 정보를 이용하는 단계를 더 포함하는, 광학 문자 인식 방법.
  16. 제 15 항에 있어서,
    서로다른 클러스터들 간의 형상 거리를 획득하기 위해 상기 문서의 원본 화상내의 그레이 스케일 정보 또는 칼라 정보를 이용하는 단계; 및
    상기 클러스터 화상들을 비교하기 위해 상기 형상 거리를 이용하는 단계
    를 더 포함하는, 광학 문자 인식 방법.
  17. 제 1 항에 있어서,
    각각의 클립 화상들의 중심점을 획득하는 단계;
    서로다른 클립 화상들의 상기 획득된 중심점들에 관하여 클러스터내의 서로다른 클립 화상들을 정렬시키는 단계; 및
    상기 클러스터에 대한 클러스터 화상을 생성하기 위해 상기 클러스터에 대한 상기 정렬된 클립 화상들의 평균 화상을 획득하는 단계
    를 더 포함하는, 광학 문자 인식 방법.
  18. 제 17 항에 있어서,
    상기 OCR 출력은 상기 OCR 엔진에 의해 산출된 각각의 클립 화상들을 식별해주는 테두리 박스를 포함하며,
    상기 각각의 클립 화상들의 중심점은 각각의 테두리 박스에 의해 정의된 화상 영역의 중심점에 의해 획득되는 것인, 광학 문자 인식 방법.
  19. 제 17 항에 있어서, 상기 각각의 클립 화상들의 중심점을 획득하기 위해 상기 문서의 원본 화상내의 상기 각각의 클립 화상들에 대한 그레이 스케일 정보 또는 칼라 정보를 이용하는 단계를 더 포함하는, 광학 문자 인식 방법.
  20. 제 17 항에 있어서, 상기 각각의 클립 화상들의 중심점을 획득하기 위해 상기 문서의 상기 OCR 출력내의 각각의 클립 화상들에 대한 화상 정보를 이용하는 단계를 더 포함하는, 광학 문자 인식 방법.
  21. 제 20 항에 있어서, 상기 문서의 상기 OCR 출력내의 각각의 클립 화상들에 대한 화상 정보는 이진 화상 정보인 것인, 광학 문자 인식 방법.
  22. 제 1 항에 있어서, 문턱 갯수 보다 작은 갯수의 클립 화상들을 갖는 클러스터를 선택하고 이 클러스터를 추가적으로 처리하여 상기 선택된 클러스터에 현재 할당된 하나 이상의 대응하는 OCR 문자 코드들을 검증하는 단계를 더 포함하는, 광학 문자 인식 방법.
  23. 제 22 항에 있어서,
    사람으로부터 상기 선택된 클러스터의 클러스터 화상의 수동 식별을 요청하는 단계; 및
    상기 사람에 의한 수동 식별을 이용하여, 상기 선택된 클러스터에 할당된 상기 하나 이상의 OCR 문자 코드들을 검증하거나 또는 이를 대체할 하나 이상의 세로운 OCR 문자 코드들을 생성하는 단계
    를 더 포함하는, 광학 문자 인식 방법.
  24. 제 1 항에 있어서,
    사람으로부터 수동 식별을 요청하기 위해 클러스터의 클러스터 화상을 선택하는 단계; 및
    상기 사람에 의한 수동 식별을 이용하여 선택된 클러스터에 할당된 하나 이상의 OCR 문자 코드들을 검증 또는 정정하는 단계
    를 더 포함하는, 광학 문자 인식 방법.
  25. 제 1 항에 있어서,
    선택된 클러스터의 클러스터 화상을 온라인 서버에 전달하는 단계로서, 상기 온라인 서버는 상기 클러스터 화상의 수동 식별을 위해 하나 이상의 사용자들에게 상기 클러스터 화상을 전달하도록 동작하는 것인, 상기 전달 단계; 및
    상기 온라인 서버로부터 회답된 상기 클러스터 화상의 수동 식별을 이용하여 상기 선택된 클러스터에 대해 할당된 하나 이상의 OCR 문자 코드들을 검증하거나 또는 상기 선택된 클러스터에 대해 하나 이상의 새로운 OCR 문자 코드들을 할당하는 단계
    를 더 포함하는, 광학 문자 인식 방법.
  26. 제 25 항에 있어서,
    상기 온라인 서버에 의해 제공된 온라인 게임을 이용하여 상기 온라인 게임의 일부로서 상기 선택된 클러스터의 클러스터 화상을 사용자 응답을 위해 상기 하나 이상의 사용자들에게 공급하는 단계를 더 포함하는, 광학 문자 인식 방법.
  27. 제 25 항에 있어서, 상기 온라인 서버에 의해 제공된 온라인 서비스를 이용하여 도전-응답 테스트의 일부로서 상기 선택된 클러스터의 클러스터 화상을 공급하는 단계를 더 포함하는, 광학 문자 인식 방법.
  28. 제 27 항에 있어서, 상기 도전-응답 테스트는 상기 온라인 서비스의 사용자가 사람인지 아닌지의 여부를 판정하기 위한 것인, 광학 문자 인식 방법.
  29. 제 1 항에 있어서,
    기결정된 문턱값 이상의 신뢰도 점수를 포함하는 클러스터의 클러스터 화상을 클러스터 화상 템플릿으로서 선택하는 단계;
    상기 수신된 OCR 출력에서의 단어의 화상내의 복수의 서로다른 부분들과 상기 클러스터 화상 템플릿을, 한번에 하나의 부분씩, 미리결정된 방향을 따라 정렬시키는 단계;
    상기 클러스터 화상 템플릿과 상기 단어 화상의 복수의 서로다른 부분들 간의 형상 계측 거리들을 각각 획득하는 단계;
    상기 획득된 형상 계측 거리들을 이용하여 상기 단어 화상의 일부분이 상기 클러스터 화상 템플릿과 매칭하는지 여부를 판정하는 단계;
    상기 클러스터 화상 템플릿과 매칭하는 상기 단어 화상의 매칭 부분을 상기 단어 화상의 하나 이상의 다른 부분들로부터 분리시키는 단계; 및
    상기 수정된 OCR 출력에서 상기 클러스터에 할당된 하나 이상의 OCR 문자 코드들을 상기 단어 화상의 상기 분리된 정합 부분에 할당하는 단계
    를 더 포함하는, 광학 문자 인식 방법.
  30. 제 1 항에 있어서,
    제1 클러스터의 제1 클러스터 화상을 클러스터 화상 템플릿으로서 선택하는 단계;
    선택된 제2 클러스터의 제2 클러스터 화상내의 복수의 서로다른 부분들과 상기 클러스터 화상 템플릿을, 한번에 하나의 부분씩, 미리결정된 방향을 따라 정렬시키는 단계;
    상기 클러스터 화상 템플릿과 상기 제2 클러스터 화상의 복수의 서로다른 부분들 간의 형상 계측 거리들을 각각 획득하는 단계;
    상기 획득된 형상 계측 거리들을 이용하여 상기 제2 클러스터 화상의 일부분이 상기 클러스터 화상 템플릿과 매칭하는지 여부를 판정하는 단계;
    형성될 제3 클러스터를 위한 새로운 제3 클러스터 화상으로서 상기 클러스터 화상 템플릿과 매칭하는 상기 제2 클러스터 화상의 매칭 부분을 이용하는 단계;
    상기 클러스터 화상 템플릿에 대응하는 상기 제2 클러스터에서의 각각의 클립 화상들내의 대응하는 부분들을 분리시켜 새로운 클립 화상을 형성하는 단계;
    상기 제2 클러스터내의 클립 화상들로부터 각각 분리된 새로운 클립 화상들을 이용하여 상기 제3 클러스터를 형성하는 단계;
    상기 제1 클러스터에 할당된 하나 이상의 OCR 문자 코드들을 상기 제3 클러스터에 할당하는 단계;
    상기 제3 클러스터에 대한 상기 새로운 클립 화상들의 분리 이후에 상기 제2 클러스터의 나머지 클립 화상들을 이용하여 적어도 하나의 제4 클러스터를 형성하는 단계; 및
    상기 제3 클러스터와 상기 적어도 하나의 제4 클러스터를 이용하여 상기 수정된 OCR 출력을 산출할 때에 상기 제2 클러스터를 교체하는 단계
    를 더 포함하는, 광학 문자 인식 방법.
  31. 제 30 항에 있어서, 상기 제2 클러스터 화상은 상기 문서에서 이용된 하나 이상의 언어에 대한 적어도 두 개의 언어 토큰(token)을 표시하는 합자(ligature)의 화상인 것인, 광학 문자 인식 방법.
  32. 제 30 항에 있어서,
    상기 제4 클러스터의 클러스터 화상과 이와 다른 클러스터들의 클러스터 화상 사이의 형상 계측 거리를 획득하는 단계; 및
    다른 모든 클러스터들 중에서 상기 제4 클러스터로부터 가장짧은 형상 계측 거리를 갖는 제5 클러스터에 할당되는 하나 이상의 OCR 문자 코드들을 상기 제4 클러스터에 할당하는 단계
    를 더 포함하는, 광학 문자 인식 방법.
  33. 제 30 항에 있어서,
    사람으로부터 상기 제4 클러스터의 상기 클러스터 화상의 수동 식별을 요청하는 단계; 및
    상기 사람에 의한 상기 수동 식별을 이용하여, 상기 제4 클러스터에 대한 하나 이상의 새로운 OCR 문자 코드들을 생성하는 단계
    를 더 포함하는, 광학 문자 인식 방법.
  34. 제 1 항에 있어서, OCR 문자 코드는 상기 문서에서 사용된 문자를 표시하는 컴퓨터 코드인 것인, 광학 문자 인식 방법.
  35. 제 34 항에 있어서, 상기 문자는 글자, 숫자, 및 구두점 부호, 인쇄 부호 또는 발음구별 부호 중 하나를 포함하는 심볼 또는 부호 중 하나를 포함하는 것인, 광학 문자 인식 방법.
  36. 제 1 항에 있어서,
    각각의 클러스터내의 복수의 화상들 및 각각의 클러스터들의 다른 클러스터들에 대한 형상 계측 거리를 이용하여, 상기 복수의 클러스터들을 수용가능 클러스터들과 의심 클러스터들로 분류시키는 단계로서, 각각의 수용가능 클러스터에 대해 할당된 하나 이상의 특정 문자들은 추가적인 처리없이 상기 수정된 출력에서 사용되고, 각각의 의심 클러스터에 대해 할당된 하나 이상의 특정 문자들은 추가적인 처리가 되도록 표시되는 것인, 상기 분류 단계;
    상기 수용가능 클러스터가 상기 의심 클러스터로부터 가장짧은 형상 계측 거리를 갖고 상기 의심 클러스터보다 많은 갯수의 화상들을 갖는 경우에, 상기 의심 클러스터에 대해 할당된 하나 이상의 특정 문자들을 상기 의심 클러스터에 대한 새롭게 정정되어 할당되는 하나 이상의 특정 문자들로서 상기 수용가능 클러스터에 대해 할당된 하나 이상의 특정 문자들로 교체하는 단계; 및
    상기 의심 클러스터에 대한 상기 새롭게 정정되어 할당된 하나 이상의 특정 문자들을 이용하여 상기 의심 클러스터내의 화상이 나타나는 상기 문서에 대한 상기 수정된 출력에서 각각의 인스턴스를 표시하는 단계
    를 더 포함하는, 광학 문자 인식 방법.
  37. 제 1 항에 있어서,
    각각의 클러스터내의 복수의 화상들 및 각각의 클러스터들의 다른 클러스터들에 대한 형상 계측 거리를 이용하여, 상기 복수의 클러스터들을 수용가능 클러스터들과 의심 클러스터들로 분류시키는 단계로서, 각각의 수용가능 클러스터에 대해 할당된 하나 이상의 특정 문자들은 추가적인 처리없이 상기 수정된 출력에서 사용되고, 각각의 의심 클러스터들에 대해 할당된 하나 이상의 특정 문자들은 추가적인 처리가 되도록 표시되는 것인, 상기 분류 단계;
    사람에 의해 수동적으로 식별될 의심 클러스터의 클러스터 화상을 선택하는 단계;
    선택된 의심 클러스터에 대해 상기 사람에 의해 회답된 하나 이상의 수동으로 생성된 문자들을 이용하여 상기 선택된 의심 클러스터에 대해 이전에 할당된 하나 이상의 특정 문자들을 검증 또는 교체하는 단계; 및
    상기 하나 이상의 수동으로 생성된 문자들이 할당된 상기 선택된 의심 클러스터를 수용가능 클러스터로서 재분류하는 단계
    를 더 포함하는, 광학 문자 인식 방법.
  38. 제 1 항에 있어서,
    각각의 클러스터내의 복수의 화상들 및 각각의 클러스터들의 다른 클러스터들에 대한 형상 계측 거리를 이용하여, 상기 복수의 클러스터들을 수용가능 클러스터들과 의심 클러스터들로 분류시키는 단계로서, 각각의 수용가능 클러스터들에 대해 할당된 하나 이상의 특정 문자들은 추가적인 처리없이 상기 수정된 출력에서 사용되고, 각각의 의심 클러스터에 대해 할당된 하나 이상의 특정 문자들은 추가적인 처리가 되도록 표시되는 것인, 상기 분류 단계;
    선택된 의심 클러스터의 클러스터 화상을 온라인 서버에 전달하는 단계로서, 상기 온라인 서버는 상기 온라인 서버와 상호작용하는 하나 이상의 사용자들에게 평균 화상을 전달하고, 상기 하나 이상의 사용자들로부터 상기 평균 화상에 대한 하나 이상의 수동으로 생성된 문자들을 요청하도록 동작하는 것인, 상기 전달 단계;
    상기 온라인 서버로부터 회답된 하나 이상의 수동으로 생성된 문자들을 이용하여 상기 선택된 의심 클러스터에 대해 이전에 할당된 하나 이상의 특정 문자들을 검증 또는 교체하는 단계; 및
    상기 하나 이상의 수동으로 생성된 문자들이 할당된 상기 선택된 의심 클러스터를 수용가능 클러스터로서 재분류하는 단계
    를 더 포함하는, 광학 문자 인식 방법.
  39. 제 38 항에 있어서, 상기 온라인 서버는 상기 선택된 의심 클러스터의 평균 화상을 온라인 게임의 일부로서의 사용자 응답을 위해 상기 하나 이상의 사용자들에게 공급하는 온라인 게임을 제공하도록 동작하는 것인, 광학 문자 인식 방법.
  40. 제 38 항에 있어서, 상기 온라인 서버는 온라인 서비스를 제공하며, 상기 온라인 서비스의 사용자가 사람인지 아닌지의 여부를 판정하기 위해 상기 선택된 의심 클러스터의 평균 화상을 도전-응답 테스트의 일부로서 제공하도록 동작하는 것인, 광학 문자 인식 방법.
  41. 제 1 항에 있어서,
    각각의 클러스터내의 복수의 화상들 및 각각의 클러스터들의 다른 클러스터들에 대한 형상 계측 거리를 이용하여, 상기 복수의 클러스터들을 수용가능 클러스터들과 의심 클러스터들로 분류시키는 단계로서, 각각의 수용가능 클러스터들에 대해 할당된 하나 이상의 특정 문자들은 추가적인 처리없이 상기 수정된 출력에서 사용되고, 각각의 의심 클러스터들에 대해 할당된 하나 이상의 특정 문자들은 추가적인 처리가 되도록 표시되는 것인, 상기 분류 단계;
    선택된 수용가능 클러스터의 대응하는 클러스터 화상을 클러스터 화상 템플릿으로서 이용하기 위해 적어도 하나의 수용가능 클러스터를 선택하는 단계;
    선택된 의심 클러스터의 클러스터 화상의 복수의 서로다른 부분들과 상기 클러스터 화상 템플릿을 미리결정된 방향을 따라 복수의 서로다른 부분들에서 정렬시키는 단계;
    상기 클러스터 화상 템플릿과 상기 선택된 의심 클러스터의 클러스터 화상의 복수의 서로다른 부분들 각각 사이의 형상 계측 거리들을 획득하는 단계;
    상기 클러스터 화상 템플릿에 대한 상기 획득된 형상 계측 거리들을 이용하여 상기 선택된 의심 클러스터의 클러스터 화상의 일부분이 상기 클러스터 화상 템플릿과 매칭하는지 여부를 판정하는 단계; 및
    상기 선택된 수용가능 클러스터에 대한 하나 이상의 문자들이 할당된 새로운 수용가능 클러스터로서 상기 선택된 의심 클러스터의 클러스터 화상으로부터 매칭 부분을 분리시키는 단계
    를 더 포함하는, 광학 문자 인식 방법.
  42. 광학 문자 인식을 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독가능 기록매체에 있어서, 상기 컴퓨터 프로그램은, 데이터 처리 장치로 하여금,
    광학 문자 인식(OCR) 프로세스에 의해 처리된 문서의 수신된 OCR 출력내에서 정의된 클립 화상들을 상기 클립 화상들의 복수의 클러스터들로 분류시키는 동작으로서, 상기 클러스터들 각각은 상기 OCR 프로세스에 의해 하나 이상의 동일한 문자 코드들이 할당된 클립 화상들을 포함하는 것인, 상기 분류 동작;
    상기 복수의 클러스터들 각각내의 클립 화상들을 처리하여 각각의 클러스터에 대한 클러스터 화상을 생성하는 동작;
    상기 OCR 프로세스에 의해 하나 이상의 OCR 문자 코드들이 잘못 할당되었던 클러스터들을 검출하기 위해 상기 클러스터 화상들을 비교하는 동작;
    수용가능한 클러스터에 할당된 하나 이상의 OCR 문자 코드를 이용하여, 상기 OCR 출력내에서 하나 이상의 잘못 할당된 OCR 문자 코드들을 갖는 것으로 검출된 제1 클러스터에, OCR 엔진에 의해, 하나 이상의 새로운 OCR 문자 코드들을 할당하는 동작; 및
    수정된 OCR 출력을 산출하기 위해 상기 하나 이상의 새로운 OCR 문자 코드들을 이용하여 상기 OCR 출력내의 상기 제1 클러스터의 클립 화상들의 각각의 발생(occurrence)에서 상기 잘못 할당된 OCR 문자 코드들을 교체시키는 동작을 포함하는 동작들을 수행하게 하도록 동작하며,
    상기 클립 화상들 각각은 상기 수신된 OCR 출력내의 테두리 박스에 의해 정의되고, 상기 클러스터들은 (1) 각각의 클립 화상들이 상기 수신된 OCR 출력내의 단일 테두리 박스와 연계되어 있는 클러스터들, 및 (2) 각각의 클립 화상들이 상기 수신된 OCR 출력내의 두 개 이상의 인접하는 테두리 박스들과 연계되어 있는 클러스터들을 포함하는 것인, 광학 문자 인식을 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독가능 기록매체.
  43. 광학 문자 인식(OCR)을 위한 시스템에 있어서,
    문서의 원본 화상을 처리하여 상기 원본 화상으로부터 추출된 클립 화상들을 포함하는 OCR 출력을 산출하고 각각의 클립 화상들에 하나 이상의 문자 코드들을 할당하도록 동작가능한 OCR 엔진; 및
    상기 OCR 출력내의 클립 화상들을 상기 클립 화상들의 복수의 클러스터들로 분류하도록 동작가능한 사후(post)-OCR 엔진으로서, 상기 클러스터들 각각은 상기 OCR 엔진에 의해 하나 이상의 동일한 문자 코드들이 할당된 클립 화상들을 포함하는 것인, 상기 사후-OCR 엔진;
    을 포함하며,
    상기 사후-OCR 엔진은, 상기 복수의 클러스터들 각각내의 클립 화상들을 처리하여, 각각의 클러스터들에 대한 클러스터 화상들을 생성하고, 상기 OCR 엔진에 의해 하나 이상의 OCR 문자 코드들이 잘못할당되었던 클러스터들을 검출하기 위해 상기 클러스터 화상들을 비교하고, 수용가능한 클러스터에 할당된 하나 이상의 OCR 문자 코드를 이용하여, 상기 OCR 출력에서 잘못할당된 하나 이상의 OCR 문자 코드들을 갖는 것으로 검출된 제1 클러스터에 하나 이상의 새로운 OCR 문자 코드들을 할당하며, 수정된 OCR 출력을 산출하기 위해 상기 하나 이상의 새로운 OCR 문자 코드들을 이용하여 상기 OCR 출력내의 상기 제1 클러스터의 클립 화상들의 각각의 발생(occurrence)에서 상기 잘못 할당된 OCR 문자 코드를 교체시키도록 동작가능하며,
    상기 클립 화상들 각각은 상기 산출된 OCR 출력내의 테두리 박스에 의해 정의되고, 상기 클러스터들은 (1) 각각의 클립 화상들이 상기 산출된 OCR 출력내의 단일 테두리 박스와 연계되어 있는 클러스터들, 및 (2) 각각의 클립 화상들이 상기 산출된 OCR 출력내의 두 개 이상의 인접하는 테두리 박스들과 연계되어 있는 클러스터들을 포함하는 것인, 광학 문자 인식(OCR)을 위한 시스템.
  44. 제 43 항에 있어서,
    상기 OCR 엔진과 상기 사후-OCR 엔진을 포함하는 하나 이상의 서버 컴퓨터들; 및
    상기 하나 이상의 서버 컴퓨터들을 통신가능하게 해주는 통신 네트워크
    를 더 포함하며,
    상기 통신 네트워크는 클라이언트 컴퓨터로부터 상기 문서의 원본 화상을 상기 OCR 엔진에 전달하고, 상기 사후-OCR 엔진으로부터 상기 수정된 OCR 출력을 상기 클라이언트 컴퓨터에 전달하도록 동작가능한 것인, 광학 문자 인식(OCR)을 위한 시스템.
  45. 제 44 항에 있어서, 상기 OCR 엔진과 상기 사후-OCR 엔진은 서로다른 서버 컴퓨터들인 것인, 광학 문자 인식(OCR)을 위한 시스템.
  46. 제 43 항에 있어서,
    상기 OCR 엔진과 상기 사후-OCR 엔진을 포함하는 하나 이상의 서버 컴퓨터들;
    상기 하나 이상의 서버 컴퓨터들을 통신가능하게 해주는 통신 네트워크; 및
    상기 통신 네트워크와 통신하며 상기 OCR 엔진과 상기 사후-OCR 엔진에 의해 산출된 선택된 문서들의 화상들에 대한 수정된 OCR 출력들을 저장하는 하나 이상의 OCR 저장 서버 컴퓨터들;
    를 더 포함하며,
    상기 통신 네트워크는 클라이언트 컴퓨터와 상기 하나 이상의 OCR 저장 서버 컴퓨터들 사이에 통신을 제공하여, 상기 클라이언트 컴퓨터가 상기 하나 이상의 OCR 저장 서버 컴퓨터들로부터 상기 OCR 엔진과 상기 사후-OCR 엔진에 의해 산출된 기존의 수정된 OCR 출력을 검색할 수 있도록 해주는 것인, 광학 문자 인식(OCR)을 위한 시스템.
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 삭제
  54. 삭제
  55. 삭제
  56. 삭제
  57. 삭제
  58. 삭제
  59. 삭제
  60. 삭제
  61. 삭제
  62. 삭제
  63. 삭제
  64. 삭제
  65. 삭제
  66. 삭제
  67. 삭제
  68. 삭제
  69. 삭제
  70. 삭제
  71. 삭제
  72. 삭제
  73. 삭제
  74. 삭제
  75. 삭제
  76. 삭제
  77. 삭제
  78. 삭제
  79. 삭제
  80. 삭제
  81. 삭제
  82. 삭제
  83. 삭제
  84. 삭제
  85. 삭제
  86. 삭제
  87. 삭제
  88. 삭제
  89. 삭제
  90. 삭제
  91. 삭제
  92. 삭제
  93. 삭제
  94. 삭제
  95. 삭제
  96. 삭제
  97. 삭제
  98. 삭제
  99. 삭제
  100. 삭제
  101. 삭제
  102. 삭제
  103. 삭제
  104. 삭제
  105. 삭제
  106. 삭제
  107. 삭제
  108. 삭제
  109. 삭제
  110. 삭제
  111. 삭제
  112. 삭제
  113. 삭제
  114. 삭제
  115. 삭제
  116. 삭제
  117. 삭제
  118. 삭제
  119. 삭제
  120. 삭제
  121. 삭제
  122. 삭제
  123. 삭제
  124. 삭제
  125. 삭제
  126. 삭제
  127. 삭제
  128. 삭제
  129. 삭제
  130. 삭제
  131. 삭제
  132. 삭제
  133. 삭제
  134. 삭제
  135. 삭제
  136. 삭제
  137. 삭제
  138. 삭제
  139. 삭제
  140. 삭제
  141. 삭제
  142. 삭제
  143. 삭제
  144. 삭제
  145. 삭제
  146. 삭제
  147. 삭제
  148. 삭제
  149. 삭제
  150. 삭제
  151. 삭제
  152. 삭제
  153. 삭제
  154. 삭제
  155. 삭제
  156. 삭제
  157. 삭제
  158. 삭제
  159. 삭제
  160. 삭제
  161. 삭제
  162. 삭제
  163. 삭제
  164. 삭제
  165. 삭제
  166. 삭제
  167. 삭제
  168. 삭제
  169. 삭제
  170. 삭제
  171. 삭제
  172. 삭제
  173. 삭제
  174. 삭제
  175. 삭제
  176. 삭제
  177. 삭제
  178. 삭제
  179. 삭제
  180. 삭제
  181. 삭제
  182. 삭제
  183. 삭제
  184. 삭제
  185. 삭제
  186. 삭제
  187. 삭제
  188. 삭제
  189. 삭제
  190. 삭제
  191. 삭제
  192. 삭제
  193. 삭제
  194. 삭제
  195. 삭제
  196. 삭제
  197. 삭제
  198. 삭제
  199. 삭제
  200. 삭제
  201. 삭제
  202. 삭제
  203. 삭제
  204. 삭제
  205. 삭제
KR20097007242A 2006-09-08 2007-09-07 사후 광학 문자 인식 처리에서의 형상 클러스터링 기법 KR101486495B1 (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US11/517,818 2006-09-08
US11/517,818 US8175394B2 (en) 2006-09-08 2006-09-08 Shape clustering in post optical character recognition processing
US11/519,368 US7697758B2 (en) 2006-09-11 2006-09-11 Shape clustering and cluster-level manual identification in post optical character recognition processing
US11/519,376 US7650035B2 (en) 2006-09-11 2006-09-11 Optical character recognition based on shape clustering and multiple optical character recognition processes
US11/519,368 2006-09-11
US11/519,376 2006-09-11
US11/519,320 US7646921B2 (en) 2006-09-11 2006-09-11 High resolution replication of document based on shape clustering
US11/519,320 2006-09-11
PCT/US2007/077925 WO2008031063A1 (en) 2006-09-08 2007-09-07 Shape clustering in post optical character recognition processing

Publications (2)

Publication Number Publication Date
KR20090058557A KR20090058557A (ko) 2009-06-09
KR101486495B1 true KR101486495B1 (ko) 2015-02-04

Family

ID=39157593

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20097007242A KR101486495B1 (ko) 2006-09-08 2007-09-07 사후 광학 문자 인식 처리에서의 형상 클러스터링 기법

Country Status (4)

Country Link
EP (2) EP2116971A3 (ko)
KR (1) KR101486495B1 (ko)
CN (1) CN102637256B (ko)
WO (1) WO2008031063A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9317760B2 (en) 2014-04-14 2016-04-19 Xerox Corporation Methods and systems for determining assessment characters
US10255516B1 (en) * 2016-08-29 2019-04-09 State Farm Mutual Automobile Insurance Company Systems and methods for using image analysis to automatically determine vehicle information
CN110414496B (zh) * 2018-04-26 2022-05-27 百度在线网络技术(北京)有限公司 相似字识别方法、装置、计算机设备及存储介质
CN112667831B (zh) * 2020-12-25 2022-08-05 上海硬通网络科技有限公司 素材存储方法、装置及电子设备
CN114463766B (zh) * 2021-07-16 2023-05-12 荣耀终端有限公司 一种表格的处理方法及电子设备
WO2024186490A1 (en) * 2023-03-09 2024-09-12 Caterpillar Inc. Alphanumeric recognizer for unique identifiers of articles of manufacture

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6741745B2 (en) * 2000-12-18 2004-05-25 Xerox Corporation Method and apparatus for formatting OCR text
US6751351B2 (en) * 2001-03-05 2004-06-15 Nsc Pearson, Inc. Test question response verification system
EP0790574B1 (en) * 1996-02-19 2005-01-05 Fujitsu Limited Character recognition apparatus and method
US20050232495A1 (en) * 2004-04-19 2005-10-20 International Business Machines Corporation Device for Outputting Character Recognition Results, Character Recognition Device, and Method and Program Therefor

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5379349A (en) * 1992-09-01 1995-01-03 Canon Research Center America, Inc. Method of OCR template enhancement by pixel weighting
GB2281997B (en) * 1993-09-20 1997-10-15 Ricoh Kk Method and apparatus for improving a text image by using character regeneration
US5970170A (en) * 1995-06-07 1999-10-19 Kodak Limited Character recognition system indentification of scanned and real time handwritten characters
US6208765B1 (en) * 1998-06-19 2001-03-27 Sarnoff Corporation Method and apparatus for improving image resolution
US6640010B2 (en) * 1999-11-12 2003-10-28 Xerox Corporation Word-to-word selection on images
CN1426017A (zh) * 2001-12-14 2003-06-25 全景软体股份有限公司 一种校对多个电子文件的方法及其系统
EP1357514B1 (en) * 2002-04-23 2008-07-16 STMicroelectronics S.r.l. Method for obtaining a high-resolution digital image
US7072514B1 (en) * 2003-02-06 2006-07-04 The United States Of America As Represented By The National Security Agency Method of distinguishing handwritten and machine-printed images
JP2004246546A (ja) * 2003-02-13 2004-09-02 Ricoh Co Ltd 画像処理方法、該方法の実行に用いるプログラム及び画像処理装置
CN1200387C (zh) * 2003-04-11 2005-05-04 清华大学 基于单个字符的统计笔迹鉴别和验证方法
US7480403B2 (en) * 2004-11-16 2009-01-20 International Business Machines Corporation Apparatus, system, and method for fraud detection using multiple scan technologies

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0790574B1 (en) * 1996-02-19 2005-01-05 Fujitsu Limited Character recognition apparatus and method
US6741745B2 (en) * 2000-12-18 2004-05-25 Xerox Corporation Method and apparatus for formatting OCR text
US6751351B2 (en) * 2001-03-05 2004-06-15 Nsc Pearson, Inc. Test question response verification system
US20050232495A1 (en) * 2004-04-19 2005-10-20 International Business Machines Corporation Device for Outputting Character Recognition Results, Character Recognition Device, and Method and Program Therefor

Also Published As

Publication number Publication date
WO2008031063A1 (en) 2008-03-13
EP2074558A1 (en) 2009-07-01
EP2116971A3 (en) 2013-07-31
EP2116971A2 (en) 2009-11-11
KR20090058557A (ko) 2009-06-09
CN102637256A (zh) 2012-08-15
CN102637256B (zh) 2015-08-26
EP2074558A4 (en) 2013-07-31

Similar Documents

Publication Publication Date Title
US7650035B2 (en) Optical character recognition based on shape clustering and multiple optical character recognition processes
US8111927B2 (en) Shape clustering in post optical character recognition processing
US7646921B2 (en) High resolution replication of document based on shape clustering
US7697758B2 (en) Shape clustering and cluster-level manual identification in post optical character recognition processing
US7120318B2 (en) Automatic document reading system for technical drawings
US6424728B1 (en) Method and apparatus for verification of signatures
US6912308B2 (en) Apparatus and method for automatic form recognition and pagination
US5410611A (en) Method for identifying word bounding boxes in text
EP2317458A1 (en) Orthogonal technology for multi-line character recognition
EA001689B1 (ru) Система автоматической идентификации языка для многоязычного оптического распознавания символов
KR101486495B1 (ko) 사후 광학 문자 인식 처리에서의 형상 클러스터링 기법
JP2004139484A (ja) 帳票処理装置、該装置実行のためのプログラム、及び、帳票書式作成プログラム
AU2010311067A1 (en) System and method for increasing the accuracy of optical character recognition (OCR)
KR100655916B1 (ko) 방대한 데이터의 디지털화를 위한 문서영상처리 및검증시스템 및 그 방법
Kumar et al. Line based robust script identification for indianlanguages
Nehra et al. Benchmarking of text segmentation in devnagari handwritten document
KR102673900B1 (ko) 표 데이터 추출 시스템 및 그 방법
US11710331B2 (en) Systems and methods for separating ligature characters in digitized document images
Worch et al. Glyph spotting for mediaeval handwritings by template matching
JPH06215182A (ja) 文字切り出し装置およびこれを用いた文字認識装置
Davanzo IMPROVING FEATURES EXTRACTION FOR SUPERVISED INVOICE CLASSIFICATION Alberto Bartoli DEEI-University of Trieste Via Valerio 10, Trieste, Italy

Legal Events

Date Code Title Description
AMND Amendment
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180108

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190109

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20200109

Year of fee payment: 6