(57)【要約】      （修正有）【課題】簡便な方法で、人為的操作を代替して機械実行させることのできる情報処理装置、及びプログラムを提供する。【解決手段】動作指示に従って動作し、画面を表示する情報処理装置１であって、表示する画面上の画像要素と、画像要素に関係する操作を表す操作コマンドとを関連付けたコマンド情報を保持する。画面を表示しているときに、表示している画面から、コマンド情報に含まれる画像要素に相当する画像部分を検索する。検索によって画像要素を見出したときに、画像要素に関連付けられた操作コマンドを取得して、操作コマンドに基づく所定処理を実行する。また画像要素を見出さなかった場合には、所定の再検索処理を実行する。【選択図】図１
2020140574.tif 000002
【特許請求の範囲】
【請求項１】
動作指示に従って動作し、画面を表示する情報処理装置であって、
前記表示する画面上の画像要素と、当該画像要素に関係する操作を表す操作コマンドとを関連付けたコマンド情報を保持する保持手段と、
前記画面を表示しているときに、当該表示している画面から、前記コマンド情報に含まれる画像要素に相当する画像部分を検索する検索手段と、
検索によって前記コマンド情報に含まれる画像要素を見出したときに、当該画像要素に関連付けられた操作コマンドを取得し、当該操作コマンドに基づく所定処理を実行する処理実行手段と、
を含み、
前記検索手段が前記コマンド情報に含まれる画像要素を見出さなかった場合に、所定の再検索処理を実行する情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、前記検索手段は、前記コマンド情報に含まれる画像要素に基づいて、それぞれ所定の処理を行って得られる、複数の検索用画像要素を生成し、前記再実行処理においては、当該検索用画像要素と、前記画面内から抽出した複数の画素ブロック内のそれぞれの画像との類似度を求めて、当該類似度に基づいて検索の結果を出力する情報処理装置。
【請求項３】
請求項１または２に記載の情報処理装置であって、
前記検索手段は、前記表示している画面のうちに、所定操作により出現する部分があるときには、当該部分を出現させて、再度、前記コマンド情報に含まれる画像要素に相当する画像部分を検索する情報処理装置。
【請求項４】
請求項１から３のいずれか一項に記載の情報処理装置であって、
前記保持手段はさらに、操作コマンドに関連付けた画像要素に対し、さらに代替画像要素を関連付けて保持可能に構成され、
前記検索手段は、再検索処理として、前記コマンド情報に含まれる画像要素に対応する代替画像要素に相当する画像部分を検索する情報処理装置。
【請求項５】
請求項１から４のいずれか一項に記載の情報処理装置であって、
前記保持手段は、操作コマンドに、待機に係る条件の設定を含めて保持しており、
前記検索手段は、画面の表示の処理を開始した後、前記待機に係る条件が満足されるまで待機してから、当該表示している画面から、前記コマンド情報に含まれる画像要素に相当する画像部分を検索する情報処理装置。
【請求項６】
請求項１から５のいずれか一項に記載の情報処理装置であって、
前記検索手段はさらに、前記コマンド情報に含まれる画像要素に基づいて、当該画像要素に類似する、類似画像要素を出力するよう機械学習し、当該画像要素を入力したときに当該機械学習結果に基づく出力として類似画像要素を得て、当該類似画像要素に相当する画像部分を検索する情報処理装置。
【請求項７】
動作指示に従って動作し、画面を表示する情報処理装置を、
前記表示する画面上の画像要素と、当該画像要素に関係する操作を表す操作コマンドとを関連付けたコマンド情報を保持する保持手段と、
前記画面を表示しているときに、当該表示している画面から、前記コマンド情報に含まれる画像要素に相当する画像部分を検索する検索手段と、
検索によって前記コマンド情報に含まれる画像要素を見出したときに、当該画像要素に関連付けられた操作コマンドを取得し、当該操作コマンドに基づく所定処理を実行する処理実行手段と、として機能させ、
前記検索手段として機能させる際に、前記コマンド情報に含まれる画像要素を見出さなかった場合に、所定の再検索処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動作指示に従って動作し、画面を表示する情報処理装置、及びプログラムに関する。
【背景技術】
【０００２】
パーソナルコンピュータ等の情報処理装置の普及により、種々の情報の検索や計算等の処理が格段に容易になっている。しかしながら、情報処理装置を運用するにあたっては、所望の処理を行うためのアプリケーションソフトウエアに対し、当該アプリケーションソフトウエアごとに定められる入力方式により必要な情報を入力する必要がある。
【０００３】
例えば、顧客管理のアプリケーションソフトウエアでは、顧客名や電話番号、担当者名等の情報の入力を行うこととなるが、このような情報が常に、人為的な操作を行うことなく、電子的に取り込むことができるとは限らない。具体的には、オペレータが、表計算アプリケーションプログラムのファイルにまとめられた情報を目視で参照しつつ、当該情報を、「コピー・アンド・ペースト」の操作により、顧客管理アプリケーションソフトウエアに写して入力する、などということが行われているのが実情である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−２１９９７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
このように、上記従来の情報処理装置では、情報の転記等、単純な繰り返し作業の操作であっても、これを人為的に行わなければならない場合があって、利便性が損なわれていた。
【０００６】
また、マクロと呼ばれる、自動的な操作実行のための機能を備えたアプリケーションプログラムも存在するが、複数のアプリケーションプログラムに対する操作を指示することが困難であり、さらにマクロのプログラムを記述することが一般的なユーザには難しいものとなっていた。
【０００７】
特許文献１には、グラフィカルユーザインタフェースを備えたプログラムのテストをする場合に、画面設計に変更があったときにも、テスト工程を自動化できる方法が開示されている。
【０００８】
本発明は上記実情に鑑みて為されたもので、簡便な方法で、人為的操作を代替して機械実行させることのできる情報処理装置、及びプログラムを提供することを、その目的の一つとする。
【課題を解決するための手段】
【０００９】
上記従来例の問題点を解決する本発明は、動作指示に従って動作し、画面を表示する情報処理装置であって、前記表示する画面上の画像要素と、当該画像要素に関係する操作を表す操作コマンドとを関連付けたコマンド情報を保持する保持手段と、前記画面を表示しているときに、当該表示している画面から、前記コマンド情報に含まれる画像要素に相当する画像部分を検索する検索手段と、検索によって前記コマンド情報に含まれる画像要素を見出したときに、当該画像要素に関連付けられた操作コマンドを取得し、当該操作コマンドに基づく所定処理を実行する処理実行手段と、を含み、前記検索手段が前記コマンド情報に含まれる画像要素を見出さなかった場合に、所定の再検索処理を実行することとしたものである。
【発明の効果】
【００１０】
本発明によると、簡便な方法で、人為的操作を代替して機械実行させることが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態に係る情報処理装置の構成例を表すブロック図である。
【図２】本発明の実施の形態に係る情報処理装置の例を表す機能ブロック図である。
【図３】本発明の実施の形態に係る情報処理装置が表示する画面画像の例を表す説明図である。
【図４】本発明の実施の形態に係る情報処理装置の処理例を表す説明図である。
【発明を実施するための形態】
【００１２】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る情報処理装置１は、図１に例示するように、プロセッサ１１と、記憶部１２と、操作部１３と、表示部１４と、通信部１５とを含んで構成されている。
【００１３】
プロセッサ１１は、ＣＰＵ等のプログラム制御デバイスであり、記憶部１２に格納されたプログラムを実行する。本実施の形態では、このプロセッサ１１は、プログラムによる動作指示に従って動作し、画面を表示する処理、つまり、一般的なアプリケーションプログラムの実行処理を行う。またこのプロセッサ１１は、一連の操作コマンドを含むコマンド情報を記憶部１２に保持させる。この操作コマンドには、文字列の入力等のコマンドのほか、上記アプリケーションプログラムの処理において表示した画面上の画像要素と、当該画像要素に関係する操作を表す操作コマンドとを関連付けた操作コマンドが含まれる。このコマンド情報は、フローチャートなど、コマンドの実行フローを表す図形として表示出力されてもよい。
【００１４】
またプロセッサ１１は、記憶部１２に保持しているコマンド情報に基づく処理を実行する。そして当該処理中に、画面上の画像要素を検索の条件とするコマンドを実行する際には、このコマンド情報に基づく処理と並列して実行しているアプリケーションプログラムの実行中の表示画面から、上記実行しているコマンドで特定される画像要素に相当する画像部分を検索する。そしてここでの検索によってコマンド情報に含まれる画像要素を見出すと、プロセッサ１１は、当該コマンドで指定される所定処理を実行する。またプロセッサ１１は、検索の処理において、コマンド情報に含まれる画像要素を見出さなかった場合には、所定の再検索処理等のリトライ処理を実行することとしてもよい。このプロセッサ１１の詳しい動作については後に述べる。
【００１５】
記憶部１２は、メモリデバイスやディスクデバイス等であり、プロセッサ１１によって実行されるプログラムを保持する。本実施の形態ではこのプログラムは、コンピュータ可読かつ非一時的な、ＤＶＤ等の記録媒体に格納されて提供され、この記憶部１２に格納されたものであってもよい。またこの記憶部１２は、プロセッサ１１のワークメモリとしても動作し、コマンド情報等を保持する。
【００１６】
操作部１３は、マウスやキーボード等であり、利用者の指示操作を受け入れて、当該指示操作の内容を表す情報を、プロセッサ１１に出力する。表示部１４は、ディスプレイ等であり、プロセッサ１１が出力する指示に従って情報を表示する。
【００１７】
通信部１５は、ネットワークインタフェース等であり、プロセッサ１１が出力する指示に従い、ネットワークを介して接続されるサーバ等に対して情報を送出する。また、この通信部１５は、ネットワークを介して接続されるサーバ等から情報を受信してプロセッサ１１に出力する。
【００１８】
次に、プロセッサ１１の動作について説明する。本実施の形態のプロセッサ１１は、記憶部１２に格納されたプログラムに従って動作して、機能的に、図２に例示するように、アプリケーション実行部２１と、コマンド生成部２２と、コマンド情報保持部２３と、処理実行部２４とを含む構成を実現する。またここで処理実行部２４は、解釈部３１と、検索部３２と、実行部３３とを含む。
【００１９】
アプリケーション実行部２１は、一般的なアプリケーションプログラムの実行処理を行う。本実施の形態では、情報処理装置１のプロセッサ１１は、一般的なパーソナルコンピュータのオペレーティングシステム、例えばウィンドウズ（登録商標）の処理を実行しており、複数のアプリケーションプログラムを時分割的に、実質的に並列に実行している（いわゆるマルチタスク処理を実行している）ものとする。
【００２０】
ここでアプリケーション実行部２１により実行されるアプリケーションプログラムは、一般的にはユーザが操作部１３を操作することによってオペレーティングシステムを介して入力される動作指示に従って動作し、所定の処理を実行して、当該実行の結果を表示部１４等の画面に表示出力する。
【００２１】
ここで操作部１３から入力されるのに代えて、操作部１３に対してユーザが所定の操作を行ったときと同じ動作指示（以下、擬制動作指示と呼ぶ）をオペレーティングシステムに対して出力することで、あたかもユーザが操作部１３に対して上記所定の操作をしたかのような動作指示が、情報処理装置１に対して行われる。
【００２２】
例えばあるアプリケーションプログラムのウィンドウ内の所定位置をクリックした場合と同じ動作指示である擬制動作指示をオペレーティングシステムに対して出力すると、オペレーティングシステムはそれ自身の動作として、上記所定位置でクリックが行われたことを表す情報を、対応するアプリケーションプログラムに対して出力する（あるいはオペレーティングシステムのユーザインタフェースアプリケーションが、対応するアプリケーションプログラムのウィンドウを操作の対象としてアクティブにする）。そして当該アプリケーションプログラム（オペレーティングシステムのユーザインタフェースアプリケーションを含む）は、ユーザが当該擬制動作指示に対応する操作を行った場合と同じ処理を行う。
【００２３】
コマンド生成部２２は、ユーザのコマンド情報の生成指示に従って、コマンド情報を生成する。本実施の形態では、このコマンド情報には、キーボードやマウスカーソルの移動操作に対応する擬制動作指示を含むコマンド（以下、擬制動作指示を出力するコマンドを操作コマンドと称する）、のほか、条件分岐のコマンド等種々のコマンドが含まれる。
【００２４】
具体的にこのコマンド生成部２２は、コマンド情報の生成指示を受けると、操作コマンドの入力を受け付ける。ここでコマンド生成部２２は、
（１）キーボードやマウスカーソルの移動操作に対応する操作を表す操作コマンド、
（２）画面上の画像要素に関係する操作を表す操作コマンド、
（３）条件分岐
（４）ループ処理
（５）例外処理
（６）ネットワーク処理（メールクライアント等）
を含むコマンドテンプレートの候補から一つのコマンドテンプレートの選択を受け入れる。
【００２５】
そして受け入れたコマンドテンプレートが文字列の入力操作を表すものである場合や、マウスカーソルの移動の操作をあらわすものである場合は、ユーザに対して実際に文字列やマウスカーソルの移動操作を求める。ユーザが当該求めに応じて文字列の入力操作やマウスカーソルの移動操作を行うと、当該操作を記録して、当該操作に対応する擬制動作指示を出力する操作コマンドを生成する。このような操作の記録の方法は、広く知られているので、ここでの詳しい説明は省略する。
【００２６】
またコマンド生成部２２は、画面上の画像要素に関係する操作を表す操作コマンドを生成するべき旨の指示を受け入れると、その時点で画面上（以下では画面全体の画像を画面画像と呼ぶ）に表示される画像の一部（画像要素）を指定する情報の入力を、ユーザに対して要求する。この動作は、例えばユーザに対し、実際にアプリケーションプログラムの動作中に表示された画面画像の一部を選択させること（範囲指定等を行わせること）で実行できる。
【００２７】
そしてコマンド生成部２２は、上記要求に応じてユーザが入力した画像要素を受け入れ、さらに、当該受け入れた画像要素に関連して実行されるべき操作を特定する情報の入力を受け入れる。この情報により特定される操作としては、例えば受け入れた画像要素に対応する入力欄を選択するマウスクリックの操作や、ユーザが指定した画面上の位置にマウスカーソルを移動してマウスをクリックする操作等が含まれる。そしてコマンド生成部２２は、当該受け入れた画像要素と、それに関連付けて実行されるべき操作を特定する情報とを関連付けて、操作コマンドを生成する。
【００２８】
なお、本実施の形態においては、コマンド生成部２２は、実行されるべき操作として、マウスクリック等、画面上の位置を特定する操作を特定する情報の入力が行われた場合、受け入れた画像要素の位置（例えば当該画像要素の左上隅の座標の情報でよい）からの相対的位置として、当該操作に係る位置の情報を、操作コマンドに含めて記録する。
【００２９】
またここでコマンド生成部２２が受け入れる、実行されるべき操作を表す操作コマンドは、一つの画像要素ごとに一つとは限らず、一つの画像要素に対して、例えばクリック操作と文字列の入力操作等、複数の操作コマンドが関連付けられてもよい。
【００３０】
さらに本実施の形態の一例では、ここでコマンド生成部２２が受け入れるコマンドには、操作を表す操作コマンドのほか、コマンド実行に関わるコマンドとして例えば、条件分岐に関わるコマンドや、ループ処理のコマンド、例外処理に関わるコマンド等が含まれる。ここで条件分岐に関わるコマンドを受け入れるときには、コマンド生成部２２は、処理の分岐に関わる条件の指定を受け入れる。この条件には、
・時間経過の条件（１０秒経過したか、など）
・画像要素の変化に係る条件（指定された画像要素が出現した、あるいは指定された画像要素が表示されなくなった、など）
・操作対象に係る条件（操作の対象となるデータが存在しない、などの条件）
などといった条件を含む。
【００３１】
コマンド生成部２２は、画像要素の変化に係る条件の指定を受け入れるときには、画像要素に対する操作を表す操作コマンドを生成する際と同様に、実際にアプリケーションプログラムの動作中に表示された画面画像の一部を選択させること（範囲指定等を行わせること）とすればよい。
【００３２】
また、ループ処理のコマンドでは、繰り返し処理されるコマンドの群（グループ）が設定されるとともに、ループの条件が設定される。この場合の条件は、条件分岐におけるものと同様であり、条件が満足されるまで、指定されたグループに含まれるコマンドの処理を繰り返す。
【００３３】
コマンド生成部２２は、ユーザがコマンドの入力の終了を指示するまで、繰り返してコマンドの入力を受け入れる。そして、コマンド生成部２２は、ユーザがコマンドの入力の終了を指示すると、生成した順（あるいは指定された順）に、生成したコマンドを配列して、当該コマンドを一連の処理として実行する、コマンド情報を生成する。
【００３４】
また、本実施の形態の一例では、コマンド情報に含まれるコマンドには、コマンドの実行中に生じ得る所定のリトライ条件（画像の検索に失敗した、などの条件）とともに、当該リトライ条件が満足されたときに実行されるべきリトライ処理がさらに関連付けられてもよい。
【００３５】
コマンド情報保持部２３は、コマンド生成部２２が生成したコマンド情報を、記憶部１２に格納して記録する。このときコマンド情報保持部２３は、各コマンド情報にそれぞれを特定する名称等を関連付けて保持してもよい。この名称等は、ユーザから入力されるものであってもよい。
【００３６】
処理実行部２４は、インタープリタ等であり、ユーザから、コマンド情報を特定する指示とともに、当該指示により特定されるコマンド情報を実行するべき旨の指示を受け入れると、当該コマンド情報に含まれるコマンドに基づく処理を、順次実行する。
【００３７】
本実施の形態において処理実行部２４は、プロセッサ１１が一般的なアプリケーションプログラムや、オペレーティングシステムの処理を実行して、当該処理に基づく画面表示を行っているときに、ユーザからコマンド情報の実行指示を受け入れて次のように動作する。
【００３８】
すなわち、各コマンドに基づく処理の過程において、処理実行部２４は、コマンド情報に含まれる先頭のコマンドから、各ステップのコマンドを実行する。具体的にこの処理実行部２４は、コマンド情報に含まれる各コマンドを順次、注目ステップとして選択し、当該注目ステップのコマンドを参照する。ここで注目コマンドの選択順序等を決定する方法は広く知られているので、ここでの詳しい説明は省略する。
【００３９】
処理実行部２４の解釈部３１は、当該参照したコマンドを解釈（インタープレット）する。具体的にこの解釈部３１は、参照したコマンドが、
（１）キーボードやマウスカーソルの移動操作に対応する擬制動作指示を含む操作コマンド
である場合は、当該操作コマンドが表す擬制動作指示を出力するよう、実行部３３に指示する。
【００４０】
また、解釈部３１は、参照したコマンドが、
（２）画面上の画像要素に関係する操作を表す操作コマンド
であれば、検索部３２に対して、当該操作コマンドに含まれる画像要素の情報を参照し、当該画像要素に相当する画像部分を画面画像から検索するよう指示する。この際の検索部３２の処理については後に述べる。
【００４１】
解釈部３１は、さらに、参照したコマンドが（３）条件分岐であれば、指定された条件を満足するか否かにより、次に実行するコマンド（次に選択する注目ステップ）を決定する。
【００４２】
また解釈部３１は、参照したコマンドが（４）ループ処理を指定するものであれば、ループ処理するコマンドのグループを設定し、当該グループに含まれるコマンドを、ループ処理で指定された条件が満足されたと実行部３３が判断するまで繰り返し実行する。
【００４３】
さらに解釈部３１は、コマンドが（５）例外処理を指定するものであれば、指定されたステップのコマンドを実行部３３が実行している間にエラーが生じた場合に、指定された例外処理ステップから順にコマンドを実行する。
【００４４】
このほか、コマンドが（６）ネットワーク処理（メールクライアント等）や、プロセス間通信を行うもの、さらにはオペレーティングシステムのシステムコールやＡＰＩ（Application Program Interface）を呼び出すもの等である場合、解釈部３１は、指定された処理を行うよう実行部３３に指示する。
【００４５】
さらに解釈部３１は、コマンドにリトライ条件とリトライ処理とが設定されているときには、当該リトライ条件が満足されるか否かを判断し、リトライ条件が満足されたと判断すると、設定されているリトライ処理を実行する。
【００４６】
具体的に、画面上の画像要素に関係する操作を表す操作コマンドにおいてリトライ条件とリトライ処理とが、「画像要素が見出せない」ことをリトライ条件とし、このリトライ条件が満足されたときには、画像要素の検索を再度行うことをリトライ処理として、それぞれ設定されてもよい。この場合、リトライ処理までの間に、処理の遅延により表示されていなかった、検索の対象である画像要素が表示されれば、リトライ処理により画像要素の検索ができることとなる。
【００４７】
またリトライ処理のときには、検索条件を異ならせてもよい。例えば、上述の場合に、リトライ処理として、スクロールを試みて再度、画像要素の検索を行うことが設定されてもよい。
【００４８】
この場合解釈部３１は、後に述べる検索部３２の処理により検索が失敗したことを表す通知を受けると、上記リトライ条件が満足されたとして、リトライ処理を実行する。
【００４９】
なお、リトライ条件とリトライの処理とは、ここで述べた画像の検索に係る例に限られない。例えばクリック操作を行う操作コマンドにおいては、画面が変化しないことがリトライ条件とし、所定時間待機してからクリック操作を再実行することがリトライ処理として、それぞれ設定されていてもよい。同様に、文字列の入力を行う操作コマンドにおいては、同様に文字入力を行っても画面が変化しないことがリトライ条件として、また、所定時間待機してから、コマンド情報上でｎ個だけ前のコマンド（ｎは１以上の整数）から再実行すること（例えば１つ前のコマンドで、入力欄をクリックしていれば、当該コマンドから再実行すること）が、リトライ処理として、それぞれ設定されてもよい。ここで、画像の検索に係るリトライ処理については、種々の方法があるので、後に述べる。
【００５０】
検索部３２は、解釈部３１から入力される指示に従い、操作コマンドに含まれる画像要素の情報を参照し、当該画像要素に相当する画像部分を画面画像から検索する。
【００５１】
具体的に、この検索部３２は、処理の時点で表示されている画面画像を、所定の経路でスキャンしつつ、検索の対象となる画像要素と同じサイズの比較対象領域を抽出する。ここでスキャンの経路は例えば画面画像の左上隅を開始点として１ピクセルずつ右へずらしていき、比較対象領域の右端が画面画像の右端に達したところで、比較対象領域の左隅を画面画像の左隅まで移動し、比較対象領域を１ピクセルだけ下にずらす…といった処理を繰り返し、比較対象領域の右下隅と画面画像の右下隅とが一致したところで処理を終了することで行えばよい（いわゆるスキャンライン順に移動すればよい）。
【００５２】
検索部３２は、上記のスキャンの間、画面画像から抽出した比較対象領域内の画像部分が、検索の対象となる画像要素と一致したか否かを調べる。そして抽出した比較対象領域内の画像部分が、検索の対象となる画像要素と一致ならば、検索部３２は、そこでスキャンを終了し、当該画像要素を見出した位置を表す情報（例えばこの時点での比較対象領域の左上隅と右下隅との画面上のピクセルの位置を表す情報）を実行部３３に出力する。
【００５３】
検索部３２は、また、スキャンの処理が終了するまでの間に、画面画像から抽出した比較対象領域内の画像が、検索の対象となる画像要素と一致しなかったときには、解釈部３１に対して検索が失敗した旨を通知する。
【００５４】
実行部３３は、検索部３２から、画像要素に相当する画像部分を見出した位置を表す情報の入力を受けると、現在実行しようとする操作コマンドに含まれる（検索した画像要素に関連付けられた）実行されるべき操作を特定する情報を参照して、当該情報で特定される操作が行われたとする擬制動作指示をアプリケーション実行部２１（オペレーティングシステム）に対して出力する。
【００５５】
一例として、現在実行しようとしているコマンド（検索により見出した画像要素に係る操作コマンド）により特定される操作が、画面上の所定位置をクリックする操作である場合、実行部３３は次のように動作する。既に述べたように、操作コマンドでは、クリックする位置などが、対応する画像要素に係る位置（例えば画像要素の左上隅の座標とする）からの相対的位置として表現されている。
【００５６】
そこで実行部３３は、操作コマンドに含まれるクリックの位置を表す情報に、検索部３２から入力された、画像部分を見いだした位置を表す情報（見いだした位置の左上隅の情報）を加算して、実際にクリックするべき位置を表す情報を得る。なお、ここでの加算は、座標（ベクトル）情報の加算であり、成分ごとに加算される。
【００５７】
実行部３３は、得られた情報で表される位置をクリックしたとする擬制動作指示を、アプリケーション実行部２１に対して出力する。なお、ここではクリックを例として説明したが、ドラッグ操作（マウスボタンを押したままマウスを移動する操作）や、マウスボタンを離す操作についても同様に、実際に操作を行うべき位置を表す情報を、検索部３２から入力された、画像部分を見いだした位置を表す情報を、操作コマンドに含まれる位置の情報に加算することによって得て、得られた情報で表される位置までドラッグした場合や、当該位置でマウスボタンを離したとする擬制動作指示を、アプリケーション実行部２１に対して出力する。
【００５８】
［画像検索に係るリトライ処理の例］
次に、画像の検索に係るリトライ処理の例について述べる。本実施の形態の例では、検索部３２が画像の検索に失敗した場合に、解釈部３１が、画像要素に対応する画像部分の検索条件を次の例のように異ならせて、再度、検索部３２に対して画像の検索を行わせてもよい。すなわち本実施の形態の一例に係るリトライ処理では、検索範囲を変更して再度の検索を行う。また、本実施の形態の別の例では、画像部分が表示されるまでに時間がかかっている場合を考慮して、検索範囲を変更せずに再度の検索を行ってもよい（この場合、予め定めた回数だけ再度の検索を行っても検索に失敗する場合は、検索範囲を変更するなどして再度の検索を行ってもよく、また他のリトライ処理を行ってもよく、さらに、エラーを報知して処理を終了してもよい）。
【００５９】
ここで検索範囲を変更しての再度の検索とは、例えば現在表示している画面画像には含まれていないが、所定操作により出現する部分があるときに、当該部分を出現させてから再度検索するといった処理を意味する。具体的に解釈部３１は、実行中のアプリケーションプログラムが表示しているウィンドウ内に、現在は画面外にあるがスクロール操作によって現れる部分がある場合は、当該部分を出現させるスクロール操作を行って（スクロール操作を行う擬制動作指示をアプリケーション実行部２１に出力して）から、検索部３２に対して再度、検索を行うよう指示する。
【００６０】
解釈部３１は、検索部３２により画像要素が見いだされる（リトライ条件が満足されない）か、スクロールによって現れる新たな箇所がなくなるまで（スクロール操作の擬制動作指示後の所定時間内に画面変化が生じない状態となるまで）、スクロール操作と再度の検索と（すなわちリトライ処理）を繰り返して行う。
【００６１】
なお、リトライ処理時には、検索部３２がスキャンする範囲は画面全体でなくてもよく、スクロール操作の擬制動作指示の前後で変化した画像領域を検索部３２が特定し、当該特定した画像領域内のみをスキャンすることとしてもよい。検索部３２は、この検索の処理において画像要素が見いだされたときには、そこで比較対象領域のスキャンを終了し、当該画像部分を見いだした位置を表す情報（例えばこの時点での比較対象領域の左上隅と右下隅との画面上のピクセルの位置を表す情報）を実行部３３に出力する。
【００６２】
また解釈部３１は、スクロールによって現れる新たな箇所がなくなっており、かつその時点で表示されている画面において画像要素を見出すことができなかったときには、エラーを報知して処理を終了するか、他のリトライ処理（例えば後に説明するように画像要素の解像度を変更して検索する処理）を実行する。
【００６３】
［動作］
本実施の形態は以上の構成を基本的に備えており、次のように動作する。以下の例では、情報処理装置１がオペレーティングシステム上でスプレッドシートアプリケーション（Ｘ）と、データベースアプリケーション（Ｙ）とを動作させており、スプレッドシートアプリケーション（Ｘ）が、顧客名と連絡先とをそれぞれ第１，第２のカラムのセルに記録したファイルを開いて、その内容をウィンドウＷｘに表示しているものとする（図３）。またデータベースアプリケーション（Ｙ）は、図３に例示するように、顧客名の登録欄（Ｄname）と、連絡先の登録欄（Ｄaddr）と、登録ボタン（Ｂ）とを含むウィンドウＷｙを表示するものとする。
【００６４】
なお、ウィンドウＷｘとＷｙとの一方は、一部または全部が他方のウィンドウによって隠蔽されてもよい。図３では仮想的に手前側に配されるウィンドウＷｘがウィンドウＷｙの一部を隠蔽した状態となっていることを示している。このようにウィンドウが重なり合う状態となったり、手前側に移動したりといった操作は、グラフィカルユーザインタフェースを備えたオペレーティングシステムでは一般的なものであるので、ここでの詳しい説明は省略する。
【００６５】
また以下の例で情報処理装置１は、オペレーティングシステムとしての動作において、各アプリケーションで開いているウィンドウの一覧（各ウィンドウのアイコン：Ｗ）を、画面下部に表示しているものとする。
【００６６】
ユーザは、スプレッドシートアプリケーション（Ｘ）のウィンドウＷｘを選択し、各行のセルから顧客名と連絡先とを複写して、データベースアプリケーション（Ｙ）のウィンドウＷｙ内の各登録欄に貼り付け、登録ボタンを押下（クリック）するという処理を、繰り返し行うことを企図して、次のようにコマンド情報を設定する。
（ステップ１）画像要素：画面下部のウィンドウの一覧に含まれるウィンドウＷｘのアイコン、操作コマンド：画像内をクリック
（ステップ２）コマンド：最初のセル位置へ移動
（ステップ３）グループ設定（ループの先頭）
（ステップ４（グループ））コマンド：現在の行の第１列をコピー
（ステップ５（グループ））画像要素：画面下部のウィンドウの一覧に含まれるウィンドウＷｙのアイコン、操作コマンド：画像内をクリック
（ステップ６（グループ））画像要素：顧客名登録欄の部分の画像（図３（Ｔ１））、操作コマンド：対応する登録欄（図３（Ｔ１′））をクリックして選択し、ペースト
（ステップ７（グループ））画像要素：画面下部のウィンドウの一覧に含まれるウィンドウＷｘのアイコン、操作コマンド：画像内をクリック
（ステップ８（グループ））コマンド：現在の行の第２列をコピー
（ステップ９（グループ））画像要素：画面下部のウィンドウの一覧に含まれるウィンドウＷｙのアイコン、操作コマンド：画像内をクリック
（ステップ１０（グループ））画像要素：連絡先登録欄の部分の画像（図３（Ｔ２））、操作コマンド：対応する登録欄（図３（Ｔ２′））をクリックして選択し、ペースト
（ステップ１１（グループ））画像要素：登録ボタンの部分の画像（図３（Ｔ３））、操作コマンド：登録ボタンをクリック
（ステップ１２（グループ））画面変化を待機（条件分岐）
（ステップ１３（グループ））画像要素：画面下部のウィンドウの一覧に含まれるウィンドウＷｘのアイコン、操作コマンド：画像内をクリック
（ステップ１４（グループ））コマンド：次の行へ移動
（ステップ１５）ループの条件：現在の行にデータがあるか否かを判断し、データがあればステップ４以下のグループの処理を繰り返す。
（ステップ１６）（ステップ１５で現在の行にデータがなかった場合）処理を終了する。
【００６７】
なお、ステップ２等におけるセル間の移動や、コピー、ペースト等のコマンドは、スプレッドアプリケーション（Ｘ）のウィンドウＷｘを開いた状態でのキー操作や、メニュー選択（あるいは選択するメニューに対応するショートカット・キーの入力操作）等により実現される。またステップ４からステップ１４はグループとして設定されている。
【００６８】
ステップ６等における登録欄のクリックを指示する操作コマンドは、登録欄の範囲の座標にマウスカーソルを移動して当該位置でクリックしたこととするよう、ユーザが指示することにより設定されるが、このとき情報処理装置１は、指定された位置の座標の情報を、対応する画像要素に相当する画像部分の座標との相対的座標に変換する。具体的には、対応する画像要素が見いだされるべき範囲の左上隅の座標を（Ｆｘ，Ｆｙ）、クリックしたこととする座標（操作関連情報を設定する時点での画面上の座標）を（Ｃｘ，Ｃｙ）とすると、情報処理装置１は、この操作関連情報に含める位置の情報（Ｃ′ｘ，Ｃ′ｙ）を
Ｃ′ｘ＝Ｃｘ−Ｆｘ、
Ｃ′ｙ＝Ｃｙ−Ｆｙ、
として定める。
【００６９】
情報処理装置１は、ユーザが設定したコマンド情報に従い、次のように動作する。このコマンド情報の実行開始の時点で、ユーザは、スプレッドシートアプリケーション（Ｘ）のウィンドウＷｘと、データベースアプリケーション（Ｙ）のウィンドウＷｙとを開いておく。
（ステップ１）情報処理装置１は、ステップ１において設定されている画像要素（ウィンドウＷｘのアイコン）を、表示されている画面画像内で検索する。ここで、当該画像部分は、既に説明したように、画面下部のウィンドウの一覧の部分で見いだされる。情報処理装置１は、画面下部のウィンドウの一覧内で当該画像部分を見出すと、この画像要素に関連付けられた操作であるクリック操作を当該画像部分内で行ったとする擬制動作指示を出力する。
【００７０】
情報処理装置１は、オペレーティングシステムの動作として、画面下部のウィンドウの一覧に含まれるウィンドウＷｘのアイコンがクリックされたとして処理を行い、ウィンドウＷｘを操作の対象とする（フォーカスする）。
（ステップ２）情報処理装置１は、スプレッドアプリケーション（Ｘ）のウィンドウＷｘを開いた状態でのメニュー選択の処理により、最初のセル位置へ移動する。なお、ここでメニュー選択は、対応するショートカット・キーを押下したとする擬制動作指示を出力することで行ってもよいし、選択するメニューの画像部分を検索して当該画像部分をクリックする擬制動作指示を出力し、さらに選択するメニュー要素の画像部分を検索して当該画像部分をクリックする擬制動作指示を出力する、というようにマウス操作を擬制する処理によって行ってもよい。
（ステップ３）情報処理装置１は、繰り返し処理のグループの起点を設定し、（ステップ４）にて現在の行の第１列をコピーする処理を行う。この処理も、スプレッドアプリケーション（Ｘ）のウィンドウＷｘを開いた状態でのメニュー選択の処理により行う。
（ステップ５）情報処理装置１は、ステップ５において設定されている画像要素（ウィンドウＷｙのアイコン）を、表示されている画面画像内で検索する。この画像部分も画面下部のウィンドウの一覧の部分で見いだされる。情報処理装置１は、画面下部のウィンドウの一覧内で当該画像部分を見出すと、この画像要素に関連付けられた操作であるクリック操作を当該画像部分内で行ったとする擬制動作指示を出力する。
【００７１】
情報処理装置１は、オペレーティングシステムの動作として、画面下部のウィンドウの一覧に含まれるウィンドウＷｙのアイコンがクリックされたとして処理を行い、ウィンドウＷｙを操作の対象とする（フォーカスする）。
（ステップ６）情報処理装置１は、ステップ６において設定されている画像要素（顧客名登録欄の部分の画像）を、表示されている画面画像内で検索する。この画像部分はウィンドウＷｙの内部で見いだされる。情報処理装置１は、ウィンドウＷｙ内で当該画像部分を見出すと、この画像要素に関連付けられた操作として、登録欄を選択してペーストする擬制動作指示を出力する。
【００７２】
具体的に、この操作に対応する操作関連情報は、見いだした画像部分の範囲内にある、登録欄の画像部分をクリックする操作と、「編集メニュー」から「ペースト」を選択する操作とからなる。
【００７３】
このうち登録欄をクリックする操作は、見いだした画像部分の左上隅の座標に、操作関連情報に含まれる、クリックするべき位置の情報が表す座標を加算して、実際にクリックしたこととする座標を求め、当該求めた座標をクリックすることを表す擬制動作指示を出力する。
【００７４】
この処理により、操作関連情報を設定したときと、コマンド情報を実行した時点で、ウィンドウＷｙの画面画像上の位置が異なっていたとしても、検索した画像要素の位置と、クリックするべき位置との相対的位置が変化していない限り、所望の位置がクリックされたとする擬制動作指示が出力できる。
【００７５】
そしてこのステップ６ではこれにより、情報処理装置１が顧客名の登録欄をクリックしたと同じ状態となり、登録欄への入力が可能な状態となる。情報処理装置１は、ここに、ステップ４でコピーした文字列をペーストする。
【００７６】
以下、（ステップ７）では、情報処理装置１は、ステップ１と同様の動作を行い、スプレッドアプリケーション（Ｘ）のウィンドウＷｘをフォーカスする。そして（ステップ８）において、現在の行（カーソルがある行）の第２列目の内容をコピーする。
【００７７】
情報処理装置１は続いて、（ステップ９）にて、ステップ５と同様、ウィンドウＷｙをフォーカスし、（ステップ１０）にて、連絡先登録欄の部分の画像を検索する。情報処理装置１は、この連絡先登録欄の部分の画像をウィンドウＷｙ内から見出すと、当該画像を見いだした範囲の左上隅の座標に、操作関連情報に含まれる、クリックするべき位置の情報が表す座標を加算して、実際にクリックしたこととする座標を求め、当該求めた座標をクリックすることを表す擬制動作指示を出力する。
【００７８】
これにより、情報処理装置１が連絡先の登録欄をクリックしたと同じ状態となり、登録欄への入力が可能な状態となる。情報処理装置１は、ここに、ステップ８でコピーした文字列をペーストする。
【００７９】
情報処理装置１は、さらに、（ステップ１１）で登録ボタンの部分の画像を検索する。そして、この登録ボタンの部分の画像をウィンドウＷｙ内から見出すと、当該画像を見いだした範囲の左上隅の座標に、操作関連情報に含まれる、クリックするべき位置の情報が表す座標を加算して、実際にクリックしたこととする座標を求め、当該求めた座標をクリックすることを表す擬制動作指示を出力する。
【００８０】
情報処理装置１はこれにより、登録ボタンをクリックしたと同じ状態となり、顧客名及び連絡先の情報が、スプレッドシートアプリケーション（Ｘ）のファイルの内容から複写されてデータベースアプリケーション（Ｙ）のファイルに記録される。
【００８１】
さらに情報処理装置１は、（ステップ１２）の処理において、画面変化を待機（条件分岐）する。つまり、情報処理装置１は、データベースアプリケーション（Ｙ）が登録の処理を完了して、新たな登録を受け付ける画面を表示するまで待機する。
【００８２】
情報処理装置１は、データベースアプリケーション（Ｙ）の処理により新たな登録を受け付ける画面が表示され、画面表示が変化すると、次の（ステップ１３）の処理に移行する。そしてこの（ステップ１３）の処理にてウィンドウＷｘをフォーカスし、（ステップ１４）にて次の行へ移動する操作を表す擬制動作指示を出力する。そして情報処理装置１は、（ステップ１５）にてループの条件である、現在の行にデータがあるか否かを判断し、データがあればステップ３で規定されたグループの起点、すなわちステップ４以下のグループに属するコマンドの処理を続ける。一方、ステップ１５においてデータがなければ、処理を終了する。
【００８３】
情報処理装置１のこの動作により、スプレッドシートアプリケーション（Ｘ）のファイルに記録された、一連の顧客名と連絡先の情報が、データベースアプリケーション（Ｙ）のデータベースファイルに次々記録されることとなる。また、登録が行われたことを画面の変化により検出して、確実に登録するまでアプリケーションのプロセスを切り替えないよう維持することも可能としている。
【００８４】
［画像検索のリトライ処理の例］
既に述べたように、画像要素の検索を行うコマンド（上述のステップ６など）では、対象となる画像部分を含むウィンドウがフォーカスされていても、当該対象となる画像部分が必ず画面画像内に含まれるとは限らない。
【００８５】
例えば図４に、図３のウィンドウＷｙの別の例を示すように、ウィンドウＷｙのサイズによっては、登録欄と登録ボタンとの双方がウィンドウＷｙ内に収まらず、スクロール操作を行うことで、登録欄か登録ボタンのいずれか一方が表示された状態で操作を行う必要がある場合がある。
【００８６】
以下、ウィンドウＷｙが図４（ａ）の例のように、顧客名及び連絡先登録欄が表示され、登録ボタンが隠れた状態にあるときの、上述の処理について説明する。このような場合を想定して、ここではステップ１１のコマンドに、リトライ条件として「検索の失敗」、リトライ処理として「スクロール操作して再度の検索」が設定されているものとする。
【００８７】
この例における情報処理装置１の動作は、初回はステップ１０までは上述の説明におけるものと変わらないが、ステップ１１においてウィンドウＷｙ内に登録ボタンが表示された状態にないために検索が失敗となった後の動作が異なる。
【００８８】
情報処理装置１は、ステップ１１において検索が失敗となると、フォーカスしているウィンドウＷｙについてスクロールの操作を試みる。まず情報処理装置１は、スクロール位置を所定の初期位置にリセットする。ここで初期位置は、具体的には、ウィンドウＷ内に表示されている内容（ウィンドウコンテンツ）の左上隅を、ウィンドウＷの表示部分（ペイン）の左上隅に一致させた位置とする。この位置とするには、情報処理装置１は、左方向及び上方向へのスクロール操作を、画面画像が変化しなくなるまで行うこととすればよい。
【００８９】
以下、情報処理装置１は、画像要素の検索とスクロール操作とを繰り返し行う。ここでスクロール操作は、ページダウン・キーの操作またはウィンドウＷｙの右辺端部のスクロール・バーにある下向き矢印をクリックする操作等に対応する擬制動作指示を出力することにより行う。なお、矢印をクリックする操作に相当する擬制動作指示を出力する場合は、予め定めた回数だけクリックする擬制動作指示を出力することとする。
【００９０】
情報処理装置１は、スクロール操作を行うごとに、表示されている画像に変化があったか否かを調べる。この処理はスクロール操作前後の画面画像の差分を求めることにより行うことができる。
【００９１】
ここでスクロール操作により画面画像が変化しない場合は、情報処理装置１は、スクロール位置を上端まで戻した後、右方向へのスクロール操作を試みる。そして当該右方向へのスクロール操作の試行の後、画面画像が変化したならば、情報処理装置１は、再度、その位置から画像要素の検索と、下方へのスクロール操作とを繰り返して行う。
【００９２】
また右方向へのスクロール操作の試行により画面画像が変化しない場合は、情報処理装置１は、ウィンドウコンテンツの全体を検索しても画像要素が見いだせなかったと判断し、エラーを報知して処理を停止する。
【００９３】
そして情報処理装置１は、スクロール操作が行われた（画面画像が変化した）ことを検出すると、再度、ステップ１１における登録ボタンに係る画像要素の検索を行う。ここではウィンドウＷｙのスクロール操作が行われると、図４（ｂ）の例のように登録ボタンが表示され、顧客名や連絡先の登録欄が隠された状態となるので、ステップ１１の処理によって登録ボタンに係る画像要素の検索に成功し、以下、ステップ１４までの処理を、既に説明した例と同様に実行することとなる。
【００９４】
そして繰り返しの処理が行われた次のステップ６においても、その時点では前回の繰り返しのステップ１０にてウィンドウＷｙの内部が図４（ｂ）の状態（登録ボタンが表示され、顧客名や連絡先の登録欄が隠された状態）となっているので検索に失敗し、スクロール位置を初期位置として、再度の検索を行う。初期位置としたときには、ウィンドウＷｙの内部が図４（ａ）の状態となり、検索に成功するので、以下、既に説明したと同様の処理を行う。
【００９５】
このように本実施の形態の情報処理装置１は、表示している画面画像のうちに、所定操作（ここではスクロール操作）により出現する部分があるときには、当該部分を出現させて、再度、コマンド情報に含まれる画像要素に相当する画像部分を検索する。
【００９６】
［画像検索に係るリトライ処理の他の例（１）］
また、画面画像上で操作の対象となる画像部分が隠れている例は、スクロール操作により解消される例だけに限られない。例えばグラフィカルユーザインタフェースの要素のうちには、クリック操作を行うごとに、メニュー等の一覧を提示したり、隠したりといった動作を繰り返すドロップダウン等の要素がある。
【００９７】
本実施の形態の情報処理装置１では、このようなユーザインタフェースの要素に係る画像が予め設定されているときには、リトライ処理として、当該画像部分を画面画像から検索して、当該部分をクリックしたことを表す擬制動作指示を出力して隠されている情報を表示させてから、画像要素の再度の検索を行ってもよい。
【００９８】
［画像検索に係るリトライ処理の他の例（２）］
さらに本実施の形態の情報処理装置１が、コマンドの実行中に、当該コマンドで検索の対象として規定されている画像要素の検索に失敗するケースは、これまでの例に限られない。
【００９９】
これまでの説明では情報処理装置１においてコマンド情報を生成する際に表示されていた画面画像から画像要素を抽出しており、そして情報処理装置１がコマンドを実行するときに表示される画面画像は、当該コマンドを含むコマンド情報が生成されたときの画面画像と、解像度（縦横のピクセル数）や比率、その他の画像データの特徴が同じものであることとしていた。
【０１００】
しかしながら、コマンド情報を生成したときの画面画像と、実行時の画面画像との解像度等は常に一致しているとは限らない。例えば、コマンド情報の生成時に抽出されてコマンドに設定されている画像要素と、当該コマンドを実行する際の画面画像中の画像要素のサイズが異なっている場合があり得る。この場合、最初の検索部３２の処理においては画像要素に一致する画像部分を抽出することができないので、検索に失敗することとなる。
【０１０１】
そこで情報処理装置１は、リトライ処理として、検索の対象とする画像要素に対して所定の画像処理を施してから再検索を行うこととしてもよい。この画像処理は例えば次のようにして行う。
【０１０２】
本実施の形態のここでの一例として、情報処理装置１が、リトライ処理における動作として、例えば検索の対象となる画像要素を所定のピクセル数（拡縮ステップサイズと呼ぶ）だけ拡大または縮小して、再度の検索を行うことが考えられる。
【０１０３】
この場合、検索の処理において、検索部３２は、検索の対象となる画像要素（拡大・縮小後の画像要素）と同じサイズの比較対象範囲を、画面画像をスキャンしつつ抽出し、当該抽出した比較対象領域内の画像と、検索の対象となる画像要素との類似度を求め、類似度が予め定めたしきい値を超えたときにその位置で画像要素を見いだしたものと判断することで検索を行う。
【０１０４】
このように検索の対象となる画像要素を拡大・縮小した時に検索部３２が、完全一致する画像要素を検索するのではなく類似度を用いて検索を行うのは、画面画像の表示を行う際に利用される拡大縮小の方法と、リトライ処理時の拡大縮小の方法とが異なり、結果となる画像に相違が生じる場合があることを考慮したものである。この類似度を求める方法は、Perceptual Hashを用いる方法など、広く知られた種々の方法を採用できるので、ここでの詳しい説明を省略する。
【０１０５】
この場合、リトライ処理時の情報処理装置１は、検索部３２の処理により画像要素が見出されるか、予め定めた限界の拡大縮小サイズ（元の画像要素のサイズとのサイズの差により、例えば−１０ピクセルから＋１０ピクセルの範囲などとして予め定めておけばよい）まで拡大または縮小しても対応する画像要素が見出せないと判断されるまで、画像要素の拡大または縮小と検索の処理とを繰り返して行う。
【０１０６】
なお、限界となる拡大縮小サイズは、画像要素に関連付けてユーザが設定できるようにしておいてもよい。この設定は例えば元のサイズとの比率として設定できるようにしておいてもよい。
【０１０７】
さらに情報処理装置１は、リトライの処理として、画像要素の解像度の変更と、検索範囲の変更とを組み合わせて行ってもよい。この場合、解釈部３１は、検索部３２により画像要素が見いだせなかったときに画像要素の解像度を変更して再検索する処理を行い、以下、画像要素が見いだされるか、すべての可能な検索条件を試行して画像要素が見いだせないと判断されるまで、検索範囲を変更して再検索する処理と、画像要素の解像度を変更して再検索する処理とを繰り返して行う。
【０１０８】
また、ここでは解像度を変更する場合について例示したが、比率の変更等、他の画像処理を施す場合も、同様の方法で処理を行うことができる。また、画像処理は一つに限られず、解像度を変更するとともに、ガウシアンフィルタを適用するなど、複数の画像処理が施されてもよい。
【０１０９】
［代替画像を用いる例］
また本実施の形態の情報処理装置１における再検索処理は、検索の対象となる画像要素を変更するものであってもよい。この例では、１つのコマンドに、検索の対象となる画像要素のほかに、少なくとも一つの、代替画像要素となる画像要素を含める。そしてこれら複数の画像要素を含むコマンドの実行を行うときには、情報処理装置１は、当該複数の画像要素（もともと検索の対象としている画像要素と、少なくとも一つの代替画像要素と）のいずれかに対応する画像部分が検索により見いだされたときに、当該コマンドに基づく処理を実行する。
【０１１０】
［待機する例］
さらに本実施の形態の情報処理装置１が処理するコマンド情報には、既に述べたように、条件分岐のコマンドとして、直前のコマンドの処理の実行後、所定の条件が満足されるタイミングまで待機するべき旨のコマンドが設定されたステップが含まれてもよい。
【０１１１】
このような条件分岐は、例えば、操作に対するアプリケーションプログラムの応答が遅い場合や、データの通信が生じる場合など、画面画像の描画までに時間を要する操作が行われた後に利用される。
【０１１２】
具体的に、マウスクリックの操作コマンドの後、表示されている画像に変化があったことを条件として処理を再開する条件分岐コマンドを用いると、例えばウェブブラウザを操作するコマンド情報を実行中、リンクをクリックした後、リンク先のウェブページがレンダリングされるまで待機してから次の操作を行うよう設定できる。また、この待機指示による待機を終了する条件は、設定された時間が経過した後としてもよい。
【０１１３】
［機械学習を用いる例］
本実施の形態の情報処理装置１はさらに、リトライ処理時の検索条件として、すなわち、検索処理におけるエラー（例外）処理の一例として、代替画像要素を、機械学習の結果を利用して機械的に（人為的指定なしに）生成し、検索の対象として指定された画像要素に代えて、当該生成した代替画像要素を検索することとしてもよい。
【０１１４】
この例では、情報処理装置１は、画像要素を予め定めたサイズに縮小または拡大したときに、当該画像要素の代替となり得る画像に類似する画像を出力するよう機械学習した状態としたニューラルネットワーク（以下、代替画像用ネットワークと呼ぶ）を保持する。この代替画像用ネットワークは、一般的な畳み込みネットワーク等を用い、画像要素を入力したときの当該代替画像用ネットワークの出力と、入力した画像要素に対して代替画像として用いられ得る画像（教師情報）との差分に基づくバックプロパゲーションにより代替画像用ネットワーク自身を機械学習することで得る。このような機械学習の方法は広く知られているので、ここでの詳しい説明は省略する。
【０１１５】
情報処理装置１は、検索の対象となる画像要素が指定されているコマンドを実行するときに、当該画像要素を画面画像から検索し、検索に失敗すると、当該画像要素の代替画像要素を、この代替画像用ネットワークを介して取得する。そして当該取得した代替画像要素を、画面画像から検索する。
【０１１６】
なお、情報処理装置１は、代替画像用ネットワークを介して取得した代替画像要素の検索に失敗したときには、再度、当該代替画像要素を代替画像用ネットワークに入力し、その出力である新たな代替画像要素を得て、再度の検索を行うという動作を、予め定められた回数まで（または検索により代替画像要素が画面画像から見出されるまで）繰り返してもよい。
【０１１７】
また情報処理装置１は、再検索の処理の際に、互いに異なる教師情報で学習した複数の代替画像用ネットワークを用いて、複数の代替画像要素を得て、得られた複数の代替画像要素を順次、検索してもよい。
【０１１８】
この例の代替画像用ネットワークは、例えば、入力となる画像要素に対して、当該画像要素が「非選択」状態であることを表す、彩度の比較的低い画像となる場合を考慮して、入力する画像要素の彩度を低下させた画像要素を教師情報として学習した第１の代替画像用ネットワークを用いる。また、他の代替画像用ネットワークとして、入力となる画像要素に対して、文字部分だけを抽出した画像を教師情報として学習した第２の代替画像用ネットワークを用いる。
【０１１９】
このようにすると、画像要素の検索に失敗したときに、当該画像要素に対して比較的彩度の低い第１の代替画像要素と、文字部分のみを抽出した第２の代替画像要素を得て、再度の検索を行うことが可能となる。
【０１２０】
［ユーザ操作の機械学習］
また本実施の形態の情報処理装置１は、コマンド情報を生成するにあたり、ユーザの操作を機械学習してもよい。
【０１２１】
具体的には、情報処理装置１は、ＲＮＮ等のニューラルネットワークを利用し、ユーザの一連の操作Ｐ１，Ｐ２…の履歴のうち、ｉ番目の操作履歴Ｐｉからｎ個の操作履歴Ｐｉ，Ｐｉ＋１，…Ｐｉ＋ｎ−１を入力とし、次の操作Ｐｉ＋ｎを教師として機械学習しておく。
【０１２２】
このように機械学習しておくと、情報処理装置１は、コマンド情報の作成中、あるいはアプリケーションの操作中に、次のコマンドあるいは次の操作の候補を提示できるようになる。
【符号の説明】
【０１２３】
１  情報処理装置、１１  プロセッサ、１２  記憶部、１３  操作部、１４  表示部、１５  通信部、２１  アプリケーション実行部、２２  コマンド生成部、２３  コマンド情報保持部、２４  処理実行部、３１  解釈部、３２  検索部、３３  実行部。
【図１】
2020140574.tif 000003
【図２】
2020140574.tif 000004
【図３】
2020140574.tif 000005
【図４】
2020140574.tif 000006