以下、図面を参照しながら本発明の実施形態を詳細に説明する。
図1は、本発明の一実施形態によるシナリオ実行装置1の構成を示す機能ブロック図である。シナリオ実行装置1は、画像処理装置の一例である。図1には、本実施形態と関係する機能ブロックのみを抽出して示してある。シナリオ実行装置1は、PCなどの情報処理装置であり、RPA(Robotic Process Automation)のシナリオを実行する。RPAは、自動化ツールの一例である。シナリオ実行装置1は、記憶部2と、入力部3と、表示部4と、処理部5とを備える。
記憶部2は、シナリオファイルを記憶する。シナリオファイルは、シナリオが記述されたファイルである。シナリオは、処理モジュールと、処理モジュールの実行順とを示す。処理モジュールには、ユーザ操作モジュールと画像認識モジュールとがある。ユーザ操作モジュールは、ユーザインタフェースを用いたユーザ操作を表す。ユーザ操作の対象は、例えば、シナリオ実行装置1において実行されているアプリケーションプログラム(以下、アプリとも記載する。)やOS(Operation System)などである。画像認識モジュールは、表示部4が表示している画面において、目的画像にマッチする画像が表示されている領域の座標の情報を出力する画像認識処理の実行を表す。目的画像とは、検出目的の画像である。また、目的画像にマッチする画像とは、目的画像に類似した又は目的画像と一致する画像である。表示部4が表示している画面の画像であり、目的画像にマッチする画像の探索を行う対象の画像をマッチング画像と記載する。画像認識モジュールが表す画像認識処理の実行により出力された座標は、その画像認識モジュールより後の実行順のユーザ操作モジュールによってユーザ操作が行われる位置の基準となる。なお、本実施形態では簡単のため、画像認識モジュール以外の処理モジュールが、ユーザ操作モジュールである場合を例に説明するが、画像認識モジュール以外の処理モジュールは、判定処理を行う処理モジュール、所定時間待機する処理モジュールなど、ユーザ操作モジュールとは異なる機能の処理モジュールでもよい。
入力部3は、キーボード、ポインティングデバイス(マウス、タブレット等)、ボタン、タッチパネル等の既存の入力装置を用いて構成される。入力部3は、ユーザの指示をシナリオ実行装置1に入力する際にユーザによって操作されるユーザインタフェースである。表示部4は、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ等の画像表示装置である。
処理部5は、シナリオ作成部51と、探索シナリオ作成部52と、シナリオ実行管理部53と、シナリオ実行部54と、機能X実行部56とを有する。
シナリオ作成部51は、作成情報受信部511と、画面表示制御部512と、シナリオ登録部513とを有する。作成情報受信部511は、入力部3によりユーザが入力した、シナリオの作成に関する情報を受ける。画面表示制御部512は、シナリオ作成画面を表示部4に表示する。シナリオ作成画面は、シナリオ作成に使用可能な処理モジュールのリストと、作成中のシナリオを構成する処理モジュール及びその実行順の情報を表示する。シナリオ登録部513は、ユーザがシナリオ作成画面を用いて行った処理モジュールの選択及び選択された処理モジュールの実行順の指定に基づいて作成したシナリオが記述されたシナリオファイルを生成する。処理モジュールには、入力部3によりユーザが入力したプロパティ情報が付加される。プロパティ情報は、処理モジュールに関する設定内容を示す。シナリオ登録部513は、ユーザが作成したシナリオを記述したシナリオファイルを記憶部2に登録する。
探索シナリオ作成部52は、画像認識モジュールの探索シナリオファイルを作成する。画像認識モジュールは、探索シナリオを用いてマッチング画像の探索を行う。探索シナリオは、ユーザが指定した探索条件を用いてマッチング画像の探索を行う1以上の探索処理の組み合わせである。探索シナリオファイルは、探索シナリオが記述されたファイルである。探索シナリオを構成する各探索処理は、目的画像から得られる異なる特徴を用いた探索条件により画像の探索を行う。探索シナリオ作成部52は、作成情報受信部521と、画面表示制御部522と、試行部523と、探索シナリオ登録部524とを備える。
作成情報受信部521は、入力部3によりユーザが入力した、探索シナリオ作成に関する情報を受ける。画面表示制御部522は、探索シナリオの作成に用いられる各種画面を表示部4に表示する。試行部523と、作成中の探索シナリオに用いられる探索処理又は作成中の探索シナリオを試行する。探索シナリオ登録部524は、ユーザが作成した探索シナリオを記述した探索シナリオファイルを生成し、生成した探索シナリオファイルを記憶部2に登録する。
シナリオ実行管理部53は、シナリオの実行を管理する。シナリオ実行管理部53は、ユーザが入力部3により入力した指示に従って、シナリオの実行スケジュールを記憶部2に記憶してもよい。シナリオ実行管理部53は、記憶された実行スケジュールに従ってシナリオの実行をシナリオ実行部54に指示する。
シナリオ実行部54は、読出部541と、判断部542と、操作制御部543と、画像認識部550とを有する。読出部541は、シナリオ実行管理部53により実行が指示されたシナリオが記述されたシナリオファイルから実行順に処理モジュールを読み出す。判断部542は、読出部541が読み出した処理モジュールがユーザ操作モジュールであるか画像認識モジュールであるかを判断する。操作制御部543は、判断部542がユーザ操作モジュールであると判断した場合、当該ユーザ操作モジュールにより示されるユーザ操作を行うよう入力部3を制御する。
画像認識部550は、判断部542が画像認識モジュールであると判断した場合、当該画像認識モジュールの探索シナリオファイルが示す探索シナリオに従って画像認識処理を行う。画像認識部550は、探索シナリオ取得部551と、画像取得部552と、読出部553と、探索部554とを備える。探索シナリオ取得部551は、シナリオファイルから探索シナリオファイルを読み出す。あるいは、探索シナリオ取得部551は、シナリオファイルに記述された探索シナリオファイル識別情報の探索シナリオファイルを記憶部2から読み出す。探索シナリオファイル識別情報は、探索シナリオファイルを識別する情報である。画像取得部552は、マッチング画像及び目的画像を取得する。読出部553は、探索シナリオファイルに記述された探索シナリオから実行順に実行対象の探索処理を読み出す。探索部554は、読出部553が読み出した探索処理を実行する。探索処理の対象は、マッチング画像又は実行済みの他の探索処理により検出されたマッチング画像内の領域であり、いずれを対象とするかは探索シナリオに記述される。
機能X実行部56は、入力部3を用いた操作に従って機能Xを実行する。機能Xは、シナリオの実行に使用され得る機能であり、任意の機能とすることができる。機能Xは、CPU(Central Processing Unit)がアプリケーションプログラムを実行することによって実現されてもよい。例えば、機能Xは、表計算、文書編集、ウェブブラウザ、はがき作成、図形描画等、PCに実装される任意の機能とすることができる。同図では、機能Xを実行する機能X実行部56(X=A、B、C)を、機能A実行部56a、機能B実行部56b、機能C実行部56cと記載している。
図2〜図4は、シナリオ実行装置1におけるシナリオ画面の表示例を示す図である。図2に示すシナリオ作成画面100aは、ライブラリ表示領域101及びシナリオ作成領域102を有する。ライブラリ表示領域101は、利用可能な処理モジュールのリストをモジュール名により表示する領域である。なお、処理モジュールのリストは、処理モジュールの機能に応じて階層化されてもよい。モジュール名は、処理モジュールの名称である。処理モジュールのリストには、ユーザ操作モジュール及び画像認識モジュールが含まれる。シナリオ作成領域102は、処理モジュールの実行順を指定する領域である。
ユーザは、マウス等の入力部3により、ライブラリ表示領域101に表示される処理モジュールの一覧の中から、追加する処理モジュールのモジュール名を選択する。追加する処理モジュールを追加処理モジュールと記載する。同図では、追加処理モジュールが画像認識モジュールである場合を例に示している。「画像認識」は、画像認識モジュールのモジュール名である。ユーザは、マウスにより、選択した追加処理モジュールを、シナリオ作成領域102までドラッグする(ドラッグアンドドロップ)。作成情報受信部511は、選択された追加処理モジュールの情報と、ドラッグの終了位置の情報とを入力部3から受信する。画面表示制御部512は、ドラッグの終了位置に、追加処理モジュールの処理モジュール名を表示する処理シンボルを追加表示する。これにより、図3に示すシナリオ作成画面100bが表示される。
画面表示制御部512は、図3に示すシナリオ作成画面100bのシナリオ作成領域102におけるドラッグの終了位置に、追加処理モジュールのモジュール名を表示する処理シンボル112−1を追加表示する。終了位置は、シナリオの開始を表すノード111−1と、シナリオの終了を表すノード111−2との間である。同様にして、ユーザが選択した処理モジュールをシナリオに追加することができる。ユーザが、入力部3により探索シナリオ作成開始の指示を入力した場合、シナリオ実行装置1は、探索シナリオ作成のための画面を表示する。探索シナリオ作成のための画面については、図11〜図20を用いて後述する。
図4は、ユーザ操作モジュール追加後のシナリオ作成画面100cを示している。シナリオ作成画面100cのシナリオ作成領域102には、ユーザが入力部3により選択したユーザ操作モジュールのモジュール名が記述された矩形の処理シンボル112−2、112−3が追加表示されている。矢印113−1〜113−4は、処理モジュールの実行順を表す。図4のシナリオは、処理シンボル112−2、112−1、112−3の順に、それらが表す処理モジュールを順に実行することを示す。ユーザが、マウス等の入力部3により処理シンボル112−2又は処理シンボル112−3のプロパティ情報入力を指示した場合、シナリオ実行装置1は、プロパティ情報入力画面を表示する。ユーザは入力部3により、プロパティ情報入力画面にプロパティ情報を入力する。
図5は、シナリオ実行装置1におけるシナリオ作成処理を示すフロー図である。シナリオ実行装置1の作成情報受信部511は、処理モジュールの追加が入力されたか否かを判定する(ステップS110)。例えば、ユーザは、マウス等の入力部3により、シナリオ作成画面のライブラリ表示領域101に表示される処理モジュールの一覧の中から、追加処理モジュールを選択し、シナリオ作成領域102までドラッグする。この場合、作成情報受信部511は、選択された追加処理モジュールの情報と、ドラッグの終了位置の情報とを入力部3から受信し、処理モジュールの追加が入力されたと判定する(ステップS110:YES)。画面表示制御部512は、ドラッグの終了位置に、追加処理モジュールの処理モジュール名を表示する処理シンボルを追加表示する(ステップS115)。シナリオ作成部51は、ステップS110の処理に戻る。
作成情報受信部511は、ステップS110において処理モジュールの追加が入力されなかったと判定した場合(ステップS110:NO)、プロパティ設定指示が入力されたか否かを判定する(ステップS120)。例えば、ユーザは、入力部3により、プロパティ設定対象の処理モジュールを表す処理シンボルをダブルクリックする。プロパティ設定対象の処理モジュールを、設定対象処理モジュールと記載する。作成情報受信部511は、プロパティ設定指示の操作が行われた処理シンボルの情報を入力部3から受信し、プロパティ設定指示が入力されたと判定する(ステップS120:YES)。画面表示制御部512は、プロパティ設定指示が行われた処理シンボルが表す設定対象処理モジュールのプロパティ入力画面を表示する。ユーザは、プロパティ入力画面に設定対象処理モジュールのプロパティ情報に用いられる各種変数の設定値を入力する(ステップS125)。例えば、画像認識モジュールの後に、マウスによるクリックを行うユーザ操作の操作モジュールが配置されている場合、その操作モジュールのプロパティ情報では、画像認識モジュールにより検出された表示領域に対してクリックを行う相対位置を表す変数の値を設定する。具体例として、目的画像がアイコンやボタンである場合、クリックの実行を表す操作モジュールのプロパティ情報には、クリックを行う相対位置を表す変数の値として、画像認識モジュールにより検出された領域の中心位置を設定する。他の具体例として、目的画像がボタンや入力フィールドから上又は左に所定距離だけ離れた位置に表示される画像である場合、クリックを行う相対位置を表す変数の値として、画像認識モジュールにより検出された領域よりも所定距離だけ下又は右に離れた位置を設定する。作成情報受信部511は、設定対象処理モジュールと、入力された各種変数の設定値を含むプロパティ情報とを対応付けて記憶する。シナリオ作成部51は、ステップS110の処理に戻る。
作成情報受信部511は、ステップS120においてプロパティ設定指示が入力されなかったと判定した場合(ステップS120:NO)、シナリオ作成の終了が入力されたか否かを判定する(ステップS130)。作成情報受信部511は、シナリオ作成の終了が入力されなかったと判定した場合(ステップS130:NO)、ステップS110の処理に戻る。一方、作成情報受信部511は、シナリオ作成の終了が入力されたと判定した場合(ステップS130:YES)、シナリオ登録部513に処理を指示する。シナリオ登録部513は、作成されたシナリオを記述したシナリオファイルを生成して記憶部2に書き込み、シナリオ生成フローを終了する(ステップS135)。
図6は、シナリオ実行装置1におけるシナリオ実行処理を示すフロー図である。シナリオ実行装置1のシナリオ実行管理部53は、入力部3により実行対象のシナリオの情報と、実行開始とが入力されたことを検出する(ステップS210)。あるいは、シナリオ実行管理部53は、予め登録していた実行スケジュールが示す実行対象のシナリオの実行タイミングになったことを検出する。読出部541は、実行対象のシナリオが記述されたシナリオファイルを記憶部2から読み出す(ステップS215)。読出部541は、シナリオファイルに記述されている最初の処理モジュールを実行対象モジュールとする(ステップS220)。
読出部541は、シナリオファイルから実行対象モジュールの情報を読み出す(ステップS225)。実行対象モジュールの情報は、実行対象モジュールの種別と、実行対象モジュールのプロパティ情報を含む。判断部542は、実行対象モジュールの種別がユーザ操作モジュールであるか画像認識モジュールであるかを判断する(ステップS230)。判断部542は、実行対象モジュールの種別がユーザ操作モジュールであると判断した場合(ステップS230:ユーザ操作モジュール)、操作制御部543に処理を指示する。操作制御部543は、プロパティ情報を用いて、実行対象モジュールにより示されるユーザ操作を行うよう入力部3を制御する(ステップS235)。
ステップS230において判断部542が、実行対象モジュールの種別が画像認識モジュールであると判断した場合(ステップS230:画像認識モジュール)、画像認識部550は、画像認識モジュールの探索シナリオファイルを読み出す。画像認識部550は、探索シナリオファイルに記述される探索シナリオに従って、画像認識処理を実行する(ステップS240)。
ステップS235又はステップS240の後、読出部541は、次の実行順が終了ノードであるか否かを判定する(ステップS245)。読出部541は、終了ノードではないと判定した場合(ステップS245:NO)、次の実行順の処理モジュールを新たな実行対象モジュールとし(ステップS250)、ステップS225からの処理を繰り返す。一方、読出部541は、次の実行順が終了ノードであると判定した場合(ステップS245:YES)、シナリオの実行を終了する(ステップS255)。
続いて、画像認識モジュールを用いた画像認識について説明する。図7は、画像認識モジュールの概要を説明するための図である。画像認識モジュールは、探索シナリオに従って、マッチング画像から目的画像に類似又は一致する領域を検出し、検出した領域(検出領域)の座標を表す探索結果情報を出力する処理を示す。マッチング画像は、表示部4が表示している画面の画像であり、目的画像にマッチする(類似した又は一致する)画像が表示されている領域を探索する対象の画像である。本実施形態において、シナリオ実行装置1のOSはマルチウィンドウシステムであり、マッチング画像は、アプリ又はOSが表示部4に表示させているウィンドウ画面の画像である。目的画像の例は、ユーザ操作の対象となるアイコン、ボタン、テキスト入力フィールドである。目的画像は、ユーザ操作の対象ではない画像でもよい。例えば、ユーザ操作の対象がボタンやテキスト入力フィールドであり、そのユーザ操作の対象のボタンやテキスト入力フィールドから一定の位置(所定距離だけ上、所定距離だけ横など)に画像がある場合、その画像を目的画像としてもよい。ユーザ操作の対象のアイコン、ボタン、テキスト入力フィールドなどからの相対位置が一定の画像を目的画像とした場合、目的画像と相対位置とを用いてユーザ操作の対象の位置を算出可能である。
探索シナリオは、目的画像から得られる画像の特徴を用いた探索条件による探索処理を一以上組み合わせて生成される。そこで、ユーザは、目的画像の特徴を単純なものに分解して探索条件とする。探索条件として、目的画像の色に関する特徴、目的画像の形状に関する特徴、目的画像がマッチング画像内の注目領域であるという特徴、又は、マッチング画像内の目的画像が入力部3の操作に基づいて色が変化する領域の画像であるという特徴である。例えば、目的画像が赤い丸と青い四角とを含むアイコンであるとする。ユーザは、赤い、青い、丸い、四角い、表示領域にカーソルがある場合に色が変化するなどの目的画像の目立つ特徴をそれぞれ探索条件とし、それら探索条件の論理積で表される探索シナリオを生成する。シナリオ実行装置1は、生成された探索シナリオを用いてマッチング画像を探索し、目的画像にマッチする領域を検出する。このように、シナリオ実行装置1は、人の認識の仕方と近い手順によって探索を行う探索シナリオを用いて、マッチング画像から目的画像を検出することができる。
例えば、図7に示す探索シナリオは以下のような探索処理の組み合わせである。まず、マッチング画像G1に対して、探索条件C1により探索処理を行い、マッチング画像G1から検出された領域を抽出した出力画像G2を得る。また、マッチング画像G1に対して探索条件C2により探索処理を行い、マッチング画像G1から検出された領域を抽出した出力画像G3を得る。さらに、出力画像G3に対して探索条件C3により探索処理を行い、出力画像G3から検出された領域を抽出した出力画像G4を得る。そして、出力画像G2に対して探索条件C4により探索処理を行った結果と、出力画像G4に対して探索条件C5により探索処理を行った結果との論理積の領域の出力画像G5を得る。出力画像G5の領域の座標が、最終的な探索結果情報として出力される。探索条件C1〜C5には、目的画像G0から得られる特徴のうち、ユーザが選択した特徴が用いられる。
探索シナリオは、画像認識モジュールの探索シナリオファイルに記述される。探索シナリオファイルは、マッチング画像特定情報と、目的画像又は目的画像特定情報と、探索シナリオと、選択アルゴリズムとを含む。マッチング画像特定情報は、マッチング画像として用いられるウィンドウ画面を特定する情報である。探索シナリオファイルにマッチング画像特定情報が含まれない場合、画像認識モジュールの実行時にアクティブになっているウィンドウ画面をマッチング画像とすることができる。目的画像特定情報は、目的画像を特定する情報である。
探索シナリオは、探索処理の実行順と、各探索処理の探索条件と、探索処理の組み合わせ方法とを示す。探索条件は、探索機能の種類と、その探索機能による探索を行う際の条件を示す探索パラメータの値とを含む。探索パラメータは、入力画像を特定する情報と、出力画像名とを含む。入力画像は、探索を行う対象の画像であり、マッチング画像又は他の探索処理の結果として得られた出力画像である。出力画像名は、探索処理により探索を行った結果を示す出力画像の画像名である。探索処理の組み合わせ方法は、例えば、論理和、論理積、重み付け加算などである。重み付け加算の場合、探索処理の組み合わせ方法は、各探索処理により検出された領域内の各画素に付与する重みの情報を含む。
選択アルゴリズムは、最後の探索処理による検出領域の座標を画像認識モジュールの実行結果として出力するか、最後の探索処理により得られたマッチング画像の画素毎のスコアに基づいてスコアが最も良い領域又はスコアが所定より良い領域の座標を画像認識モジュールの実行結果として出力するかの選択を示す。あるいは、選択アルゴリズムは、最後の探索処理により得られた複数の検出領域、又は、最後の探索処理により得られたマッチング画像の画素毎のスコアに基づいて得られた複数の領域から、1又は複数の領域を選択するための条件としてもよい。選択条件には、例えば、最も上の位置、最も左の位置などの領域の位置の情報や、最も大きい領域、最も小さい領域などの領域の大きさの情報を用いることができる。なお、各探索処理が論理積や論理和で組み合わされ、かつ、最後の探索処理による検出領域の座標をそのまま画像認識モジュールの実行結果として出力する場合、選択アルゴリズムを設定しなくてもよい。
図8は、探索シナリオの例を示す図である。図8に示す探索シナリオは、探索手順及び選択アルゴリズムにより表される。探索手順には、探索機能F1、F2、F3それぞれを探索条件として用いる探索処理R1、R2、R3を順に実行することが記述されている。さらに、探索手順には、探索処理R1、探索処理R2及び探索処理R3の組み合わせが、論理積及び論理和により記述されている。そして、探索手順における最後の探索処理R3による検出領域のうち、いずれを選択するかが選択アルゴリズムにより示される。
従来は、特定のアルゴリズムによってマッチング画像において該当する領域を探索していた。本実施形態では、マッチング画像内において目的画像にマッチする領域を探索する上で有効な特徴を探索条件としてユーザが組み合わせて設定する。これにより、ユーザは、認識対象に合わせた画像認識のアルゴリズムを探索シナリオとして作成する。探索シナリオを構成する各探索処理に用いられる探索条件には、探索に使用する探索機能の種類が含まれる。探索機能の種類を以下に示す。
(1)特徴色探索機能:特徴色探索機能は、特定の色が用いられている領域を検出する機能である。マッチング画像に目的画像が存在する場合、同じ色が使われている。そこで、ユーザは、目的画像において最も特徴的であると考えられる色を指定し、その色を探索条件とする。シナリオ実行装置1は、探索条件が示す色をマッチング画像から検出し、目的画像の表示領域の候補を検出する。これは、例えば、目的画像がアイコンの画像であり、マッチング画像における背景や、マッチング画像に含まれる他のアイコンに対して、目的画像のアイコンに比較的目立つ色が用いられている場合に有効である。
(2)アイコン判別機能:アイコン判別機能は、マウス移動による画像変化によってアイコンを検出する機能である。アイコンやボタンなどのUI(ユーザインタフェース)の場合、マウスを移動させることで、輪郭や背景色が変わることがある。そこで、マッチング画像上でマウス移動を行い、画像が変化することを探索条件とする。目的画像が、その表示領域上にカーソルがあるか否かによって色や形状が変化するアイコンやボタンである場合に有効である。
(3)矩形検出機能:矩形検出機能は、輪郭抽出を用いて四角形を検出する機能である。シナリオ実行装置1は、マッチング画像から輪郭を抽出し、ポリラインで近似する。シナリオ実行装置1は、ポリラインの頂点(角)が4つ存在する場合、四角形として検出する。目的画像が、ボタンのような四角いUIである場合に有効である。
(4)円検出機能:円検出機能は、マッチング画像内の円を検出する機能である。シナリオ実行装置1は、既存の円検出処理によってマッチング画像から円を検出する。目的画像が丸いアイコンやUIである場合や、目的画像に円が用いられている場合に有効である。
(5)円のあてはめ機能:円のあてはめ機能は、楕円フィッティングにより得られたマッチング画像内の楕円に対して、真円度の閾値処理を利用して円を推定する機能である。シナリオ実行装置1は、マッチング画像から輪郭を抽出し、輪郭座標から楕円のパラメータを推定する。シナリオ実行装置1は、推定した楕円のパラメータから、真円度を求める。シナリオ実行装置1は、閾値よりも真円度が小さい楕円を円と推定する。目的画像に完全な円ではないが、円に近い画像が含まれている場合に有効である。例えば、目的画像に、三日月形のように、円周の一部が不連続な円弧が用いられている場合に適用可能である。
(6)注目箇所抽出機能:注目箇所抽出機能は、顕著性マップを用いてマッチング画像内における注目領域を抽出する機能である。シナリオ実行装置1は、マッチング画像の顕著性マップを求める。顕著性マップは、画像内において人間が視覚的に注目する領域を数値化したものでる。シナリオ実行装置1は、判別分析法によって自動で閾値を設定することで、顕著性マップにおける注目領域を求める。例えば、目立つアイコンやUIの領域を全検出する場合に有効である。
(7)色ヒストグラム類似領域探索機能:色ヒストグラム類似領域探索機能は、色ヒストグラムの類似度を用いてマッチング画像において目的画像と類似する領域を探索する機能である。マッチング画像において目的画像が存在する領域は、目的画像と色ヒストグラムの類似度が高い。そこで、シナリオ実行装置1は、目的画像の色ヒストグラムの特徴を探索条件に用いて、マッチング画像から目的画像が含まれる領域を探索する。
図9は、シナリオ実行装置1による探索シナリオファイル作成処理を示すフロー図である。シナリオ実行装置1の探索シナリオ作成部52は、入力部3により探索シナリオ作成開始の指示が入力されることにより、図9に示す探索シナリオ作成処理を開始する。
まず、作成情報受信部521は、ユーザが入力部3により入力したマッチング画像特定情報を取得する(ステップS310)。例えば、ユーザは、入力部3により、マッチング画像として用いるウィンドウ画面をクリックするなどして指定する。作成情報受信部521は、指定されたウィンドウ画面に表示されているタイトルの情報をマッチング画像特定情報として取得する。続いて、作成情報受信部521は、ユーザが入力部3により指定した目的画像を取得する(ステップS315)。例えば、画像編集機能を有する機能A実行部56aにマッチング画像を取り込み、ユーザは、そのマッチング画像から入力部3により目的画像とする一部の領域を指定してもよい。あるいは、ユーザは、記憶部2に記憶されている画像の識別情報を入力部3により入力してもよい。なお、探索シナリオにおいて目的画像を使用しない場合、ステップS315の処理を行わなくてもよい。
続いて、作成情報受信部521は、探索機能の種別をユーザが入力部3により入力したか否かを判定する(ステップS320)。例えば、ユーザは、探索シナリオに探索処理を追加する場合、その探索処理に用いる探索機能の種別を入力部3により入力する。作成情報受信部521は、探索機能の種別が入力されたと判定する(ステップS320:YES)。作成情報受信部521は、追加する探索処理に実行順を付与する。最初に追加される探索処理の場合、実行順を1とする。また、すでにn個(nは1以上の整数)の探索処理が作成済みの場合、作成情報受信部521は、実行順を(n+1)とする。あるいは、すでにn個(nは1以上の整数)の探索処理が作成済みであり、ユーザが作成対象の実行順j(jは1以上n以下の整数)を入力した場合、作成情報受信部521は、実行順がj以降の作成済みの探索処理については実行順を(j+1)に変更し、追加する探索処理の実行順をjとする。画面表示制御部522は、探索条件設定画面を表示する。探索条件設定画面は、探索機能に応じた探索パラメータの値、及び、他の探索処理の結果との組み合わせ方法を入力するための画面である。なお、上述した(1)〜(7)に示す各探索機能に用いられる探索パラメータについては、後述する。また、以下では、他の探索処理の結果との組み合わせ方法を演算方法とも記載する。
作成情報受信部521は、ユーザが入力部3により探索パラメータの値又は演算方法を入力したか否かを判定する(ステップS330)。作成情報受信部521は、探索パラメータの値又は演算方法が入力されたと判定した場合(ステップS330:YES)、探索処理の実行順と、探索機能の種別とに対応付けて、入力された探索パラメータの値又は演算方法を記憶する(ステップS335)。演算方法が論理和又は論理積である場合、組み合わせる対象の他の探索処理は、直前の実行順の探索処理又はユーザが指定した実行順の探索処理である。組み合わせる対象の他の探索処理を、実行順により指定してもよく、出力画像名により指定してもよい。また、直前の実行順の探索処理と組み合わせる場合、組み合わせる対象の探索処理の設定を省略してもよい。また、演算方法が重み付け加算である場合、重みの値も入力される。
作成情報受信部521は、ステップS330において探索パラメータの設定値及び演算方法が入力されていないと判定した場合(ステップS330:NO)、又は、ステップS335の処理の後、ステップS340の処理を行う。すなわち、作成情報受信部521は、ユーザが入力部3により探索処理の試行指示を入力したか否かを判定する(ステップS340)。作成情報受信部521は、探索処理の試行指示が入力されたと判定した場合(ステップS340:YES)、試行部523に探索処理の試行を指示する。試行部523は、ステップS335において記憶された探索機能の種別と、探索パラメータの値と、演算方法とにより示される探索条件を用いて、入力画像に対して探索処理を行う(ステップS345)。画面表示制御部522は、試行部523が探索処理を行った結果検出した領域の情報を、マッチング画像に重ねて表示部4に表示する。
作成情報受信部521は、ステップS340において探索処理の試行指示が入力されていないと判定した場合(ステップS340:NO)、又は、ステップS345の処理の後、ステップS350の処理を行う。すなわち、作成情報受信部521は、ユーザが入力部3により探索条件の設定終了を入力したか否かを判定する(ステップS350)。作成情報受信部521は、ユーザが入力部3により探索条件の設定終了を入力していないと判定した場合(ステップS350:NO)、ステップS330からの処理を行う。例えば、ユーザは、ステップS345で表示された探索処理の結果を確認し、ユーザが意図した結果が得られていない場合、変更する探索パラメータの値又は演算方法を入力部3により入力するため、ステップS330においてYESと判定される。
一方、ユーザは、ステップS345で表示された探索処理の結果を確認し、ユーザが意図した結果が得られた場合、探索処理の設定終了を入力する。作成情報受信部521は、ステップS350においてユーザが入力部3により探索条件の設定終了を入力したと判定する(ステップS350:YES)。探索シナリオ登録部524は、ステップS330において記憶された探索処理の実行順と、探索機能と、探索パラメータの値と、演算方法とを設定した探索処理を探索シナリオに追加する(ステップS355)。探索シナリオ作成部52は、ステップS320からの処理を行う。
作成情報受信部521は、ステップS320において探索機能が入力されていないと判定した場合(ステップS320:NO)、ステップS360の処理を行う。すなわち、作成情報受信部521は、ユーザが探索シナリオに含まれる探索処理を修正対象として指定する操作を入力部3により行ったか否かを判定する(ステップS360)。作成情報受信部521は、ユーザが、探索シナリオに含まれるいずれかの探索処理を修正対象として指定する操作を行ったと判定した場合(ステップS360:YES)、画面表示制御部522に修正対象の探索処理を通知する。画面表示制御部522は、ステップS325の処理を行い、探索条件設定画面を表示する。このとき、画面表示制御部522は、探索条件設定画面に、指定された探索処理について設定済みの各探索パラメータの値及び演算方法をデフォルトで表示する。その後、探索シナリオ作成部52は、ステップS330からの処理を行う。ただし、ステップS355において、探索シナリオ登録部524は、指定された探索処理について修正された探索パラメータの値及び演算方法により、探索シナリオに設定済みのその探索処理の探索条件を変更する。
作成情報受信部521は、ステップS360においてユーザが修正対象の探索処理の選択を入力していないと判定した場合(ステップS360:NO)、ステップS365の処理を行う。すなわち、作成情報受信部521は、探索シナリオに設定する選択アルゴリズムをユーザが入力部3により入力したか否かを判定する(ステップS365)。作成情報受信部521は、ユーザが入力部3により選択アルゴリズムを入力したと判定した場合(ステップS365:YES)、入力された選択アルゴリズムを記憶部2に記憶される探索シナリオに書き込む(ステップS370)。
作成情報受信部521は、ステップS365においてユーザが選択アルゴリズムを入力していないと判定した場合(ステップS365:NO)、又は、ステップS370の処理の後、ステップS375の処理を行う。すなわち、作成情報受信部521は、探索シナリオの試行指示が入力されたか否かを判定する(ステップS375)。例えば、ユーザは、ステップS320〜ステップS370の処理によって探索処理を組み合わせて探索シナリオを生成すると、入力部3により探索シナリオの試行指示を入力する。作成情報受信部521は、ステップS375において探索シナリオの試行指示が入力されたと判定し(ステップS375:YES)、試行部523に探索シナリオの試行を指示する。試行部523は、試行指示の入力時において作成されている探索シナリオを記憶部2から読み出す。試行部523は、マッチング画像及び目的画像と、読み出した探索シナリオとを画像認識部550に出力し、試行を指示する。画像認識部550は、後述する図10のステップS425〜ステップS460の処理を行い、探索シナリオの実行結果を試行部523に通知する。なお、試行部523が、図10のステップS425〜ステップS460の処理を行ってもよい。画面表示制御部522は、探索シナリオの実行結果が示す検出領域をマッチング画像に重ねた探索結果情報を表示部4に表示する(ステップS380)。
作成情報受信部521は、ステップS375において探索シナリオの試行が入力されていないと判定した場合(ステップS375:NO)、又は、ステップS380の処理の後、ステップS385の処理を行う。すなわち、作成情報受信部521は、ユーザが入力部3により探索シナリオの作成終了を入力したか否かを判定する(ステップS385)。作成情報受信部521は、探索シナリオの作成終了が入力されていないと判定した場合(ステップS385:NO)、ステップS320からの処理を行う。例えば、ユーザは、ステップS380で表示された探索シナリオの試行結果を確認し、意図した結果が得られていない場合、探索シナリオに追加する探索処理の探索機能の選択を入力部3により追加する。これにより、作成情報受信部521は、ステップS320においてYESと判定する。あるいは、ユーザは、探索シナリオに含まれる探索処理のうち、パラメータの値又は演算方法を修正する対象の探索処理の指定を入力部3により入力する。これにより、作成情報受信部521は、ステップS320においてNOと判定し、ステップS360においてYESと判定する。
一方、ユーザは、ステップS380で表示された探索シナリオの試行結果を確認し、意図した結果が得られた場合、探索シナリオの作成終了を入力部3により入力する。作成情報受信部521は、ユーザが入力部3により探索シナリオの作成終了を入力したと判定する(ステップS385:YES)。探索シナリオ登録部524は、画像認識モジュールの探索シナリオファイルを生成し、記憶部2に記憶する(ステップS390)。探索シナリオファイルは、マッチング画像特定情報と、目的画像又は目的画像特定情報と、探索シナリオ(各探索処理の実行順、探索条件及び演算方法、ならびに、選択アルゴリズム)とを含む。
図5のステップS150において、シナリオ登録部513は、シナリオに画像認識モジュールが含まれている場合に、当該画像認識モジュールについて図9に示す処理により作成された探索シナリオファイルをシナリオファイルに含めるか、記憶部2に記憶された探索シナリオファイルの探索シナリオファイル識別情報をシナリオファイルに含める。そして、図6のステップS240において、画像認識部550は、実行対象モジュールである画像認識モジュールを実行する際には、当該画像認識モジュールについて生成された探索シナリオファイルをシナリオファイルから読み出して、あるいは、シナリオファイルに記述される探索シナリオファイル識別情報が示す探索シナリオファイルを記憶部2から読み出して実行する。
図10は、シナリオ実行装置1による画像認識モジュール実行処理を示すフロー図である。探索シナリオ取得部551は、実行対象の画像認識モジュールの探索シナリオファイルをシナリオファイルから読み出す。あるいは、探索シナリオ取得部551は、シナリオファイルに記述される探索シナリオファイル識別情報が示す探索シナリオファイルを記憶部2から読み出す(ステップS410)。
画像取得部552は、探索シナリオファイルに設定されているマッチング画像特定情報が示すウィンドウ画面をマッチング画像として取得する(ステップS415)。なお、画像取得部552は、マッチング画像特定情報を用いず、現在アクティブになっているウィンドウ画面の画像をマッチング画像として取得してもよい。さらに、画像取得部552は、探索シナリオファイルに含まれる目的画像、又は、探索シナリオファイルに記述される目的画像特定情報の目的画像を取得する(ステップS420)。
読出部553は、探索シナリオファイルから、探索シナリオにおける最初の実行順の探索処理を特定する(ステップS425)。特定された探索処理を、実行対象探索処理と記載する。読出部553は、実行対象探索処理の探索条件と演算方法を探索シナリオから読み出す(ステップS430)。探索部554は、探索条件に設定されている入力画像を取得する。探索部554は、探索条件を用いて実行対象探索処理を実行する(ステップS435)。すなわち、探索部554は、探索条件に設定されている探索機能及び探索パラメータの値を用いて、入力画像に対して探索処理を実行する。入力画像がマッチング画像である場合は、マッチング画像全体を探索対象とする。入力画像が他の探索処理の出力画像である場合、出力画像が示すマッチング画像内の検出領域を探索対象とする。
探索部554は、実行対象探索処理により検出された領域に、演算方法に従った演算を行って検出領域の座標情報を取得する(ステップS440)。演算方法が他の探索処理の出力画像との論理積又は論理和である場合、ステップS435の実行対象探索処理により検出された領域と、他の探索処理の出力画像が示す領域との論理和又は論理積を算出し、実行対象探索処理の出力画像とする。演算方法が重み付け加算の場合、探索部554は、他の探索処理の出力画像が示す各画素のスコアに、実行対象探索処理により検出された領域内の各画素に付与したスコアを加算し、出力画像とする。なお、検出された領域内の各画素に付与するスコアは、演算方法に設定されている重みである。
読出部553は、現在の実行対象探索処理が、探索シナリオ内の最後の探索処理であるか否かを判定する(ステップS445)。読出部553は、最後の探索処理ではないと判定した場合(ステップS445:NO)、探索シナリオに含まれている次の実行順の探索処理を特定し、新たな実行対象探索処理とする(ステップS450)。画像認識部550は、ステップS430の処理に戻る。
読出部553は、ステップS445において最後の探索処理であると判定した場合(ステップS445:YES)、探索シナリオの実行を終了する(ステップS455)。探索部554は、探索シナリオに設定されている選択アルゴリズムに基づいて、最後の探索処理により得られた検出領域の座標を示す探索結果情報、又は、最も高いスコアの画素の領域の座標を示す探索結果情報を出力する(ステップS460)。
続いて、画面表示制御部522が表示部4に表示する探索シナリオ作成のための画面の表示例を説明する。図11は、画像マッチングエディタ画面600の表示例である。画像マッチングエディタ画面600は、メニュー表示領域601と、マッチング画像表示領域603とを含む。マッチング画像を設定する場合、ユーザは、メニュー表示領域601に表示されるメニューから画像の設定を入力部3により選択する。作成情報受信部521は、画像の設定が選択されると、画像の指定ダイアログ605を表示してもよい。ユーザが入力部3によりウィンドウ画面610を選択し、画像の指定ダイアログ605のキャプチャボタンをクリックすると、作成情報受信部521は、ウィンドウ画面610の画像を取り込む。画面表示制御部522は、取り込まれた画像をマッチング画像表示領域603に表示する。目的画像を設定する場合、ユーザは、メニュー表示領域601に表示されるメニューから目的画像の設定を入力部3により選択する。作成情報受信部521は、目的画像の設定が選択されると、後述する図12に示す目的画像作成画面620を表示してもよい。探索シナリオの作成を行う場合、ユーザは、メニュー表示領域601に表示されるメニューから探索シナリオの編集を入力部3により選択する。作成情報受信部521は、探索シナリオの編集が選択されると、後述する図13に示す探索シナリオ編集画面630を表示してもよい。
図12は、マッチング画像を加工して目的画像を生成する場合に表示される目的画像作成画面620の表示例である。ユーザが入力部3により目的画像の生成を入力した場合、画面表示制御部522は、目的画像作成画面620を表示部4に表示する。目的画像作成画面620は、マッチング画像を表示する表示領域621と、画像加工方法を表示する加工メニュー表示領域622とが含まれる。ユーザは、加工メニュー表示領域622に表示される加工方法のメニューを入力部3により選択して表示領域621に表示されるマッチング画像の加工を行い、目的画像を生成する。同図では、領域623のトリミングを入力部3により入力することによって、マッチング画像の領域623を切り出して目的画像を生成している。
図13は、探索シナリオ編集画面630の表示例を示す図である。探索シナリオ編集画面630は、メニュー表示領域631と、探索手順表示領域632と、プルダウンメニュー633とを含む。メニュー表示領域631には、探索機能を選択するためのメニューが表示される。この探索機能のメニューにより、特徴色探索機能、アイコン判別機能、矩形検出機能、円検出機能、円のあてはめ機能、注目箇所抽出機能及び色ヒストグラム類似領域探索機能が選択可能である。
探索手順表示領域632には、探索処理の実行順(No.)と、探索処理に用いられる探索機能の名称である探索機能名、探索パラメータ及び演算方法とが表示される。探索パラメータの値及び演算方法は、後述する各探索機能別の探索条件設定画面により設定される。図13に示す演算方法は、実行順が一つ前の探索処理の出力画像との論理積(AND)又は論理和(OR)を算出することを示す。
プルダウンメニュー633には、探索シナリオに設定する選択アルゴリズムを選択するためのメニューが表示される。ユーザは、探索シナリオの作成開始から作成終了までの間に、プルダウンメニュー633を用いて、探索シナリオに設定する選択アルゴリズムを選択する。
ユーザが入力部3により、メニュー表示領域631のメニューから追加する探索処理の探索機能を選択すると、画像取得部552は、選択された探索機能の探索条件設定画面(後述する図14〜図20)を表示部4に表示する。ユーザは、入力部3により、探索条件設定画面に探索パラメータの値を設定し、設定した値を用いた探索処理の試行をシナリオ実行装置1に指示する。ユーザは、探索処理の試行結果を確認しながら、探索シナリオに探索処理を一つずつ追加する。これにより、最終的に、1以上の探索処理を組み合わせた探索シナリオが作成される。ユーザは、探索シナリオを作成すると選択アルゴリズムを入力部3により入力する。
図14は、特徴色探索機能の探索条件設定画面700の表示例を示す図である。探索条件設定画面700は、パラメータ値入力領域701と、探索結果表示領域702とを有する。パラメータ値入力領域701では、探索パラメータ及び演算方法を設定する。探索パラメータは、入力画像、出力画像名、特徴色、最小サイズ及び最大サイズである。パラメータ値入力領域701は、プルダウンメニュー703、入力フィールド704、色サンプル表示ボタン705、入力フィールド707、入力フィールド708、演算方法選択プルダウンメニュー709、試行ボタン710及び決定ボタン711を有する。
プルダウンメニュー703では、マッチング画像と、他の探索処理の出力画像名との一覧の中から、入力画像とする画像を選択する。入力フィールド704には、出力画像名が入力される。ユーザが入力部3により色サンプル表示ボタン705をクリックすると、画面表示制御部522は、特徴色選択ダイアログ706を表示する。画面表示制御部522は、特徴色選択ダイアログ706に、目的画像に使用されている色を色サンプルとして表示する。ユーザは、入力部3により特徴色選択ダイアログ706に表示される色サンプルの中から特徴的な色をクリックすることで、探索に用いる特徴色を選択する。入力フィールド707及び708にはそれぞれ、最小サイズ及び最大サイズが入力される。最小サイズは、特徴色との一致が検出された領域の大きさがこの値よりも小さい場合に、その領域を検出矩形候補から除外するために用いられる。最大サイズは、特徴色との一致が検出された領域の大きさがこの値よりも大きい場合、その領域を検出矩形候補から除外するために用いられる。
演算方法選択プルダウンメニュー709では、論理和、論理積及び重み付け加算の中からいずれかの演算方法を選択する。論理和及び論理積はそれぞれ、一つ前の実行順の探索処理の検出領域との論理和及び論理積である。試行ボタン710は、パラメータ値入力領域701に現在設定されている探索パラメータの値を用いた探索処理の試行を指示する。探索結果表示領域702は、試行ボタン710がクリックされたことにより実行された探索処理の結果を描画する。同図では、マッチング画像に、探索処理の結果得られた検出領域の情報が重ねて表示されている。さらに、検出領域には、検出領域であることを表す矩形と、検出領域に付与された番号とが表示されている。番号は、例えば、色の一致度が高い順としてもよい。ユーザは、探索結果表示領域702に表示される探索処理の結果を確認して、必要に応じて探索パラメータの値を変更する。決定ボタン711は、各探索パラメータの値をパラメータ値入力領域701に現在設定されている値に決定し、探索条件の設定終了を指示する。
図15は、アイコン判別機能の探索条件設定画面720の表示例を示す図である。探索条件設定画面720は、パラメータ値入力領域721と、探索結果表示領域722とを有する。パラメータ値入力領域721では、探索パラメータを設定する。探索パラメータは、探索対象とする領域の座標情報(入力画像)及び出力画像名である。
パラメータ値入力領域721は、プルダウンメニュー723と、入力フィールド724と、試行ボタン725と、決定ボタン726とを有する。プルダウンメニュー723では、他の探索処理の出力画像名の一覧の中から、いずれの探索処理の出力画像が示す検出領域にポインタ(マウスのカーソル)を配置させるかを選択する。つまり、探索シナリオに設定済みの探索処理のうちいずれの探索処理による検出領域を、アイコン判別機能により探索を行う際にマウスカーソルを配置させるための座標情報として用いるかを選択する。入力フィールド724には、出力画像名が入力される。選択される画像は、入力画像に相当する。
試行ボタン725は、パラメータ値入力領域721に現在設定されている探索パラメータの値を用いた探索処理の試行を指示する。探索結果表示領域722は、試行ボタン725がクリックされたことにより実行された探索処理の結果を描画する。同図では、マッチング画像に、探索処理の結果得られた検出領域の情報が重ねて表示されている。さらに、検出領域には、検出領域であることを表す矩形と、検出領域に付与された番号とが表示されている。決定ボタン726は、探索パラメータの値をパラメータ値入力領域721に現在設定されている値に決定し、探索条件の設定終了を指示する。
図16は、矩形検出機能の探索条件設定画面740の表示例を示す図である。探索条件設定画面740は、パラメータ値入力領域741と、探索結果表示領域742とを有する。パラメータ値入力領域741では、探索パラメータ及び演算方法を設定する。探索パラメータは、入力画像、出力画像名、最小サイズ及び最大サイズである。パラメータ値入力領域741は、プルダウンメニュー743、入力フィールド744、入力フィールド746、747、演算方法選択プルダウンメニュー749、試行ボタン750及び決定ボタン751を有する。
プルダウンメニュー743では、マッチング画像と、他の探索処理の出力画像名との一覧の中から、入力画像とする画像を選択する。入力フィールド744には、出力画像名が入力される。入力フィールド746及び747にはそれぞれ、最小サイズ及び最大サイズが設定される。最小サイズは、検出された矩形の大きさがこの値よりも小さい場合、その矩形を検出矩形候補から除外するために用いられる。最大サイズは、検出された矩形の大きさがこの値よりも大きい場合、その矩形を検出矩形候補から除外するために用いられる。
演算方法選択プルダウンメニュー749では、論理和、論理積及び重み付け加算の中からいずれかの演算方法を選択する。論理和及び論理積はそれぞれ、一つ前の実行順の探索処理の検出領域との論理和及び論理積である。試行ボタン750は、パラメータ値入力領域741に現在設定されている探索パラメータの値を用いた探索処理の試行を指示する。探索結果表示領域742は、試行ボタン750がクリックされたことにより実行された探索処理の結果を描画する。同図では、マッチング画像に、探索処理の結果得られた検出領域の情報が重ねて表示されている。さらに、検出領域には、検出領域であることを表す矩形と、検出領域に付与された番号とが表示されている。決定ボタン751は、各探索パラメータの値をパラメータ値入力領域741に現在設定されている値に決定し、探索条件の設定終了を指示する。
図17は、円検出機能の探索条件設定画面760の表示例を示す図である。探索条件設定画面760は、パラメータ値入力領域761と、探索結果表示領域762とを有する。パラメータ値入力領域761では、探索パラメータ及び演算方法を設定する。探索パラメータは、入力画像、出力画像名、検出する円の最小半径、及び、検出する円の最大半径の値である。パラメータ値入力領域761は、プルダウンメニュー763、入力フィールド764、入力フィールド766、767、演算方法選択プルダウンメニュー768、試行ボタン769及び決定ボタン770を有する。
プルダウンメニュー763では、マッチング画像と、他の探索処理の出力画像名との一覧の中から、入力画像とする画像を選択する。入力フィールド764には、出力画像名が入力される。入力フィールド766、767はそれぞれ、検出する円の最小半径、検出する円の最大半径の値を入力する。検出する円の最小半径は、検出された円の半径がこの値よりも小さい場合に、探索処理による検出結果の円から除外するために用いられる。検出する円の最大半径は、検出された円の半径がこの値よりも大きい場合、探索処理による検出結果の円から除外するために用いられる。
演算方法選択プルダウンメニュー768では、論理和、論理積及び重み付け加算の中からいずれかの演算方法を選択する。論理和及び論理積はそれぞれ、一つ前の実行順の探索処理の検出領域との論理和及び論理積である。試行ボタン769は、パラメータ値入力領域761に現在設定されている探索パラメータの値を用いた探索処理の試行を指示する。探索結果表示領域762は、試行ボタン769がクリックされたことにより実行された探索処理の結果を描画する。同図では、マッチング画像に、探索結果として得られた領域の情報が重ねて表示されている。さらに、検出領域には、検出領域であることを表す矩形と、検出領域に付与された番号とが表示されている。ユーザは、探索結果表示領域762に表示される探索処理の結果を確認して、必要に応じて探索パラメータの値を変更する。決定ボタン770は、各探索パラメータの値をパラメータ値入力領域761に現在設定されている値に決定し、探索条件の設定終了を指示する。
図18は、円のあてはめ機能の探索条件設定画面780の表示例を示す図である。探索条件設定画面780は、パラメータ値入力領域781と、探索結果表示領域782とを有する。パラメータ値入力領域781では、探索パラメータ及び演算方法を設定する。探索パラメータは、入力画像、出力画像名、許容真円度、最小サイズ及び最大サイズの値である。パラメータ値入力領域781は、プルダウンメニュー783、入力フィールド784〜787、演算方法選択プルダウンメニュー788、試行ボタン789及び決定ボタン790を有する。
プルダウンメニュー783では、マッチング画像と、他の探索処理の出力画像名との一覧の中から、入力画像とする画像を選択する。入力フィールド784には、出力画像名が入力される。入力フィールド784〜787にはそれぞれ、許容真円度、検出する円の最小半径、及び、検出する円の最大半径が入力される。許容真円度は、推定した楕円の真円度がこの値よりも大きい場合、円の検出結果から除外するために用いられる。最小サイズは、検出された楕円に接する矩形の大きさがこの値よりも小さい場合、その楕円を円の検出結果から除外するために用いられる。最大サイズは、検出された楕円に接する矩形の大きさがこの値よりも大きい場合、その楕円を円の検出結果から除外するために用いられる。
演算方法選択プルダウンメニュー788では、論理和、論理積及び重み付け加算の中からいずれかの演算方法を選択する。論理和及び論理積はそれぞれ、一つ前の実行順の探索処理の検出領域との論理和及び論理積である。試行ボタン789は、パラメータ値入力領域781に現在設定されている探索パラメータの値を用いた探索処理の試行を指示する。探索結果表示領域782は、試行ボタン789がクリックされたことにより実行された探索処理の結果を描画する。同図では、マッチング画像に、探索処理の結果得られた検出領域の情報が重ねて表示されている。さらに、検出領域には、検出領域であることを表す矩形と、検出領域に付与された番号とが表示されている。ユーザは、探索結果表示領域782に表示される探索処理の結果を確認して、必要に応じて探索パラメータの値を変更する。決定ボタン790は、各探索パラメータの値をパラメータ値入力領域781に現在設定されている値に決定し、探索条件の設定終了を指示する。
図19は、注目箇所抽出機能を用いた探索処理の探索条件設定画面800の表示例を示す図である。探索条件設定画面800は、パラメータ値入力領域801と、探索結果表示領域802とを有する。パラメータ値入力領域801では、探索パラメータ及び演算方法を設定する。探索パラメータは、入力画像、出力画像名、最小サイズ及び最大サイズである。パラメータ値入力領域801は、プルダウンメニュー803、入力フィールド804〜806、演算方法選択プルダウンメニュー807、試行ボタン808及び決定ボタン809を有する。
プルダウンメニュー803では、マッチング画像と、他の探索処理の出力画像名との一覧の中から、入力画像とする画像を選択する。入力フィールド804には、出力画像名が入力される。入力フィールド805及び806にはそれぞれ、最小サイズ及び最大サイズが入力される。最小サイズは、検出された矩形の大きさがこの値よりも小さい場合、その矩形を検出矩形候補から除外するために用いられる。最大サイズは、検出された矩形の大きさがこの値よりも大きい場合、その矩形を検出矩形候補から除外するために用いられる。
演算方法選択プルダウンメニュー807では、論理和、論理積及び重み付け加算の中からいずれかの演算方法を選択する。論理和及び論理積はそれぞれ、一つ前の実行順の探索処理の検出領域との論理和及び論理積である。試行ボタン808は、パラメータ値入力領域801に現在設定されている探索パラメータの値を用いた探索処理の試行を指示する。探索結果表示領域802は、試行ボタン808がクリックされたことにより実行された探索処理の結果を描画する。同図では、マッチング画像に、探索処理の結果得られた検出領域の情報が重ねて表示されている。さらに、検出領域には、検出領域であることを表す矩形と、検出領域に付与された番号とが表示されている。番号は、例えば、顕著性マップにおけるスコアが高い順とすることができる。ユーザは、探索結果表示領域802に表示される探索処理の結果を確認して、必要に応じて探索パラメータの値を変更する。決定ボタン809は、各探索パラメータの値をパラメータ値入力領域801に現在設定されている値に決定し、探索条件の設定終了を指示する。
図20は、色ヒストグラム類似領域探索機能の探索条件設定画面820の表示例を示す図である。探索条件設定画面820は、パラメータ値入力領域821と、探索結果表示領域822とを有する。パラメータ値入力領域821では、探索パラメータ及び演算方法を設定する。探索パラメータは、入力画像、出力画像名、有効類似度、最小サイズ及び最大サイズである。パラメータ値入力領域821は、プルダウンメニュー823、入力フィールド824、スライドバー826、入力フィールド827、入力フィールド828、演算方法選択プルダウンメニュー829、試行ボタン830及び決定ボタン831を有する。
プルダウンメニュー823では、マッチング画像と、他の探索処理の出力画像名との一覧の中から、入力画像とする画像を選択する。入力フィールド824には、出力画像名が入力される。入力フィールド825には、ステップ数が入力される。スライドバー826では、有効類似度が設定される。有効類似度は、ヒストグラムの最大類似度から何%までは類似する領域と見なすかを設定する。有効類似度は、スライドバーで設定する。入力フィールド827及び828にはそれぞれ、最小サイズ及び最大サイズが設定される。最小サイズは、検出された矩形の大きさがこの値よりも小さい場合、その矩形を検出矩形候補から除外するために用いられる。最大サイズは、検出された矩形の大きさがこの値よりも大きい場合、その矩形を検出矩形候補から除外するために用いられる。
演算方法選択プルダウンメニュー829では、論理和、論理積及び重み付け加算の中からいずれかの演算方法を選択する。論理和及び論理積はそれぞれ、一つ前の実行順の探索処理の検出領域との論理和及び論理積である。試行ボタン830は、パラメータ値入力領域821に現在設定されている探索パラメータの値を用いた探索処理の試行を指示する。探索結果表示領域822は、試行ボタン830がクリックされたことにより実行された探索処理の結果を描画する。同図では、マッチング画像に、探索処理の結果得られた検出領域の情報が重ねて表示されている。さらに、検出領域には、検出領域であることを表す矩形と、検出領域に付与された番号とが表示されている。ユーザは、探索結果表示領域822に表示される探索処理の結果を確認して、必要に応じて探索パラメータの値を変更する。決定ボタン831は、各探索パラメータの値をパラメータ値入力領域821に現在設定されている値に決定し、探索条件の設定終了を指示する。
続いて、シナリオ実行装置1が実行する各探索機能の探索処理について説明する。以下では、探索部554が探索処理を行う場合を例に説明するが、試行部523が探索処理の試行を行う場合も同様に動作する。
図21は、シナリオ実行装置1による特徴色探索機能を用いた探索処理を示すフロー図である。読出部553は、図14に示す探索条件設定画面700により設定された特徴色探索機能の探索パラメータの値を取得する。探索パラメータは、入力画像、出力画像名、特徴色、最小サイズ及び最大サイズである。探索部554は、入力画像において、探索パラメータが特徴色、すなわち、ユーザにより選択された色と一致する色の画素があるか否かを判定する(ステップS1010)。探索部554は、なしと判定した場合(ステップS1010:NO)、処理を終了する。探索部554は、ありと判定した場合(ステップS1010:YES)、検出された画素によって構成される検出領域が指定条件を満たすか否かを判定する(ステップS1015)。指定条件は、検出領域の大きさが最小サイズ以上かつ最大サイズ以下であるという条件である。探索部554は、検出領域が指定条件を満たさないと判定した場合(ステップS1015:NO)、処理を終了する。探索部554は、検出領域が指定条件を満たすと判定した場合(ステップS1015:YES)、検出領域を、探索条件を満たす検出領域として認識する(ステップS1020)。
図22は、シナリオ実行装置1によるアイコン判別機能を用いた探索処理を示すフロー図である。読出部553は、探索シナリオファイルから、マッチング画像特定情報と、図15に示す探索条件設定画面720により設定されたアイコン判別機能の探索パラメータの値を取得する。探索パラメータは、入力画像及び出力画像名である。探索部554は、マッチング画像特定情報が示すウィンドウ画面を対象ウィンドウとする。探索部554は、対象ウィンドウを前面化する(ステップS1110)。探索部554は、入力画面が示す検出領域の座標を取得し、取得した検出領域を含む矩形の座標を算出する。探索部554は、前面化した対象ウィンドウから、算出した座標位置の矩形を周囲の画像ごとキャプチャする(ステップS1115)。次に、探索部554は、対象ウィンドウのキャプチャした矩形の位置にカーソルを配置するよう入力部3を制御する(ステップS1120)。探索部554は、対象ウィンドウから、ステップS1115と同じ領域をキャプチャする(ステップS1125)。探索部554は、ステップS1115においてキャプチャした画像と、ステップS1125においてキャプチャした画像とを比較し、色が変化したか否かを判定する(ステップS1130)。探索部554は、色が変化していないと判定した場合(ステップS1130:NO)、キャプチャした領域はアイコンやUIではないと判定し、処理を終了する。一方、探索部554は、色が変化したと判定した場合(ステップS1130:YES)、キャプチャした領域は、アイコン又はUIであると認識する(ステップS1135)。
図23は、シナリオ実行装置1による矩形検出機能を用いた探索処理を示すフロー図である。読出部553は、図16に示す探索条件設定画面740により設定された矩形検出機能の探索パラメータの値を取得する。探索パラメータは、入力画像、出力画像名、最小サイズ及び最大サイズである。探索部554は、入力画像をグレースケール化した後(ステップS1210)、グレースケール化された入力画像のエッジを抽出する(ステップS1215)。探索部554は、抽出されたエッジを用いて輪郭を抽出し(ステップS1220)、抽出した輪郭をポリラインで近似する(ステップS1225)。
探索部554は、ポリラインで近似された輪郭の大きさが指定条件を満たすか否かを判定する(ステップS1230)。指定条件は、領域の大きさが、探索パラメータが示す最小サイズ以上かつ最大サイズ以下であるという条件である。探索部554は、指定条件を満たさないと判定した場合(ステップS1230:NO)、処理を終了する。探索部554は、指定条件を満たすと判定した場合(ステップS1230:YES)、ポリラインで近似された輪郭の頂点の数が4つであるか否かを判定する(ステップS1235)。探索部554は、輪郭の頂点の数が4つではないと判定した場合(ステップS1235:NO)、処理を終了する。探索部554は、輪郭の頂点の数が4つであると判定した場合(ステップS1235:YES)、ポリラインで近似された輪郭の領域を探索処理により検出された矩形として認識する(ステップS1240)。
図24は、シナリオ実行装置1による円検出機能を用いた探索処理を示すフロー図である。読出部553は、図17に示す探索条件設定画面760により設定された円検出機能の探索パラメータの値を取得する。探索パラメータは、入力画像、出力画像名、検出する円の最小半径、及び、検出する円の最大半径の値である。探索部554は、入力画像をグレースケール化した後(ステップS1310)、円のパラメータを推定することで円を検出する(ステップS1315)。読出部553は、検出された円の領域が指定条件を満たすか否かを判定する(ステップS1320)。指定条件は、検出された円の領域の半径が、探索パラメータが示す円の最小半径以上かつ最大半径以下であるという条件である。探索部554は、指定条件を満たさないと判定した場合(ステップS1320:NO)、処理を終了する。探索部554は、指定条件を満たすと判定した場合(ステップS1320:YES)、検出された円の領域を探索処理により検出された円として認識する(ステップS1325)。
図25は、シナリオ実行装置1による円のあてはめ機能を用いた探索処理を示すフロー図である。読出部553は、図18に示す探索条件設定画面780により設定された円のあてはめ機能の探索パラメータの値を取得する。探索パラメータは、入力画像、出力画像名、許容真円度、最小サイズ及び最大サイズの値である。探索部554は、入力画像をグレースケール化した後(ステップS1410)、グレースケール化された入力画像のエッジを抽出する(ステップS1415)。探索部554は、抽出されたエッジを用いて輪郭を抽出する(ステップS1420)。探索部554は、抽出した輪郭の大きさが指定範囲内か否かを判定する(ステップS1425)。指定範囲は、探索パラメータが示す最小サイズ以上かつ最大サイズ以下の範囲である。探索部554は、指定範囲内ではないと判定した場合(ステップS1425:NO)、処理を終了する。探索部554は、指定範囲内であると判定した場合(ステップS1425:YES)、指定範囲内の大きさの輪郭に対して楕円フィッティングを行う(ステップS1430)。探索部554は、楕円フィッティングにより推定した楕円の真円度が、探索パラメータが示す真円度で示される基準以内であるか否かを判定する(ステップS1435)。探索部554は、真円度が基準を満たさないと判定した場合(ステップS1435:NO)、処理を終了する。探索部554は、楕円フィッティングされた領域のうち真円度が基準以内であると判定した領域を(ステップS1435:YES)、探索処理により検出された円として認識する(ステップS1440)。
図26は、シナリオ実行装置1による注目箇所抽出機能を用いた探索処理を示すフロー図である。読出部553は、図19に示す探索条件設定画面800により設定された注目箇所抽出機能の探索パラメータの値を取得する。探索パラメータは、入力画像、出力画像名、最小サイズ及び最大サイズの値である。探索部554は、マッチング画像から顕著性マップを作成する(ステップS1510)。顕著性マップとは、人間が画像内において着目する領域を数値化したマップである。顕著性マップには、任意のものを使用可能である。顕著性マップの計算モデルの一例として、輝度情報、色情報、勾配方向情報などを用いたものがある。
探索部554は、顕著性マップから入力画像が示す領域を抽出し、抽出した領域の顕著性の数値を256階調に拡張する(ステップS1515)。探索部554は、ステップS1515において256階調に拡張した顕著性マップの顕著性の数値を、判別分析法によって2値化することで注目領域と非注目領域とに分離する(ステップS1520)。探索部554は、注目領域を囲む矩形が指定範囲内であるか否かを判定する(ステップS1525)。指定範囲は、探索パラメータが示す最小サイズ以上かつ最大サイズ以下の範囲である。例えば、目的画像がアイコンである場合、指定範囲よりも大きい領域はアイコンの表示領域ではない可能性が高い。探索部554は、検出領域が指定範囲内ではないと判定した場合(ステップS1525:NO)、処理を終了する。探索部554は、検出領域が指定範囲内であると判定した場合(ステップS1525:YES)、その検出領域を、探索条件を満たす検出領域として認識する(ステップS1530)。
図27は、シナリオ実行装置1による色ヒストグラム類似領域探索機能を用いた探索処理を示すフロー図である。読出部553は、探索シナリオファイルから、目的画像と、図20に示す探索条件設定画面820により設定された探索パラメータの値とを取得する。探索パラメータは、入力画像、出力画像名、有効類似度、最小サイズ及び最大サイズである。探索部554は、目的画像の色ヒストグラムを取得する(ステップS1610)。探索部554は、入力画像全体で領域を移動させながら、ステップS1615〜ステップS1630の処理を行う。領域の大きさは、探索パラメータが示す最小サイズ及び最大サイズにより決められる。まず、探索部554は、入力画像における現在の領域の色ヒストグラムを算出する(ステップS1615)。探索部554は、ステップS1610で算出した目的画像の色ヒストグラムと、入力画像の領域についてステップS1620で算出した色ヒストグラムの類似度を算出する(ステップS1620)。探索部554は、算出した類似度が、探索パラメータが示す有効類似度を満たすか否かを判定する(ステップS1625)。探索部554は、有効類似度を満たさないと判定した場合(ステップS1625:NO)、入力画像における領域を移動させる。一方、探索部554は、有効類似度を満たすと判定した場合(ステップS1625:YES)、入力画像上の現在の領域を検出領域として認識する(ステップS1630)。
上述した実施形態によれば、ユーザは、目的画像に合わせて探索処理を組み合わせることができる。この組み合わせにより、シナリオ実行装置1は、探索シナリオの実行途中で得られた探索処理結果を入力画像として用いて後続の探索処理を継続することができる。また、ユーザは、探索処理の作成途中で、探索結果を確認しながら探索シナリオを作成することが可能である。加えて、計算量の小さい探索処理については、探索パラメータの値をスライドバーで変更しながら調整することが可能である。そして、計算量の大きい探索処理については、探索対象となる領域を他の探索処理により探索を行った結果得られた領域に絞ることで処理を高速化することが可能である。
なお、直前以外の探索処理の出力画像と論理和、論理積又は重み付け加算を算出する場合、各探索機能の探索条件設定画面のパラメータ値入力領域に、いずれの探索処理の出力結果と論理和、論理積又は重み付け加算を算出するかを入力する入力フィールドを設ける。
なお、上述した各探索機能の探索パラメータは一例であり、上記の探索パラメータに代えて又は加えて他の探索パラメータを用いてもよい。各探索機能の探索条件設定画面には、その探索機能に用いられる各探索パラメータの値を設定するためのボタン、入力フィールド、スライドバー、メニュー等が含まれる。
なお、図14〜図20に示す探索条件設定画面の探索結果表示領域には、演算方法が論理和又は論理積である場合に、探索結果として得られた領域を表示していた。演算方法が重み付け加算である場合、画面表示制御部522は、探索結果表示領域に、マッチング画像に重ねて、所定以上のスコアの画素の領域を重ねて表示してもよい。この場合、画面表示制御部522は、スコアに応じた色や太さの線で領域を示してもよく、その領域の近傍にスコアを表示してもよく、スコアが高い順に付与した番号を表示してもよい。マッチング画像内の各画素のスコアは、以下のように算出される。
例えば、探索処理R1、R2、R3の重み付け加算を行う場合、ユーザは、探索処理R1に重みw1を、探索処理R2に重みw2を、探索処理R3に重みw3を割り当てる。ただし、w1+w2+w3=1とする。この場合、マッチング画像内のある画素xのスコアは、例えば、w1×p1+w2×p2+w3×p3により算出される。ここで、pn(n=1,2,3)は、0以上1以下の値である。例えば、探索処理Rnにより検出された領域に含まれる場合はpn=1、含まれない場合はpn=0としてもよい。また、特徴色探索機能の場合、選択色との類似度に応じてpnの値を0から1までの値としてもよい。また、円のあてはめ機能の場合、真円度に応じてpnの値を0から1までの値としてもよい。また、注目箇所抽出機能の場合、ステップS1510又はステップS1515において得られた顕著性マップの値に応じてpnの値を0から1までの値としてもよい。また、色ヒストグラム類似領域探索機能の場合、ステップS1625において算出した色ヒストグラムの類似度に応じてpnの値を0から1までの値としてもよい。
なお、一つの探索手順を構成する探索処理の組み合わせ方法に、論理積及び論理和の一方又は両方と、重み付け加算とが含まれてもよい。この場合、論理積又は論理和により組み合わされた最後の探索処理において検出された領域内の画素に、1などの所定のスコアを付与してもよい。
このように、各探索条件に合致する領域に、その探索条件(画像の特徴)に応じた点数(スコア)を付与し、それらの点数の合計値に基づいて目的画像と類似の領域を検出することができる。各探索条件に応じて付与する点数はユーザが入力する。探索シナリオの実行終了時に、最も点数の合計値が高い領域を探索結果情報としてもよく、閾値よりも高い点数の領域を探索結果情報としてもよい。このように、画像の特徴を数値化し評価することで、精度の高い画像認識を実現できる。
上述した実施形態によれば、目的画像に応じてユーザがプログラミングをすることなく、探索シナリオを作成することが可能になる。よって、ユーザが任意に選択した目的画像に類似または一致する領域をマッチング画像から検出することが可能となる。特に、RPAのシナリオに組み込んで使用する場合に有効である。なお、本実施形態における画像処理をシナリオ実行装置1以外の画像処理装置に搭載することも可能である。この場合、画像処理装置は、記憶部2、入力部3、表示部4、探索シナリオ作成部52及び画像認識部550を備える。
また、上記においては、ユーザは、シナリオ実行装置1を用いてシナリオを生成しているが、シナリオ実行装置1とは異なるPCなどのシナリオ作成装置(情報処理装置)を用いてシナリオを作成してもよい。
上述した実施形態におけるシナリオ実行装置1の機能をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
以上説明した実施形態によれば、画像処理装置は、探索シナリオ取得部と、探索部とを有する。画像処理装置は、例えば、シナリオ実行装置1である。探索シナリオ取得部は、探索の目的となる画像である目的画像に基づく画像の特徴を探索条件に用いて画像を探索する探索処理を一以上組み合わせた探索シナリオを取得する。例えば、探索処理の組み合わせは、論理和、論理積、又は、重み付け加算を含む。探索処理の組み合わせは、さらに、選択アルゴリズムを含んでもよい。また、探索条件は、目的画像に用いられている色に関する特徴、目的画像の形状に関する特徴、マッチング画像における注目領域、又は、ユーザインタフェースの操作に基づく変化である。探索部は、探索シナリオ取得部が取得した探索シナリオが示す探索処理の組み合わせを用いて、探索を行う対象の画像であるマッチング画像を探索し、探索により検出されたマッチング画像における領域を示す探索結果情報を出力する。
画像処理装置は、探索シナリオ作成部と、試行部とをさらに備えてもよい。探索シナリオ作成部は、ユーザの入力によって探索シナリオを作成する。試行部は、探索シナリオ作成部により作成中の探索シナリオが示す探索処理の組み合わせを用いて、ユーザの入力により指定されたマッチング画像を探索し、探索により検出されたマッチング画像における領域を示す探索結果情報を出力する。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
本発明の一態様は、上述の画像処理装置であって、ユーザの入力によって前記探索シナリオを作成する探索シナリオ作成部と、前記探索シナリオ作成部により作成中の前記探索シナリオが示す一以上の前記探索処理を用いて、前記ユーザの入力により指定されたマッチング画像を探索し、探索により検出された前記マッチング画像における領域を示す探索結果情報を出力する試行部をさらに備える。