KR100390264B1 - 폼처리중자동페이지등록및자동영역검출을위한시스템및방법 - Google Patents

폼처리중자동페이지등록및자동영역검출을위한시스템및방법 Download PDF

Info

Publication number
KR100390264B1
KR100390264B1 KR1019960707053A KR19960707053A KR100390264B1 KR 100390264 B1 KR100390264 B1 KR 100390264B1 KR 1019960707053 A KR1019960707053 A KR 1019960707053A KR 19960707053 A KR19960707053 A KR 19960707053A KR 100390264 B1 KR100390264 B1 KR 100390264B1
Authority
KR
South Korea
Prior art keywords
image
blocks
block
user
template
Prior art date
Application number
KR1019960707053A
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 리버스 테크놀로지, 인크.
Application granted granted Critical
Publication of KR100390264B1 publication Critical patent/KR100390264B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/60Rotation of a whole image or part thereof
    • G06T3/608Skewing or deskewing, e.g. by two-pass or three-pass rotation
    • 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
    • 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

Abstract

자동적으로 폼의 문서 이미지 내의 사용자 정의 영역을 검출하고 또 폼의 원시 이미지에 대하여 이미지의 스큐(skew) 및 위치변동(displacement)을 보상하기 위한 시스템 및 방법이 개시된다. 시스템은 스캐너와 같은 폼 문서용 이미지 입력 메카니즘을 제공한다. 시스템은 해상도를 감소시키고 또 큰 스큐를 제거하도록 이미지를 프로세싱 한다. 이미지는 영역을 정의하도록 사용자에게 제시된다. 이러한 영역들은 인보이스 폼(invoice form) 상의 성명, 날짜, 주소 및 항목과 같은 의미있는 데이타를 광학 문자 인식을 통하여 사용자가 추출하기 원하는 영역이다. 또한, 시스템은 수평 및 수직 라인을 제거하고 또 텍스트 또는 이미지 데이타를 나타내는 다수의 블럭을 생성하도록 이미치를 역시 프로세싱 한다. 라인들은 제거되며, 또 블럭들은 다양한 파라메타를 사용하여 실행길이(runlength) 완만화(smoothing)에 의해 형성된다. 블럭은 연결된 픽셀 클러스터를 형성한다. 블럭은 임의의 연결된 블럭 세트가 특정 식별값을 공유하도록 레이블링(labeling) 된다. 부가적인 데이타가 템플리트(template)를 정의하는데 유용한 블럭을 선택하기 위하여 공통적으로 레이블링된 블럭 상에서 수집된다. 템플리트는 각 선택된 블럭의 도심들 사이의 벡터들의 집합이다. 프로세싱을 위한 제2 문서가 얻어지며, 또 축소, 스큐 조정되고 또 블럭 및 벡터를 식별하도록 유사하게 프로세싱 된다. 제2 문서 이미지 내의 벡터들은 제2 문서 이미지 내의 사용자 정의 영역의 위치를 결정하기 위하여 사용자 선택된 템플리트 내의 벡터들과 비교된다.

Description

