画像処理システム及び画像処理方法
【課題】画像ごとの色の違いに大きく影響されることなく、正確な画像の検索を可能にする。
【解決手段】画像処理システムは、撮像して得られたカラー画像をRGB各版画像に分解し、さらにブロック領域に分割する。そして、ブロック領域ごとにフィルタをかけてエッジ方向を判定し、その結果を4つのグループに分類して二値コード化する。グループ別に用意された配列には、そのグループにエッジ方向が該当している箇所のブロック領域にフラグ1を立て、その他はフラグ0となる。このように、エッジ方向をグループ分けして二値コード化した結果を画像特徴量として抽出し、これを画像検索に使用する。
【解決手段】画像処理システムは、撮像して得られたカラー画像をRGB各版画像に分解し、さらにブロック領域に分割する。そして、ブロック領域ごとにフィルタをかけてエッジ方向を判定し、その結果を4つのグループに分類して二値コード化する。グループ別に用意された配列には、そのグループにエッジ方向が該当している箇所のブロック領域にフラグ1を立て、その他はフラグ0となる。このように、エッジ方向をグループ分けして二値コード化した結果を画像特徴量として抽出し、これを画像検索に使用する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば撮像素子を用いて撮像されたカラー画像に対して加工や演算等の処理を行う画像処理システム及び画像処理方法に関する。
【背景技術】
【0002】
従来、データベースに登録された多数の画像の中から任意形状の画像を検索する先行技術として、検索元の画像とデータベース内にある検索先の画像について、それぞれのブロック毎の画像特徴量同士を比較し、それらの類似度から検索結果を出力する先行技術が知られている(例えば、特許文献1参照。)。この先行技術は特に、任意形状の画像に対して外接する矩形枠を作成し、その矩形枠内で画像をブロックに分割して画像特徴量を抽出するものである。そしてこの先行技術では、ブロック内でみた画像の形状を合わせて抽出し、ブロック内の形状情報と画像特徴量とを用いてデータベースから画像を検索することとしている。
【0003】
上述した先行技術によれば、画像全体をブロックに分割し、ブロック毎の色やエッジ、テクスチャなどを画像特徴量として抽出するだけでなく、任意形状の画像に外接する矩形の範囲内で画像特徴量を抽出することができるため、背景領域部分を除外した高速な検索が可能になると考えられる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−34613号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述した先行技術は、検索元となる画像が任意形状であっても、データベースから検索対象をある程度絞り込んだ上で、高速に検索を行うことができる点で優位である。ただし、先行技術で扱う検索元の画像は、イメージスキャナ等の高精度なセンシングデバイス(コンタクトガラスと読取ヘッドを用いたもの)を使用し、良好かつ安定した撮像環境の下で得られた高品位画像である。このため先行技術には、その前提として、得られた画像の色やエッジ等をそのまま画像特徴量として使用しても、検索結果にはほとんど影響が現れないという特異な事情がある。
【0006】
これに対し、携帯電話機等のモバイル機器を用いて撮像された画像は、その撮像時の環境が多種多様であるため、その結果、得られた画像には撮像環境の違いが色の違いとして大きく現れる。また、ユーザごとに使用する機器の個体差や機種の違いによる色の違いが大きく現れることも多く、たとえ異なるユーザが同じ対象物を撮像した場合であっても、撮像環境の違いや機種の違いによってそれぞれが撮像した画像間には無限に近い色の違いが現れる。このような状況にあっては、たとえ上述した先行技術の手法を適用しても、撮像された画像間の色の違いが画像特徴量に大きく影響し、そのままでは正確な画像検索が困難になるという問題がある。
【0007】
そこで本発明は、画像ごとの色の違いに大きく影響されることなく、正確な画像の検索を可能にする技術の提供を課題としている。
【課題を解決するための手段】
【0008】
上記の課題を解決するため、本発明は画像処理システム及び画像処理方法を提供する。本発明の画像処理システム及び画像処理方法では、先ず撮像して得られたカラー画像を原色別の版画像に分解し、これら版画像をそれぞれ複数のブロック領域に分割する前処理を実行する(前処理工程)。次に、分割された個々のブロック領域について、その周辺に隣接する他のブロック領域との平均明度の違いに基づきブロック領域ごとのエッジ方向を判定する処理を版画像のそれぞれに対して行う(判定処理工程)。そして、版画像のそれぞれに対して判定処理手段により判定されたブロック領域ごとのエッジ方向をコード化し、その結果をカラー画像の画像特徴量として抽出する(抽出処理工程)。
【0009】
本発明の画像処理システム及び画像処理方法によれば、撮像されたカラー画像を原色別の版画像に分解した上で、さらに各版画像をブロック領域に分割し、それぞれのエッジ方向をコード化した結果を画像特徴量としている。このため、撮像により得られたカラー画像間に多種多様な色の違いが存在していても、その影響が画像特徴量に大きく影響することはない。すなわち、同じ対象物を異なるデバイスや撮像環境で撮像すると、得られたカラー画像間には色の違いが当然に現れるが、ブロック領域ごとのエッジ方向であれは、撮像環境やデバイスが違ったとしても、その傾向に極端な違いが生じることはない。したがって、エッジ方向をコード化した結果を画像特徴量とすれば、そこに色の違いが影響しないため、その後の正確な画像検索が可能になるという利点がある。
【0010】
また本発明の画像処理システム及び画像処理方法では、撮像して得られた画像をブロック領域に分割した上でエッジ方向を判定し、その結果をコード化したものを画像特徴量としているため、1つ1つの画素から画像特徴量を抽出した場合と比較してデータ容量を少なく抑えることができる。
【0011】
本発明において、画像特徴量の抽出を以下の態様で行うことがより好ましい。すなわち、ブロック領域ごとに判定したエッジ方向をさらに複数のグループに分類してみたとき、各グループ別に個々のブロック領域について判定されたエッジ方向がそのグループに属するか否かを二値コードで表すことにより、版画像のそれぞれに対してグループごとに全てのブロック領域についてのエッジ方向を二値コード化するものとする。
【0012】
上記の態様であれば、エッジ方向の判定結果をさらにグループ別に集約できるため、それだけ情報量を少なくすることができる。また、エッジ方向をグループ別にみた場合、単純にそのグループに属するか否かを二値コードで表すことができるため、扱うデータ量が少ない上、デジタル処理に極めて好適である。したがって、簡素なコンピュータハードウェアによる処理にも容易に適用することができ、それだけ利用の幅を拡張することができる。
【0013】
以上は画像特徴量の抽出までの処理であるが、さらに本発明の画像処理システム及び画像処理方法は、予め比較対象となる複数の画像データをその画像特徴量とともにデータベース等に登録しておくことにより、そこから画像の検索を容易に行うことができる。すなわち、本発明の画像処理システム及び画像処理方法では、撮像して得られたカラー画像について、そこから抽出された画像特徴量を、予め登録された個々の画像データについての画像特徴量と比較することにより、登録された複数の画像データの中からカラー画像に対応するべき画像データを検索することができる。
【0014】
この場合、予め登録されている画像特徴量についても、その画像データ(登録されているオリジナルの画像)を複数のブロック領域に分割し、個々のブロック領域ごとのエッジ方向をコード化した状態で表されているものとする。これにより、オリジナルの画像と撮像された画像との色の違いに影響されることなく、ブロック領域ごとのエッジ方向の傾向性から抽出した画像特徴量を比較することで、より高精度な画像検索が可能となる。
【発明の効果】
【0015】
本発明の画像処理システム及び画像処理方法は、多種多様な撮像環境下で得られた画像についても、その色の違いに影響されない画像特徴量を抽出することができる。また、当該画像特徴量を用いてオリジナル画像との比較を行い、正確に画像検索を行うことができる。
【図面の簡単な説明】
【0016】
【図1】画像処理システムの構成を概略的に示した図である。
【図2】携帯情報端末及びサーバそれぞれの構成例を示すブロック図である。
【図3】携帯情報端末の端末制御部により実行される端末画像処理の一例を示すフローチャートである。
【図4】携帯情報端末を用いて行われる撮像の様子を示す斜視図である。
【図5】画像特徴量抽出処理の内容を詳細に示したフローチャートである。
【図6】RGB各版画像エリア分割処理の流れを連続的に示すイメージ図である。
【図7】分割されたR版画像から9つのブロック領域を選択し、Prewittフィルタ処理を行った場合の一例を示す図である。
【図8】Prewittフィルタを用いたエッジ方向の判定結果を示す図である。
【図9】ブロック領域ごとのエッジ方向の判定結果とグループ別の配列の例を示した概念図である。
【図10】画像検索処理の手順例を示すフローチャートである。
【発明を実施するための形態】
【0017】
以下、本発明の画像処理システム及びこれを用いて行う画像処理方法の実施形態について説明する。
【0018】
図1は、画像処理システムの構成を概略的に示した図である。この画像処理システムは、例えば個人ユーザが所持する携帯情報端末1をはじめ、移動体通信網の基地局101、ネットワーク102及びサーバコンピュータ100から構成されている。なお画像処理システムはその実行する機能により、携帯情報端末1だけで構成される場合もあれば、携帯情報端末1とその他の要素(基地局101、ネットワーク102及びサーバコンピュータ100)とで構成される場合もある。
【0019】
携帯情報端末1は、例えばその表示画面上でHTMLデータに基づく表示を行う機能を有した携帯型の情報端末機器であり、ここでは携帯電話機が例に挙げられている。また携帯情報端末1はコンピュータとしての機能をも有しており、内蔵する記憶装置(メモリ)等に記憶されたアプリケーションプログラムを適宜読み出し、これを実行するシステムリソースを備えている。
【0020】
本実施形態の画像処理システムは、携帯情報端末1にカメラ機能(撮像機能)が付属している場合を想定している。すなわち、携帯情報端末1には図示しないカメラモジュールが内蔵されており、このカメラモジュールは、例えばCCDイメージセンサ等の撮像素子とレンズとを組み合わせて構成されている。なお携帯情報端末1は携帯電話機に限らず、通信機能とカメラ機能とを有した携帯型コンピュータやノート型のパーソナルコンピュータ等でもよい。またこれらの場合、カメラ機能は外部接続機器(USBカメラ)を用いて実現してもよい。
【0021】
基地局101は、携帯情報端末1との間で通信を行うためのアンテナを備えている。基地局101は例えばインターネット等のネットワーク102に接続されており、この状態で基地局101は、携帯情報端末1によりネットワーク102を通じて行われるデータ通信を中継する。
【0022】
ネットワーク102には、サーバコンピュータ(以下「サーバ」と呼称する)100が接続されている。サーバ100は、基地局101及びネットワーク102を経由して、携帯情報端末1との間でデータ通信を行う機能を有するほか、コンピュータとして画像検索プログラムを実行するための機能を有する。またサーバ100は画像データベース(図1には示されていない)を保有し、この画像データベース内に複数の画像データを予め登録している。サーバ100は画像検索プログラムの実行に伴い、画像データベースにアクセスして画像検索を実行する。
【0023】
図2は、携帯情報端末1及びサーバ100それぞれの構成例を示すブロック図である。なお図2中、基地局101についてはその図示を省略している。
【0024】
携帯情報端末1は、図示しないCPU(Centoral Processing Unit)やメモリ等のハードウェアリソースを有するほか、無線(RF)通信モジュールやRFアンテナ等をも内蔵している。携帯情報端末1は、これら内蔵するハードウェアリソースを用いてアプリケーションプログラムを実行するとともに、その実行に伴い無線通信モジュールを用いてインターネット102に接続することができる。
【0025】
またサーバ100は、図示しないCPU(Centoral Processing Unit)をはじめとして、メモリや周辺IC、ハードディスク等の各種のハードウェアリソースを備えている。サーバ100は、そのハードウェアリソースを用いて画像検索プログラムを実行するほか、その実行に伴い図示しないネットワークインタフェースを通じてインターネット102に接続することができる。
【0026】
また携帯情報端末1は端末制御部10を有しており、この端末制御部10は、例えば上記のCPUを用いて実現されている。また端末制御部10には、各種処理部として主に、撮像処理部11、画像加工処理部12、画像特徴量抽出処理部13及びデータ送信処理部14が組み込まれている。このうち撮像処理部11は、上記のカメラモジュールを用いて撮像を行い、カラー画像を取得する処理を実行する。また画像加工処理部12は、撮像されたカラー画像をさらに加工する処理を実行する。画像特徴量抽出処理部13は、加工された画像から画像特徴量を抽出する処理を実行する。またデータ送信処理部14は、上記の無線通信モジュールを用いて画像特徴量のデータを送信する。なお、各種処理部による処理については、さらに詳しく後述する。また各種処理部の構成は、例えばCPUにより実行されるプログラムモジュールを用いて実現することができる。
【0027】
その他に携帯情報端末1は、操作キー17や画像表示部18等を備えている。操作キー17は、ユーザのプッシュ操作(押下)を受け付ける各種キーやボタン等のスイッチであり、画像表示部18は、例えば携帯情報端末1に付属する液晶ディスプレイである。端末制御部10は、携帯情報端末1のユーザが操作キー17を操作すると、これに応じて各種処理部の機能を働かせる。また、各種処理部で行われる処理の過程又は結果に関する情報は、必要に応じて画像表示部18に表示される。ユーザは画像表示部18の表示を確認しながら操作キー17を操作し、端末制御部10を動作させることができる。
【0028】
一方、サーバ100はサーバ制御部20を有しており、このサーバ制御部20もまた、サーバ100において上記のCPUを用いて実現することができる。またサーバ100は画像データベース30を保有しており、この画像データベース30は、例えば上記のハードディスクを用いて実現されている。なお画像データベース30には、システムにおいてオリジナル(原画像)となる複数の画像データがその画像特徴量とともに予め登録(記録)されているものとする。
【0029】
サーバ制御部20には、各種処理部として検索用データ受信部22、画像検索処理部24及び検索結果送信部26が組み込まれている。このうち検索用データ受信部22は、携帯情報端末1から送信される画像特徴量のデータを受信する処理を実行する。また画像検索処理部24は、受信した画像特徴量データに基づき、画像データベース30内から対応(マッチ)する画像データを検索する処理を実行する。検索結果送信部26は、検索で得られた結果(商品名、商品番号等)を携帯情報端末1に送信する処理を実行する。
【0030】
次に、本実施形態の画像処理システムにより実行される画像処理の内容について説明する。また以下の説明により、本発明の画像処理方法を実行するための各工程の内容についても明らかとなる。
【0031】
本実施形態の画像処理システムは主に、(1)撮像して得た画像(カラー画像)から画像特徴量を抽出する処理、(2)抽出した画像特徴量に基づいて画像検索(画像のマッチング)を行う処理の2つを実行することができる。なお、これら(1)と(2)の処理の間には、携帯情報端末1からネットワーク102を通じて画像特徴量データをサーバ100に送信する送信処理が実行される。
【0032】
先ず、上記(1)の撮像して得たカラー画像から画像特徴量を抽出する処理とともに、画像特徴量データを送信するまでの処理について説明する。ここまでの処理は、携帯情報端末1の各種処理部を用いて実行することができる。
【0033】
〔携帯情報端末の処理〕
図3は、携帯情報端末1の端末制御部10により実行される端末画像処理の一例を示すフローチャートである。この処理では、カラー画像の撮像からその加工、画像特徴量の抽出、そして画像特徴量データの送信までの処理が順に行われる。以下、手順例に沿って説明する。
【0034】
〔撮像処理〕
ステップS10:先ず端末制御部10は、撮像処理を実行する。この処理では、端末制御部10は上記の撮像処理部11にて撮像アプリケーションを実行し、図示しないカメラモジュールを用いた撮像による画像の取得を行う。なお、具体的な撮像手法の例については、別の図面を参照しながら後述する。
【0035】
〔画像サイズ加工処理〕
ステップS20:次に端末制御部10は、画像サイズ加工処理を実行する。この処理では、端末制御部10は上記の画像加工処理部12にて画像加工アプリケーションを実行し、撮像して得られたカラー画像のサイズを加工する。特に図示していないが、ここでは撮像して得られたカラー画像の必要領域を確定するため、画像サイズを例えば225×225ピクセルのサイズに加工するものとする。なお画像サイズの加工は、例えばカメラモジュールによる標準的な撮像サイズ(例えば240×320)をベースとして、その上下及び左右の画素を均等にトリミングし、画像サイズを225×225ピクセルにするものとする。
【0036】
〔画像特徴量抽出処理〕
ステップS30:また端末制御部10は、画像特徴量抽出処理を実行する。この処理では、端末制御部10は先の画像サイズ加工処理(ステップS20)で加工した225×225ピクセルのカラー画像を例えばRGB(原色)各版の画像に分解し、さらに各版画像をブロック領域に分割する。さらに端末制御部10は、分割したブロック領域をフィルタ処理してエッジ方向を判定するとともに、その判定結果に基づいて画像特徴量を抽出する。なお、具体的な抽出手法の例については、別の図面を参照しながら後述する。
【0037】
〔データ送信処理〕
ステップS40:そして端末制御部10は、データ送信処理を実行する。この処理では、端末制御部10は先の画像特徴量抽出処理(ステップS30)で抽出した画像特徴量のデータを送信する。
【0038】
〔撮像処理の例〕
図4は、携帯情報端末1を用いて行われる撮像の様子を示す斜視図である。上記の撮像処理(ステップS10)の実行に伴い、端末制御部10は撮像アプリケーションを起動する。これに伴い、携帯情報端末1の図示しないカメラモジュールがアクティブとなる。
【0039】
本実施形態の画像処理システムは、携帯情報端末1のユーザが例えば紙媒体として頒布された冊子B(カタログ、パンフレット、雑誌等)の商品見本をカメラで撮像し、そのデータを送信することで通信販売による商品の注文を行う、という商取引に適用することができる。
【0040】
ユーザに頒布された冊子Bの紙面には、通信販売の商品見本となるカラーのサンプル画像Imとともにその説明書き(商品番号、商品の詳細、販売価格等)が印刷されている。そしてユーザは、携帯情報端末1に付属するカメラモジュールの撮像領域内に紙面上のサンプル画像Imを位置付けた状態で撮像を行う。このとき撮像領域は、例えば携帯情報端末1の画面上にリアルタイムで表示される。サンプル画像Imが撮像領域内に位置付けられた状態で、ユーザが携帯情報端末1のシャッターボタンを押下すると、携帯情報端末1においてサンプル画像Imを撮像したカラー画像が取得される。このとき取得されたカラー画像は、例えば携帯情報端末1の図示しないメモリ(RAM)に格納される。
【0041】
〔画像特徴量抽出処理〕
次に図5は、上述した画像特徴量抽出処理の内容をさらに詳細に示したフローチャートである。以下、図5のフローチャートに沿って処理の内容を説明する。
【0042】
ステップS100:先ず端末制御部10は、RGB各版画像エリア分割処理を実行する。この処理において、端末制御部10は上記のように画像加工処理部12にて画像加工アプリケーションを起動し、225×225ピクセルサイズのカラー画像をRGB各版の原色別の画像に分解する。さらに端末制御部10は、分解したRGB各版の画像をそれぞれ9×9ピクセルサイズのブロック領域に分割する。これにより、RGB各版の画像について、それぞれ25×25のブロック領域が形成されることになる(前処理工程)。
【0043】
図6は、上述したRGB各版画像エリア分割処理の流れを連続的に示すイメージ図である。
【0044】
図6中(A):処理開始時において、上記のようにカラー画像は225×225ピクセルサイズに加工されている。
【0045】
図6中(B):次に端末制御部10は、カラー画像をR(赤)版画像、G(緑)版画像及びB(青)版画像の3原色別に分解する。なお分解された各版画像は、元のカラー画像と同じ225×225ピクセルサイズを維持している。
【0046】
図6中(C):そして端末制御部10は、RGB各版画像をさらに25×25のブロック領域に分割する。これにより各ブロックは、9×9ピクセルサイズとなる。
【0047】
以上のRGB各版画像エリア分割処理を経て、次に端末制御部10はRGB各版別に画像特徴量データを作成する。以下、画像特徴量データの作成手順について詳しく説明する。
【0048】
〔図5:画像特徴量抽出処理を参照〕
ステップS102:端末制御部10は、次に抽出の対象となる版画像を選択する。なお、初回の抽出であれば例えばR版画像を選択するものとし、2回目の抽出ではG版画像、3回目の抽出ではB版画像をそれぞれ選択するものとする。
【0049】
ステップS104:次に端末制御部10は、先のRGB各版画像エリア分割処理(ステップS100)で25×25(=625ブロック)に分割したブロック領域ごとに画素平均値を算出する。画素平均値は、例えば各ブロック領域に含まれる全ての画素(9×9=81画素)の明度(輝度)の平均値として算出することができる。
【0050】
〔エッジ方向の判定〕
ステップS105:端末制御部10は、今回の注目エリアとなる次のブロック領域を指定する。初回であれば、版画像内の左上角のブロック領域が今回の注目エリアとなる。以下同様に、2回目であれば最上段の左から2つ目のブロック領域が今回の注目エリアとなり、3回目であれば最上段の左から3つ目のブロック領域となる。そして、25回目では右上角のブロック領域が今回の注目エリアとなり、次の26回目では2段目の左端に位置するブロック領域が今回の注目エリアとなる。
【0051】
ステップS106:次に端末制御部10は、今回の注目エリアに指定したブロック領域についてエッジ方向を判定する(判定処理工程)。具体的には、以下の手順を実行する。
【0052】
(1)端末制御部10は、今回の注目エリアに該当する1つのブロック領域とその周辺に隣接する他の8つのブロック領域を合わせて選択する。なお、注目エリアが画像の周縁に位置するブロック領域である場合、隣接する他のブロック領域は5つ(注目エリアが縁辺のブロック領域の場合)又は3つ(注目エリアが角のブロック領域の場合)となる。
【0053】
(2)次に端末制御部10は、選択したブロック領域(9つ、6つ、4つ)に対して例えばPrewittフィルタ(微分フィルタ)を用いた処理を行い、今回の注目エリアとなるブロック領域についてエッジ方向を判定する。
【0054】
図7は、分割されたR版画像から9つのブロック領域を選択し、Prewittフィルタ処理を行った場合の一例を示す図である。なお図示していないが、G版画像及びB版画像についても同様にブロック領域を選択し、Prewittフィルタ処理が行われるものとする。
【0055】
図7中(A):上記のようにR版画像は、25×25のブロック領域に分割されている。なお各ブロック領域は、9×9ピクセルサイズである。このように、本実施形態では個々のブロック領域を9×9ピクセルサイズに調整することで、例えば以下の利点が得られる。
【0056】
(1)元のカラー画像に含まれるノイズの影響を抑えることができる。すなわち、9×9ピクセル程度のサイズを確保することで、ブロック領域内の全体でみた場合にノイズの影響を希釈することができる。
【0057】
(2)撮像時の画像の細かな位置ずれに対応することができる。通常、撮像された画像がサーバ100側の画像データベース30に登録されているオリジナルの画像とピクセル単位で一致することはほとんどないため、この後の画像検索において9×9ピクセルサイズのブロック領域を最小の比較単位とすることにより、撮像時の画像の位置ずれをある程度まで吸収することができる。
【0058】
(3)大まかな特徴を表すことができる。すなわち、9×9ピクセル程度のサイズを確保することで、ブロック領域内には画像としての大まかな特徴(色味、明るさ、エッジ方向等の特徴)が現れやすくなるため、その後の比較が容易である。
【0059】
(4)検索スピードを考慮した場合、ブロック領域分割によりデータ容量を抑えることができる。すなわち、RGB各版画像のサイズは225×225ピクセルサイズであるが、これを25×25のブロック領域に分割することで、演算処理に用いるデータ容量を削減することができる。これにより、後の画像検索時の処理速度を向上することができる。
【0060】
図7中(B):あるブロック領域を注目エリア(図中に「★」印を付す)に指定した場合、その周辺に隣接する他の8つのブロック領域が合わせて選択される。この時点で各ブロック領域には、それぞれの画素平均値が求められている。そして、選択された9つのブロック領域に対して上記のPrewittフィルタ処理を行い、注目エリアのエッジ方向を判定する。
【0061】
図8は、Prewittフィルタを用いたエッジ方向の判定結果を示す図である。各ブロック領域について判定されるエッジ方向は、図8中(A)〜(H)に示されるように、上方向(「方向0」とする)、左上方向(「方向1」とする)、左方向(「方向2」とする)、左下方向(「方向3」とする)、下方向(「方向4」とする)、右下方向(「方向5」とする)、右方向(「方向6」とする)又は右上方向(「方向7」とする)のいずれかとなる。
【0062】
またPrewittフィルタを用いたエッジ方向の判定は、例えば図示しない3×3マトリクスのマスクパターンを8種類用いて行うことができる。なお、マスクパターンを用いたテンプレートマッチングによるエッジ方向の抽出手法には公知のものを適用できるため、ここではその詳細を省略する。
【0063】
〔図5:画像特徴量抽出処理を参照〕
ステップS108:今回の注目エリアとなるブロック領域についてエッジ方向を判定すると、次に端末制御部10は、判定結果が上記の「方向0」,「方向1」,「方向2」のいずれかに該当するか否かを判断する。これらいずれかに該当していれば(Yes)、端末制御部10は次にステップS110を実行する。
【0064】
ステップS110:この場合、端末制御部10は今回の注目エリアを「Aグループ」に属するものとし、そのブロック領域に対して「Aグループの配列」にフラグ1を立てる処理を実行する。なお、今回の注目エリアが「Aグループ」に属していない場合、「Aグループの配列」においてそのブロック領域のフラグは0となる(以下も同様)。
【0065】
ここで、本実施形態では8つのエッジ方向(「方向0」〜「方向7」)を4つのグループ(「Aグループ」、「Bグループ」、「Cグループ」及び「Dグループ」)に分類しており、このうち「方向0」,「方向1」,「方向2」を「Aグループ」とし、「方向2」,「方向3」,「方向4」を「Bグループ」、「方向4」,「方向5」,「方向6」を「Cグループ」、そして「方向6」,「方向7」,「方向0」を「Dグループ」としている。このように、8つのエッジ方向(「方向0」〜「方向7」)を4つのグループ(A〜D)に分類した上で、A〜Dグループのそれぞれに属するか否かでブロック毎のエッジ方向を二値化する(フラグの0又は1で表す)ことにより、全体としてデータ容量を削減しつつ、グループ別に集約した形で各エッジ方向(「方向0」〜「方向7」)の特徴を表すことができる。
【0066】
先のステップS108を含め、以下のステップS112,S116,S120では、今回の注目エリアとなるブロック領域について判定されたエッジ方向が「Aグループ」〜「Dグループ」のそれぞれに属するか否かを判断するものであり、属する場合はそのグループの配列にフラグ1が立つことになる。なお、「Aグループ」〜「Dグループ」別の配列及びそのフラグについては別の図面を用いてさらに後述する。
【0067】
上記のステップS110を実行するか、もしくは先のステップS108でいずれの方向にも該当しないと判断した場合(ステップS108:No)、端末制御部10は次にステップS112を実行する。
【0068】
ステップS112:次に端末制御部10は、判定結果が上記の「方向2」,「方向3」,「方向4」のいずれかに該当するか否かを判断する。これらいずれかに該当していれば(Yes)、端末制御部10は次にステップS114を実行する。
【0069】
ステップS114:この場合、端末制御部10は今回の注目エリアを「Bグループ」に属するものとし、そのブロック領域に対して「Bグループの配列」にフラグ1を立てる処理を実行する。
【0070】
上記のステップS114を実行するか、もしくは先のステップS112でいずれの方向にも該当しないと判断した場合(ステップS112:No)、端末制御部10は次にステップS116を実行する。
【0071】
ステップS116:次に端末制御部10は、判定結果が上記の「方向4」,「方向5」,「方向6」のいずれかに該当するか否かを判断する。これらいずれかに該当していれば(Yes)、端末制御部10は次にステップS118を実行する。
【0072】
ステップS118:この場合、端末制御部10は今回の注目エリアを「Cグループ」に属するものとし、そのブロック領域に対して「Cグループの配列」にフラグ1を立てる処理を実行する。
【0073】
上記のステップS118を実行するか、もしくは先のステップS116でいずれの方向にも該当しないと判断した場合(ステップS116:No)、端末制御部10は次にステップS120を実行する。
【0074】
ステップS120:次に端末制御部10は、判定結果が上記の「方向6」,「方向7」,「方向0」のいずれかに該当するか否かを判断する。これらいずれかに該当していれば(Yes)、端末制御部10は次にステップS122を実行する。
【0075】
ステップS122:この場合、端末制御部10は今回の注目エリアを「Dグループ」に属するものとし、そのブロック領域に対して「Dグループの配列」にフラグ1を立てる処理を実行する。
【0076】
上記のステップS122を実行するか、もしくは先のステップS120でいずれの方向にも該当しないと判断した場合(ステップS120:No)、端末制御部10は次にステップS123を実行する。
【0077】
ステップS123:そして端末制御部10は、全てのブロック領域についてステップS106〜ステップS120(場合によりステップS122)までの処理が完了したか否かを確認する。未だ完了していなければ(No)、端末制御部10はステップS105に戻り、次の注目エリアとなるブロック領域を指定する。そして端末制御部10は、次の注目エリアとなるブロック領域についてステップS106〜ステップS120(場合によりステップS122)までの処理を実行する。
【0078】
図9は、ブロック領域ごとのエッジ方向の判定結果とグループ別の配列の例を示した概念図である。なお図9中、ブロック領域(25×25=625ブロック)の全ては示されておらず、一部を「…」で表して省略している。
【0079】
図9中(O):ここでは個々のブロック領域について、エッジ方向の判定結果が「0」〜「7」の数値で示されている。なお「0」〜「7」の数値は、上記の「方向0」〜「方向7」を表している。
【0080】
〔Aグループの配列〕
図9中(A):ここでは個々のブロック領域について、「Aグループの配列」にフラグ1を立てた箇所がグレー(網掛け)で示されている。すなわち、個々のブロック領域について、そのエッジ方向の判定結果が「方向0」,「方向1」,「方向2」のいずれかに該当する場合、そのブロック領域は「Aグループ」に属することとなり、その位置にフラグ1が立てられる(図5中のステップS110)。なお、白抜きのブロック領域はフラグ0である(以下も同様)。
【0081】
〔Bグループの配列〕
図9中(B):次に、ここでは個々のブロック領域について、「Bグループの配列」にフラグ1を立てた箇所がグレー(網掛け)で示されている。個々のブロック領域について、そのエッジ方向の判定結果が「方向2」,「方向3」,「方向4」のいずれかに該当する場合、そのブロック領域は「Bグループ」に属することとなり、その位置にフラグ1が立てられる(図5中のステップS114)。
【0082】
〔Cグループの配列〕
図9中(C):同様に、ここでは個々のブロック領域について、「Cグループの配列」にフラグ1を立てた箇所がグレー(網掛け)で示されている。個々のブロック領域について、そのエッジ方向の判定結果が「方向4」,「方向5」,「方向6」のいずれかに該当する場合、そのブロック領域は「Cグループ」に属することとなり、その位置にフラグ1が立てられる(図5中のステップS118)。
【0083】
〔Dグループの配列〕
図9中(D):そして、ここでは個々のブロック領域について、「Dグループの配列」にフラグ1を立てた箇所がグレー(網掛け)で示されている。個々のブロック領域について、そのエッジ方向の判定結果が「方向6」,「方向7」,「方向0」のいずれかに該当する場合、そのブロック領域は「Dグループ」に属することとなり、その位置にフラグ1が立てられる(図5中のステップS122)。
【0084】
以上のように、あるブロック領域についてエッジ方向の判定結果が「方向0」であれば、そのブロック領域には「Aグループの配列」と「Dグループの配列」にそれぞれフラグ1が立つことになる。一方、あるブロック領域についてエッジ方向の判定結果が「方向1」であれば、そのブロック領域には「Aグループの配列」だけにフラグ1が立つことになる。同様に、あるブロック領域についてエッジ方向の判定結果が「方向2」であれば、そのブロック領域には「Aグループの配列」と「Bグループの配列」にそれぞれフラグ1が立つことになり、あるブロック領域についてエッジ方向の判定結果が「方向3」であれば、そのブロック領域には「Bグループの配列」だけにフラグ1が立つことになる。さらに、あるブロック領域についてエッジ方向の判定結果が「方向4」であれば、そのブロック領域には「Bグループの配列」と「Cグループの配列」にそれぞれフラグ1が立つことになり、あるブロック領域についてエッジ方向の判定結果が「方向5」であれば、そのブロック領域には「Cグループの配列」だけにフラグ1が立つことになる。そして、あるブロック領域についてエッジ方向の判定結果が「方向6」であれば、そのブロック領域には「Cグループの配列」と「Dグループの配列」にそれぞれフラグ1が立つことになり、あるブロック領域についてエッジ方向の判定結果が「方向7」であれば、そのブロック領域には「Dグループの配列」だけにフラグ1が立つことになる。
【0085】
いずれの場合も、フラグ1を立てた箇所は二値コードの「1」で表され、フラグを立てない箇所は二値コードの「0」で表される。その結果、25×25の全てのブロック領域は、各グループ別に「0」又は「1」の二値コードで表されることになる。
【0086】
例えば、図9中(A)に示される例では、画像内のブロック領域を左上から右下までの並び順で二値コードをシリアルに表すと、「1,0,・・・,1,0,0,1,・・・,1,1,1,0,・・・,0,0,・・・・・・・,1,1,・・・,0,1,1,1,・・・,1,1,1,1,・・・,0,0」となる。なお、途中の「・・・」は省略した部分である。
【0087】
このように、本実施形態では8つあるエッジ方向(「方向0」〜「方向7」)を4つのグループに分類し、個々のブロック領域が各グループに属するか否かを二値コード化して表すことにより、グループ別に表された二値のデータを画像特徴量として抽出することができる(抽出処理工程)。
【0088】
〔図5:画層特徴量抽出処理を参照〕
ステップS124:端末制御部10は、ここまでの処理がRGB各版画像の全てについて完了したか否かを確認する。未だ全版について完了していなければ(No)、端末制御部10はステップS102に戻って次の版画像を選択し、ステップS104〜ステップS123までの手順を実行する。この後、全ての版画像について処理が完了すると(ステップS124:Yes)、端末制御部10は次のステップS126に進む。
【0089】
ステップS126:端末制御部10は、画像特徴量データ格納処理を実行する。この処理では、端末制御部10は先のステップS108〜ステップS120を通じてRGB各版画像別に得られた二値データの画像特徴量をメモリに格納する。具体的には、画像内のブロック領域を左上から右下までの並び順で、かつ、R版画像の「Aグループ」→G版画像の「Aグループ」→B版画像の「Aグループ」→R版画像の「Bグループ」→G版画像の「Bグループ」→B版画像の「Bグループ」→R版画像の「Cグループ」→G版画像の「Cグループ」→B版画像の「Cグループ」→R版画像の「Dグループ」→G版画像の「Dグループ」→B版画像の「Dグループ」の順にそれぞれの二値コードをシリアルに並べて連結し、これらを画像特徴量データとして格納する。このように、二値コードをシリアルデータとして格納することにより、データの位置情報(ブロック領域の位置)も画像特徴量として使用することができる。
【0090】
以上の手順を終えると、端末制御部10は端末画像処理(図3)に復帰し、次にデータ送信処理(ステップS40)を実行する。これにより、メモリに格納された画像特徴量のデータがネットワーク102を経由してサーバ100に送信されることになる。
【0091】
〔サーバ側での処理〕
次に、サーバ100において実行される処理について説明する。すなわちサーバ制御部20は、携帯情報端末1から送信された画像特徴量のデータに基づき、画像データベース30から該当する画像データを検索する処理を実行する。
【0092】
〔画像検索処理〕
図10は、画像検索処理の手順例を示すフローチャートである。以下、画像検索処理の内容について、その手順に沿って説明する。
【0093】
ステップS200:サーバ制御部20は、検索用画像特徴量を取得する。すなわちサーバ制御部20は、上記の検索用データ受信部22にて受信プログラムを実行し、携帯情報端末1から送信された画像特徴量のデータを受信すると、そのデータを検索用画像特徴量として取得する。
【0094】
ステップS202:次にサーバ制御部20は、画像データベース30から比較対象画像特徴量を取得する。すなわちサーバ制御部20は、上記の画像検索処理部24にて検索プログラムを実行し、画像データベース30にアクセスして今回の比較対象となる画像特徴量のデータを取得する。なお画像データベース30には、予め全ての比較対象となるオリジナル画像について、それぞれの画像特徴量データが合わせて登録されている。このとき登録されているオリジナルの画像特徴量データは、上述した携帯情報端末1による画像特徴量の抽出手法と同じ手法によって求められたものである。
【0095】
ステップS204:サーバ制御部20は、今回の比較対象となる画像特徴量と検索用画像特徴量とをそのまま引き算(NOT演算)する。
【0096】
ステップS206:そしてサーバ制御部20は、先のステップS204で引き算した結果の合計値(サム結果値)をバッファメモリにひとまず保存する。なお、画像特徴量が相互に近似しているほど、引き算した結果の合計値(画像距離値)は小さくなり、逆に画像特徴量が乖離していれば、それだけ引き算した結果の合計値(画像距離値)は大きくなる。
【0097】
ステップS208:サーバ制御部20は、全てのオリジナル画像について比較(引き算)を完了したか否かを確認する。未だ全てについて完了していなければ(No)、サーバ制御部20はステップS202に戻って次の比較対象画像特徴量を取得し、先のステップS204,S206の演算を繰り返す。この後、画像データベース30内の全てのオリジナル画像について比較を完了すると(Yes)、サーバ制御部20は次のステップS210に進む。
【0098】
ステップS210:サーバ制御部20は、引き算の合計値が最小となったオリジナル画像を検索ヒット画像として特定する。このとき引き算の合計値が最小となったオリジナル画像は、上記のように検索対象の画像と最も画像特徴量が近似したものである。
【0099】
ステップS212:そしてサーバ制御部20は、検索ヒット画像として特定したオリジナル画像を検索結果として出力する。このときサーバ制御部20は、検索結果送信部26にて送信プログラムを実行し、ネットワーク102を通じて携帯情報端末1にオリジナルの画像データを送信する。またサーバ制御部20は、冊子Bに記載された商品見本の購入ページに対応するURLを送信する。
【0100】
この後、例えば携帯情報端末1の画像表示部18に表示されたオリジナルの画像をユーザが確認し、自己が購入する予定の商品に間違いないことを確認すると、送信されたURLにアクセスして商品購入の手続を実行することができる。
【0101】
以上のように、本実施形態の画像処理システムによれば、画像特徴量のデータ容量を少なくすることができるため、携帯情報端末1に搭載されたシンプルなハードウェアリソースであっても、容易に画像特徴量を抽出することができる。特に、携帯情報端末1のようなデバイスは、機種ごとの違いや個体差、撮像環境(周囲の明るさや照明)の違いによって撮像されたカラー画像の色(RGB値)に違いが現れやすいが、本実施形態ではRGB各版画像別にエッジ方向を判定し、その結果を二値化して画像特徴量を抽出しているため、色の違いに大きく影響されることなく、高精度に画像特徴量を抽出することができる。
【0102】
また、画像特徴量の抽出はエッジ方向の判定結果を二値コード化するだけであり、その演算量が少ないため、携帯情報端末1のようなシンプルなハードウェアリソースであっても、容易に演算処理することができる。
【0103】
また画像データベース30には、例えば携帯情報端末1の機種ごとに色の違いを考慮して何通りもの画像特徴量を用意しておく必要がなく、単純にオリジナル画像とその画像特徴量を登録しておくだけでよい。これにより、画像データベース30の必要容量を削減することができるとともに、事前のデータ登録作業を簡素化することができる。したがって、商品カタログ等を用いた通信販売に本実施形態の画像処理システムを適用すれば、それだけ事前の準備作業が容易であり、その作業効率を向上することができる。
【0104】
本発明は上述した一実施形態に制約されることなく、種々に変形して実施することができる。例えば、一実施形態では携帯情報端末1とサーバ100を用いてシステムを構築しているが、1台のコンピュータを用いて画像処理システムを構築してもよい。また、ネットワーク102はインターネットのような公衆通信網に限らず、ローカルエリアネットワーク(LAN)であってもよい。
【0105】
また、一実施形態では携帯情報端末1を例に挙げているが、カメラを用いた撮像や画像特徴量データを抽出するまでの処理は、例えばパーソナルコンピュータにUSBカメラを接続した状態で実行することもできるし、逆にデジタルカメラのような撮像デバイスのリソースを用いて実行することもできる。
【0106】
さらに、エッジ方向を判定する手法には、一般的な微分フィルタを用いる他の手法(例えばKirishフィルタ、Sobelフィルタ、Robinsonフィルタ等)を適用することもできる。
【0107】
また一実施形態では、カラー画像をRGB各版画像に分解した上で画像処理を行っているが(図5中のステップS100、図6)、本発明ではRGBだけでなく、CMYKの各版画像に分解して画像処理を行ってもよい。この場合も同様に、撮像時の環境によって現れる色の違いを解消し、画像特徴量を高精度に抽出することができる。ただし、一実施形態のようにRGB各版画像を用いた場合は最もデータ容量を削減することができるという利点があり、その点で一実施形態の手法は極めて優位である。
【符号の説明】
【0108】
1 携帯情報端末
10 端末制御部
11 撮像処理部
12 画像加工処理部
13 画像特徴量抽出処理部
14 データ送信処理部
20 サーバ制御部
22 検索用データ受信部
24 画像検索処理部
26 検索結果送信部
30 画像データベース
100 サーバ
102 ネットワーク
【技術分野】
【0001】
本発明は、例えば撮像素子を用いて撮像されたカラー画像に対して加工や演算等の処理を行う画像処理システム及び画像処理方法に関する。
【背景技術】
【0002】
従来、データベースに登録された多数の画像の中から任意形状の画像を検索する先行技術として、検索元の画像とデータベース内にある検索先の画像について、それぞれのブロック毎の画像特徴量同士を比較し、それらの類似度から検索結果を出力する先行技術が知られている(例えば、特許文献1参照。)。この先行技術は特に、任意形状の画像に対して外接する矩形枠を作成し、その矩形枠内で画像をブロックに分割して画像特徴量を抽出するものである。そしてこの先行技術では、ブロック内でみた画像の形状を合わせて抽出し、ブロック内の形状情報と画像特徴量とを用いてデータベースから画像を検索することとしている。
【0003】
上述した先行技術によれば、画像全体をブロックに分割し、ブロック毎の色やエッジ、テクスチャなどを画像特徴量として抽出するだけでなく、任意形状の画像に外接する矩形の範囲内で画像特徴量を抽出することができるため、背景領域部分を除外した高速な検索が可能になると考えられる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−34613号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述した先行技術は、検索元となる画像が任意形状であっても、データベースから検索対象をある程度絞り込んだ上で、高速に検索を行うことができる点で優位である。ただし、先行技術で扱う検索元の画像は、イメージスキャナ等の高精度なセンシングデバイス(コンタクトガラスと読取ヘッドを用いたもの)を使用し、良好かつ安定した撮像環境の下で得られた高品位画像である。このため先行技術には、その前提として、得られた画像の色やエッジ等をそのまま画像特徴量として使用しても、検索結果にはほとんど影響が現れないという特異な事情がある。
【0006】
これに対し、携帯電話機等のモバイル機器を用いて撮像された画像は、その撮像時の環境が多種多様であるため、その結果、得られた画像には撮像環境の違いが色の違いとして大きく現れる。また、ユーザごとに使用する機器の個体差や機種の違いによる色の違いが大きく現れることも多く、たとえ異なるユーザが同じ対象物を撮像した場合であっても、撮像環境の違いや機種の違いによってそれぞれが撮像した画像間には無限に近い色の違いが現れる。このような状況にあっては、たとえ上述した先行技術の手法を適用しても、撮像された画像間の色の違いが画像特徴量に大きく影響し、そのままでは正確な画像検索が困難になるという問題がある。
【0007】
そこで本発明は、画像ごとの色の違いに大きく影響されることなく、正確な画像の検索を可能にする技術の提供を課題としている。
【課題を解決するための手段】
【0008】
上記の課題を解決するため、本発明は画像処理システム及び画像処理方法を提供する。本発明の画像処理システム及び画像処理方法では、先ず撮像して得られたカラー画像を原色別の版画像に分解し、これら版画像をそれぞれ複数のブロック領域に分割する前処理を実行する(前処理工程)。次に、分割された個々のブロック領域について、その周辺に隣接する他のブロック領域との平均明度の違いに基づきブロック領域ごとのエッジ方向を判定する処理を版画像のそれぞれに対して行う(判定処理工程)。そして、版画像のそれぞれに対して判定処理手段により判定されたブロック領域ごとのエッジ方向をコード化し、その結果をカラー画像の画像特徴量として抽出する(抽出処理工程)。
【0009】
本発明の画像処理システム及び画像処理方法によれば、撮像されたカラー画像を原色別の版画像に分解した上で、さらに各版画像をブロック領域に分割し、それぞれのエッジ方向をコード化した結果を画像特徴量としている。このため、撮像により得られたカラー画像間に多種多様な色の違いが存在していても、その影響が画像特徴量に大きく影響することはない。すなわち、同じ対象物を異なるデバイスや撮像環境で撮像すると、得られたカラー画像間には色の違いが当然に現れるが、ブロック領域ごとのエッジ方向であれは、撮像環境やデバイスが違ったとしても、その傾向に極端な違いが生じることはない。したがって、エッジ方向をコード化した結果を画像特徴量とすれば、そこに色の違いが影響しないため、その後の正確な画像検索が可能になるという利点がある。
【0010】
また本発明の画像処理システム及び画像処理方法では、撮像して得られた画像をブロック領域に分割した上でエッジ方向を判定し、その結果をコード化したものを画像特徴量としているため、1つ1つの画素から画像特徴量を抽出した場合と比較してデータ容量を少なく抑えることができる。
【0011】
本発明において、画像特徴量の抽出を以下の態様で行うことがより好ましい。すなわち、ブロック領域ごとに判定したエッジ方向をさらに複数のグループに分類してみたとき、各グループ別に個々のブロック領域について判定されたエッジ方向がそのグループに属するか否かを二値コードで表すことにより、版画像のそれぞれに対してグループごとに全てのブロック領域についてのエッジ方向を二値コード化するものとする。
【0012】
上記の態様であれば、エッジ方向の判定結果をさらにグループ別に集約できるため、それだけ情報量を少なくすることができる。また、エッジ方向をグループ別にみた場合、単純にそのグループに属するか否かを二値コードで表すことができるため、扱うデータ量が少ない上、デジタル処理に極めて好適である。したがって、簡素なコンピュータハードウェアによる処理にも容易に適用することができ、それだけ利用の幅を拡張することができる。
【0013】
以上は画像特徴量の抽出までの処理であるが、さらに本発明の画像処理システム及び画像処理方法は、予め比較対象となる複数の画像データをその画像特徴量とともにデータベース等に登録しておくことにより、そこから画像の検索を容易に行うことができる。すなわち、本発明の画像処理システム及び画像処理方法では、撮像して得られたカラー画像について、そこから抽出された画像特徴量を、予め登録された個々の画像データについての画像特徴量と比較することにより、登録された複数の画像データの中からカラー画像に対応するべき画像データを検索することができる。
【0014】
この場合、予め登録されている画像特徴量についても、その画像データ(登録されているオリジナルの画像)を複数のブロック領域に分割し、個々のブロック領域ごとのエッジ方向をコード化した状態で表されているものとする。これにより、オリジナルの画像と撮像された画像との色の違いに影響されることなく、ブロック領域ごとのエッジ方向の傾向性から抽出した画像特徴量を比較することで、より高精度な画像検索が可能となる。
【発明の効果】
【0015】
本発明の画像処理システム及び画像処理方法は、多種多様な撮像環境下で得られた画像についても、その色の違いに影響されない画像特徴量を抽出することができる。また、当該画像特徴量を用いてオリジナル画像との比較を行い、正確に画像検索を行うことができる。
【図面の簡単な説明】
【0016】
【図1】画像処理システムの構成を概略的に示した図である。
【図2】携帯情報端末及びサーバそれぞれの構成例を示すブロック図である。
【図3】携帯情報端末の端末制御部により実行される端末画像処理の一例を示すフローチャートである。
【図4】携帯情報端末を用いて行われる撮像の様子を示す斜視図である。
【図5】画像特徴量抽出処理の内容を詳細に示したフローチャートである。
【図6】RGB各版画像エリア分割処理の流れを連続的に示すイメージ図である。
【図7】分割されたR版画像から9つのブロック領域を選択し、Prewittフィルタ処理を行った場合の一例を示す図である。
【図8】Prewittフィルタを用いたエッジ方向の判定結果を示す図である。
【図9】ブロック領域ごとのエッジ方向の判定結果とグループ別の配列の例を示した概念図である。
【図10】画像検索処理の手順例を示すフローチャートである。
【発明を実施するための形態】
【0017】
以下、本発明の画像処理システム及びこれを用いて行う画像処理方法の実施形態について説明する。
【0018】
図1は、画像処理システムの構成を概略的に示した図である。この画像処理システムは、例えば個人ユーザが所持する携帯情報端末1をはじめ、移動体通信網の基地局101、ネットワーク102及びサーバコンピュータ100から構成されている。なお画像処理システムはその実行する機能により、携帯情報端末1だけで構成される場合もあれば、携帯情報端末1とその他の要素(基地局101、ネットワーク102及びサーバコンピュータ100)とで構成される場合もある。
【0019】
携帯情報端末1は、例えばその表示画面上でHTMLデータに基づく表示を行う機能を有した携帯型の情報端末機器であり、ここでは携帯電話機が例に挙げられている。また携帯情報端末1はコンピュータとしての機能をも有しており、内蔵する記憶装置(メモリ)等に記憶されたアプリケーションプログラムを適宜読み出し、これを実行するシステムリソースを備えている。
【0020】
本実施形態の画像処理システムは、携帯情報端末1にカメラ機能(撮像機能)が付属している場合を想定している。すなわち、携帯情報端末1には図示しないカメラモジュールが内蔵されており、このカメラモジュールは、例えばCCDイメージセンサ等の撮像素子とレンズとを組み合わせて構成されている。なお携帯情報端末1は携帯電話機に限らず、通信機能とカメラ機能とを有した携帯型コンピュータやノート型のパーソナルコンピュータ等でもよい。またこれらの場合、カメラ機能は外部接続機器(USBカメラ)を用いて実現してもよい。
【0021】
基地局101は、携帯情報端末1との間で通信を行うためのアンテナを備えている。基地局101は例えばインターネット等のネットワーク102に接続されており、この状態で基地局101は、携帯情報端末1によりネットワーク102を通じて行われるデータ通信を中継する。
【0022】
ネットワーク102には、サーバコンピュータ(以下「サーバ」と呼称する)100が接続されている。サーバ100は、基地局101及びネットワーク102を経由して、携帯情報端末1との間でデータ通信を行う機能を有するほか、コンピュータとして画像検索プログラムを実行するための機能を有する。またサーバ100は画像データベース(図1には示されていない)を保有し、この画像データベース内に複数の画像データを予め登録している。サーバ100は画像検索プログラムの実行に伴い、画像データベースにアクセスして画像検索を実行する。
【0023】
図2は、携帯情報端末1及びサーバ100それぞれの構成例を示すブロック図である。なお図2中、基地局101についてはその図示を省略している。
【0024】
携帯情報端末1は、図示しないCPU(Centoral Processing Unit)やメモリ等のハードウェアリソースを有するほか、無線(RF)通信モジュールやRFアンテナ等をも内蔵している。携帯情報端末1は、これら内蔵するハードウェアリソースを用いてアプリケーションプログラムを実行するとともに、その実行に伴い無線通信モジュールを用いてインターネット102に接続することができる。
【0025】
またサーバ100は、図示しないCPU(Centoral Processing Unit)をはじめとして、メモリや周辺IC、ハードディスク等の各種のハードウェアリソースを備えている。サーバ100は、そのハードウェアリソースを用いて画像検索プログラムを実行するほか、その実行に伴い図示しないネットワークインタフェースを通じてインターネット102に接続することができる。
【0026】
また携帯情報端末1は端末制御部10を有しており、この端末制御部10は、例えば上記のCPUを用いて実現されている。また端末制御部10には、各種処理部として主に、撮像処理部11、画像加工処理部12、画像特徴量抽出処理部13及びデータ送信処理部14が組み込まれている。このうち撮像処理部11は、上記のカメラモジュールを用いて撮像を行い、カラー画像を取得する処理を実行する。また画像加工処理部12は、撮像されたカラー画像をさらに加工する処理を実行する。画像特徴量抽出処理部13は、加工された画像から画像特徴量を抽出する処理を実行する。またデータ送信処理部14は、上記の無線通信モジュールを用いて画像特徴量のデータを送信する。なお、各種処理部による処理については、さらに詳しく後述する。また各種処理部の構成は、例えばCPUにより実行されるプログラムモジュールを用いて実現することができる。
【0027】
その他に携帯情報端末1は、操作キー17や画像表示部18等を備えている。操作キー17は、ユーザのプッシュ操作(押下)を受け付ける各種キーやボタン等のスイッチであり、画像表示部18は、例えば携帯情報端末1に付属する液晶ディスプレイである。端末制御部10は、携帯情報端末1のユーザが操作キー17を操作すると、これに応じて各種処理部の機能を働かせる。また、各種処理部で行われる処理の過程又は結果に関する情報は、必要に応じて画像表示部18に表示される。ユーザは画像表示部18の表示を確認しながら操作キー17を操作し、端末制御部10を動作させることができる。
【0028】
一方、サーバ100はサーバ制御部20を有しており、このサーバ制御部20もまた、サーバ100において上記のCPUを用いて実現することができる。またサーバ100は画像データベース30を保有しており、この画像データベース30は、例えば上記のハードディスクを用いて実現されている。なお画像データベース30には、システムにおいてオリジナル(原画像)となる複数の画像データがその画像特徴量とともに予め登録(記録)されているものとする。
【0029】
サーバ制御部20には、各種処理部として検索用データ受信部22、画像検索処理部24及び検索結果送信部26が組み込まれている。このうち検索用データ受信部22は、携帯情報端末1から送信される画像特徴量のデータを受信する処理を実行する。また画像検索処理部24は、受信した画像特徴量データに基づき、画像データベース30内から対応(マッチ)する画像データを検索する処理を実行する。検索結果送信部26は、検索で得られた結果(商品名、商品番号等)を携帯情報端末1に送信する処理を実行する。
【0030】
次に、本実施形態の画像処理システムにより実行される画像処理の内容について説明する。また以下の説明により、本発明の画像処理方法を実行するための各工程の内容についても明らかとなる。
【0031】
本実施形態の画像処理システムは主に、(1)撮像して得た画像(カラー画像)から画像特徴量を抽出する処理、(2)抽出した画像特徴量に基づいて画像検索(画像のマッチング)を行う処理の2つを実行することができる。なお、これら(1)と(2)の処理の間には、携帯情報端末1からネットワーク102を通じて画像特徴量データをサーバ100に送信する送信処理が実行される。
【0032】
先ず、上記(1)の撮像して得たカラー画像から画像特徴量を抽出する処理とともに、画像特徴量データを送信するまでの処理について説明する。ここまでの処理は、携帯情報端末1の各種処理部を用いて実行することができる。
【0033】
〔携帯情報端末の処理〕
図3は、携帯情報端末1の端末制御部10により実行される端末画像処理の一例を示すフローチャートである。この処理では、カラー画像の撮像からその加工、画像特徴量の抽出、そして画像特徴量データの送信までの処理が順に行われる。以下、手順例に沿って説明する。
【0034】
〔撮像処理〕
ステップS10:先ず端末制御部10は、撮像処理を実行する。この処理では、端末制御部10は上記の撮像処理部11にて撮像アプリケーションを実行し、図示しないカメラモジュールを用いた撮像による画像の取得を行う。なお、具体的な撮像手法の例については、別の図面を参照しながら後述する。
【0035】
〔画像サイズ加工処理〕
ステップS20:次に端末制御部10は、画像サイズ加工処理を実行する。この処理では、端末制御部10は上記の画像加工処理部12にて画像加工アプリケーションを実行し、撮像して得られたカラー画像のサイズを加工する。特に図示していないが、ここでは撮像して得られたカラー画像の必要領域を確定するため、画像サイズを例えば225×225ピクセルのサイズに加工するものとする。なお画像サイズの加工は、例えばカメラモジュールによる標準的な撮像サイズ(例えば240×320)をベースとして、その上下及び左右の画素を均等にトリミングし、画像サイズを225×225ピクセルにするものとする。
【0036】
〔画像特徴量抽出処理〕
ステップS30:また端末制御部10は、画像特徴量抽出処理を実行する。この処理では、端末制御部10は先の画像サイズ加工処理(ステップS20)で加工した225×225ピクセルのカラー画像を例えばRGB(原色)各版の画像に分解し、さらに各版画像をブロック領域に分割する。さらに端末制御部10は、分割したブロック領域をフィルタ処理してエッジ方向を判定するとともに、その判定結果に基づいて画像特徴量を抽出する。なお、具体的な抽出手法の例については、別の図面を参照しながら後述する。
【0037】
〔データ送信処理〕
ステップS40:そして端末制御部10は、データ送信処理を実行する。この処理では、端末制御部10は先の画像特徴量抽出処理(ステップS30)で抽出した画像特徴量のデータを送信する。
【0038】
〔撮像処理の例〕
図4は、携帯情報端末1を用いて行われる撮像の様子を示す斜視図である。上記の撮像処理(ステップS10)の実行に伴い、端末制御部10は撮像アプリケーションを起動する。これに伴い、携帯情報端末1の図示しないカメラモジュールがアクティブとなる。
【0039】
本実施形態の画像処理システムは、携帯情報端末1のユーザが例えば紙媒体として頒布された冊子B(カタログ、パンフレット、雑誌等)の商品見本をカメラで撮像し、そのデータを送信することで通信販売による商品の注文を行う、という商取引に適用することができる。
【0040】
ユーザに頒布された冊子Bの紙面には、通信販売の商品見本となるカラーのサンプル画像Imとともにその説明書き(商品番号、商品の詳細、販売価格等)が印刷されている。そしてユーザは、携帯情報端末1に付属するカメラモジュールの撮像領域内に紙面上のサンプル画像Imを位置付けた状態で撮像を行う。このとき撮像領域は、例えば携帯情報端末1の画面上にリアルタイムで表示される。サンプル画像Imが撮像領域内に位置付けられた状態で、ユーザが携帯情報端末1のシャッターボタンを押下すると、携帯情報端末1においてサンプル画像Imを撮像したカラー画像が取得される。このとき取得されたカラー画像は、例えば携帯情報端末1の図示しないメモリ(RAM)に格納される。
【0041】
〔画像特徴量抽出処理〕
次に図5は、上述した画像特徴量抽出処理の内容をさらに詳細に示したフローチャートである。以下、図5のフローチャートに沿って処理の内容を説明する。
【0042】
ステップS100:先ず端末制御部10は、RGB各版画像エリア分割処理を実行する。この処理において、端末制御部10は上記のように画像加工処理部12にて画像加工アプリケーションを起動し、225×225ピクセルサイズのカラー画像をRGB各版の原色別の画像に分解する。さらに端末制御部10は、分解したRGB各版の画像をそれぞれ9×9ピクセルサイズのブロック領域に分割する。これにより、RGB各版の画像について、それぞれ25×25のブロック領域が形成されることになる(前処理工程)。
【0043】
図6は、上述したRGB各版画像エリア分割処理の流れを連続的に示すイメージ図である。
【0044】
図6中(A):処理開始時において、上記のようにカラー画像は225×225ピクセルサイズに加工されている。
【0045】
図6中(B):次に端末制御部10は、カラー画像をR(赤)版画像、G(緑)版画像及びB(青)版画像の3原色別に分解する。なお分解された各版画像は、元のカラー画像と同じ225×225ピクセルサイズを維持している。
【0046】
図6中(C):そして端末制御部10は、RGB各版画像をさらに25×25のブロック領域に分割する。これにより各ブロックは、9×9ピクセルサイズとなる。
【0047】
以上のRGB各版画像エリア分割処理を経て、次に端末制御部10はRGB各版別に画像特徴量データを作成する。以下、画像特徴量データの作成手順について詳しく説明する。
【0048】
〔図5:画像特徴量抽出処理を参照〕
ステップS102:端末制御部10は、次に抽出の対象となる版画像を選択する。なお、初回の抽出であれば例えばR版画像を選択するものとし、2回目の抽出ではG版画像、3回目の抽出ではB版画像をそれぞれ選択するものとする。
【0049】
ステップS104:次に端末制御部10は、先のRGB各版画像エリア分割処理(ステップS100)で25×25(=625ブロック)に分割したブロック領域ごとに画素平均値を算出する。画素平均値は、例えば各ブロック領域に含まれる全ての画素(9×9=81画素)の明度(輝度)の平均値として算出することができる。
【0050】
〔エッジ方向の判定〕
ステップS105:端末制御部10は、今回の注目エリアとなる次のブロック領域を指定する。初回であれば、版画像内の左上角のブロック領域が今回の注目エリアとなる。以下同様に、2回目であれば最上段の左から2つ目のブロック領域が今回の注目エリアとなり、3回目であれば最上段の左から3つ目のブロック領域となる。そして、25回目では右上角のブロック領域が今回の注目エリアとなり、次の26回目では2段目の左端に位置するブロック領域が今回の注目エリアとなる。
【0051】
ステップS106:次に端末制御部10は、今回の注目エリアに指定したブロック領域についてエッジ方向を判定する(判定処理工程)。具体的には、以下の手順を実行する。
【0052】
(1)端末制御部10は、今回の注目エリアに該当する1つのブロック領域とその周辺に隣接する他の8つのブロック領域を合わせて選択する。なお、注目エリアが画像の周縁に位置するブロック領域である場合、隣接する他のブロック領域は5つ(注目エリアが縁辺のブロック領域の場合)又は3つ(注目エリアが角のブロック領域の場合)となる。
【0053】
(2)次に端末制御部10は、選択したブロック領域(9つ、6つ、4つ)に対して例えばPrewittフィルタ(微分フィルタ)を用いた処理を行い、今回の注目エリアとなるブロック領域についてエッジ方向を判定する。
【0054】
図7は、分割されたR版画像から9つのブロック領域を選択し、Prewittフィルタ処理を行った場合の一例を示す図である。なお図示していないが、G版画像及びB版画像についても同様にブロック領域を選択し、Prewittフィルタ処理が行われるものとする。
【0055】
図7中(A):上記のようにR版画像は、25×25のブロック領域に分割されている。なお各ブロック領域は、9×9ピクセルサイズである。このように、本実施形態では個々のブロック領域を9×9ピクセルサイズに調整することで、例えば以下の利点が得られる。
【0056】
(1)元のカラー画像に含まれるノイズの影響を抑えることができる。すなわち、9×9ピクセル程度のサイズを確保することで、ブロック領域内の全体でみた場合にノイズの影響を希釈することができる。
【0057】
(2)撮像時の画像の細かな位置ずれに対応することができる。通常、撮像された画像がサーバ100側の画像データベース30に登録されているオリジナルの画像とピクセル単位で一致することはほとんどないため、この後の画像検索において9×9ピクセルサイズのブロック領域を最小の比較単位とすることにより、撮像時の画像の位置ずれをある程度まで吸収することができる。
【0058】
(3)大まかな特徴を表すことができる。すなわち、9×9ピクセル程度のサイズを確保することで、ブロック領域内には画像としての大まかな特徴(色味、明るさ、エッジ方向等の特徴)が現れやすくなるため、その後の比較が容易である。
【0059】
(4)検索スピードを考慮した場合、ブロック領域分割によりデータ容量を抑えることができる。すなわち、RGB各版画像のサイズは225×225ピクセルサイズであるが、これを25×25のブロック領域に分割することで、演算処理に用いるデータ容量を削減することができる。これにより、後の画像検索時の処理速度を向上することができる。
【0060】
図7中(B):あるブロック領域を注目エリア(図中に「★」印を付す)に指定した場合、その周辺に隣接する他の8つのブロック領域が合わせて選択される。この時点で各ブロック領域には、それぞれの画素平均値が求められている。そして、選択された9つのブロック領域に対して上記のPrewittフィルタ処理を行い、注目エリアのエッジ方向を判定する。
【0061】
図8は、Prewittフィルタを用いたエッジ方向の判定結果を示す図である。各ブロック領域について判定されるエッジ方向は、図8中(A)〜(H)に示されるように、上方向(「方向0」とする)、左上方向(「方向1」とする)、左方向(「方向2」とする)、左下方向(「方向3」とする)、下方向(「方向4」とする)、右下方向(「方向5」とする)、右方向(「方向6」とする)又は右上方向(「方向7」とする)のいずれかとなる。
【0062】
またPrewittフィルタを用いたエッジ方向の判定は、例えば図示しない3×3マトリクスのマスクパターンを8種類用いて行うことができる。なお、マスクパターンを用いたテンプレートマッチングによるエッジ方向の抽出手法には公知のものを適用できるため、ここではその詳細を省略する。
【0063】
〔図5:画像特徴量抽出処理を参照〕
ステップS108:今回の注目エリアとなるブロック領域についてエッジ方向を判定すると、次に端末制御部10は、判定結果が上記の「方向0」,「方向1」,「方向2」のいずれかに該当するか否かを判断する。これらいずれかに該当していれば(Yes)、端末制御部10は次にステップS110を実行する。
【0064】
ステップS110:この場合、端末制御部10は今回の注目エリアを「Aグループ」に属するものとし、そのブロック領域に対して「Aグループの配列」にフラグ1を立てる処理を実行する。なお、今回の注目エリアが「Aグループ」に属していない場合、「Aグループの配列」においてそのブロック領域のフラグは0となる(以下も同様)。
【0065】
ここで、本実施形態では8つのエッジ方向(「方向0」〜「方向7」)を4つのグループ(「Aグループ」、「Bグループ」、「Cグループ」及び「Dグループ」)に分類しており、このうち「方向0」,「方向1」,「方向2」を「Aグループ」とし、「方向2」,「方向3」,「方向4」を「Bグループ」、「方向4」,「方向5」,「方向6」を「Cグループ」、そして「方向6」,「方向7」,「方向0」を「Dグループ」としている。このように、8つのエッジ方向(「方向0」〜「方向7」)を4つのグループ(A〜D)に分類した上で、A〜Dグループのそれぞれに属するか否かでブロック毎のエッジ方向を二値化する(フラグの0又は1で表す)ことにより、全体としてデータ容量を削減しつつ、グループ別に集約した形で各エッジ方向(「方向0」〜「方向7」)の特徴を表すことができる。
【0066】
先のステップS108を含め、以下のステップS112,S116,S120では、今回の注目エリアとなるブロック領域について判定されたエッジ方向が「Aグループ」〜「Dグループ」のそれぞれに属するか否かを判断するものであり、属する場合はそのグループの配列にフラグ1が立つことになる。なお、「Aグループ」〜「Dグループ」別の配列及びそのフラグについては別の図面を用いてさらに後述する。
【0067】
上記のステップS110を実行するか、もしくは先のステップS108でいずれの方向にも該当しないと判断した場合(ステップS108:No)、端末制御部10は次にステップS112を実行する。
【0068】
ステップS112:次に端末制御部10は、判定結果が上記の「方向2」,「方向3」,「方向4」のいずれかに該当するか否かを判断する。これらいずれかに該当していれば(Yes)、端末制御部10は次にステップS114を実行する。
【0069】
ステップS114:この場合、端末制御部10は今回の注目エリアを「Bグループ」に属するものとし、そのブロック領域に対して「Bグループの配列」にフラグ1を立てる処理を実行する。
【0070】
上記のステップS114を実行するか、もしくは先のステップS112でいずれの方向にも該当しないと判断した場合(ステップS112:No)、端末制御部10は次にステップS116を実行する。
【0071】
ステップS116:次に端末制御部10は、判定結果が上記の「方向4」,「方向5」,「方向6」のいずれかに該当するか否かを判断する。これらいずれかに該当していれば(Yes)、端末制御部10は次にステップS118を実行する。
【0072】
ステップS118:この場合、端末制御部10は今回の注目エリアを「Cグループ」に属するものとし、そのブロック領域に対して「Cグループの配列」にフラグ1を立てる処理を実行する。
【0073】
上記のステップS118を実行するか、もしくは先のステップS116でいずれの方向にも該当しないと判断した場合(ステップS116:No)、端末制御部10は次にステップS120を実行する。
【0074】
ステップS120:次に端末制御部10は、判定結果が上記の「方向6」,「方向7」,「方向0」のいずれかに該当するか否かを判断する。これらいずれかに該当していれば(Yes)、端末制御部10は次にステップS122を実行する。
【0075】
ステップS122:この場合、端末制御部10は今回の注目エリアを「Dグループ」に属するものとし、そのブロック領域に対して「Dグループの配列」にフラグ1を立てる処理を実行する。
【0076】
上記のステップS122を実行するか、もしくは先のステップS120でいずれの方向にも該当しないと判断した場合(ステップS120:No)、端末制御部10は次にステップS123を実行する。
【0077】
ステップS123:そして端末制御部10は、全てのブロック領域についてステップS106〜ステップS120(場合によりステップS122)までの処理が完了したか否かを確認する。未だ完了していなければ(No)、端末制御部10はステップS105に戻り、次の注目エリアとなるブロック領域を指定する。そして端末制御部10は、次の注目エリアとなるブロック領域についてステップS106〜ステップS120(場合によりステップS122)までの処理を実行する。
【0078】
図9は、ブロック領域ごとのエッジ方向の判定結果とグループ別の配列の例を示した概念図である。なお図9中、ブロック領域(25×25=625ブロック)の全ては示されておらず、一部を「…」で表して省略している。
【0079】
図9中(O):ここでは個々のブロック領域について、エッジ方向の判定結果が「0」〜「7」の数値で示されている。なお「0」〜「7」の数値は、上記の「方向0」〜「方向7」を表している。
【0080】
〔Aグループの配列〕
図9中(A):ここでは個々のブロック領域について、「Aグループの配列」にフラグ1を立てた箇所がグレー(網掛け)で示されている。すなわち、個々のブロック領域について、そのエッジ方向の判定結果が「方向0」,「方向1」,「方向2」のいずれかに該当する場合、そのブロック領域は「Aグループ」に属することとなり、その位置にフラグ1が立てられる(図5中のステップS110)。なお、白抜きのブロック領域はフラグ0である(以下も同様)。
【0081】
〔Bグループの配列〕
図9中(B):次に、ここでは個々のブロック領域について、「Bグループの配列」にフラグ1を立てた箇所がグレー(網掛け)で示されている。個々のブロック領域について、そのエッジ方向の判定結果が「方向2」,「方向3」,「方向4」のいずれかに該当する場合、そのブロック領域は「Bグループ」に属することとなり、その位置にフラグ1が立てられる(図5中のステップS114)。
【0082】
〔Cグループの配列〕
図9中(C):同様に、ここでは個々のブロック領域について、「Cグループの配列」にフラグ1を立てた箇所がグレー(網掛け)で示されている。個々のブロック領域について、そのエッジ方向の判定結果が「方向4」,「方向5」,「方向6」のいずれかに該当する場合、そのブロック領域は「Cグループ」に属することとなり、その位置にフラグ1が立てられる(図5中のステップS118)。
【0083】
〔Dグループの配列〕
図9中(D):そして、ここでは個々のブロック領域について、「Dグループの配列」にフラグ1を立てた箇所がグレー(網掛け)で示されている。個々のブロック領域について、そのエッジ方向の判定結果が「方向6」,「方向7」,「方向0」のいずれかに該当する場合、そのブロック領域は「Dグループ」に属することとなり、その位置にフラグ1が立てられる(図5中のステップS122)。
【0084】
以上のように、あるブロック領域についてエッジ方向の判定結果が「方向0」であれば、そのブロック領域には「Aグループの配列」と「Dグループの配列」にそれぞれフラグ1が立つことになる。一方、あるブロック領域についてエッジ方向の判定結果が「方向1」であれば、そのブロック領域には「Aグループの配列」だけにフラグ1が立つことになる。同様に、あるブロック領域についてエッジ方向の判定結果が「方向2」であれば、そのブロック領域には「Aグループの配列」と「Bグループの配列」にそれぞれフラグ1が立つことになり、あるブロック領域についてエッジ方向の判定結果が「方向3」であれば、そのブロック領域には「Bグループの配列」だけにフラグ1が立つことになる。さらに、あるブロック領域についてエッジ方向の判定結果が「方向4」であれば、そのブロック領域には「Bグループの配列」と「Cグループの配列」にそれぞれフラグ1が立つことになり、あるブロック領域についてエッジ方向の判定結果が「方向5」であれば、そのブロック領域には「Cグループの配列」だけにフラグ1が立つことになる。そして、あるブロック領域についてエッジ方向の判定結果が「方向6」であれば、そのブロック領域には「Cグループの配列」と「Dグループの配列」にそれぞれフラグ1が立つことになり、あるブロック領域についてエッジ方向の判定結果が「方向7」であれば、そのブロック領域には「Dグループの配列」だけにフラグ1が立つことになる。
【0085】
いずれの場合も、フラグ1を立てた箇所は二値コードの「1」で表され、フラグを立てない箇所は二値コードの「0」で表される。その結果、25×25の全てのブロック領域は、各グループ別に「0」又は「1」の二値コードで表されることになる。
【0086】
例えば、図9中(A)に示される例では、画像内のブロック領域を左上から右下までの並び順で二値コードをシリアルに表すと、「1,0,・・・,1,0,0,1,・・・,1,1,1,0,・・・,0,0,・・・・・・・,1,1,・・・,0,1,1,1,・・・,1,1,1,1,・・・,0,0」となる。なお、途中の「・・・」は省略した部分である。
【0087】
このように、本実施形態では8つあるエッジ方向(「方向0」〜「方向7」)を4つのグループに分類し、個々のブロック領域が各グループに属するか否かを二値コード化して表すことにより、グループ別に表された二値のデータを画像特徴量として抽出することができる(抽出処理工程)。
【0088】
〔図5:画層特徴量抽出処理を参照〕
ステップS124:端末制御部10は、ここまでの処理がRGB各版画像の全てについて完了したか否かを確認する。未だ全版について完了していなければ(No)、端末制御部10はステップS102に戻って次の版画像を選択し、ステップS104〜ステップS123までの手順を実行する。この後、全ての版画像について処理が完了すると(ステップS124:Yes)、端末制御部10は次のステップS126に進む。
【0089】
ステップS126:端末制御部10は、画像特徴量データ格納処理を実行する。この処理では、端末制御部10は先のステップS108〜ステップS120を通じてRGB各版画像別に得られた二値データの画像特徴量をメモリに格納する。具体的には、画像内のブロック領域を左上から右下までの並び順で、かつ、R版画像の「Aグループ」→G版画像の「Aグループ」→B版画像の「Aグループ」→R版画像の「Bグループ」→G版画像の「Bグループ」→B版画像の「Bグループ」→R版画像の「Cグループ」→G版画像の「Cグループ」→B版画像の「Cグループ」→R版画像の「Dグループ」→G版画像の「Dグループ」→B版画像の「Dグループ」の順にそれぞれの二値コードをシリアルに並べて連結し、これらを画像特徴量データとして格納する。このように、二値コードをシリアルデータとして格納することにより、データの位置情報(ブロック領域の位置)も画像特徴量として使用することができる。
【0090】
以上の手順を終えると、端末制御部10は端末画像処理(図3)に復帰し、次にデータ送信処理(ステップS40)を実行する。これにより、メモリに格納された画像特徴量のデータがネットワーク102を経由してサーバ100に送信されることになる。
【0091】
〔サーバ側での処理〕
次に、サーバ100において実行される処理について説明する。すなわちサーバ制御部20は、携帯情報端末1から送信された画像特徴量のデータに基づき、画像データベース30から該当する画像データを検索する処理を実行する。
【0092】
〔画像検索処理〕
図10は、画像検索処理の手順例を示すフローチャートである。以下、画像検索処理の内容について、その手順に沿って説明する。
【0093】
ステップS200:サーバ制御部20は、検索用画像特徴量を取得する。すなわちサーバ制御部20は、上記の検索用データ受信部22にて受信プログラムを実行し、携帯情報端末1から送信された画像特徴量のデータを受信すると、そのデータを検索用画像特徴量として取得する。
【0094】
ステップS202:次にサーバ制御部20は、画像データベース30から比較対象画像特徴量を取得する。すなわちサーバ制御部20は、上記の画像検索処理部24にて検索プログラムを実行し、画像データベース30にアクセスして今回の比較対象となる画像特徴量のデータを取得する。なお画像データベース30には、予め全ての比較対象となるオリジナル画像について、それぞれの画像特徴量データが合わせて登録されている。このとき登録されているオリジナルの画像特徴量データは、上述した携帯情報端末1による画像特徴量の抽出手法と同じ手法によって求められたものである。
【0095】
ステップS204:サーバ制御部20は、今回の比較対象となる画像特徴量と検索用画像特徴量とをそのまま引き算(NOT演算)する。
【0096】
ステップS206:そしてサーバ制御部20は、先のステップS204で引き算した結果の合計値(サム結果値)をバッファメモリにひとまず保存する。なお、画像特徴量が相互に近似しているほど、引き算した結果の合計値(画像距離値)は小さくなり、逆に画像特徴量が乖離していれば、それだけ引き算した結果の合計値(画像距離値)は大きくなる。
【0097】
ステップS208:サーバ制御部20は、全てのオリジナル画像について比較(引き算)を完了したか否かを確認する。未だ全てについて完了していなければ(No)、サーバ制御部20はステップS202に戻って次の比較対象画像特徴量を取得し、先のステップS204,S206の演算を繰り返す。この後、画像データベース30内の全てのオリジナル画像について比較を完了すると(Yes)、サーバ制御部20は次のステップS210に進む。
【0098】
ステップS210:サーバ制御部20は、引き算の合計値が最小となったオリジナル画像を検索ヒット画像として特定する。このとき引き算の合計値が最小となったオリジナル画像は、上記のように検索対象の画像と最も画像特徴量が近似したものである。
【0099】
ステップS212:そしてサーバ制御部20は、検索ヒット画像として特定したオリジナル画像を検索結果として出力する。このときサーバ制御部20は、検索結果送信部26にて送信プログラムを実行し、ネットワーク102を通じて携帯情報端末1にオリジナルの画像データを送信する。またサーバ制御部20は、冊子Bに記載された商品見本の購入ページに対応するURLを送信する。
【0100】
この後、例えば携帯情報端末1の画像表示部18に表示されたオリジナルの画像をユーザが確認し、自己が購入する予定の商品に間違いないことを確認すると、送信されたURLにアクセスして商品購入の手続を実行することができる。
【0101】
以上のように、本実施形態の画像処理システムによれば、画像特徴量のデータ容量を少なくすることができるため、携帯情報端末1に搭載されたシンプルなハードウェアリソースであっても、容易に画像特徴量を抽出することができる。特に、携帯情報端末1のようなデバイスは、機種ごとの違いや個体差、撮像環境(周囲の明るさや照明)の違いによって撮像されたカラー画像の色(RGB値)に違いが現れやすいが、本実施形態ではRGB各版画像別にエッジ方向を判定し、その結果を二値化して画像特徴量を抽出しているため、色の違いに大きく影響されることなく、高精度に画像特徴量を抽出することができる。
【0102】
また、画像特徴量の抽出はエッジ方向の判定結果を二値コード化するだけであり、その演算量が少ないため、携帯情報端末1のようなシンプルなハードウェアリソースであっても、容易に演算処理することができる。
【0103】
また画像データベース30には、例えば携帯情報端末1の機種ごとに色の違いを考慮して何通りもの画像特徴量を用意しておく必要がなく、単純にオリジナル画像とその画像特徴量を登録しておくだけでよい。これにより、画像データベース30の必要容量を削減することができるとともに、事前のデータ登録作業を簡素化することができる。したがって、商品カタログ等を用いた通信販売に本実施形態の画像処理システムを適用すれば、それだけ事前の準備作業が容易であり、その作業効率を向上することができる。
【0104】
本発明は上述した一実施形態に制約されることなく、種々に変形して実施することができる。例えば、一実施形態では携帯情報端末1とサーバ100を用いてシステムを構築しているが、1台のコンピュータを用いて画像処理システムを構築してもよい。また、ネットワーク102はインターネットのような公衆通信網に限らず、ローカルエリアネットワーク(LAN)であってもよい。
【0105】
また、一実施形態では携帯情報端末1を例に挙げているが、カメラを用いた撮像や画像特徴量データを抽出するまでの処理は、例えばパーソナルコンピュータにUSBカメラを接続した状態で実行することもできるし、逆にデジタルカメラのような撮像デバイスのリソースを用いて実行することもできる。
【0106】
さらに、エッジ方向を判定する手法には、一般的な微分フィルタを用いる他の手法(例えばKirishフィルタ、Sobelフィルタ、Robinsonフィルタ等)を適用することもできる。
【0107】
また一実施形態では、カラー画像をRGB各版画像に分解した上で画像処理を行っているが(図5中のステップS100、図6)、本発明ではRGBだけでなく、CMYKの各版画像に分解して画像処理を行ってもよい。この場合も同様に、撮像時の環境によって現れる色の違いを解消し、画像特徴量を高精度に抽出することができる。ただし、一実施形態のようにRGB各版画像を用いた場合は最もデータ容量を削減することができるという利点があり、その点で一実施形態の手法は極めて優位である。
【符号の説明】
【0108】
1 携帯情報端末
10 端末制御部
11 撮像処理部
12 画像加工処理部
13 画像特徴量抽出処理部
14 データ送信処理部
20 サーバ制御部
22 検索用データ受信部
24 画像検索処理部
26 検索結果送信部
30 画像データベース
100 サーバ
102 ネットワーク
【特許請求の範囲】
【請求項1】
撮像して得られたカラー画像を原色別の版画像に分解し、これら版画像をそれぞれ複数のブロック領域に分割する前処理手段と、
分割された個々の前記ブロック領域について、その周辺に隣接する他の前記ブロック領域との平均明度の違いに基づき前記ブロック領域ごとのエッジ方向を判定する処理を前記版画像のそれぞれに対して行う判定処理手段と、
前記版画像のそれぞれに対して前記判定処理手段により判定された前記ブロック領域ごとのエッジ方向をコード化し、その結果を前記カラー画像の画像特徴量として抽出する抽出処理手段と
を備えた画像処理システム。
【請求項2】
請求項1に記載の画像処理システムにおいて、
前記抽出処理手段は、
エッジ方向を複数のグループに分類してみたとき、各グループ別に個々の前記ブロック領域について判定されたエッジ方向がそのグループに属するか否かを二値コードで表すことにより、前記版画像のそれぞれに対して前記グループごとに全ての前記ブロック領域についてのエッジ方向を二値コード化することを特徴とする画像処理システム。
【請求項3】
請求項1又は2に記載の画像処理システムにおいて、
予め比較対象となる複数の画像データをその画像特徴量とともに登録する画像データ登録手段と、
撮像して得られた前記カラー画像について、前記抽出処理手段により抽出された画像特徴量を前記画像データ登録手段に登録された個々の前記画像データについての画像特徴量と比較することにより、前記画像データ登録手段に登録された複数の前記画像データの中から前記カラー画像に対応するべき前記画像データを検索する検索処理手段と
をさらに備えた画像処理システム。
【請求項4】
撮像して得られたカラー画像を原色別の版画像に分解し、これら版画像をそれぞれ複数のブロック領域に分割する前処理工程と、
前記前処理工程で分割された個々の前記ブロック領域について、その周辺に隣接する他の前記ブロック領域との平均明度の違いに基づき前記ブロック領域ごとのエッジ方向を判定する処理を前記版画像のそれぞれに対して行う判定処理工程と、
前記版画像のそれぞれに対して前記判定処理工程で判定された前記ブロック領域ごとのエッジ方向をコード化し、その結果を前記カラー画像の画像特徴量として抽出する抽出処理工程と
を有する画像処理方法。
【請求項5】
請求項4に記載の画像処理方法において、
前記抽出処理工程では、
エッジ方向を複数のグループに分類してみたとき、各グループ別に個々の前記ブロック領域について判定されたエッジ方向がそのグループに属するか否かを二値コードで表すことにより、前記版画像のそれぞれに対して前記グループごとに全ての前記ブロック領域についてのエッジ方向を二値コード化することを特徴とする画像処理方法。
【請求項6】
請求項4又は5に記載の画像処理方法において、
予め複数の画像データがその画像特徴量とともに登録された画像データベースにアクセスし、この画像データベースに登録された個々の前記画像データについての画像特徴量と前記抽出処理工程を通じて抽出された画像特徴量とを比較することにより、前記画像データベースに登録された複数の前記画像データの中から前記カラー画像に対応するべき前記画像データを検索する検索処理工程と
をさらに有する画像処理方法。
【請求項1】
撮像して得られたカラー画像を原色別の版画像に分解し、これら版画像をそれぞれ複数のブロック領域に分割する前処理手段と、
分割された個々の前記ブロック領域について、その周辺に隣接する他の前記ブロック領域との平均明度の違いに基づき前記ブロック領域ごとのエッジ方向を判定する処理を前記版画像のそれぞれに対して行う判定処理手段と、
前記版画像のそれぞれに対して前記判定処理手段により判定された前記ブロック領域ごとのエッジ方向をコード化し、その結果を前記カラー画像の画像特徴量として抽出する抽出処理手段と
を備えた画像処理システム。
【請求項2】
請求項1に記載の画像処理システムにおいて、
前記抽出処理手段は、
エッジ方向を複数のグループに分類してみたとき、各グループ別に個々の前記ブロック領域について判定されたエッジ方向がそのグループに属するか否かを二値コードで表すことにより、前記版画像のそれぞれに対して前記グループごとに全ての前記ブロック領域についてのエッジ方向を二値コード化することを特徴とする画像処理システム。
【請求項3】
請求項1又は2に記載の画像処理システムにおいて、
予め比較対象となる複数の画像データをその画像特徴量とともに登録する画像データ登録手段と、
撮像して得られた前記カラー画像について、前記抽出処理手段により抽出された画像特徴量を前記画像データ登録手段に登録された個々の前記画像データについての画像特徴量と比較することにより、前記画像データ登録手段に登録された複数の前記画像データの中から前記カラー画像に対応するべき前記画像データを検索する検索処理手段と
をさらに備えた画像処理システム。
【請求項4】
撮像して得られたカラー画像を原色別の版画像に分解し、これら版画像をそれぞれ複数のブロック領域に分割する前処理工程と、
前記前処理工程で分割された個々の前記ブロック領域について、その周辺に隣接する他の前記ブロック領域との平均明度の違いに基づき前記ブロック領域ごとのエッジ方向を判定する処理を前記版画像のそれぞれに対して行う判定処理工程と、
前記版画像のそれぞれに対して前記判定処理工程で判定された前記ブロック領域ごとのエッジ方向をコード化し、その結果を前記カラー画像の画像特徴量として抽出する抽出処理工程と
を有する画像処理方法。
【請求項5】
請求項4に記載の画像処理方法において、
前記抽出処理工程では、
エッジ方向を複数のグループに分類してみたとき、各グループ別に個々の前記ブロック領域について判定されたエッジ方向がそのグループに属するか否かを二値コードで表すことにより、前記版画像のそれぞれに対して前記グループごとに全ての前記ブロック領域についてのエッジ方向を二値コード化することを特徴とする画像処理方法。
【請求項6】
請求項4又は5に記載の画像処理方法において、
予め複数の画像データがその画像特徴量とともに登録された画像データベースにアクセスし、この画像データベースに登録された個々の前記画像データについての画像特徴量と前記抽出処理工程を通じて抽出された画像特徴量とを比較することにより、前記画像データベースに登録された複数の前記画像データの中から前記カラー画像に対応するべき前記画像データを検索する検索処理工程と
をさらに有する画像処理方法。
【図2】
【図3】
【図5】
【図9】
【図10】
【図1】
【図4】
【図6】
【図7】
【図8】
【図3】
【図5】
【図9】
【図10】
【図1】
【図4】
【図6】
【図7】
【図8】
【公開番号】特開2011−28374(P2011−28374A)
【公開日】平成23年2月10日(2011.2.10)
【国際特許分類】
【出願番号】特願2009−171139(P2009−171139)
【出願日】平成21年7月22日(2009.7.22)
【出願人】(000162113)共同印刷株式会社 (488)
【Fターム(参考)】
【公開日】平成23年2月10日(2011.2.10)
【国際特許分類】
【出願日】平成21年7月22日(2009.7.22)
【出願人】(000162113)共同印刷株式会社 (488)
【Fターム(参考)】
[ Back to top ]