JP5008572B2 - 画像処理方法、画像処理装置およびコンピュータ可読媒体 - Google Patents

画像処理方法、画像処理装置およびコンピュータ可読媒体 Download PDF

Info

Publication number
JP5008572B2
JP5008572B2 JP2007547088A JP2007547088A JP5008572B2 JP 5008572 B2 JP5008572 B2 JP 5008572B2 JP 2007547088 A JP2007547088 A JP 2007547088A JP 2007547088 A JP2007547088 A JP 2007547088A JP 5008572 B2 JP5008572 B2 JP 5008572B2
Authority
JP
Japan
Prior art keywords
tile
color
pixel
pixels
image
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
JP2007547088A
Other languages
English (en)
Other versions
JP2008524728A (ja
JP2008524728A5 (ja
Inventor
ユー−レン チェン,
マイケル, ジャン ローサー,
ジェームス, フィリップ アンドリュー,
ティモシー, ジョン ワーク,
エリック, ワイ−シン チョン,
ジェイムス, オースティン ベスリー,
スティーブン イルガング,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
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 AU2004242419A external-priority patent/AU2004242419A1/en
Priority claimed from AU2004242421A external-priority patent/AU2004242421A1/en
Application filed by Canon Inc filed Critical Canon Inc
Publication of JP2008524728A publication Critical patent/JP2008524728A/ja
Publication of JP2008524728A5 publication Critical patent/JP2008524728A5/ja
Application granted granted Critical
Publication of JP5008572B2 publication Critical patent/JP5008572B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/40Analysis of texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/26Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
    • 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/16Image preprocessing
    • G06V30/162Quantising the image signal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/413Classification of content, e.g. text, photographs or tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30176Document
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)
  • Color Image Communication Systems (AREA)
  • Editing Of Facsimile Originals (AREA)

Description

本発明は、一般にデジタル画像処理の分野に関し、特に、デジタル画像の高水準記述の生成に関する。
画像のセグメント化は、セマンティカリー(semantically)に又は視覚的にコヒーレントな領域に画像を分割又は分離する処理である。各領域は、同様の属性を有する連結画素のグループである。セグメント化に対する基本的な属性は、白黒画像の場合は輝度振幅であり、カラー画像の場合には色成分である。
増加し続ける計算処理能力と組み合わされた走査技術の普及は、文書解析システムの領域において多くの進歩をもたらした。それらシステムは、多くの場合はOCR技術により使用され、スキャン済み文書からセマンティック情報を抽出してもよい。また、そのようなシステムは、ページの各部分の内容に応じて適切な圧縮方法を選択的に使用することにより文書画像の圧縮を向上するために使用される。向上した文書圧縮は、アーカイビング及び電子配信等の応用例に適する。
セグメント化は、文書画像解析に対する1つの処理段階であり、領域分類及びレイアウト解析等のより高いレベルの処理が実行される前に、低レベルの画素が基本オブジェクトにセグメント化される必要がある。レイアウト解析は、文書レイアウトに関するいくつかの予め定められた規則に従って、基本オブジェクトを周知のオブジェクトタイプに分類する。通常、レイアウト解析は、元のスキャン済み画像データを解析せず、ページのセグメント化から得られるブロブ又は連結成分等の別のデータセットを処理する。レイアウト解析は、個別のオブジェクトプロパティに加えてオブジェクトグループ化を使用して、分類を判定してもよい。
画像のセグメント化に対するいくつかの既存の方法を以下に説明する。
閾値処理は、セグメント化に対する最も単純な方法であり、処理される画像が2レベル(例えば、白黒の文書画像)である場合は高速で効果的である。しかし、画像が複数の輝度又は色レベルの領域を有する複雑なものである場合、それら領域の一部は2値化される間に失われる可能性がある。より高度な閾値処理技術は、適応性のある閾値処理又は多重レベルの閾値処理を採用する。その処理において、閾値の推定及び2値化はローカルレベルで実行される。しかし、それら方法は、オブジェクトを正確にセグメント化できない可能性がある。
k平均法及びベクトル量子化等のクラスタリングを使用する方法は、セグメント化の適切な結果を生成するが、複数パスを必要とする反復アルゴリズムである。従って、そのような方法は遅く且つ実現するのが困難である。
分割/マージによる画像のセグメント化技術は、4分木データ表現に基づく。4文木データ表現において、元の画像セグメントの属性が一様でない場合、正方形の画像セグメントは4つの領域に分割される。4つの隣接する正方形が一様であることが分かった場合、それら正方形は、4つの隣接する正方形から構成される単一の正方形によりマージされる。通常、分割/マージ処理はフル画像レベルで開始する。従って、処理は、ページ全体がバッファリングされた後のみで開始でき、大きなメモリ帯域幅を必要とする。更にこの方法は、多くの計算を必要とする傾向がある。
領域成長は、画像のセイグメント化に対する周知の方法であり、概念上最も単純な方法の1つである。同様の属性を有する隣接する画素はグループ化され、セグメント領域を形成する。しかし、実際には、受け入れられる結果を達成するために、相当複雑な制約を成長パターンに加える必要がある。既存の領域成長法は、方法が最初のシードの場所に対して偏る傾向があるといういくつかの望ましくない結果を有することがある。シードの異なる選択により、異なるセグメント化の結果が得られてもよく、シード点がエッジに位置する場合には問題が発生することがある。
増加し続ける計算処理能力と組み合わされた走査技術の普及は、文書解析システムの領域において多くの進歩をもたらした。それらシステムは、多くの場合はOCR技術により使用され、スキャン済み文書からセマンティック情報を抽出してもよい。この技術は、自動形式読出し等の益々多くの応用例において使用され、ページの各部分の内容に応じて適切な圧縮方法を選択的に使用することにより文書の圧縮を向上するために使用される。向上した文書圧縮は、アーカイビング及び電子配信等の応用例に適する。
いくつかの文書解析システムは、レイアウト解析を実行し、内容によって分類された複数の領域に文書を分ける。通常、レイアウト解析は、元のスキャン済み画像データを解析せず、ページのセグメント化から得られるブロブ又は連結成分等の別のデータセットを処理する。レイアウト解析は、個別のオブジェクトプロパティに加えてオブジェクトグループ化を使用して、それらの分類を判定してもよい。
一般に、ページの2値セグメント化は、レイアウト解析に対してデータを生成するために実行され、これは、単純に元の画像に対して閾値処理を行なうことにより得られてもよい。この2値セグメント化の1つの利点は、セグメント化されたオブジェクトがレイアウト解析を助長する単純な包含階層内に置かれることである。しかし、多くの複雑なカラー文書のレイアウトは、2値画像により完全に表現されない。2値画像変換に対して色固有の情報内容が減少すると、重要な特徴が劣化し、文書の詳細な構造が損失する恐れがある。
従って、ページ文書解析のカラーセグメント化は、ページの内容の保存に関しては利点を有するが、それと共に更なる複雑性をもたらす。第1に、セグメント化解析自体が更に複雑になり、処理条件が増加する。第2に、セグメント化されたページオブジェクトの解析は、オブジェクトが包含階層を形成しないために複雑化される。これにより、レイアウト解析の正確度及び効率は制限される。
更に、文書レイアウト解析システムは、文書の領域のテキスト分類を検証する技術を採用してもよい。それら方法のうちのいくつかは、画素の合計、シャドウイング及び投影プロファイルのヒストグラム解析を使用する。ロバストな統計値をそのような方法に適用するのが困難であり、且つ単一の線又は多くの線であるテキスト、並びに文書中のテキストの位置合わせ及び文字集合が未知であるテキストに対して調整を行なうのが困難であるため、それら方法は信頼できないことが多い。
本発明の第1の面によると、画像処理方法は、取得手段が、複数の画素を含むデジタル画像を予め決められたサイズのタイルに分割し、当該分割された各タイルを順に処理対象として取得する取得ステップと、
色量子化手段が、前記取得ステップで取得したタイル内の画素の色に基づいて該タイルにおける代表色を判定し、該タイル内の各画素の色を当該判定された代表色のいずれかに量子化する色量子化ステップと、
連結成分解析手段が、前記色量子化ステップで量子化されたタイルに対して、同じ代表色を有し且つ隣接する複数の画素をグループ化することにより連結成分を形成する連結成分解析ステップと、
タイル内マージ手段が、前記連結成分解析ステップで形成された連結成分のうち、該連結成分の境界線の長さとサイズとの比が第1の閾値より大きい連結成分を、該連結成分に隣接する他の連結成分のうちの最も近い代表色を有する連結成分にマージするタイル内マージステップと、
タイル間マージ手段が、前記タイル内マージステップの処理を実行した後の前記処理対象のタイル内の連結成分、先に処理された隣接する他のタイル内の連結成分との間の色距離を求め、当該色距離が第2の閾値より小さい場合、該連結成分をマージするタイル間マージステップと、
レイアウト解析手段が、前記取得ステップで順に取得される各タイルに対して前記色量子化ステップと前記連結成分解析ステップと前記タイル内マージステップと前記タイル間マージステップとにおける各処理を実行した後の前記連結成分に基づいて、前記デジタル画像の前景オブジェクトを識別するレイアウト解析ステップと、を備えることを特徴とする。
あるいは、画像処理装置は、複数の画素を含むデジタル画像を予め決められたサイズのタイルに分割し、当該分割された各タイルを順に処理対象として取得する取得手段と、
前記取得手段で取得したタイル内の画素の色に基づいて該タイルにおける代表色を判定し、該タイル内の各画素の色を当該判定された代表色のいずれかに量子化する色量子化手段と、
前記色量子化手段で量子化されたタイルに対して、同じ代表色を有し且つ隣接する複数の画素をグループ化することにより連結成分を形成する連結成分解析手段と、
前記連結成分解析手段で形成された連結成分のうち、該連結成分の境界線の長さとサイズとの比が第1の閾値より大きい連結成分を、該連結成分に隣接する他の連結成分のうちの最も近い代表色を有する連結成分にマージするタイル内マージ手段と、
前記タイル内マージ手段の処理を実行した後の前記処理対象のタイル内の連結成分と、先に処理された隣接する他のタイル内の連結成分との間の色距離を求め、当該色距離が第2の閾値より小さい場合、該連結成分をマージするタイル間マージ手段と、
前記取得手段で順に取得される各タイルに対して前記色量子化手段と前記連結成分解析手段と前記タイル内マージ手段と前記タイル間マージ手段とによる各処理を実行した後の前記連結成分に基づいて、前記デジタル画像の前景オブジェクトを識別するレイアウト解析手段と、
を備えることを特徴とする。
セマンティカリー(semantically)に関連する画素は、同様の色を有する画素を含んでもよい。
生成するステップは、各々が所定の数の画素の連続的な線を含む複数のバンドにデジタル画像を配置するステップと、バンドを1つずつバッファリングし、処理するステップとを含んでもよい。処理ステップは、現在のバンドを複数の画素のブロックに配置するステップと、作成するステップに対して現在のバンドのブロックを1つずつバッファリング及び処理するステップとを含み、それらステップは現在バッファリングされている各バンドに対して実行される。
格納するステップは、M−1個の2値ビットマップを格納することを含んでもよい。ここで、M個の連結成分はブロック内に存在し、Mは整数である。
格納するステップは、指標マップを格納することを含んでもよい。
セグメント化するステップは、各ブロックに対していくつかの代表色を推定することと、代表色に対して各ブロックを量子化することと、各量子化ブロックから連結成分を形成することとを含んでもよい。セグメント化するステップは、形成される連結成分のサブセットをマージすることを更に含んでもよい。マージするステップは、連結成分の統計値を収集することを含んでもよい。統計値は、バウンディングボックス、画素カウント、境界線長さ及び平均色のうち任意の1つ以上を含んでもよい。方法は、ノイズと考えられる形成された連結成分を除去するステップを更に含んでもよい。ノイズは、予め定められた閾値を下回る画素カウント及び予め定められた他の閾値を上回る境界線長さ対画素カウント比を有する連結成分を含んでもよい。マージするステップは、ブロックの連結成分を左上にあるブロックの連結成分とマージすることと、マージした連結成分の統計値を更新することとを含んでもよい。統計値は、バウンディングボックス、画素カウント、塗りつぶし率及び平均色のうち任意の1つ以上を含んでもよい。
推定するステップは、各ブロックの画素のYUVデータに基づいて複数の色のビンに関連するヒストグラムを形成することと、ヒストグラム統計値に基づいて各ブロックを分類することと、ブロックの分類に基づいて代表色を形成するためにビンの色をマージすることとを含んでもよい。方法は、1パスで各画素に対する指標マップを形成するステップを更に含んでもよい。量子化するステップは、空でないビンを代表色に量子化することと、代表色に対してビンマッピングを作成することと、ビンマッピングを使用して指標マップを代表色に再マッピングすることとを含んでもよい。形成するステップは、Y値に基づいて輝度バンドを決定することと、U値及びV値に基づいてカラーコラムを決定することと、マップされたビンに画素の色を累積することと、マップされたビンの画素カウントを増分することとを含んでもよい。輝度バンドを決定するステップは、輝度バンドアンチエイリアシング(luminance-band anti-aliasing)を更に含んでもよい。カラーコラムを決定するステップは、カラーコラムアンチエイリアシングを更に含んでもよい。
マージするステップは、共通の境界線に沿う現在の連結成分に接触する連結成分のリストを検索するステップと、マージするのに最も適した候補を決定するステップとを含んでもよく、それらステップは、左上の境界線に接触する現在のブロックの各連結成分に対して実行される。
本発明の別の側面によると、上述の方法の任意の1つの面に従って、複数の画素を含むデジタル画像をセグメント化するプロセッサと、メモリとを備える装置が提供される。
本発明の更に別の側面によると、上述の方法の任意の1つの側面に従って、複数の画素を含むデジタル画像をセグメント化するコンピュータプログラムを記録したコンピュータ可読媒体が提供される。
本発明の更に別の側面によると、カラー文書のコンパクトな表現を自動的に生成する方法が提供される。方法は、1パスのブロックラスタ順にカラー文書ページのデジタル画像を連結成分にセグメント化するステップと、ページ全体のコンパクトな連結成分統計値に基づくレイアウト解析を使用して、ページのデジタル画像を前景画像及び背景画像に区分するステップと、前景画像の少なくとも一部が背景画像を隠蔽する場合に、背景画像の少なくとも一部を1パスのブロックラスタ順に修復するステップと、コンパクトな文書を形成するために、前景画像及び背景画像を組み合わせるステップとを含む。
方法は、背景画像をダウンサンプリングするステップを更に含んでもよい。方法は、背景画像を圧縮するステップを更に含んでもよい。圧縮ステップは、不可逆的圧縮を含んでもよい。更に方法は、不可逆的に圧縮された背景画像の異なる圧縮を含んでもよい。
本発明の更なる側面によると、上述の方法の任意の1つの側面に従って、カラー文書のコンパクトな表現を自動的に生成するプロセッサと、メモリとを備える装置が提供される。
本発明の更なる側面によると、上述の方法の任意の1つの側面に従って、カラー文書のコンパクトな表現を自動的に生成するコンピュータプログラムを記録したコンピュータ可読媒体が提供される。
本発明の別の側面によると、複数の画素を含むデジタル画像を解析する方法が提供される。方法は、デジタル画像をオブジェクトにセグメント化するステップであり、セグメント化が3つ以上のラベルにより表現されるステップと、各オブジェクトに対してプロパティのセットを提供するステップと、オブジェクトのサブセットに対して、境界線を共有する隣接するオブジェクト間に親子関係が存在するかを判定するために包含の尺度を使用するステップと、オブジェクトプロパティに基づいて、共通の親を共有するオブジェクトのグループを形成するステップと、プロパティ及びグループ化に従ってオブジェクトを分類するステップとを含む。
包含は、各オブジェクトの周囲のバウンディングボックス及びオブジェクト間の接触関係を説明する情報を使用して判定されてもよい。2つのオブジェクトが境界線で接触し且つオブジェクトのバウンディングボックスが他のオブジェクトのバウンディングボックスを完全に含む場合、オブジェクトは他のオブジェクトを含む。
グループ形成ステップは、共通の親の子リストからの子オブジェクトの対を考慮することと、オブジェクトプロパティを使用して、各対がグループ化されるべきかを判定することを含んでもよい。同一の親を有する子オブジェクトのリストの隣接するオブジェクトのみが、グループ化に対して考慮されてもよい。オブジェクトは、バウンディングボックス及び色情報に基づいてグループ化されてもよい。
オブジェクトのグループは、グループ内のオブジェクトのテキストと同等の品質のテストに従ってテキストとして分類されてもよい。テキストと同等の品質のテストは、オブジェクトの場所を表す各オブジェクトに対する単一の値を識別することと、値のヒストグラムを形成することと、ヒストグラムのプロパティによりテキストを識別することとを含んでもよい。
方法は、親子プロパティに関わらず、プロパティに従ってオブジェクトのテキスト分類されたグループに更なるオブジェクトを追加するステップを更に含んでもよい。
本発明の更に別の側面によると、文書ページの複数の画素を含むデジタル画像を解析する方法が提供される。方法は、画像に基づいてオブジェクトを形成するためにデジタル画像をセグメント化するステップと、オブジェクトのグループを形成するステップと、オブジェクトのグループの各々がテキストを表すかを判定するステップとを含む。判定ステップは、ページ上のオブジェクトの場所に依存して、各オブジェクトに対する単一の値を識別することと、値のヒストグラムを形成することと、ヒストグラムのプロパティによりテキストを識別することとを含む。
ヒストグラムのプロパティは、指定された数より多いオブジェクトを有するヒストグラムのビンのオブジェクトの総数であってもよい。あるいは、プロパティは、ヒストグラムのカウントの2乗和であってもよい。
オブジェクトの場所を表す各オブジェクトに対する単一の値は、オブジェクトのバウンディングボックスのエッジであってもよい。
本発明の別の側面によると、上述の任意の1つの側面による方法に従って、複数の画素を含むデジタル画像を解析するプロセッサと、メモリとを備える装置が提供される。
本発明の別の側面によると、上述の任意の1つの側面による方法に従って、複数の画素を含むデジタル画像を解析するコンピュータプログラムを記録したコンピュータ可読媒体が提供される。
本発明の更に別の側面によると、複数の画素を含むデジタル画像を修復する方法が提供される。方法は、デジタル画像から複数の画素のブロックを生成するステップと、少なくとも1つのブロックに対して少なくとも1つの画素のラン(run)の画素値をラスタ順に変更するステップとを含む。変更ステップは、オブジェクトに関連するブロックの画素のランに対して開始画素及び終了画素を判定するステップであり、ランがグループ化された隣接する画素を含むステップと、ランの外側にある画素の画素値に依存して、前記ランにおいてオブジェクトの少なくとも1つの画素値を変更するステップと、ブロックのオブジェクトに対応しない画素に対してアクティビティ尺度を判定するステップと、ブロックに対するアクティビティ尺度が所定の閾値より小さい場合、少なくとも1つの画素のランを有する各ブロックにおける全ての画素値を設定値に変更するステップとを含み、それらステップは各ブロックに対して実行される。
方法は、拡張されたオブジェクトの外側の画素の画素値に依存して、オブジェクトの外側の拡張されたオブジェクト画素の少なくとも1つの画素値を変更するステップを更に含んでもよい。
生成するステップは、各々が所定の数の画素の連続的な線を含む複数のバンドにデジタル画像を配置するステップと、バンドを1つずつバッファリング及び処理するステップとを含んでもよい。処理ステップは、現在のバンドを複数の画素のブロックに配置するステップと、変更ステップに対して現在のバンドのブロックを1つずつバッファリング及び処理するステップとを含んでもよく、それらステップは現在バッファリングされている各バンドに対して実行される。
ランは、ブロックの画素のラスタ線において隣接する画素を含む。
方法は、ブロックに基づく圧縮方法を使用して各ブロックを圧縮するステップを更に含んでもよい。ブロックに基づく圧縮方法はJPEGであってもよい。方法は、別の圧縮技術を使用してブロックに基づく圧縮ブロックを更に圧縮するステップを更に含んでもよい。
オブジェクトの少なくとも1つの画素値は、ランの左右にある画素値から補間された値又はランの左側にある画素からの値を使用して、オブジェクトの外側にある画素の画素値に依存して変更されてもよい。
少なくとも1つの画素のランを有する各ブロックにおける全ての画素値は、先に処理されたブロックの平均値又はブロックの可視画素の平均値に変更されてもよい。
方法は、拡張されたオブジェクト画素のランの終了が見つけられなかった場合に、画素の色値を拡張されたオブジェクト画素のランの左側にあるオブジェクトに対応しない画素の色値に設定するステップを更に含んでもよい。
画素値は、色値(color values)であってもよい。
本発明の更なる側面によると、上述の任意の1つの側面の方法に従って、複数の画素を含むデジタル画像を修復するプロセッサと、メモリとを備える装置が提供される。
本発明の更なる側面によると、上述の任意の1つの側面の方法に従って、複数の画素を含むデジタル画像を修復するコンピュータプログラムを記録したコンピュータ可読媒体が提供される。
本発明の別の側面によると、複数の画素を含むデジタル画像の画素値を変更する方法であり、少なくとも一部の画素が画像のオブジェクトに対応する方法であって、各々が所定の数の画素の連続的な線を含む複数のバンドにデジタル画像を配置するステップと、バンドを1つずつ順番にバッファリング及び処理するステップとから成る方法が提供される。処理ステップは、現在バッファリングされている各バンドに対して、現在のバンドを複数の画素のブロックに配置するステップと、ブロックを1つずつ順番に処理するステップとを含む。ブロック処理ステップは、各ブロックに対して、画像のオブジェクトに対応しないブロックの画素に対してアクティビティ尺度を判定するステップと、アクティビティ尺度が所定の閾値より小さい場合、ブロックの全ての画素の画素値を1つの画素値に変更するステップと、ブロックをJPEGで圧縮するステップと、JPEG圧縮ブロックを別の圧縮方法を使用して圧縮するステップとを含む。
各バンドはデジタル画像の画素の16本の線を含んでもよく、ブロックは16×16画素を含み、圧縮ステップはパイプライン方式で実行される。
ブロックの全ての画素の色値を変更するステップは、拡張されたオブジェクト画素のランのすぐ左右にあるオブジェクトに対応しない画素間で線形補間することにより取得される色値に画素の色値を設定することを含んでもよく、拡張されたオブジェクト画素は、ランの外側の隣接する画素である。
方法は、ブロックの画素の色値をブロックのオブジェクトに対応しない画素の平均色値に設定するステップを更に含んでもよい。
方法は、ブロックの画素の色値を先のブロックの平均色に設定するステップを更に含んでもよい。
拡張されたオブジェクトの画素は、オブジェクトの場所を規定するマスクを拡張することにより判定されてもよい。
他の圧縮方法は、ZLIBを含んでもよい。
画素値は、色値であってもよい。
本発明の更に別の側面によると、少なくとも一部の画素が画像のオブジェクトに対応し、上述の任意の1つの側面の方法に従って、複数の画素を含むデジタル画像の画素値を変更するプロセッサと、メモリとを備える装置が提供される。
本発明の更なる側面によると、少なくとも一部の画素が画像のオブジェクトに対応し、上述の任意の1つの側面の方法に従って、複数の画素を含むデジタル画像の画素値を変更するコンピュータプログラムを記録したコンピュータ可読媒体が提供される。
本発明の更に別の側面によると、複数の画素を含むデジタル画像をセグメント化する方法が提供される。方法は、デジタル画像から複数の画素のブロックを生成するステップと、1パスで画素のブロックを使用して、各ブロックに対して少なくとも1つの連結成分を作成するステップとを含む。作成するステップは、各々が空間的に連結しかつセマンティカリー(semantically)に関連する画素のグループを含む少なくとも1つの連結成分に画素のブロックをセグメント化することと、ブロックの少なくとも1つの連結成分を先に処理された少なくとも1つの他のブロックからセグメント化された少なくとも1つの連結成分とマージすることと、ブロックの連結成分の画像における場所をコンパクトな形式で格納することとを含む。
セマンティカリー(semantically)に関連する画素は、同様の色を有する画素を含んでもよい。
格納するステップは、M−1個の2値ビットマップを格納することを含んでもよい。ここで、M個の連結成分はブロックに存在し、Mは整数である。
格納するステップは、指標マップを格納することを含んでもよい。
セグメント化するステップは、各ブロックに対していくつかの代表色を推定することと、代表色に対して各ブロックを量子化することと、各量子化ブロックから連結成分を形成することとを含んでもよい。セグメント化するステップは、形成される連結成分のサブセットをマージすることを更に含んでもよい。マージするステップは、連結成分の統計値を収集することを含んでもよい。統計値は、バウンディングボックス、画素カウント、境界線長さ及び平均色のうち任意の1つ以上を含んでもよい。方法は、ノイズと考えられる形成された連結成分を除去するステップを更に含んでもよい。ノイズは、予め定められた閾値を下回る画素カウント及び予め定められた他の閾値を上回る境界線長さ対画素カウント比を有する連結成分を含んでもよい。マージステップは、ブロックの連結成分を左上にあるブロックの連結成分とマージすることと、マージした連結成分の統計値を更新することとを含んでもよい。統計値は、バウンディングボックス、画素カウント、塗りつぶし率及び平均色のうち任意の1つ以上を含んでもよい。
推定するステップは、各ブロックの画素のYUVデータに基づいて複数の色のビンに関連するヒストグラムを形成することと、ヒストグラム統計値に基づいて各ブロックを分類することと、ブロックの分類に基づいて代表色を形成するためにビンの色をマージすることとを含んでもよい。方法は、1パスで各画素に対する指標マップを形成するステップを更に含んでもよい。量子化ステップは、空でないビンを代表色に量子化することと、代表色に対してビンマッピングを作成することと、ビンマッピングを使用して指標マップを代表色に再マッピングすることとを含んでもよい。形成するステップは、Y値に基づいて輝度バンドを決定することと、U値及びV値に基づいてカラーコラムを決定することと、マップされたビンに画素の色を累積することと、マップされたビンの画素カウントを増分することとを含んでもよい。輝度バンドを決定するステップは、輝度バンドアンチエイリアシング(luminance-band anti-aliasing)を更に含んでもよい。カラーコラムを決定するステップは、カラーコラムアンチエイリアシングを更に含んでもよい。
マージするステップは、共通の境界線に沿う現在の連結成分に接触する連結成分のリストを見つけるステップと、マージするのに最も適した候補を決定するステップとを含んでもよく、それらステップは、左上の境界線に接触する現在のブロックの各連結成分に対して実行される。
本発明の別の側面によると、上述の方法の任意の1つの側面に従って、複数の画素を含むデジタル画像をセグメント化するプロセッサと、メモリとを備える装置が提供される。
本発明の更に別の側面によると、上述の方法の任意の1つの側面に従って、複数の画素を含むデジタル画像をセグメント化するコンピュータプログラムを記録したコンピュータ可読媒体が提供される。
本発明の更に別の側面によると、カラー文書のコンパクトな表現を自動的に生成する方法が提供される。方法は、1パスのブロックラスタ順にカラー文書ページのデジタル画像を連結成分にセグメント化するステップと、ページ全体のコンパクトな連結成分統計値に基づくレイアウト解析を使用して、ページのデジタル画像を前景画像及び背景画像に区分するステップと、前景画像の少なくとも一部が背景画像を隠蔽する場合に、背景画像の少なくとも一部を1パスのブロックラスタ順に修復するステップと、コンパクトな文書を形成するために、前景画像及び背景画像を組み合わせるステップとを含む。
方法は、背景画像をダウンサンプリングするステップを更に含んでもよい。方法は、背景画像を圧縮するステップを更に含んでもよい。圧縮ステップは、不可逆的圧縮を含んでもよい。更に方法は、不可逆的に圧縮された背景画像の異なる圧縮を含んでもよい。
本発明の更なる側面によると、上述の方法の任意の1つの面に従って、カラー文書のコンパクトな表現を自動的に生成するプロセッサと、メモリとを備える装置が提供される。
本発明の更なる側面によると、上述の方法の任意の1つの面に従って、カラー文書のコンパクトな表現を自動的に生成するコンピュータプログラムを記録したコンピュータ可読媒体が提供される。
本発明の別の側面によると、複数の画素を含むデジタル画像を解析する方法が提供される。方法は、デジタル画像をオブジェクトにセグメント化するステップであり、セグメント化が3つ以上のラベルにより表現されるステップと、各オブジェクトに対してプロパティのセットを提供するステップと、オブジェクトのサブセットに対して、境界線を共有する隣接するオブジェクト間に親子関係が存在するかを判定するために包含の尺度を使用するステップと、オブジェクトプロパティに基づいて、共通の親を共有するオブジェクトのグループを形成するステップと、プロパティ及びグループ化に従ってオブジェクトを分類するステップとを含む。
包含は、各オブジェクトの周囲のバウンディングボックス及びオブジェクト間の接触関係を説明する情報を使用して判定されてもよい。2つのオブジェクトが境界線で接触し且つオブジェクトのバウンディングボックスが他のオブジェクトのバウンディングボックスを完全に含む場合、オブジェクトは他のオブジェクトを含む。
グループ形成ステップは、共通の親の子のリストからの子オブジェクト(child objects)の対を考慮することと、オブジェクトプロパティを使用して、各対がグループ化されるべきかを判定することを含んでもよい。同一の親を有する子オブジェクトのリストの隣接するオブジェクトのみが、グループ化に対して考慮されてもよい。オブジェクトは、バウンディングボックス及び色情報に基づいてグループ化されてもよい。
オブジェクトのグループは、グループ内のオブジェクトのテキストと同等の品質のテストに従ってテキストとして分類されてもよい。テキストと同等の品質のテストは、オブジェクトの場所を表す各オブジェクトに対する単一の値を識別することと、値のヒストグラムを形成することと、ヒストグラムのプロパティによりテキストを識別することとを含んでもよい。
方法は、親子プロパティに関わらず、プロパティに従ってオブジェクトのテキスト分類されたグループに更なるオブジェクトを追加するステップを更に含んでもよい。
本発明の更に別の側面によると、文書ページの複数の画素を含むデジタル画像を解析する方法が提供される。方法は、画像に基づいてオブジェクトを形成するためにデジタル画像をセグメント化するステップと、オブジェクトのグループを形成するステップと、オブジェクトのグループの各々がテキストを表すかを判定するステップとを含む。判定ステップは、ページ上のオブジェクトの場所に依存して、各オブジェクトに対する単一の値を識別することと、値のヒストグラムを形成することと、ヒストグラムのプロパティによりテキストを識別することとを含む。
ヒストグラムのプロパティは、指定された数より多いオブジェクトを有するヒストグラムのビンのオブジェクトの総数であってもよい。あるいは、プロパティは、ヒストグラムのカウントの2乗和であってもよい。
オブジェクトの場所を表す各オブジェクトに対する単一の値は、オブジェクトのバウンディングボックスのエッジであってもよい。
本発明の別の側面によると、上述の任意の1つの面による方法に従って、複数の画素を含むデジタル画像を解析するプロセッサと、メモリとを備える装置が提供される。
本発明の別の側面によると、上述の任意の1つの面による方法に従って、複数の画素を含むデジタル画像を解析するコンピュータプログラムを記録したコンピュータ可読媒体が提供される。
本発明の更に別の側面によると、複数の画素を含むデジタル画像を修復する方法が提供される。方法は、デジタル画像から複数の画素のブロックを生成するステップと、少なくとも1つのブロックに対して少なくとも1つの画素のランの画素値をラスタ順に変更するステップとを含む。変更ステップは、オブジェクトに関連するブロックの画素のランに対して開始画素及び終了画素を判定するステップであり、ランがグループ化された隣接する画素を含むステップと、ランの外側にある画素の画素値に依存して、前記ランにおいてオブジェクトの少なくとも1つの画素値を変更するステップと、ブロックのオブジェクトに対応しない画素に対してアクティビティ尺度を判定するステップと、ブロックに対するアクティビティ尺度が所定の閾値より小さい場合、少なくとも1つの画素のランを有する各ブロックにおける全ての画素値を設定値に変更するステップとを含み、それらステップは各ブロックに対して実行される。
方法は、拡張されたオブジェクトの外側の画素の画素値に依存して、オブジェクトの外側の拡張されたオブジェクト画素の少なくとも1つの画素値を変更するステップを更に含んでもよい。
生成するステップは、各々が所定の数の画素の連続的な線を含む複数のバンドにデジタル画像を配置するステップと、バンドを1つずつバッファリング及び処理するステップとを含んでもよい。処理ステップは、現在のバンドを複数の画素のブロックに配置するステップと、変更ステップに対して現在のバンドのブロックを1つずつバッファリング及び処理するステップとを含んでもよく、それらステップは現在バッファリングされている各バンドに対して実行される。
ランは、ブロックの画素のラスタ線において隣接する画素を含む。
方法は、ブロックに基づく圧縮方法を使用して各ブロックを圧縮するステップを更に含んでもよい。ブロックに基づく圧縮方法はJPEGであってもよい。方法は、別の圧縮技術を使用してブロックに基づく圧縮ブロックを更に圧縮するステップを更に含んでもよい。
オブジェクトの少なくとも1つの画素値は、ランの左右にある画素値から補間された値又はランの左側にある画素からの値を使用して、オブジェクトの外側にある画素の画素値に依存して変更されてもよい。
少なくとも1つの画素のランを有する各ブロックにおける全ての画素値は、先に処理されたブロックの平均値又はブロックの可視画素の平均値に変更されてもよい。
方法は、拡張されたオブジェクト画素のランの終了が見つけられなかった場合に、画素の色値を拡張されたオブジェクト画素のランの左側にあるオブジェクトに対応しない画素の色値に設定するステップを更に含んでもよい。
画素値は、色値であってもよい。
本発明の更なる側面によると、上述の任意の1つの側面の方法に従って、複数の画素を含むデジタル画像を修復するプロセッサと、メモリとを備える装置が提供される。
本発明の更なる側面によると、上述の任意の1つの側面の方法に従って、複数の画素を含むデジタル画像を修復するコンピュータプログラムを記録したコンピュータ可読媒体が提供される。
本発明の別の側面によると、複数の画素を含むデジタル画像の画素値を変更する方法であり、少なくとも一部の画素が画像のオブジェクトに対応する方法であって、各々が所定の数の画素の連続的な線を含む複数のバンドにデジタル画像を配置するステップと、バンドを1つずつ順番にバッファリング及び処理するステップとから成る方法が提供される。処理ステップは、現在バッファリングされている各バンドに対して、現在のバンドを複数の画素のブロックに配置するステップと、ブロックを1つずつ順番に処理するステップとを含む。ブロック処理ステップは、各ブロックに対して、画像のオブジェクトに対応しないブロックの画素に対してアクティビティ尺度を判定するステップと、アクティビティ尺度が所定の閾値より小さい場合、ブロックの全ての画素の画素値を1つの画素値に変更するステップと、ブロックをJPEGで圧縮するステップと、JPEG圧縮ブロックを別の圧縮方法を使用して圧縮するステップとを含む。
各バンドはデジタル画像の画素の16本の線を含んでもよく、ブロックは16×16画素を含み、圧縮ステップはパイプライン方式で実行される。
ブロックの全ての画素の色値を変更するステップは、拡張されたオブジェクト画素のランのすぐ左右にあるオブジェクトに対応しない画素間で線形補間することにより取得される色値に画素の色値を設定することを含んでもよく、拡張されたオブジェクト画素は、ランの外側の隣接する画素である。
方法は、ブロックの画素の色値をブロックのオブジェクトに対応しない画素の平均色値に設定するステップを更に含んでもよい。
方法は、ブロックの画素の色値を先のブロックの平均色に設定するステップを更に含んでもよい。
拡張されたオブジェクトの画素は、オブジェクトの場所を規定するマスクを拡張することにより判定されてもよい。
他の圧縮方法は、ZLIBを含んでもよい。
画素値は、色値であってもよい。
本発明の更に別の側面によると、少なくとも一部の画素が画像のオブジェクトに対応し、上述の任意の1つの面の方法に従って、複数の画素を含むデジタル画像の画素値を変更するプロセッサと、メモリとを備える装置が提供される。
本発明の更なる面によると、少なくとも一部の画素が画像のオブジェクトに対応し、上述の任意の1つの面の方法に従って、複数の画素を含むデジタル画像の画素値を変更するコンピュータプログラムを記録したコンピュータ可読媒体が提供される。
デジタル画像を処理及び圧縮する方法、装置及びコンピュータ可読媒体が開示される。以下の説明において、特定の可逆的圧縮技術、色空間、空間解像度及びタイルサイズ等を含む多くの特定の詳細を示す。しかし、本発明の趣旨の範囲から逸脱せずに変更及び/又は置換が行なわれてもよいことは、当業者にはこの開示から明らかとなるだろう。他の状況において、本発明を明確に理解するために、特定の詳細が省略されてもよい。
1つ以上の添付の図面において、同一の図中符号を有するステップ及び/又は特徴を参照する場合、それらステップ及び/又は特徴は、説明の都合上、指示がない限り同一の機能又は動作を有する。
本明細書において、用語「具備する」は、拡張可能で非排他的な意味を有し、「主に含むが、単独で必要ではない」ことを意味し、「本質的に〜から構成される」及び「〜のみから構成される」ことではない。用語「具備する」の語形変化は、それに対応して意味の変化を示す。
詳細な説明の内容は、以下のような節で編成される。
1.概要
2.カラーセグメント化
2.1.入力画像の次のタイルの取得
2.2.タイルのカラーセグメント化の形成
2.2.1.色量子化
2.2.1.1.2Dヒストグラム及び第1のパレットの形成
2.2.1.2.ヒストグラムの解析及び画像の分類
2.2.1.3.第2のパレットの形成
2.2.1.3.1.2色パレットの生成
2.2.1.3.2.多色パレットの生成
2.2.1.4.画素と第2のパレットとの関連付け
2.2.1.4.1.2レベルのタイルのマップ
2.2.1.4.2.多重レベルのタイルのマップ
2.2.2.カラーCC解析及びブロブ統計
2.2.2.1.ブロブの形成
2.2.2.2.ブロブマージの例
2.2.3.タイル内のマージ
2.2.4.タイル間のマージ
2.2.4.1.タイル間マージ条件
2.2.4.2.タイル間マージの例
2.2.4.3.最適なブロブ/CCの対の処理
2.2.4.4.CCマッピングの結果
2.2.5.マージの後処理
2.3.セグメント化の例
3.レイアウト解析
3.1.CCのグループ化
3.1.1.親CCに対する子の検索
3.1.2.初期グループ化
3.1.2.1.2つのCCに対するグループ化テスト
3.2.グループのチェック
3.2.1.位置合わせのチェック
3.2.2.位置合わせの例
4.圧縮出力画像の生成
4.1.タイルの修復
4.1.1.タイル前景ビットマスクの形成
4.1.2.画素の修復及びタイルアクティビティの測定
4.1.3.修復の例
4.1.4.タイルの均一化
5.ハードウェアの実施形態
5.1.カラーセグメント化モジュール
6.コンピュータの実現例
7.産業上の利用可能性
上記節は、上記順序で以下に詳細に説明される。
1.概要
本発明の第1の実施形態は、汎用コンピュータ上で実行する処理である。図1は、デジタル画像をセグメント化、解析及び圧縮する処理100の高水準な概要を提供する。処理100に対する入力は、300dpiの解像度のRGB画像であるのが好ましい。しかし、他の色空間の画像が適切な変更を伴って処理100に入力されてもよい。同様に、異なる解像度の画像が入力されてもよい。ステップ110において、画像の連結成分(CC)へのカラーセグメント化が、入力画像に対して単一パスを使用して実行されてもよい。1パス処理を使用すると、デジタル画像は迅速に処理されるため、大量の高解像度の画像が処理される。連結成分は、全てが連結された(接触する)同様の色を有する画素のグループである。例えば、白色のページに黒色のインクで印刷された文字「i」の本体又はステムを形成する画素は1つの連結成分を形成し、「i」のドットは別のCCを形成し、文字「i」を囲む背景である任意の白色画素は更に別のCCを形成する。図6は、文字「i」を含む画像600を示す。図6において、黒色のドットは黒色画素を表し、白色のドットは白色画素を表す。「i」CCのステム610及び「i」CCのドット612が示される。また、結果として得られる黒色画素の別のCC614が示される。
セグメント化の一部として、CCを説明するコンパクトな情報及び統計値が計算される。デジタルデータはダウンサンプリングされ、ステップ130に直接提供される。ステップ120において、このコンパクトなCC情報及び統計値を使用して、レイアウト解析がCCに対して実行される。レイアウト解析は、例えばテキスト文字、段落、表及び画像を含むページ上の特徴のレイアウトを判定する。ステップ130において、レイアウト情報は、1つ以上の前景画像を作成するために使用される。前景画像は、通常、ステップ120で識別されたテキスト文字から構成され、2値画像であるのが好ましい。前景画像は入力解像度(例えば、300dpi)で格納されてもよく、背景画像はより低い解像度(例えば、150dpi)で格納されてもよい。前景要素は、背景画像から除去される。前景及び背景は、異なる技術を使用して圧縮され、複合画像形式で格納される。複合形式は、例えばPDF文書であってもよい。カラーセグメント化、レイアウト解析及びデジタル画像の圧縮については、それぞれ別々の節で以下に説明する。
本発明の実施形態に対する1つの応用例は、スキャナからのラスタ画素画像を解析し、可能な限り高水準な情報を抽出することである。ページの高水準記述は、この情報から生成される。この目的のために、システムは、ハードウェアで画素解析を行なうことにより更に高速に実行するように設計されてもよい。しかし、システム全体がソフトウェアで実現されてもよいことは、以下の説明から明らかとなるだろう。また、特定の出力形式PDFについて以下に説明するが、他のページ記述形式を出力形式として利用するために、システムに対して変更が行なわれてもよい。
図8は、スキャン済み入力文書810の圧縮表現又はコンパクトな表現850を生成する本発明の一実施形態によるシステム800を示す高水準ブロック図である。システム800は、フロントエンドモジュール820、中間モジュール830及びバックエンドモジュール840を具備する。フロントエンドモジュール820は、タイルを使用するフロントエンドであり、ハードウェアで実現されるのが好ましいが、組込みプロセッサにより実行されるソフトウェアとASICとの組合せでもよい。タイルラスタ順は、タイルに基づく処理方法であり、タイルは、上から下及び左から右へ1度に1つのタイルを処理するために提供される。このモジュールは、入力画像に対してカラーセグメント化を実行し、バックエンドモジュール840にタイルの背景画像を提供する(矢印により示される)。フロントエンドモジュール820は、フルページ解像度(例えば、300dpi)でカラー連結成分解析を実行する。フロントエンドモジュール820は、デジタル画像810からも連結成分(CC)を生成する。CCは中間モジュールに提供され、中間モジュールはレイアウト解析を実行する。このモジュール全体は、ソフトウェアで実現されてもよい。フロントエンドモジュール820は、ダウンサンプリングされた画像をモジュール840に提供する。中間モジュール830の出力は、バックエンドモジュール840に提供される。バックエンドモジュール840は、タイルに基づく修復を実行し、デジタル画像810のコンパクトな表現を生成する。フロントエンドモジュール820と同様に、バックエンドモジュール840は、組込みプロセッサ上で実行されるソフトウェア及びASICと共に少なくとも部分的にハードウェアで実現されてもよい。このコンパクトな出力は、より低い空間解像度のデジタル画像及びより高い解像度の前景ビットマップを含んでもよい。
フロントエンドモジュール820は、各画素の検査を含み、かつセマンティカリー(semantically)に関連する画素の領域のカラーCCを形成する全ての解析作業を実行する。フロントエンドモジュール820からの出力は、ページ上の全てのカラーCCに関する情報である。各CCに対する情報は、バウンディングボックス、平均色、接触リスト及び画素数を含む。アルゴリズムをハードウェアで実現する場合、アルゴリズムは、最適な性能のために帯域幅が有効利用される必要がある。画像処理タスクに対して、アルゴリズムはスキャン済みページ全体にランダムアクセスしない。その代わり、アルゴリズムは1度に複数の小さなタイルを処理する。
2.カラーセグメント化
図2は、図1のステップ110を更に詳細に示す。図2に示す処理は、例えばサイズが32×32画素であってもよい入力画像のタイルを処理する。タイルは、ラスタ順に、すなわち左から右及び上から下に処理されてもよい。処理される最初のタイルは入力画像の左上のタイルであり、処理される最後のタイルは入力画像の右下のタイルである。このタイリングは、効率の目的で行なわれる。
ステップ210において、処理される入力画像の次のタイルが取得される。ポインタ情報は、各タイルに効率的にアクセスするために使用されてもよい。ステップ210については、図3を参照して更に詳細に説明する。ステップ220、230、240及び250の処理は、現在のタイルの画素に限定される。ステップ220において、逆ハーフトーン化処理は現在のタイルに対してオプションとして実行される。例えば、この方法により処理されるスキャン済み入力文書は、印刷処理による中間調を含んでもよい。中間調は、後続の解析を困難にし且つ十分に圧縮できない可能性がある。従って、このステップ220は、中間調を検出及び除去するために使用されてもよい。一例として、以下の逆ハーフトーン化処理が実現されてもよい。逆ハーフトーン化処理は、16×16のタイルを処理してもよい。32×32のRGB画素の各入力タイルは、16×16の4つのタイルに分割されてもよく、各タイルが別個に処理される。中間調の検出は、1度に1つのカラーチャネル(すなわち、R、G及びB)を処理してもよい。中間調がチャネルにおいて検出される場合、中間調の除去は全てのチャネルに対して実行されてもよい。中間調を検出するために、タイルの各画素は、4つのレベルに量子化される。入力カラーチャネル値は、0〜255の範囲に及ぶ。4つのレベルは、0〜63、64〜127、128〜191及び192〜255の範囲である。互いに隣接する画素間のレベルの変化数が測定される。この測定は、水平方向及び垂直方向に行なわれてもよい。
通常、中間調は小さなドットであるため、検出には、変化数が大きく且つ水平の変化数が垂直の変化数と同様であることが必要である。これにより、中間調として検出されるテキスト文字のエッジによるレベルの変化が防止される。検出に対する閾値は指定されてもよい。中間調が16×16のタイルにおいて検出される場合、例えば空間的なぼけは中間調を除去するのに使用されてもよい。中間調検出器は、先に解析したタイルからの情報を使用できる。例えば、現在のタイルに接触するタイルがタイルにおいて中間調を検出した場合、現在のタイルも中間調を含む可能性が高い。この情報が使用される場合、閾値は中間調検出条件を緩和又は強化するために調整されてもよい。
ステップ230において、現在のタイルの色空間がYUV色空間にない場合、タイルの画素をYUV色空間に変換するための変換が実行される。従って、このステップは、入力画像の色空間に依存するオプションである。YUV色空間が本実施形態において使用されるが、本発明の趣旨の範囲から逸脱せずに、他の色空間が実現されてもよい。RGBからYUVに変換するために使用される変換式は、例えばIJG(Independent JPEG Group)JPEGライブラリにおいて使用される変換式と同一であってもよい。
ステップ240において、連結成分を形成するカラーセグメント化が現在のタイルに対して実行され、タイルのCCに関するコンパクトな情報及び統計値が計算される。カラーCCは、セマンティカリー(semantically)に関連した1つ以上のブロブを含み、1つ以上のタイルにわたる。例えば、セマンティカリー(semantically)に関連したブロブは、同様の色であってもよい。ブロブは、単一タイル内で同様の色特性を有する画素の連結グループである。ブロブ処理は、カラーセグメント化及び連結成分表現の形成を行なう処理である。各CCは以下の統計値を有する。すなわち、画素のサイズ、中間色、バイナリマスク、ブロブ境界線の長さ及びバウンディングボックスを有する。図10は、このステップを更に詳細に示す。
ステップ250において、現在のタイルは、背景画像の対応する部分を形成するためにダウンサンプリングされる。例えばボックスフィルタは、双方の次元に2:1だけダウンサンプリングするために使用されてもよいが、他の方法論が、本発明の趣旨の範囲から逸脱せずに実現されてもよい。判定ステップ260において、処理されるタイルが残っているかを判定するためのチェックが行なわれる。ステップ260の結果がNoである(すなわち、画像の全てのタイルが処理された)場合、処理は終了する。しかし、ステップ260の結果がYesである場合、ステップ210に進む。
2.1.入力画像の次のタイルの取得
図3は、図2のステップ210を詳細に示す。処理210は、入力デジタル画像のバンドを処理する。画像の1つのバンドは、多数の連続画像線である。各バンドの高さは、タイルの高さと同一であってもよい。従って、画像の最初の32本の線は1つのバンド、この場合は画像の第1のバンドを形成し、次の32本の画像線は次のバンドを形成する。各バンドの幅は、入力画像の幅であってもよい。判定ステップ310において、別のバンドが読み込まれる必要があるかを判定するためのチェックが行なわれる。現在のバンドの全てのタイルが処理された場合、別のバンドが読み込まれる必要がある。ステップ310が初めて実行される時にも別のバンドが読み込まれる必要がある。これは、この時点でバンドが読み込まれていないためである。ステップ310の結果がYesである場合、ステップ320に進む。Noである場合、ステップ340に進む。
ステップ320において、データの次のバンドは、入力画像から、例えばディスクからメモリ内のバッファに読み込まれる。メモリバッファは、連続した記憶場所にバンドの画素の各線を含むように構成されてもよい。更に、各線の開始位置の記憶場所のレコードが保持される。すなわち、各バンド行へのポインタが保持される。ステップ330において、現在のタイルであるアクセスされるタイルを判定する変数txが初期化される(すなわち、0に設定される)。ステップ340において、行ポインタ情報は、現在のタイルを指し示すように更新される。図3の処理210を呼び出す他の処理は、ステップ340で更新された行ポインタ情報を参照することにより新しいタイルを取得する。行ポインタ情報は、タイル行毎に1つのポインタを含んでもよい。従って、タイル毎に32個の行ポインタが存在してもよい。所定の行ポインタは、所定の行のタイルの第1の画素の記憶場所を指し示す。行ポインタ情報は、対応する各バンド線の開始位置までポインタを越えて記憶場所(タイル幅*tx)に沿って各行ポインタを進めることにより更新されてもよい。ステップ350において、変数txは1増分され、次に図3の処理210が呼び出される時は、別のタイルが処理に対して入力される。
2.2.タイルのカラーセグメント化の形成
カラーブロブ処理は、タイルラスタ順で動作する画像セグメント化アルゴリズムである。ブロブは、単一タイル内の同一量子化ラベルの画素の連結グループである。各ブロブは以下の統計値を有する。すなわち、画素のサイズ、中間色、バイナリマスク、ブロブ境界線の長さ及びバウンディングボックスを有する。その目的は、文書画像をオーバーラップしない連結成分のセットにセグメント化することである。この時、各連結成分はセマンティカリー(semantically)に関連した画素の連結セットを含む。例えば、特定のテキスト文字の画素のセットは1つの連結成分を形成し、テキストの周りの画像部分の画素は別の連結成分を形成するなどである。
図28は、4つのモジュール2810、2820、2830及び2840を有するカラーブロブシステム2800を示すブロック図である。色量子化モジュール2810は、入力カラータイル(例えば、RGB色空間に対する24ビット画素値)を受信し、タイルのドミナントカラー数を判定し、ドミナントカラーに従ってタイルを量子化する。ドミナントカラー及び量子化タイルは、連結成分/ブロブ統計モジュール2820に入力として提供され、モジュール2820は、単一ラスタパスで量子化タイルに対して8方向連結成分解析を実行する。画素数、中間色、ブロブ境界線の長さ及びバウンディングボックス情報等のブロブ統計値は、同一のラスタパスで収集される。ブロブ及び統計値は、タイル内マージモジュール2830に入力として提供され、モジュール2830は、色、サイズ及び境界線統計値に基づいてブロブをマージすることによりタイル内の小さなスプリアスブロブ数を減少する。このモジュール2830から結果として得られるブロブ及び統計値は、タイル間マージモジュール2840に入力として提供され、モジュール2840は、システム2800の出力である連結成分を形成するために、ブロブ統計値に従って、現在のタイルのブロブを隣接するタイル(左側及び上側)の接触するブロブとグループ化する。これについては、図10の処理を参照して更に説明する。
図10は、画像をカラーCCにセグメント化するステップ240を詳細に示すフローチャートである。セグメント化処理の一部として、CCを説明するコンパクトな情報及び統計値が計算される。セグメント化処理は、ステップ230から画素の入力タイルを受信することにより開始される。判定ブロック1005において、タイルが均一であるかを判定するためのチェックが行なわれる。タイルが均一である場合、ステップ1040のタイル間マージ段階に進む。タイルが均一でない場合、ステップ1010に進む。ステップ1010において、色量子化がタイルに対して実行される。色量子化は、主な3つのステップ:1)色縮小、2)タイルの分類、3)ドミナントカラーの検索及び量子化を使用して、画素の配置を考慮せずにタイル内のドミナントカラーを見つける。入力タイルのドミナントカラーは、色ヒストグラム法により判定される。色ラベルの量子化タイルは、ドミナントカラーに従って入力タイル画素を量子化することにより作成される。ドミナントカラーは、閲覧者がタイル内でかなり視覚的であると知覚する色である。アルゴリズムは、ハードウェア(HW)の実現例に適しており、またソフトウェア(SW)の実現例でも相当高速である。
ステップ1020は、ブロブを形成するために量子化タイルに対して8方向連結成分解析を単一ラスタパスで実行する。ステップ1030において、タイル内マージ処理は、色、サイズ及び境界線情報に基づいてブロブをマージすることにより、タイル内の小さなスプリアスブロブ数を減少するために実行される。ステップ1040において、タイル間マージが実行される。量子化タイルにおいて識別されるブロブは、カラーCCにマージするために、現在のタイルの左側にあるタイル及び現在のタイルの上側にあるタイルである先に処理された2つのタイルにおいて識別されるブロブと比較される。従って、カラーCCは、1つ以上のタイルにわたる同様の色の1つ以上のブロブを含む。カラーCCは、ブロブに対して、境界線情報を除く上述と同一の種類の統計値を有する。
ステップ1050において、現在のタイルのブロブ及びブロブが形成するカラーCCは、コンパクトなタイル状態データ構造に格納される。このタイル状態は、画素データを含まない。タイル状態は、新しく作成されたブロブを既存のカラーCCにマージするのに必要な情報のみを含む。セグメント化処理の任意の段階において、2つ以下のタイル状態のみが現在のタイルとマージするのに必要とされるため、タイル間マージ処理1040は高いメモリ効率で実行される。更に、ステップ1050は、各カラーCCに対する接触リストを更新する。接触リストは、互いに隣接する連結成分を説明する。接触リストは、フロントエンドにおいてカラーCC解析の一部として生成される。図2のステップ240は、接触リストを生成する。その後、処理は終了する。
2.2.1.色量子化
色量子化の目的は、入力フルカラーを連結成分生成の準備のために減少した色セットに減少することである。ドミナントカラーを見つけるために、各入力画素は1度検査され、ヒストグラムが生成される。本発明の実施形態は、第1の次元である輝度を使用し且つ第2の次元である2つの色度成分を組み合わせるヒストグラムを採用する。これは、3つの色成分の軸に従ってビンを3つの次元に分割する従来の色ヒストグラムとは異なる。本発明の実施形態は、適切なドミナントカラーをより簡単に見つけることを助長するコンパクトなヒストグラムを生成する。ヒストグラムの特徴から、タイルは、均一、2レベル及び多色の3つの種類に分類される。パレットは、タイルの分類に依存してタイルに対して生成される。パレットの生成後、各画素は、画素がマップされるパレット色に従って量子化ラベルを割り当てられる。方法は、処理を高速にし且つメモリ要求を低くするように設計される。均一なタイルは、量子化ラベルを1つのみ有する。2レベルのタイルは、2つの量子化ラベルを有する。多色タイルは、最大4つの量子化ラベルを有する。
図10の色量子化ステップ1010は、図11に更に詳細に示される。ここでは、図11の各ステップの簡単な説明を行ない、各ステップの詳細な説明は後で行なう。ステップ1110において、2Dヒストグラム及び第1のパレットを含む指標付きマップが同時に形成される。図40は、ステップ1110の更なる詳細を提供する。ステップ1120において、タイルの分類は2Dヒストグラムの統計値から実行される。図47は、ステップ1120の更なる詳細を提供する。ステップ1130において、第2のパレットはタイルの分類に基づいて形成される。これは、第1のパレットを考慮することを含む。図41は、ステップ1130の更なる詳細を提供する。ステップ1140において、画素は第2のパレットと関連付けられる。指標付きマップは第2のパレットの色の1つに再マップされ、量子化ラベル付きの量子化タイルを生成する。その後、処理は終了する。
2.2.1.1.2Dヒストグラム及び第1のパレットの形成
図40は、図11のステップ1110の処理を更に詳細に示す。入力フルカラータイルは、所定のマッピング方法により1パスで画素ラスタ順に指標付きマップに量子化される。図29(a)は、結果として得られる生成される指標付きマップ及び元の入力タイルの一例を示す。マッピングは、8つの輝度バンド及び4つのカラーコラムに編成される32個の色のビンに対して構成されてもよい。色の各ビンは、ビンに入れられる第1の画素のYUV値により設定される登録ID、画素カウンタ及び色累算器を有してもよい。所定のマッピング方法は、2Dヒストグラムの状態に応じて変更されてもよい。その結果、各ビンに対して所定の色は存在せず、画素の色の順序は第1のパレットの構成に影響を及ぼすだろう。最後に、空でない各ビンの平均色が第1のパレットを構成する。図29(c)は生成されるパレットを示し、図29(c)において、高階調部及び低階調部は空のビンを表す。
ステップ4010において、色値(YUV)を有する画素がタイルから取得される。所定のマッピングは、ステップ4015において実行され、画素を輝度バンド及び色のビンにマップする(すなわち、bin_mapped)。所定のマッピングは以下の通りであってもよい。
band = Y >> 5, 且つ
column = (|U - REF_U| + |V - REF_V|) * NORMALISING_FACTOR[band]
階調の色度値は、REF_U及びREF_Vに対して使用されてもよい(すなわち、8ビットのRBG入力データに対して、REF_U=128且つREF_V=128である)。各バンドに対するNORMALISING_FACTORは、各バンドをRGB色空間の4つのビンに正規化するために、選択したREF_U及びREF_Vを使用して事前に計算される。NORMALISING_FACTORは、表1の擬似コードを使用して生成される。
Figure 0005008572
ステップ4020〜4025は、2レベルのタイルの輪郭を強調するためにオプションの「バンドのアンチエイリアス」を実行する。ステップ4020において、「バンドのアンチエイリアス」が有効化され且つマップされたバンドとその上又は下のバンドとの間の輝度の差異が指定された閾値(例えば、16)を超えない場合、「バンドのアンチエイリアス」は、ステップ4025において実行される。上記条件を満足しない場合、ステップ4035に進む。
ステップ4025において、バンドのアンチエイリアスが実行される。上又は下のバンドにおいて近接した空でないビンを見つけることを試みる。候補ビンは、band-1又はband+1によりマップされるビンである。以下の2つの条件のいずれかにおいて、候補ビンはマップされたビン(bin_mapped)を置換する。
1.候補ビンは空ではなく、その登録ID(Y)はYから16未満であり、bin_mappedは空である。
2.候補ビン及びbin_mappedは空ではなく、Yはbin_mappedの登録ID(Y)より候補ビンの登録ID(Y)に近い。
ステップ4035〜4055は、「ビンのアンチエイリアス」処理を実行する。ステップ4035は、マップされたビン(bin_mapped)が空であるかをチェックする。マップされたビンが空でない場合、ステップ4040は以下のようにマッピングエラーをチェックする。
max(|U - 登録ID(U)|, |V - 登録ID(V)|) < MAX_BIN_ERROR[band]
式中、MAX_BIN_ERROR[band]は、正規化因子を生成する上記擬似コードで規定されるように、各バンドにおけるmax_distの1/8である。
ステップ4035が偽(No)を返す場合、ステップ4040に進む。Yesを返す場合、ステップ4045に進む。判定ステップ4040において、このバンドに対する最大のビンエラーである指定された閾値を超えるマッピングエラーが存在するかを判定するためのチェックが行なわれる。
マッピングエラーが閾値内である場合、ステップ4060に進む。閾値内でない場合、ステップ4055がより近接するビンを見つけるために実行される。ステップ4055において、検索はコラム0から開始し、マップされたバンドのコラム3に向けて移動する。この検索は、以下の条件のいずれかが満足された時に終了する。
1.空のビンが見つけられる。
2.許容閾値内のマッピングエラーを有するビンが見つけられる。
ステップ4055の検索が条件1で終了する場合、(YUV)値は空のビンに登録され、空のビンはbin_mappedを置換する。双方の条件が満たされない場合、最小のマッピングエラーを有するビンがbin_mappedを置換する。その後、ステップ4060に進む。
ステップ4035のテスト後、マップされたビンが空である場合、ステップ4045に進む。判定ステップ4045において、同一バンドの近接する空でないビンが見つけられたかを判定するためのチェックが行なわれる。ステップ4045は、コラム0〜3を検索し、先に規定されたマッピングエラー閾値を満足する空でないビンを見つける。そのようなビンが見つかった場合、空のビンはステップ4052でbin_mappedを置換し、その後ステップ4060に進む。ステップ4045が偽(No)を返す場合、bin_mappedはステップ4050で色(YUV)値に登録され、ステップ4060に進む。
ステップ4060において、画素の色(YUV)は、マップされたビン(bin_mapped)に累積され、bin_mappedの画素カウントは増分される。ステップ4065において、bit_mappedの場所は、現在の画素に対して記録される。ステップ4070において、更なる画素がタイルに残っているかを判定するためのチェックが行なわれる。その結果がYESの場合、ステップ4010に進む。NOの場合、ステップ4075に進む。ステップ4075において、空でない各ビンの累積された色は、その画素カウントで除算される。空でない各ビンの平均色は第1のパレットを形成する。その後、処理は終了する。
2.2.1.2.ヒストグラムの解析及び画像の分類
タイルの分類は、タイル内のドミナントカラーを見つける方法である。パレットの色の多様性及び分布に基づいて、タイルは、均一、2レベル及び多色の3つのグループに分類される。均一なタイルは、人間の目に対して視覚的に一定の色を有し、通常2Dヒストグラムにおいてクラスタを形成する。均一なパレットは最大3色を有し、色の多様性は小さい。2レベルのタイルは、2つの特有の色を有し、通常2Dヒストグラムにおいて垂直に並ぶ。2レベルのパレットは、いくつかの輝度バンドにわたる複数の色を有するが、各輝度バンドの色の多様性は小さい。多色タイルは、通常、2Dヒストグラムにおいて多数のビンに分散する。多色パレットは、最初の2つのテストを通過しないタイルを含む。
図11のステップ1120は、2Dヒストグラムの色の特性及びビンの分布を解析し、それに従ってタイルを分類する。タイルは、均一、2レベル及び多色の3つのグループに分類される。図47は、ステップ1120の処理を更に詳細に示す。ステップ4710において、均一なタイルのテストが実行される。その結果がYesである場合、ステップ4712において、タイルは均一であるとして分類される。Noである場合、ステップ4720の第2のテストが実行され、タイルが2レベルであるかを判定する。2レベルのテストに対する結果がYesである場合、ステップ4722において、タイルは2レベルであるとして分類される。Noである場合、ステップ4724において、タイルは多色であるとして分類される。ステップ4710及び4720については、以下に更に詳細に説明する。
ステップ4710について考慮すると、第1のLumRangeは、ビンが全て空でない最大の輝度バンドと最小の輝度バンドとの間の範囲と定義される。タイルが均一のテストを通過するためには、タイルは以下の3つの条件を全て満足する必要がある。
1.空でないビンの数 <= 3
2.LumRnage <= 2
3.FlatColourVariance < FLAT_COLOUR_VARIANCE
式中、FlatColourVarianceは、最大のビンと残りのビンとの画素カウント加重マンハッタン距離の合計と定義される。閾値パラメータは、FLAT_COLOUR_VARIANCE=15であってもよい。
ステップ4720を考慮すると、タイルが2レベルのテストを通過するためには、タイルは以下の3つの条件を全て満足する必要がある。
1.空でないビンの数 <= BILEVEL_MAX_BIN_CNT
2.LumRnage > 2
3.MaxColourVariance < BILEVEL_COLOUR_VARIANCE
MaxColourVarianceは、max(ColourVariance[band])と定義され、ColourVariance[band]は、バンドの最大のビンと残りのビンとの画素カウント加重マンハッタン距離の合計である。パラメータ値は、BILEVEL_MAX_BIN_CNT=16且つBILEVEL_COLOUR_VARIANCE=40であってもよい。
2.2.1.3.第2のパレットの形成
図41は、図11のステップ1130の処理を更に詳細に示す。ステップ4110は、タイルが均一として分類されるかをテストする。タイルが均一である場合、ステップ4120は均一な色を形成する。これは、空でないビンの加重平均を計算することにより行なわれてもよい。ステップ4110のテスト結果がNoである場合、ステップ4130に進み、タイルが2レベルとして分類されるかをテストする。テスト結果がYesである場合、ステップ4140に移る。ステップ4140において、2色パレットが生成される。ステップ4130が偽を返す場合、ステップ4150に進む。ステップ4150において、多色パレットが生成される。
2.2.1.3.1.2色パレットの生成
図42は、ステップ4140の2レベルのタイルに対する2色パレットの生成を更に詳細に提供する。その目的は、画像を表すために2つの対比色を見つけることである。印刷時の中間調及び登録エラーにより、通常、元の2つの対比色を表す色が汚染される。その結果、前景領域及び背景領域の平均色は、元の画像に対する適切な表現ではない。遷移領域の色を除外することにより、画像はより鮮明に見える。
ステップ4210において、最も暗い色及び最も明るい色が選択され、ドミナントカラーに対して初期パレットを形成する。ステップ4220において、最も領域を占める6つのビンがビンのリストを生成するのに使用される。上位6つのビンは、画素カウントに従ってパレットから見つけられる。ステップ4230〜ステップ4270は、リストの色を順番に処理する。ステップ4230において、リストの次のビンの色Cが取得される。判定ステップ4240は、色Cが初期パレットに含まれているか、あるいは色が2つの極値から離れすぎているかをテストする。その結果がYesである場合、その色は無視され、ステップ4230に戻り、処理する次のビンの色を取得する。ステップ4240の結果がNoである場合、ステップ4250に進む。判定ステップ4250は、色が初期パレットにマージするのに適しているかをテストする。マージするのに適する色は、初期パレットの任意の色に近接して配置される色である。ステップ4250からのテスト結果がYesである場合、色は、重み付き画素カウントを有するより近接するマンハッタン色距離に基づいて初期パレットの色のうち1つの色にマージされる。Cの画素カウントは、マージするパレットの色の画素カウントに加算される。ステップ4270に進む。ステップ4250の結果がNoである場合、色は無視され、ステップ4270に移り、処理されていない色が存在するかをチェックする。ステップ4270のテストがYesを返す場合、ステップ4230に戻る。Noを返す場合、処理は終了する。
2.2.1.3.2.多色パレットの生成
図43は、多色タイルに対して多色パレットを生成する図41のステップ4150を詳細に示す。ステップ4310において、最も暗い色及び最も明るい色が選択され、初期ドミナントカラーとして初期パレットを形成する。ステップ4320において、以下の条件が双方とも真である場合、第3の色はパレットに追加される。
1.LumRange > THIRD_COLOUR_MIN_LD
2.LargestVar > THIRD_COLOUR_MIN_VAR
LargestVarは、最も暗い輝度バンドと最も明るい輝度バンドとの間のビンの中で最も明るい色及び最も暗い色の中間色からの最大マンハッタン色距離と定義される。上記テストが真である場合、LargestVarを生成する色は初期パレットの第3の色として追加される。閾値は、THIRD_COLOUR_MIN_LD=4且つTHIRD_COLOUR_MIN_VAR=40であってもよい。
ステップ4330において、上位(すなわち、最も領域を占める)6つのビンがビンのリストに追加される。ステップ4340〜4395は、リストの色を順番に処理する。ステップ4340において、リストの次のビンの色Cが取得される。ステップ4350は、色が初期パレットに含まれているかをテストする。結果がYesの場合、色は無視され、ステップ4340に戻る。Noの場合、ステップ4360は、その色をパレットの色のうち1つの色にマージすることを試みる。最近接マンハッタン色距離がBIN_MERGE_THRESHOLD1内である場合、色はその距離を有するパレットの色にマージされる。ここで、閾値は、BIN_MERGE_THRESHOLD1=10であってもよい。ステップ4360の試みが成功した場合、ステップ4395に進み、処理する色が更に存在するかをチェックする。成功しなかった場合、ステップ4370に移る。
ステップ4370は、別の色がパレットに追加されるかをテストする。ステップ4370が真(Yes)を返す場合、ステップ4380に進む。以下の擬似コードにおけるテストが真である場合、ステップ4380において、別の色が追加される。
Number_palette_colours < MAX_NUM_PALETTE_COLOURS
&&
(
minDist > BIN_MERGE_THRESHOLD2

(
minDist > BIN_MERGE_THRESHOLD3
&&
(minDist * pCnt) > BIN_NEW_MIN
&&
pixel_count_closest_palette_colour > BIN_DONT_TOUCH_CNT
)
)
minDistは、パレットの色に対するCの最近接マンハッタン色距離である。pCntは、Cの画素カウントである。pixel_count_closest_palette_colourは、minDistを生成するパレットの色の画素カウントである。閾値は、MAX_NUM_PALETTE_COLOURS=4、BIN_MERGE_THRESHOLD2=70、BIN_MERGE_THRESHOLD3=40、BIN_NEW_MIN=4000且つBIN_DONT_TOUCH_CNT=150であってもよい。
ステップ4380からステップ4395に進む。
ステップ4370のテストが偽である場合、ステップ4390に進む。ステップ4390において、ビンの色Cは、最近接マンハッタン色距離を有するパレットの色とマージされる。色は重み付き画素カウントとマージされ、Cの画素カウントはマージするパレットの色の画素カウントに加算される。ステップ4395に進む。ステップ4395において、処理する色が更に存在しない場合、処理は終了する。
2.2.1.4.画素と第2のパレットとの関連付け
ドミナントカラーが見つけられると、タイル内の画素はドミナントカラーの1つに量子化される。量子化マップは、連結成分解析のためにドミナントカラーリストと共に生成される。各グループに対する量子化処理は以下の通りである。
1)均一−量子化しない
2)2レベル−パレットを2つのドミナントカラーのうちのいずれか一方に再マップするか、あるいは元の画素を2値化するために閾値を見つける
3)多色−パレットをドミナントカラーの1つに再マップする
2値化はより鮮明な輪郭を生成するが、適切な閾値を見つけることを必要とするため時間がかかる。閾値を見つけるステップは、1)輝度チャネルに対して1次微分を実行し、2)エッジ画素を識別し、3)エッジ画素からの平均輝度値を閾値として使用する。エッジ画素は、取り囲む3×3の1次微分の出力が全て予め定められた閾値を超える画素である。
図44は、図11のステップ1140の更なる詳細を提供する。ステップ4410は、タイルが2レベルとして分類されるかをテストする。テスト結果がYesの場合、ステップ4420に進む。ステップ4420において、2レベルのタイルがマップされる。テスト結果がNoの場合、ステップ4430に進む。ステップ4430において、多色タイルがマップされる。
2.2.1.4.1.2レベルのタイルのマップ
図45は、ステップ4420の更なる詳細を提供する。処理4420全体は、量子化エラーチェックを使用して空でないビンを全て第2のパレットの2つの色にマップする。ステップ4510〜ステップ4570は、空でない各ビンに対して量子化及びエラーチェックを実行する。大きな量子化エラーが見つけられない場合、ビン量子化後、全ての画素を第2のパレットに再マップする。大きな量子化エラーが見つけられた場合、タイルは多色として分類され、多色タイルマッピングが行なわれる。2レベルのタイルのマッピングの詳細を以下に説明する。
ステップ4510は、輪郭強調が必要とされるかを判定し、輪郭強調が実行されるビンに対する量子化のために好ましい極端な色を選択する。パレットの2つの色の一方の画素カウントが他方より5倍上回る場合、輪郭強調は必要とされる。第2のパレットの2つの色は、第1の色C1及び画素カウントP1、並びに第2の色C2及び画素カウントP2を有するとする。(P1/P2)又は(P2/P1)が5より大きい場合、輪郭強調は必要とされ、OUTLINE_ENHANCEは真に設定される。好ましい極端な色は、より小さな画素カウントを有する色であってもよい。
ステップ4515は、画素カウントpCntを有する次の空でないビンを取得する。ステップ4520は、2つの色の量子化エラーを計算する。パレットの2つの色に対するマンハッタン距離(D1及びD2)が計算され、小さい方のマンハッタン距離はminDistと定義される。minDistは量子化エラーである。その後、判定ステップ4525に進み、量子化エラーが大きすぎるかをチェックする。以下の擬似コードは、量子化エラーが大きすぎる場合の条件を規定する。
(minDist * pCnt) > BIN_NEW_BILEVEL_THRESHOLD

