(57)【要約】【課題】従来手法ではアプリケーションやＯＳから充分な情報を取得することができないような環境下であっても、アプリケーションの動作状態を認識することが可能なシステムを提供する。【解決手段】アプリケーション状態認識システム１００は、アプリケーションの表示画面の画像データを取得する画像取得部１１０と、画像データに前処理を行う前処理部１２０と、画像データから特徴量を抽出する特徴抽出部１３０と、画像データの特徴量からアプリケーションの動作状態を導出する学習データを記憶した識別辞書１５０と、該識別辞書１５０を参照して特徴量からアプリケーションの動作状態を識別する識別部１４０とを備える。【選択図】図１
2011044074.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ上で動作するアプリケーションの動作状態をアプリケーション状態認識装置が認識する方法において、
アプリケーション状態認識装置の画像データ取得手段が、前記アプリケーションが表示装置に出力している情報を画像データとして取得するステップと、
アプリケーション状態認識装置の前処理手段が、取得された画像データに対してノイズ除去や正規化等の前処理を行うステップと、
アプリケーション状態特徴量抽出手段が、前処理された画像データの特徴量を抽出するステップと、
アプリケーション状態の識別手段が、識別辞書として記憶手段に予め記憶されている、画像データの特徴量からアプリケーションの動作状態を識別するための学習データと、前記画像データの特徴量とに基づきアプリケーションの動作状態を識別するステップとを備えた
ことを特徴とするアプリケーション状態認識方法。
【請求項２】
前記前処理ステップでは、取得された画像データに対して該画像データの可変領域を所定の固定値又は固定パターンに置換する
ことを特徴とする請求項１記載のアプリケーション状態認識方法。
【請求項３】
前記識別辞書には、画像データに対して該画像データの可変領域を所定の固定値又は固定パターンに置換したものの特徴量と置換していないものの特徴量の双方について学習データを記憶しておく
ことを特徴とする請求項２記載のアプリケーション状態認識方法。
【請求項４】
前記置換有りの学習データには可変領域の座標情報を含み、
前記前処理ステップでは、識別辞書の学習データを参照して可変領域の座標情報を取得して該座標情報で示された領域を所定の固定値又は固定パターンに置換する
ことを特徴とする請求項３記載のアプリケーション状態認識方法。
【請求項５】
コンピュータ上で動作するアプリケーションの動作状態を認識するアプリケーション状態認識装置において、
前記アプリケーションが表示装置に出力している情報を画像データとして取得する画像データ取得手段と、
取得された画像データに対してノイズ除去等の前処理を行う前処理手段と、
前処理された画像データの特徴量を抽出する特徴量抽出手段と、
画像データの特徴量からアプリケーションの動作状態を識別するための学習データを識別辞書として予め記憶した記憶手段と、
抽出した特徴量に基づき前記識別辞書からアプリケーションの動作状態を識別する識別手段とを備えた
ことを特徴とするアプリケーション状態認識装置。
【請求項６】
コンピュータを、請求項４記載のアプリケーション状態認識装置の各手段として機能させる
ことを特徴とするアプリケーション状態認識プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ上で動作するアプリケーション（ＡＰ）を通じて操作を行うユーザに対して、ユーザが操作を円滑に行うことを支援する技術に関するものである。
【背景技術】
【０００２】
ユーザによる操作を支援するには、現在のユーザやアプリケーションの状態を知る必要がある。現状態を知らないと、状態に依らずに適用可能な汎用的な支援に留まり、個別の状況に適合した具体的で個別的な支援を行うことができないためである。
【０００３】
ユーザやアプリケーションの状態を知る従来手法として、アプリケーションプログラムやＯＳが提供する情報を利用する方法がある。例えば、Ｍｉｃｒｏｓｏｆｔ（登録商標）社製ＯＳであるＷｉｎｄｏｗｓ（登録商標）では、「ＡｕｔｏＩｔ」や「Ｓｐｙ＋＋」というツールが知られている。これらのツールでは、ＯＳ上でのウィンドウの基本的な情報（例えばタイトル、クラス、サイズなど）の取得、ウィンドウやプロセス等とＯＳとの間でやりとりされるメッセージの取得などを行うことができる。そこで、これらの情報を複合的に組み合わせることで、アプリケーションの状態を一定レベルにおいて取得することが可能である。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】"AutoIt Script Home Page"、［online］、［平成２１年８月１３日検索］、URL<http://www.autoitscript.com/>
【非特許文献２】"Home Page: Spy++"、［online］、［平成２１年８月１３日検索］、URL< http://msdn.microsoft.com/en-us/library/aa264396(VS.60).aspx>
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし上記の方法では、ユーザの操作する環境によっては、ユーザ支援に必要な情報を充分に取得することができないという問題がある。例えば、セキュリティ強化の目的で導入されることが多くなっているシンクライアント環境では、多くの場合非常に限られた情報しか取得することができない。シンクライアントの実装方式として比較的ポピュラーな画面情報を転送する方式では、従来手法を使うとアプリケーションの充分な情報を取得することができない。
【０００６】
本発明は、上記事情に鑑みてなされたものであり、その目的とするところは、従来手法ではアプリケーションやＯＳから充分な情報を取得することができないような環境下であっても、アプリケーションの動作状態を認識することが可能なシステムを提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明は、コンピュータ上で動作するアプリケーションの動作状態を認識するアプリケーション状態認識装置において、前記アプリケーションが表示装置に出力している情報を画像データとして取得する画像データ取得手段と、取得された画像データに対してノイズ除去や正規化等の前処理を行う前処理手段と、前処理された画像データの特徴量を抽出する特徴量抽出手段と、画像データの特徴量からアプリケーションの動作状態を識別するための学習データを識別辞書として予め記憶した記憶手段と、抽出した特徴量に基づき前記識別辞書からアプリケーションの動作状態を識別する識別手段とを備えたことを特徴とする。
【０００８】
本発明によれば、アプリケーションの動作により表示装置に画面表示される画像データに対して画像認識を行うことにより該アプリケーションの動作状態を識別するので、従来手法のようにカメラ等の特別なデバイスを別途用意することや複雑な初期設定を行うことなどは必要ない。したがって汎用的な技術として種々の環境下でアプリケーションの動作状態を取得することができる。
【０００９】
また、本発明の好適な態様としては、前記前処理部において、取得された画像データに対して該画像データの可変領域を所定の固定値又は固定パターンに置換することを特徴するものが挙げられる。すなわち、単純に画像データに対する画像認識を行っただけでは細かな動作状態による違いを検出しすぎて誤認識しがちなところ、具体的には入力画像と識別辞書中の画像において動作状態によって可変な画像部分（可変領域）を、一律的なパターンで塗り潰してから認識させる。これにより、データの入力状態などにより生じる画像上の違いを無視したアプリケーションの動作状態を、より確実に認識することを可能にする。
【発明の効果】
【００１０】
以上説明したように本発明によれば、特別な機器や設定を必要とせずに、画面上の画像データに対する画像認識により、アプリケーションの現在の動作状態を把握することができる。また、従来技術ではアプリケーションの動作状態の違いが画像上の違いに表れることで誤認識しやすいところを、前処理段階において無視してよい状態による画像状態の違いを除去することで、より確実な認識を可能にした。これにより、ユーザによる次操作の提案やエラー状態からの回復、自律動作など様々な応用が可能になり、ユーザによるアプリケーション操作をより強力に支援できるようになる。
【図面の簡単な説明】
【００１１】
【図１】アプリケーション状態認識システムの構成図
【図２】アプリケーション状態認識システムの動作を説明するフローチャート
【図３】ユーザ支援アプリケーションの動作を説明するフローチャート
【図４】可変領域の置換処理を説明する図
【図５】可変領域の置換処理を説明する図
【発明を実施するための形態】
【００１２】
本発明の一実施の形態について図面を参照して説明する。図１は、本発明のアプリケーション状態認識システムの構成図である。本実施の形態に係るアプリケーション状態認識システムでは、ユーザ支援アプリケーションに対して他のアプリケーションの動作状態を認識・提供するサービスを行う。すなわち、図１に示すように、コンピュータ１０にはＯＳ１１上で複数の既存アプリケーションＡＰ１，ＡＰ２，…が動作している。各既存アプリケーションＡＰ１，ＡＰ２は、ユーザ１に対するユーザインタフェイスとして、キーボードやマウス等の入力デバイス１５及び表示装置であるディスプレイ１６を利用する。
【００１３】
ユーザ支援アプリケーション２０は、既存アプリケーションＡＰ１，ＡＰ２，…を操作するユーザ１に対して、その操作を支援するアプリケーションである。該ユーザ支援アプリケーション２０には様々な形態が考えられ、例えば、現在の画面上の既存アプリケーションＡＰ１，ＡＰ２，…の状態をもとに次操作を提案するものや、ユーザ１がエラー状態と判断される状態に陥った時に回復手順を示し回復支援をするもの、自動操作システムに状況を判断しつつ自律的な動作を行う機能を追加するものなど挙げられる。本発明に係るアプリケーション状態認識システム１００は、該ユーザ支援アプリケーション２０に対して既存アプリケーションＡＰ１，ＡＰ２，…の動作状態を認識し、該認識結果を提供するものである。
【００１４】
以下にアプリケーション状態認識システム１００について詳述する。本発明に係るアプリケーション状態認識システム１００は、構成自体は一般的な画像認識システムと同等のものであり、図１に示すように、画像取得部１１０，前処理部１２０，特徴抽出部１３０，識別部１４０，識別辞書１５０とを備えている。また、本発明に係るアプリケーション状態認識システム１００は、コンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。さらに、本発明に係るアプリケーション状態認識システム１００やユーザ支援アプリケーション２０の動作環境や実装形態は不問である。すなわち、既存アプリケーションＡＰ１，ＡＰ２，…が動作するコンピュータと同一コンピュータ上で動作してもよいし、例えばシンクライアント環境のように他のコンピュータ上で動作してもよい。さらに、アプリケーション状態認識システム１００の各部も単一のコンピュータではなく複数のコンピュータに分散させて実装してもよい。
【００１５】
画像取得部１１０は、ＯＳ１１やそれに付随するシステムライブラリ等の提供する機能を用いてディスプレイ１６上に表示されている、ウィンドウやスクリーン全体などを画像データとして取得する。
【００１６】
前処理部１２０では、画像データに対して認識処理をしやすくするための処理を行う。具体的には、認識の際に余計なノイズなどをできるだけ除去するために行う二値化や画像サイズなどを一定の値に揃える正規化などの処理を行う。さらに、前処理部１２０では、必要に応じて画像データから特定される可変領域の置換処理を行う。可変領域及び置換処理については後述する。
【００１７】
特徴抽出部１３０では、画像データを認識するために、該画像データをより少数の情報で表す特徴量を特徴ベクトルとして抽出する。特徴量を算出する方法については、様々な形で検討されている既存手法が豊富に存在するため、それらを利用する。具体的には、ＳＩＦＴ特徴量やＨｏＧ特徴量、Ｈａａｒ−ｌｉｋｅ特徴量などの様々な特徴量が利用可能である。また、後述する識別部１４０でテンプレートマッチ法を利用する場合は、前処理部１２０で画像サイズの正規化など適切な前処理が行ってあれば、画像のデータをそのまま特徴量とする。
【００１８】
識別部１４０では、事前に学習した情報を保管するなどして作成した識別辞書１５０の情報（学習データ）を参照し、入力された画像の特徴ベクトルを元に入力画像の識別・分類を行う。識別・分類は、入力画像が、認識したい状態を示すクラスのいずれに属するかを決定する処理である。クラスは、区別して認識したい状態の数だけ予め用意しておく。通常、識別辞書１５０中の全てのデータをその特徴ベクトルを元に、幾つかの有限のクラスに分割する。その上で、クラスを代表する特徴ベクトル（別途算出する）や辞書中の全データの特徴ベクトルと、入力画像の特徴ベクトルを比較することで、入力画像の属するクラスを識別する。比較する際はユークリッド距離が最小となるベクトルを選ぶやり方やニューラルネットワークを利用するやり方、サポートベクタマシンを利用するやり方、テンプレートマッチ法を利用する方法など、様々な既存の手法があり、それらを利用する。
【００１９】
次に、図２を参照して本発明に係るアプリケーション状態認識システムの動作について説明する。
【００２０】
図２に示すように、まず画像取得部１１０が、サービス提供先のアプリケーション（本実施の形態ではユーザ支援アプリケーション２０）等からの要求に応じて、ディスプレイ１６上に表示されている画像データを取得する（ステップＳ１）。なお、前記要求には必要に応じて、認識対象となる既存アプリケーションＡＰ１，ＡＰ２，…や更にそのウィンドウ等を指定するようにしてもよい。次に、前処理部１２０が前処理として、画像データに対して後段の識別処理における画像認識が行いやすくするよう画像処理を行う（ステップＳ２）。次に、特徴抽出部１３０が、前処理された画像データから特徴量として特徴ベクトルを抽出する（ステップＳ３）。そして、識別部１４０が、抽出された特徴量と識別辞書１５０中のデータを比較して、画像データの属するクラスを判別して、該クラスをアプリケーションの動作状態としてサービス提供先のアプリケーションに返す（ステップＳ４）。
【００２１】
次に、図３を参照して本発明に係るアプリケーション状態認識システムを用いたユーザ支援アプリケーションの動作について説明する。ここでは、ユーザ支援アプリケーション２０として、既存アプリケーションＡＰ１，ＡＰ２，…を操作するユーザ１に対してその操作を支援するものを例にとって説明する。
【００２２】
図３に示すように、ユーザ支援アプリケーション２０は、動作状態の認識対象である既存アプリケーションＡＰ１，ＡＰ２，…の画像領域（ウィンドウなど）を指定して、アプリケーション状態認識システム１００に対して動作状態の認識を依頼する（ステップＳ１１）。アプリケーション状態認識システム１００は、図２を参照して前述した動作にしたがって既存アプリケーションＡＰ１，ＡＰ２，…の動作状態を識別・応答する（ステップＳ１２）。ユーザ支援アプリケーション２０は、取得した動作状態に基づき次操作の支援などのユーザ支援処理を行う（ステップＳ１３）。なお、該ユーザ支援処理については従来周知のものと同様なので詳述は省略する。
【００２３】
ところで本願発明では既存アプリケーションＡＰ１，ＡＰ２，…の動作状態を把握する手段として、表示画面の画像データを画像認識技術により解析するという手法をとっている。しかし、単純に画面画像に対する画像認識を行っただけでは、テキストエリアへの入力状況などによる違いを過度に検出してしまい、誤認識の可能性が高くなるという課題がある。
【００２４】
そこで本願発明では、前処理部１２０において、必要に応じて可変領域を所定の固定値又は固定パターンに置換する処理を行う。ここで、「可変領域」とは、アプリケーションの動作状態が属するクラスは同じであるが、その動作状態によって内容が変わる可能性のある領域を意味する。例えば、住所入力画面における住所入力用のテキスト領域などが該当する。
【００２５】
具体的には前処理部１２０は、入力文字列の違いやラジオボタンなどの選択状況の違いなどを区別して認識したくない場合は、細かな状態の違いを区別したくない可変領域を一定の色やパターンで塗り潰す。その後、特徴量の計算を行うことで、文字列の違いなどの状態の違いを無視した確度の高い認識が可能になる。
【００２６】
さらに、テキスト入力中とテキスト未入力というような複数の状態を区別したい場合、なんらかのテキストが入力されている場合は、テキスト入力中を示す固定の文字列に置換するなどといった方法により、区別が可能である。可変領域に画像が描画されている場合でも同様に特定の画像に置換するなどの手法が適用できる。また、例えば未入力状態の画像における可変領域において、未入力を示す一定の固定パターンで塗り潰す必要があるケースもある。この手法を応用することで、任意の複数の状態を区別して認識することが可能である。
【００２７】
図４に前処理部における置換処理の一例を示す。図４は、あるアプリケーションの特定ウィンドウとして、テキスト領域、ラジオボタン、可変な図形領域を持つウィンドウに対して、入力状況に依らずにウィンドウの属するクラス（名前、住所など入力ウィンドウ）を識別するために、画像に施す前処理例の概要を示す図であり、処理を行う前と後とを示している。処理内容は、可変な領域を背景色などの固定色や固定パターンで塗り潰す処理である。
【００２８】
このような処理を施すためには、認識の精度を制御したい可変領域を指定する必要がある。一つの方法は、図２などで示した状態認識のフローと同様の画像の認識を行い、必要となる可変領域の認識を行う方法である。文字列の矩形領域の検出については、フーリエ記述子を用いた文字認識など、既存の手法を適用することが可能である。その他、一般の画像であっても、既存のＳＩＦＴ特徴量などを利用し、指定の可変領域を示す画像と同様の特徴量を持つ画像を検出することで、可変領域の認識が可能である。
【００２９】
ただし、上記の方法はどのような画像が現れるか予測ができないため、汎用的な適用には好ましいとは言えない。そこで、汎用的な方法の一つを図５を参照して説明する。図５は可変領域の検出例を図示したものである。
【００３０】
図５に示す検出方法では、文字領域や画像領域などの一般の可変領域の検出をするために、識別辞書１５０の学習データを作成する際に、学習対象の画像における可変領域を手動で指定し、可変領域を塗り潰して固定領域に変換し、特徴量を計算し、変換したものと変換していないもの双方を保存しておく。その際、変換した各固定領域（矩形であることを前提とする）のウィンドウや画面等の左上隅を原点として、左上隅と右下隅の座標を画像の特徴量と共に可変領域を示す座標として記録しておく。前処理部１２０では、入力画像に対して、識別辞書１５０に記録しておいた各データの可変領域の座標で表される領域を固定領域にそれぞれ置換する。特徴抽出部１３０は、置換後の各画像データについてそれぞれ特徴量を算出する。そして識別部１４０は、各特徴量と識別辞書１５０中の各データとを比較し、最も類似した特徴量が示す動作状態を識別結果とする。但し、この方法を適用する条件としては、画像の大きさが学習時と認識時で同じである、という条件がある。
【００３１】
他に、より汎用的に適用できる方法としては、学習用の画像だけでなく、入力画像に対しても、可変領域を手動で指定し可変領域を塗り潰して固定領域に変換してから特徴量を計算し、認識させるという方法がある。
【００３２】
このように本発明に係るアプリケーション状態認識システムによれば、既存アプリケーションＡＰ１，ＡＰ２，…が表示する表示画面の画像データに基づき当該アプリケーションの動作状態を認識するので、特別な機器や設定を必要とすることなく種々の動作環境下での認識処理が可能となる。また、従来技術ではアプリケーションの動作状態の違いが画像上の違いに表れることで誤認識しやすいところを、前処理段階において無視してよい状態による画像状態の違いを除去することで、より確実な認識を可能にした。これにより、ユーザによる次操作の提案やエラー状態からの回復、自律動作など様々な応用が可能になり、ユーザによるアプリケーション操作をより強力に支援できるようになる。
【符号の説明】
【００３３】
１…ユーザ、１０…コンピュータ、１１…ＯＳ、１５…入力デバイス、１６…ディスプレイ、２０…ユーザ支援アプリケーション、１００…アプリケーション状態認識システム、１１０…画像取得部、１２０…前処理部、１３０…特徴抽出部、１４０…識別部、１５０…識別辞書。
【図１】
2011044074.tif 000003
【図２】
2011044074.tif 000004
【図３】
2011044074.tif 000005
【図４】
2011044074.tif 000006
【図５】
2011044074.tif 000007