(57)【要約】【課題】  Sobelフィルタなどを用いる手法に比べて高速であり、かつ、画像検索などに用いるのに十分なエッジ特徴を得る為の技術を提供すること。【解決手段】  注目image-blockのエッジ強度が、移動後の注目image-blockのエッジ強度、移動方向に注目image-blockと隣接するimage-blockのエッジ強度の何れよりも大きい場合（Ｓ７１１０，Ｓ７１２０）には、注目image-blockのエッジ強度、方向を、移動後の注目image-blockのエッジ強度、方向に更新する（Ｓ７１３０）。【選択図】    図７
2006127056.tif 000002
【特許請求の範囲】
【請求項１】
画像を複数の領域に分割する分割工程と、
注目領域の画像からエッジに係る情報を求める第１のエッジ情報計算工程と、
前記注目領域を前記画像内で所定方向に１矩形のサイズ以下のぶんだけ移動させた場合に、移動後の前記注目領域の画像からエッジに係る情報を求める第２のエッジ情報計算工程と、
前記所定方向に前記注目領域と隣接する領域のエッジに係る情報を求める第３のエッジ情報計算工程と、
前記第１，２，３のエッジ情報計算工程のそれぞれで得られた情報に基づいて、前記注目領域におけるエッジに係る情報を決定する決定工程と
を備えることを特徴とする画像処理方法。
【請求項２】
画像を複数の矩形に分割する分割工程と、
前記分割工程で分割されたそれぞれの矩形について、エッジの強度、方向を検出する検出工程と、
注目矩形を前記画像内で１矩形のサイズ以下のぶんだけ移動させた場合に、移動後の当該注目矩形の画像から、当該移動の方向と略直交する方向のエッジの強度を求める計算工程と、
前記注目矩形について前記検出工程で検出されたエッジの強度と、前記計算工程で得られたエッジの強度と、前記移動の方向に前記注目矩形と隣接する矩形について前記検出工程で検出されたエッジの強度と、に基づいて、前記注目矩形内のエッジの強度、方向を決定する決定工程と
を備えることを特徴とする画像処理方法。
【請求項３】
前記決定工程では、前記計算工程で得られたエッジの強度が、前記注目矩形について前記検出工程で検出されたエッジの強度、前記移動の方向に前記注目矩形と隣接する矩形について前記検出工程で検出されたエッジの強度の何れよりも大きい場合には、前記注目矩形内のエッジの強度、方向を、移動後の前記注目矩形内のエッジの強度、方向に更新することで、前記注目矩形内のエッジの強度、方向を決定することを特徴とする請求項２に記載の画像処理方法。
【請求項４】
前記移動の量は、１矩形のサイズの１／２以外であることを特徴とする請求項２に記載の画像処理方法。
【請求項５】
画像を複数の矩形に分割する分割工程と、
前記分割工程で分割されたそれぞれの矩形について、エッジの方向を検出する第１の検出工程と、
前記第１の検出工程でエッジが検出できた矩形についてのみ、注目矩形を前記画像内で１矩形のサイズ以下のぶんだけ移動させた場合に、移動後の当該注目矩形の画像から、当該移動の方向と略直交する方向のエッジが存在するかどうかを検出する第２の検出工程と、
前記注目矩形について、前記第２の検出工程で得られたエッジの方向と、前記移動の方向に前記注目矩形と隣接する矩形について前記第１の検出工程で検出されたエッジの方向と、に基づいて、前記注目矩形内のエッジの方向を決定する決定工程と
を備えることを特徴とする画像処理方法。
【請求項６】
画像を複数の領域に分割する分割手段と、
注目領域の画像からエッジに係る情報を求める第１のエッジ情報計算手段と、
前記注目領域を前記画像内で所定方向に１矩形のサイズ以下のぶんだけ移動させた場合に、移動後の前記注目領域の画像からエッジに係る情報を求める第２のエッジ情報計算手段と、
前記所定方向に前記注目領域と隣接する領域のエッジに係る情報を求める第３のエッジ情報計算手段と、
前記第１，２，３のエッジ情報計算手段のそれぞれによって得られた情報に基づいて、前記注目領域におけるエッジに係る情報を決定する決定手段と
を備えることを特徴とする画像処理装置。
【請求項７】
画像を複数の矩形に分割する分割手段と、
前記分割手段によって分割されたそれぞれの矩形について、エッジの強度、方向を検出する検出手段と、
注目矩形を前記画像内で１矩形のサイズ以下のぶんだけ移動させた場合に、移動後の当該注目矩形の画像から、当該移動の方向と略直交する方向のエッジの強度を求める計算手段と、
前記注目矩形について前記検出手段によって検出されたエッジの強度と、前記計算手段によって得られたエッジの強度と、前記移動の方向に前記注目矩形と隣接する矩形について前記検出手段によって検出されたエッジの強度と、に基づいて、前記注目矩形内のエッジの強度、方向を決定する決定手段と
を備えることを特徴とする画像処理装置。
【請求項８】
画像を複数の矩形に分割する分割手段と、
前記分割手段によって分割されたそれぞれの矩形について、エッジの方向を検出する第１の検出手段と、
前記第１の検出手段によってエッジが検出できた矩形についてのみ、注目矩形を前記画像内で１矩形のサイズ以下のぶんだけ移動させた場合に、移動後の当該注目矩形の画像から、当該移動の方向と略直交する方向のエッジが存在するかどうかを検出する第２の検出手段と、
前記注目矩形について、前記第２の検出手段によって得られたエッジの方向と、前記移動の方向に前記注目矩形と隣接する矩形について前記第１の検出手段で検出されたエッジの方向と、に基づいて、前記注目矩形内のエッジの方向を決定する決定手段と
を備えることを特徴とする画像処理装置。
【請求項９】
コンピュータに請求項１乃至５の何れか１項に記載の画像処理方法を実行させることを特徴とするプログラム。
【請求項１０】
請求項９に記載のプログラムを格納することを特徴とするコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像中のエッジの検出技術に関するものである。
【背景技術】
【０００２】
従来より、エッジ特徴を用いた様々な画像検索方法や認識方法が提案されている。エッジの抽出方法としては、画素毎に周囲の画素を含めた範囲に対して、微分フィルタを用いて演算を行う方法が一般的である。フィルタとしては、Prewittフィルタ、Sobelフィルタ、Robinsonフィルタ、Kirishフィルタなどがある。エッジ特徴を画像検索などに用いる場合には、多くの場合、画像の部分領域におけるエッジの分布を特徴量とする。
【０００３】
従来技術におけるエッジヒストグラムでは、Sobelフィルタなどを用いる方法と比べて、より少ない計算コストでエッジ分布を得るのに必要なエッジ抽出方法を用いる（非特許文献１を参照）。
【０００４】
まず、図１Ａに示したように入力画像を４ｘ４のsub-imageに分割する。更に、それぞれのsub-imageを所定数に近くなるように正方形(image-block)に分割する。次に、image-blockを更に4(2×2)分割し、それぞれの小領域に対して平均輝度を求める。
【０００５】
次に、図１Ｂに示した４つの方向((a)垂直方向、(b)水平方向、(c)45度方向、(d)135度方向)と(e)無方向に対応するフィルタを用いて、それぞれのエッジ強度m_v、m_h、m_d45、m_d135、m_ndを計算する。例えば、m_vは、image-blockの4分割された各小領域の平均輝度をa(n)と表現すると次式のようになる。（なお、n=0〜3であり、4分割された各小領域に付加した番号を示している）
ｍ＿ｖ＝｜１×ａ（０）＋（−１）×ａ（１）＋１×ａ（２）＋（−１）×ａ（３）｜      （１）
そして、エッジ強度(m_v、m_h、m_d45、m_d135、m_nd)の中の最大値が、所定の閾値Ａ以上のとき、その最大値の方向がimage_blockのエッジの方向であると判定する。閾値Ａは、エッジが存在しているとみなせる強度の下限値である。sub-imageに含まれる各image-blockの方向をカウントすることで、エッジヒストグラムEijが計算される(なお、i = 0〜4は各フィルタに対応し、j=0〜15は各sub-imageに対応する。)。このエッジヒストグラムを特徴量とする。
【非特許文献１】ETRI Journal, Volume 24, Number 1, February 2002(“Efficient Use of MPEG-7 Edge Histogram Descriptor”  Chee Sun Won et al.)
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記非特許文献１で得られるエッジ抽出方法は、Sobelフィルタなどを用いたエッジ抽出方法に比べて、計算コストが小さいという利点があるものの、エッジ特徴を十分に得ることができない場合がある。
【０００７】
エッジ特徴が十分に得られない顕著な例として、線画を例に取り説明する。image_blockが線画画像中のどの位置にくるかで、線画の線分のエッジが抽出できたり、出来なかったりすることがある。例えば、図９（ａ）に示したように線分がimage-blockの境界を通っている場合は、線分はimage_block内の小領域に僅かにかかっているだけなので、平均輝度をとるとその影響は薄れてしまい、各小領域間で平均輝度の差がほとんどつかなくなるので、エッジが抽出できない。
【０００８】
一方、図９（ｂ）のように、線分がimage_blockの半分の中に完全に収まっていれば、平均輝度をとっても、十分に線分の影響があるので、垂直方向のエッジが検出できる。もちろん、図９（ａ）の場合であっても、閾値Ａを下げればエッジを抽出できるようにはなるが、そうすると今度は、僅かな平均輝度の差が存在しただけでエッジと抽出されるようになるので、ノイズなどもエッジとして誤抽出してしまうことになってしまう。
【０００９】
本来同じ内容の画像に対してimage_blockがずれているという状況は、よくあることである。例えば、２枚の画像は何れも無地の背景にオブジェクト(花瓶など)が写った画像ではあるが、オブジェクトがそれぞれの画像で違った位置に写っている場合、また、ハードディスクに蓄積していた画像と、これを一旦印刷したものをスキャナによってスキャンした画像であった場合(もともとは同じ画像であっても、スキャナ２１０に紙を置く位置などによって、画像の位置が少しずれてしまう)、などが挙げられる。
【００１０】
このような２枚の画像を比較した場合、前述したように一方の画像ではエッジが抽出できるのに、もう一方の画像では抽出できない、ということが起こり、結果として、同じ画像であると判定できなくなってしまう。
【００１１】
本発明は上記の課題に鑑みてなされたものであり、Sobelフィルタなどを用いる手法に比べて高速であり、かつ、画像検索などに用いるのに十分なエッジ特徴を得る為の技術を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の目的を達成するために、例えば本発明の画像処理方法は以下の構成を備える。
【００１３】
即ち、画像を複数の領域に分割する分割工程と、
注目領域の画像からエッジに係る情報を求める第１のエッジ情報計算工程と、
前記注目領域を前記画像内で所定方向に１矩形のサイズ以下のぶんだけ移動させた場合に、移動後の前記注目領域の画像からエッジに係る情報を求める第２のエッジ情報計算工程と、
前記所定方向に前記注目領域と隣接する領域のエッジに係る情報を求める第３のエッジ情報計算工程と、
前記第１，２，３のエッジ情報計算工程のそれぞれで得られた情報に基づいて、前記注目領域におけるエッジに係る情報を決定する決定工程と
を備えることを特徴とする。
【００１４】
本発明の目的を達成するために、例えば本発明の画像処理方法は以下の構成を備える。
【００１５】
即ち、画像を複数の矩形に分割する分割工程と、
前記分割工程で分割されたそれぞれの矩形について、エッジの強度、方向を検出する検出工程と、
注目矩形を前記画像内で１矩形のサイズ以下のぶんだけ移動させた場合に、移動後の当該注目矩形の画像から、当該移動の方向と略直交する方向のエッジの強度を求める計算工程と、
前記注目矩形について前記検出工程で検出されたエッジの強度と、前記計算工程で得られたエッジの強度と、前記移動の方向に前記注目矩形と隣接する矩形について前記検出工程で検出されたエッジの強度と、に基づいて、前記注目矩形内のエッジの強度、方向を決定する決定工程と
を備えることを特徴とする。
【００１６】
本発明の目的を達成するために、例えば本発明の画像処理方法は以下の構成を備える。
【００１７】
即ち、画像を複数の矩形に分割する分割工程と、
前記分割工程で分割されたそれぞれの矩形について、エッジの方向を検出する第１の検出工程と、
前記第１の検出工程でエッジが検出できた矩形についてのみ、注目矩形を前記画像内で１矩形のサイズ以下のぶんだけ移動させた場合に、移動後の当該注目矩形の画像から、当該移動の方向と略直交する方向のエッジが存在するかどうかを検出する第２の検出工程と、
前記注目矩形について、前記第２の検出工程で得られたエッジの方向と、前記移動の方向に前記注目矩形と隣接する矩形について前記第１の検出工程で検出されたエッジの方向と、に基づいて、前記注目矩形内のエッジの方向を決定する決定工程と
を備えることを特徴とする。
【００１８】
本発明の目的を達成するために、例えば本発明の画像処理装置は以下の構成を備える。
【００１９】
即ち、画像を複数の領域に分割する分割手段と、
注目領域の画像からエッジに係る情報を求める第１のエッジ情報計算手段と、
前記注目領域を前記画像内で所定方向に１矩形のサイズ以下のぶんだけ移動させた場合に、移動後の前記注目領域の画像からエッジに係る情報を求める第２のエッジ情報計算手段と、
前記所定方向に前記注目領域と隣接する領域のエッジに係る情報を求める第３のエッジ情報計算手段と、
前記第１，２，３のエッジ情報計算手段のそれぞれによって得られた情報に基づいて、前記注目領域におけるエッジに係る情報を決定する決定手段と
を備えることを特徴とする。
【００２０】
本発明の目的を達成するために、例えば本発明の画像処理装置は以下の構成を備える。
【００２１】
即ち、画像を複数の矩形に分割する分割手段と、
前記分割手段によって分割されたそれぞれの矩形について、エッジの強度、方向を検出する検出手段と、
注目矩形を前記画像内で１矩形のサイズ以下のぶんだけ移動させた場合に、移動後の当該注目矩形の画像から、当該移動の方向と略直交する方向のエッジの強度を求める計算手段と、
前記注目矩形について前記検出手段によって検出されたエッジの強度と、前記計算手段によって得られたエッジの強度と、前記移動の方向に前記注目矩形と隣接する矩形について前記検出手段によって検出されたエッジの強度と、に基づいて、前記注目矩形内のエッジの強度、方向を決定する決定手段と
を備えることを特徴とする。
【００２２】
本発明の目的を達成するために、例えば本発明の画像処理装置は以下の構成を備える。
【００２３】
即ち、画像を複数の矩形に分割する分割手段と、
前記分割手段によって分割されたそれぞれの矩形について、エッジの方向を検出する第１の検出手段と、
前記第１の検出手段によってエッジが検出できた矩形についてのみ、注目矩形を前記画像内で１矩形のサイズ以下のぶんだけ移動させた場合に、移動後の当該注目矩形の画像から、当該移動の方向と略直交する方向のエッジが存在するかどうかを検出する第２の検出手段と、
前記注目矩形について、前記第２の検出手段によって得られたエッジの方向と、前記移動の方向に前記注目矩形と隣接する矩形について前記第１の検出手段で検出されたエッジの方向と、に基づいて、前記注目矩形内のエッジの方向を決定する決定手段と
を備えることを特徴とする。
【発明の効果】
【００２４】
本発明の構成により、比較的高速に画像検索などに用いるのに十分なエッジ特徴を得ることができる。
【発明を実施するための最良の形態】
【００２５】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００２６】
［第１の実施形態］
図２は、本実施形態に係る画像処理装置として機能するコンピュータの基本構成、及び周辺機器を示すブロック図である。なお、このコンピュータとしては例えば一般のＰＣ（パーソナルコンピュータ）やＷＳ（ワークステーション）等が適用可能である。
【００２７】
同図において２０１はＣＰＵで、本コンピュータ全体の制御を行うと共に、本コンピュータが行う後述の各処理を実行する。
【００２８】
２０２はＲＯＭで、本コンピュータの設定データやブートプログラム等を格納する。
【００２９】
２０３はＲＡＭで、外部記憶装置２０６からロードされたプログラムやデータを一時的に記憶するためのエリア、ＮＩＣ（ネットワークインターフェース）２０８を介して受信したデータを一時的に記憶するためのエリア、Ｉ／Ｆ（インターフェース）２０９を介してスキャナ２１０やデジタルカメラ２１１から取り込んだ画像データを一時的に記憶するためのエリアを備えると共に、ＣＰＵ２０１が各種の処理を実行する際に使用するワークエリアを備える。
【００３０】
２０４、２０５はそれぞれキーボード、マウスで、周知の通りユーザが操作することで各種の指示をＣＰＵ２０１に対して入力することができる。
【００３１】
２０６は外部記憶装置で、ハードディスクドライブ装置などの大容量情報記憶装置として機能するものであり、ここにＯＳ（オペレーティングシステム）や、本コンピュータが行う後述の各処理をＣＰＵ２０１に実行させるためのプログラムやデータなどが保存されており、これらの一部もしくは全部はＣＰＵ２０１の制御によりＲＡＭ２０３にロードされ、これを用いてＣＰＵ２０１が処理を実行することで、本コンピュータは、本コンピュータが行うものとして後述する各処理を実行することができる。
【００３２】
２０７は表示装置で、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ２０１による実行結果を画像や文字などでもって表示することができる。
【００３３】
２０８はＮＩＣ（ネットワークインターフェース）で、ＬＡＮやインターネットなどのネットワークを介してデータの送受信を行う際のインターフェースとして機能するものである。なお、ネットワークが無線、有線の何れであろうと、このＮＩＣ２０８はそれに対応したものを用いればよい。
【００３４】
２０９はIEEE1394、USBなどのＩ／Ｆで、スキャナ２１０やデジタルカメラ２１１を本コンピュータに接続するためのものであり、このＩ／Ｆ２０９を介してスキャナ２１０が紙などの記録媒体上から読み取った画像のデータや、デジタルカメラ２１１が撮像した画像のデータを本コンピュータに入力することができる。
【００３５】
２１２は上述の各部を繋ぐバスである。
【００３６】
２１０は一般のスキャナ、２１１は一般のデジタルカメラである。
【００３７】
なお、上記の構成において、外部記憶装置２０６、スキャナ２１０、デジタルカメラ２１１については、ネットワーク上に設置し、これらとＮＩＣ２０８を介してデータ通信を行うようにしても良い。
【００３８】
図３は、上記コンピュータの機能構成を示すブロック図である。
【００３９】
同図において３０１は画像入力部であり、スキャナ２１０、デジタルカメラ２１１などの機器で取得した画像を、インターフェース２０９を介して、或いは、インターネット上に存在する機器が保持する画像を、ＮＩＣ２０８を介して入力するものである。
【００４０】
３０２は入力された画像に対して前処理を行う前処理部である。３０３は前処理部３０２で前処理がなされた画像からエッジを抽出する処理を行うエッジ抽出部である。３０４は、エッジ抽出部３０３によって抽出されたエッジに基づいてエッジヒストグラムを作成するエッジヒストグラム作成部である。
【００４１】
３０５は、前処理部３０２で前処理された画像と、エッジヒストグラム作成部３０４によって作成されたエッジヒストグラムとを関連付けて記憶・管理する画像データベース（ＤＢ）である。
【００４２】
３０６は、クエリとして入力される画像のエッジヒストグラムと、画像ＤＢ３０４に保持されている画像のエッジヒストグラムとの類似度（画像間距離）を計算する画像間距離算出部である。３０７はユーザに対して画像検索の結果の表示を行う表示部である。
【００４３】
＜登録処理＞
まず、本コンピュータに画像を登録する処理について、同処理のフローチャートを示す図４を用いて説明する。なお、同図のフローチャートに従った処理をＣＰＵ２０１に実行させるためのプログラムは外部記憶装置２０６に保存されており、これをＣＰＵ２０１の制御によりＲＡＭ２０３にロードし、これをＣＰＵ２０１が実行することで、本コンピュータは以下説明する各処理を実行することになる。
【００４４】
先ず、ＣＰＵ２０１は、Ｉ／Ｆ２０９を介してスキャナ２１０やデジタルカメラ２１１からの画像の転送を検知、もしくはＮＩＣ２０８を介した画像のダウンロードを検知すると、本コンピュータに入力される画像のデータを順次ＲＡＭ２０３に入力する（ステップＳ４０１）。
【００４５】
次に、ＣＰＵ２０１は、ＲＡＭ２０３に入力した画像（入力画像）がカラー画像であるのかグレースケール画像であるのかをチェックする（ステップＳ４０２）。そして入力画像がカラー画像である場合には処理をステップＳ４０３に進め、このカラー画像をグレースケール画像に変換する（ステップＳ４０３）。ステップＳ４０２におけるチェック処理（入力画像がカラー画像であるのかグレースケール画像であるのかのチェック処理）は、例えば入力画像がデジタルカメラ２１１から取得した場合などでは、画像のデータフォーマットを解析し、そのヘッダ情報を参照することで判定できる。また、スキャナ２１０から画像を取得した場合などでは、ユーザによるスキャン条件から判定できる。いずれにせよ、入力した画像がカラー画像であるのか否かのチェック方法については特定の方法に限定するものではない。
【００４６】
また、ステップＳ４０３におけるグレースケール画像への変換は、カラー画像を構成する各画素のＲ（赤）、Ｇ（緑）、Ｂ（青）の値からグレースケールの信号（Ｙ）へ次式でもって変換することができる。
【００４７】
Ｙ＝０．２９９×Ｒ＋０．５８７×Ｇ＋０．１１４×Ｂ      （２）
また、入力画像がグレースケール画像であった場合には処理をステップＳ４０１からステップＳ４０２を介してステップＳ４０５に進める。
【００４８】
次にＣＰＵ２０１は、入力画像（グレースケール画像）からエッジの抽出処理を行う（ステップＳ４０５）。本ステップにおける処理の詳細については後述する。
【００４９】
次にＣＰＵ２０１は、ステップＳ４０５で抽出されたエッジを集計し、従来技術で説明したエッジヒストグラムを作成する（ステップＳ４０６）。そしてＣＰＵ２０１は、ステップＳ４０６で求めたヒストグラムをインデックスとして入力画像（カラー／グレースケール画像）に関連付けて外部記憶装置２０６に保存する（ステップＳ４０７）。
【００５０】
これにより、１つの画像が外部記憶装置２０６に登録されたことになる。そして、このような処理を本コンピュータに入力された画像毎に行う。なお、外部記憶装置２０６に画像、インデックスを保存する際にはこれらを適宜圧縮するようにしても良い。その場合には以下の説明で、この画像、インデックスを読み出した後には復号処理を行う必要がある。
【００５１】
図８は各画像についてのインデックスの構成例を示す図である。同図に示す如く、インデックスには各画像に固有のＩＤ（識別子）、各画像のエッジヒストグラム、そして各画像の外部記憶装置２０６内における保存位置（パス）が含まれている。
【００５２】
＜エッジ抽出処理＞
次に、ステップＳ４０５で行う（エッジ抽出処理を含む）処理の詳細について、図７のフローチャートを参照して説明する。図７は、ステップＳ４０５における処理の詳細を示すフローチャートである。
【００５３】
先ず、画像（グレースケール画像）を複数の矩形（上述のimage-blockに相当）に分割する（ステップＳ７０１０）。これは、従来技術として上述のように説明したように、４×４のsub-image中に所定数に近い数の正方形を確保するように分割することである。所定数は特に限定されないが、後にimage-blockに対して２×２のフィルタを施すことになるので、正方形の一辺は２画素以上であり、且つ偶数でなければならない。なお、もちろん２×２画素であるときは、平均輝度を求める必要は無い。
【００５４】
そして、分割したそれぞれのimage-blockについて以下説明するステップＳ７０２０〜ステップＳ７０５０の処理を行う。
【００５５】
先ず、注目image-blockについて図１Ｂ（ａ）〜（ｅ）に示した４つの方向と無方向のフィルタを掛け、それぞれのエッジ強度（ｍ＿ｖ、ｍ＿ｈ、ｍ＿ｄ４５、ｍ＿ｄ１３５、ｍ＿ｎｄ）を求める（ステップＳ７０２０）。
【００５６】
即ち、注目image-blockに対して図１Ｂ（ａ）に示したフィルタを掛けることでエッジ強度ｍ＿ｖを求め、次に、この注目image-blockに対して図１Ｂ（ｂ）に示したフィルタを掛けることでエッジ強度ｍ＿ｈを求め、次に、この注目image-blockに対して図１Ｂ（ｃ）に示したフィルタを掛けることでエッジ強度ｍ＿ｄ４５を求め、次に、この注目image-blockに対して図１Ｂ（ｄ）に示したフィルタを掛けることでエッジ強度ｍ＿ｄ１３５を求め、次に、この注目image-blockに対して図１Ｂ（ｅ）に示したフィルタを掛けることでエッジ強度ｍ＿ｎｄを求める。このようにして注目image-blockについて、エッジ強度（ｍ＿ｖ、ｍ＿ｈ、ｍ＿ｄ４５、ｍ＿ｄ１３５、ｍ＿ｎｄ）を求める。
【００５７】
次に、ステップＳ７０２０で求めたエッジ強度（ｍ＿ｖ、ｍ＿ｈ、ｍ＿ｄ４５、ｍ＿ｄ１３５、ｍ＿ｎｄ）のうち、最大値を示すエッジ強度が所定の閾値Ａ以上であるのかをチェックし（ステップＳ７０３０）、所定の閾値Ａ以上である場合には処理をステップＳ７０４０に進め、エッジ強度（ｍ＿ｖ、ｍ＿ｈ、ｍ＿ｄ４５、ｍ＿ｄ１３５、ｍ＿ｎｄ）のうち最大値を示すエッジ強度、及びそのエッジの方向を注目image-blockに対するエッジ情報としてＲＡＭ２０３に一時的に記録し（ステップＳ７０４０）、処理をステップＳ７０６０に進める。
【００５８】
例えば、エッジ強度（ｍ＿ｖ、ｍ＿ｈ、ｍ＿ｄ４５、ｍ＿ｄ１３５、ｍ＿ｎｄ）のうち、最大値を示すエッジ強度がｍ＿ｈの場合には、「注目image-blockのエッジ強度はｍ＿ｈ」、「注目image-blockに含まれているエッジの方向は水平」と判断され、判断した結果をエッジ情報として注目image-blockに関連付けてＲＡＭ２０３に一時的に記録する処理を行う。
【００５９】
そして全てのimage-blockについてステップＳ７０２０〜ステップＳ７０５０の処理を行ったのか否かを判断し（ステップＳ７０６０）、行っていない場合には処理をステップＳ７０７０に進め、まだ処理対象となっていないimage-blockを次の処理対象に変更し（ステップＳ７０７０）、ステップＳ７０２０以降の処理を繰り返す。
【００６０】
また、ステップＳ７０３０における判断処理の結果、エッジ強度（ｍ＿ｖ、ｍ＿ｈ、ｍ＿ｄ４５、ｍ＿ｄ１３５、ｍ＿ｎｄ）のうち、最大値を示すエッジ強度が所定の閾値Ａ以上ではない場合には、処理をステップＳ７０５０に進め、注目image-blockにはエッジは含まれていないと判断するので、その旨をＲＡＭ２０３に一時的に記録し（ステップＳ７０５０）、処理をステップＳ７０６０に進める。
【００６１】
以上の処理により、各image-blockについてエッジが含まれているのか否かを判断することができ、エッジを含むimage-blockについては、含まれているエッジの強度、及びその方向を求め、ＲＡＭ２０３に記録することができる。また、エッジを含まないimage-blockについては、含まない旨をＲＡＭ２０３に記録することができる。
【００６２】
そして全てのimage-blockについてステップＳ７０２０〜ステップＳ７０５０の処理を行った場合には処理をステップＳ７０６０からステップ７０８０に進め、画像の左上のimage-blockからラスタスキャン順に参照し、以降の処理を行う。
【００６３】
先ず注目image-block（本ステップにおける処理が最初の場合、注目image-blockは画像の左上隅に位置するimage-blockに相当する）に含まれているエッジが無方向エッジであるのか否かを、この注目image-blockについてステップＳ７０４０もしくはステップＳ７０５０でＲＡＭ２０３に記録したデータを参照することで判断する（ステップＳ７０８０）。
【００６４】
そして無方向エッジではない場合には処理をステップＳ７０９０に進め、注目image-blockを所定方向に所定量（本実施形態では注目image-blockのサイズの１／４）だけ移動させた（ずらした）場合に、移動後の注目image-block内の領域に対して図１Ｂ（ａ）〜（ｄ）に示した４つのフィルタを掛け、それぞれの方向に対するエッジ強度を求める（ステップＳ７０９０）。なお、この「所定方向」とは、以下説明する「注目方向」と略９０度の角度を成すような関係にある。
【００６５】
図６は、注目方向が「垂直方向」、「水平方向」、「１２時の位置から時計回りに４５度の角度方向」、「１２時の位置から時計回りに１３５度の角度方向」のそれぞれの場合の上記「所定方向」を説明する図である。
【００６６】
図１Ｂ（ａ）に示すように注目方向が垂直方向の場合、図６（ａ）の矢印で示す如く、「所定方向」とは水平方向となる。図１Ｂ（ｂ）に示すように注目方向が水平方向の場合、図６（ｂ）の矢印で示す如く、「所定方向」とは垂直方向となる。図１Ｂ（ｃ）に示すように注目方向が１２時の位置から時計回りに４５度の角度方向の場合、図６（ｃ）の矢印で示す如く、「所定方向」とは１２時の位置から時計回りに１３５度の角度方向となる。図１Ｂ（ｄ）に示すように注目方向が１２時の位置から時計回りに１３５度の角度方向の場合、図６（ｄ）の矢印で示す如く、「所定方向」とは１２時の位置から時計回りに２２５度の角度方向となる。
【００６７】
なお、ステップＳ７０９０でずらす向きはどちらでも構わないが、処理全体を通してどちらかに固定しておく必要がある。なぜならば、例えば、あるimage-blockでは水平方向の右向きにずらし、左隣のimage-blockでは水平方向の左向きにずらすと、抜けた領域ができ、その領域については、エッジの抽出もれが発生することになる。また、逆に、あるimage-blockでは水平方向の左向きにずらし、左隣のimage-blockでは水平方向の右向きにずらすと、ずらした領域が重複してしまい、２重にエッジを抽出することになる。
【００６８】
次に、移動後の注目image-blockについてステップＳ７０９０で求めた４つの方向のそれぞれのエッジ強度のうち、注目方向のエッジ強度が最大値であり、且つこの最大値が所定の閾値Ａ以上であるのかをチェックする（ステップＳ７１００）。例えば、注目方向が垂直方向である場合には、ずらした領域においてエッジ強度ｍ＿ｖが最大値、且つこの最大値が所定の閾値Ａ以上であるかどうかを判定する。これは、例えば垂直方向に注目しているときは、図９（ａ）の線分ような垂直方向のエッジを、image-blockをずらすことによって、抽出可能とするのが目的だからである。
【００６９】
そして移動後の注目image-blockについてステップＳ７０９０で求めた４つの方向のそれぞれのエッジ強度のうち、注目方向のエッジ強度が最大値であり、且つこの最大値が所定の閾値Ａ以上である場合には処理をステップＳ７１１０に進め、移動前の注目image-blockについて先にステップＳ７０４０で求めたエッジ強度の値と、移動後の注目image-blockについて求めたエッジ強度のうち最大値とを大小比較する（ステップＳ７１１０）。これは、もし、ずらす前のエッジ強度の方が大きければ、ずらす前の状態で十分にエッジが抽出できているからである。
【００７０】
そして、移動後の注目image-blockについて求めたエッジ強度のうち最大値の方が値が大きい場合には処理をステップＳ７１２０に進め、移動前の注目image-blockと移動方向（上記「所定方向」に相当）に隣接するimage-block（以下「隣接image-block」と呼称する）についてステップＳ７０４０もしくはステップＳ７０５０でＲＡＭ２０３に記録したエッジ情報を参照して、隣接image-blockがエッジを含む場合には、このエッジの強度の値を取得し、取得した値と、移動後の注目image-blockについて求めたエッジ強度のうち最大値との大小比較を行う（ステップＳ７１２０）。
【００７１】
ここで、隣接image-blockのエッジ強度について図１０を用いて説明する。図１０は、隣接image-blockについて説明する図である。以下では同図に示す如く、「所定方向」が１２時の位置から時計回りに１３５度の角度方向となる場合について説明するが、何れの角度であっても以下の説明の本質は同じである。
【００７２】
図１０に示すように、Ａを移動前の注目image-block、Ａ’を移動後の注目image-block、Ｂを隣接image-blockとすると、Ｂについて求めたエッジ強度が隣接image-blockのエッジ強度となる。隣接image-blockのエッジ強度を考慮するのは、エッジを重複して抽出してしまうのを避けるためである。ずらした領域のエッジ強度の方が小さければ、ずらした方向にあるimage_blockで既にエッジを抽出してしまっていることに相当する。なお、同図において矢印は注目image-blockの移動方向を示す。
【００７３】
そしてステップＳ７１２０における処理の結果、隣接image-blockについて求めたエッジ強度の値が、移動後の注目image-blockについて求めたエッジ強度のうち最大値よりも小さい場合には処理をステップＳ７１３０に進め、移動前の注目image-blockについてステップＳ７０４０でＲＡＭ２０３に記録したエッジの強度、方向を、移動後の注目image-blockについてステップＳ７０９０で求めたエッジ強度のうち最大値、この最大値が示すエッジの方向に更新する（ステップＳ７１３０）。即ち、ずらす前のエッジ強度・方向をずらした時のエッジ強度・方向に置き換える。
【００７４】
また、ステップＳ７１００における判断処理の結果、移動後の注目image-blockについてステップＳ７０９０で求めた４つの方向のそれぞれのエッジ強度のうち、注目方向のエッジ強度が最大値であり、且つこの最大値が所定の閾値Ａ以上であるという条件が満たされなかった場合、またステップＳ７１１０における判断処理の結果、移動前の注目image-blockについて先にステップＳ７０４０で求めたエッジ強度の値が、移動後の注目image-blockについて求めたエッジ強度のうち最大値以上である場合、また、ステップＳ７１２０における処理の結果、隣接image-blockについて求めたエッジ強度の値が、移動後の注目image-blockについて求めたエッジ強度のうち最大値以上である場合、の何れかであれば、処理はステップＳ７１４０に進め、全ての方向について注目したか（注目方向に全ての方向を当てはめたか）を判断する（ステップＳ７１４０）。例えば注目方向を（垂直方向、水平方向、４５度方向、１３５度方向）の４方向とする場合には、例えば先ず垂直方向を注目方向としてステップＳ７０９０以降の処理を行い、次に、水平方向を注目方向としてステップＳ７０９０以降の処理を行い、次に、４５度方向を注目方向としてステップＳ７０９０以降の処理を行い、最後に、１３５度方向を注目方向としてステップＳ７０９０以降の処理を行う。そして全ての方向について注目した場合には処理をステップＳ７１５０に進める。
【００７５】
そして全てのimage-blockについてステップＳ７０８０〜ステップＳ７１４０の処理を行ったのか否かを判断し（ステップＳ７１５０）、行っていない場合には処理をステップＳ７１６０に進め、まだ処理対象となっていないimage-blockを次の処理対象に変更し（ステップＳ７１６０）、ステップＳ７０８０以降の処理を繰り返す。
【００７６】
［検索処理］
次に、以上のようにして外部記憶装置２０６に登録した画像群のうち、クエリとして入力する画像（クエリ画像）に類似している画像群を検索して表示装置２０７の表示画面上に表示する処理について、同処理のフローチャートを示す図５を参照して以下説明する。図５は、画像検索処理のフローチャートである。
【００７７】
先ず、クエリ画像に対してステップＳ４０１〜ステップＳ４０６における処理を行い、クエリ画像をグレースケール画像に変換し、変換後の画像、及び変換後の画像に対するエッジヒストグラムを作成する。ステップＳ４０１〜ステップＳ４０６の各ステップにおける処理の詳細については上述の通りであるので、ここでの説明は省略する。即ち上述のステップＳ４０１〜ステップＳ４０６における説明において、処理対象をクエリ画像と読み替えれば良い。
【００７８】
次に、ＣＰＵ２０１は、外部記憶装置２０６に登録されている各画像のエッジヒストグラムを読み出し、クエリ画像について求めたエッジヒストグラムとの距離を計算する（ステップＳ５０７）。具体的には、エッジヒストグラムの各ビンの差分の絶対値の総和を求めればよい。距離が小さいほど類似していることになり、最も距離が小さいものが第一候補となる。そして計算した距離と、検索先画像のＩＤとのセットをＲＡＭ２０３に一時的に記録する。
【００７９】
そして、外部記憶装置２０６に登録されている画像のエッジヒストグラムとクエリ画像について求めたエッジヒストグラムとの距離を計算し、登録画像のＩＤと、計算した距離とのセットをＲＡＭ２０３に一時的に記録する処理を、外部記憶装置２０６に登録されている全ての画像について行うと、次に、各セットを距離の小さい順に参照し（ステップＳ５０８）、参照したセット中のＩＤで特定される画像を外部記憶装置２０６から読み出して、例えばサムネイルの形式で表示装置２０７の表示画面上に表示する（ステップＳ５０９）。表示については例えば、第一候補から順に列の左から右へ、上の列から下の列へ並べて表示する。
【００８０】
これにより、外部記憶装置２０６に登録されている画像群が、クエリ画像に類似している順に、表示装置２０７の表示画面上に列の左から右へ、上の列から下の列へ表示されることになる。なお、表示するのは全部でなくても、例えばある距離以下のものだけを表示するようにしても良いし、表示するための条件や表示方法などは特に限定するものではない。
【００８１】
［第２の実施形態］
第１の実施形態では、画像検索に用いる特徴量として文献１に記載されているエッジヒストグラムを使用したが、もちろん、これに限定されるものではない。例えば、無方向フィルタを用いず、方向フィルタのみを用いても、もちろん構わない。このときは、ステップＳ７０８０における判定処理は不要になる。また、上記式１で絶対値をとっているのでエッジの向きの違いは考慮していないが、式１から絶対値を取り、プラスの値とマイナスの値を別々に扱うようにして、向きの違いも考慮しても、もちろん、構わない。
【００８２】
また、方向フィルタを５つ以上用いても良い。その場合、抽出可能なエッジの方向の数はより多くなり、例えば第１の実施形態で抽出した４つに加え、２２．５度、６７．５度、１１２．５度、１５７．５度を加えた８つを抽出するようにしても良い。
【００８３】
また、抽出されたエッジの連続性まで考慮して線分を成しているかどうかを求め、線分に関する情報を特徴量とする、ラインヒストグラムを求めてもよい。ラインヒストグラムには、２つの作成方法がある。第１の方法のライヒストグラムは、画像をブロックに分割し、そのブロックに存在する方向成分ごとの線分の数をビンとするヒストグラムで表現したものである。また、第２の方法のライヒストグラムは、画像をブロックに分割し、そのブロックに存在する方向成分ごとの線分の長さをビンとするヒストグラムで表現したものである。
【００８４】
また、第１の実施形態では注目image-blockの移動量はimage-blockのサイズの１／４としたが、特にこれに限定されるものではない。ただし、１／２であってはならない。１／２にすると、image-blockの４分割した領域とちょうど重なるようになる。例えば図９（ａ）の場合、垂直方向のエッジ抽出のために水平方向に１／２ずらすと、線分はずらしたimage-blockの真中を通ることになる。このときは、ずらしたにもかかわらずやはり線分から垂直方向のエッジを抽出することが出来なくなってしまう。
【００８５】
また第１の実施形態では、image-blockを２×２の領域に分け、２×２のフィルタを用いた。しかし、処理時間がかかっても構わなければ、例えば、３×３の領域に分け、３×３のフィルタを用いるようにしてももちろん構わない。
【００８６】
また第１の実施形態では、エッジ強度を特徴量(エッジヒストグラム)として使用していない。このようにエッジ強度の利用をしないことを前提とするならば、ステップＳ７１１０の条件は必要ないので、省略しても構わない。
【００８７】
更にステップＳ７１２０の条件も、ずらした方向にあるimage-blockがエッジなしであるかを判定するようにしてもよい。なお、こときは、ステップＳ７０８０では、エッジなしであるかを判定するようにして、エッジなしと判定されているimage-blockに対してのみステップＳ７１００からステップＳ７１４０の処理を行えばよい。
【００８８】
［その他の実施の形態］
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図に示すフローチャートに対応したプログラム）を、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【００８９】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００９０】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であっても良い。
【００９１】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。
【００９２】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００９３】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００９４】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００９５】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００９６】
【図１Ａ】入力画像のimage-blockへの分割を説明する図である。
【図１Ｂ】エッジフィルタを説明する図である。
【図２】本発明の第１の実施形態に係る画像処理装置として機能するコンピュータの基本構成、及び周辺機器を示すブロック図である。
【図３】コンピュータの機能構成を示すブロック図である。
【図４】コンピュータに画像を登録する処理のフローチャートである。
【図５】画像検索処理のフローチャートである。
【図６】注目方向が「垂直方向」、「水平方向」、「１２時の位置から時計回りに４５度の角度方向」、「１２時の位置から時計回りに１３５度の角度方向」のそれぞれの場合の上記「所定方向」を説明する図である。
【図７】ステップＳ４０５における処理の詳細を示すフローチャートである。
【図８】各画像についてのインデックスの構成例を示す図である。
【図９】エッジ抽出処理を説明する図である。
【図１０】隣接image-blockについて説明する図である。
【図１Ａ】
2006127056.tif 000003
【図１Ｂ】
2006127056.tif 000004
【図２】
2006127056.tif 000005
【図３】
2006127056.tif 000006
【図４】
2006127056.tif 000007
【図５】
2006127056.tif 000008
【図６】
2006127056.tif 000009
【図７】
2006127056.tif 000010
【図８】
2006127056.tif 000011
【図９】
2006127056.tif 000012
【図１０】
2006127056.tif 000013