(57)【要約】【課題】画像領域分割パターンごとにハードコーディングすることなく、多様な適用画像や多様な利用目的に共通化された処理で対応することを可能とする。【解決手段】入力画像データに対して、該画像内部の領域を分割した分割矩形データを出力する画像領域分割装置において、分割矩形と分割レイヤと画像断片とを要素とする画像領域分割ルールデータを作業データ蓄積部２に蓄積しておき、分割エンジン１により、作業データ蓄積部２から入力画像データに対応する領域分割ルールデータを読み出し、読み出した領域分割ルールデータと入力画像データから制約モデルデータを生成し、生成した制約モデルデータを制約ソルバ３に与えて最小解探索を実行させ、最小解探索の結果として得られた解データを分割矩形データに変換する。【選択図】図１
2014013490.tif 000002
【特許請求の範囲】
【請求項１】
画像データを入力とし、予め指定された画像領域分割ルールデータを参照することによって当該画像データを領域分割し、その領域分割した分割矩形データを出力する画像領域分割装置であって、
ユーザの操作に基づきルールエディタによって作成・編集され、又は外部のモジュールによって自動的に生成された画像領域分割ルールデータを蓄積する画像領域分割ルールデータベースと、与えられた制約充足問題に対応する充足解を探索する制約ソルバと、画像領域分割エンジンとを少なくとも備え、
前記画像領域分割エンジンは、
画像領域分割処理の開始命令が、上位装置から自動的に発行されたのを契機に、あるいは上位装置を通してユーザから明示的に指示されたのを契機に処理を開始し、
入力された分割対象画像データを上位装置から受け取り、当該分割対象画像データに対応する画像領域分割ルールデータを画像領域分割ルールデータベースから取り出し、当該画像領域分割ルールデータを制約モデルデータに変換し、当該制約モデルデータを制約充足問題として制約ソルバに渡して充足解の探索を命令し、
制約ソルバの探索終了を待機し、探索終了を契機に制約ソルバから返却された前記制約モデルデータに対応する充足解データを画像領域の分割矩形データに変換し、これを上位装置に返却し、もしくは上位装置を通してユーザに提示する、
ことを特徴とする画像領域分割装置。
【請求項２】
上位装置からの分割対象画像データに対応する画像領域分割ルールを画像領域分割ルールデータベースから取り出し、当該画像領域分割ルールから制約ソルバに入力する制約モデルデータを生成する制約モデル生成部と、
制約ソルバからの解探索の実行結果及び／又は制約充足解データを基に、上位装置に返却する、あるいは上位装置を通してユーザに表示する分割成否データ及び／又は分割結果データを生成する充足結果解釈部と、
制約モデル生成部で生成された制約モデルデータを制約ソルバに渡し、制約ソルバから返却される解探索の実行結果及び／又は制約充足解データを受け取り、充足結果解釈部へ渡す、制約ソルバ制御部とを具備する分割エンジンを備えた
ことを特徴とする請求項１に記載の画像領域分割装置。
【請求項３】
分割矩形とレイヤと画像断片とからなる画像領域分割ルールデータを蓄積した画像領域分割ルールデータベースを備え、
制約モデル生成部は、
各分割矩形の初期座標値の大小関係を維持する幾何制約データを生成する画像マッチング部と、
各分割矩形の帰属レイヤの関連を基に上記幾何制約データを所定の範囲で選択的に生成する矩形間制約生成部と、
分割矩形の推奨位置からのずれ、推奨サイズからのずれのそれぞれについて、その推奨値と有効無効の属性を表すフラグ値を基に、ずれの量を解の評価値に反映させる幾何制約データを選択的に生成する矩形内制約生成部と、
分割矩形をテンプレートマッチ対象とするか否かの属性を表すフラグ値とマッチで用いる画像断片を基に、選択的に実際のマッチ処理を行って得られた位置を当該分割矩形の位置と一致させる幾何制約データを生成する評価関数制約生成部とからなり、
充足結果解釈部は、
解が得られたかどうかの成否から分割成否データを生成する分割成否情報生成部と、
得られた充足解データから分割矩形データを生成する分割結果データ生成部とからなる
ことを特徴とする請求項２に記載の画像領域分割装置。
【請求項４】
前記に加え、
ユーザからの操作に従って画像領域分割ルールデータを作成・編集するルールエディタを具備した
ことを特徴とする請求項１乃至３のいずれかに記載の画像領域分割装置。
【請求項５】
ルールエディタは、
図形エディタを模したウィンドウとともに、図形の選択操作によって当該図形の属性値を表示・変更するパネル及び図形とそれが帰属するレイヤとの関係を表示・変更するパネルを少なくとも具備し、前記ウィンドウ上で分割矩形を図形として可視化表示し、前記ウィンドウもしくはパネルに対する入力装置を介したユーザからの操作に応じて画像領域分割ルールデータを編集するルール表示・編集部と、
画像領域分割ルールデータベースに蓄積された画像領域分割ルールデータのうち、入力装置を介してユーザから指定された画像領域分割ルールデータをルール表示・編集部へ送るとともに、ルール表示・編集部により編集された画像領域分割ルールデータを画像領域分割ルールデータベースに追記更新するエディタ制御部とを少なくとも具備する
ことを特徴とする請求項４に記載の画像領域分割装置。
【請求項６】
画像データを入力とし、予め指定された画像領域分割ルールデータを参照することによって当該画像データを領域分割し、その領域分割した分割矩形データを出力する画像領域分割方法であって、
ユーザの操作に基づきルールエディタによって作成・編集され、又は外部のモジュールによって自動的に生成された画像領域分割ルールデータを蓄積する画像領域分割ルールデータベースと、与えられた制約充足問題に対応する充足解を探索する制約ソルバと、画像領域分割エンジンとを少なくとも用い、
前記画像領域分割エンジンにより、
画像領域分割処理の開始命令が、上位装置から自動的に発行されたのを契機に、あるいは上位装置を通してユーザから明示的に指示されたのを契機に処理を開始し、
入力された分割対象画像データを上位装置から受け取り、当該分割対象画像データに対応する画像領域分割ルールデータを画像領域分割ルールデータベースから取り出し、当該画像領域分割ルールデータを制約モデルデータに変換し、当該制約モデルデータを制約充足問題として制約ソルバに渡して充足解の探索を命令し、
制約ソルバの探索終了を待機し、探索終了を契機に制約ソルバから返却された前記制約モデルデータに対応する充足解データを画像領域の分割矩形データに変換し、これを上位装置に返却し、もしくは上位装置を通してユーザに提示する、
ことを特徴とする画像領域分割方法。
【請求項７】
コンピュータを、請求項１乃至５のいずれかに記載の画像領域分割装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データ処理、特に画像データ中から所定の領域を判別して分割する技術に関する。
【背景技術】
【０００２】
＜技術分野の詳細＞
画像マスクツールは、指定された複数の画像データファイルに対して、所定の部分領域を黒色で塗りつぶすなどのマスク処理を施し、変換後のファイルとして出力するアプリケーションプログラム（以下、単にアプリケーション）である。処理対象ファイルの指定、マスクする領域の指定などを対話的に行うアプリケーションも考えられるが、ここでは大量の画像ファイル、多種類の画像内容を扱う最も単純な形態としてバッチツールを想定する。
【０００３】
ここで扱う画像データファイルは、主にＧＵＩ端末上でのユーザの操作の履歴として、蓄積された大量のファイルである。当該ファイルは、別途用意・実行されるプログラム、例えば当該ＧＵＩ端末の常駐サービスやバックグランドアプリケーションとして実行されるエージェントプログラム（以下、単にエージェント）によって生成されることを想定している。エージェントは、ユーザが実施する操作のタイミングごとに、ＧＵＩ端末の画面上の表示内容についてオペレーティングシステム（ＯＳ）を介して画像データとして取得し、ＢＭＰやＰＮＧなどの形式の画像データファイルとして保存していく。
【０００４】
このとき、ＧＵＩ端末の画面上でアクティブなウィンドウの境界枠内の画像内容だけが記録されることを前提としているため、蓄積される画像データの縦横の長さ（画像矩形サイズ）はウィンドウごとに異なり、まちまちである。さらに、ウィンドウがリサイズされた場合は、同じウィンドウに対しても縦横の長さがその前後で異なることとなる。ウィンドウ内のＧＵＩ要素に表示される個人情報を読み取れないようにするためには、テーブル（表形式のＧＵＩ要素）コントロール上の適切な領域をマスクする必要があるが、ウィンドウ左上からの相対座標による矩形を指定しても、リサイズによりずれてしまう場合がある。
【０００５】
また、ここで扱う画像データファイルは、そこに表示されている内容の種類を識別する情報として、所定のファイル名が付与される。当該ファイル名は、画像データの取得時にエージェントがＯＳを介して得られる当該ウィンドウに関する基本的なデータ、例えば当該のウィンドウの属性（ウィンドウタイトル、スタイル、クラス名など）や、それを所有するプロセスの起動ファイル名（プログラム名）によって生成されることを前提としている。エージェントは、取得した属性値をそれぞれ文字列化した上で、所定の順序でハイフン「−」を挟んで連結するなどにより、得られた文字列をそのファイル名として画像データを保存していく。
【０００６】
このとき、記録対象のウィンドウの種類やアプリケーションの種類によって画像内容が異なったり、ユーザの操作（リサイズによるウィンドウ矩形サイズ変化やボタン押下によるアプリケーション内部の状態変化）に伴って表示内容が変化したような場合でも、それらに依存した個別的な情報は記録されないことを前提としている。即ち、蓄積される画像ファイルの識別の手がかりは、全てウィンドウ共通のものしかない。
【０００７】
さらに、アプリケーションの種類によっては、これらの情報を用いた識別では、十分に対処できない場合もある。表計算アプリケーションや文書編集アプリケーションなどのドキュメントデータを扱うウィンドウや、Ｗｅｂブラウザなどのコンテンツ情報を扱うウィンドウは、ウィンドウタイトルが異なっても表示内容がアプリケーションごとに共通的な部分がある一方で、ウィンドウタイトルが同じでも表示内容がドキュメントやコンテンツごとに異なる部分がある（異なるフォルダの同名ドキュメントや異なるサイトの同名コンテンツの場合が存在し得るため）。
【０００８】
本発明の技術背景は、画像マスクツール内部の以下の機能についてである。
【０００９】
１つは入力された画像内容に応じて、マスクをかける領域の位置を決定する機能である。前述した通り、対象とする画像矩形サイズは同一とは限らないため、 相対座標のような単純な指定方法ではずれてしまう場合がある。画像内容に応じて領域の位置を調整・計算する必要がある。
【００１０】
また、１つは入力された画像内容に応じて、マスクをかける領域の有無やマスクパターンの種別を判定する機能である。前述した通り、対象とする画像内容の種類はウィンドウ共通の識別情報と直接的な関連性がないため、ウィンドウタイトルを基にマスクすべき領域の有無とマスクパターンの種別を決定するのでは間違ってしまう場合がある。画像内容そのものの特徴を基にマスクをかける領域の有無やマスクパターンの種別を判定する必要がある。
【００１１】
なお、ここでマスクパターンの種別とは、どのような位置関係にしたがってマスク領域を設定すべきかといった位置調整方法の種類を指すものとする。
【００１２】
≪従来技術≫
＜画像パターン認識についての従来技術＞
〈画像マッチングを使う方法のメリットと課題〉
マスクすべき領域の近傍の画像断片を位置計算のための情報として指定しておき、画像マスクツールの実行時に画像テンプレートマッチングアルゴリズムを使用して、ウィンドウ領域内の相対位置の座標を調整する方法がある。マスク領域の特定に、この画像テンプレートマッチングを応用する方法が容易に創出可能である。
【００１３】
また同様に、ウィンドウ上の特徴的な画像断片をマスク領域の有無やマスクパターンの種別を識別するための情報として指定しておき、画像マスクツールの実行時に画像テンプレートマッチングアルゴリズムを使用して、処理対象の画像内容に画像断片が存在するか否かを閾値判定する方法がある。ウィンドウが画像内容からみて、ある観点で求めているものに該当するか否かの判定に、この画像テンプレートマッチングを応用する方法が容易に創出可能である。
【００１４】
しかし、画像テンプレートマッチングを応用した方法は、画像内容、及びＧＵＩ要素のレイアウトに依存するという課題がある。特定する対象そのものの画像内容についての課題は、サイズ可変（事例：ボタンの認識）に関係する。特定するＧＵＩ要素のレイアウト依存性についての課題は、ＧＵＩレイアウトにおける周辺構造（事例：表の認識）、並びに内部構造（事例：フォームの認識）に関係する。以下ではそれぞれについて事例をあげて具体的に述べる。
【００１５】
〈任意のレイアウトに対応する従来の方法と課題〉
文字領域抽出に制約充足を用いた従来の方法として、非特許文献１に記載の方法がある。当該方法では「文字配置特徴として、文字の近接性、サイズの一致、文字配置の直線性、文字の等間隔配置等が挙げられる。本手法では、これらの特徴の参照を制約充足問題としてとらえ、各特徴を反映した関数を用い」ており、多項式時間では解き難い問題に対して良く用いられる近傍探索法の一般化手法であるシミュレーテッドアニーリング法を用いている。しかしながら、当該文献においては１５要素程度のレイアウトを処理する事例に対しても、多くの計算時間を要するとだけ述べられており、その具体的評価は行われていない。本発明の技術分野で実際に扱う規模のレイアウトを対象とした場合、想定するようなツールとして成立しない程度に計算時間が増大することが課題である。
【発明の概要】
【発明が解決しようとする課題】
【００１６】
＜特定する対象自身の課題（その１：サイズ可変）＞
〈サイズ可変に対する容易に創出可能な方法〉
テンプレートマッチングによる方法の課題の１つは、特定したい操作対象のサイズが可変であると、ウィンドウのリサイズに従って矩形領域が変化してしまう場合に対応できないという課題である。
【００１７】
＜相対位置関係の課題（その１：周辺要素との相対位置関係による位置特定）＞
認識させたい領域が、表の内部のセルのように、表示内容が実行時ごとに変わる場合は、水平方向の位置をカラムヘッダのセルの画像断片のマッチングによって得て、その位置を基準として垂直方向の位置をカラムヘッダからの相対位置の座標によって得ることにより、２つの位置を総合して目的とするセルの位置を得る方法が容易に創出可能である。
【００１８】
しかし、従来の技術では、識別させようとするセルを含む表のカラムのサイズ、順序、内容が変化してしまう場合に対応できないという課題がある。
【００１９】
＜相対位置関係の課題（その２：内部要素同士の相対位置関係による識別）＞
識別させたいウィンドウが占める領域のサイズやそこに表示される情報の種類や量によって内部レイアウトが変わる場合は、それによって影響を受けないウィンドウ画像内部に存在する特徴的な画像断片の存在有無を基に、マスク対象のウィンドウを識別する方法が容易に創出可能である。しかしながら、本来、異なる個体あるいは異なる種類として認識させたいウィンドウが、たまたま同じ画像断片を含んでいた場合にそれを誤認する可能性がある。これに対しては、複数の異なる画像断片の相対的な位置関係を含めた組み合わせによって指定する方法も容易に創出可能である。
【００２０】
しかし、従来の技術では、識別させようとするフォームのアイテムのサイズ、順序、内容ごとにハードコーディングしなければ対応できないという課題がある。なおここで、フォームのアイテムとは、フォームを構成するＧＵＩ要素を指し、例えばラベル、テキストフィールド、コンボボックスなどが該当する。
【００２１】
＜上記課題の解決方法とそれを実現する場合のアーキテクチャの課題＞
この課題を具体的かつ詳細に分析すると、大きく３つのレベルに分けられる。
【００２２】
〈詳細１：ハードコーディングを不要にできない（構造ごとに実装が必要）〉
従来の技術では、上記で挙げた変化に対しては適用対象アプリケーションのＧＵＩレイアウトの仕様に依存した処理が個々に必要であり、共通化する方法は提供されていないという課題があった。
【００２３】
〈詳細２：実装をシンプルにできない（エンジンの仕様が簡潔ではない）〉
上記課題に対する望ましいアプローチとしては、設定パラメータやルールベースの処理エンジンを実現することが考えられる。しかし、一般的に言えることとして、このようなアプローチをとろうとすると、設定やルールの形式が多様になる傾向がある。
【００２４】
従来の技術では、それを処理するエンジンの仕様が複雑化するため、エンジンの開発コストや保守コストが増大するという課題があった。
【００２５】
〈詳細３：一般ユーザ向けにできない（ルール定義の作業が簡単ではない）〉
上記課題に対する望ましいアプローチとしては、特定や識別のためのルールを定義（作成・編集）する場合に、様々な入力画像の様々な相対位置変化に対して、本来意図した結果を得られるように複雑なルール形式を採用することが考えられる。しかし、一般的に言えることとして、このようなアプローチをとろうとすると、ルールの入力方法の習得が必要になるため、使用できるユーザが限定されてしまう課題があった。
【課題を解決するための手段】
【００２６】
＜全体アーキテクチャ＞
本発明は、
画像データを入力とし、予め指定された画像領域分割ルールデータを参照することによって当該画像データを領域分割し、その領域分割した分割矩形データを出力する画像領域分割装置であって、
ユーザの操作に基づきルールエディタによって作成・編集され、又は外部のモジュールによって自動的に生成された画像領域分割ルールデータを蓄積する画像領域分割ルールデータベースと、与えられた制約充足問題に対応する充足解を探索する制約ソルバと、画像領域分割エンジンとを少なくとも備え、
前記画像領域分割エンジンは、
画像領域分割処理の開始命令が、上位装置から自動的に発行されたのを契機に、あるいは上位装置を通してユーザから明示的に指示されたのを契機に処理を開始し、
入力された分割対象画像データを上位装置から受け取り、当該分割対象画像データに対応する画像領域分割ルールデータを画像領域分割ルールデータベースから取り出し、当該画像領域分割ルールデータを制約モデルデータに変換し、当該制約モデルデータを制約充足問題として制約ソルバに渡して充足解の探索を命令し、
制約ソルバの探索終了を待機し、探索終了を契機に制約ソルバから返却された前記制約モデルデータに対応する充足解データを画像領域の分割矩形データに変換し、これを上位装置に返却し、もしくは上位装置を通してユーザに提示する、
ことを特徴とする。
【００２７】
＜データ形式＞
本発明は、
上記画像領域分割処理装置の画像領域分割エンジンにおいて、
分割矩形とレイヤと画像断片とからなる画像領域分割ルールデータを参照し、当該画像領域分割ルールデータを基に制約モデルデータを生成するに際し、
分割矩形同士の相対的な位置関係を指定する目的で、各分割矩形の初期座標値の大小関係を維持する幾何制約データを生成し、
分割矩形同士の位置関係の指定の有効範囲を指定する目的で、各分割矩形の帰属レイヤの関連を基に上記幾何制約データを所定の範囲で選択的に生成し、
分割矩形の推奨位置からのずれ、推奨サイズからのずれのそれぞれについて、その推奨値と有効無効の属性を表すフラグ値を基に、ずれの量を解の評価値に反映させる幾何制約データを選択的に生成し、
分割矩形の入力画像内での位置をテンプレートマッチで決定する目的で、当該分割矩形をテンプレートマッチ対象とするか否かの属性を表すフラグ値とマッチで用いる画像断片を基に、選択的に実際のマッチ処理を行って得られた位置を、当該分割矩形の位置と一致させる幾何制約データを生成する、
ことを特徴とする。
【００２８】
＜ユーザビリティ＞
本発明は、前記に加え、
ユーザからの操作に従って画像領域分割ルールデータを作成・編集するルールエディタを具備し、
当該ルールエディタは、
分割ルールデータを作成・編集する目的で図形エディタを模したウィンドウを具備し、
当該ウィンドウ上で分割矩形を図形として可視化表示し、当該図形に対してマウスによる作成・編集の操作の手段を提供し、
図形の選択操作によって当該図形の属性値を表示・変更するパネルを具備し、
図形とそれが帰属するレイヤとの関係を表示・変更するパネルを具備する、
ことを特徴とする。
【発明の効果】
【００２９】
〈画像領域分割エンジンにより幅広い適用を可能とし、ハードコーディングを回避〉
本発明では、テンプレートマッチングの画像断片や、矩形領域の間の相対位置関係を、画像領域分割ルールデータの形式で画像領域分割エンジンに与えることで、画像領域分割パターンごとにハードコーディングするのではなく、多様な適用画像、多様な利用目的に低コストで対応することで、処理の共通化が可能となる。また、画像領域分割の結果は、マスクしたい領域の特定やマスクパターン種別の判定の両方に共通に利用できる。対応する実施例は以下である。
【００３０】
〈画像マスク処理ツールでの画像マスク処理〉
本実施例では、画像データ以外の付加的な情報、例えば特定のＧＵＩ要素の座標位置やサイズ、キャプション文字列などの属性値を必要としないため、画像マスクツールにおける入力画像に対して、時間的に後の時点で、マスクしたい領域やマスクパターンを任意に変えて実行することができる。即ち、対象のＧＵＩレイアウトや目的とするマスクパターンが変化しても、ルールの追加や差し替えによりハードコーディング無しに対応可能となっている。
〈画像領域分割データのシンプルな形式により単純な処理で複雑な分割指定に対応〉
本発明では、画像領域分割データの形式を、分割矩形とその属性とレイヤとからなるシンプルな基本構成とし、その形式上で制約充足問題における幾何制約を記述可能とし、なおかつ画像領域分割エンジンの機能について画像領域分割データを制約モデルデータに変換する単純な処理とすることで、単純なデータ形式と処理実装で複雑な分割のしかたを処理する系を実現し、エンジンの開発コストや保守コストの低減が可能となる。対応する実施例は以下である。
【００３１】
〈サイズ可変のＧＵＩ要素（ボタンなど）の位置・サイズを特定〉
（実施の形態「ＧＵＩ要素（ボタン）のリサイズ対応」参照）
〈表のカラムとの相対位置関係からセルの位置・サイズを特定〉
（実施の形態「表（テーブル）の構造解析（パーシング）」参照）
〈フォームのラベル同士の相対位置関係から対象ウィンドウかどうかを判定〉
（実施の形態「帳票（フォーム）の構造解析（パーシング）」参照）
〈分割矩形とレイヤの帰属関係により識別パターンを指定〉
（実施の形態「内部要素同士の相対位置関係による識別の処理事例」参照）
以上の実施例では、ＧＵＩの画像においては多くの場合、分割すべき領域が水平辺・垂直辺で構成され、制約を及ぼし合う矩形同士は、互いに包含関係か隣接関係にある（交差関係はない）、という特性を効果的に利用することで、複雑な分割パターンを柔軟に処理可能となっている。
【００３２】
さらに本発明の構成によると、制約モデル上での以下の要素を工夫することで負荷の低減を可能としており、確率的手法や準最適化手法をとらなくても、短い応答時間での処理を可能としている。
【００３３】
（負荷低減の工夫点）
・制約関係を等号・不等号や和・差などの組み合わせとし、制約充足ソルバでの計算負荷を抑制するルール形式としている
・評価関数を位置・サイズの目標値と調整結果とのずれ幅の長さの単純な重み付き総和とし、制約充足ソルバでの計算負荷を抑制するルール形式としている
・探索における分岐の要因を、ずれ幅の長さ（絶対値）に対して、実際のずれ量がプラスかマイナスかに限定し、制約充足ソルバでの探索空間を抑制するルール形式としている
・制約範囲をレイヤとの関係指定、有効フラグ指定、画像断片の指定で記述し、必要な個所のみに制約を効かせる形態としている
〈一般ユーザ向けにルール定義形式を簡単化〉
本発明では、画像領域分割を行う幾何制約を、個々の線分長や点座標に関して定義するのではなく、分割矩形を単位とする位置とサイズに関して定義することにより、ユーザが考慮しなければならない制約の種類や数を少なくし、分割のパターンを１種類の図形（矩形）だけで構成される図により表現することが可能となる。対応する実施例は以下である。
【００３４】
〈マスクルールエディタによりルール定義手段を図形編集の形態で提供〉
本実施例では、画像領域分割データの入力方法として一般の図形エディタを模したルールエディタ機能をユーザに提供し、画像領域分割データ固有の入力方法の習得を不要にすることにより、ユーザビリティを向上し、初心者を含めた幅広いユーザが使用可能となっている。
【図面の簡単な説明】
【００３５】
【図１】本発明の画像領域分割装置の機能構成図
【図２】本発明の画像領域分割装置の動作フローチャート
【図３】画像領域分割エンジンの機能構成図
【図４−１】画像領域分割エンジンの内部の動作フローチャート
【図４−２】画像領域分割エンジンの内部の動作フローチャート
【図４−３】画像領域分割エンジンの内部の動作フローチャート
【図４−４】画像領域分割エンジンの内部の動作フローチャート
【図５】矩形に関する呼称の定義を示す説明図
【図６−１】作業データ蓄積部のデータスキーマを示す説明図
【図６−２】作業データ蓄積部のデータスキーマを示す説明図
【図７】ルールエディタのＧＵＩ画面（メイン）を示す説明図
【図８】ルールエディタのＧＵＩ画面（分割矩形属性編集）を示す説明図
【図９】ルールエディタのＧＵＩ画面（レイヤ編集）を示す説明図
【図１０】ルールエディタのＧＵＩ画面（ルール属性編集）を示す説明図
【図１１】操作対象事例（ボタンのリサイズ）を示す説明図
【図１１−１】操作対象事例（ボタンのリサイズ）を示す説明図
【図１１−２】操作対象事例（ボタンのリサイズ）を示す説明図
【図１１−３】操作対象事例（ボタンのリサイズ）を示す説明図
【図１２】図１１の事例における分割ルールデータを示す説明図
【図１３】操作対象事例（テーブルの構造が含まれるウィンドウ画面）を示す説明図
【図１３−１】操作対象事例（テーブルの構造が含まれるウィンドウ画面）を示す説明図
【図１３−２】操作対象事例（テーブルの構造が含まれるウィンドウ画面）を示す説明図
【図１３−３】操作対象事例（テーブルの構造が含まれるウィンドウ画面）を示す説明図
【図１３−４】操作対象事例（テーブルの構造が含まれるウィンドウ画面）を示す説明図
【図１４】マージンの定義例を示す説明図
【図１５】図１３の事例における分割ルールデータを示す説明図
【図１６】操作対象事例（フォームの構造が含まれるウィンドウ画面）を示す説明図
【図１６−１】操作対象事例（フォームの構造が含まれるウィンドウ画面）を示す説明図
【図１６−２】操作対象事例（フォームの構造が含まれるウィンドウ画面）を示す説明図
【図１６−３】操作対象事例（フォームの構造が含まれるウィンドウ画面）を示す説明図
【図１６−４】操作対象事例（フォームの構造が含まれるウィンドウ画面）を示す説明図
【図１７−１】図１６の事例における分割ルールデータを示す説明図
【図１７−２】図１６の事例における分割ルールデータを示す説明図
【図１７−３】図１６の事例における分割ルールデータを示す説明図
【図１８】画像マスクツールの構成図
【図１９】画像マスク処理ツールの機能構成図
【図２０】画像マスク処理ツールの動作フローチャート
【図２１】マスクルールエディタの機能構成図
【図２２】マスクルールエディタの動作フローチャート
【図２３−１】相対位置関係による識別の事例の説明図
【図２３−２】相対位置関係による識別の事例の説明図
【図２３−３】相対位置関係による識別の事例の説明図
【図２３−４】相対位置関係による識別の事例の説明図
【発明を実施するための形態】
【００３６】
＜画像領域分割エンジンの使用形態＞
図１は画像領域分割エンジン（以下、単に「分割エンジン」）を含む本発明の画像領域分割装置の実施の形態の機能構成を示すもので、本発明の画像領域分割装置は、分割エンジン１とともに、作業データ蓄積部２、制約ソルバ３及び上位機能制御部４を含んで構成される。
【００３７】
ここで、作業データ蓄積部２は、上位装置から上位機能制御部４を通じて入力された画像領域分割ルールデータ（以下、単に「分割ルールデータ」）２１及び分割対象画像データ２２を一時的に蓄積するとともに、分割エンジン１からの分割成否データ２３及び分割結果データ２４を一時的に蓄積し、この際、請求項でいう画像領域分割ルールデータベースを構成する。制約ソルバ３は、与えられた制約充足問題に対応する充足解を探索する周知のもので、分割エンジン１から制約モデルデータ３１を受け取って充足解を探索し、その実行結果を制約充足解データ（得られた場合のみ）３２とともに分割エンジン１へ返却する。上位機能制御部４は、上位装置との間のデータのやり取りを制御するとともに、上位装置からの命令に従って画像領域分割処理を制御する。なお、図示しないが、ユーザの操作に基づき分割ルールデータを作成・編集するルールエディタが上位機能制御部４を通じて接続されているものとする。
【００３８】
分割エンジン１は、上位機能制御部４の制御により画像領域分割の開始時の手続呼び出し及び画像領域分割の終了後の返却値受け取りを実行する。また、分割エンジン１はその内部処理で制約ソルバ３の手続呼び出し及び返却値受け取りを実行する。
【００３９】
また、分割エンジン１は、作業データ蓄積部２に蓄積された分割ルールデータ２１及び分割対象画像データ２２を基に、制約ソルバ３に入力する制約モデルデータ３１を生成する制約モデル生成部機能（制約モデル生成部）１１と、制約ソルバ３から返却された解探索の実行結果及び／又は制約充足解データ３２を基に、分割成否データ２３及び／又は分割結果データ２４を生成する充足結果解釈機能（充足結果解釈部）１２とを備えて構成されている。
【００４０】
図２に分割エンジン１を主体とした本画像領域分割装置の動作フローを示す。
【００４１】
分割エンジン１は上位機能制御部４から呼び出されると、まず、作業データ蓄積部２の分割ルールデータ２１及び画像データ２２を基に制約モデルデータ３１を生成する（ｓ１）。次に制約ソルバ３に制約モデルデータ３１を渡し（ｓ２）、最小解探索を依頼して待機する（ｓ３）。探索終了後、分割エンジン１は制約ソルバ３の解探索の実行結果を取得し（ｓ４）、当該解探索の実行結果を基に分割成否データ２３を生成して作業データ蓄積部２に保持する（ｓ５）。そして、解が得られたか否か（ｓ６）により条件分岐を行い、Ｎｏの場合はそのまま終了する。一方、Ｙｅｓの場合は、まず、制約ソルバ３から制約充足解データ３２を取り出し（ｓ７）、次に制約充足解データ３２を基に分割結果データ２４を生成して作業データ蓄積部２に保持する（ｓ８）。
【００４２】
＜画像領域分割エンジンの内部動作＞
分割エンジン１の詳細な機能構成を図３に示す。分割エンジン１は、前述した制約モデル生成部１１及び充足結果解釈部１２とともに、制約モデル生成部１１で生成された制約モデルデータを制約ソルバ３に渡し、制約ソルバ３から返却される解探索の実行結果及び／又は制約充足解データを受け取り、充足結果解釈部１２へ渡す制約ソルバ制御部１３を備えて構成されている。さらに、制約モデル生成部１１は、画像マッチング部１１ａと、矩形間制約生成部１１ｂと、矩形内制約生成部１１ｃと、評価関数制約生成部１１ｄからとなり、また、充足結果解釈部１２は、分割成否情報生成部１２ａと、分割結果データ生成部１２ｂとからなる。
【００４３】
分割エンジン１の詳細な内部の動作フローを図４−１〜−４に示す。
【００４４】
分割エンジン１は、外部から分割ルールデータ２１及び分割対象画像データ２２を入力として受け取る（ｓ１１）。
【００４５】
まず、分割対象画像データ２２に対し、分割ルールデータ２１に含まれる画像断片オブジェクト２１ｃについてテンプレートマッチング処理を実行し、画像断片の座標位置を計算し、当該画像断片と関連付けられた目標位置Ｘ1t，Ｘ2t，Ｙ1t，Ｙ2tとして記憶する。これは画像マッチング部１１ａで行われる（ｓ１２）。
【００４６】
次に、分割ルールデータ２１を基に制約モデルデータ３１を以下の手順で生成する。
【００４７】
まず、制約モデルデータ３１のコンテナオブジェクトを生成する（ｓ１３）。以下ではこの制約モデルデータのコンテナオブジェクトを単に「モデルオブジェクト」と呼ぶ。
【００４８】
次に、矩形間制約生成部１１ｂを呼び出して以下の処理を行う（ｓ１４）（図４−２）。
【００４９】
各分割矩形ｒ(n)に対応して、その四隅の座標位置Ｘ(2n+0)，Ｘ(2n+1)，Ｙ(2n+0)，Ｙ(2n+1)の制約変数オブジェクト３１ａを生成し、前記モデルオブジェクトに登録する（ｓ３１）。そして各レイヤに対応して、それに属する分割矩形の全ての座標位置をＸ軸方向、Ｙ軸方向それぞれについて初期値でソートし（ｓ３２）、それらの順序が保存されるような不等号制約を与える制約条件オブジェクト３１ｂを生成し、モデルオブジェクトに登録する（ｓ３３，ｓ３４）。
【００５０】
Ｘ軸方向についていえば、あるレイヤＬに属する分割矩形ｒ(1)，ｒ(2)，…，ｒ(n)について、制約変数オブジェクト３１ａの集合｛Ｘ(0)，Ｘ(1)，…，Ｘ(2n+1)｝が得られる。各要素の初期値Ｖをソートした数列Ｖ(f(0))，Ｖ(f(1))，…，Ｖ(f(2n+1))の順序が保存されるような不等号制約
Ｘ(f(0))＜Ｘ(f(1))＜…＜Ｘ(f(2n+1))
の制約条件オブジェクト３１ｂを生成する。ここで、Ｘ(i)の初期値はＶ(i)であり、ソート後のインデックスの順序が保存されるように、下記の疑似コードの要領で制約オブジェクトを生成すれば良い。
for(i＝0;i＜2n+1;i++)｛
makeconstraint "Ｘ(f(i))＜Ｘ(f(i+1))"
｝
但し、Ｖ(f(i))＝Ｖ(f(i+1))の場合は、上記擬似コードの処理の前に予め変数Ｘ(f(i+1))を不等号制約の生成対象から除外し、代わりにＸ(f(i))＝Ｘ(f(i+1))の制約条件オブジェクト３１ｂを生成するものとする。
【００５１】
なおこのとき、個々の分割矩形の内部での辺の位置関係についての条件Ｘ1＜Ｘ2，Ｙ1＜Ｙ2を満たすように、予め初期値が与えられることを保証すれば、辺の位置関係についての条件が制約条件として含まれることになる。初期値に対するこの保証は、ルールエディタにおける入力値チェックにより担保される。また、ここではＸ方向のみについて記載したが、同様の内容をＹ方向についても処理する（ｓ３５〜ｓ３７）。
【００５２】
次に、矩形内制約生成部１１ｃを呼び出して以下の処理を行う（ｓ１５）（図４−３）。
【００５３】
各分割矩形内部での制約条件を生成する。制約モデルデータの生成は、
１．最大サイズのフラグが有効であれば、Ｘmax＞Ｘ2−Ｘ1を生成（ｓ４１，ｓ５１）
２．最小サイズのフラグが有効であれば、Ｘmin＜Ｘ2−Ｘ1を生成（ｓ４２，ｓ５２）
３．推奨サイズのフラグが有効であれば、Ｘpre＝Ｘ2−Ｘ1−Ｄxppを生成（ｓ４３，ｓ５３）
４．推奨位置のフラグが有効であれば、Ｘ1＝Ｘ1p−Ｄx1p，Ｘ2＝Ｘ2p−Ｄx2pを生成（ｓ４４，ｓ５４）
５．当該の分割矩形が画像断片と関連付けられている場合は、Ｘ1＝Ｘ1t，Ｘ2＝Ｘ2tを生成（ｓ４９，ｓ５９）
について行えば良い。
【００５４】
ここで、Ｄxpp，Ｄx1p，Ｄx2pは目的変数であり、これらは制約変数のリストＤlistを作成して追加しておき、制約モデル生成の最後に解全体の最適度を表す目的関数の定義に用いる。また、Ｘ1t，Ｘ2tは先に記憶した目的位置である。これらはテンプレートマッチングの結果、固定的に指定される位置として制約条件オブジェクトとして生成される。また、ここではＸ方向のみについて記載したが、同様の内容をＹ方向についても処理する（ｓ４５，ｓ５５），（ｓ４６，ｓ５６），（ｓ４７，ｓ５７），（ｓ４８，ｓ５８），（ｓ４９，ｓ５９）。
【００５５】
次に、評価関数制約生成部１１ｄを呼び出して以下の処理を行う（ｓ１６）（図４−４）。
【００５６】
前述した制約変数のリストＤlist内の各要素Ｄx1p，Ｄx2p，Ｄxpp，Ｄy1p，Ｄy2p，Ｄyppについてそれぞれ、重みＷdx1，Ｗdx2，Ｗdxpp，Ｗdy1，Ｗdy2，Ｗdypp付きの新たな制約変数を作成し、制約変数のリストＤlist2に追加して（ｓ６１〜ｓ６６，ｓ７１〜ｓ７６）、これらの総和で表される、解全体の最適度を表す目的関数の評価値としての制約変数（制約条件オブジェクト）Ｄallを生成する（ｓ７７）。
Ｄall＝Ｗdx1Σ｜Ｄx1p｜＋Ｗdx2Σ｜Ｄx2p｜＋ＷdxppΣ｜Ｄxpp｜
＋Ｗdy1Σ｜Ｄy1p｜＋Ｗdy2Σ｜Ｄy2p｜＋ＷdyppΣ｜Ｄypp｜
なお、上記において重みＷdx1とＷdx2，Ｗdy1とＷdy2は通常、同じ値である。また、Ｗdx1とＷdy1は、ＸＹ方向について推奨位置の強制力が同じであれば同じ値とすれば良い。さらに、推奨サイズと推奨位置の強制力の比が同じであれば同じ値とすれば良い。以上は評価関数制約生成部１１ｄで行われる。
【００５７】
これらの各処理部は、制約モデル生成部１１として統括されている。
【００５８】
さらに、分割エンジン１は、制約モデル生成部１１で生成した制約モデルデータ３１を制約ソルバ３に入力し、制約ソルバ３を起動するが、このとき、Ｄallが最小となる解を探索するようオプション指定を行う（ｓ１７，ｓ１８）。探索が終了し、制約ソルバ３から探索で解が得られたかどうかの成否（実行結果）及び当該の充足解データ３２を取り出したら、作業データ蓄積部２に設定するためのデータを生成する（ｓ１９）。以上の全体的処理の流れは、制約ソルバ制御部１３で行われる。
【００５９】
分割エンジン１は、分割成否情報生成部１２ａを呼び出し、解が得られたかどうかの成否から分割成否データ２３を生成し、作業データ蓄積部２に登録する（ｓ２０）。そして、分割に成功した場合は、分割結果データ生成部１２ｂを呼び出し、当該の解（制約を充足するよう割り当てられた各変数の値）を基に、分割矩形データ（分割結果データ）２４を生成し、作業データ蓄積部２に登録する（ｓ２１）。
【００６０】
これらの各処理部は、充足結果解釈部１２として統括されている。
【００６１】
＜ルール記述と実行方式＞
〈説明上の用語定義と概念の説明〉
上記＜画像領域分割エンジンの使用形態＞、＜「画像領域分割エンジンの内部動作＞では本発明を具体的に実行する方法を説明したが、本発明の目的である画像領域の分割がこの方法の上で不足なく十分に達成されることを次に説明する。ポイントは、幾何制約条件をシンプルな種類に限定し、制約モデルデータ上の図形要素を単一に限定することによって、ユーザが求める、多様な画像領域分割の方法を制限することなく、同時に制約充足処理の負荷を効果的に低減する点である。
【００６２】
まず、画像領域分割の方法をユーザが指定する場合の考え方の基本要素となる、分割矩形の概念を定義する。図５は矩形に関する呼称の定義を示すもので、同図（ａ）に示すように分割矩形の各頂点のＸ，Ｙ座標を
（Ｘ1，Ｙ1）左上，（Ｘ1，Ｙ2）左下，
（Ｘ2，Ｙ2）右下，（Ｘ2，Ｙ1）右上
のように表す。
【００６３】
また、同図（ｂ）に示すように矩形の四辺を左辺、右辺、上辺、下辺と呼び、左辺と右辺のことを垂直辺、上辺と下辺のことを水平辺と呼ぶこととする。垂直辺の両端の頂点は共通のＸ座標値を有する。同様に水平辺の両端の頂点は共通のＹ座標値を有する。即ち、同図（ｃ）に示すように
Ｘ1：左辺のＸ座標上の位置
Ｘ2：右辺のＸ座標上の位置
Ｙ1：上辺のＹ座標上の位置
Ｙ2：下辺のＹ座標上の位置
ということがいえる。
【００６４】
分割矩形は初期状態における相互の位置関係について、以下の条件を満足する範囲で座標値を移動できると考え（矩形間制約生成部１１ｂで扱われる）、後述するそのほかの制約条件を考慮しながら（矩形内制約生成部１１ｃで扱われる）、最も評価値の高い（即ちＤallが小さい）位置関係を計算し（評価関数制約生成部１１ｄで扱われる）、これを画像領域分割の結果として出力する。
【００６５】
まず、矩形間制約生成部１１ｂでは、分割矩形の相互の座標値によって以下の条件を満足するものとする。
【００６６】
分割矩形の左辺と右辺は初期状態の順序関係から入れ替わらないものとする。同様に上辺と下辺は入れ替わらないものとする。即ち、１つの矩形において相対する辺の間には、
Ｘ1＜Ｘ2，Ｙ1＜Ｙ2
の関係が常に成り立つものとする。
【００６７】
同じレイヤに所属する分割矩形間には以下の関係がある。
【００６８】
矩形Ａの垂直辺と矩形Ｂの垂直辺は初期状態の順序関係から入れ替わらないものとする。同様に矩形Ａの水平辺と矩形Ｂの水平辺は入れ替わらないものとする。即ち、矩形Ａの垂直辺の座標位置をＸａ、矩形Ｂの垂直辺の座標位置をＸｂとすると、
Ｘａ＜Ｘｂ
の関係が常に成り立つものとする。
【００６９】
なおここで、垂直辺とは、Ｘa1，Ｘa2，Ｘb1，Ｘb2の４辺の全てをさし、初期状態の順序関係が例えば、Ｘa1＜Ｘb1＜Ｘb2＜Ｘa2の場合は、領域分割結果においてもこの関係を維持するように位置を調整する。２矩形間の位置関係としては、外にＸa1＜Ｘb1＜Ｘa2＜Ｘb2，Ｘa1＜Ｘa2＜Ｘb1＜Ｘb2，Ｘb1＜Ｘa1＜Ｘa2＜Ｘb2，Ｘb1＜Ｘa1＜Ｘb2＜Ｘa2，Ｘb1＜Ｘb2＜Ｘa1＜Ｘa2があり、全部で６通りとなる。
【００７０】
任意数の矩形間の位置制約は、上記と同様の考え方で位置を調整する。実際の分割矩形をユーザが意図したように位置調整させるには、単純に上記を適用するのでは制約が強すぎ、単純な領域パターンしか扱うことができない。そこで、上記をユーザが指定した矩形グループに対して適用するようにしたのがレイヤの考え方である。各矩形は任意数のレイヤに所属できるようにすることで、複雑な相互位置制約を定義することができる。
【００７１】
以上は、後述の〈位置前後関係制約〉に対応する。
【００７２】
一方、矩形内制約生成部１１ｃでは、
１．矩形のサイズの最大最小．〈サイズ制限制約〉に対応
２．矩形のサイズの推奨値．〈サイズ推奨制約〉に対応
３．矩形の位置の推奨値（初期位置からの移動量）．〈位置推奨制約〉に対応
４．矩形の位置の固定値
の調整要素が扱われる。
【００７３】
これら、矩形間制約と矩形内制約は、一見アドホックな制約を選択したように見えるが、分割矩形の考え方を制約モデルとして表現する上で必要な条件を網羅している。これは次のように考えると明らかである。矩形については、位置とサイズの２つの観点がある。各観点について、固定値指定、最大最小指定、推奨値指定の３種類のカテゴリが考えられ、以下に示すように漏れなく対応している。
【００７４】
位置―固定値指定：
「４．矩形の位置の固定値」
位置―最大最小指定：
矩形同士の位置関係指定により同等の指定が可能
位置―推奨値指定：
「３．矩形の位置の推奨値」
サイズ―固定値指定：
「１．矩形のサイズの最大最小」で最大＝最小の指定が可能
サイズ―最大最小指定：
「１．矩形のサイズの最大最小」
サイズ―推奨値指定：
「２．矩形のサイズの推奨値」
また、各観点、各指定カテゴリには、有効・無効の切り替えの概念があることで、ユーザの指定方法の自由度が高くなる。それぞれについては、以下に示すように漏れなく対応している。
【００７５】
位置―固定値指定の有効無効：
分割矩形と画像断片の対応の有無により指定が可能
位置―最大最小指定の有効無効：
矩形同士の位置関係とレイヤの帰属関係により同等の指定が可能
位置―推奨値指定の有効無効：
位置推奨値フラグにより指定が可能
サイズ―固定値指定の有効無効：
サイズ―最大最小を最大＝最小とするか否かで指定が可能
サイズ―最大最小指定の有効無効：
サイズ最大最小フラグにより指定が可能
サイズ―推奨値指定の有効無効：
サイズ推奨値フラグにより指定が可能
幾何制約で一般的に指定可能な方法については、上記を組み合わせて代用可能である。事例を以下に示す。
【００７６】
位置の固定値を絶対座標で指定する：ウィンドウ４隅の画像断片を作成し、これと外接する矩形を定義する。左上を原点とするのであれば、この左上隅に内接する別の矩形を作成し、サイズの固定指定をすれば、右下隅の位置が当該の指定に相当する。なお、これらが所属する新たなレイヤを作成し、この中で矩形間制約が働くようにすれば、他の矩形の制約に影響を及ぼすことはない。一般的な幾何制約では絶対座標系や相対座標系を導入し、専用の制約指定を行うが、その必要がない。
【００７７】
２矩形間の横方向の距離の推奨値を指定する：矩形Ａ，Ｂの互いに近い側の垂直辺に接する別の矩形Ｃを作成し、Ｘ方向のサイズの推奨指定をすれば、矩形Ａ，Ｂに働く制約が当該の指定に相当する。なお、矩形Ａ，Ｂ，Ｃが所属する新たなレイヤを作成し、この中で矩形間制約が働くようにすれば、Ａ，Ｂが関係する他の矩形との制約に影響を及ぼすことはない。一般的な幾何制約では寸法や距離の要素を導入し、この要素のためのルールデータ形式の拡張やルール入力手段の提供を行うが、その必要がない。
【００７８】
以下では、上記の考え方を基に、具体的な分割ルールデータの定義形式（データ定義）、分割ルールデータの定義方法（作成・編集手段）を説明する。
【００７９】
＜画像領域分割ルールデータの概要＞
分割ルールデータ２１は、分割矩形情報（オブジェクト）２１ａ、分割レイヤ情報（オブジェクト）２１ｂ及び画像断片情報（オブジェクト）２１ｃを要素とする。
【００８０】
分割ルールデータ２１上で中心的役割をはたすのは、分割矩形情報２１ａである。分割矩形情報２１ａは、
・分割矩形は外形（四隅の座標位置）について初期座標を指定する、
・分割矩形は外形（四隅の座標位置）について推奨座標を指定できる、
・各推奨座標については、有効フラグが設けられ有効無効を指定する、
・分割矩形はサイズ（縦と横の寸法値）について長さの最大値、最小値、推奨値を指定できる、
・各長さの最大値、最小値、推奨値については、それぞれ有効フラグが設けられ有効無効を指定する、
という属性値を有し、ユーザが指定する。
【００８１】
また、分割ルールデータ２１の要素の種類間は、
・分割矩形情報は１つ以上の分割レイヤ情報と対応づけられる、
・分割矩形情報は０又は１つの画像断片情報と対応づけられる、
という関係を有し、ユーザが指定する。
【００８２】
＜分割ルールデータによる領域分割の指定方法＞
〈ユーザの操作方法と操作画面〉
ユーザは、複数の分割矩形オブジェクトを対話的図形編集パネル上で生成して配置し、分割エンジン１に出力させたい分割の内容を指定する。このとき、編集パネルの背景に分割対象のキャプチャ画像を表示することで、実際のウィンドウの画像を基に直感的に分割矩形を配置し、指定内容を吟味することができる。ここでの配置情報は、分割矩形の外形初期値、外形推奨値として保持する。また、外形初期値と外形推奨値は後述するように実際上、別々に入力する必要性は低いので、デフォルトで同一の値として扱うことで編集を効率化・簡略化することができる。必要な場合は所定のチェックボックスをオンに設定すると、外形初期値と外形推奨値がそれぞれ異なる色の矩形で表示され、図形的に同時に閲覧できるとともに、それらに対して対話的図形編集を行うことで直感的に値を設定することができる。
【００８３】
ユーザは、対話的図形編集パネル上で分割矩形を選択し、詳細表示パネル上で外形とサイズに関する各種の属性値を閲覧・編集する。このとき、分割矩形を選択した上で定められたアクション（詳細表示ボタンを押下、あるいはマウスボタンのダブルクリックなど）を契機に詳細表示パネルを開くことができる。また、詳細表示パネル上での閲覧・編集を補助する機能として、所定のチェックボックスをオンに設定すると、最大矩形、最小矩形、推奨矩形がそれぞれ異なる色の矩形で表示され、図形的に同時に閲覧できるとともに、それらに対して対話的図形編集を行うことで直感的に値を設定することができる。
【００８４】
ユーザは、対話的図形編集パネル上でのレイヤ表示機能により、分割矩形とレイヤの関係を閲覧・編集し、指定する。新しいレイヤの生成や不要な画像断片の削除もこの中で行う。
【００８５】
ユーザは、対話的図形編集パネル上での画像断片操作機能により、分割矩形と画像断片の関係を閲覧・編集し、指定する。新しい画像断片の生成や不要な画像断片の削除もこの中で行う。
【００８６】
〈制約モデル生成部（生成機能）〉
分割処理を起動すると、分割エンジン１は分割ルールデータを受け取り、次の処理を行う。
・制約ライブラリ上の制約モデルオブジェクト（制約条件オブジェクトの集合）を生成する。
・上記オブジェクトに対し、分割矩形相互の相対的な位置関係の制約条件オブジェクトを生成・登録する。
・上記オブジェクトに対し、分割矩形自身の推奨される位置の制約条件オブジェクトを生成・登録する。
・上記オブジェクトに対し、分割矩形自身の推奨される最大サイズ、最小サイズ、推奨サイズの制約条件オブジェクトを生成・登録する。
【００８７】
〈制約ソルバ制御部（生成機能・解釈機能）、充足結果解釈部（解釈機能）〉
・制約ライブラリ上の制約ソルバオブジェクトを生成する。
・ソルバオブジェクトに対し、制約モデルオブジェクトを登録する。
・ソルバオブジェクトの探索処理を起動し、返却を待機する。
・返却を受け取り、探索の結果として解が得られた場合は、その内容を分割矩形オブジェクトの結果値に反映し、探索結果をtrueにした上で共に返却する。得られなかった場合は、探索結果をfalseにした上で返却する。
【００８８】
＜分割ルールからのオブジェクトの生成処理＞
〈制約モデルオブジェクト（制約条件オブジェクトの集合）の作成〉
分割エンジン１は、分割矩形をＸ方向、Ｙ方向の各座標軸方向について、それぞれ独立に処理する。以下ではＸ方向について記述する。Ｙ方向についても同様の処理が実行される。
【００８９】
〈位置前後関係制約〉
同じレイヤに属する複数の分割矩形同士の初期値における相対位置が保存されるように、相互の位置関係制約を付与する。即ち、それぞれの四隅（矩形がＮ個の場合、合計４×Ｎ個の頂点）の座標値の大小関係（座標軸方向の前後関係）が保存されるように不等号制約条件オブジェクトを生成・登録する。具体的には、
Ｘi＜Ｘj（但し、ＩＸi＜ＩＸjのとき）
の関係の各制約変数に与える。
【００９０】
但し、ＩＸi，ＩＸjはそれぞれＸi，Ｘjの初期値である。ｉ，ｊは初期値におけるＸ座標値によるソートにより得られる順に割り当てられたインデックスであるとすると、Ｘi＜Ｘi+1の制約条件オブジェクトを生成すれば済む。
【００９１】
また、相対位置の特殊な場合として、分割矩形同士の辺が重なる場合もその関係が保存されるように位置関係制約を付与する。即ち、それぞれの四隅（矩形がＮ個の場合、合計４×Ｎ個の頂点）の座標値の同値関係（座標軸方向の重畳関係）が保存されるように等号制約条件オブジェクトを生成・登録する。具体的には、
Ｘi＝Ｘj（但し、ＩＸi＝ＩＸjのとき）
の関係の各制約変数に与える。
【００９２】
〈サイズ制限制約〉
帰属するレイヤに関係なく、全ての分割矩形はそれぞれの単位でサイズに関する制約を付与する。具体的には、それぞれの長さ（Ｘ2−Ｘ1）の最大値、最小値が制限されるように不等号制約条件オブジェクトを生成・登録する。具体的には、
Ｘmax＞Ｘ2−Ｘ1
Ｘmin＜Ｘ2−Ｘ1
の関係を各制約変数に与える。
【００９３】
〈位置推奨制約〉
帰属するレイヤに関係なく、全ての分割矩形はそれぞれ指定された推奨位置にできるだけ近くなるように、自身の位置推奨制約を付与する。具体的には、
｜Ｘ1−Ｘ1p｜＝Ｄx1p
｜Ｘ2−Ｘ2p｜＝Ｄx2p
の関係を各制約変数に与える。Ｄx1p，Ｄx2pは目的変数である。
【００９４】
〈サイズ推奨制約〉
帰属するレイヤに関係なく、全ての分割矩形はそれぞれの単位で指定された推奨サイズにできるだけ近くなるように、自身のサイズ推奨制約を付与する。具体的には、
｜Ｘ2−Ｘ1−Ｘpre｜＝Ｄxpp
の関係を各制約変数に与える。Ｄxppは目的変数である。
【００９５】
〈制約の有効無効フラグ〉
後者３つ（サイズ制限、位置推奨、サイズ推奨）の各制約条件は、働かせないように指定することもできる。ユーザが各制約の有効フラグをfalseに指定した場合、上記制約条件モデル生成において該当する制約オブジェクト生成をスキップする。これにより、個々の分割矩形ごとに、サイズ制限を課さない場合、位置推奨を行わない場合、サイズ推奨を行わない場合のそれぞれを指定することができる。
【００９６】
＜分割ルールのデータ形式＞
以上より、分割ルールのデータ形式は以下のようになる。
【００９７】
１つの分割ルールデータには複数の分割矩形情報、分割レイヤ情報、画像断片情報が含まれる。具体的には、要素の個数に関して
・分割矩形の個数は、１以上システム上限値以下
・分割レイヤの個数は、１以上システム上限値以下
・画像断片の個数は、０以上システム上限値以下
の条件を満たす。
【００９８】
以上の形式、並びに前項までで説明した情報を内部表現したデータ形式（作業データ蓄積部のデータスキーマ）を図６−１，図６−２に示す。ここでは分割エンジンの動作に必要なその外の情報（ルール属性情報、並びに分割対象画像データ、分割成否データ、分割結果データ）も同時に示している。
【００９９】
また、分割矩形情報については、実施例としてのわかりやすさを優先し、以下の点でユーザが指定できる内容を簡略化している。
・分割矩形の外形（四隅の座標位置）の推奨座標の有効無効の指定は、上辺と下辺、右辺と左辺をそれぞれ同一の指定とする。即ち、Ｘ方向・Ｙ方向の単位で指定する。
・分割矩形のＸ2座標の初期値はＸ1座標の初期値にＸサイズ初期値を加えた値として換算する。Ｙ2についても同様に換算する。
・分割矩形のＸ2座標の推奨値はＸ1座標の推奨値とＸサイズ推奨値を加えた値として換算する。Ｙ2についても同様に換算する。
【０１００】
なお、このように指定内容を簡略化しても、ユーザにとって指定できる分割パターンや得られる分割結果が制限されることはない。また、本来の細かい指定をした場合に対して、生成される制約条件の数は本質的に変化しないため、制約ソルバでの計算量が減少するなど機構的に有利に働くこともない。つまり、本発明の構成・動作に関係するものではない。
【０１０１】
＜ルールエディタ（メインウィンドウ）＞
上記の画像領域分割ルールを定義（作成・編集）するための、具体的なユーザの作業は、ルールエディタを起動することで開始できる。これによって、ルール表示・編集のパネルを含むウィンドウが表示される。
【０１０２】
図７にルールエディタのＧＵＩ画面（メイン）の具体例を示す。このパネル上では、分割対象画像が背景となっており、その上でユーザは一般の図形エディタと同様のマウス操作により、分割矩形（図中、破線で示す。）を生成配置・移動・リサイズ・削除することができる。この操作によって分割矩形を分割ルールの一部として入力する。分割矩形をダブルクリックで選択すると、分割矩形のパラメータ編集ウィンドウが開く。分割矩形をシングルクリックで選択すると、既に上記ウィンドウが開いている場合は、その内容が選択しているものについての情報に更新される。
【０１０３】
＜ルールエディタ（パラメータ・フラグの設定パネル）＞
前記分割矩形のパラメータ編集ウィンドウとして、具体的には図８に示す、ルールエディタのＧＵＩ画面（分割矩形属性編集）が提供される。そこでは、前記で指定した分割矩形の属性の閲覧・変更や、画像断片との関連設定などができる。
【０１０４】
まず、分割矩形を選択しているときにウィンドウ内に、サイズの最大値、最小値、推奨値の各パラメータとそれらの有効フラグとが、テキストフィールドやチェックボックスで表示される。同様に推奨の位置座標と初期の位置座標とが表示される。
【０１０５】
また、分割矩形に画像断片を関連付けることができる。これは、「画像断片」項目の有効チェックボックスを選択状態（true）にすることにより、そのとき当該分割矩形が背景画像上において占める領域をイメージデータとして切り出し、その分割矩形のテンプレート（画像断片）として指定できる。ユーザがチェックボックスを解除状態（false）にすることにより、その分割矩形のテンプレートの指定は解除される。
【０１０６】
既に存在する分割矩形の画像断片との関係をユーザが把握できるように、当該分割矩形を選択状態にすると、その関連付け状態によって「画像断片」項目の有効チェックボックスが更新される。また、複数の分割矩形のそれぞれの画像断片を同時に把握できるように、画像断片のイメージを背景画像上の当該分割矩形の内部に表示することが考えられる。さらに、イメージを所定の透明度で表示することにより、背景画像を隠さないようにすることが考えられる。
【０１０７】
また、分割矩形にレイヤを関連付けることができる。これは図７に示したルールエディタのＧＵＩ画面（メイン）における分割矩形テーブルの各項目のレイヤ帰属チェックボックスの状態（選択／解除）を操作することにより指定できる。同様の指定は図９に示す、ルールエディタのＧＵＩ画面（レイヤ編集）におけるウィンドウ内のテーブルでも実施できる。
【０１０８】
＜ルールエディタ（レイヤとの関係設定パネル）＞
前記分割矩形とレイヤとの関係は、具体的には図９のルールエディタのＧＵＩ画面（レイヤ編集）に示すウィンドウ内にリスト表示される。レイヤは下部のボタンにより、追加や削除ができる。リスト上のいずれかのレイヤを選択すると、そのレイヤと関連付けられた分割矩形が画面イメージ上、並びに分割矩形テーブル上でハイライト表示される。逆に画面イメージ上もしくは分割矩形テーブル上のいずれかの分割矩形を選択すると、その矩形と関連付けられたレイヤがレイヤリスト上でハイライト表示される。
【０１０９】
ユーザはレイヤリスト上のチェックボックスを設定したり解除したりすることで、現在選択中の分割矩形がどのレイヤに属するかを変更できる。上記操作を組み合わせて表示内容を対話的に確認することで、ある分割矩形と同じレイヤに属する分割矩形がどれかを確認したり、任意の複数の分割矩形がどのレイヤを共有しているかを確認したり、といった作業を効率良く行うことができる。
【０１１０】
＜ルールエディタ（ルール属性編集ウィンドウ）＞
ルールエディタ上で編集中のルールについて、属性が存在する。これら属性値を編集するウィンドウとして、具体的には図１０に示すルールエディタのＧＵＩ画面（ルール属性）が提供される。ここでは、ルールを適用するウィンドウを識別するための属性として、タイトル、スタイル、クラスや、当該ウィンドウが属するプロセスのプロセス名（正確には起動プログラムファイルのパス文字列）の値を編集できる。また、ルール適用の際にどれを使用するかをチェックボックスで指定できる。
【０１１１】
なお、ルールエディタの具体的な構成やその動作については、その機能を分割ルールだけでなく、マスクルールにまで拡張したマスクルールエディタとして後述する。
【０１１２】
≪実施例≫
＜ＧＵＩ要素（ボタン）のリサイズ対応＞
〈リサイズするＧＵＩ要素を扱う場合のユーザの操作方法と操作画面〉
ここでは図１１に示す操作対象事例（ボタンのリサイズ）、即ちＧＵＩの１要素であるボタンコントロールに対して、領域分割により矩形位置の特定を行う事例を考える。画像テンプレートマッチングのアルゴリズムをボタンコントロールの画像に単に適用するだけでは、予め矩形の大きさが固定的に分かっている場合にしか適用できない。
【０１１３】
図１１−１に示すように、ボタンコントロールの４隅の画像1101，1102，1103，1104とボタンキャプション（文字列「Button1」）の画像1105との５つの画像断片の位置関係を定義することにより、矩形の大きさが変化した場合にも対応できる。具体的には、４隅の画像断片に外接する分割矩形1106を定義し、その領域にキャプションの画像断片が内包される位置関係を与える。
【０１１４】
これにより、例えば図１１−２に示すように、ウィンドウのリサイズを行った場合もボタンが存在する領域を識別することができる。なお、当該ウィンドウでは「Button2」のボタンコントロールがディスエーブル（無効）の状態で、描画された画像の色が「Button1」と異なるため、画像断片はテンプレートマッチされない。
【０１１５】
しかし、図１１−３に示すように「Button2」がイネーブル（有効）の状態に変化した場合、４隅に相当する画像断片がどちらのコントロールにマッチするかは不定である。ここで、キャプションの画像断片をルールに含める理由は、実用における信頼性を高めるためである。つまり、キャプションに相当する画像断片は「Button1」にはマッチするが、「Button2」にはマッチしないため、当初与えたルールの５つの画像断片の位置関係を満足するのは、「Button1」を特定できた場合だけであることが保証される。
【０１１６】
なお、この例において、ルールに適合した場合はButton1を特定できたことを保証できるが、その逆はいえない。ルールに適合しない場合、Button1が存在しないことを保証するためには、テンプレートマッチングアルゴリズムにおいて複数のマッチング候補を列挙する必要があり、本発明の範囲を超える要件である。ルール中に含まれる５つの画像断片へのマッチ領域が存在しながら、所定の位置関係を満足しない場合、Button1が存在するか存在しないかは不明な状況にあることだけがいえる。実用的には、判定結果不明の旨の実行ログを画像分割処理装置が出力し、ユーザが画像マスク処理ツールのバッチ実行の後で目視確認を行うなどの対応が考えられる。
【０１１７】
以上の事例における、分割ルールのデータ内容を図１２に示す。
【０１１８】
＜表（テーブル）の構造解析（パーシング）＞
〈表を扱う場合のユーザの操作方法と操作画面〉
ここでは図１３に示す操作対象事例（テーブルの構造が含まれるウィンドウ画面）、即ちウィンドウ画面上の表（テーブル）に対して画像領域分割を行い、所定のセル単位で分割矩形を対応付けることによってテーブル内容のパーシングを行う事例を考える。
【０１１９】
〈表（テーブル）（カラムの増減，位置変化）への適用〉
本発明の技術では、図１３−１に示すようにテーブルの四隅の画像断片1301，1302，1303，1304を用いて、まず全体的な位置決めを行うため、サイズや相対位置が実行時に変化しても適切に対応できる。具体的には、四隅の画像断片に外接する分割矩形1305を定義することで、テーブル全体の領域を識別することができる。より厳密には、内側にＧＵＩレイアウトで指定された所定のマージンをとった領域を定義する必要があるが、これには図１４に示すようなマージンの定義例を用いることで対応することができる。つまり、図１３−４に示すように矩形1317，1318，1319，1320を定義し、さらに分割矩形1305とそれらが共通に帰属するレイヤを定義することで対応することができる。
【０１２０】
また、図１３−２に示すようにテーブルのヘッダの各カラムタイトルの画像断片1306，1307，1308，1309，1310を用いて、表のカラム方向の位置決めを行うため、注目しないカラムが挿入・削除されたり、注目するカラムの順序が変化したりしても、適切に対応できる。具体的には、前記の全体領域の矩形に高さ方向で内接し、注目するカラムに幅方向で外接するような、マスク領域1311を定義することで特定のカラムに表示された個人情報だけを隠蔽することができる。
【０１２１】
そして、図１３−３に示すように列方向に複数個の分割矩形を配置しておくことで、セルのＹ方向の位置を識別させることができる。具体的には、前記のカラムマスクを「伝票番号」カラムに対して定義（1312）し、それに内包される文字列画像「※」に相当する画像断片1314を定義し（ここではマスクするべき重要な顧客の伝票番号の末尾に「※」が表示されるシステム仕様を想定）、さらにそれに外接する、高さサイズが固定（ここではセルの高さと同じ１０ピクセル）で幅方向が表の全体領域に内接する分割矩形1315を作成し、隠したいセルが存在する列方向の基準を定義する。これとは別に「項目３」のカラムマスク1313を定義し、これと列方向の基準分割矩形の両方に内接する分割矩形1316を定義することによって、セルの位置に相当する領域を特定できる。
【０１２２】
以上の事例における、分割ルールのデータ内容を図１５に示す。
【０１２３】
＜帳票（フォーム）の構造解析（パーシング）＞
（テーブルに関する記述と同じ内容を一部再掲）
ここでは図１６に示す操作対象事例（フォームの構造が含まれるウィンドウ画面）、即ちウィンドウ画面上の帳票（フォーム）に対して画像領域分割を行い、所定のテキストフィールド単位で分割矩形を対応付けることによってフォーム内容のパーシングを行う事例を考える。
【０１２４】
〈帳票（フォーム）（フォーム要素の増減、位置変化）への適用〉
本発明の技術では、図１６−１に示すようにフォームを含むウィンドウの四隅の画像断片を用いて、まず全体的な位置決めを行うため、サイズや相対位置が実行時に変化しても、適切に対応できる。具体的には、４隅の画像断片1601，1602，1603，1604に外接する分割矩形を定義し、これにＧＵＩレイアウトで指定された所定のマージンをとった領域がフォーム全体の外接矩形に相当すれば、それを分割矩形1605として定義することで、フォーム全体の領域を識別することができる。
【０１２５】
また、図１６−２に示すようにフォームのアイテムの各ラベルの画像断片1606，1607，1608，1609，1610，1611，1612，1613を用いて、フォームの縦方向の位置決めを行うため、注目しないアイテムが挿入・削除されたり、注目するアイテムの順序が変化したりしても、適切に対応できる。
【０１２６】
具体的には、他の画像上のフォームが同じアイテムの画像断片を含んでいたとしても、それぞれにアイテムに相当する矩形とそれらの帰属レイヤの指定を変えることで、意図する要件を定義することができる。例えば、(1) それらの順序が同じかどうかを見るが間に別のアイテムが存在しても同じと識別したい場合は図１７−１に示すデータ内容を、また、(2) 隣接するアイテムの順列に対して同じか否かを識別したい場合は図１６−４に示す分割矩形1615，1616，1617，1618，1619と図１７−２に示すデータ内容を、さらにまた、(3) それらの順序を無視し単に存在するか否かを識別したい場合は図１７−３に示すデータ内容を、それぞれ分割ルールとして作成しておくことで実現できる。
【０１２７】
そして、図１６−３に示すように注目するアイテム単位に横方向に隣接し、かつフォーム全体の中の横方向の所定の範囲に内接する分割矩形1614を配置しておくことで、テキストフィールドの位置をエージェントに認識させることができる。例えば、当該領域の画像断片としてテキストフィールドに文字列が何も表示されていない状態を指定することで、注目するアイテムの値が「」（空文字）となっているウィンドウを識別することができる。仮に他のアイテムの値が「」であっても、注目するアイテムとの位置関係が満足しないため、当該ルールによって誤って識別されることがない。
【０１２８】
但し、本明細書の説明の範囲ではテンプレートマッチが複数候補に対応していないため、「」が複数存在する場合、逆が必ずしも真とはならない。即ち、当該ルールによって検知されなかったとしても、注目するアイテムの値が「」である場合はあり得る。これは本発明の範囲を超える要件である。
【０１２９】
≪画像マスク装置の実施の形態≫
図１８は本発明の画像領域分割装置を応用した画像マスクツールの実施の形態、ここでは表示装置５及び入力装置６を具備する一般的なＰＣ（コンピュータ）７環境において実現した形態を示すもので、本画像マスクツールは、コンピュータ７のオペレーティングシステム８上に実装された画像マスク処理ツール１００及びマスクルールエディタ２００からなり、また、コンピュータ７のハードディスク９上にはマスクルールファイル３１０、バッチ指示ファイル３２０、画像ファイル（マスク前）３３０、実行ログファイル３４０、画像ファイル（マスク後）３５０が蓄積され、オペレータ（ユーザ）は複数の画像ファイル３３０を対象として画像マスクを行う場合に、本画像マスクツールを使用してバッチ指示により一括でマスク処理を行うことができる。
【０１３０】
対象となる画像ファイル３３０は、背景技術の欄で説明したように、ＧＵＩ端末の画面上の表示内容を操作タイミングにおけるアクティブウィンドウごとに画像ファイルとして保存したものである。本実施の形態の用途としては、背景技術の欄で説明した、ＧＵＩ端末上でのユーザの操作履歴を取得・蓄積するエージェントが生成した画像ファイルを想定しているが、その他の用途にも適用が可能である。
【０１３１】
市場向けの販売や企業内の業務使用のために開発されたアプリケーションやシステム（クライアントプログラム）を想定すると、他の用途としては、以下のようなものが考えられる。例えば、開発プロセスの試験工程において、テスト実施者がエビデンスとして取得した実行画像ファイルをマスク処理する場合である。あるいは、操作マニュアルや業務マニュアルの作成において、マニュアル作成者が実物のプログラムを基に画像素材として取得した実行画像ファイルをマスク処理する場合である。あるいは、プログラム使用者が作業の実施証跡として取得した実行画像ファイルをマスク処理する場合である。
【０１３２】
画像マスク処理ツール１００の使用に当たっては予めマスクルールファイルを定義しておき、それをバッチ指示で参照する必要がある。そのために、適用対象画像の代表事例をサンプルとしてマスクルールエディタ２００を起動し、そのエディタ上でルールを作成・編集して、マスクルールファイル３１０として保存する。
【０１３３】
＜画像マスク処理ツール＞
画像マスク処理ツール１００の機能構成を図１９に示す。画像マスク処理ツール１００の内部には、分割エンジン１１０が含まれ、当該分割エンジン１１０とツール外部との間のデータ交換のために作業データ蓄積部１２０が配置され、また、その制御下に制約ソルバ１３０が組み合わせられている。また、データ入出力制御と内部処理制御のためにバッチ制御部１４０が配置され、さらにまた、バッチ制御部１４０とハードディスク９上の各ファイル（マスクルールファイルを除く）とのデータ交換のためにバッチ指示読み込み部１５１、対象画像読み込み部１５２、バッチ実行ログ出力部１５３及びマスク画像生成出力部１５４が設けられている。なお、分割エンジン１１０及び制約ソルバ１３０は機能的にそれぞれ、前述した本発明の画像領域分割装置の分割エンジン１及び制約ソルバ３と同一である。
【０１３４】
画像マスク処理ツール１００の動作フローを図２０に示す。
【０１３５】
本ツールが起動されると、バッチ制御部１４０は、バッチ指示読み込み部１５１を介してバッチ指示を読み込み、作業データ蓄積部１２０に保持する（ｓ１０１）。バッチ制御部１４０は、指示内容を参照し、未処理の対象画像が存在するか否か（ｓ１０２）を判定しながら、以下のループ処理を行う。
【０１３６】
まず、画像ファイル３３０から対象画像読み込み部１５２を介して画像を１つ読み込み、作業データ蓄積部１２０に保持し（ｓ１０３）、続いてマスクルールファイル３１０から当該画像に対応するルールを読み込み、作業データ蓄積部１２０に保持し（ｓ１０４）、分割エンジン１１０に処理を依頼する（ｓ１０５）。次に、作業データ蓄積部１２０の分割成否情報を参照し（ｓ１０６）、これをバッチ実行ログ出力部１５３に渡して実行ログファイルを追記更新する（ｓ１０７）。その後、解が得られたか否か（ｓ１０８）を判定し、Ｙｅｓの場合は作業データ蓄積部１２０の分割結果データと入力画像データをマスク画像生成出力部１５４に渡し、出力画像ファイル３５０を生成する（ｓ１０９）。以上の処理を、未処理の対象画像がなくなるまで繰り返し実行する。
【０１３７】
＜マスクルールエディタ＞
マスクルールエディタ２００の機能構成を図２１に示す。マスクルールエディタ２００の内部には、ルール表示・編集部２１０が含まれ、ユーザへの対話的図形エディタを模したＧＵＩを提供する。また、エディタの外部から読み書きするデータを保持するために作業データ蓄積部２２０が配置され、さらにまた、データ入出力制御と内部処理制御のためにエディタ制御部２３０が配置されている。
【０１３８】
マスクルールエディタ２００の動作フローを図２２に示す。
【０１３９】
エディタ２００が起動されると、エディタ制御部２３０は、まず、ダイアログウィンドウを表示し、この上でユーザが画像ファイル（サンプル）３６０とルールファイル３１０を指定し、作業データ蓄積部２２０にデータを保持する（ｓ１１１）。エディタ制御部２３０はこれ以降、ルール表示・編集部２１０を介してユーザとの対話的図形エディタを模したＧＵＩからの入力を受け付け、その編集内容により分岐処理を行う（ｓ１１２）。
【０１４０】
編集内容は、
１．矩形を追加・削除（ｓ１１３）
２．矩形の座標位置を変更（ｓ１１４）
３．レイヤを追加・削除（ｓ１１５）
４．矩形のレイヤへの帰属関係を変更（ｓ１１６）
５．矩形の属性値を変更（ｓ１１７）
の５種類に大別される。
【０１４１】
編集内容ごとに、作業データ蓄積部２２０のルールデータ（分割ルールデータ）２２２が操作される。また、分岐処理において、編集の終了をユーザが指示した（ｓ１１８）場合、エディタ制御部２３０は、上書き保存、別名保存、編集内容破棄、の選択について併せてユーザの指示を促し、必要に応じてルールデータ２２２をルールファイル３１０に追記更新する（ｓ１１９）。
【０１４２】
マスクルールエディタのＧＵＩの実施例を前述した図７〜図１０を用いて説明する。
【０１４３】
エディタは起動時に編集対象のリポジトリファイル及びルールを問い合わせるダイアログウィンドウを表示するなどして、ユーザに指定を促す。図７に示すように、ここで指定されたリポジトリ及びルールを識別する名称がメインウィンドウの左上に表示される。起動後に指定を変更する場合、ユーザは、リポジトリファイルの再度指定をファイルメニューから実行したり、リポジトリ内のルールの再度選択をルール名称テキストフィールドの右横のコンボボタンから実行することができる。
【０１４４】
また、右側の編集対象画像パネルには、編集対象のサンプルとして任意のウィンドウ画像を表示できる。ユーザは、エディタ起動時のダイアログウィンドウか「ウィンドウメニュー」から表示させる画像ファイルを指定できる。
【０１４５】
編集対象のルール内の全ての分割矩形データは左中段の分割矩形テーブルに表示される。また、右側の編集対象画像パネルにも全ての分割矩形データがそれぞれの座標値に応じて可視化表示される。当該パネルの図形の背景に、先に指定した編集対象ウィンドウ画像が表示されるため、ユーザはサンプルの画像内容と分割矩形データとの位置の対応が直接把握でき、図形の編集を直感的に行うことができる。分割矩形テーブル上で任意の行を選択すると、それに対応した図形がハイライト表示され、また、編集対象画像パネル上で図形を選択すると、それに対応した行がハイライト表示される。
【０１４６】
ユーザは当該ウィンドウの「ウィンドウ」メニューから、他の補助ウィンドウを開いてマスクルール（分割ルール）を編集することもできる。即ち、図８に示した分割矩形属性編集ウィンドウを開くことにより、メインウィンドウ上の分割矩形テーブル又は編集対象画像パネル上で選択されている分割矩形についての属性データ等を表示・編集できる。また、図９に示したレイヤ編集ウィンドウを開くことにより、ルール内のレイヤ情報を表示・編集できる。さらに図１０のルール属性編集ウィンドウを開くことにより、現在編集中のルール自体の属性情報を表示・編集できる。
【０１４７】
＜内部要素同士の相対位置関係による識別の処理事例＞
相対位置関係の課題（その２：内部要素同士の相対位置関係による識別）で挙げたマスクパターンの種別の特定について、実際の処理事例を説明する。図２３−１〜−４に示すウィンドウ１〜４に対して、画像マスクツールを適用する場合を想定する。
【０１４８】
従来技術によると、ツールに入力された複数のウィンドウ画像をウィンドウタイトルで識別することが容易に考えられる。実際、図６−１，−２に示した作業データ蓄積部のデータスキーマにおいて、「分割ルールデータ」の「ルール属性情報」のキーバリューセットの形式で、当該ルールに編集対象ウィンドウの属性値などを記憶しておき、さらにウィンドウ画像データのファイル名にウィンドウタイトルなどの属性値を文字列エンコードするなどにより簡易に属性値との対応を保持することで、単純にウィンドウ画像の属性値とルールの属性値が一定の条件を満たすかどうかを基に、適用すべきルールを決定する方法が考えられる。
【０１４９】
しかしながら、図２３−１〜−４に示したウィンドウ１〜４はウィンドウタイトルに編集対象の伝票番号が含まれるため、単純な文字列一致判定では対応できない。また、アプリケーションの仕様に基づいて、ウィンドウタイトルの文字列部分の一致判定や正規表現判定などを用いることで、適合化を図ることは考えられるが、ユーザが通常行うような、ウィンドウの画像の見た目を基にした判断を行うことができれば、よりユーザの認識に近い基準でのルールの記述や判定結果の提示が可能となる。
【０１５０】
これに対して本発明では、ルールをマスク領域の特定用とは別に、ウィンドウ種別の特定用のものを用意し、それらを対象画像に適用してみて、制約条件を満足する解が存在するかどうかで、探しているウィンドウか否かを判定することができる。
【０１５１】
具体的には、図１７−１〜−３についてそれぞれ「１６７２」の画像断片データを除去したもの（分割矩形1614「注目欄」のテンプレートマッチ対象を削除し、座標位置に関する制約を除去したもの）を新たに、ウィンドウ種別特定用ルールとして保持し、対象画像に対して順次適用する。図１７−１は、ウィンドウ１，２について解が存在し、図１７−２は、ウィンドウ１について解が存在し、図１７−３は、ウィンドウ１，２，３について解が存在する。このように、内部要素同士の相対位置関係に関するルールによって画像内容を識別することができる。
【０１５２】
なお、実際に多種類のウィンドウ画像を扱う場合、全く異なるアプリケーションの関係ないウィンドウにまで、全ての種別特定ルールを適用すると処理負荷が大きくなるため、ウィンドウタイトルの部分一致条件として、図１７−１〜−３の種別特定ルールが保持する「タイトル部分文字列」属性に「伝票情報」の値を設定しておき、当該属性値にタイトルが部分一致するウィンドウ画像だけについて、これら種別特定ルールを適用し、厳密な判定をすることが考えられる。しかしながら、この事前処理は従来技術の説明で述べたものと異なり、処理負荷の軽減のためのものであり、仮に実施しなくても処理結果への本質的な影響を及ぼすものではない。
【０１５３】
例えば、ルールセットの開発途中で「タイトル部分文字列」属性に「伝票情報編集」の値を指定すると、ウィンドウ３を事前処理で誤ってフィルタリングで除外してしまうことに気付いたとする（ウィンドウ３ではウィンドウ１や２に対してウィンドウタイトルが異なっているが、マスク対象としては同類と判定させたい。）。この場合、タイトルの判定で自明なフィルタリングだけを行うために、事前処理では「伝票情報」と部分一致するものはフィルタリングで除外しない考え方をとる。これによってフィルタリングは緩くなるが、画像内容で識別する本発明の処理が最終的な判定を行うため、識別結果への影響はない。
【０１５４】
さらに他の例えとして、ウィンドウ４が入力される可能性があっても、本発明の処理によれば画像内容によって正しく識別（ウィンドウ４は探しているウィンドウではないという判定）ができる。タイトルによる判定だけでは、「伝票情報編集」でも「伝票情報」でも正しく判定できない（ウィンドウ４ではウィンドウ１や２に対してウィンドウタイトルに違いがないが、マスク対象としては同類ではないと判定させたい。）。この場合、タイトルによる判定は、それによって自明なフィルタリングを行い処理効率が向上できる場合に利用するという考え方をとる。即ち、ウィンドウ４についてはタイトルによるフィルタリングは通ってしまうが、画像内容で識別する本発明の処理が最終的な判定を行うため、識別結果への影響がない。
【０１５５】
このように本発明に基づいた構成によると、ユーザが識別したい観点を間接的にしか反映しない部分（ウィンドウタイトルがどのような文字列になるかはアプリケーション仕様に依存し、ウィンドウのどの領域をマスクすべきかの種類を直接的には反映していない）は補助的に用い、ユーザが識別したい観点を直接的に反映する部分（ウィンドウ画像内容）を基に判定できるメリットがある。
【０１５６】
なお、本発明に基づいた構成、即ちマスク領域の特定用ルールとウィンドウ種別の特定用ルールの２種類を利用する実装としては、例えば以下が考えられる。まず、各ルールはルール属性「ルールＩＤ」にユニークなＩＤ値を保持し、さらに２種類のいずれかを表すルール属性「ルール種別」に「領域特定」か「種別特定」を保持する。また、各ルールは「条件部ルールＩＤ」と「実行部ルールＩＤ」の属性を保持する。ルール適用処理は、リポジトリの所定のルール優先順位で「条件部ルールＩＤ」が空であるルールデータを取り出し、「ルール種別」が「種別特定」であれば、それを適用した結果によって、「実行部ルールＩＤ」に対応するルールデータを順次取り出して、「領域特定」ルールに到達するまで再帰的に処理を繰り返す。これにより、種別特定と領域特定が組み合わされた複雑な画像内容判定を柔軟に定義・処理することができる。
【０１５７】
なお、本発明の装置はコンピュータとプログラムによっても実現でき、当該プログラムは記録媒体に記録して提供することも、ネットワークを通じて提供することも可能である。
【符号の説明】
【０１５８】
１：画像領域分割エンジン（分割エンジン）、２：作業データ蓄積部、３：制約ソルバ、４：上位機能制御部、５：表示装置、６：入力装置、７：コンピュータ、８：オペレーティングシステム、９：ハードディスク、
１１：制約モデル生成部、１１ａ：画像マッチング部、１１ｂ：矩形間制約生成部、１１ｃ：矩形内制約生成部、１１ｄ：評価関数制約生成部、１２：充足結果解釈部、１２ａ：分割成否情報生成部、１２ｂ：分割結果データ生成部、１３：制約ソルバ制御部、
２１：分割ルールデータ、２２：分割対象画像データ、２３：分割成否データ、２４：分割結果データ、
３１：制約モデルデータ、３２：制約充足解データ、
１００：画像マスク処理ツール、１１０：分割エンジン、１２０：作業データ蓄積部、１３０：制約ソルバ、１４０：バッチ制御部、１５１：バッチ指示読み込み部、１５２：対象画像読み込み部、１５３：バッチ実行ログ出力部、１５４：マスク画像生成出力部、
２００：マスクルールエディタ、２１０：ルール表示・編集部、２２０：作業データ蓄積部、２３０：エディタ制御部、
３１０：マスクルールファイル、３２０：バッチ指示ファイル、３３０：画像ファイル（マスク前）、３４０：実行ログファイル、３５０：画像ファイル（マスク後）、３６０：画像ファイル（サンプル）。
【先行技術文献】
【非特許文献】
【０１５９】
【非特許文献１】行天  啓二、馬場口  登「制約充足型文字領域抽出の基礎検討」、電子情報通信学会技術報告、第９２巻、第４３４号、社団法人電子情報通信学会、１９９３年、第９〜１６頁
【図１】
2014013490.tif 000003
【図２】
2014013490.tif 000004
【図３】
2014013490.tif 000005
【図４−１】
2014013490.tif 000006
【図４−２】
2014013490.tif 000007
【図４−３】
2014013490.tif 000008
【図４−４】
2014013490.tif 000009
【図５】
2014013490.tif 000010
【図６−１】
2014013490.tif 000011
【図６−２】
2014013490.tif 000012
【図７】
2014013490.tif 000013
【図８】
2014013490.tif 000014
【図９】
2014013490.tif 000015
【図１０】
2014013490.tif 000016
【図１１】
2014013490.tif 000017
【図１１−１】
2014013490.tif 000018
【図１１−２】
2014013490.tif 000019
【図１１−３】
2014013490.tif 000020
【図１２】
2014013490.tif 000021
【図１３】
2014013490.tif 000022
【図１３−１】
2014013490.tif 000023
【図１３−２】
2014013490.tif 000024
【図１３−３】
2014013490.tif 000025
【図１３−４】
2014013490.tif 000026
【図１４】
2014013490.tif 000027
【図１５】
2014013490.tif 000028
【図１６】
2014013490.tif 000029
【図１６−１】
2014013490.tif 000030
【図１６−２】
2014013490.tif 000031
【図１６−３】
2014013490.tif 000032
【図１６−４】
2014013490.tif 000033
【図１７−１】
2014013490.tif 000034
【図１７−２】
2014013490.tif 000035
【図１７−３】
2014013490.tif 000036
【図１８】
2014013490.tif 000037
【図１９】
2014013490.tif 000038
【図２０】
2014013490.tif 000039
【図２１】
2014013490.tif 000040
【図２２】
2014013490.tif 000041
【図２３−１】
2014013490.tif 000042
【図２３−２】
2014013490.tif 000043
【図２３−３】
2014013490.tif 000044
【図２３−４】
2014013490.tif 000045