폼 처리 중 자동 페이지 등록 및 자동 영역 검출을 위한 시스템 및 방법
배경
발명의 분야
본 발명은 광학 스캐너와 광학적 문자 인식에 관한 것으로, 보다 구체적으로는 페이지 스큐(page skew)와 변동(translation)을 자동으로 검출하고 보상하기 위한 시스템 및 방법에 관한 것이다.
발명의 배경
광학적 문자 인식("OCR")은 인쇄 또는 손으로 쓴 문서(document)나 폼(form)으로부터 텍스트(text)를 추출하기 위해 널리 사용된다. 전형적으로, 문서는 광학적 스캐너(scanner) 상에서 판독되어 비트 맵된 이미지 데이타를 생성한다. OCR 소프트웨어는 이미지 데이타를 처리하고 이들로부터 모든 텍스트를 추출한다. 다음으로 사용자는 종종 결과 텍스트 화일을 리뷰하고 원하는 정보만을 얻기 위해 다른 프로그램으로 더 처리하거나 워드 프로세싱, 데이타베이스, 스프레드쉬트, 어카운팅 시스템등과 같은 유용한 형태로 저장한다.
폼 처리시에, 텍스트 기반의 미리 인쇄된 폼으로부터 사용자에 의해 폼에 들어가 있는 텍스트 데이타만 추출하는 것이 바람직하다. 예를 들어, "고객 이름", "고객 주소", "항목", "수량" 등과 같은 다양한 텍스트 블럭의 설명, "회사 이름",및 "주소"와 같은 기존의 텍스트 데이타를 갖는 송장(invoice)에 있어서, 설명 텍스트만 제외하고 이와 같은 블럭들에 입력된 정보만 추출하는 것이 바람직하다. 이렇게 함으로써, 유용한 정보를 추출하기 위해 모든 텍스트를 후속처리할 필요가 없이 텍스트 데이타를 보다 효율적으로 처리할 수 있다.
폼 처리를 위한 이전 시스템들은 입력 문서 이미지 상에서 원하는 텍스트가 있는 위치를 찾아내기 위해 템플리트(template) 내에 위치한 사용자 정의 영역을 갖는 템플리트를 사용한다. 이들 시스템에서, 템플리트 내의 사용자 정의 영역은 이미지의 확인된 경계, 즉, 비트 맵으로 정의된 이미지의 상부, 하부, 측면에 관해 위치한다.
이들 종래의 시스템들이 갖는 문제점은 후속된 문서를 템플리트로 처리할때, 사용자 정의 영역이 문서로부터 생성된 이미지 상에 정확히 등록되지, 즉, 위치를 잡지 못한다는 것이다. 이것은 문서가 스캔될 때 문서 공급기가 잘못 공급하거나 사용자가 부적절하게 둠으로써 문서가 스캐너의 베드에 관해 회전될 수도 있기 때문에 발생한다. 또한, 스캐너 배드의 측면으로부터 문서의 위치가 변동될 수도 있다. 어떤 경우든, 결과적 비트 맵 이미지는 원래 템플리트의 비트맵된 이미지로부터 상당히 변할 수 있으며, 사용자 정의 영역은 이미지의 정확한 부분으로 매핑되지 않을 것이다. 그 결과, 시스템은 사용자 정의 영역 내의 각각의 텍스트를 포착할 수 없을 것이다.
따라서, 많은 양의 스큐(skew)나 위치 변동이 있더라도 입력된 이미지 상의 템플리트로부터 사용자 정의 영역을 정확히 확인할 수 있다.
발명의 요약
본 발명은 많은 양의 스큐나 위치 변동이 존재하는 경우에서도 문서 내의 사용자 정의 영역을 자동으로 확인하는 방법과 시스템을 사용하여 앞서 언급한 제한 사항들을 극복하는 것이다. 본 발명의 저변에 있는 기본적인 개념은 스큐가 없는 상태의 이미지 내의 다양한 텍스트나 이미지 요소들간의 관계는 주어진 밝기와 콘트래스트에서 스큐, 위치 변동, 페이지-이미지 해상도, 및 페이지 크기에 관계없이 동일하다는 것이다. 특히, 이들 텍스트 및/또는 이미지 영역간의 상대적 거리는 상기 언급된 파라미터들 중 어떠한 것에 의해서도 변하지 않는다. 따라서, 주어진 페이지 상의 이들 텍스트 및 이미지 영역간의 서로 다른 텍스트와 이미지 영역간의 관계가 포착되어 페이지 등록과 사용자 정의 영역 검출에 사용된다.
동적 데이타 네트워크는 이미지 내에 존재하는 어떤 자격있는 시스템 블럭들과 접속되는 링크들 또는 벡터들의 네트워크이다. 동적 데이타 네트워크는 특정 밝기와 콘트래스트 세팅에서 각 이미지에 유일하다. 동적 데이타 네트워크를 포함하는 템플리트는 양호하게 후속되는 입력 문서들을 처리하기 위해 사용될 폼으로부터의 입력 이미지를 처리함으로써 형성된다. 이들 문서가 나중에 입력될 때, 동적 데이타 네트워크가 각 입력 이미지를 위해 생성되고, 선택된 템플리트의 동적 데이타 네트워크와 비교된다. 매칭이 있다면, 다음으로 시스템은 이미지 상에서 사용자 정의 영역을 정확히 찾아내어, 이들 위치에 있는 이미지로부터 텍스트나 어떤 사용자 정의된 정보를 추출하기 위해 광학적 문자 인식 시스템을 사용한다.
템플리트는 다수의 처리 동작에 의해 형성된다. 양호하게, 입력 이미지는 약50dpi로 서브샘플링(subsampling)된다. 스큐가 검출되면 이미지가 스큐를 제거하도록 회전된다. 데이타 준비 단계는 수평 및 수직 라인을 제거하고, 다음으로 나머지 이미지 데이타를 연결된 픽셀 블럭으로 완만화한다. 나머지 데이타는 주로 텍스트 데이타 및 픽쳐형 데이타이다. 다음으로 이들 블럭들이 레이블되고, 식별 번호가 제공되며, 텍스트, 이미지, 또는 이중 블럭으로 분류된다.
분류된 블럭들은 동적 데이타 네트워크에 사용되기에 적합한 다수의 시스템 블럭을 제공하기 위해 크기 및 형상에 대해 필터링된다. 어떤 시스템 블럭들은 이미지에서의 위치와 크기에 따라 선택되어, 이들로부터 동적 데이타 네트워크가 생성된다. 동적 데이타 네트워크는 해상도, 크기, 스큐, 및 위치 변경에 무관한 방식으로 시스템 블럭들 간의 관계를 정의한다. 시스템 블럭은 주어진 밝기와 콘트래스트에서 많이 변하지 않기 때문에, 동적 데이타 네트워크를 정의하는 벡터들은 스큐, 위치 변경등에 덜 민감하다.
도1은 템플리트를 사용하여 입력 문서 내의 사용자 정의 영역을 자동으로 등록 및 검출하기 위한 블럭도이다.
도2는 템플리트 정의와 페이지 등록의 전체적인 방법의 흐름도이다.
도3은 템플리트를 정의하는 프로세스의 흐름도이다.
도4는 템플리트 정의를 생성하는데 사용되는 다양한 모듈들에 관한 정의 실행부의 데이터 흐름도이다.
도5a 및 도5b는 입력 이미지에서의 스큐를 검출하기 위한 스큐 검출 프로세스의 설명도이다.
도6은 스큐 검출을 위한 프로세스의 흐름도이다.
도7a 및 도7b는 이미지 상의 사용자 정의 영역을 정의하기 위한 샘플 사용자 인터페이스의 설명도이다.
도8은 입력 이미지를 준비하기 위한 다양한 모듈들과 함께 데이터 준비 모듈의 데이터 흐름도이다.
도9는 데이터 준비 프로세스의 흐름도이다.
도10은 레이블링 모듈의 블록 식별 프로세스의 흐름도이다.
도11은 데이터 유형 분류 프로세스의 흐름도이다.
도12는 동적 데이터 네트워크을 생성하는 프로세스의 흐름도이다.
도13a 및 도13b는 템플리트로써 입력 이미지를 등록하는 프로세스의 흐름도이다.
도14는 50dpi에서 서브샘플링되고 스큐조정된 2색조 이미지의 설명도이다.
도15는 실행 길이를 따르는 도14의 이미지의 설명이다.
도16은 도15의 이미지 상에서의 수평 라인 제거를 설명하는 도면이다.
도17은 수평 라인이 없는 도14의 이미지의 설명도이다.
도18은 정규화되고 회전된 도14의 이미지의 설명도이다.
도19는 도18의 완만화된 이미지의 설명도이다.
도20은 도19에서의 수직 라인 제거 결과의 설명도이다.
도21은 도18 및 도20의 이미지 조합으로부터 수평 또는 수직 라인 없이 스큐조정되고 회전된 이미지의 설명도이다.
도22는 디노멀라이징(denormalizing) 후의 도21의 정확히 회전된 이미지의 설명도이다.
도23은 도22의 이미지 상에서의 수평 완만화의 설명도이다.
도24는 도21의 이미지 상에서의 수직 완만화의 설명도이다.
도25는 데이터 블록을 형성하기 위한 수평 및 수직 완만화 후의 이미지의 설명도이다.
도26은 데이터 블록을 재정의하기 위해 도25의 이미지 상에서의 또 한번의 완만화를 설명하는 도면이다.
도27은 도26의 이미지에서의 데이터 블록을 레이블링한 결과의 개략적 설명도이다.
도28a-h는 여러 가지 단계의 컨스트럭션(construction)에서의 동적 데이터 네트워크를 설명하는 도면이다.
시스템 아키텍쳐
도1을 참조하면, 본 발명의 개선된 자동 페이지 등록 시스템을 위한 시스템이 도시되어 있다. 시스템(100)은 스캔된 문서와 페이지 등록 템플리트의 장기간의 보관을 위한 보조 저장 장치(107)을 갖는 컴퓨터(101), 명령과 데이타를 수신하고 시스템(100)으로 출력하기 위한 입력 장치(109)와 출력 장치(116), 및 프로세서(111)에 의해 실행되기 위한 여러가지 코드 모듈을 저장하기 위한 어드레스가능한 메모리(113)을 포함한다. 시스템(100)은 입력된 문서를 스캐닝하여, 입력된 문서에 대한 그레이스케일, 흑색 및 백색, 또는 컬러 비트 맵 화일을 생성할 수 있는 스캐너(115)를 포함한다. 스캐너(115)는 양호하게 적어도 50dpi 해상도를 가진다. 시스템(100)은 스캔된 문서 또는 시스템(100) 내에 상주하는 다른 문서들을 프린팅하기 위한 프린터(117)을 포함한다.
어드레스가능한 메모리(113)은 본 발명의 자동 페이지 등록 방법을 다루는 실행가능한 애플리케이션을 함께 포함하는 다수의 코드 모듈을 포함한다. 보다 구체적으로, 어드레스가능한 메모리(113)은 응용 실행부(application executive, 137), 스캐너 제어 모듈(scanner control module, 139), 정의 실행부(definition executive, 121), 등록 실행부(registration executive, 135), 축소 모듈(minification executive, 123), 스큐 검출 모듈(skew detection module, 125), 스큐 조정 모듈(deskewing module, 127), 데이타 준비 모듈(data preparation module, 129), 레이블링 모듈(labeling module, 131), 템플리트 모들(template module, 133), 및 광학적 문자 인식 모듈(145)를 포함한다. 이들 다양한 모듈들의 동작은 아래에 기술될 것이며, 뒤이어 자동 페이지 등록을 지원하는 프로세스가 기술된다. 어드레스블 메모리(113)은 모듈들에 의해 다양한 변형 상태로 있는 이미지를 저장하기 위해 사용되는 주 이미지 버퍼(141)과 부 이미지 버퍼(143)을 포함한다.
응용 실행부(137)은 나머지 모듈을 포함하여 시스템(100)의 전역 제어를 제공한다. 응용 실행부(137)은 사용자 명령과 데이타를 수신하기 위해 사용자와 대화할 사용자 인터페이스를 제공한다. 적당한 사용자 인터페이스를 통해, 응용 실행부(137)은 사용자가 정의 실행부(121)로써 문서를 처리하기 위한 템플리트를 생성하기 위한 스캐너(115) 또는 다른 지원을 사용하여 시스템(100) 내로 문서를 입력하고, 등록 실행부(135)에 의해 정의된 템플리트로써 입력 문서들을 더 처리하는 것을 허용한다.
시스템 동작
I. 전반적인 처리 흐름
시스템(100)은 스큐와 변동(translation)을 제거하기 위해 입력 문서를 자동으로 등록하기 위한 개선된 방법을 제공함으로써 광학적 문자 인식을 사용하여 문서로부터 데이타의 보다 정확한 추출을 제공한다. 이 방법은 주어진 유형의 문서나 폼에 대한 템플리트를 생성하고, 폼으로부터 데이타를 확인하여 추출하기 위해 입력 문서에 대해 템플리트를 적용하는 2개의 기본적인 프로세스를 포함한다.
도2를 지금 참조하면, 본 발명의 전체적인 방법의 흐름이 있다. 시스템(100)과 연계하여, 사용자는 주어진 폼에 대한 템플리트를 정의한다(201). 각 템플리트는 추출될 텍스트 데이타를 포함하는 다수의 사용자 정의 영역 및 시스템에 의해 확인되는 다수의 블럭을 명시함으로써 폼의 내부 구조를 기술한다. 템플리트는 시스템 정의된 블럭간의 관계에 의해 정의된다. 사용자는 각각이 특정 폼에 대응하는 어떠한 개수의 템플리트도 생성할 수 있다. 예를 들어, 사용자는 송장(invoice), 구매 주문, 사업 서신 카드, 조사(survey) 폼, 질문 사항, 팩시밀리, 비지니스 카드등을 처리하기 위해 각각 다른 템플리트를 정의할 수 있다. 따라서, 본 명세서에서, 폼은 서로 다른 데이타를 포함하는 여러 개의 인스턴스가 생성되어 사용되는 어떠한 유형의 문서를 의미한다. 템플리트의 생성과 정의는 정의 실행부(121)에 의해 다루어진다.
다음으로 사용자는 한 세트의 정의된 템플리트로부터 특정 템플리트를 선택한다(203). 예를 들어, 사용자가 송장 스택을 처리하고 있다면, 사용자는 이와 같은 문서들에 대한 적절한 송장 템플리트를 선택할 수 있다.
다음으로, 사용자는 시스템(100) 내로 문서를 입력한다(205). 이것은 양호하게 스캐너(115)와 스캐너 제어 모듈(139)로써 수행된다. 대안으로 사용자는 직접적인 팩시밀리 수신을 포함한 다른 소스로부터의 문서들을 입력할 수 있다(205). 각 문서에 대한 비트맵 이미지 화일을 생성하는 어떠한 소오스의 입력 문서들도 사용될 수 있다. 대안으로 비트 맵 이미지로 적절히 변환될 수 있다면 벡터(vector) 기반의 화일들도 사용될 수 있다.
각 문서가 입력될 때(205), 선택된 템플리트가 문서의 이미지에 적용된다(207). 템플리트는 사용자가 추출하기 원하는 텍스트 데이타를 포함하는 사용자 정의 블럭을 문서상에서 확인한다. 이러한 확인은 자동적으로 수행되며, 템플리트를 정의한 원시 이미지에 관해 이미지 내에 스큐나 위치 변경이 있는 경우에도 사용자 정의 블럭을 확인한다. 따라서, 예를 들어, 입력 문서가 스캐너(115)에 잘못 입력되어 결과 이미지가 스큐되어도, 시스템(100)은 여전히 사용자 정의 영역을 확인할 수 있다. 또한, 스캐닝 중에 문서를 찾고 배향하기 위해 전통적으로 채택되어 온 추가적인 등록 마크를 폼 상에 위치시킬 필요가 없다. 이미지에 대해 템플리트를 적용하는 것은 등록 실행부(135)에 의해 수행된다.
일단, 사용자 정의 영역이 확인되면, 시스템(100)은 확인된 사용자 정의 영역으로부터 텍스트 데이타를 추출(209)하기 위해 종래의 방식으로 광학적 문자 인식 모듈(145)를 실행한다. 이 데이타는 후속되는 회수 및 처리를 위해 저장된다(211). 사용자는 추가적인 문서 입력을 계속(205)할 수도 있고, 처리를 종료할 수도 있다.
II. 템플리트 정의
도3을 지금 참조하면, 템플리트를 정의하는 처리(201)의 흐름도가 도시되어 있다. 그리고 도4를 참조하면, 템플리트의 정의 중에 다른 모듈과 협력하는 정의 실행부의 데이타 흐름도가 도시되어 있다. 정의 실행부(121)은 모듈(123-133)의 동작을 관장하고, 필요할 때 각 모듈을 기동하며, 필요한 입력을 모듈에 건네주며, 템플리트를 생성하기 위해 그들로부터 출력을 수신한다.
A. 이미지 발생
사용자가 폼 상의 특정 영역에서 선택된 데이타를 포착하기를 원하는 한 유형의 문서 예로서의 폼을 시스템(100)에 입력함으로써 템플리트 정의가 시작된다. 예를 들어, 사용자는 송장의 템플리트를 생성하여 고객 이름, 주소, 송장 번호, 제품 설명, 수량, 가격 및 전체 수량과 같은 특정 영역 내의 텍스트 데이타를 광학 문자인식에 의해 포착하기를 원할 수 있다.
폼을 입력(301)하기 위해, 양호하게 사용자는 스캐너 제어 모듈(139)와 함께 스캐너(119)를 사용할 수 있다. 스캐너 제어 모듈(139)는, 예를 들어, 밝기, 콘트래스트, 해상도등을 세팅하기 위해 스캐너(115)의 동작을 제어한다. 스캐너(115)는 그레이스케일, 2-색조, 또는 컬러 비트 맵일 수 있는 이미지 맵을 출력한다. 스캐너(115)가 그레이스케일 또는 컬러 이미지를 출력할 때, 스캐너 제어 모듈(139)는 시스템에서 사용하기 위한 2색조 이미지를 생성하기 위해 임계 처리한다. 2색조를 얻기 위해 어떠한 임계 처리도 사용될 수 있다. 근본적으로, 어떤 주어진 그레이스케일 또는 컬러 이미지(픽셀 당 4, 8, 또는 24비트)는 주어진 그레이스케일 또는 컬러 픽셀이 선정된 임계값을 초과하는지를 판정함으로써 픽셀당-1비트로 변환된다. 여기서 x는 전형적으로 2깊이/2이고, 깊이는 이미지에서 픽셀당 비트의 수이다. 만일 그렇다면, 픽셀 값은 1을 할당받고, 그렇지 않다면, 0을 할당받는다. 픽셀 값 1은 구현하기 바라는 대로 세팅되거나 그와 반대로 될 수도 있음을 의미한다. 또한, 어떤 다른 소오스로부터의 이미지 화일이 시스템(100)으로 입력되어, 본 발명에 따라 처리될 수 있다. 이와 같은 소오스에는 팩시밀리 이미지, 그래픽 응용프로그램으로부터 생성된 그래픽 이미지, 스캔된 사진 또는 비디오등으로부터 포착된 이미지도 포함한다.
B. 이미지 축소
정의 실행부(121)은 응용 실행부(137)을 경유하여 스캐너 제어 모듈(139)로부터 2색조 이미지 화일을 수신하거나 어떤 다른 소오스를 형성한다. 정의 실행부(121)은 2색조 이미지 화일을 축소 모듈(123)으로 건네준다. 축소 모듈(123)은 입력 2색조 이미지를 축소하거나(303), 서브샘플링하여 이미지의 해상도를 원시해상도로부터 폼 처리나 템플리트 정의에 보다 적합한 저해상도로 낮춘다. 스캐너(115)와 같은 종래의 스캐너는 고도로 정확한 광학적 문자 인식을 생성하는데 유용한 고해상도 이미지(약 600dpi)를 생성한다. 그러나 이러한 해상도는 폼 처리에 필요한 템플리트를 생성하고 정의하는데는 불필요할 뿐만 아니라, 메모리 및 저장 장치에 추가적인 요구를 부담하게 하고, 성능에 영향을 준다. 따라서, 축소 모듈(123)은 원시 소오스 해상도를 검출하여 이미지에 대한 스케일 또는 서브샘플링 팩터를 계산한다.
양호한 실시예에서, 입력 이미지는 원시 해상도로부터 약 50dpi로 스케일링되고, 이 결과에 대한 적절한 스케일 계수가 계산된다. 예를 들어, 만일 이미지가 200dpi의 원시 해상도를 가지고, 스케일 계수가 4라면, 결과적인 서브샘플링 이미지는 원시 이미지 크기의 25%가 될 것이다. 원시 해상도가 50dpi의 배수가 아니라면, 스케일 계수는 50dpi에 가장 가까운 해상도가 되도록 선택된다. 이미지 크기상의 제한은 전반적인 성능을 향상시키며, 기존의 x86 설계 및 지원 개발 툴에 의해 도입된 제한을 피하는데 유용하다. 축소 모듈(123)의 양호한 실시예는 서브샘플링 처리 중에 비례하는 개수의 픽셀들이 원시 이미지로부터 삭제되는 데시메이션(decimation) 기법을 사용한다. 예를 들어, 2색조 이미지가 300dpi이면, 선택된 매 비트에 대해 그 다음의 6개 비트가 무시된다. 축소화 모듈(123)은 이미지 버퍼(141) 내에 서브샘플링된 이미지를 출력한다. 이미지 버퍼(141)은 처리된 입력 이미지의 하나의 현재 상태를 유지하기 위해 처리 중에 사용된다.
C. 스큐 검출.
일단 이미지 화일이 축소되면(303), 정의 실행부(121)이 입력된 이미지 내에 스큐의 존재와 그 정도를 확인(305)하기 위해 스큐 검출 모듈(125)를 활성화한다.
스큐 검출 모듈(125)는 축소 모듈(123)에 의한 서브샘플링된 이미지 출력을 얻기 위해 이미지 버퍼(141)에 액세스한다. 양호한 실시예에서, 스큐 검출 모듈(125)는 -60°에서 +60° 사이의 스큐를 검출할 수 있다. 여기서, 0°는 스캐너(115) 상의 입력 문서의 완전한 수평 및 수직 정렬을 나타낸다.
도5a 및 도5b는 스큐 검출 분석의 도해적인 설명을 도시한다. 스캔된 이미지(500)은 약간의 스큐를 가지는 텍스트 라인(501)을 포함할 것이다. 텍스트 라인(501)이 완만화되고, 다수의 텍스트 블럭(503)이 되어, 각각은 연속된 픽셀 시리즈를 포함한다. 또한 이미지 내에는 라인, 음영등과 같은 텍스트가 아닌 데이타를 포함하는 이미지 블럭(도시되지 않음)이 존재할 수도 있다. 연결된 블럭(503)이 확인된다. 연결된 블럭 세트(503)의 좌측 모서리와 우측 모서리간의 가상 라인(505)가 계산되고, 이 라인과 블럭(503)의 좌측 모서리로부터 연장되는 수평 라인(507)간의 스큐 각(F)가 계산된다. 이 프로세스는 이미지(500) 내의 각 연결된 블럭 세트에 대해 반복되고, 스큐 각(F)는 연결된 블럭 세트(503) 각각에 대해 관련된다. 대다수의 개개의 스큐 각(F)가 규정된 오차허용 범위를 가지고 실질적으로 동일한 곳에서, 모든 개개의 스큐 각(F)는 방향(시계/반시계 방향)을 따라 이미지(500)에 대한 스큐 각을 생성하기 위해 평균된다.
도6을 참조하면, 스큐 검출 모듈(125)에 의한 양호한 스큐 검출 방법의 흐름도가 도시되어 있다. 스큐 검출 모듈(125)는 완만화된 블럭을 생성하기 위해 이미지 버퍼(141) 내의 서브샘플링된 픽셀 데이타 상에 실행 길이 완만화를 수행한다(601). 이것은 완만화 모듈(801)을 호출함으로써 이루어진다(도8). 완만화 모듈(801)은 입력 실행 길이 파라미터를 사용하여 입력 이미지 내의 세팅되지 않은(백색) 픽셀 상에 일반적인 실행 길이 완만화 조작을 가하여, 세팅되지 않은 픽셀을 세팅된 픽셀로 변환한다. 양호한 실시예에서, 이 시점에서의 완만화는 실행 길이 5로써 수행된다. 이 값은 이미지의 양호한 해상도(50dpi) 및 텍스트 문서 내의 전형적인 문서 크기에 기초한 값이다. 시스템에서 다른 해상도가 사용되면, 다른 실행 길이가 명시된다. 완만화 이미지는 주 이미지 버퍼(141) 내에 유지된다.
다음으로 스큐 검출 모듈(125)는 이미지 내의 각 픽셀을 나타내는 각 비트를 워드(2바이트)로 확장한다(603). 각 비트를 16비트 표기로 확장하는 것은 유일한 식별 값, 한 픽셀과 다른 픽셀을 관련짓는 정보와 같은 각 픽셀에 대한 추가적인 정보의 저정을 허용함으로써 개개의 블럭을 식별한다. 만일 블럭 식별 숫자나 다른 정보를 위해 추가적인 비트 폭이 필요하다면, 추가 바이트로의 확장이 사용된다. 각 워드는 나중에 블럭 식별 값을 저장하기 위해 레이블링 모듈(131)에 의해 사용된다. 예를 들어, 완만화 동작 후에, 픽셀이 1111111110000000과 같은 부분을 포함하고, "1"은 데이타의 존재(검은색 픽셀)을 나타내고, "0"은 데이타가 없음(백색 픽셀)을 나타낸다면, 확장 후에 각 비트는 2바이트 워드로 저장된다.
다음으로 스큐 검출 모듈(125)는 이미지 내의 픽셀을 블럭으로 분할하기 위해 레이블링 모듈(131)을 호출한다(605). 레이블링 모듈(131)의 동작은 이후에 더 기술될 것이다. 레이블링 모듈(131)은 픽셀 데이타로부터의 각 블럭을 확인하고, 각각의 연결된 블럭 세트들, 즉, 블랙(세팅된) 픽셀에 의해 연결된 블럭들을 더 확인한다. 연결된 블럭(들) 세트의 각각은 유일한 식별 번호로 레이블링되어, 모든 연결된 블럭들은 동일한 식별 번호를 가진다.
이미지 내의 모든 블럭들이 이미지의 전체 스큐를 판정하는데 유용한 것은 아니다. 특히, 이미지 크기에 비해 너무 작거나 너무 큰 실제의 전체 스큐에 큰 영향을 주지 않는 경향이 있다. 작은 블럭은 스큐 정보를 거의 제공하지 않는다. 그리고 큰 블럭은 너무 큰 스큐 값을 준다. 따라서, 스큐 검출 모듈(125)는 스큐 값을 판정하기 전에 선정된 범위의 높이와 넓이 밖의 블럭을 걸러 낸다(607). 양호한 예에서, 스큐 검출 모듈(125)는 높이가 99 픽셀보다 크고 넓이가 149 픽셀보다 큰 블럭과 높이가 6 픽셀보다 작고 넓이가 25 픽셀보다 작은 블럭을 걸러낸다. 다시 한번, 필터 파라미터는 서브샘플링된 이미지의 해상도에 기초하고, 다른 해상도에서는 변경될 것이다. 나머지 블럭들로부터 평균 높이와 평균 넓이가 결정되고, 이들 값을 초과하는 치수를 가진 블럭만이 더 처리된다. 필터링되지 않는 블럭들은 유효한 블럭들이다.
스큐 검출 모듈(125)는 나머지 블럭들로부터 스큐 각(F)와 연결된 블럭 세트 각각에 대한 스큐 방향을 상술한 바와 같이 결정한다(609). 블럭의 좌측 모서리의 중심(y축에서)으로부터 우측 모서리의 중심까지 가상 라인이 양호하게 계산된다.
양호한 실시예에서 스큐각이 Tan-1(ΔY/ΔX)인데, 여기서ΔX는 블럭의 좌측 및 우측 모서리들의 중앙의 x-축 좌표들 사이의 차이며,ΔY는 모서리들의 y-축 좌표들 사이의 차이다.
대체 실시예에서, 블럭의 상단 좌측으로부터 하단 우측 코너까지 가상선이 취해지고, 따라서ΔX는 블럭의 상단 좌측으로부터 하단 우측 코너의 x-축 좌표들 사이의 차이며,ΔY는 코너들의 y-축 좌표들 사이의 차이다. 이 실시예에서, 코너들은 다음과 같이 결정된다. 블럭 내의 각 픽셀 컬럼에 대해서, 컬럼의 하단은 일련의 세트된 픽셀들에 후속하는 세트되지 않은 픽셀로서 검출된다. 현재 픽셀 컬럼의 하단과 다음 픽셀 컬럼의 하단과의 차,ΔC는 각 픽셀 컬럼에 대해서 명기된다. 'h, l, d' 같은 텍스트 어센더 및 'g, p, y' 같은 텍스트 더센더에 의해 이입될 수 있는 가능한 스큐각 에러를 제거하기 위해ΔC가 계산된다. 따라서, 평균ΔC 값은 전체 블럭에 대해서 취해진다. (50 dpi 이미지를 가정하면)(평균ΔC±2픽셀의) 범위 외의ΔC값은 갖는 픽셀 컬럼들은 스큐각을 결정하기 위해 사용도리 가상선의 단부를 결정하기 위해 무시된다. 이것이 "ΔC 테스트"이다. 블럭의 상단 좌측 코너로부터 횡단하면서ΔC 테스트를 만족시키는ΔC 값을 갖는 제1 픽셀-컬럼 하단은 가상선의 시작이 되며, 이러한 요건을 만족시키는 마지막 픽셀-컬럼 하단은 가상선의 다른 단부가 된다. 이 프로세스는 각 유효 블럭에 대해서 반복되며, 배향(회전의 방향) 및 스큐각이 각 픽셀의 확장된 단어에 저장된다.
스큐 검출 모듈(125)은 이미지가 방향의 양 및 중요하면서 시스템(100)에 의해 보상될 수 있는 스큐를 갖는가를 보장하기 위해 일련의 테스트를 이행한다. 스큐 검출 모듈(125)은 유효 블럭들의 총 개수가 2 미만 또는 등가인가를 결정한다(611). 그렇게 적은 수의 검정된 블럭들은 전체 이미지의 스큐를 단정하지 않는다. 따라서, 이러한 경우, 스큐 검출 모듈(125)는 이미지 스큐각 F를 0°로 세트한다(617).
그렇지 않으면, 다음으로 스큐 검출 모듈(125)은 접속된 블럭들의 다수의 세트들에 의해 고정된 배향을 결정한다(613). 이러한 수가 접속된 블럭들의 세트들의 총 개수의 대부분인 경우, 양호하게는 최소한 75%인 경우, 이에 따라 이 배향이 전체 이미지의 배향으로서 취해진다. 스큐 검출 모듈(125)은 유효 블럭들의 각 스큐각(F)을 평균함으로써(615) 이미지 스큐각(F)을 계산한다.
스큐 검출 모듈(125)는 이미지 스큐각(F)이 |60°|보다 큰지를 결정한다(619). 큰 경우, 이에 따라 문서는 심각하게 오정렬되어 정확하게 스캔되거나 또는 다른 한 편으로 캡처되기 어렵게 될 수 있으며, 성공적으로 정확하게 확인되고 진행되기 어렵다. 이러한 경우, 스큐 검출 모드(125)는 이미지 스큐각(F)을 0°로 세트한다(617). 그렇지 않으면, 이미지 스큐각(F)이 경계 조건 내에 있는 경우, 스큐 검출 모듈(125)은 그 값을 복귀시킨다. 이것이 검출된 스큐각을 복귀시키는 것으로 도4에 도시되어 있다.
D. 데스큐잉(Deskwing)
도3을 참조하면, 검출된 스큐각으로써, 정의 실행(definition executive)(121)은 이미지를 데스큐(deskew)할 것인지의 여부를 결정한다(307). 양호한 실시예에서, 이미지 스큐각이 1°이하인 경우, 이렇게 작은 양의 스큐는 템플리트에 대해서 폼의 기입에 영향을 끼치지 않기 때문에, 정의 실행(121)은 이미지를 데스큐하지 않는다.
이미지 스큐각(F)이 1°를 초과하는 경우, 서브 샘플된 이미지 및 원래 이미지를 진정한 수평 및 수직 배향으로 데스큐하기 위해(309), 정의 실행(121)은 데스큐잉 모듈(127)을 이용한다. 데스큐잉 모듈(127)은 이미지 파일로부터의 원래 이미지, 및 이미지 버퍼로부터의 서브샘플된 이미지 모두를 판독하며, 각자의 이미지 스큐각(F) 정도로 각자의 소정의 스큐 방향에 반대되는 방향으로 회전시킨다. 회전은 종래의 기술을 사용하여 구현된다.
도14는 바이토널 이미지 파일로 스캔되고 50dpi로 (풀 페이지 사이즈로 프린트) 서브샘플되고 이어서 데스큐된 입력 문서의 예이다.
E. 사용자 정의 영역의 선택
도3을 참조하면, 정의 실행(121)은 응용 실행(137)에 데스큐된 이미지를 제공하며, 또한 소망된 사용자 인터페이스 디스플레이를 통해서 사용자에 데스큐된 이미지를 보인다. 또한, 응용 실행(137)은 사용자가 사용자 정의 영역을 그래픽적으로 생성(311)시킬 수 있는 드로잉-라이크 툴의 종래의 세트를 제공한다. 이것은 장방형 또는 다각형 생성 툴 같은 적합한 드로잉 툴을 선택하고, 그것을 소망된 텍스트 정보를 포함하는 개별적인 영역을 선택하기 위해 데스큐된 이미지에 인가한다. 도7a는 데스큐듀된 문서(700)를 도시하는, 적합한 사용자 인터페이스(705)의 한 예이다. 도7b는 다수의 사용자 정의 영역(701)을 포함하는 동일한 문서를 도시한다. 또한 드로잉 툴의 팔레트(703)가 사용자 정의 영역(701)을 선택하기 위한 다양한 그래픽적 툴로써 도시되어 있다. 일단 사용자가 다수의 영역들을 정의하면, 각 사용자 정의 영역의 경계의 좌표가 저장되는데, 양호하게는 사용자 정의 영역이 정방형인 경우 좌상단 코너 및 우상단 코너의 좌표를 사용한다. 일반적인 다각형 사용자 정의 영역에 대해서, 각 정점의 좌표도 또한 저장될 수 있다.
F. 데이터 준비
다시 도3을 참조하면, 이어서 정의 실행(121)은 이미지 내의 불필요한 또는 중요하지 않은 엘리먼트들을 필터하기 위해 데이터 준비 모듈(129)이 서브샘플된 이미지 상에서 다수의 작업을 이행하도록 한다. 완만화, 수직 및 수평 라인 제거, 및 블럭들의 형성을 포함한다. 데이터 준비 모듈(129)은 레이블링 모듈(131)에 의해 레이블링 대기 상태인 원활화된 블럭들로써 이미지를 발생시킨다. 도8을 참조로 하면, 데이터 준비 모듈(129)의 밑에 있는 모듈들의 데이터 흐름을 도시한다. 데이터 준비 모듈(129)은 원활화 모듈(801), 라인 제어 모듈(803), 회전 이미지 모듈(805), 및 조합 모듈(807)을 포함한다. 도9를 참조하면, 데이터 준비 모듈(129)의 동작의 플로우그래프가 도시되어 있다. 도면에서, 프로세스 블럭들 간의 텍스트는 프로세스된 이미지의 현재 상태를 나타낸다. 접속 화살표 상의 텍스트는 이미지가 제1이미지 버퍼(141) 내에 있다는 것을 나타내며; 접속 화살표 아래의 텍스트는 이미지가 제2 이미지 버퍼(143)에 있다는 것을 나타낸다는 것을 나타낸다. 게다가, 프로세싱의 주어진 스테이지에서 예의 이미지를 도시하는 도면을 식별하기 위해 텍스트가 레이블되었다.
수평 및 수직 라인의 제거
데이터 준비 모듈(129)은 원활화 모듈(801)이 데스큐된 이미지를 원활화되게(901)한다. 원활화는 수평 라인들의 제거의 정확도를 증가시킨다. 원활화 모듈(801)은, 입력 실행길이 패러미터를 사용하여, 종래의 방법으로 실행길이 원활화를 이행한다. 스캐닝 동안에, 문서 내의 수직 및 수평 라인이 다수의 파선 세그먼트로 분리될 수 있다. 이것은 밝기/콘트래스트, 스캐닝 기술, 문서의 배향 같은 것의 결과이다. 그러한 파선은 라인 제거 모듈(803)에 의해 라니 제거 스테이지에서 식별하고 제거하기 더욱 어렵다. 유사하게, 폼은 실선 또는 점선에 의해 경계지워진 영역을 포함할 수 있는데, 역시 제거하기는 어렵다. 따라서, 라인 제거 모듈(803)의 정확도를 증가시키기 위해, 그러한 파선, 실선, 또는 점선이 연속된 라인을 형성하도록 하는 것이 바람직하다. 이것은 원활화 모듈(801)에 의해 이행된다.
원활화 모듈(801)은 실행길이 패러미터로 자극되고 통과되며, 다시 서브샘플된 이미지의 분해능에 의존하며, 그러한 분리 라인이 세트 픽셀들에 의해 접속되게 한다. 양호한 실시예에서, 실행길이 패러미터는 최대 5로 세트되는데, 양호한 분해능은 50 dpi으로 주어지고, 실행길이 패러미터는 다른 분해능에 대해서 조정된다. 이것은 5 미만의 화이트 픽셀을 블랙 픽셀들의 시퀀스로 변환시킨다. 이러한 통과는 점선, 실선, 또는 그와 유사한 라인들을 연속된 라인 세그먼트로 접속시킬 것이다. 낮은 실행길이 값은 또한 "i" 및 "j"간은 문자들의 도트, 또는 "t", "f" 및 다른 것들 상의 교차를 지우지 않는 것을 지원한다.
도15는 도14의 이미지를 도시한 것으로서, 원활화 모듈(801)에 의해 실행길이 원활화된다.
이어서 데이터 준비 모듈(129)은 라인 제거 모듈(803)이 원활화된 이미지 내의 수평 라인을 제거하게(903) 한다. 도16은 도15의 이미지 상의 수평 라인 제거(903)의 결과를 도시한다. 라인 제거 모듈(803)은 적어도 15의 실행길이로 세트(블랙) 픽셀을 식별하기 위해 이미지 버퍼를 스캔한다. 이것은 포텐셜 라인 세그먼트를 식별한다. 이어서 라인 제거 모듈(803)은 이 라인 세그먼트가 포텐셜 라인 세그먼트와 동일한 실행길이에 대한 일련의 세트되지 않는 픽셀들을 가졌는 가를 측정하기 위해 포텐셜 라인 세그먼트 상에서 제2 라인을 체크한다. 대체적으로, 라인 제거 모듈(803)은 세트로부터 언세트로의 전이의 회수를 측정하고, 이 값을 주어진 실행길이에 대한 소정의 최대 전이에 비교할 수 있다.
상기 조건이 만족되는 경우, 이에 따라, 이것은 포텐셜 라인 세그먼트의 톱 에지를 나타낸다. 유사하게 라인 제거 모듈(803)은 포텐셜 라인 세그먼트의 하단을 식별하기 위해 포텐셜 라인 세그먼트 아래의 제2 라인을 체크한다. 이러한 방법으로 포텐셜 라인 세그먼트는 최대 3 픽셀의 높이를 갖게 된다. 이러한 조건들이 충족되는 경우, 포텐셜 라인 세그먼트는 실제 라인 세그먼트이다. 이어서 라인 제거 모듈(803)은 세트 픽셀들 모두를 언세트 픽셀로 변환시킴으로써 라인 세그먼트를 제거한다. 이 프로세스는 이미지의 상단으로부터 하단으로 반복된다. 결과적인 이미지가 제2 이미지 버퍼(143)에 저장된다. 특정 개수의 라인 및 라인 높이는 이미지의 분해능에 의존하며, 그에 따라 조정될 수 있다.
조합 모듈(807)은 이미지 버퍼(141)(143) 내에서 2개와 이미지를 조합한다. 이 모듈(807)은 수직 및 수평 라인이 모두 제거된 이미지(905)를 발생시키기 위해 라인 제거 이후에 데이터 준비 모듈(129)에 의해 유도된다. 2개의 입력 이미지들의 각 비트를 AND 처리함으로써 조합이 논리적으로 이루어진다. 조합 모듈(807)은 수평 라인이 없는 원활화된 이미지로써 데스큐된 바이토널 이미지를 조합시키기 위해 수평 라인들을 제거한 후에 유도된다. 이것을 결과적으로 수평 라인이 없는 데스큐된 이미지를 발생시킨다. 도17은 수평 라인이 없는 데스큐된 이미지를 도시한 것으로서, 여기서 도14 및 도16이 조합되어 있다.
수평 라인을 제거한 후에, 데이터 준비 모듈(129)은 수평 라인들 없이 데스큐된 이미지를 정규화시킨다(907). 정규화는 이미지의 상단 및 이미지의 하단에서 일시적인 수평 라인(1 픽셀폭)을 드로잉하는 절차이다. 원활화 동작 동안에 이미지의 상단과 하단을 구분짓는 것을 명확하게 함으로써 이미지 내의 수직 라인을 제거하는 동안 정확도를 향상시키기 위해 이러한 절차가 이행된다. 일시적인 라인들없이 원활화 동작 동안에, 이미지의 일부가 페이지 경계를 가로질러 원활하게 될 수 있다. 수직 라인이 제거된 후에, 일시적인 라인들 또한 제거된다.
일단 정규화되면, 데스큐된 이미지는 90° 회전한다. 이 회전은 회전 이미지 모듈(805)에 의해 구현되며(909), 라인 제거 모듈(803)에 의해 수직 라인이 제거될 수 있도록 이행된다. 도18은 도17의 데스큐된 이미지의 정규화 및 회전을 도시한다.
데이터 준비 모듈(129)은 원활화 모듈(801)이 수평 라인 없이 정규화되고 데스큐된 이미지를 원활화하게 한다. 도19는 도18의 이미지의 원활화(911)의 결과를 도시한다. 이어서 라인 제거 모듈(803)은 수직 라인을 제거하되, 여기서 회전된 이미지에는 수평 라인이 있다 도20은 도19의 수평 라인들(회전되지 않은 이미지에서는 수직 라인)을 제거한(913) 결과를 도시한다.
수직 라인이 제거된 후에(913), 단계(909)의 결과로서, 제2 이미지 버퍼(143) 내의 수평 라인 없는 회전되고, 정규화되고, 데스큐된 이미지와는 별개로, 이미지가 제1 이미지 버피(141)에 저장된다. 이어서, 조합 모듈(807)이 단계(909)로부터 수평라인 없이, 회전되고 데스큐된 이미지를 수직 라인이 없는 원활화된 이미지와 조합시키도록(915) 호출되고, 여기서 수평 또는 수직 라인이 없는 회전되고 데스큐된 이미지를 발생시킨다. 도21은 도18의 데스큐되고, 회전되고, 정규화된 이미지로써 도20의 수직 라인 제거 이미지를 조합한 결과를 도시하며, 이에 의해 수평 또는 수직 라인이 없는 데스큐되고, 회전된 이미지를 발생시킨다. 수직 및 수평 라인들이 제거될 수 있는 순서는 적합한 수정에 의해 스위치될 수 있다.
일단 수평 및 수직 라인이 제거되면, 회전 이미지 모듈(805)은 조합된 이미지를 원래 배향으로 역회전시킨다(917). 데이터 준비 모듈(129)은 이미지를 정규화해제하고(919), 정규화 중에 투입된 일시적인 라인들을 제거한다. 그 결과가 수직 또는 수평 라인이 없는 데스큐된 이미지이다. 이 이미지는 최초 버퍼(141)에 저장된다. 도22는 도21의 이미지의 역회전 및 상단 및 하단 일시적인 라인들을 제거하기 위한 정규화 해제의 결과를 도시한다.
시스템 블럭들의 형성
데이터 준비 모듈(129)의 제2 주요 기능은 레이블링 모듈(131)에 의해 레이블링을 위해 시스템 블럭으로서 거의 간주될 수 있는 블럭들의 형성이다. 블럭들은 다음과 같이 형성된다. 블럭들은 라인 제거 프로세스와 유사한 일련의 단계들에 의해 형성된다. 수평 실행길이 원활화(921)가 원활화 모듈(801)에 의해 수평 및 수직 라인이 없는 데스큐된 이미지 상에서 연속된 픽셀들의 큰 블럭들을 발생시킬 실행길이 패러미터로써 구현된다, 양호한 실시예에서, 원활화 동작(921)이 (50 dpi에서) 각 픽셀 라인을 따라 있는 80 이하의 픽셀들의 화이트(언세트) 실행길이 발생이 변환되거나 도는 블랙(세트) 픽셀들로 채워지도록 약 80의 실행길이 값으로 구현된다. 결과적인 이미지는 제1 이미지 버퍼(141)에 저장된다. 도23은 도22의 이미지를 원활화한(921) 결과를 도시한다.
이어서 원활화(923)는 단계(915)의 결과인 수직 라인이 없는 이미지 데이터상에서 구현되고, 이어서 제2 이미지 버퍼(143)에 저장된다. 도24는 도21의 이미지상의 수직 원활화의 결과를 도시한다. 이어서 수직적으로 원활화된 이미지는 포트리트 방향(potrait oriention)으로 역회전되고, 제2 이미지 버퍼(143)에 저장된다.
제1 이미지 버퍼(141) 내의 수평적으로 원활화된 이미지, 및 제2 이미지 버퍼 내의 수직 원활화된 버퍼(143)는 조합 모듈(807)에 의해 함께 조합된다(925). 이 프로세스는 이미지 내의 데이터 블럭들의 세트를 발생시킨다. 도25는 데이터 블럭들을 발생시키기 위해 수평 및 수직 원활화의 조합된 결과, 여기서는 도23 및 도24(후속 회전)의 조합을 도시한다.
어떤 경우에, 더욱 원활화되어야 할 출력에 작을 갭이 있을 수 있다. 또한,결과 데이터의 원활화(927)는 3 픽셀의 실행길이 값으로 이행되며, 이에 의해 이러한 잔류 엘리먼트들을 제거한다. 결과적인 이미지가 제1 이미지 버퍼(141)에 저장되며, 레이블링 모듈(131)에 의한 프로세싱을 위해 대기중인 블럭들을 포함한다. 도26은 도25의 잔류 엘리먼트들을 제거하기 위해 원활화하는(927) 결과를 도시한다.
G. 시스템 블럭들의 레이블링 & 분류
다시 도3을 참조하면, 데이터 준비에 후속하여, 레이블링 모듈(131)에 의해 블럭들이 레이블되고 분류된다. 일반적으로, 레이블링 모듈(131)은, 각 블럭을 유일한 블럭 식별 번호로 식별하고, 각 블럭을 텍스트 블럭, 이미지 블럭, 또는 이중블럭으로서 분류하면서 데이터 준비 모듈(129)에 의해 생성된 블럭들을 분석한다. 텍스트 블럭은 원시 이미지 상의 텍스트 영역의 존재에 의해 발생되는 것 같은 블럭이다. 이미지 블럭은 원시 이미지 내의 그래픽 또는 화상의 존재로 인해 발생되는 것 같은 블럭이다. 이중 블럭은 텍스트 또는 이미지 블럭인지를 식별할 수 없는 블럭이다. 접속된 블럭들의 각 그룹은 유일한 블럭 식별 번화가 할당되어 있다.
레이블링 모듈(131)은 블럭들에 각각 상응하는 블럭 식별 번호들의 리스트를 보존하고, 각 블럭 식별 번호에 대해서 블럭에 대한 통계적 및 분류 데이터를 더 저장한다. 양호한 실시예에서, 블럭 식별 리스트는 블럭 스트럭트의 어레이이며, 각 블럭 스트럭트는 해당 블럭 식별 번호, 및 후술된 바와 같은 다른 데이터값을 갖는다.
레이블링 모듈(131)은 양호하게는 선택된 픽셀들이 인접 픽셀들에 접속되었는가를 결정하기 위해 4 픽셀-접속도 트레이싱 기술을 사용한다. 그러한 픽셀의 수집은 집속적으로 클러스터를 형성하고, 이에 의해 블럭의 타입이 형성되게 된다. 형성된 각 블럭에 대해서, 블럭 타입들 중에 하나에 속하는 유일한 블럭들로서 분류하기 위해 다양한 외형들이 추출된다.
블럭 식별 및 레이블링
도10을 참조하면, 레이블링 모듈(131)에 의한 블럭 식별의 프로세스의 플로우 그래프가 도시되어 있다. 레이블링 모듈(131)은 데이터 준비 모듈(129)로부터 제1 이미지 버퍼(141)를 통해서, 블럭들의 리스트 및 각각의 식별값들을 따라 수평 또는 수직 라인이 없는 원활화된 이미지를 수신한다. 레이블링 모듈(131)은 이미지 내의 각 비트를 상술한 바와 같이, 2 바이트 표현으로 확장한다(1001). 부가적인 비트 폭인 식별된 시스템 블럭들에 대한 정보를 저장하기 위해 사용될 것이다. 확장된 데이터는 어드레스 가능한 메모리(113)에 저장된다.
레이블링 모듈(131)은 이미지의 확장된 데이터를 스캔한다(1003). 실제 이미지 데이터에 상응하는 확장된 데이터 내의 비트 만이 체크된다. 이 스캐닝 프로세스는 좌측으로부터 우측, 상단으로부터 하단으로 진행하며; (분해능에 기초한) 라인들 및 이미지의 개수의 카운트는 전체 이미지가 스캔될 때를 결정하도록 유지된다.
세트 픽셀이 위치되는 경우, 이미 체크된(즉, 좌측, 좌측 상단, 상단, 및 우측 상단) 동일한 라인 및 이전 라인 내의 세트 픽셀에 바로 인접한 픽셀들이 동일한 블럭 식별 번호들을 가졌는가를 결정하기(1011) 위해 체크된다(1009). 이어서,그렇다면 세트 블럭은 동일한 블럭 식별 번호가 할당된다(1013). 레이블링 모듈(131)은 현재 라인이 이미지의 제1 라인인가 또는 블랭크 라인 다음인가를 결정한다(1005). 그렇다면, 이어서 상기와 같이 인접 좌측으로의 픽셀만이 체크된다.
블럭 식별 번화가 인접 픽셀들마다 다른 경우, 이에 따라 레이블링 모듈(131)은 세트 픽셀이 다중 블럭 식별 번호를 가졌는가를 결정한다(1015). 그렇다면, 이에 따라 레이블링 모듈(131)이 인접 픽셀들 중에 최대수로 고정된 블럭 식별 번호를 픽셀에 할당한다(1021). 또한, 어떤 다른 인접 픽셀들은 이 블럭 식별 번호로 변환된 각자의 블럭 식별 번호를 가질 것이다. 블럭 식별 번호는 유용가능한 블럭 식별 번호의 리스트로부터 할당된다. 따라서 변환된 픽셀의 블럭 식별 번호는 유용 가능한 블럭 식별 번호들의 리스트들에 역으로 첨가된다(1023). 따라서 각 블럭 식별 번호는 접속된 픽셀들의 한 세트에 결합된다.
일단 블럭 식별 번화가 할당되면, 블럭 식별 번호들에 대한 다수의 통계가 갱신된다(1025). 특히, 레이블링 모듈(131)은 각 블럭 식별 번호:
블럭 식별 번호를 갖는 이미지 버퍼 내에 존재하는 세트 픽셀들의 번호(NUMB);
블럭의 좌측 상단, 및 우측 하단의 세트 픽셀들에 의해 결정된 바와 같이, 블럭의 스패닝 영역(AREA);
블럭 내의 세트-투-언세트 전이(좌측에서 우측으로/상단에서 하단으로 스캐닝)들의 번호(TRANS);
블럭의 좌측 상단과 우측 하단 세트 픽셀들의 y-축 좌표들의 차인, 블럭의높이(HEIGHT);
블럭의 좌측 상단과 우측 하단 세트 픽셀들의 y-축 좌표들의 차인, 블럭의 폭(WIDTH);
NUMB/TRANS의 몫에 의해 결정되며, 블럭 내의 세트 픽셀들의 평균 실행 길이를 나타내는 실행 팩터(RUN);
WIDTH/HEIGHT의 몫에 의해 결정되는 종횡비(ASPECT);
NUMB/AREA의 몫에 의해 결정되며, 블럭 내의 픽셀당 세트 픽셀들의 평균 개수를 나타내는 밀도 팩터(DENSITY)
에 대해서 유지된다.
이들 데이터 값들은 각 스캔된 픽셀로써 갱신된다(1025). 레이블링 모듈(131)은 이미지 내의 모든 라인들이 프로세스되었는가를 결정한다(1027). 그렇치않다면, 레이블링 모듈(131)은 확장된 데이터를 스캔하는(1003) 것을 계속한다. 프로세스되었다면, 이에 따라 접속된 픽셀들의 모든 구별되고, 개별적인 블럭들이 식별되고, 블럭 식별 번호가 제공되고, 각 블럭 식별 번호가 접속된 픽셀들의 한 그룹에만 인가된다.
일단 모든 블럭들에 블럭 식별 번화가 인가되면, 레이블링 모듈(131)은 전체 이미지에 대한 평균 블럭 데이터를 결정하기 위해 선택된 블럭들을 검증한다(1029). 검증된 블럭들은 시스템에 의해 용이하게 식별될 적합한 사이즈 및 형태를 갖는다. 양호한 실시예에서, 50 dpi 이미지를 사용하면, 검증된 블럭들은 다음의 조건:
HEIGHT/RUN > 4.00
HEIGHT <= 22 라인
ASPECT >= 5.00
DENSITY >= 0.5
에 부합한다.
각 블럭은 이러한 조건에 대하여 체크되며(1029), 블럭 식별 번호의 리스트는 블럭이 검증되었는가를 지시하기 위해 갱신된다. 값들은 양호한 분해능과 관련되어있으며, 다른 실시예들에서, 다른 조건들이 사용될 수 있다.
검정된 블럭들로부터, 평균 높이 및 평균 실행길이가 계산된다(1031). 평균 높이는 검정된 블럭들의 높이들을 가산하고, 검정된 블럭들의 수고 나눔으로써 결정된다. 평균 실행길이는 간단하게 결정된다.
도27은 도26의 이미지 상에 레이블링한 결과의 개략적인 예를 도시한다. 도27의 이미지에서, 동일한 픽셀 밀도 패턴을 갖는 블럭들은 한 블럭의 부분으로서 레이블되며, 동일한 블럭 식별 번호를 갖는다.
블럭 분류
이어서 레이블링 모듈(131)은 (상기와 같은 검증된 그리고 검증되지 않은) 각 블럭의 데이터 타입이 텍스트, 이미지 또는 이중인지를 결정하기를 계속한다. 도11을 참조하면, 레이블링 모듈(131)의 데이터 타입 분류 프로세스의 플로우그래프가 도시되어 있다.
레이블링 모듈(131)은 검정 프로세스로부터의 발생된 검정된 블럭들이 있는지를 테스트한다(1100). 그렇지않다면, 이에 따라 레이블링 모듈(131)이 모든 블럭들을 무용한 블럭들 및 이중 블럭들로 분리시킨다. 레이블링 모듈(131)은 블럭 리스트 상에서 루프하며(1101), 각 블럭에 대해서 영역(AREA)이 100 픽셀 미만인지를(50 dpi 가정) 결정한다(1103). 그렇다면, 이에 따라 블럭은 무용한 블럭이며, 프로세싱이 지속된다. 영역이 100픽셀보다 큰 경우, 이에 따라 이중 블럭으로 분류된다(1105). 각각의 경우에 블럭 리스트는 할당된 값으로 갱신된다.
일단 블럭들이 초기에 갱신되거나, 또는 검정된 블럭이 없는 경우, 이에 따라 레이블링 모듈(131)은 블럭이 텍스트인가 또는 이미지 블럭인가, 또는 단지 검출되는 것이 없는 것인가를 결정한다. 이것은 검정된 또는 이중 블럭 블럭들의 리스트상에서 루프함(1109)으로써, 그리고 각 블럭에 대해서 블럭이 높이가 이미지의 평균 블럭 높이로부터 블럭 높이의 특정 범위 내에 있는지를 결정함(1111)으로써 이행된다. 양호한 실시예에서, 양호한 이미지 분해능은 50 dpi이며, 각 블럭이 평균 블럭 높이의 4배 이하인가를 테스트한다. 다른 근사 비가 다른 이미지 분해능으로 사용될 수 있다.
블럭 높이가 소망된 범위 내에 있는 경우, 이것은 텍스트이거나 이미지 데이터일 수 있는 스몰 사이즈 내지 미디엄 사이즈 블럭을 의미한다. 따라서, 레이블링 모듈(131)은 또한 모든 검정된 블럭들의 평균 실행길이에 관해서 블럭의 실행길이(RUN)를 결정한다(1113). 양호한 실시예에서, 블럭 실행길이가 평균 실행길이가 평균 실행길이에 조정 팩터 2를 더한 값의 약 6배의 미만인 경우, 이에 따라 블럭들은 텍스트 블럭이며, 이에 따라 블럭 식별 리스트는 갱신된다(1115). 이것은 블럭이 데이터 준비에 의해 일단 원활화된 텍스트 블럭들에 공통인 영역 및 길이를 갖는지를 효과적으로 테스트한다. 이러한 다양한 테스트들에 부합하는 블럭들은 대개 텍스트 블럭으로 분류된다.
만일 실행길이가 이러한 값을 초과한다면, 블럭은 여전히 이미지 블럭 또는 중간 미결정 상태로 있게 되는데, 이러한 경우 이중 블럭으로서 분류된 채로 유지된다. 따라서, 블럭 레이블링 모듈(131)은 블럭의 높이(HEIGHT)가 3개의 라인보다 큰지 단계(1117)에서 테스트 한다(다시, 50dpi 이미지를 가정하는데, 이러한 값은 다른 해상도를 갖도록 스케일링 된다). 대부분의 텍스트 블럭들은 이러한 양보다 작은데, 만일 높이가 이러한 값을 초과한다며, 블럭은 이미지 블럭일 것이며, 따라서 블럭 식별 리스트가 단계(1119)에서 그에 따라 갱신된다. 만일 그러하지 않다면, 더 이상의 분류는 실행되지 않으며, 블럭은 이중 블럭으로서 분류된 상태로 유지된다.
그 다음으로 조건식 단계(1111)로 돌아가서, 블럭의 높이가 평균 블럭 높이의 약 4배보다 큰 경우는 블럭은 아마 이미지 블럭이나, 또다른 테스트가 이러한 분류를 검증하도록 실행된다. 레이블링 모듈(131)은 블럭의 외관비(ASPECT)가 약 0.2 이상 큰지를 단계(1191)에서 결정한다. 만일 그러하다면, 이는 블럭이 대부분의 이미지의 근사 폭 대 높이를 갖음을 나타내는데, 어떠한 작은 값도 이미지일 수 없는 매우 좁은 블럭을 나타낸다. 따라서, 레이블링 모듈(131)은 이미지 블럭을 나타내도록 블럭 리스트를 단계(1119)에서 갱신한다. 만일 이러한 테스트가 실패한다면, 레이블링 모듈(131)은 블럭의 폭이 3개 픽셀보다 큰지를 단계(1123)에서 결정한다. 만일 이러하다면, 블럭이 다시 이미지 블럭으로서 단계(1119)에서 분류된다. 그러하지 않다면, 블럭은 이중 블럭으로서 분류된 채로 유지된다.
레이블링 및 분류 프로세스의 끝에서, 이미지의 블럭은 뚜렷하게 식별되어 텍스트, 이미지 또는 이중 블럭으로서 타이핑된다. 결과 블럭 세트는 '시스템 블럭'이며, 또 템플리트 구조를 정의하는데 사용될 것이다.
H. 동적 데이타 네트워크의 생성
다시 도3을 참조하면, 템플리트의 구조를 설명하는 동적 데이타 네트워크가 가 유효 레이블링된 분류 블럭으로부터 단계(317)에서 정의된다. 이제 도12를 참조하면, 템플리트 모듈(133)에 의한 템플리트의 동적 데이타 네트워크 생성 프로세스의 흐름도가 도시된다.
템플리트 모듈(133)은 임의의 시스템 블럭이 임의의 사용자 정의 영역을 교차하는가를 단계(1200)에서 결정한다. 또한, 템플리트 모듈(133)은 설정된 픽셀이 발생하는 큐 조정 서브샘플링된 이미지의 제1 라인 및 설정된 픽셀이 발생하는 최종 라인을 결정한다. 이러한 라인들은 어떠한 데이타도 존재하는 이미지 영역을 결정하며, 이에 따라 이러한 라인 밖의 이미지 영역에 대한 불필요한 프로세싱이 제거된다.
템플리트 모듈(133)은 제1 라인과 최종 라인 사이의 이미지 데이타를 단계(1201)에서 동일 영역을 갖는 다수의 영역으로 분할한다. 이미지를 세그먼트로 분할하는 것은 각각의 세그먼트 내의 블럭 크기를 정규화 하는 것을 허용하며, 이에 따라 큰 블럭이 동적 데이타 네트워크를 위한 블럭 선택에 중첩적 영향을 주기않게 된다. 세그먼트를 사용함으로써, 이미지의 각 영역의 블럭이 템플리트에서 사용될 것이며, 이는 더 강력한 템플리트 결과가 된다. 양호한 실시예에서, 이미지가 이미지를 상단에서 하단까지 분할함으로써 15개의 세그먼트로 분할된다.
각각의 세그먼트에서, 템플리트 모듈(133)은 단계(1203)에서 세그먼트 내의 텍스트 블럭 및 이미지 블럭의 평균 영역을 분리하여 결정한다. 그 다음으로, 각각의 세그먼트 내의 각 블럭 유형의 평균 영역이 저장된다. 그 다음으로 템플리트 모듈(133)은 단계(1205)에서 각각의 세그먼트 내에서 동일 블럭 유형에 대하여 세그먼트의 평균 블럭 영역과 거의 동일한 영역을 갖는 블랙을 선택한다. 양호한 실시예에서, 선택된 블럭들은 그들 유형의 평균 블럭 영역의 ±20% 내에 속한다. 경우에 따라서, 순서 리스트 내에서 평균 블럭 크기 다음의 보다 작은 영역을 갖는 블럭 및 평균 블럭 크기 다음의 보다 큰 영역을 갖는 블럭이 선택될 수 있다. 예를 들어, 세그먼트 내의 블럭은 104, 100, 118, 132, 138, 102 및 128개의 정방 픽셀을 갖으며 또 평균 블럭 영역은 120 픽셀이라고 가정하자. 이와 같이 가정하면, 선택된 블럭은 118 및 128개의 정방 픽셀을 갖게 될 것이다. 이러한 선택은 이미지 및 텍스트 블럭 양자 모두에 대해 행해지며, 각각의 세그먼트 내에서 4개의 블럭으로 결과된다.
그 다음으로, 템플리트 모듈(133)은 단계(1207)에서 가장 작은 5개의 블럭이 선택되었는가를 결정한다. 만일 그러하다면, 템플리트에 대한 동적 데이타 네트워크가 생성될 수 있다. 실험으로부터 최소 5개의 블럭들이 동적 데이타 네트워크를 생성하는데 바람직하다는 것이 결정되었다. 만일 5개의 블럭이 선택되지 않는다면,템플리트 모듈(133)은 단계(1209)에서 템플리트 정의가 실패했다는 사실을 폼 프로세싱 정의 실행부(121)에 표시한다.
만일 전체 이미지에 대해 5개보다 많은 블럭들이 있다면, 이미지에 대한 동적 데이타 네트워크가 단계(1211)에서 생성된다. 동적 데이타 네트워크는 평균 크기 요구를 만족하는 시스템 블럭, 양호하게는 그들의 도심(centroid) 사이의 벡터 리스트를 포함한다. 보다 상세하게, 각각의 시스템 블럭에 대해 시스템 블럭의 도심으로부터 모든 다른 시스템 블럭까지의 벡터가 정의된다. 따라서, 각각의 시스템 블럭 Bi(i=1 내지 n, 이때 n은 시스템 블럭수)에 대해 시스템 블럭 Bi와 시스템 블럭 Bj사이에 벡터 리스트 v(i,j)를 포함하는 벡터 리스트 Vi:
가 존재하게 된다.
양호한 실시예에서, 각각의 벡터는 시스템 블럭의 도심 사이의 거리 및 방향으로서 양호하게 정의된다.
이때, (Bi→ Bj)는 시스템 블럭 Bi로부터 시스템 블럭 Bj까지의 벡터 방향을 나타낸다.
또한, 벡터가 불변적으로 하나의 시스템 블럭을 다른 것에 연관시키는 한 다른 벡터 정의들이 역시 사용될 수 있다. 예를 들어, 각각의 벡터는 그 종단점의 좌표로서 저장될 수 있다:
이로부터 거리 및 좌표가 필요한 때에 계산될 수 있다.
이미지에 대한 동적 데이타 네트워크 D는 시스템 블럭에 대한 벡터 리스트 V 세트를 포함한다:
이미지의 동적 데이타 네트워크는 시스템 블럭 사이의 벡터 관계가 이미지 상에서 고정되기 때문에 이미지 구조를 설명하며, 이미지가 큰 양만큼 회전 또는 이동된 때에도 동일하게 유지된다. 도28a는 시스템 블럭으로서 사용된 텍스트 영역을 갖는 샘플 폼을 도시하며, 또 도28b내지 도28h는 각각의 시스템 블럭 및 다른 시스템 블럭 사이의 다양한 벡터 리스트 Vi를 도시한다.
또한, 동적 데이타 네트워크 D의 일부분이 사용자 정의 영역에 대하여 정의될 수 있다. 이는 각각의 사용자 정의 영역 Zk(k=1 내지 m, m은 사용자 정의 영역수)에 대해 영역 Zk와 각각의 시스템 블럭 Bi사이의 벡터 u(k,i)를 포함하는 벡터리스트 U를 성립시킴으로써 행해진다.
이러한 실시예에서, 사용자 정의 영역들 사이의 벡터는 템플리트의 강도에 대해 크게 영향을 주지 않았으며, 따라서 저장되지 않았다. 대안적인 실시예에서는 이러한 벡터들이 템플리트를 개선시킨다면 사용될 수 있다. 어떠한 경우에서든지,만일 사용자 정의 영역들 사이의 벡터들이 포함된다면, 동적 데이타 네트워크 D가 부가적으로 사용자 정의 영역에 대한 벡터 리스트 U 세트를 포함할 것이다:
그 다음으로, 템플리트 모듈(133)은 단계(1213)에서 템플리트 내의 각각의 시스템 블럭의 위치를 포함하여 사용자 입력명 및 정의 템플리트 데이타를 갖는 생성 템플리트, 각각의 시스템 블럭 상의 통계 데이타, 동적 데이타 네트워크 정보 및 사용자 정의 영역의 좌표를 저장한다. 템플리트 모듈(133)은 제어를 정의 실행부(121)로 복귀시킨다.
III. 템플리트 등록
다시 도2를 참조하면, 하나 이상의 템플리트가 단계(201)에서 정의된 후, 사용자는 템플리트를 사용하여 문서를 프로세싱 하기 시작할 수 있다. 템플리트의 선택 및 문서 입력은 상술되었다. 템플리트의 응용은 템플리트를 사용하여 문서를 자동 등록하는 프로세스이다.
일반적으로, 등록 프로세스는 새로운 템플리트를 생성하는 대신에 각 입력 이미지 내의 식별된 시스템 블럭들이 템플리트의 동적 데이타 네트워크 및 시스템 블럭과 비교된다는 점을 제외하고는 템플리트 정의 프로세스와 매우 유사하다. 만일 정합 한다면, 시스템은 템플리트의 사용자 정의 영역을 입력 이미지에 응용하여 광학 문자 인식을 통하여 임의의 텍스트도 추출한다.
보다 상세하게, 도13a 내지 13b를 참조하면, 등록 프로세스의 흐름도가 도시된다. 등록 동안 사용된 모듈들은 앞서 설명되었으며, 그 하부 동작들은 결과적으로 동일하다. 등록 프로세스는 등록 실행부(135)에 의해 운영된다.
등록 실행부(135)는 입력 문서를 스캐닝 하기 위해 스캐너(115) 및 스캐너 제어 모듈부(139)를 제어하여 단계(1301)에서 이미지 데이타를 획득한다. 이미지 데이타는 2톤형 이미지를 발생하도록 상술된 바와 같이 임계 처리된다. 등록 실행부(135)는 단계(1301)에서 이미지 데이타를 소망 해상도로 축소하기 위하여 축소 모듈부(123)을 기동한다.
등록 실행부(135)는 이미지 내의 어떠한 스큐도 단계(1305)에서 검출하기 위하여 스큐 검출 모듈부(125)를 기동하며, 이미지 스큐각 및 배향을 보고한다. 등록 실행부(135)는 단계(1306)에서 스큐가 1°를 초과하는가를 결정하며, 만일 그러하다면 단계(1307)에서 축소된 이미지 및 원시 이미지 데이타의 스큐 조정을 위하여 스큐 조정 모듈부(127)을 호출한다. 축소된 이미지는 제1 이미지 버퍼(141) 내에 저장된다.
등록 실행부(135)는 단계(1309)에서 수평 및 수직 라인을 제거하고 또 단계(1311)에서 이미지를 뚜렷한 데이타 블럭으로 완만화 시키기 위하여 데이타 준비 모듈(129)를 기동시킨다. 그 다음으로, 단계(1313)에서 블럭 식별 번호를 사용하여 데이타 블럭을 레이블링 및 분류하도록 레이블링 모듈(131)이 기동된다. 레이블링된 블럭들은 상술한 바와 같이 검정된 블럭 리스트를 발생하기 위하여 검정된다. 검정된 블럭들은 상술된 바와 같이 텍스트, 이미지 또는 이중 블럭 가운데 하나로서 분류된다.
등록 실행부(135)는 템플리트 모듈(133)을 호출하는데, 이는 단계(1315)에서템플리트의 동적 데이타 네트워크를 로딩 한다. 그 다음으로, 템플리트 모듈(133)은 입력 이미지에 대한 동적 데이타 네트워크를 생성한다. 이는 분류된 데이타 블럭을 단계(1317)에서 더 검증함으로써 수행된다. 이러한 검증은 템플리트의 시스템 블럭과 정합할 가능성 있는 시스템 블럭들을 식별한다. 입력 이미지 내의 각각의 데이타 블럭이 템플리트 내의 각각의 시스템 블럭과 비교된다. 검증 기준은 다음과 같다:
데이타 블럭의 분류는 동일해야만 한다(텍스트 또는 이미지);
블럭 폭 사이의 절대 차이는 5개 픽셀 이하여야만 한다;
블럭의 높이의 절대 차이는 5개 라인 이하여야만 한다;
데이타 블럭 및 시스템 블럭 내의 설정 픽셀의 수들 사이의 절대 차이는 시스템 블럭 내의 설정 픽셀 수의 10% 미만이어야만 한다.
템플리트 모듈(133)은 단계(1319)에서 입력 이미지의 검증된 시스템 블럭의 수가 템플리트 내의 시스템 블럭수의 최소한 20%인지를 테스팅 한다. 만일 그러하지 않다면, 템플리트는 입력 이미지와 정합 하지 않으며, 템플리트 모듈(133)은 단계(1333)에서 실패 상태를 등록 실행부(135)에 복귀시킨다.
만일 검증된 시스템 블럭수가 임계값과 일치한다면, 템플리트 모듈(133)은 단계(1321)에서 상술된 바와 같이 입력 이미지에 대한 동적 데이타 네트워크를 생성한다. 이러한 동적 데이타 네트워크는 템플리트로서 저장되지 않으나, 단계(1323)에서 사용자 선택 템플리트의 동적 데이타 네트워크와 비교된다.
단계(1323)에서 비교 프로세스가 입력 이미지 동적 데이타 네트워크 내의 각각의 시스템 블럭에 대해 반복되며, 이에 따라 입력 이미지 내의 각각의 시스템 블럭에 대해 효과적으로 반복된다. 각각의 이미지 벡터 리스트 내의 벡터들은 템플리트 벡터 리스트 내의 벡터들과 비교된다. 입력 이미지 내의 벡터가 선정된 크기 허용 오차 범위 내에 있는 템플리트 내의 벡터와 정합 한다. 이러한 양호한 실시예에서, 50dpi 이미지를 사용하면 크기 허용 오차는 3개 픽셀이다. 즉, 만일 입력 이미지 벡터 길이가 템플리트의 벡터 길이의 ±3개 픽셀 내에 있다면, 벡터는 정합한다. 다른 실시예에서는 적절하게 스케일링된 다른 크기 허용 오차가 사용될 수 있다. 또한, 벡터들은 거의 제곱된 크기 허용 오차와 종단점의 좌표에 의해 역시 비교될 수 있다. 템플리트 모듈(133)은 정합 벡터 수의 계수값을 유지한다.
그 다음으로, 템플리트 모듈(133)은 단계(1325)에서 정합 벡터의 수, 즉 따라서 정합 시스템 블럭의 수가 템플리트 내의 시스템 블럭수의 최소한 10%인지를 결정한다. 만일 그러하다면, 동적 데이타 네트워크는 정합된 것이며, 등록은 성공적으로 된다.
만일 템플리트 및 입력 이미지의 동적 데이타 네트워크가 서로 정합 한다면, 시스템 블럭에 해당하는 (하나는 템플리트 내에 또 하나는 입력 이미지 내에 있는) 각각의 쌍의 도심 사이의 (x,y) 옵셋이 단계(1327)에서 결정된다. 이는 옵셋값 (x,y)의 리스트를 발생할 것이다. 시스템 블럭쌍의 가장 큰 수에 응용되는 옵셋값 은 이미지의 옵셋으로서 취해진다. 예를 들어, 만일 5개의 시스템 블럭쌍이 (2,3), 2개는 (2,4)인 옵셋 및 6개는 (3,3)인 옵셋을 갖는다면, 이미지 옵셋은 (3,3) 픽셀이다. 이미지 옵셋은 단계(1329)에서 입력 이미지 상의 사용자 정의 영역의 좌표를결정하기 위하여 템플리트 내에 저장된 각각의 사용자 정의 영역의 좌표에 더해진다.
입력 내의 사용자 정의 영역의 좌표가 단계(1331)에서 광학 문자 등록 모듈(145)에 제공된다. 그 다음으로, 광학 문자 등록 모듈(145)는 단계(209)에서 이미지상의 상기 영역 내의 텍스트를 추출함으로써, 데이타를 화일, 데이타 베이스 또는 다른 저장 설비에 제공하게 된다.
만일 템플리트와 정합 하지 않는다면, 등록 실행부(135)는 단계(1333)에서 실패 상태를 응용 실행부(137)에 복귀시키며, 이는 사용자에게 템플리트가 응용될 수 없음을 표시한다. 이는 문서가 폼과 동일 유형이 아니거나 또는 크게 많거나 또는 직은 수의 픽셀들이 템플리트가 유도된 원시 이미지 내에서와는 달리 이미지 내에서 설정되도록 하는 크게 다른 밝기 및 콘트래스트 설정을 사용하여 스캐닝된 경우 발생할 것이다. 그 다음으로, 사용자는 스캐너(115) 설정을 검토하여 문서를 다시 스캐닝 할 수 있다.
양호한 실시예에서, 만일 정합이 실패한다면, 응용 실행부(137)은 사용자가 사용자 정의 영역을 다시 드로잉(drawing)하는 것을 포함하여 단계(1335)에서 템플리트를 다시 정의하는 것을 허용한다. 이는 사용자가 예를 들어 배경 폼의 새로운 버전(version)을 만듦과 같은 폼 변경에 대해 템플리트를 적용시켜 발전시키는 것을 허용한다. 그 다음으로, 등록 실행부(135)는 변형된 템플리트를 재정합시키려고 시도할 것이다. 만일 사용자가 템플리트를 다시 정의하기를 원하지 않는다면, 사용자는 빠져 나오도록 선택할 수 있다.