(
minDist > BIN_NEW_BILEVEL_COLOUR_DIFF
&&
pCnt > BIN_MERGE_BILEVEL_CNT_MIN
)
式中、閾値は、BIN_NEW_BILEVEL_THRESHOLD=6000、BIN_NEW_BILEVEL_COLOUR_DIFF=50且つBIN_MERGE_BILEVEL_CNT_MIN=100であってもよい。
ステップ4525のテストが真である場合、ステップ4540に進む。ステップ4540において、現在のビンは、別のドミナントカラーリストに追加される。その後、ステップ4570に進む。ステップ4525のテストが偽である場合、判定ステップ4530に進み、別のドミナントカラーリストが空であるかをチェックする。リストが空でない(No)場合、ステップ4570に切り替え、処理される空でないビンが更に存在するかを確認する。ステップ4530の結果がYesの場合、ステップ4545に進み、輪郭強調が必要とされるか及び2つの距離が近接するかを判定する。テスト条件が以下の擬似コードのように与えられる。
OUTLINE_ENHANCE
&&
abs(D1 - D2) < BILEVEL_THRESHOLD_MERGIN
式中、閾値は、BILEVEL_THRESHOLD_MERGIN=16であってもよい。
ステップ4545のテストが真である場合、ステップ4550に進む。ステップ4550において、ビンは好ましい色に量子化される。ステップ4570に進む。ステップ4545のテストが偽である場合、ステップ4555に進み、D1及びD2に基づいてビンをより近接する色に量子化する。その後、ステップ4570に進み、処理される空でないビンが更に存在するかをチェックする。空でないビンが更に存在する場合、ステップ4515に戻る。空でないビンがそれ以上存在しない場合、判定ステップ4560に進み、別のドミナントカラーリストが空であるかをチェックする。これにより、ビン量子化処理中に大きな量子化エラーが存在するかを判定する。リストが空である場合、ステップ4575に進み、ステップ4550又はステップ4555のビットマッピングに適宜従ってパレットの2つの色のうちいずれか一方に全ての画素を再マップする。その後、処理は終了する。ステップ4560においてリストが空でない場合、ステップ4565に進み、別の1つの色をパレットに追加する。別のドミナントカラーリストの最大の画素カウントを有するビンは、パレットの第3の色として選択される。ステップ4430において、タイルは、多色タイルとして再マップされる。その後、処理は終了する。
2.2.1.4.2.多重レベルのタイルのマップ
図44のステップ4430は、図46に詳細に示される。ステップ4610は、次の空でないビンを取得する。ステップ4620は、ビンをパレットの色の1つに量子化する。これは、最近接マンハッタン色距離に基づいて行なわれてもよい。ステップ4630は、処理される空でないビンが更に存在するかをチェックする。ステップ4630のテストが真である場合、ステップ4610に進む。ステップ4630のテストがNoを返す場合、ステップ4640に進む。ステップ4640において、全ての画素は、ステップ4620のビットマッピングに従ってパレットの色の1つに再マップされる。その後、処理は終了する。
2.2.2.カラーCC解析及びブロブ(Blob)統計
図10の処理1020は、先のステップから量子化タイルを得てブロブを形成する。各ブロブは以下の統計値を有する。すなわち、バウンディングボックス、サイズ、中間色、ビットマスク及びブロブ境界線の長さを有する。ブロブは、単一ラスタパスで高速に且つ効率的に形成される。同一の色クラスに属する量子化タイルの隣接する画素は、ラスタ順にグループ化され、「ラン」を形成する。各ラン(セグメント)の最後では、成長又はマージのために、ランが上側の行の接触するセグメントと(8方向連結性に関して)比較される。ブロブラベルを与えられる必要のあるランが同一クラスのブロブと接触している場合、成長が行なわれる。これに対して、同一クラスの2つのブロブが接触する時、マージは行なわれる。成長が不可能な場合、新しいブロブが形成される。ブロブ統計値は、各ランの最後で更新される。
図36は、一例である6×6の入力タイル3610を使用するカラーブロブ処理3600を示す図である。色量子化は、量子化タイル3620を生成するために多くの色を有する入力タイル3610に適用される。量子化タイル3620は、ドミナントカラークラスに対応するクラスラベルを含む。この場合、2つのドミナントカラーがタイルに存在するため、クラスラベル0及び1を与える。連結成分解析は、ランを形成するために同一クラスの隣接するラベルをグループ化することにより一行毎に開始する。図36において、例えば第1の行の最初の4つの「0」は1つのランを形成し、次の2つの「1」は別のランを形成する。ブロブは、量子化タイル3620の連続する行の同一クラスのランをつなぐことにより形成される。タイル3630は、タイルのランを示す。現在のセグメントを上側の行の接触するセグメントと比較する場合、3つの可能な動作が存在する。
1.現在のセグメントをブロブに追加することにより、既存のブロブを成長させる
2.2つのブロブに対する統計値を1つに統合することにより、2つのブロブをマージする
3.現在のセグメントを使用してブロブを初期化することにより、新しいブロブを形成する
タイル3640は、結果として得られるブロブであるブロブ0及びブロブ1を示す。ブロブ0は外側のバウンディングボックスを有し、ブロブ1は内側のバウンディングボックスを有する。ブロブの統計値は、ラン及びブロブが形成されるのと同時に累積される。従って処理段階が終了するまでに、各ブロブは、ブロブ0及びブロブ1に対して図36に示されるような全ての統計値を有する。ビットマスク3650及び3660は例である。図示されるビットマップ3650及び3660は、この時点では実際に形成されてない。量子化された色は、ブロブの中間色として使用される。あるいは、ブロブの中間色は、量子化された色ではなくブロブの実際の画素値を累積することにより判定されてもよい。これにより、より正確な中間色が与えられる。ブロブ統計値は、サイズ、中間色、境界線の長さ、バウンディングボックス及びビットマスクを含んでもよい。
図9は、図10のステップ1020を更に詳細に示す。図9は、量子化されたタイルからブロブを形成するためにループ構造を採用し、上から下へ1度にタイルの1つの行を処理する。ステップ910において、現在のタイルの行が処理するために取得される。ステップ920において、同一量子化ラベルの画素の連続したセグメントが形成される。これは、その開始位置及び終了位置を記録することにより行なわれる。このセグメントは、現在のセグメントSである。開始位置は、先のセグメントの終了位置の右側にある画素である。新しいタイルの行の場合、開始位置は、その行の第1の画素である。終了位置は、左から右へ現在のタイルの行にわたる量子化ラベルの画素毎の検査中に量子化ラベルの変化が起こる前の最後の画素である。変化が検出される前に現在のタイルの行が終了する場合、終了位置はその行の最後の画素である。後で行なうブロブの色の再推定の目的で、元のフルカラータイルのセグメントの各画素に対するYUV値は、開始位置から終了位置まで検査する間に累積される。あるいは、セグメントの量子化された色は、色の再推定を行なわずに使用されてもよい。
ステップ930においては、新しいブロブが形成されるか、あるいは既存のブロブがセグメントを使用して成長する。図12は、このステップの更なる詳細を提供する。判定ステップ940において、処理されていない画素が行に残っているかを判定するためのチェックが行なわれる。判定ステップ940が真(Yes)を返す場合、ステップ920に戻る。これは、現在のタイルの行の全ての画素が処理されるまで行なわれる。ステップ940が偽(No)を返す場合、ステップ950に進む。判定ステップ950において、処理されていない行が残っているかを判定するためのチェックが行なわれる。ステップ950が真(Yes)を返す場合、ステップ910に進む。これは、処理されていないタイルの行が存在しなくなるまで行なわれる。ステップ950が偽(No)を返す場合、処理は終了する。すなわち、量子化タイルの全ての画素は、ブロブに割り当てられた。
2.2.2.1.ブロブの形成
図12は、ステップ930を更に詳細に示す。図12の処理は、図9のステップ920において識別されたように、現在のセグメントSを入力とする。ステップ1205において、変数kは1に初期化される。この値は、現在のセグメントSに連結される現在のタイルの行の上側のタイルの行のk番目のセグメントSを示す。連結は、8方向連結であるのが好ましい。ステップ1210において、SとSとの間で比較が実行される。判定ステップ1215において、S及びSが同一クラスのセグメントであるかを判定するためのチェックが行なわれる。2つのセグメントS及びSが同一の量子化ラベルを有する場合、ステップ1215からステップ1220に移る。同一の量子化ラベルを有さない場合、判定ステップ1235に進む。判定ステップ1220において、Sが同一クラスの第1の連結セグメントであるかを判定するためのチェックが行なわれる。SがSである同一の量子化ラベルを有する第1の連結セグメントである場合、ステップ1225に進む。Sが第1の連結セグメントでない場合、ステップ1230に進む。ステップ1225において、現在のブロブが成長する。現在のセグメントは、k番目のセグメントが属するブロブ上で成長する。ブロブを成長させることは、ブロブのサイズ、境界線情報、バウンディングボックス及び累積されたYUV値を更新することを含む。その後、ステップ1235に進む。これに対して、判定ステップ1220が偽を返す場合、これは、現在のセグメントがblob[i]等のブロブラベルを既に割り当てられており、blob[j]等の別のブロブと接触することを示し、ステップ1230に進む。ブロブが異なるブロブラベルを有する場合、すなわちi(jである場合、それら2つのブロブはステップ1230でマージされる。ステップ1230のブロブマージ処理を図15に示す。その後、ステップ1235に進む。
ステップ1215、1225及び1230から判定ブロック1235に進む。判定ブロック1235において、最後の連結セグメントが処理されたかを判定するためのチェックが行なわれる。k番目のセグメントが現在のセグメントと連結する最後のセグメントでない場合、ステップ1240に進み、kは1増分される。その後、ステップ1210に戻り、次の連結セグメントを処理する。判定ステップ1235が真を返す場合、判定ブロック1245に移る。判定ブロック1245において、連結セグメントのいずれも同一クラスのセグメント(すなわち、現在のセグメントである同一の量子化ラベルのセグメント)でないかを判定するためのチェックが行なわれる。ステップ1245が真(Yes)を返す場合、ステップ1250に進む。ステップ1250において、新しいブロブは、現在のセグメントを使用して形成される。新しいブロブを形成することは、新しいブロブラベルを現在のセグメントに割り当てること、ブロブ数を1増分すること及び現在のセグメント情報を使用してブロブ統計値を初期化することを含む。ステップ1250に続いて、処理は終了する。同様に、判定ブロック1245が偽(No)を返す場合、処理は終了する。
2.2.2.2.ブロブマージの例
図15は、ブロブマージ1500の一例を示す。セグメント1510及び1520はblob[i]に属し、blob[i]はblob[j]に属するセグメント1530に連結される。セグメント1520の現在の開始位置及び現在の終了位置は、セグメント1530に対する上側開始位置及び上側終了位置と同様に示される。また、セグメント1520及び1530のオーバーラップを図15に示す。ブロブマージ処理1500は、2つのブロブの統計値を組み合わせること、1つのブロブラベルを別のブロブラベルにマッピングすること及びブロブ数を1減少することを含む。図15の例の場合、ラベルjはラベルiにマップされる。以下の擬似コード命令は、ブロブ統計値を組み合わせるために使用される。
blob[i].boundingBox = combine(blob[i].boundingBox, blob[j].boundingBox)
blob[i].size += blob[j].size
blob[i].tileBorderPixelCount += blob[j].tileBorderPixelCount
blob[i].horizontalEdges += blob[j].horizontalEdges - 2 * overlap
blob[i].verticalEdges += blob[j].verticalEdges
blob[i].YUV += blob[j].YUV
2.2.3.タイル内のマージ
タイルに対するブロブが連結成分解析により形成されると、次の段階では、色、サイズ及びブロブ境界線の長さの統計値を使用してセマンティカリー(semantically)に関連したブロブをマージする。この段階から先では、ブロブはマージのみされ、分割されない。従って、タイルは、過度のセグメント化レベルからセグメント化の現在のレベルに非常に近いレベルに移動する。図37及び図38は、タイル内のマージの一例を示す。ここで、ブロブ統計値は、ブロブの所定の対をマージするか否かを評価するのに使用される。この例において、4つの量子化色が存在し、連結成分解析は10個のブロブを返す。図37は、マージ前のブロブ3710を左側に示す。それらブロブの数は、残りの中間調パターン及び2つの別個の色領域間の色の「にじみ」の影響による。タイル内のマージの適用後、比較的長い境界線の長さを有する小さなブロブは、同様の色の特徴を有するより大きなブロブにマージされる。マージ後のブロブ3720は、例3700に示される。図38は、元のタイル3810とマージされたブロブ3820との比較3800を含む。
量子化及びブロブ形成処理は、多くの望ましくない又はエラーの小さなブロブを作成することが多い。それらは、入力画像の残りの中間調であるノイズスペックルに起因する小さなブロブの形式であるか、あるいはより大きな連結成分のエッジにおけるにじみの影響に起因する高いアスペクト比の細いブロブの形式である。エラーのブロブは、それらエラーのブロブをエラーのブロブが接触し且つ色が最も近いブロブとマージすることにより除去されてもよい。
セグメント化及び連結成分処理により生成されるタイル中のブロブ数を制限することにより、速度及びメモリ使用量が向上する。タイル中のブロブが多すぎる場合、それらブロブが接触していない場合でも同様の色のブロブをいくつかマージすることによりその数を減少してもよい。これにより、別個の非連結部分を有するが単一の要素として扱われるブロブを生成する。これは多くの小さなノイズ要素を含むタイルにおいてのみ行なわれるため、品質は影響を受けない。それら小さなノイズ要素は、後のステップで廃棄される。
図19は、図10のステップ1030を詳細に示す。ステップ1905において、現在のタイルの1つのブロブが取得される。ステップ1910において、ブロブの周囲の長さ対サイズ比がチェックされ、その比が大きいかを判定する。このパラメータが閾値レベルより大きいことが分かった場合、ステップ1915に進む。ステップ1910が偽を返す場合、ステップ1930に進む。ステップ1915において、タイルエッジに接触するブロブの画素の比がチェックされる。その比が閾値を超える場合、ステップ1920に進む。ステップ1920において、ブロブは「タイル間の強制マージ」としてマーク付けされる。ブロブに対する強制マージフラグが設定され、それにより、ブロブは図14のステップ1420において隣接するタイルの連結成分とマージされる可能性が非常に高くなる。ステップ1920の後、ステップ1930に進む。ステップ1915において、ブロブのタイルエッジ比が閾値を下回る場合、ステップ1925に進む。ステップ1925において、ブロブは、最も近い色を有する隣接するブロブとマージされる。現在のブロブと接触する全てのブロブ及び現在のブロブからの色の距離が見つけられる。現在のブロブは、色が最も近い隣接するブロブとマージされる。その後、ステップ1930に進む。判定ステップ1930において、処理されるタイルのブロブが更に存在するかを判定するためのチェックが行なわれる。ステップ1930が真(Yes)を返す場合、ステップ1905に戻る。偽(No)を返す場合、ステップ1935に進む。
判定ステップ1935において、タイルの現在のブロブ数がチェックされ、ブロブが多すぎるかを判定する。ブロブ数が予め定められた制限より多いことが分かった場合、ステップ1940に進む。多くない場合、処理は終了する。ステップ1940において、タイルエッジに接触していない同一の量子化色クラスのブロブがマージされる。これは、各量子化色クラスに対して行なわれる。タイルエッジに接触するブロブは相当に大きいCCの一部を形成する可能性があり、それらブロブをマージすることは品質に悪影響を与える可能性があるため、それらブロブはマージされない。ステップ1945において、タイルの現在のブロブ数が再びチェックされ、タイルのブロブが多すぎるかを判定する。その数が予め定められた制限を下回ることが分かった(No)場合、処理は終了する。制限を下回らない場合、ステップ1950に進む。ステップ1950において、タイルエッジに接触する各色のブロブがマージされる。ステップ1950は、ステップ1940と同様の処理を実行するが、タイルエッジに接触しないブロブを考慮して、制限を下回るようにブロブ数を減少する。その後、処理は終了する。
2.2.4.タイル間のマージ
図13は、ステップ1040のタイル間のマージ処理を詳細に示す。この処理は、現在のタイルの左側境界線及び上側境界線の各々に対して順不同に繰り返される。以下の説明は、現在のタイルの左側境界線又は上側境界線に沿うマージに適用可能である。例えば、32×32のタイルは隣接タイルの状態を含む32画素の境界線を有し、各画素はブロブラベルを有する。隣接タイルの状態は32画素の境界線を有し、各画素はCCラベルを有する。従って、境界線に沿う各画素ステップに対して、ブロブラベルが現在のタイルに存在し且つ対応するCCラベルが隣接タイルの状態に存在する。ステップ1310において、次のタイル境界線画素に対する現在のタイルのブロブラベル及び隣接タイルの状態のCCラベルを取得することにより、共通の境界線に沿って処理が開始される。
処理が境界線に沿って進行するため、判定ブロック1320においてテストが実行され、CCラベルの変化、ブロブラベル又は最後の画素を検出する。現在の画素が最後の境界線画素である場合、判定ブロック1320はYesを返す。ステップ1320が偽(No)を返す場合、ステップ1380に進む。ステップ1320が真(Yes)を返す場合、ステップ1330に進む。ステップ1330は、マージの候補として利用可能であるブロブの数及びCCの数をチェックする。判定ステップ1340において、候補カウントの条件が満足されるかを判定するためのチェックが行なわれる。ブロブ及びCCのマージ候補カウントが以下に説明され且つ図17に示される予め定められた条件1700を満足する場合、判定ブロック1340はYesを返す。
図13の判定ステップ1340が偽(NO)を返す場合、ステップ1370に進む。真(YES)を返す場合、ステップ1350に進む。ステップ1350は、色距離計測値に基づいてマージするために、マージ候補の中から最適なブロブ/CCの対を識別する。(Ycc,Ucc,Vcc)及び(Yblob,Ublob,Vblob)がCC/ブロブ候補の対に対するYUV色値であると仮定すると、色2乗距離sdは以下の式により与えられる。
Figure 0005008572
式中、Wy、Wu及びWvは、Yチャネル、Uチャネル及びVチャネルに対する重みである。重みW、Wu及びWvは、それぞれ0.6、0.2及び0.2に設定されてもよい。最適なブロブ/CCの対は、最小2乗距離値を有する対である。
この最適なブロブ/CCの対は、種々のマージ動作を実行するステップ1360により処理される。ステップ1360は、図14を参照して更に詳細に説明される。ステップ1360の後又は判定ブロック1340のNoの後は、ステップ1370に進む。ステップ1370において、ブロブ候補カウント及びCC候補カウントが更新される。図48は、全ての動作条件に対する更新前後のCC候補カウント及びブロブ候補カウントを示す。CCラベル及びブロブラベルが変化したことが分かると、CC候補カウント及びブロブ候補カウントは、マージ前に全ての可能なカウントの組合せに対して1に設定される(更新前の「x」は「任意」を示す)。1つのラベルのみが変化したことが分かり且つタイルの境界線の両側に2つの候補が存在する場合、カウントは、2つの候補のうちマージされる候補に依存して0又は1に設定されてもよい。第2のブロブがマージに対して選択される場合(図49の4920を参照)、双方の候補カウントは、マージが行なわれた後に0に設定される。しかし、マージに対して第1のブロブが選択されるか又はブロブが選択されない場合、双方のカウントは1に設定される。候補カウントの更新が必要とされるその他の場合、変化したラベルに対するカウントは1増分され、変化していないラベルに対するカウントは1に設定される。
ステップ1320又は1370の後、判定ブロック1380に進む。判定ブロック1380において、現在の画素が最後の境界線画素であるかを判定するためのチェックが行なわれる。ステップ1380が偽(No)を返す場合、ステップ1310における次の画素位置に移る。真(Yes)を返す場合、処理は終了する。
2.2.4.1.タイル間マージ条件
図17によると、通常、各側にある1つの候補がマージするのに十分である時にCCラベル及びブロブラベルが同時に変化する場合を除いて、一方側に2つの候補が存在し且つ他方側に1つの候補が存在する場合にマージは行なわれる。これは、一方側にある2つの隣接する候補が他方側にある同一候補にマージすることを回避するためである。図17は条件を示し、タイル間マージ動作はその条件下で実行されてもよい。現在のCCカウント及びブロブカウントが(1,1)である場合、双方のラベルは行なわれるマージに対して同時に変化する必要がある。しかし、現在のCCカウント及びブロブカウントが(1,2)又は(2,1)である場合、行なわれるマージに対してはいずれかのラベルにおける変化で十分である。(2,2)となることはない。
2.2.4.2.タイル間マージの例
図49は、ブロブ候補とCC候補との間のマージの図を提供する。以下の3つの典型的な例が存在する。i)4910において、各側は1つの候補のみを有する。ii)4920は1つのCC及び2つのブロブを有する。iii)4930は2つのCC及び1つのブロブを有する。例4920において、CC候補は2つのブロブ候補に連結される。双方のブロブはCCの色に近いが、一方のみがCCとマージされてもよいと仮定する。マージが1度に各側の1つの候補に対して上から下へ順に実行される場合、上側のブロブがCCとマージし、下側のブロブはマージされない。これは、下側のブロブがマージにより適した候補である可能性があるため、最も望ましい結果をもたらすわけではないことがある。従って、4920及び4930の例と同様の例の場合、一方側で2つの候補が必要とされる。例4910は、4連結に対して別のマージの組合せが存在しないため、各側に1つの候補を必要とするのみである。
2つ以上のタイルにわたる色連結成分は、タイルラスタ順にブロブをタイル間マージすることにより形成される。図39の例3900に示すように、これはラスタ順に実行される。ここで、タイル3910内のブロブは、それぞれタイル3910の左側及び上側に位置する2つの隣接タイル3930及び3920のいずれかのブロブとマージされる。
各CCは、バウンディングボックス、中間色、画素のサイズ及び接触するCCに関する情報を保持するデータ構造に格納される。タイル間のマージ処理中、現在のタイルの全てのブロブはCCラベルを割り当てられ、対応するCCデータ構造はブロブ統計値を使用して更新される。図16に示されるように、マージは、現在のタイル1630と現在のタイル1630の左側境界線及び上側境界線に沿う2つの隣接タイル1610、1620の状態1612、1622との間で実行される。現在のタイル1630は、ブロブを形成するために処理され且つ共通の境界線に沿う画素に対してブロブラベル1634を有する画素データのブロックである。これに対して、先のタイル状態1612、1622は画素データを含まず、ブロブにリンクされる連結成分情報及びブロブ統計値のみを含む。タイル状態1612、1622は、タイル1610、1620の境界線に沿うブロブに関する情報とそれらブロブが属するCC1614、1624に対するポインタとを含むコンパクトなデータ構造である。特に、左側タイル状態1612及び上側タイル状態1622の2つの異なるタイル状態が存在し、各タイル状態は、タイルの右側及び下側のタイルとマージするために、現在のタイル1630との共通の境界線に沿った各画素に対してCCラベル情報1614、1624を有する。この時点で、先のタイルのブロブは連結成分の一部である。
2.2.4.3.最適なブロブ/CCの対の処理
図14は、図13のステップ1360を更に詳細に示し、ステップ1350で識別された最適なブロブ/CCの対を入力とする。処理はステップ1410で開始される。判定ステップ1410において、ブロブが別のCCと既にマージされているかを判定するためのチェックが行なわれる。判定ブロック1410において、識別されたブロブがCCラベルを既に割り当てられている場合、判定ブロック1440に進む。割り当てられていない場合、判定ブロック1420に移る。判定ブロック1420において、識別されたブロブ/CCの対の間のステップ1330で計算された色距離は、色マージ閾値と比較される。閾値の値は450でもよい。強制マージフラグが設定されている場合、閾値は900でもよい。色距離が閾値より小さい場合、ステップ1430に進む。閾値以上である場合、ステップ1460に進む。ステップ1430において、ブロブ及び識別されたCCはマージされる。これは、ブロブの統計値を使用してCCの統計値を更新し且つCCのラベルをブロブに割り当てることにより行なわれる。その後、処理は終了する。ステップ1460において、新しいCCが現在のブロブに対して形成される。その後、処理は終了する。
判定ブロック1440において、識別されたCCと識別されたブロブが属するCCとの間の色距離は、マージのために色閾値と比較される。2つのCC間の色距離が閾値を下回る場合、ステップ1450に進む。ステップ1450において、CCはマップされる。これは、CCの統計値を組み合わせ且つそれらCCをリンクする「マップ」ポインタを設定することにより行なわれる。その後、処理は終了する。同様に、ステップ1440が偽(No)を返す場合、処理は終了する。
2.2.4.4.CCマッピングの結果
図18は、図14のステップ1450によるCCマッピング処理の結果を示す図である。図18は、CCのリンクされたリスト1850がCC1805、1810、1820、1830をマージした結果として形成できることを示す。この図において、CC(k)1830は、NULL1840を指し示すマップポインタ1832を有し、別のCCにマージされなかったことを示すため、ルートCCと呼ばれる。更に、ルートCCの統計値1834は、いくつかのマージを介して個別のCCの統計値を累積することにより判定される。例えば、CC1830の最終的な統計値は、CC(h)1805、CC(i)1810、CC(j)1820及びCC(k)1830がマージされる前のそれらCCの組合せ統計値である。統計値が組み合わされる順番は重要ではない。図18において、CC(i)1810はCC(j)1820を指し示し、CC(h)1805及びCC(j)1820はCC(k)1830を指し示す。
2.2.5.マージの後処理
図50は、図10のマージの後処理ステップ1050を示すフローチャートである。ステップ5010において、図14のステップ1460と同様の処理で、新しいCCが現在のタイルのマージされていない各ブロブに対して形成される。ステップ5020において、ブロブの形状及び見えを格納する2値画像は、ブロブラベルを使用して出力される。n個のブロブを含むタイルの場合、n−1個の領域が取り出された後にn番目の2値画像が残りの領域として黙示的に格納されるため、n−1個の2値画像が出力される必要がある。従って、単一のブロブを含む均一のタイルは、2値画像の格納を必要としない。別の実施形態において、2値画像は指標マップとして単一のコンパクトなデータ構造に格納されてもよい。ここで、各画素位置は、ブロブ指標を有し且つlog2(n)ビットを使用して表される。例えば、タイル毎の最大ブロブ数が16である場合、各画素位置におけるブロブ指標は、4ビットの数字を使用して符号化される。更に別の実施形態において、2レベルのタイルに対する2値画像は、1ビットのビットマップを使用して格納されてもよい。ステップ5030において、現在のタイル内の各CCの接触リストが更新される。これは、そのタイルの隣接する全てのCCを識別することにより行なわれる。ステップ5040において、タイル状態が出力される。カラーセグメント化処理は、次の入力タイルとマージするためにブロブ及びCCの情報をコンパクトなタイル状態データ構造に格納する。上述のように、2つのタイル状態が存在する。ここで、左側タイル状態はタイルの右側のタイル境界線に沿ってCCラベル情報を有し、上側タイル状態はタイルの下側のタイル境界線に沿ってCCラベル情報を有する。
2.3.セグメント化の例
図25(a)は、3つ以上の量子化レベルに基づくセグメント化の利点を示す単純な例を示す。背景2510は黒色であり、その上に白色の三角形2520及び灰色の単語「text」の文字2530が配置される。通常、この画像の2値セグメント化の結果としては、図25(b)及び図25(c)に示すように、背景2510又は三角形2520とtext2530がマージされる。それらセグメント化のいずれも、テキスト領域を選択するために文書レイアウト解析に使用できない。すなわち、テキストの特徴が失われる。
同時に、連結成分のレイアウト解析の単純化を可能にする2値セグメント化のある特定の特徴が存在する。4方向連結により形成されるCC及び連結された外側の境界線を含むページの例を考慮する。この場合、ページのエッジ上を除いて、境界で別のCCに接触する各CCはその別のCCに含まれるか又はその別のCCを含み、1つのCCは単一の他のCCによってのみ含まれる。明確な包含階層は、生成され且つ木構造の形式で表される。木の連続する各層は、先の層に対して逆極性のCCを含み、各枝は、固有の親を共有するCCのセットから構成される。そのような階層は、グループ化される候補であるCCのサブセット(固有の親を共有するサブセット)を選択するのに使用されるため、CCをグループ化する際に有用である。これは、1度に考慮される必要があるCCがより少ないため処理速度に関して有益であり、また正確度に関しても有益である。ページの異なる領域からのCCは、木の異なる枝に存在してもよく、グループ化されない。更に、CCの処理は、木の最上部から開始でき、処理時間を更に向上するためにある特定の分類(例えば、テキスト)のCCより下にある木の枝に対しては終了される。
セグメント化が2値でない場合、通常、明確な階層は有用に生成されない。図25(a)の文字「e」を考慮する。この文字の外側境界線は、黒色の背景及び白色の三角形の双方に接触するため、背景又は三角形がこのCCの親と考えられる。三角形の場合は、外側境界線が背景及び全ての文字に接触するため更に複雑である。この不明確さにも関わらず、オブジェクトをグループ化する際に階層を使用する利点は達成される。これは、各子に対して固有の親を必要とせずに、境界線で接触する2つのCC間の親子関係の特性を規定することにより行なわれる。例えば、2つのCCが境界線で接触し且つそれらCCの一方(親)のバウンディングボックスが第2のCC(子)のバウンディングボックスを完全に囲む場合、親子関係はそれらCC間で定義される。図25(a)に示す例に対してこの定義を使用すると、三角形及び単語「text」の全ての文字は背景CCの子と定義される。
3.レイアウト解析
レイアウト解析は、ページの前景内容が識別されるシステムの一部である。中間(レイアウト解析)モジュールは、連結成分のリスト及び「接触リスト」をフロントエンドモジュールからの入力とする。レイアウト解析の出力は、本質的に、スキャン済み画像の前景内容(例えば、テキスト、行、黒丸点)を表す連結成分に対する決定である。レイアウト解析は、2値画像ではなくカラーセグメント化に基づく。これは、見つけることが可能な前景オブジェクトの種類に関して多くの利点を有するが、2値画像に対しては存在した明確な包含階層が存在しない。効率に対しては、レイアウト解析は、グループ化の基となる連結成分に対するバウンディングボックス及び他のいくつかの一般的な統計値のみを使用する。レイアウト解析は、元の画素データ又はビットレベルのセグメント化に対するアクセス権を有さない。
レイアウト解析の主なステップは、接触リストに基づいて包含階層を形成するステップ、バウンディングボックス及び色に基づいてCCをグループ化するステップ、及びCCがテキストの行のように適切に位置合わせされるかを判定するためにそれらグループをテストするステップである。接触リストは、2レベルの包含階層に相当する多色階層であるCCに対する階層を提供するのに使用される。所定のCCは、接触リスト要素のサブセットの親と考えられる。特に、所定のCCは、その所定のCCが接触し且つバウンディングボックスが親CCのバウンディングボックス内に完全に含まれるCCの親であってもよい。
図4は、図1のステップ120を詳細に示し、ステップ110により生成されたコンパクトなCC情報、統計値及び「接触リスト」情報を入力とする。接触リストは、互いに隣り合うCC、すなわち境界線を共有するCCを説明する。図4の処理は、入力画像に対するアクセス権を有さない。この情報の一部は、入力画像からの全てのCCのリストである。
ステップ410において、CCは統計値に基づいて分類されるため、色包含階層はCCのリストから形成される。色包含階層は、各ノードがCCである構造である。親ノードは、親ノードが接触するCCを子として有し、それらCCのバウンディングボックスは親CCのバウンディングボックス内に完全に含まれる。子ノードは、2つ以上の親ノードを有してもよい。解析は、バウンディングボックスのサイズ及び形状のみに基づいてもよい。1/100インチ未満(例えば、300dpiの解像度で3画素)の幅及び高さを有するCCは、ノイズと考えられて除去される。1インチを上回る幅又は高さ、あるいは8/15インチを上回る幅及び高さを有する連結成分は、画像として分類される。その他は、テキストである可能性があるとして分類される。別の実施形態は、表、連結成分の画素数等の他の文書レイアウトの特徴と関連する分類を含んでもよく、他の値を使用してもよい。
ステップ420において、テキストである可能性があるCCはグループ化され、テキストの領域を表す。通常、CCは近傍のCCとグループ化され、効率的なグループ化アルゴリズムは、グループ化の判定前に隣接するCCを見つけることにより近傍のCCとグループ化することを利用する。フロントエンドで使用される高解像度カラーセグメント化方法は、典型的なスキャン文書上でのグループ化に対して考慮される何千もの兄弟(sibling)を見つけることができる。それらの場合、2つずつの単純な比較、すなわちO(N2)の方法を使用して隣接するCCを見つけることは遅くなり、隣接するCCを判定するより高度な方法が使用される必要がある。三角形分割は、色包含階層のノードに対して実行されてもよい。ページ上のCCのバウンディングボックスの中心が平面のノードを規定する場合、ドローネ三角形分割等の効率的な三角形分割方法はその目的で使用される。それら方法は、通常O(NlogN)の処理である。
図53は、平面のノードのセットのドローネ三角形分割(破線により示される)及びボロノイ図(実線により示される)の例5300を示す。ボロノイ図は、他のポイントより所定のポイントに近い領域へのページのセグメント化である。ドローネ三角形分割は、ボロノイ図の境界線を共有するポイントを連結することにより生成されるボロノイ図の2元的なものである。平面のランダムに位置するポイントのうち平面の典型的なポイントは、その三角形分割において約5つのポイントをそのポイントに連結させる。それらポイントは、グループ化の段階において隣接するCCに対して適切な候補であると考えられる。
三角形分割の出力は、CCのグループを形成する方法に適する。ドローネ三角形分割において隣接するそれらCCは、バウンディングボックスの2つずつの比較に基づいてグループ化される。初期グループ化の後、隣接するCCの対にわたるパスが続き、それらグループを結合するか又はグループ化されていないCCを既存のグループに配置する。処理は、データを通して単一パスで異なる種類のグループ化(テキスト、表等)を検索できる。テキストCCのグループは、一般に以下の特徴により特徴付けられる。すなわち、同様の色、同様のバウンディングボックスのサイズ、水平軸又は垂直軸に沿った粗位置合わせ(テキストの位置合わせに依存する)及びCCのサイズに対して位置合わせの軸に沿って近接することである。
ステップ430において、CCのグループがチェック又は検証され、テキスト文字であるCCのグループを判定する。グループ化の段階中に生成されたマージ及びグループの内容に関連する情報は、プロセッサにより格納される。個別の各グループに関連する情報は、色、バウンディングボックス及びグループの内容を含むデータ構造に格納されてもよい。グループの内容が変更されると、それら構造はグループ化の段階中に更新される。別の実施形態において、グループマーカはCCデータ構造に含まれ、グループの色及びバウンディングボックス等のデータはCCデータから再構成される。ステップ430において、テキスト文字CCは、CCがテキストであることを保証する追加のチェックである位置合わせテストが行なわれる。
形成されたグループは、一般に全てのテキストを含むが、テキストとして分類するのは望ましくない画像の部分を含む可能性がある。この問題を低減するために、グループは検査され、グループの連結成分がテキストのように整然とした行(又は列)に配置されるか、あるいはノイズ又は同様の色を有する画像の領域にその傾向があるようにランダムに配列されるかを確認する。
これは、主に、各側のエッジであるバウンディングボックスのエッジ(すなわち、左側エッジ、上側エッジ、右側エッジ又は下側エッジ)の4つのヒストグラムを形成することにより行なわれてもよい。それらのうちの1つは、テキストの基準線が存在する完全なビンを有し、他の場所では空である必要がある。これをチェックするために、ヒストグラムビンの2乗和が見つけられ、推測値と比較されてもよい。4つのヒストグラムビンのうちいずれかがランダムに配置されたバウンディングボックスに対して推測されるヒストグラムビンより相当に大きいことが分かった場合、グループはテキストであると考えられる。バウンディングボックスの全ての4つのエッジは、横向き又は上下反対にスキャンされたページ、あるいは行ではなく列に配置されたテキストを考慮するために使用される。
3.1.CCのグループ化
図20は、ステップ110によりセグメント化されたCCのセットをグループ化する図4のステップ420を詳細に示す。処理は、ルートCCを取得することによりステップ2010で開始される。ルートCCは、カラーセグメント化段階中に別のCCにマージされなかったCCである。ステップ2020において、ルートCCの子CCが見つけられる。このルートCCに対する子CCのリストが形成される。子は、バウンディングボックスが現在のルートCCのバウンディングボックス内に完全に含まれ且つ境界線でルートCCのバウンディングボックスに接触するCCと定義されてもよい。ステップ2020については、図22と関連して更に詳細に説明する。
ステップ2020からステップ2030に移る。ステップ2030において、現在のCCの子に対する隣接解析が実行される。各子に対して、隣接するCCのセットが見つけられ、それらはある定義された意味で近接する。これは、例えば各子CCのバウンディングボックスの中心のドローネ三角形分割を見つけることにより達成されてもよい。三角形分割のエッジは、隣接するCC間の連結を表す。別の方法は、近接を定義するために、CCのリストに対する色情報及びバウンディングボックスデータの異なる要素を使用してもよい。ステップ2040において、隣接データは、初期グループ化を実行するために使用される。この処理ステップ2040は、文書レイアウトの特徴を判定するために、同一の子リスト内に同様のプロパティ(例えば、配置及び色)のオブジェクトのグループを形成する。図23は、ステップ2040を更に詳細に説明する。
判定ステップ2050において、処理されるルートCCが更に残っているかを判定するためのチェックが行なわれる。ルートCCが更に存在する場合、ステップ2010に戻り、次のルートCCが取得され且つ処理される。存在しない場合、グループ化段階(420)は終了する。
3.1.1.親CCに対する子の検索
図22は、所定の親CCに対して子CCを見つけ且つ子のリストを形成するステップ2020を示す。ステップ2210において、接触CCが親CCの接触CCのリストから取得される。ステップ2220において、ルートCCが見つけられる。これは、接触CCと関連付けられたカラーセグメント化段階からのマージ情報を使用して行なわれる。判定ステップ2230において、図4のステップ410によるCCの分類は、CCがクラステストを満足するか(すなわち、このCCを子リストに格納するのが適切か)を判定するためにチェックされる。ノイズサイズのCC以外の全てのCCが格納されてもよいが、別の実施形態は、クラスの他の組合せ、例えばテキストである可能性があるCCのみを格納してもよい。接触CCのクラスが適切である場合、ステップ2240に進む。適切でない場合、ステップ2260に進む。判定ステップ2240において、CCは、親CCに対する包含のチェックが行なわれる。包含テストは、CCのバウンディングボックスが親CCのバウンディングボックスの範囲に完全に含まれることをチェックすることを含むが、別の方法も可能である。包含テストが満足される場合、ステップ2250に進む。ステップ2250において、CCは子のリストに含まれ、ステップ2260に進む。全てのCCは子のリストに1度だけ現れるべきであるため、ステップ2250は、CCがリストに含まれていないことをチェックすることを含む。このチェックは、ハッシュテーブルを使用して実行されてもよい。その後、判定ステップ2260に進む。ステップ2260は、親の接触リストに更なる要素が存在するかをテストする。存在する場合、ステップ2210に進む。存在しない場合、現在のCCに対する子のリストは完了し、処理は終了する。
3.1.2.初期グループ化
図23は、図20のステップ2030からの隣接データを使用して実行される初期グループ化の図20のステップ2040を示す。この方法は、純粋にテキストをグループ化するように設計されてもよいが、別の実施形態においては、表等の他の文書オブジェクトを分類又はグループ化してもよい。初期グループ化は2パス処理であってもよく、第1のパスはCCをグループに結合し、第2のパスはグループを更に大きなグループに結合する。ステップ2305において、カウンタPASSは1に設定される。ステップ2310において、子が取得される。ステップ2320において、子の隣接CCが取得される。ステップ2330において、子及び隣接CCがグループ化テストを満足するかを判定するためのチェックが行なわれる。それらオブジェクトは、一連のテストを使用してグループ化のためにテストされる。テストは、初期分類、配置及び色に基づいてもよく、第1のパスと第2のパスとの間で異なる。以下に説明する図26は、文書の領域の抽出を説明する。図26を使用して、ステップ2320のグループ化テストを説明する。
図23を参照すると、グループ化テストが満足される場合、ステップ2340において、子及び隣接するCCはグループ化される。その後、ステップ2350に進む。ステップ2330が偽を返す場合、ステップ2350に進む。2つのCCがグループ化される場合、各CCは同一グループに属することがマーク付けされる。CCにマーク付けされるグループは、2つのCCの先のグループ化に依存する。いずれのCCもグループ化されていない場合、新しいグループが双方のCCを含んで形成される。2つのうち一方のみがグループ化されている場合、他方のCCはそのグループに含まれる。双方がグループ化されており且つそれらグループが同一である場合、処理は行なわない。最後に、双方がグループ化されており且つそれらグループが異なる場合、2つのグループは単一グループにマージされ、他方のグループは空であるとマーク付けされる。
ステップ2350において、現在のCCの隣接CCが更に存在するかを判定するためのチェックが行なわれる。更なる隣接CCが存在する場合、ステップ2320に進む。存在しない場合、ステップ2360に進む。ステップ2360において、処理は、親CCの子が更に存在するかをチェックする。更なる子が存在する場合、ステップ2310に進む。存在しない場合、ステップ2370に進む。ステップ2370において、双方のパスが完了したか(PASS>1?)を判定するためのテストが行なわれる。完了した場合、処理は終了する。第1のパスのみが完了した場合、ステップ2380に進み、カウンタPASSは増分される。ステップ2390に進む。ステップ2390において、子のリストの開始を返す。その後、ステップ2310に戻り、第2のパスが開始する。
別の一実施形態において、処理2040は、子CC及び隣接CCの対ではなく三角形分割データのエッジに対してループする。これは、隣接CCの各対が1度のみ考慮されるため、僅かに効率的である。
3.1.2.1.2つのCCに対するグループ化テスト
2つの隣接するCCに対する好ましいグループ化テストを説明するために、図26は、文字「g」及び「h」の2つのオブジェクトのみを含む文書の領域からの単純な抽出を示す。破線は、各文字に対するバウンディングボックスの座標を表す。座標は、i番目のCCの左右のx座標及び上下のy座標に対してxl i、xr i、yt i及びyb iに位置付けられる。添え字1及び2は、1番目のCC及び2番目のCC(すなわち、文字「g」及び「h」)をそれぞれ示す。本実施形態の処理は、YUV空間の各CCの色[y,u,v]、並びにバウンディングボックス(bounding boxes)の幅w及び高さhを更に使用する。
2つのCCに対する水平オーバーラップ距離は、双方のCCの範囲に含まれる水平セクションの長さと定義されるか、あるいはCCがオーバーラップしない場合はゼロと定義される。垂直オーバーラップ距離dyovは同様に定義され、図26に示される。図26において、水平オーバーラップは、ゼロであるため示されない。オーバーラップ距離は以下のように表される。
Figure 0005008572
2つのCC間の水平内部距離は、一方のCCの左側エッジと他方のCCの右側エッジとの間の最小距離と定義されるか、あるいは水平オーバーラップ距離がゼロでない場合はゼロと定義される。垂直内部距離は、CCの上下のエッジを使用して同様に定義される。図26において、水平距離dxinは示されるが、この例の場合、垂直内部距離はゼロであるため示されない。それら内部距離は、以下のように表される。
Figure 0005008572
第1のパスにおいて、2つの隣接するCCは、色、サイズ及び位置合わせに基づいて3つの条件の要求を満足する場合、テキストとしてグループ化される。色の条件は、以下の場合に満足される。
Figure 0005008572
式中、閾値パラメータはT=500であってもよい。
サイズのテストは、以下の場合に満足される。
Figure 0005008572
式中、wminは2つのCCの最小幅であり、wmaxは最大幅であり、hminは最小高さであり、hmaxは最大高さである。閾値パラメータはT=0.55であってもよい。
位置合わせの条件は、以下の条件のいずれかが満たされる場合に満足される。
[(dxov > 0)且つ(dyin/max(wmin, hmin) < TS)]
又は
[(dyov > 0)且つ(dxin/max(wmin, hmin) < TS)] (5)
閾値パラメータはT=0.65であってもよい。
第2のパスは、個別のCCではなくグループに基づいてパラメータを使用する。各グループの要素の中間色[Y,U,V]、幅W及び高さHが使用されてもよい。グループ化されていないCCの場合、それら値は、個別のCCに対する色、幅及び高さパラメータに設定される。テストは、考慮されるCCの中心間の距離Dを更に使用する。Dは以下のように定義される。
Figure 0005008572
第1のパスの場合、一連の条件が満たされた場合にグループは結合される。それら条件は、色類似性T、サイズT及び分離Tに関連し、以下の式で記述される。
Figure 0005008572
式中、パラメータ値は、いずれかのグループが3つ以下の要素を含む場合にはTCg=500、T=0.55、TR2=0.3及びT=1であってもよく、それ以外の場合にはTCg=100、T=0.55、TR2=0.3及びT=2であってもよい。第2のグループ化段階において、位置合わせテストは使用されない。
閾値は、各CCの画素カウント等のグループ化のためにテストされるCCの特徴に依存してもよい。
3.2.グループのチェック
図21は、グループをチェックする図4のステップ430を詳細に示す。この処理は、各グループがテキストから構成されるか否かを判定する。この判定は、主にグループのオブジェクトが行又は列のどちらで位置合わされたかに基づいて行なわれる。グループは、テキストであると仮定され、テキストと同等のプロパティに対してテストされる。グループがそれらテストを通過しない場合、グループは拒否される。
ステップ2110において、ステップ420で形成された次のグループが取得される。ステップ2120において、グループのテキスト文字のサイズが推定される。推定サイズは、個別の文字の長さの統計値に基づく。それら長さは、オブジェクトのバウンディングボックスの最大幅及び最大高さと定義されてもよい。この尺度は、ページ上のテキストの歪み及び位置合わせの影響を殆ど受けず、所定のサイズの典型的なフォント内の文字のセットにわたり十分に均一である。別の実施形態において、バウンディングボックス領域、画素カウント及び/又はストローク幅は、長さの尺度として使用されてもよい。文字の長さのヒストグラムが形成されてもよく、推定サイズは、閾値より多い要素数を含むヒストグラムビンと関連付けられる最大長さに基づいてもよい。使用される閾値は、少なくとも3つのオブジェクトであり且つ少なくともグループのオブジェクト数の15%である。そのようなビンが存在しない場合、推定値は返されない。
判定ステップ2125において、文字サイズが見つけられたかを判定するためのチェックが行なわれる。適切な文字サイズが見つけられなかった場合、そのグループは拒否され、ステップ2160に進む。見つけられた場合、ステップ2130に進む。
ステップ2130は、グループのCCとグループのバウンディングボックスに含まれるがいずれのグループにもまだ割り当てられていない他の適切なCCとを処理する。この処理2130は、最初のグループ化の対象から外れたテキスト及び分類に基づく初期グループ化の対象から外れた句読点等の小さなオブジェクトを追加するのに有益である。グループのオブジェクトと親を共有し且つ十分に類似した色であるオブジェクトのみがグループに追加されてもよい。グループ及び含まれるCCに対する色類似性の条件は、以下の条件が満たされる場合に満足される。
Figure 0005008572
式中、[Y,U,V]はグループの色であり、[y,u,v]はCCの色である。パラメータ値は、TCg2=500であってもよい。
あるいは、ステップ2130において、配置テストが適用されてもよく、CCのバウンディングボックスがグループのバウンディングボックスに完全に含まれるという条件は、グループに近接するオブジェクトがそのグループに結合するように緩和されてもよい。ステップ2130の他の方法は、いくつかのオブジェクトをマージして文字を形成してもよい。これは、2つ以上の別個のオブジェクトとしてセグメント化される複雑な文字を含む中国語等の原稿に対するものであり、処理において後で行なわれる位置合わせテストの正確度を向上するのに有益である。バウンディングボックスがオーバーラップする場合、2つのオブジェクトがマージのみされてもよい。マージが1.6を上回るアスペクト比をもたらす場合、又はステップ2120で推定された文字サイズより大きいマージオブジェクトを作成する場合、マージは行なわれないように制限される。
ステップ2150において、グループ内のオブジェクトの位置合わせがチェックされる。このテストは、テキストグループを他のグループと区別し、以下に更に詳細に説明される。このステップの後、ステップ2160において、処理するグループが更に存在するかを判定するためのテストが実行される。グループが更に存在する場合、ステップ2110に戻る。存在しない場合、処理430は終了する。
3.2.1.位置合わせのチェック
図24は、図21のステップ2150を更に詳細に示す。このステップの間、グループのCCのサブセットは、文字と定義される。文字は、2120で推定された文字サイズの半分より大きく且つその文字サイズの2倍より小さいサイズを有するオブジェクトであってもよい。
ステップ2430〜2450は、グループ要素に関連するパラメータのシーケンスのヒストグラム解析に基づいてグループに対して受入れテストを実行する。それらパラメータは、文字の各バウンディングボックスの左側エッジ、上側エッジ、下側エッジ及び右側エッジである。ページ上のテキストの位置合わせが言語及びページ上のテキストの歪み等の多くの要素に依存するため、複数のパラメータを使用することにより、種々の位置合わせにおいてテキストを識別できる。あるいは、水平及び垂直バウンディングボックスパラメータの種々の組合せは、テキスト位置合わせの境界領域を識別するのに使用されてもよい。
ステップ2430において、ヒストグラムは、次のパラメータのグループ要素値に対して形成される。ヒストグラムのビンのサイズは、グループの文字サイズに応じて変倍されてもよい。グループの文字の平均高さの1/5の値(切上げ)は、バウンディングボックスの上側エッジ及び下側エッジに対して使用されてもよく、グループの文字の平均幅の1/5(切上げ)は、バウンディングボックスの左側エッジ及び右側エッジに対して使用されてもよい。ヒストグラムのビンの範囲は、全てのデータが範囲の両端で空でないビンに含まれるように設定される。ヒストグラムの範囲に含まれる最小値は、グループのパラメータの最小値に設定されてもよい。
判定ステップ2440は、ヒストグラムの値が適切に位置合わせされているかをテストし、ランダムに分布するのではなく個別のクラスタを形成する(好ましくは、テキストの異なる線の基準線を表す)。ステップ2440は、グループの文字数Nが閾値Tより大きいかをテストする。ここで、T=7の値であるのが好ましい。
小さなグループ(N<T)の場合、ステップ2440は、3つのパラメータAL1、AL2及びOVを検査する。AL1は、ヒストグラムの最大のビンのカウントである。AL2は、ヒストグラムの2番目に大きいビンのカウントである。OVは、グループのオーバーラップする文字の最大サブセットのサイズである。表2の擬似コードは、このグループに対して使用されるテストを記述する。グループは、擬似コードがYを返す場合に位置合わせテストを通過し、擬似コードがNを返す場合にテストを通過しない。
Figure 0005008572
大きなグループの場合、テストは、ヒストグラムビンの2乗和をグループ内のランダムに配置されたCCに対する推測値と比較して行なわれる。このテストに対する式は以下に与えられる。
Figure 0005008572
式中、mはヒストグラムビンの総数であり、nは文字の総数であり、hiはヒストグラムのi番目のビンの母集団である。式の右側の項は、推測(平均)値の2倍であり、十分に大きな値m及びnに対して、ランダムに配置された文字が受け入れられる確率が0.1%である値を近似する。この処理の一例を図27に示し、以下に説明する。
図24を参照すると、グループがテストに従って受け入れられる場合、ステップ2470に進む。ステップ2470において、グループは保持され、位置合わせのチェックは終了する。その後、処理は終了する。ステップ2440が偽(No)を返す場合、ステップ2450に進む。判定ステップ2450は、テストするパラメータが更に存在するかをチェックする。存在する場合、次のパラメータのためにステップ2430に進む。全てのパラメータがテストされた場合、ステップ2480に進み、グループが拒否される。その後、処理は終了する。
以下の説明において、1度に1つのパラメータに基づいてテストすることと、各テストを通過しないグループを正確に拒否することとを開示する。しかし、この開示を考慮すると、本発明の趣旨の範囲から逸脱せずに、異なるが類似する2つのパラメータ(バウンディングボックスの上側エッジ及び下側エッジ等)において略十分に位置合わせされるグループを受け入れること又は多くのパラメータに基づいてグループに対する全体のスコアを作成すること等、種々のパラメータに対してテストを組み合わせる別の方法が実現されてもよいことは、当業者には明らかとなるだろう。
3.2.2.位置合わせの例
図27(b)は、画像2700からセグメント化された部分の結果である不規則に配置されたバウンディングボックス2710、2712、2714の選択を示す。図27(b)は、ランダムに配置された連結成分を示す。図27(a)は、その画像に対するバウンディングボックスの底部の値のヒストグラム2720を示す。図27(d)は、連結成分を適切に位置合わせしたテキストグループに対するページ上のバウンディングボックス2740、2742の配置を示し、図27(c)は、対応するヒストグラム2730を示す。図示するように、テキストに対するヒストグラム2730は、値のいくつかの大きなクラスタを有するが、他方のヒストグラム2720は、より均等に分布した値を有する。ヒストグラムビン値の2乗和を尺度として使用すると、図27(a)は19の値を与え、図27(c)は47の値を与える。m=19及びn=13に対する上記受入れテストの右側の項は45である。従ってこのテストによると、図27(b)の画像データは拒否されるが、図27(d)のテキストデータは受け入れられる。あるいは、受入れテストは、平均カウントよりかなり大きいビンに存在する値の総数等の他の統計値に基づいてもよい。
4.圧縮出力画像の生成
バックエンドモジュールは、推定された背景色で前景領域をペイントすることにより、背景画像をより圧縮可能にするために修復を使用する。修復は、低解像度(例えば、150dpi)で背景画像に対して実行されるのが好ましい。修復アルゴリズムは、単一パスのタイルに基づくアルゴリズムであり、圧縮率を増加しようとする。各画素の色は、大きな領域に対して1つの平均色を使用するのではなく、左右にある周囲の画素から補間することにより選択される。
アルゴリズムは以下のステップを実行する。1)タイルに対して1つの前景マスクを作成するために、全ての前景成分に対するマスクを組み合わせる。2)前景成分の周囲の小さな追加の領域が修復されるようにマスクを拡張する。3)ラスタ順にタイルに対して:
a.画素がマスクされていない場合、タイルのアクティビティを更新する。
b.画素がマスクされている場合、左右の最近接するマスクされていない画素の色から補間された色で画素をペイントする。
4)マスクされていない領域のアクティビティがある特定の閾値を下回る場合、マスクされていない画素の中間色でタイル全体をペイントする(これにより、ZLib圧縮されたJPEGで圧縮が向上する)。5)タイル全体がマスクされている場合、タイル全体を先のタイルの中間色でペイントする。上記ステップ2)は、にじみの影響を排除し、出力品質を鮮明にすると共に圧縮を向上させる。
図5は、図1のステップ130を詳細に示す。ステップ510〜540は、図2及び図3で説明されたシステムと同様のタイルに基づく処理システムを使用する。ステップ510において、処理される次のタイルが取得される。ステップ520において、修復処理が現在のタイルに対して実行され、図1のステップ120で識別されたような任意の前景CCを除去し、視覚的に均一に近く見えるタイルを均一化する。ステップ530において、現在のタイルは圧縮される。これは、水平及び垂直に2:1にサブサンプルされた2つの色度チャネルを含むYCrCb色空間においてJPEGを使用して行なわれてもよい。解像度が減少された背景画像のタイルは、それぞれ16×16画素を含む。これは、タイル間でのバッファリングを必要とせずに、それら画素がYチャネルに対して4つの8×8画素JPEGブロック、並びにCrチャネル及びCbチャネルの各々に対して1つの8×8JPEGブロックに直接符号化されることを意味する。
ステップ540において、処理するタイルが更に存在するかを判定するためのチェックが行なわれる。修復及び圧縮するタイルが更に存在する場合、ステップ510に戻る。存在しない場合、ステップ550に進む。ステップ550において、前景が圧縮される。これは、ステップ120で識別された前景要素を圧縮することを含む。前景要素は、色に依存してグループ化され、フル入力解像度の1つの2値画像が、同様の色を有する前景要素の各グループに対して作成される。作成される各画像は、符号化により出力文書において圧縮の利点がもたらされるのに十分な大きさである場合、CCITT G4 Faxに符号化されてもよい。
ステップ560において、出力文書が生成される。圧縮背景画像及び圧縮前景画像は、複合圧縮形式で格納される。この形式は、例えばPDF文書であってもよい。JPEG符号化背景画像は、Flate(Zlib)圧縮を使用して更に圧縮されてもよい。これにより、ステップ520及び530により生成されたような繰り返される大量の均一ブロックを含むJPEG画像に対する空間が非常に節約される。複合文書は、Flate及びJPEG圧縮背景画像と、サイズ、位置、順序及び2値前景画像の場合にはページ上の各画像を描画するための色の詳細を含むページ記述とを含んで書かれてもよい。
4.1.タイルの修復
図30は、図5のステップ520を詳細に示す。この処理は、背景から前景CCを除去し且つ可視アクティビティの低い画像タイルを均一化することにより、前景CCの圧縮率を向上し且つ鮮明度を増加するために、ダウンサンプルされた背景画像を変更する。前景CCを取り囲む小さな領域は、にじみの影響を除去して画像を強調し且つ圧縮率を向上するために修復される。
図30に示される処理520は、前景CCの左右にある画素の色の間で補間することで推定された色を使用してCCを塗り消すことにより、低解像度の背景から選択された前景CCを除去する。これにより、圧縮率は向上する。CCの外側を囲む小さな領域は、画像の圧縮率を更に向上し且つ画像の見えを強調するように修復される。圧縮率は、可視アクティビティの低い背景画像のタイルを識別し且つそれらの全ての画素を同一色に設定することにより更に向上される。
図30の処理に対する入力は、図2のステップ250で作成されたダウンサンプルされた背景画像、図2のステップ240からのCCのリスト及び図1のステップ120からの前景又は背景選択情報である。ステップ3010において、タイルは、「均一」であるとマークされているかを確認するためにチェックされる。「均一」であるとマークされている場合、タイル均一化ステップ3040に進む。マークされていない場合、ステップ3020に進み、フル解像度の前景ビットマスクがタイルに対して形成される。これは、前景CCに対応する各場所においてビットセットを有する。ステップ3030において、前景CCに対応する背景画像の領域及びそれらを囲む小さな領域は、CCの左右にある画素の色から補間された色を使用してそれら領域を修復することにより除去される。また、タイル中の未修復の画素のアクティビティが測定される。ステップ3040において、タイルアクティビティが十分に低く視覚的に均一であると分かった場合、タイル全体は一定の色に均一化される。その後、処理は終了する。
4.1.1.タイル前景ビットマスクの形成
図31は、タイル前景ビットマスクを形成する図30のステップ3020を更に詳細に示す。ステップ3110において、タイルに対する初期ビットマスクが作成される。このビットマスクはタイルの幅と同一の幅であり、タイルより1行分高い。ビットマスクの最初の行が空白に設定された場合にタイルが文書の第1のバンドに存在しない限り、そのビットマスクの最初の行は上側タイルの最後の行と同一になるように設定される。これにより、修復された領域は、タイルの境界線に位置合わせされる下側エッジを有する前景CCの下方に拡張される。
ステップ3120において、タイルの次のCCが取得される。ステップ3130において、CCは、前景CC(ステップ120における)であるかを判定するためにチェックされる。CCが前景CCである場合、ステップ3140に進む。前景CCでない場合、ステップ3150に進む。ステップ3140において、そのCC及び現在のタイルに対応するビットマスクは、ビット単位のOR関数を使用してステップ3110で作成されたタイルビットマスクと組み合わされる。その後、ステップ3150に進む。ステップ3150において、現在のタイルに更なるCCが存在するかを判定するためのチェックが行なわれる。存在する場合、ステップ3120に戻る。タイルの全てのCCが処理された場合、ステップ3150の結果はNoとなり、ステップ3160に進む。ステップ3160において、形成されたマスクの最後の線は、ページ上のその線の真下にあるタイルを処理する際にステップ3110により使用されるように保存される。図31の処理3020で作成されたビットマスクは、入力画像のフル解像度である。
4.1.2.画素の修復及びタイルアクティビティの測定
図32は、図30のステップ3030を更に詳細に示す。各画素は、修復されるべき画素が見つけられるまでラスタ順に検査され、修復する画素のランの開始位置をマーク付けする。続く画素は、修復する画素のランの終了位置が見つけられるまで検査される。画素の水平ランは、修復ランの左右にある画素の色の間で線形補間された色でペイントされる。
図32を参照すると、ステップ3210は、タイルの1つの行を取得する。ステップ3220において、画素の次のランの開始位置が行の累積された画素アクティビティに関して見つけられる。行の各画素はラスタ順に検査され、タイルの画素アクティビティは、修復されるべき画素が見つけられるまで累積される。未修復の画素の画素アクティビティは、画素値及び画素値の2乗を累積し、且つ測定された画素数のカウントを保持することにより記録される。各画素が修復されるべきかを決定するために、画素位置は、図30のステップ3020で作成されたタイル前景ビットマスクの対応する場所と比較される。タイルビットマスクが背景画像の2倍の解像度であるため、背景画像の1つの画素の範囲に含まれる領域に対応するマスクには4画素存在する。圧縮を向上し且つエッジのにじみの影響を前景CCから除去するために、前景CCのエッジを囲む小さな追加の領域は修復される。これを行なうために、フル解像度の前景マスクの8画素は検査され、現在の背景画素を修復するかを決定する。図34は、背景画像タイル3430の画素の例3410と検査される対応するフル解像度マスク画素3420とを示す。3420により示される8画素のうち任意の1つがマスク3440に設定される場合、すなわち、前景CCの場所に対応する場合、画素3410は修復される。ビットマスク3440がビットベクトルの配列として格納されるため、それら8画素3420は、ビット単位のAND演算を使用して迅速にチェックされる。あるいは、これは、ビットマスク3420のセット画素を拡張し且つダウンサンプルすることにより実現されてもよい。次のタイルの同一行にある最初の画素が修復される場合、色が補間値として使用されるように右側にある次のタイルを処理する時、各行の最後に検査された未修復の画素の色は記録され且つ利用可能になる。
図32を参照すると、判定ステップ3230において、行の終了前に修復する画素が見つけられたかを判定するためのチェックが行なわれる。修復する画素が見つけられた場合、ステップ3250に進む。見つけられない場合、ステップ3240に進む。ステップ3250において、行の残りの画素はラスタ順に検査され、行の修復されるべき画素のランの終了位置を見つける。画素が修復されるべきかを判定するために、ステップ3220で使用されたテストと同一のテストが使用される。ステップ3260において、修復する画素のランの終了位置が行の終了前に見つけられたかを判定するためのチェックが行なわれる。修復される画素のランの終了位置が行の最後に到達する前に見つけられる場合、ステップ3270に進む。ステップ3270において、修復される画素のランの各画素は、左右にある最近接の未修復画素の色の間で線形補間された色に設定される。修復する画素のランがタイルの左側エッジまで拡張された場合、先のタイルの同一行に対して保管された最後の値は、左の補間値として使用される。その後、ステップ3220に進み、修復される画素の次のランを検索する。ステップ3250において、修復されるべきではない画素を見つけずに行の最後に到達した場合、判定ステップ3260は処理をステップ3280に進める。ステップ3280において、修復される画素のランの各画素は、左側の最近接の未修復画素の値に設定される。その値は、先のタイルの同一行に対して保管された値であってもよい。ステップ3280の後、ステップ3240に進む。
ステップ3240において、処理するタイルの行が更に存在するかを判定するためのチェックが行なわれる。行がタイルに更に存在する場合、ステップ3210に進む。行がそれ以上存在しない場合、処理は終了する。
4.1.3.修復の例
図35は、いくつかの1次元修復の例を示す。画素強度が位置Xの関数としてグラフ化される場合、2つの例3510、3520に対して修復前後のグラフを提供する。第1の例3510において、修復する画素のランは完全にタイル内にあり、修復された画素値(斜線で示される)は、すぐ左右にある未修復の画素値の間で線形補間された値で置換される。修復された領域は、前景成分より僅かに大きく、にじみの影響を除去する。これは、拡張されたマスク領域として示される。各画素を修復する色は、左右のマスクされていない画素の色の間で補間することにより見つけられる。図35の第2の例3520において、修復する画素のランはタイルエッジ3530を横切る。左側のタイルを処理する場合、修復される画素の値は、すぐ左側にある未修復の画素の値で置換される。例3520の右側のタイルを処理する場合、修復された画素値は、この行に対する最後に記録された未修復の画素値と右側にある最初の未修復の画素値との間で線形補間された値に設定される。
4.1.4.タイルの均一化
図33は、図30のステップ3040を更に詳細に示す。判定ステップ3310において、全ての画素が修復されたかのチェックが行なわれる。特に、ステップ3220で記録されたような修復された画素数がチェックされる。タイルの全ての画素が修復された場合、タイルの可視領域は小さいと考えられ、ステップ3320に進む。ステップ3320において、現在のタイルの全ての画素は、ラスタ順に先のタイルの中間色にペイント(設定)される。これにより、JPEGのようなブロックに基づく圧縮技術が使用される場合、背景画像の圧縮率は非常に向上される。その後、処理は終了する。ステップ3310がタイルの全ての画素が修復されていないことを判定する場合、判定ステップ3330に進む。ステップ3330において、ステップ3220で測定されたような未修復の画素のアクティビティが所定の閾値に対してチェックされる。アクティビティがその閾値より小さいと分かった場合、再構成画像のタイルのアクティビティ可視領域は均一に近いと考えられる。この場合、ステップ3340に進み、タイルの未修復の可視画素の中間色でタイルの全ての画素をペイントすることにより、タイルは完全に均一化される。これにより、背景画像の圧縮率は非常に向上される。図33の処理は、ステップ3340の後に終了するか、あるいはタイルのアクティビティが閾値より大きいと分かった場合にはステップ3330の後に終了する。
5.ハードウェアの実施形態
図51は、本発明の第2の実施形態によるシステム5100を示す。システム5100は、パイプラインを処理する、異なる段階の間の効率的なデータフローを特徴とする。その設計は、メモリ帯域幅を大きく減少し、システム5100が高速に実行することを可能にする。
通常、スキャナは、画素ラスタ順にスキャン済みデータを取得する。画素データは、その後格納され、更なる画像処理のために圧縮されることが多い。従来のスキャン/文書アプリケーションにおいて、通常、スキャン済みデータは、記憶装置から検索され、伸張され且つ画像データを処理するためのセグメント化及びレイアウト解析のためにメモリに保持される必要がある。これは、セグメント化処理がスキャナのページ毎のストリーミングラスタデータの速度に追従できないため、高速スキャナである場合が多い。
これは、各画像画素が少なくとも2回書き込まれ且つ読み出される必要があるため、大きなメモリバッファだけでなく、大きなメモリ帯域幅も必要とする。まず画素は、スキャナによりメモリに書き込まれる必要があり、その後圧縮器は、メモリからデータを読み出し且つそのデータを圧縮する。その後、伸張器は、圧縮データを読み出し且つそのデータをメモリに伸張する必要がある。最後に、画像プロセッサは伸張データをセグメント化できる。圧縮データに加え元の各画像画素に対しても少なくとも1回の冗長メモリ読出し及び書込みがある。高解像度のスキャナ(例えば、600dpi)の場合、これは、追加のデータが200MBを超えることを意味する。
本発明の本実施形態は、スキャナ5105からのリアルタイムのページ毎のストリーミングラスタデータに対して直接動作する高速自動セグメント化を採用する。その結果、冗長メモリ読出し及び書込みは完全に排除され、メモリバッファのサイズは大きく減少される。
バス5110は、スキャナ5105からスキャン済みラスタデータを搬送し、そのスキャン済みラスタデータは、ラインバッファであるモジュール5115に書き込まれる。この例において64ラインバッファが使用されるが、以下に説明するように、バンドの高さに応じて他のサイズが使用されてもよい。ラインバッファ5115は、コードセグメント化モジュール5125による処理に対してデータのバンドを格納し、同時に入力スキャン済みデータの新しいバンドを収集する。モジュール5125は、ラインバッファ5115からバス5120を介してデータのタイルを読み出し、タイル毎にデータを連結成分にカラーセグメント化する。モジュール5125がデータのバンドを終了すると、データの新しいバンドがラインバッファ5115から処理のために用意される。旧バンドバッファは、新しい入力ラスタデータを収集するために使用される。バンドの高さはタイルの高さにより判定され、ラインバッファ5115はバンドの2倍の高さを必要とする。本実施形態において、好ましいタイルのサイズは32×32である。
モジュール5125は、本実施形態のハードウェアで実現されるため、バンドの処理速度は、スキャナ5105がデータの新しいバンドを生成する速度に追従できる。モジュール5125の出力は、レイアウト解析モジュール5140に対してはバス5135のコンパクトな連結成分(CC)であり、修復モジュール5150に対してはバス5130の非圧縮のダウンサンプル画像又は圧縮されたダウンサンプル画像である。バス5135のデータは、ページの有効な領域又はCCの全体のページが生成されるまでメモリに書き込まれてもよい。モジュール5140は、コンパクトな連結成分データのみを使用してレイアウト解析を実行する。データがコンパクトであるため、レイアウト解析を実行するのに必要とされる処理能力は小さい。従って、レイアウト解析モジュールは、リアルタイムで組込みプロセッサにより実行されるソフトウェア(SW)として実現されてもよい。レイアウト解析モジュールの出力は、バス5145に提供される前景情報であり、バス5135からのデータにタグ付けする。バス5130のデータは、ページの有効な領域又はCCの全体のページが生成されるまでメモリに書き込まれてもよい。
修復モジュール5150は、タイル毎にダウンサンプル画像(バス5130を介して提供される)の前景を除去する。このモジュール5150は、レイアウト解析ソフトウェア5140を実行する同一の組込みプロセッサ上に実現されてもよく、あるいはハードウェア(HW)により実現されてもよい。バス5130からのデータが圧縮されている場合、モジュール5150はそのデータを伸張する。モジュール5150は、ダウンサンプル画像の推定された背景色で前景領域を修復し、背景画像を生成する。前景が除去された背景画像はバス5155に出力され、前景マスクはバス5175に生成される。
出力生成モジュール5160は、バス5175上に生成された前景画像及びバス5155上に生成された背景画像からPDFファイル等のレイアウト解析された文書を作成する。モジュール5160は、同一の組込みプロセッサ上で実行するソフトウェアにより実現されてもよい。
第2の実施形態において、モジュール5115及び5125は、リアルタイムのページ毎のスキャンデータに対して動作し、コンパクトな連結成分及びダウンサンプル画像をページNに生成する。モジュール5140、5150及び5160は、モジュール5125により生成されたデータを使用してページN−1に対して順次動作する。従って、システムは、高速スキャナのライブデータからレイアウト解析された文書をリアルタイムで配信できる。
モジュール5125、5140、5150及び5160は、第1の実施形態における対応するステップに対して説明された方法で実現されてもよい。
5.1.カラーセグメント化モジュール
図52は、モジュール5125を詳細に示す。CCへのカラーセグメント化モジュール5125の構成要素は、逆ハーフトーン化モジュール5220を含む。逆ハーフトーン化モジュール5220は、タイル順に画素のストリームを利用し、インクジェットプリンタ等の印刷する中間調システムを使用して印刷されたデータをスキャンすることにより発生するアーティファクトを除去する。逆ハーフトーン化モジュール5220は、上述したソフトウェアによる実施形態のハードウェアによる実施形態である。このモジュールは、必要な速度を達成するために、スタティックRAM及びパイプライン処理を内部的に使用してもよい。
逆ハーフトーン化モジュール5220から出力される画素は、色変換モジュール5230に渡される。モジュール5230は、入力色空間(RGBであることが多い)からYCbCr輝度/色度空間に画素を変換する。このモジュール5230は、以下の式に従って各画素に対して必要な乗算及び加算を実行する。
Y = R * 0.2989 + G * 0.5866 + B * 0.1145
Cb = R * -0.1687 + G * -0.3313 + B * 0.5000
Cr = R * 0.5000 + G * -0.4183 + B * -0.0816
この四則演算は、変倍された固定小数点演算において実行され、モジュール5125の複雑性を減少し且つ速度を増加する。色変換モジュール5230からの出力は、ダウンスキャン(DownScanモジュール)5240及び連結成分解析モジュール5260の2つのモジュールに渡される。DownScanモジュール5240は、4つ(2×2の正方形)又は16個(4×4の正方形)の1セットの色を単純に平均し、各出力画素を形成する。DownScanモジュール5240から出力される画素は、ハードウェアのJPEG圧縮器5250により圧縮される。
6.コンピュータの実現例
本発明の実施形態による方法は、1つ以上の汎用コンピュータシステム、印刷装置及び他の適切な演算装置を使用して実現されてもよい。図1〜図52の任意の1つ以上の図を参照して説明された処理は、コンピュータシステム内で実行するアプリケーションプログラム又は印刷装置に組み込まれたアプリケーションプログラム等のソフトウェアとして実現されてもよい。ソフトウェアは、アプリケーションプログラム、オペレーティングシステム、手順、規則、データ構造及びデータを含む1つ以上のコンピュータプログラムを含んでもよい。命令は、各々が1つ以上の特定のタスクを実行する1つ以上のコードモジュールとして形成されてもよい。ソフトウェアは、例えば以下に説明される1つ以上の記憶装置を含むコンピュータ可読媒体に格納されてもよい。コンピュータシステムは、コンピュータ可読媒体からソフトウェアをロードし、そのソフトウェアを実行する。
図7は、本発明の実施形態が実現できるコンピュータシステム700の一例を示す。そのようなソフトウェアを記録したコンピュータ可読媒体は、コンピュータプログラム製品である。コンピュータシステムにおけるコンピュータプログラム製品の使用は、1つ以上の上記方法を実現する有利な装置に影響を与える可能性がある。
図7において、コンピュータシステム700はネットワークに結合される。オペレータは、コンピュータ750への入力を行なうキーボード730及び/又はマウス732(又は、例えばタッチパッド)等のポインティングデバイスを使用してもよい。コンピュータシステム700は、コンピュータに接続されるラインプリンタ、レーザプリンタ、作図装置及び他の再現装置を含むいくつかの出力装置を含んでもよい。コンピュータシステム700は、モデム通信パス又はルータ等の適切な通信チャネル740を使用して、通信インタフェース764を介して1つ以上の他のコンピュータに接続される。コンピュータネットワーク720は、例えばローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、イントラネット及び/又はインターネットを含んでもよい。コンピュータ750は、処理装置(例えば、1つ以上の中央処理装置)と、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)又はそれら2つの組合せを含んでもよいメモリ770と、入出力(IO)インタフェース772と、グラフィックインタフェース760と、1つ以上の記憶装置762とを具備してもよい。記憶装置762は、フロッピディスク、ハードディスクドライブ、光磁気ディスクドライブ、CD−ROM、DVD、データカード又はメモリスティック、フラッシュRAMデバイス、磁気テープ、あるいは当業者に周知の任意の他の多くの不揮発性記憶装置のうち1つ以上を具備してもよい。記憶装置は図7においてバスに直接接続されて示されるが、そのような記憶装置は、パラレルポート、シリアルポート、USBインタフェース、Firewireインタフェース、無線インタフェース又はPCMCIAスロット等の任意の適切なインタフェースを介して接続されてもよい。この説明の目的のため、記憶ユニットは、1つ以上のメモリ770及び記憶装置762を含んでもよい(図7において、これら要素を囲む破線で示される)。
通常、コンピュータ750の各構成要素は、図7に一般的に示される1つ以上のバス1980を介して1つ以上の他の装置に接続され、それらは、データ、アドレス及び制御バスを具備する。単一のバス780が図7に示されるが、コンピュータ、印刷装置又は他の電子演算装置が1つ以上のプロセッサバス、メモリバス、グラフィックカードバス及び周辺バスを含むいくつかのバスを含んでもよいことが、当業者には理解されるだろう。適切なブリッジは、そのようなバス間の通信をインタフェースするために利用されてもよい。CPUを使用するシステムが説明されたが、本発明の趣旨の範囲から逸脱せずに、データの処理及び動作の実行が可能な他の処理装置が使用されてもよいことは、当業者には理解されるだろう。
コンピュータシステム700は単に説明の目的で提供されており、本発明の趣旨の範囲から逸脱せずに他の構成を採用できる。実施形態が実現されるコンピュータは、IBMのPC/AT又はそれに互換性のあるもの、ラップトップ/ノートブックコンピュータ、PCのMacintosh(TM)ファミリのうちの1つ、Sun Sparcstation(TM)、PDA又はワークステーション等であってもよい。上述は、本発明の実施形態が実現できる装置の種類の単なる例である。通常、以下に説明する実施形態の処理は、コンピュータ可読媒体であるハードディスクドライブに記録されたプログラム又はソフトウェアとして常駐し、プロセッサを使用して読み出され且つ制御される。ネットワークから取り出されたプログラム及び中間データ及び任意のデータの中間記憶は、半導体メモリを使用して達成されてもよい。
いくつかの例において、プログラムは、CD ROM又はフロッピディスクに符号化されて供給されてもよく、あるいは例えばコンピュータに接続されたモデムデバイスを介してネットワークから読み出せる。更に、ソフトウェアは、磁気テープ、ROM又は集積回路、光磁気ディスク、コンピュータと別の装置との間の無線又は赤外線送信チャネル、PCMCIAカード等のコンピュータ可読カード、並びに電子メール送信及びウェブサイト等に記録された情報を含むインターネット及びイントラネットを含む他のコンピュータ可読媒体からコンピュータシステムにロードされる。上述は、関連したコンピュータ可読媒体の単なる一例である。本発明の趣旨の範囲から逸脱せずに、他のコンピュータ可読媒体が実現されてもよい。
7.産業上の利用可能性
本発明の実施形態は、コンピュータ及びデータ処理分野に適用可能である。上述は、本発明の実施形態に従ってデジタル画像を処理及び圧縮する少数の方法、装置及びコンピュータ可読媒体を説明しているだけであり、本発明の趣旨の範囲から逸脱せずに、それらに対して変形及び/又は変更を行なうことができる。それら実施形態は例であり、限定するものではない。
本発明の一実施形態かかるデジタル画像のセグメント化、解析及び圧縮の概要を示すフローチャートである。 図1のカラーセグメント化ステップを示すフローチャートである。 図2の次の画素を取得するステップを詳細に示すフローチャートである。 図1のレイアウト解析ステップを示すフローチャートである。 図1の圧縮出力画像を生成するステップを示すフローチャートである。 文字「i」及び関連する連結成分を含む画像を示すブロック図である。 本発明の実施形態にかかる汎用コンピュータシステムを示すブロック図である。 本発明の一実施形態にかかるスキャン済み入力ページに対する圧縮出力を生成するシステムを示すブロック図である。 図10のカラー連結成分解析及びブロブ統計ステップを詳細に示すフローチャートである。 図2のカラーセグメント化ステップを示すフローチャートである。 図10の色量子化ステップを詳細に示すフローチャートである。 図9の新しいブロブを形成又は既存のブロブを成長させるステップを詳細に示すフローチャートである。 図10のタイル間マージステップを示すフローチャートである。 図13の最適なブロブ/CCの対を処理するステップを示すフローチャートである。 ブロブマージ処理の一例を示すブロック図である。 現在のタイルと2つの隣接するタイルの状態との間のマージを示すブロック図である。 タイル間マージ条件を示す表である。 図14のCCマッピング処理の結果の一例を示す図である。 図10のタイル内マージステップを示すフローチャートである。 図4のCCグループ化ステップを示すフローチャートである。 図4のCCのグループをチェックするステップを示すフローチャートである。 図20のグループの子CCを見つけるステップを示すフローチャートである。 図20の初期グループ化ステップを示すフローチャートである。 図21の位置合わせチェックステップを示すフローチャートである。 (a)は、3つ以上の量子化レベルに基づくセグメント化の単純な例を示す画像である。(b)及び(c)は、(a)の画像の2値セグメント化の結果を示す画像である。 文字「g」及び「h」の2つのオブジェクトを含む文書の領域を示す図である。 (a)は、(b)の画像のバウンディングボックスの底部の値を示すヒストグラムである。(b)は、画像のセグメント化された部分に対して不規則に配置されたバウンディングボックスの選択を示す図である。(c)は、(d)のページの対応するヒストグラムを示す図である。(d)は、テキストグループに対するページ上のバウンディングボックスの配置を示す図である。 カラーブロブシステムを示すブロック図である。 パレットの高階調部及び低階調部が空のビンを表すパレット、指標付きマップ及び元のタイルを含むカラーヒストグラム出力を示す画像である。 パレットの高階調部及び低階調部が空のビンを表すパレット、指標付きマップ及び元のタイルを含むカラーヒストグラム出力を示す画像である。 パレットの高階調部及び低階調部が空のビンを表すパレット、指標付きマップ及び元のタイルを含むカラーヒストグラム出力を示す画像である。 図5のタイル修復ステップを示すフローチャートである。 図30のタイル前景ビットマスク形成ステップを示すフローチャートである。 図30の画素の修復及びタイルアクティビティの測定を行なうステップを示すフローチャートである。 図30のタイル均一化ステップを示すフローチャートである。 背景画像タイルの画素の一例及びフル解像度前景マスクで検査される対応する画素を示すブロック図である。 1次元の修復の例を示すグラフである。 6×6のタイルの一例を使用するカラーブロブ処理を示すブロック図である。 ブロブマージの一例を示す画像である。 比較の目的で、マージされたブロブ出力と共に元のタイルを示す画像である。 ラスタ順に複数のタイルにわたるブロブをマージすることを示すブロック図である。 図11の2Dヒストグラム及び第1のパレットを形成するステップを示すフローチャートである。 図11の2Dヒストグラム及び第1のパレットを形成するステップを示すフローチャートである。 図11の第2のパレットの形成ステップを示すフローチャートである。 図41の2色パレット生成ステップを示すフローチャートである。 図41の多色パレット生成ステップを示すフローチャートである。 図11の画素を第2のパレットと関連付けるステップを示すフローチャートである。 図44の2レベルのタイルのマッピングステップを詳細に示すフローチャートである。 図44の2レベルのタイルのマッピングステップを詳細に示すフローチャートである。 図44の多色タイルマッピングステップを詳細に示すフローチャートである。 図11のヒストグラムの解析及びタイルの分類を行なうステップを示すフローチャートである。 全ての動作条件に対する更新前後のCC候補カウント及びブロブ候補カウントを示す表である。 ブロブ候補及びCC候補のマージの例を示すブロック図である。 図10のマージの後処理ステップを示すフローチャートである。 本発明の他の実施形態にかかるシステムを示すブロック図である。 図51のカラーセグメント化モジュールを示すブロック図である。 設定点のドローネ三角形分割及びボロノイ図を示す図である。

Claims (7)

  1. 取得手段が、複数の画素を含むデジタル画像を予め決められたサイズのタイルに分割し、当該分割された各タイルを順に処理対象として取得する取得ステップと、
    色量子化手段が、前記取得ステップで取得したタイル内の画素の色に基づいて該タイルにおける代表色を判定し、該タイル内の各画素の色を当該判定された代表色のいずれかに量子化する色量子化ステップと、
    連結成分解析手段が、前記色量子化ステップで量子化されたタイルに対して、同じ代表色を有し且つ隣接する複数の画素をグループ化することにより連結成分を形成する連結成分解析ステップと、
    タイル内マージ手段が、前記連結成分解析ステップで形成された連結成分のうち、該連結成分の境界線の長さとサイズとの比が第1の閾値より大きい連結成分を、該連結成分に隣接する他の連結成分のうちの最も近い代表色を有する連結成分にマージするタイル内マージステップと、
    タイル間マージ手段が、前記タイル内マージステップの処理を実行した後の前記処理対象のタイル内の連結成分、先に処理された隣接する他のタイル内の連結成分との間の色距離を求め、当該色距離が第2の閾値より小さい場合、該連結成分をマージするタイル間マージステップと、
    レイアウト解析手段が、前記取得ステップで順に取得される各タイルに対して前記色量子化ステップと前記連結成分解析ステップと前記タイル内マージステップと前記タイル間マージステップとにおける各処理を実行した後の前記連結成分に基づいて、前記デジタル画像の前景オブジェクトを識別するレイアウト解析ステップと、
    備えることを特徴とする画像処理方法。
  2. 出力文書生成手段が、前記レイアウト解析ステップで識別された前記前景オブジェクトに基づいて、前記デジタル画像の前景画像と背景画像とを個別に圧縮して、複合圧縮形式の出力文書を生成する出力文書生成ステップを、更に備えることを特徴とする請求項1に記載の画像処理方法。
  3. 前記背景画像は、前記デジタル画像における前記前景画像の領域を、その左右の画素の色の間で線形補間した色でペイントすることにより生成されることを特徴とする請求項2に記載の画像処理方法。
  4. 前記色量子化ステップは、
    前記取得したタイル内の画素のYUVデータに基づいて複数の色のビンに関連するヒストグラムを形成するステップと、
    前記形成されたヒストグラムの特徴に基づいて前記取得したタイルの種類を分類するステップと、
    前記分類されたタイルの種類に基づいて前記ビンの色をマージすることにより、前記代表色を判定するステップと、
    を備えることを特徴とする請求項に記載の画像処理方法。
  5. 複数の画素を含むデジタル画像を予め決められたサイズのタイルに分割し、当該分割された各タイルを順に処理対象として取得する取得手段と、
    前記取得手段で取得したタイル内の画素の色に基づいて該タイルにおける代表色を判定し、該タイル内の各画素の色を当該判定された代表色のいずれかに量子化する色量子化手段と、
    前記色量子化手段で量子化されたタイルに対して、同じ代表色を有し且つ隣接する複数の画素をグループ化することにより連結成分を形成する連結成分解析手段と、
    前記連結成分解析手段で形成された連結成分のうち、該連結成分の境界線の長さとサイズとの比が第1の閾値より大きい連結成分を、該連結成分に隣接する他の連結成分のうちの最も近い代表色を有する連結成分にマージするタイル内マージ手段と、
    前記タイル内マージ手段の処理を実行した後の前記処理対象のタイル内の連結成分と、先に処理された隣接する他のタイル内の連結成分との間の色距離を求め、当該色距離が第2の閾値より小さい場合、該連結成分をマージするタイル間マージ手段と、
    前記取得手段で順に取得される各タイルに対して前記色量子化手段と前記連結成分解析手段と前記タイル内マージ手段と前記タイル間マージ手段とによる各処理を実行した後の前記連結成分に基づいて、前記デジタル画像の前景オブジェクトを識別するレイアウト解析手段と、
    を備えることを特徴とする画像処理装置。
  6. 前記レイアウト解析手段で識別された前記前景オブジェクトに基づいて、前記デジタル画像の前景画像と背景画像とを個別に圧縮して、複合圧縮形式の出力文書を生成する出力文書生成手段を、更に備えることを特徴とする請求項5に記載の画像処理装置。
  7. 請求項5または6に記載の画像処理装置の各手段として、コンピュータを機能させるためのコンピュータプログラムを記録したことを特徴とするコンピュータ可読媒体。
