(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-05
(45)【発行日】2024-11-13
(54)【発明の名称】識別装置、識別方法および識別プログラム
(51)【国際特許分類】
G06V 30/412 20220101AFI20241106BHJP
G06F 3/0484 20220101ALI20241106BHJP
【FI】
G06V30/412
G06F3/0484
(21)【出願番号】P 2023526838
(86)(22)【出願日】2021-06-11
(86)【国際出願番号】 JP2021022420
(87)【国際公開番号】W WO2022259561
(87)【国際公開日】2022-12-15
【審査請求日】2023-10-20
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】小笠原 志朗
(72)【発明者】
【氏名】中島 一
(72)【発明者】
【氏名】横瀬 史拓
(72)【発明者】
【氏名】小矢 英毅
【審査官】橋爪 正樹
(56)【参考文献】
【文献】特開2015-005245(JP,A)
【文献】特開2013-033377(JP,A)
【文献】特開2019-197504(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06V 30/00 -30/424
G06F 3/048- 3/04895
(57)【特許請求の範囲】
【請求項1】
アプリケーションの画面の画像と、前記画面を構成する要素のオブジェクトである画面構成要素オブジェクトに関する情報とを含む第1の画面データを識別し、参照する画面データである見本画面データと対応付けた第1の識別結果を出力する第1識別部と、
前記見本画面データおよび前記第1の識別結果に基づいて、前記画面の画像を含み、前記画面構成要素オブジェクトに関する情報を含まない第2の画面データを識別し、前記見本画面データと対応付けた第2の識別結果を出力する第2識別部と、
を備えることを特徴とする識別装置。
【請求項2】
前記第2の画面データを識別するのに先立ち、前記見本画面データおよび前記第1の識別結果から、前記見本画面データの前記画面構成要素オブジェクトのうち、複数の前記第1の画面データに共通して含まれる共通オブジェクトを特定し、それら共通オブジェクトの描画領域ごとの相対的な配置関係を求め、それらを含む見本画面モデルを導出する導出部、
をさらに備えることを特徴とする請求項1に記載の識別装置。
【請求項3】
前記第1識別部は、前記画面構成要素オブジェクトに関する情報を用いて同等性を判定することによって、第1の文字列および前記第1の文字列を属性としてもつ画面構成要素オブジェクトの描画領域を含む前記第1の画面データを識別し、前記同等性を有すると判定した前記見本画面データごとに前記画面構成要素オブジェクトを対応付けた前記第1の識別結果を出力し、
前記第2識別部は、第2の画面データに対して光学文字認識処理を用いて前記画面の画像から第2の文字列および前記第2の文字列の描画領域を特定し、前記第2の文字列の描画領域ごとの相対的な配置関係を決定し、前記第2の文字列の描画領域および前記第2の文字列の描画領域ごとの相対的な配置関係に基づいて前記第2の
画面データを識別し、前記見本画面モデルごとに前記画面構成要素オブジェクトと対応付けた前記第2の識別結果を出力する、
ことを特徴とする請求項2に記載の識別装置。
【請求項4】
前記導出部は、前記
第1の識別結果に含まれる前記見本画面データの前記画面構成要素オブジェクトのうち、複数の前記第1の画面データに共通して含まれ、同一の文字列を有する固定値オブジェクトを特定し、前記見本画面モデルを導出する、
ことを特徴とする請求項
3に記載の識別装置。
【請求項5】
前記導出部は、前記見本画面モデルを用いて、前記第1の文字列の、変動の種類、文字数、文字の種類、フォントの種類、およびサイズのうち少なくとも1つをさらに含む前記見本画面モデルを導出し、
前記第2識別部は、第2の画面データに対して光学文字認識処理を用いて前記画面の画像から前記第2の文字列および前記第2の文字列の描画領域を特定するのに、前記第1の文字列の、変動の種類、文字の種類、フォントの種類、およびサイズのうち少なくとも1つを用いる、
ことを特徴とする
請求項3に記載の識別装置。
【請求項6】
前記第2の識別結果と、見本画面モデルに含まれる、前記第1の文字列の、変動の種類、文字数、文字の種類、フォントの種類、およびサイズのうち少なくとも1つに基づき、前記第2の画面データに含まれる第2の文字列を取得する第2取得部、
をさらに備えることを特徴とする請求項5に記載の識別装置。
【請求項7】
前記第2識別部は、前記第2の文字列に関する制約条件と所定の評価関数とを用いて同等性を判定することによって、前記第2の画面データを識別し、前記第2の識別結果を出力する、
ことを特徴とする請求項3から5のいずれか1項に記載の識別装置。
【請求項8】
識別装置によって実行される識別方法であって、
アプリケーションの画面の画像と、前記画面を構成する要素のオブジェクトである画面構成要素オブジェクトに関する情報とを含む第1の画面データを識別し、参照する画面データである見本画面データと対応付けた第1の識別結果を出力する工程と、
前記画面の画像を含み、前記画面構成要素オブジェクトに関する情報を含まない第2の画面データを識別し、前記見本画面データと対応付けた第2の識別結果を出力する工程と、
を含むことを特徴とする識別方法。
【請求項9】
アプリケーションの画面の画像と、前記画面を構成する要素のオブジェクトである画面構成要素オブジェクトに関する情報とを含む第1の画面データを識別し、参照する画面データである見本画面データと対応付けた第1の識別結果を出力するステップと、
前記画面の画像を含み、前記画面構成要素オブジェクトに関する情報を含まない第2の画面データを識別し、前記見本画面データと対応付けた第2の識別結果を出力するステップと、
をコンピュータに実行させることを特徴とする識別プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、識別装置、識別方法および識別プログラムに関する。
【背景技術】
【0002】
(1.操作対象アプリケーションの画面データ)
従来、端末作業では、作業者(以下、「ユーザ」とも表記)は、端末内で動作する操作対象アプリケーションの画面を構成するテキストボックス、リストボックス、ボタン、ラベル等(以下、「画面構成要素」と表記)に表示された値を参照し、また、画面構成要素に対し、値の入力や選択等の操作を行う。そのため、端末作業の自動化、支援を目的とするプログラム(以下、「自動操作エージェント」と表記)や、作業実態の把握、分析を目的とするプログラム(以下、「作業分析ツール」と表記)の一部では、以下のような「画面データ」、あるいはこれらの一部が取得され、利用されている。
【0003】
ここで、「画面データ」とは、
図24に示すように、「画面の画像」(
図24(1)参照)、「画面の属性(タイトル、クラス名、描画領域の座標値、表示している操作対象アプリケーションの名称等)」(
図24(2)参照)、「画面構成要素オブジェクトの情報」(
図24(3)参照)である。
【0004】
なお、自動操作エージェントは、端末上での作業者の操作内容や、操作対象アプリケーションの画面表示内容とあわせて参照したい追加情報を、シナリオとして記録、保存するとともに、当該シナリオを開き、再生することで、同じ操作内容を後から何度も繰り返し実行する、または表示画面に応じて追加情報を表示するプログラムである。また、以下では、自動操作エージェントや作業分析ツールを合わせて、「自動操作エージェント等」と表記する。
【0005】
画面の画像や、画面の属性は、OS(Operating System)が提供するインタフェースにより取得できる。また、画面構成要素オブジェクト(以下、単に「オブジェクト」とも表記)とは、OSまたは操作対象アプリケーションが、画面構成要素の操作時の挙動の制御や、画面の画像の描画等を行いやすいよう、各画面構成要素の表示内容や状態等を、操作対象アプリケーションの変数の値として、計算機のメモリ上に用意したデータであって、その情報は、User Interface Automation(以下、「UIA」と表記)やMicrosoft Active Accessibility(以下、「MSAA」と表記)、あるいは操作対象アプリケーションが独自に提供するインタフェースにより取得できる。オブジェクトの情報には、画面構成要素の種類や表示/非表示の状態、表示文字列、描画領域の座標値等、各オブジェクト単独で利用可能な情報(以下、「属性」と表記)の他、操作対象アプリケーションが内部で保持している、オブジェクト同士の包含関係や所有関係等の関係性を表した情報(以下、「画面構造」と表記)も含まれる(
図24(3-1)(3-2)参照)。
【0006】
異なる時点、異なる端末で表示される画面では、作業者に提供する機能は同じ(以下、「同等」と表記)であっても、表示している案件や作業の実施状況に応じて、オブジェクトの一部の属性の値が異なったり、オブジェクトの有無自体も異なったりする。例えば、案件に含まれる明細の数が異なると、それを表示している一覧表の行数が変わったり、作業の実施状況により、エラーメッセージの表示/非表示が変わったりすることもあり、画面構造も変動する。さらに、OSの他、操作対象アプリケーションが画面表示に使用しているGUI(Graphical User Interface)のプラットフォーム(例えば、Microsoft Foundation Class、.NET Framework、Java(登録商標) swing等)やそのバージョンの違い(以下、「画面実現方式の相違」と表記)により、同等であっても、画面構造を含め、オブジェクトの情報が変わること(以下、「画面実装内容の相違」と表記)もある。
【0007】
画面の画像は、オブジェクトの有無自体やその情報を反映したものである。表示している案件や、作業の実施状況に応じて、オブジェクトの一部の属性の値が異なる、あるいはオブジェクトの有無自体も異なり、画面構造が変動すると、画面の画像も変動する。また、画面の画像は、オブジェクトの情報と比べ、OSや操作対象アプリケーションのカスタマイズ機能の設定の違いや、ディスプレイ環境による色数の違い、リモートデスクトップの遠隔ログイン時の通信条件に応じたオプションの違い等(以下、「ルックアンドフィールの相違」と表記)の影響を受けやすい。これら、画面の画像の変動には、各画面構成要素が画面の画像中に占める領域の、位置や大きさ、色合い、画面構成要素上に表示されている文字列のフォントの種類やサイズの変動を含む。
【0008】
(2.画面と画面構成要素の識別)
自動操作エージェントでは、動作設定時に、特定の端末で見本とする画面データを取得し、それを用いて、表示値の取得や操作の対象(以下、「制御対象」と表記)となる画面構成要素を指定しておく。自動化や支援の処理の実行時には、その時点で、動作設定を行った特定の端末以外も含む任意の端末で表示されている画面から画面データ(以下、「処理対象画面データ」と表記)を取得し、見本画面データ、あるいはそれを加工したり、人が参考にして作成したりすることで得られる画面や画面構成要素の同等性の判定条件と照合する。これにより、その時点の画面データの中から、見本画面データ中の制御対象の画面構成要素と同等の画面構成要素を特定し、表示値の取得や操作の対象とする。
【0009】
また、作業分析ツールでは、各端末で作業者が画面構成要素に対する操作を行ったタイミングで画面データや操作に関する情報を取得、操作ログとして収集する。収集した大量の操作ログに対し、人によるパターンや傾向の把握、分析を可能とするため、異なる時点、異なる端末で取得された画面データを、画面や操作対象の画面構成要素が同等のもの同士が同じグループとなるように分類し、画面操作フローの導出、操作実施回数や操作時間の集計等に用いる。この分類を行う方法として、大量の操作ログの中からいくつかの画面データをサンプリングして見本画面データとし、残りの操作ログの画面データを、見本画面データと照合し、分類先を決定する方法が考えられる。
【0010】
あるいは、作業分析ツールにより取得された操作ログ中の画面データに対し、要秘匿情報が表示されている箇所のマスキングが必要な場合がある。これを行う方法として、まず、要秘匿情報が表示される画面データのサンプルを見本画面データとし、見本画面データにおいてマスキング対象の画面構成要素を指定しておく。残りの操作ログの画面データを、見本画面データと照合し、見本画面データ中のマスキング対象の画面構成要素と同等の画面構成要素を特定し、マスキングを行う方法が考えられる。
【0011】
以下では、異なる時点、異なる端末で取得された、見本画面データと、処理対象画面データについて、画面や画面構成要素が、同じ機能を作業者に提供する同等のものかどうかを判定し、処理対象画面データの画面構成要素の中から、見本画面データの画面構成要素と同等のものを特定することを「識別」と記載する(
図25参照)。なお、
図25に示した破線矢印は、識別において見本と処理対象の画面構成要素の対応付けを表わす。また、上記矢印は、すべての対応関係を表現したものではなく、一部を抜粋したものである。
【0012】
また、識別に先立ち、見本画面データの他、識別で使用される処理対象画面データ以外の諸々のデータを用意する過程を、「識別の動作設定」と記載する。自動操作エージェントの利用においては、特定の端末で見本とする画面データを取得し、それを用いて、制御対象となる画面構成要素を指定しておく過程が該当する。作業分析ツールの利用においては、取得された大量の操作ログの中からいくつかの画面データをサンプリングして見本画面データを用意する過程が該当する。
【0013】
なお、画面の属性に基づく画面の識別と、画面構成要素の情報に基づく画面構成要素の識別は、相補的な関係にある。例えば、画面のタイトルは同じであっても、そこに含まれる画面構成要素が全く異なる場合もあるため、画面の属性の比較のみでは、画面が同等かどうかを確定できない。画面構成要素の識別により、見本画面データ中の制御対象の画面構成要素と同等の画面構成要素が処理対象画面データ中に含まれているかどうかも調べ、その結果も踏まえることで、画面データが同等かどうかを確定できる。逆に、画面のタイトルが異なれば、複数の画面構成要素を識別するまでもなく、画面が同等ではないと確定でき、計算量の低減に役立つ。
【0014】
(3.画面構成要素の識別に関する技術)
(3-1.オブジェクトアクセス方式)
オブジェクトアクセス方式は、見本画面データ、処理対象画面データ、とも、画面の画像は用いず、画面構成要素オブジェクトの情報を用いる方式である。なお、リモートデスクトップのようにデスクトップまたは操作対象アプリケーション本体の画面構成要素のオブジェクトにアクセスできない端末を「仮想化環境」、アクセスできる端末を「非仮想化環境」と表記する。
【0015】
(3-2.画像認識方式)
画像認識方式は、見本画面データ、処理対象画面データとも、画面構成要素オブジェクトの情報は用いず、画面の画像を用いる方式である。
【0016】
(3-3.オブジェクトアクセス・画像認識併用方式)
オブジェクトアクセス・画像認識併用方式は、オブジェクトアクセス方式と画面認識方式の両方を同時に実行する、または切り替えて実行する方式である(例えば、特許文献1参照)。
【0017】
(3-4.同等性判定条件方式)
同等性判定条件方式は、見本画面データの代わりに、画面構成要素の同等性の判定条件を用いる方式である。処理対象画面データとして、画面構成要素オブジェクトの情報を用いるのか、画面の画像を用いるかにより、さらに方式が分かれる。
【0018】
(4.表示文字列の取得に関する技術)
(4-1.オブジェクトアクセス方式)
オブジェクトアクセス方式は、処理対象画面データとして、画面の画像は用いず、画面構成要素オブジェクトの情報を用いる方式であり、UIAやMSAA、操作対象アプリケーションが独自に提供するインタフェースの利用により、表示文字列を容易に取得できる。
【0019】
(4-2.光学文字認識方式)
光学文字認識方式は、処理対象画面データとして、画面構成要素オブジェクトの情報は用いず、画面の画像を用いる方式であり、OCR(Optical Character Recognition)技術の利用が考えられる。
【先行技術文献】
【特許文献】
【0020】
【発明の概要】
【発明が解決しようとする課題】
【0021】
しかしながら、上述した従来技術では、仮想化環境において、アプリケーションの画面および画面構成要素の識別と、表示文字列の取得を、識別の動作設定や表示文字列の読取設定の手間をかけることなく、精度よく行うことができなかった。なぜならば、上述した従来技術には、以下のような課題があるためである。
【0022】
(1.画面構成要素の識別に関する課題)
(1-1.オブジェクトアクセス方式に関する課題)
オブジェクトアクセス方式では、仮想化環境では画面の画像のみが転送され、自動操作エージェント等からはオブジェクトにアクセスできないため、画面構成要素を識別できない。
【0023】
(1-2.画像認識方式に関する課題)
画像認識方式では、画面の画像がオブジェクトアクセス方式よりもルックアンドフィールの相違の影響を受けやすく、変動が生じることで、画面構成要素の識別を正しく行えなくなる。また、画像認識方式は、画面の画像が画面の表示倍率には大きな影響を受け、変動が生じることで、画面構成要素の識別を正しく行えなくなる。
【0024】
(1-3.オブジェクトアクセス・画像認識併用方式に関する課題)
オブジェクトアクセス・画像認識併用方式では、両方式を相互補完的に用いること、さらに、それを前提として適応進化的に用いることが可能なのは、画面の画像だけでなく、オブジェクトへのアクセスが可能な場合に限定され、その条件に該当しない仮想化環境の利用においては、画面構成要素の識別を正しく行えなくなる。
【0025】
(1-4.同等性判定条件方式に関する課題)
同等性判定条件方式では、画面構成要素オブジェクトの情報を用いる場合には、制御対象の画面構成要素の同等性の判定条件として、画面構成要素同士の、見本画面(二次元平面)における相対的な配置関係の条件を表した「配置パターン」を使用するが、処理対象画面データとして画面構成要素オブジェクトの情報を用いる前提であり、仮想化環境では画面構成要素を識別できない。また、上記方式では、現状では人が、画面や画面構成要素ごとに、処理対象画面に生じうる変動を想定しながら、配置パターンを作成する必要がある。
【0026】
また、同等性判定条件方式では、画面画像を用いる場合には、画面構成要素に対応する画面画像の断片や表示文字列またはその正規表現をノード、見本画面(二次元平面)におけるそれらの隣接関係をリンクとするグラフとして「画面モデル」を用意しておき、処理対象画面の画像や、その一部領域からOCR技術を用いて取得した文字列とのマッチングを行うが、上記の配置パターン同様、現状では画面モデルを、画面や画面構成要素ごとに、処理対象画面に生じうる変動を想定しながら、人が作成する必要がある。
【0027】
(2.表示文字列の取得に関する課題)
(2-1.オブジェクトアクセス方式に関する課題)
オブジェクトアクセス方式では、UIAやMSAA、操作対象アプリケーションが独自に提供するインタフェースの利用により、表示文字列を容易に取得できるが、画面構成要素オブジェクトの情報を用いるため、仮想化環境では表示文字列を取得できない。
【0028】
(2-2.光学文字認識方式に関する課題)
光学文字認識方式では、画面の画像上に描画された複数の画面構成要素の表示文字列を、表示倍率反映後のフォントの種類やサイズに関する前提条件なしに認識させているために、誤りが含まれる表示文字列が多く取得される。
【課題を解決するための手段】
【0029】
上述した課題を解決し、目的を達成するために、本発明に係る識別装置は、アプリケーションの画面の画像と、前記画面を構成する要素のオブジェクトである画面構成要素オブジェクトに関する情報とを含む第1の画面データを識別し、参照する画面データである見本画面データと対応付けた第1の識別結果を出力する第1識別部と、前記画面の画像を含み、前記画面構成要素オブジェクトに関する情報を含まない第2の画面データを識別し、前記見本画面データと対応付けた第2の識別結果を出力する第2識別部と、を備えることを特徴とする。
【0030】
また、本発明に係る識別方法は、識別装置によって実行される識別方法であって、アプリケーションの画面の画像と、前記画面を構成する要素のオブジェクトである画面構成要素オブジェクトに関する情報とを含む第1の画面データを識別し、参照する画面データである見本画面データと対応付けた第1の識別結果を出力する工程と、前記画面の画像を含み、前記画面構成要素オブジェクトに関する情報を含まない第2の画面データを識別し、前記見本画面データと対応付けた第2の識別結果を出力する工程と、を含むことを特徴とする。
【0031】
また、本発明に係る識別プログラムは、アプリケーションの画面の画像と、前記画面を構成する要素のオブジェクトである画面構成要素オブジェクトに関する情報とを含む第1の画面データを識別し、参照する画面データである見本画面データと対応付けた第1の識別結果を出力するステップと、前記画面の画像を含み、前記画面構成要素オブジェクトに関する情報を含まない第2の画面データを識別し、前記見本画面データと対応付けた第2の識別結果を出力するステップと、をコンピュータに実行させることを特徴とする。
【発明の効果】
【0032】
本発明では、仮想化環境において、アプリケーションの画面および画面構成要素の識別と、表示文字列の取得を、識別の動作設定や表示文字列の読取設定の手間をかけることなく、精度よく行うことができる。
【図面の簡単な説明】
【0033】
【
図1】
図1は、第1の実施形態に係る識別システムの構成例を示す図である。
【
図2】
図2は、第1の実施形態に係る識別装置等の構成例を示すブロック図である。
【
図3】
図3は、第1の実施形態に係る画面データ記憶部で記憶されるデータの一例を示す図である。
【
図4】
図4は、第1の実施形態に係る処理結果記憶部で記憶されるデータの一例を示す図である。
【
図5】
図5は、第1の実施形態に係る識別情報記憶部で記憶されるデータの一例を示す図である。
【
図6】
図6は、第1の実施形態に係る第1識別結果記憶部で記憶されるデータの一例を示す図である。
【
図7】
図7は、第1の実施形態に係る識別事例記憶部で記憶されるデータの一例を示す図である。
【
図8】
図8は、第1の実施形態に係る画面モデル記憶部で記憶されるデータの一例を示す図である。
【
図9】
図9は、第1の実施形態に係る画面モデル記憶部で記憶されるデータの一例を示す図である。
【
図10】
図10は、第1の実施形態に係る描画領域記憶部で記憶されるデータの一例を示す図である。
【
図11】
図11は、第1の実施形態に係る配置関係記憶部で記憶されるデータの一例を示す図である。
【
図12】
図12は、第1の実施形態に係る第2識別結果記憶部で記憶されるデータの一例を示す図である。
【
図13】
図13は、第1の実施形態に係る表示文字列のフォントの種類とサイズを推定する処理の一例を示す図である。
【
図14】
図14は、表示文字列の文字数の相違が文字列描画領域の相対的な配置関係に影響を及ぼす例を示す図である。
【
図15】
図15は、第1の実施形態に係る表示文字列のフォントの種類とサイズを推定する際のマッチング処理の一例を示す図である。
【
図16】
図16は、第1の実施形態に係る文字列描画領域を特定する処理の一例を示す図である。
【
図17】
図17は、第1の実施形態に係る処理全体の流れの一例を示すフローチャートである。
【
図18】
図18は、第1の実施形態に係る見本画面モデルの導出処理の流れの一例を示すフローチャートである。
【
図19】
図19は、第1の実施形態に係る第2の画面データの識別処理の流れの一例を示すフローチャートである。
【
図20】
図20は、第1の実施形態に係る第2の文字列の取得処理の流れの一例を示すフローチャートである。
【
図21】
図21は、第1の実施形態に係る文字列描画領域が未知の場合の表示文字列のフォントの種類とサイズを推定する処理の流れの一例をフローチャートである。
【
図22】
図22は、第1の実施形態に係る文字列描画領域の特定可否による照合用構成要素モデル候補を限定する処理の流れの一例をフローチャートである。
【
図23】
図23は、プログラムを実行するコンピュータを示す図である。
【
図25】
図25は、画面構成要素の識別処理の一例を示す図である。
【発明を実施するための形態】
【0034】
以下に、本発明に係る識別装置、識別方法および識別プログラムの実施形態を図面に基づいて詳細に説明する。なお、本発明は、以下に説明する実施形態により限定されるものではない。
【0035】
〔第1の実施形態〕
以下に、第1の実施形態(適宜、本実施形態)に係る識別システム100の構成、従来技術と本実施形態との比較、識別装置10等の構成、各処理の詳細、各処理の流れを順に説明し、最後に本実施形態の効果を説明する。
【0036】
[識別システム100の構成]
図1を用いて、本実施形態に係る識別システム(適宜、本システム)100の構成を詳細に説明する。
図1は、第1の実施形態に係る識別システムの構成例を示す図である。以下に、本システム100全体の構成例を示した上で、本システム100の処理について説明する。
【0037】
(1.システム全体の構成例)
本システム100は、識別装置10、自動操作エージェント等の機能を実行する自動操作エージェント装置20を有する。識別装置10と自動操作エージェント装置20とは、同一端末内に配置され、装置間のAPI(Application Programming Interface)や、端末のOSが提供するプロセス間通信手段等により通信可能に接続される、あるいは、図示しない所定の通信網を介して、有線または無線により通信可能に接続される。なお、
図1に示した識別システム100には、複数台の識別装置10や、複数台の自動操作エージェント装置20が含まれてもよい。
【0038】
ここで、
図1では、自動操作エージェント装置20は、識別装置10とは独立して構成されているが、識別装置10に統合された構成であってもよい。すなわち、識別装置10は、自動操作エージェント装置20と連携して動作する別の装置としてもよいし、自動操作エージェント装置20の一部として実現してもよい。
【0039】
また、本システム100では、自動操作エージェント装置20が取得するデータとして、オブジェクト情報付き画面データ(以下、「第1の画面データ」とも表記)30およびオブジェクト情報なし画面データ(以下、「第2の画面データ」とも表記)40が関与する。ここで、第1の画面データ30は、画面の画像の他、オブジェクトの属性や画面構造である画面構成要素オブジェクトの情報(以下、「画面構成要素オブジェクトに関する情報」とも表記)を含む画面データである。また、第2の画面データ40は、画面の画像は含むが、画面構成要素オブジェクトの情報を含まない画面データである。
【0040】
(2.システム全体の処理)
上記のようなシステムにおいて、非仮想化環境で画面・画面構成要素を識別し、表示文字列を取得し、その際に使用した画面データを記録し、仮想化環境で当該記録した画面データを参照することにより、画面・画面構成要素を識別し、表示文字列を取得する例を説明する。
【0041】
まず、自動操作エージェント装置20は、非仮想化環境において第1の画面データ30を取得し(ステップS1)、取得した第1の画面データ30を識別装置10に送信する(ステップS2)。次に、識別装置10は、自動操作エージェント装置20が送信した第1の画面データ30から、画面と画面構成要素を識別し、表示文字列を取得し(ステップS3)、取得した表示文字列、制御対象の画面構成要素の識別に必要な情報を自動操作エージェント装置20に送信する(ステップS4)。以下では、上記ステップS1~S4で実行される処理を、「オブジェクト情報使用モード」とも記載する。
【0042】
また、識別装置10は、第1の画面データ30から、非仮想化環境において使用する見本画面モデルを作成する(ステップS5)。以下では、上記ステップS5で実行される処理を、「見本画面モデル化モード」とも記載する。
【0043】
一方、自動操作エージェント装置20は、非仮想化環境において第2の画面データ40を取得し(ステップS6)、取得した第2の画面データ40を識別装置10に送信する(ステップS7)。そして、識別装置10は、上記ステップS5の処理で作成した見本画面モデルを用いて、自動操作エージェント装置20が送信した第2の画面データ40から、画面と画面構成要素を識別し、表示文字列を取得し(ステップS8)、取得した表示文字列、制御対象の画面構成要素の識別に必要な情報を自動操作エージェント装置20に送信する(ステップS9)。以下では、上記ステップS6~S9で実行される処理を、「オブジェクト情報不使用モード」とも記載する。
【0044】
本実施形態に係る識別システム100では、非仮想化環境で操作対象アプリケーションの実際の画面を用いて、上述のオブジェクトアクセス方式と同様の識別の動作設定と、その確認を行う。その際、識別の動作設定に使用された見本画面データや、識別の動作設定の確認時に見本画面データとの同等性が判定された識別事例画面データを、画面構成要素オブジェクトの情報を含めて取得、蓄積しておく。これらのオブジェクトの情報を、仮想化環境での画面構成要素の識別や表示文字列の読取に使用する。このため、本システム100は、仮想化環境においても実行環境や運用の制限の影響を受けずに正しい識別処理を可能とするものである。
【0045】
[従来の識別処理と本実施形態に係る識別処理との比較]
ここで、参考技術として一般的に行われる従来の識別処理について説明する。以下では、従来の画面構成要素の識別処理、従来の表示文字列の取得処理について説明した上で、本実施形態に係る画面構成要素の識別処理、表示文字列の取得処理について説明する。
【0046】
(1.従来の画面構成要素の識別処理)
(1-1.オブジェクトアクセス方式)
オブジェクトアクセス方式は、上述したように、見本画面データ、処理対象画面データとも、画面の画像は用いず、画面構成要素オブジェクトの情報を用いる方式である。例えば、画面構成要素オブジェクトにアクセスすることを前提として、見本と処理対象の画面構造同士を比較することにより、画面と画面構成要素の同等性を判定する方法(従来の識別方法A)が知られている。従来の識別方法Aでは、人による、画面構成要素の同等性の判定条件の作成を必ずしも必要としない。
【0047】
リモートデスクトップをはじめとする、仮想化されたデスクトップまたはアプリケーションが操作対象である場合、作業者が直接操作する端末には、通常、画面の画像のみが転送され、作業者が直接操作を行う端末内で動作する自動操作エージェント等からは、操作対象アプリケーションの画面構成要素のオブジェクトにアクセスできない。これに対し、操作対象アプリケーション本体が動作しているサーバ(以下、「シンクライアントのサーバ」と表記)と、画面の画像のみが転送される端末(以下、「シンクライアントのクライアント」と表記)にプラグインをインストールことで、シンクライアントのクライアント内で動作する自動操作エージェント等から、サーバ内で動作する操作対象アプリケーション本体の画面構成要素のオブジェクトにアクセスできるようにする方法(従来の識別方法B)が知られている。
【0048】
しかしながら、オブジェクトアクセス方式では、仮想化環境において、通常、画面の画像のみが転送され、自動操作エージェント等からオブジェクトにアクセスできない。そのため、従来の識別方法Aをはじめとするオブジェクトアクセス方式のみでは、画面構成要素を識別できない(課題ア)。
【0049】
また、従来の識別方法Bは、シンクライアントのサーバで動作する操作対象アプリケーション本体の画面構成要素のオブジェクトに、クライアント内で動作する自動操作エージェント等から透過的にアクセスできるようにすることで、課題アを解決するものといえる。しかし、シンクライアントのクライアントだけでなく、サーバにもプラグインをインストールする必要がある等、サーバの環境変更を伴う。これは、サーバで動作する操作対象アプリケーションの挙動に、性能面を含め、影響を及ぼし得ることを意味する。また、その影響は、端末作業が行われる時間帯全体を通じた、恒常的なものとなる。そのため、操作対象アプリケーションの提供・運用を担う組織による、影響の有無の調査や、サーバリソースの増強等の対策が求められる。このことは、自動操作エージェント等を、端末作業を担う組織主導で推進可能な業務効率化手段として用いる際には、大きな障壁となる(課題イ)。
【0050】
また、従来の識別方法A、Bとも、オブジェクトアクセスを前提とするため、操作対象アプリケーションの画面実装内容の相違により、画面構成要素の識別を正しく行えなくなる(課題ウ)。
【0051】
(1-2.画像認識方式)
画像認識方式は、上述したように、見本画面データ、処理対象画面データとも、画面構成要素オブジェクトの情報は用いず、画面の画像を用いる方式である。なお、見本画面データとして用いる画面の画像として、画面の画像全体をそのまま用いるのではなく、領域に分割して用いる方式も含む。例えば、「適応型オペレータエミュレーション方式」における「画像領域特定処理」として、画面構成要素のテンプレート画像、つまり見本の画面画像の断片と、処理対象の画面の画像とのマッチングを行うことで、画面構成要素の同等性を判定する方法(従来の識別方法C)が知られている。
【0052】
従来の識別方法Cは、見本画面データ、処理対象画面データとも、画面の画像を用いることにより、課題ア~ウを解決するものといえる。しかし、画面の画像は、オブジェクトアクセス方式よりも、ルックアンドフィールの相違の影響を受けやすく、それによる変動が生じることで、画面構成要素の識別を正しく行えなくなる(課題エ)。
【0053】
また、画面の画像は、画面の表示倍率には大きな影響を受け、変動が生じることで、画面構成要素の識別を正しく行えなくなる(課題オ)。具体的には、まず、画面の同じ部分に相当する画像の領域の大きさが変わる。また、画面の同じ部分に相当する画像の領域の大きさ同じになるよう、取得済みの見本画面の画像と処理対象画面の画像のどちらかを拡大しても、画像の解像度は有限であるため、同一のものにはならない。これは、単に線の滑らかさが異なる、というだけではなく、表示されている文字によっては、一部の線が省略され、トポロジとして異なる。従来の識別方法Cは、表示されている文字列ではなく、あくまでもそれが描画された結果である画面の画像同士を比較するため、表示倍率の影響を受けないScale-Invariant Feature Transform(SIFT)特徴量等を用いたとしても、以上で述べたような画像の変動による、画面構成要素の識別の失敗を原理的に回避しきれない。また、課題エ、オの結果、自動操作エージェント等の運用上の課題として、テンプレート画像を再度取得しなおす等、識別の動作設定の一部やり直しが発生する。
【0054】
さらに、従来の識別方法Cでは、識別の動作設定において、見本画面を手掛かりとして、処理対象画面に生じうる変動を想定しながら、「画面上に表示されているどのような特徴を目印とすれば、制御対象の画面構成要素を特定できるか」を、人が見極め、指定する必要がある。特に、制御対象の画面構成要素自体に目印となる特徴がない場合には、周辺の目印となりうる画面構成要素を1個以上見つけ、それらとの相対的な配置関係の条件として、画面構成要素の同等性の判定条件を用意する必要があり、難易度が高い(課題カ)。
【0055】
(1-3.オブジェクトアクセス・画像認識併用方式)
オブジェクトアクセス・画像認識併用方式は、上述したように、オブジェクトアクセス方式と画面認識方式の両方を同時に実行する、または切り替えて実行する方式である。例えば、HTML(Hyper Text Markup Language)ファイルやUIAを通じて得られる画面構成要素オブジェクトや、画像等のうち、少なくとも1個以上の情報リソースを用いて、画面構成要素をノード、それらの包含関係を親子関係とする木構造として画面を表し、制御対象の画面構成要素を識別する方法(従来の識別方法D)が知られている。
【0056】
また、自動操作エージェントが、複数の設定の異なる端末やGUIプラットフォームで実行される場合、及びバージョンアップにより部分的に変更が加えられた操作対象アプリケーションに適用される場合の課題を解決する方法として、オブジェクトアクセス方式による識別処理と画面認識方式による識別処理の両方を同時に実行し、結果の比較により妥当性を検証する方法が知られている。また、オブジェクトアクセス方式による識別と、それによる自動操作を行いつつ、画像認識方式による識別に必要な、画面構成要素のテンプレート画像を記録する、あるいはその逆として、画像認識方式による識別と、それによる自動操作を行いつつ、オブジェクトアクセス方式による識別に必要な、画面構成要素オブジェクトの情報を記録する方法(従来の識別方法E)が知られている。
【0057】
従来の識別方法Dは、画面構成要素オブジェクトや、画像等の情報リソースを抽象化して扱い、画面構成要素の識別を統一的な方法として実現するものといえる。しかし、見本画面データとして画面の画像やその断片を用いた場合には、処理対象画面データとしても画面の画像と、また、見本画面データとして画面構成要素オブジェクトの情報を用いた場合には、処理対象画面データとしても画面構成要素オブジェクトの情報とを、比較することにより、画面構成要素の識別を行うため、オブジェクトアクセス方式と画像認識方式のもつ課題ア~オの課題は、この方法では解決されない。また、情報リソースとして、画像を用いる場合、画面構成要素の画像をノード、それらの包含関係を親子関係とする木構造を、「情報リソース取得プログラム」が画面の画像からどのように作成するのか不明であり、課題カも、解決されているとは言えない。
【0058】
従来の識別方法Eは、同じ画面に対して、オブジェクトアクセス方式による識別と画像認識方式による識別とを併用し、操作対象アプリケーションが仮想化されていない端末での例示操作により両方式に対応したシナリオ(識別に必要な情報を含む)を記録しておき、操作対象アプリケーションまたはデスクトップが仮想化された端末では、画像認識方式による識別のみを行うようにすることで、シナリオを変更することなく使用可能としており、課題ア~イを解決するものといえる。
【0059】
また、オブジェクトアクセス方式による識別と画像認識方式による識別とを相互補完的に用いることで、見本画面データと処理対象画面データについて、画面実装内容の相違のため、オブジェクトアクセス方式により画面構成要素を識別できない場合でも、ルックアンドフィールや画面の表示倍率の相違が十分に小さければ、画像認識方式により画面構成要素を識別できる。逆に、ルックアンドフィールや画面の表示倍率の相違により、画像認識方式により画面構成用を識別できない場合でも、画面実装内容の相違がなければ、オブジェクトアクセス方式により画面構成要素を識別できる。
【0060】
さらに、上記のとおり、一方の方式により画面構成要素を識別する際に、並行してもう一方の方式による画面構成要素の識別に必要な、画面構成要素のテンプレート画像またはオブジェクトの情報を記録し、以降の識別で使用可能とする、適応進化的な使用が可能である。これにより、自動操作エージェントや作業分析ツールの長期運用において、画面実装内容の変更と、ルックアンドフィールや画面の表示倍率の変更が、順次、期間をあけて発生した場合、変更の影響を受けた方式による識別に必要な情報が、変更後の画面に適合するよう更新されるサイクルが成立する。これらにより、一定の条件下では、課題ウ~オも解決するものといえる。
【0061】
しかし、両方式を相互補完的に用いること、さらに、それを前提として適応進化的に用いることが可能なのは、画面の画像だけでなく、オブジェクトへのアクセスが可能な場合に限定され、その条件に該当しない仮想化環境の利用においては、課題エ~オは解決されない。これについて、以下で少し詳しく説明する。
【0062】
仮想化環境で識別処理を実行する場合には、オブジェクトとへはアクセスできないため、オブジェクトアクセス方式による補完はできない。また、作業者による定常的な作業には仮想化環境が使用され、非仮想化環境の使用は、操作対象アプリケーションの検証等、一時的な用途で、操作対象アプリケーションの提供・運用を担う組織の許可を得られる場合にのみ使用できる、といった、運用上の制限が存在する場合もある。端末作業を担う組織主導で推進可能な業務効率化手段として自動操作エージェント等を用いる場合、このような運用条件下では、ディスプレイ環境による色数の違い、リモートデスクトップの遠隔ログイン時の通信条件に応じたオプションの違い等、主に端末側の環境の相違に起因するルックアンドフィールや表示倍率の相違が発生する都度、両方式を使用可能な非仮想化環境を使用することは難しい。その結果、識別に必要な情報を更新できない。
【0063】
さらに、ルックアンドフィールの相違が、リモートデスクトップによる遠隔ログイン時の通信条件に応じたオプションの違いに由来する場合、非仮想化環境を使用できたとしても、仮想化環境の同一のルックアンドフィールを再現することが困難であり、両方式を適応進化的に用いることができない。
【0064】
これらの結果、実質的には画面認識方式を単独で用いたのと同等となり、自動操作エージェント等の運用上の課題として、画像認識方式単独の方法と同様、テンプレート画像を再度取得し直す等、識別の動作設定の一部やり直しが発生する。また、非仮想化環境での使用に限定した場合であっても、画面実装内容の相違と、ルックアンドフィールまたは画面の表示倍率の少なくとも一方の相違が、同時に発生した場合には、どちらの方式でも画面構成要素を正しく識別できず、課題ウ~オは解決されない。さらに、識別の動作設定において、画像認識方式で必要となる、テンプレート画像として使用する見本画面の画像中の領域や、それらとの相対的な配置関係の条件等、画面構成要素の同等性の判定条件の指定に関する課題カは解決されない。
【0065】
(1-4.同等性判定条件方式)
同等性判定条件方式は、上述したように、見本画面データの代わりに、画面構成要素の同等性の判定条件を用いる方式である。処理対処画面データとして、画面構成要素オブジェクトの情報を用いるのか、画面の画像を用いるかにより、さらに方式が分かれる。例えば、処理対象画面データとして画面構成要素オブジェクトの情報を用いる前提のもと、制御対象の画面構成要素の同等性の判定条件として、画面構成要素同士の、見本画面(二次元平面)における相対的な配置関係の条件を表した「配置パターン」を用意しておき、処理対象画面において、その配置パターンを満たす画面構成要素を探すことで、画面構成要素を識別する方法(従来の識別方法F)が知られている。
【0066】
また、処理対象画面データとして画面の画像を用いる前提のもと、画面構成要素に対応する画面画像の断片や表示文字列の正規表現をノード、見本画面(二次元平面)におけるそれらの隣接関係をリンクとするグラフとして「画面モデル」を用意しておき、処理対象の画面の画像や、その一部領域から光学文字認識(OCR)技術を用いて取得した文字列とのマッチングを行うことで、画面の状態を識別する方法(従来の識別方法G)が知られている。
【0067】
従来の識別方法Fは、制御対象の画面構成要素の同等性の判定条件として、画面構成要素同士の、見本画面(二次元平面)における相対的な配置関係の条件を表した「配置パターン」を使用することで、課題ウ~オを解決するものといえる。しかし、処理対象画面データとして画面構成要素オブジェクトの情報を用いる前提であり、課題ア~イは解決されない。
【0068】
また、識別の動作設定時に指定された画面構成要素同士の、見本画面(二次元平面)における相対的な配置関係から、処理対象画面の識別に使用する配置パターンを自動的に作成する方法、特に、見本画面での相対的な配置関係が、どこまで処理対象画面でも再現されるべきものとして、相対的な配置関係の条件に反映するかを決定する方法は不明である。そのため、現状では人が、画面や画面構成要素ごとに、処理対象画面に生じうる変動を想定しながら、作成する必要があり、課題カも解決されない。
【0069】
従来の識別方法Gは、画面構成要素に対応する画面画像の断片や表示文字列またはその正規表現をノード、見本画面(二次元平面)におけるそれらの隣接関係をリンクとするグラフとして「画面モデル」を用意しておき、処理対象画面の画像や、その一部領域からOCR技術を用いて取得した文字列とのマッチングを行うことで、課題ア~ウを解決するものといえる。しかし、従来の識別方法Fにおける配置パターン同様、現状では画面モデルを、画面や画面構成要素ごとに、処理対象画面に生じうる変動を想定しながら、人が作成する必要があり、課題カが解決されない。
【0070】
また、処理対象画面の画像の一部領域からOCR技術を用いて取得した文字列には、現状のOCR技術に由来する誤りもあり、ルックアンドフィールや表示倍率の相違の影響の低減は見込めるものの、画面モデル中の表示文字列またはその正規表現とのマッチングでの失敗につながる。そのため、課題エ~オについても、十分に解決されているとはいえない。画面モデル中の表示文字列の正規表現を、OCR技術を用いて取得される文字列の誤りを考慮したものとすることで、マッチングの失敗を低減できる可能性があるが、画面モデル作成の難易度がさらに高くなり、課題カの観点では逆効果となる。
【0071】
(1-5.本実施形態に係る画面構成要素の識別処理)
以下では、本実施形態に係る画面構成要素の識別処理について説明する。第1に、本実施形態に係る画面構成要素の識別処理は、仮想化環境での画面構成要素の識別を可能とし、課題アの解決に貢献する。第2に、本実施形態に係る画面構成要素の識別処理は、シンクライアントのサーバ側の環境変更を必要としないことより、課題イの解決に貢献する。第3に、本実施形態に係る画面構成要素の識別処理は、オブジェクトにアクセス不可能な仮想化環境、またはアクセス可能な非仮想化環境であっても、画面実装内容の相違が発生している状況で、かつルックアンドフィールまたは表示倍率の相違により、見本と処理対象の画面の画像に変動が生じている場合であっても、画面構成要素を正しく識別できるため、課題ウ~オを解決できる条件の拡大に貢献する。第4に、本実施形態に係る画面構成要素の識別処理は、画面や画面構成要素ごとに、制御対象の画面構成要素の同等性の判定条件を、必ずしも手作業で作成する必要がない。非仮想化環境で作成された識別の動作設定を仮想化環境での画面構成要素の識別に利用する際にも、手作業で変更する必要がないため、課題カの解決に貢献する。
【0072】
また、本実施形態に係る画面構成要素の識別処理は、処理対象画面の画像における、文字列が描画されている領域(以下、「文字列描画領域」と表記)同士の、相対的な配置関係の比較対象として、見本画面データと識別事例画面データの、画面の画像における文字列描画領域同士の相対的な配置関係とする場合に比べ、画面構成要素同士の相対的な配置関係とすることにより、より少数の識別事例画面データであっても、表示文字列が描画され得る領域同士の相対的な配置関係をより正確に求めることができ、画面構成要素をより正確に識別可能となる。
【0073】
(2.従来の表示文字列の取得処理)
(2-1.オブジェクトアクセス方式)
オブジェクトアクセス方式は、上述したように、処理対象画面データとして、画面の画像は用いず、画面構成要素オブジェクトの情報を用いる方式である。上記方式では、画面構成要素に表示されている文字列は、そのオブジェクトの属性として保持されている場合が多いため、UIAやMSAA、あるいは操作対象アプリケーションが独自に提供するインタフェースを利用することで容易に取得できる(従来の文字列取得方法A)。しかしながら、オブジェクトアクセス方式は、画面構成要素の識別に関する課題ア、イと同じ課題が存在する。
【0074】
(2-2.光学文字認識方式)
光学文字認識方式は、処理対象画面データとして、画面構成要素オブジェクトの情報は用いず、画面の画像を用いる方式である。この方式では、画面構成要素に表示されている文字列も、画面の画像から取得することになる。そのための方法としては、OCR技術の利用が考えられる。なお、狭義のOCR技術は、文字列描画領域のみに切り取られた画像から、文字列を読み取るものを指すが、以降の説明においては、その前処理として実施される、文字列描画領域の検出等の画像処理技術も含め、「OCR技術」と表記する。OCR技術の利用方法としては、画面の画像全体に対してOCR技術を適用する等、複数の画面構成要素の表示文字列を、すべて同じ設定で取得する方法(従来の文字列取得方法B)が考えられる。
【0075】
また、画像処理技術を用いて画面の画像を画面構成要素や文字列の領域に分割した後、各領域内の文字列の条件、例えば、文字数、文字の種類、フォントの種類やサイズ等を反映した設定で表示文字列を取得する方法(従来の文字列取得方法C)も考えられる。
【0076】
従来の文字列取得方法B、Cは、処理対象の画面構成要素オブジェクトの情報を必要としないため、課題ア、イを解決するものといえる。しかし、OCR技術では、画面の画像上に描画された、複数の画面構成要素の表示文字列を、すべて同じ設定で取得した場合(従来の文字列取得方法B)、正しく取得される文字も多い一方で、誤りも含まれる(課題キ)。例えば、数字のゼロ「0」と、アルファベットの大文字または小文字のオー「O」「o」と、記号のマル「○」であったり、数字のイチ「1」とアルファベット小文字のエル「l」であったり、漢字のクチ「口」とカタカナのロ「ロ」等のように、文字の種類が異なるものの、図形として類似しているものに対し、文字の取り違えが発生しやすい。また、活字に限定したとしても、表示倍率反映後のフォントの種類やサイズに関する前提条件なしに認識させていることも、誤りの要因と考えらえる。
【0077】
従来の文字列取得方法Cは、業務システムの画面を認識対象とした場合、画面構成要素ごとに、表示文字列にある程度の条件があることを利用し、それが認識の際に利用できるよう、文字数、文字の種類、フォントの種類やサイズ等の設定(以下、「読取設定」と表記)を、認識対象の領域ごとに指定しておくことで、課題キを解決するものといえる。しかし、読取設定として、見本画面の画像におけるフォントの種類やサイズを指定しておいても、見本画面と処理対象画面でルックアンドフィールや表示倍率の相違がある場合、処理対象の画像におけるフォントの種類やサイズは、見本のものとは異なるため、そのまま用いても、認識精度を向上させられない(課題ク)。また、表示文字列の取得対象とする画面構成要素の領域それぞれに対し、手作業で読取設定を指定するのに手間がかかる(課題ケ)。
【0078】
(2-3.本実施形態に係る表示文字列の取得処理)
以下では、本実施形態に係る表示文字列の取得処理について説明する。第1に、本実施形態に係る表示文字列の取得処理は、仮想化環境での画面構成要素の表示文字列の取得を可能とし、課題アの解決に貢献する。第2に、本実施形態に係る表示文字列の取得処理は、シンクライアントのサーバ側の環境変更を必要としないことより、課題イの解決に貢献する。第3に、本実施形態に係る表示文字列の取得処理は、見本画面と処理対象画面とで、ルックアンドフィールや表示倍率が異なる場合であっても、フォントの種類やサイズに関する読取設定を、OCR技術の認識精度向上のために使用できるので、課題クの解決に貢献する。第4に、本実施形態に係る表示文字列の取得処理は、画面構成要素ごとの読取設定を、必ずしも手作業で行う必要がないことより、課題キ、ケの解決に貢献する。
【0079】
(3.本実施形態に係る識別処理の概要)
(3-1.本実施形態の前提条件)
以下では、まず、本実施形態の前提条件について説明する。自動操作エージェント等が対象とする操作対象アプリケーションの画面の多くは、業務システムの情報入力フォームや情報参照フォームであり、それらの同等の画面では、業務の状況や案件によって各項目の表示内容や項目数の変動はありつつも、以下の点で一定の規則性が維持される。
【0080】
第1に、画面実装内容、ルックアンドフィールや表示倍率に相違があっても、同等の画面中の同等の画面構成要素同士の相対的な配置関係に相違は生じない。第2に、同等の画面内に表示される文字列の中には、例えば情報入力フォームや情報参照フォームにおける項目名等、業務の状況や案件によらず、常に同じ文字列となるものがある。第3に、画面実装内容、ルックアンドフィールや表示倍率に相違があっても、上記のような表示文字列に相違は生じない。第4に、画面内に表示される文字列のフォントの種類やサイズは、文字や項目の単位で、作業者によって変更されることはなく、画面実装内容、ルックアンドフィールや表示倍率に相違があった場合でも、一律に変わる。つまり、表示文字列の描画に使用されるフォントの種類が同じ画面構成要素同士は、画面実装内容、ルックアンドフィールや表示倍率に相違が生じた場合、相違発生前とは別の種類であったとしても、やはり同じ種類のフォントで表示文字列が描画される。また、フォントのサイズの比率も維持される。
【0081】
また、日常的な作業は仮想化環境で行われる場合であっても、業務システムの検証用環境等、同じ操作対象アプリケーションを使用可能な非仮想化環境が存在する。検証用環境の一時的な使用は、日常的な作業で仮想化環境を介して使用される商用サーバ側の環境変更とは異なり、操作対象アプリケーションの提供・運用を担う組織による影響の有無の調査や、サーバリソースの増強等の対策が不要であり、実施の障壁が低い。実際、自動操作エージェント自体の導入や、シナリオの多数組織への展開に際し、業務システムの商用環境での過負荷や誤操作の発生防止を目的とした、検証用環境での事前の動作確認は、一般によく行われることである。
【0082】
(3-2.本実施形態の基本的な考え方)
以下では、本実施形態の基本的な考え方について説明する。本実施形態では、非仮想化環境で操作対象アプリケーションの実際の画面を用いて、従来のオブジェクトアクセス方式と同様の識別の動作設定と、その確認を行う。その際、識別の動作設定に使用された見本画面データや、識別の動作設定の確認時に見本画面データとの同等性が判定された識別事例画面データを、画面構成要素オブジェクトの情報を含めて取得、蓄積しておく。これらのオブジェクトの情報を、仮想化環境での画面構成要素の識別や表示文字列の読取に使用する。
【0083】
具体的には、上述した課題ア、イを解決するため、本実施形態では、仮想化環境において取得する処理対象画面データとして、画面の画像だけを用いて、画面構成要素を識別する。その際、上述した課題ウ~オを解決できる条件を拡大するため、処理対象画面の画像に描画されている文字列と、見本画面データや識別事例画面データのオブジェクトの情報として取得しておいた表示文字列、およびそれらの相対的な配置関係を比較する。つまり、画面実装内容の相違の影響を受ける画面構造の代わりに、その影響を受けない二次元平面上での相対的な配置関係を用いる。また、ルックアンドフィールや表示倍率の相違の影響を受ける画像の代わりに、表示文字列を用いる。
【0084】
また、上述した課題カを解決するため、識別事例画面データの中から、各見本画面データと同等なものを特定し、さらに同等な画面データに共通して存在し、表示されている画面構成要素オブジェクト(以下、「共通オブジェクト」と表記)を特定し、それらの間で常に成り立っている相対的な配置関係や、表示文字列が常に同じであるオブジェクトを求め、処理対象画面の画像に描画されている文字列やそれらの相対的な配置関係との比較に使用する。
【0085】
さらに、上述した課題キ、ケを解決するため、見本画面データとそれと同等な識別事例画面データのオブジェクトの情報から、共通オブジェクトの表示文字列の変動の種類や、文字数、文字の種類といった、規則性を求め、その共通オブジェクトと対応付けられた、処理対象画面中の文字列描画領域をOCR技術で読み取る際の読取設定として使用する。
【0086】
さらに、上述した課題クの解決を含め、処理対象画面の画像において、描画された文字列の読取や、表示文字列が常に同じであるオブジェクトの表示文字列等、既知の文字列が描画された領域の特定を、より確実に行うため、処理対象画面の画像に表示文字列が描画される際に使用されているフォントの種類とサイズを推定する。
【0087】
[識別装置10等の構成]
次に、
図1に示したシステム100が有する各装置の機能構成について説明する。ここでは、特に、
図2を用いて、本実施形態に係る識別装置10等の構成を詳細に説明する。
図2は、本実施形態に係る識別装置等の構成例を示すブロック図である。以下に、識別装置10の構成として記憶部に記憶されるデータおよび機能部を説明し、自動操作エージェント装置20の構成を説明する。
【0088】
(1.識別装置10の構成)
(1-1.識別装置10の全体の構成)
識別装置10は、入力部11、出力部12、通信部13、記憶部14および制御部15を有する。入力部11は、当該識別装置10への各種情報の入力を司る。例えば、入力部11は、マウスやキーボード等で実現され、当該識別装置10への設定情報等の入力を受け付ける。また、出力部12は、当該識別装置10からの各種情報の出力を司る。例えば、出力部12は、ディスプレイ等で実現され、当該識別装置10に記憶された設定情報等を出力する。
【0089】
通信部13は、他の装置との間でのデータ通信を司る。例えば、通信部13は、各通信装置との間でデータ通信を行う。また、通信部13は、図示しないオペレータの端末との間でデータ通信を行うことができる。上記例では、通信部13は、自動操作エージェント装置20から第1の画面データ30や第2の画面データ40を受信する。また、通信部13は、受信した第1の画面データ30や第2の画面データ40を後述の画面データ記憶部14aに格納する。
【0090】
(1-2.識別装置10の記憶部14の構成)
記憶部14は、制御部15が動作する際に参照する各種情報や、制御部15が動作した結果作成される各種情報を記憶する。ここで、記憶部14は、例えば、RAM(Random Access Memory)、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置等で実現され得る。なお、
図2の例では、記憶部14は、識別装置10の内部に設置されているが、識別装置10の外部に設置されてもよいし、複数の記憶部が設置されていてもよい。
【0091】
記憶部14は、画面データ記憶部14a、処理結果記憶部14b、識別情報記憶部14c、第1識別結果記憶部14d、識別事例記憶部14e、画面モデル記憶部14f、描画領域記憶部14g、配置関係記憶部14hおよび第2識別結果記憶部14iを有する。以下では、
図3~
図12を用いて、各記憶部に記憶されるデータの例を説明する。
【0092】
(1-2-1.画面データ記憶部14a)
図3を用いて、画面データ記憶部14aに記憶されるデータの例を説明する。
図3は、第1の実施形態に係る画面データ記憶部で記憶されるデータの一例を示す図である。画面データ記憶部14aは、「処理対象画面データ」を記憶する。ここで、処理対象画面データは、任意の端末で表示されている画面から自動操作エージェント装置20によって取得された画面データである。
【0093】
図3に示すように、処理対象画面データには、「画面データID」、「画面構成要素オブジェクトの属性」や「画面構造」を含む「画面構成要素オブジェクトの情報」、「画面の画像」、「画面の属性」等が含まれる。なお、
図3では、「画面構成要素オブジェクトの属性」の1つである「画面構成要素の描画領域」として、[xxx,yyy,zzz,www]と記載しているが、同じ文字を使っていても、この部分については、数学における文字式のように同じ値であることを意味しておらず、
図24の画面データの例のように、個々について、それぞれの描画領域に応じた個別の数値となる。
【0094】
(1-2-2.処理結果記憶部14b)
図4を用いて、処理結果記憶部14bに記憶されるデータの例を説明する。
図4は、第1の実施形態に係る処理結果記憶部で記憶されるデータの一例を示す図である。処理結果記憶部14bは、「画面データ処理結果」を記憶する。ここで、画面データ処理結果は、自動操作エージェント装置20の制御部22で処理されるデータであって、制御対象となる画面構成要素の見本画面モデルとの対応付け結果と、処理対象画面データから取得された表示文字列とを示したデータである。
【0095】
図4に示すように、画面データ処理結果には、「処理対象画面データID」、「見本画面モデルID」、「制御対象画面構成要素の対応付け・表示文字列取得の結果」等が含まれる。ここで、「制御対象画面構成要素の対応付け・表示文字列取得の結果(1)」は、オブジェクト情報使用モードで取得されたデータであって、処理対象画面データがオブジェクトの情報を含んでいる例である。一方、「制御対象画面構成要素の対応付け・表示文字列取得の結果(2)」は、オブジェクト情報不使用モードで取得されたデータであるか、または処理対象画面データがオブジェクトの情報を含んでいない例である。
【0096】
なお、
図4では、データの1つである「文字列描画領域」として、[xxx,yyy,zzz,www]と記載しているが、同じ文字を使っていても、この部分については、数学における文字式のように同じ値であることを意味しておらず、
図24の画面データの例のように、個々について、それぞれの描画領域に応じた個別の数値となる。
【0097】
(1-2-3.識別情報記憶部14c)
図5を用いて、識別情報記憶部14cに記憶されるデータの例を説明する。
図5は、第1の実施形態に係る識別情報記憶部で記憶されるデータの一例を示す図である。識別情報記憶部14cは、「識別情報」を記憶する。ここで、識別情報は、識別処理の際に参照される見本画面データの集合である。
【0098】
図5に示すように、識別情報には、「見本画面データID」、「画面構成要素オブジェクトの属性」や「画面構造」を含む「画面構成要素オブジェクトの情報」、「画面の画像」、「画面の属性」等が含まれる。また、識別情報には、複数の見本画面データごとの上記の画面データが含まれる。なお、
図5では、「画面構成要素オブジェクトの属性」の1つである「画面構成要素の描画領域」として、[xxx,yyy,zzz,www]と記載しているが、同じ文字を使っていても、この部分については、数学における文字式のように同じ値であることを意味しておらず、
図24の画面データの例のように、個々について、それぞれの描画領域に応じた個別の数値となる。
【0099】
(1-2-4.第1識別結果記憶部14d)
図6を用いて、第1識別結果記憶部14dに記憶されるデータの例を説明する。
図6は、第1の実施形態に係る第1識別結果記憶部で記憶されるデータの一例を示す図である。第1識別結果記憶部14dは、「第1の識別結果」を記憶する。ここで、第1の識別結果は、後述の識別装置10の第1識別部151aによって出力されるデータであって、処理対象画面データの画面構成要素と、同等と判定された見本画面データの画面構成要素との対応付けを示したデータの集合である。また、第1の識別結果は、通信部13を介して、他の装置から取得されたデータであってもよい。
【0100】
図6に示すように、第1の識別結果には、「見本画面データID」、「同等性判定結果」、「画面構成要素対応付け方法」等の識別結果が含まれる。ここで、「画面構成要素対応付け方法」には、処理対象画面データの画面構成要素IDと、対応付けされた見本画面データの画面構成要素IDとが含まれる。また、第1の識別結果には、複数の見本画面データごとの上記の識別結果が含まれる。なお、第1の識別結果に基づいて、上記の処理結果記憶部14bに記憶される「制御対象画面構成要素の対応付け・表示文字列取得の結果(1)」が作成される。
【0101】
(1-2-5.識別事例記憶部14e)
図7を用いて、識別事例記憶部14eに記憶されるデータの例を説明する。
図7は、第1の実施形態に係る識別事例記憶部で記憶されるデータの一例を示す図である。識別事例記憶部14eは、「識別事例」を記憶する。ここで、識別事例は、後述の識別装置10の第1識別部151aによって出力されるデータであって、過去に識別処理された処理対象画面データごとの識別結果を蓄積したデータである。また、識別事例は、通信部13を介して、他の装置から取得されたデータであってもよい。
【0102】
図7に示すように、識別事例には、「処理対象画面データID」ごとに「処理対象画面データ」と、「見本画面データID」とが含まれる。ここで、識別事例に含まれる「見本画面データID」は、同等と判定されたものに限定されず、識別情報記憶部14cで記憶されている、すべての見本画面データのIDが対象となる。また、識別事例には、「同等性判定結果」、「画面構成要素対応付け方法」等の識別結果が含まれる。すなわち、識別事例には、直近の識別処理によって得られた処理対象画面データ(例えば、処理対象画面データID:20200204203243)の他、過去の識別処理によって得られた処理対象画面データ(例えば、処理対象画面データID:20200202101721)も含まれる。
【0103】
(1-2-6.画面モデル記憶部14f)
図8および
図9を用いて、画面モデル記憶部14fに記憶されるデータの例を説明する。
図8および
図9は、第1の実施形態に係る画面モデル記憶部で記憶されるデータの一例を示す図である。画面モデル記憶部14fは、「見本画面モデル」を記憶する。ここで、見本画面モデルは、後述の識別装置10の導出部152aによって導出されるデータであって、仮想化環境における識別処理に用いるデータである。また、見本画面モデルは、通信部13を介して、他の装置から取得されたデータであってもよい。
【0104】
図8および
図9に示すように、見本画面モデルには、「見本画面データID」、「対象識別事例画面データID集合」の他、「画面構成要素モデルの属性」、「画面構成要素モデルの相対的な配置関係(水平方向)」、「画面構成要素モデルの相対的な配置関係(垂直方向)」を含む「画面構成要素モデルの情報」が含まれる。また、「画面構成要素モデルの属性」には、画面構成要素ごとの「表示文字列集合」、「フォントの種類」、「フォントのサイズ」等も含まれる。
【0105】
(1-2-7.描画領域記憶部14g)
図10を用いて、描画領域記憶部14gに記憶されるデータの例を説明する。
図10は、第1の実施形態に係る描画領域記憶部で記憶されるデータの一例を示す図である。描画領域記憶部14gは、「文字列描画領域」を記憶する。ここで、文字列描画領域は、後述の識別装置10の第2識別部153aによって特定されるデータであって、OCR技術を用いて読み取った文字列の描画領域を示すデータである。また、文字列描画領域は、通信部13を介して、他の装置から取得されたデータであってもよい。
【0106】
図10に示すように、文字列描画領域には、「文字列描画領域ID」ごとに「読取文字列」、「文字列描画領域」、「固定値一致フラグ」等が含まれる。また、文字列描画領域は、OCR技術や画像テンプレートマッチング等の処理によって、適宜、削除や追加されるデータである。
【0107】
なお、
図10では、データの1つである「文字列描画領域」として、[xxx,yyy,zzz,www]と記載しているが、同じ文字を使っていても、この部分については、数学における文字式のように同じ値であることを意味しておらず、
図24の画面データの例のように、個々について、それぞれの描画領域に応じた個別の数値となる。
【0108】
(1-2-8.配置関係記憶部14h)
図11を用いて、配置関係記憶部14hに記憶されるデータの例を説明する。
図11は、第1の実施形態に係る配置関係記憶部で記憶されるデータの一例を示す図である。配置関係記憶部14hは、「文字列描画領域配置関係」を記憶する。ここで、文字列描画領域配置関係は、後述の識別装置10の第2識別部153aによって決定されるデータであって、任意の2個の文字列描画領域の相対的な配置関係を示すデータである。また、文字列描画領域配置関係は、通信部13を介して、他の装置から取得されたデータであってもよい。
【0109】
図11に示すように、文字列描画領域配置関係には、「文字列描画領域の相対的な配置関係(水平方向)」、「文字列描画領域の相対的な配置関係(垂直方向)」が含まれる。また、文字列描画領域配置関係は、上記の描画領域記憶部14gに記憶される文字列描画領域から決定されるデータである。
【0110】
(1-2-9.第2識別結果記憶部14i)
図12を用いて、第2識別結果記憶部14iに記憶されるデータの例を説明する。
図12は、第1の実施形態に係る第2識別結果記憶部で記憶されるデータの一例を示す図である。第2識別結果記憶部14iは、「第2の識別結果」を記憶する。ここで、第2の識別結果は、後述の識別装置10の第2識別部153aによって出力されるデータであって、処理対象画面データの文字列描画領域と、見本画面モデルの画面構成要素との対応付けを示したデータである。また、第2の識別結果は、通信部13を介して、他の装置から取得されたデータであってもよい。
【0111】
図12に示すように、第2の識別結果には、「見本画面データID」、「対応付け方法」等の識別結果が含まれる。ここで、「対応付け方法」には、処理対象画面データの文字列描画領域IDと、対応付けされた見本画面モデルの画面構成要素IDとが含まれる。なお、第2の識別結果に基づいて、上記の処理結果記憶部14bに記憶される「制御対象画面構成要素の対応付け・表示文字列取得の結果(2)」が作成される。
【0112】
(1-3.識別装置10の制御部15の構成)
制御部15は、当該識別装置10全体の制御を司る。制御部15は、第1画面データ制御部151として第1識別部151aおよび第1取得部151b、画面モデル制御部152として導出部152a、第2画面データ制御部153として第2識別部153aおよび第2取得部153bを有する。ここで、制御部15は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等の電子回路やASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路である。
【0113】
(1-3-1.第1画面データ制御部151:第1識別部151a)
第1識別部151aは、アプリケーションの画面の画像と、当該画面を構成する要素のオブジェクトである画面構成要素オブジェクトに関する情報とを含む第1の画面データ30を識別し、参照する画面データである見本画面データと対応付けた第1の識別結果を出力する。例えば、第1識別部151aは、画面構成要素オブジェクトに関する情報を用いて同等性を判定することによって、第1の文字列および第1の文字列を属性としてもつ画面構成要素オブジェクトの描画領域を含む第1の画面データ30を識別し、同等性を有すると判定した見本画面データごとに画面構成要素オブジェクトを対応付けた第1の識別結果を出力する。ここで、第1の文字列とは、第1の画面データ30に含まれる表示文字列であり、画面の画像として表示されている文字列の他、非表示の状態の文字列も含む。
【0114】
処理の詳細を説明すると、まず、第1識別部151aは、画面データ記憶部14aから処理対象の第1の画面データを取得し、識別情報記憶部14cから見本画面データの識別情報を取得する。次に、第1識別部151aは、識別情報に含まれる画面構成要素オブジェクトに関する情報(オブジェクトの種類、表示文字列、画面構成要素の描画領域等の画面構成要素オブジェクトの属性、画面構造)を用いて、第1の画面データと見本画面データとの同等性を判定する。そして、第1識別部151aは、同等性を有すると判定した見本画面データIDごとに、処理対象の第1の画面データ中の画面構成要素IDと見本画面データの画面構成要素IDを対応付けた第1の識別結果を出力する。
【0115】
また、第1識別部151aは、出力した第1の識別結果を第1識別結果記憶部14dに格納する。さらに、第1識別部151aは、出力した第1の識別結果を識別事例として、識別事例記憶部14eに格納する。
【0116】
(1-3-2.第1画面データ制御部151:第1取得部151b)
第1取得部151bは、第1の識別結果に基づいて、第1の画面データ30に含まれる第1の文字列を取得する。例えば、第1取得部151bは、第1の識別結果を用いて、画面構成要素オブジェクトに対応付けられた処理対象画面データから第1の文字列を取得する。
【0117】
処理の詳細を説明すると、まず、第1取得部151bは、第1識別結果記憶部14dに記憶されている第1の識別結果のうち、同等と判定されたもので、かつ、見本画面データにあらかじめ付与された優先順位の最も高いもの、対応付け方法の評価値が最も良かったもの等の事前に設定された指標に応じて、1個の結果を選択する。次に、第1取得部151bは、選択した第1の識別結果において、処理対象画面データと同等と判定された見本画面データを、識別情報記憶部14cから取得し、見本画面データにおける、制御対象のオブジェクトと、その一部である表示文字列取得対象のオブジェクトを特定する。
【0118】
また、第1取得部151bは、選択した第1の識別結果に含まれる、見本画面データ中のオブジェクトと処理対象画面データ中のオブジェクトの対応付け結果を用いて、処理対象画面データにおける、制御対象のオブジェクトと表示文字列取得対象のオブジェクトを特定し、処理結果記憶部14bに格納する。さらに、第1取得部151bは、処理対象画面データにおいて、表示文字列取得対象として特定されたオブジェクトのそれぞれについて、処理対象画面データのオブジェクトの情報から表示文字列を取得し、その結果を処理結果記憶部14bに反映する。なお、第1取得部151bは、処理対象画面データと同等と判定された識別結果がない場合には、処理結果記憶部14bには何も保存しない。
【0119】
(1-3-3.画面モデル制御部152:導出部152a)
導出部152aは、見本画面データおよび第1の識別結果に基づいて、仮想化環境における識別に用いる見本画面モデルを導出する。例えば、導出部152aは、複数の第1の識別結果を含む識別事例を用いて、第1の文字列の描画領域ごとの相対的な配置関係を含む見本画面モデルを導出する。
【0120】
処理の詳細を説明すると、まず、導出部152aは、識別情報記憶部14cから見本画面データの識別情報を取得し、識別事例記憶部14eから識別事例を取得する。次に、導出部152aは、見本画面データごとに、識別事例に含まれる画面構成要素オブジェクトの描画領域ごとの相対的な配置関係を決定し、見本画面モデルとして出力する。また、導出部152aは、出力した見本画面モデルを画面モデル記憶部14fに格納する。なお、導出部152aによる見本画面モデルの導出処理の流れについては、[各処理の流れ](2.見本画面モデル導出処理の流れ)にて後述する。
【0121】
さらに、導出部152aは、第2の画面データを識別するのに先立ち、見本画面データおよび第1の識別結果から、見本画面データの画面構成要素オブジェクトのうち、複数の第1の画面データに共通して含まれる共通オブジェクトを特定し、それら共通オブジェクトの描画領域ごとの相対的な配置関係を求め、それらを含む見本画面モデルを導出する。
【0122】
また、導出部152aは、識別事例に含まれる見本画面データの画面構成要素オブジェクトのうち、複数の第1の画面データ30に共通して含まれ、同一の文字列を有する固定値オブジェクトを特定し、見本画面モデルを導出する。ここで、導出部152aは、見本画面データの画面構成要素オブジェクトのうち、同等な画面において必ず存在し、表示され、表示文字列も常に同じものを、固定値オブジェクトとして特定し、見本画面モデルとして出力する。
【0123】
さらに、導出部152aは、見本画面モデルを用いて、第1の文字列の、変動の種類、文字数、文字の種類、フォントの種類、およびサイズのうち少なくとも1つをさらに含む見本画面モデルを導出する。このとき、導出部152aは、見本画面モデルに含まれる第1の文字列の調査用画像を生成し、調査用画像と見本画面データに含まれる画面の画像とをマッチングすることによって、前記第1の文字列のフォントの種類およびサイズをさらに含む見本画面モデルを導出する。なお、導出部152aによるフォントの推定処理の詳細については、[各処理の詳細](4-2.文字列描画領域が既知の場合のフォント推定処理)にて後述する。
【0124】
(1-3-4.第2画面データ制御部153:第2識別部153a)
第2識別部153aは、画面の画像を含み、画面構成要素オブジェクトに関する情報を含まない第2の画面データ40を識別し、見本画面モデルと対応付けた第2の識別結果を出力する。例えば、第2識別部153aは、光学文字認識処理を用いて画面の画像から第2の文字列および第2の文字列の描画領域を特定し、第2の文字列の描画領域ごとの相対的な配置関係を決定し、第2の文字列の描画領域および第2の文字列の描画領域ごとの相対的な配置関係に基づいて第2の画面データ40を識別し、見本画面モデルごとに画面構成要素オブジェクトと対応付けた第2の識別結果を出力する。ここで、第2の文字列とは、第2の画面データ40に含まれる表示文字列である。また、第2識別部153aは、導出部152aによって導出された文字列のフォントの種類またはサイズを用いて、第2の文字列のフォントの種類またはサイズを推定することによって、第2の画像データ40を識別し、第2の識別結果を出力する。
【0125】
このとき、第2識別部153aは、第2の文字列の描画領域の存在、第2の文字列の描画領域に描画されている文字列、および第2の文字列の描画領域ごとの相対的な配置関係に基づく制約条件と所定の評価関数とを用いて同等性を判定することによって、第2の画面データ40を識別し、見本画面モデルごとに画面構成要素オブジェクトと対応付けた第2の識別結果を出力する。
【0126】
処理の詳細を説明すると、第2識別部153aは、画面モデル記憶部14fで記憶されている見本画面モデルのそれぞれ(以下、「選択中の見本画面モデル」と表記)について、以下の文字列描画領域特定処理、文字列描画領域配置関係決定処理、第2の画面データの対応付け処理を順に適用する。
【0127】
(1-3-4-1.文字列描画領域特定処理)
まず、第2識別部153aは、選択中の見本画面モデルから、同等の画面の画像において常に同一の表示文字列が描画されている画面構成要素モデル(以下、「固定値画面構成要素モデル」と表記)の表示文字列を取得する。ここで、固定値画面構成要素モデルとは、画面構成要素モデルの情報において、「出現割合」が1で、「空文字回数」が0で、かつ「表示文字列の変動の種類」が「固定値」のものである。また、光学文字認識処理を用いて処理対象の画面の画像から表示文字列および表示文字列の描画領域を特定する。そして、第2識別部153aは、特定した表示文字列(第2の文字列)の描画領域を描画領域記憶部14gに格納する。なお、第2識別部153aによる文字列描画領域特定処理の詳細については、[各処理の詳細](3-1.文字列描画領域特定処理)にて後述する。
【0128】
(1-3-4-2.文字列描画領域配置関係決定処理)
次に、第2識別部153aは、描画領域記憶部14gで記憶されている、文字列描画領域の各組合せに対して、相対的な配置関係を決定し、配置関係記憶部14hに格納する。なお、第2識別部153aによる文字列描画領域配置関係決定処理の詳細については、[各処理の詳細](3-2.文字列描画領域配置関係決定処理)にて後述する。
【0129】
(1-3-4-3.第2の画面データの対応付け処理)
そして、第2識別部153aは、選択中の見本画面モデルと、処理対象画面の画像における、描画領域記憶部14gで記憶されている固定値画面構成要素モデルの表示文字列が描画された文字列描画領域や、配置関係記憶部14hで記憶されている、文字列描画領域同士の相対的な配置関係から、制約条件を満たすよう、見本画面モデルの画面構成要素モデルと処理対象画面の画像の文字列描画領域との対応付け方法と、その評価値を求める。このとき、第2識別部153aは、制約条件を満たすような対応付け方法が求まり、かつ、それまでに他の見本画面モデルに対して対応付け方法が求まっていない、または、それまでに他の見本画面モデルに対して求まった対応付け方法の評価値よりもよい場合には、新たに求まった対応付け方法(第2の識別結果)で、第2識別結果記憶部14iを更新する。なお、第2識別部153aによる制約条件と評価関数を用いた第2の画面データの対応付け処理の詳細については、[各処理の詳細](3-3.第2の画面データの対応付け処理)にて後述する。
【0130】
(1-3-5.第2画面データ制御部153:第2取得部153b)
第2取得部153bは、第2の識別結果に基づいて、第2の画面データに含まれる第2の文字列を取得する。例えば、第2取得部153bは、第2の識別結果を用いて、画面構成要素オブジェクトに対応付けられた処理対象画面データから第2の文字列を取得する。
【0131】
さらに、第2取得部153bは、第2の識別結果と、見本画面モデルに含まれる、第1の文字列の、変動の種類、文字数、文字の種類、フォントの種類、およびサイズのうち少なくとも1つに基づき、第2の画面データに含まれる第2の文字列を取得する。
【0132】
処理の詳細を説明すると、まず、第2取得部153bは、第2識別結果記憶部14iで、識別結果が記憶されている場合には、処理対象画面データと同等と判定された見本画面モデルを、画面モデル記憶部14fから取得し、見本画面モデルにおける、制御対象の画面構成要素モデルと、その一部である表示文字列取得対象の画面構成要素モデルを特定する。また、第2取得部153bは、第2の識別結果に含まれる、見本画面モデル中の画面構成要素モデルと処理対象画面の画像中の文字列描画領域の対応付け結果を用いて、処理対象画面の画像における、制御対象の文字列描画領域と表示文字列取得対象の文字列描画領域を特定し、その結果を処理結果記憶部14bに格納する。さらに、第2取得部153bは、処理対象画面の画像における、表示文字列取得対象の文字列描画領域のそれぞれについて、表示文字列を取得し、その結果を処理結果記憶部14bに反映する。なお、第2取得部153bによる第2の文字列の取得処理の詳細については、[各処理の詳細](3-4.表示文字列取得処理)にて後述する。
【0133】
(2.自動操作エージェント装置20の構成)
自動操作エージェント装置20は、他の装置との間での各種データの送受信を司る通信部21および当該自動操作エージェント装置20全体の制御を司る制御部22を有する。
【0134】
(2-1.通信部21)
通信部21は、制御部22によって取得された第1の画面データ30や第2の画面データ40を識別装置10に送信する。また、通信部21は、識別装置10から第1の文字列や第2の文字列の他、実行時の画面構成要素IDや描画領域等の制御対象の画面構成要素の識別に必要な情報を受信する。
【0135】
(2-2.制御部22)
制御部22は、アプリケーションの画面の画像と、当該画面を構成する要素のオブジェクトである画面構成要素オブジェクトに関する情報とを含む第1の画面データ30を取得する。同様に、制御部22は、画面の画像を含み、画面構成要素オブジェクトに関する情報を含まない第2の画面データ40を取得する。さらに、制御部22は、処理結果記憶部14bに記憶されている画面データ処理結果を用いて、見本画面データを用いた事前の動作設定時に指定された制御対象の画面構成要素に対する操作や、取得された表示文字列を使用した処理等の制御を実行する。
【0136】
[各処理の詳細]
図13~
図16や数式等を用いて、本実施形態に係る各処理の詳細を説明する。以下では、複数の処理に共通する処理として、画像の表示文字列のフォント推定処理の概要について説明した上で、見本画面モデル制御処理、第2画面データ制御処理、画像の表示文字列のフォント推定処理について詳細に説明する。
【0137】
なお、以降の説明では、相対的な配置関係として、同等の画面内に常に存在する画面構成要素のすべての組合せに関し、水平方向(上下)、垂直方向(左右)の配置関係を取り扱うこととし、制約条件、評価関数もそれに応じたものとしている。しかし、例えば隣接する画面構成要素同士の組合せのみに限定する、上下左右だけでなく、相対的な距離を考慮する等、見本画面とそれと同等の識別事例画面の画面構成要素オブジェクトの情報から自動的に導ける限りにおいて、別の相対的な配置関係、制約条件、評価関数を用いてもよい。
【0138】
(1.画像の表示文字列のフォント推定処理の概要)
図13を用いて、画像の表示文字列のフォント推定処理の概要について説明する。
図13は、第1の実施形態に係る表示文字列のフォントの種類とサイズを推定する処理の一例を示す図である。以下では、処理対象画面の画像において、描画された文字列の読取や、表示文字列が常に同じであるオブジェクトの表示文字列等、既知の文字列が描画された領域の特定を、より確実に行うため、処理対象画面の画像に表示文字列が描画される際に使用されているフォントの種類とサイズを推定する処理について説明する。なお、画像の表示文字列のフォント推定処理の詳細については、(5.画像の表示文字列のフォント推定処理)にて後述する。
【0139】
第1に、画面の画像とオブジェクトの情報の両方を取得している見本画面データにおいて、オブジェクトの情報から画面構成要素の描画領域とその表示文字列がわかることを利用し、各オブジェクトについて、見本画面の画像におけるフォントの種類とサイズを求めておく。すなわち、
図13では、見本画面データの画面の画像において、オブジェクトの情報を用いて、「発注内容」の表示文字列のフォントの種類を「メイリオ」、フォントのサイズを「c0 pt」と特定する(
図13(1-1)参照)。また、同様にして、「契約種別」の表示文字列のフォントの種類を「メイリオ」、フォントのサイズを「d0 pt」と特定する(
図13(1-2)参照)。
【0140】
第2に、表示文字列とその描画領域を比較的容易に特定可能なオブジェクトについて、処理対象画面の画像から、表示文字列と描画領域を求め、またフォントの種類やサイズを求め、見本画面の画像におけるフォントの種類やサイズの相違を調べる。すなわち、
図13では、比較的容易に特定可能なオブジェクトである「発注内容」の表示文字列のフォントの種類を「MS P明朝」、フォントのサイズを「c1 pt」と特定する(
図13(2)参照)。
【0141】
第3に、上記の2種類の処理結果を組み合わせ、フォントの種類やサイズを類推する。すなわち、
図13では、見本画面データと処理対象画面の画像とでは、フォントの種類は「メイリオ」から「MS P明朝」に変化し、フォントのサイズは「c1/c0 倍」と変化することより、処理対象画面の画像では、「契約種別」の表示文字列のフォントの種類は「MS P明朝」であり、フォントのサイズは「d0×c1/c0 pt」であると類推される(
図13(3)参照)。
【0142】
(2.見本画面モデル制御処理)
識別処理に先立って、中間データとして見本画面モデルを導出する見本画面モデル制御処理の詳細を説明する。以下では、識別事例の取得処理、見本画面モデルの初期化処理、見本画面モデルの更新処理、表示文字列の規則性の導出処理、見本画面の画像におけるフォントの導出処理、固定値画面構成要素モデルの照合成功率と照合評価値の算出処理の順に説明する。
【0143】
(2-1.識別事例の取得処理)
識別装置10は、選択中の見本画面データについて、識別事例記憶部14eに記憶されている識別事例画面データと識別結果のうち、見本画面データと同等と判定されたものを取得する。
【0144】
(2-2.見本画面モデルの初期化処理)
識別装置10は、選択中の見本画面データについて、見本画面データ自身のオブジェクトの情報に基づき、選択中の見本画面データに対応する見本画面モデル(以下、「選択中の見本画面モデル」と表記)を、以下のように初期化する。
【0145】
(2-2-1.見本画面モデルIDと対象識別事例画面データID集合の初期化処理)
見本画面モデルIDとして、選択中の見本画面データの「見本画面データID」の値をそのまま使用する。また、「対象識別事例画面データID集合」を空にする。
【0146】
(2-2-2.画面構成要素モデルの属性の初期化処理)
まず、選択中の見本画面データのオブジェクトそれぞれに対し、画面構成要素モデルを1個ずつ用意する。また、各画面構成要素モデルの属性を、以下のとおり初期化する。
【0147】
第1に、画面構成要素モデルの「実行時の画面構成要素ID」、「種類」、「制御対象」、「表示文字列取得対象」の属性については、オブジェクトの値をそのまま引き継ぐ。
【0148】
第2に、「出現回数」の属性については、モデル化の対象となったオブジェクトのうち、表示文字列が描画される可能性のあるものについて、「表示/非表示の状態」が「表示」である場合には1、それ以外の場合には0で初期化する。なお、表示文字列が描画される可能性は、画面構成要素オブジェクトの情報を取得する手段等に応じてあらかじめ用意しておいた、画面構成要素の種類等に関する条件により、判定すればよい。例えば、ウィンドウは、ウィンドウタイトルとして表示文字列を保持していても、画面内にその表示文字列が描画されないことが分かっている場合には、対象としない。
【0149】
第3に、「空文字列回数」の属性については、モデル化の対象となったオブジェクトの「表示/非表示の状態」が「表示」であり、かつ「表示文字列」の文字列が空文字列である場合には1、それ以外の場合には0で初期化する。
【0150】
第4に、「表示文字列集合」の属性については、モデル化の対象となったオブジェクトの「表示文字列」の文字列で初期化する。
【0151】
一方、画面構成要素モデルの「出現割合」、「表示文字列の変動の種類」、「表示文字列の文字数」、「表示文字列の文字の種類」、「フォントの種類」、「フォントのサイズ」の属性については、後続の処理で設定するため、初期化時には未設定のままとする。
【0152】
(2-2-3.画面構成要素モデルの相対配置関係の初期化処理)
識別装置10は、表示文字列が描画される可能性のある、見本画面モデル中の任意の2個の画面構成要素モデルuiとujについて、それぞれ、モデル化の対象となった、見本画面データ中のオブジェクトの描画領域を用いて、それらの相対的な配置関係を調べる。
【0153】
その結果、以下のように、uiとujの水平方向の配置関係を表すrh(i,j)とrh(j,i)の値を決定する。なお、「0」は、「不定」を意味するものとする。
【0154】
uiがujの左方にある、すなわち、uiの右端が、ujの左端よりも左にある場合には、rh(i,j)=1、rh(j,i)=-1とする。
【0155】
uiがujの右方にある、すなわち、uiの左端が、ujの右端よりも右にある場合には、rh(i,j)=-1、rh(j,i)=1とする。
【0156】
上記以外の場合には、rh(i,j)=0、rh(j,i)=0とする。
【0157】
同様に、uiとujの垂直方向の配置関係を表すrl(i,j)とrl(j,i)の値を決定する。
【0158】
uiがujの上方にある、すなわち、uiの下端が、ujの上端よりも上にある場合には、rh(i,j)=1、rh(j,i)=-1とする。
【0159】
uiがujの下方にある、すなわち、uiの上端が、ujの下端よりも下にある場合には、rh(i,j)=-1、rh(j,i)=1とする。
【0160】
上記以外の場合には、rh(i,j)=0、rh(j,i)=0とする。
【0161】
なお、画面構成要素オブジェクトの情報としては包含関係にあり、rh(i,j)=0、rl(i,j)=0となる画面構成要素について、画面構成要素オブジェクトの情報を取得する手段等に応じてあらかじめ用意しておいた、画面構成要素の種類等に関する条件により、表示文字列が描画され得る領域同士の配置関係をより限定できる場合には、rh(i,j)やrl(i,j)の値として、それを反映した値を用いてもよい。
【0162】
(2-3.識別事例による見本画面モデルの更新処理)
(2-3-1.識別事例の選択とモデル反映要否の判定処理)
識別装置10は、取得されたオブジェクト付き画面データ識別事例を順に選択(以下、「選択中の識別事例画面データ」「選択中の識別結果」と表記)する。識別装置10は、選択中の識別事例画面データの「画面データID」が、選択中の見本画面モデルの「対象識別事例画面データID集合」に含まれていなければ、選択中の識別事例画面データと識別結果を用いて、後続の処理により、見本画面モデルを更新する。なお、識別結果において、モデル化対象となった見本画面データ中のオブジェクトに対応付けられた、選択中の識別事例画面データのオブジェクトを、「モデル反映対象オブジェクト」と表記する。
【0163】
(2-3-2.対象識別事例画面データID集合の更新処理)
識別装置10は、選択中の識別事例画面データの「画面データID」の値を、選択中の見本画面モデルの「対象識別事例画面データID集合」に追加する。
【0164】
(2-3-3.画面構成要素モデルの属性の更新処理)
識別装置10は、モデル反映対象オブジェクトが存在する場合には、各画面構成要素モデルの属性を、以下のとおり更新する。
【0165】
第1に、「出現回数」の属性については、モデル反映対象オブジェクトの「表示/非表示の状態」が「表示」である場合には1を加える。ただし、一覧表等、反復構造の存在により、同一の識別事例画面データ中に、モデル反映対象オブジェクトが複数存在する場合、1を加えるのは、モデル反映対象オブジェクトごとではなく、識別事例画面データにつき最大1回とする。
【0166】
第2に、「表示文字列集合」の属性については、モデル反映対象オブジェクトの「表示文字列」の文字列が含まれていなければ追加する。
【0167】
第3に、「空文字列回数」の属性については、モデル反映対象オブジェクトの「表示/非表示の状態」が「表示」であり、かつ「表示文字列」の文字列が空文字列である場合には1を追加する。
【0168】
(2-3-4.画面構成要素モデルの相対配置関係の更新処理)
識別装置10は、見本画面モデル中の任意の2個の画面構成要素モデルuiとujについて、選択中の識別結果における対応付け方法fにより、それぞれ、モデル反映対象オブジェクトu’f(i)とu’f(j)に対応付けられている場合には、モデル反映対象オブジェクトの描画領域を調べ、それらの相対的な配置関係を調べる。
【0169】
その結果、以下のように、u’f(i)とu’f(j)の水平方向の配置関係を表すr’h(i,j)とr’h(j,i)の値を決定する。
【0170】
u’f(i)がu’f(j)の左方にある、すなわち、u’f(i)の右端が、u’f(j)の左端よりも左にある場合には、r’h(i,j)=1、r’h(j,i)=-1とする。
【0171】
u’f(i)がu’f(j)の右方にある、すなわち、u’f(i)の左端が、u’f(j)の右端よりも右にある場合には、r’h(i,j)=-1、r’h(j,i)=1とする。
【0172】
上記以外の場合には、r’h(i,j)=0、r’h(j,i)=0とする。
【0173】
同様に、u’f(i)とu’f(j)の垂直方向の配置関係を表すr’l(i,j)とr’l(j,i)の値を決定する。
【0174】
u’f(i)がu’f(j)の上方にある、すなわち、u’f(i)の下端が、u’f(j)の上端よりも上にある場合には、r’l(i,j)=1、r’l(j,i)=-1とする。
【0175】
u’f(i)がu’f(j)の下方にある、すなわち、u’f(i)の上端が、u’f(j)の下端よりも下にある場合には、r’l(i,j)=-1、r’l(j,i)=1とする。
【0176】
上記以外の場合には、r’l(i,j)=0、r’l(j,i)=0とする。
【0177】
なお、見本画面モデルにおける画面構成要素の相対配置関係の初期化同様、画面構成要素オブジェクトの情報としては包含関係にあり、r’h(i,j)=0、r’l(i,j)=0となる画面構成要素について、画面構成要素の種類等を考慮することで、表示文字列が描画され得る領域同士の配置関係をより限定できる場合には、r’h(i,j)やr’l(i,j)の値として、それを反映した値を用いてもよい。
【0178】
その上で、見本画面モデル中の任意の2個の画面構成要素モデルuiとujの相対的な配置関係を表すrh(i,j)、rh(j,i)、rl(i,j)、rl(j,i)の値を以下のように更新する。つまり、左右、上下の関係性が常に成り立っている場合には、それを維持し、そうでない場合には、「不定」とする。
【0179】
(水平方向の相対的な配置関係の更新)
rh(i,j)≠r’h(i,j)の場合(このときrh(j,i)≠r’h(j,i))には、rh(i,j)=0、rh(j,i)=0とする。一方、上記以外の場合には、更新しない。
【0180】
(垂直方向の相対的な配置関係の更新)
rl(i,j)≠r’l(i,j)の場合(このときrl(j,i)≠r’l(j,i))には、rl(i,j)=0、rl(j,i)=0とする。一方、上記以外の場合には、更新しない。
【0181】
以上のように、見本画面モデル中の任意の2個の画面構成要素モデルについて、常に成り立つ相対的な配置関係を求める際、見本画面データやそれと同等な識別事例画面データの、「オブジェクト自体の描画領域」同士を比較する。一方、相対的な配置関係を求める際、画像中での「表示文字列の描画領域同士」について、配置関係を調べてもよい。
【0182】
図14を用いて、画面構成要素の表示文字列の文字数の多寡により、その描画領域の配置関係が変わる場合について説明する。
図14は、表示文字列の文字数の相違が文字列描画領域の相対的な配置関係に影響を及ぼす例を示す図である。識別事例画面データとして、十分なバリエーションが網羅されていない場合、本来「不定」とすべき配置関係が、誤って「左右」「上下」の関係として、見本画面モデルに反映されることになる(
図14(1)参照)。一方、オブジェクト自体の描画領域同士の配置関係を調べれば、このような問題は回避できる(
図14(2)参照)。
【0183】
すなわち、文字列描画領域配置関係の決定処理は、処理対象画面の画像における、文字列描画領域同士の、相対的な配置関係の比較対象として、見本画面データと識別事例画面データの、画面の画像における文字列描画領域同士の相対的な配置関係とする場合に比べ、画面構成要素同士の相対的な配置関係とすることにより、より少数の識別事例画面データであっても、表示文字列が描画され得る領域同士の相対的な配置関係をより正確に求めることができ、画面構成要素をより正確に識別可能となる。
【0184】
(2-3-5.画面構成要素モデルの出現割合の算出処理)
識別装置10は、取得されたオブジェクト付き画面データ識別事例すべてに対して、以上の処理が完了したら、各画面構成要素モデルの「出現回数」を、「対象識別事例画面データID集合」の要素数に1を加えた値で除し、その値を「出現割合」に設定する。
【0185】
(2-4.表示文字列の規則性の導出処理)
識別装置10は、見本画面モデル中の画面構成要素モデルのうち、選択中の見本画面データと同等なすべての識別事例画面データ中に、モデル反映対象オブジェクトが1個以上存在しているもの(以下、「共通画面構成要素モデル」と表記)について、まず、「表示文字列の変動の種類」を以下のとおり決定する。なお、共通画面構成要素モデルとは、画面構成要素モデルの情報において、「出現割合」が1のものである。
【0186】
「表示文字列集合」の要素数が1の場合には、「固定値」に設定する。
【0187】
「表示文字列集合」の要素数が1より大きく、所定の閾値以下の場合には、「カテゴリ値」に設定する。
【0188】
「表示文字列集合」の要素数が所定の閾値より大きい場合には、「任意値」に設定する。
【0189】
また、識別装置10は、「表示文字列の変動の種類」が「任意値」となったものを対象に、以下を行う。
【0190】
(表示文字列の文字数)
「表示文字列集合」に含まれる文字列の長さを調べ、すべて同じであれば、その長さを設定する。
【0191】
(表示文字列の文字の種類)
「表示文字列集合」に含まれる文字列中の文字として、アルファベット(大文字、小文字)、数字、平仮名、片仮名、漢字等が含まれるかどうかを調べ、含まれる文字の種類を設定する。
【0192】
(2-5.見本画面の画像におけるフォントの導出処理)
各共通画面構成要素モデルのモデル化の対象となったオブジェクトの表示文字列について、見本画面の画像の描画に使用されているフォントの種類とサイズを導出する処理について説明する。
【0193】
操作対象アプリケーションが独自に提供するインタフェースによっては、画面全体の表示倍率や、フォントの種類、画面全体の表示倍率を100%とした時のフォントのサイズの情報を得られるものもある。この場合には、このインタフェースを用いることで、見本画面の画像の描画に使用されているフォントの種類とサイズを得られる。なお、フォントのサイズは、画面全体の表示倍率を100%とした時のフォントのサイズに、画面全体の表示倍率を乗じた値として得られる。
【0194】
一方、操作対象アプリケーションが独自に提供するインタフェースによっては、フォントの種類やサイズを正しく取得できず、その場合、見本画面の画像から以下のように推定する。まず、表示文字列は、オブジェクトの描画領域内に描画されており、かつ他の文字列が描画されていないことが分かっている。そのため、見本画面の画像の、オブジェクトの描画領域を対象に、OCR技術を適用することで、オブジェクトの表示文字列の描画領域を特定できる。その後、この文字列描画領域に対して、後述の、文字列描画領域が既知の場合のフォント推定を行うことで、フォントの種類とサイズを得る。
【0195】
(2-6.固定値画面構成要素モデルの照合成功率と照合評価値の算出処理)
図15を用いて、各固定値画面構成要素モデルに対し、照合成功率と照合評価値を算出する処理について説明する。
図15は、第1の実施形態に係る表示文字列のフォントの種類とサイズを推定する際のマッチング処理の一例を示す図である。
【0196】
まず、識別装置10は、フォントの種類とサイズを、本発明の実施に先立って指定された候補内で変化させながら、固定値画面構成要素モデルの表示文字列(表示文字列集合の唯一の要素)を描画した画像(以下、「照合好適性調査用画像」と表記)を作成する。この画像は、例えば、本実施形態に係るプログラムが動作するOSの機能を用いて、ディスプレイに本実施形態に係るプログラムの画面を表示させ、そこに特定のフォントの種類とサイズで、表示文字列を描画しておき、描画された領域の画像をキャプチャすることで作成できる(
図15(1)(2)参照)。
【0197】
次に、識別装置10は、SIFT特徴量等、画像に描画されているもの(この場合は文字)の大きさの相違の影響を受けにくい特徴量を使用した、画像テンプレートマッチング等の画像処理技術を使用し、見本画面の画像と各照合好適性調査用画像とのマッチングを行う(
図15(3)参照)。
【0198】
また、識別装置10は、マッチング結果に基づき、マッチング成否、つまり、マッチングの結果特定された領域が、固定値画面構成要素モデルのモデル化の対象となったオブジェクトの描画領域に含まれているかどうか、を判定する。さらに、識別装置10は、マッチングが成功している場合には、画像処理技術が出力した類似度を調べ、マッチング評価値とする(
図15(4)参照)。
【0199】
そして、識別装置10は、すべての照合好適性調査用画像に対する、マッチング成否と、マッチング評価値から、オブジェクトの照合成功率と照合評価値を算出する。ここで、照合成功率は、照合好適性調査用画像のうち、マッチング成否が「成功」であったものの割合であり、照合評価値は、照合好適性調査用画像のうち、マッチング成否が「成功」であったものの、マッチング評価値の最小値、平均値、または中央値等である。
【0200】
なお、以上では、各照合好適性調査用画像を、見本画面の画像とのみ、マッチングするものとして説明したが、先行する処理で得ている、見本画面データと同等と判定された、識別事例画面データをマッチング対象に含めてもよい。その場合には、識別装置10は、マッチング成否は、固定値画面構成要素モデルに対応する、識別事例画面データ中のモデル反映対象オブジェクトの描画領域に含まれているかどうか、により判定する。
【0201】
なお、
図15では、見本画面データの「画面構成要素モデルの属性」の1つとして「画面構成要素の描画領域」として、[xxx,yyy,zzz,www]と記載しているが、同じ文字を使っていても、この部分については、数学における文字式のように同じ値であることを意味しておらず、
図24の画面データの例のように、個々について、それぞれの描画領域に応じた個別の数値となる。
【0202】
(3.第2画面データ制御処理)
オブジェクト情報を含まない処理対象画面データを、見本画面およびそれと同等な識別事例画面の画面構成要素オブジェクトの情報と比較し、表示文字列を取得する第2画面データ制御処理の詳細を説明する。以下では、文字列描画領域の特定処理、文字列描画領域配置関係の決定処理、第2の画面データの対応付け処理、表示文字列取得処理の順に説明する。
【0203】
(3-1.文字列描画領域特定処理)
図16を用いて、第2画面データ制御処理のうち、文字列描画領域の特定処理について説明する。
図16は、第1の実施形態に係る文字列描画領域を特定する処理の一例を示す図である。識別装置10は、処理対象画面の画像において、文字列が描画された領域と、そのうち、選択中の見本画面モデル中の固定値画面構成要素モデルの表示文字列が描画された領域を、以下のように特定する。
【0204】
まず、識別装置10は、処理対象画面の画像全体に対してOCR技術を用いることで、文字列が描画されていると判定された領域と、その領域の画像から読み取られた文字列(以下、「読取文字列」と表記)を取得し、関連付けて描画領域記憶部に格納する(
図16(1)参照)。なお、
図16では、取得された「文字列描画領域」として、[xxx,yyy,zzz,www]と記載している箇所については、同じ文字を使っていても、この部分については、数学における文字式のように同じ値であることを意味しておらず、
図24の画面データの例のように、個々について、それぞれの描画領域に応じた個別の数値となる。
【0205】
次に、識別装置10は、選択中の見本画面モデル中の固定値画面構成要素モデルのそれぞれについて、表示文字列が、読取文字列の多重集合に含まれているか(以下、「検出済固定値画面構成要素モデル」と表記)と、含まれていないか(以下、「未検出固定値画面構成要素モデル」と表記)を調べ、分類する。また、識別装置10は、固定値画面構成要素モデルの表示文字列と一致する読取文字列と関連付けられた文字列描画領域には、固定値一致フラグを立てておく(
図16(2)参照)。
【0206】
なお、識別装置10は、見本画面モデル中に、表示文字列が同一の固定値画面構成要素モデルが複数ある場合には、その個数分、表示文字列が読取文字列の多重集合に含まれているかどうかを考慮して分類する。例えば、識別装置10は、読取文字列の多重集合に、個数分すべてが含まれない場合には、一旦、すべてを未検出固定値画面構成要素モデルとし、また文字列描画領域にも、固定値一致フラグを立てずにおく。
【0207】
そして、識別装置10は、各未検出固定値画面構成要素モデルに対し、以下のいずれかの処理、あるいはその両方を行い、表示文字列の描画領域を特定するとともに、文字列描画領域保持部に保存されている、読取文字列と文字列描画領域を補正する。
【0208】
(3-1-1.光学文字検証技術による表示文字列の描画領域検出処理)
識別装置10は、処理対象画面の画像における、未検出固定値画面構成要素モデルの表示文字列の描画領域を、光学文字検証(OCV)技術を用いて特定する(
図16(3-1)参照)。なお、この際、この時点で固定値一致フラグが立てられている文字列描画領域は、OCV技術による走査対象から除外する。このとき、識別装置10は、描画領域を特定できた未検出固定値画面構成要素モデルについては、その表示文字列とその描画領域を用いて、後述の方法により、読取文字列と文字列描画領域を補正する。また、識別装置10は、検出済固定値画面構成要素モデルに分類し直す。
【0209】
(3-1-2.固定値テンプレート画像との比較による表示文字列の描画領域検出処理)
まず、識別装置10は、選択中の見本画面モデル中の固定値画面構成要素モデルを、照合用画面構成要素モデル候補、未検出固定値画面構成要素モデルをフォント推定対象の画面構成要素モデルとして、後述の文字列描画領域が未知の場合のフォント推定を行う(
図16(3-2-1)参照)。なお、この際、この時点で検出済固定値画面構成要素モデルに分類されているものは、表示文字列の描画領域が既知の画面構成要素モデル、として扱われる。
【0210】
次に、識別装置10は、推定結果のフォントの種類とサイズのそれぞれについて、「不明」でなければ、推定結果を、「不明」の場合には、見本画面モデルにおける未検出固定値画面構成要素モデルのフォントの種類、サイズを使用して、その文字列を描画した画像(以下、「固定値テンプレート画像」と表記)を生成する(
図16(3-2-2)参照)。
【0211】
そして、識別装置10は、画像テンプレートマッチング等の画像処理技術を使用し、処理対象画面の画像と固定値テンプレート画像とのマッチングを行うことで、未検出固定値画面構成要素モデルの表示文字列の描画領域を特定する(
図16(3-2-3)参照)。なお、識別装置10は、この際、この時点で固定値一致フラグが立てられている文字列描画領域は、マッチングにおける走査対象から除外する。このとき、識別装置10は、描画領域を特定できた未検出固定値画面構成要素モデルについては、その表示文字列とその描画領域を用いて、後述の方法により、読取文字列と文字列描画領域を補正する。また、識別装置10は、検出済固定値画面構成要素モデルに分類し直す。
【0212】
(3-1-3.読取文字列と文字列描画領域の補正処理)
識別装置10は、描画領域記憶部14gに記憶されている文字列描画領域の中から、描画領域を特定できた未検出固定値画面構成要素モデルの表示文字列の描画領域と重なりを持つものを特定し、文字列描画領域と、その読取文字列を削除する。また、識別装置10は、描画領域を特定できた未検出固定値画面構成要素モデルの表示文字列とその描画領域を、読取文字列と文字列描画領域として関連付けて文字列描画領域保持部に追加で保存するとともに、その文字列描画領域に対し、固定値一致フラグを立てる(
図16(4)参照)。
【0213】
図16(4)では、文字列描画領域ID=3の文字列描画領域[20,50,150,100]がOCV技術により特定された描画領域と重なるために、文字列描画領域ID=3の情報が削除されている。また、文字列描画領域ID=6の文字列描画領域[20,70,150,100]が、画像テンプレートマッチング等により特定された描画領域と重なるために、文字列描画領域ID=6の情報が削除されている。一方、文字列描画領域ID=31、103、106等の情報は、OCV技術や画像テンプレートマッチング等により特定された領域として追加されている。
【0214】
(3-2.文字列描画領域配置関係決定処理)
識別装置10は、文字列描画領域保持部に保存されている任意の2個の文字列描画領域viとvjの組合せについて、それらの相対的な配置関係を調べる。
【0215】
その結果、識別装置10は、以下のように、viとvjの水平方向の配置関係を表すsh(i,j)とsh(j,i)の値を決定する。
【0216】
viがvjの左方にある、すなわち、viの右端が、vjの左端よりも左にある場合には、sh(i,j)=1、sh(j,i)=-1とする。
【0217】
viがvjの右方にある、すなわち、viの左端が、vjの右端よりも右にある場合には、sh(i,j)=-1、sh(j,i)=1とする。
【0218】
上記以外の場合には、sh(i,j)=0、sh(j,i)=0とする。
【0219】
同様に、viとvjの垂直方向の配置関係を表すsl(i,j)とsl(j,i)の値を決定する。
【0220】
viがvjの上方にある、すなわち、viの下端が、vjの上端よりも上にある場合には、sl(i,j)=1、sl(j,i)=-1とする。
【0221】
viがvjの下方にある、すなわち、viの上端が、vjの下端よりも下にある場合には、sl(i,j)=-1、sl(j,i)=1とする。
【0222】
上記以外の場合には、sl(i,j)=0、sl(j,i)=0とする。
【0223】
(3-3.第2の画面データの対応付け処理)
画面構成要素モデル・文字列描画領域対応付けの導出処理として、見本画面モデル中の画面構成要素モデルと処理対象画面の画像中の文字列描画領域との対応付けと、その評価値を求める処理の実現方法として、制約充足問題に帰着する場合の方法について説明する。
【0224】
識別装置10は、選択中の見本画面モデルと、処理対象画面の画像に対する文字列描画領域特定や文字列描画領域配置関係導出の結果に基づき、以下で説明する制約充足問題を動的に作成し、制約充足問題求解手法を用いて解と評価値を求める。また、識別装置10は、評価値がそれまでに求まっている結果よりも良い場合にのみ、結果をオブジェクト情報なし画面データ識別結果保持部に保存する。なお、制約充足問題求解手法として、探索空間の枝刈りを行う手法や、厳密解に代わりに近似解を求める手法を用いてもよい。
【0225】
(3-3-1.記号の定義)
見本画面モデル中の、共通画面構成要素モデルの集合とその要素数をUと|U|、処理対象画面の画像中の、文字列描画領域の集合とその要素数をVと|V|とする。
【0226】
見本画面モデル中の共通画面構成要素モデルのうち、空文字列回数が0のもの(以下、「文字列描画領域必須画面構成要素モデル」と表記)の集合をUdispとする。さらに、そのうち、固定値画面構成要素モデルの集合をUfixとする。
【0227】
見本画面モデル中の固定値画面構成要素モデルuiの表示文字列をpi、処理対象画面の画像中の文字列描画領域vi’の読取文字列をqi’とする。
【0228】
見本画面モデル中の共通画面構成要素モデルui∈Uと、処理対象画面の画像中の文字列描画領域vi’∈Vとを対応付けるかどうかを、対応付けるときに1、対応付けないときに0をとる整数の変数xi,i’で表す。
【0229】
見本画面モデル中の共通画面構成要素モデルui∈Uが、処理対象画面の画像中の少なくとも1個以上の文字列描画領域と対応付けるかどうかを、対応付けるときに1、対応付けないときに0をとる整数の変数yiで表す。
【0230】
(3-3-2.制約充足問題としての定式化)
見本画面モデル中の共通画面構成要素モデルと処理対象画面の画像中の文字列描画領域の対応付け方法は、すべての変数x1,1,x1,2,…,x2,1,x2,2,…,x|U|,|V|に対して、それぞれ0または1の値を割り当てる方法として表現できる。ただし、見本画面モデル中の共通画面構成要素モデルと、処理対象画面の画像中の文字列描画領域との対応付け方法には、見本画面と処理対象画面や、その画面構成要素同士が同等であるために満たすべき条件あり、それが制約充足問題における制約条件となる。
【0231】
また、同一の見本画面モデルと同一の処理対象画面データに対し、制約条件を満たしつつ、共通画面構成要素モデルと文字列描画領域を対応付ける方法が複数存在する場合や、同一の処理対象画面に対し、制約条件を満たしつつ、共通画面構成要素モデルと文字列描画領域を対応付け可能な見本画面モデルが複数存在する場合において、どのような対応付け方法を選出すべきかの指標があり、それが制約充足問題における評価関数となる。以下で、制約条件、評価関数のそれぞれについて説明する。
【0232】
(3-3-2-1.制約条件)
見本画面モデルと処理対象画面データが同等であるためには、少なくとも以下の条件をすべて満たす必要がある。
【0233】
(制約条件1)
画面の実装内容、ルックアンドフィールや表示倍率に相違があっても、画面構成要素のレイアウトには相違は生じず、文字列描画領域は、画面構成要素の描画領域の範囲内にある、という前提の下では、任意の文字列描画領域の組合せについて、その相対的な配置関係は、それぞれに対応付けられた共通画面構成要素モデル同士の相対的な配置関係に適合している必要がある。なお、「適合する」とは、vi’とvJ’が、それぞれuiとujに対応付けられている場合に、二次元平面上で2個の共通画面構成要素モデルuiとujの間に、水平方向に関する左右の関係、または垂直方向に関する上下の関係があるならば、文字列描画領域vi’とvJ’の間にも、同じ関係が成立することをいうものとする。
【0234】
すなわち、任意のui,uj∈Uとvi’,vJ’∈Vについて、水平方向の配置関係として下記(1)式、垂直方向の配置関係として下記(2)式の両方が成立することが条件となる。
【0235】
【0236】
【0237】
(制約条件2)
見本画面モデルと処理対象画面データが同等であるならば、見本画面モデルで常に文字列が表示されている共通画面構成要素モデルについては、処理対象画面の画像においても、文字列描画領域が存在するはずである。ただし、OCR技術による文字列描画領域の検出では、ひとつの画面構成要素モデルの表示文字列が、複数の文字列描画領域として、分割されてしまう場合がある。したがって、文字列描画領域必須画面構成要素モデルには、処理対象画面の画像中の文字列描画領域が、少なくとも1個以上対応付けられる必要がある。
【0238】
すなわち、任意のui∈Udispについて、下記(3)式が成立することが条件となる。
【0239】
【0240】
(制約条件3)
文字列描画領域必須画面構成要素モデルのうち、特に、固定値画面構成要素モデルについては、文字列描画領域特定において、その表示文字列が描画されている領域を、あらかじめ特定しており、OCR技術による文字列描画領域の検出時に分割されてしまう場合への考慮が不要である。したがって、固定値画面構成要素モデルには、処理対象画面の画像中の文字列描画領域が、ちょうど1個対応付けられる必要がある。
【0241】
すなわち、任意のui∈Ufixについては、制約条件2の代わりに、下記(4)式が成立することが条件となる。
【0242】
【0243】
(制約条件4)
自動操作エージェント等が対象とする操作対象アプリケーションの画面においては、人にとっての視認性の確保等の観点で、異なる画面構成要素の表示文字列は離れて描画されるため、複数の画面構成要素モデルの表示文字列が、1つの文字列描画領域として検出されることはないものとする。つまり、1つの文字列描画領域が、2個以上の共通画面構成要素モデルと対応付けられることはない。また、処理対象画面には、共通画面構成要素モデル以外の画面構成要素が存在する場合や、共通画面構成要素モデルと同等の画面構成要素であっても、表示文字列をもたない場合もある。そのため、文字列描画領域の中には、どの共通画面構成要素モデルとも対応付けられない場合もある。したがって、処理対象画面の画像中の文字列描画領域には、最大1個の共通画面構成要素モデルが対応付けられる。
【0244】
すなわち、任意のvi’∈Vについては、下記(5)式が成立することが条件となる。
【0245】
【0246】
(制約条件5)
固定値画面構成要素モデルについては、制約条件3に加え、それに対応付けられる、処理対象画面の画像中の文字列描画領域に対する読取文字列と、表示文字列が一致する必要がある。
【0247】
すなわち、任意のui∈Ufixについては、下記(6)式が成立することが条件となる。
【0248】
【0249】
(制約条件6)
変数の定義から明らかなように、xi,1,…xi,|V|の少なくとも1個が1であることと、yiが1であることは、同値である。
【0250】
すなわち、任意のui∈Uについては、下記(7)式が成立することが条件となる。
【0251】
【0252】
(3-3-2-2.評価関数)
制約条件がすべて満たされている場合には、処理対象画面の画像中の文字列描画領域のうち、見本画面モデル中の共通画面構成要素モデルと対応付けられるものの割合が高いほど、よい対応付け方法といえる。また、同様に、見本画面モデル中の共通画面構成要素モデルのうち、処理対象画面の画像中の文字列描画領域に対応付けられたものの割合が高いほど、よい対応付け方法といえる。
【0253】
したがって、例えば下記(8)式中のΦを評価関数とする。ただし、αは所定の重み付けパラメータである。
【0254】
【0255】
(3-4.表示文字列取得処理)
オブジェクト情報なし画面データ制御対象特定・表示文字列の取得処理として、処理対象画面の画像における、表示文字列取得対象の文字列描画領域のそれぞれ(以下、「選択中の文字列描画領域」と表記)について、表示文字列を取得する方法を詳細に説明する。
【0256】
識別装置10は、選択中の文字列描画領域に対応付けられた共通画面構成要素モデル(以下、「選択中の文字列取得対象の画面構成要素モデル」と表記)の「表示文字列の変動の種類」が「固定値」の場合には、その表示文字列を取得結果とする。
【0257】
識別装置10は、それ以外の場合には、まず、処理対象画面データと対応付けられた見本画面モデルにおける、固定値画面構成要素モデルを、照合用画面構成要素モデル候補、選択中の文字列取得対象の画面構成要素モデルをフォント推定対象の画面構成要素モデルとして、後述の、文字列描画領域が未知の場合のフォント推定を行う。なお、この際、固定値画面構成要素モデルに分類されているものはすべて、表示文字列の描画領域が既知の画面構成要素モデル、として扱われる。
【0258】
次に、識別装置10は、選択中の文字列取得対象の画面構成要素モデルの「表示文字列の変動の種類」に応じて、フォントの推定結果の他、以下を読取設定に反映する。
【0259】
選択中の文字列取得対象の画面構成要素モデルが「カテゴリ値」の場合には、「表示文字列集合」中の文字列を、文字列候補として読取設定に反映する。
【0260】
選択中の文字列取得対象の画面構成要素モデルが「任意値」の場合には、「表示文字列の文字数」「表示文字列の文字の種類」のうち、設定されているものを読取設定に反映する。
【0261】
そして、識別装置10は、上記で反映した読取設定のもと、OCR技術を用いて選択中の文字列描画領域の画像に対して読取を行い、その結果を、表示文字列の取得結果とする。
【0262】
(4.画像の表示文字列のフォント推定処理)
識別装置10によって実行される画像の表示文字列のフォント推定処理を詳細に説明する。以下では、文字列描画領域が未知の場合のフォント推定処理、文字列描画領域が既知の場合のフォント推定処理の順に説明する。
【0263】
(4-1.文字列描画領域が未知の場合のフォント推定処理)
識別装置10は、画面の画像中における表示文字列の描画領域が分からない場合には、(1)表示文字列とその描画領域が既知、(2)固定値画面構成要素モデルの照合成功率と照合評価値を算出する際に用いたものと同じ、画像テンプレートマッチング等の公知の画像処理技術により描画領域を特定可能、のいずれかを満たす固定値画面構成要素モデルのうち、見本画面モデルにおいて、フォントの種類が、フォント推定対象の画面構成要素モデルと同じものがある場合には、それを優先的に、ない場合には任意のものを、照合用画面構成要素モデルとする。
【0264】
次に、識別装置10は、処理対象画面の画像における、照合用画面構成要素モデルの表示文字列とその描画領域を求め、文字列描画領域が既知の場合のフォント推定を行うことで、処理対象画面の画像の描画に使用されているフォントの種類とサイズを得る。その後、識別装置10は、照合用画面構成要素モデルとフォント推定対象の画面構成要素モデルの、見本画面モデルにおけるフォントの種類やサイズの関係性から、フォント推定対象の画面構成要素モデルの表示文字列が、処理対象画面の画像で描画される際に使用されているフォントの種類とサイズを類推する。
【0265】
なお、フォント推定対象の画面構成要素モデル、つまり、固定値テンプレート画像生成対象の固定値画面構成要素モデル、または表示文字列取得対象の画面構成要素モデルについて、処理対象画面の画像における、表示文字列のフォントの種類とサイズを推定する処理の流れについては、[各処理の流れ](5.文字列描画領域が未知の場合のフォント推定処理の流れ)(6.表示文字列描画領域の特定可否によるモデル候補限定処理の流れ)にて後述する。
【0266】
(4-2.文字列描画領域が既知の場合のフォント推定処理)
識別装置10は、表示文字列と、画面の画像中におけるその描画領域が分かっている場合には、フォントの種類とサイズを指定された候補内で変化させながら、表示文字列を描画した画像を生成し、画面の画像におけるその描画領域と、画像テンプレートマッチング等の画像処理技術を用いてマッチングし、最もよく合致したときのフォントの種類、サイズを求め、推定結果とする。
【0267】
[各処理の流れ]
図17~
図22を用いて、本実施形態に係る各処理の流れを詳細に説明する。以下では、識別処理全体の流れ、見本画面モデル導出処理の流れ、第2画面データ識別処理の流れ、第2画面データ取得処理の流れ、文字列描画領域が未知の場合のフォント推定処理の流れ、表示文字列描画領域の特定可否によるモデル候補限定処理の流れの順に説明する。
【0268】
(1.識別処理全体の流れ)
図17を用いて、本実施形態に係る識別処理の全体の流れを詳細に説明する。
図17は、第1の実施形態に係る処理全体の流れの一例を示すフローチャートである。以下では、識別装置10の第1画面データ制御部151が実行するオブジェクト情報使用モード、画面モデル制御部152が実行する見本画面モデル化モード、第1画面データ制御部153が実行するオブジェクト情報不使用モードの順に説明する。なお、下記のステップS101~S105は、異なる順序で実行することもできる。また、下記のステップS101~S105のうち、省略される処理があってもよい。
【0269】
(1-1.オブジェクト情報使用モード)
オブジェクト情報使用モードは、非仮想化環境で、オブジェクトアクセス方式による識別処理を行いながら、その後の見本画面モデル化モードでの使用に備え、その識別結果事例を蓄積する処理を実行し、以下のステップS101、S102の処理を含む。
【0270】
まず、識別装置10の第1識別部151aは、第1の画面データから画面と画面構成要素を識別する(ステップS101)。次に、識別装置10の第1取得部151bは、第1の表示文字列を取得する(ステップS102)。
【0271】
(1-2.見本画面モデル化モード)
見本画面モデル化モードは、任意の環境で、オブジェクト情報不使用モードで使用される際に必要となる見本画面モデルを作成し、以下のステップS103の処理を含む。識別装置10の導出部152aは、見本画面モデルを作成する(ステップS103)。
【0272】
(1-3.オブジェクト情報不使用モード)
オブジェクト情報不使用モードは、任意の環境で見本画面モデルを用いることで、画面構成要素オブジェクトの情報を用いずに識別する処理を実行し、以下のステップS104、S105の処理を含む。
【0273】
まず、識別装置10の第2識別部153aは、第2の画面データから画面と画面構成要素を識別する(ステップS104)。次に、識別装置10の第2取得部153bは、第2の表示文字列を取得する(ステップS105)。
【0274】
なお、上記のオブジェクト情報使用モードとオブジェクト情報不使用モードは、ユーザが明示的に指定してもよいし、実施される環境に応じて、自動的に切り替えてもよい。また、上記の見本画面モデル化モードは、ユーザが明示的に指定してもよいし、その他モードでの使用時に、一時的に切り替えて、あるいは並列して使用されてもよい。
【0275】
(2.見本画面モデル導出処理の流れ)
図18を用いて、本実施形態に係る見本画面モデルの導出処理の流れを詳細に説明する。
図18は、第1の実施形態に係る見本画面モデルの導出処理の流れの一例を示すフローチャートである。
【0276】
まず、識別装置10の導出部152aは、未反映の見本画面データが存在する場合(ステップS201:Yes)、識別情報記憶部14cのモデル未反映の見本画面データを1個選択し(ステップS202)、識別事例記憶部14eの識別事例画面データと識別結果のうち、見本画面データと同等と判定されたものを取得する(ステップS203)。一方、導出部152aは、未反映の見本画面データが存在しない場合(ステップS201:No)、処理を終了する。
【0277】
次に、導出部152aは、同等の識別事例画面データが所定の個数以上存在する場合(ステップS204:Yes)、選択中の見本画面データに対応した見本画面モデルを作成、初期化する(ステップS206)。一方、導出部152aは、同等の識別事例画面データが所定の個数以上存在しない場合(ステップS204:No)、選択された見本画面データを反映済みに処理し(ステップS205)、ステップS201の処理に移行する。
【0278】
続いて、導出部152aは、未反映の識別事例画面データが存在する場合(ステップS207:Yes)、モデル未反映の識別事例画面データと識別結果を1個選択し(ステップS208)、選択中の識別事例画面データと識別結果を用いて、見本画面モデルを更新し(ステップS209)、選択された識別事例画面データを反映済みに処理(ステップS210)し、ステップS207の処理に移行する。
【0279】
一方、導出部152aは、未反映の識別事例画面データが存在しない場合(ステップS207:No)、見本画面モデルについて、表示文字列の規則性を導出し(ステップS211)、見本画面の画像におけるフォントを導出し(ステップS212)、固定値画面構成要素モデルの照合成功率と照合評価値を算出し(ステップS213)、選択された見本画面データを反映済みに処理し(ステップS205)、ステップS201の処理に移行する。
【0280】
なお、上記のステップS201~S213は、異なる順序、タイミングで実行することもできる。また、上記のステップS201~S213のうち、省略される処理があってもよい。
【0281】
さらに、導出部152aは、例えば、ユーザが明示的に実行の開始を指示した場合、オブジェクトの情報を含む処理対象画面データに対して識別が行われ、識別結果が識別事例記憶部14eに一定数以上新たに追加された場合、オブジェクトの情報が含まれない処理対象画面データに対し、ある見本画面データとの同等性の判定を行おうとした際に、当該見本画面データに対応する見本画面モデルが、画面モデル記憶部14fに存在しない場合、当該見本画面データに対応する見本画面モデルの作成以降に、当該見本画面データと同等と判定された識別結果が、識別事例記憶部14eに一定数以上新たに追加されている場合等において、処理を開始するが特に限定されない。
【0282】
(3.第2画面データ識別処理の流れ)
図19を用いて、本実施形態に係る第2の画面データの識別処理の流れを詳細に説明する。
図19は、第1の実施形態に係る第2の画面データの識別処理の流れの一例を示すフローチャートである。
【0283】
まず、識別装置10の第2識別部153aは、比較済みではない見本画面モデルが存在する場合(ステップS301:Yes)、画面モデル記憶部14fの比較済みではない見本画面モデルを1個選択する(ステップS302)。一方、第2識別部153aは、比較済みではない見本画面モデルが存在しない場合(ステップS301:No)、処理を終了する。
【0284】
次に、第2識別部153aは、処理対象画面の画像中の文字列描画領域と、そのうち、選択中の見本画面モデル中の固定値画面構成要素モデルの表示文字列が描画された領域を特定し(ステップS303)、処理対象画面の画像において、文字列描画領域同士の相対的な配置関係を導出し(ステップS304)、選択中の見本画面モデル中の画面構成要素モデルと、処理対象画面の画像中の文字列描画領域とを対応付けし(ステップS305)、選択された見本画面モデルを比較済みと処理し(ステップS306)、ステップS301の処理に移行する。
【0285】
なお、上記のステップS301~S306は、異なる順序、タイミングで実行することもできる。また、上記のステップS301~S306のうち、省略される処理があってもよい。
【0286】
(4.第2画面データ取得処理の流れ)
図20を用いて、本実施形態に係る第2の画面データの取得処理の流れを詳細に説明する。
図20は、第1の実施形態に係る第2の文字列の取得処理の流れの一例を示すフローチャートである。
【0287】
まず、識別装置10の第2取得部153bは、第2識別結果記憶部14iに識別結果が記憶されている場合(ステップS401:Yes)、同等と判定された見本画面モデルを画面モデル記憶部14eから取得する(ステップS402)。一方、第2取得部153bは、第2識別結果記憶部14iに識別結果が記憶されていない場合(ステップS401:No)、処理を終了する。
【0288】
次に、第2取得部153bは、見本画面モデル中に未処理の制御対象画面構成要素モデルが存在する場合(ステップS403:Yes)、見本画面モデル中の未処理の制御画面構成要素モデルを1個選択し(ステップS404)、第2の識別結果と、描画領域記憶部14gの文字列描画領域から、制御対象画面構成要素モデルに対応づけられた、処理対象画面の画像中の文字列描画領域を特定する(ステップS405)。一方、見本画面モデル中に未処理の制御対象画面構成要素モデルが存在しない場合(ステップS403:No)、処理を終了する。
【0289】
続いて、第2取得部153bは、文字列描画領域を特定できた場合(ステップS406:Yes)、ステップS405の処理で特定した文字列描画領域を処理結果記憶部に格納し(ステップS407)、ステップS408の処理に移行する。一方、第2取得部153bは、文字列描画領域を特定できなかった場合(ステップS406:No)、処理対象画面において画面構成要素が非表示または表示文字列が空文字列のため、文字列描画領域として特定されなかったものとし、文字列描画領域を「不明」、表示文字列を空文字列と処理し、処理結果記憶部14bに格納し(ステップS410)、選択中のモデルを処理済みと処理し(ステップS411)、ステップS403の処理に移行する。
【0290】
そして、第2取得部153bは、選択中の制御対象画面構成要素モデルが、表示文字列取得対象である場合(ステップS408:Yes)、選択中の制御対象画面構成要素モデルに対応付けられた、処理対象画面の画像中の文字列描画領域から、表示文字列を取得し、処理結果記憶部14bに格納し(ステップS409)、選択中のモデルを処理済みと処理し(ステップS411)、ステップS403の処理に移行する。
【0291】
なお、上記のステップS401~S411は、異なる順序、タイミングで実行することもできる。また、上記のステップS401~S411のうち、省略される処理があってもよい。
【0292】
(5.文字列描画領域が未知の場合のフォント推定処理の流れ)
図21を用いて、本実施形態に係る文字列描画領域が未知の場合のフォント推定処理の流れを詳細に説明する。
図21は、第1の実施形態に係る文字列描画領域が未知の場合の表示文字列のフォントの種類とサイズを推定する処理の流れの一例をフローチャートである。
【0293】
まず、識別装置10は、フォント推定結果の、フォントの種類とサイズをそれぞれ「未定」と処理し(ステップS501)、見本画面モデルにおいて、照合用画面構成要素モデル候補のうち、フォントの種類が、フォント推定対象の画面構成要素モデルと異なるものを除外する(ステップS502)。
【0294】
次に、識別装置10は、照合用画面構成要素モデル候補が1個以上存在する場合(ステップS503:Yes)、照合用画面構成要素モデル候補に対し、処理対象画面の画像における、表示文字列の描画領域を特定し、特定できなかったものを候補から除外する(ステップS504)。なお、照合用画面構成要素モデル候補限定処理の流れについては、
図22を用いて後述する。一方、識別装置10は、照合用画面構成要素モデル候補が1個以上存在しない場合(ステップS503:No)、ステップS511の処理に移行する。
【0295】
続いて、識別装置10は、ステップS504の処理後、照合用画面構成要素モデル候補が1個以上存在する場合(ステップS505:Yes)、照合用画面構成要素モデル候補の中から1個を照合用画面構成要素モデルとして選択し、文字列描画領域候補が既知の場合のフォント推定を行い、照合用画面構成要素モデルのフォントの種類とサイズを取得する(ステップS506)。一方、識別装置10は、ステップS504の処理後、照合用画面構成要素モデル候補が1個以上存在しない場合(ステップS505:No)、ステップS511の処理に移行する。
【0296】
さらに、識別装置10は、フォントの種類が「不明」ではない場合(ステップS507:Yes)、照合用画面構成要素モデルのフォントの種類を、フォント推定結果のフォントの種類として処理し(ステップS508)、照合用画面構成要素モデルと、フォント推定対象の画面構成要素モデルの、見本画面モデルにおけるフォントのサイズの比率を算出し(ステップS509)、フォント推定結果のフォントのサイズを、処理対象画面の画像における照合用画面構成要素モデルのサイズに、算出した比率を反映したサイズとして処理し(ステップS510)、処理を終了する。一方、識別装置10は、フォントの種類が「不明」である場合(ステップS507:No)、ステップS509の処理に移行する。
【0297】
また、識別装置10は、ステップS503またはS505の処理後、フォントの種類が「不明」ではない場合(ステップS511:Yes)、照合用画面構成要素モデル候補を、除外する前の初期状態に戻す処理を行い(ステップS512)、フォント推定結果の、フォントの種類を「不明」として処理し(ステップS513)、照合用画面構成要素モデル候補のうち、フォントの種類が、画面構成要素モデルと同じものを除外し(ステップS514)、ステップS503の処理に移行する。一方、識別装置10は、ステップS503またはS505の処理後、フォントの種類が「不明」である場合(ステップS511:No)、フォント推定結果の、フォントのサイズを「不明」として処理し(ステップS515)、処理を終了する。
【0298】
なお、上記のステップS501~S515は、異なる順序、タイミングで実行することもできる。また、上記のステップS501~S515のうち、省略される処理があってもよい。
【0299】
(6.表示文字列描画領域の特定可否によるモデル候補限定処理の流れ)
図22を用いて、本実施形態に係る文字列描画領域が未知の場合のフォント推定処理の流れを詳細に説明する。
図22は、第1の実施形態に係る文字列描画領域の特定可否による照合用構成要素モデル候補を限定する処理の流れの一例をフローチャートである。
【0300】
まず、識別装置10は、処理対象画面の画像において、照合用画面構成要素モデル候補またはその表示文字列の描画領域が既知のものを抽出し(ステップS601)、1個以上抽出された場合(ステップS602:Yes)、抽出されなかったものを、照合用画面構成要素モデル候補から除外し(ステップS603)、処理を終了する。
【0301】
一方、識別装置10は、処理対象画面の画像において、照合用画面構成要素モデル候補またはその表示文字列の描画領域が既知のものが1個以上抽出されなかった場合(ステップS602:No)、照合用画面構成要素モデル候補のうち、照合成功率または照合評価値が閾値未満のものを除外する(ステップS604)。
【0302】
次に、識別装置10は、照合用画面構成要素モデル候補が1個以上存在する場合(ステップS605:Yes)、見本画面モデルのフォントの種類とサイズを用いて、照合用画面構成要素モデル候補の表示文字列を描画した画像(以下、「照合候補テンプレート画像」と表記)を生成し(ステップS606)、見本画面モデルの導出において、固定値画面構成要素モデルの「照合成功率」と「照合評価値」を算出する際に用いたものと同じ、画像テンプレートマッチング等の画像処理技術を使用し、処理対象画面の画像と、照合候補テンプレート画像とのマッチングを行い、照合用画面構成要素モデル候補の表示文字列の描画領域を特定し(ステップS607)、表示文字列の描画領域を特定できなかったものを照合用画面構成要素モデル候補から除外し(ステップS608)、処理を終了する。
【0303】
一方、識別装置10は、照合用画面構成要素モデル候補が1個以上存在しない場合(ステップS605:No)、処理を終了する。
【0304】
なお、上記のステップS601~S608は、異なる順序、タイミングで実行することもできる。また、上記のステップS601~S608のうち、省略される処理があってもよい。
【0305】
以上の説明においては、本発明装置の構成や処理内容を、実際の使用場面に即して理解しやすいよう、処理対象画面の画像の識別に先立ち、中間データとして「見本画面モデル」「見本の画面構成要素モデル」を作成し、比較に用いる記載としている。しかし、本質的には、処理対象画面の画像と、見本画面およびそれと同等な識別事例画面の画面構成要素オブジェクトの情報を比較するものであり、見本画面モデル、として中間データを作成するかどうかや、それを行う導出部152aの存在に限定されるものではない。
【0306】
[第1の実施形態の効果]
第1に、上述した本実施形態に係る識別処理では、アプリケーションの画面の画像と、画面を構成する要素のオブジェクトである画面構成要素オブジェクトに関する情報とを含む第1の画面データ30を識別し、参照する画面データである見本画面データと対応付けた第1の識別結果を出力し、画面の画像を含み、画面構成要素オブジェクトに関する情報を含まない第2の画面データ40を識別し、見本画面データと対応付けた第2の識別結果を出力する。このため、本処理では、仮想化環境において、アプリケーションの画面および画面構成要素の識別と、表示文字列の取得を、識別の動作設定や表示文字列の読取設定の手間をかけることなく、精度よく行うことができる。
【0307】
第2に、上述した本実施形態に係る識別処理では、第2の画面データを識別するのに先立ち、見本画面データおよび第1の識別結果から、見本画面データの画面構成要素オブジェクトのうち、複数の第1の画面データに共通して含まれる共通オブジェクトを特定し、それら共通オブジェクトの描画領域ごとの相対的な配置関係を求め、それらを含む見本画面モデルを導出する導出部。このため、本処理では、さらに、仮想化環境において、アプリケーションの画面および画面構成要素を精度よく識別し、自動操作エージェントや作業分析ツールに利用することができる。
【0308】
第3に、上述した本実施形態に係る識別処理では、画面構成要素オブジェクトに関する情報を用いて同等性を判定することによって、第1の文字列および第1の文字列を属性としてもつ画面構成要素オブジェクトの描画領域を含む第1の画面データ30を識別し、同等性を有すると判定した見本画面データごとに画面構成要素オブジェクトを対応付けた第1の識別結果を出力し、複数の第1の識別結果を含む識別事例を用いて、第1の文字列の描画領域ごとの相対的な配置関係を含む見本画面モデルを導出し、第2の画面データに対して光学文字認識処理を用いて画面の画像から第2の文字列および第2の文字列の描画領域を特定し、第2の文字列の描画領域ごとの相対的な配置関係を決定し、第2の文字列の描画領域および第2の文字列の描画領域ごとの相対的な配置関係に基づいて第2の画像データ40を識別し、見本画面モデルごとに画面構成要素オブジェクトと対応付けた第2の識別結果を出力する。このため、本処理では、さらに、非仮想化環境および仮想化環境において、アプリケーションの画面および画面構成要素を精度よく識別し、自動操作エージェントや作業分析ツールに利用することができる。
【0309】
第4に、上述した本実施形態に係る識別処理では、識別事例に含まれる見本画面データの画面構成要素オブジェクトのうち、複数の第1の画面データに共通して含まれ、同一の文字列を有する固定値オブジェクトを特定し、見本画面モデルを導出する。このため、本処理では、さらに、非仮想化環境および仮想化環境において、アプリケーションの画面および画面構成要素を精度よく、かつ効果的に識別し、自動操作エージェントや作業分析ツールに利用することができる。
【0310】
第5に、上述した本実施形態に係る識別処理では、見本画面モデルを用いて、第1の文字列の、変動の種類、文字数、文字の種類、フォントの種類、およびサイズのうち少なくとも1つをさらに含む見本画面モデルを導出し、第2の画面データに対して光学文字認識処理を用いて画面の画像から第2の文字列および第2の文字列の描画領域を特定するのに、文字列の、変動の種類、文字の種類、フォントの種類、およびサイズのうち少なくとも1つを用いる。このため、本処理では、さらに、非仮想化環境および仮想化環境において、アプリケーションの画面および画面構成要素を精度よく、かつ効率よく識別し、自動操作エージェントや作業分析ツールに利用することができる。
【0311】
第6に、上述した本実施形態に係る識別処理では、第2の識別結果と、見本画面モデルに含まれる、文字列の、変動の種類、文字数、文字の種類、フォントの種類、およびサイズのうち少なくとも1つに基づき、第2の画面データに含まれる第2の文字列を取得する。このため、本処理では、さらに、非仮想化環境および仮想化環境において、アプリケーションの画面および画面構成要素を精度よく、かつ効率よく識別し、より効果的に自動操作エージェントや作業分析ツールに利用することができる。
【0312】
第7に、上述した本実施形態に係る識別処理では、第2の文字列に関する制約条件と所定の評価関数とを用いて同等性を判定することによって、第2の画像データ40を識別し、見本画面モデルごとに画面構成要素オブジェクトと対応付けた第2の識別結果を出力する。このため、本処理では、さらに、非仮想化環境および仮想化環境において、文字列の描画領域を効果的に利用することによってアプリケーションの画面および画面構成要素を精度よく識別し、自動操作エージェントや作業分析ツールに利用することができる。
【0313】
〔システム構成等〕
上記実施形態に係る図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のごとく構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0314】
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0315】
〔プログラム〕
また、上記実施形態において説明した識別装置10が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。この場合、コンピュータがプログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかるプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。
【0316】
図23は、プログラムを実行するコンピュータを示す図である。
図23に例示するように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有し、これらの各部はバス1080によって接続される。
【0317】
メモリ1010は、
図23に例示するように、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、
図23に例示するように、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、
図23に例示するように、ディスクドライブ1100に接続される。例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、
図23に例示するように、例えば、マウス1110、キーボード1120に接続される。ビデオアダプタ1060は、
図23に例示するように、例えばディスプレイ1130に接続される。
【0318】
ここで、
図23に例示するように、ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、上記のプログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えば、ハードディスクドライブ1090に記憶される。
【0319】
また、上記実施形態で説明した各種データは、プログラムデータとして、例えば、メモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出し、各種処理手順を実行する。
【0320】
なお、プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してCPU1020によって読み出されてもよい。あるいは、プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【0321】
上記の実施形態やその変形は、本願が開示する技術に含まれると同様に、請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0322】
10 識別装置
11 入力部
12 出力部
13、21 通信部
14 記憶部
14a 画面データ記憶部
14b 処理結果記憶部
14c 識別情報記憶部
14d 第1識別結果記憶部
14e 識別事例記憶部
14f 画面モデル記憶部
14g 描画領域記憶部
14h 配置関係記憶部
14i 第2識別結果記憶部
15、22 制御部
151 第1画面データ制御部
151a 第1識別部
151b 第1取得部
152 画面モデル制御部
152a 導出部
153 第2画面データ制御部
153a 第2識別部
153b 第2取得部
20 自動操作エージェント装置
30 オブジェクト情報付き画面データ(第1の画面データ)
40 オブジェクト情報なし画面データ(第2の画面データ)
100 識別システム