IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ トヨタ自動車株式会社の特許一覧

<>
  • 特開-表認識装置 図1
  • 特開-表認識装置 図2
  • 特開-表認識装置 図3
  • 特開-表認識装置 図4
  • 特開-表認識装置 図5
  • 特開-表認識装置 図6
  • 特開-表認識装置 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024174460
(43)【公開日】2024-12-17
(54)【発明の名称】表認識装置
(51)【国際特許分類】
   G06T 7/60 20170101AFI20241210BHJP
【FI】
G06T7/60 200K
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023092293
(22)【出願日】2023-06-05
(71)【出願人】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】100087480
【弁理士】
【氏名又は名称】片山 修平
(72)【発明者】
【氏名】竹内 伸一
(72)【発明者】
【氏名】田端 淳
(72)【発明者】
【氏名】則竹 真吾
(72)【発明者】
【氏名】村上 亮
(72)【発明者】
【氏名】柳川 涼
(72)【発明者】
【氏名】桑島 豊
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096BA17
5L096DA02
5L096FA03
5L096FA13
5L096FA66
5L096FA69
5L096GA51
5L096HA08
5L096HA11
5L096KA04
(57)【要約】      (修正有)
【課題】表を高精度に認識する表認識装置を提供する。
【解決手段】表認識装置1において、CPU10は、ROM11からプログラムを読み込み、画像から複数の枠を識別する枠識別部と、識別した複数の枠の各々の枠線の端点を検出する端点検出部と、識別した複数の枠の間において検出した端点の座標同士を比較することにより、互いの端点の間の距離が閾値以下である枠同士のグループを生成するグループ生成部と、生成したグループ毎に表を認識する表認識部と、して機能する。
【選択図】図1
【特許請求の範囲】
【請求項1】
画像から複数の枠を識別する識別部と、
前記複数の枠の各々の枠線の端点を検出する検出部と、
前記複数の枠の間において前記端点の座標同士を比較することにより、互いの前記端点の間の距離が閾値以下である前記枠同士のグループを生成する生成部と、
前記グループごとに表を認識する認識部とを有する、
表認識装置。
【請求項2】
前記識別部は、前記画像を入力として、前記画像内の罫線を出力する、教師あり学習による機械学習済みの出力モデルを用いて前記画像から、前記罫線により画定される前記複数の枠を識別する、
請求項1に記載の表認識装置。
【請求項3】
前記識別部は、前記画像を入力として、前記画像内の文字列を出力する、教師あり学習による機械学習済みの出力モデルを用いて前記画像から、前記文字列を囲む前記複数の枠を識別する、
請求項1に記載の表認識装置。
【請求項4】
前記識別部は、前記罫線が途切れている場合、前記罫線の途切れている部分を補完することにより前記複数の枠を識別する、
請求項3に記載の表認識装置。
【請求項5】
前記識別部は、前記複数の枠として、前記画像内の文字を囲む複数の第1枠、及び前記画像内の罫線により画定される複数の第2枠を識別し、
前記検出部は、前記複数の第1枠の各々の枠線の前記端点、及び前記複数の第2枠の各々の枠線の前記端点を検出し、
前記生成部は、互いの前記端点の間の距離が前記閾値以下である前記第1枠同士の前記グループを生成し、互いの前記端点の間の距離が前記閾値以下である前記第2枠同士の前記グループを生成する、
請求項1に記載の表認識装置。


【発明の詳細な説明】
【技術分野】
【0001】
本発明は、表認識装置に関する。
【背景技術】
【0002】
画像内から表を認識する技術に関し、例えば特許文献1には、画像の行方向及び列方向に並ぶ複数の文字列を囲むように行方向及び列方向の矩形サブグループを設定し、その交差範囲を帳票の記入枠として認識する点が記載されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2021-179743号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、上記の技術によると、例えば複数列分の幅または複数行分の高さを持つ記入枠を認識できないため、表を高精度に認識することができない。
【0005】
そこで本発明は上記の課題に鑑みてなされたものであり、表を高精度に認識することができる表認識装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の表認識装置は、画像から複数の枠を識別する識別部と、前記複数の枠の各々の枠線の端点を検出する検出部と、前記複数の枠の間において前記端点の座標同士を比較することにより、互いの前記端点の間の距離が閾値以下である前記枠同士のグループを生成する生成部と、前記グループごとに表を認識する認識部とを有する。
【0007】
上記の表認識装置において、前記識別部は、前記画像を入力として、前記画像内の罫線を出力する、教師あり学習による機械学習済みの出力モデルを用いて前記画像から、前記罫線により画定される前記複数の枠を識別してもよい。
【0008】
上記の表認識装置において、前記識別部は、前記画像を入力として、前記画像内の文字列を出力する、教師あり学習による機械学習済みの出力モデルを用いて前記画像から、前記文字列を囲む前記複数の枠を識別してもよい。
【0009】
上記の表認識装置において、前記識別部は、前記罫線が途切れている場合、前記罫線の途切れている部分を補完することにより前記複数の枠を識別してもよい。
【0010】
上記の表認識装置において、前記識別部は、前記複数の枠として、前記画像内の文字を囲む複数の第1枠、及び前記画像内の罫線により画定される複数の第2枠を識別し、前記検出部は、前記複数の第1枠の各々の枠線の前記端点、及び前記複数の第2枠の各々の枠線の前記端点を検出し、前記生成部は、互いの前記端点の間の距離が前記閾値以下である前記第1枠同士の前記グループを生成し、互いの前記端点の間の距離が前記閾値以下である前記第2枠同士の前記グループを生成してもよい。
【発明の効果】
【0011】
本発明によれば、表を高精度に認識することができる。
【図面の簡単な説明】
【0012】
図1図1は、表認識装置の一例を示す構成図である。
図2図2は、表認識処理の一例を示す平面図である。
図3図3は、複数のグループの生成処理の一例である。
図4図4は、表認識処理の一例を示すフローチャートである。
図5図5は、グループ生成処理の一例を示すフローチャートである。
図6図6は、文字列から枠を識別する例を示す表の平面図である。
図7図7は、罫線及び文字列の両方に基づき表をそれぞれ認識する処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0013】
(表認識装置の構成)
図1は、表認識装置1の一例を示す構成図である。表認識装置1は、サーバなどのコンピュータである。表認識装置1は、CPU(Central Processing Unit)10、ROM(Read Only Memory)11、RAM(Random Access Memory)12、HDD(Hard Disk Drive)13、及び通信ポート14を有する。CPU10は、互いに信号の入出力ができるように、ROM11、RAM12、HDD13、及び通信ポート14と、バス19を介して電気的に接続されている。
【0014】
ROM11は、CPU10を駆動するプログラムが格納されている。RAM12は、CPU10のワーキングメモリとして機能する。通信ポート14は、インターネットやLAN(Local Area Network)などの通信ネットワークNWに接続されている。通信ポート14は、例えば無線LAN(Local Area Network)カードやNIC(Network Interface Card)であり、パーソナルコンピュータなどの端末9とCPU10の間の通信処理を行う。
【0015】
また、HDD13には、画像データ130及び表データ131が格納されている。画像データ130は画像の一例である。画像データ130は、PDF(Portable Document Format)などのドキュメントファイルから変換された画像ファイルである。また、表データ131は、画像データ130から認識された表の画像ファイルまたはドキュメントファイルである。CPU10は、画像データ130から表を認識して表データ131を生成する。
【0016】
CPU10は、ROM11からプログラムを読み込むと、ソフトウェアの機能として、動作制御部100、画像取得部101、枠識別部102、端点検出部103、グループ生成部104、及び表認識部105を形成する。なお、動作制御部100、画像取得部101、枠識別部102、端点検出部103、グループ生成部104、及び表認識部105は、IC(Integrated Circuit)などのハードウェアにより実現されてもよい。
【0017】
動作制御部100は表認識装置1の動作を制御する。動作制御部100は、プログラムにより規定された所定のシーケンスに従って画像取得部101、枠識別部102、端点検出部103、グループ生成部104、及び表認識部105に対して動作を指示する。動作制御部100は、例えば端末9から通信ネットワークNWを介して表認識の要求を受信した場合、各動作の指示を開始する。
【0018】
画像取得部101は、例えば通信ポート14を介して端末9からドキュメントファイルを受信し、画像データ130に変換してHDD13に格納する。
【0019】
枠識別部102は識別部の一例である。枠識別部102は、画像データ130の画像から、画像内の表を形成する複数の枠を識別する。枠識別部102は、例えば画像内の表の罫線を抽出し、複数の罫線により囲まれた領域ごとに、その領域を画定する各罫線の一部を枠線として識別する。また、枠識別部102は枠内の文字列も抽出する。
【0020】
枠識別部102は画像データ130から、ドキュメントの紙面の縦方向または横方向に配列された複数の文字列及び複数の罫線を抽出する。枠識別部102は、例えばAI(Artificial Intelligence)を用いたOCR(Optical Character Recognition)を利用する。例えば枠識別部102は、画像データ130を入力として、その画像内の文字列及び罫線を出力する、教師あり学習による機械学習済みの出力モデルを用いて画像データ130から複数の文字列及び複数の罫線を抽出する。枠識別部102は、罫線により画定される複数の枠を識別するため、枠の識別の精度が、AIを利用しない場合よりも高まる。
【0021】
枠識別部102が利用する出力モデルは、教師データを用いて深層学習などの機械学習により生成される。具体的には、出力モデルは、人間の脳機能を数学的にモデル化したニューラルネットワークであり、ニューロンに該当する部分の活性化関数の重み係数を、画像を入力とし、文字及び罫線を出力とする相関関係に基づいて決定することにより構築される。なお、文字は日本語の文字に限られず、英語などの他の言語の文字であってもよい。
【0022】
また、枠識別部102は、文字間の距離に基づき複数の文字列を抽出する。このため、枠識別部102は、文字間の空白部分を起点として文字列同士の境界を認識して文字列を抽出することができる。
【0023】
端点検出部103は検出部の一例である。端点検出部103は各枠の枠線の端点を検出する。例えば端点検出部103は、枠を複数の枠線に分離し、各枠線の両端に位置する各端点の画像内の座標を検出する。例えば矩形状の枠の場合、端点は矩形の四つの角に位置する。
【0024】
グループ生成部104は生成部の一例である。グループ生成部104は、複数の枠の間において端点の座標同士を比較することにより、互いの端点の間の距離が閾値以下である枠同士のグループを生成する。例えば矩形状の枠の場合、角が互いに近接する矩形状の枠同士が共通のグループに属する。これにより、表内に縦横に配列された複数の枠が1つのグループにまとまって取り扱われる。
【0025】
表認識部105は認識部の一例である。表認識部105はグループごとに表を認識する。表認識部105は表を表データ131としてHDD13に保存し、通信ネットワークNWを介して端末9に出力する。
【0026】
<表認識処理>
図2は、表認識処理の一例を示す平面図である。符号Gaは画像データ130の一例を示し、符号Gbはグループを生成する過程の一例を示す。画像データ130には、表の一例としてイベントの参加者リストTDが含まれている。なお、図2において、紙面の横方向をX方向とし、縦方向をY方向とする。
【0027】
参加者リストTDは、イベントの日付及び場所ごとに参加者の情報が表記されている。参加者の情報には、X方向に配列された氏名、年齢、性別が含まれる。イベントの日付は「8月12日(土)」及び「8月13日(日)」であり、イベントの場所は「汐留会場」及び「幕張会場」である。参加者の情報は、X方向に日付で組分けされ、Y方向に場所で組分けされている。
【0028】
符号Gaで示されるように、枠識別部102は参加者リストTDの罫線Lx,Ly及び文字列を抽出する。罫線LxはX方向に延び、罫線LyはY方向に延びる。枠識別部102は罫線Lx,Lyにより画定される複数の枠fを識別する。枠識別部102は、隣同士の一対の罫線Lxと隣同士の一対の罫線Lyにより囲まれる矩形状の領域を検出することにより枠fを識別する。このため、各枠fの縦横の枠線は罫線Lx,Lyの一部に該当する。なお、枠識別部102は、罫線が途切れている場合、罫線の途切れている部分を補完することにより枠fを識別する。また、枠識別部102は各枠f内の文字列を抽出する。
【0029】
端点検出部103は、符号Gbで示されるように、枠ごとに、白丸で示される4つの端点を検出する。4つの端点は矩形状の領域の4つの角に該当する。
【0030】
グループ生成部104は、例えば、全ての枠から1つの枠f0を選択してグループを生成する。グループ生成部104は、グループに属する枠f0と、グループに属さない他の枠との間において端点の座標同士を比較することにより、各端点の間の距離が閾値以下である他の枠f1~f4をグループに追加する。ここで距離は、例えば端点間の直線距離として各々の座標から算出される。また、閾値は、一例として、表内の文字の大きさがポイント単位で表される場合、0.5ポイントとしてもよい。
【0031】
例えば、枠f0の端点p1,p3と枠f1の端点p11,p13の各距離は閾値以下であるため、枠f1はグループに追加される。ここで、端点p1と端点p11、及び端点p3と端点p13は、それぞれ、参加者リストTDにおいて互いに対応している。しかし、罫線Lx,Lyの幅によっては、各々の座標が必ずしも一致するわけではないため、端点p1と端点p11の距離、及び端点p3と端点p13の距離と、閾値との比較により参加者リストTDにおける対応関係の有無が判定される。
【0032】
また、枠f0の端点p2と枠f2の端点p32の距離は閾値以下であるため、枠f2はグループに追加される。また、枠f0の端点p3と枠f3の端点p33及び枠f4の端点p43の各距離は閾値以下であるため、枠f3,f4はグループに追加される。このようにして、グループ生成部104は、互いに近接する端点p1~p3,p11,p13,p32,p33の枠f0~f4が属するグループを生成する。
【0033】
さらにグループ生成部104は、グループに属する枠f2と端点間の距離が閾値以下である枠f5~f7をグループに追加する。このように、グループ生成部104は、グループに枠f1~f7を追加するたび、グループに属さない他の枠の端点と、グループに属する枠f1~f7の端点との間で座標を比較する。この処理が繰り返されることにより、参加者リストTDの枠fに一致するグループが生成される。
【0034】
(複数のグループの生成処理)
図3は、複数のグループG1,G2の生成処理の一例である。図3において白丸は枠fの端点を示す。グループ生成部104は、画像データ130から識別された全ての枠を含む全集合Sを生成する。グループ生成部104は全集合Sから1つの枠f10を選択してグループG1に追加する。グループ生成部104は、グループG1の枠f10の各端点の座標と全集合Sの他の枠fの各端点の座標を比較する。
【0035】
グループ生成部104は、端点間の距離が閾値以下である全集合Sの全ての枠fをグループG1に追加する。グループ生成部104は、グループG1に追加した枠fの各端点の座標と全集合Sの他の枠fの各端点の座標を比較して、上記と同様に、端点間の距離が閾値以下である全集合Sの全ての枠fをグループG1に追加する。グループ生成部104は、端点間の距離が閾値以下の枠fが全集合Sからなくなるまで、グループG1への枠fの追加を繰り返す。
【0036】
次にグループ生成部104は全集合Sから1つの枠f20を選択して新たなグループG2に追加する。グループ生成部104は、グループG1と同様に、グループG2の枠f10の各端点の座標と全集合Sの他の枠fの各端点の座標を比較し、端点間の距離が閾値以下の枠fが全集合Sからなくなるまで、グループG2への枠fの追加を繰り返す。
【0037】
このように、グループ生成部104は、複数の枠fの間において端点の座標同士を比較することにより、互いの端点の間の距離が閾値以下である枠f同士のグループG1,G2を生成する。表認識部105は、グループG1,G2ごとに表を認識する。なお、本例では画像データ130に2つの表が含まれる例を挙げたが、3つ以上の表が存在する場合も上記と同様にグループが生成されて表が認識される。
【0038】
(表認識処理)
図4は、表認識処理の一例を示すフローチャートである。本処理は、例えば、端末9から通信ネットワークNWを介して表認識の要求を動作制御部100が受信したときに実行される。
【0039】
まず、画像取得部101は、端末9から通信ネットワークNWを介してドキュメントファイルを取得する(ステップSt1)。ドキュメントファイルは画像データ130としてHDD13に保存される。
【0040】
次に枠識別部102は、AIを用いたOCRにより画像データ130の画像から文字列及び罫線を抽出する(ステップSt2)。次に枠識別部102は、符号Ghで示されるように、罫線Lxの途切れrの有無を判定する(ステップSt3)。枠識別部102は、例えば、縦横の罫線Lx,Lyの交点以外の位置に罫線Lxの端点tが存在する場合、あるいは罫線Lxがかすれている場合、途切れrが有ると判定する。なお、縦方向の罫線Lyの途切れrも同様に判定される。
【0041】
罫線Lx,Lyに途切れrが有る場合(ステップSt3のYes)、枠識別部102は途切れrを補完する(ステップSt4)。これにより、枠識別部102は高精度に罫線Lx,Lyを抽出して枠を識別することができる。また、途切れrが無い場合(ステップSt3のNo)、ステップSt4の処理は実行されない。
【0042】
次に枠識別部102は罫線Lx,Lyから枠を識別する(ステップSt5)。次に端点検出部103は各枠の端点を検出する(ステップSt6)。次にグループ生成部104は、端点間の距離が閾値以下である枠同士のグループを生成する(ステップSt7)。グループ生成処理の詳細は後述する。
【0043】
次に表認識部105はグループごとに表を認識し(ステップSt8)、表データ131を生成する(ステップSt9)。このようにして表認識処理は実行される。
【0044】
図5は、グループ生成処理の一例を示すフローチャートである。本処理は、上記のステップSt7において実行される。
【0045】
まず、グループ生成部104は、全ての枠を含む全集合Sを生成する(ステップSt10)。次にグループ生成部104は、全集合Sから1つの枠を選択して(ステップSt11)、グループGi(i=1,2,・・・)に追加する(ステップSt12)。
【0046】
次にグループ生成部104は、全集合Sから他の枠を選択して(ステップSt13)、グループGiの枠との間で端点の座標を比較する(ステップSt14)。次にグループ生成部104は、距離が閾値以下である端点の組の有無を判定する(ステップSt15)。距離が閾値以下である端点の組が有る場合(ステップSt15のYes)、グループ生成部104は選択中の枠をグループGiに追加する(ステップSt16)。また、距離が閾値以下である端点の組が無い場合(ステップSt15のNo)、ステップSt16の処理は実行されない。
【0047】
次にグループ生成部104は、全集合Sの枠のうち、端点間の座標の比較を行っていない枠(以下、未比較の枠と表記)の有無を判定する(ステップSt17)。未比較の枠が有る場合(ステップSt17のYes)、ステップSt13以降の各処理が再び実行される。
【0048】
また、未比較の枠が無い場合(ステップSt17のNo)、にグループ生成部104は全集合Sの複数の枠の有無を判定する(ステップSt18)。つまり、グループ生成部104は、グループ化していない複数の枠が残っているか否かを判定する。
【0049】
全集合Sの複数の枠が有る場合(ステップSt18のYes)、ステップSt11以降の各処理が再び実行される。これにより、新たなグループGiの生成処理が行われる。このとき、図示は省略するが、iが1つ加算される。全集合Sの枠が無い場合(ステップSt18のNo)、本処理は終了する。このようにしてグループ生成処理は実行される。
【0050】
(他の実施例)
枠識別部102は、罫線Lx,Lyから複数の枠を識別するが、これに限定されない。枠識別部102は、画像から文字列を抽出し、文字列を囲む複数の枠を識別してもよい。
【0051】
図6は、文字列から枠を識別する例を示す表の平面図である。枠識別部102は、参加者リストTD内の文字列を囲む複数の枠を識別する。このとき、枠識別部102は、上述したように、画像データ130を入力として、画像データ130内の文字列を出力する、教師あり学習による機械学習済みの出力モデルを用いて文字列を抽出する。このため、高精度に文字列を抽出して枠を識別することが可能である。
【0052】
文字列から枠を識別した場合、罫線Lx,Lyから枠を識別する場合と識別結果が相違することがある。本例では、「参加者リスト」の文字列を囲む枠fsが識別されるが、罫線Lx,Lyから枠を識別する場合、識別されない。また、本例では、横方向の日付の欄と縦方向の場所の欄が交差する空欄には文字列が存在しないため、空欄は枠として識別されないが、罫線Lx,Lyから枠を識別する場合、識別される。
【0053】
そこで、表認識装置1は、罫線Lx,Ly及び文字列の両方に基づき表をそれぞれ認識し、各表に相違があれば、何れかの表も出力してもよい。
【0054】
図7は、罫線Lx,Ly及び文字列の両方に基づき表をそれぞれ認識する処理の一例を示すフローチャートである。まず、表認識装置1は、図2に示されるように罫線Lx,Lyに基づき表を認識する(ステップSt21)。次に表認識装置1は、図6に示されるように文字列に基づき表を認識する(ステップSt22)。
【0055】
ステップSt21,St22において、枠識別部102は、画像内の文字を囲む複数の枠(第1枠)、及び画像内の罫線により画定される複数の枠(第2枠)を識別する。端点検出部103は、罫線Lx,Lyに基づく各枠、及び文字列に基づく各枠の枠線の端点を検出する。グループ生成部104は、罫線Lx,Lyに基づく各枠、及び文字列に基づく各枠のそれぞれについて、互いの端点の間の距離が前記閾値以下である枠同士のグループを生成する。
【0056】
次に表認識部105は、ステップSt21,22において認識した表同士を比較する(ステップSt23)。全ての表が互いに一致する場合(ステップSt24のYes)、表認識部105は表データ131を端末9に送信する(ステップSt25)。
【0057】
不一致の表が存在する場合(ステップSt24のNo)、表認識部105は、一致する表を端末9に送信する(ステップSt26)。次に表認識部105は、一致しない表を端末9に送信する(ステップSt27)。これにより、ユーザは、端末9を確認することにより正しい表を選択することができる。
【0058】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【符号の説明】
【0059】
1 表認識装置、10 CPU、102 枠識別部、103 端点検出部、104 グループ生成部、105 表認識部、130 画像データ
図1
図2
図3
図4
図5
図6
図7