(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2022-08-29
(45)【発行日】2022-09-06
(54)【発明の名称】情報処理装置、情報処理方法およびプログラム
(51)【国際特許分類】
G06V 30/00 20220101AFI20220830BHJP
G06T 7/00 20170101ALI20220830BHJP
【FI】
G06V30/00 P
G06T7/00 350C
(21)【出願番号】P 2022515125
(86)(22)【出願日】2021-06-01
(86)【国際出願番号】 JP2021020884
【審査請求日】2022-03-07
【早期審査対象出願】
(73)【特許権者】
【識別番号】399037405
【氏名又は名称】楽天グループ株式会社
(74)【代理人】
【識別番号】100109380
【氏名又は名称】小西 恵
(74)【代理人】
【識別番号】100109036
【氏名又は名称】永岡 重幸
(72)【発明者】
【氏名】加藤 肇
(72)【発明者】
【氏名】中澤 満
(72)【発明者】
【氏名】シュテンガー ビヨン
【審査官】佐藤 実
(56)【参考文献】
【文献】特開2005-326940(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06V 30/00
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
グラフ画像を取得するグラフ画像取得部と、
前記グラフ画像取得部により取得された前記グラフ画像をグラフ種別ごとに分類するグラフ分類部と、
前記グラフ画像から、前記グラフ種別ごとに異なる種類の確率マップを生成する確率マップ生成部と、
前記確率マップ生成部により生成された前記確率マップに基づいて、前記グラフ画像中のコンポーネントを抽出し、抽出された前記コンポーネントによりグラフをトレースするコンポーネント抽出部と、
前記コンポーネント抽出部により抽出された前記グラフ画像の前記コンポーネントの値を抽出する値抽出部と、
前記値抽出部により抽出された前記コンポーネントの前記値を出力する出力部と
を備えることを特徴とする情報処理装置。
【請求項2】
前記コンポーネント抽出部は、前記グラフ画像中の複数の前記コンポーネントを同時にトレースする
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記コンポーネント抽出部は、線グラフのための第1の確率マップを用いて、前記線グラフのグラフ画像の画素に関するコストを算出し、前記コストが最小となるよう前記線グラフをトレースする
ことを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
前記コンポーネント抽出部は、線グラフのための第1の確率マップを用いて、前記線グラフのグラフ画像の隣接するX座標位置の間の第1のコストを算出し、複数の線グラフについての前記第1のコストの合計が最小となるよう前記線グラフをトレースする
ことを特徴とする請求項1または2に記載の情報処理装置。
【請求項5】
前記コンポーネント抽出部は、線形計画法(Linear Programming)を用いて、トレースすべき前記線グラフの前記第1のコストを算出する
ことを特徴とする請求項4に記載の情報処理装置。
【請求項6】
前記コンポーネント抽出部は、各X座標位置においてトレースすべき前記線グラフが他の線グラフに遮蔽されるか否かを示す遮蔽フラグを保持し、前記遮蔽フラグを用いて、トレースすべき前記線グラフの前記第1のコストを算出する
ことを特徴とする請求項5に記載の情報処理装置。
【請求項7】
前記遮蔽フラグは、複数の線グラフのそれぞれについて設けられ、各X座標位置における前記複数の線グラフのそれぞれの状態を保持する
ことを特徴とする請求項6に記載の情報処理装置。
【請求項8】
前記コンポーネント抽出部は、線グラフのための第1
の確率マップを用いて、前記線グラフのグラフ画像の各画素の第2のコストを算出し、複数の線グラフについての前記第2のコストの合計が最小となる画素上に前記線グラフをトレースする
ことを特徴とする請求項1または2のいずれか1項に記載の情報処理装置。
【請求項9】
前記コンポーネント抽出部は、動的計画法(Dynamic Programming)を用いて、前記線グラフの前記グラフ画像の各画素の前記第2のコストを算出する
ことを特徴とする請求項8に記載の情報処理装置。
【請求項10】
前記コンポーネント抽出部は、前記線グラフの線の平滑性を評価する関数に基づいて、前記第2のコストを算出する
ことを特徴とする請求項8または9に記載の情報処理装置。
【請求項11】
前記コンポーネント抽出部は、前記線グラフの線の色または線種の一貫性を評価する関数に基づいて、前記第2のコストを算出する
ことを特徴とする請求項8から10のいずれか1項に記載の情報処理装置。
【請求項12】
前記コンポーネント抽出部は、前記第1
の確率マップを用いて、各X座標位置におけるY座標軸方向の前記線グラフの存在確率を足し合わせることにより、前記線グラフの始点および終点を検出し、検出された前記始点から前記終点まで前記線グラフをトレースする
ことを特徴とする請求項4から11のいずれか1項に記載の情報処理装置。
【請求項13】
前記コンポーネント抽出部は、線グラフ以外のグラフのための第2
の確率マップを用いて、隣接する画素を連結することにより、前記グラフをトレースする
ことを特徴とする請求項1から12のいずれか1項に記載の情報処理装置。
【請求項14】
前記コンポーネント抽出部は、CCA(Connected Component Analysis)を用いて、前記グラフのグラフ画像の前記隣接する画素を連結する
ことを特徴とする請求項13に記載の情報処理装置。
【請求項15】
前記コンポーネント抽出部は、前記第2
の確率マップを参照して、抽出された前記コンポーネントを補正する
ことを特徴とする請求項13または14に記載の情報処理装置。
【請求項16】
前記確率マップ生成部は、ニューラルネットワークを用いて、前記グラフ画像の前記確率マップを生成する
ことを特徴とする請求項1から15のいずれか1項に記載の情報処理装置。
【請求項17】
前記ニューラルネットワークは、前記グラフ種別ごとに異なる出力チャネルを備える
ことを特徴とする請求項16に記載の情報処理装置。
【請求項18】
前記確率マップ生成部は、前記グラフ種別ごとに、異なるコンポーネントを分離するための異なる複数種類の確率マップを生成する
ことを特徴とする請求項1から17のいずれか1項に記載の情報処理装置。
【請求項19】
前記出力部は、前記コンポーネント抽出部によりトレースされた前記グラフに、前記値抽出部により抽出された前記コンポーネントの前記値を付加して出力する
ことを特徴とする請求項1から18に記載の情報処理装置。
【請求項20】
情報処理装置が実行する情報処理方法であって、
グラフ画像を取得するステップと、
取得された前記グラフ画像をグラフ種別ごとに分類するステップと、
前記グラフ画像から、前記グラフ種別ごとに異なる種類の確率マップを生成するステップと、
生成された前記確率マップに基づいて、前記グラフ画像中のコンポーネントを抽出し、抽出された前記コンポーネントによりグラフをトレースするステップと、
抽出された前記グラフ画像の前記コンポーネントの値を抽出するステップと、
抽出された前記コンポーネントの前記値を出力するステップと
を含むことを特徴とする情報処理方法。
【請求項21】
情報処理をコンピュータに実行させるための情報処理プログラムであって、該プログラムは、前記コンピュータに、
グラフ画像を取得するグラフ画像取得処理と、
前記グラフ画像取得処理により取得された前記グラフ画像をグラフ種別ごとに分類するグラフ分類処理と、
前記グラフ画像から、前記グラフ種別ごとに異なる種類の確率マップを生成する確率マップ生成処理と、
前記確率マップ生成処理により生成された前記確率マップに基づいて、前記グラフ画像中のコンポーネントを抽出し、抽出された前記コンポーネントによりグラフをトレースするコンポーネント抽出処理と、
前記コンポーネント抽出処理により抽出された前記グラフ画像の前記コンポーネントの値を抽出する値抽出処理と、
前記値抽出処理により抽出された前記コンポーネントの前記値を出力する出力処理と
を含む処理を実行させるためのものであることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法およびプログラムに関し、特に、グラフの画像を解析するための技術に関する。
【背景技術】
【0002】
線グラフを含む画像をデジタルデータへ変換する技術が知られている。
例えば、特許文献1は、収集した患者データの線グラフ表示を分析して、個々のピクセルを同定し、基準点に関する個々のピクセルの相対的位置を特定する複数のピクセル表示データ要素を所望のデータフォーマットで発生させてファイルに蓄積する画像表示データの処理システムを開示する。
【0003】
特許文献2は、紙等に記録された非デジタルの振動波形をスキャナにより読み込み、読み込まれたグラフ画像について、設定ピッチ毎の振幅データを読み取って、振動台により利用可能なデジタルデータに変換する振動データデジタル化装置を開示する。
【0004】
非特許文献1は、研究論文のPDFファイルから図表を抽出し、抽出された図表から線グラフを分離し、線グラフの軸および凡例を検出することにより、線グラフを解析する技術を開示する。
【先行技術文献】
【特許文献】
【0005】
【文献】特表2005-503851号公報
【文献】特開2002-328068号公報
【文献】Siegel,N., Horvitz,Z., Levin,R., Divvala,S., Farhadi,A.“FigureSeer:Parsing Result-Figures in Research Papers” ECCV (2016) pp.664-680
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、グラフには、線グラフ、棒グラフ、円グラフ(パイチャート)等多様な種類があるところ、上記の先行技術文献の技術は、解析対象を専ら線グラフのみに限定するものであり、他の種別のグラフを解析することができないため、汎用性に乏しい。
【0007】
また、特許文献1ないし特許文献2の技術では、線グラフをトレースする際に、ユーザが、グラフの色や輝度振幅を特定したり、あるいは、X軸、Y軸、およびスケールを設定しなければならず、多数のグラフ画像を解析しようとする場合、ユーザに過度な負荷を強いるものであった。
一方、非特許文献1の技術では、線グラフの欄外に位置する凡例を検出し、検出された凡例に記載されたシンボルの線種を検出することにより、線グラフをトレースするものであるため、凡例を含まない線グラフ画像を解析することは想定していない。
【0008】
本発明は上記課題を解決するためになされたものであり、その目的は、より多様なグラフの画像をより高速かつ高精度に解析することが可能な情報処理装置、情報処理方法およびプログラムを提供することにある。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本発明に係る情報処理装置の一態様は、グラフ画像を取得するグラフ画像取得部と、前記グラフ画像取得部により取得された前記グラフ画像をグラフ種別ごとに分類するグラフ分類部と、前記グラフ画像から、前記グラフ種別ごとに異なる種類の確率マップを生成する確率マップ生成部と、前記確率マップ生成部により生成された前記確率マップに基づいて、前記グラフ画像中の複数のコンポーネントを抽出し、抽出された前記複数のコンポーネントによりグラフをトレースするコンポーネント抽出部と、前記コンポーネント抽出部により抽出された前記グラフ画像の前記コンポーネントの値を抽出する値抽出部と、前記値抽出部により抽出された前記コンポーネントの前記値を出力する出力部とを備える。
【0010】
前記コンポーネント抽出部は、前記グラフ画像中の前記複数のコンポーネントを同時にトレースしてよい。
前記コンポーネント抽出部は、線グラフのための第1の確率マップを用いて、前記線グラフのグラフ画像の隣接するX座標位置の間の第1のコストを算出し、複数の線グラフについての前記第1のコストの合計が最小となるよう前記線グラフをトレースしてよい。
【0011】
前記コンポーネント抽出部は、線形計画法(Linear Programming)を用いて、トレースすべき前記線グラフの前記第1のコストを算出してよい。
【0012】
前記コンポーネント抽出部は、各X座標位置においてトレースすべき前記線グラフが他の線グラフに遮蔽されるか否かを示す遮蔽フラグを保持し、前記遮蔽フラグを用いて、トレースすべき前記線グラフの前記第1のコストを算出してよい。
前記遮蔽フラグは、複数の線グラフのそれぞれについて設けられ、各X座標位置における前記複数の線グラフのそれぞれの状態を保持してよい。
【0013】
前記コンポーネント抽出部は、線グラフのための第1の種類の確率マップを用いて、前記線グラフのグラフ画像の各画素の第2のコストを算出し、複数の線グラフについての前記第2のコストの合計が最小となる画素上に前記線グラフをトレースしてよい。
前記コンポーネント抽出部は、動的計画法(Dynamic Programming)を用いて、前記線グラフの前記グラフ画像の各画素の前記第2のコストを算出してよい。
【0014】
前記コンポーネント抽出部は、前記線グラフの線の平滑性を評価する関数に基づいて、前記第2のコストを算出してよい。
前記コンポーネント抽出部は、前記線グラフの線の色または線種の一貫性を評価する関数に基づいて、前記第2のコストを算出してよい。
【0015】
前記コンポーネント抽出部は、前記第1の種類の確率マップを用いて、各X座標位置におけるY座標軸方向の前記線グラフの存在確率を足し合わせることにより、前記線グラフの始点および終点を検出し、検出された前記始点から前記終点まで前記線グラフをトレースしてよい。
【0016】
前記コンポーネント抽出部は、線グラフ以外のグラフのための第2の種類の確率マップを用いて、隣接する画素を連結することにより、前記グラフをトレースしてよい。
前記コンポーネント抽出部は、CCA(Connected Component Analysis)を用いて、前記グラフのグラフ画像の前記隣接する画素を連結してよい。
【0017】
前記コンポーネント抽出部は、前記第2の種類の確率マップを参照して、抽出された前記コンポーネントを補正してよい。
【0018】
前記確率マップ生成部は、ニューラルネットワークを用いて、前記グラフ画像の前記確率マップを生成してよい。
【0019】
前記ニューラルネットワークは、前記グラフ種別ごとに異なる出力チャネルを備えてよい。
前記確率マップ生成部は、前記グラフ種別ごとに、異なるコンポーネントを分離するための異なる複数種類の確率マップを生成してよい。
【0020】
前記出力部は、前記コンポーネント抽出部によりトレースされた前記グラフに、前記値抽出部により抽出された前記コンポーネントの前記値を付加して出力してよい。
【0021】
本発明に係る情報処理方法の一態様は、情報処理装置が実行する情報処理方法であって、グラフ画像を取得するステップと、取得された前記グラフ画像をグラフ種別ごとに分類するステップと、前記グラフ画像から、前記グラフ種別ごとに異なる種類の確率マップを生成するステップと、生成された前記確率マップに基づいて、前記グラフ画像中の複数のコンポーネントを抽出し、抽出された前記複数のコンポーネントによりグラフをトレースするステップと、抽出された前記グラフ画像の前記コンポーネントの値を抽出するステップと、抽出された前記コンポーネントの前記値を出力するステップと、を含む。
【0022】
本発明に係る情報処理プログラムの一態様は、情報処理をコンピュータに実行させるための情報処理プログラムであって、該プログラムは、前記コンピュータに、グラフ画像を取得するグラフ画像取得処理と、前記グラフ画像取得処理により取得された前記グラフ画像をグラフ種別ごとに分類するグラフ分類処理と、前記グラフ画像から、前記グラフ種別ごとに異なる種類の確率マップを生成する確率マップ生成処理と、前記確率マップ生成処理により生成された前記確率マップに基づいて、前記グラフ画像中の複数のコンポーネントを抽出し、抽出された前記複数のコンポーネントによりグラフをトレースするコンポーネント抽出処理と、前記コンポーネント抽出処理により抽出された前記グラフ画像の前記コンポーネントの値を抽出する値抽出処理と、前記値抽出処理により抽出された前記コンポーネントの前記値を出力する出力処理とを含む処理を実行させるためのものである。
【発明の効果】
【0023】
本発明によれば、より多様なグラフの画像をより高速かつ高精度に解析することができる。
上記した本発明の目的、態様及び効果並びに上記されなかった本発明の目的、態様及び効果は、当業者であれば添付図面及び請求の範囲の記載を参照することにより下記の発明を実施するための形態から理解できるであろう。
【図面の簡単な説明】
【0024】
【
図1】
図1は、本発明の各実施形態に係るグラフ画像解析装置の機能構成の一例を示すブロック図である。
【
図2】
図2は、各実施形態に係るグラフ画像解析装置が実行するグラフ画像解析処理の概要を説明する概念図である。
【
図3】
図3は、各実施形態に係るグラフ画像解析装置が実行するグラフ画像解析処理の処理手順の一例を示すフローチャートである。
【
図4】
図4は、グラフ画像解析装置の確率マップ生成部が棒グラフについて出力するニューラルネットワークの出力チャネルの一例を示す図である。
【
図5】
図5は、グラフ画像解析装置の確率マップ生成部が円グラフについて出力するニューラルネットワークの出力チャネルの一例を示す図である。
【
図6】
図6は、グラフ画像解析装置の確率マップ生成部が線グラフについて出力するニューラルネットワークの出力チャネルの一例を示す図である。
【
図7】
図7は、各実施形態に係るグラフ画像解析装置が実行するグラフ画像解析処理の処理手順の変形例を示すフローチャートである。
【
図8】
図8は、グラフ画像解析装置のコンポーネント抽出部が棒グラフおよび円グラフについて実行する
図3のS4のコンポーネント抽出処理の詳細処理手順の一例を示すフローチャートである。
【
図9】
図9は、グラフ画像解析装置のコンポーネント抽出部が棒グラフの確率マップを使用して棒グラフ画像から棒グラフのコンポーネントを抽出する一例を説明する図である。
【
図10】
図10は、実施形態1に係るグラフ画像解析装置のコンポーネント抽出部が線グラフについて実行する
図3のS4のコンポーネント抽出処理の詳細処理手順の一例を示すフローチャートである。
【
図11】
図11は、グラフ画像解析装置のコンポーネント抽出部が線グラフについて実行する線トレースアルゴリズムを単一の線を例として説明する図である。
【
図12】
図12は、グラフ画像解析装置のコンポーネント抽出部が線グラフについて実行する線トレースアルゴリズムを複数の線を例として説明する図である。
【
図13】
図13は、グラフ画像解析装置のコンポーネント抽出部が線グラフの確率マップを使用して線グラフ画像からトレースした線グラフの一例を説明する図である。
【
図14】
図14は、グラフ画像解析装置の値抽出部が線グラフ画像からグラフの値を抽出する一例を説明する図である。
【
図15】
図15は、実施形態2に係るグラフ画像解析装置のコンポーネント抽出部が線グラフについて実行する
図3のS4のコンポーネント抽出処理の詳細処理手順の一例を示すフローチャートである。
【
図16】
図16は、本発明の各実施形態に係るグラフ画像解析装置のハードウエア構成の一例を示すブロック図である。
【発明を実施するための形態】
【0025】
以下、添付図面を参照して、本発明を実施するための実施形態について詳細に説明する。以下に開示される構成要素のうち、同一機能を有するものには同一の符号を付し、その説明を省略する。なお、以下に開示される実施形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正または変更されるべきものであり、本発明は以下の実施形態に限定されるものではない。また、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【0026】
(実施形態1)
本実施形態に係るグラフ画像解析装置は、入力されるグラフ画像をグラフ種別ごとに分類し、グラフ種別ごとに異なる確率マップを生成し、生成された確率マップを用いてグラフ画像を自動的に解析する。
以下では、グラフ画像解析装置が、入力されるグラフ画像を、棒グラフ、円グラフ、および線グラフのグラフ種別に分類し、これらグラフ種別ごとに確率マップを生成し、生成された確率マップを用いて、それぞれの種別のグラフ画像を解析する例を説明する。
【0027】
しかしながら、本実施形態はこれに限定されない。グラフ画像解析装置は、例えば、フローチャート、レイダーチャート、散布図(Scatter Plots)、ベン図(Venn Diagram)等、他の任意のグラフ画像を分類し、解析してよい。
なお、本実施形態において、グラフ画像とは、画像の全部または一部にグラフ(図表またはチャート、以下、「グラフ」と総称する。)を含む画像をいうものとする。グラフ画像は、任意のフォーマットでグラフ画像解析装置に入力されてよい。
【0028】
<グラフ画像解析装置の機能構成>
図1は、本実施形態に係るグラフ画像解析装置1の機能構成の一例を示すブロック図である。
図1に示すグラフ画像解析装置1は、データ取得部11、グラフ分類部12、確率マップ生成部13、コンポーネント抽出部14、値抽出部15、および出力部16を備える。
【0029】
データ取得部11は、入力データセット3から入力データを取得して、取得された入力データをグラフ分類部12に供給する。データ取得部11により取得される入力データは、グラフ画像を含み得る。入力データセット3は、不揮発性記憶装置で構成され、グラフ画像解析装置1にローカルに備えられ、またはリモートで接続されてよい。
グラフ画像は、例えば、ビットマップ、GIF(Graphics Interchange Format)、JPEG(Joint Photographic Experts Group)、TIFF(Tag Image File Format)等の任意の画像ファイルフォーマットを有してよい。また、画像の一部にグラフを含む場合、当該画像は、例えば、PDF(Portable Document Format)や、ウェブページを構成するHTML(Hyper Text Markup Language)等の任意のファイルフォーマットを有してよい。
【0030】
データ取得部11は、入力データセット3に替えて、入力データを対向装置から通信I/Fを介して受信してもよい。
データ取得部11はまた、グラフ画像解析装置1においてグラフ画像解析処理を実行するために必要な各種パラメータの入力を受け付けてよい。
【0031】
グラフ分類部12は、データ取得部11から供給される入力データから後段で解析すべきグラフ画像を抽出し、抽出されたグラフ画像を、複数のグラフ種別のいずれかに分類して、分類されたグラフ画像を確率マップ生成部13へ供給する。グラフ分類部12は、解析すべきグラフ画像として、例えば、棒グラフ、円グラフ、および線グラフ等を入力データから抽出してよい。
本実施形態において、グラフ分類部12は、例えば、ニューラルネットワーク等の分類用のネットワークを用いて、入力データからグラフ画像を抽出し、抽出されたグラフ画像を分類してよい。
【0032】
確率マップ生成部13は、グラフ分類部12から供給される分類されたグラフ画像に対して、分類されたグラフ種別ごとに、グラフ画像の確率マップを生成し、生成された確率マップをコンポーネント抽出部14へ供給する。確率マップ生成部13はまた、グラフ分類部12により分類される前のグラフ画像を入力として、グラフ種別ごとに、グラフ画像の確率マップを生成してよい。
本実施形態において、確率マップ生成部13により生成される確率マップ(Probability Map)は、グラフ画像の画素ごとに、分類された種別のグラフを構成するコンポーネントが出現する確率を推定し、推定された確率分布で構成されるマップである。
【0033】
確率マップ生成部13は、例えば、ニューラルネットワーク等の確率マップ生成用のネットワークを用いて、分類されたグラフ画像から、確率マップを生成してよい。確率マップ生成部13が使用する確率マップ生成用のネットワークは、複数種類のグラフの確率マップを出力する単一のセグメンテーションネットワーク(セグメンテーションモデル)であってよく、あるいは、複数種類のグラフのそれぞれについて設けられる複数のセグメンテーションネットワーク(セグメンテーションモデル)であってもよい。
確率マップ生成部13はまた、分類されたグラフ種別ごとに、異なる種類の確率マップを生成してよく(
図2を参照して後述)、分類されたグラフ種別ごとに、異なる複数種類の確率マップを生成してよい(
図4~
図6を参照して後述)。
【0034】
コンポーネント抽出部14は、確率マップ生成部13から供給される確率マップを用いて、グラフ画像から、グラフを構成するコンポーネント(以下、単に「コンポーネント」という。)を抽出する。
具体的には、コンポーネント抽出部14は、グラフ分類部13により分類されたグラフ画像に、当該グラフ画像が分類された種別に対応して確率マップ生成部13から供給される確率マップを用いて、グラフ画像から、グラフを構成する複数のコンポーネントのそれぞれを分離する。
【0035】
コンポーネント抽出部14は、グラフ画像から、グラフを構成する複数のコンポーネントのうち、主要なコンポーネントをそれぞれ分離してよい。確率マップは、分離されるべき複数の主要なコンポーネントのそれぞれに対応して、複数種類が生成されてよい。
コンポーネント抽出部14は、グラフ画像から分離した複数のコンポーネントのそれぞれについて、グラフをトレースして、分離されたコンポーネントおよびそのグラフを、値抽出部15へ供給する。
【0036】
値抽出部15は、コンポーネント抽出部14から供給されるグラフ画像の各コンポーネントについて、対応するグラフの値を抽出する。
具体的には、値抽出部15は、グラフ画像の軸のラベルや各コンポーネントに付与されたラベルを抽出し、抽出されたラベルのテキストおよび幾何学的配置に基づいて、グラフ画像の各コンポーネントに対応するグラフの値を生成する。
値抽出部15はまた、グラフ軸の目盛(tick-mark)の確率マップに基づいて、グラフ画像の各コンポーネントに対応するグラフの値を生成してよい。
【0037】
グラフ画像に含まれるグラフ自体は、所定の入力データを可視化したものであるが、画像化されたグラフ画像からは、通常、グラフ描画の基となったオリジナルの入力データに直接アクセスすることができない。
本実施形態では、値抽出部15が、グラフ画像の各コンポーネントに対応するグラフの値を生成することによって、グラフ描画の基となったオリジナルの入力データを回復する。
値抽出部15は、グラフ画像の各コンポーネントの連続する画素に対応して連続的にグラフの値を生成してよく、あるいは、所定の画素間隔ごとに離散的にグラフの値を生成してもよい。
値抽出部15は、生成されたグラフの値を、グラフ画像の各コンポーネントに付加して、または対応付けて、出力部16へ供給する。
【0038】
出力部16は、コンポーネント抽出部14により抽出されたグラフ画像の各コンポーネントをグラフに合成し、デジタルデータとして、出力データセット4に出力する。出力データセット4に出力されたグラフは、グラフ画像解析装置1または他の装置のユーザインタフェースを介して、プッシュ型またはプル型で外部に出力されてよい。
出力部16が合成するグラフの各コンポーネントには、値抽出部15により抽出されたグラフの値が付加されている。このため、グラフ画像解析装置1、または他の装置は、グラフ画像解析処理の後処理として、出力データセット4から合成されたグラフのデータを読み出して、任意に加工して出力することができる。
たとえば、出力部16または後処理は、グラフ分類部12により分類されたグラフ種別とは異なるグラフ種別に変更して、グラフを出力してよく、また、スケール、グラフ化の範囲、グラフコンポーネントの色や線種等を変更して、グラフを出力してもよい。
なお、出力部16は、値抽出部15により生成されたグラフの値を、グラフ画像の各コンポーネントに付加することなく、独立して出力してよい。あるいは、出力部16は、これらグラフの値を、例えば表形式等の任意の形式に整形して出力してよい。
【0039】
なお、グラフ画像解析装置1は、PC(Personal Computer)等で構成されるクライアント装置と通信可能に接続し、当該クライアント装置は、グラフ画像解析装置1が外部と情報の入出力を実行する際のユーザインタフェースを提供してよく、また、グラフ画像解析装置1の各コンポーネント11~16の一部または全部を備えてもよい。
【0040】
図2は、本実施形態に係るグラフ画像解析装置1が実行するグラフ画像解析処理の概要を説明する概念図である。
本実施形態において、グラフ画像解析装置1は、入力データから、解析されるべきグラフ画像を抽出し、抽出されたグラフ画像を複数のグラフ種別のうちのいずれかに分類する。
図2を参照して、入力データ21は、ニューラルネットワーク等で構成される分類用のネットワーク22に入力され、分類用のネットワーク22は、いずれかのグラフ種別に分類されたグラフ画像を含む分類結果23を出力する。分類用のネットワーク22が出力する分類結果23は、線グラフ(Line)、円グラフ(Pie)、横棒グラフ(H-Bar)、縦棒グラフ(V-Bar)の各グラフ画像を含む。分類用のネットワーク22は、各種のグラフ画像のデータとグラフ種別のラベルとを学習データとして、予め学習させておく。
これらの分類された各グラフ画像は、後段の確率マップ生成用のネットワーク24に入力されてよい。一方、分類用のネットワーク22は、解析されるべきグラフ画像以外の種別のグラフ画像(例えば、マップのグラフ等)、および写真等も、分類結果として出力するが、これらの分類結果は後段の確率マップ生成用のネットワーク24に入力されない。
【0041】
本実施形態において、グラフ画像解析装置1は、分類されたグラフ種別ごとに異なる種類の確率マップを生成し、生成された確率マップを用いて、グラフ画像からグラフ画像のコンポーネントを分離し、分離されたグラフ画像のコンポーネントでグラフをトレースするとともに、トレースされたグラフのコンポーネントに対応するグラフの値を抽出する。
【0042】
図2を参照して、分類結果23、すなわち分類済みのグラフ画像のデータは、ニューラルネットワーク等で構成される確率マップ生成用ネットワーク24に入力され、確率マップ生成用のネットワーク24は、分類されたグラフ種別ごとに、確率マップ25a~25dを出力する。
図2では、確率マップ生成用のネットワーク24が出力する確率マップは、線グラフの確率マップ25a、円グラフの確率マップ25b、横棒グラフの確率マップ25c、および縦棒グラフの確率マップ25dを含む。確率マップの構成の詳細については、
図4~
図6を参照して後述する。
確率マップ生成用のネットワーク24は、分類済みのグラフ種別が付加されたグラフ画像のデータと、色、ボーダーライン、セグメンテーション、凡例、グラフ軸の目盛、線種等のグラフ種別に応じたラベルとを学習データとして、予め学習させておく。
なお、分類用のネットワーク22および確率マップ生成用のネットワーク24は、CNN(Convolutional Neural Network)等のニューラルネットワークであってもよく、SVM(Support Vector Machine)等の他の機械学習モデルを用いてもよい。
【0043】
あるいは、グラフ画像解析装置1は、分類用のネットワーク22および確率マップ生成用ネットワーク24を併用して、グラフ画像の分類と、確率マップ生成とを並行して実行してよい。すなわち、グラフ画像解析装置1は、入力データ21から抽出されたグラフ画像を、分類用のネットワーク22に入力して、複数のグラフ種別のいずれかに分類するとともに、これと並列的に、入力データ21から抽出されたグラフ画像を、確率マップ生成用ネットワーク24に入力して、グラフ種別ごとに、確率マップ25a~25dを出力してよい。
【0044】
この場合、確率マップ生成用ネットワーク24は、複数種類のグラフのコンポーネントにそれぞれ対応する複数の出力チャネルを備え、すべての種類のグラフについての確率マップを生成する、単一の統合されたセグメンテーションネットワーク(セグメンテーションモデル)であってよい。
ただし、グラフ画像解析装置1は、分類用ネットワーク22により分類されたグラフ画像を入力として、グラフ分類処理の後段として、単一の確率マップ生成用ネットワーク24を用いた確率マップ生成処理を実行してもよい。
【0045】
複数種類のグラフに対応する複数の出力チャネルを備える単一の確率マップ生成用ネットワーク24を使用することで、計算負荷を低減しつつ、セグメンテーションモデルである確率マップ生成用ネットワーク24をより効率的に学習させることができる。また、このような単一の確率マップ生成用ネットワーク24を使用することで、推論フェーズにおいて、複数種類のグラフ画像をセグメンテーションモデルに同時に入力して汎用的に推論を実行することができる。さらに、確率マップ生成用ネットワーク24と分類用のネットワーク22とを並列的に学習および推論を実行することで、より高速にグラフ画像を解析することが可能となる。
【0046】
図2の確率マップ25a~25dでは、グラフ画像の主要なコンポーネントが出現する尤度が所定の閾値以上である画素が白抜きで表示されている。線グラフの確率マップ25aは、各線グラフのコンポーネントを分離する。円グラフの確率マップ25bは、円グラフの各パイスライスのコンポーネントを分離する。横棒グラフの確率マップ25cおよび縦棒グラフの確率マップ25dは、それぞれ、各バーセグメントのコンポーネントを分離する。
【0047】
本実施形態では、これらのグラフ種別ごとに異なる種類の確率マップ25a~25dを用いて、グラフ画像から各コンポーネントを分離して抽出する。
図2を参照して、線グラフのグラフ画像に対して、線グラフの確率マップ25aを用いて、各線グラフのコンポーネント26aが抽出されて、トレースされている。円グラフのグラフ画像に対して、円グラフの確率マップ25bを用いて、各パイスライスのコンポーネント26bが抽出されて、トレースされている。横棒グラフおよび縦棒グラフのグラフ画像に対して、横棒グラフの確率マップ25cおよび縦棒グラフの確率マップ25dをそれぞれ用いて、各バーセグメントのコンポーネント26c、26dがそれぞれ抽出されて、トレースされている。
【0048】
グラフ画像から抽出された各コンポーネント26a~26dに対して、グラフの値が抽出される。具体的には、線グラフ、円グラフ、横棒グラフ、および縦棒グラフの各グラフ画像の座標軸のラベル、各コンポーネントのラベル、タイトル、凡例等の領域から、グラフ画像27a~27d中の矩形領域で示されるように、テキストが検出されて、文字認識される。この文字認識の結果と、グラフ画像上で抽出された各コンポーネントの幾何学的配置に基づいて、グラフの値が生成される。トレースされたグラフの各コンポーネントに生成されたグラフの値が付加されて、デジタル化されたグラフのデータ28が出力される。
【0049】
<グラフ画像解析処理の処理手順>
図3は、本実施形態に係るグラフ画像解析装置1が実行する、グラフ画像解析処理の処理手順の一例を示すフローチャートである。
図3に示す例では、グラフ画像解析装置1が、単一の確率マップ生成用ネットワークを用いて、グラフ分類部12によるグラフ画像の分類と、確率マップ生成部13による確率マップの生成とを並列的に実行する。
なお、
図3の各ステップは、グラフ画像解析装置1のHDD等の記憶装置に記憶されたプログラムをCPUが読み出し、実行することで実現される。また、
図3に示すフローチャートの少なくとも一部をハードウエアにより実現してもよい。ハードウエアにより実現する場合、例えば、所定のコンパイラを用いることで、各ステップを実現するためのプログラムからFPGA(Field Programmable Gate Array)上に自動的に専用回路を生成すればよい。また、FPGAと同様にしてGate Array回路を形成し、ハードウエアとして実現するようにしてもよい。また、ASIC(Application Specific Integrated Circuit)により実現するようにしてもよい。
【0050】
S1で、グラフ画像解析装置1のデータ取得部11は、入力データセット3から、グラフ画像を含む入力データを取得する。
S2で、グラフ画像解析装置1のグラフ分類部12は、分類用のネットワーク22を用いて、入力データから、解析すべきグラフ画像を抽出し、抽出されたグラフ画像を、解析対象の複数のグラフ種別のいずれかに分類する。
【0051】
S2と並列的に、S3で、グラフ画像解析装置1の確率マップ生成部13は、確率マップ生成用の単一のネットワーク24を用いて、S1で入力された入力データから抽出されたグラフ画像から各コンポーネントを抽出するための確率マップを、グラフ種別ごとに生成する。
S3で確率マップ生成部13が使用する確率マップ生成用の単一のネットワーク24は、上述のとおり、複数種類のグラフのコンポーネントにそれぞれ対応する複数の出力チャネルを備え、すべての種類のグラフについての確率マップを生成する、単一の統合されたセグメンテーションネットワーク(セグメンテーションモデル)である。
【0052】
なお、確率マップ生成用ネットワーク24は、解析すべきグラフ種別ごとに異なる学習データで学習済みの学習モデルとして形成されてもよいが、確率マップ生成用ネットワーク24は、ネットワークの出力チャネルのみ、グラフ種別ごとに異なればよく、出力チャネル以外のネットワークは共通化された構造を有してよい。これにより、確率マップ生成用のネットワーク24の汎用性が向上する。以下、「確率マップ生成用ネットワーク」の語は、このような単一のネットワークおよびグラフ種別ごとのネットワークの双方を含むものとする。
【0053】
図4は、縦棒グラフのグラフ画像から各コンポーネントを抽出する確率マップを生成する、確率マップ生成用のネットワーク24の出力チャネルの一例を示す図である。
図4(a)に示す縦棒グラフのグラフ画像を入力データとした場合、確率マップ生成用のネットワーク24は、
図4(b)に示すバーセグメントを彩色する色(主要色)の出力チャネルと、
図4(c)に示す各バーセグメントを区分するセグメンテーションの出力チャネルと、および
図4(d)に示す各バーセグメントの境界を画定するボーダーラインの出力チャネルとをそれぞれ備える。確率マップ生成用ネットワーク24はさらに、
図4(e)に示す凡例の出力チャネルと、
図4(f)に示すグラフ軸目盛の出力チャネルとをそれぞれ備えてよい。確率マップ生成部13は、これら
図4(b)~
図4(f)にそれぞれ対応する複数種類の確率マップを生成する。
【0054】
図5は、円グラフのグラフ画像から各コンポーネントを抽出する確率マップを生成する、確率マップ生成用のネットワーク24の出力チャネルの一例を示す図である。
図5(a)に示す円グラフのグラフ画像を入力データとした場合、確率マップ生成用のネットワーク24は、
図5(b)に示すパイスライスを彩色する色(主要色)の出力チャネルと、
図5(c)に示す各パイスライスを区分するセグメンテーションの出力チャネルと、および
図5(d)に示す各パイスライスの境界を画定するボーダーラインの出力チャネルとをそれぞれ備える。確率マップ生成用ネットワーク24はさらに、
図5(e)に示す凡例の出力チャネルと、
図5(f)に示すグラフ軸目盛の出力チャネルとをそれぞれ備えてよい。確率マップ生成部13は、これら
図5(b)~
図5(f)にそれぞれ対応する複数種類の確率マップを生成する。なお、円グラフには通常、グラフ軸は付与されないため、円グラフのグラフ画像から抽出されるグラフ軸目盛の確率マップは、
図5(f)に示すように、オールゼロの値を持ってよい。
【0055】
一方、
図6は、線グラフのグラフ画像から各コンポーネントを抽出する確率マップを生成する、確率マップ生成用のネットワーク24の出力チャネルの一例を示す図である。
図6(a)に示す線グラフのグラフ画像を入力データとした場合、確率マップ生成用のネットワーク24は、線種ごとに、
図6(b)に示す実線の線グラフの出力チャネルと、
図6(c)に示す点線の線グラフの出力チャネルと、
図6(d)に示す破線の線グラフの出力チャネルと、および
図6(e)に示す一点鎖線の線グラフの出力チャネルとをそれぞれ備える。確率マップ生成用ネットワーク24はさらに、
図6(f)に示す凡例の出力チャネルと、
図6(g)に示すグラフ軸目盛の出力チャネルとをそれぞれ備えてよい。確率マップ生成部13は、これら
図6(b)~
図6(g)にそれぞれ対応する複数種類の確率マップを生成する。
【0056】
確率マップ生成用ネットワーク24を、棒グラフ、円グラフ、および線グラフのすべてのグラフ種別に対応する単一のセグメンテーションモデルで構成する場合、当該確率マップ生成用ネットワーク24は、RGB各色、セグメンテーション(前景)、ボーダーライン、4つの線種、凡例、およびグラフ軸目盛、の11出力チャネルを持ってよい。
グラフ軸目盛の確率マップを生成することで、グラフの各コンポーネントの値を抽出さする際に、グラフ軸の各目盛が示すグラフの値を、OCR認識されたテキストボックスの座標情報から推定することなく、より直接的かつ正確に特定することが可能となる。
【0057】
なお、
図4~
図6に示す確率マップ生成用のネットワーク24の出力チャネル(確率マップ)の構成は一例であって、本実施形態はこれに限定されない。例えば、グラフ画像から凡例を抽出するための
図4(e)、
図5(e)、および
図6(f)に示す出力チャネル(確率マップ)は、凡例の領域をマスクして、グラフ画像からグラフが描画されている領域を画定するために使用されてよいが、必ずしも生成されなくてもよい。同様に、グラフ画像からグラフ軸目盛を抽出するための
図4(f)、
図4(f)、および
図6(g)に示す出力チャネル(確率マップ)は、グラフの各コンポーネントに対応する値をより正確に抽出さするために使用されてよいが、必ずしも生成されなくてもよい。確率マップ生成部13は、グラフのコンポーネントのトレースを容易化するよう、グラフ種別に応じて、異なる複数種類の確率マップを生成してよい。
【0058】
図3に戻り、グラフ画像解析装置1のコンポーネント抽出部14は、S3でそれぞれのグラフ種別に対応して生成された確率マップを用いて、グラフ画像からグラフの各コンポーネントを推定し、推定されたグラフコンポーネントをトレースする。
コンポーネント抽出部14は、グラフ種別ごとに異なる手法で、グラフ画像からグラフの各コンポーネントを推定してよい。これらグラフのコンポーネント抽出処理の詳細は、
図8~
図14を参照して後述する。
【0059】
本実施形態では、グラフ画像からグラフのコンポーネントを推定する際に、グラフ種別ごとに設けられた確率マップを用いる。グラフ種別ごとに設けられた確率マップを用いることで、グラフ画像上の画素単位で、各コンポーネントが出現する確率を取得することができ、各コンポーネントの領域の推定が容易化される。
このため、例えば、グラフ画像がアーチファクト、ノイズやグラデーションを含む場合、グラフのコンポーネント同士が交差またはオーバーラップする場合や他のコンポーネントと離隔する場合、高圧縮され解像度が低い場合、グラフコンポーネントの境界が明瞭でない場合等であっても、グラフ画像から高精度にグラフの各コンポーネントを推定することができる。
【0060】
S5で、グラフ画像解析装置1の値抽出部15は、S4で推定されたグラフの各コンポーネントに対応するグラフの値を抽出する。
値抽出部15は、円グラフのグラフ画像について、S4で取得されたパイスライスのセグメント(コンポーネント)の面積、およびグラフの軸やコンポーネントにラベル付けされたテキストの文字認識結果に基づいて、円グラフの値を抽出する。
値抽出部15はまた、棒グラフおよび線グラフのグラフ画像について、棒グラフや線グラフのコンポーネントの画素座標と、グラフの軸やコンポーネントにラベル付けされたテキストの文字認識結果との間の関連を幾何学的配置に基づいて判定することにより、グラフの各コンポーネントの値を抽出する。
【0061】
より具体的には、値抽出部15は、まず、グラフ画像全体をOCR(Optical Character Recognition)により読み取って、テキストを検出し、検出されたテキストのテキストボックスを、縦軸および横軸のいずれかにグルーピングする。テキストボックスはまた、凡例またはタイトルにグルーピングされてもよい。
値抽出部15は、次に、棒グラフおよび線グラフにつき、テキストとして数字を含むテキストボックスの位置から、縦および横の座標軸のスケールを決定する。
【0062】
値抽出部15はさらに、棒グラフや線グラフのグラフ軸目盛の確率マップを用いて、グラフ軸の各目盛に対応する値を同定し、同定された値に基づいて各コンポーネントの値を生成してよい。グラフ軸の各目盛に対応する値が得られない場合、例えば、数値を含むバウンディングボックスの重心座標を、グラフ軸の目盛に対応する値として使用してもよい。
決定された座標軸のスケールを適用して、値抽出部15は、グラフの各コンポーネントの座標を、グラフの値に変換する。
【0063】
具体的には、値抽出部15は、線グラフの各線のコンポーネント上のすべての点の画素座標を、グラフの値に変換する。値抽出部15はまた、棒グラフの各バーセグメントのコンポーネントの頂点Y座標(縦座標)および右端X座標(横座標)を、グラフの値に変換する。
一方、円グラフについて、値抽出部15は、円グラフの各パイスライスのコンポーネントの面積比または中心角に基づいて、グラフの値を生成する。
【0064】
S6で、グラフ画像解析装置1の出力部16は、コンポーネント抽出部14により抽出され、トレースされたグラフのコンポーネントに、値抽出部15により抽出されたグラフの値および座標軸のスケールの情報等を付加して、グラフのデジタルデータとして、出力データセット4に出力する。
【0065】
図7は、本実施形態に係るグラフ画像解析装置1が実行する、グラフ画像解析処理の処理手順の変形例を示すフローチャートである。
図7に示す例では、グラフ画像解析装置1は、グラフ分類部12により分類されたグラフ画像を、確率マップ生成部13に入力する。
図7のS1およびS2の処理は、
図3に示すS1およびS2の処理と同様である。
【0066】
S3aで、グラフ画像解析装置1の確率マップ生成部13は、確率マップ生成用のネットワーク24を用いて、分類されたグラフ画像から各コンポーネントを抽出するための確率マップを、グラフ種別ごとに生成する。
確率マップ生成用のネットワーク24は、解析すべきグラフ種別ごとに異なる学習データで学習済みの学習モデルとして形成されてよいが、ネットワークの出力チャネルのみ、グラフ種別ごとに異なればよく、出力チャネル以外のネットワークは共通化された構造を有してよい。すなわち、S3aにおいて、確率マップ生成部13は、分類されたグラフ画像から確率マップを生成するため、グラフ種別ごとに異なるネットワーク(セグメンテーションモデル)を用いてもよく、単一のネットワーク(セグメンテーションモデル)を用いてもよい。
図7のS4~S6の処理は、
図3に示すS4~S6の処理と同様である。
【0067】
(第1のグラフコンポーネント抽出処理)
図8は、グラフ画像解析装置1のコンポーネント抽出部14が棒グラフおよび円グラフについて実行する
図3および
図7のS4のコンポーネント抽出(グラフトレース)処理の詳細処理手順の一例を示すフローチャートである。
S401で、コンポーネント抽出部14は、グラフ画像中の凡例の領域をマスクする。コンポーネント抽出部14は、
図3のS3で生成された凡例の確率マップを用いて、グラフ画像から凡例の領域を検出し、検出された凡例の領域を、
図3のS3で生成されたセグメンテーションの確率マップ上でマスクしてよい。これにより、グラフ画像中で、グラフのコンポーネントが存在する領域と、凡例の領域とを区分することができる。
【0068】
S402で、コンポーネント抽出部14は、グラフ画像の各コンポーネントのボーダーラインを画定する。具体的には、コンポーネント抽出部14は、
図3のS3で生成されたボーダーラインの確率マップを用いて、ボーダーラインを画定し、グラフ画像のセグメンテーションの確率マップから、ボーラーラインを除去する。
S403で、コンポーネント抽出部14は、棒グラフおよび円グラフのコンポーネントを抽出するため、CCA(Connected Component Analysis)を適用して、グラフ画像中の隣接する画素を連結する。
CCAは、RGB色空間で同様の色を持つ隣接する画素をグルーピングすることで、画素を連結してコンポーネントを抽出することができる。
【0069】
S404で、コンポーネント抽出部14は、S402でボーダーラインが除去されたセグメンテーションの確率マップおよび色の確率マップを用い、S403でCCAを適用して連結された連結コンポーネントを、グラフ画像のグラフのコンポーネントとして抽出し、グラフのコンポーネントをトレースする。
コンポーネント抽出部14はさらに、画素が連結されて構成される連結コンポーネントのうち、グラフ種別ごとのセグメンテーションの確率マップから推定されるコンポーネントの形状から外れるコンポーネントを破棄してよい。
例えば、棒グラフであれば、矩形形状でない連結コンポーネントは破棄され、円グラフであれば、パイスライス形状でない連結コンポーネントは破棄されてよい。
【0070】
S405で、コンポーネント抽出部14は、S404で抽出されたコンポーネントを必要に応じて補正する。
S403およびS404では、隣接する画素を、互いに同様の色を持つ場合に連結するので、例えば、グラフのコンポーネントが、単色ではなく、色のグラデーションやテクスチャを有する場合や、3D効果が付与されている場合等に、本来は連結されるべき画素が連結されないおそれがある。
本実施形態では、
図3のS3で生成された色(主要色)の確率マップやセグメンテーションの確率マップを用いるので、確率マップから推定されるグラフのコンポーネントの色彩や形状に基づいて、S404で抽出されたグラフのコンポーネントを補正することができる。
【0071】
図9は、グラフ画像解析装置1のコンポーネント抽出部14が、棒グラフの確率マップを使用して棒グラフ画像から棒グラフのコンポーネントを抽出する一例を説明する図である。
図9を参照して、横棒グラフは、Y座標軸に年を、X座標軸に石油生産量を表示しており、各年の石油生産量が1つのバーセグメントを構成しており、1つのバーセグメントがさらに、リージョンA~Fおよび他のリージョンの各サブセグメントにブレークダウンされている。
コンポーネント抽出部14が、棒グラフについてのコンポーネント抽出処理を実行することにより、6つのバーセグメントのそれぞれのサブセグメントが、太枠で囲まれていることから理解されるように、コンポーネントとして抽出されている。
【0072】
例えば、
図8のS401~S404までの処理を実行した段階で、
図9中のある年のバーセグメントの一部が、それぞれのリージョンのサブセグメントに区分されていないものとする。本実施形態では、
図8のS405の補正処理を実行することにより、色の確率マップおよびセグメンテーションの確率マップを用いて、色が相互に類似するため分離するのが困難な複数のコンポーネントをそれぞれ別個に抽出することができる。
【0073】
(第2のグラフコンポーネント抽出処理)
図10は、グラフ画像解析装置1のコンポーネント抽出部14が線グラフについて実行する
図3のS4のコンポーネント抽出(グラフトレース)処理の詳細処理手順の一例を示すフローチャートである。
S411で、グラフ画像解析装置1のコンポーネント抽出部14は、線グラフの存在範囲を算出する。
【0074】
具体的には、コンポーネント抽出部14は、線グラフが存在するX座標範囲を取得することにより、線グラフの始点と終点とを検出する。S411では、コンポーネント抽出部14は、
図3のS3で生成された複数の線種の確率マップ(
図6(b)~
図6(e)では4種類の線種)を各画素位置について平均して、線確率(Line Probability)マップを予め算出しているものとする。
コンポーネント抽出部14は、Y座標軸方向に沿って存在確率の和を算出することにより、各X座標軸におけるスタックされた(足し合わされた)線の存在確率を算出する。次に、X座標軸上の線の存在分布を取得するため、コンポーネント抽出部14は、閾値θ
thを使用してスタックされた線の存在確率を二値化する。こうして、線グラフの存在範囲は、線の存在分布のクラスタの、X座標軸上の最小値および最大値として取得される。このように、本実施形態では、凡例の領域を参照して線グラフの存在範囲を画定する必要がなく、線グラフの存在範囲外に凡例を含まない線グラフのグラフ画像であっても、線グラフをトレースすることができる。
【0075】
S412で、コンポーネント抽出部14は、線グラフの数をカウントする。
具体的には、コンポーネント抽出部14は、閾値pthを使用して線確率マップを二値化し、二値化された線確率マップを、各X座標位置で、Y座標軸に沿って走査することにより、X座標軸上の画素クラスタの数をカウントする。こうして、線グラフの数は、X座標軸上の画素クラスタの数を使用して取得される。
【0076】
S413で、コンポーネント抽出部14は、線形計画法(Linear Programming:LP)を適用して、各X座標でのすべての線のコストを算出していく。
S414で、コンポーネント抽出部14は、S413ですべての線のコストの合計が最小となる画素上に、すべての線を同時にトレースしていく。
【0077】
RGB色空間上の色に基づき連結するCCAは、ドットで線を描画する線グラフには適用が困難である。本実施形態は、線形計画法(LP)を用いて、線グラフをトレースする。
線形計画法(LP)とは、一次の不等式または一次式で表される制約条件のもとで、一次式で表される目的関数を最大または最小にする値を求めるアルゴリズムである。
具体的には、本実施形態は、線グラフの複数の線のそれぞれを、有向グラフのパスと見做して、線形計画法を適用し、有向グラフのフローのコストを最小化するよう、線グラフをトレースする。
【0078】
コンポーネント抽出部14は、高い線確率(line probability)を持つ画素をノードとしてサンプリングし、X軸方向に隣接するノードを接続することで、グラフをトレースする。本実施形態では、線形計画法を適用して、画素から、複数の線のいずれかへの割り当てを決定する。線形計画法を適用することで、より複雑な再帰アルゴリズムに対応することができ、線グラフのすべての線についてのコスト関数を同時に最適化することができる。
【0079】
線グラフが複数の線を含み、複数の線のそれぞれを個別にトレースしていく場合、複数の線が重なる区間があると、ある線が他の線に遮蔽されて(occluded)、遮蔽された線が正確にトレースできないおそれがある。
本実施形態では、線形計画法を適用して、各X座標について、複数の線(複数の線種の複数の線であってよい)を一度にトレースしていく。また、本実施形態では、トレースの各サンプル点について、複数の線のそれぞれが、他の線に遮蔽される状態か否かを示す、遮蔽(occlusion)フラグを保持し、この遮蔽フラグを参照して、複数の線を同時にトレースしていく。
【0080】
コンポーネント抽出部14は、S411で算出された線グラフの存在範囲(X座標範囲)と、S412でカウント線グラフの数を使用して、検出された線グラフの始点から終点までX軸に沿って、線形計画法(LP)により線グラフをトレースしていく。
具体的には、コンポーネント抽出部14は、二値化変数b(b∈{0,1})を用いて、二値化された線確率マップ(セグメンテーションマップ)中の2つの点を接続する線を推定する。
【0081】
コンポーネント抽出部14は、左端のX座標xiから開始して、Y座標軸に沿って垂直方向に画素を走査し、各X座標xiについて、線グラフの数nlineの最大2倍の点をサンプリングする。
次に、コンポーネント抽出部14は、以下の式1に示される、コスト関数cおよび二値化変数bからなる線形計画法(LP)関数を最小化する。
【0082】
【0083】
ここで、iは、X座標のサンプル点のインデックスである。
YiおよびY´
iは、それぞれ、サンプル点xiおよびxi+1におけるY座標のセットである(すなわち、Y´
i=Yi+1)。lは、線のインデックスである。変数zおよびz´は、それぞれ、第1のサンプル点(xi,y)または第2のサンプル点(xi+1,y´)が遮蔽されているか否かを示す。二値化変数b(xi,y,y´,l,z,z´)は、それぞれ、第1のサンプル点および第2のサンプル点が同じl番目の線上にあるか否かのフローを示す。
【0084】
図11は、グラフ画像解析装置1のコンポーネント抽出部14が線グラフについて実行する線トレースアルゴリズムを単一の線を例として説明する図である。
図11を参照して、1つの線(ライン)をトレースする場合、隣接する2つのサンプル点について、4つの前景/遮蔽の組み合わせが考えられる。すなわち、第1のサンプル点または第2のサンプル点が、それぞれ、前景となるか遮蔽されるかである。
コンポーネント抽出部14は、線1の各サンプル点について、当該線1が前景かあるいは遮蔽されているかの状態を保持する遮蔽フラグを有する。各遮蔽フラグにおいて、左側のスロットは、遮蔽されていない(すなわち、前景である)(z=0)である場合にオンとなり、右側のスロットは、遮蔽されている(z=1)である場合にオンとなる。
図11に示す例において、トレースされるべき線は単一の線であり、他の線による遮蔽は発生しない。
このため、LP関数の解は、二値化変数b(x
i,y,y
´,l=1,z=0,z
´=0)=1を得、隣接する2つのサンプル点の間に、
図11に示すように実線がトレースされる。
【0085】
図12は、グラフ画像解析装置1のコンポーネント抽出部14が線グラフについて実行する線トレースアルゴリズムを複数の線を例として説明する図である。
図12を参照して、部分的に遮蔽されている2本の線をトレースする場合、各線の各サンプル点において、4つのパターンが考えられる。すなわち、各サンプル点において、線1および線2がそれぞれ、前景となるか遮蔽されるかである。
コンポーネント抽出部14は、各サンプル点において、線1および線2について、前景かあるいは遮蔽されているかの状態を保持する遮蔽フラグをそれぞれ有する。
【0086】
図12に示す例において、線2(一点鎖線)は、サンプル点X
i+1およびサンプル点X
i+2の間で、部分的に線1(実線)により遮蔽されている。この場合、線2が遮蔽されている区間における遮蔽フラグは、線1について前景のスロットがオン、線2について遮蔽のスロットがオンとなる。
コンポーネント抽出部14は、線形計画法(LP)を用いて、
図12に示すように、各線の遮蔽フラグにより各線が各サンプル点において前景かあるいは遮蔽されているかの状態を保持して参照することにより、2本の線を同時にトレースしていく。
なお、コンポーネント抽出部14は、式1に示す線形計画法(LP)を用いて、複数の線を再帰的にトレースしていく。
図12は、線形計画法(LP)を解いた後の最終的なフローのみを示している。
式1に示すLPのコスト関数cは、以下の式2で定義される。
【0087】
【0088】
ここで、Ccolは、トレースされる線の色における一貫性を示すコスト項である。
Cstyは、線のスタイル(線種)における一貫性を示すコスト項である。Cfgは、線が前景である確率を示すコスト項であり、Csmは、トレースされる線の隣接する画素同士を、過度に急峻な傾きなしに平滑に連結するための線の平滑性を示すコスト項である。式2のコスト関数cはさらに、遮蔽フラグ(z,z´)に基づいたバイアス重みλoccの項を有する。式2に示すコスト関数cは、線の前景および遮蔽に関する項を持つことにより、複数の線を同時にフィッティングしていくことを可能にする。
【0089】
各コストの項を算出するため、k-means法を用いて、ソース画像Iと4次元の線種空間Sに基づき、各線の特徴空間(4+3次元)における特徴ベクトルの重心を推定する。
式2における各コスト項は、それぞれ、以下の式3~式6のように算出される。
【0090】
【0091】
【0092】
【0093】
【0094】
ここで、h=y´-y、Δ=(h2+d2)α(αは定数)、Hは画像の高さである。
(x*,y*)は、2つの隣接するサンプル点の間の補間点(xi,y),(xi+r,y±1),…,(xi+1,y´)を通過する。
ここで、r=d/(y-y´)であり、±はyからy´へが、上昇か否かに依存する。各重み関数は、以下の式7~式9のように算出される。
【0095】
【0096】
【0097】
【0098】
LPによる再帰的な線トレースを完結するため、式1に示すLP関数は、以下の制約を用いて最小化されてよい。
・各サンプル点に入力する線と出力する線の数は等しい。
・各線の各非遮蔽(non-occluded)サンプル点に入力する線の数は最大1である。
・最適化の間のbの値は、[0,1]の範囲内である。
・左端のxインデックスで出力する線の数は、ライン数nlineである。
【0099】
このように、本実施形態では、コンポーネント抽出部14は、線形計画法により、線グラフの確率マップ、および線グラフの線種や色の一貫性、線の平滑性等の線グラフの属性を考慮した評価関数を用いて、グラフ画像中の凡例の情報に依ることなく、高精度かつより少ない計算負荷で、線グラフをトレースしていくことができる。
【0100】
さらに本実施形態では、サンプル点ごとに線の数だけ設けられ、前景または遮蔽のいずれかの状態を示す遮蔽フラグを使用して、線形計画法により、複数の線を同時にトレースしていくことができ、より高パフォーマンスな線グラフのトレースが可能となる。
あるいは、コンポーネント抽出部14は、上記の評価関数を用いた動的計画法や確率マップを用いることなく、検出された線グラフの始点と終点との間における、線グラフの線種や色の一貫性、線の平滑性等の線グラフの属性に基づいて、グラフ画像に含まれる線グラフをトレースしてもよい。
【0101】
図10に戻り、S415で、コンポーネント抽出部14は、トレースされた線グラフが、S411で検出された終点に到達したか否かを判定する。トレースされた線グラフが終点に到達しない間(S415:N)、S413に戻り、コンポーネント抽出部14は、S413およびS414の処理を繰り返す。一方、トレースされた線グラフが終点に到達した場合(S415:Y)、S416に進む。
S416で、コンポーネント抽出部14は、トレースされた線グラフのそれぞれを、線グラフのコンポーネントとして抽出して、S5に進む。
【0102】
図13は、グラフ画像解析装置1のコンポーネント抽出部14が線グラフの確率マップを使用して線グラフ画像からトレースした線グラフの一例を説明する図である。
図13を参照して、凡例Aの線グラフは実線で、凡例Bの線グラフは破線で、凡例Cの線グラフは一点鎖線で、それぞれトレースされている。それぞれの凡例A~Cは互いに交差する2つの線グラフを含み、太線グラフは各年の値をプロットしたもので急峻な波形を有し、細線グラフは複数年の移動平均を示すもので平滑な波形を有する。
【0103】
図13に示されるように、例えば、2つの線グラフが交差する場合、本実施形態では、交差点からいずれの方向に線をトレースしていくかを、線の平滑性のコスト関数C
smを用いて評価するので、たとえ色や線種が相互に同一であったとしても、太線グラフと交差する細線グラフを、太線グラフから峻別して、正確にトレースしていくことができる。
【0104】
図14は、グラフ画像解析装置1の値抽出部15が線グラフ画像からグラフの値を抽出(生成)する一例を説明する図である。
図14を参照して、グラフ画像をスキャンすることにより検出されたテキストボックスが矩形領域で示されている。値抽出部15は、グラフ画像全体を走査するので、
図14では、X座標軸およびY座標軸のラベルの他、線グラフの描画領域で線グラフに付与されたラベルが、テキストボックスとして検出されている。本実施形態において、値抽出部15は、検出したテキストボックスのテキストを認識して、数値が認識された場合、認識された数値からグラフのスケールを算出して、各ラベルに対応するグラフの値を生成する。
【0105】
以上説明したように、本実施形態によれば、グラフ画像解析装置は、グラフ画像をグラフ種別ごとに分類し、グラフ種別ごとに異なるグラフ画像の確率マップを算出し、算出された確率マップに基づいて、グラフ画像中の複数のコンポーネントを抽出して、抽出された複数のコンポーネントのグラフをトレースする。グラフ画像解析装置はさらに、抽出されたグラフ画像のコンポーネントの値を抽出し、トレースされたグラフに、抽出されたコンポーネントの値を付加して出力する。
【0106】
グラフ種別ごとに異なる確率マップを算出し、算出された確率マップを用いて、グラフ画像からグラフの各コンポーネントを汎用的かつ効果的に分離することができる。
したがって、より多様なグラフの画像をより高速かつ高精度に解析することが可能となり、ウェブ上などに多数散在するグラフ画像の可用性が向上する。
【0107】
(実施形態2)
以下、
図15を参照して、本発明の実施形態2を、上記実施形態1と異なる点についてのみ詳細に説明する。実施形態2は、線グラフについて実行する
図3のコンポーネント抽出処理において、動的計画法(Dynamic Programming:DP)を適用して、線グラフの線種ごとに線をトレースしていく。
図15は、本実施形態に係るグラフ画像解析装置1のコンポーネント抽出部14が線グラフについて実行する
図3のS4のコンポーネント抽出(グラフトレース)処理の詳細処理手順の一例を示すフローチャートである。
図15のS411およびS412の処理は、
図10に示す実施形態1のS411およびS412の処理と同様である。
【0108】
S413aで、コンポーネント抽出部14は、動的計画法(Dynamic Programming:DP)を適用して、隣接画素のコストを算出していく。
S414aで、コンポーネント抽出部14は、S413でコストが最小となる画素上に線をトレースする。コンポーネント抽出部14は、複数の線種の線グラフのそれぞれを、順次、個別にトレースしていく。
【0109】
本実施形態は、動的計画法(Dynamic Programming)を用いて、線グラフをトレースする。
動的計画法(DP)とは、対象となる問題を複数の部分問題に分割し、部分問題の計算結果を記録しながら解いていくアルゴリズムである。
本実施形態では、動的計画法を適用して、線グラフの存在範囲内の各画素のコストを算出していく。途中の計算結果を再利用することで、計算の繰り返しを回避し、計算効率を向上させることができる。
【0110】
コンポーネント抽出部14は、S411で算出された線グラフの存在範囲と、S412でカウント線グラフの数を使用して、検出された線グラフの始点から終点までX軸に沿って、動的計画法により線グラフをトレースしていく。
具体的には、コンポーネント抽出部14は、テーブルWを使用して、トレースされる線上の点(画素)のトータルコストを保持していく。テーブルWは、座標x=(x,y)の各値を保持する。
Wの値は、以下の式10により算出される。
【0111】
【0112】
ここで、xは、画素座標をX=(i,j)として表す。xprevは、xのx座標上直前の画素(直前にトレースした最終点)である。
Xprevは、直前の画素i-1までのx座標の画素群であり、以下の式11で表す。
【0113】
【0114】
xがどのトレースされる線に属するかを決定するため、コンポーネント抽出部14は、動的計画法により、式11のXprevから、式10においてコスト関数の値を最小化する最良のものを見出す。
【0115】
本実施形態では、複数の評価関数、例えば、式10に示されるように、5つの評価関数として、Ecolor、Epattern、Esmooth、Eprob、およびEduplを使用して、これらの評価関数で評価されるコストが最小になるよう、各点(画素)のコストを算出する。
評価関数Ecolorは、トレースされる線の色における一貫性を維持する色の関数である。 動的計画法で、xprevが属するトレースされた線の情報を保持しているので、この線の情報から、xprevの平均の線色を算出することができる。Ecolorは、平均の線色とxの画素色との色差により算出される。
【0116】
評価関数Epatternは、トレースされる線の線種(線パターン)における一貫性を維持する線種の関数である。評価関数Epatternは、評価関数Ecolorと同様、xprevの平均の線種とxの線種との間の差により算出される。
評価関数Esmoothは、トレースされる線の隣接する画素同士を、過度に急峻な傾きなしに平滑に連結するための線の平滑性の関数である。評価関数Esmoothは、xprevの傾きとxの傾きの絶対差により算出される。
【0117】
評価関数Eprobは、トレースされる線を、高い存在確率の値を持つ画素に沿って繋げるための存在確率の関数である。評価関数Eprobは、複数の線種の存在確率の平均値(mean value)により算出される。
評価関数Eduplは、同一の画素上に複数の線がトレースされた場合にペナルティを与える重複の関数である。xがすでに他の線でトレースされている場合、評価関数Eduplは1を返し、それ以外の場合は0を返す。
λ1~λ5は、各評価関数の重み付け係数である。
【0118】
コンポーネント抽出部14は、上記のように複数の評価関数を用いて、検出された線グラフの始点から終点までのX座標の各点において、次のトレースすべき点(画素)として、最小のコストの点(画素)を順に決定していく。
本実施形態では、例えば、線種の評価関数E
patternや、存在確率の評価関数E
prob等で、
図3のS3で生成された線グラフの確率マップ(
図6(b)~
図6(e)では4種類の線種の確率マップ)を参照してよい。例えば、4つの線種のいずれにも当てはまらない点(画素)は、トレースしないと判断することができる。
【0119】
図15のS415およびS416の処理は、
図10に示す実施形態1のS415およびS416の処理と同様である。
このように、本実施形態では、動的計画法により、線グラフの確率マップ、および線グラフの線種や色の一貫性、線の平滑性等の線グラフの属性を考慮した評価関数を用いて、グラフ画像中の凡例の情報に依ることなく、高精度かつより少ない計算負荷で、線グラフをトレースしていくことができる。
【0120】
<グラフ画像解析装置のハードウエア構成>
図16は、本実施形態に係るグラフ画像解析装置1のハードウエア構成の非限定的一例を示す図である。
本実施形態に係るグラフ画像解析装置1は、単一または複数の、あらゆるコンピュータ、モバイルデバイス、または他のいかなる処理プラットフォーム上にも実装することができる。
図16を参照して、グラフ画像解析装置1は、単一のコンピュータに実装される例が示されているが、本実施形態に係るグラフ画像解析装置1は、複数のコンピュータを含むコンピュータシステムに実装されてよい。複数のコンピュータは、有線または無線のネットワークにより相互通信可能に接続されてよい。
【0121】
図16に示すように、グラフ画像解析装置1は、CPU161と、ROM162と、RAM163と、HDD164と、入力部165と、表示部166と、通信I/F167と、システムバス168とを備えてよい。グラフ画像解析装置1はまた、外部メモリを備えてよい。
CPU(Central Processing Unit)161は、グラフ画像解析装置1における動作を統括的に制御するものであり、データ伝送路であるシステムバス168を介して、各構成部(162~16)を制御する。
グラフ画像解析装置1はまた、GPU(Graphics Processing Unit)を備えてよい。GPUは、CPU121より高い計算機能を有し、複数または多数のGPUを並列して動作させることにより、特に、本実施形態のような機械学習を使用する画像処理アプリケーションに、より高い処理パフォーマンスを提供する。GPUは、通常、プロセッサと共有メモリを含む。それぞれのプロセッサが高速の共有メモリからデータを取得し、共通プログラムを実行することで、同種の計算処理を大量かつ高速に実行する。
【0122】
ROM(Read Only Memory)162は、CPU161が処理を実行するために必要な制御プログラム等を記憶する不揮発性メモリである。なお、当該プログラムは、HDD(Hard Disk Drive)164、SSD(Solid State Drive)等の不揮発性メモリや着脱可能な記憶媒体(不図示)等の外部メモリに記憶されていてもよい。
RAM(Random Access Memory)163は、揮発性メモリであり、CPU161の主メモリ、ワークエリア等として機能する。すなわち、CPU161は、処理の実行に際してROM162から必要なプログラム等をRAM163にロードし、当該プログラム等を実行することで各種の機能動作を実現する。
【0123】
HDD164は、例えば、CPU161がプログラムを用いた処理を行う際に必要な各種データや各種情報等を記憶している。また、HDD164には、例えば、CPU161がプログラム等を用いた処理を行うことにより得られた各種データや各種情報等が記憶される。
入力部165は、キーボードやマウス等のポインティングデバイスにより構成される。
表示部166は、液晶ディスプレイ(LCD)等のモニターにより構成される。表示部166は、グラフ画像解析処理で使用される各種パラメータや、他の装置との通信で使用される通信パラメータ等をグラフ画像解析装置1へ指示入力するためのGUI(Graphical User Interface)を提供してよい。
【0124】
通信I/F167は、グラフ画像解析装置1と外部装置との通信を制御するインタフェースである。
通信I/F167は、ネットワークとのインタフェースを提供し、ネットワークを介して、外部装置との通信を実行する。通信I/F167を介して、外部装置との間で画像データ、各種パラメータ等が送受信される。本実施形態では、通信I/F167は、イーサネット(登録商標)等の通信規格に準拠する有線LAN(Local Area Network)や専用線を介した通信を実行してよい。ただし、本実施形態で利用可能なネットワークはこれに限定されず、無線ネットワークで構成されてもよい。この無線ネットワークは、Bluetooth(登録商標)、ZigBee(登録商標)、UWB(Ultra Wide Band)等の無線PAN(Personal Area Network)を含む。また、Wi-Fi(Wireless Fidelity)(登録商標)等の無線LAN(Local Area Network)や、WiMAX(登録商標)等の無線MAN(Metropolitan Area Network)を含む。さらに、LTE/3G、4G、5G等の無線WAN(Wide Area Network)を含む。なお、ネットワークは、各機器を相互に通信可能に接続し、通信が可能であればよく、通信の規格、規模、構成は上記に限定されない。
【0125】
図1に示すグラフ画像解析装置1の各要素のうち少なくとも一部の機能は、CPU161がプログラムを実行することで実現することができる。ただし、
図1に示すグラフ画像解析装置1の各要素のうち少なくとも一部の機能が専用のハードウエアとして動作するようにしてもよい。この場合、専用のハードウエアは、CPU161の制御に基づいて動作する。
【0126】
なお、上記において特定の実施形態が説明されているが、当該実施形態は単なる例示であり、本発明の範囲を限定する意図はない。本明細書に記載された装置及び方法は上記した以外の形態において具現化することができる。また、本発明の範囲から離れることなく、上記した実施形態に対して適宜、省略、置換及び変更をなすこともできる。かかる省略、置換及び変更をなした形態は、請求の範囲に記載されたもの及びこれらの均等物の範疇に含まれ、本発明の技術的範囲に属する。
【符号の説明】
【0127】
1…グラフ画像解析装置、3…入力データセット、4…出力データセット、11…データ取得部、12…グラフ分類部、13…確率マップ生成部、14…コンポーネント抽出部、15…値抽出部、16…出力部、21…入力データ、22…分類用ネットワーク、23…分類結果、24…確率マップ生成用ネットワーク、25…確率マップ、26…グラフトレース結果、27…値検出結果、28…出力データ、161…CPU、162…ROM、163…RAM、164…HDD、165…入力部、166…表示部、167…通信I/F、168…バス
【要約】
【課題】より多様なグラフの画像を高速かつ高精度に解析する。
【解決手段】
情報処理装置は、グラフ画像を取得するグラフ画像取得部と、グラフ画像取得部により取得されたグラフ画像をグラフ種別ごとに分類するグラフ分類部と、グラフ画像から、グラフ種別ごとに異なる種類の確率マップを生成する確率マップ生成部と、確率マップ生成部により生成された確率マップに基づいて、グラフ画像中の複数のコンポーネントを抽出し、抽出された複数のコンポーネントによりグラフをトレースするコンポーネント抽出部と、コンポーネント抽出部により抽出されたグラフ画像のコンポーネントの値を抽出する値抽出部と、値抽出部により抽出されたコンポーネントの値を出力する出力部と、を備える。