(57)【要約】【課題】表を含む画像を処理する方法を提供する。【解決手段】表を含む画像を処理する方法は、前記表を形成する前記画像内の複数の連結構成要素を識別する工程と、前記表について、前記複数の連結構成要素に基づいて複数の縁辺を含む骨格グラフを生成する工程と、前記複数の縁辺に基づいて前記表を雛型表と比較する植字得点を計算する工程と、前記表の回転角度を決定し、前記回転角度に基づいて前記表の専用座標系を生成する工程と、前記骨格グラフ、前記植字得点、及び前記専用座標系に基づいて、前記表内の複数のセルを識別する工程と、前記複数の縁辺に基づいて前記複数のセルのそれぞれをリンクさせ、前記複数のセル間のリンクを検証する工程と、前記複数のセル間の前記リンクに基づく複数のセルの格子を生成する工程と、前記格子を、前記表の高水準の描写物としてエクスポートする工程と、を含む。【選択図】図１
2019067378.tif 000002
【特許請求の範囲】
【請求項１】
表を含む画像を処理する方法であって、
前記表を形成する前記画像内の複数の連結構成要素を識別する工程と、
前記表について、前記複数の連結構成要素に基づいて複数の縁辺を含む骨格グラフを生成する工程と、
前記複数の縁辺に基づいて前記表を雛型表と比較する植字得点を計算する工程と、
前記表の回転角度を決定し、前記回転角度に基づいて前記表の専用座標系を生成する工程と、
前記骨格グラフ、前記植字得点、及び前記専用座標系に基づいて、前記表内の複数のセルを識別する工程と、
前記複数の縁辺に基づいて前記複数のセルのそれぞれをリンクさせ、前記複数のセル間のリンクを検証する工程と、
前記複数のセル間の前記リンクに基づく複数のセルの格子を生成する工程と、
前記格子を、前記表の高水準の描写物としてエクスポートする工程と、を含む方法。
【請求項２】
前記植字得点を計算する工程は、
前記複数の縁辺について複数の角度及び複数の長さを識別する工程と、
前記複数の角度に基づいて、前記複数の縁辺を複数の集団にグループ分けする工程と、
前記複数の長さに基づいて、前記複数の集団について複数の集団長さを計算する工程と、
前記複数の集団長さの部分集合を選択する工程と、
前記複数の長さの合計に対する前記部分集合の合計の比率を計算する工程と、を含む、請求項１に記載の方法。
【請求項３】
前記複数の縁辺上の終端頂点を識別する工程と、
前記終端頂点に対して関心領域を生成する工程と、
前記関心領域内部のターゲットを決定する工程と、
前記複数のセルを識別する工程の前に、前記終端頂点と前記ターゲットとの間の人為的縁辺を前記骨格グラフに追加することによって、前記表を修復する工程と、を更に含む、請求項１に記載の方法。
【請求項４】
前記表内の前記複数のセルを決定する工程は、
前記骨格グラフ内で、隅角頂点、前記隅角頂点に隣接する開始頂点、及び前記隅角頂点に隣接する終了頂点を識別する工程と、
前記隅角頂点から前記開始頂点への進行方向を計算する工程と、
前記開始頂点に対する一組のルート選択肢であって、
前記骨格グラフ内の前記開始頂点に隣接する第１の組の頂点、
前記開始頂点から前記第１の組の頂点への一組の進行方向、並びに
前記一組の進行方向、及び前記隅角頂点から前記開始頂点への前記進行方向の垂線に基づく、前記第１の組の頂点に対する一組の回転コスト、を含む一組のルート選択肢を決定する工程と、
前記一組の回転コストに基づいて、第１の頂点として前記第１の組の頂点から候補頂点を選択する工程と、
前記骨格グラフ内の第２の頂点に隣接する第２の組の頂点を含む、前記第２の頂点に対する一組のルート選択肢を決定する工程と、
前記第２の組の頂点が前記終了頂点を含んでいると決定する工程と、
前記隅角頂点、前記開始頂点、前記第１の頂点、前記第２の頂点、及び前記終了頂点を含む、セル候補のルートを生成する工程と、を含む、請求項１に記載の方法。
【請求項５】
前記セル候補に関連した前記複数の縁辺の中から一組の縁辺を取得する工程と、
前記一組の縁辺内の最長縁辺、及び前記最長縁辺の第１の向きを決定する工程と、
前記第１の向き及び前記最長縁辺を含む第１のセル境界線に対する、前記一組の縁辺内の初期縁辺を決定する工程と、
前記初期縁辺、前記第１の向き、及び前記一組の縁辺に基づいて、前記第１のセル境界線を構築する工程と、
前記第１の向きを回転させることによって、第２のセル境界線に対する第２の向きを計算する工程と、
前記第２のセル境界線の初期縁辺及び前記第２の向きに基づいて、前記第２のセル境界線を構築する工程と、
前記第１のセル境界線の構築及び前記第２のセル境界線の構築に応答して、前記表のセルとして前記セル候補を検証する工程と、を更に含む、請求項４に記載の方法。
【請求項６】
前記複数の縁辺の長さに基づいて、前記複数のセルのそれぞれのサイズを決定する工程と、
前記複数のセルのそれぞれの前記サイズ、所定の方向で前記複数のセルによって共有される縁辺、及び前記複数のセル間の領域の重複に基づいて、前記表内の内部セルを識別する工程と、
前記複数のセルから前記内部セルを除去する工程と、を更に含む、請求項１に記載の方法。
【請求項７】
前記複数のセルを前記リンクさせる工程は、
前記専用座標系の第１の方向にある前記複数のセルのうちの２つのセル間で共有される共通縁辺を識別する工程と、
前記２つのセルを一組の隣接セルとして記録する工程と、を含み、
前記複数のセル間の前記リンクを前記検証する工程は、
前記一組の隣接セルからのセルを現在のセルとして設定し、前記一組の隣接セルからの残りのセルを隣接セルとして設定する工程と、
前記隣接セルは、前記表内で識別された前記複数のセルの中のセル候補であることを確認する工程と、
前記現在のセル及び前記隣接セルは、同じ組の隣接セルの一部であることを確認する工程と、を含む、請求項１に記載の方法。
【請求項８】
前記複数のセル内の各セルは、第１の境界線、前記第１の境界線に対向する第２の境界線、第３の境界線、及び前記第３の境界線に対向する第４の境界線を含み、
前記方法は、
前記表に対して生成された複数の頂点を有する前記骨格グラフ上で、前記複数のセルのうちのあるセルの前記第１の境界線上の非隅角頂点を識別する工程と、
前記非隅角頂点から延びており、前記セルの前記第３又は前記第４の境界線と交差することなく、前記セルの前記第２の境界線と交差する、複数の分割線を決定する工程と、
前記複数の分割線について、複数の信頼値を計算する工程と、
前記複数の信頼値及び前記複数の分割線のうちのある分割線に基づいて、人為的縁辺を生成することによって、前記セルを分割する工程と、を更に含む、請求項１に記載の方法。
【請求項９】
前記格子は、リンクされた前記複数のセル候補によって形成され、かつリンクされた前記複数のセル候補を含む、最大の四辺形形状である、請求項１に記載の方法。
【請求項１０】
前記画像は書込みボードを含み、前記表は前記書込みボード上にマーカーで手描きされている、請求項１に記載の方法。
【請求項１１】
内部に取り込まれた表を含む画像を処理するコンピュータ可読プログラムコードであって、
前記表を形成する、前記画像内の複数の連結構成要素を識別し、
前記表について、前記複数の連結構成要素に基づいて複数の縁辺を含む骨格グラフを生成し、
前記複数の縁辺に基づいて前記表を雛型表と比較する植字得点を計算し、
前記表の回転角度を決定し、前記回転角度に基づいて前記表の専用座標系を生成し、
前記骨格グラフ、前記植字得点、及び前記専用座標系に基づいて、前記表内の複数のセルを識別し、
前記複数の縁辺に基づいて前記複数のセルのそれぞれをリンクさせ、前記複数のセル間のリンクを検証し、
前記複数のセル間の前記リンクに基づく複数のセルの格子を生成し、
前記格子を前記表の高水準の描写物としてエクスポートするコンピュータ可読プログラムコードを保存する、非一時的なコンピュータ可読媒体（ＣＲＭ）。
【請求項１２】
前記植字得点を計算することは、
前記複数の縁辺について複数の角度及び複数の長さを識別することと、
前記複数の角度に基づいて、前記複数の縁辺を複数の集団にグループ分けすることと、
前記複数の長さに基づいて、前記複数の集団について複数の集団長さを計算することと、
前記複数の集団長さの部分集合を選択することと、
前記複数の長さの合計に対する前記部分集合の合計の比率を計算することと、を含む、請求項１１に記載の非一時的なＣＲＭ。
【請求項１３】
内部に取り込まれた表を含む画像を処理するコンピュータ可読プログラムコードであって、
前記複数の縁辺上の終端頂点を識別し、
前記終端頂点に対して関心領域を生成し、
前記関心領域内部のターゲットを決定し、
前記複数のセルを識別する前に、前記終端頂点と前記ターゲットとの間の人為的縁辺を前記骨格グラフに追加することによって、前記表を修復する、コンピュータ可読プログラムコードを更に保存する、請求項１１に記載の非一時的なＣＲＭ。
【請求項１４】
前記表内の前記複数のセルを決定することは、
前記骨格グラフ内で、隅角頂点、前記隅角頂点に隣接する開始頂点、及び前記隅角頂点に隣接する終了頂点を識別することと、
前記隅角頂点から前記開始頂点への進行方向を計算することと、
前記開始頂点に対する一組のルート選択肢であって、
前記骨格グラフ内の前記開始頂点に隣接する第１の組の頂点、
前記開始頂点から前記第１の組の頂点への一組の進行方向、並びに、
前記一組の進行方向、及び前記隅角頂点から前記開始頂点への前記進行方向の垂線に基づく、前記第１の組の頂点に対する一組の回転コスト、を含む一組のルート選択肢を決定することと、
前記一組の回転コストに基づいて、第１の頂点として前記第１の組の頂点から候補頂点を選択することと、
前記骨格グラフ内の第２の頂点に隣接する第２の組の頂点を含む、前記第２の頂点に対する一組のルート選択肢を決定することと、
前記第２の組の頂点が前記終了頂点を含んでいると決定することと、
前記隅角頂点、前記開始頂点、前記第１の頂点、前記第２の頂点、及び前記終了頂点を含む、セル候補のルートを生成することと、を含む、請求項１１に記載の非一時的なＣＲＭ。
【請求項１５】
前記格子は、リンクされた前記複数のセル候補によって形成され、かつリンクされた前記複数のセル候補を含む、最大の四辺形形状であり、
前記画像は書込みボードを含み、前記表は前記書込みボード上にマーカーで手描きされている、請求項１１に記載の非一時的なＣＲＭ。
【請求項１６】
表を含む画像を処理するシステムであって、
メモリと、
前記メモリに接続されたコンピュータプロセッサであって、
前記表を形成する、前記画像内の複数の連結構成要素を識別し、
前記表について、前記複数の連結構成要素に基づいて複数の縁辺を含む骨格グラフを生成し、
前記複数の縁辺に基づいて前記表を雛型表と比較する植字得点を計算し、
前記表の回転角度を決定し、前記回転角度に基づいて前記表の専用座標系を生成し、
前記骨格グラフ、前記植字得点、及び前記専用座標系に基づいて、前記表内の複数のセルを識別し、
前記複数の縁辺に基づいて前記複数のセルのそれぞれをリンクさせ、前記複数のセル間のリンクを検証し、
前記複数のセル間の前記リンクに基づく複数のセルの格子を生成し、
前記格子を前記表の高水準の描写物としてエクスポートする、コンピュータプロセッサと、を含むシステム。
【請求項１７】
前記植字得点を計算することは、
前記複数の縁辺について複数の角度及び複数の長さを識別することと、
前記複数の角度に基づいて、前記複数の縁辺を複数の集団にグループ分けすることと、
前記複数の長さに基づいて、前記複数の集団について複数の集団長さを計算することと、
前記複数の集団長さの部分集合を選択することと、
前記複数の長さの合計に対する前記部分集合の合計の比率を計算することと、を含む、請求項１６に記載のシステム。
【請求項１８】
前記プロセッサは、更に、
前記複数の縁辺上の終端頂点を識別し、
前記終端頂点に対して関心領域を生成し、
前記関心領域内部のターゲットを決定し、
前記複数のセルを識別する前に、前記終端頂点と前記ターゲットとの間の人為的縁辺を前記骨格グラフに追加することによって、前記表を修復する、請求項１６に記載のシステム。
【請求項１９】
前記表内の前記複数のセルを決定することは、
前記骨格グラフ内で、隅角頂点、前記隅角頂点に隣接する開始頂点、及び前記隅角頂点に隣接する終了頂点を識別することと、
前記隅角頂点から前記開始頂点への進行方向を計算することと、
前記開始頂点に対する一組のルート選択肢であって、
前記骨格グラフ内の前記開始頂点に隣接する第１の組の頂点、
前記開始頂点から前記第１の組の頂点への一組の進行方向、並びに、
前記一組の進行方向、及び前記隅角頂点から前記開始頂点への前記進行方向の垂線に基づく、前記第１の組の頂点に対する一組の回転コスト、を含む一組のルート選択肢を決定することと、
前記一組の回転コストに基づいて、第１の頂点として前記第１の組の頂点から候補頂点を選択することと、
前記骨格グラフ内の第２の頂点に隣接する第２の組の頂点を含む、前記第２の頂点に対する一組のルート選択肢を決定することと、
前記第２の組の頂点が前記終了頂点を含んでいると決定することと、
前記隅角頂点、前記開始頂点、前記第１の頂点、前記第２の頂点、及び前記終了頂点を含む、セル候補のルートを生成することと、を含む、請求項１６に記載のシステム。
【請求項２０】
前記格子は、リンクされた前記複数のセル候補によって形成され、かつリンクされた前記複数のセル候補を含む、最大の四辺形形状であり、
前記画像は書込みボードを含み、前記表は前記書込みボード上にマーカーで手描きされている、請求項１６に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、手描きの表の識別に関する。
【背景技術】
【０００２】
画像には、手描きの線によって境界をつけられた行及び列を有する表が含まれることがある。例えば、画像は、手描きのページを走査したものかもしれない。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
これらの手描きの線が直線であることは滅多になく、画像処理装置が表の形状（例えば、左上隅、範囲、行及び列の数、セルの位置など）を決定するのは困難である。これらの手描きの線は、電子文書（例えば、ワープロ文書、スプレッドシート、スライドショー、ウェブページ、等）に含めることができる、表の高水準の描写物を生成することも困難にしている。それにも関わらず、ユーザは、画像処理装置で手描きの表を扱うことを依然として望んでいる。
【課題を解決するための手段】
【０００４】
一般に、一の態様では、本発明は、表を含む画像を処理する方法に関し、前記表を形成する前記画像内の複数の連結構成要素を識別する工程と、前記表について、前記複数の連結構成要素に基づいて複数の縁辺を含む骨格グラフを生成する工程と、前記複数の縁辺に基づいて前記表を雛型表と比較する植字得点を計算する工程と、前記表の回転角度を決定し、前記回転角度に基づいて前記表の専用座標系を生成する工程と、前記骨格グラフ、前記植字得点、及び前記専用座標系に基づいて、前記表内の複数のセルを識別する工程と、前記複数の縁辺に基づいて前記複数のセルのそれぞれをリンクさせ、前記複数のセル間のリンクを検証する工程と、前記複数のセル間の前記リンクに基づく複数のセルの格子を生成する工程と、前記格子を、前記表の高水準の描写物としてエクスポートする工程と、を含む。
【０００５】
一般に、一の態様では、本発明は、画像を処理するシステムに関する。当該システムは、メモリと、前記メモリに接続されたコンピュータプロセッサであって、前記表を形成する、前記画像内の複数の連結構成要素を識別し、前記表について、前記複数の連結構成要素に基づいて複数の縁辺を含む骨格グラフを生成し、前記複数の縁辺に基づいて前記表を雛型表と比較する植字得点を計算し、前記表の回転角度を決定し、前記回転角度に基づいて前記表の専用座標系を生成し、前記骨格グラフ、前記植字得点、及び前記専用座標系に基づいて、前記表内の複数のセルを識別し、前記複数の縁辺に基づいて前記複数のセルのそれぞれをリンクさせ、前記複数のセル間のリンクを検証し、前記複数のセル間の前記リンクに基づく複数のセルの格子を生成し、前記格子を前記表の高水準の描写物としてエクスポートする、コンピュータプロセッサと、を含む。
【０００６】
一般に、一の態様では、本発明は、内部に取り込まれた表を含む画像を処理するコンピュータ可読プログラムコードを保存する、非一時的なコンピュータ可読媒体（ＣＲＭ）に関する。当該プログラムコードは、実行されるときには、前記表を形成する、前記画像内の複数の連結構成要素を識別し、前記表について、前記複数の連結構成要素に基づいて複数の縁辺を含む骨格グラフを生成し、前記複数の縁辺に基づいて前記表を雛型表と比較する植字得点を計算し、前記表の回転角度を決定し、前記回転角度に基づいて前記表の専用座標系を生成し、前記骨格グラフ、前記植字得点、及び前記専用座標系に基づいて、前記表内の複数のセルを識別し、前記複数の縁辺に基づいて前記複数のセルのそれぞれをリンクさせ、前記複数のセル間のリンクを検証し、前記複数のセル間の前記リンクに基づく複数のセルの格子を生成し、前記格子を前記表の高水準の描写物としてエクスポートするコンピュータ可読プログラムコードを保存する。
【０００７】
本発明の他の態様は、以降の説明及び添付の特許請求の範囲から明らかになる。
【図面の簡単な説明】
【０００８】
【図１】本発明の１つ以上の実施形態によるシステムを示す。
【図２】本発明の１つ以上の実施形態による主流れ図を示す。
【図３】本発明の１つ以上の実施形態による副流れ図を示す。
【図４Ａ】本発明の１つ以上の実施形態による副流れ図を示す。
【図４Ｂ】本発明の１つ以上の実施形態による副流れ図を示す。
【図５Ａ】本発明の１つ以上の実施形態による副流れ図を示す。
【図５Ｂ】本発明の１つ以上の実施形態による副流れ図を示す。
【図５Ｃ】本発明の１つ以上の実施形態による副流れ図を示す。
【図６Ａ】本発明の１つ以上の実施形態による副流れ図を示す。
【図６Ｂ】本発明の１つ以上の実施形態による副流れ図を示す。
【図６Ｃ】本発明の１つ以上の実施形態による副流れ図を示す。
【図７Ａ】本発明の１つ以上の実施形態による副流れ図を示す。
【図７Ｂ】本発明の１つ以上の実施形態による副流れ図を示す。
【図７Ｃ】本発明の１つ以上の実施形態による副流れ図を示す。
【図８Ａ】本発明の１つ以上の実施形態による実施例を示す。
【図８Ｂ】本発明の１つ以上の実施形態による実施例を示す。
【図８Ｃ】本発明の１つ以上の実施形態による実施例を示す。
【図９Ａ】本発明の１つ以上の実施形態による実施例を示す。
【図９Ｂ】本発明の１つ以上の実施形態による実施例を示す。
【図１０Ａ】本発明の１つ以上の実施形態による実施例を示す。
【図１０Ｂ】本発明の１つ以上の実施形態による実施例を示す。
【図１１Ａ】本発明の１つ以上の実施形態による実施例を示す。
【図１１Ｂ】本発明の１つ以上の実施形態による実施例を示す。
【図１１Ｃ】本発明の１つ以上の実施形態による実施例を示す。
【図１２Ａ】本発明の１つ以上の実施形態による実施例を示す。
【図１２Ｂ】本発明の１つ以上の実施形態による実施例を示す。
【図１３】本発明の１つ以上の実施形態による実施例を示す。
【図１４】本発明の１つ以上の実施形態による実施例を示す。
【図１５Ａ】本発明の１つ以上の実施形態による実施例を示す。
【図１５Ｂ】本発明の１つ以上の実施形態による実施例を示す。
【図１６Ａ】本発明の１つ以上の実施形態による実施例を示す。
【図１６Ｂ】本発明の１つ以上の実施形態による実施例を示す。
【図１７】本発明の１つ以上の実施形態によるコンピュータシステムを示す。
【発明を実施するための形態】
【０００９】
本発明の具体的な実施形態を、添付の図を参照しながら詳細に説明する。様々な図での同様の要素は、一貫性を保つために同様の参照番号によって示される。
【００１０】
本発明の実施形態の以降の詳細な説明では、本発明のより完全な理解をもたらすために、多数の具体的な詳細が記載されている。しかしながら、本発明はこれらの具体的な詳細を用いなくても実施することができることは、当業者には明らかであろう。他の場合では、説明を不必要に複雑にするのを避けるために、周知の特徴事項については詳細には説明しない。
【００１１】
全般的に、本発明の実施形態は、画像処理用の方法、非一時的なコンピュータ可読媒体（ＣＲＭ）、及びシステムを提供する。手描きの線を有する表を含む画像を取得し、マスクに変換し、表を表す縁辺及び頂点を含む骨格グラフを生成する。電子文書（例えば、ＯＯＸＭＬ文書、ＰＤＦ文書、等）に含めるための高水準の表の描写物を生成するために、骨格グラフに対して１つ以上の処理を実行して、画像中の表を識別する。
【００１２】
図１は、本発明の１つ以上の実施形態によるシステム（１００）を示す。図１に示すように、システム（１００）は、例えばバッファ（１０４）、骨格エンジン（１０８）、及び表エンジン（１１０）を含む、複数の構成要素を有する。これらの構成要素（１０４、１０８、１１０）のそれぞれは、同一のコンピュータ装置（例えば、パーソナルコンピュータ（ＰＣ）、ラップトップ、タブレットＰＣ、スマートフォン、多機能プリンタ、キオスク、サーバ、等）に、又は、有線及び／若しくは無線のセグメントを有する任意のサイズのネットワークによって接続された異なるコンピュータ装置に配置されることがある。これらの構成要素のそれぞれについて、以下で考察する。
【００１３】
本発明の１つ以上の実施形態では、バッファ（１０４）を、ハードウェア（即ち、回路）、ソフトウェア、又はそれらの任意の組み合わせで実装することがある。バッファ（１０４）は、任意の数の行及び列を有する表を含む画像（１０６）を保存するように構成される。表の各セルは、文字及び／又は図形を有することがある。画像（１０６）は、任意のソースから取得される（例えば、ダウンロードされる、スキャンされる、等）ことがある。更に、画像（１０６）は、任意のサイズであり、任意のフォーマット（例えば、ＪＰＥＧ、ＧＩＦ、ＢＭＰ、ＰＮＧ、等）であることがある。１つ以上の実施形態では、画像（１０６）は書込みボード（例えば、黒板、ホワイトボード、等）を含み、表は、この書込みボードにマーカーで描かれる。
【００１４】
本発明の１つ以上の実施形態では、骨格エンジン（１０８）を、ハードウェア（即ち、回路）、ソフトウェア、又はそれらの任意の組み合わせで実装することがある。表中の手描き線及び／又は表内のテキスト文字の識別を容易にするために、骨格エンジン（１０８）は画像（１０６）をマスク（例えば、二値画像）に変換する。
【００１５】
この詳細な説明から恩恵を受ける当業者であれば、画像（１０６）に対して標準座標系が存在し得ることを理解するであろう。しかしながら、手描きの表が画像（１０６）内で回転されている場合には、この標準座標系の軸は、表の行及び列と一直線に並ばないことがある。本発明の１つ以上の実施形態では、骨格エンジン（１０８）は、画像（１０６）内の表の行及び列と厳密に整列する垂直な軸を有する専用座標系を確立する。或いは、画像は、表の行及び列が画像（１０６）の標準座標系とより良く整列するように、回転されることがある。
【００１６】
本発明の１つ以上の実施形態では、画像（１０６）は、１つ以上の連結構成要素を含む。各連結構成要素は、ペン／マーカーを持ち上げることなく描くことができる画像（１０６）の一部であるかもしれない。例えば、表の行及び列を形成する全ての線が、１つの連結構成要素に対応することがある。別の例として、表の行及び列を形成する線の部分集合のみが、１つの連結構成要素に対応することがある（即ち、表は、複数の連結構成要素から形成されることがある）。更に別の例として、表の１つのセルの内部のコンテンツ（例えば、テキスト文字）が、１つ以上の連結構成要素を形成することがある。
【００１７】
１つ以上の実施形態では、骨格エンジン（１０８）は、全ての識別された連結構成要素に対する骨格グラフを生成する。或いは、骨格エンジン（１０８）は、最も大きな連結構成要素（即ち、最多の画素数を有する連結構成要素）に対してのみ骨格グラフを生成し、その後、より小さな連結構成要素に対する骨格グラフを、表を修復するのにそれらが潜在的に有用であると決定された場合に、生成する。これにより、表を修復するのに必要ではない表の部分の骨格グラフを生成するのが回避され、コンピュータリソースが節約される。
【００１８】
１つ以上の実施形態では、最大の連結構成要素が、表全体に相当することがある。或いは、最大の連結構成要素は、表の一部にのみ相当することがある。
【００１９】
１つ以上の実施形態では、骨格グラフは、一連の縁辺及び頂点を含む。各縁辺は、表のストローク（一筆の動き）、又はストロークの一部に相当することがある。各頂点は、２つ以上の縁辺の交点に相当することがある。更に、縁辺は、ストロークの一方の端部からストロークの他方の端部までの、ストロークのほぼ中央に位置する画素の経路を含むことがある。経路の幅は、１つ以上の画素である。
【００２０】
１つ以上の実施形態では、骨格エンジン（１０８）は、各縁辺の角度及び各縁辺の長さも識別する。縁辺の長さは、縁辺の２つの終端部間のユークリッド距離として計算することができる。これに加えてあるいはこの代わりに、この長さは、縁辺の画素の経路内の画素数を数えることによって特定することもできる。縁辺の角度は、専用座標系及び／又は標準座標系の軸（例えば、ｘ軸、ｙ軸、等）と、縁辺の２つの終端部を通る線との間の角度として計算することができる。本発明の１つ以上の実施形態では、縁辺の角度は、０度〜１７９度の範囲の間の最も近い角度に丸められることがある。
【００２１】
本発明の１つ以上の実施形態では、縁辺の端部が別の縁辺に接続されていない場合、この縁辺の端部の画素は終端頂点と呼ばれる。本発明の１つ以上の実施形態では、３つの縁辺のみの交点は、Ｔ字型交点と呼ばれる。この３つの縁辺の交点の画素も、終端頂点と呼ばれる。
【００２２】
本発明の１つ以上の実施形態では、表エンジン（１１０）を、ハードウェア（即ち、回路）、ソフトウェア、又はそれらの任意の組み合わせで実装することがある。表エンジン（１１０）は、表内のセルを検出するように構成される。言い換えると、表エンジン（１１０）は、電子文書（例えば、ＯＯＸＭＬ文書、ＰＤＦ文書、等）に含めるための手描きの表の高水準の描写物を生成するために、表のセルを識別するように構成される。
【００２３】
本発明の１つ以上の実施形態では、表エンジン（１１０）は、表の植字得点を計算する。表の植字得点は、各縁辺の長さ及び角度に基づいて計算される。植字得点とは、手描きの表が、垂直に交差する直線によって形成された行及び列を有する雛型表（例えば、理論的な又は理想的な表）にどれほど近く類似しているかという尺度である。言い換えると、植字得点とは、表と雛型表との比較である。例えば、植字得点は０〜１の間の範囲を取ることがあり、０．９８という植字得点は、手描きの表と雛型表とがほぼ完全に一致することを示す。一旦計算されると、植字得点は、電子文書（例えば、ＯＯＸＭＬ文書、ＰＤＦ文書、等）に含めるための手描きの表の高水準の描写物を生成するために使用される様々な処理で、特定の許容誤差をきつくしたり緩めたりするのに使用されることがある。
【００２４】
表の植字得点計算方法の一例について、図３を参照して以下で説明する。しかしながら、表の植字得点計算方法は、以下で説明する例に限定はされない。
【００２５】
本発明の１つ以上の実施形態では、表エンジン（１１０）は、表修復方法を実行して表内の特定された欠陥を修復する。具体的には、表の行及び列を形成する線が、欠陥を持っていることがある。例えば、マーカーを使用して描かれた表の場合、欠陥とは、ぞんざいな描画によって、かつ／又はマーカーの衰えによって引き起こされた脱落部（即ち、表の線と線の間の、又は線の内部の断線部）であるかもしれない。表エンジン（１１０）は、骨格グラフの縁辺及び頂点に基づいて、人為的な縁辺を追加することによって修復することができる表の部分を決定する。例えば、人為的縁辺を骨格グラフの２つの位置（例えば、画素）の間に構築して、ほぼ直線的な接続、ほぼ垂直な接続、又は隅角接続を確立することができる。表を修復することによって、表に対して機能する追加の処理が、電子文書（例えば、ＯＯＸＭＬ文書、ＰＤＦ文書、等）に含めるための高水準の表の描写物を正確に生成できるようになる可能性が高くなる。
【００２６】
表修復方法の一例について、図４Ａ及び図４Ｂを参照して以下で説明する。しかしながら、修復方法は、以下に説明する例に限定はされない。
【００２７】
本発明の１つ以上の実施形態では、表エンジン（１１０）は、表のセル検出方法を実行して、表を構成する１つ以上のセルを識別する。初めに、骨格グラフから候補セルが識別される。候補セルは、縁辺及び頂点から構成される。次いで、各候補セルに対して１つ以上の検証処理を実行して、その候補セルが実際に表のセルであることを確認する。１つ以上の実施形態では、表エンジン（１１０）は、検証されたセルを検証済セルデータ構造（例えば、配列、リスト）内に保存する。識別され検証された候補セルのこれらの縁辺及び頂点を用いて、電子文書（例えば、ＯＯＸＭＬ文書、ＰＤＦ文書、等）に含めるための高水準の表の描写物を生成することができる。
【００２８】
表のセル検出方法及び表のセル検証方法の例を、それぞれ図５Ａ〜図５Ｃ、及び図６Ａ〜図６Ｃを参照して、以下で説明する。しかしながら、表のセル検出方法及び検証方法は、以下で説明する例に限定はされない。
【００２９】
本発明の１つ以上の実施形態では、表エンジン（１１０）は、表のセルを識別し検証した後で１つ以上の方法を実行して、骨格グラフ内の内部セルを除去することがある。１つ以上の実施形態では、内部セルとは、少なくとも１つの縁辺を別のセルと共有し、別のセルと領域が重なり、他のセルよりも小さなサイズ（例えば、面積）を持つセルである（即ち、各内部セルは、より大きなセル内に包含される）。表エンジン（１１０）は、検証済セルデータ構造（例えば、配列、リスト）内に保存された全てのセルを追跡して、同じ時計回りの又は反時計まわりの方向で、２つのセルによって共有された１つ以上の縁辺（即ち、共有縁辺）を識別することによって、内部セルを識別する。これについては、以下に図１３でより詳細に説明する。
【００３０】
本発明の１つ以上の実施形態では、表エンジン（１１０）は、表内の内部セルを除去した後で１つ以上の方法を実行して、表を構成するセルをリンクさせることがある。１つ以上の実施形態では、表エンジン（１１０）は、検証済セルデータ構造内に保存されたセルの時計回り又は反時計回りの追跡中に、複数のセル間の共有縁辺（即ち、１つ以上のセルによって共有された縁辺）を識別することにより、セルをリンクさせる。表エンジン（１１０）は、専用座標系の基本方向にある隣接セルとして別のセルと縁辺を共有するセルを、更に分類する。例えば、セルＡの北縁辺（即ち、北側の境界にある縁辺）が、セルＢと共有される縁辺であると仮定する。表エンジン（１１０）は、セルＡの北隣としてセルＢを記録し、セルＢの南隣としてセルＡを記録する。１つ以上の実施形態では、セルは、２つ以上の隣接セル（例えば、北隣、南隣、東隣、及び西隣）を有することがある。１つ以上の実施形態では、表エンジン（１１０）は、隣接セルデータ構造（例えば、配列）に全ての隣接セル情報を保存し、この隣接セルの情報を使用して、検証済セルデータ構造に保存された全てのセル間のリンクを生成する（即ち、表内の全てのセル間のリンクを確立する）。これについては、以下に図１４でより詳細に説明する。
【００３１】
本発明の１つ以上の実施形態では、表エンジン（１１０）は、表を構成する全てのセルをリンクさせた後で１つ以上の方法を実行して、表内のセル間のリンクを検証することがある。１つ以上の実施形態では、２つのセル間のリンクを検証するために、表エンジン（１１０）は、２つのセルのうちの一方を現在のセルに指定し、他方のセルを隣接セルとして指定する。表エンジン（１１０）は、隣接セルが検証済セルデータ構造に保存されたセルとして確認された場合、かつ、現在のセルが、隣接セルデータ構造（例えば、配列）内で隣接セルの隣のセルとしてリストされているセルとして確認された場合に、２つのセル間のリンクを正しいと認める。例えば、セルＸ及びセルＹは隣り合うセルであると仮定する。更に、セルＸが現在のセルとして選択され、セルＹが隣接セルとして選択されたと仮定する。表エンジン（１１０）は、セルＹが検証済セルデータ構造内にリストされたセルであること、及び、セルＸが、セルＹの隣接セルとして隣接セルデータ構造内にリストされていることを検証する。
【００３２】
本発明の１つ以上の実施形態では、表エンジン（１１０）は、結合セル分割方法を実行して、表内で識別された１つ以上の結合セルを分割する。具体的には、取得された画像は、１つ以上の結合セルを有する表を含むことがある（以下に図７Ａ〜図７Ｃで考察する）。結合セルを分割した後で表を再生成するために、表エンジン（１１０）が骨格グラフに対して１つ以上の処理を実行する。これらの１つ以上の処理は骨格グラフに人為的縁辺を追加することがあり、各人為的縁辺は分割後のセルの境界に相当する。当初の（即ち、結合前の）境界が既知になると、電子文書（例えば、ＯＯＸＭＬ文書、ＰＤＦ文書、等）に含めるための高水準の表の描写物を生成することができる。この高水準の描写物は、セル毎に、他のセルと結合されたセルであっても、属性及び／又はタグを有することがある。電子文書が描画される（例えば、表示される、プリントされる）と、新しい（分割後の）表が見られることがあり、かつ／又は分割前の表（即ち、取得された画像で見られる通りの表）が見られることがある。
【００３３】
結合セル分割方法の一例について、図７Ａ〜図７Ｃを参照して以下で説明する。しかしながら、表の結合セル分割方法は、以下で説明する例に限定はされない。
【００３４】
本発明の１つ以上の実施形態では、表エンジン（１１０）は、１つ以上の処理を実行してセルの格子を生成しエクスポート（出力）することがある。１つ以上の実施形態では、表エンジン（１１０）は、結合セルを分割した後で、表内の全てのセルを使用して最も大きな四辺形の（例えば、正方形又は長方形の）格子を構築して、分割されたセルによって形成される最も大きな可能な表を識別する。これにより、確実に、表エンジン（１１０）がセルの集合から最も大きな可能な表を識別し、万一、表エンジン（１１０）によって実行される上述の処理でいずれかのセルが見落とされていた場合に発見することができるほとんどのデータを返すことができる。１つ以上の実施形態では、表エンジン（１１０）は、１つ以上のタグの中で指定された属性（例えば、セルの数、行の数、列の数、行の高さ、列の幅、等）を有する表の高水準の描写物として、格子をエクスポートする。
【００３５】
システム（１００）は３つの構成要素（１０４、１０８、１１０）を有するものとして示されているが、本発明の他の実施形態では、システム（１００）はより多くの又はより少ない構成要素を有することがある。更に、上述の各構成要素の機能は、構成要素間で分割されることがある。更に、各構成要素（１０４、１０８、１１０）は、反復動作を実行するために、複数回利用されることがある。
【００３６】
図２〜図７は、本発明の１つ以上の実施形態による流れ図を示す。これらの流れ図は、表を含む画像を処理する工程を示す。具体的には、これらの流れ図は、画像中の表を識別する工程を示す。図２〜図７での１つ以上の工程を、図１を参照して上に述べたシステム（１００）の構成要素によって、行うことがある。本発明の１つ以上の実施形態では、図２〜図７に示す１つ以上の工程を、省略するか、繰り返すか、かつ／又は、図２〜図７に示した順序とは異なる順序で行うことがある。従って、本発明の範囲は、図２〜図７に示した具体的な工程の構成に限定されるものとみなされるべきではない。
【００３７】
図２は、１つ以上の実施形態による主流れ図を示す。具体的には、図２の主流れ図は、画像内に含まれる表を識別するために、図１で述べたような表エンジン（１１０）によって実行される方法の大部分（又は全て）を説明する。
【００３８】
初めに、表を含む画像を取得する（工程２０５）。画像は、任意のソースから取得され（例えば、ダウンロードされる、走査される、等）、任意のサイズ又はフォーマットであることがある。例えば、画像は書込みボードを含むことがあり、表は、書込みボード上に手描きで描かれている。これに加えてあるいはこの代わりに、画像はハードコピー文書を走査したものであり、表は、ハードコピー文書中に見えており、表はコンピュータで生成されたものであることがある。手で描いたストロークの性質により、かつ／又は走査処理中に持ち込まれるエラーにより、表の行及び列は、完全に真っ直ぐなストロークによって境界をつけられる可能性は低い。１つ以上の実施形態では、表は、１つ以上の結合セルを含むことがある（図７Ａ〜図７Ｃを参照して以下で考察する）。
【００３９】
本発明の１つ以上の実施形態では、画像をマスク（例えば、二値画像）に変換して、表の各手描き線及び／又は表内のテキスト文字を識別する。表のストロークに対応する画素は１に設定し、残りの全ての画素は０に設定することがある。更に、図１を参照して上に述べたような専用座標系を、表に対して確立する。或いは、表の行及び列が画像の標準座標系とより良く整列するように、表を回転させることがある。
【００４０】
工程２１０では、図１を参照して上に述べたように、表内の全ての連結構成要素を識別する。工程２１５では、図１を参照して上に述べたように、表に対して骨格グラフを生成する。本発明の１つ以上の実施形態では、工程２１０で識別された全ての連結構成要素に対して骨格グラフを生成する。或いは、工程２１０で識別された最大の連結構成要素に対してのみ骨格グラフを生成する。
【００４１】
本発明の１つ以上の実施形態では、図１を参照して上に述べたように、骨格グラフは、表を表す縁辺及び頂点の集合を含むことがある。各縁辺は、表のストローク又はストロークの一部に相当することがあり、各頂点は２つ以上の縁辺の交点に相当することがある。言い換えると、頂点は縁辺を区切る。
【００４２】
工程２２０では、図１で述べたように、表に対して植字得点を計算する。
【００４３】
工程２２５では、図１で述べたように、表の骨格グラフ及び植字得点に基づいて表内の欠陥を特定し修復する。
【００４４】
工程２３０では、表に対する回転角度を決定し、図１で述べたように、表に対して専用座標系を生成して表の行及び列と整列させる。
【００４５】
工程２３５では、骨格グラフの縁辺及び頂点、表の植字得点、及び専用座標系に基づいて、図１で述べたように、表を構成する複数のセルを識別し検証する。
【００４６】
工程２４０では、図１で述べたように、内部セルを識別し、骨格グラフから除去する。
【００４７】
工程２４５では、内部セルを除去した後で、工程２３５で検証した複数のセル間のリンクを確立し、セル間のリンクを検証する。
【００４８】
工程２５０では、表内の結合セル（図７Ａ〜図７Ｃを参照して以下で考察する）を識別し分割する。
【００４９】
工程２５５では、図１で述べたように、表に対してセルの格子を生成し、表の高水準の描写物としてエクスポートする。
【００５０】
図３は、１つ以上の実施形態による副流れ図を示す。図３は、図２の流れ図の工程２２０に関して更なる詳細を提供する。図３の副流れ図は、少なくとも部分的に、表の植字得点計算方法の一例を示す。
【００５１】
工程３１５では、骨格グラフ内の各縁辺の角度及び長さを識別する。縁辺の長さは、縁辺の終端部間のユークリッド距離に相当することがある。縁辺の角度は、軸（例えば、ｘ軸、ｙ軸、等）と、縁辺の両方の終端部を通る線との間の角度に相当することがある。
【００５２】
工程３２０では、縁辺を、その角度に基づいて集団（例えば、角度区間）にグループ分けする。例えば、２度〜３度の間の角度を有する縁辺は全て、同じ集団にグループ分けすることがある。別の例として、８９．５度〜９０．５度の間の角度を有する縁辺は全て、同じ集団にグループ分けすることがある。次いで、各集団に対する集団長さを計算する。例えば、集団が、縁辺：Ｅ1、Ｅ2、Ｅ3、…、ＥKを有するものと仮定する。この集団の集団長さは、Ｅ1の長さ＋Ｅ2の長さ＋Ｅ3の長さ＋…＋ＥKの長さとして計算する。
【００５３】
工程３２５では、ヒストグラムを生成し、一方の軸に集団を、他方の軸に集団長さをプロットする。１つ以上の実施形態では、工程３２５はオプションである。ヒストグラムは、表がどれほど雛型表に近いかという視覚的な表現をユーザに提供する。
【００５４】
工程３３０では、集団長さ、及び全ての縁辺の全ての長さの総和を用いて、表の植字得点を計算する。具体的には、植字得点は、総和に対するＮ個の最大集団長さの比率であり得る。Ｎ＝２の場合、植字得点＝（ＣＬ1＋ＣＬ2）／（全ての縁辺の全ての長さの総和）であり、ＣＬ1及びＣＬ2は、２つの最大集団長さである。
【００５５】
この詳細な説明から恩恵を受ける当業者であれば、手描きの表が雛型表（即ち、９０度で交差する完全に真っ直ぐな線を有する理論上の表）に緊密に類似している場合には、縁辺の大部分は０度又は９０度の角度を有していることを、理解するであろう。従って、ゼロ度を含む集団及び９０度を含む集団が、最大集団長さを有することになる。更に、これらの２つの集団が縁辺の大部分（場合によっては全て）を含むので、これらの２つの集団の集団長さの合計は、全ての縁辺の全ての長さの合計とほぼ等しくなる。従って、植字得点は、そのような表に対しては１に近くなる。
【００５６】
図３には示していないが、工程３３０に続いて、電子文書（例えば、ＯＯＸＭＬ文書、ＰＤＦ文書、等）に含めるための高水準の表の描写物を生成する様々な処理での様々な許容誤差を、植字得点を使用して調節することがある。
【００５７】
図４Ａ及び図４Ｂは、１つ以上の実施形態による副流れ図を示す。図４Ａ及び図４Ｂは、図２の流れ図の工程２２５に関して更なる詳細を提供する。図４Ａ及び図４Ｂの副流れ図は、表修復方法の一例を少なくとも部分的に示す。
【００５８】
工程４２０では、骨格グラフ上で複数の終端頂点を識別し、データ構造（例えば、配列）に保存する。具体的には、１つ以上の実施形態では、縁辺の端部が別の縁辺に接続されていない場合、この縁辺の端部の画素を終端頂点として識別する。本発明の１つ以上の実施形態では、３つの縁辺のみの交点は、Ｔ字型交点と呼ばれる。この３つの縁辺の交点の画素も、終端頂点として識別する。
【００５９】
工程４２５では、複数の終端頂点のそれぞれについて、関心領域を生成する。関心領域は、円錐、楕円、三角形などの形状を取ることがある。関心領域のサイズ及び／又は形状は、表が、真っ直ぐな行及び列を有する雛型表とどれほどよく一致するかによって決まることがある。例えば、表が適切に描かれている場合には、より小さなサイズの関心領域が適切である。
【００６０】
工程４３０では、各終端頂点の関心領域内部で複数の位置を識別する。１つ以上の実施形態では、各終端頂点の位置を、その終端頂点に対するデータ構造（例えば、配列）に保存する。
【００６１】
本発明の１つ以上の実施形態では、同一線上の接続が、垂直な接続よりも好まれる。従って、工程４３５では、終端頂点と同一線上の接続を形成することができる位置を、ターゲットとして選択する。次いで、ターゲットと終端頂点との間に人為的縁辺を生成し、骨格グラフに追加する。人為的縁辺が関心領域内の介在縁辺と交差する場合、及び、人為的縁辺が介在縁辺とほぼ垂直な接続を形成する場合、人為的縁辺を２つの部分に分割する。１つの部分は、終端頂点から介在縁辺までである。２つ目の部分は、介在縁辺からターゲットまでである。終端頂点を保存しているデータ構造からその終端頂点を除去する。ターゲットも終端頂点である場合、その終端頂点を、終端頂点を保存しているデータ構造から除去する。終端頂点を有する骨格グラフとは異なる骨格グラフ上にターゲットが位置する場合、ターゲットを有する骨格グラフを、終端頂点を有する骨格グラフに追加する（例えば、結合する）。
【００６２】
工程４４０では、残りの終端頂点について、終端頂点と垂直な接続を形成することができる位置を、ターゲットとして選択する。次いで、ターゲットと終端頂点との間に人為的縁辺を生成し、骨格グラフに追加する。終端頂点を有する骨格グラフとは異なる骨格グラフ上にターゲットが位置する場合、ターゲットを有する骨格グラフを、終端頂点を有する骨格グラフに追加する（例えば、結合する）。
【００６３】
１つ以上の実施形態では、工程４３５又は工程４４０中に、ターゲットに接続されていない終端頂点を、終端頂点を保存しているデータ構造から除去する。
【００６４】
工程４５０では、新たな終端頂点を識別するために、場合により結合された骨格グラフ上で新たな走査を行う。これらの新たな終端頂点は、工程４３５及び工程４４０で骨格グラフを結合した結果である。
【００６５】
新たな終端頂点が存在すると決定した場合、処理は工程４３５に戻る。新たな終端頂点は存在しないと決定した場合、処理は工程４５５に進む。
【００６６】
工程４５５では、残りの終端頂点のいずれか（即ち、同一線上の接続又は垂直な接続を形成することができない終端頂点）が角部の接続を形成することができるかどうかを決定する。
【００６７】
残りの終端頂点が角部の接続を形成しないと決定した場合、工程４７０で、その終端頂点を、終端頂点を保存しているデータ構造から除去する。残りの終端頂点の１つ以上の対が角部の接続を形成することができると決定した場合、処理は工程４６５に進んで、それらの対から角部のターゲットまで人為的縁辺を生成する。
【００６８】
図５Ａ〜図５Ｃは、１つ以上の実施形態による副流れ図を示す。図５Ａ〜図５Ｃは、図２の流れ図の工程２３５に関して更なる詳細を提供する。図５Ａ〜図５Ｃの副流れ図は、１つ以上の実施形態の主要な表検出方法で使用することができる表のセル検出方法の一例を、少なくとも部分的に示す。
【００６９】
本発明の１つ以上の実施形態では、図５Ａ〜図５Ｃに示す１つ以上の工程を、専用座標系を基準にした表の時計回りの方向の最初の選択に基づいて説明する。１つ以上の実施形態では、図５Ａ〜図５Ｃに示す工程は、反時計回りの方向に対して繰り返されることがある。
【００７０】
工程５１０では、隅角頂点、開始頂点、及び終了頂点を骨格グラフ上で特定する。更に、訪問済頂点（ＶＶ：visited vertices）データ構造、到来元データ構造、及び回転履歴（ＴＨ：turn history）データ構造（以下に工程５３５Ｂで考察する）を初期化する。本発明の１つ以上の実施形態では、隅角頂点、開始頂点、及び終了頂点をＶＶデータ構造に保存する。
【００７１】
１つ以上の実施形態では、隅角頂点とは、３つ以上の縁辺の交点を表す骨格グラフ上の頂点である。開始頂点は、隅角頂点から単一の縁辺によって分離されている。終了頂点は、隅角頂点から単一の縁辺によって分離されている。更に、隅角頂点と開始頂点との間の縁辺と、終了頂点と隅角頂点との間の縁辺とが垂直になるか又はほぼ垂直になるように、隅角頂点から開始し開始頂点と終了頂点との間にある縁辺を選択する。例えば、隅角頂点と開始頂点との間の縁辺は専用座標系で東の方向にあることがあり、一方、終了頂点と隅角頂点との間の縁辺は専用座標系で北の方向にあることがある。
【００７２】
１つ以上の実施形態では、ＶＶデータ構造を使用して、開始頂点と終了頂点との間の矩形の又はほぼ矩形の経路を見つけるための処理中に、候補頂点（隅角頂点、開始頂点、及び終了頂点を含む）として選択された全ての頂点を記録する。
【００７３】
本発明の１つ以上の実施形態では、到来元データ構造は、セル検出処理中に探索（即ち、識別）又は選択された全ての頂点と、各頂点に先立つ頂点とを記録する。例えば、隅角頂点、終了頂点、及び開始頂点を、到来元データ構造の項目に登録する。終了頂点は、表の反時計回りの方向で隅角頂点に直接接続されるので、終了頂点は、到来元データ構造内の隅角頂点に対する項目において、隅角頂点に先立つ頂点として設定する。本発明の１つ以上の実施形態では、終了頂点に先立つ頂点は、終了頂点自体として設定する。
【００７４】
工程５１５では、開始頂点を現在の頂点に設定する。
【００７５】
工程５２０Ａでは、現在の頂点に対して一組のルート選択肢（即ち、一組の隣接頂点）を決定する。各隣接頂点は、現在の頂点から単一の縁辺によって分離されている。１つ以上の実施形態では、各隣接頂点を到来元データ構造に保存する。
【００７６】
１つ以上の実施形態では、ルート選択肢（ＲＯ：route options）データ構造を初期化して、現在の頂点に対して決定されたそのルート選択肢を保存する。ＲＯデータ構造の各項目としては、隣接頂点のうちの１つ、現在の移動ベクトル、新たな移動ベクトル、及び回転コスト（以下で考察する）が挙げられる。現在の移動ベクトルとは、現在の頂点に先立つ頂点から現在の頂点への移動方向である。新たな移動ベクトルとは、現在の頂点から隣接頂点への移動方向である。例えば、隅角頂点を現在の頂点として選択したと仮定する。隅角頂点に対して生成されたＲＯデータ構造は、開始頂点を現在の頂点に隣接する頂点とする１つの項目を含む。現在の移動ベクトルは、終了頂点から隅角頂点への移動方向となり、新たな移動ベクトルは、隅角頂点から開始頂点への移動方向となる。
【００７７】
工程５２０Ｂでは、現在の頂点と隣接頂点との間の各縁辺（即ち、ルート）の長さを計算する。本発明の１つ以上の実施形態では、縁辺の長さは、縁辺の２つの終端部間のユークリッド距離として計算することができる。これに加えてあるいはこの代わりに、この長さは、縁辺の画素の経路内の画素数を数えることによって特定することもできる。
【００７８】
工程５２０Ｃでは、その組のルート選択肢中に、所定の閾値（即ち、最小の閾値長さ値）より長さが短い縁辺（即ち、ルート）が存在するかどうかを決定するための判定を行う。１つ以上の実施形態では、最小の閾値長さ値は、表の全てのストロークの平均の幅（画素での）の２倍として計算することがある。
【００７９】
本発明の１つ以上の実施形態では、その組のルート選択肢中の１つのルート選択肢が最小の閾値長さ値よりも短い長さを有する場合、そのルート選択肢の新たな移動ベクトルを、そのルート選択肢の現在の移動ベクトルと等しくなるように設定する。更に、そのルート選択肢の回転コストを０に設定し（即ち、計算の必要なしに、回転コストを直ちに０に設定し）、これにより、最小の閾値長さ値を満たさない骨格グラフ内の縁辺によって生成されるノイズは無視されるようになる。
【００８０】
１つ以上の隣接頂点が、最小の長さ閾値よりもが長さが短い縁辺によって現在の頂点から分離されていると決定した（即ち、工程５２０Ｃの評価結果が「はい」である）場合、処理は工程５２０Ｄに進む。工程５２０Ｄでは、長さが短い縁辺（即ち、ルート）に関連した各頂点について、新たな移動ベクトル（即ち、現在の頂点からその組のルート選択肢内の隣接頂点への移動方向）を、現在の移動ベクトル（即ち、骨格グラフで現在の頂点に先立つ頂点から現在の頂点への移動方向）と等しくなるように設定する。次いで、処理は工程５２０Ｅに進む。
【００８１】
１つ以上の実施形態では、現在の移動ベクトルは（ｘ、ｙ）というフォーマットで記録され、ここで（ｘ、ｙ）は、以前の頂点が専用座標系の原点になるように縁辺を平行移動した場合の、以前の頂点と現在の頂点との間の縁辺についての、現在の頂点の座標である。同様に、新たな移動ベクトルは（ｘ、ｙ）のフォーマットで記録され、ここで（ｘ、ｙ）は、現在の頂点が専用座標系の原点になるように縁辺を平行移動した場合の、現在の頂点と隣接頂点との間の縁辺についての、隣接頂点の座標である。
【００８２】
最小の長さ閾値と等しいか又はそれよりも長い縁辺によって、全ての隣接頂点が現在の頂点から分離されていると決定した（即ち、工程５２０Ｃの評価結果が「いいえ」である）場合、処理は直接工程５２０Ｅに進む。
【００８３】
工程５２０Ｅでは、残りの組のルート選択肢内の各頂点（即ち、最小の長さ閾値と等しいか又はこれより長い縁辺によって、現在の頂点から分離されている隣接頂点）に対して、新たな移動ベクトル（即ち、現在の頂点からその組のルート選択肢内の隣接頂点への移動方向）を決定する。
【００８４】
工程５２０Ｆでは、その組のルート選択肢内の各頂点について、回転コストを計算する。本発明の１つ以上の実施形態では、回転コストは、新たな移動ベクトルの角度と、現在の移動ベクトルに垂直であり、かつ現在の移動ベクトルの方向からみて次の基本方向にあるベクトルの角度との間の絶対的な差に基づく。次の基本方向にある垂直なベクトルの角度は、現在の移動方向に対して理想的な回転方向を表す（例えば、現在の移動ベクトルの移動方向が東である場合、理想的な回転方向は、時計回りで南に向かって９０度である）。例えば、隣接頂点が、（１２４、−９）という現在の移動ベクトル（即ち、現在の移動方向）と、（１３０、−６）という新たな移動ベクトル（即ち、新たな移動方向）とを有すると仮定する。現在の移動ベクトルに垂直であり、かつ次の基本方向にあるベクトルは（９、１２４）であり、８６度の角度を有する。新たな移動ベクトル（１３０、−６）の角度は−３度と計算される。８６度と−３度との間の絶対的な差は８９度であり、これをその頂点の回転コストとして設定する。
【００８５】
１つ以上の実施形態では、最小の閾値長さ値よりもが長さが短いルート選択肢に対する回転コストを、０に設定する（即ち、計算の必要なく、回転コストを直ちに０に設定する）。
【００８６】
工程５２５では、最小の回転コストを有するその組のルート選択肢の中の頂点を、候補頂点として選択する。
【００８７】
工程５３０Ａでは、工程２２５で選択した候補頂点が、ＶＶデータ構造内に保存された頂点と一致するかどうかを判定するための決定を行う。言い換えると、候補頂点が、ＶＶデータ構造に既に記録済みであるかどうかを決定する。候補頂点がＶＶデータ構造に既に記録済みであると決定した場合、処理は工程５３０Ｄに進む。そうでなければ、候補頂点がＶＶデータ構造には存在しないと決定した場合、処理は工程５３０Ｂに進む。
【００８８】
工程５３０Ｄでは、その組のルート選択肢中の残りの頂点から、新たな（即ち、異なる）候補頂点を選択する。本発明の１つ以上の実施形態では、新たな候補頂点は、回転コストが最小である、その組のルート選択肢中の残りの頂点のうちの頂点である。本発明の１つ以上の実施形態では、工程５２５で選択した第１の候補頂点を、その組のルート選択肢から破棄する。
【００８９】
工程５３０Ｂでは、候補頂点の新たな移動方向（即ち、現在の頂点から候補頂点への移動方向）が、候補頂点の現在の移動方向（即ち、骨格グラフ上の現在の頂点の前の頂点から現在の頂点への移動方向）と一致する（例えば、それらが両方とも東である）かどうかを決定する。新たな移動方向が現在の移動方向と一致すると決定した場合、処理は工程５３５Ａに進む。新たな移動方向が現在の移動方向と一致しないと決定した場合、処理は工程５３０Ｃに進む。
【００９０】
工程５３０Ｃでは、候補頂点の新たな移動方向（即ち、現在の頂点から候補頂点への移動方向）が、現在の移動方向の次の時計回りの基本方向と一致するかどうかを決定する。例えば、現在の移動方向が東である場合、新たな移動方向が南であるかどうかを決定する。別の例として、現在の移動方向が北である場合、次の移動方向が東であるかどうかを決定する。新たな移動方向が現在の移動方向の次の時計回りの基本方向と一致すると決定した場合、処理は工程５３５Ｂに進む。そうでなければ、処理は工程５３０Ｄに進む。
【００９１】
工程５３５Ａでは、選択した候補頂点をＶＶデータ構造に保存し、その組のルート選択肢内の残りの頂点を、次の現在の頂点に対するＲＯデータ構造内に保持する。
【００９２】
工程５３５Ｂでは、選択した候補頂点をＶＶデータ構造に保存し、その組のルート選択肢内の残りの頂点を、ＴＨデータ構造に移動させる。
【００９３】
本発明の１つ以上の実施形態では、ＴＨデータ構造は、複数組のルート選択肢を保持するスタックである。選択されなかった残りのルート選択肢の組を、ＴＨデータ構造に追加する。ＴＨデータ構造に保存したルート選択肢のスタックには、現在の頂点が終端であると決定した（即ち、現在の頂点が可能なルート選択肢を持たない）場合に、アクセスすることがある（以下に工程５５０で考察する）。
【００９４】
工程５４０では、候補頂点を、新たな現在の頂点として指定する。工程５４５では、新たな現在の頂点に対して、工程５２０Ａを参照して上に述べたルート選択肢（即ち、隣接頂点）の組を決定し、新たな現在の頂点に対するルート選択肢の組の中の各隣接頂点を、到来元頂点データ構造に保存する。
【００９５】
工程５５０では、新たな現在の頂点に対するルート選択肢の組が、少なくとも１つのルート選択肢を含むかどうかを判定するための決定を行う。工程５５０の決定結果が「いいえ」である場合、処理は工程５５５に進み、工程５５５では、最上位の組のルート選択肢がＴＨデータ構造から取り出され、新たな（即ち、異なる）候補頂点をその組から選択する。本発明の１つ以上の実施形態では、選択される新たな（即ち、異なる）候補頂点は、その組に保存されたルート選択肢のうちで回転コストが最小の頂点である。一旦新たな（即ち、異なる）候補頂点を選択すると、処理は工程５３０に戻る。１つ以上の実施形態では、ルート選択肢を全く持たない現在の頂点を、ＶＶデータ構造から除去する。
【００９６】
工程５５０での決定結果が「はい」である（即ち、現在の頂点に対して少なくとも１つのルート選択肢が存在する）場合、処理は工程５６５に進み、工程５６５では、新たな現在の頂点のルート選択肢（即ち、隣接頂点）が終了頂点を含むかどうかを判定するための決定を行う。
【００９７】
工程５６５での決定結果が「いいえ」である場合、処理は工程５２０Ｂに戻り、新たな現在の頂点に対して上述の工程を繰り返す。
【００９８】
工程５６５での決定結果が「はい」である場合、処理は工程５７５に進み、表内のセルに対してルートを生成する。１つ以上の実施形態では、生成したルートは、ＶＶデータ構造に保存された全ての頂点を含む。１つ以上の実施形態では、到来元データ構造に保存されたデータは、現在の頂点から開始して最終的に開始頂点に到達し、次いで隅角頂点に到達し、終了頂点で終了する生成されたルートを後戻りする（即ち、後ろ向きに進む）ために使用する。
【００９９】
図６Ａ〜図６Ｃは、１つ以上の実施形態による副流れ図を示す。図６Ａ〜図６Ｃは、図２の流れ図の工程２３５に関して更なる詳細を提供する。この副流れ図は、（図５Ａ〜図５Ｃで説明した表のセル検出方法によって）検出された表のセルを検証するために使用することができる表のセル検証方法の一例を、少なくとも部分的に示す。
【０１００】
図６Ａ〜図６Ｃの以下の説明に現れる時計回りの例は、反時計回りと置き換えられてもよく、反時計回りの例は時計回りと置き換えられてもよい。
【０１０１】
図６Ａを参照すると、まず、工程６０５で、セル候補に関連した一組の縁辺を、検証のために取得する。この組の縁辺は、画像中の表に対する骨格グラフから識別されたものである。各縁辺は、表のストローク又はストロークの一部に相当することがあり、各頂点は２つ以上の縁辺の交点に相当することがある。言い換えると、頂点は縁辺を区切る。
【０１０２】
工程６１０では、その組の縁辺内の最長の長さを有する縁辺を決定する。最長縁辺の向きも決定する。本発明の１つ以上の実施形態では、縁辺の長さは、縁辺の２つの終端部間のユークリッド距離として計算することができる。これに加えてあるいはこの代わりに、この長さは、縁辺の画素の経路内の画素数を数えることによって特定することもできる。更に、縁辺の向きを、その縁辺の端点同士を結ぶ線分の法線と最も緊密に整列する専用座標系の基本方向として、決定する。
【０１０３】
工程６１５では、最長縁辺を含むセル候補の境界線に対する初期縁辺を決定し、最長縁辺の向きを、現在の向きとして設定する。
【０１０４】
１つ以上の実施形態では、境界線の初期縁辺を決定することは、最小の長さ閾値より長く、かつ最長縁辺の向きから±９０度の向きを有する縁辺を見つけるまで、表のある方向に（即ち、時計回り又は反時計回りに）、最長縁辺に先立つ縁辺を辿ることを含むことがある。例えば、最長縁辺の向きが北であり、追跡の方向は反時計回りであると仮定する。最小の長さ閾値より長く、かつ西向きである縁辺が検出されるまで、最長縁辺に先立つ全ての縁辺を反時計回りの方向に追跡する。西向きであるこの縁辺が短い縁辺（即ち、最小の閾値長さ値よりも短い縁辺）である場合、最小の長さ閾値よりも長い西向きの縁辺が検出されるまで、追跡を再開する。
【０１０５】
工程６２０では、境界線構築処理を初期化して、現在の向きを有する境界線を再構築（即ち、構築）し、かつ、境界線構築処理の方向に（即ち、時計回り又は反時計回り）次の向きを有する境界線の初期縁辺を見つける。この工程については、図６Ｂを参照して以下で説明する流れ図で、より詳細に更に説明する。具体的には、境界線構築処理の出力は、現在の向きを有する境界線を形成する縁辺を保存する、局所有向縁辺データ構造である。
【０１０６】
工程６２５では、境界線の縁辺を、局所有向縁辺データ構造に記録する。局所有向縁辺データ構造内のこの組の縁辺を、候補セル全体に対する全体的な有向縁辺データ構造に追加する（即ち、記録する）。更に、ゼロに初期化されていた訪問済縁辺計数値を、局所有向縁辺データ構造内の縁辺の個数だけ増加させる。
【０１０７】
工程６３０では、現在の向きを有する境界線の再構築時に、現在の向きを９０度回転させる。
【０１０８】
工程６３５では、現在の向きが最長縁辺の向きと一致するかどうかを判定するための決定を行う。現在の向きが最長縁辺の向きと一致する（即ち、工程６３５での決定結果が「はい」である）場合には、境界線構築処理は４回実行されており、従って候補セルの４つの全ての境界線を再構築済みである。そのような場合には、処理は工程６４０に進み、４つの局所有向縁辺データ構造（即ち、全体的な有向縁辺データ構造）に記録された縁辺を使用して、候補セルを検証する。
【０１０９】
工程６３５の決定結果が「いいえ」である場合、境界線構築処理によって候補セルの４つの全ての境界線を再構築するように試みるまで、処理は工程６２０に戻る。上に述べたように、境界線構築処理の実行は、各候補セルに対して４回（即ち、基本方向毎に１回）試みる。
【０１１０】
図６Ｂは、図６Ａの流れ図の工程６２０を更に詳説する１つ以上の実施形態による副流れ図を示す。図６Ｂの副流れ図は、境界線構築処理を少なくとも部分的に示す。上に述べたように、この処理を４回（即ち、基本方向毎に１回）実行して、候補セルの４つの境界線を再構築することができる。
【０１１１】
工程６４５では、現在の向きを有する境界線の初期縁辺から開始する縁辺の追跡を初期化する。
【０１１２】
工程６５０では、工程６４５の追跡中に遭遇した縁辺の部分集合を局所有向縁辺データ構造に追加する。
【０１１３】
工程６６０では、最小の長さ閾値より長く、かつ次の向きを有する縁辺に、追跡中に遭遇する。これを受けて、次の向き（即ち、現在の向きの±９０度の向き）を有する境界線の初期縁辺の探索を実行する。この工程については、図６Ｃを参照して以下で説明する流れ図で、更に説明する。
【０１１４】
工程６７０では、次の向きを有する境界線の初期縁辺（及び次の向きを有する任意の他の縁辺）を、局所有向縁辺データ構造から除去する。１つ以上の実施形態では、局所有向縁辺データ構造に残っている唯一の縁辺（複数可）は、候補セルの１つの境界線を構成する縁辺である。
【０１１５】
図６Ｃは、図６Ａの工程６１５及び図６Ｂの工程６６０を更に詳説する１つ以上の実施形態による副流れ図を示す。図６Ｃの副流れ図は、候補セルの境界線の初期縁辺（即ち、候補セルの境界線の角部にある縁辺）を探索する処理を少なくとも部分的に表す。
【０１１６】
工程６７５では、３以上の程度を有する頂点を有する縁辺の探索を行う。１つ以上の実施形態では、探索される縁辺は、局所有向縁辺データ構造に保存されている組の縁辺であってもよい。これに加えてあるいはその代わりに、縁辺は、最長縁辺が識別された後で追跡中に遭遇する全ての縁辺であってもよい。
【０１１７】
工程６８０では、３以上の程度を有する頂点を有する少なくとも１つの縁辺が識別されたかどうかを判定するための決定を行う。
【０１１８】
工程６８０での決定結果が「はい」である場合、３以上の程度を有する頂点を有する単一の縁辺のみが工程６７５で見つかったのかどうかを判定するための別の決定を、工程６８５で行う。
【０１１９】
工程６８５での決定結果が「はい」である（即ち、３以上の程度を有する頂点を有する縁辺が１つだけ存在する）場合、この縁辺を選択し、次の向きを有する境界線の初期縁辺として設定する。
【０１２０】
工程６８０又は工程６８５のいずれかの決定結果が「いいえ」である場合、処理は工程６９５に進み、向きが変化している１番目の縁辺を、次の向きを有する境界線の初期縁辺として選択する。
【０１２１】
図７Ａ〜図７Ｃは、１つ以上の実施形態による副流れ図を示す。図７Ａ〜図７Ｃは、図２の流れ図の工程２５０に関して更なる詳細を示す。この副流れ図は、主要な表検出方法で使用することができる結合セル分割方法の一例を、少なくとも部分的に示す。
【０１２２】
本発明の１つ以上の実施形態では、図７Ａ〜図７Ｃに示す１つ以上の工程を、専用座標系での西の基本方向の最初の選択に基づいて説明する。１つ以上の実施形態では、図７Ａ〜図７Ｃに示す工程を、北又は南の基本方向に対して繰り返すことがある。
【０１２３】
工程７１５では、表内の結合セルの西及び東の境界線上にある全ての非隅角頂点を識別し、データ構造（例えば、配列）に保存する。本発明の１つ以上の実施形態では、結合セルとは、複数の他のセル（即ち、隣接セル）と境界線のうちの１本（例えば、西の境界線）を共有するセルである。隣接セルの境界線（例えば、南の境界線）が、結合セルの境界線（例えば、西の境界線）と交差する（即ち、接触する）ことがある。この交点が、結合セルの角部で発生していない場合、この交点は結合セルの「非隅角頂点」と呼ばれる。
【０１２４】
工程７２０では、工程７１５で識別した非隅角頂点のそれぞれに対して、内部分割線（即ち、非隅角頂点で開始し終了する幾何学線）を生成する。例えば、ある西の非隅角頂点（即ち、表内の結合セルの西の境界線上で識別された非隅角頂点）を選択した場合、選択した西の非隅角頂点とデータ構造内の東の非隅角頂点のそれぞれとの間に幾何学線を生成する。１つ以上の実施形態では、非隅角頂点に対して生成した内部分割線の数は、ゼロであることがある。例えば、選択した西の非隅角頂点が、接続すべき東の非隅角頂点を持たない場合、この選択した西の非隅角頂点については、内部分割線を生成しない。
【０１２５】
工程７２５では、基準を満たさない内部分割線を破棄する。具体的には、結合セルの非隅角頂点に対する内部分割線が、その結合セルの反対側の境界線と交差しない場合、及び／又は、内部分割線が無効な境界線と交差する場合、その内部分割線を破棄する。１つ以上の実施形態では、無効な境界線とは、非隅角頂点が属する結合セルの境界線と実質的に平行ではない、表内の任意のセルの境界線である。言い換えると、非隅角頂点が属する境界線が結合セルの垂直の境界線である場合、内部分割線は、表内のどのセルの水平の境界線とも交差できない。例えば、西の非隅角頂点を有する結合セルが存在すると仮定する。その西の非隅角頂点からの分割線が、その結合セルの東の境界線と交差（即ち、交差及び／若しくは接触）しない場合、並びに／又は、その西の非隅角頂点からの分割線が、表内のいずれかのセルの北又は南の境界線と交差（即ち、交差及び／若しくは接触）する場合、その分割線を破棄する。
【０１２６】
本発明の１つ以上の実施形態では、工程７２５で破棄しなかった残りの内部分割線を、「可能分割線データ構造」と呼ばれるデータ構造（即ち、配列）に保存する。このデータ構造は、表内の１つ以上の結合セルを分割するために１つ以上の人為的縁辺で置き換えることができる、全ての可能な分割線を表す。
【０１２７】
工程７３０では、工程７１５で識別した全ての非隅角頂点について、外周部分割線（即ち、非隅角頂点から開始し表の外周部で終了する幾何学線）を生成する。１つ以上の実施形態では、各外周部分割線は、専用基本方向のうちの１つの方向に進み、その外周部分割線が開始する結合セルの境界線と実質的に平行ではない、表内のいずれかのセルの境界線とは交差（即ち、横断及び／又は接触）しない。言い換えると、結合セルの垂直な境界線から始まる外周部分割線は、その外周部分割線が表の外周部に向かって基本方向に進むにつれて、表内のセルの垂直な境界線とのみ交差（即ち、横断及び／又は接触）することがある。具体的には、外周部分割線の進行方向は、非隅角頂点が位置する境界線の専用基本方向とは反対になる。例えば、西の非隅角頂点の場合、外周部分割線はこの西の非隅角頂点から開始し、表の外周部に到達するまで東に進む。外周部分割線が表内のいずれかのセルの北又は南の境界線と交差（即ち、横断及び／又は接触）する場合、外周部分割線を生成しない。外周部分割線を、内部分割線を有する可能分割線データ構造に保存する。
【０１２８】
工程７４０では、可能分割線データ構造内の各分割線（内部及び外周部）について、信頼値を計算する。信頼値は、分割線が、１つ以上の結合セルを分割する理論上の線とどれほどよく一致するかという尺度を提供する。
【０１２９】
本発明の１つ以上の実施形態では、信頼値は０から１までの範囲の得点であることがあり、１は最も高い得点として解釈される。分割線の信頼値は、その分割線の長さに基づいて計算する。内部分割線の長さとは、ユークリッド距離か、又はそれに代えて、２つの非隅角頂点間の画素数である。外周部分割線の長さとは、ユークリッド距離か、又はそれに代えて、非隅角頂点と表の外周部上の点との間の画素数である。長さが短いほど、信頼値は高くなる。例えば、より短い分割線は、潜在的に、手描きの表のより少ないセル並びに／又はセル内の文字及びテキストと交差（即ち、横断及び／又は接触）することになり、従って、結合セルのより正確な分割をもたらす。別の例として、長さがより短い分割線は、２つの非隅角頂点同士を接続させる可能性がより高く、これは、非隅角頂点を手描きの表上の点（例えば、手描きの表の外周部上の点）と接続させることよりも優先度が高い。
【０１３０】
本発明の１つ以上の実施形態では、分割線の信頼値は、分割線の進行方向と専用座標系の最も近い軸との間の角度（即ち、分割線の進行方向が、分割線が進もうとしている専用座標系の基本方向とどれほど良く一致するか）にも基づく。分割線の進行方向とは、非隅角頂点から開始し、分割線の方向に沿って非隅角頂点から離れる方向に向かうベクトルの方向である。角度がゼロに近づくほど、信頼値が高くなる。
【０１３１】
工程７４５では、各非隅角頂点について、可能分割線データ構造内の分割線を、前部に最も高い信頼値を配し後部に最も低い信頼値を配した順序に並べ替える。
【０１３２】
工程７５０では、可能分割線データ構造内の非隅角頂点を、（ｉ）分割線の数、（ｉｉ）非隅角頂点の分割線の最小信頼値、に基づいて並べ替える。例えば、可能分割線データ構造を、単一の分割線のみを有する全ての非隅角頂点を前部に配し、分割線の数が最も多い非隅角頂点を後部に配して、並べ替える。更に、同じ数の分割線を有する非隅角頂点を、最も小さな最小信頼値を有する非隅角頂点を前面に配して始まり、最も大きな最小信頼値を有する非隅角頂点を後部に配する順序に、並べ替える。
【０１３３】
工程７５５では、単一の分割線のみを有する全ての非隅角頂点を、１つ以上の人為的縁辺と置き換えるために選択し、可能分割線データ構造から破棄する。これらの選択された分割線を、可能分割線データ構造から、「最終分割線データ構造」と呼ばれる別のデータ構造に移動させる。最終的に、最終分割線データ構造に保存されたこれらの分割線のそれぞれについて、１つ以上の人為的縁辺を生成し、骨格グラフに追加する。人為的縁辺は、その人為的縁辺が表の既存の縁辺と交差（即ち、横断）しない限り、人為的縁辺が置き換える分割線と同じ終端部を有する。例えば、２つの非隅角頂点間、又は非隅角頂点と表の外周部上の点との間に既存の縁辺が存在する場合（即ち、人為的縁辺によって接続されることになる表上の２点間に介在縁辺が存在する場合）、第１の点から介在縁辺までの第１の人為的縁辺を、介在縁辺から第２の点までの第２の人為的縁辺を生成する前に、生成する。
【０１３４】
工程７６０では、並べ替えられた可能分割線データ構造内に残っている１番目の非隅角頂点を選択する。この非隅角頂点は、複数の分割線を有する。
【０１３５】
工程７６５では、工程７６０で選択した非隅角頂点の最も高い信頼値を有する分割線を選択する。
【０１３６】
工程７７０では、異なる非隅角頂点の分割線が工程７６５で選択した分割線と重複し、この重複分割線がその異なる非隅角頂点に対して最も高い信頼値を有する場合、その異なる非隅角頂点の重複分割線を識別する。（ｉ）工程７６５で選択した分割線、又は（ｉｉ）工程７６５で選択した分割線と重複する、異なる非隅角頂点の分割線、のいずれか一方を、可能分割線データ構造から破棄する。破棄した分割線に関連付けられた非隅角頂点も、可能分割線データ構造から破棄する。破棄しなかった残りの分割線を、最終分割線データ構造に移動させて、最終的には１つ以上の人為的縁辺と置き換える。一旦残りの分割線を最終分割線データ構造に移動させると、残りの分割線に関連付けられた非隅角頂点を可能分割線データ構造から破棄する。
【０１３７】
例えば、非隅角頂点Ａが複数の分割線：Ｘ１、Ｘ２、Ｘ３を有すると仮定する。更に、非隅角頂点Ｂも複数の分割線：Ｙ１、Ｙ２を有すると仮定する。ここで、Ｘ２は、Ｘ１及びＸ３の信頼値と比べて最も高い信頼値を有すると仮定する。Ｙ１は、Ｙ２の信頼値と比べて最も高い信頼値を有すると仮定する。最後に、Ｘ２とＹ１は重複する（即ち、Ｘ２は非隅角頂点Ａから非隅角頂点Ｂまで延びており、Ｙ１は非隅角頂点Ｂから非隅角頂点Ａまで延びている）と仮定する。Ｘ２とＹ１は重複し、かつ、Ｘ２が非隅角頂点Ａに対して最も高い信頼得点を有すると同時にＹ１が非隅角頂点Ｂに対して最も高い信頼得点を有するので、Ｘ２とＹ１の一方を破棄し、他方を１つ以上の人為的縁辺で置き換える。破棄した分割線に関連付けられた非隅角頂点を、更なる考察から除外する。この除外した非隅角頂点が他の分割線を持っていても、そのようにする。
【０１３８】
工程７７５では、可能分割線データ構造内に残っている非隅角頂点があるかどうか（即ち、可能分割線データ構造内の全ての非隅角頂点を破棄していないかどうか）を判定するための決定を行う。
【０１３９】
工程７７５での決定結果が「はい」である場合、処理は工程７６０に戻り、可能分割線データ構造内の全ての非隅角頂点を破棄するまで、繰り返す。
【０１４０】
工程７７５での決定結果が「いいえ」である場合、処理は工程７８０に進み、可能分割線データ構造から最終分割線データ構造に移動された分割線のそれぞれについて、複数組の人為的縁辺を生成する。言い換えると、工程７５５〜７７０で選択した分割線の全てを、１つ以上の人為的縁辺で置き換える。人為的縁辺を、骨格グラフに追加する。
【０１４１】
図８Ａ〜図８Ｃは、本発明の１つ以上の実施形態による実施例を示す。具体的には、図８Ａ〜図８Ｃは、図２の流れ図の、主として工程２０５、工程２１５、及び工程２３０の実施例を示す。図８Ａは、手描きの表（８０８）を有する画像（８０６）を示す。具体的には、表（８０８）は、行及び列を形成する手描きのストロークを含む。表（８０８）の１つ以上のセルは、テキストを含むことがある。或いは、表の１つ以上のセルが結合されていることがある。手描きの表（８０８）は、傾いて描かれていることがある。言い換えると、表（８０８）は、画像（８０６）の標準座標系（８９９）からずれている。
【０１４２】
図８Ｂは、マスクに変換された後の画像（８１０）を示す。更に、専用座標系（８１２）が確立されている。この専用座標系（８１２）は、標準座標系（８９９）よりも表（８０８）の行及び列とよりよく整列する軸を有する。
【０１４３】
図８Ｃは、表の部分骨格グラフ（８１４）を示す。図８Ｃに示すように、複数の手描きのストローク（８１６）によって表の行及び列が形成される。骨格グラフ（８１４）は、手描きの表を表す一組の縁辺（８９５）と頂点を含む。各縁辺（８９５）は、手描きの表のストローク（８１６）又はストロークの一部に相当し、各頂点は２つ以上の縁辺（８９５）の交点（８１８）に相当する。言い換えると、縁辺（８９５）は頂点によって分離される。更に、各縁辺（８９５）は、ストローク（８１６）の一方の端部からストローク（８１６）の他方の端部までの、ストロークのほぼ中央に位置する画素の経路を含む。図８Ｃでは、経路／縁辺の幅は１画素である。
【０１４４】
図９Ａ及び図９Ｂは、本発明の１つ以上の実施形態による実施例を示す。具体的には、図９Ａ及び図９Ｂは、図３の流れ図を参照して上に述べた表の植字得点計算方法の実施例を示す。
【０１４５】
図９Ａは、図８Ａ〜図８Ｃを参照して上に述べたような、手描きの表（８０８）の画像（８１０）及び骨格グラフ（８１４）に類似した、手描きの表（９０２）のマスク及び骨格グラフを示す。図３を参照して上に述べたような、手描きの表の植字得点を判定する方法を、手描きの表（９０２）に適用する。
【０１４６】
図９Ｂは、図３を参照して上に述べたようなヒストグラム（９０３）を示す。各縁辺の角度、及び手描きの表（９０２）の骨格グラフの各縁辺の長さを決定した後で、ヒストグラム（９０３）を生成する。ヒストグラム（９０３）のｘ軸は、縁辺の集団（９０６）に対応する。具体的には、各集団は、同じ又は類似の角度の縁辺を有する。ヒストグラム（９０３）のｙ軸は、各集団（９０６）の集団長さ（９０４）に対応する。上述のように、集団の集団長さとは、その集団内の縁辺の長さの合計である。
【０１４７】
図９Ａ及び図９Ｂの例について、手描きの表（９０２）の植字得点を計算するために、上位の２つの集団長さのみ（即ち、Ｎ＝２）を使用すると仮定する。図９Ｂに示すように、上位２つの集団長さは、０度又は１度に等しい（又はほぼ等しい）角度を有する縁辺に関連している。これらの上位２つの集団長さの合計は、２６，２９７である。全ての集団からの全ての縁辺の長さの総計は、３８，５２３である。従って、手描きの表（９０２）の植字得点は、２６２９７／３８５２３＝０．６８である。
【０１４８】
図１０Ａ及び図１０Ｂは、本発明の１つ以上の実施形態による実施例を示す。具体的には、図１０Ａ及び図１０Ｂは、図４Ａ及び図４Ｂの流れ図を参照して上述の表修復方法の実施例を示す。
【０１４９】
図１０Ａは、図８Ａ〜図８Ｃを参照して上に述べたような、手描きの表（８０８）の画像（８１０）及び骨格グラフ（８１４）に類似した、手描きの表（１００２）のマスク及び骨格を示す。図１０Ａから分かるように、手描きの表（１００２）は、修復を必要とすることがある複数の欠陥（１０９９）を含む。
【０１５０】
本発明の１つ以上の実施形態では、誤判定の接続を防止するために、品質閾値を使用する。具体的には、潜在的な人為的縁辺のそれぞれについて品質得点を計算し、この品質得点を品質閾値と比較する。品質得点が品質閾値未満である場合、潜在的な人為的縁辺を破棄する（即ち、骨格グラフに追加しない）。表がどれほどよく雛型表と一致するかに基づいて、品質閾値を調節することがある。例えば、適切に描かれた手描きの表については品質閾値をより高くすることがあり、逆もまた同様である。例えば、品質得点は［０、１］の範囲を取ることがあり、品質閾値は０．８２とすることがある。
【０１５１】
１つ以上の実施形態では、特定の欠陥（１０９９）を修復すると表に新たな誤差が持ち込まれることがあるので、全ての欠陥（１０９９）に修復が必要なわけではない。具体的には、実際の行又は列の境界線ではないストローク（「偽ストローク」）（例えば、実際にはテキスト文字、ノイズ、等）を含む表について考える。それにも関わらず、骨格化処理中に、この偽ストロークに対して縁辺が生成されることがあり、この縁辺の端部が終端頂点として分類されることがある。品質閾値は、偽ストロークに関連付けられたこの終端頂点に対して人為的縁辺が生成されるのを防ぐ。
【０１５２】
本発明の１つ以上の実施形態では、同一線上の接続に対する品質得点を、品質得点＝植字得点×同一線性得点＋（１−植字得点）×間隙得点として計算する。
【０１５３】
距離＝終端頂点とその位置との間の距離、とする。ストローク長＝終端頂点が位置するストロークの長さ、とする。距離≦ストローク長であるなら、間隙得点＝１とする。さもなければ、間隙得点＝ｍａｘ（０．０、（２＊ストローク長−距離）／ストローク長）、とする。
【０１５４】
同一線性得点は、２つの得点（得点１、得点２）の平均として計算され、これは、（ｉ）足跡方向と接続方向（即ち、終端頂点とその位置とを接続するベクトルの方向）とがどれほどよく整列するか、（ｉｉ）足跡方向と行先方向とがどれほど良く整列するか、を評価する。角度１＝足跡方向と接続方向との間の角度（度）、とする。このとき、得点１＝ｍａｘ（０．０、（９０°−角度１）／９０°）である。角度２＝足跡方向と行先方向との間の角度（度）、とする。このとき、得点２＝ｍａｘ（０．０、（９０°−角度２）／９０°）である。最後に、同一線性得点＝（得点１＋得点２）／２、である。
【０１５５】
本発明の１つ以上の実施形態では、接続されていない縁辺の端部に終端頂点がある場合、足跡方向とは、終端画素の前のＮ番目の画素から縁辺の画素の経路上の終端画素に向かうベクトルの方向である。例えば、Ｎ＝５である。他の値のＮも可能である。Ｔ字型交点に相当する終端頂点の場合、足跡方向とは、３つの縁辺の交点にある画素に向かう、縁辺の画素の経路上の、３つの縁辺の交点からｋ画素だけ離れた、Ｔ字形交点の茎状部から開始するベクトルの方向である。例えば、ｋ＝５である。他の値のｋも可能である。
【０１５６】
本発明の１つ以上の実施形態では、行先方向とは、終端頂点から離れた位置にある縁辺の方向である。これは、その位置から、終端頂点から離れていく方向に、その位置からｑ画素離れた縁辺上の地点までのベクトルとして計算することができる。例えば、ｑ＝５である。他の値のｑも可能である。
【０１５７】
本発明の１つ以上の実施形態では、垂直な接続に対する品質得点を、品質得点＝植字得点×垂直性得点＋（１−植字得点）×間隙得点として計算する。
【０１５８】
距離＝終端頂点とその位置との間の距離、とする。ストローク長＝終端頂点が位置するストロークの長さ、とする。距離≦ストローク長であるなら、間隙得点＝１とする。さもなければ、間隙得点＝ｍａｘ（０．０、（２＊ストローク長−距離）／ストローク長）、とする。
【０１５９】
垂直性得点は、足跡方向と行先方向との間の角度が、どれほど直角に近いかを表わす。角度＝足跡方向と行先方向との間の角度（度）、とする。角度＜９０°なら、垂直性得点＝角度／９０°、である。角度≧９０°なら、垂直性得点＝（１８０°−角度）／９０°、である。
【０１６０】
図１０Ｂは、一旦表修復処理が完了した、手描きの表（１００２）を示す。図１０Ｂから分かるように、複数の人為的縁辺（１０１２）が生成され、骨格グラフに追加されて欠陥が除去されている。具体的には、終端頂点の数が減っている。図１０Ｂに示す表（１００２）は、電子文書（例えば、ＯＯＸＭＬ文書、ＰＤＦ文書）に含めるための表の高水準の描写物を生成するように試みる処理を含む、更なる処理により適している。
【０１６１】
図１１Ａ〜図１１Ｃは、本発明の１つ以上の実施形態による実施例を示す。具体的には、図１１Ａ〜図１１Ｃは、図５Ａ〜図５Ｃの流れ図を参照して上に述べた表のセル検出方法の実施例を示す。
【０１６２】
図１１Ａは、図８Ａ〜図８Ｃを参照して上に述べたような、手描きの表（８０８）の画像（８１０）及び骨格グラフ（８１４）に類似した、手描きの表（１１０２）の部分的なマスク及び骨格グラフを示す。図８Ａ〜図８Ｃを参照して考察したように、手描きの表（１１０２）に対して専用座標系（８１２）が確立されている。図１１Ａから分かるように、手描きの表（１１０２）の骨格グラフは複数の頂点（５、６、１８、１９、２３、２４、２５、２６、２７、２９、３０）を含む。頂点（２７）を隅角頂点として選択したと仮定する。従って、頂点（２３）が開始頂点であり、頂点（５）が終了頂点である。開始頂点（即ち、頂点（２３））と終了頂点（即ち、頂点（５））のそれぞれは、単一の縁辺によって隅角頂点（即ち、頂点（２７））から分離されている。更に、頂点（２７）から頂点（２３）までの縁辺の方向は東であり、頂点（５）から頂点（２７）までの縁辺の方向は北である（即ち、２つの縁辺は垂直又はほぼ垂直である）。これは、上述の工程５１０の一例である。
【０１６３】
図１１Ｂは、選択した隅角頂点が頂点（２７）である図１１Ａで考察した例について、表内のセルのルートを構成する頂点の全てを入力した後の、訪問済頂点（ＶＶ）データ構造（１１０３）の一例を示す。図１１Ａから分かるように、終了頂点（５）に隣接する頂点である頂点（６）は、ＶＶデータ構造（１１０３）に保存される最後の頂点である。
【０１６４】
図１１Ｃは、選択した隅角頂点が頂点（２７）である図１１Ａ及び図１１Ｂで考察した例について、表内のセルのルートを生成するために探索された頂点の全てを含む到来元（ＣＦ）データ構造（１１０５）の一例を示す。図１１Ｃから分かるように、到来元（ＣＦ）データ構造（１１０５）の各項目は、頂点と、骨格グラフ上の反時計回りの方向にあるその頂点の直前の頂点とを含む。更に、頂点（５）が終了頂点であることを示すために、頂点（５）の前の頂点はそれ自体として設定する。
【０１６５】
図１２Ａ及び図１２Ｂは、本発明の１つ以上の実施形態による実施例を示す。具体的には、図１２Ａ及び図１２Ｂは、図６Ａ〜図６Ｃの流れ図を参照して上に述べた表のセル検証方法の実施例を示す。
【０１６６】
図１２Ａ及び図１２Ｂは、図８Ａ〜図８Ｃを参照して上に述べたような、手描きの表（８０８）の画像（８１０）及び骨格グラフ（８１４）に類似した、手描きの表（１２０２）の部分的なマスク及び骨格グラフを示す。図８Ａ〜図８Ｃを参照して考察したように、手描きの表（１２０２）に対して専用座標系（８１２）が確立されている。
【０１６７】
図１２Ａから分かるように、手描きの表（１２０２）の骨格グラフは、手描きの表（１２０２）の候補セル（１２９９）を形成する一組の縁辺を分離する複数の頂点（１２１１、１２１４、１２１５、１２２０、１２２１、１２２３、１２２５、１２２７、１２２８、１２３０）を含む。最長縁辺（１２０１）は頂点（１２１５）と頂点（１２１４）の間の縁辺であり、最長縁辺（１２０１）の向きは北である。図１２Ａから分かるように、候補セル（１２９９）は１０個の縁辺を含む。
【０１６８】
本発明の１つ以上の実施形態では、図６Ａ〜図６Ｃで述べたような表のセル検証方法が、図１２Ａに示したような候補セル（１２９９）を形成する一組の縁辺を分離する複数の頂点（１２１１、１２１４、１２１５、１２２０、１２２１、１２２３、１２２５、１２２７、１２２８、１２３０）に適用された後で、候補セル（１２９９）は手描きの表（１２０２）のほぼ矩形のセルとして受け入れられ、図１２Ｂの手描きの表（１２０２）内のセル（１２９７）（即ち、灰色の線で示した縁辺によって形成されるセル）として描かれる。
【０１６９】
図１３は、本発明の１つ以上の実施形態による実施例を示す。具体的には、図１３は、図１及び図２の流れ図の工程２４０を参照して上に述べた内部セル識別及び除去方法の実施例を示す。
【０１７０】
図１３は、図８Ａ〜図８Ｃを参照して上に述べたような、手描きの表（８０８）の画像（８１０）及び骨格グラフ（８１４）に類似した、手描きの表（１３０２）のマスク及び骨格グラフの概略を示す。図１３から分かるように、セル（１３９９）はセル（１３９７）と、頂点（１３１５）と頂点（１３１７）との間の共通縁辺を共有する。更に、セル（１３９７）はセル（１３９９）と重複し、セル（１３９９）よりもサイズ（即ち、面積）が小さい。言い換えれば、セル（１３９７）はセル（１３９９）の内部に完全に包含される。従って、セル（１３９７）はセル（１３９９）の内部セルとして識別され、骨格グラフから削除される。
【０１７１】
図１４は、本発明の１つ以上の実施形態による実施例を示す。具体的には、図１４は、図１及び図２の流れ図の工程２４５を参照して上に述べたセルリンク方法を示す。
【０１７２】
図１４は、図８Ａ〜図８Ｃを参照して上に述べたような、手描きの表（８０８）の画像（８１０）及び骨格グラフ（８１４）に類似した、手描きの表（１４０２）のマスク及び骨格グラフの概略を示す。図１４から分かるように、表の全てのセル（白い実線で示す）に対して、リンク（灰色の破線で示す）が確立されている。リンク（灰色の破線で示す）は、表の各セル（白い実線で示す）の関係性を確立する（即ち、各セルがどのように別のセルに接続されているかを説明する）。
【０１７３】
図１５Ａ及び図１５Ｂは、本発明の１つ以上の実施形態による実施例を示す。具体的には、図１５Ａ及び図１５Ｂは、図７Ａ〜図７Ｃの流れ図を参照して上に述べた結合セル分割方法の実施例を示す。
【０１７４】
図１５Ａは、図８Ａ〜図８Ｃを参照して上に述べたような、手描きの表（８０８）の画像（８１０）及び骨格グラフ（８１４）に類似した、手描きの表（１５０２）のマスク及び骨格グラフの概略を示す。図１５Ａから分かるように、手描きの表（１５０２）は、セルの境界線（即ち、縁辺）上で識別された頂点（１５００〜１５４１）を有する複数のセル（１５８３〜１５９９）を含む。特定のセル（１５８３、１５８４、１５８９、１５９２、１５９３、１５９４、１５９９）は、手描きの表（１５０２）の１つ以上の実際のセルを含む結合セルである。
【０１７５】
本発明の１つ以上の実施形態では、専用座標系（８１２）が、手描きの表（１５０２）の垂直軸及び水平軸に整列している。
【０１７６】
図１５Ｂは、４つの基本方向の全て（即ち、北、東、南、西）について結合セル分割方法によって生成された最終分割線（１５２０）を重ね合わせた手描きの表（１５０２）を示す。追加の最終分割線も図１５Ｂに示しているが、ラベル付けはしていない。全ての最終分割線を骨格グラフに追加される１つ以上の人為的縁辺で置き換えて、手描きの表（１５０２）の修正された高水準の描写物を生成する。
【０１７７】
図１６Ａ及び図１６Ｂは、本発明の１つ以上の実施形態による実施例を示す。具体的には、図１６Ａ及び図１６Ｂは、図１及び図２の流れ図の工程２５５を参照して上に述べたセルの格子の生成及び出力を示す。
【０１７８】
図１６Ａは、インポート（入力）された表画像（１６０２）を示す。図１６Ａから分かるように、インポートされた表画像（１６０２）は、完全に真っ直ぐではない行及び列を有する手描きの表である。更に、インポートされた表画像（１６０２）は、表の各セル内に複数のテキスト及び／又は文字を含む。
【０１７９】
図１６Ｂは、図１〜１５で述べたような１つ以上の実施形態の表検出方法をインポートされた表画像（１６０２）に適用した後で、インポートされた表画像（１６０２）に対して生成されたエクスポート格子（１６０４）を示す。図１６Ｂから分かるように、エクスポート格子（１６０４）を構成するセルは、インポート表画像（１６０２）の行及び列と一致し、従って、エクスポート格子（１６０４）は、インポート表画像（１６０２）の高水準の描写物を正確に表す。図１６Ｂから更に分かるように、一旦エクスポート格子（１６０４）が生成されると、インポート表画像（１６０２）上でテキスト／文字認識が実行されて、インポート表画像（１６０２）に含まれる元のテキスト及び／又は文字が識別される。
【０１８０】
本発明の実施形態は、使用されるプラットフォームに関わらず、実質上いかなる種類のコンピュータシステムにも実装することができる。例えば、コンピュータシステムとは、１つ以上の携帯装置（例えば、ラップトップコンピュータ、スマートフォン、個人用デジタル補助装置、タブレットコンピュータ、又は他の携帯装置）、デスクトップコンピュータ、サーバ、サーバシャーシ内のブレード、又は、本発明の１つ以上の実施形態を実行するために少なくとも最小の処理能力、メモリ、及び入出力装置を含む任意の他の種類のコンピュータ装置（複数可）であってもよい。例えば、図１７に示すように、コンピュータシステム（１７００）は、１つ以上のコンピュータプロセッサ（１７０２）、関連メモリ（１７０４）（例えば、ランダムアクセスメモリ（ＲＡＭ）、キャッシュメモリ、フラッシュメモリ、等）、１つ以上の記憶装置（１７０６）（例えば、ハードディスク、コンパクトディスク（ＣＤ）ドライブ又はデジタル多用途ディスク（ＤＶＤ）ドライブなどの光学ドライブ、フラッシュメモリスティック、等）、並びに多数の他の要素及び機能を含むことがある。コンピュータプロセッサ（１７０２）は、命令を処理するための集積回路でもよい。例えば、コンピュータプロセッサは、プロセッサの１つ以上のコア又はマイクロコアでもよい。コンピュータシステム（１７００）は、タッチスクリーン、キーボード、マウス、マイクロホン、タッチパッド、電子ペン、又は任意の他のタイプの入力装置などの、１つ以上の入力装置（１７１０）も含むことがある。更に、コンピュータシステム（１７００）は、スクリーン（例えば、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、タッチスクリーン、ブラウン管（ＣＲＴ）モニタ、プロジェクタ、又は他の表示装置）、プリンタ、外部記憶装置、又は任意の他の出力装置、などの１つ以上の出力装置（１７０８）を含むことがある。出力装置のうちの１つ以上は、入力装置と同じであっても又は異なっていてもよい。コンピュータシステム（１７００）は、ネットワークインターフェース接続（図示せず）を介して、ネットワーク（１７１２）（例えば、ローカルエリアネットワーク（ＬＡＮ）、インターネットなどの広域ネットワーク（ＷＡＮ）、モバイルネットワーク、又は任意の他のタイプのネットワーク）と接続されることがある。入力及び出力装置は、コンピュータプロセッサ（１７０２）、メモリ（１７０４）、及び記憶装置（１７０６）に、ローカルに又はリモートで（例えば、ネットワーク（１７１２）を介して）接続されることがある。多数の異なるタイプのコンピュータシステムが存在し、前述の入力及び出力装置は他の形態を取ることがある。
【０１８１】
本発明の実施形態を実行するコンピュータ可読プログラムコードの形態でのソフトウェア命令が、全体的に又は部分的に、一時的に又は永続的に、ＣＤ、ＤＶＤ、記憶装置、フロッピーディスク、テープ、フラッシュメモリ、物理メモリ、又は任意の他のコンピュータ可読記憶媒体などの、非一時的なコンピュータ可読媒体に保存されることがある。具体的には、ソフトウェア命令は、プロセッサによって実行されると本発明の実施形態を実行するように構成されたコンピュータ可読プログラムコードに相当することがある。
【０１８２】
更に、前述のコンピュータシステム（１７００）の１つ以上の要素は、遠隔地に配置され、ネットワーク（１７１２）越しに他の要素と接続されることがある。更に、本発明の１つ以上の実施形態は、複数のノード（接続点）を有する分散システム上で実装されることがあり、本発明の各部分が、分散システム内部の異なるノードに配置されることがある。本発明の一実施形態では、ノードは、別個のコンピュータ装置に相当する。或いは、ノードは、関連した物理メモリを有するコンピュータプロセッサに相当することがある。或いは、ノードは、共有されたメモリ及び／又はリソースを有するコンピュータプロセッサ又はコンピュータプロセッサのマイクロコアに相当することがある。
【０１８３】
本発明について限られた数の実施形態に関して説明してきたが、本開示の恩恵を受ける当業者であれば、本明細書に開示する本発明の範囲から逸脱しない他の実施形態を考案することができることを、理解するであろう。従って、本発明の範囲は、添付の特許請求の範囲によってのみ限定されるべきである。
【図１】
2019067378.tif 000003
【図２】
2019067378.tif 000004
【図３】
2019067378.tif 000005
【図４Ａ】
2019067378.tif 000006
【図４Ｂ】
2019067378.tif 000007
【図５Ａ】
2019067378.tif 000008
【図５Ｂ】
2019067378.tif 000009
【図５Ｃ】
2019067378.tif 000010
【図６Ａ】
2019067378.tif 000011
【図６Ｂ】
2019067378.tif 000012
【図６Ｃ】
2019067378.tif 000013
【図７Ａ】
2019067378.tif 000014
【図７Ｂ】
2019067378.tif 000015
【図７Ｃ】
2019067378.tif 000016
【図８Ａ】
2019067378.tif 000017
【図８Ｂ】
2019067378.tif 000018
【図８Ｃ】
2019067378.tif 000019
【図９Ａ】
2019067378.tif 000020
【図９Ｂ】
2019067378.tif 000021
【図１０Ａ】
2019067378.tif 000022
【図１０Ｂ】
2019067378.tif 000023
【図１１Ａ】
2019067378.tif 000024
【図１１Ｂ】
2019067378.tif 000025
【図１１Ｃ】
2019067378.tif 000026
【図１２Ａ】
2019067378.tif 000027
【図１２Ｂ】
2019067378.tif 000028
【図１３】
2019067378.tif 000029
【図１４】
2019067378.tif 000030
【図１５Ａ】
2019067378.tif 000031
【図１５Ｂ】
2019067378.tif 000032
【図１６Ａ】
2019067378.tif 000033
【図１６Ｂ】
2019067378.tif 000034
【図１７】
2019067378.tif 000035
【外国語明細書】
2019067378000001.pdf
2019067378000002.pdf
2019067378000003.pdf
2019067378000004.pdf