Claims (12)

  1. 제1 이미지 내의 최소한 하나의 사용자 정의 영역(user defined zone)에 대해 제2 이미지 내의 사용자 정의 영역을 자동적으로 식별하여 상기 제1 이미지에 대한 상기 제2 이미지 내의 스큐(skew) 및 위치 변경(displacement)을 보상하는 방법에 있어서,
    상기 제1 이미지 내에서 연결된 픽셀의 다수의 제1 블럭을 식별하는 단계;
    상기 다수의 제1 블럭들 가운데 선택된 것들 사이에서 최소한 하나의 제1 벡터 세트(set of vector)를 정의하는 단계;
    상기 제2 이미지 내에서 픽셀과 연결된 다수의 제2 블럭을 식별하는 단계;
    상기 다수의 제2 블럭들 가운데 선택된 것들 사이에서 최소한 하나의 제2 벡터 세트를 정의하는 단계;
    상기 최소한 하나의 제1 벡터 세트와 상기 최소한 하나의 제2 벡터 세트 사이의 유사 정도(degree of similarity)를 성립시키기 위하여 상기 제1 및 제2 벡터 세트들을 서로 비교하는 단계; 및
    상기 최소한 하나의 제2 벡터 세트에 대해 상기 최소한 하나의 제1 벡터 세트가 유사한 것에 응답하여, 상기 제1 이미지의 상기 사용자 정의 영역을 상기 제2 이미지에 응용하는 단계
    를 포함하는 것을 특징으로 하는 자동 식별 및 보상 방법.
  2. 제1항에 있어서,
    상기 제1 이미지 내에 상기 최소한 하나의 사용자 정의 영역을 정의하는 단계
    를 더 포함하는 것을 특징으로 하는 자동 식별 및 보상 방법.
  3. 제1항에 있어서,
    2톤형 이미지(bitonal image)를 얻기 위하여 상기 제1 및 제2 이미지를 임계처리(thresholding)하는 단계
    를 더 포함하는 것을 특징으로 하는 자동 식별 및 보상 방법.
  4. 제1항에 있어서,
    각각의 이미지의 해상도를 감소시키기 위하여 상기 제1 및 제2 이미지를 서브샘플링(subsampling)하는 단계
    를 더 포함하는 것을 특징으로 하는 자동 식별 및 보상 방법.
  5. 제1항에 있어서,
    상기 제1 이미지 내에서 상기 연결된 픽셀의 상기 다수의 제1 블럭을 식별하는 단계는
    상기 제1 이미지 내의 스큐각(skew angle) 및 배향(orientation)을 결정하는 단계;
    상기 스큐각 및 배향에 따라서 상기 제1 이미지를 스큐 조정(deskewing)하는 단계;
    상기 제1 이미지로부터 수평 라인을 제거하는 단계;
    상기 제1 이미지로부터 수직 라인을 제거하는 단계; 및
    상기 연결된 픽셀의 상기 다수의 제1 블럭을 발생하기 위하여 상기 제 1 이미지를 완만화(smoothing)시키는 단계
    를 포함하는 것을 특징으로 하는 자동 식별 및 보상 방법.
  6. 제5항에 있어서,
    상기 다수의 제1 블럭의 각각을 뚜렷하게 식별하는 단계; 및
    상기 각각의 블럭에 대해 데이타 분류를 결정하는 단계
    를 포함하는 것을 특징으로 하는 자동 식별 및 보상 방법.
  7. 제1항에 있어서, 상기 최소한 하나의 제1 비터 정합을 정의하는 단계는
    상기 선택된 블럭 각각의 도심(centroid) 사이에서 상기 다른 선택된 블럭 각각의 도심에 대한 벡터를 결정하는 단계
    를 더 포함하는 것을 특징으로 하는 자동 식별 및 보상 방법.
  8. 제7항에 있어서,
    상기 최소한 하나의 사용자 정의 영역 각각의 도심 사이에서 상기 선택된 블럭 각각의 도심에 대한 벡터를 결정하는 단계를 더 포함하는 것을 특징으로 하는 자동 식별 및 보상 방법
  9. 제7항에 있어서, 상기 각각의 벡터는 거리 및 방향을 포함하는 것을 특징으로 하는 자동 식별 및 보상 방법.
  10. 제5항에 있어서, 상기 제1 이미지 내의 상기 스큐각 및 배향 결정 단계는
    상기 제1 이미지 내의 상기 픽셀 데이타를 다수의 블럭으로 완만화시키는 단계;
    상기 연결된 픽셀 세트를 형성하며, 높이 및 폭을 각각 갖는 블럭을 식별하는 단계;
    선정된 범위 내의 높이 및 폭을 갖는 블럭을 유효 블럭으로서 검증하는 단계;
    각각의 유효 블럭에 대하여 블럭 스큐각 및 배향을 결정하는 단계;
    상기 유효 블럭의 대다수의 배향을 결정하는 단계; 및
    상기 유효 블럭의 상기 블럭 스큐각을 평균하는 단계
    를 더 포함하는 것을 특징으로 하는 자동 식별 및 보상 방법.
  11. 제5항에 있어서, 상기 제1 이미지로부터 상기 수평 라인을 제거하는 단계는
    분해된 수평 라인 세그먼트(segment)를 연속 수평 라인 세그먼트로 변환시키기 위하여 선택된 실행길이 파라미터(runlength parameter)를 사용하여 상기 제1 이미지를 실행길이 완만화시키는 단계;
    최대 높이보다 작은 높이를 갖는 수평 라인 세그먼트를 식별하는 단계;및
    상기 수평 라인 세그먼트 내의 설정 픽셀을 비설정 픽셀로 변환시킴으로써 상기 식별 수평 라인 세그먼트를 제거하는 단계
    를 더 포함하는 것을 특징으로 하는 자동 식별 및 보상 방법.
  12. 제5항에 있어서, 상기 제1 이미지로부터 상기 수직 라인을 제거하는 단계는
    상기 이미지의 상단 및 하단에 일시적 수평 라인을 부가함으로써 상기 제1 이미지를 정규화(normalizing)시키는 단계;
    상기 제1 이미지를 90°회전시키는 단계;
    분해된 수직 라인 세그먼트를 연속 수직 라인 세그먼트로 변환시키기 위하여 선택된 실행길이 파라미터를 사용하여 상기 제1 이미지를 실행길이 완만화시키는 단계;
    최대 높이보다 작은 높이를 갖는 수직 라인 세그먼트를 식별하는 단계;
    상기 수직 라인 세그먼트 내의 설정 픽셀을 비설정 픽셀로 변환시킴으로써 상기 식별 수직 라인 세그먼트를 제거하는 단계
    상기 제1 이미지를 반대 방향으로 90°회전시키는 단계; 및
    상기 일시적 수평 라인을 제거함으로써 상기 제1 이미지를 정규화 해제시키는 단계
    를 포함하는 것을 특징으로 하는 자동 식별 및 보상 방법.
KR1019960707053A 1995-04-10 1996-04-10 폼처리중자동페이지등록및자동영역검출을위한시스템및방법 KR100390264B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08419,135 1995-04-10
US08/419,135 US5822454A (en) 1995-04-10 1995-04-10 System and method for automatic page registration and automatic zone detection during forms processing

Publications (1)

Publication Number Publication Date
KR100390264B1 true KR100390264B1 (ko) 2003-09-22

Family

ID=23660939

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960707053A KR100390264B1 (ko) 1995-04-10 1996-04-10 폼처리중자동페이지등록및자동영역검출을위한시스템및방법

Country Status (12)

Country Link
US (1) US5822454A (ko)
EP (1) EP0764308B1 (ko)
JP (1) JP4101290B2 (ko)
KR (1) KR100390264B1 (ko)
AU (1) AU696889B2 (ko)
BR (1) BR9606305B1 (ko)
CA (1) CA2192436C (ko)
DE (1) DE69621992T2 (ko)
ES (1) ES2180761T3 (ko)
NO (1) NO965255L (ko)
NZ (1) NZ306769A (ko)
WO (1) WO1996032691A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102256667B1 (ko) * 2020-03-23 2021-05-26 주식회사 신한디에스 문서 인식 방법 및 그 장치
WO2022182111A1 (ko) * 2021-02-23 2022-09-01 네이버 주식회사 테이블 생성 방법 및 시스템, 그리고 테이블 인식 방법 및 시스템
WO2022182104A1 (ko) * 2021-02-23 2022-09-01 네이버 주식회사 테이블 생성 방법 및 시스템, 그리고 테이블이 포함된 이미지 보정 방법 및 시스템
KR20220132213A (ko) * 2021-03-23 2022-09-30 네이버 주식회사 테이블이 포함된 이미지 보정 방법 및 시스템