JP2007547088A 2004-12-21 2005-12-20 画像処理方法、画像処理装置およびコンピュータ可読媒体 Expired - Fee Related JP5008572B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
AU2004242421 2004-12-21
AU2004242419A AU2004242419A1 (en) 2004-12-21 2004-12-21 Analysing digital image of a document page
AU2004242421A AU2004242421A1 (en) 2004-12-21 2004-12-21 Segmenting digital image and producing compact representation
AU2004242419 2004-12-21
PCT/AU2005/001926 WO2006066325A1 (en) 2004-12-21 2005-12-20 Segmenting digital image and producing compact representation

Publications (3)

Publication Number Publication Date
JP2008524728A JP2008524728A (ja) 2008-07-10
JP2008524728A5 JP2008524728A5 (ja) 2009-02-19
JP5008572B2 true JP5008572B2 (ja) 2012-08-22

Family

ID=36601261

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007547088A Expired - Fee Related JP5008572B2 (ja) 2004-12-21 2005-12-20 画像処理方法、画像処理装置およびコンピュータ可読媒体

Country Status (7)

Country Link
US (1) US7991224B2 (ja)
EP (1) EP1831823B1 (ja)
JP (1) JP5008572B2 (ja)
KR (1) KR100926193B1 (ja)
AT (1) ATE501487T1 (ja)
DE (1) DE602005026862D1 (ja)
WO (1) WO2006066325A1 (ja)

