JP2020140574A - Information processor and program - Google Patents
Information processor and program Download PDFInfo
- Publication number
- JP2020140574A JP2020140574A JP2019036955A JP2019036955A JP2020140574A JP 2020140574 A JP2020140574 A JP 2020140574A JP 2019036955 A JP2019036955 A JP 2019036955A JP 2019036955 A JP2019036955 A JP 2019036955A JP 2020140574 A JP2020140574 A JP 2020140574A
- Authority
- JP
- Japan
- Prior art keywords
- image element
- image
- command
- search
- information
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 110
- 238000012545 processing Methods 0.000 claims abstract description 56
- 230000008569 process Effects 0.000 claims description 95
- 230000010365 information processing Effects 0.000 claims description 88
- 238000010801 machine learning Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 claims description 2
- 230000008859 change Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 6
- 230000033001 locomotion Effects 0.000 description 6
- 239000000284 extract Substances 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000013518 transcription Methods 0.000 description 1
- 230000035897 transcription Effects 0.000 description 1
Images
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
Description
本発明は、動作指示に従って動作し、画面を表示する情報処理装置、及びプログラムに関する。 The present invention relates to an information processing device and a program that operate according to an operation instruction and display a screen.
パーソナルコンピュータ等の情報処理装置の普及により、種々の情報の検索や計算等の処理が格段に容易になっている。しかしながら、情報処理装置を運用するにあたっては、所望の処理を行うためのアプリケーションソフトウエアに対し、当該アプリケーションソフトウエアごとに定められる入力方式により必要な情報を入力する必要がある。 With the widespread use of information processing devices such as personal computers, processing such as retrieval and calculation of various information has become much easier. However, in operating the information processing device, it is necessary to input necessary information into the application software for performing the desired processing by the input method defined for each application software.
例えば、顧客管理のアプリケーションソフトウエアでは、顧客名や電話番号、担当者名等の情報の入力を行うこととなるが、このような情報が常に、人為的な操作を行うことなく、電子的に取り込むことができるとは限らない。具体的には、オペレータが、表計算アプリケーションプログラムのファイルにまとめられた情報を目視で参照しつつ、当該情報を、「コピー・アンド・ペースト」の操作により、顧客管理アプリケーションソフトウエアに写して入力する、などということが行われているのが実情である。 For example, in customer management application software, information such as the customer name, telephone number, and person in charge is input, and such information is always electronically performed without any human operation. It is not always possible to capture. Specifically, the operator visually refers to the information collected in the spreadsheet application program file, and copies the information into the customer management application software by "copy and paste" operation. The reality is that things like doing things are done.
このように、上記従来の情報処理装置では、情報の転記等、単純な繰り返し作業の操作であっても、これを人為的に行わなければならない場合があって、利便性が損なわれていた。 As described above, in the above-mentioned conventional information processing apparatus, even a simple repetitive operation such as information transcription may have to be performed artificially, which impairs convenience.
また、マクロと呼ばれる、自動的な操作実行のための機能を備えたアプリケーションプログラムも存在するが、複数のアプリケーションプログラムに対する操作を指示することが困難であり、さらにマクロのプログラムを記述することが一般的なユーザには難しいものとなっていた。 There are also application programs called macros that have a function for automatic operation execution, but it is difficult to instruct operations on multiple application programs, and it is common to write macro programs. It was difficult for a typical user.
特許文献1には、グラフィカルユーザインタフェースを備えたプログラムのテストをする場合に、画面設計に変更があったときにも、テスト工程を自動化できる方法が開示されている。
本発明は上記実情に鑑みて為されたもので、簡便な方法で、人為的操作を代替して機械実行させることのできる情報処理装置、及びプログラムを提供することを、その目的の一つとする。 The present invention has been made in view of the above circumstances, and one of its objects is to provide an information processing device and a program capable of performing machine execution in place of human operation by a simple method. ..
上記従来例の問題点を解決する本発明は、動作指示に従って動作し、画面を表示する情報処理装置であって、前記表示する画面上の画像要素と、当該画像要素に関係する操作を表す操作コマンドとを関連付けたコマンド情報を保持する保持手段と、前記画面を表示しているときに、当該表示している画面から、前記コマンド情報に含まれる画像要素に相当する画像部分を検索する検索手段と、検索によって前記コマンド情報に含まれる画像要素を見出したときに、当該画像要素に関連付けられた操作コマンドを取得し、当該操作コマンドに基づく所定処理を実行する処理実行手段と、を含み、前記検索手段が前記コマンド情報に含まれる画像要素を見出さなかった場合に、所定の再検索処理を実行することとしたものである。 The present invention, which solves the problems of the above conventional example, is an information processing device that operates according to an operation instruction and displays a screen, and is an operation representing an image element on the screen to be displayed and an operation related to the image element. A holding means for holding command information associated with a command, and a search means for searching an image portion corresponding to an image element included in the command information from the displayed screen when the screen is displayed. And, when an image element included in the command information is found by a search, a process execution means for acquiring an operation command associated with the image element and executing a predetermined process based on the operation command is included. When the search means does not find the image element included in the command information, a predetermined re-search process is executed.
本発明によると、簡便な方法で、人為的操作を代替して機械実行させることが可能となる。 According to the present invention, it is possible to execute a machine by substituting an artificial operation by a simple method.
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る情報処理装置1は、図1に例示するように、プロセッサ11と、記憶部12と、操作部13と、表示部14と、通信部15とを含んで構成されている。
Embodiments of the present invention will be described with reference to the drawings. As illustrated in FIG. 1, the
プロセッサ11は、CPU等のプログラム制御デバイスであり、記憶部12に格納されたプログラムを実行する。本実施の形態では、このプロセッサ11は、プログラムによる動作指示に従って動作し、画面を表示する処理、つまり、一般的なアプリケーションプログラムの実行処理を行う。またこのプロセッサ11は、一連の操作コマンドを含むコマンド情報を記憶部12に保持させる。この操作コマンドには、文字列の入力等のコマンドのほか、上記アプリケーションプログラムの処理において表示した画面上の画像要素と、当該画像要素に関係する操作を表す操作コマンドとを関連付けた操作コマンドが含まれる。このコマンド情報は、フローチャートなど、コマンドの実行フローを表す図形として表示出力されてもよい。
The
またプロセッサ11は、記憶部12に保持しているコマンド情報に基づく処理を実行する。そして当該処理中に、画面上の画像要素を検索の条件とするコマンドを実行する際には、このコマンド情報に基づく処理と並列して実行しているアプリケーションプログラムの実行中の表示画面から、上記実行しているコマンドで特定される画像要素に相当する画像部分を検索する。そしてここでの検索によってコマンド情報に含まれる画像要素を見出すと、プロセッサ11は、当該コマンドで指定される所定処理を実行する。またプロセッサ11は、検索の処理において、コマンド情報に含まれる画像要素を見出さなかった場合には、所定の再検索処理等のリトライ処理を実行することとしてもよい。このプロセッサ11の詳しい動作については後に述べる。
Further, the
記憶部12は、メモリデバイスやディスクデバイス等であり、プロセッサ11によって実行されるプログラムを保持する。本実施の形態ではこのプログラムは、コンピュータ可読かつ非一時的な、DVD等の記録媒体に格納されて提供され、この記憶部12に格納されたものであってもよい。またこの記憶部12は、プロセッサ11のワークメモリとしても動作し、コマンド情報等を保持する。
The
操作部13は、マウスやキーボード等であり、利用者の指示操作を受け入れて、当該指示操作の内容を表す情報を、プロセッサ11に出力する。表示部14は、ディスプレイ等であり、プロセッサ11が出力する指示に従って情報を表示する。
The
通信部15は、ネットワークインタフェース等であり、プロセッサ11が出力する指示に従い、ネットワークを介して接続されるサーバ等に対して情報を送出する。また、この通信部15は、ネットワークを介して接続されるサーバ等から情報を受信してプロセッサ11に出力する。
The
次に、プロセッサ11の動作について説明する。本実施の形態のプロセッサ11は、記憶部12に格納されたプログラムに従って動作して、機能的に、図2に例示するように、アプリケーション実行部21と、コマンド生成部22と、コマンド情報保持部23と、処理実行部24とを含む構成を実現する。またここで処理実行部24は、解釈部31と、検索部32と、実行部33とを含む。
Next, the operation of the
アプリケーション実行部21は、一般的なアプリケーションプログラムの実行処理を行う。本実施の形態では、情報処理装置1のプロセッサ11は、一般的なパーソナルコンピュータのオペレーティングシステム、例えばウィンドウズ(登録商標)の処理を実行しており、複数のアプリケーションプログラムを時分割的に、実質的に並列に実行している(いわゆるマルチタスク処理を実行している)ものとする。
The
ここでアプリケーション実行部21により実行されるアプリケーションプログラムは、一般的にはユーザが操作部13を操作することによってオペレーティングシステムを介して入力される動作指示に従って動作し、所定の処理を実行して、当該実行の結果を表示部14等の画面に表示出力する。
Here, the application program executed by the
ここで操作部13から入力されるのに代えて、操作部13に対してユーザが所定の操作を行ったときと同じ動作指示(以下、擬制動作指示と呼ぶ)をオペレーティングシステムに対して出力することで、あたかもユーザが操作部13に対して上記所定の操作をしたかのような動作指示が、情報処理装置1に対して行われる。
Here, instead of being input from the
例えばあるアプリケーションプログラムのウィンドウ内の所定位置をクリックした場合と同じ動作指示である擬制動作指示をオペレーティングシステムに対して出力すると、オペレーティングシステムはそれ自身の動作として、上記所定位置でクリックが行われたことを表す情報を、対応するアプリケーションプログラムに対して出力する(あるいはオペレーティングシステムのユーザインタフェースアプリケーションが、対応するアプリケーションプログラムのウィンドウを操作の対象としてアクティブにする)。そして当該アプリケーションプログラム(オペレーティングシステムのユーザインタフェースアプリケーションを含む)は、ユーザが当該擬制動作指示に対応する操作を行った場合と同じ処理を行う。 For example, when a pseudo operation instruction, which is the same operation instruction as when a click is performed at a predetermined position in a window of an application program, is output to the operating system, the operating system performs the click at the predetermined position as its own operation. Outputs information indicating that to the corresponding application program (or the operating system user interface application activates the corresponding application program window for operation). Then, the application program (including the user interface application of the operating system) performs the same processing as when the user performs an operation corresponding to the fictitious operation instruction.
コマンド生成部22は、ユーザのコマンド情報の生成指示に従って、コマンド情報を生成する。本実施の形態では、このコマンド情報には、キーボードやマウスカーソルの移動操作に対応する擬制動作指示を含むコマンド(以下、擬制動作指示を出力するコマンドを操作コマンドと称する)、のほか、条件分岐のコマンド等種々のコマンドが含まれる。
The
具体的にこのコマンド生成部22は、コマンド情報の生成指示を受けると、操作コマンドの入力を受け付ける。ここでコマンド生成部22は、
(1)キーボードやマウスカーソルの移動操作に対応する操作を表す操作コマンド、
(2)画面上の画像要素に関係する操作を表す操作コマンド、
(3)条件分岐
(4)ループ処理
(5)例外処理
(6)ネットワーク処理(メールクライアント等)
を含むコマンドテンプレートの候補から一つのコマンドテンプレートの選択を受け入れる。
Specifically, when the
(1) Operation commands that represent operations corresponding to keyboard and mouse cursor movement operations,
(2) Operation commands that represent operations related to image elements on the screen,
(3) Conditional branching (4) Loop processing (5) Exception handling (6) Network processing (mail client, etc.)
Accepts the selection of one command template from the candidate command templates including.
そして受け入れたコマンドテンプレートが文字列の入力操作を表すものである場合や、マウスカーソルの移動の操作をあらわすものである場合は、ユーザに対して実際に文字列やマウスカーソルの移動操作を求める。ユーザが当該求めに応じて文字列の入力操作やマウスカーソルの移動操作を行うと、当該操作を記録して、当該操作に対応する擬制動作指示を出力する操作コマンドを生成する。このような操作の記録の方法は、広く知られているので、ここでの詳しい説明は省略する。 Then, when the accepted command template represents a character string input operation or a mouse cursor movement operation, the user is actually requested to move the character string or the mouse cursor. When the user performs a character string input operation or a mouse cursor movement operation in response to the request, the operation is recorded and an operation command for outputting a fictitious operation instruction corresponding to the operation is generated. Since the method of recording such an operation is widely known, detailed description thereof will be omitted here.
またコマンド生成部22は、画面上の画像要素に関係する操作を表す操作コマンドを生成するべき旨の指示を受け入れると、その時点で画面上(以下では画面全体の画像を画面画像と呼ぶ)に表示される画像の一部(画像要素)を指定する情報の入力を、ユーザに対して要求する。この動作は、例えばユーザに対し、実際にアプリケーションプログラムの動作中に表示された画面画像の一部を選択させること(範囲指定等を行わせること)で実行できる。
When the
そしてコマンド生成部22は、上記要求に応じてユーザが入力した画像要素を受け入れ、さらに、当該受け入れた画像要素に関連して実行されるべき操作を特定する情報の入力を受け入れる。この情報により特定される操作としては、例えば受け入れた画像要素に対応する入力欄を選択するマウスクリックの操作や、ユーザが指定した画面上の位置にマウスカーソルを移動してマウスをクリックする操作等が含まれる。そしてコマンド生成部22は、当該受け入れた画像要素と、それに関連付けて実行されるべき操作を特定する情報とを関連付けて、操作コマンドを生成する。
Then, the
なお、本実施の形態においては、コマンド生成部22は、実行されるべき操作として、マウスクリック等、画面上の位置を特定する操作を特定する情報の入力が行われた場合、受け入れた画像要素の位置(例えば当該画像要素の左上隅の座標の情報でよい)からの相対的位置として、当該操作に係る位置の情報を、操作コマンドに含めて記録する。
In the present embodiment, the
またここでコマンド生成部22が受け入れる、実行されるべき操作を表す操作コマンドは、一つの画像要素ごとに一つとは限らず、一つの画像要素に対して、例えばクリック操作と文字列の入力操作等、複数の操作コマンドが関連付けられてもよい。
Further, the operation command that the
さらに本実施の形態の一例では、ここでコマンド生成部22が受け入れるコマンドには、操作を表す操作コマンドのほか、コマンド実行に関わるコマンドとして例えば、条件分岐に関わるコマンドや、ループ処理のコマンド、例外処理に関わるコマンド等が含まれる。ここで条件分岐に関わるコマンドを受け入れるときには、コマンド生成部22は、処理の分岐に関わる条件の指定を受け入れる。この条件には、
・時間経過の条件(10秒経過したか、など)
・画像要素の変化に係る条件(指定された画像要素が出現した、あるいは指定された画像要素が表示されなくなった、など)
・操作対象に係る条件(操作の対象となるデータが存在しない、などの条件)
などといった条件を含む。
Further, in an example of the present embodiment, the commands received by the
・ Conditions for the passage of time (whether 10 seconds have passed, etc.)
-Conditions related to changes in image elements (specified image elements have appeared, specified image elements are no longer displayed, etc.)
-Conditions related to the operation target (conditions such as no data to be operated)
Including conditions such as.
コマンド生成部22は、画像要素の変化に係る条件の指定を受け入れるときには、画像要素に対する操作を表す操作コマンドを生成する際と同様に、実際にアプリケーションプログラムの動作中に表示された画面画像の一部を選択させること(範囲指定等を行わせること)とすればよい。
When accepting the specification of the condition relating to the change of the image element, the
また、ループ処理のコマンドでは、繰り返し処理されるコマンドの群(グループ)が設定されるとともに、ループの条件が設定される。この場合の条件は、条件分岐におけるものと同様であり、条件が満足されるまで、指定されたグループに含まれるコマンドの処理を繰り返す。 In the loop processing command, a group of commands to be repeatedly processed is set, and loop conditions are set. The conditions in this case are the same as those in the conditional branch, and the processing of the commands included in the specified group is repeated until the conditions are satisfied.
コマンド生成部22は、ユーザがコマンドの入力の終了を指示するまで、繰り返してコマンドの入力を受け入れる。そして、コマンド生成部22は、ユーザがコマンドの入力の終了を指示すると、生成した順(あるいは指定された順)に、生成したコマンドを配列して、当該コマンドを一連の処理として実行する、コマンド情報を生成する。
The
また、本実施の形態の一例では、コマンド情報に含まれるコマンドには、コマンドの実行中に生じ得る所定のリトライ条件(画像の検索に失敗した、などの条件)とともに、当該リトライ条件が満足されたときに実行されるべきリトライ処理がさらに関連付けられてもよい。 Further, in an example of the present embodiment, the command included in the command information is satisfied with a predetermined retry condition (condition such as failure to search for an image) that may occur during execution of the command. The retry process to be executed at the time may be further associated.
コマンド情報保持部23は、コマンド生成部22が生成したコマンド情報を、記憶部12に格納して記録する。このときコマンド情報保持部23は、各コマンド情報にそれぞれを特定する名称等を関連付けて保持してもよい。この名称等は、ユーザから入力されるものであってもよい。
The command
処理実行部24は、インタープリタ等であり、ユーザから、コマンド情報を特定する指示とともに、当該指示により特定されるコマンド情報を実行するべき旨の指示を受け入れると、当該コマンド情報に含まれるコマンドに基づく処理を、順次実行する。 The processing execution unit 24 is an interpreter or the like, and when it receives an instruction from the user to specify the command information and an instruction to execute the command information specified by the instruction, it is based on the command included in the command information. The processes are executed sequentially.
本実施の形態において処理実行部24は、プロセッサ11が一般的なアプリケーションプログラムや、オペレーティングシステムの処理を実行して、当該処理に基づく画面表示を行っているときに、ユーザからコマンド情報の実行指示を受け入れて次のように動作する。
In the present embodiment, the process execution unit 24 is instructed by the user to execute command information when the
すなわち、各コマンドに基づく処理の過程において、処理実行部24は、コマンド情報に含まれる先頭のコマンドから、各ステップのコマンドを実行する。具体的にこの処理実行部24は、コマンド情報に含まれる各コマンドを順次、注目ステップとして選択し、当該注目ステップのコマンドを参照する。ここで注目コマンドの選択順序等を決定する方法は広く知られているので、ここでの詳しい説明は省略する。 That is, in the process of processing based on each command, the processing execution unit 24 executes the command of each step from the first command included in the command information. Specifically, the processing execution unit 24 sequentially selects each command included in the command information as a attention step, and refers to the command of the attention step. Since the method of determining the selection order of the command of interest is widely known here, detailed description thereof will be omitted here.
処理実行部24の解釈部31は、当該参照したコマンドを解釈(インタープレット)する。具体的にこの解釈部31は、参照したコマンドが、
(1)キーボードやマウスカーソルの移動操作に対応する擬制動作指示を含む操作コマンド
である場合は、当該操作コマンドが表す擬制動作指示を出力するよう、実行部33に指示する。
The
(1) When the operation command includes a fictitious operation instruction corresponding to the movement operation of the keyboard or the mouse cursor, the
また、解釈部31は、参照したコマンドが、
(2)画面上の画像要素に関係する操作を表す操作コマンド
であれば、検索部32に対して、当該操作コマンドに含まれる画像要素の情報を参照し、当該画像要素に相当する画像部分を画面画像から検索するよう指示する。この際の検索部32の処理については後に述べる。
Further, in the
(2) If it is an operation command representing an operation related to an image element on the screen, the
解釈部31は、さらに、参照したコマンドが(3)条件分岐であれば、指定された条件を満足するか否かにより、次に実行するコマンド(次に選択する注目ステップ)を決定する。
Further, if the referenced command is (3) conditional branching, the interpreting
また解釈部31は、参照したコマンドが(4)ループ処理を指定するものであれば、ループ処理するコマンドのグループを設定し、当該グループに含まれるコマンドを、ループ処理で指定された条件が満足されたと実行部33が判断するまで繰り返し実行する。
Further, if the referenced command specifies (4) loop processing, the
さらに解釈部31は、コマンドが(5)例外処理を指定するものであれば、指定されたステップのコマンドを実行部33が実行している間にエラーが生じた場合に、指定された例外処理ステップから順にコマンドを実行する。
Further, if the command specifies (5) exception handling, the interpreting
このほか、コマンドが(6)ネットワーク処理(メールクライアント等)や、プロセス間通信を行うもの、さらにはオペレーティングシステムのシステムコールやAPI(Application Program Interface)を呼び出すもの等である場合、解釈部31は、指定された処理を行うよう実行部33に指示する。
In addition, if the command is (6) network processing (mail client, etc.), interprocess communication, or calling an operating system system call or API (Application Program Interface), the
さらに解釈部31は、コマンドにリトライ条件とリトライ処理とが設定されているときには、当該リトライ条件が満足されるか否かを判断し、リトライ条件が満足されたと判断すると、設定されているリトライ処理を実行する。
Further, the
具体的に、画面上の画像要素に関係する操作を表す操作コマンドにおいてリトライ条件とリトライ処理とが、「画像要素が見出せない」ことをリトライ条件とし、このリトライ条件が満足されたときには、画像要素の検索を再度行うことをリトライ処理として、それぞれ設定されてもよい。この場合、リトライ処理までの間に、処理の遅延により表示されていなかった、検索の対象である画像要素が表示されれば、リトライ処理により画像要素の検索ができることとなる。 Specifically, in the operation command representing the operation related to the image element on the screen, the retry condition and the retry process set the retry condition that "the image element cannot be found", and when this retry condition is satisfied, the image element. It may be set as a retry process to perform the search again. In this case, if the image element to be searched, which was not displayed due to the processing delay, is displayed before the retry processing, the image element can be searched by the retry processing.
またリトライ処理のときには、検索条件を異ならせてもよい。例えば、上述の場合に、リトライ処理として、スクロールを試みて再度、画像要素の検索を行うことが設定されてもよい。 In addition, the search conditions may be different during the retry process. For example, in the above case, as the retry process, scrolling may be attempted and the image element may be searched again.
この場合解釈部31は、後に述べる検索部32の処理により検索が失敗したことを表す通知を受けると、上記リトライ条件が満足されたとして、リトライ処理を実行する。
In this case, when the
なお、リトライ条件とリトライの処理とは、ここで述べた画像の検索に係る例に限られない。例えばクリック操作を行う操作コマンドにおいては、画面が変化しないことがリトライ条件とし、所定時間待機してからクリック操作を再実行することがリトライ処理として、それぞれ設定されていてもよい。同様に、文字列の入力を行う操作コマンドにおいては、同様に文字入力を行っても画面が変化しないことがリトライ条件として、また、所定時間待機してから、コマンド情報上でn個だけ前のコマンド(nは1以上の整数)から再実行すること(例えば1つ前のコマンドで、入力欄をクリックしていれば、当該コマンドから再実行すること)が、リトライ処理として、それぞれ設定されてもよい。ここで、画像の検索に係るリトライ処理については、種々の方法があるので、後に述べる。 The retry condition and the retry process are not limited to the examples related to the image search described here. For example, in the operation command for performing the click operation, the retry condition may be set so that the screen does not change, and the retry process may be set to wait for a predetermined time and then re-execute the click operation. Similarly, in the operation command for inputting a character string, the retry condition is that the screen does not change even if the character input is performed in the same manner, and after waiting for a predetermined time, the command information is n times before. Re-execution from the command (n is an integer of 1 or more) (for example, if the previous command clicks the input field, re-executes from the command) is set as the retry process. May be good. Here, since there are various methods for the retry process related to the image search, they will be described later.
検索部32は、解釈部31から入力される指示に従い、操作コマンドに含まれる画像要素の情報を参照し、当該画像要素に相当する画像部分を画面画像から検索する。
The
具体的に、この検索部32は、処理の時点で表示されている画面画像を、所定の経路でスキャンしつつ、検索の対象となる画像要素と同じサイズの比較対象領域を抽出する。ここでスキャンの経路は例えば画面画像の左上隅を開始点として1ピクセルずつ右へずらしていき、比較対象領域の右端が画面画像の右端に達したところで、比較対象領域の左隅を画面画像の左隅まで移動し、比較対象領域を1ピクセルだけ下にずらす…といった処理を繰り返し、比較対象領域の右下隅と画面画像の右下隅とが一致したところで処理を終了することで行えばよい(いわゆるスキャンライン順に移動すればよい)。
Specifically, the
検索部32は、上記のスキャンの間、画面画像から抽出した比較対象領域内の画像部分が、検索の対象となる画像要素と一致したか否かを調べる。そして抽出した比較対象領域内の画像部分が、検索の対象となる画像要素と一致ならば、検索部32は、そこでスキャンを終了し、当該画像要素を見出した位置を表す情報(例えばこの時点での比較対象領域の左上隅と右下隅との画面上のピクセルの位置を表す情報)を実行部33に出力する。
During the above scan, the
検索部32は、また、スキャンの処理が終了するまでの間に、画面画像から抽出した比較対象領域内の画像が、検索の対象となる画像要素と一致しなかったときには、解釈部31に対して検索が失敗した旨を通知する。
The
実行部33は、検索部32から、画像要素に相当する画像部分を見出した位置を表す情報の入力を受けると、現在実行しようとする操作コマンドに含まれる(検索した画像要素に関連付けられた)実行されるべき操作を特定する情報を参照して、当該情報で特定される操作が行われたとする擬制動作指示をアプリケーション実行部21(オペレーティングシステム)に対して出力する。
When the
一例として、現在実行しようとしているコマンド(検索により見出した画像要素に係る操作コマンド)により特定される操作が、画面上の所定位置をクリックする操作である場合、実行部33は次のように動作する。既に述べたように、操作コマンドでは、クリックする位置などが、対応する画像要素に係る位置(例えば画像要素の左上隅の座標とする)からの相対的位置として表現されている。
As an example, when the operation specified by the command currently being executed (operation command related to the image element found by the search) is an operation of clicking a predetermined position on the screen, the
そこで実行部33は、操作コマンドに含まれるクリックの位置を表す情報に、検索部32から入力された、画像部分を見いだした位置を表す情報(見いだした位置の左上隅の情報)を加算して、実際にクリックするべき位置を表す情報を得る。なお、ここでの加算は、座標(ベクトル)情報の加算であり、成分ごとに加算される。
Therefore, the
実行部33は、得られた情報で表される位置をクリックしたとする擬制動作指示を、アプリケーション実行部21に対して出力する。なお、ここではクリックを例として説明したが、ドラッグ操作(マウスボタンを押したままマウスを移動する操作)や、マウスボタンを離す操作についても同様に、実際に操作を行うべき位置を表す情報を、検索部32から入力された、画像部分を見いだした位置を表す情報を、操作コマンドに含まれる位置の情報に加算することによって得て、得られた情報で表される位置までドラッグした場合や、当該位置でマウスボタンを離したとする擬制動作指示を、アプリケーション実行部21に対して出力する。
The
[画像検索に係るリトライ処理の例]
次に、画像の検索に係るリトライ処理の例について述べる。本実施の形態の例では、検索部32が画像の検索に失敗した場合に、解釈部31が、画像要素に対応する画像部分の検索条件を次の例のように異ならせて、再度、検索部32に対して画像の検索を行わせてもよい。すなわち本実施の形態の一例に係るリトライ処理では、検索範囲を変更して再度の検索を行う。また、本実施の形態の別の例では、画像部分が表示されるまでに時間がかかっている場合を考慮して、検索範囲を変更せずに再度の検索を行ってもよい(この場合、予め定めた回数だけ再度の検索を行っても検索に失敗する場合は、検索範囲を変更するなどして再度の検索を行ってもよく、また他のリトライ処理を行ってもよく、さらに、エラーを報知して処理を終了してもよい)。
[Example of retry processing related to image search]
Next, an example of the retry process related to the image search will be described. In the example of the present embodiment, when the
ここで検索範囲を変更しての再度の検索とは、例えば現在表示している画面画像には含まれていないが、所定操作により出現する部分があるときに、当該部分を出現させてから再度検索するといった処理を意味する。具体的に解釈部31は、実行中のアプリケーションプログラムが表示しているウィンドウ内に、現在は画面外にあるがスクロール操作によって現れる部分がある場合は、当該部分を出現させるスクロール操作を行って(スクロール操作を行う擬制動作指示をアプリケーション実行部21に出力して)から、検索部32に対して再度、検索を行うよう指示する。
Here, the search again by changing the search range is, for example, when there is a part that appears by a predetermined operation although it is not included in the currently displayed screen image, the part is made to appear and then again. It means a process such as searching. Specifically, if there is a part that is currently off the screen but appears by a scroll operation in the window displayed by the running application program, the
解釈部31は、検索部32により画像要素が見いだされる(リトライ条件が満足されない)か、スクロールによって現れる新たな箇所がなくなるまで(スクロール操作の擬制動作指示後の所定時間内に画面変化が生じない状態となるまで)、スクロール操作と再度の検索と(すなわちリトライ処理)を繰り返して行う。
The
なお、リトライ処理時には、検索部32がスキャンする範囲は画面全体でなくてもよく、スクロール操作の擬制動作指示の前後で変化した画像領域を検索部32が特定し、当該特定した画像領域内のみをスキャンすることとしてもよい。検索部32は、この検索の処理において画像要素が見いだされたときには、そこで比較対象領域のスキャンを終了し、当該画像部分を見いだした位置を表す情報(例えばこの時点での比較対象領域の左上隅と右下隅との画面上のピクセルの位置を表す情報)を実行部33に出力する。
At the time of retry processing, the range scanned by the
また解釈部31は、スクロールによって現れる新たな箇所がなくなっており、かつその時点で表示されている画面において画像要素を見出すことができなかったときには、エラーを報知して処理を終了するか、他のリトライ処理(例えば後に説明するように画像要素の解像度を変更して検索する処理)を実行する。
Further, when there is no new part appearing by scrolling and the image element cannot be found on the screen displayed at that time, the
[動作]
本実施の形態は以上の構成を基本的に備えており、次のように動作する。以下の例では、情報処理装置1がオペレーティングシステム上でスプレッドシートアプリケーション(X)と、データベースアプリケーション(Y)とを動作させており、スプレッドシートアプリケーション(X)が、顧客名と連絡先とをそれぞれ第1,第2のカラムのセルに記録したファイルを開いて、その内容をウィンドウWxに表示しているものとする(図3)。またデータベースアプリケーション(Y)は、図3に例示するように、顧客名の登録欄(Dname)と、連絡先の登録欄(Daddr)と、登録ボタン(B)とを含むウィンドウWyを表示するものとする。
[motion]
This embodiment basically has the above configuration and operates as follows. In the following example, the
なお、ウィンドウWxとWyとの一方は、一部または全部が他方のウィンドウによって隠蔽されてもよい。図3では仮想的に手前側に配されるウィンドウWxがウィンドウWyの一部を隠蔽した状態となっていることを示している。このようにウィンドウが重なり合う状態となったり、手前側に移動したりといった操作は、グラフィカルユーザインタフェースを備えたオペレーティングシステムでは一般的なものであるので、ここでの詳しい説明は省略する。 One of the windows Wx and Wy may be partially or wholly hidden by the other window. FIG. 3 shows that the window Wx virtually arranged on the front side is in a state of hiding a part of the window Wy. Such operations such as overlapping windows and moving to the front side are common in an operating system having a graphical user interface, and thus detailed description thereof will be omitted here.
また以下の例で情報処理装置1は、オペレーティングシステムとしての動作において、各アプリケーションで開いているウィンドウの一覧(各ウィンドウのアイコン:W)を、画面下部に表示しているものとする。
Further, in the following example, it is assumed that the
ユーザは、スプレッドシートアプリケーション(X)のウィンドウWxを選択し、各行のセルから顧客名と連絡先とを複写して、データベースアプリケーション(Y)のウィンドウWy内の各登録欄に貼り付け、登録ボタンを押下(クリック)するという処理を、繰り返し行うことを企図して、次のようにコマンド情報を設定する。
(ステップ1)画像要素:画面下部のウィンドウの一覧に含まれるウィンドウWxのアイコン、操作コマンド:画像内をクリック
(ステップ2)コマンド:最初のセル位置へ移動
(ステップ3)グループ設定(ループの先頭)
(ステップ4(グループ))コマンド:現在の行の第1列をコピー
(ステップ5(グループ))画像要素:画面下部のウィンドウの一覧に含まれるウィンドウWyのアイコン、操作コマンド:画像内をクリック
(ステップ6(グループ))画像要素:顧客名登録欄の部分の画像(図3(T1))、操作コマンド:対応する登録欄(図3(T1′))をクリックして選択し、ペースト
(ステップ7(グループ))画像要素:画面下部のウィンドウの一覧に含まれるウィンドウWxのアイコン、操作コマンド:画像内をクリック
(ステップ8(グループ))コマンド:現在の行の第2列をコピー
(ステップ9(グループ))画像要素:画面下部のウィンドウの一覧に含まれるウィンドウWyのアイコン、操作コマンド:画像内をクリック
(ステップ10(グループ))画像要素:連絡先登録欄の部分の画像(図3(T2))、操作コマンド:対応する登録欄(図3(T2′))をクリックして選択し、ペースト
(ステップ11(グループ))画像要素:登録ボタンの部分の画像(図3(T3))、操作コマンド:登録ボタンをクリック
(ステップ12(グループ))画面変化を待機(条件分岐)
(ステップ13(グループ))画像要素:画面下部のウィンドウの一覧に含まれるウィンドウWxのアイコン、操作コマンド:画像内をクリック
(ステップ14(グループ))コマンド:次の行へ移動
(ステップ15)ループの条件:現在の行にデータがあるか否かを判断し、データがあればステップ4以下のグループの処理を繰り返す。
(ステップ16)(ステップ15で現在の行にデータがなかった場合)処理を終了する。
The user selects the window Wx of the spreadsheet application (X), copies the customer name and contact information from the cells in each row, pastes them into each registration field in the window Wy of the database application (Y), and presses the registration button. The command information is set as follows with the intention of repeating the process of pressing (clicking).
(Step 1) Image element: Window Wx icon included in the list of windows at the bottom of the screen, Operation command: Click in the image (Step 2) Command: Move to the first cell position (Step 3) Group setting (Top of loop) )
(Step 4 (Group)) Command: Copy the first column of the current row (Step 5 (Group)) Image element: Window Wy icon included in the list of windows at the bottom of the screen, Operation command: Click in the image (Step 4 (Group)) Step 6 (Group)) Image element: Image of customer name registration field (Fig. 3 (T1)), Operation command: Corresponding registration field (Fig. 3 (T1')) to select and paste (step) 7 (Group)) Image element: Window Wx icon included in the list of windows at the bottom of the screen, Operation command: Click in the image (Step 8 (Group)) Command: Copy the second column of the current row (Step 9) (Group)) Image element: Window Wy icon included in the list of windows at the bottom of the screen, Operation command: Click in the image (Step 10 (Group)) Image element: Image of the contact registration field (Fig. 3 (Fig. 3) T2)), Operation command: Click the corresponding registration field (Fig. 3 (T2')) to select and paste (step 11 (group)) Image element: Image of the registration button part (Fig. 3 (T3)) , Operation command: Click the registration button (step 12 (group)) Wait for screen change (conditional branch)
(Step 13 (Group)) Image element: Window Wx icon included in the list of windows at the bottom of the screen, Operation command: Click in the image (Step 14 (Group)) Command: Move to the next line (Step 15) Loop Condition: It is determined whether or not there is data in the current row, and if there is data, the processing of the group in
(Step 16) The process ends (when there is no data in the current row in step 15).
なお、ステップ2等におけるセル間の移動や、コピー、ペースト等のコマンドは、スプレッドアプリケーション(X)のウィンドウWxを開いた状態でのキー操作や、メニュー選択(あるいは選択するメニューに対応するショートカット・キーの入力操作)等により実現される。またステップ4からステップ14はグループとして設定されている。 In addition, commands such as move between cells, copy, and paste in step 2 and the like can be performed by key operations with the spread application (X) window Wx open, and by selecting a menu (or a shortcut corresponding to the menu to be selected. It is realized by key input operation). Further, steps 4 to 14 are set as a group.
ステップ6等における登録欄のクリックを指示する操作コマンドは、登録欄の範囲の座標にマウスカーソルを移動して当該位置でクリックしたこととするよう、ユーザが指示することにより設定されるが、このとき情報処理装置1は、指定された位置の座標の情報を、対応する画像要素に相当する画像部分の座標との相対的座標に変換する。具体的には、対応する画像要素が見いだされるべき範囲の左上隅の座標を(Fx,Fy)、クリックしたこととする座標(操作関連情報を設定する時点での画面上の座標)を(Cx,Cy)とすると、情報処理装置1は、この操作関連情報に含める位置の情報(C′x,C′y)を
C′x=Cx−Fx、
C′y=Cy−Fy、
として定める。
The operation command for instructing the click of the registration field in step 6 or the like is set by instructing the user to move the mouse cursor to the coordinates of the range of the registration field and click at the position. When the
C'y = Cy-Fy,
Determined as.
情報処理装置1は、ユーザが設定したコマンド情報に従い、次のように動作する。このコマンド情報の実行開始の時点で、ユーザは、スプレッドシートアプリケーション(X)のウィンドウWxと、データベースアプリケーション(Y)のウィンドウWyとを開いておく。
(ステップ1)情報処理装置1は、ステップ1において設定されている画像要素(ウィンドウWxのアイコン)を、表示されている画面画像内で検索する。ここで、当該画像部分は、既に説明したように、画面下部のウィンドウの一覧の部分で見いだされる。情報処理装置1は、画面下部のウィンドウの一覧内で当該画像部分を見出すと、この画像要素に関連付けられた操作であるクリック操作を当該画像部分内で行ったとする擬制動作指示を出力する。
The
(Step 1) The
情報処理装置1は、オペレーティングシステムの動作として、画面下部のウィンドウの一覧に含まれるウィンドウWxのアイコンがクリックされたとして処理を行い、ウィンドウWxを操作の対象とする(フォーカスする)。
(ステップ2)情報処理装置1は、スプレッドアプリケーション(X)のウィンドウWxを開いた状態でのメニュー選択の処理により、最初のセル位置へ移動する。なお、ここでメニュー選択は、対応するショートカット・キーを押下したとする擬制動作指示を出力することで行ってもよいし、選択するメニューの画像部分を検索して当該画像部分をクリックする擬制動作指示を出力し、さらに選択するメニュー要素の画像部分を検索して当該画像部分をクリックする擬制動作指示を出力する、というようにマウス操作を擬制する処理によって行ってもよい。
(ステップ3)情報処理装置1は、繰り返し処理のグループの起点を設定し、(ステップ4)にて現在の行の第1列をコピーする処理を行う。この処理も、スプレッドアプリケーション(X)のウィンドウWxを開いた状態でのメニュー選択の処理により行う。
(ステップ5)情報処理装置1は、ステップ5において設定されている画像要素(ウィンドウWyのアイコン)を、表示されている画面画像内で検索する。この画像部分も画面下部のウィンドウの一覧の部分で見いだされる。情報処理装置1は、画面下部のウィンドウの一覧内で当該画像部分を見出すと、この画像要素に関連付けられた操作であるクリック操作を当該画像部分内で行ったとする擬制動作指示を出力する。
As an operation of the operating system, the
(Step 2) The
(Step 3) The
(Step 5) The
情報処理装置1は、オペレーティングシステムの動作として、画面下部のウィンドウの一覧に含まれるウィンドウWyのアイコンがクリックされたとして処理を行い、ウィンドウWyを操作の対象とする(フォーカスする)。
(ステップ6)情報処理装置1は、ステップ6において設定されている画像要素(顧客名登録欄の部分の画像)を、表示されている画面画像内で検索する。この画像部分はウィンドウWyの内部で見いだされる。情報処理装置1は、ウィンドウWy内で当該画像部分を見出すと、この画像要素に関連付けられた操作として、登録欄を選択してペーストする擬制動作指示を出力する。
As the operation of the operating system, the
(Step 6) The
具体的に、この操作に対応する操作関連情報は、見いだした画像部分の範囲内にある、登録欄の画像部分をクリックする操作と、「編集メニュー」から「ペースト」を選択する操作とからなる。 Specifically, the operation-related information corresponding to this operation consists of an operation of clicking the image part in the registration field within the range of the found image part and an operation of selecting "paste" from the "edit menu". ..
このうち登録欄をクリックする操作は、見いだした画像部分の左上隅の座標に、操作関連情報に含まれる、クリックするべき位置の情報が表す座標を加算して、実際にクリックしたこととする座標を求め、当該求めた座標をクリックすることを表す擬制動作指示を出力する。 Of these, the operation of clicking the registration field adds the coordinates represented by the information of the position to be clicked included in the operation-related information to the coordinates of the upper left corner of the found image part, and the coordinates are assumed to be actually clicked. Is obtained, and a fictitious operation instruction indicating that the obtained coordinates are clicked is output.
この処理により、操作関連情報を設定したときと、コマンド情報を実行した時点で、ウィンドウWyの画面画像上の位置が異なっていたとしても、検索した画像要素の位置と、クリックするべき位置との相対的位置が変化していない限り、所望の位置がクリックされたとする擬制動作指示が出力できる。 By this process, even if the position on the screen image of the window Wy is different when the operation-related information is set and when the command information is executed, the position of the searched image element and the position to be clicked are determined. As long as the relative position does not change, it is possible to output a fictitious operation instruction assuming that the desired position is clicked.
そしてこのステップ6ではこれにより、情報処理装置1が顧客名の登録欄をクリックしたと同じ状態となり、登録欄への入力が可能な状態となる。情報処理装置1は、ここに、ステップ4でコピーした文字列をペーストする。
Then, in this step 6, the
以下、(ステップ7)では、情報処理装置1は、ステップ1と同様の動作を行い、スプレッドアプリケーション(X)のウィンドウWxをフォーカスする。そして(ステップ8)において、現在の行(カーソルがある行)の第2列目の内容をコピーする。
Hereinafter, in (step 7), the
情報処理装置1は続いて、(ステップ9)にて、ステップ5と同様、ウィンドウWyをフォーカスし、(ステップ10)にて、連絡先登録欄の部分の画像を検索する。情報処理装置1は、この連絡先登録欄の部分の画像をウィンドウWy内から見出すと、当該画像を見いだした範囲の左上隅の座標に、操作関連情報に含まれる、クリックするべき位置の情報が表す座標を加算して、実際にクリックしたこととする座標を求め、当該求めた座標をクリックすることを表す擬制動作指示を出力する。
Subsequently, the
これにより、情報処理装置1が連絡先の登録欄をクリックしたと同じ状態となり、登録欄への入力が可能な状態となる。情報処理装置1は、ここに、ステップ8でコピーした文字列をペーストする。
As a result, the
情報処理装置1は、さらに、(ステップ11)で登録ボタンの部分の画像を検索する。そして、この登録ボタンの部分の画像をウィンドウWy内から見出すと、当該画像を見いだした範囲の左上隅の座標に、操作関連情報に含まれる、クリックするべき位置の情報が表す座標を加算して、実際にクリックしたこととする座標を求め、当該求めた座標をクリックすることを表す擬制動作指示を出力する。
The
情報処理装置1はこれにより、登録ボタンをクリックしたと同じ状態となり、顧客名及び連絡先の情報が、スプレッドシートアプリケーション(X)のファイルの内容から複写されてデータベースアプリケーション(Y)のファイルに記録される。
As a result, the
さらに情報処理装置1は、(ステップ12)の処理において、画面変化を待機(条件分岐)する。つまり、情報処理装置1は、データベースアプリケーション(Y)が登録の処理を完了して、新たな登録を受け付ける画面を表示するまで待機する。
Further, the
情報処理装置1は、データベースアプリケーション(Y)の処理により新たな登録を受け付ける画面が表示され、画面表示が変化すると、次の(ステップ13)の処理に移行する。そしてこの(ステップ13)の処理にてウィンドウWxをフォーカスし、(ステップ14)にて次の行へ移動する操作を表す擬制動作指示を出力する。そして情報処理装置1は、(ステップ15)にてループの条件である、現在の行にデータがあるか否かを判断し、データがあればステップ3で規定されたグループの起点、すなわちステップ4以下のグループに属するコマンドの処理を続ける。一方、ステップ15においてデータがなければ、処理を終了する。
The
情報処理装置1のこの動作により、スプレッドシートアプリケーション(X)のファイルに記録された、一連の顧客名と連絡先の情報が、データベースアプリケーション(Y)のデータベースファイルに次々記録されることとなる。また、登録が行われたことを画面の変化により検出して、確実に登録するまでアプリケーションのプロセスを切り替えないよう維持することも可能としている。
By this operation of the
[画像検索のリトライ処理の例]
既に述べたように、画像要素の検索を行うコマンド(上述のステップ6など)では、対象となる画像部分を含むウィンドウがフォーカスされていても、当該対象となる画像部分が必ず画面画像内に含まれるとは限らない。
[Example of image search retry processing]
As already described, in the command for searching for an image element (such as step 6 described above), even if the window including the target image part is focused, the target image part is always included in the screen image. It is not always the case.
例えば図4に、図3のウィンドウWyの別の例を示すように、ウィンドウWyのサイズによっては、登録欄と登録ボタンとの双方がウィンドウWy内に収まらず、スクロール操作を行うことで、登録欄か登録ボタンのいずれか一方が表示された状態で操作を行う必要がある場合がある。 For example, as shown in FIG. 4 as another example of the window Wy of FIG. 3, depending on the size of the window Wy, both the registration field and the registration button do not fit in the window Wy, and registration is performed by scrolling. It may be necessary to perform the operation with either the column or the registration button displayed.
以下、ウィンドウWyが図4(a)の例のように、顧客名及び連絡先登録欄が表示され、登録ボタンが隠れた状態にあるときの、上述の処理について説明する。このような場合を想定して、ここではステップ11のコマンドに、リトライ条件として「検索の失敗」、リトライ処理として「スクロール操作して再度の検索」が設定されているものとする。
Hereinafter, the above-mentioned processing will be described when the window Wy displays the customer name and contact registration fields and the registration button is hidden as in the example of FIG. 4A. Assuming such a case, it is assumed that the command in
この例における情報処理装置1の動作は、初回はステップ10までは上述の説明におけるものと変わらないが、ステップ11においてウィンドウWy内に登録ボタンが表示された状態にないために検索が失敗となった後の動作が異なる。
The operation of the
情報処理装置1は、ステップ11において検索が失敗となると、フォーカスしているウィンドウWyについてスクロールの操作を試みる。まず情報処理装置1は、スクロール位置を所定の初期位置にリセットする。ここで初期位置は、具体的には、ウィンドウW内に表示されている内容(ウィンドウコンテンツ)の左上隅を、ウィンドウWの表示部分(ペイン)の左上隅に一致させた位置とする。この位置とするには、情報処理装置1は、左方向及び上方向へのスクロール操作を、画面画像が変化しなくなるまで行うこととすればよい。
If the search fails in
以下、情報処理装置1は、画像要素の検索とスクロール操作とを繰り返し行う。ここでスクロール操作は、ページダウン・キーの操作またはウィンドウWyの右辺端部のスクロール・バーにある下向き矢印をクリックする操作等に対応する擬制動作指示を出力することにより行う。なお、矢印をクリックする操作に相当する擬制動作指示を出力する場合は、予め定めた回数だけクリックする擬制動作指示を出力することとする。
Hereinafter, the
情報処理装置1は、スクロール操作を行うごとに、表示されている画像に変化があったか否かを調べる。この処理はスクロール操作前後の画面画像の差分を求めることにより行うことができる。
Each time the
ここでスクロール操作により画面画像が変化しない場合は、情報処理装置1は、スクロール位置を上端まで戻した後、右方向へのスクロール操作を試みる。そして当該右方向へのスクロール操作の試行の後、画面画像が変化したならば、情報処理装置1は、再度、その位置から画像要素の検索と、下方へのスクロール操作とを繰り返して行う。
If the screen image does not change due to the scroll operation, the
また右方向へのスクロール操作の試行により画面画像が変化しない場合は、情報処理装置1は、ウィンドウコンテンツの全体を検索しても画像要素が見いだせなかったと判断し、エラーを報知して処理を停止する。
If the screen image does not change due to an attempt to scroll to the right, the
そして情報処理装置1は、スクロール操作が行われた(画面画像が変化した)ことを検出すると、再度、ステップ11における登録ボタンに係る画像要素の検索を行う。ここではウィンドウWyのスクロール操作が行われると、図4(b)の例のように登録ボタンが表示され、顧客名や連絡先の登録欄が隠された状態となるので、ステップ11の処理によって登録ボタンに係る画像要素の検索に成功し、以下、ステップ14までの処理を、既に説明した例と同様に実行することとなる。
Then, when the
そして繰り返しの処理が行われた次のステップ6においても、その時点では前回の繰り返しのステップ10にてウィンドウWyの内部が図4(b)の状態(登録ボタンが表示され、顧客名や連絡先の登録欄が隠された状態)となっているので検索に失敗し、スクロール位置を初期位置として、再度の検索を行う。初期位置としたときには、ウィンドウWyの内部が図4(a)の状態となり、検索に成功するので、以下、既に説明したと同様の処理を行う。 Then, even in the next step 6 in which the iterative process is performed, at that time, the inside of the window Wy is in the state of FIG. 4 (b) in the previous repeat step 10 (the registration button is displayed, and the customer name and contact information are displayed. Since the registration field of is hidden), the search fails, and the scroll position is set as the initial position, and the search is performed again. When the initial position is set, the inside of the window Wy is in the state shown in FIG. 4A, and the search is successful. Therefore, the same processing as described above is performed below.
このように本実施の形態の情報処理装置1は、表示している画面画像のうちに、所定操作(ここではスクロール操作)により出現する部分があるときには、当該部分を出現させて、再度、コマンド情報に含まれる画像要素に相当する画像部分を検索する。
As described above, when the
[画像検索に係るリトライ処理の他の例(1)]
また、画面画像上で操作の対象となる画像部分が隠れている例は、スクロール操作により解消される例だけに限られない。例えばグラフィカルユーザインタフェースの要素のうちには、クリック操作を行うごとに、メニュー等の一覧を提示したり、隠したりといった動作を繰り返すドロップダウン等の要素がある。
[Other Examples of Retry Processing Related to Image Search (1)]
Further, the example in which the image portion to be operated is hidden on the screen image is not limited to the example in which it is eliminated by the scroll operation. For example, among the elements of the graphical user interface, there are elements such as a dropdown that repeats operations such as presenting and hiding a list of menus and the like each time a click operation is performed.
本実施の形態の情報処理装置1では、このようなユーザインタフェースの要素に係る画像が予め設定されているときには、リトライ処理として、当該画像部分を画面画像から検索して、当該部分をクリックしたことを表す擬制動作指示を出力して隠されている情報を表示させてから、画像要素の再度の検索を行ってもよい。
In the
[画像検索に係るリトライ処理の他の例(2)]
さらに本実施の形態の情報処理装置1が、コマンドの実行中に、当該コマンドで検索の対象として規定されている画像要素の検索に失敗するケースは、これまでの例に限られない。
[Another example of retry processing related to image search (2)]
Further, the case where the
これまでの説明では情報処理装置1においてコマンド情報を生成する際に表示されていた画面画像から画像要素を抽出しており、そして情報処理装置1がコマンドを実行するときに表示される画面画像は、当該コマンドを含むコマンド情報が生成されたときの画面画像と、解像度(縦横のピクセル数)や比率、その他の画像データの特徴が同じものであることとしていた。
In the explanation so far, the image element is extracted from the screen image displayed when the
しかしながら、コマンド情報を生成したときの画面画像と、実行時の画面画像との解像度等は常に一致しているとは限らない。例えば、コマンド情報の生成時に抽出されてコマンドに設定されている画像要素と、当該コマンドを実行する際の画面画像中の画像要素のサイズが異なっている場合があり得る。この場合、最初の検索部32の処理においては画像要素に一致する画像部分を抽出することができないので、検索に失敗することとなる。
However, the resolutions of the screen image when the command information is generated and the screen image at the time of execution do not always match. For example, the size of the image element extracted when the command information is generated and set in the command may be different from the size of the image element in the screen image when the command is executed. In this case, in the first processing of the
そこで情報処理装置1は、リトライ処理として、検索の対象とする画像要素に対して所定の画像処理を施してから再検索を行うこととしてもよい。この画像処理は例えば次のようにして行う。
Therefore, as the retry process, the
本実施の形態のここでの一例として、情報処理装置1が、リトライ処理における動作として、例えば検索の対象となる画像要素を所定のピクセル数(拡縮ステップサイズと呼ぶ)だけ拡大または縮小して、再度の検索を行うことが考えられる。
As an example here of this embodiment, the
この場合、検索の処理において、検索部32は、検索の対象となる画像要素(拡大・縮小後の画像要素)と同じサイズの比較対象範囲を、画面画像をスキャンしつつ抽出し、当該抽出した比較対象領域内の画像と、検索の対象となる画像要素との類似度を求め、類似度が予め定めたしきい値を超えたときにその位置で画像要素を見いだしたものと判断することで検索を行う。
In this case, in the search process, the
このように検索の対象となる画像要素を拡大・縮小した時に検索部32が、完全一致する画像要素を検索するのではなく類似度を用いて検索を行うのは、画面画像の表示を行う際に利用される拡大縮小の方法と、リトライ処理時の拡大縮小の方法とが異なり、結果となる画像に相違が生じる場合があることを考慮したものである。この類似度を求める方法は、Perceptual Hashを用いる方法など、広く知られた種々の方法を採用できるので、ここでの詳しい説明を省略する。
When the image element to be searched is enlarged or reduced in this way, the
この場合、リトライ処理時の情報処理装置1は、検索部32の処理により画像要素が見出されるか、予め定めた限界の拡大縮小サイズ(元の画像要素のサイズとのサイズの差により、例えば−10ピクセルから+10ピクセルの範囲などとして予め定めておけばよい)まで拡大または縮小しても対応する画像要素が見出せないと判断されるまで、画像要素の拡大または縮小と検索の処理とを繰り返して行う。
In this case, the
なお、限界となる拡大縮小サイズは、画像要素に関連付けてユーザが設定できるようにしておいてもよい。この設定は例えば元のサイズとの比率として設定できるようにしておいてもよい。 The scaling size, which is the limit, may be set by the user in association with the image element. This setting may be set, for example, as a ratio to the original size.
さらに情報処理装置1は、リトライの処理として、画像要素の解像度の変更と、検索範囲の変更とを組み合わせて行ってもよい。この場合、解釈部31は、検索部32により画像要素が見いだせなかったときに画像要素の解像度を変更して再検索する処理を行い、以下、画像要素が見いだされるか、すべての可能な検索条件を試行して画像要素が見いだせないと判断されるまで、検索範囲を変更して再検索する処理と、画像要素の解像度を変更して再検索する処理とを繰り返して行う。
Further, the
また、ここでは解像度を変更する場合について例示したが、比率の変更等、他の画像処理を施す場合も、同様の方法で処理を行うことができる。また、画像処理は一つに限られず、解像度を変更するとともに、ガウシアンフィルタを適用するなど、複数の画像処理が施されてもよい。 Further, although the case of changing the resolution has been illustrated here, the same method can be used when performing other image processing such as changing the ratio. Further, the image processing is not limited to one, and a plurality of image processings such as changing the resolution and applying a Gaussian filter may be performed.
[代替画像を用いる例]
また本実施の形態の情報処理装置1における再検索処理は、検索の対象となる画像要素を変更するものであってもよい。この例では、1つのコマンドに、検索の対象となる画像要素のほかに、少なくとも一つの、代替画像要素となる画像要素を含める。そしてこれら複数の画像要素を含むコマンドの実行を行うときには、情報処理装置1は、当該複数の画像要素(もともと検索の対象としている画像要素と、少なくとも一つの代替画像要素と)のいずれかに対応する画像部分が検索により見いだされたときに、当該コマンドに基づく処理を実行する。
[Example using an alternative image]
Further, the re-search process in the
[待機する例]
さらに本実施の形態の情報処理装置1が処理するコマンド情報には、既に述べたように、条件分岐のコマンドとして、直前のコマンドの処理の実行後、所定の条件が満足されるタイミングまで待機するべき旨のコマンドが設定されたステップが含まれてもよい。
[Example of waiting]
Further, as described above, the command information processed by the
このような条件分岐は、例えば、操作に対するアプリケーションプログラムの応答が遅い場合や、データの通信が生じる場合など、画面画像の描画までに時間を要する操作が行われた後に利用される。 Such conditional branching is used after an operation that takes time to draw a screen image is performed, such as when the response of the application program to the operation is slow or when data communication occurs.
具体的に、マウスクリックの操作コマンドの後、表示されている画像に変化があったことを条件として処理を再開する条件分岐コマンドを用いると、例えばウェブブラウザを操作するコマンド情報を実行中、リンクをクリックした後、リンク先のウェブページがレンダリングされるまで待機してから次の操作を行うよう設定できる。また、この待機指示による待機を終了する条件は、設定された時間が経過した後としてもよい。 Specifically, if you use the conditional branch command that restarts the process on the condition that the displayed image has changed after the mouse click operation command, for example, the link is being executed while the command information for operating the web browser is being executed. After clicking, you can set it to wait for the linked web page to render before doing the following: Further, the condition for ending the standby by the standby instruction may be after the set time has elapsed.
[機械学習を用いる例]
本実施の形態の情報処理装置1はさらに、リトライ処理時の検索条件として、すなわち、検索処理におけるエラー(例外)処理の一例として、代替画像要素を、機械学習の結果を利用して機械的に(人為的指定なしに)生成し、検索の対象として指定された画像要素に代えて、当該生成した代替画像要素を検索することとしてもよい。
[Example using machine learning]
Further, the
この例では、情報処理装置1は、画像要素を予め定めたサイズに縮小または拡大したときに、当該画像要素の代替となり得る画像に類似する画像を出力するよう機械学習した状態としたニューラルネットワーク(以下、代替画像用ネットワークと呼ぶ)を保持する。この代替画像用ネットワークは、一般的な畳み込みネットワーク等を用い、画像要素を入力したときの当該代替画像用ネットワークの出力と、入力した画像要素に対して代替画像として用いられ得る画像(教師情報)との差分に基づくバックプロパゲーションにより代替画像用ネットワーク自身を機械学習することで得る。このような機械学習の方法は広く知られているので、ここでの詳しい説明は省略する。
In this example, the
情報処理装置1は、検索の対象となる画像要素が指定されているコマンドを実行するときに、当該画像要素を画面画像から検索し、検索に失敗すると、当該画像要素の代替画像要素を、この代替画像用ネットワークを介して取得する。そして当該取得した代替画像要素を、画面画像から検索する。
When the
なお、情報処理装置1は、代替画像用ネットワークを介して取得した代替画像要素の検索に失敗したときには、再度、当該代替画像要素を代替画像用ネットワークに入力し、その出力である新たな代替画像要素を得て、再度の検索を行うという動作を、予め定められた回数まで(または検索により代替画像要素が画面画像から見出されるまで)繰り返してもよい。
When the
また情報処理装置1は、再検索の処理の際に、互いに異なる教師情報で学習した複数の代替画像用ネットワークを用いて、複数の代替画像要素を得て、得られた複数の代替画像要素を順次、検索してもよい。
Further, the
この例の代替画像用ネットワークは、例えば、入力となる画像要素に対して、当該画像要素が「非選択」状態であることを表す、彩度の比較的低い画像となる場合を考慮して、入力する画像要素の彩度を低下させた画像要素を教師情報として学習した第1の代替画像用ネットワークを用いる。また、他の代替画像用ネットワークとして、入力となる画像要素に対して、文字部分だけを抽出した画像を教師情報として学習した第2の代替画像用ネットワークを用いる。 The alternative image network in this example considers, for example, a case where the input image element is a relatively desaturated image indicating that the image element is in the "non-selected" state. The first alternative image network is used in which the image element whose saturation of the input image element is reduced is learned as teacher information. Further, as another alternative image network, a second alternative image network is used in which an image obtained by extracting only a character portion is learned as teacher information for an input image element.
このようにすると、画像要素の検索に失敗したときに、当該画像要素に対して比較的彩度の低い第1の代替画像要素と、文字部分のみを抽出した第2の代替画像要素を得て、再度の検索を行うことが可能となる。 In this way, when the search for the image element fails, a first alternative image element having a relatively low saturation for the image element and a second alternative image element from which only the character portion is extracted are obtained. , It becomes possible to perform the search again.
[ユーザ操作の機械学習]
また本実施の形態の情報処理装置1は、コマンド情報を生成するにあたり、ユーザの操作を機械学習してもよい。
[User-operated machine learning]
Further, the
具体的には、情報処理装置1は、RNN等のニューラルネットワークを利用し、ユーザの一連の操作P1,P2…の履歴のうち、i番目の操作履歴Piからn個の操作履歴Pi,Pi+1,…Pi+n−1を入力とし、次の操作Pi+nを教師として機械学習しておく。
Specifically, the
このように機械学習しておくと、情報処理装置1は、コマンド情報の作成中、あるいはアプリケーションの操作中に、次のコマンドあるいは次の操作の候補を提示できるようになる。
By performing machine learning in this way, the
1 情報処理装置、11 プロセッサ、12 記憶部、13 操作部、14 表示部、15 通信部、21 アプリケーション実行部、22 コマンド生成部、23 コマンド情報保持部、24 処理実行部、31 解釈部、32 検索部、33 実行部。
1 Information processing device, 11 Processor, 12 Storage unit, 13 Operation unit, 14 Display unit, 15 Communication unit, 21 Application execution unit, 22 Command generation unit, 23 Command information holding unit, 24 Processing execution unit, 31 Interpretation unit, 32 Search section, 33 execution section.
Claims (7)
前記表示する画面上の画像要素と、当該画像要素に関係する操作を表す操作コマンドとを関連付けたコマンド情報を保持する保持手段と、
前記画面を表示しているときに、当該表示している画面から、前記コマンド情報に含まれる画像要素に相当する画像部分を検索する検索手段と、
検索によって前記コマンド情報に含まれる画像要素を見出したときに、当該画像要素に関連付けられた操作コマンドを取得し、当該操作コマンドに基づく所定処理を実行する処理実行手段と、
を含み、
前記検索手段が前記コマンド情報に含まれる画像要素を見出さなかった場合に、所定の再検索処理を実行する情報処理装置。 An information processing device that operates according to operation instructions and displays a screen.
A holding means for holding command information associated with an image element on the screen to be displayed and an operation command representing an operation related to the image element.
When the screen is displayed, a search means for searching an image portion corresponding to an image element included in the command information from the displayed screen, and
When an image element included in the command information is found by a search, a process execution means for acquiring an operation command associated with the image element and executing a predetermined process based on the operation command, and a process execution means.
Including
An information processing device that executes a predetermined re-search process when the search means does not find an image element included in the command information.
前記検索手段は、前記表示している画面のうちに、所定操作により出現する部分があるときには、当該部分を出現させて、再度、前記コマンド情報に含まれる画像要素に相当する画像部分を検索する情報処理装置。 The information processing device according to claim 1 or 2.
When the display means has a part that appears by a predetermined operation in the displayed screen, the search means causes the part to appear and searches again for an image part corresponding to the image element included in the command information. Information processing device.
前記保持手段はさらに、操作コマンドに関連付けた画像要素に対し、さらに代替画像要素を関連付けて保持可能に構成され、
前記検索手段は、再検索処理として、前記コマンド情報に含まれる画像要素に対応する代替画像要素に相当する画像部分を検索する情報処理装置。 The information processing device according to any one of claims 1 to 3.
The holding means is further configured to be able to hold an alternative image element in association with the image element associated with the operation command.
The search means is an information processing device that searches an image portion corresponding to an alternative image element corresponding to the image element included in the command information as a re-search process.
前記保持手段は、操作コマンドに、待機に係る条件の設定を含めて保持しており、
前記検索手段は、画面の表示の処理を開始した後、前記待機に係る条件が満足されるまで待機してから、当該表示している画面から、前記コマンド情報に含まれる画像要素に相当する画像部分を検索する情報処理装置。 The information processing device according to any one of claims 1 to 4.
The holding means holds the operation command including the setting of the condition related to the standby.
The search means starts the process of displaying the screen, waits until the condition related to the standby is satisfied, and then from the displayed screen, an image corresponding to the image element included in the command information. An information processing device that searches for parts.
前記検索手段はさらに、前記コマンド情報に含まれる画像要素に基づいて、当該画像要素に類似する、類似画像要素を出力するよう機械学習し、当該画像要素を入力したときに当該機械学習結果に基づく出力として類似画像要素を得て、当該類似画像要素に相当する画像部分を検索する情報処理装置。 The information processing device according to any one of claims 1 to 5.
The search means further performs machine learning to output a similar image element similar to the image element based on the image element included in the command information, and is based on the machine learning result when the image element is input. An information processing device that obtains a similar image element as an output and searches for an image portion corresponding to the similar image element.
前記表示する画面上の画像要素と、当該画像要素に関係する操作を表す操作コマンドとを関連付けたコマンド情報を保持する保持手段と、
前記画面を表示しているときに、当該表示している画面から、前記コマンド情報に含まれる画像要素に相当する画像部分を検索する検索手段と、
検索によって前記コマンド情報に含まれる画像要素を見出したときに、当該画像要素に関連付けられた操作コマンドを取得し、当該操作コマンドに基づく所定処理を実行する処理実行手段と、として機能させ、
前記検索手段として機能させる際に、前記コマンド情報に含まれる画像要素を見出さなかった場合に、所定の再検索処理を実行させるプログラム。
An information processing device that operates according to the operation instructions and displays the screen,
A holding means for holding command information associated with an image element on the screen to be displayed and an operation command representing an operation related to the image element.
When the screen is displayed, a search means for searching an image portion corresponding to an image element included in the command information from the displayed screen, and
When an image element included in the command information is found by a search, an operation command associated with the image element is acquired, and the operation command is made to function as a process execution means for executing a predetermined process based on the operation command.
A program that executes a predetermined re-search process when an image element included in the command information is not found when functioning as the search means.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019036955A JP7373828B2 (en) | 2019-02-28 | 2019-02-28 | Information processing device and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019036955A JP7373828B2 (en) | 2019-02-28 | 2019-02-28 | Information processing device and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020140574A true JP2020140574A (en) | 2020-09-03 |
JP7373828B2 JP7373828B2 (en) | 2023-11-06 |
Family
ID=72280403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019036955A Active JP7373828B2 (en) | 2019-02-28 | 2019-02-28 | Information processing device and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7373828B2 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004334530A (en) * | 2003-05-07 | 2004-11-25 | Fujitsu Ltd | Web site edition supporting system and method |
JP2009032099A (en) * | 2007-07-27 | 2009-02-12 | Toshiba Corp | Scenario creation apparatus and scenario creation program |
JP2012221318A (en) * | 2011-04-11 | 2012-11-12 | Toshiba Corp | Scenario generation device and scenario generation program |
JP2018116394A (en) * | 2017-01-17 | 2018-07-26 | 東日本電信電話株式会社 | Operation automation device |
-
2019
- 2019-02-28 JP JP2019036955A patent/JP7373828B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004334530A (en) * | 2003-05-07 | 2004-11-25 | Fujitsu Ltd | Web site edition supporting system and method |
JP2009032099A (en) * | 2007-07-27 | 2009-02-12 | Toshiba Corp | Scenario creation apparatus and scenario creation program |
JP2012221318A (en) * | 2011-04-11 | 2012-11-12 | Toshiba Corp | Scenario generation device and scenario generation program |
JP2018116394A (en) * | 2017-01-17 | 2018-07-26 | 東日本電信電話株式会社 | Operation automation device |
Also Published As
Publication number | Publication date |
---|---|
JP7373828B2 (en) | 2023-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7089879B2 (en) | Robot-based process automation | |
US8429612B2 (en) | Graphical user interface (GUI) noise reduction in a cognitive control framework | |
Yeh et al. | Sikuli: using GUI screenshots for search and automation | |
US7979849B2 (en) | Automatic model-based testing | |
WO2015039566A1 (en) | Method and system for facilitating automated web page testing | |
US20110047514A1 (en) | Recording display-independent computerized guidance | |
JPH08287288A (en) | Plurality of side annotations interactive three-dimensional graphics and hot link | |
US20070118818A1 (en) | Method of tracking data objects using related thumbnails in a palette window | |
JP2016224599A (en) | Guide file creation program | |
JP2003296012A (en) | System for inputting and displaying graphic and method of using interface | |
US20110047462A1 (en) | Display-independent computerized guidance | |
CN107239528A (en) | Search result display methods and device | |
JP2011081778A (en) | Method and device for display-independent computerized guidance | |
CN112131121B (en) | Fuzzy detection method and device for user interface, electronic equipment and storage medium | |
WO2015043352A1 (en) | Method and apparatus for selecting test nodes on webpages | |
US20150213148A1 (en) | Systems and methods for browsing | |
JP2000181436A (en) | Document display device | |
JP6910494B1 (en) | Information processing program, information processing device and information processing method | |
US8667406B1 (en) | Artboard creation and preview | |
WO2021176523A1 (en) | Screen recognition device, screen recognition method, and program | |
JP7373828B2 (en) | Information processing device and program | |
CN110020279A (en) | Page data processing method, device and storage medium | |
JP7146210B2 (en) | Information processing device, control method and program | |
CN104516860A (en) | Methods and systems for selecting text within a displayed document | |
US11157130B2 (en) | Cursor-based resizing for copied image portions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220222 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20221130 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20221227 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20230224 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230421 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230627 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230825 |
|
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: 20231003 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231017 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7373828 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |