JP7195092B2 - 手描きの表の識別 - Google Patents

手描きの表の識別 Download PDF

Info

Publication number
JP7195092B2
JP7195092B2 JP2018173776A JP2018173776A JP7195092B2 JP 7195092 B2 JP7195092 B2 JP 7195092B2 JP 2018173776 A JP2018173776 A JP 2018173776A JP 2018173776 A JP2018173776 A JP 2018173776A JP 7195092 B2 JP7195092 B2 JP 7195092B2
Authority
JP
Japan
Prior art keywords
vertex
cells
edges
vertices
cell
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.)
Active
Application number
JP2018173776A
Other languages
English (en)
Other versions
JP2019067378A (ja
Inventor
ダレル ユージン ベラート,
Original Assignee
コニカ ミノルタ ラボラトリー ユー.エス.エー.,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by コニカ ミノルタ ラボラトリー ユー.エス.エー.,インコーポレイテッド filed Critical コニカ ミノルタ ラボラトリー ユー.エス.エー.,インコーポレイテッド
Publication of JP2019067378A publication Critical patent/JP2019067378A/ja
Application granted granted Critical
Publication of JP7195092B2 publication Critical patent/JP7195092B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/412Layout analysis of documents structured with printed lines or input boxes, e.g. business forms or tables
    • 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/414Extracting the geometrical structure, e.g. layout tree; Block segmentation, e.g. bounding boxes for graphics or text
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/387Composing, repositioning or otherwise geometrically modifying originals
    • H04N1/3872Repositioning or masking
    • H04N1/3873Repositioning or masking defined only by a limited number of coordinate points or parameters, e.g. corners, centre; for trimming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/141Systems for two-way working between two video terminals, e.g. videophone
    • H04N7/142Constructional details of the terminal equipment, e.g. arrangements of the camera and the display
    • H04N7/144Constructional details of the terminal equipment, e.g. arrangements of the camera and the display camera and display on the same optical axis, e.g. optically multiplexing the camera and display for eye to eye contact

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Image Analysis (AREA)
  • Character Discrimination (AREA)

Description

本発明は、手描きの表の識別に関する。
画像には、手描きの線によって境界をつけられた行及び列を有する表が含まれることがある。例えば、画像は、手描きのページを走査したものかもしれない。
これらの手描きの線が直線であることは滅多になく、画像処理装置が表の形状(例えば、左上隅、範囲、行及び列の数、セルの位置など)を決定するのは困難である。これらの手描きの線は、電子文書(例えば、ワープロ文書、スプレッドシート、スライドショー、ウェブページ、等)に含めることができる、表の高水準の描写物を生成することも困難にしている。それにも関わらず、ユーザは、画像処理装置で手描きの表を扱うことを依然として望んでいる。
一般に、一の態様では、本発明は、表を含む画像を処理する方法に関し、 前記表を形成する前記画像内の複数の連結構成要素を識別する工程と、
前記表について、前記複数の連結構成要素に基づいて複数の縁辺を含む骨格グラフを生成する工程と、
前記複数の縁辺に基づいて前記表を雛型表と比較する植字得点を計算する工程と、
前記表の回転角度を決定し、前記回転角度に基づいて前記表の専用座標系を生成する工程と、
前記骨格グラフ、前記植字得点、及び前記専用座標系に基づいて、前記表内の複数のセルを識別する工程と、
前記複数の縁辺に基づいて前記複数のセルのそれぞれをリンクさせ、前記複数のセル間のリンクを検証する工程と、
前記複数のセル間の前記リンクに基づく複数のセルの格子を生成する工程と、
前記格子を、前記表の、垂直に交差する直線によって形成された行及び列を有する表に類似する表としてエクスポートする工程と、を含み、
前記植字得点を計算する工程は、
前記複数の縁辺について複数の角度及び複数の長さを識別する工程と、
前記複数の角度に基づいて、前記複数の縁辺を複数の集団にグループ分けする工程と、
前記複数の長さに基づいて、前記複数の集団について複数の集団長さを計算する工程と、
前記複数の集団長さの部分集合を選択する工程と、
前記複数の長さの合計に対する前記部分集合の合計の比率を計算する工程と、を含む。
また、一の態様では、本発明は、表を含む画像を処理する方法に関し、 前記表を形成する前記画像内の複数の連結構成要素を識別する工程と、
前記表について、前記複数の連結構成要素に基づいて複数の縁辺を含む骨格グラフを生成する工程と、
前記複数の縁辺に基づいて前記表を雛型表と比較する植字得点を計算する工程と、
前記表の回転角度を決定し、前記回転角度に基づいて前記表の専用座標系を生成する工程と、
前記骨格グラフ、前記植字得点、及び前記専用座標系に基づいて、前記表内の複数のセルを識別する工程と、
前記複数の縁辺に基づいて前記複数のセルのそれぞれをリンクさせ、前記複数のセル間のリンクを検証する工程と、
前記複数のセル間の前記リンクに基づく複数のセルの格子を生成する工程と、
前記格子を、前記表の、垂直に交差する直線によって形成された行及び列を有する表に類似する表としてエクスポートする工程と、を含み、
前記表内の前記複数のセルを決定する工程は、
前記骨格グラフ内で、隅角頂点、前記隅角頂点に隣接する開始頂点、及び前記隅角頂点に隣接する終了頂点を識別する工程と、
前記隅角頂点から前記開始頂点への進行方向を計算する工程と、
前記開始頂点に対する一組のルート選択肢であって、
前記骨格グラフ内の前記開始頂点に隣接する第1の組の頂点、
前記開始頂点から前記第1の組の頂点への一組の進行方向、並びに
前記一組の進行方向、及び前記隅角頂点から前記開始頂点への前記進行方向の垂線に基づく、前記第1の組の頂点に対する一組の回転コスト、を含む一組のルート選択肢を決定する工程と、
前記一組の回転コストに基づいて、第1の頂点として前記第1の組の頂点から候補頂点を選択する工程と、
前記骨格グラフ内の第2の頂点に隣接する第2の組の頂点を含む、前記第2の頂点に対する一組のルート選択肢を決定する工程と、
前記第2の組の頂点が前記終了頂点を含んでいると決定する工程と、
前記隅角頂点、前記開始頂点、前記第1の頂点、前記第2の頂点、及び前記終了頂点を含む、セル候補のルートを生成する工程と、を含む。
また、一の態様では、本発明は、表を含む画像を処理する方法に関し、 前記表を形成する前記画像内の複数の連結構成要素を識別する工程と、
前記表について、前記複数の連結構成要素に基づいて複数の縁辺を含む骨格グラフを生成する工程と、
前記複数の縁辺に基づいて前記表を雛型表と比較する植字得点を計算する工程と、
前記表の回転角度を決定し、前記回転角度に基づいて前記表の専用座標系を生成する工程と、
前記骨格グラフ、前記植字得点、及び前記専用座標系に基づいて、前記表内の複数のセルを識別する工程と、
前記複数の縁辺に基づいて前記複数のセルのそれぞれをリンクさせ、前記複数のセル間のリンクを検証する工程と、
前記複数のセル間の前記リンクに基づく複数のセルの格子を生成する工程と、
前記複数の縁辺の長さに基づいて、前記複数のセルのそれぞれのサイズを決定する工程と、
前記複数のセルのそれぞれの前記サイズ、所定の方向で前記複数のセルによって共有される縁辺、及び前記複数のセル間の領域の重複に基づいて、前記表内の内部セルを識別する工程と、
前記複数のセルから前記内部セルを除去する工程と、
前記格子を、前記表の、垂直に交差する直線によって形成された行及び列を有する表に類似する表としてエクスポートする工程と、を含み、
内部セルは、少なくとも1つの縁辺を別のセルと共有し、別のセルと領域が重なり、他のセルよりも小さなサイズを持つセルである。
また、一の態様では、本発明は、表を含む画像を処理する方法に関し、 前記表を形成する前記画像内の複数の連結構成要素を識別する工程と、
前記表について、前記複数の連結構成要素に基づいて複数の縁辺を含む骨格グラフを生成する工程と、
前記複数の縁辺に基づいて前記表を雛型表と比較する植字得点を計算する工程と、
前記表の回転角度を決定し、前記回転角度に基づいて前記表の専用座標系を生成する工程と、
前記骨格グラフ、前記植字得点、及び前記専用座標系に基づいて、前記表内の複数のセルを識別する工程と、
前記複数の縁辺に基づいて前記複数のセルのそれぞれをリンクさせ、前記複数のセル間のリンクを検証する工程と、
前記複数のセル間の前記リンクに基づく複数のセルの格子を生成する工程と、
前記格子を、前記表の、垂直に交差する直線によって形成された行及び列を有する表に類似する表としてエクスポートする工程と、を含み、
前記複数のセル内の各セルは、第1の境界線、前記第1の境界線に対向する第2の境界線、第3の境界線、及び前記第3の境界線に対向する第4の境界線を含み、
前記方法は、
前記表に対して生成された複数の頂点を有する前記骨格グラフ上で、前記複数のセルのうちのあるセルの前記第1の境界線上の非隅角頂点を識別する工程と、
前記非隅角頂点から延びており、前記セルの前記第3又は前記第4の境界線と交差することなく、前記セルの前記第2の境界線と交差する、複数の分割線を決定する工程と、
前記複数の分割線について、複数の信頼値を計算する工程と、
前記複数の信頼値及び前記複数の分割線のうちのある分割線に基づいて、人為的縁辺を生成することによって、前記セルを分割する工程と、を更に含む。
一般に、一の態様では、本発明は、画像を処理するシステムに関する。当該システムは、 メモリと、
前記メモリに接続されたコンピュータプロセッサであって、
前記表を形成する、前記画像内の複数の連結構成要素を識別し、
前記表について、前記複数の連結構成要素に基づいて複数の縁辺を含む骨格グラフを生成し、
前記複数の縁辺に基づいて前記表を雛型表と比較する植字得点を計算し、
前記表の回転角度を決定し、前記回転角度に基づいて前記表の専用座標系を生成し、
前記骨格グラフ、前記植字得点、及び前記専用座標系に基づいて、前記表内の複数のセルを識別し、
前記複数の縁辺に基づいて前記複数のセルのそれぞれをリンクさせ、前記複数のセル間のリンクを検証し、
前記複数のセル間の前記リンクに基づく複数のセルの格子を生成し、
前記格子を前記表の、垂直に交差する直線によって形成された行及び列を有する表に類似する表としてエクスポートし、
前記植字得点を計算することは、
前記複数の縁辺について複数の角度及び複数の長さを識別することと、
前記複数の角度に基づいて、前記複数の縁辺を複数の集団にグループ分けすることと、
前記複数の長さに基づいて、前記複数の集団について複数の集団長さを計算することと、
前記複数の集団長さの部分集合を選択することと、
前記複数の長さの合計に対する前記部分集合の合計の比率を計算することと、を含む、コンピュータプロセッサと、を含む。
また、一の態様では、本発明は、画像を処理するシステムに関する。当該システムは、 メモリと、
前記メモリに接続されたコンピュータプロセッサであって、
前記表を形成する、前記画像内の複数の連結構成要素を識別し、
前記表について、前記複数の連結構成要素に基づいて複数の縁辺を含む骨格グラフを生成し、
前記複数の縁辺に基づいて前記表を雛型表と比較する植字得点を計算し、
前記表の回転角度を決定し、前記回転角度に基づいて前記表の専用座標系を生成し、
前記骨格グラフ、前記植字得点、及び前記専用座標系に基づいて、前記表内の複数のセルを識別し、
前記複数の縁辺に基づいて前記複数のセルのそれぞれをリンクさせ、前記複数のセル間のリンクを検証し、
前記複数のセル間の前記リンクに基づく複数のセルの格子を生成し、
前記格子を前記表の、垂直に交差する直線によって形成された行及び列を有する表に類似する表としてエクスポートし、
前記表内の前記複数のセルを決定することは、
前記骨格グラフ内で、隅角頂点、前記隅角頂点に隣接する開始頂点、及び前記隅角頂点に隣接する終了頂点を識別することと、
前記隅角頂点から前記開始頂点への進行方向を計算することと、
前記開始頂点に対する一組のルート選択肢であって、
前記骨格グラフ内の前記開始頂点に隣接する第1の組の頂点、
前記開始頂点から前記第1の組の頂点への一組の進行方向、並びに、
前記一組の進行方向、及び前記隅角頂点から前記開始頂点への前記進行方向の垂線に基づく、前記第1の組の頂点に対する一組の回転コスト、を含む一組のルート選択肢を決定することと、
前記一組の回転コストに基づいて、第1の頂点として前記第1の組の頂点から候補頂点を選択することと、
前記骨格グラフ内の第2の頂点に隣接する第2の組の頂点を含む、前記第2の頂点に対する一組のルート選択肢を決定することと、
前記第2の組の頂点が前記終了頂点を含んでいると決定することと、
前記隅角頂点、前記開始頂点、前記第1の頂点、前記第2の頂点、及び前記終了頂点を含む、セル候補のルートを生成することと、を含む、コンピュータプロセッサと、を含む。
一般に、一の態様では、本発明は、内部に取り込まれた表を含む画像を処理するコンピュータ可読プログラムコードを保存する、非一時的なコンピュータ可読媒体(CRM)に関する。当該プログラムコードは、実行されるときには、前記表を形成する、前記画像内の複数の連結構成要素を識別し、
前記表について、前記複数の連結構成要素に基づいて複数の縁辺を含む骨格グラフを生成し、
前記複数の縁辺に基づいて前記表を雛型表と比較する植字得点を計算し、
前記表の回転角度を決定し、前記回転角度に基づいて前記表の専用座標系を生成し、
前記骨格グラフ、前記植字得点、及び前記専用座標系に基づいて、前記表内の複数のセルを識別し、
前記複数の縁辺に基づいて前記複数のセルのそれぞれをリンクさせ、前記複数のセル間のリンクを検証し、
前記複数のセル間の前記リンクに基づく複数のセルの格子を生成し、
前記格子を前記表の、垂直に交差する直線によって形成された行及び列を有する表に類似する表としてエクスポートし、
前記植字得点を計算することは、
前記複数の縁辺について複数の角度及び複数の長さを識別することと、
前記複数の角度に基づいて、前記複数の縁辺を複数の集団にグループ分けすることと、
前記複数の長さに基づいて、前記複数の集団について複数の集団長さを計算することと、
前記複数の集団長さの部分集合を選択することと、
前記複数の長さの合計に対する前記部分集合の合計の比率を計算することと、を含むコンピュータ可読プログラムコードを保存する。
また、一の態様では、本発明は、内部に取り込まれた表を含む画像を処理するコンピュータ可読プログラムコードを保存する、非一時的なコンピュータ可読媒体(CRM)に関する。当該プログラムコードは、実行されるときには、前記表を形成する、前記画像内の複数の連結構成要素を識別し、
前記表について、前記複数の連結構成要素に基づいて複数の縁辺を含む骨格グラフを生成し、
前記複数の縁辺に基づいて前記表を雛型表と比較する植字得点を計算し、
前記表の回転角度を決定し、前記回転角度に基づいて前記表の専用座標系を生成し、
前記骨格グラフ、前記植字得点、及び前記専用座標系に基づいて、前記表内の複数のセルを識別し、
前記複数の縁辺に基づいて前記複数のセルのそれぞれをリンクさせ、前記複数のセル間のリンクを検証し、
前記複数のセル間の前記リンクに基づく複数のセルの格子を生成し、
前記格子を前記表の、垂直に交差する直線によって形成された行及び列を有する表に類似する表としてエクスポートし、
前記表内の前記複数のセルを決定することは、
前記骨格グラフ内で、隅角頂点、前記隅角頂点に隣接する開始頂点、及び前記隅角頂点に隣接する終了頂点を識別することと、
前記隅角頂点から前記開始頂点への進行方向を計算することと、
前記開始頂点に対する一組のルート選択肢であって、
前記骨格グラフ内の前記開始頂点に隣接する第1の組の頂点、
前記開始頂点から前記第1の組の頂点への一組の進行方向、並びに、
前記一組の進行方向、及び前記隅角頂点から前記開始頂点への前記進行方向の垂線に基づく、前記第1の組の頂点に対する一組の回転コスト、を含む一組のルート選択肢を決定することと、
前記一組の回転コストに基づいて、第1の頂点として前記第1の組の頂点から候補頂点を選択することと、
前記骨格グラフ内の第2の頂点に隣接する第2の組の頂点を含む、前記第2の頂点に対する一組のルート選択肢を決定することと、
前記第2の組の頂点が前記終了頂点を含んでいると決定することと、
前記隅角頂点、前記開始頂点、前記第1の頂点、前記第2の頂点、及び前記終了頂点を含む、セル候補のルートを生成することと、を含むコンピュータ可読プログラムコードを保存する。
本発明の他の態様は、以降の説明及び添付の特許請求の範囲から明らかになる。
本発明の1つ以上の実施形態によるシステムを示す。 本発明の1つ以上の実施形態による主流れ図を示す。 本発明の1つ以上の実施形態による副流れ図を示す。 本発明の1つ以上の実施形態による副流れ図を示す。 本発明の1つ以上の実施形態による副流れ図を示す。 本発明の1つ以上の実施形態による副流れ図を示す。 本発明の1つ以上の実施形態による副流れ図を示す。 本発明の1つ以上の実施形態による副流れ図を示す。 本発明の1つ以上の実施形態による副流れ図を示す。 本発明の1つ以上の実施形態による副流れ図を示す。 本発明の1つ以上の実施形態による副流れ図を示す。 本発明の1つ以上の実施形態による副流れ図を示す。 本発明の1つ以上の実施形態による副流れ図を示す。 本発明の1つ以上の実施形態による副流れ図を示す。 本発明の1つ以上の実施形態による実施例を示す。 本発明の1つ以上の実施形態による実施例を示す。 本発明の1つ以上の実施形態による実施例を示す。 本発明の1つ以上の実施形態による実施例を示す。 本発明の1つ以上の実施形態による実施例を示す。 本発明の1つ以上の実施形態による実施例を示す。 本発明の1つ以上の実施形態による実施例を示す。 本発明の1つ以上の実施形態による実施例を示す。 本発明の1つ以上の実施形態による実施例を示す。 本発明の1つ以上の実施形態による実施例を示す。 本発明の1つ以上の実施形態による実施例を示す。 本発明の1つ以上の実施形態による実施例を示す。 本発明の1つ以上の実施形態による実施例を示す。 本発明の1つ以上の実施形態による実施例を示す。 本発明の1つ以上の実施形態による実施例を示す。 本発明の1つ以上の実施形態による実施例を示す。 本発明の1つ以上の実施形態による実施例を示す。 本発明の1つ以上の実施形態による実施例を示す。 本発明の1つ以上の実施形態によるコンピュータシステムを示す。
本発明の具体的な実施形態を、添付の図を参照しながら詳細に説明する。様々な図での同様の要素は、一貫性を保つために同様の参照番号によって示される。
本発明の実施形態の以降の詳細な説明では、本発明のより完全な理解をもたらすために、多数の具体的な詳細が記載されている。しかしながら、本発明はこれらの具体的な詳細を用いなくても実施することができることは、当業者には明らかであろう。他の場合では、説明を不必要に複雑にするのを避けるために、周知の特徴事項については詳細には説明しない。
全般的に、本発明の実施形態は、画像処理用の方法、非一時的なコンピュータ可読媒体(CRM)、及びシステムを提供する。手描きの線を有する表を含む画像を取得し、マスクに変換し、表を表す縁辺及び頂点を含む骨格グラフを生成する。電子文書(例えば、OOXML文書、PDF文書、等)に含めるための高水準の表の描写物を生成するために、骨格グラフに対して1つ以上の処理を実行して、画像中の表を識別する。
図1は、本発明の1つ以上の実施形態によるシステム(100)を示す。図1に示すように、システム(100)は、例えばバッファ(104)、骨格エンジン(108)、及び表エンジン(110)を含む、複数の構成要素を有する。これらの構成要素(104、108、110)のそれぞれは、同一のコンピュータ装置(例えば、パーソナルコンピュータ(PC)、ラップトップ、タブレットPC、スマートフォン、多機能プリンタ、キオスク、サーバ、等)に、又は、有線及び/若しくは無線のセグメントを有する任意のサイズのネットワークによって接続された異なるコンピュータ装置に配置されることがある。これらの構成要素のそれぞれについて、以下で考察する。
本発明の1つ以上の実施形態では、バッファ(104)を、ハードウェア(即ち、回路)、ソフトウェア、又はそれらの任意の組み合わせで実装することがある。バッファ(104)は、任意の数の行及び列を有する表を含む画像(106)を保存するように構成される。表の各セルは、文字及び/又は図形を有することがある。画像(106)は、任意のソースから取得される(例えば、ダウンロードされる、スキャンされる、等)ことがある。更に、画像(106)は、任意のサイズであり、任意のフォーマット(例えば、JPEG、GIF、BMP、PNG、等)であることがある。1つ以上の実施形態では、画像(106)は書込みボード(例えば、黒板、ホワイトボード、等)を含み、表は、この書込みボードにマーカーで描かれる。
本発明の1つ以上の実施形態では、骨格エンジン(108)を、ハードウェア(即ち、回路)、ソフトウェア、又はそれらの任意の組み合わせで実装することがある。表中の手描き線及び/又は表内のテキスト文字の識別を容易にするために、骨格エンジン(108)は画像(106)をマスク(例えば、二値画像)に変換する。
この詳細な説明から恩恵を受ける当業者であれば、画像(106)に対して標準座標系が存在し得ることを理解するであろう。しかしながら、手描きの表が画像(106)内で回転されている場合には、この標準座標系の軸は、表の行及び列と一直線に並ばないことがある。本発明の1つ以上の実施形態では、骨格エンジン(108)は、画像(106)内の表の行及び列と厳密に整列する垂直な軸を有する専用座標系を確立する。或いは、画像は、表の行及び列が画像(106)の標準座標系とより良く整列するように、回転されることがある。
本発明の1つ以上の実施形態では、画像(106)は、1つ以上の連結構成要素を含む。各連結構成要素は、ペン/マーカーを持ち上げることなく描くことができる画像(106)の一部であるかもしれない。例えば、表の行及び列を形成する全ての線が、1つの連結構成要素に対応することがある。別の例として、表の行及び列を形成する線の部分集合のみが、1つの連結構成要素に対応することがある(即ち、表は、複数の連結構成要素から形成されることがある)。更に別の例として、表の1つのセルの内部のコンテンツ(例えば、テキスト文字)が、1つ以上の連結構成要素を形成することがある。
1つ以上の実施形態では、骨格エンジン(108)は、全ての識別された連結構成要素に対する骨格グラフを生成する。或いは、骨格エンジン(108)は、最も大きな連結構成要素(即ち、最多の画素数を有する連結構成要素)に対してのみ骨格グラフを生成し、その後、より小さな連結構成要素に対する骨格グラフを、表を修復するのにそれらが潜在的に有用であると決定された場合に、生成する。これにより、表を修復するのに必要ではない表の部分の骨格グラフを生成するのが回避され、コンピュータリソースが節約される。
1つ以上の実施形態では、最大の連結構成要素が、表全体に相当することがある。或いは、最大の連結構成要素は、表の一部にのみ相当することがある。
1つ以上の実施形態では、骨格グラフは、一連の縁辺及び頂点を含む。各縁辺は、表のストローク(一筆の動き)、又はストロークの一部に相当することがある。各頂点は、2つ以上の縁辺の交点に相当することがある。更に、縁辺は、ストロークの一方の端部からストロークの他方の端部までの、ストロークのほぼ中央に位置する画素の経路を含むことがある。経路の幅は、1つ以上の画素である。
1つ以上の実施形態では、骨格エンジン(108)は、各縁辺の角度及び各縁辺の長さも識別する。縁辺の長さは、縁辺の2つの終端部間のユークリッド距離として計算することができる。これに加えてあるいはこの代わりに、この長さは、縁辺の画素の経路内の画素数を数えることによって特定することもできる。縁辺の角度は、専用座標系及び/又は標準座標系の軸(例えば、x軸、y軸、等)と、縁辺の2つの終端部を通る線との間の角度として計算することができる。本発明の1つ以上の実施形態では、縁辺の角度は、0度~179度の範囲の間の最も近い角度に丸められることがある。
本発明の1つ以上の実施形態では、縁辺の端部が別の縁辺に接続されていない場合、この縁辺の端部の画素は終端頂点と呼ばれる。本発明の1つ以上の実施形態では、3つの縁辺のみの交点は、T字型交点と呼ばれる。この3つの縁辺の交点の画素も、終端頂点と呼ばれる。
本発明の1つ以上の実施形態では、表エンジン(110)を、ハードウェア(即ち、回路)、ソフトウェア、又はそれらの任意の組み合わせで実装することがある。表エンジン(110)は、表内のセルを検出するように構成される。言い換えると、表エンジン(110)は、電子文書(例えば、OOXML文書、PDF文書、等)に含めるための手描きの表の高水準の描写物を生成するために、表のセルを識別するように構成される。
本発明の1つ以上の実施形態では、表エンジン(110)は、表の植字得点を計算する。表の植字得点は、各縁辺の長さ及び角度に基づいて計算される。植字得点とは、手描きの表が、垂直に交差する直線によって形成された行及び列を有する雛型表(例えば、理論的な又は理想的な表)にどれほど近く類似しているかという尺度である。言い換えると、植字得点とは、表と雛型表との比較である。例えば、植字得点は0~1の間の範囲を取ることがあり、0.98という植字得点は、手描きの表と雛型表とがほぼ完全に一致することを示す。一旦計算されると、植字得点は、電子文書(例えば、OOXML文書、PDF文書、等)に含めるための手描きの表の高水準の描写物を生成するために使用される様々な処理で、特定の許容誤差をきつくしたり緩めたりするのに使用されることがある。
表の植字得点計算方法の一例について、図3を参照して以下で説明する。しかしながら、表の植字得点計算方法は、以下で説明する例に限定はされない。
本発明の1つ以上の実施形態では、表エンジン(110)は、表修復方法を実行して表内の特定された欠陥を修復する。具体的には、表の行及び列を形成する線が、欠陥を持っていることがある。例えば、マーカーを使用して描かれた表の場合、欠陥とは、ぞんざいな描画によって、かつ/又はマーカーの衰えによって引き起こされた脱落部(即ち、表の線と線の間の、又は線の内部の断線部)であるかもしれない。表エンジン(110)は、骨格グラフの縁辺及び頂点に基づいて、人為的な縁辺を追加することによって修復することができる表の部分を決定する。例えば、人為的縁辺を骨格グラフの2つの位置(例えば、画素)の間に構築して、ほぼ直線的な接続、ほぼ垂直な接続、又は隅角接続を確立することができる。表を修復することによって、表に対して機能する追加の処理が、電子文書(例えば、OOXML文書、PDF文書、等)に含めるための高水準の表の描写物を正確に生成できるようになる可能性が高くなる。
表修復方法の一例について、図4A及び図4Bを参照して以下で説明する。しかしながら、修復方法は、以下に説明する例に限定はされない。
本発明の1つ以上の実施形態では、表エンジン(110)は、表のセル検出方法を実行して、表を構成する1つ以上のセルを識別する。初めに、骨格グラフから候補セルが識別される。候補セルは、縁辺及び頂点から構成される。次いで、各候補セルに対して1つ以上の検証処理を実行して、その候補セルが実際に表のセルであることを確認する。1つ以上の実施形態では、表エンジン(110)は、検証されたセルを検証済セルデータ構造(例えば、配列、リスト)内に保存する。識別され検証された候補セルのこれらの縁辺及び頂点を用いて、電子文書(例えば、OOXML文書、PDF文書、等)に含めるための高水準の表の描写物を生成することができる。
表のセル検出方法及び表のセル検証方法の例を、それぞれ図5A~図5C、及び図6A~図6Cを参照して、以下で説明する。しかしながら、表のセル検出方法及び検証方法は、以下で説明する例に限定はされない。
本発明の1つ以上の実施形態では、表エンジン(110)は、表のセルを識別し検証した後で1つ以上の方法を実行して、骨格グラフ内の内部セルを除去することがある。1つ以上の実施形態では、内部セルとは、少なくとも1つの縁辺を別のセルと共有し、別のセルと領域が重なり、他のセルよりも小さなサイズ(例えば、面積)を持つセルである(即ち、各内部セルは、より大きなセル内に包含される)。表エンジン(110)は、検証済セルデータ構造(例えば、配列、リスト)内に保存された全てのセルを追跡して、同じ時計回りの又は反時計まわりの方向で、2つのセルによって共有された1つ以上の縁辺(即ち、共有縁辺)を識別することによって、内部セルを識別する。これについては、以下に図13でより詳細に説明する。
本発明の1つ以上の実施形態では、表エンジン(110)は、表内の内部セルを除去した後で1つ以上の方法を実行して、表を構成するセルをリンクさせることがある。1つ以上の実施形態では、表エンジン(110)は、検証済セルデータ構造内に保存されたセルの時計回り又は反時計回りの追跡中に、複数のセル間の共有縁辺(即ち、1つ以上のセルによって共有された縁辺)を識別することにより、セルをリンクさせる。表エンジン(110)は、専用座標系の基本方向にある隣接セルとして別のセルと縁辺を共有するセルを、更に分類する。例えば、セルAの北縁辺(即ち、北側の境界にある縁辺)が、セルBと共有される縁辺であると仮定する。表エンジン(110)は、セルAの北隣としてセルBを記録し、セルBの南隣としてセルAを記録する。1つ以上の実施形態では、セルは、2つ以上の隣接セル(例えば、北隣、南隣、東隣、及び西隣)を有することがある。1つ以上の実施形態では、表エンジン(110)は、隣接セルデータ構造(例えば、配列)に全ての隣接セル情報を保存し、この隣接セルの情報を使用して、検証済セルデータ構造に保存された全てのセル間のリンクを生成する(即ち、表内の全てのセル間のリンクを確立する)。これについては、以下に図14でより詳細に説明する。
本発明の1つ以上の実施形態では、表エンジン(110)は、表を構成する全てのセルをリンクさせた後で1つ以上の方法を実行して、表内のセル間のリンクを検証することがある。1つ以上の実施形態では、2つのセル間のリンクを検証するために、表エンジン(110)は、2つのセルのうちの一方を現在のセルに指定し、他方のセルを隣接セルとして指定する。表エンジン(110)は、隣接セルが検証済セルデータ構造に保存されたセルとして確認された場合、かつ、現在のセルが、隣接セルデータ構造(例えば、配列)内で隣接セルの隣のセルとしてリストされているセルとして確認された場合に、2つのセル間のリンクを正しいと認める。例えば、セルX及びセルYは隣り合うセルであると仮定する。更に、セルXが現在のセルとして選択され、セルYが隣接セルとして選択されたと仮定する。表エンジン(110)は、セルYが検証済セルデータ構造内にリストされたセルであること、及び、セルXが、セルYの隣接セルとして隣接セルデータ構造内にリストされていることを検証する。
本発明の1つ以上の実施形態では、表エンジン(110)は、結合セル分割方法を実行して、表内で識別された1つ以上の結合セルを分割する。具体的には、取得された画像は、1つ以上の結合セルを有する表を含むことがある(以下に図7A~図7Cで考察する)。結合セルを分割した後で表を再生成するために、表エンジン(110)が骨格グラフに対して1つ以上の処理を実行する。これらの1つ以上の処理は骨格グラフに人為的縁辺を追加することがあり、各人為的縁辺は分割後のセルの境界に相当する。当初の(即ち、結合前の)境界が既知になると、電子文書(例えば、OOXML文書、PDF文書、等)に含めるための高水準の表の描写物を生成することができる。この高水準の描写物は、セル毎に、他のセルと結合されたセルであっても、属性及び/又はタグを有することがある。電子文書が描画される(例えば、表示される、プリントされる)と、新しい(分割後の)表が見られることがあり、かつ/又は分割前の表(即ち、取得された画像で見られる通りの表)が見られることがある。
結合セル分割方法の一例について、図7A~図7Cを参照して以下で説明する。しかしながら、表の結合セル分割方法は、以下で説明する例に限定はされない。
本発明の1つ以上の実施形態では、表エンジン(110)は、1つ以上の処理を実行してセルの格子を生成しエクスポート(出力)することがある。1つ以上の実施形態では、表エンジン(110)は、結合セルを分割した後で、表内の全てのセルを使用して最も大きな四辺形の(例えば、正方形又は長方形の)格子を構築して、分割されたセルによって形成される最も大きな可能な表を識別する。これにより、確実に、表エンジン(110)がセルの集合から最も大きな可能な表を識別し、万一、表エンジン(110)によって実行される上述の処理でいずれかのセルが見落とされていた場合に発見することができるほとんどのデータを返すことができる。1つ以上の実施形態では、表エンジン(110)は、1つ以上のタグの中で指定された属性(例えば、セルの数、行の数、列の数、行の高さ、列の幅、等)を有する表の高水準の描写物として、格子をエクスポートする。
システム(100)は3つの構成要素(104、108、110)を有するものとして示されているが、本発明の他の実施形態では、システム(100)はより多くの又はより少ない構成要素を有することがある。更に、上述の各構成要素の機能は、構成要素間で分割されることがある。更に、各構成要素(104、108、110)は、反復動作を実行するために、複数回利用されることがある。
図2~図7は、本発明の1つ以上の実施形態による流れ図を示す。これらの流れ図は、表を含む画像を処理する工程を示す。具体的には、これらの流れ図は、画像中の表を識別する工程を示す。図2~図7での1つ以上の工程を、図1を参照して上に述べたシステム(100)の構成要素によって、行うことがある。本発明の1つ以上の実施形態では、図2~図7に示す1つ以上の工程を、省略するか、繰り返すか、かつ/又は、図2~図7に示した順序とは異なる順序で行うことがある。従って、本発明の範囲は、図2~図7に示した具体的な工程の構成に限定されるものとみなされるべきではない。
図2は、1つ以上の実施形態による主流れ図を示す。具体的には、図2の主流れ図は、画像内に含まれる表を識別するために、図1で述べたような表エンジン(110)によって実行される方法の大部分(又は全て)を説明する。
初めに、表を含む画像を取得する(工程205)。画像は、任意のソースから取得され(例えば、ダウンロードされる、走査される、等)、任意のサイズ又はフォーマットであることがある。例えば、画像は書込みボードを含むことがあり、表は、書込みボード上に手描きで描かれている。これに加えてあるいはこの代わりに、画像はハードコピー文書を走査したものであり、表は、ハードコピー文書中に見えており、表はコンピュータで生成されたものであることがある。手で描いたストロークの性質により、かつ/又は走査処理中に持ち込まれるエラーにより、表の行及び列は、完全に真っ直ぐなストロークによって境界をつけられる可能性は低い。1つ以上の実施形態では、表は、1つ以上の結合セルを含むことがある(図7A~図7Cを参照して以下で考察する)。
本発明の1つ以上の実施形態では、画像をマスク(例えば、二値画像)に変換して、表の各手描き線及び/又は表内のテキスト文字を識別する。表のストロークに対応する画素は1に設定し、残りの全ての画素は0に設定することがある。更に、図1を参照して上に述べたような専用座標系を、表に対して確立する。或いは、表の行及び列が画像の標準座標系とより良く整列するように、表を回転させることがある。
工程210では、図1を参照して上に述べたように、表内の全ての連結構成要素を識別する。工程215では、図1を参照して上に述べたように、表に対して骨格グラフを生成する。本発明の1つ以上の実施形態では、工程210で識別された全ての連結構成要素に対して骨格グラフを生成する。或いは、工程210で識別された最大の連結構成要素に対してのみ骨格グラフを生成する。
本発明の1つ以上の実施形態では、図1を参照して上に述べたように、骨格グラフは、表を表す縁辺及び頂点の集合を含むことがある。各縁辺は、表のストローク又はストロークの一部に相当することがあり、各頂点は2つ以上の縁辺の交点に相当することがある。言い換えると、頂点は縁辺を区切る。
工程220では、図1で述べたように、表に対して植字得点を計算する。
工程225では、図1で述べたように、表の骨格グラフ及び植字得点に基づいて表内の欠陥を特定し修復する。
工程230では、表に対する回転角度を決定し、図1で述べたように、表に対して専用座標系を生成して表の行及び列と整列させる。
工程235では、骨格グラフの縁辺及び頂点、表の植字得点、及び専用座標系に基づいて、図1で述べたように、表を構成する複数のセルを識別し検証する。
工程240では、図1で述べたように、内部セルを識別し、骨格グラフから除去する。
工程245では、内部セルを除去した後で、工程235で検証した複数のセル間のリンクを確立し、セル間のリンクを検証する。
工程250では、表内の結合セル(図7A~図7Cを参照して以下で考察する)を識別し分割する。
工程255では、図1で述べたように、表に対してセルの格子を生成し、表の高水準の描写物としてエクスポートする。
図3は、1つ以上の実施形態による副流れ図を示す。図3は、図2の流れ図の工程220に関して更なる詳細を提供する。図3の副流れ図は、少なくとも部分的に、表の植字得点計算方法の一例を示す。
工程315では、骨格グラフ内の各縁辺の角度及び長さを識別する。縁辺の長さは、縁辺の終端部間のユークリッド距離に相当することがある。縁辺の角度は、軸(例えば、x軸、y軸、等)と、縁辺の両方の終端部を通る線との間の角度に相当することがある。
工程320では、縁辺を、その角度に基づいて集団(例えば、角度区間)にグループ分けする。例えば、2度~3度の間の角度を有する縁辺は全て、同じ集団にグループ分けすることがある。別の例として、89.5度~90.5度の間の角度を有する縁辺は全て、同じ集団にグループ分けすることがある。次いで、各集団に対する集団長さを計算する。例えば、集団が、縁辺:E1、E2、E3、…、EKを有するものと仮定する。この集団の集団長さは、E1の長さ+E2の長さ+E3の長さ+…+EKの長さとして計算する。
工程325では、ヒストグラムを生成し、一方の軸に集団を、他方の軸に集団長さをプロットする。1つ以上の実施形態では、工程325はオプションである。ヒストグラムは、表がどれほど雛型表に近いかという視覚的な表現をユーザに提供する。
工程330では、集団長さ、及び全ての縁辺の全ての長さの総和を用いて、表の植字得点を計算する。具体的には、植字得点は、総和に対するN個の最大集団長さの比率であり得る。N=2の場合、植字得点=(CL1+CL2)/(全ての縁辺の全ての長さの総和)であり、CL1及びCL2は、2つの最大集団長さである。
この詳細な説明から恩恵を受ける当業者であれば、手描きの表が雛型表(即ち、90度で交差する完全に真っ直ぐな線を有する理論上の表)に緊密に類似している場合には、縁辺の大部分は0度又は90度の角度を有していることを、理解するであろう。従って、ゼロ度を含む集団及び90度を含む集団が、最大集団長さを有することになる。更に、これらの2つの集団が縁辺の大部分(場合によっては全て)を含むので、これらの2つの集団の集団長さの合計は、全ての縁辺の全ての長さの合計とほぼ等しくなる。従って、植字得点は、そのような表に対しては1に近くなる。
図3には示していないが、工程330に続いて、電子文書(例えば、OOXML文書、PDF文書、等)に含めるための高水準の表の描写物を生成する様々な処理での様々な許容誤差を、植字得点を使用して調節することがある。
図4A及び図4Bは、1つ以上の実施形態による副流れ図を示す。図4A及び図4Bは、図2の流れ図の工程225に関して更なる詳細を提供する。図4A及び図4Bの副流れ図は、表修復方法の一例を少なくとも部分的に示す。
工程420では、骨格グラフ上で複数の終端頂点を識別し、データ構造(例えば、配列)に保存する。具体的には、1つ以上の実施形態では、縁辺の端部が別の縁辺に接続されていない場合、この縁辺の端部の画素を終端頂点として識別する。本発明の1つ以上の実施形態では、3つの縁辺のみの交点は、T字型交点と呼ばれる。この3つの縁辺の交点の画素も、終端頂点として識別する。
工程425では、複数の終端頂点のそれぞれについて、関心領域を生成する。関心領域は、円錐、楕円、三角形などの形状を取ることがある。関心領域のサイズ及び/又は形状は、表が、真っ直ぐな行及び列を有する雛型表とどれほどよく一致するかによって決まることがある。例えば、表が適切に描かれている場合には、より小さなサイズの関心領域が適切である。
工程430では、各終端頂点の関心領域内部で複数の位置を識別する。1つ以上の実施形態では、各終端頂点の位置を、その終端頂点に対するデータ構造(例えば、配列)に保存する。
本発明の1つ以上の実施形態では、同一線上の接続が、垂直な接続よりも好まれる。従って、工程435では、終端頂点と同一線上の接続を形成することができる位置を、ターゲットとして選択する。次いで、ターゲットと終端頂点との間に人為的縁辺を生成し、骨格グラフに追加する。人為的縁辺が関心領域内の介在縁辺と交差する場合、及び、人為的縁辺が介在縁辺とほぼ垂直な接続を形成する場合、人為的縁辺を2つの部分に分割する。1つの部分は、終端頂点から介在縁辺までである。2つ目の部分は、介在縁辺からターゲットまでである。終端頂点を保存しているデータ構造からその終端頂点を除去する。ターゲットも終端頂点である場合、その終端頂点を、終端頂点を保存しているデータ構造から除去する。終端頂点を有する骨格グラフとは異なる骨格グラフ上にターゲットが位置する場合、ターゲットを有する骨格グラフを、終端頂点を有する骨格グラフに追加する(例えば、結合する)。
工程440では、残りの終端頂点について、終端頂点と垂直な接続を形成することができる位置を、ターゲットとして選択する。次いで、ターゲットと終端頂点との間に人為的縁辺を生成し、骨格グラフに追加する。終端頂点を有する骨格グラフとは異なる骨格グラフ上にターゲットが位置する場合、ターゲットを有する骨格グラフを、終端頂点を有する骨格グラフに追加する(例えば、結合する)。
1つ以上の実施形態では、工程435又は工程440中に、ターゲットに接続されていない終端頂点を、終端頂点を保存しているデータ構造から除去する。
工程450では、新たな終端頂点を識別するために、場合により結合された骨格グラフ上で新たな走査を行う。これらの新たな終端頂点は、工程435及び工程440で骨格グラフを結合した結果である。
新たな終端頂点が存在すると決定した場合、処理は工程435に戻る。新たな終端頂点は存在しないと決定した場合、処理は工程455に進む。
工程455では、残りの終端頂点のいずれか(即ち、同一線上の接続又は垂直な接続を形成することができない終端頂点)が角部の接続を形成することができるかどうかを決定する。
残りの終端頂点が角部の接続を形成しないと決定した場合、工程470で、その終端頂点を、終端頂点を保存しているデータ構造から除去する。残りの終端頂点の1つ以上の対が角部の接続を形成することができると決定した場合、処理は工程465に進んで、それらの対から角部のターゲットまで人為的縁辺を生成する。
図5A~図5Cは、1つ以上の実施形態による副流れ図を示す。図5A~図5Cは、図2の流れ図の工程235に関して更なる詳細を提供する。図5A~図5Cの副流れ図は、1つ以上の実施形態の主要な表検出方法で使用することができる表のセル検出方法の一例を、少なくとも部分的に示す。
本発明の1つ以上の実施形態では、図5A~図5Cに示す1つ以上の工程を、専用座標系を基準にした表の時計回りの方向の最初の選択に基づいて説明する。1つ以上の実施形態では、図5A~図5Cに示す工程は、反時計回りの方向に対して繰り返されることがある。
工程510では、隅角頂点、開始頂点、及び終了頂点を骨格グラフ上で特定する。更に、訪問済頂点(VV:visited vertices)データ構造、到来元データ構造、及び回転履歴(TH:turn history)データ構造(以下に工程535Bで考察する)を初期化する。本発明の1つ以上の実施形態では、隅角頂点、開始頂点、及び終了頂点をVVデータ構造に保存する。
1つ以上の実施形態では、隅角頂点とは、3つ以上の縁辺の交点を表す骨格グラフ上の頂点である。開始頂点は、隅角頂点から単一の縁辺によって分離されている。終了頂点は、隅角頂点から単一の縁辺によって分離されている。更に、隅角頂点と開始頂点との間の縁辺と、終了頂点と隅角頂点との間の縁辺とが垂直になるか又はほぼ垂直になるように、隅角頂点から開始し開始頂点と終了頂点との間にある縁辺を選択する。例えば、隅角頂点と開始頂点との間の縁辺は専用座標系で東の方向にあることがあり、一方、終了頂点と隅角頂点との間の縁辺は専用座標系で北の方向にあることがある。
1つ以上の実施形態では、VVデータ構造を使用して、開始頂点と終了頂点との間の矩形の又はほぼ矩形の経路を見つけるための処理中に、候補頂点(隅角頂点、開始頂点、及び終了頂点を含む)として選択された全ての頂点を記録する。
本発明の1つ以上の実施形態では、到来元データ構造は、セル検出処理中に探索(即ち、識別)又は選択された全ての頂点と、各頂点に先立つ頂点とを記録する。例えば、隅角頂点、終了頂点、及び開始頂点を、到来元データ構造の項目に登録する。終了頂点は、表の反時計回りの方向で隅角頂点に直接接続されるので、終了頂点は、到来元データ構造内の隅角頂点に対する項目において、隅角頂点に先立つ頂点として設定する。本発明の1つ以上の実施形態では、終了頂点に先立つ頂点は、終了頂点自体として設定する。
工程515では、開始頂点を現在の頂点に設定する。
工程520Aでは、現在の頂点に対して一組のルート選択肢(即ち、一組の隣接頂点)を決定する。各隣接頂点は、現在の頂点から単一の縁辺によって分離されている。1つ以上の実施形態では、各隣接頂点を到来元データ構造に保存する。
1つ以上の実施形態では、ルート選択肢(RO:route options)データ構造を初期化して、現在の頂点に対して決定されたそのルート選択肢を保存する。ROデータ構造の各項目としては、隣接頂点のうちの1つ、現在の移動ベクトル、新たな移動ベクトル、及び回転コスト(以下で考察する)が挙げられる。現在の移動ベクトルとは、現在の頂点に先立つ頂点から現在の頂点への移動方向である。新たな移動ベクトルとは、現在の頂点から隣接頂点への移動方向である。例えば、隅角頂点を現在の頂点として選択したと仮定する。隅角頂点に対して生成されたROデータ構造は、開始頂点を現在の頂点に隣接する頂点とする1つの項目を含む。現在の移動ベクトルは、終了頂点から隅角頂点への移動方向となり、新たな移動ベクトルは、隅角頂点から開始頂点への移動方向となる。
工程520Bでは、現在の頂点と隣接頂点との間の各縁辺(即ち、ルート)の長さを計算する。本発明の1つ以上の実施形態では、縁辺の長さは、縁辺の2つの終端部間のユークリッド距離として計算することができる。これに加えてあるいはこの代わりに、この長さは、縁辺の画素の経路内の画素数を数えることによって特定することもできる。
工程520Cでは、その組のルート選択肢中に、所定の閾値(即ち、最小の閾値長さ値)より長さが短い縁辺(即ち、ルート)が存在するかどうかを決定するための判定を行う。1つ以上の実施形態では、最小の閾値長さ値は、表の全てのストロークの平均の幅(画素での)の2倍として計算することがある。
本発明の1つ以上の実施形態では、その組のルート選択肢中の1つのルート選択肢が最小の閾値長さ値よりも短い長さを有する場合、そのルート選択肢の新たな移動ベクトルを、そのルート選択肢の現在の移動ベクトルと等しくなるように設定する。更に、そのルート選択肢の回転コストを0に設定し(即ち、計算の必要なしに、回転コストを直ちに0に設定し)、これにより、最小の閾値長さ値を満たさない骨格グラフ内の縁辺によって生成されるノイズは無視されるようになる。
1つ以上の隣接頂点が、最小の長さ閾値よりもが長さが短い縁辺によって現在の頂点から分離されていると決定した(即ち、工程520Cの評価結果が「はい」である)場合、処理は工程520Dに進む。工程520Dでは、長さが短い縁辺(即ち、ルート)に関連した各頂点について、新たな移動ベクトル(即ち、現在の頂点からその組のルート選択肢内の隣接頂点への移動方向)を、現在の移動ベクトル(即ち、骨格グラフで現在の頂点に先立つ頂点から現在の頂点への移動方向)と等しくなるように設定する。次いで、処理は工程520Eに進む。
1つ以上の実施形態では、現在の移動ベクトルは(x、y)というフォーマットで記録され、ここで(x、y)は、以前の頂点が専用座標系の原点になるように縁辺を平行移動した場合の、以前の頂点と現在の頂点との間の縁辺についての、現在の頂点の座標である。同様に、新たな移動ベクトルは(x、y)のフォーマットで記録され、ここで(x、y)は、現在の頂点が専用座標系の原点になるように縁辺を平行移動した場合の、現在の頂点と隣接頂点との間の縁辺についての、隣接頂点の座標である。
最小の長さ閾値と等しいか又はそれよりも長い縁辺によって、全ての隣接頂点が現在の頂点から分離されていると決定した(即ち、工程520Cの評価結果が「いいえ」である)場合、処理は直接工程520Eに進む。
工程520Eでは、残りの組のルート選択肢内の各頂点(即ち、最小の長さ閾値と等しいか又はこれより長い縁辺によって、現在の頂点から分離されている隣接頂点)に対して、新たな移動ベクトル(即ち、現在の頂点からその組のルート選択肢内の隣接頂点への移動方向)を決定する。
工程520Fでは、その組のルート選択肢内の各頂点について、回転コストを計算する。本発明の1つ以上の実施形態では、回転コストは、新たな移動ベクトルの角度と、現在の移動ベクトルに垂直であり、かつ現在の移動ベクトルの方向からみて次の基本方向にあるベクトルの角度との間の絶対的な差に基づく。次の基本方向にある垂直なベクトルの角度は、現在の移動方向に対して理想的な回転方向を表す(例えば、現在の移動ベクトルの移動方向が東である場合、理想的な回転方向は、時計回りで南に向かって90度である)。例えば、隣接頂点が、(124、-9)という現在の移動ベクトル(即ち、現在の移動方向)と、(130、-6)という新たな移動ベクトル(即ち、新たな移動方向)とを有すると仮定する。現在の移動ベクトルに垂直であり、かつ次の基本方向にあるベクトルは(9、124)であり、86度の角度を有する。新たな移動ベクトル(130、-6)の角度は-3度と計算される。86度と-3度との間の絶対的な差は89度であり、これをその頂点の回転コストとして設定する。
1つ以上の実施形態では、最小の閾値長さ値よりもが長さが短いルート選択肢に対する回転コストを、0に設定する(即ち、計算の必要なく、回転コストを直ちに0に設定する)。
工程525では、最小の回転コストを有するその組のルート選択肢の中の頂点を、候補頂点として選択する。
工程530Aでは、工程225で選択した候補頂点が、VVデータ構造内に保存された頂点と一致するかどうかを判定するための決定を行う。言い換えると、候補頂点が、VVデータ構造に既に記録済みであるかどうかを決定する。候補頂点がVVデータ構造に既に記録済みであると決定した場合、処理は工程530Dに進む。そうでなければ、候補頂点がVVデータ構造には存在しないと決定した場合、処理は工程530Bに進む。
工程530Dでは、その組のルート選択肢中の残りの頂点から、新たな(即ち、異なる)候補頂点を選択する。本発明の1つ以上の実施形態では、新たな候補頂点は、回転コストが最小である、その組のルート選択肢中の残りの頂点のうちの頂点である。本発明の1つ以上の実施形態では、工程525で選択した第1の候補頂点を、その組のルート選択肢から破棄する。
工程530Bでは、候補頂点の新たな移動方向(即ち、現在の頂点から候補頂点への移動方向)が、候補頂点の現在の移動方向(即ち、骨格グラフ上の現在の頂点の前の頂点から現在の頂点への移動方向)と一致する(例えば、それらが両方とも東である)かどうかを決定する。新たな移動方向が現在の移動方向と一致すると決定した場合、処理は工程535Aに進む。新たな移動方向が現在の移動方向と一致しないと決定した場合、処理は工程530Cに進む。
工程530Cでは、候補頂点の新たな移動方向(即ち、現在の頂点から候補頂点への移動方向)が、現在の移動方向の次の時計回りの基本方向と一致するかどうかを決定する。例えば、現在の移動方向が東である場合、新たな移動方向が南であるかどうかを決定する。別の例として、現在の移動方向が北である場合、次の移動方向が東であるかどうかを決定する。新たな移動方向が現在の移動方向の次の時計回りの基本方向と一致すると決定した場合、処理は工程535Bに進む。そうでなければ、処理は工程530Dに進む。
工程535Aでは、選択した候補頂点をVVデータ構造に保存し、その組のルート選択肢内の残りの頂点を、次の現在の頂点に対するROデータ構造内に保持する。
工程535Bでは、選択した候補頂点をVVデータ構造に保存し、その組のルート選択肢内の残りの頂点を、THデータ構造に移動させる。
本発明の1つ以上の実施形態では、THデータ構造は、複数組のルート選択肢を保持するスタックである。選択されなかった残りのルート選択肢の組を、THデータ構造に追加する。THデータ構造に保存したルート選択肢のスタックには、現在の頂点が終端であると決定した(即ち、現在の頂点が可能なルート選択肢を持たない)場合に、アクセスすることがある(以下に工程550で考察する)。
工程540では、候補頂点を、新たな現在の頂点として指定する。工程545では、新たな現在の頂点に対して、工程520Aを参照して上に述べたルート選択肢(即ち、隣接頂点)の組を決定し、新たな現在の頂点に対するルート選択肢の組の中の各隣接頂点を、到来元頂点データ構造に保存する。
工程550では、新たな現在の頂点に対するルート選択肢の組が、少なくとも1つのルート選択肢を含むかどうかを判定するための決定を行う。工程550の決定結果が「いいえ」である場合、処理は工程555に進み、工程555では、最上位の組のルート選択肢がTHデータ構造から取り出され、新たな(即ち、異なる)候補頂点をその組から選択する。本発明の1つ以上の実施形態では、選択される新たな(即ち、異なる)候補頂点は、その組に保存されたルート選択肢のうちで回転コストが最小の頂点である。一旦新たな(即ち、異なる)候補頂点を選択すると、処理は工程530に戻る。1つ以上の実施形態では、ルート選択肢を全く持たない現在の頂点を、VVデータ構造から除去する。
工程550での決定結果が「はい」である(即ち、現在の頂点に対して少なくとも1つのルート選択肢が存在する)場合、処理は工程565に進み、工程565では、新たな現在の頂点のルート選択肢(即ち、隣接頂点)が終了頂点を含むかどうかを判定するための決定を行う。
工程565での決定結果が「いいえ」である場合、処理は工程520Bに戻り、新たな現在の頂点に対して上述の工程を繰り返す。
工程565での決定結果が「はい」である場合、処理は工程575に進み、表内のセルに対してルートを生成する。1つ以上の実施形態では、生成したルートは、VVデータ構造に保存された全ての頂点を含む。1つ以上の実施形態では、到来元データ構造に保存されたデータは、現在の頂点から開始して最終的に開始頂点に到達し、次いで隅角頂点に到達し、終了頂点で終了する生成されたルートを後戻りする(即ち、後ろ向きに進む)ために使用する。
図6A~図6Cは、1つ以上の実施形態による副流れ図を示す。図6A~図6Cは、図2の流れ図の工程235に関して更なる詳細を提供する。この副流れ図は、(図5A~図5Cで説明した表のセル検出方法によって)検出された表のセルを検証するために使用することができる表のセル検証方法の一例を、少なくとも部分的に示す。
図6A~図6Cの以下の説明に現れる時計回りの例は、反時計回りと置き換えられてもよく、反時計回りの例は時計回りと置き換えられてもよい。
図6Aを参照すると、まず、工程605で、セル候補に関連した一組の縁辺を、検証のために取得する。この組の縁辺は、画像中の表に対する骨格グラフから識別されたものである。各縁辺は、表のストローク又はストロークの一部に相当することがあり、各頂点は2つ以上の縁辺の交点に相当することがある。言い換えると、頂点は縁辺を区切る。
工程610では、その組の縁辺内の最長の長さを有する縁辺を決定する。最長縁辺の向きも決定する。本発明の1つ以上の実施形態では、縁辺の長さは、縁辺の2つの終端部間のユークリッド距離として計算することができる。これに加えてあるいはこの代わりに、この長さは、縁辺の画素の経路内の画素数を数えることによって特定することもできる。更に、縁辺の向きを、その縁辺の端点同士を結ぶ線分の法線と最も緊密に整列する専用座標系の基本方向として、決定する。
工程615では、最長縁辺を含むセル候補の境界線に対する初期縁辺を決定し、最長縁辺の向きを、現在の向きとして設定する。
1つ以上の実施形態では、境界線の初期縁辺を決定することは、最小の長さ閾値より長く、かつ最長縁辺の向きから±90度の向きを有する縁辺を見つけるまで、表のある方向に(即ち、時計回り又は反時計回りに)、最長縁辺に先立つ縁辺を辿ることを含むことがある。例えば、最長縁辺の向きが北であり、追跡の方向は反時計回りであると仮定する。最小の長さ閾値より長く、かつ西向きである縁辺が検出されるまで、最長縁辺に先立つ全ての縁辺を反時計回りの方向に追跡する。西向きであるこの縁辺が短い縁辺(即ち、最小の閾値長さ値よりも短い縁辺)である場合、最小の長さ閾値よりも長い西向きの縁辺が検出されるまで、追跡を再開する。
工程620では、境界線構築処理を初期化して、現在の向きを有する境界線を再構築(即ち、構築)し、かつ、境界線構築処理の方向に(即ち、時計回り又は反時計回り)次の向きを有する境界線の初期縁辺を見つける。この工程については、図6Bを参照して以下で説明する流れ図で、より詳細に更に説明する。具体的には、境界線構築処理の出力は、現在の向きを有する境界線を形成する縁辺を保存する、局所有向縁辺データ構造である。
工程625では、境界線の縁辺を、局所有向縁辺データ構造に記録する。局所有向縁辺データ構造内のこの組の縁辺を、候補セル全体に対する全体的な有向縁辺データ構造に追加する(即ち、記録する)。更に、ゼロに初期化されていた訪問済縁辺計数値を、局所有向縁辺データ構造内の縁辺の個数だけ増加させる。
工程630では、現在の向きを有する境界線の再構築時に、現在の向きを90度回転させる。
工程635では、現在の向きが最長縁辺の向きと一致するかどうかを判定するための決定を行う。現在の向きが最長縁辺の向きと一致する(即ち、工程635での決定結果が「はい」である)場合には、境界線構築処理は4回実行されており、従って候補セルの4つの全ての境界線を再構築済みである。そのような場合には、処理は工程640に進み、4つの局所有向縁辺データ構造(即ち、全体的な有向縁辺データ構造)に記録された縁辺を使用して、候補セルを検証する。
工程635の決定結果が「いいえ」である場合、境界線構築処理によって候補セルの4つの全ての境界線を再構築するように試みるまで、処理は工程620に戻る。上に述べたように、境界線構築処理の実行は、各候補セルに対して4回(即ち、基本方向毎に1回)試みる。
図6Bは、図6Aの流れ図の工程620を更に詳説する1つ以上の実施形態による副流れ図を示す。図6Bの副流れ図は、境界線構築処理を少なくとも部分的に示す。上に述べたように、この処理を4回(即ち、基本方向毎に1回)実行して、候補セルの4つの境界線を再構築することができる。
工程645では、現在の向きを有する境界線の初期縁辺から開始する縁辺の追跡を初期化する。
工程650では、工程645の追跡中に遭遇した縁辺の部分集合を局所有向縁辺データ構造に追加する。
工程660では、最小の長さ閾値より長く、かつ次の向きを有する縁辺に、追跡中に遭遇する。これを受けて、次の向き(即ち、現在の向きの±90度の向き)を有する境界線の初期縁辺の探索を実行する。この工程については、図6Cを参照して以下で説明する流れ図で、更に説明する。
工程670では、次の向きを有する境界線の初期縁辺(及び次の向きを有する任意の他の縁辺)を、局所有向縁辺データ構造から除去する。1つ以上の実施形態では、局所有向縁辺データ構造に残っている唯一の縁辺(複数可)は、候補セルの1つの境界線を構成する縁辺である。
図6Cは、図6Aの工程615及び図6Bの工程660を更に詳説する1つ以上の実施形態による副流れ図を示す。図6Cの副流れ図は、候補セルの境界線の初期縁辺(即ち、候補セルの境界線の角部にある縁辺)を探索する処理を少なくとも部分的に表す。
工程675では、3以上の程度を有する頂点を有する縁辺の探索を行う。1つ以上の実施形態では、探索される縁辺は、局所有向縁辺データ構造に保存されている組の縁辺であってもよい。これに加えてあるいはその代わりに、縁辺は、最長縁辺が識別された後で追跡中に遭遇する全ての縁辺であってもよい。
工程680では、3以上の程度を有する頂点を有する少なくとも1つの縁辺が識別されたかどうかを判定するための決定を行う。
工程680での決定結果が「はい」である場合、3以上の程度を有する頂点を有する単一の縁辺のみが工程675で見つかったのかどうかを判定するための別の決定を、工程685で行う。
工程685での決定結果が「はい」である(即ち、3以上の程度を有する頂点を有する縁辺が1つだけ存在する)場合、この縁辺を選択し、次の向きを有する境界線の初期縁辺として設定する。
工程680又は工程685のいずれかの決定結果が「いいえ」である場合、処理は工程695に進み、向きが変化している1番目の縁辺を、次の向きを有する境界線の初期縁辺として選択する。
図7A~図7Cは、1つ以上の実施形態による副流れ図を示す。図7A~図7Cは、図2の流れ図の工程250に関して更なる詳細を示す。この副流れ図は、主要な表検出方法で使用することができる結合セル分割方法の一例を、少なくとも部分的に示す。
本発明の1つ以上の実施形態では、図7A~図7Cに示す1つ以上の工程を、専用座標系での西の基本方向の最初の選択に基づいて説明する。1つ以上の実施形態では、図7A~図7Cに示す工程を、北又は南の基本方向に対して繰り返すことがある。
工程715では、表内の結合セルの西及び東の境界線上にある全ての非隅角頂点を識別し、データ構造(例えば、配列)に保存する。本発明の1つ以上の実施形態では、結合セルとは、複数の他のセル(即ち、隣接セル)と境界線のうちの1本(例えば、西の境界線)を共有するセルである。隣接セルの境界線(例えば、南の境界線)が、結合セルの境界線(例えば、西の境界線)と交差する(即ち、接触する)ことがある。この交点が、結合セルの角部で発生していない場合、この交点は結合セルの「非隅角頂点」と呼ばれる。
工程720では、工程715で識別した非隅角頂点のそれぞれに対して、内部分割線(即ち、非隅角頂点で開始し終了する幾何学線)を生成する。例えば、ある西の非隅角頂点(即ち、表内の結合セルの西の境界線上で識別された非隅角頂点)を選択した場合、選択した西の非隅角頂点とデータ構造内の東の非隅角頂点のそれぞれとの間に幾何学線を生成する。1つ以上の実施形態では、非隅角頂点に対して生成した内部分割線の数は、ゼロであることがある。例えば、選択した西の非隅角頂点が、接続すべき東の非隅角頂点を持たない場合、この選択した西の非隅角頂点については、内部分割線を生成しない。
工程725では、基準を満たさない内部分割線を破棄する。具体的には、結合セルの非隅角頂点に対する内部分割線が、その結合セルの反対側の境界線と交差しない場合、及び/又は、内部分割線が無効な境界線と交差する場合、その内部分割線を破棄する。1つ以上の実施形態では、無効な境界線とは、非隅角頂点が属する結合セルの境界線と実質的に平行ではない、表内の任意のセルの境界線である。言い換えると、非隅角頂点が属する境界線が結合セルの垂直の境界線である場合、内部分割線は、表内のどのセルの水平の境界線とも交差できない。例えば、西の非隅角頂点を有する結合セルが存在すると仮定する。その西の非隅角頂点からの分割線が、その結合セルの東の境界線と交差(即ち、交差及び/若しくは接触)しない場合、並びに/又は、その西の非隅角頂点からの分割線が、表内のいずれかのセルの北又は南の境界線と交差(即ち、交差及び/若しくは接触)する場合、その分割線を破棄する。
本発明の1つ以上の実施形態では、工程725で破棄しなかった残りの内部分割線を、「可能分割線データ構造」と呼ばれるデータ構造(即ち、配列)に保存する。このデータ構造は、表内の1つ以上の結合セルを分割するために1つ以上の人為的縁辺で置き換えることができる、全ての可能な分割線を表す。
工程730では、工程715で識別した全ての非隅角頂点について、外周部分割線(即ち、非隅角頂点から開始し表の外周部で終了する幾何学線)を生成する。1つ以上の実施形態では、各外周部分割線は、専用基本方向のうちの1つの方向に進み、その外周部分割線が開始する結合セルの境界線と実質的に平行ではない、表内のいずれかのセルの境界線とは交差(即ち、横断及び/又は接触)しない。言い換えると、結合セルの垂直な境界線から始まる外周部分割線は、その外周部分割線が表の外周部に向かって基本方向に進むにつれて、表内のセルの垂直な境界線とのみ交差(即ち、横断及び/又は接触)することがある。具体的には、外周部分割線の進行方向は、非隅角頂点が位置する境界線の専用基本方向とは反対になる。例えば、西の非隅角頂点の場合、外周部分割線はこの西の非隅角頂点から開始し、表の外周部に到達するまで東に進む。外周部分割線が表内のいずれかのセルの北又は南の境界線と交差(即ち、横断及び/又は接触)する場合、外周部分割線を生成しない。外周部分割線を、内部分割線を有する可能分割線データ構造に保存する。
工程740では、可能分割線データ構造内の各分割線(内部及び外周部)について、信頼値を計算する。信頼値は、分割線が、1つ以上の結合セルを分割する理論上の線とどれほどよく一致するかという尺度を提供する。
本発明の1つ以上の実施形態では、信頼値は0から1までの範囲の得点であることがあり、1は最も高い得点として解釈される。分割線の信頼値は、その分割線の長さに基づいて計算する。内部分割線の長さとは、ユークリッド距離か、又はそれに代えて、2つの非隅角頂点間の画素数である。外周部分割線の長さとは、ユークリッド距離か、又はそれに代えて、非隅角頂点と表の外周部上の点との間の画素数である。長さが短いほど、信頼値は高くなる。例えば、より短い分割線は、潜在的に、手描きの表のより少ないセル並びに/又はセル内の文字及びテキストと交差(即ち、横断及び/又は接触)することになり、従って、結合セルのより正確な分割をもたらす。別の例として、長さがより短い分割線は、2つの非隅角頂点同士を接続させる可能性がより高く、これは、非隅角頂点を手描きの表上の点(例えば、手描きの表の外周部上の点)と接続させることよりも優先度が高い。
本発明の1つ以上の実施形態では、分割線の信頼値は、分割線の進行方向と専用座標系の最も近い軸との間の角度(即ち、分割線の進行方向が、分割線が進もうとしている専用座標系の基本方向とどれほど良く一致するか)にも基づく。分割線の進行方向とは、非隅角頂点から開始し、分割線の方向に沿って非隅角頂点から離れる方向に向かうベクトルの方向である。角度がゼロに近づくほど、信頼値が高くなる。
工程745では、各非隅角頂点について、可能分割線データ構造内の分割線を、前部に最も高い信頼値を配し後部に最も低い信頼値を配した順序に並べ替える。
工程750では、可能分割線データ構造内の非隅角頂点を、(i)分割線の数、(ii)非隅角頂点の分割線の最小信頼値、に基づいて並べ替える。例えば、可能分割線データ構造を、単一の分割線のみを有する全ての非隅角頂点を前部に配し、分割線の数が最も多い非隅角頂点を後部に配して、並べ替える。更に、同じ数の分割線を有する非隅角頂点を、最も小さな最小信頼値を有する非隅角頂点を前面に配して始まり、最も大きな最小信頼値を有する非隅角頂点を後部に配する順序に、並べ替える。
工程755では、単一の分割線のみを有する全ての非隅角頂点を、1つ以上の人為的縁辺と置き換えるために選択し、可能分割線データ構造から破棄する。これらの選択された分割線を、可能分割線データ構造から、「最終分割線データ構造」と呼ばれる別のデータ構造に移動させる。最終的に、最終分割線データ構造に保存されたこれらの分割線のそれぞれについて、1つ以上の人為的縁辺を生成し、骨格グラフに追加する。人為的縁辺は、その人為的縁辺が表の既存の縁辺と交差(即ち、横断)しない限り、人為的縁辺が置き換える分割線と同じ終端部を有する。例えば、2つの非隅角頂点間、又は非隅角頂点と表の外周部上の点との間に既存の縁辺が存在する場合(即ち、人為的縁辺によって接続されることになる表上の2点間に介在縁辺が存在する場合)、第1の点から介在縁辺までの第1の人為的縁辺を、介在縁辺から第2の点までの第2の人為的縁辺を生成する前に、生成する。
工程760では、並べ替えられた可能分割線データ構造内に残っている1番目の非隅角頂点を選択する。この非隅角頂点は、複数の分割線を有する。
工程765では、工程760で選択した非隅角頂点の最も高い信頼値を有する分割線を選択する。
工程770では、異なる非隅角頂点の分割線が工程765で選択した分割線と重複し、この重複分割線がその異なる非隅角頂点に対して最も高い信頼値を有する場合、その異なる非隅角頂点の重複分割線を識別する。(i)工程765で選択した分割線、又は(ii)工程765で選択した分割線と重複する、異なる非隅角頂点の分割線、のいずれか一方を、可能分割線データ構造から破棄する。破棄した分割線に関連付けられた非隅角頂点も、可能分割線データ構造から破棄する。破棄しなかった残りの分割線を、最終分割線データ構造に移動させて、最終的には1つ以上の人為的縁辺と置き換える。一旦残りの分割線を最終分割線データ構造に移動させると、残りの分割線に関連付けられた非隅角頂点を可能分割線データ構造から破棄する。
例えば、非隅角頂点Aが複数の分割線:X1、X2、X3を有すると仮定する。更に、非隅角頂点Bも複数の分割線:Y1、Y2を有すると仮定する。ここで、X2は、X1及びX3の信頼値と比べて最も高い信頼値を有すると仮定する。Y1は、Y2の信頼値と比べて最も高い信頼値を有すると仮定する。最後に、X2とY1は重複する(即ち、X2は非隅角頂点Aから非隅角頂点Bまで延びており、Y1は非隅角頂点Bから非隅角頂点Aまで延びている)と仮定する。X2とY1は重複し、かつ、X2が非隅角頂点Aに対して最も高い信頼得点を有すると同時にY1が非隅角頂点Bに対して最も高い信頼得点を有するので、X2とY1の一方を破棄し、他方を1つ以上の人為的縁辺で置き換える。破棄した分割線に関連付けられた非隅角頂点を、更なる考察から除外する。この除外した非隅角頂点が他の分割線を持っていても、そのようにする。
工程775では、可能分割線データ構造内に残っている非隅角頂点があるかどうか(即ち、可能分割線データ構造内の全ての非隅角頂点を破棄していないかどうか)を判定するための決定を行う。
工程775での決定結果が「はい」である場合、処理は工程760に戻り、可能分割線データ構造内の全ての非隅角頂点を破棄するまで、繰り返す。
工程775での決定結果が「いいえ」である場合、処理は工程780に進み、可能分割線データ構造から最終分割線データ構造に移動された分割線のそれぞれについて、複数組の人為的縁辺を生成する。言い換えると、工程755~770で選択した分割線の全てを、1つ以上の人為的縁辺で置き換える。人為的縁辺を、骨格グラフに追加する。
図8A~図8Cは、本発明の1つ以上の実施形態による実施例を示す。具体的には、図8A~図8Cは、図2の流れ図の、主として工程205、工程215、及び工程230の実施例を示す。図8Aは、手描きの表(808)を有する画像(806)を示す。具体的には、表(808)は、行及び列を形成する手描きのストロークを含む。表(808)の1つ以上のセルは、テキストを含むことがある。或いは、表の1つ以上のセルが結合されていることがある。手描きの表(808)は、傾いて描かれていることがある。言い換えると、表(808)は、画像(806)の標準座標系(899)からずれている。
図8Bは、マスクに変換された後の画像(810)を示す。更に、専用座標系(812)が確立されている。この専用座標系(812)は、標準座標系(899)よりも表(808)の行及び列とよりよく整列する軸を有する。
図8Cは、表の部分骨格グラフ(814)を示す。図8Cに示すように、複数の手描きのストローク(816)によって表の行及び列が形成される。骨格グラフ(814)は、手描きの表を表す一組の縁辺(895)と頂点を含む。各縁辺(895)は、手描きの表のストローク(816)又はストロークの一部に相当し、各頂点は2つ以上の縁辺(895)の交点(818)に相当する。言い換えると、縁辺(895)は頂点によって分離される。更に、各縁辺(895)は、ストローク(816)の一方の端部からストローク(816)の他方の端部までの、ストロークのほぼ中央に位置する画素の経路を含む。図8Cでは、経路/縁辺の幅は1画素である。
図9A及び図9Bは、本発明の1つ以上の実施形態による実施例を示す。具体的には、図9A及び図9Bは、図3の流れ図を参照して上に述べた表の植字得点計算方法の実施例を示す。
図9Aは、図8A~図8Cを参照して上に述べたような、手描きの表(808)の画像(810)及び骨格グラフ(814)に類似した、手描きの表(902)のマスク及び骨格グラフを示す。図3を参照して上に述べたような、手描きの表の植字得点を判定する方法を、手描きの表(902)に適用する。
図9Bは、図3を参照して上に述べたようなヒストグラム(903)を示す。各縁辺の角度、及び手描きの表(902)の骨格グラフの各縁辺の長さを決定した後で、ヒストグラム(903)を生成する。ヒストグラム(903)のx軸は、縁辺の集団(906)に対応する。具体的には、各集団は、同じ又は類似の角度の縁辺を有する。ヒストグラム(903)のy軸は、各集団(906)の集団長さ(904)に対応する。上述のように、集団の集団長さとは、その集団内の縁辺の長さの合計である。
図9A及び図9Bの例について、手描きの表(902)の植字得点を計算するために、上位の2つの集団長さのみ(即ち、N=2)を使用すると仮定する。図9Bに示すように、上位2つの集団長さは、0度又は1度に等しい(又はほぼ等しい)角度を有する縁辺に関連している。これらの上位2つの集団長さの合計は、26,297である。全ての集団からの全ての縁辺の長さの総計は、38,523である。従って、手描きの表(902)の植字得点は、26297/38523=0.68である。
図10A及び図10Bは、本発明の1つ以上の実施形態による実施例を示す。具体的には、図10A及び図10Bは、図4A及び図4Bの流れ図を参照して上述の表修復方法の実施例を示す。
図10Aは、図8A~図8Cを参照して上に述べたような、手描きの表(808)の画像(810)及び骨格グラフ(814)に類似した、手描きの表(1002)のマスク及び骨格を示す。図10Aから分かるように、手描きの表(1002)は、修復を必要とすることがある複数の欠陥(1099)を含む。
本発明の1つ以上の実施形態では、誤判定の接続を防止するために、品質閾値を使用する。具体的には、潜在的な人為的縁辺のそれぞれについて品質得点を計算し、この品質得点を品質閾値と比較する。品質得点が品質閾値未満である場合、潜在的な人為的縁辺を破棄する(即ち、骨格グラフに追加しない)。表がどれほどよく雛型表と一致するかに基づいて、品質閾値を調節することがある。例えば、適切に描かれた手描きの表については品質閾値をより高くすることがあり、逆もまた同様である。例えば、品質得点は[0、1]の範囲を取ることがあり、品質閾値は0.82とすることがある。
1つ以上の実施形態では、特定の欠陥(1099)を修復すると表に新たな誤差が持ち込まれることがあるので、全ての欠陥(1099)に修復が必要なわけではない。具体的には、実際の行又は列の境界線ではないストローク(「偽ストローク」)(例えば、実際にはテキスト文字、ノイズ、等)を含む表について考える。それにも関わらず、骨格化処理中に、この偽ストロークに対して縁辺が生成されることがあり、この縁辺の端部が終端頂点として分類されることがある。品質閾値は、偽ストロークに関連付けられたこの終端頂点に対して人為的縁辺が生成されるのを防ぐ。
本発明の1つ以上の実施形態では、同一線上の接続に対する品質得点を、品質得点=植字得点×同一線性得点+(1-植字得点)×間隙得点として計算する。
距離=終端頂点とその位置との間の距離、とする。ストローク長=終端頂点が位置するストロークの長さ、とする。距離≦ストローク長であるなら、間隙得点=1とする。さもなければ、間隙得点=max(0.0、(2*ストローク長-距離)/ストローク長)、とする。
同一線性得点は、2つの得点(得点1、得点2)の平均として計算され、これは、(i)足跡方向と接続方向(即ち、終端頂点とその位置とを接続するベクトルの方向)とがどれほどよく整列するか、(ii)足跡方向と行先方向とがどれほど良く整列するか、を評価する。角度1=足跡方向と接続方向との間の角度(度)、とする。このとき、得点1=max(0.0、(90°-角度1)/90°)である。角度2=足跡方向と行先方向との間の角度(度)、とする。このとき、得点2=max(0.0、(90°-角度2)/90°)である。最後に、同一線性得点=(得点1+得点2)/2、である。
本発明の1つ以上の実施形態では、接続されていない縁辺の端部に終端頂点がある場合、足跡方向とは、終端画素の前のN番目の画素から縁辺の画素の経路上の終端画素に向かうベクトルの方向である。例えば、N=5である。他の値のNも可能である。T字型交点に相当する終端頂点の場合、足跡方向とは、3つの縁辺の交点にある画素に向かう、縁辺の画素の経路上の、3つの縁辺の交点からk画素だけ離れた、T字形交点の茎状部から開始するベクトルの方向である。例えば、k=5である。他の値のkも可能である。
本発明の1つ以上の実施形態では、行先方向とは、終端頂点から離れた位置にある縁辺の方向である。これは、その位置から、終端頂点から離れていく方向に、その位置からq画素離れた縁辺上の地点までのベクトルとして計算することができる。例えば、q=5である。他の値のqも可能である。
本発明の1つ以上の実施形態では、垂直な接続に対する品質得点を、品質得点=植字得点×垂直性得点+(1-植字得点)×間隙得点として計算する。
距離=終端頂点とその位置との間の距離、とする。ストローク長=終端頂点が位置するストロークの長さ、とする。距離≦ストローク長であるなら、間隙得点=1とする。さもなければ、間隙得点=max(0.0、(2*ストローク長-距離)/ストローク長)、とする。
垂直性得点は、足跡方向と行先方向との間の角度が、どれほど直角に近いかを表わす。角度=足跡方向と行先方向との間の角度(度)、とする。角度<90°なら、垂直性得点=角度/90°、である。角度≧90°なら、垂直性得点=(180°-角度)/90°、である。
図10Bは、一旦表修復処理が完了した、手描きの表(1002)を示す。図10Bから分かるように、複数の人為的縁辺(1012)が生成され、骨格グラフに追加されて欠陥が除去されている。具体的には、終端頂点の数が減っている。図10Bに示す表(1002)は、電子文書(例えば、OOXML文書、PDF文書)に含めるための表の高水準の描写物を生成するように試みる処理を含む、更なる処理により適している。
図11A~図11Cは、本発明の1つ以上の実施形態による実施例を示す。具体的には、図11A~図11Cは、図5A~図5Cの流れ図を参照して上に述べた表のセル検出方法の実施例を示す。
図11Aは、図8A~図8Cを参照して上に述べたような、手描きの表(808)の画像(810)及び骨格グラフ(814)に類似した、手描きの表(1102)の部分的なマスク及び骨格グラフを示す。図8A~図8Cを参照して考察したように、手描きの表(1102)に対して専用座標系(812)が確立されている。図11Aから分かるように、手描きの表(1102)の骨格グラフは複数の頂点(5、6、18、19、23、24、25、26、27、29、30)を含む。頂点(27)を隅角頂点として選択したと仮定する。従って、頂点(23)が開始頂点であり、頂点(5)が終了頂点である。開始頂点(即ち、頂点(23))と終了頂点(即ち、頂点(5))のそれぞれは、単一の縁辺によって隅角頂点(即ち、頂点(27))から分離されている。更に、頂点(27)から頂点(23)までの縁辺の方向は東であり、頂点(5)から頂点(27)までの縁辺の方向は北である(即ち、2つの縁辺は垂直又はほぼ垂直である)。これは、上述の工程510の一例である。
図11Bは、選択した隅角頂点が頂点(27)である図11Aで考察した例について、表内のセルのルートを構成する頂点の全てを入力した後の、訪問済頂点(VV)データ構造(1103)の一例を示す。図11Aから分かるように、終了頂点(5)に隣接する頂点である頂点(6)は、VVデータ構造(1103)に保存される最後の頂点である。
図11Cは、選択した隅角頂点が頂点(27)である図11A及び図11Bで考察した例について、表内のセルのルートを生成するために探索された頂点の全てを含む到来元(CF)データ構造(1105)の一例を示す。図11Cから分かるように、到来元(CF)データ構造(1105)の各項目は、頂点と、骨格グラフ上の反時計回りの方向にあるその頂点の直前の頂点とを含む。更に、頂点(5)が終了頂点であることを示すために、頂点(5)の前の頂点はそれ自体として設定する。
図12A及び図12Bは、本発明の1つ以上の実施形態による実施例を示す。具体的には、図12A及び図12Bは、図6A~図6Cの流れ図を参照して上に述べた表のセル検証方法の実施例を示す。
図12A及び図12Bは、図8A~図8Cを参照して上に述べたような、手描きの表(808)の画像(810)及び骨格グラフ(814)に類似した、手描きの表(1202)の部分的なマスク及び骨格グラフを示す。図8A~図8Cを参照して考察したように、手描きの表(1202)に対して専用座標系(812)が確立されている。
図12Aから分かるように、手描きの表(1202)の骨格グラフは、手描きの表(1202)の候補セル(1299)を形成する一組の縁辺を分離する複数の頂点(1211、1214、1215、1220、1221、1223、1225、1227、1228、1230)を含む。最長縁辺(1201)は頂点(1215)と頂点(1214)の間の縁辺であり、最長縁辺(1201)の向きは北である。図12Aから分かるように、候補セル(1299)は10個の縁辺を含む。
本発明の1つ以上の実施形態では、図6A~図6Cで述べたような表のセル検証方法が、図12Aに示したような候補セル(1299)を形成する一組の縁辺を分離する複数の頂点(1211、1214、1215、1220、1221、1223、1225、1227、1228、1230)に適用された後で、候補セル(1299)は手描きの表(1202)のほぼ矩形のセルとして受け入れられ、図12Bの手描きの表(1202)内のセル(1297)(即ち、灰色の線で示した縁辺によって形成されるセル)として描かれる。
図13は、本発明の1つ以上の実施形態による実施例を示す。具体的には、図13は、図1及び図2の流れ図の工程240を参照して上に述べた内部セル識別及び除去方法の実施例を示す。
図13は、図8A~図8Cを参照して上に述べたような、手描きの表(808)の画像(810)及び骨格グラフ(814)に類似した、手描きの表(1302)のマスク及び骨格グラフの概略を示す。図13から分かるように、セル(1399)はセル(1397)と、頂点(1315)と頂点(1317)との間の共通縁辺を共有する。更に、セル(1397)はセル(1399)と重複し、セル(1399)よりもサイズ(即ち、面積)が小さい。言い換えれば、セル(1397)はセル(1399)の内部に完全に包含される。従って、セル(1397)はセル(1399)の内部セルとして識別され、骨格グラフから削除される。
図14は、本発明の1つ以上の実施形態による実施例を示す。具体的には、図14は、図1及び図2の流れ図の工程245を参照して上に述べたセルリンク方法を示す。
図14は、図8A~図8Cを参照して上に述べたような、手描きの表(808)の画像(810)及び骨格グラフ(814)に類似した、手描きの表(1402)のマスク及び骨格グラフの概略を示す。図14から分かるように、表の全てのセル(白い実線で示す)に対して、リンク(灰色の破線で示す)が確立されている。リンク(灰色の破線で示す)は、表の各セル(白い実線で示す)の関係性を確立する(即ち、各セルがどのように別のセルに接続されているかを説明する)。
図15A及び図15Bは、本発明の1つ以上の実施形態による実施例を示す。具体的には、図15A及び図15Bは、図7A~図7Cの流れ図を参照して上に述べた結合セル分割方法の実施例を示す。
図15Aは、図8A~図8Cを参照して上に述べたような、手描きの表(808)の画像(810)及び骨格グラフ(814)に類似した、手描きの表(1502)のマスク及び骨格グラフの概略を示す。図15Aから分かるように、手描きの表(1502)は、セルの境界線(即ち、縁辺)上で識別された頂点(1500~1541)を有する複数のセル(1583~1599)を含む。特定のセル(1583、1584、1589、1592、1593、1594、1599)は、手描きの表(1502)の1つ以上の実際のセルを含む結合セルである。
本発明の1つ以上の実施形態では、専用座標系(812)が、手描きの表(1502)の垂直軸及び水平軸に整列している。
図15Bは、4つの基本方向の全て(即ち、北、東、南、西)について結合セル分割方法によって生成された最終分割線(1520)を重ね合わせた手描きの表(1502)を示す。追加の最終分割線も図15Bに示しているが、ラベル付けはしていない。全ての最終分割線を骨格グラフに追加される1つ以上の人為的縁辺で置き換えて、手描きの表(1502)の修正された高水準の描写物を生成する。
図16A及び図16Bは、本発明の1つ以上の実施形態による実施例を示す。具体的には、図16A及び図16Bは、図1及び図2の流れ図の工程255を参照して上に述べたセルの格子の生成及び出力を示す。
図16Aは、インポート(入力)された表画像(1602)を示す。図16Aから分かるように、インポートされた表画像(1602)は、完全に真っ直ぐではない行及び列を有する手描きの表である。更に、インポートされた表画像(1602)は、表の各セル内に複数のテキスト及び/又は文字を含む。
図16Bは、図1~15で述べたような1つ以上の実施形態の表検出方法をインポートされた表画像(1602)に適用した後で、インポートされた表画像(1602)に対して生成されたエクスポート格子(1604)を示す。図16Bから分かるように、エクスポート格子(1604)を構成するセルは、インポート表画像(1602)の行及び列と一致し、従って、エクスポート格子(1604)は、インポート表画像(1602)の高水準の描写物を正確に表す。図16Bから更に分かるように、一旦エクスポート格子(1604)が生成されると、インポート表画像(1602)上でテキスト/文字認識が実行されて、インポート表画像(1602)に含まれる元のテキスト及び/又は文字が識別される。
本発明の実施形態は、使用されるプラットフォームに関わらず、実質上いかなる種類のコンピュータシステムにも実装することができる。例えば、コンピュータシステムとは、1つ以上の携帯装置(例えば、ラップトップコンピュータ、スマートフォン、個人用デジタル補助装置、タブレットコンピュータ、又は他の携帯装置)、デスクトップコンピュータ、サーバ、サーバシャーシ内のブレード、又は、本発明の1つ以上の実施形態を実行するために少なくとも最小の処理能力、メモリ、及び入出力装置を含む任意の他の種類のコンピュータ装置(複数可)であってもよい。例えば、図17に示すように、コンピュータシステム(1700)は、1つ以上のコンピュータプロセッサ(1702)、関連メモリ(1704)(例えば、ランダムアクセスメモリ(RAM)、キャッシュメモリ、フラッシュメモリ、等)、1つ以上の記憶装置(1706)(例えば、ハードディスク、コンパクトディスク(CD)ドライブ又はデジタル多用途ディスク(DVD)ドライブなどの光学ドライブ、フラッシュメモリスティック、等)、並びに多数の他の要素及び機能を含むことがある。コンピュータプロセッサ(1702)は、命令を処理するための集積回路でもよい。例えば、コンピュータプロセッサは、プロセッサの1つ以上のコア又はマイクロコアでもよい。コンピュータシステム(1700)は、タッチスクリーン、キーボード、マウス、マイクロホン、タッチパッド、電子ペン、又は任意の他のタイプの入力装置などの、1つ以上の入力装置(1710)も含むことがある。更に、コンピュータシステム(1700)は、スクリーン(例えば、液晶ディスプレイ(LCD)、プラズマディスプレイ、タッチスクリーン、ブラウン管(CRT)モニタ、プロジェクタ、又は他の表示装置)、プリンタ、外部記憶装置、又は任意の他の出力装置、などの1つ以上の出力装置(1708)を含むことがある。出力装置のうちの1つ以上は、入力装置と同じであっても又は異なっていてもよい。コンピュータシステム(1700)は、ネットワークインターフェース接続(図示せず)を介して、ネットワーク(1712)(例えば、ローカルエリアネットワーク(LAN)、インターネットなどの広域ネットワーク(WAN)、モバイルネットワーク、又は任意の他のタイプのネットワーク)と接続されることがある。入力及び出力装置は、コンピュータプロセッサ(1702)、メモリ(1704)、及び記憶装置(1706)に、ローカルに又はリモートで(例えば、ネットワーク(1712)を介して)接続されることがある。多数の異なるタイプのコンピュータシステムが存在し、前述の入力及び出力装置は他の形態を取ることがある。
本発明の実施形態を実行するコンピュータ可読プログラムコードの形態でのソフトウェア命令が、全体的に又は部分的に、一時的に又は永続的に、CD、DVD、記憶装置、フロッピーディスク、テープ、フラッシュメモリ、物理メモリ、又は任意の他のコンピュータ可読記憶媒体などの、非一時的なコンピュータ可読媒体に保存されることがある。具体的には、ソフトウェア命令は、プロセッサによって実行されると本発明の実施形態を実行するように構成されたコンピュータ可読プログラムコードに相当することがある。
更に、前述のコンピュータシステム(1700)の1つ以上の要素は、遠隔地に配置され、ネットワーク(1712)越しに他の要素と接続されることがある。更に、本発明の1つ以上の実施形態は、複数のノード(接続点)を有する分散システム上で実装されることがあり、本発明の各部分が、分散システム内部の異なるノードに配置されることがある。本発明の一実施形態では、ノードは、別個のコンピュータ装置に相当する。或いは、ノードは、関連した物理メモリを有するコンピュータプロセッサに相当することがある。或いは、ノードは、共有されたメモリ及び/又はリソースを有するコンピュータプロセッサ又はコンピュータプロセッサのマイクロコアに相当することがある。
本発明について限られた数の実施形態に関して説明してきたが、本開示の恩恵を受ける当業者であれば、本明細書に開示する本発明の範囲から逸脱しない他の実施形態を考案することができることを、理解するであろう。従って、本発明の範囲は、添付の特許請求の範囲によってのみ限定されるべきである。

Claims (18)

  1. 表を含む画像を処理する方法であって、
    前記表を形成する前記画像内の複数の連結構成要素を識別する工程と、
    前記表について、前記複数の連結構成要素に基づいて複数の縁辺を含む骨格グラフを生成する工程と、
    前記複数の縁辺に基づいて前記表を雛型表と比較する植字得点を計算する工程と、
    前記表の回転角度を決定し、前記回転角度に基づいて前記表の専用座標系を生成する工程と、
    前記骨格グラフ、前記植字得点、及び前記専用座標系に基づいて、前記表内の複数のセルを識別する工程と、
    前記複数の縁辺に基づいて前記複数のセルのそれぞれをリンクさせ、前記複数のセル間のリンクを検証する工程と、
    前記複数のセル間の前記リンクに基づく複数のセルの格子を生成する工程と、
    前記格子を、前記表の、垂直に交差する直線によって形成された行及び列を有する表に類似する表としてエクスポートする工程と、を含み、
    前記植字得点を計算する工程は、
    前記複数の縁辺について複数の角度及び複数の長さを識別する工程と、
    前記複数の角度に基づいて、前記複数の縁辺を複数の集団にグループ分けする工程と、
    前記複数の長さに基づいて、前記複数の集団について複数の集団長さを計算する工程と、
    前記複数の集団長さの部分集合を選択する工程と、
    前記複数の長さの合計に対する前記部分集合の合計の比率を計算する工程と、を含む方法。
  2. 表を含む画像を処理する方法であって、
    前記表を形成する前記画像内の複数の連結構成要素を識別する工程と、
    前記表について、前記複数の連結構成要素に基づいて複数の縁辺を含む骨格グラフを生成する工程と、
    前記複数の縁辺に基づいて前記表を雛型表と比較する植字得点を計算する工程と、
    前記表の回転角度を決定し、前記回転角度に基づいて前記表の専用座標系を生成する工程と、
    前記骨格グラフ、前記植字得点、及び前記専用座標系に基づいて、前記表内の複数のセルを識別する工程と、
    前記複数の縁辺に基づいて前記複数のセルのそれぞれをリンクさせ、前記複数のセル間のリンクを検証する工程と、
    前記複数のセル間の前記リンクに基づく複数のセルの格子を生成する工程と、
    前記格子を、前記表の、垂直に交差する直線によって形成された行及び列を有する表に類似する表としてエクスポートする工程と、を含み、
    前記表内の前記複数のセルを決定する工程は、
    前記骨格グラフ内で、隅角頂点、前記隅角頂点に隣接する開始頂点、及び前記隅角頂点に隣接する終了頂点を識別する工程と、
    前記隅角頂点から前記開始頂点への進行方向を計算する工程と、
    前記開始頂点に対する一組のルート選択肢であって、
    前記骨格グラフ内の前記開始頂点に隣接する第1の組の頂点、
    前記開始頂点から前記第1の組の頂点への一組の進行方向、並びに
    前記一組の進行方向、及び前記隅角頂点から前記開始頂点への前記進行方向の垂線に基づく、前記第1の組の頂点に対する一組の回転コスト、を含む一組のルート選択肢を決定する工程と、
    前記一組の回転コストに基づいて、第1の頂点として前記第1の組の頂点から候補頂点を選択する工程と、
    前記骨格グラフ内の第2の頂点に隣接する第2の組の頂点を含む、前記第2の頂点に対する一組のルート選択肢を決定する工程と、
    前記第2の組の頂点が前記終了頂点を含んでいると決定する工程と、
    前記隅角頂点、前記開始頂点、前記第1の頂点、前記第2の頂点、及び前記終了頂点を含む、セル候補のルートを生成する工程と、を含む方法。
  3. 前記セル候補に関連した前記複数の縁辺の中から一組の縁辺を取得する工程と、
    前記一組の縁辺内の最長縁辺、及び前記最長縁辺の第1の向きを決定する工程と、
    前記第1の向き及び前記最長縁辺を含む第1のセル境界線に対する、前記一組の縁辺内の初期縁辺を決定する工程と、
    前記初期縁辺、前記第1の向き、及び前記一組の縁辺に基づいて、前記第1のセル境界線を構築する工程と、
    前記第1の向きを回転させることによって、第2のセル境界線に対する第2の向きを計算する工程と、
    前記第2のセル境界線の初期縁辺及び前記第2の向きに基づいて、前記第2のセル境界線を構築する工程と、
    前記第1のセル境界線の構築及び前記第2のセル境界線の構築に応答して、前記表のセルとして前記セル候補を検証する工程と、を更に含む、請求項に記載の方法。
  4. 表を含む画像を処理する方法であって、
    前記表を形成する前記画像内の複数の連結構成要素を識別する工程と、
    前記表について、前記複数の連結構成要素に基づいて複数の縁辺を含む骨格グラフを生成する工程と、
    前記複数の縁辺に基づいて前記表を雛型表と比較する植字得点を計算する工程と、
    前記表の回転角度を決定し、前記回転角度に基づいて前記表の専用座標系を生成する工程と、
    前記骨格グラフ、前記植字得点、及び前記専用座標系に基づいて、前記表内の複数のセルを識別する工程と、
    前記複数の縁辺に基づいて前記複数のセルのそれぞれをリンクさせ、前記複数のセル間のリンクを検証する工程と、
    前記複数のセル間の前記リンクに基づく複数のセルの格子を生成する工程と、
    前記複数の縁辺の長さに基づいて、前記複数のセルのそれぞれのサイズを決定する工程と、
    前記複数のセルのそれぞれの前記サイズ、所定の方向で前記複数のセルによって共有される縁辺、及び前記複数のセル間の領域の重複に基づいて、前記表内の内部セルを識別する工程と、
    前記複数のセルから前記内部セルを除去する工程と、
    前記格子を、前記表の、垂直に交差する直線によって形成された行及び列を有する表に類似する表としてエクスポートする工程と、を含み、
    前記内部セルは、少なくとも1つの縁辺を別のセルと共有し、別のセルと領域が重なり、別のセルよりも小さなサイズを持つセルである方法。
  5. 表を含む画像を処理する方法であって、
    前記表を形成する前記画像内の複数の連結構成要素を識別する工程と、
    前記表について、前記複数の連結構成要素に基づいて複数の縁辺を含む骨格グラフを生成する工程と、
    前記複数の縁辺に基づいて前記表を雛型表と比較する植字得点を計算する工程と、
    前記表の回転角度を決定し、前記回転角度に基づいて前記表の専用座標系を生成する工程と、
    前記骨格グラフ、前記植字得点、及び前記専用座標系に基づいて、前記表内の複数のセルを識別する工程と、
    前記複数の縁辺に基づいて前記複数のセルのそれぞれをリンクさせ、前記複数のセル間のリンクを検証する工程と、
    前記複数のセル間の前記リンクに基づく複数のセルの格子を生成する工程と、
    前記格子を、前記表の、垂直に交差する直線によって形成された行及び列を有する表に類似する表としてエクスポートする工程と、を含み、
    前記複数のセル内の各セルは、第1の境界線、前記第1の境界線に対向する第2の境界線、第3の境界線、及び前記第3の境界線に対向する第4の境界線を含み、
    前記方法は、
    前記表に対して生成された複数の頂点を有する前記骨格グラフ上で、前記複数のセルのうちのあるセルの前記第1の境界線上の非隅角頂点を識別する工程と、
    前記非隅角頂点から延びており、前記セルの前記第3又は前記第4の境界線と交差することなく、前記セルの前記第2の境界線と交差する、複数の分割線を決定する工程と、
    前記複数の分割線について、複数の信頼値を計算する工程と、
    前記複数の信頼値及び前記複数の分割線のうちのある分割線に基づいて、人為的縁辺を生成することによって、前記セルを分割する工程と、を更に含む方法。
  6. 前記複数の縁辺上の終端頂点を識別する工程と、
    前記終端頂点に対して関心領域を生成する工程と、
    前記関心領域内部のターゲットを決定する工程と、
    前記複数のセルを識別する工程の前に、前記終端頂点と前記ターゲットとの間の人為的縁辺を前記骨格グラフに追加することによって、前記表を修復する工程と、を更に含む、
    請求項1から請求項5のいずれか一項に記載の方法。
  7. 前記複数の縁辺の長さに基づいて、前記複数のセルのそれぞれのサイズを決定する工程と、
    前記複数のセルのそれぞれの前記サイズ、所定の方向で前記複数のセルによって共有される縁辺、及び前記複数のセル間の領域の重複に基づいて、前記表内の内部セルを識別する工程と、
    前記複数のセルから前記内部セルを除去する工程と、を更に含む、請求項1から請求項5のいずれか一項に記載の方法。
  8. 前記複数のセルを前記リンクさせる工程は、
    前記専用座標系の第1の方向にある前記複数のセルのうちの2つのセル間で共有される共通縁辺を識別する工程と、
    前記2つのセルを一組の隣接セルとして記録する工程と、を含み、
    前記複数のセル間の前記リンクを前記検証する工程は、
    前記一組の隣接セルからのセルを現在のセルとして設定し、前記一組の隣接セルからの残りのセルを隣接セルとして設定する工程と、
    前記隣接セルは、前記表内で識別された前記複数のセルの中のセル候補であることを確認する工程と、
    前記現在のセル及び前記隣接セルは、同じ組の隣接セルの一部であることを確認する工程と、を含む、請求項1から請求項5のいずれか一項に記載の方法。
  9. 前記格子は、リンクされた複数のセル候補によって形成され、かつリンクされた前記複数のセル候補を含む、最大の四辺形形状である、請求項1から請求項5のいずれか一項に記載の方法。
  10. 前記画像は書込みボードを含み、前記表は前記書込みボード上にマーカーで手描きされている、請求項1から請求項5のいずれか一項に記載の方法。
  11. 内部に取り込まれた表を含む画像を処理するコンピュータ可読プログラムコードであって、
    前記表を形成する、前記画像内の複数の連結構成要素を識別し、
    前記表について、前記複数の連結構成要素に基づいて複数の縁辺を含む骨格グラフを生成し、
    前記複数の縁辺に基づいて前記表を雛型表と比較する植字得点を計算し、
    前記表の回転角度を決定し、前記回転角度に基づいて前記表の専用座標系を生成し、
    前記骨格グラフ、前記植字得点、及び前記専用座標系に基づいて、前記表内の複数のセルを識別し、
    前記複数の縁辺に基づいて前記複数のセルのそれぞれをリンクさせ、前記複数のセル間のリンクを検証し、
    前記複数のセル間の前記リンクに基づく複数のセルの格子を生成し、
    前記格子を前記表の、垂直に交差する直線によって形成された行及び列を有する表に類似する表としてエクスポートし、
    前記植字得点を計算することは、
    前記複数の縁辺について複数の角度及び複数の長さを識別することと、
    前記複数の角度に基づいて、前記複数の縁辺を複数の集団にグループ分けすることと、
    前記複数の長さに基づいて、前記複数の集団について複数の集団長さを計算することと、
    前記複数の集団長さの部分集合を選択することと、
    前記複数の長さの合計に対する前記部分集合の合計の比率を計算することと、を含むコンピュータ可読プログラムコードを保存する、非一時的なコンピュータ可読媒体(CRM)。
  12. 内部に取り込まれた表を含む画像を処理するコンピュータ可読プログラムコードであって、
    前記表を形成する、前記画像内の複数の連結構成要素を識別し、
    前記表について、前記複数の連結構成要素に基づいて複数の縁辺を含む骨格グラフを生成し、
    前記複数の縁辺に基づいて前記表を雛型表と比較する植字得点を計算し、
    前記表の回転角度を決定し、前記回転角度に基づいて前記表の専用座標系を生成し、
    前記骨格グラフ、前記植字得点、及び前記専用座標系に基づいて、前記表内の複数のセルを識別し、
    前記複数の縁辺に基づいて前記複数のセルのそれぞれをリンクさせ、前記複数のセル間のリンクを検証し、
    前記複数のセル間の前記リンクに基づく複数のセルの格子を生成し、
    前記格子を前記表の、垂直に交差する直線によって形成された行及び列を有する表に類似する表としてエクスポートし、
    前記表内の前記複数のセルを決定することは、
    前記骨格グラフ内で、隅角頂点、前記隅角頂点に隣接する開始頂点、及び前記隅角頂点に隣接する終了頂点を識別することと、
    前記隅角頂点から前記開始頂点への進行方向を計算することと、
    前記開始頂点に対する一組のルート選択肢であって、
    前記骨格グラフ内の前記開始頂点に隣接する第1の組の頂点、
    前記開始頂点から前記第1の組の頂点への一組の進行方向、並びに、
    前記一組の進行方向、及び前記隅角頂点から前記開始頂点への前記進行方向の垂線に基づく、前記第1の組の頂点に対する一組の回転コスト、を含む一組のルート選択肢を決定することと、
    前記一組の回転コストに基づいて、第1の頂点として前記第1の組の頂点から候補頂点を選択することと、
    前記骨格グラフ内の第2の頂点に隣接する第2の組の頂点を含む、前記第2の頂点に対する一組のルート選択肢を決定することと、
    前記第2の組の頂点が前記終了頂点を含んでいると決定することと、
    前記隅角頂点、前記開始頂点、前記第1の頂点、前記第2の頂点、及び前記終了頂点を含む、セル候補のルートを生成することと、を含むコンピュータ可読プログラムコードを保存する、非一時的なコンピュータ可読媒体(CRM)。
  13. 内部に取り込まれた表を含む画像を処理するコンピュータ可読プログラムコードであって、
    前記複数の縁辺上の終端頂点を識別し、
    前記終端頂点に対して関心領域を生成し、
    前記関心領域内部のターゲットを決定し、
    前記複数のセルを識別する前に、前記終端頂点と前記ターゲットとの間の人為的縁辺を前記骨格グラフに追加することによって、前記表を修復する、コンピュータ可読プログラムコードを更に保存する、請求項11又は請求項12に記載の非一時的なCRM。
  14. 前記格子は、リンクされた複数のセル候補によって形成され、かつリンクされた前記複数のセル候補を含む、最大の四辺形形状であり、
    前記画像は書込みボードを含み、前記表は前記書込みボード上にマーカーで手描きされている、請求項11又は請求項12に記載の非一時的なCRM。
  15. 表を含む画像を処理するシステムであって、
    メモリと、
    前記メモリに接続されたコンピュータプロセッサであって、
    前記表を形成する、前記画像内の複数の連結構成要素を識別し、
    前記表について、前記複数の連結構成要素に基づいて複数の縁辺を含む骨格グラフを生成し、
    前記複数の縁辺に基づいて前記表を雛型表と比較する植字得点を計算し、
    前記表の回転角度を決定し、前記回転角度に基づいて前記表の専用座標系を生成し、
    前記骨格グラフ、前記植字得点、及び前記専用座標系に基づいて、前記表内の複数のセルを識別し、
    前記複数の縁辺に基づいて前記複数のセルのそれぞれをリンクさせ、前記複数のセル間のリンクを検証し、
    前記複数のセル間の前記リンクに基づく複数のセルの格子を生成し、
    前記格子を前記表の、垂直に交差する直線によって形成された行及び列を有する表に類似する表としてエクスポートし、
    前記植字得点を計算することは、
    前記複数の縁辺について複数の角度及び複数の長さを識別することと、
    前記複数の角度に基づいて、前記複数の縁辺を複数の集団にグループ分けすることと、
    前記複数の長さに基づいて、前記複数の集団について複数の集団長さを計算することと、
    前記複数の集団長さの部分集合を選択することと、
    前記複数の長さの合計に対する前記部分集合の合計の比率を計算することと、を含む、コンピュータプロセッサと、を含むシステム。
  16. 表を含む画像を処理するシステムであって、
    メモリと、
    前記メモリに接続されたコンピュータプロセッサであって、
    前記表を形成する、前記画像内の複数の連結構成要素を識別し、
    前記表について、前記複数の連結構成要素に基づいて複数の縁辺を含む骨格グラフを生成し、
    前記複数の縁辺に基づいて前記表を雛型表と比較する植字得点を計算し、
    前記表の回転角度を決定し、前記回転角度に基づいて前記表の専用座標系を生成し、
    前記骨格グラフ、前記植字得点、及び前記専用座標系に基づいて、前記表内の複数のセルを識別し、
    前記複数の縁辺に基づいて前記複数のセルのそれぞれをリンクさせ、前記複数のセル間のリンクを検証し、
    前記複数のセル間の前記リンクに基づく複数のセルの格子を生成し、
    前記格子を前記表の、垂直に交差する直線によって形成された行及び列を有する表に類似する表としてエクスポートし、
    前記表内の前記複数のセルを決定することは、
    前記骨格グラフ内で、隅角頂点、前記隅角頂点に隣接する開始頂点、及び前記隅角頂点に隣接する終了頂点を識別することと、
    前記隅角頂点から前記開始頂点への進行方向を計算することと、
    前記開始頂点に対する一組のルート選択肢であって、
    前記骨格グラフ内の前記開始頂点に隣接する第1の組の頂点、
    前記開始頂点から前記第1の組の頂点への一組の進行方向、並びに、
    前記一組の進行方向、及び前記隅角頂点から前記開始頂点への前記進行方向の垂線に基づく、前記第1の組の頂点に対する一組の回転コスト、を含む一組のルート選択肢を決定することと、
    前記一組の回転コストに基づいて、第1の頂点として前記第1の組の頂点から候補頂点を選択することと、
    前記骨格グラフ内の第2の頂点に隣接する第2の組の頂点を含む、前記第2の頂点に対する一組のルート選択肢を決定することと、
    前記第2の組の頂点が前記終了頂点を含んでいると決定することと、
    前記隅角頂点、前記開始頂点、前記第1の頂点、前記第2の頂点、及び前記終了頂点を含む、セル候補のルートを生成することと、を含む、コンピュータプロセッサと、を含むシステム。
  17. 前記プロセッサは、更に、
    前記複数の縁辺上の終端頂点を識別し、
    前記終端頂点に対して関心領域を生成し、
    前記関心領域内部のターゲットを決定し、
    前記複数のセルを識別する前に、前記終端頂点と前記ターゲットとの間の人為的縁辺を前記骨格グラフに追加することによって、前記表を修復する、請求項15又は請求項16に記載のシステム。
  18. 前記格子は、リンクされた複数のセル候補によって形成され、かつリンクされた前記複数のセル候補を含む、最大の四辺形形状であり、
    前記画像は書込みボードを含み、前記表は前記書込みボード上にマーカーで手描きされている、請求項15又は請求項16に記載のシステム。
JP2018173776A 2017-09-29 2018-09-18 手描きの表の識別 Active JP7195092B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/719,981 2017-09-29
US15/719,981 US10679049B2 (en) 2017-09-29 2017-09-29 Identifying hand drawn tables

Publications (2)

Publication Number Publication Date
JP2019067378A JP2019067378A (ja) 2019-04-25
JP7195092B2 true JP7195092B2 (ja) 2022-12-23

Family

ID=65896139

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018173776A Active JP7195092B2 (ja) 2017-09-29 2018-09-18 手描きの表の識別

Country Status (2)

Country Link
US (1) US10679049B2 (ja)
JP (1) JP7195092B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11182604B1 (en) * 2019-11-26 2021-11-23 Automation Anywhere, Inc. Computerized recognition and extraction of tables in digitized documents
CN112489166A (zh) * 2020-11-17 2021-03-12 娄底景明新材料有限公司 汽车板激光切割自动排版制图方法及系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070140565A1 (en) 2005-12-21 2007-06-21 Microsoft Corporation Table detection in ink notes
JP2007521531A (ja) 2003-08-21 2007-08-02 マイクロソフト コーポレーション 電子インク処理
JP2009169844A (ja) 2008-01-18 2009-07-30 Hitachi Software Eng Co Ltd 表認識方法及び表認識装置
JP2014038518A (ja) 2012-08-17 2014-02-27 Toshiba Corp 手書き文書処理装置、方法およびプログラム
JP2014149614A (ja) 2013-01-31 2014-08-21 Toshiba Corp 電子機器および手書き文書処理方法
JP2016071621A (ja) 2014-09-30 2016-05-09 株式会社東芝 電子機器および方法
JP2018163441A (ja) 2017-03-24 2018-10-18 富士ゼロックス株式会社 画像処理装置、及びプログラム
JP2018536926A (ja) 2015-10-19 2018-12-13 マイスクリプト 手書き図入力を導くシステム及び方法
JP2019040585A (ja) 2017-06-30 2019-03-14 コニカ ミノルタ ラボラトリー ユー.エス.エー.,インコーポレイテッド 表に関するタイプセットネススコア

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5101448A (en) * 1988-08-24 1992-03-31 Hitachi, Ltd. Method and apparatus for processing a document by utilizing an image
JPH0863610A (ja) * 1994-08-18 1996-03-08 Mitsubishi Electric Corp 文書処理装置
US5784487A (en) * 1996-05-23 1998-07-21 Xerox Corporation System for document layout analysis
US7400771B2 (en) * 2004-09-21 2008-07-15 Microsoft Corporation System and method for connected container recognition of a hand-drawn chart in ink input
US7394935B2 (en) * 2004-09-21 2008-07-01 Microsoft Corporation System and method for editing a hand-drawn chart in ink input
US9075855B2 (en) * 2006-12-14 2015-07-07 Sybase, Inc. Table synthesis from raw data
US8358320B2 (en) * 2007-11-02 2013-01-22 National University Of Singapore Interactive transcription system and method
US8634645B2 (en) * 2008-03-28 2014-01-21 Smart Technologies Ulc Method and tool for recognizing a hand-drawn table
US8600164B2 (en) * 2008-03-28 2013-12-03 Smart Technologies Ulc Method and tool for recognizing a hand-drawn table
US8625895B2 (en) * 2009-03-30 2014-01-07 The Neat Company, Inc. Table grid detection and separation
US10025452B2 (en) * 2015-09-14 2018-07-17 Adobe Systems Incorporated Physics-based cell layout redesign
US9865038B2 (en) * 2015-11-25 2018-01-09 Konica Minolta Laboratory U.S.A., Inc. Offsetting rotated tables in images
US9697423B1 (en) * 2015-12-31 2017-07-04 Konica Minolta Laboratory U.S.A., Inc. Identifying the lines of a table
US9898683B2 (en) * 2016-05-31 2018-02-20 Konica Minolta Laboratory U.S.A., Inc. Robust method for tracing lines of table
US10467464B2 (en) * 2016-06-07 2019-11-05 The Neat Company, Inc. Document field detection and parsing
US10083218B1 (en) * 2017-06-30 2018-09-25 Konica Minolta Laboratory U.S.A., Inc. Repairing tables
US10268920B2 (en) * 2017-08-31 2019-04-23 Konica Minolta Laboratory U.S.A., Inc. Detection of near rectangular cells

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007521531A (ja) 2003-08-21 2007-08-02 マイクロソフト コーポレーション 電子インク処理
US20070140565A1 (en) 2005-12-21 2007-06-21 Microsoft Corporation Table detection in ink notes
JP2009169844A (ja) 2008-01-18 2009-07-30 Hitachi Software Eng Co Ltd 表認識方法及び表認識装置
JP2014038518A (ja) 2012-08-17 2014-02-27 Toshiba Corp 手書き文書処理装置、方法およびプログラム
JP2014149614A (ja) 2013-01-31 2014-08-21 Toshiba Corp 電子機器および手書き文書処理方法
JP2016071621A (ja) 2014-09-30 2016-05-09 株式会社東芝 電子機器および方法
JP2018536926A (ja) 2015-10-19 2018-12-13 マイスクリプト 手書き図入力を導くシステム及び方法
JP2018163441A (ja) 2017-03-24 2018-10-18 富士ゼロックス株式会社 画像処理装置、及びプログラム
JP2019040585A (ja) 2017-06-30 2019-03-14 コニカ ミノルタ ラボラトリー ユー.エス.エー.,インコーポレイテッド 表に関するタイプセットネススコア

Also Published As

Publication number Publication date
US20190102619A1 (en) 2019-04-04
JP2019067378A (ja) 2019-04-25
US10679049B2 (en) 2020-06-09

Similar Documents

Publication Publication Date Title
US9697423B1 (en) Identifying the lines of a table
CN110472208A (zh) Pdf文档中表格解析的方法、系统、存储介质及电子设备
US10083218B1 (en) Repairing tables
US20060210172A1 (en) Systems, methods, and computer-readable media for fast neighborhood determinations in dynamic environments
RU2430421C2 (ru) Применение эффектов к объединенной текстовой дорожке
US10691936B2 (en) Column inferencer based on generated border pieces and column borders
US9898683B2 (en) Robust method for tracing lines of table
US20100135535A1 (en) Method for Comparing First Computer-Aided 3D Model with a Second Computer-Aided 3D Model
US9934431B2 (en) Producing a flowchart object from an image
US9824267B2 (en) Writing board detection and correction
JP7195092B2 (ja) 手描きの表の識別
US20190034719A1 (en) Splitting merged table cells
CN115546809A (zh) 基于单元格约束的表格结构识别方法及其应用
CN111985459A (zh) 表格图像校正方法、装置、电子设备和存储介质
JP3471578B2 (ja) 行方向判定装置、画像傾き検出装置及び画像傾き補正装置
JP5343617B2 (ja) 文字認識プログラム、文字認識方法および文字認識装置
Ozdemir et al. A novel algorithm for regularization of building footprints using raw LiDAR point clouds
US10410386B2 (en) Table cell validation
Wu et al. Extracting POP: Pairwise orthogonal planes from point cloud using RANSAC
CN113538623A (zh) 确定目标图像的方法、装置、电子设备及存储介质
CN110688995B (zh) 地图查询的处理方法,计算机可读存储介质和移动终端
JP2018067298A (ja) 手書き内容編集装置および手書き内容編集方法
JP7219011B2 (ja) 表に関するタイプセットネススコア
CN115797955A (zh) 基于单元格约束的表格结构识别方法及其应用
US9977956B2 (en) Selecting primary groups during production of a flowchart object from an image

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221124

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: 20221206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221213

R150 Certificate of patent or registration of utility model

Ref document number: 7195092

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150