Families Citing this family (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6009198A (en) * 1997-11-21 1999-12-28 Xerox Corporation Method for matching perceptual shape similarity layouts across multiple 2D objects
US6446099B1 (en) 1998-09-30 2002-09-03 Ricoh Co., Ltd. Document matching using structural information
US6697525B1 (en) 1998-10-02 2004-02-24 Parthusceva Ltd. System method and apparatus for performing a transform on a digital image
US6711292B2 (en) 1998-12-30 2004-03-23 Canon Kabushiki Kaisha Block selection of table features
US6741737B1 (en) 1999-03-18 2004-05-25 Choicepoint Asset Company System and method for the secure data entry from document images
US6438433B1 (en) * 1999-04-16 2002-08-20 Ncr Corporation Financial document processing system and method of operating a financial document processing system
US6400845B1 (en) 1999-04-23 2002-06-04 Computer Services, Inc. System and method for data extraction from digital images
US6880122B1 (en) * 1999-05-13 2005-04-12 Hewlett-Packard Development Company, L.P. Segmenting a document into regions associated with a data type, and assigning pipelines to process such regions
FR2806814B1 (fr) * 2000-03-22 2006-02-03 Oce Ind Sa Procede de reconnaissance et d'indexation de documents
US20090059271A1 (en) * 2000-03-28 2009-03-05 Mongonet Methods and apparatus for web-based status of facsimile transmissions to electronic storage destinations
JP4603658B2 (ja) * 2000-07-07 2010-12-22 キヤノン株式会社 画像処理装置及び画像処理方法並びに記憶媒体
US6868186B1 (en) 2000-07-13 2005-03-15 Ceva D.S.P. Ltd. Visual lossless image compression
US7898695B1 (en) 2000-10-06 2011-03-01 Lexmark International, Inc. Method of compensating for electronic printhead skew and bow correction in an imaging machine to reduce print artifacts
US7475151B2 (en) 2000-12-22 2009-01-06 Oracle International Corporation Policies for modifying group membership
US8015600B2 (en) 2000-12-22 2011-09-06 Oracle International Corporation Employing electronic certificate workflows
US7349912B2 (en) 2000-12-22 2008-03-25 Oracle International Corporation Runtime modification of entries in an identity system
US7802174B2 (en) 2000-12-22 2010-09-21 Oracle International Corporation Domain based workflows
US7937655B2 (en) 2000-12-22 2011-05-03 Oracle International Corporation Workflows with associated processes
US7711818B2 (en) 2000-12-22 2010-05-04 Oracle International Corporation Support for multiple data stores
US7085834B2 (en) 2000-12-22 2006-08-01 Oracle International Corporation Determining a user's groups
US7581011B2 (en) * 2000-12-22 2009-08-25 Oracle International Corporation Template based workflow definition
US7380008B2 (en) 2000-12-22 2008-05-27 Oracle International Corporation Proxy system
US7213249B2 (en) * 2000-12-22 2007-05-01 Oracle International Corporation Blocking cache flush requests until completing current pending requests in a local server and remote server
US7415607B2 (en) 2000-12-22 2008-08-19 Oracle International Corporation Obtaining and maintaining real time certificate status
US7363339B2 (en) * 2000-12-22 2008-04-22 Oracle International Corporation Determining group membership
US7411593B2 (en) * 2001-03-28 2008-08-12 International Business Machines Corporation Image rotation with substantially no aliasing error
JP4261783B2 (ja) * 2001-09-11 2009-04-30 キヤノン株式会社 文書登録システム、方法、プログラム及び記憶媒体
US7225256B2 (en) 2001-11-30 2007-05-29 Oracle International Corporation Impersonation in an access system
US20030202683A1 (en) * 2002-04-30 2003-10-30 Yue Ma Vehicle navigation system that automatically translates roadside signs and objects
TW581972B (en) * 2002-05-06 2004-04-01 Newsoft Technology Corp Method to determine adjacency relation
US7840658B2 (en) 2002-05-15 2010-11-23 Oracle International Corporation Employing job code attributes in provisioning
US7216163B2 (en) 2002-05-15 2007-05-08 Oracle International Corporation Method and apparatus for provisioning tasks using a provisioning bridge server
US7050630B2 (en) * 2002-05-29 2006-05-23 Hewlett-Packard Development Company, L.P. System and method of locating a non-textual region of an electronic document or image that matches a user-defined description of the region
JP2004242295A (ja) * 2003-01-15 2004-08-26 Ricoh Co Ltd 画像形成装置、画像形成方法、情報処理装置、情報処理方法、情報処理プログラム、及び記録媒体
RU2251738C2 (ru) * 2003-01-28 2005-05-10 "Аби Софтвер Лтд." Способ приведения в соответствие заполненной машиночитаемой формы и ее шаблона при наличии искажений (варианты)
US9224040B2 (en) 2003-03-28 2015-12-29 Abbyy Development Llc Method for object recognition and describing structure of graphical objects
US9015573B2 (en) 2003-03-28 2015-04-21 Abbyy Development Llc Object recognition and describing structure of graphical objects
US20070172130A1 (en) * 2006-01-25 2007-07-26 Konstantin Zuev Structural description of a document, a method of describing the structure of graphical objects and methods of object recognition.
US6990224B2 (en) * 2003-05-15 2006-01-24 Federal Reserve Bank Of Atlanta Method and system for communicating and matching electronic files for financial transactions
US20050053311A1 (en) * 2003-09-05 2005-03-10 Sharp Laboratories Of America, Inc. Non-integer scaling of bi-tonal files
US7424672B2 (en) * 2003-10-03 2008-09-09 Hewlett-Packard Development Company, L.P. System and method of specifying image document layout definition
US7340447B2 (en) 2003-10-09 2008-03-04 Oracle International Corporation Partitioning data access requests
US7904487B2 (en) 2003-10-09 2011-03-08 Oracle International Corporation Translating data access requests
US7882132B2 (en) 2003-10-09 2011-02-01 Oracle International Corporation Support for RDBMS in LDAP system
US7630974B2 (en) 2004-09-28 2009-12-08 Oracle International Corporation Multi-language support for enterprise identity and access management
JP2006201935A (ja) * 2005-01-19 2006-08-03 Fuji Xerox Co Ltd 画像データ処理装置
US8749839B2 (en) 2005-03-24 2014-06-10 Kofax, Inc. Systems and methods of processing scanned data
US9137417B2 (en) 2005-03-24 2015-09-15 Kofax, Inc. Systems and methods for processing video data
US9769354B2 (en) 2005-03-24 2017-09-19 Kofax, Inc. Systems and methods of processing scanned data
US20080311551A1 (en) * 2005-08-23 2008-12-18 Mazer Corporation, The Testing Scoring System and Method
US20070168382A1 (en) * 2006-01-03 2007-07-19 Michael Tillberg Document analysis system for integration of paper records into a searchable electronic database
US8571262B2 (en) * 2006-01-25 2013-10-29 Abbyy Development Llc Methods of object search and recognition
RU2006101908A (ru) * 2006-01-25 2010-04-27 Аби Софтвер Лтд. (Cy) Структурное описание документа, способ описания структуры графических объектов и способы их распознавания (варианты)
US8233714B2 (en) 2006-08-01 2012-07-31 Abbyy Software Ltd. Method and system for creating flexible structure descriptions
US9740692B2 (en) 2006-08-01 2017-08-22 Abbyy Development Llc Creating flexible structure descriptions of documents with repetitive non-regular structures
JP2008192032A (ja) * 2007-02-07 2008-08-21 Fuji Xerox Co Ltd 文書処理装置、文書処理方法、プログラム
US7880921B2 (en) * 2007-05-01 2011-02-01 Michael Joseph Dattilo Method and apparatus to digitally whiteout mistakes on a printed form
US8290272B2 (en) * 2007-09-14 2012-10-16 Abbyy Software Ltd. Creating a document template for capturing data from a document image and capturing data from a document image
US8295590B2 (en) * 2007-09-14 2012-10-23 Abbyy Software Ltd. Method and system for creating a form template for a form
US8547589B2 (en) * 2008-09-08 2013-10-01 Abbyy Software Ltd. Data capture from multi-page documents
US9390321B2 (en) 2008-09-08 2016-07-12 Abbyy Development Llc Flexible structure descriptions for multi-page documents
US8249343B2 (en) 2008-10-15 2012-08-21 Xerox Corporation Representing documents with runlength histograms
US8958605B2 (en) 2009-02-10 2015-02-17 Kofax, Inc. Systems, methods and computer program products for determining document validity
US9576272B2 (en) 2009-02-10 2017-02-21 Kofax, Inc. Systems, methods and computer program products for determining document validity
US8774516B2 (en) 2009-02-10 2014-07-08 Kofax, Inc. Systems, methods and computer program products for determining document validity
US9767354B2 (en) 2009-02-10 2017-09-19 Kofax, Inc. Global geographic information retrieval, validation, and normalization
US9349046B2 (en) 2009-02-10 2016-05-24 Kofax, Inc. Smart optical input/output (I/O) extension for context-dependent workflows
US8189961B2 (en) 2010-06-09 2012-05-29 Microsoft Corporation Techniques in optical character recognition
US8116761B1 (en) 2010-08-11 2012-02-14 Sprint Communications Company L.P. Modifying wireless network paging zone broadcast based on wireless access congestion
US8832546B2 (en) * 2011-03-03 2014-09-09 Palo Alto Research Center Incorporated System for automatically filling in paper forms with electronic data
US9111140B2 (en) 2012-01-10 2015-08-18 Dst Technologies, Inc. Identification and separation of form and feature elements from handwritten and other user supplied elements
US10146795B2 (en) 2012-01-12 2018-12-04 Kofax, Inc. Systems and methods for mobile image capture and processing
US9483794B2 (en) 2012-01-12 2016-11-01 Kofax, Inc. Systems and methods for identification document processing and business workflow integration
US9058580B1 (en) 2012-01-12 2015-06-16 Kofax, Inc. Systems and methods for identification document processing and business workflow integration
US9165187B2 (en) 2012-01-12 2015-10-20 Kofax, Inc. Systems and methods for mobile image capture and processing
US9058515B1 (en) 2012-01-12 2015-06-16 Kofax, Inc. Systems and methods for identification document processing and business workflow integration
US8971630B2 (en) 2012-04-27 2015-03-03 Abbyy Development Llc Fast CJK character recognition
US8989485B2 (en) 2012-04-27 2015-03-24 Abbyy Development Llc Detecting a junction in a text line of CJK characters
CN103020619B (zh) * 2012-12-05 2016-04-20 上海合合信息科技发展有限公司 一种自动切分电子化笔记本中手写条目的方法
JP2016517587A (ja) 2013-03-13 2016-06-16 コファックス, インコーポレイテッド モバイル装置を用いて取込まれたデジタル画像におけるオブジェクトの分類
US9208536B2 (en) 2013-09-27 2015-12-08 Kofax, Inc. Systems and methods for three dimensional geometric reconstruction of captured image data
US9355312B2 (en) 2013-03-13 2016-05-31 Kofax, Inc. Systems and methods for classifying objects in digital images captured using mobile devices
US20140316841A1 (en) 2013-04-23 2014-10-23 Kofax, Inc. Location-based workflows and services
CN105518704A (zh) 2013-05-03 2016-04-20 柯法克斯公司 检测和分类使用移动设备采集的视频中对象的系统和方法
US9386235B2 (en) 2013-11-15 2016-07-05 Kofax, Inc. Systems and methods for generating composite images of long documents using mobile video data
CN104809716B (zh) * 2014-01-24 2018-01-26 青岛海信移动通信技术股份有限公司 一种确定图像偏移量的方法及设备
US9760788B2 (en) 2014-10-30 2017-09-12 Kofax, Inc. Mobile document detection and orientation based on reference object characteristics
US10242285B2 (en) 2015-07-20 2019-03-26 Kofax, Inc. Iterative recognition-guided thresholding and data extraction
JP6623597B2 (ja) * 2015-07-27 2019-12-25 富士ゼロックス株式会社 情報処理装置及びプログラム
US9779296B1 (en) 2016-04-01 2017-10-03 Kofax, Inc. Content-based detection and three dimensional geometric reconstruction of objects in image and video data
US11062176B2 (en) 2017-11-30 2021-07-13 Kofax, Inc. Object detection and image cropping using a multi-detector approach
US11328524B2 (en) 2019-07-08 2022-05-10 UiPath Inc. Systems and methods for automatic data extraction from document images
US11341325B2 (en) 2019-09-19 2022-05-24 Palantir Technologies Inc. Data normalization and extraction system
US20230073775A1 (en) * 2021-09-06 2023-03-09 Nathalie Goldstein Image processing and machine learning-based extraction method

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3636513A (en) * 1969-10-17 1972-01-18 Westinghouse Electric Corp Preprocessing method and apparatus for pattern recognition
US5185813A (en) * 1988-01-19 1993-02-09 Kabushiki Kaisha Toshiba Document image processing apparatus
US5140650A (en) * 1989-02-02 1992-08-18 International Business Machines Corporation Computer-implemented method for automatic extraction of data from printed forms
US5335290A (en) * 1992-04-06 1994-08-02 Ricoh Corporation Segmentation of text, picture and lines of a document image
US5416849A (en) * 1992-10-21 1995-05-16 International Business Machines Corporation Data processing system and method for field extraction of scanned images of document forms
US5513304A (en) * 1993-04-19 1996-04-30 Xerox Corporation Method and apparatus for enhanced automatic determination of text line dependent parameters
DE69432114T2 (de) * 1993-11-24 2003-10-30 Canon Kk System zum Identifizieren und Verarbeiten von Formularen
AU2702095A (en) * 1994-06-09 1996-01-04 Moneyfax, Inc. System and method for reading data from prescribed regions of a document of variable size

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102256667B1 (ko) * 2020-03-23 2021-05-26 주식회사 신한디에스 문서 인식 방법 및 그 장치
WO2021194075A1 (ko) * 2020-03-23 2021-09-30 주식회사 신한디에스 문서 인식 방법 및 그 장치
WO2022182111A1 (ko) * 2021-02-23 2022-09-01 네이버 주식회사 테이블 생성 방법 및 시스템, 그리고 테이블 인식 방법 및 시스템
WO2022182104A1 (ko) * 2021-02-23 2022-09-01 네이버 주식회사 테이블 생성 방법 및 시스템, 그리고 테이블이 포함된 이미지 보정 방법 및 시스템
KR20220132213A (ko) * 2021-03-23 2022-09-30 네이버 주식회사 테이블이 포함된 이미지 보정 방법 및 시스템

Also Published As

Publication number Publication date
AU696889B2 (en) 1998-09-24
CA2192436C (en) 2005-02-08
BR9606305A (pt) 1997-09-09
EP0764308A1 (en) 1997-03-26
DE69621992T2 (de) 2003-02-27
CA2192436A1 (en) 1996-10-17
ES2180761T3 (es) 2003-02-16
JPH10501913A (ja) 1998-02-17
DE69621992D1 (de) 2002-08-01
NO965255L (no) 1997-02-06
JP4101290B2 (ja) 2008-06-18
NZ306769A (en) 1998-06-26
WO1996032691A1 (en) 1996-10-17
EP0764308B1 (en) 2002-06-26
NO965255D0 (no) 1996-12-09
BR9606305B1 (pt) 2010-08-10
US5822454A (en) 1998-10-13
AU5541596A (en) 1996-10-30

Similar Documents

Publication Publication Date Title
KR100390264B1 (ko) 폼처리중자동페이지등록및자동영역검출을위한시스템및방법
US5854854A (en) Skew detection and correction of a document image representation
US5335290A (en) Segmentation of text, picture and lines of a document image
US5539841A (en) Method for comparing image sections to determine similarity therebetween
EP1999688B1 (en) Converting digital images containing text to token-based files for rendering
US6366695B1 (en) Method and apparatus for producing a hybrid data structure for displaying a raster image
US6574375B1 (en) Method for detecting inverted text images on a digital scanning device
US6385350B1 (en) Method and apparatus for producing a hybrid data structure for displaying a raster image
US5410611A (en) Method for identifying word bounding boxes in text
JP3962891B2 (ja) 文書画像処理装置、文書画像処理方法、及び記憶媒体
US5033104A (en) Method for detecting character strings
EP2178028A2 (en) Representing documents with runlength histograms
EP0621553A2 (en) Methods and apparatus for inferring orientation of lines of text
US20110289395A1 (en) Method and system for document image layout deconstruction and redisplay
US5835638A (en) Method and apparatus for comparing symbols extracted from binary images of text using topology preserved dilated representations of the symbols
US7929772B2 (en) Method for generating typographical line
US5923782A (en) System for detecting and identifying substantially linear horizontal and vertical lines of engineering drawings
US20050089248A1 (en) Adjustment method of a machine-readable form model and a filled form scanned image thereof in the presence of distortion
StevensÝ et al. Automatic processing of document annotations
US20010043742A1 (en) Communication document detector
JP4046941B2 (ja) 文書書式識別装置および識別方法
US6678427B1 (en) Document identification registration system
JP4697387B2 (ja) 原稿画像判定装置、原稿画像判定方法及びそのプログラム
JP2918363B2 (ja) 文字分類方法及び文字認識装置
Raza Algorithms for the recognition of poor quality documents

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110627

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee