【課題】複数の事前に保存されているアルゴリズムから、画像の仕様にマッチングする1つ以上のアルゴリズムを、処理中に自動的に選択するための方法およびシステムを提供する。
【解決手段】アルゴリズムの選択は、完全に自動的なものであり、複数の機械学習アプローチによって主導される。ここでのシステムは、トレーニングデータを生成するために、複数の画像を前処理するよう構成されている。次に、最も可能性のある処理用アルゴリズムのマッチングを決定するために、テスト画像が抽出、前処理およびマッチングされる。
【発明を実施するための形態】
【0018】
画像処理環境内において1つ以上のアルゴリズムを自動的に選択するためのシステムおよび方法が開示される。
【0019】
実施形態の1つにおいて、画像処理システムは、プロセッサーと、プロセッサーに接続されたメモリーとを含む。プロセッサーは、メモリー内に存在する複数のモジュールを実行する。複数のモジュールは、受信モジュールと、画像処理モジュールと、比較モジュールと、記録モジュールと、マッチングモジュールとを含む。受信モジュールは、少なくとも1つの画像(トレーニング画像)を受信するよう構成されている。画像処理モジュールは、画像を、複数の画像セグメントに分割するよう構成されている。画像処理モジュールは、さらに、複数の画像処理アルゴリズム出力を取得するため、複数の画像処理アルゴリズムから1つ以上の事前に保存されているアルゴリズムを用いて、画像セグメントのそれぞれに対し、画像処理を実行するよう構成されている。一方、比較モジュールは、画像処理アルゴリズム出力のそれぞれを、所定のしきい画像処理出力スコアと比較するよう構成されている。記録モジュールは、画像処理アルゴリズムを、対応する1つ以上の画像セグメントおよび関連特徴ベクトルと併せて、トレーニングペアとして記録するよう構成されている。マッチングモジュールは、送られてくる前処理済みテスト画像(ターゲットとされる画像)のそれぞれに対し、記録されているトレーニングペアから(記録されているトレーニングペアを参照して)、1つ以上の潜在的にマッチングする画像処理アルゴリズムをマッチングするよう構成されている。
【0020】
実施形態の1つにおいて、画像(トレーニング画像)は、画像処理システムによって受信される。受信された画像は、分割用の既知のアルゴリズムを用いて、複数のセグメントに分割される。複数の事前に保存されているアルゴリズムは、この複数のセグメントに適用することができる。さらに、アルゴリズムを実行することによって得られた各結果は、所定のしきい画像処理出力スコアと比較される。次の工程において、所定のしきい画像処理出力スコアを超える画像処理アルゴリズムのそれぞれに対し、画像処理アルゴリズムは、対応する1つ以上の画像セグメントおよびそれらの関連する特徴ベクトルと併せて、トレーニングペアとして記録される。さらに、送られてくる前処理済みテスト画像(ターゲットとされる画像)のそれぞれに対し、トレーニングペアから、1つ以上の潜在的にマッチングする画像処理アルゴリズムが選択される。
【0021】
実施形態の1つにおいて、前処理済みテスト画像は、複数の画像セグメント(テスト画像セグメント)にさらに分割されるテスト画像を受信することによって取得される。その後、複数の特徴(特徴ベクトル)は、前記複数の画像セグメントから抽出される。
【0022】
説明された画像処理環境内において1つ以上のアルゴリズムを自動的に選択するためのシステムおよび方法の様態は、任意の数の異なる演算システム、環境および/または構成によって実施することができるが、実施形態は、以下の例示的なシステムの文脈において、説明される。
【0023】
参照される
図1には、本発明の実施形態に係る画像処理環境内において1つ以上のアルゴリズムを自動的に選択するための画像処理システム102のネットワーク実施100が示されている。実施形態の1つにおいて、画像処理システム102は、画像(トレーニング画像)を受信するよう構成されている。受信された画像は、分割用の既知のアルゴリズムを用いて、複数のセグメントに分割される。複数の事前に保存されているアルゴリズムは、それら複数のセグメントに適用される。さらに、これらアルゴリズムを実行することによって得られた結果のそれぞれは、しきい画像処理出力スコアと比較される。次の工程において、所定のしきい画像処理出力スコアを超える画像処理アルゴリズムのそれぞれに対し、画像処理アルゴリズムは、対応する1つ以上の画像セグメントおよび関連特徴ベクトルと併せて、トレーニングペアとして記録される。さらに、送られてくる前処理済みテスト画像(ターゲットとされる画像)のそれぞれに対し、記録されているトレーニングペアから1つ以上の潜在的にマッチングする画像処理アルゴリズムが選択される。
【0024】
画像処理システム102は、サーバー上に実施されているものとして、本発明は説明されるが、画像処理システム102は、ラップトップコンピューター、デスクトップコンピューター、ノートパソコン、ワークステーション、メインフレームコンピューター、サーバー、ネットワークサーバー等の様々な演算システムにおいて実施してもよいことを理解されたし。画像処理システム102は、以下集合的にユーザー104と称される1つ以上のユーザーデバイス104−1、104−2…104−Nを介したユーザー、またはユーザーデバイス104上に駐在するアプリケーションによってアクセスされてもよいことを理解されたし。これらに限定されるものではないが、ユーザーデバイス104の例として、ポータブルコンピューター、PDA(Personal Digital Assistant)、ハンドヘルドデバイス、ワークステーションが挙げられる。ユーザーデバイス104は、ネットワーク106を介して、画像処理システム102に通信可能に接続されている。
【0025】
実施形態の1つにおいて、ネットワーク106は、無線ネットワーク、有線ネットワークまたはこれらの組み合わせであってもよい。ネットワーク106は、イントラネット、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット等のような異なるタイプのネットワークのいずれか1つとして実施することができる。ネットワーク106は、専用ネットワークまたは共有ネットワークのいずれであってもよい。共有ネットワークは、異なるタイプのネットワークの接続を表す。異なるタイプのネットワークの接続は、例えば、ハイパーテキストトランスファープロトコル(HTTP)、トランスミッションコントロールプロトコル/インターネットプロトコル(TCP/IP)、ワイヤレスアプリケーションプロトコル(WAP)等の様々なプロトコルを使用し、互いに通信を行う。さらに、ネットワーク106は、ルーター、ブリッジ、サーバー、演算デバイス、ストレージデバイス等を含む様々なネットワークデバイスを含んでいてもよい。
【0026】
参照される
図2には、本発明の実施形態に係る画像処理システム102が示されている。実施形態の1つにおいて、画像処理システム102は、少なくとも1つのプロセッサー202と、入出力(I/O)インターフェース204と、メモリー206とを含む。少なくとも1つのプロセッサー202は、1つ以上のマイクロプロセッサー、マイクロコンピューター、マイクロコントローラー、デジタル信号プロセッサー、中央演算装置(CPU)、状態機械(state machine)、論理回路および/または操作命令に基づいて信号を操作する任意のデバイスとして、実施することができる。他の機能として、少なくとも1つのプロセッサー202は、メモリー206内に保存されているコンピューター可読命令をフェッチ(fetch:メモリーから命令を持ってくること)および実行するよう構成されている。
【0027】
I/Oインターフェース204は、例えば、ウェブインターフェース、グラフィカルユーザーインターフェース(GUI)等の様々なソフトウェアおよびハードウェアインターフェースを含む。I/Oインターフェース204は、画像処理システム102が、ユーザーと直接に、または、クライアントデバイス104を介して相互通信することを可能とする。さらに、I/Oデバイス204は、画像処理システム102が、ウェブサーバーや外部データサーバー(図示せず)等の他の演算デバイスと通信することを可能とする。I/Oインターフェース204は、有線ネットワーク(例えば、LANやケーブル等)や無線ネットワーク(WLAN、携帯電話、衛星等)を含む幅広い種類のネットワークおよびプロトコルタイプ内における多重通信を容易とすることができる。I/Oインターフェース204は、多数のデバイスを互いに、または他のサーバーに接続するための1つ以上のポートを含む。
【0028】
メモリー206は、例えば、揮発性メモリー(静的ランダムアクセスメモリー(SRAM)や動的ランダムアクセスメモリー(DRAM)等)および/または不揮発性メモリー(リードオンリーメモリー(ROM)、消去可能プログラム可能ROM、フラッシュメモリー、ハードディスク、光ディスク、磁気テープ等)を含む本分野において既知の任意のコンピューター可読媒体を含む。メモリー206は、モジュール208と、データ210とを含む。
【0029】
モジュール208は、特定のタスクを実行または特定の抽象データタイプ(abstract data type)をインプリメント(implement)するルーティーン(routine:ある限定されたタスクを実行するプログラム)、プログラム、オブジェクト、コンポーネント、データ構造等を含む。実施形態の1つにおいて、モジュール208は、受信モジュール212と、画像処理モジュール214と、比較モジュール216と、記録モジュール218と、マッチングモジュール220と、その他モジュール222とを含む。その他モジュール222は、画像処理システム102のアプリケーションおよびファンクションを補完するプラグラムまたはコード化された命令を含む。
【0030】
特に、データ210は、その他要素の中でも、1つ以上のモジュール208によって、処理され、受信され、生成されたデータを保存するためのレポジトリ(repository:データ、情報、プログラム等を保存するシステム内のデータベース)として機能する。また、データ210は、受信データベース224と、画像処理データベース226と、比較データベース228と、記録データベース230と、マッチングデータベース232と、その他データベース234とを含む。その他データベース234は、その他モジュール222内の1つ以上のモジュールの実行結果として生成されるデータを含む。
【0031】
実施形態の1つにおいて、ユーザーは、I/Oインターフェース204を介して画像処理システム102にアクセスするため、クライアントデバイス104を使用する。ユーザーは、画像処理システム102を使用するため、I/Oインターフェース204を用いて、自身を登録(本人登録)することができる。画像処理システム102の動作は、以下に説明される
図3および
図4において、詳細に説明される。画像処理システム102は、画像処理環境内において1つ以上のアルゴリズムを自動的に選択するために用いることができる。画像処理システム102の実際の動作は、以下のセクションにおいて説明される。
【0032】
参照する
図3には、本発明の実施形態に係る画像処理システム102の詳細な動作を説明するブロック
図300が示されている。
【0033】
実施形態の1つにおいて、モジュール208は、特定のタスクを実行または特定の抽象データタイプをインプリメントするルーティーン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。実施形態の1つにおいて、モジュール208は、受信モジュール212と、画像処理モジュール214と、比較モジュール216と、記録モジュール218と、マッチングモジュール220と、その他モジュール222とを含む。その他モジュール222は、画像処理システム102のアプリケーションおよびファンクションを補完するプログラムまたはコード化された命令を含む。
【0034】
受信モジュール212
実施形態の1つにおいて、受信モジュール212は、処理を施すための複数の画像(トレーニング画像)を受信するよう構成されている。受信モジュール212によって受信された画像は、画像処理システム102と相互通信する様々なデバイス104から取得される。
【0035】
実施例の1つにおいて、受信された画像は、JPEG/JFIF画像、JPEG2000画像、Exif画像、TIFF画像、RAW画像等を含むがこれらに限定されないファイル形式である。
【0036】
実施形態の1つにおいて、受信モジュール212は、デバイス104から、前処理済み画像(ターゲットとされる画像)を受信する。前処理済み画像は、画像(ターゲットとされる画像)から抽出された複数の特徴(特徴ベクトル)を含むがこれに限定されない。
【0037】
実施例の1つにおいて、前処理済み画像は、テスト画像を受信し、受信したテスト画像を複数の画像セグメント(テスト画像セグメント)に分割することによって取得される。複数の画像セグメントは、複数の特徴(特徴ベクトル)を抽出するためにさらに利用される。
【0038】
実施形態の1つにおいて、受信モジュール212に関連するデータは、受信データベース224内に保存される。実施例の1つにおいて、受信データベース224は、処理用に受信された複数の画像と、前処理済み画像と、複数の画像から抽出された複数の特徴を含むがこれに限定されない。
【0039】
画像処理モジュール214
実施形態の1つにおいて、画像処理モジュール214は、受信した画像(トレーニング画像)を複数の画像セグメントに分割するよう構成されている。さらに、画像処理モジュール214は、複数の画像処理アルゴリズム出力を取得するために、複数の画像処理アルゴリズムから1つ以上の事前に保存されているアルゴリズムを、画像セグメントのそれぞれに対して実行するよう構成されている。
【0040】
実施形態の1つにおいて、画像処理モジュール214は、画像処理システム102内に事前に保存されている既知の分割方法を用いて、受信した画像を複数の画像セグメントに分割する。実施例の1つにおいて、既知の分割方法は、しきい値処理方法(thresholding method)、クラスタリング方法(clustering method)、圧縮ベース方法(compression-based method)等を含むがこれに限定されない。
【0041】
実施形態の1つにおいて、複数の画像セグメントは、重複セグメント(overlapping segments)、非重複セグメント(non-overlapping segments)またはこれらの組み合わせを含むがこれに限定されない。これら画像セグメントは、さらに、複数の画像処理アルゴリズム出力を取得するために、複数の画像処理アルゴリズムから1つ以上の事前に保存されているアルゴリズムを用いて、処理される。
【0042】
実施例の1つにおいて、1つ以上の事前に保存されているアルゴリズムは、2値化アルゴリズム、ノイズ低減アルゴリズム、分割アルゴリズム(segmentation algorithms)、文字認識アルゴリズム、ページレイアウト検出、ページレイアウト分割および本分野において既知で既存の任意の画像処理アルゴリズムを含むがこれに限定されない。
【0043】
実施例の1つにおいて、処理によって取得される複数の画像処理アルゴリズム出力は、各領域に対し予測されたアルゴリズムに従って、同じ画像の複数の異なる領域を含んでいてもよい。別の実施例において、複数の画像処理アルゴリズム出力は、画像や、画像に関連する特徴またはパラメーターのセットを含んでいてもよい。
【0044】
実施形態の1つにおいて、画像処理モジュール214に関連するデータは、画像処理データベース226内に保存される。実施例の1つにおいて、画像処理データベース226は、複数の既知の分割方法、複数の画像処理アルゴリズム、複数の画像セグメント等を含むがこれに限定されない。
【0045】
比較モジュール216
実施形態の1つにおいて、比較モジュール216は、画像処理アルゴリズム出力のそれぞれを、所定のしきい画像処理出力スコアと比較するよう構成されている。画像処理モジュール216から取得された出力は、所定のしきい画像処理出力スコアと比較される。
【0046】
実施例の1つにおいて、画像処理モジュール216から取得された出力は、グランドトゥルース(GT (Ground Truth):航空写真のような平面画像に現れる識別対象物の実際のデータ)と比較される。GTは、人手によって注釈を入れられたデータまたは本分野において既知の任意のGT技術を含むがこれに限定されない技術を用いて算出される。
【0047】
実施形態の1つにおいて、比較モジュール216は、所定のしきい画像処理出力スコアを、各トレーニングペア用の特徴であるグランドトゥルースとして決定する。さらに、比較モジュール216に関連するデータは、比較データベース228内に保存される。実施例の1つにおいて、比較データベース228は、画像処理アルゴリズム出力、所定のしきい画像処理出力スコア、グランドトゥルース(GT)等を含むがこれに限定されない。
【0048】
記録モジュール218
実施形態の1つにおいて、記録モジュール218は、比較モジュール216の出力に基づいて、画像処理アルゴリズムを、対応する1つ以上の画像セグメントおよび関連特徴ベクトルと併せて、トレーニングペアとして記録するよう構成されている。
【0049】
実施形態の1つにおいて、画像処理アルゴリズムは、対応する1つ以上の画像セグメントと共に、比較モジュール216から取得される。1つ以上の画像セグメントに関連する関連特徴ベクトルは、各セグメントに対し、画像モーメント特徴を抽出することにより取得される。画像モーメント特徴は、画像セグメントに対応する平均(mean)、分散およびスキュー(skew:画像歪み)を含む。さらに、特徴ベクトルは、各画像セグメント用の画像モーメント特徴に基づいて形成される。特徴ベクトルは、HSV量子化や本分野において既知の任意の技術を用いて取得される。実施例の1つにおいて、長さの特徴ベクトル265は、受信された画像のそれぞれから抽出される。
【0050】
実施形態の1つにおいて、トレーニングペアは、対応する1つ以上の画像セグメントと併せて、画像処理アルゴリズムを含むがこれに限定されない。
【0051】
実施形態の1つにおいて、記録モジュール218に関連するデータは、記録データベース230内に保存される。実施形態の1つにおいて、記録データベース230は、画像処理アルゴリズムを、対応する1つ以上の画像セグメントおよび関連特徴ベクトルと併せて、トレーニングペアとして記録していて(含んでいて)もよく、または、各トレーニングペア用の特徴として決定されたグランドトゥルース(GT)等を記録していてもよいがこれに限定されない。
【0052】
マッチングモジュール220
実施形態の1つにおいて、マッチングモジュール220は、送られてくる前処理済みテスト画像(ターゲットとされる画像)のそれぞれに対し、トレーニングペアから、1つ以上の潜在的にマッチングする画像処理アルゴリズムをマッチングするよう構成されている。前処理済みテスト画像は、テスト画像(ターゲットとされる画像)を受信し、受信したテスト画像を複数の画像セグメント(テスト画像セグメント)に分割することにより取得される。複数の画像セグメントは、複数の特徴(特徴ベクトル)を抽出するためにさらに利用される。
【0053】
実施形態の1つにおいて、セグメントからの複数の特徴は、本分野における当業者によく知られている方法によって抽出される。しかしながら、開示される本発明は、本分野における当業者によく知られている他の画像分割方法を含んでいてもよいことを理解されたし。
【0054】
実施例の1つにおいて、受信された画像は、JPEG/JFIF画像、JPEG2000画像、Exif画像、TIFF画像、RAW画像等を含むがこれに限定されないファイル形式である。
【0055】
実施形態の1つにおいて、画像前処理は、画像処理システム102内またはデバイス104において実行される。
【0056】
実施形態の1つにおいて、マッチングモジュール220に関連するデータは、マッチングデータベース232内に保存される。実施例の1つにおいて、マッチングデータベース232は、前処理済みテスト画像、画像処理アルゴリズム等を含むがこれに限定されない。
【0057】
参照する
図4には、本発明の実施形態に係る画像処理環境内において1つ以上のアルゴリズムを自動的に選択するための方法が示されている。
【0058】
方法400は、コンピューター実行可能命令の一般的コンテキストの形態で説明される。一般的に、コンピューター実行可能命令は、特定の機能を実行または特定の抽象データタイプをインプリメントするルーティーン、プログラム、オブジェクト、コンポーネント、データ構造、プロシージャ(procedure)、モジュール、ファンクション等を含むことができる。また、方法400は、配布された演算環境内において実行される。演算環境内において、機能は、通信ネットワークを介してリンクされたリモート処理デバイスによって実行される。配布された演算環境内において、コンピューター実行可能命令は、メモリーストレージデバイス等のローカルおよびリモートコンピューターストレージ媒体の双方内に位置することができる。
【0059】
方法400の説明での順番は、限定を構成する意図はなく、任意の数の説明される方法のブロックが任意の順番で組み合され、方法400またはその他方法を実施することができる。さらに、各ブロックは、ここに説明される発明の原理および範囲から有意に離れることのない限り、方法400から省略することができる。さらに加えて、本方法は、任意の適したハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせ内において実施することができる。しかしながら、説明の簡略化のため、以下に説明する本実施形態では、方法400は、上述の画像処理システム102内で実施されているものとする。
【0060】
ブロック402において、少なくとも1つの画像(トレーニング画像)が受信される。受信された画像は、画像処理システム102と相互通信している様々なデバイス104から取得される。
【0061】
ブロック404において、受信した画像は、複数の画像セグメントに分割される。画像の分割は、本分野において既知で既存の任意の画像分割技術を用いて実行される。しかしながら、開示される本発明は、本分野における当業者によく知られている画像分割の他の方法を含んでもよいことを理解されたし。
【0062】
ブロック406において、複数の画像処理アルゴリズム出力を取得するため、画像セグメントのそれぞれに対し、複数の画像処理アルゴリズムから少なくとも1つの事前に保存されているアルゴリズムが実行される。実施例の1つにおいて、画像処理アルゴリズムは、2値化アルゴリズム、ノイズ低減アルゴリズム、分割アルゴリズム、文字認識アルゴリズムを含むがこれに限定されない。
【0063】
ブロック408において、画像処理アルゴリズム出力は、所定のしきい画像処理出力スコアと比較される。実施例の1つにおいて、所定のしきい画像処理出力スコアは、各トレーニングペア用の特徴であるグランドトゥルース(GT)である。
【0064】
ブロック410において、画像処理アルゴリズムは、対応する画像セグメントおよび関連特徴ベクトルと併せて、トレーニングペアとして記録される。実施形態の1つにおいて、1つ以上の画像セグメントに関連する関連特徴ベクトルは、画像セグメントのそれぞれの画像モーメント特徴を抽出することにより取得される。画像モーメント特徴は、画像セグメントに対応する平均、分散およびスキューを含む。さらに、特徴ベクトルは、画像セグメントのそれぞれの画像モーメント特徴に基づいて、形成される。特徴ベクトルは、HSV量子化を用いて取得される。
【0065】
ブロック412において、さらなる処理のために送られてくる前処理済みテスト画像(ターゲットとされる画像)のそれぞれに対し、記録されているトレーニングペアからマッチングする画像処理アルゴリズムが選択される。実施形態の1つにおいて、前処理済みテスト画像は、テスト画像を受信し、受信したテスト画像を複数の画像セグメント(テスト画像セグメント)に分割することによって取得される。複数の画像セグメントは、複数の特徴(特徴ベクトル)を抽出するためにさらに利用される。前処理済みテスト画像のそれぞれに潜在的にマッチングする画像処理アルゴリズムの選択は、(前処理済み)テスト画像のテスト画像セグメントおよび該テスト画像セグメントから抽出された特徴ベクトルと、記録されているトレーニングペアの画像セグメントおよび関連特徴ベクトルとをマッチングすることによって実行される。
【0066】
参照する
図5には、本発明の実施形態に係る前処理済みテスト画像を取得するための方法500が示されている。方法500は、画像処理システム102内またはデバイス104内において実行される。
【0067】
ステップ502において、テスト画像(ターゲットとされる画像)が受信される。実施例の1つにおいて、受信された画像は、JPEG/JFIF画像、JPEG2000画像、Exif画像、TIFF画像、RAW画像等を含むがこれに限定されないファイル形式である。
【0068】
ステップ504において、受信されたテスト画像は、複数の画像セグメント(テスト画像セグメント)に分割される。実施例の1つにおいて、分割は、本分野において既知で既存の任意の画像分割技術によって実行される。しかしながら、開示される本発明は、本分野における当業者によく知られている他の画像分割方法を含んでいてもよいことを理解されたし。
【0069】
ステップ506において、複数の画像セグメントは、複数の特徴(特徴ベクトル)を抽出するために、さらに利用される。実施例の1つにおいて、抽出は、本分野において既知で既存の任意の画像抽出技術によって実行される。しかしながら、開示される本発明は、本分野における当業者によく知られている他の画像抽出方法を含んでいても良いことは理解されたし。
【0070】
参照される
図6には、本発明の実施形態に係る画像処理のフローチャートが示されている。
【0071】
実施形態の1つにおいて、画像(トレーニング画像)が、画像処理システムによって受信される。受信された画像は、既知の分割用アルゴリズムを用いて、複数のセグメントに分割される。複数の事前に保存されているアルゴリズムは、複数のセグメントにそれぞれ適用され、複数の画像処理アルゴリズム出力が取得される。さらに、複数の画像処理アルゴリズム出力のそれぞれ(すなわち、アルゴリズムの結果のそれぞれ)は、グランドトゥルース(GT)である所定のしきい画像処理出力スコアと比較される。次の工程において、所定のしきい画像処理出力スコアを超える画像処理出力を有する画像処理アルゴリズムのそれぞれが記録される。このとき、その画像処理アルゴリズムが、対応する1つ以上の画像セグメントおよび関連特徴ベクトルと併せて、トレーニングペアとして記録される。
【0072】
さらに、少なくとも1つのテスト画像(ターゲットとされる画像)が、画像処理システムによって受信される。受信されたテスト画像は、既知の分割用アルゴリズムを用いて、複数のセグメント(テスト画像セグメント)に分割される。既知の抽出アルゴリズムを用いて、テスト画像のそれぞれの画像セグメントから、複数の特徴(特徴ベクトル)が抽出される。最後に、送られてくる前処理済み(特徴抽出された)テスト画像のテスト画像セグメントおよび該テスト画像セグメントに関連する特徴ベクトルと、記録されている1つ以上の画像セグメントおよび記録されている画像セグメントに関連する特徴ベクトルとをマッチングすることにより、送られてくる前処理済みテスト画像のそれぞれに対し、1つ以上の潜在的にマッチングする画像処理アルゴリズムが選択される。
【0073】
このフローチャートの詳細な動作が
図7に示されている。
【0074】
参照される
図7には、本発明の実施形態に係る例示的な画像処理システムと、その動作が示されている。
【0075】
T={t
1,t
2......t
n}が、n個のトレーニング画像のセットであるとする。各トレーニング画像t
i用に、光学式文字認識(OCR’s)出力が取得される。Aは、m個の2値化アルゴリズムのセットA={a
1,a
2....a
m}であり、これらは、画像処理システム内に事前に保存されている。各画像は、k個の(重複したまたは非重複の)セグメント(s
1,s
2.....s
k)に分割される。すなわち、以下の式が成立する。
【0076】
さらに、m個のアルゴリズムのそれぞれは、k個のセグメントのそれぞれに対し適用される。r
ijを、アルゴリズムa
jをセグメントs
iに対して適用した結果の2値化を示すものとする。画像全部の2値化は、以下の式によって取得される。
【0077】
ここで、jは1からmまで変動可能であるので、1つのトレーニング画像に対し、k
m個の異なる2値化結果が存在する。
【0078】
実施例の1つにおいて、OCRは、これらk個のセグメントのk
m個の画像(2値化結果)のそれぞれを認識し、複数のOCR出力(o
1,o
2......o
km)を生成する。これらo
iのそれぞれは、その後、対応するグランドトゥルース(GT)g
iと比較される。このとき、マッチングが見つけられたのであれば、それはすなわち、o
iを生成する一連のアルゴリズムは、k個のセグメントに対して適用されるk個の2値化アルゴリズム(k個のアルゴリズム全てが必ずしも区別可能(distinct)である必要はない)の正しいセット(right set)である。B={b
1,b
2.....b
k}を、k個のセグメント(s
1,s
2.....s
k)に適用されるこれらk個のアルゴリズムのセットとする。実施形態の1つにおいて、2値化アルゴリズムは、大津手法(Otsu’s method)、Savoula手法(Savoula method)、Niblack手法(Niblack method)、Wolf2値化技術(Wolf Binarization Technique)等を含むがこれに限定されない。
【0079】
ここで、全てb
i∈Aであり、b
iはb
jと等しくともよい(ここで、i≠j)。したがって、b
iとs
iとの間には1対1対応が成立し、b
iがs
iの2値化用の正しいアルゴリズムであると判断することができる。
【0080】
上記構造は、トレーニングペア<画像セグメント,2値化アルゴリズム>、すなわち、<s
i,b
i>を生成するために用いられる。(b
1,b
2.......b
k)のそれぞれは、出力を生成する経路としてみなすことができ、m
k個のそのような経路が存在する。このモデルは、そのOCR出力が適切である(correct)ことを判断するための複数の最終画像を生成する。したがって、単一のトレーニング画像から、適切なOCR結果を与える複数の経路を取得することができる。これら経路の全てが、トレーニングインスタンス(training instance)を生成するために参照される。この処理が、
図7に説明されている。GTは、グランドトゥルースを表し、チェックマークは、適切なOCR出力を生成する経路に対応しており、バツマークは、誤ったOCR出力を生成する経路を示している。誤ったOCR出力を生成する経路は、トレーニングデータを準備する際、無視される。
【0081】
実施例の1つにおいて、機械学習アルゴリズム(例えばSVM)に従ってマシーン(機械)をトレーニングするため、次に、各s
i(画像セグメントを表す)は、対応する特徴ベクトルf
iとなる。そのため、最終的に<f
i,b
i>ペアがトレーニングのために用いられる。
【0082】
実施例の1つにおいて、特徴ベクトルは、画像セグメントのそれぞれ用の画像モーメント特徴に基づいて取得される。画像モーメント特徴は、画像セグメント(s
xy)に対応する平均(E
x)と、分散(σ
x)と、スキュー(Z
x)とを含む。これら特徴は、以下の式を用いて抽出される。
【0083】
実施例の1つにおいて、特徴ベクトルは、HSV量子化を用いて取得される。
【0084】
さらに、トレーニングデータは、各セグメントに対し<f
i,b
i>ペアを生成することによって構築される。ここで、f
iは、特徴ベクトルである。
【0085】
処理用にアルゴリズムを自動的に選択するため、テスト画像(ターゲットとされる画像)が受信される。画像処理システムは、テスト画像をk個のセグメント(テスト画像セグメント)に分割し、k個のセグメントのそれぞれ用の対応する2値化アルゴリズムを予測する。各画像セグメントから特徴(特徴ベクトル)が抽出され、SVMによって(各画像セグメントに対するアルゴリズムの)予測が実行される。SVMは、前もって準備されたトレーニングデータセットでトレーニングされている。次に、各画像セグメントが、予測されたアルゴリズムを用いて2値化される。テスト画像の最終2値バージョンは、それらのセグメントに対し2値化された画像の論理和(ORing)をシンプルに実行することにより取得される。
【0086】
実施例の1つにおいて、このモデルの目標指向の評価(goal directed evaluation)は、テスト画像の2値バージョンを読むためのOCRを用いて実行される。OCR結果が、テスト画像に対応するグランドトゥルースとマッチングするのであれば、該テスト画像用の正しい2値化戦略の予測が成功したものとみなすことができる。
【0087】
参照する
図8には、本発明の実施形態に係る画像処理システムの結果が示されている。
【0088】
図8は、3つの画像を示している。左側コラムには、適用時に適切なOCRをもたらす2値化アルゴリズムがなかった場合の画像が示されている。右側コラムには、適切なOCR出力を実現するために、提案の発明である画像処理システムによって得られた出力が示されている。
【0089】
上記発明の主たる利点は、複数の事前に保存されているアルゴリズムから、画像の仕様にマッチングする1つ以上のアルゴリズムを、処理中に自動的に特定できることにある。
【0090】
本発明の別の利点は、イントラ画像変化が存在し、単一のアルゴリズムが許容可能な結果を生成できない場合であっても、効率的に動作できることにある。
【0091】
本発明の別の利点は、システムを低速にさせ、最終的に取得される結果を人間の認識に対してセンシティブにしてしまう人手による介入を減らせるので、効率的かつ高速であることにある。
【0092】
本発明の別の利点は、イントラ画像変化に対しても有効な、機械学習アプローチを用いた画像処理用に適したアルゴリズムを提供できることにある。
【0093】
本発明の別の利点は、従来の画像処理システムにおける時間浪費が、上述の自動プロセスによって、劇的に減少することにある。
【0094】
画像処理用の自動アルゴリズム選択のための方法およびシステムの実施は、構造的特徴および/または方法に特有の用語によって説明されたが、添付の請求項は、説明された特定の特徴または方法に必ずしも限定されないことは理解されたし。つまり、特定の特徴および方法は、画像処理用の自動アルゴリズム選択の実施の例として説明された。