JP5354747B2 - アプリケーション状態認識方法、装置及びプログラム - Google Patents

アプリケーション状態認識方法、装置及びプログラム Download PDF

Info

Publication number
JP5354747B2
JP5354747B2 JP2010047011A JP2010047011A JP5354747B2 JP 5354747 B2 JP5354747 B2 JP 5354747B2 JP 2010047011 A JP2010047011 A JP 2010047011A JP 2010047011 A JP2010047011 A JP 2010047011A JP 5354747 B2 JP5354747 B2 JP 5354747B2
Authority
JP
Japan
Prior art keywords
application
component
state
information
recognition
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
JP2010047011A
Other languages
English (en)
Other versions
JP2011181007A (ja
Inventor
健一 西川
健 増田
祐人 川端
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2010047011A priority Critical patent/JP5354747B2/ja
Publication of JP2011181007A publication Critical patent/JP2011181007A/ja
Application granted granted Critical
Publication of JP5354747B2 publication Critical patent/JP5354747B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • User Interface Of Digital Computer (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、コンピュータ上で動作するアプリケーション(AP)を通じて操作を行うユーザに対して、ユーザが操作を円滑に行うことを支援する技術に関するものである。
ユーザによる操作を支援するには、現在のユーザやアプリケーションの状態を知る必要がある。現状態を知らないと、状態に依らずに適用可能な汎用的な支援に留まり、個別の状況に適合した具体的で個別的な支援を行うことができないためである。
アプリケーションの状態には、例えば、何という名前のアプリケーションを動かしているかといった情報,ウィンドウのタイトルが何であるかといった情報,ユーザがマウスをどの位置でクリックしたかといった情報,ラジオボタンの選択項目とリストの選択項目とテキストボックスの入力内容をあわせた情報など様々なものが挙げられる。つまり、OS(Operating System)で検知できる低レベルの情報(例えばMicrosoft(登録商標)社製OSであるWindows(登録商標)でのWindowsメッセージなど)から、画面上で確認できる情報(例えば、ユーザの描いた絵)やユーザの行動に関する情報(例えば、画面Aを見ている)まで、様々な情報が状態を表す情報となる。ここでは、これらを区別するために、アプリケーション名や住所入力中などの情報は粒度の粗い状態情報とし、粒度の粗い状態を構成する情報(例えば、番地入力中や入力済の県名の値、OSで扱う低レベルの情報など)を細かな粒度の状態情報として両者を区別する。
ユーザやアプリケーションの状態を知る従来手法として、アプリケーションプログラムやOSが提供する情報を利用する方法がある。例えば、Microsoft(登録商標)社製OSであるWindows(登録商標)では、「AutoIt」や「Spy++」というツールが知られている(非特許文献1及び2参照)。これらのツールでは、OS上でのウィンドウの基本的な情報(例えばタイトル、クラス、サイズなど)の取得、ウィンドウやプロセス等とOSとの間でやりとりされるメッセージの取得などを行うことができる。そこで、これらの情報を複合的に組み合わせることで、アプリケーションの状態を一定レベルにおいて取得することが可能である。
しかしこの従来方法では、ユーザの操作する環境によっては、ユーザ支援に必要な情報を充分に取得することができないという問題がある。例えば、セキュリティ強化の目的で導入されることが多くなっているシンクライアント環境では、多くの場合非常に限られた情報しか取得することができない。シンクライアントの実装方式として比較的ポピュラーな画面情報を転送する方式では、従来手法を使うとアプリケーションの充分な情報を取得することができない。
そこで、スクリーンやウィンドウ全体を画像として一括に認識しようとする手法が提案されている(非特許文献3参照)。本手法は、より具体的には、スクリーンキャプチャ機能を用いて、現在の画面に表示されているウィンドウや画面全体を画像データとして取得し、過去の画像データと状態に関する情報を参照・比較することで、現在の状態を認識する。本手法によれば、画面に表示されている画像を元に認識するため、例えばシンクライアント環境のようにアプリケーションやOSから非常に限られた情報しか得られない環境下においても適用することができる。
また、非特許文献3に記載の手法では、アプリケーション名や住所入力中などの粗い粒度の状態で認識するのではなく、より細かな粒度の状態(例えば、あるボタンを選択している状態や番地入力中の状態など)を認識したい場合、注目したくない領域(例えば、文字列が入力されているテキストエリアなど) を固定パターンに置換(例えば、背景色での塗り潰し)することにより、注目したい領域をあぶり出し、認識したい状態を任意に選ぶことが可能となる。また、同じ領域に対する置換であっても、固定パターンを幾つか用意して、これらを区別して認識したい状態毎にそれぞれ割り当てることで、より細かな状態の違いを区別した認識も可能となる。
図16は本手法における置換処理の一例を説明する図である。同図においては、テキストボックスなどの内容が変わり得る領域(可変領域)を白色の固定パターンに置換する例を示している。同図の例は、名前・性別・住所・地図の実際の記入項目の中身には関心がないが、記入すべき項目やその配置などには関心があるという場合にその状態を取得するための前処理の例である。この場合、関心がない領域(注目したくない領域)を固定パターンに置換し、注目したい領域(名前や性別などの項目名自体やテキストボックスなどの配置)をより明確にしようとしている。固定パターンとして白色の他に「記入中」という所定の文字列の画像を用いて置換し、「記入中」という状態を識別するなどといった例も考えられる。
"AutoIt Script Home Page"、[online]、[平成22年2月22日検索]、URL<http://www.autoitscript.com/> "Home Page: Spy++"、[online]、[平成22年2月22日検索]、URL< http://msdn.microsoft.com/en-us/library/aa264396(VS.60).aspx> 西川、他2名、「画面上の画像認識によるオペレータ支援」、2009年ソサイエティ大会通信講演論文集、電子情報通信学会、2009年9月1日、B-14-8、p.339
しかし上記非特許文献3に記載の手法では、認識したい状態やその粒度を変える毎に(例えば、「住所入力中」という状態で認識していたところを、「郵便番号入力中」と「番地入力中」などの、より細かな粒度の状態で認識するように変更するケースなど)、新たな固定パターンへの置換を実施して画像を準備し直す必要が生じるため、利用時の手間が大きいという問題があった。
また上記非特許文献3に記載の手法では、細かな状態の違いを認識したいケースにおいて、精度に問題の生じるケースがありうる。例えば、区別したい二つの状態に対応した二つの画像間で異なる領域が、画像全体の領域に比して相対的に小さな領域にしか表れないケースがある。そのようなケースでは、画像をより少ない情報量で表すこととなる画像の特徴量のレベルにおいても、特徴量の差異が相対的に小さなものとなる可能性が高く、結果として状態の区別を正確に行えない可能性がある。
さらに、上記非特許文献3に記載の手法では、画像情報以外の情報も活用しようという場合、拡張性に欠けるという課題があった。すなわち、本手法では、画像から特徴量を取得し、事前に学習した情報を保管するなどして作成した識別辞書(特徴量とそれに対応する状態といったデータなどを複数持つテーブル)上の特徴量との比較により状態を推定していた。ここで、状態識別処理において、画像以外の情報によって取得できる状態に関する情報を画像情報とあわせて補完的に活用することで、認識精度をより向上させることができると考えられる。画像以外の情報としては、例えば、Windowsメッセージの情報やMSAA(Microsoft Active Accessibility (MSAA)、http://msdn.microsoft.com/en-us/library/ms697707(VS.85).aspx参照)を使って得られる情報などが挙げられる。しかし、本手法では、画像の特徴量に基づく状態情報の導出プロセスに、特徴量以外の情報をうまく統合的に扱えるようにすることは容易でない。つまり本手法は、拡張性に欠け、汎用的な状態認識の基盤技術としては用いることが困難である、という課題があった。
本発明は、上記事情に鑑みてなされたものであり、その目的とするところは、従来手法ではアプリケーションやOSから充分な情報を取得することができないような環境下であっても、アプリケーションの動作状態を認識することが可能であり、且つ、拡張性の高いシステムを提供することにある。
上記目的を達成するために、本発明は、コンピュータ上で動作するアプリケーションの動作状態を認識するアプリケーション状態認識装置において、前記アプリケーションが表示装置に出力している情報を取得し、取得した表示情報に含まれるユーザインタフェイスとしての部品及び文字を認識するとともに各部品及び文字間のレイアウトを認識する部品識別手段と、認識された部品情報及び文字情報並びにレイアウト情報に基づき各部品又は文字をノードとしたツリー構造を算出し、算出したツリー構造に基づきアプリケーションの動作状態を識別する動作状態識別手段とを備えたことを特徴とする。
本発明によれば、アプリケーションの動作により表示装置に画面表示された情報に基づき該アプリケーションの動作状態を識別するので、従来手法のようにカメラ等の特別なデバイスを別途用意することや複雑な初期設定を行う必要性や、実行環境に対する制限(OSとアプリケーションのやりとりが捕捉できる環境でしか動作できないなど)などはない。したがって汎用的な技術として種々の環境下でアプリケーションの動作状態を取得することができる。また、本発明では、表示情報から認識したユーザインタフェイスとしての部品又は文字をノードとしてツリー構造を算出し、該ツリー構造に基づきアプリケーションの動作状態を識別している。したがって、該ツリー構造に、表示情報以外の種々の情報、例えばOSから取得した情報をノードとして追加するなどの処理を行うことにより、識別精度の向上を図ることができる。換言すると本発明によれば、表示画面に基づく状態識別を基盤として、種々の他の情報も統合的に取り扱うことができる拡張性の高いものとなる。また、本発明ではツリー構造に基づき動作状態を識別しているので、識別したい粒度が変更された場合であっても、従来手法よりも少ない手数で且つ複数の視点から状態認識を行うことができる。
本発明の好適な態様としては、アプリケーションの動作状態に対応するツリー構造をツリー識別用データベースとして予め記憶手段に記憶しておき、前記動作状態認識手段では、算出したツリー構造とツリー識別用データベースに記憶されているツリー構造との間でグラフマッチング処理を行うことにより動作状態を識別するものが挙げられる。ここで、グラフマッチング処理は従来周知の種々のアルゴリズムを利用できる。
また、本発明の好適な態様としては、表示情報として、アプリケーションが表示装置に出力している画像データを取得するものが挙げられる。表示装置に出力している画像データに基づき部品や文字並びにレイアウトを認識するので、クライアント環境の依存度がより低くなり、したがってより汎用的な種々の環境下でアプリケーションの動作状態を取得することができる。
また、本発明の好適な態様としては、部品認識手段では、取得した画像データを一以上の領域に分割し、分割された各画像データ取得に基づき部品及び文字並びにレイアウトの認識処理を行うものが挙げられる。このように分割処理を先に行うことにより、分割された各画像データにおける各部品の特徴量が相対的に大きくなるため、部品の認識精度が向上するので、細かな状態の違いをより高精度で認識することができる。
以上説明したように本発明によれば、アプリケーションの動作により表示装置に画面表示された情報に基づき該アプリケーションの動作状態を識別するので、従来手法のようにカメラ等の特別なデバイスを別途用意することや複雑な初期設定を行う必要性や実行環境に対する制限はない。したがって汎用的な技術として種々の環境下でアプリケーションの動作状態を取得することができる。また、本発明では、表示情報から認識したユーザインタフェイスとしての部品又は文字をノードとしてツリー構造を算出し、該ツリー構造に基づきアプリケーションの動作状態を識別している。したがって、該ツリー構造に、表示情報以外の種々の情報、例えばOSから取得した情報をノードとして追加するなどの処理を行うことにより、識別精度の向上を図ることができる。換言すると本発明によれば、表示画面に基づく状態識別を基盤として、種々の他の情報も統合的に取り扱うことができる拡張性の高いものとなる。また、本発明ではツリー構造に基づき動作状態を識別しているので、識別したい粒度が変更された場合であっても、従来手法よりも少ない手数で且つ複数の視点から状態認識を行うことができる。
アプリケーション状態認識システムの構成図 ユーザ操作支援アプリケーションの動作を説明するフローチャート UI部品認識部の構成図 状態統合認識部の構成図 UI部品認識部の動作を説明するフローチャート 状態統合認識部の動作を説明するフローチャート メール作成画面の画像データの一例 分割処理の一例 UI部品及び文字の認識結果の一例 メール作成画面のグラフ構造のモデル化の一例 「英文メール作成」状態のグラフ構造の一例 「メール作成」状態のグラフ構造の一例 宛先の行が繰り返し現れる例 入れ子構造の例 UI部品が認識できなかった場合のグラフ構造の一例 従来手法における画像データに対する置換処理の一例
本発明の一実施の形態について図面を参照して説明する。図1は、本発明のアプリケーション状態認識システムの構成図である。本実施の形態に係るアプリケーション状態認識システムでは、ユーザ操作支援アプリケーションに対して他のアプリケーションの動作状態を認識・提供するサービスを行う。すなわち、図1に示すように、コンピュータ10にはOS11上で複数の既存アプリケーションAP1,AP2,…が動作している。各既存アプリケーションAP1,AP2は、ユーザ1に対するユーザインタフェイスとして、キーボードやマウス等の入力デバイス15及び表示装置であるディスプレイ16を利用する。
ユーザ操作支援アプリケーション20は、既存アプリケーションAP1,AP2,…を操作するユーザ1に対して、その操作を支援するアプリケーションである。該ユーザ操作支援アプリケーション20には様々な形態が考えられ、例えば、現在の画面上の既存アプリケーションAP1,AP2,…の状態をもとに次操作を提案するものや、ユーザ1がエラー状態と判断される状態に陥った時に回復手順を示し回復支援をするもの、自動操作システムに状況を判断しつつ自律的な動作を行う機能を追加するものなど挙げられる。本発明に係るアプリケーション状態認識システム100は、該ユーザ操作支援アプリケーション20に対して既存アプリケーションAP1,AP2,…の動作状態を認識し、該認識結果を提供するものである。
まず、図2を参照して本発明に係るアプリケーション状態認識システムを用いたユーザ操作支援アプリケーションの動作について説明する。ここでは、ユーザ操作支援アプリケーション20として、既存アプリケーションAP1,AP2,…を操作するユーザ1に対してその操作を支援するものを例にとって説明する。
図2に示すように、ユーザ操作支援アプリケーション20は、動作状態の認識対象である既存アプリケーションAP1,AP2,…の画像領域(ウィンドウなど)を指定して、アプリケーション状態認識システム100に対して動作状態の認識を依頼する(ステップS11)。アプリケーション状態認識システム100は、既存アプリケーションAP1,AP2,…の動作状態を識別・応答する(ステップS12)。なお、本ステップS12におけるアプリケーション状態認識システム100の処理やその構成については後述する。次に、ユーザ操作支援アプリケーション20は、取得した動作状態に基づき次操作の支援などのユーザ支援処理を行う(ステップS13)。なお、該ユーザ支援処理については従来周知のものと同様なので詳述は省略する。
次に、アプリケーション状態認識システム100について詳述する。アプリケーション状態認識システム100は、図1に示すように、状態識別対象である既存アプリケーションAP1,AP2,…が表示装置に出力している表示情報を画像データとして取得し、該画像に含まれるユーザインタフェイス(UI)としての部品を識別するUI部品認識部110と、UI部品認識部110で識別された各部品をグラフ構造にモデル化してアプリケーションの状態を識別する状態統合認識部120とを備えている。本発明ではグラフ構造としてツリー構造を用いる。
UI部品認識部110は、現在の画面や対象となるアプリケーションのウィンドウを構成するUI部品を一つずつ認識していく。UI部品としては、例えば、WebブラウザのURL入力・表示エリアとなるテキストボックス・ボタン・ラベルといった部品がある。URL入力・表示エリアとなるテキストボックスであれば行数は1行であり、現在表示されている文字列の中身などといった属性を持つ。
図3にUI部品認識部110の構成を示す。UI部品認識部110は、図3に示すように、画像取得部111,分割処理部112,部品識別部113,文字識別部114,レイアウト識別部115とを備えている。なお、本発明に係るアプリケーション状態認識システム100は、コンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。さらに、本発明に係るアプリケーション状態認識システム100やユーザ操作支援アプリケーション20の動作環境や実装形態は不問である。すなわち、既存アプリケーションAP1,AP2,…が動作するコンピュータと同一コンピュータ上で動作してもよいし、例えばシンクライアント環境のように他のコンピュータ上で動作してもよい。さらに、アプリケーション状態認識システム100の各部も単一のコンピュータではなく複数のコンピュータに分散させて実装してもよい。
画像取得部111は、OS11やそれに付随するシステムライブラリ等の提供する機能を用いてディスプレイ16上に表示されている、ウィンドウやスクリーン全体などを画像データとして取得する。なお、取得対象は、ユーザ操作支援アプリケーション20により指定されたものである。
分割処理部112は、画像取得部111で取得された画像データをUI部品又は文字列が含まれる1以上の領域に分割する。分割処理部112による分割処理の具体的手法としては種々のものが考えられる。最もシンプルだが手数の多いやり方としては予め手作業で分割用位置データを用意しておくことである。すなわち、識別対象の状態に対応する画像を予め手作業で部品に分割し、各分割領域の位置データを取得し、所定の記憶手段(図示省略)に記憶しておき、該分割用位置データに基づき元画像データを分割するものである。また、他の方法としては、対象アプリケーションごとにある一定の幅を定め、その幅以上の背景色や白色が連続して存在する場合はそこに部品を区切る境界があるものと見なして元画像データを分割したり、棒線の箇所を境界として元画像データを分割するなどといった方法も考えられる。
部品識別部113は、従来周知の一般的な画像認識システムと同等の構成を有しており、図3に示すように、前処理部116,特徴抽出部117,部品クラス識別部118,識別辞書119とを備えている。部品識別部113は、これらの構成により、分割処理部112で分割された各分割画像データに対して画像認識を行って各分割画像データに含まれるUI部品を識別する。
前処理部116は、分割画像データに対して認識処理をしやすくするための処理を行う。具体的には、認識の際に余計なノイズなどをできるだけ除去するために行う二値化や画像サイズなどを一定の値に揃える正規化などの処理を行う。
特徴抽出部117は、分割画像データから部品を認識するために、該各分割画像データをより少数の情報で表す特徴量を特徴ベクトルとして抽出する。特徴量を算出する方法については、様々な形で検討されている既存手法が豊富に存在するため、それらを利用する。具体的には、SIFT特徴量やHoG特徴量、Haar−like特徴量などの様々な特徴量が利用可能である。
部品クラス識別部118は、事前に学習した情報を保管するなどして作成した識別辞書119の情報(学習データ)を参照し、入力された分割画像データの特徴ベクトルを元に入力画像の識別・分類を行う。識別・分類は、入力画像が、認識したい状態を示すクラスのいずれに属するかを決定する処理である。クラスは、区別して認識したいUI部品の数だけ予め用意しておく。通常、識別辞書119中の全てのデータをその特徴ベクトルを元に、幾つかの有限のクラスに分割する。その上で、クラスを代表する特徴ベクトル(別途算出する)や辞書中の全データの特徴ベクトルと、入力画像の特徴ベクトルを比較することで、入力画像の属するクラスを識別する。比較する際はユークリッド距離が最小となるベクトルを選ぶやり方やニューラルネットワークを利用するやり方、サポートベクタマシンを利用するやり方、テンプレートマッチ法を利用する方法など、様々な既存の手法があり、それらを利用する。
文字識別部114は、与えられた分割画像データに表示されている文字を抽出する。また、文字識別部114は、同一の分割画像データについて部品識別部113で判別したクラス情報に文字情報を追加する。なお文字が抽出できなければ、何の情報も追加しない。一方、同一の分割画像データについて部品識別部113においてクラスの判別ができない場合には文字情報の抽出ができれば、当該分割画像データの識別結果として文字情報のみを出力する。なお、部品識別部113及び文字識別部114の双方においてクラス判別・文字認識ができない場合は当該分割画像データの識別結果として「空」を出力するか、若しくは何も出力しない。文字識別部114における文字認識処理には既存のOCR(Optical Character Recognition )ライブラリやOCRソフトウェアを使うことができる。例えば、パナソニック社の「カラーOCRライブラリー」(http://panasonic.biz/it/sol/ocr/sdk/を参照)、同社の「日本語・英語活字カラーOCRソフト『読取革命Ver.14』」(http://panasonic.co.jp/sn/psn/pstc/products/yomikaku/index.htmlを参照)などである。
部品識別部113及び文字識別部114によるUI部品及び文字の認識は、分割処理部112で分割された全ての分割画像データを対象として行う。
レイアウト識別部115は、前記分割処理部112における分割処理の結果と部品識別部113及び文字識別部114の認識結果に基づき、各UI部品の隣接関係の情報(行方向又は列方向或いは行と列の両方向の隣接関係)を識別する。このレイアウト識別処理では、前述の分割処理の過程において部品間の隣接関係の情報を得ることができるため、その隣接関係の情報を利用する。
次に状態統合認識部120について図4を参照して説明する。状態統合認識部120は、図4に示すように、グラフ構造算出部121と、状態判定部122と、画面知識データベース123とを備えている。
グラフ構造算出部121は、UI部品認識部110で識別されたUI部品及び文字情報並びにレイアウト情報に基づきこれらで表される状態をグラフ構造にモデル化する。ここでグラフ構造においては各UI部品又は文字がノードに相当する。なお前述したように、本発明ではグラフ構造としてツリー構造を用いる。
状態判定部122は、算出されたグラフ構造と画面知識データベース123に予め記憶されたグラフ構造とに基づきアプリケーションの状態を判定する。該判定処理では周知のグラフマッチング問題の解法を用いる。該グラフマッチング問題はグラフマッチング問題は情報科学において歴史のある問題であり、例えば、(D.Conte et al. "Thirty Years of Graph Matching in Pattern Recognition"、International Journal of Pattern Recognition and Artificial Intelligence Vol.18、No.3、2004、265-298)などの文献で開示されている。画面知識データベース123には、UI部品・文字情報の組合せ及びレイアウト情報を表すグラフ構造と該グラフ構造に対応する状態情報が記憶されている。該グラフ構造は、識別した状態の数だけ記憶しておき、またそのデータは識別した粒度に対応させて記憶しておく。状態判定部122は、認識したグラフ構造とマッチするグラフ構造を画面知識データベース123から取得し、該グラフ構造に対応する状態情報を結果として出力する。
次に、アプリケーション状態認識システム100の動作について詳述する。アプリケーション状態認識システム100の動作は、図2を参照して前述したステップS12に対応するものであり、UI部品認識部110及び状態統合認識部120の動作からなる。
まず、UI部品認識部110の動作について図5のフローチャートを参照して説明する。図5に示すように、まずUI部品認識部110の画像取得部111が、サービス提供先のアプリケーション(本実施の形態ではユーザ操作支援アプリケーション20)等からの要求に応じて、ディスプレイ16上に表示されている画像データを取得する(ステップS21)。なお、前記要求には必要に応じて、認識対象となる既存アプリケーションAP1,AP2,…や更にそのウィンドウ等を指定するようにしてもよい。次に、分割処理部112が画像データを1以上の領域に分割する(ステップS22)。次に、部品識別部113が分割画像データからUI部品を識別する。具体的には、まず前処理部116が前処理として、分割画像データに対して後段の識別処理における画像認識が行いやすくするよう画像処理を行う(ステップS23)。次に、特徴抽出部117が、前処理された分割画像データから特徴量として特徴ベクトルを抽出する(ステップS24)。そして、部品クラス識別部118が、抽出された特徴量と識別辞書119中のデータを比較して、UI部品の属するクラスを判別する(ステップS25)。次に、文字識別部114が、分割画像データから文字を認識・抽出する(ステップS26)。ステップS23〜S26の処理は分割処理部112で分割された全ての分割画像データに対して行う。最後にレイアウト識別部115は、分割処理部112による分割処理結果及び部品識別部113の識別結果及び文字識別部114の識別結果に基づきUI部品及び文字のレイアウト情報を算出する(ステップS27)。UI部品認識部110は、以上の処理により識別された各UI部品及び文字並びにUI部品のレイアウト情報を状態統合認識部120に出力する。
次に状態統合認識部120の動作について図6のフローチャートを参照して説明する。図6に示すように、状態統合認識部120のグラフ構造算出部121は、UI部品認識部110の出力に基づきUI部品又は文字をノードとしたグラフ構造を算出する(ステップS31)。次に、状態判定部122は、グラフ構造算出部121で算出されたグラフ構造とマッチするグラフ構造を画面知識データベース123から取得し、該グラフ構造に対応する状態情報を結果として出力する(ステップS32)。
このように本発明に係るアプリケーション状態認識システムによれば、既存アプリケーションAP1,AP2,…が表示する表示画面の画像データに基づき当該アプリケーションの動作状態を認識するので、特別な機器や設定を必要とすることなく種々の動作環境下での認識処理が可能となる。
また本発明では、画像データに含まれるUI部品又は文字をノードとしてグラフ構造を算出し、該グラフ構造に基づきアプリケーションの動作状態を識別している。したがって、該グラフ構造に、画像データ以外の種々の情報、例えばOSから取得した情報をノードとして追加するなどの処理を行うことにより、識別精度の向上を図ることができる。換言すると本発明によれば、画像認識による状態識別を基盤として、種々の他の情報も統合的に取り扱うことができる拡張性の高いものとなる。
例えば、認識対象のアプリケーションのウィンドウサイズがユーザの操作により縮小された結果アプリケーションの一部しか表示されていない場合や、認識対象のアプリケーションのウィンドウの一部がデスクトップ領域外に配置されてアプリケーションの一部しか表示されていない場合、十分な画像データが得られないので認識精度が低下すると考えられる。ここで、OSやその他のライブラリ等が提供するサービスにより未表示領域のUI部品等に関する何らかの情報が得られたとする。このような場合、取得した情報をグラフ構造の一部として補完することにより認識精度を向上させることができる。
また本発明ではUI部品の識別に先立って画像データをUI部品又は文字列が含まれる1以上の領域に分割しているので、該分割画像データにおける各UI部品の特徴量が相対的に大きくなる。これにより、UI部品の認識精度が向上するので、細かな状態の違いをより高精度で認識することができる。
さらに、従来は複数の状態を認識し分けることが原理的に可能であっても細かな粒度で状態を区別して認識し分けようとすればするほど実現のために大きな手間が必要となる手法であったところ、本発明では、認識対象をUI部品及び文字に分割し、グラフ構造を活用して認識結果及びモデルとなる状態を表現することで、より汎用的に且つ状態を複数の視点から、しかも少ない手数で認識することができる。
以上、本発明の一実施の形態について詳述したが本発明はこれに限定されるものではない。例えば、上記実施の形態では、状態識別対象である既存アプリケーションAP1,AP2,…が表示装置に出力している部品・文字・レイアウトを識別する方法として、表示装置に出力している表示情報を画像データとして取得し、画像認識技術を用いて該画像データから部品等を識別していたが、他の方法により部品・文字・レイアウトを識別してもよい。例えば、WindowsメッセージやMSAAなどを利用して同等のUI部品認識部を構成することも可能である。より具体的な例としては、MSAAに対応しているアプリケーションが認識対象であれば、ウィンドウのタイトルやウィンドウに含まれるUI部品上のラベルや値、さらには各部品の隣接関係などを取得することができるので、これを用いて部品・文字・レイアウトを識別すればよい。
図7〜図10に、一般的な電子メールソフト(MUA:Mail User Agent)のメール作成画面の認識結果をモデル化した例を示す。図7は認識対象となるメール作成画面の画像データの一例、図8は図7の画像データを分割した結果の一例、図9は図8の各分割画像データからUI部品及び文字を認識した結果の例、図10は最終的に図7の画像データをグラフ構造にモデル化した一例である。上述したように本願発明では、対象領域をUI部品に分割し、分割されたUI部品を個々に認識し、それらの認識結果を行方向や列方向のレイアウト情報を付加した状態でグラフ構造にモデル化する。
本願発明ではまず、図7及び図8に示すようにUI部品への分割と、文字情報と典型的なUI部品の抽出を行う。具体的には、最初に図8に示すように対象領域の画像をUI部品に分割する。この時、同一行(若しくは同一列)となる要素ごとに並べ、順番も維持して並べておく。次に、図9に示すように、文字情報とUI部品の抽出を行うが、ここでは抽出した結果が文字であれば、単にテキストの文字情報に変換するだけとし、UI部品(コンポーネント)であれば予め決めておく固定的なパターンの文字列に変換する。例えば、テキストボックスを示す部品であれば、「テキストボックス」という文字列に変換する。認識できない部分は無視するか、決まった文字列に変換する。認識結果の精度を上げ、情報量を増やしたい場合は、アプリケーション毎に固有のアイコンやレイアウトに関する情報を利用することも可能である。
行方向や列方向や行と列の両方向(アプリケーション毎に適した方向を選択する)に文字やUI部品の抽出を行った後に、同一行・列の文字や部品(コンポーネント)間に緩やかな関連があることを仮定し、同一行・列で抽出結果を関連付け、グラフを構成する(例えば、同一行で隣接するノード間にエッジをつける作業を各行に対して行い、各行の最左のノード間をエッジでつなぎ、グラフを構成する)。図10は、図7のアプリケーションが行方向で関連があると考えられるため、行方向での隣接関係を関連付けて構成したグラフである。
この図10のような認識結果のグラフと画面知識データベース中のグラフに対して、グラフマッチング問題を解き、解のグラフに対応する状態を状態認識結果として返す。結果の返し方は、得られた複数の解を、グラフ間の類似度を表すデータ(例えば、編集距離:あるグラフに対して編集操作を行い、他のグラフの形にするまでに要する編集操作の数)とともにユーザ操作支援アプリケーションに返し、認識した状態の扱い方は各アプリケーションに任せるやり方や、予め状態認識システム側で類似度の最も大きい解だけを返すやり方などが考えられる。
図11は、画面知識データベース上のモデルとなる状態を示すグラフ構造の一例である。これらのグラフに「英文メール作成」といった状態を予め対応付けておく。認識結果のグラフがモデルとなるグラフのサブグラフとなっていれば、解候補となる。ノードのラベルの文字列に正規表現(例えばperl 5.8 で利用できる正規表現)を使い、ノード間の比較時に正規表現のマッチングを行うものとする。「テキストボックス」などのUI部品(コンポーネント)についても、単に文字列の比較を行うことでノード間の比較を行うものとする。
図12は図11と同様に「メール作成」状態を示すグラフである。「テキストボックス」とつながったノードに図11では英数字や空白文字など英文を構成する文字しか入らなかったが、図12では任意の文字が入り得る形となっている。このような形でモデルとなる状態を、一般にアプリケーション毎にグラフで区別して構成しておくことで、単一の認識結果に対して複数の状態、つまり多面的な状態を認識することが可能となる。図12の最下部のノードは、行とノードの繰返しの表現を用いた例となっている(「*」の記号については下記参照)。
図13は複数の宛先にメールを送る画面に対応した例で、行の繰り返しの表現例である。行の最左のノードのエッジ(辺)に0から始まる正の整数値及び任意の回数を示す「*」を記すことで、行の繰り返し回数を指定する。特に何も記載していない場合は 1 と記してあるとみなす。perlなどの正規表現を利用して回数の指定など、より柔軟な指定を可能としてもよい。同様に、ノード自体の繰り返し回数を、行の繰返し回数と同様に正規表現などを用いて、各ノードの右肩に記すことで表現する。
図14は要素が入れ子構造になっている例である。「テキストボックス」の部品の中に、2行以上の文字列が入っていた例である。このように、構造を持つ要素をあるノードの下に置くことも可能である。この方式の活用により、ドキュメントの中に表形式のデータが入っているような複雑なケースも扱うことが可能である。
図15は図10と同様に、図7のメール作成画面の状態をグラフ構造にした例である。図10との違いは、UI部品(コンポーネント)の認識に失敗した結果、文字情報しか取得できなかったという点である。このような場合においても、図12のグラフとの間にサブグラフの関係があるため、図12に対応する「メール作成」の状態と認識することが可能である。
このように、画像の認識時や文字認識時に多少の誤りがあった場合にも、画面知識データベース上のモデルとなるグラフを、正規表現を活用して、状態を表す特徴的な部分はそのままにしつつも、無関係な部分の指定を除くことによって、より多くのグラフを含む(より多くのグラフとサブグラフの関係となる)ことができるような形にしておくことができる。これにより、状態の認識をよりロバストに行うことができる。
1…ユーザ、10…コンピュータ、11…OS、15…入力デバイス、16…ディスプレイ、20…ユーザ操作支援アプリケーション、100…アプリケーション状態認識システム、110…UI部品認識部、111…画像取得部、112…分割処理部、113…部品識別部、114…文字識別部、115…レイアウト識別部、116…前処理部、117…特徴抽出部、118…部品クラス識別部、119……部品識別辞書、120…状態統合認識部、121…グラフ構造算出部、122…状態判定部、123…画面知識データベース。

Claims (7)

  1. コンピュータ上で動作するアプリケーションの動作状態をアプリケーション状態認識装置が認識する方法において、
    アプリケーション状態認識装置の部品認識手段が、前記アプリケーションが表示装置に出力している情報を取得し、取得した表示情報に含まれるユーザインタフェイスとしての部品及び文字を認識するとともに各部品及び文字間のレイアウトを認識するステップと、
    アプリケーション状態認識装置の状態認識手段が、認識された部品情報及び文字情報並びにレイアウト情報に基づき各部品又は文字をノードとしたツリー構造を算出し、算出したツリー構造に基づきアプリケーションの動作状態を識別するステップとを備えた
    ことを特徴とするアプリケーション状態認識方法。
  2. アプリケーションの動作状態に対応するツリー構造をツリー識別用データベースとして予め記憶手段に記憶しておき、
    前記動作状態認識ステップでは、算出したツリー構造とツリー識別用データベースに記憶されているツリー構造との間でグラフマッチング処理を行うことにより動作状態を識別する
    ことを特徴とする請求項1記載のアプリケーション状態認識方法。
  3. 前記部品及びレイアウト認識ステップでは、表示情報として、アプリケーションが表示装置に出力している画像データを取得する
    ことを特徴とする請求項1又は2記載のアプリケーション状態認識方法。
  4. 前記部品及びレイアウト認識ステップでは、取得した画像データを一以上の領域に分割し、分割された各画像データ取得に基づき部品及び文字並びにレイアウトを認識する
    ことを特徴とする請求項3記載のアプリケーション状態認識方法。
  5. 部品識別用の学習データを部品識別辞書として予め記憶手段に記憶しておき、
    前記部品及びレイアウト認識ステップでは、画像データに対してノイズ除去や正規化等の前処理を行い、前処理された画像データの特徴量を抽出し、抽出された画像データの特徴量と記憶手段に記憶されている学習データとに基づき部品を識別する
    ことを特徴とする請求項3又は4何れか1項記載のアプリケーション状態認識方法。
  6. コンピュータ上で動作するアプリケーションの動作状態を認識するアプリケーション状態認識装置において、
    前記アプリケーションが表示装置に出力している情報を取得し、取得した表示情報に含まれるユーザインタフェイスとしての部品及び文字を認識するとともに各部品及び文字間のレイアウトを認識する部品識別手段と、
    認識された部品情報及び文字情報並びにレイアウト情報に基づき各部品又は文字をノードとしたツリー構造を算出し、算出したツリー構造に基づきアプリケーションの動作状態を識別する動作状態識別手段とを備えた
    ことを特徴とするアプリケーション状態認識装置。
  7. コンピュータを、請求項6記載のアプリケーション状態認識装置の各手段として機能させる
    ことを特徴とするアプリケーション状態認識プログラム。
JP2010047011A 2010-03-03 2010-03-03 アプリケーション状態認識方法、装置及びプログラム Active JP5354747B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010047011A JP5354747B2 (ja) 2010-03-03 2010-03-03 アプリケーション状態認識方法、装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010047011A JP5354747B2 (ja) 2010-03-03 2010-03-03 アプリケーション状態認識方法、装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2011181007A JP2011181007A (ja) 2011-09-15
JP5354747B2 true JP5354747B2 (ja) 2013-11-27

Family

ID=44692417

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010047011A Active JP5354747B2 (ja) 2010-03-03 2010-03-03 アプリケーション状態認識方法、装置及びプログラム

Country Status (1)

Country Link
JP (1) JP5354747B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5950309B2 (ja) * 2013-06-24 2016-07-13 日本電信電話株式会社 画像領域分割装置、その方法及びプログラム
JP5931806B2 (ja) * 2013-06-24 2016-06-08 日本電信電話株式会社 画像認識による自動操作装置、その方法及びプログラム
US20220342794A1 (en) * 2019-06-11 2022-10-27 Nippon Telegraph And Telephone Corporation Operation logs acquiring device, operation logs acquiring method, and operation logs acquiring program
JP7388553B2 (ja) * 2020-05-29 2023-11-29 日本電信電話株式会社 識別装置、識別方法および識別プログラム
JPWO2022180705A1 (ja) * 2021-02-24 2022-09-01
US11934850B2 (en) 2021-08-06 2024-03-19 Samsung Electronics Co., Ltd Electronic device for displaying execution screen of application, operating method thereof, and storage medium

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05159101A (ja) * 1991-11-01 1993-06-25 Fuji Xerox Co Ltd 文書論理構造認識および文書内容認識のための装置および方法
US20040013302A1 (en) * 2001-12-04 2004-01-22 Yue Ma Document classification and labeling using layout graph matching
JP4842917B2 (ja) * 2007-12-07 2011-12-21 富士通株式会社 後続処理の自動処理プログラム,後続処理の自動処理装置および後続処理の自動処理方法

Also Published As

Publication number Publication date
JP2011181007A (ja) 2011-09-15

Similar Documents

Publication Publication Date Title
Zhao et al. Multi-source domain adaptation in the deep learning era: A systematic survey
JP7177653B2 (ja) 敵対的ニューラル・ネットワーク・トレーニングを使用するフォント認識の改善
CN110785736B (zh) 自动代码生成
US9886669B2 (en) Interactive visualization of machine-learning performance
US20180114097A1 (en) Font Attributes for Font Recognition and Similarity
JP6303594B2 (ja) 単一セル中の画像データ及びシンボルデータによるテーブルのソート及びフィルタリング
JP5354747B2 (ja) アプリケーション状態認識方法、装置及びプログラム
CN109783635A (zh) 使用机器学习和模糊匹配自动分层分类文档和标识元数据
CA2917256C (en) Screenshot-based e-commerce
US10372958B2 (en) In-field data acquisition and formatting
US11061651B2 (en) Systems and methods for organizing, classifying, and discovering automatically generated computer software
CN111753717A (zh) 用于提取文本的结构化信息的方法、装置、设备及介质
US20230127525A1 (en) Generating digital assets utilizing a content aware machine-learning model
CN113139141A (zh) 用户标签扩展标注方法、装置、设备及存储介质
JP6365024B2 (ja) サービス提供装置、方法、及びプログラム
CN106815253B (zh) 一种基于混合数据类型数据的挖掘方法
US11314991B2 (en) Information display method, information display system, and storage medium
JP2015069256A (ja) 文字識別システム
CN104049831A (zh) 输入颜文字的方法及装置
JP2012194691A (ja) 識別器の再学習方法、再学習のためのプログラム、及び画像認識装置
US11763075B1 (en) Method and system of discovering templates for documents
CN110020120B (zh) 内容投放系统中的特征词处理方法、装置及存储介质
US10354008B2 (en) System and method for providing a visual scroll representation of production data
Acharya et al. Mileage Extraction From Odometer Pictures for Automating Auto Insurance Processes
WO2023135772A1 (ja) 情報処理装置、情報処理方法および情報処理プログラム

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20110613

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110614

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110615

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110616

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120116

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130605

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130805

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130823

R150 Certificate of patent or registration of utility model

Ref document number: 5354747

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350