Families Citing this family (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5008572B2 (ja) * 2004-12-21 2012-08-22 キヤノン株式会社 画像処理方法、画像処理装置およびコンピュータ可読媒体
US7831111B2 (en) * 2005-10-31 2010-11-09 Yahoo! Inc. Method and mechanism for retrieving images
US20070098257A1 (en) * 2005-10-31 2007-05-03 Shesha Shah Method and mechanism for analyzing the color of a digital image
US7792359B2 (en) 2006-03-02 2010-09-07 Sharp Laboratories Of America, Inc. Methods and systems for detecting regions in digital images
US7889932B2 (en) 2006-03-02 2011-02-15 Sharp Laboratories Of America, Inc. Methods and systems for detecting regions in digital images
US8630498B2 (en) 2006-03-02 2014-01-14 Sharp Laboratories Of America, Inc. Methods and systems for detecting pictorial regions in digital images
US7916141B2 (en) * 2006-04-10 2011-03-29 Choi Kum-Young Image processing system using vector pixel
US7864365B2 (en) 2006-06-15 2011-01-04 Sharp Laboratories Of America, Inc. Methods and systems for segmenting a digital image into regions
US8437054B2 (en) 2006-06-15 2013-05-07 Sharp Laboratories Of America, Inc. Methods and systems for identifying regions of substantially uniform color in a digital image
US7876959B2 (en) 2006-09-06 2011-01-25 Sharp Laboratories Of America, Inc. Methods and systems for identifying text in digital images
US7916924B2 (en) * 2006-09-19 2011-03-29 Primax Electronics Ltd. Color processing method for identification of areas within an image corresponding to monetary banknotes
JP4798077B2 (ja) * 2007-06-27 2011-10-19 コニカミノルタビジネステクノロジーズ株式会社 画像処理方法、画像処理装置、画像データ圧縮装置、およびコンピュータプログラム
US7925089B2 (en) * 2007-09-18 2011-04-12 Microsoft Corporation Optimization of multi-label problems in computer vision
US8121403B2 (en) 2007-10-30 2012-02-21 Sharp Laboratories Of America, Inc. Methods and systems for glyph-pixel selection
AU2007237365B2 (en) * 2007-12-05 2011-05-12 Canon Kabushiki Kaisha Colour reproduction in a colour document image
US8532374B2 (en) * 2007-12-05 2013-09-10 Canon Kabushiki Kaisha Colour document layout analysis with multi-level decomposition
US8472716B2 (en) * 2007-12-05 2013-06-25 Canon Kabushiki Kaisha Block-based noise detection and reduction method with pixel level classification granularity
US8682029B2 (en) * 2007-12-14 2014-03-25 Flashfoto, Inc. Rule-based segmentation for objects with frontal view in color images
US8270483B1 (en) * 2008-01-18 2012-09-18 Maxim Integrated Products, Inc. Method and apparatus for applying accurate parameter estimation and efficient fade detection in weighted prediction for video compression
JP4952627B2 (ja) * 2008-03-21 2012-06-13 富士通株式会社 画像処理装置、画像処理方法および画像処理プログラム
US8571106B2 (en) * 2008-05-22 2013-10-29 Microsoft Corporation Digital video compression acceleration based on motion vectors produced by cameras
US8446463B2 (en) 2008-08-22 2013-05-21 Genprime, Inc. Apparatus, method and article to perform assays using assay strips
JP5049921B2 (ja) 2008-08-26 2012-10-17 キヤノン株式会社 画像処理装置及び画像処理方法
JP5049920B2 (ja) 2008-08-26 2012-10-17 キヤノン株式会社 画像処理装置及び画像処理方法
JP5049922B2 (ja) * 2008-08-26 2012-10-17 キヤノン株式会社 画像処理装置及び画像処理方法
US20100158376A1 (en) * 2008-10-17 2010-06-24 Klosterman Peter S Systems and methods for labeling and characterization of connected regions in a binary mask
US8351691B2 (en) * 2008-12-18 2013-01-08 Canon Kabushiki Kaisha Object extraction in colour compound documents
JP5153676B2 (ja) 2009-02-10 2013-02-27 キヤノン株式会社 画像処理装置、画像処理方法、プログラムおよび記憶媒体
AU2009201252B2 (en) * 2009-03-31 2011-06-02 Canon Kabushiki Kaisha Colour correcting foreground colours for visual quality improvement
JP5511467B2 (ja) 2009-04-13 2014-06-04 キヤノン株式会社 画像処理装置およびその制御方法、並びにプログラム
JP5511468B2 (ja) 2009-04-13 2014-06-04 キヤノン株式会社 画像処理装置およびその制御方法、並びにプログラム
TWI381321B (zh) * 2009-04-30 2013-01-01 Ind Tech Res Inst 重組多張影像與辨識方法以及影像擷取與辨識系統
JP5276539B2 (ja) * 2009-07-23 2013-08-28 キヤノン株式会社 画像処理方法および画像処理装置およびプログラム
US8670615B2 (en) * 2009-09-30 2014-03-11 Flashfoto, Inc. Refinement of segmentation markup
US9047674B2 (en) * 2009-11-03 2015-06-02 Samsung Electronics Co., Ltd. Structured grids and graph traversal for image processing
JP2011216080A (ja) * 2010-03-18 2011-10-27 Canon Inc 画像処理装置、画像処理方法、および記憶媒体
US9311567B2 (en) 2010-05-10 2016-04-12 Kuang-chih Lee Manifold learning and matting
US20120159292A1 (en) * 2010-12-16 2012-06-21 Oce-Technologies B.V. Method of processing an object-based image file with content type dependent image processing algorithms
US9147264B2 (en) 2011-02-23 2015-09-29 Nvidia Corporation Method and system for quantizing and squeezing base values of associated tiles in an image
KR101767269B1 (ko) * 2011-04-25 2017-08-10 한국전자통신연구원 영상 검색 장치 및 방법
JP5537492B2 (ja) * 2011-05-12 2014-07-02 富士重工業株式会社 環境認識装置
JP5796392B2 (ja) * 2011-07-29 2015-10-21 ブラザー工業株式会社 画像処理装置、および、コンピュータプラグラム
JP5776419B2 (ja) * 2011-07-29 2015-09-09 ブラザー工業株式会社 画像処理装置、画像処理プラグラム
US9008356B1 (en) * 2011-11-21 2015-04-14 Google Inc. Perceptually-driven representation for object recognition
EP2807604A1 (en) 2012-01-23 2014-12-03 Microsoft Corporation Vector graphics classification engine
WO2013110289A1 (en) 2012-01-23 2013-08-01 Microsoft Corporation Borderless table detection engine
EP2807601A1 (en) * 2012-01-23 2014-12-03 Microsoft Corporation Fixed format document conversion engine
US8989493B1 (en) * 2012-02-06 2015-03-24 Marvell International Ltd. Method and apparatus for identifying regions of an image to be filtered during processing of the image
JP5958023B2 (ja) 2012-03-30 2016-07-27 ブラザー工業株式会社 画像処理装置および画像処理プログラム
JP5974589B2 (ja) 2012-03-30 2016-08-23 ブラザー工業株式会社 画像処理装置およびプログラム
JP5935454B2 (ja) 2012-03-30 2016-06-15 ブラザー工業株式会社 画像処理装置および画像処理プログラム
JP6069923B2 (ja) * 2012-07-20 2017-02-01 セイコーエプソン株式会社 ロボットシステム、ロボット、ロボット制御装置
US8972061B2 (en) * 2012-11-02 2015-03-03 Irobot Corporation Autonomous coverage robot
JP5847062B2 (ja) * 2012-11-27 2016-01-20 京セラドキュメントソリューションズ株式会社 画像処理装置
JP5847063B2 (ja) * 2012-11-27 2016-01-20 京セラドキュメントソリューションズ株式会社 画像処理装置
US10158858B2 (en) * 2012-12-27 2018-12-18 Nvidia Corporation Method and system for index compression for fixed block size texture formats and for non-linear interpolation of index values along an edge in a tile
US9953008B2 (en) 2013-01-18 2018-04-24 Microsoft Technology Licensing, Llc Grouping fixed format document elements to preserve graphical data semantics after reflow by manipulating a bounding box vertically and horizontally
US9600869B2 (en) 2013-03-14 2017-03-21 Cyberlink Corp. Image editing method and system
US9190016B2 (en) 2013-03-15 2015-11-17 Valspar Sourcing, Inc. Color-matching tool for virtual painting
JP2014235452A (ja) * 2013-05-30 2014-12-15 株式会社東芝 整形装置
US9042649B2 (en) * 2013-09-24 2015-05-26 Konica Minolta Laboratory U.S.A., Inc. Color document image segmentation and binarization using automatic inpainting
US9819969B2 (en) 2013-11-26 2017-11-14 Nvidia Corporation Generalization of methods and systems for image compression while encoding at least one extra bit
WO2015135509A1 (en) 2014-03-14 2015-09-17 Mediatek Inc. Method for palette table initialization and management
US9633444B2 (en) 2014-05-05 2017-04-25 Xiaomi Inc. Method and device for image segmentation
CN103996189B (zh) * 2014-05-05 2017-10-03 小米科技有限责任公司 图像分割方法及装置
CN105389776B (zh) 2014-09-02 2019-05-03 辉达公司 图像缩放技术
JP6472279B2 (ja) * 2015-03-09 2019-02-20 キヤノン株式会社 画像処理装置及び画像処理方法
US9710157B2 (en) * 2015-03-12 2017-07-18 Lenovo (Singapore) Pte. Ltd. Removing connective strokes
US20160292275A1 (en) * 2015-04-03 2016-10-06 Apropose, Inc. System and method for extracting and searching for design
ES2550903B1 (es) * 2015-07-15 2016-06-21 Universidad De La Rioja Procedimiento para la estimación automática de la porosidad del viñedo mediante visión artificial
US9715624B1 (en) * 2016-03-29 2017-07-25 Konica Minolta Laboratory U.S.A., Inc. Document image segmentation based on pixel classification
US9846951B2 (en) 2016-03-31 2017-12-19 Konica Minolta Laboratory U.S.A., Inc. Determining a consistent color for an image
JP6173542B1 (ja) * 2016-08-10 2017-08-02 株式会社Pfu 画像処理装置、画像処理方法、および、プログラム
US10576475B2 (en) 2016-09-15 2020-03-03 Genprime, Inc. Diagnostic assay strip cassette
US11205103B2 (en) 2016-12-09 2021-12-21 The Research Foundation for the State University Semisupervised autoencoder for sentiment analysis
US10635927B2 (en) 2017-03-06 2020-04-28 Honda Motor Co., Ltd. Systems for performing semantic segmentation and methods thereof
US10453221B2 (en) * 2017-04-10 2019-10-22 Intel Corporation Region based processing
CN108345893B (zh) * 2018-03-15 2021-01-26 京东方科技集团股份有限公司 一种直线检测方法、装置、计算机存储介质及终端
CN110796133B (zh) * 2018-08-01 2024-05-24 北京京东尚科信息技术有限公司 文案区域识别方法和装置
US11836958B2 (en) * 2018-09-25 2023-12-05 Servicenow Canada Inc. Automatically detecting and isolating objects in images
US11195308B2 (en) * 2018-12-05 2021-12-07 Sony Group Corporation Patcher tool
WO2020174447A1 (en) * 2019-02-28 2020-09-03 Tata Consultancy Services Limited Multi-label placement for augmented and virtual reality and video annotations
CN111918065A (zh) * 2019-05-08 2020-11-10 中兴通讯股份有限公司 一种信息压缩/解压缩方法及装置
US11335021B1 (en) * 2019-06-11 2022-05-17 Cognex Corporation System and method for refining dimensions of a generally cuboidal 3D object imaged by 3D vision system and controls for the same
US11605177B2 (en) 2019-06-11 2023-03-14 Cognex Corporation System and method for refining dimensions of a generally cuboidal 3D object imaged by 3D vision system and controls for the same
US11501550B2 (en) 2020-11-24 2022-11-15 International Business Machines Corporation Optical character recognition segmentation
US11330149B1 (en) * 2021-01-15 2022-05-10 Konica Minolta Business Solutions U.S.A., Inc. Finding the page background color range
CN116704048B (zh) * 2023-08-09 2023-11-17 四川元祉智慧科技有限公司 一种双光配准方法

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57187778A (en) * 1981-05-12 1982-11-18 Omron Tateisi Electronics Co Pattern extracting method
JPS61243569A (ja) * 1985-04-19 1986-10-29 Fujitsu Ltd デイジタル画像領域へのラベル付け方式
JPS6261175A (ja) * 1985-09-12 1987-03-17 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 画素の連結性を解析する装置
JP2810660B2 (ja) * 1987-03-06 1998-10-15 株式会社日立製作所 粒子画像の解析装置
US5321770A (en) * 1991-11-19 1994-06-14 Xerox Corporation Method for determining boundaries of words in text
JPH05165955A (ja) * 1991-12-13 1993-07-02 Sony Corp 画像処理方法
US5384864A (en) 1993-04-19 1995-01-24 Xerox Corporation Method and apparatus for automatic determination of text line, word and character cell spatial features
EP0677818B1 (en) 1994-04-15 2000-05-10 Canon Kabushiki Kaisha Image pre-processor for character recognition system
US5751859A (en) * 1995-06-14 1998-05-12 Lucent Technologies Inc. Compression of text images by soft pattern matching
JPH1051642A (ja) 1996-07-31 1998-02-20 Fuji Xerox Co Ltd 画像処理装置
JP4170441B2 (ja) * 1997-11-28 2008-10-22 富士通株式会社 文書画像傾き検出装置および文書画像傾き検出プログラムの記憶媒体
AUPP444898A0 (en) 1998-07-02 1998-07-23 Canon Kabushiki Kaisha A method and apparatus for boundary filtering a digital image
JP2000163594A (ja) 1998-11-30 2000-06-16 Canon Inc 画像パタ―ン検出方法及び装置
JP3748172B2 (ja) * 1998-12-09 2006-02-22 富士通株式会社 画像処理装置
NL1015943C2 (nl) * 2000-08-16 2002-02-19 Ocu Technologies B V Interpretatie van gekleurde documenten.
US7072508B2 (en) * 2001-01-10 2006-07-04 Xerox Corporation Document optimized reconstruction of color filter array images
US6782126B2 (en) * 2001-02-20 2004-08-24 International Business Machines Corporation Method for combining feature distance with spatial distance for segmentation
US7432940B2 (en) 2001-10-12 2008-10-07 Canon Kabushiki Kaisha Interactive animation of sprites in a video production
US6922485B2 (en) * 2001-12-06 2005-07-26 Nec Corporation Method of image segmentation for object-based image retrieval
US7027647B2 (en) 2001-12-31 2006-04-11 Hewlett-Packard Development Company, L.P. Coder matched layer separation for compression of compound documents
US7392472B2 (en) 2002-04-25 2008-06-24 Microsoft Corporation Layout analysis
US7120297B2 (en) 2002-04-25 2006-10-10 Microsoft Corporation Segmented layered image system
JP2003348361A (ja) * 2002-05-22 2003-12-05 Canon Inc 画像処理装置
US7227893B1 (en) * 2002-08-22 2007-06-05 Xlabs Holdings, Llc Application-specific object-based segmentation and recognition system
US20040096102A1 (en) 2002-11-18 2004-05-20 Xerox Corporation Methodology for scanned color document segmentation
US7272258B2 (en) * 2003-01-29 2007-09-18 Ricoh Co., Ltd. Reformatting documents using document analysis information
AU2003903445A0 (en) 2003-06-26 2003-07-17 Canon Kabushiki Kaisha Optimising compositing calculations for a run of pixels
US7280120B2 (en) 2003-06-26 2007-10-09 Canon Kabushiki Kaisha Compositing with a sub-pixel mask in graphic object rendering
AU2003903447A0 (en) 2003-06-26 2003-07-17 Canon Kabushiki Kaisha Rendering successive frames in a graphic object system
US7586647B2 (en) 2004-07-29 2009-09-08 Canon Kabushiki Kaisha Halftone detection and removal
JP5008572B2 (ja) * 2004-12-21 2012-08-22 キヤノン株式会社 画像処理方法、画像処理装置およびコンピュータ可読媒体

Also Published As

Publication number Publication date
EP1831823A4 (en) 2009-06-24
JP2008524728A (ja) 2008-07-10
KR20070091178A (ko) 2007-09-07
US20080123945A1 (en) 2008-05-29
WO2006066325A1 (en) 2006-06-29
KR100926193B1 (ko) 2009-11-09
ATE501487T1 (de) 2011-03-15
DE602005026862D1 (de) 2011-04-21
US7991224B2 (en) 2011-08-02
EP1831823A1 (en) 2007-09-12
EP1831823B1 (en) 2011-03-09

Similar Documents

Publication Publication Date Title
JP5008572B2 (ja) 画像処理方法、画像処理装置およびコンピュータ可読媒体
US6807304B2 (en) Feature recognition using loose gray scale template matching
US9135722B2 (en) Perceptually lossless color compression
JP4667062B2 (ja) 画像解析装置、画像解析方法、及びブロブ識別装置
US6993185B2 (en) Method of texture-based color document segmentation
US7343046B2 (en) Systems and methods for organizing image data into regions
US9384409B1 (en) Word segmentation for document image using recursive segmentation
US8417029B2 (en) Image processing apparatus and method, including fill-up processing
JP3353968B2 (ja) 画像処理装置
US7411699B2 (en) Method and apparatus to enhance digital image quality
Chen et al. Decompose algorithm for thresholding degraded historical document images
US6738517B2 (en) Document image segmentation using loose gray scale template matching
JP2000132690A (ja) ト―クン化によるイメ―ジ分割を用いたイメ―ジ処理方法および装置
CN110766017A (zh) 基于深度学习的移动终端文字识别方法及系统
KR101150901B1 (ko) 위성영상을 이용한 객체기반 분석을 위한 자동 영상분할 방법
US6360006B1 (en) Color block selection
JP4441300B2 (ja) 画像処理装置、画像処理方法、画像処理プログラムおよびこのプログラムを記憶した記録媒体
CN114549649A (zh) 一种基于特征匹配的扫描地图点符号的快速识别方法
Fateh et al. Color reduction in hand-drawn Persian carpet cartoons before discretization using image segmentation and finding edgy regions
CN100543766C (zh) 图像分段方法、紧凑表示产生方法、图像分析方法及装置
AU2005211628A1 (en) Processing digital image
Konya et al. Adaptive methods for robust document image understanding
AU2004242421A1 (en) Segmenting digital image and producing compact representation
AU2004242418A1 (en) Generating compressed output representation
Chang et al. Using color variation to mimic human visual perception for color image quantization

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081222

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120305

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120525

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120529

R151 Written notification of patent or utility model registration

Ref document number: 5008572

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150608

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees