以下に、本願の開示する画像処理装置、画像処理方法および画像処理プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
本願の開示する画像処理装置の実施例1として、画像処理サーバ100を説明する(図1参照)。画像処理サーバ100は、たとえば、クライアント200から同一の地点を異なる時点で撮影した二つの画像の入力を受ける。または、画像処理サーバ100は、クライアント200から同一の地点を異なる時期に撮影した二つの画像を特定する指示を受け付ける。そして、画像処理サーバ100は、二つの画像の各々から特徴点を抽出する。さらに、画像処理サーバ100は、各特徴点の輝度値と、当該特徴点から所定の距離範囲内に位置する画素の輝度値との差分に関する情報を、当該特徴点を中心とする楕円状のマトリクスの複数の領域各々に対応付けて、各特徴点の特徴量マトリクスを作成する。画像処理サーバ100は、一つの画像の特徴点の特徴量マトリクスと、他の画像の特徴点の特徴量マトリクスとを比較して類似度を求める。画像処理サーバ100は、特徴量マトリクスの類似度が高い特徴点の対を特徴点ペアとして決定する。
まず、図1を参照して、画像処理サーバ100の構成の一例につき説明する。図1は、実施例1に係る画像処理サーバ100の構成の一例を示す図である。画像処理サーバ100は、記憶部110と、制御部120と、入出力部130とを備える。記憶部110は、画像処理サーバ100内での処理に使用するデータおよび画像処理サーバ100内での処理により生成されるデータを記憶する。制御部120は、画像処理サーバ100内での画像処理を制御する。入出力部130は、外部から画像処理サーバ100に入力されるデータを受信するとともに、画像処理サーバ100により生成されるデータを外部に送信する。
また、画像処理サーバ100は、クライアント200と、ネットワーク300を介して接続される。クライアント200は、たとえば、モニタ201を備える。画像処理サーバ100内で処理された画像は、入出力部130を介してクライアント200に送られ、モニタ201に表示することができる。なお、図1では、画像処理サーバ100の外部にひとつのクライアント200およびモニタ201が設けられるものとしたが、画像処理サーバ100は、ネットワーク300を介して複数のクライアント200と接続されてもよい。そして、画像処理サーバ100を、複数のクライアント200から送信される画像を受信するように構成してもよい。また、画像処理サーバ100内にモニタを設けて画像を確認できるように構成してもよい。また、画像処理サーバ100自体に撮像機能を設けてもよく、また、画像処理サーバ100を、クライアント200とは別の撮像装置と接続してもよい。なお、クライアント200は、例えば、パーソナルコンピュータ、携帯電話機、スマートフォン、インターネットTVなどのコンピュータである。
[記憶部の構成]
記憶部110は、画像記憶部111、特徴点記憶部112、マトリクス記憶部113、ペア記憶部114および設定記憶部115を備える。なお、記憶部110は、半導体メモリ素子や記憶装置などである。例えば、半導体メモリ素子としては、VRAM(Video Random Access Memory)、RAM(Random Access Memory)、ROM(Read Only Memory)やフラッシュメモリ(flash memory)などが挙げられる。また、記憶装置としては、ハードディスク、光ディスクなどの記憶装置が挙げられる。以下、記憶部110に記憶される情報につき説明する。
[画像情報]
画像記憶部111は、画像処理サーバ100が受信した画像情報を記憶する。図2は、画像記憶部111に記憶される画像情報の構成の一例を示す図である。たとえば、図2に示すように、画像情報は、画像を一意に識別する画像ID(Identifier)を含む。そして、画像記憶部111は、画像IDに対応付けて、画像が撮影された場所、撮影日時、画像自体等を記憶する。図2に示す例では、画像ID「001」に対応づけて、画像ID「001」の画像の撮影地点の緯度と経度が「35.6587,139.74」として記憶されている。さらに、画像ID「001」に対応づけて、撮影日時「2012/03/30」が記憶されている。さらに、画像ID「001」に対応づけて、画像自体が記憶されている。
[特徴点情報]
特徴点記憶部112は、画像処理サーバ100が受信した画像の特徴点に関する情報を記憶する。図3は、特徴点記憶部112に記憶される特徴点情報の構成の一例を示す図である。
ここで、特徴点とは、画像の中で目立った特徴を示す点のことをいう。たとえば、画像中の物体の角にあたる部分や、境界線に該当する部分など、周囲の画素との輝度勾配が大きい部分が特徴点として抽出される。なお、特徴点の抽出については後述するが、抽出の手法は特に限定されない。
図3に示すように、特徴点記憶部112は、たとえば、画像ID「001」に対応付けて、当該画像から抽出された特徴点の情報を記憶する。図3の例では、画像ID「001」に対応付けて、特徴点を一意に特定する特徴点ID「FP001」が記憶されている。さらに、特徴点ID「FP001」で特定される特徴点の位置が、画像上の座標「x1,y1」であることが記憶されている。特徴点は、各画像について複数個抽出され、その各々についての情報が特徴点記憶部112に記憶される。
[特徴量マトリクス情報]
マトリクス記憶部113は、特徴点各々の特徴量マトリクスの情報を記憶する。図4は、第1マトリクス記憶部113aに記憶される特徴量マトリクス情報の構成の一例を示す図である。図5は、第2マトリクス記憶部113bに記憶される特徴量マトリクス情報の構成の一例を示す図である。図6は、比較画像の特徴点の特徴量マトリクスの構成の一例について説明するための図である。図4乃至図6を参照して、特徴量マトリクス情報について説明する。
マトリクス記憶部113は、第1マトリクス記憶部113aおよび第2マトリクス記憶部113bを備える(図1参照)。第1マトリクス記憶部113aは、照合する2つの画像のうち比較対象となる画像(以下、適宜「比較画像」とも称する。)の特徴点の特徴量マトリクスを記憶する。第2マトリクス記憶部113bは、照合する2つの画像のうち比較画像ではない、処理対象となる画像(以下、適宜「処理画像」とも称する。)の特徴点の特徴量マトリクスを記憶する。第1マトリクス記憶部113aは、比較画像の各特徴点につき一つの特徴量マトリクスを記憶する。これに対して、第2マトリクス記憶部113bは、処理画像の各特徴点につき複数の特徴量マトリクスを記憶する。
図4に示すように、比較画像の特徴点についての特徴量マトリクス情報は、「画像ID」、「特徴点ID」、「マトリクスID」、「マトリクスセグメントID」、「輝度値」、「輝度差」および「輝度差レベル」を含む。特徴量マトリクス情報は、各特徴点の特徴量マトリクスについての情報である。例えば、図4の例では、「画像ID:001」の画像の「特徴点ID:FP001」の特徴点について、「マトリクスID:M00101」の特徴量マトリクスについての情報が記憶されている。
他方、図5に示すように、処理画像の特徴点についての特徴量マトリクス情報は、上記比較画像の特徴点について記憶される情報に加えて以下の情報を含む。すなわち、「回転角」「拡大縮小率」である。また、処理画像の特徴点についての特徴量マトリクスは、一つの特徴点について複数作成される。図5の例では、特徴点ID「FP001」の特徴点について、マトリクスID「M00101」、「M00102」、「M00103」等の複数の特徴量マトリクスが記憶されている。また、マトリクスID「M00101」は、「回転角:0°」、「拡大縮小率1.0」と対応付けられている。
特徴量マトリクスの詳細についてさらに説明する。なお、特徴量マトリクスは後述する作成部124によって作成される。図6に示すように、特徴量マトリクスは、特徴点を中心とし所定の長さの軸を有する楕円を、周方向および半径方向に所定の数の領域に分割したものである。たとえば、作成部124は、特徴点に基づいて第1の方向を決定する。そして、作成部124は、第1の方向に基づいて第2の方向を決定する。作成部124は、決定した第1の方向と第2の方向とをそれぞれ軸として、特徴点を中心として楕円状のマトリクスを作成する。たとえば、作成部124は、特徴点と最も近い特徴点の方向を第1の方向とする。そして、作成部124は、当該特徴点と最も近い特徴点とを結ぶ線分に対して90度の角度の方向を第2の方向とする。作成部124は、このようにして作成した特徴量マトリクスに、特徴点の輝度値と、マトリクスの領域の輝度値との差分に関する情報を対応づける。各領域に含まれる画素の輝度値と、楕円の中心に位置する特徴点の輝度値との差分が、各領域の「輝度差」の値となる。なお、図6の例には、合計49個の画素を示すが、以下、説明の便宜上、49個の画素をそれぞれ、「行番号、列番号」で特定して説明する。行番号は、下から上に向かって「1」〜「7」で示し、列番号は、左から右に向かって「1」〜「7」で示す。
図6の例では、作成部124は、特徴点FPを中心として、特徴点の存在する画素位置から長軸方向に3画素の領域にわたる特徴量マトリクスを設定する。また、図6の例では、特徴量マトリクスを構成する楕円は、径方向に2領域、周方向に4領域に分割され、全部で8個の領域が形成される。各領域には、当該領域を一意に特定するためのマトリクスセグメントIDが付与される。図6の例では、楕円の上中心から右回り方向に内側から外側に向けて順番に、マトリクスセグメントIDが付与されている。たとえば、中心側の楕円に含まれる4つの領域には、上中心から右回りに、マトリクスセグメントID「1」〜「4」が付与されている。外側の楕円に含まれる4つの領域には、上中心から右回りに、マトリクスセグメントID「5」〜「8」が付与されている。
このように特徴量マトリクスの領域を設定した場合、一つの画素が2以上の領域にまたがって存在する場合がある。ここでは、作成部124は、二つの領域にまたがる画素については、右側かつ下側の領域に入れて特徴量を計算する。たとえば、図6の画素「5,4」は、マトリクスセグメントID「1」「4」「5」「8」の4つの領域にまたがって存在する。そして、右側の領域は、マトリクスセグメントID「1」「5」の領域であり、そのうち下側の領域はマトリクスセグメントID「1」の領域である。したがって、作成部124は、画素「5,4」はマトリクスセグメントID「1」の領域に入れて特徴量を算出する。
このようにして、作成部124は、図6に示す各領域について、特徴量を算出する。たとえば、マトリクスセグメントID「1」の領域には、画素「5,4」、「5,5」が入る。したがって、輝度値「(100+100)/2=100」がマトリクスセグメントID「1」の領域の輝度値となる。そして、特徴点が存在する領域の画素の輝度値は「255」である。よって、「255−100=155」が、マトリクスセグメントID「1」の領域の輝度差の値となる。
また、マトリクスセグメントID「2」の領域には、画素「4,4」、画素「4,5」が含まれる。したがって、輝度値「(255+255)/2=255」がマトリクスセグメントID「2」の領域の輝度値となる。よって、「255−255=0」が、マトリクスセグメントID「2」の領域の輝度差の値となる。
同様に、図6に示すマトリクスセグメントID「3」〜「8」について輝度差を求めると、最終的に得られる数値は図4に示すようになる。このように、作成部124は、各特徴点について、マトリクスセグメント各々の輝度差を求め、マトリクス記憶部113は、特徴量マトリクス情報として記憶する。
また、マトリクス記憶部113は、輝度差の値がとり得る範囲である−255から255の値を、たとえば13のレベルに区分して、輝度差がどのレベルに該当するかも記憶する。たとえば、輝度差が「−255〜−215」の場合をP1、「−215〜−175」の場合をP2、「−175〜−135」の場合をP3、「−135〜−95」の場合をP4とする。また、輝度差が「−95〜−55」の場合をP5、「−55〜−15」の場合をP6、「−15〜15」の場合をP7、「15〜55」の場合をP8、「55〜95」の場合をP9、「95〜135」の場合をP10とする。さらに、輝度差が「135〜175」の場合をP11、「175〜215」の場合をP12、「215〜255」の場合をP13とする。この場合、図4に示すように、マトリクスセグメントID「1」の領域については、輝度差が「155」であるため、輝度差レベルは「P11」となる。なお、これに限定されず、輝度差の値のみを記憶してもよい。
[特徴点ペア情報]
ペア記憶部114は、画像処理サーバ100による処理によって決定される特徴点ペアについての情報を記憶する。図7は、ペア記憶部114に記憶される特徴点ペア情報の構成の一例を示す図である。
図7に示すように、特徴点ペア情報は、処理画像を一意に特定する「処理画像ID」と、比較画像を一意に特定する「比較画像ID」とを含む。さらに、「処理画像ID」および「比較画像ID」に対応づけて、各特徴点ペアを一意に特定する「ペアID」を記憶する。そして、「ペアID」に対応づけて、処理画像の特徴点を一意に特定する「処理画像特徴点ID」と、比較画像の特徴点を一意に特定する「比較画像特徴点ID」とを記憶する。たとえば、図7の例では、「処理画像ID:001」「比較画像ID:201」に対応づけて、ペアID「001」、「002」、「003」等が記憶される。そして、ペアID「001」に対応づけて、「処理画像特徴点ID:FP001」と「比較画像特徴点ID:FP201」が記憶される。このように、特徴点ペア情報は、二つの画像のどの特徴点同士が対応するかを示す情報である。
[設定記憶部に記憶される情報]
実施例1に係る画像処理サーバ100は、二つの画像の一方(処理画像)の特徴点について、適用するマトリクスを所定の比率で拡大縮小して、複数の特徴量マトリクスを作成する。また、画像処理サーバ100は、作成した複数の楕円状の特徴量マトリクスの軸の一方を、特徴点を中心として所定の回転角度で回転させて、さらに特徴量マトリクスを作成する。かかる処理を実現するため、実施例1に係る画像処理サーバ100の記憶部110には、設定記憶部115が設けられている。たとえば、設定記憶部115は、回転角記憶部115aと拡大縮小率記憶部115bとを有する。なお、設定記憶部115に記憶される情報は、ユーザの入力に基づいて記憶されてもよく、回転部124aおよび拡大縮小部124bによる処理の結果に基づいて記憶されてもよい。また、初期値として予め所定の値を設定記憶部115に記憶してもよい。
[回転角情報]
回転角記憶部115aは、回転処理に用いる情報を記憶する。図8は、回転角記憶部115aに記憶される情報の構成の一例を示す図である。たとえば、回転角記憶部115aは、特徴量マトリクスの軸を回転させる回数と、回転させる角度を変化させる角度変化範囲およびその時点で適用されている回転数および角度変化範囲を示すフラグを記憶する。図8の例では、「回転数」、「角度変化範囲」、「フラグ」が記憶される。たとえば、回転数「178」に対応付けて、角度変化範囲「−89°〜+89°」が記憶されている。また、この時点で回転数「178」、角度変化範囲「−89°〜+89°」が選択されていることを示すフラグが記憶されている。図8の例では、ユーザが手動で回転数および角度変化範囲を設定することができるよう、最下段に「回転数:任意(手動設定)」のボックスを設けている。ユーザが手動で回転数および角度変化範囲を設定した場合は、最下段の空白のボックスに設定した回数および設定した角度変化範囲が記憶される。
ここでは、回転角記憶部115aに記憶された情報に基づいて、角度変化範囲を変更することができる例を示すが、画像処理サーバ100において適用できる回転角度および回転数を固定にして、回転角記憶部115aを設けないものとすることもできる。また、回転部124aにおける処理の結果、角度変化範囲等が回転記憶部115aに設定されるものとしてもよい。
拡大縮小率記憶部115bは、特徴量マトリクス作成のため特徴点に適用するマトリクスを拡大縮小する際の、拡大縮小率を記憶する。図9は、拡大縮小率記憶部115bに記憶される情報の構成の一例を示す図である。
拡大縮小率記憶部115bは、画像の種類に対応付けて、拡大縮小率と、拡大縮小回数と、その時点で適用されている拡大縮小率を示すフラグとを記憶する。たとえば、図9に示すように、画像の種類「衛星画像」に対応づけて、拡大縮小率「0.5〜2.0」が記憶される。さらに、この場合の拡大縮小回数である「16」が記憶される。これは、0.5〜2.0倍の範囲内で、0.1きざみに、「0.5倍」、「0.6倍」、「0.7倍」から「2.0倍」までの拡大縮小率を適用することを意味する。さらに、この時点で「衛星画像」の拡大縮小率が適用されていることを示すフラグが記憶されている。
作成部124は、たとえば、特徴量マトリクスの長軸または短軸の長さを増減させる。ここでは、拡大縮小処理は、短軸または長軸を基準として、他方の軸の長さを変更して行う。たとえば、長軸の長さを「1」として、短軸の長さを「0.5〜2.0」の拡大縮小率で変更する。なお、拡大縮小率の増減幅を別途定義するようにしてもよい。
拡大縮小率記憶部115bは、予め画像の種類に対応付けて拡大縮小率を記憶するが、ユーザが拡大縮小率を任意に設定することもできる。図9の最下段に示すように、ユーザが拡大縮小率を任意に設定した場合は、空白のボックスに拡大縮小率が記憶され、フラグが設定される。
ここでは、拡大縮小率記憶部115bに記憶された情報に基づいて、拡大縮小率を変更することができる例を示すが、画像処理サーバ100において適用できる拡大縮小率を固定にして、拡大縮小率記憶部115bを設けないこともできる。また、拡大縮小部124bにおける処理の結果、拡大縮小率等が拡大縮小率記憶部115bに設定されるものとしてもよい。
実施例1では、拡大縮小処理において、特徴量マトリクスの長軸または短軸の長さを増減させるものとする。ただし、後述する回転処理において、特徴量マトリクスの軸を回転させた結果、軸方向が変化した場合は、回転後の軸方向に特徴量マトリクスを拡大縮小してもよい。
[制御部120の構成]
図1に戻り、制御部120の構成を説明する。制御部120は、設定部121と、受付部122と、抽出部123と、作成部124と、決定部125と、位置合わせ部126と、検出部127と、を備える。制御部120は、入出力部130を介して受信した画像を解析して特徴点ペアを決定する処理を実行する。さらに、制御部120は、決定した特徴点ペアに基づき、画像の位置合わせと画像間の差分検出を実行する。制御部120における処理によって生成されるデータは適宜、記憶部110に記憶される。なお、制御部120は、例えば、各種の集積回路や電子回路である。例えば、集積回路としては、ASIC(Application Specific Integrated Circuit)が挙げられる。また、電子回路としては、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などが挙げられる。
設定部121は、入出力部130を介して、クライアント200からの入力にもとづき、特徴量マトリクスの設定を行う。たとえば、設定部121は、特徴量マトリクスの角度変化範囲および拡大縮小率を設定する。たとえば、所定のコマンドをクライアント200のモニタ201から入力することで、モニタ201に入力画面が表示され、ユーザは、モニタ201から設定を入力する。設定部121は、設定の入力があると、入力された内容を、回転角記憶部115aおよび拡大縮小率記憶部115bに設定する。たとえば、該当する角度変化範囲および画像種類にフラグが設定される。または、ユーザが任意の数値を入力した場合は、空白のボックスに数値が入力され、当該ボックスにフラグが設定される。なお、設定の入力を待たず、デフォルトで回転角および拡大縮小率が設定されるものとしてもよい。また、画像処理サーバ100における処理の結果、回転角および拡大縮小率が設定されるものとしてもよい。
なお、上述のように全ての画像に固定の角度変化範囲および拡大縮小率を適用する場合には、設定部121を設けなくてもよい。
受付部122は、入出力部130を介して同一の地点を異なる時期に撮影することによって得られる少なくとも二つの画像を受け付ける。受け付けた画像は、指示入力に基づき抽出部123に送られる。また、受付部122が受け付けた画像は、画像記憶部111に記憶される。また、受付部122は、通常は受け付けた画像を画像記憶部111に記憶するのみとし、オペレータ等による指示入力があった場合に、画像記憶部111に記憶された画像を読み出し、抽出部123に送るよう構成してもよい。
抽出部123は、受付部122から送られる画像から特徴点を抽出する。たとえば、画像内の建物、道路、森林、敷地などの輪郭点や境界点などを特徴点として抽出する。特徴点を抽出するために用いる手法は特に限定されない。たとえば、ハリス(Harris)オペレータやモラベック(Moravec)オペレータを用いる方法、SUSAN(Smallest Univalue Segment Assimilating Nucleus)、MIC(Minimum Intensity Change)等を利用することができる。抽出部123が抽出した特徴点に関する情報は、特徴点記憶部112に記憶される。
作成部124は、抽出部123により抽出された特徴点各々について、上述した特徴量マトリクスを作成する。作成部124は、回転部124aと拡大縮小部124bとを備える。作成部124は、回転角記憶部115aおよび拡大縮小率記憶部115bに記憶される情報に基づき、二つの画像の一方(処理画像)の特徴点の特徴量マトリクスの回転処理および拡大縮小処理を実行する。すなわち、回転部124aは、回転角記憶部115aに記憶された角度変化範囲等に基づいて、特徴量マトリクスの軸を回転させる。拡大縮小部124bは、拡大縮小率記憶部115bに記憶される拡大縮小率に基づいて、特徴点に適用するマトリクスを拡大縮小する。回転部124aおよび拡大縮小部124bによる回転処理および拡大縮小処理を経て作成部124が作成した特徴量マトリクスの情報は、マトリクス記憶部113に記憶される。回転処理および拡大縮小処理についてはさらに詳しく後述する。
決定部125は、二つの画像の各々の特徴点について作成された特徴量マトリクスを比較し、類似度を算出する。たとえば、決定部125は、一方の画像の特徴点をひとつ選択する。そして、決定部125は、当該特徴点の特徴量マトリクスを、他方の画像の特徴点すべての特徴量マトリクスと比較する。たとえば、決定部125は、二つの特徴量マトリクスの各領域の輝度差レベル(図4、図5参照)を比較する。そして、決定部125は、比較結果に基づき、特徴量マトリクス間の類似度を算出する。決定部125は、最も類似度が高い特徴点の対を特徴点ペアと決定する。なお、類似度を算出する手法は特に限定されないが、例えば、正規化相互相関(ZNCC:Zero-mean Normalized Cross-Correlation)を用いることができる。また、差分絶対値和(SAD:Sum of Absolute Differences)、差の二乗和(SSD:Sum of Squared Difference)等を利用した手法を適用してもよい。
位置合わせ部126は、決定部125が決定した特徴点ペアに基づいて、二つの画像の位置合わせを実行する。たとえば、位置合わせ部126は、特徴点ペアの画像上の座標に基づいてホモグラフィ行列を算出し、一方の画像を、ホモグラフィ行列を用いて変換することで、画像の位置合わせを実行する。ただし、位置合わせに用いる手法は特に限定されない。
検出部127は、位置合わせ後の二つの画像の差分を検出する。たとえば、検出部126は、位置合わせ後の画像の画素値、たとえば輝度成分を比較して差分を検出する。ただし、差分検出に用いる手法は特に限定されない。検出した差分画像は、入出力部130を介して、クライアント200に送信することができる。
ここで、位置合わせ部126や検出部127は必ずしも設けなくてもよい。また、回転部124aおよび拡大縮小部124bも必ずしも設けなくてもよい。
[実施例1に係る画像処理の流れ]
次に、図10を参照し、実施例1に係る画像処理サーバ100による画像処理の流れにつき説明する。図10は、実施例1に係る画像処理サーバ100による画像処理の処理手順の一例を示すフローチャートである。
まず、設定部121が、回転角および拡大縮小率を設定する(ステップS201)。次に、受付部122が、比較照合の対象となる二つの画像A(比較画像)、B(処理画像)の入力を受け付ける(ステップS202)。受付部122は、受け付けた画像A、Bを抽出部123に送る。抽出部123は、受け取った画像A、Bのそれぞれから、特徴点を抽出する(ステップS203)。抽出部123は、たとえば、画像の各画素の輝度値や輝度変化の方向にもとづき、画像内の建物、道路、森林、敷地などの輪郭点や境界点を抽出する。
次に、作成部124は、抽出部123が抽出した、画像Aの特徴点各々について、特徴量マトリクスを作成する(ステップS204)。すなわち、作成部124は、当該特徴点を中心とする楕円状のマトリクスの各領域内の画素の輝度値を算出し、特徴点の画素の輝度値との差分を算出する。作成部124は、算出した差分を、各領域に対応づけて、特徴量マトリクスを作成する。
次に、決定部125は、特徴量マトリクスを作成していない方の画像B(処理画像)の特徴点を一つ選択する(ステップS205)。決定部125による選択を受け、作成部124は、画像Bの選択された特徴点について、特徴量マトリクスを作成する(ステップS206)。そして、決定部125は、作成部124が作成した画像Bの特徴点の特徴量マトリクスを、画像A(比較画像)の特徴点各々の特徴量マトリクスと比較して類似度を算出する(ステップS207)。
次に、決定部125は、回転部124aが回転角記憶部115aに記憶された所定の回転数だけ回転処理を実行したか否かを判定する(ステップS208)。所定の回転数の回転処理が完了していないと判定した場合(ステップS208、否定)、決定部125は、処理を作成部124に回す。回転部124aはさらに、所定角度だけ特徴量マトリクスの軸を回転させて回転処理を実行する(ステップS209)。そして、作成部124が、回転処理を施した特徴量マトリクスを作成し(ステップS206)、決定部125が、類似度を算出して記憶部110に格納する(ステップS207)。
所定の回転数の回転処理が完了していると判定した場合(ステップS208、肯定)、決定部125は、拡大縮小率記憶部115bに記憶されている拡大縮小率に対応する拡大縮小処理が完了したか否かを判定する(ステップS210)。拡大縮小処理が完了していないと判定した場合(ステップS210、否定)、決定部125は、処理を作成部124に戻す。拡大縮小部124bは完了していない拡大縮小率による特徴量マトリクスの拡大縮小処理を実行する(ステップS211)。そして、作成部124は、拡大縮小処理後の特徴量マトリクスを元に、選択されている画像Bの特徴点の特徴量マトリクスを作成する(ステップS206)。決定部125は、作成された画像Bの特徴点の特徴量マトリクスをもとに、類似度を算出する(ステップS207)。そして、再び、作成部124は、所定回数の回転処理が完了したか否かを判定する(ステップS208)。
他方、ステップS210において拡大縮小処理が完了したと判定した場合(ステップS210、肯定)、決定部125は、算出した類似度のうち最も高い類似度が算出された画像Aの特徴点を選択する(ステップS212)。次に、決定部125は、選択した画像Aの特徴点の類似度が所定値以上か否かを判定する(ステップS213)。所定値未満と判定した場合(ステップS213、否定)、決定部125は、ステップS205で選択した画像Bの特徴点を除外する(ステップS214)。すなわち、画像Bについて特徴点記憶部112に記憶された特徴点の情報から、当該特徴点の情報を削除する。他方、所定値以上と判定した場合(ステップS213、肯定)、決定部125は、ステップS212で選択した画像Aの特徴点と、ステップS206で選択した画像Bの特徴点とをペアとして決定する(ステップS215)。
そして、決定部125は、処理画像の全ての特徴点についてペアが決定したか否かを判定する(ステップS216)。全ての特徴点についてペアが決定していないと判定した場合(ステップS216、否定)、決定部125は次の特徴点を選択し(ステップS217)、ステップS206の処理に戻る。他方、全ての特徴点についてペアが決定したと判定した場合(ステップS216、肯定)、位置合わせ部126が、決定した特徴点ペアに基づいて画像の位置合わせをおこなう(ステップS218)。次に、位置合わせ後の二つの画像に基づいて、検出部127が差分を検出する(ステップS219)。検出した差分から構成される差分画像は、入出力部130を介して出力される(ステップS220)。これによって処理が終了する。
[特徴量マトリクスの作成処理]
次に、特徴量マトリクスの作成処理の一例について説明する。図11は、特徴量マトリクスの作成処理の一例を説明するための図である。まず、決定部125は、画像から抽出した特徴点の中から1つの特徴点(注目点)を選択する。例えば、決定部125は、図11(A)のP1を選択する。作成部124は、注目点から最も近くにある特徴点を選択する。図11(A)の場合、注目点P1から最も近くにある特徴点はP2であるため、作成部124は、P2を選択する。作成部124は、そして、P1とP2とを結ぶ線分に対して90度の角度をなす線分を算出する。作成部124は、算出した線分上での輝度変化を算出して輝度変化が閾値以上になる点を抽出する。図11(A)の場合、P3において、大きな輝度変化が生じ閾値以上となるため、探索の結果、作成部124は、P3を抽出する。そして、作成部124は、P1を中心とし、P2およびP3を通る楕円形を算出する(図11(B))。作成部124は、算出した楕円形を複数領域に分割し、各領域内の画素の輝度値と、中心にある特徴点P1の画素値との差分を求め、差分を各領域に対応づける。これによって、特徴点の特徴量マトリクスが作成される。
[最も近い特徴点を利用する理由]
上記の例では、作成部124は、特徴量マトリクスの作成において、注目点から最も近い特徴点を利用する。図12−1乃至図12−3は、特徴量マトリクスの作成処理において、注目点から最も近い特徴点を利用することを説明するための図である。
まず、図12−1に示す画像Aにおいて、注目点をP1とすると、最も近い特徴点はP2となる。これに対して、天候が変化したこと、たとえば、曇りの日や夕方に撮影した等の理由で、画像全体が暗く写ったとする。図12−2に示すように、画像全体が暗くなった場合は、画像全体として輝度差の大きい部分、すなわちエッジが弱くなる。しかし、エッジが完全になくなってしまうわけではなく、作成部124は、輝度差の大きい部分を抽出することができる。したがって、作成部124は、注目点をP1とし、特徴点P2を最も近い特徴点として抽出することができる。
さらに、日照の変化により画像の一部に影がかかる等の変化が生じる場合がある。図12−3に示すように、画像の左下領域のみに影がかかり、左下領域のみ明るさが他の部分と異なった場合を考える。この場合、左下領域においてはエッジが弱くなるため、作成部124は、P2を特徴点として抽出できないことがある。そして、P2が特徴点として抽出されない結果、作成部124は、他の特徴点、たとえば、P3を注目点P1から最も近い特徴点として抽出する。この場合は、作成部124が作成する特徴マトリクスは、比較画像の特徴点について作成される特徴マトリクスとずれることになり、正しく特徴点ペアが検出できない可能性がある。
しかし、通常は、特徴点ペアとして数百のペアを抽出したのち、正当性をチェックして誤対応ペアを除外する処理を行う。また、衛星画像等の場合、全ての特徴点について日照変化等の影響で誤検出が生じる可能性は低い。したがって、日照変化の影響を考慮しても、最も近い特徴点を抽出して特徴量マトリクスを作成することによって妥当な特徴点ペアを決定することができる。また、作成部124は、二つの画像の一方の特徴点については、回転処理および拡大縮小処理を行い、一つの特徴点について複数の特徴量マトリクスを作成し、類似度が閾値より小さい場合は、特徴点を除外する。したがって、誤検出を抑制して適正な特徴点ペアを決定することができる。
なお、このように、最も近い特徴点の方向を楕円状のマトリクスの一軸方向とする場合、特徴量マトリクスの領域の設定は、当該軸方向を基準として行う。たとえば、図6に示す例において楕円の長軸方向(列1から列7へ向かう方向)を、最も近い特徴点の方向として、図6に示すようにマトリクスの領域を設定し、各領域の輝度差の値を算出する。これによって、異なる画像の特徴点の特徴量マトリクスを適正に比較することができる。ただし、特徴量マトリクスを適正に比較することができれば、他の基準を用いて特徴量マトリクスの領域を設定してもよい。
[拡大縮小処理]
図13を参照し、特徴量マトリクスの拡大縮小処理を説明する。図13は、特徴量マトリクスの拡大縮小処理を説明するための図である。まず、上述のように注目点P1から最も近い特徴点P2を抽出し、注目点P1と最も近い特徴点P2とを結ぶ線分に対して90度の角度をなす線分上において輝度変化が閾値以上となる点P3を抽出する。そして、90度の角度をなす線分の長さを所定の割合で増減させて、複数の特徴量マトリクスを作成する。
90度の角度をなす線分の長さは、注目点から注目点に最も近い特徴点までの長さを基準として、増減の範囲を0.5倍〜2倍までに設定してもよい。そして、基準の長さに対して、0.5倍、0.6倍、0.7倍、・・・2.0倍まで長さを変化させて特徴量マトリクスを作成すればよい。たとえば、図13に示すように、90度の角度をなす線分の長さを変更する。
このように、特徴量マトリクスの短軸又は長軸の長さを変化させて複数の特徴量マトリクスを作成することにより、画像の一部が歪んでいる場合であっても、正確に画像の輝度を反映した特徴量マトリクスを作成することができる。
なお、ここでは、特徴点(注目点)から最も近い他の特徴点を抽出して、注目点と当該他の特徴点を結ぶ線分と、当該線分と90度の角度をなす線分とを、楕円状の特徴量マトリクスの短軸および長軸とした。しかし、これに限定されず、任意の方向と、当該方向と所定の関係を有する他の方向とを、楕円形状のマトリクスの短軸方向及び長軸方向としてもよい。たとえば、画像に方位情報が含まれていれば、北方向等を第1の方向、すなわち、楕円の短軸方向または長軸方向の一方としてもよい。また、第1の方向に対して、いずれかの方向に90度を任意の角度(90度±α)で補正した方向を第2の方向、すなわち、楕円の短軸方向または長軸方向の他方としてもよい。この場合も、拡大縮小部124bは、拡大縮小処理を、特徴量マトリクスの長軸または短軸を所定の比率で増減させることにより実行すればよい。また、回転処理および拡大縮小処理をともに実行する場合は、拡大縮小部124bは、回転後の軸方向に特徴量マトリクスを拡大縮小するものとしてもよい。
なお、ここでは、90度方向の線分の長さは、当該方向上の点で、当該点における輝度変化が所定の閾値以上となる点とした。しかし、90度方向の線分の長さは、たとえば、所定画素数の長さとしてもよく、楕円の中心となる特徴点と当該特徴点と最も近い特徴点との間の長さに対する比率によって決定してもよい。
[縮小率および拡大率の設定]
図14は、拡大縮小処理での縮小率についてさらに説明するための図である。図14に示すように、特徴量マトリクスの半径をR(Rは画素数で示す)、半径方向の領域数をNとする。ここで、半径Rが、領域数Nよりも小さい場合、半径方向の1領域が1画素に満たないことになる。そこで、拡大縮小部124bは、縮小率を、半径方向の1領域が1画素以上となるように設定する。すなわち、縮小率pの最大値は、p=N/Rとする。
また、拡大縮小部124bは、拡大率qを、画像の大きさを元に算出する。図15−1および図15−2は、拡大縮小処理での拡大率について説明するための図である。図15−1に示すように、拡大縮小部124bは、拡大縮小率を、特徴量マトリクスが画像の縦横の長さを超えるような数値に設定することはできない。たとえば、図15−1に示すように、画像の縦方向長さをW、横方向長さをHとする。このとき、特徴点が図15−1の座標「(x1,y1)」で表される位置にある場合、特徴量マトリクスの半径を、特徴点から画像上端までの距離より長く設定することはできない。また、特徴点が図15−1の座標「(x2,y2)」で表される位置にある場合、特徴量マトリクスの半径を、特徴点から画像右端までの距離より長く設定することはできない。したがって、拡大縮小部124bは、特徴点の座標の位置に応じて、設定できる特徴量マトリクスの拡大率を決定することができる。
拡大率qは、特徴点の位置が、図15−2に示す位置(1)〜(4)のいずれの位置にあるかによって、以下の式に基づいて決定することができる。
特徴点が、図15−2の位置(1)にある場合は、xがyよりも大きければ、q=x/Rとなる。また、xよりyが小さければ、q=y/Rとなる。
特徴点が、図15−2の位置(2)にある場合は、(W−x)よりyが大きければ、q=(W−x)/Rとなる。また、(W−x)よりyが小さければ、q=y/Rとなる。
特徴点が、図15−2の位置(3)にある場合は、xより(H−y)が大きければ、q=x/Rとなる。また、xより(H−y)が小さければ、q=(H−y)/Rとなる。
特徴点が、図15−2の位置(4)にある場合は、(W−x)より(H−y)が大きければ、q=(W−x)/Rとなる。また、(W−x)より(H−y)が小さければ、q=(H−y)/Rとなる。
このように、拡大率および縮小率を設定することができる。しかし、拡大縮小による変化の幅が最大となるように拡大率および縮小率を設定した場合、処理量が多くなり、画像処理サーバ100の負担も増加する。したがって、画像間で拡大率に大きな変動がない衛星画像等の場合には、拡大縮小の幅を小さく設定することで、処理量の増加を抑制してもよい。また、適用する画像の種類に応じて、予め拡大縮小率を設定しておいてもよい。
[回転処理]
次に、図16−1乃至図16−3を参照し、処理画像の特徴点の特徴量マトリクスの回転処理を説明する。図16−1乃至図16−3は、特徴量マトリクスの回転処理について説明するための図である。
図16−1に示すように、撮影角度が変化した場合、複数画像間で、画像の映り具合が変化する。図16−1に示す画像Aと、図16−2に示す画像Bとでは、被写体の縦横の長さの比率が微妙に変化している。画像Aでは、注目点をP1Aとした場合、作成部124は、最も近い特徴点としてP2Aを抽出する。そして、作成部124は、P1AとP2Aとを結ぶ線分に対して90度の角度をなす線分上のP3Aを抽出する。そしてP3Aにおいて大きな輝度変化が生じているため、作成部124は、P3Aを、輝度変化が所定値以上になる点として抽出する。他方、画像Bでは、画像Aと比較して横方向の長さが短くなっている。このため、注目点をP1Bとした場合、作成部124は、最も近い特徴点としてP2Bを抽出するが、P1BとP2Bとを結ぶ線分と90度をなす線分上にP3Bがないため、P3Bを抽出できない。
ここで、輝度が大きく変化する点として抽出される点を、画像Aと画像Bとで等しくするためには、輝度変化を抽出するために用いる線分の角度を変化させるとよい。そこで、作成部124は、注目点と、注目点に最も近い特徴点とを結ぶ線分となす角度を90度から所定の範囲内で増減させて、複数の特徴量マトリクスを作成する(画像C、図16−3参照)。角度は、たとえば、線分に対して−89度から+89度までの範囲内で、1度ずつ変化させればよい。
[角度変化範囲の決定処理]
画像処理サーバ100は、特にユーザが設定しなくとも、画像とともに撮影角度の情報を受信した場合、回転部124aが、受信した情報に基づき角度変化範囲を算出するものとしてもよい。回転部124aが角度変化範囲を算出する場合は、算出した数値等が、回転角記憶部115aに記憶される。そして、算出した角度変化範囲に基づき、回転部124aは、特徴量マトリクスの回転処理を実行するものとしてもよい。
そこで、回転部124aが楕円状の特徴量マトリクスの長軸と短軸とがなす角度を所定の範囲内で増減させて複数の特徴量マトリクスを作成する場合に、角度を変化させる範囲を決定する手法について、図17−1乃至図17−7を参照して説明する。図17−1乃至図17−6は、回転部124aにおける角度変化範囲の決定手法について説明するための図である。図17−7は、回転部124aが決定する角度変化範囲の一例を示す図である。
たとえば、衛星画像や航空画像においては、撮影場所から被写体への角度を撮影時に取得できる場合がある。このような場合には、回転部124aは、取得した角度を元に、角度を変化させる範囲を決定することができる。例えば、図17−1に示すように、地上に半径rの正円が存在すると考える。この場合、図17−1に示す上空の位置Xから真下方向を撮影した場合、半径rの正円は、図17−2のように見える。また、図17−1に示す上空の位置Yから斜め下方向の半径rの正円を撮影したとする。位置Xと位置Yとの成す角度はθであるとする。この場合、位置Yから撮影した正円は、図17−3のように見える。すなわち、長軸半径がr、短軸半径がrcosθの楕円に見える。
このように斜めから撮影した画像の場合は、実際は90度の部分の見かけの角度が90度とは大きく異なる場合がある。例えば、図17−4に示す例では、二つの矢印にはさまれた部分の角度は実際の被写体においては90度であるが、見かけ上は90度より大きいまたは小さい角度に見える。他方、図17−1の位置Xのように被写体の真上から撮影を行った場合は、見かけの角度と実際の角度が一致する。図17−5に示す例では、見かけの角度が実際の角度と同じ90度になっている。
そこで、回転部124aは、実際の被写体上において90度である角度を包含する範囲について、角度を変化させるように、角度を変化させる範囲を決定する。例えば、撮影位置が被写体の真上方向となす角度がθである場合、中心を原点とする座標を描くと、図17−6に示すように、角度φmaxおよびφminによって、角度を変化させる範囲を決定できる。角度φmaxおよびφminは、座標(r,rcosθ)の位置と、座標(r,−rcosθ)の位置と、座標(−r,rcosθ)の位置によって決定される。実際に90度の角度の見かけ上の角度は、最大でφmax、最小でφminとなるためである。具体的には、角度を変化させる範囲は、以下の式で定義できる。
φmin≦変化範囲≦φmax
ここで、φmaxおよびφminは以下の式により求めることができる。
φmin=2tan−1(cosθ)
φmax=2tan−1(1/cosθ)
たとえば、θ=30度の場合、φminは81.79度、φmaxは98.21度となる。したがって、角度を変化させる範囲は、81.79度以上98.21度以下となる。
図17−7に、θの角度ごとに算出した角度を変化させる範囲の一例を示す。回転部124aは、たとえば、図17−7に示す変化範囲内で、所定角度ずつ角度を変化させて特徴量マトリクスを作成すればよい。実際の処理においては、回転部124aは、図17−7に示す角度を画素数に換算して、変化させる角度を決定する。たとえば、1画素が50センチメートルから1メートルに相当するとすれば、回転部124aは、2、3画素ずつ角度を変化させて特徴量マトリクスを作成する。なお、回転部124aは、角度を変化させる単位を、差分として検出したい対象物の大きさにあわせて決定するものとしてもよい。
[回転処理を経た特徴量マトリクスの作成処理]
次に、回転処理を実行する場合の作成部124による特徴量マトリクスの作成処理につき説明する。図18−1乃至図18−6は、回転処理を経た特徴量マトリクスの作成処理について説明するための図である。まず、図18−1に示すように、回転部124aが、90度方向を角度θだけ回転させるとする。なお、図18−1中、注目点をP1、注目点に最も近い特徴点をP2で示す。
このように回転部124aが90度方向を角度θだけ回転させると、注目点P1を中心とした楕円を描くことができない。そこで、回転部124aは、4つの楕円の部分を組み合わせることによって特徴量マトリクスを作成する。まず、図18−2に示すように、90度方向をθだけ回転させた線分の先端をPxとする。そして、回転部124aは、Pxから、P1とP2とを結ぶ線分に対しておろした垂線と、P1とP2とを結ぶ線分との交点P3を算出する。そして、回転部124aは、垂線を短径(または長径)とし、P3からP2までの距離を長径(または短径)とする楕円を算出する。まず、図18−2に示すように、回転部124aは、右上部分について、P3を中心とする楕円を算出する。
次に、図18−3に示すように、回転部124aは、左上部分について、P3を中心とし、P1とP2との間の距離だけ、P3から左方向に伸ばした点までの距離を長径(または短径)とし、垂線を短径(または長径)とする楕円を算出する。さらに、図18−4に示すように、回転部124aは、90度方向を角度θだけ回転させて得られる線分の下側の端点PyからP1とP2とを結ぶ線分に対する垂線を算出する。そして、回転部124aは、P1とP2とを結ぶ線分と垂線との交点P4を算出する。また、回転部124aは、P1からP2までの長さだけ、P1からP2と反対方向に延ばした線分の端点P5を算出する。そして、図18−4に示すように、回転部124aは、左下部分について、P4を中心とし、P4からPyの長さを短径(または長径)、P4からP5の長さを長径(または短径)とする楕円を算出する。さらに、図18−5に示すように、回転部124aは、右下部分について、P4を中心とし、P4からP2の長さを長径(または短径)、P4からPyまでの長さを短径(または長径)とする楕円を算出する。回転部124aは、このようにして求めた楕円の4つの部分を組み合わせることによって、特徴量マトリクスを算出する(図18−6)。
そして、作成部124は、回転部124aが算出した特徴量マトリクスの各領域に、当該領域内の画素の輝度値と特徴点の画素の輝度値との差分を対応づけることにより、特徴量マトリクスを作成する。
[実施例1の効果]
上述の実施例1においては、画像処理サーバ100は、第1の画像および第2の画像の各々から特徴点を抽出する。画像処理サーバ100は、第1および第2の画像の各々の特徴点について、該特徴点に基づいて決定される第1の方向および当該第1の方向に基づいて決定される第2の方向を決定する。そして、画像処理サーバ100は、第1の方向および第2の方向をそれぞれ軸とし、かつ、特徴点を中心とする楕円状のマトリクスを作成する。画像処理サーバ100は、作成したマトリクスの各領域に、当該領域内の画素の輝度値と特徴点の輝度値との差分に関する情報を対応づけて特徴量マトリクスを作成する。画像処理サーバ100は、第1の画像の特徴点の特徴量マトリクスと、第2の画像の特徴点の特徴量マトリクスとを比較し、類似する特徴点ペアを決定する。このため、画像サーバ100は、二つの画像間でのずれ方が画像内で一様でなくとも、適切に特徴点ペアを決定することができる。また、画像のアスペクト比を考慮した特徴量マトリクスを作成することができ、画像間にずれが生じている場合であっても、正確な特徴量マトリクスを作成して比較することができ、正確な特徴点ペアを決定することができる。
たとえば、実施例1の画像処理サーバ100は、以下のような画像間のずれに対処することができる。
二つの画像間のずれや、画像内で一様ではないずれは、二つの画像の撮影時の撮影角度や撮影方向の違いに起因して生じることがある。たとえば、上空のカメラから真下方向を撮影した場合には、画像内の地物は、中心から周囲に向けた方向に倒れたような状態で写る。他方、上空のカメラから斜め下方向(たとえばカメラから西向き等)を撮影した場合には、画像内の地物は、画像の一端、たとえば東方向に相当する辺の中央を中心とする扇状に倒れたような状態で写る。さらに、カメラの向きが横方向に回転すると、上記の状態に回転要素が加わる。このように撮影角度や撮影方向の差異に起因して画面にずれが生じる場合、画面中の領域ごとにアスペクト比、すなわち、縦方向の長さと横方向の長さの比が変化する場合がある。たとえば、円形の時計盤を真上から見ると円形に見えるが、3時方向から斜めに見下ろすと、12時−6時を長軸とした楕円に見える。また、6時の方向から斜めに見下ろすと、3時−9時を長軸とした楕円に見える。上空から撮影した画像の場合にも同様のずれが画面内の領域ごとに生じる場合がある。
このようなずれが生じている場合に、各画像から特徴点を抽出し、特徴点の周囲の画素との輝度変化の大きさと輝度変化の方向を算出する。そして、両画像間で算出した情報を比較することによりペアの決定を試みる。この場合、両画像間でアスペクト比が相違する箇所については、輝度変化の大きさと輝度変化の方向が一致または類似せず、正しくペアを決定することができない。また、カメラの向きが横方向に回転している場合、上記のアスペクト比の変化に回転方向の変化が加わる。つまり、上記時計盤の例をとると、12時−6時の軸が中央を中心として回転方向にずれる場合がある。このような場合にも、特徴点の輝度変化の方向が、画像ごとにずれることになり、正しく特徴点ペアを決定することができない。さらには、撮影時点が異なるために画像の明るさが画像ごとに相違し、特徴点ペアを決定するために使用する特徴量を輝度のみをもとにしている場合、特徴点ペアを正しく決定することができない。
実施例1の画像処理サーバ100は、上記のようなアスペクト比の違いや回転方向の変化、画像の明るさの違いに対処し、画像内に一様でないずれがある場合でも、正確な特徴点ペアを決定することができる。
また、実施例1においては、画像処理サーバ100は、特徴点から最も近い他の特徴点に向かう第1の方向と、第1の方向と90度の角度をなす第2の方向とを決定する。画像処理サーバ100は、決定した第1の方向および第2の方向を軸とし、かつ特徴点を中心とする楕円状のマトリクスを作成する。画像処理サーバ100は、作成したマトリクスの各領域に、当該領域内の画素の輝度値と特徴点の輝度値との差分に関する情報を対応づけて特徴量マトリクスを作成する。このため、二つの画像のずれが一様でなくとも、正確な特徴量マトリクスを作成して比較することができ、正確な特徴点ペアを決定することができる。また、二つの画像の特徴点の特徴量マトリクスの対応度を高めることができる。
また、実施例1においては、画像処理サーバ100は、第2の方向を、特徴点を中心として所定角度ずつ回転させて、一つの特徴点につき複数の特徴量マトリクスを作成する。このため、二つの画像のずれが一様でなくとも、正確な特徴量マトリクスを作成して比較することができ、正確な特徴点ペアを決定することができる。また、二つの画像各々に異なる程度の回転要素が含まれている場合であっても、正確な特徴量マトリクスを作成して比較することができ、特徴量マトリクスの比較によって適切な特徴点ペアを決定することができる。
また、実施例1においては、画像処理サーバ100は、楕円状のマトリクスを長軸方向または短軸方向に所定の比率で拡大または縮小して、一つの特徴点につき複数の特徴量マトリクスを作成する。このため、二つの画像の縮尺が部分的に異なっている場合でも、正確な特徴量マトリクスを作成して比較することができ、特徴量マトリクスの比較によって適切な特徴点ペアを決定することができる。
なお、実施例1によれば、時間的に離れた2時点でそれぞれ撮影された、人工衛星や航空機により撮影された画像を比較し、差分を検出することで、変化が生じた地点を特定することができる。たとえば、実施例1によれば、違法に増改築された土地や建物、違法に伐採された森林や不法投棄などが行われている場所を特定することができる。また、かかる場所を画像上で特定したうえで、実際の場所を調査することができる。
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
[回転および拡大縮小の省略等]
上述した実施例1においては、一方の画像の特徴点全てについて、回転角度および拡大縮小率を変化させて複数の特徴量マトリクスを作成するものとして説明した。しかし、いくつかの特徴点について回転角度および拡大縮小率を変動させて比較を行った結果、類似度が高い回転角度および/または拡大縮小率を決定することができる場合もある。そのような場合には、他の特徴点については同じ角度および/または同じ拡大縮小率の特徴量マトリクスのみを作成し、類似度を算出するものとしてもよい。
また、回転処理および拡大縮小処理を双方の画像の特徴点について実行するものとしてもよい。
また、実施例1は、回転処理および拡大縮小処理を行うものとして説明したが、回転処理および拡大縮小処理のいずれか一方を実行するようにしてもよい。
[画像処理サーバ]
開示の画像処理方法は、クラウドシステムを構成する画像処理サーバに実装し、クラウドシステムを介してユーザから送信される画像の処理に適用することができる。たとえば、衛星写真システムや航空写真システムから随時提供される写真のデータを、クラウドシステムのサーバに格納する。ユーザは、画像に撮影地点の情報を添付して送信する。また、ユーザは、撮影地点ごとに検出したい対象物を特定し、また、変化の有無を検出するための処理を行う間隔を指定する。画像処理サーバは、開示の画像処理を行うことにより特徴点ペアを決定し、画像の位置合わせおよび差分検出を行う。このように構成することで、ユーザは、クラウドシステムに画像のデータを送信するだけで、所望の期間ごとに、同一地点においてどのような変化があったかを容易に確認することができる。
[分散および統合]
図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。たとえば、図1に示したモニタ201を画像処理サーバ100に組み入れ、画像処理サーバ100においてモニタに画像等を出力し確認することができるように構成してもよい。また、記憶部110について、画像記憶部111、特徴点記憶部112、ペア記憶部114を統合して一つの記憶部として構成してもよい。また、画像記憶部111を外部メモリとして、ネットワーク300により画像処理サーバ100に接続される構成にしてもよい。
[画像処理プログラム]
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図19を用いて、上記の実施例と同様の機能を有する画像処理プログラムを実行するコンピュータの一例について説明する。
図19は、実施例1〜2に係る画像処理プログラムを実行するコンピュータの一例について説明するための図である。図19に示すように、コンピュータ1000は、操作部1100と、ディスプレイ1200と、通信部1300とを有する。さらに、このコンピュータ1000は、CPU1400と、ROM1500と、RAM1600と、HDD(Hard Disk Drive)1700とを有する。これら1100〜1700の各部はバス1800を介して接続される。
HDD1700には、図19に示すように、上記の実施例1で示した設定部121、受付部122、抽出部123と同様の機能を発揮する画像処理プログラム1700a等が予め記憶される。さらに、HDD1700には、上記の実施例1で示した作成部124、決定部125、位置合わせ部126および検出部127と同様の機能を発揮する画像処理プログラム1700a等が予め記憶される。この画像処理プログラム1700aについては、図1に示した各々の各構成要素と同様、適宜統合または分離してもよい。すなわち、HDD1700に格納される各データは、常に全てのデータがHDD1700に格納される必要はなく、処理に必要なデータのみがHDD1700に格納されればよい。
そして、CPU1400が、画像処理プログラム1700aをHDD1700から読み出してRAM1600に展開する。これによって、図19に示すように、画像処理プログラム1700aは、画像処理プロセス1600aとして機能する。この画像処理プロセス1600aは、HDD1700から読み出した各種データを適宜RAM1600上の自身に割り当てられた領域に展開し、この展開した各種データに基づいて各種処理を実行する。なお、画像処理プロセス1600aは、たとえば図1に示した設定部121、受付部122、抽出部123、作成部124にて実行される処理、たとえば、図10に示す処理を含む。また、画像処理プロセス1600aは、決定部125、位置合わせ部126および検出部127にて実行される処理、たとえば、図10に示す処理を含む。また、CPU1400上で仮想的に実現される各処理部は、常に全ての処理部がCPU1400上で動作する必要はなく、処理に必要な処理部のみが仮想的に実現されればよい。
なお、上記の画像処理プログラム1700aについては、必ずしも最初からHDD1700やROM1500に記憶させておく必要はない。たとえば、コンピュータ1000に挿入されるフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory)などの「可搬用の物理媒体」に各プログラムを記憶させる。または、DVD(Digital Versatile Disc)ディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。そして、コンピュータ1000がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WAN(Wide Area Network)などを介してコンピュータ1000に接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させてもよい。そして、コンピュータ1000がこれらから各プログラムを取得して実行するようにしてもよい。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)第1の画像および第2の画像の各々から特徴点を抽出する抽出部と、
前記第1および第2の画像の各々の特徴点について、該特徴点に基づいて決定される第1の方向および当該第1の方向に基づいて決定される第2の方向をそれぞれ軸とし、かつ、前記特徴点を中心とする楕円状のマトリクスの各領域に、当該領域内の画素の輝度値と前記特徴点の輝度値との差分に関する情報を対応づけた特徴量マトリクスを作成する作成部と、
前記第1の画像の特徴点の特徴量マトリクスと、前記第2の画像の特徴点の特徴量マトリクスとを比較し、類似する特徴点ペアを決定する決定部と、
を備えることを特徴とする画像処理装置。
(付記2)前記作成部は、前記特徴点から最も近い他の特徴点に向かう前記第1の方向と、前記第1の方向と90度の角度をなす前記第2の方向とを軸とし、かつ前記特徴点を中心とする楕円状のマトリクスの各領域に、当該領域内の画素の輝度値と前記特徴点の輝度値との差分を対応づけた特徴量マトリクスを作成することを特徴とする、付記1に記載の画像処理装置。
(付記3)前記作成部は、前記第2の方向を、前記特徴点を中心として所定角度ずつ回転させて、一つの特徴点につき複数の特徴量マトリクスを作成し、
前記決定部は、前記第1の画像の特徴点の複数の特徴量マトリクスと、前記第2の画像の特徴点の特徴量マトリクスとを比較し、類似する特徴点ペアを決定することを特徴とする、付記1または2に記載の画像処理装置。
(付記4)前記作成部は、前記楕円状のマトリクスを前記第2の方向に所定の比率で拡大または縮小して、一つの特徴点につき複数の特徴量マトリクスを作成し、
前記決定部は、前記第1の画像の特徴点の複数の特徴量マトリクスと、前記第2の画像の特徴点の特徴量マトリクスとを比較し、類似する特徴点ペアを決定することを特徴とする、付記1〜3のいずれか1つに記載の画像処理装置。
(付記5)画像処理サーバによって実行される画像処理方法であって、
第1の画像および第2の画像の各々から特徴点を抽出し、
前記第1および第2の画像の各々の特徴点について、該特徴点に基づいて決定される第1の方向および当該第1の方向に基づいて決定される第2の方向をそれぞれ軸とし、かつ、前記特徴点を中心とする楕円状のマトリクスの各領域に、当該領域内の画素の輝度値と前記特徴点の輝度値との差分に関する情報を対応づけた特徴量マトリクスを作成し、
前記第1の画像の特徴点の特徴量マトリクスと、前記第2の画像の特徴点の特徴量マトリクスとを比較し、類似する特徴点ペアを決定する
ことを特徴とする画像処理方法。
(付記6)前記特徴点から最も近い他の特徴点に向かう前記第1の方向と、前記第1の方向と90度の角度をなす前記第2の方向とを軸とし、かつ前記特徴点を中心とする楕円状のマトリクスの各領域に、当該領域内の画素の輝度値と前記特徴点の輝度値との差分を対応づけた特徴量マトリクスを作成することを特徴とする、付記5に記載の画像処理方法。
(付記7)前記第2の方向を、前記特徴点を中心として所定角度ずつ回転させて、一つの特徴点につき複数の特徴量マトリクスを作成し、
前記第1の画像の特徴点の複数の特徴量マトリクスと、前記第2の画像の特徴点の特徴量マトリクスとを比較し、類似する特徴点ペアを決定することを特徴とする、付記5または6に記載の画像処理方法。
(付記8)前記楕円状のマトリクスを前記第2の方向に所定の比率で拡大または縮小して、一つの特徴点につき複数の特徴量マトリクスを作成し、
前記第1の画像の特徴点の複数の特徴量マトリクスと、前記第2の画像の特徴点の特徴量マトリクスとを比較し、類似する特徴点ペアを決定することを特徴とする、付記5〜7のいずれか1つに記載の画像処理方法。
(付記9)第1の画像および第2の画像の各々から特徴点を抽出し、
第1の画像および第2の画像の各々から特徴点を抽出し、
前記第1および第2の画像の各々の特徴点について、該特徴点に基づいて決定される第1の方向および当該第1の方向に基づいて決定される第2の方向をそれぞれ軸とし、かつ、前記特徴点を中心とする楕円状のマトリクスの各領域に、当該領域内の画素の輝度値と前記特徴点の輝度値との差分に関する情報を対応づけた特徴量マトリクスを作成し、
前記第1の画像の特徴点の特徴量マトリクスと、前記第2の画像の特徴点の特徴量マトリクスとを比較し、類似する特徴点ペアを決定する、
各処理をコンピュータに実行させることを特徴とする画像処理プログラム。
(付記10)前記特徴点から最も近い他の特徴点に向かう前記第1の方向と、前記第1の方向と90度の角度をなす前記第2の方向とを軸とし、かつ前記特徴点を中心とする楕円状のマトリクスの各領域に、当該領域内の画素の輝度値と前記特徴点の輝度値との差分を対応づけた特徴量マトリクスを作成することを特徴とする、付記9に記載の画像処理プログラム。
(付記11)前記第2の方向を、前記特徴点を中心として所定角度ずつ回転させて、一つの特徴点につき複数の特徴量マトリクスを作成し、
前記第1の画像の特徴点の複数の特徴量マトリクスと、前記第2の画像の特徴点の特徴量マトリクスとを比較し、類似する特徴点ペアを決定することを特徴とする、付記9または10に記載の画像処理プログラム。
(付記12)前記楕円状のマトリクスを前記第2の方向に所定の比率で拡大または縮小して、一つの特徴点につき複数の特徴量マトリクスを作成する、
前記第1の画像の特徴点の複数の特徴量マトリクスと、前記第2の画像の特徴点の特徴量マトリクスとを比較し、類似する特徴点ペアを決定することを特徴とする、付記9〜11のいずれか1つに記載の画像処理プログラム。