(57)【要約】【課題】複数の動画像について、各動画像のフレーム同士をその端部でつなぎ合わせる場合であっても、自然な動画像を得ることができる。【解決手段】画像処理装置１００は、第１の画像と、第１の画像と互いに端部が共通する第２の画像と、をそれぞれフレーム単位で取得する画像取得部１１と、各画像中の特徴点の対応に基づいて変換行列を算出する変換行列算出部１５と、変換行列を用いて変換した時の誤差を算出する誤差算出部１７と、所定のフレームにおいて誤差算出手段により算出された誤差が所定の条件を満たす変換行列を選出する変換行列選出部１８と、選出された変換行列を用いて第１の画像と第２の画像とをつなぎ合わせた画像を生成する画像生成部１９と、を備え、変換行列選出部１８は、所定のフレームの前のフレームにおいて選出された変換行列と所定のフレームにおいて算出された複数の変換行列の中から、所定の条件を満たす変換行列を選出する。【選択図】図１
2020057182.tif 000002
【特許請求の範囲】
【請求項１】
第１の画像と、前記第１の画像と互いに端部が共通する第２の画像と、をそれぞれフレーム単位で取得する画像取得手段と、
前記画像取得手段が取得した前記第１の画像と前記第２の画像とで共通する領域である共通領域を特定する共通領域特定手段と、
前記共通領域特定手段により特定された前記共通領域において、前記第１の画像と前記第２の画像とで対応する特徴点のペアを特定する特徴点特定手段と、
前記特徴点特定手段により特定された特徴点のペアに基づき、前記第１の画像中の第１の特徴点を始点とし、前記第１の特徴点に対応する前記第２の画像中の第２の特徴点を終点とする、移動ベクトルを複数算出する移動ベクトル算出手段と、
前記移動ベクトル算出手段により算出された複数の移動ベクトルから選定された選定移動ベクトルに基づいて変換行列を算出する変換行列算出手段と、
前記変換行列算出手段により算出された変換行列を用いて、前記第１の画像中の第１の特徴点の位置を変換した位置である移動後特徴点の位置を算出する変換手段と、
前記第２の特徴点の位置と前記変換手段により算出された前記移動後特徴点の位置との間の誤差を算出する誤差算出手段と、
所定のフレームにおいて、前記変換行列算出手段により算出された複数の変換行列の中から、前記誤差算出手段により算出された誤差が所定の条件を満たす変換行列を選出する変換行列選出手段と、
前記変換行列選出手段が選出した変換行列を用いて前記第１の画像と前記第２の画像とをつなぎ合わせた画像を生成する画像生成手段と、
を備え、
前記変換行列選出手段は、前記所定のフレームの前のフレームにおいて選出された変換行列と前記所定のフレームにおいて前記変換行列算出手段で算出された複数の変換行列の中から、所定の条件を満たす変換行列を選出する、
画像処理装置。
【請求項２】
さらに状況を判定する状況判定手段を備え、
前記変換行列選出手段は、前記状況判定手段が状況に変化はないと判定したら、前記所定のフレームの前のフレームにおいて選出された変換行列を前記所定のフレームにおける変換行列として選出する、
請求項１に記載の画像処理装置。
【請求項３】
前記変換手段は、前記所定のフレームの前のフレームにおいて選出された変換行列と、前記所定のフレームにおいて前記変換行列選出手段が選出した変換行列の、それぞれを用いて前記第１の画像中の第１の特徴点の位置を変換して移動後特徴点の位置を算出し、
前記誤差算出手段は、前記変換手段が算出した移動後特徴点の位置に基づき、前記所定のフレームの前のフレームにおいて選出された変換行列に基づく誤差である前フレーム誤差と、前記所定のフレームで選出された変換行列に基づく誤差である現フレーム誤差と、を算出し、
前記変換行列選出手段は、前記所定のフレームの前のフレームにおいて選出された変換行列と前記所定のフレームにおいて前記変換行列算出手段で算出された複数の変換行列の中から、前記前フレーム誤差及び前記現フレーム誤差が所定の条件を満たす変換行列を選出する、
請求項１又は２に記載の画像処理装置。
【請求項４】
前記変換行列選出手段は、前記前フレーム誤差が所定の閾値より小さい場合には、前記所定のフレームの前のフレームにおいて選出された変換行列を前記所定のフレームにおける変換行列として選出する、
請求項３に記載の画像処理装置。
【請求項５】
前記第１の画像と前記第２の画像は半天球画像であって、それを合成することで全天球画像を生成する、
請求項１から４のいずれか１項に記載の画像処理装置。
【請求項６】
第１の画像と、前記第１の画像と互いに端部が共通する第２の画像と、をそれぞれフレーム単位で取得し、
前記取得した前記第１の画像と前記第２の画像とで共通する領域である共通領域を特定し、
前記特定された前記共通領域において、前記第１の画像と前記第２の画像とで対応する特徴点のペアを特定し、
前記特定された特徴点のペアに基づき、前記第１の画像中の第１の特徴点を始点とし、前記第１の特徴点に対応する前記第２の画像中の第２の特徴点を終点とする、移動ベクトルを複数算出し、
前記算出された複数の移動ベクトルから選定された選定移動ベクトルに基づいて変換行列を算出し、
前記算出された変換行列を用いて、前記第１の画像中の第１の特徴点の位置を変換した位置である移動後特徴点の位置を算出し、
前記第２の特徴点の位置と前記算出された前記移動後特徴点の位置との間の誤差を算出し、
所定のフレームにおいて、前記算出された複数の変換行列の中から、前記算出された誤差が所定の条件を満たす変換行列を選出し、
前記選出した変換行列を用いて前記第１の画像と前記第２の画像とをつなぎ合わせた画像を生成する、
画像処理方法であって、
前記変換行列の選出において、前記所定のフレームの前のフレームにおいて選出された変換行列と前記所定のフレームにおいて算出された複数の変換行列の中から、所定の条件を満たす変換行列を選出する、
画像処理方法。
【請求項７】
コンピュータに、
第１の画像と、前記第１の画像と互いに端部が共通する第２の画像と、をそれぞれフレーム単位で取得し、
前記取得した前記第１の画像と前記第２の画像とで共通する領域である共通領域を特定し、
前記特定された前記共通領域において、前記第１の画像と前記第２の画像とで対応する特徴点のペアを特定し、
前記特定された特徴点のペアに基づき、前記第１の画像中の第１の特徴点を始点とし、前記第１の特徴点に対応する前記第２の画像中の第２の特徴点を終点とする、移動ベクトルを複数算出し、
前記算出された複数の移動ベクトルから選定された選定移動ベクトルに基づいて変換行列を算出し、
前記算出された変換行列を用いて、前記第１の画像中の第１の特徴点の位置を変換した位置である移動後特徴点の位置を算出し、
前記第２の特徴点の位置と前記算出された前記移動後特徴点の位置との間の誤差を算出し、
所定のフレームにおいて、前記算出された複数の変換行列の中から、前記算出された誤差が所定の条件を満たす変換行列を選出し、
前記選出した変換行列を用いて前記第１の画像と前記第２の画像とをつなぎ合わせた画像を生成する、
処理を実行させるためのプログラムであって、
前記変換行列の選出において、前記所定のフレームの前のフレームにおいて選出された変換行列と前記所定のフレームにおいて算出された複数の変換行列の中から、所定の条件を満たす変換行列を選出する、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【０００２】
複数の画像をつなぎ合わせて大きな画像を生成する技術が知られている。例えば、特許文献１には、魚眼レンズで撮影されたような比較的歪み量の大きな画像であっても、歪み補正パラメータを使い分けることによって高精度につなぎ合わせることを可能にした画像処理技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−２７７４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に開示されている画像処理技術においては、つなぎ合わせる画像は静止画であることを前提としており、動画像をつなぎ合わせることは想定されていない。もっとも、動画像もフレーム単位で見れば静止画なので、動画像をフレーム単位で扱うことによって、特許文献１に開示されている画像処理技術を用いて、動画像をフレーム単位でつなぎ合わせることは可能である。しかし、そのような処理を行うと、処理はフレーム毎に完結し、フレーム間の関係を考慮することができないため、不自然な動画像が得られてしまう場合がある。例えば、フレーム単位では自然なつなぎ合わせが行われていても、フレーム間では画像が微妙にずれてしまう場合があり、この場合、動画像としてはブレが生じる不自然な動画像になってしまう。
【０００５】
本発明は、上記実情に鑑みてなされたものであり、複数の動画像について、各動画像のフレーム同士をその端部でつなぎ合わせる場合であっても、自然な動画像を得ることができる画像処理装置、画像処理方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の画像処理装置は、
第１の画像と、前記第１の画像と互いに端部が共通する第２の画像と、をそれぞれフレーム単位で取得する画像取得手段と、
前記画像取得手段が取得した前記第１の画像と前記第２の画像とで共通する領域である共通領域を特定する共通領域特定手段と、
前記共通領域特定手段により特定された前記共通領域において、前記第１の画像と前記第２の画像とで対応する特徴点のペアを特定する特徴点特定手段と、
前記特徴点特定手段により特定された特徴点のペアに基づき、前記第１の画像中の第１の特徴点を始点とし、前記第１の特徴点に対応する前記第２の画像中の第２の特徴点を終点とする、移動ベクトルを複数算出する移動ベクトル算出手段と、
前記移動ベクトル算出手段により算出された複数の移動ベクトルから選定された選定移動ベクトルに基づいて変換行列を算出する変換行列算出手段と、
前記変換行列算出手段により算出された変換行列を用いて、前記第１の画像中の第１の特徴点の位置を変換した位置である移動後特徴点の位置を算出する変換手段と、
前記第２の特徴点の位置と前記変換手段により算出された前記移動後特徴点の位置との間の誤差を算出する誤差算出手段と、
所定のフレームにおいて、前記変換行列算出手段により算出された複数の変換行列の中から、前記誤差算出手段により算出された誤差が所定の条件を満たす変換行列を選出する変換行列選出手段と、
前記変換行列選出手段が選出した変換行列を用いて前記第１の画像と前記第２の画像とをつなぎ合わせた画像を生成する画像生成手段と、
を備え、
前記変換行列選出手段は、前記所定のフレームの前のフレームにおいて選出された変換行列と前記所定のフレームにおいて前記変換行列算出手段で算出された複数の変換行列の中から、所定の条件を満たす変換行列を選出する。
【発明の効果】
【０００７】
本発明によれば、複数の動画像について、各動画像のフレーム同士をその端部でつなぎ合わせる場合であっても、自然な動画像を得ることができる。
【図面の簡単な説明】
【０００８】
【図１】実施形態１に係る画像処理装置の機能構成を示す図である。
【図２】実施形態１に係る画像処理のフローチャートである。
【図３】真上方向の半天球画像と真下方向の半天球画像における共通領域を説明する図である。
【図４】真上方向の半天球画像中の共通領域を極座標展開した図である。
【図５】真下方向の半天球画像中の共通領域を極座標展開した図である。
【図６】真上方向の半天球画像と真下方向から５度ずれた状態の半天球画像における共通領域を説明する図である。
【図７】真上方向の半天球画像中の共通領域を極座標展開した図である。
【図８】真下方向から５度ずれた状態の半天球画像中の共通領域を極座標展開した図である。
【図９】移動ベクトルを説明する図である。
【図１０】移動ベクトルと変換後ベクトルとを重ねて表示した図である。
【図１１】第１の画像と第２の画像がつなぎ合わされる例を説明する図である。
【図１２】第１の画像と第２の画像をそのままつなぎ合わせた例を説明する図である。
【図１３】第１の画像を変換してから第２の画像とつなぎ合わせた例を説明する図である。
【図１４】あるフレームにおいて第１の画像と第２の画像をつなぎ合わせて生成した画像の一例である。
【図１５】次のフレームにおいて前フレームでの変換行列を考慮せずに第１の画像と第２の画像をつなぎ合わせて生成した画像の一例である。
【図１６】不自然な動画が生成される例を説明する図である。
【図１７】変形例４に係る画像処理のフローチャートである。
【図１８】変形例５に係る画像処理のフローチャートである。
【図１９】変形例６に係る画像処理のフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態に係る画像処理装置について、図表を参照して説明する。なお、図中同一又は相当部分には同一符号を付す。
【００１０】
（実施形態１）
本発明の実施形態１に係る画像処理装置は、複数の動画像について、各動画像のフレーム同士をその端部でつなぎ合わせることにより、全天球画像やパノラマ画像のような広範囲画像の自然な動画像を生成する装置である。
【００１１】
図１に示すように、本発明の実施形態１に係る画像処理装置１００は、制御部１０、記憶部２０、第１撮像部３１、第２撮像部３２、を備える。
【００１２】
制御部１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等で構成され、記憶部２０に記憶されたプログラムを実行することにより、後述する各部（画像取得部１１、共通領域特定部１２、特徴点特定部１３、移動ベクトル算出部１４、変換行列算出部１５、変換部１６、誤差算出部１７、変換行列選出部１８、画像生成部１９）の機能を実現する。
【００１３】
記憶部２０は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成される。ＲＯＭには制御部１０のＣＰＵが実行するプログラム及びプログラムを実行する上で予め必要なデータが記憶されている。ＲＡＭには、プログラム実行中に作成されたり変更されたりするデータが記憶される。
【００１４】
第１撮像部３１及び第２撮像部３２は、それぞれ単眼の撮像装置（カメラ）を備える。第１撮像部３１は、例えば３０ｆｐｓ（ｆｒａｍｅｓ  ｐｅｒ  ｓｅｃｏｎｄ）で第１の画像（フレーム単位で撮影される動画像）を撮影する。第２撮像部３２も、例えば３０ｆｐｓで第２の画像（フレーム単位で撮影される動画像）を撮影する。第１撮像部３１が撮影した第１の画像と第２撮像部３２が撮影した第２の画像とは、それぞれの端部の少なくとも一部が共通するように、第１撮像部３１及び第２撮像部３２の撮影方向が設定される。
【００１５】
例えば、第１撮像部３１も第２撮像部３２も画角２００度の半天球画像を撮影する魚眼レンズを搭載した撮像装置で、第１撮像部３１と第２撮像部３２とはお互いに真逆方向（例えば第１撮像部３１は真上方向、第２撮像部３２は真下方向）を撮影するように設置される。
【００１６】
次に、画像処理装置１００の制御部１０の機能的構成について説明する。制御部１０は、画像取得部１１、共通領域特定部１２、特徴点特定部１３、移動ベクトル算出部１４、変換行列算出部１５、変換部１６、誤差算出部１７、変換行列選出部１８、画像生成部１９、の機能を実現する。
【００１７】
画像取得部１１は、第１撮像部３１が撮影した画像を第１の画像としてフレーム単位で取得し、第２撮像部３２が撮影した画像を第２の画像としてフレーム単位で取得する。なお、画像取得部１１は、第１撮像部３１が撮影した画像や第２撮像部３２が撮影した画像をリアルタイムで取得してもよいし、リアルタイムで取得しなくてもよい。リアルタイムに取得しない場合は、例えば、第１撮像部３１が撮影した画像や第２撮像部３２が撮影した画像は記憶部２０に保存されるようになっており、撮影が終了してから、画像取得部１１が、記憶部２０から第１撮像部３１が撮影した画像や第２撮像部３２が撮影した画像を取得するようにしてもよい。画像取得部１１は、画像取得手段として機能する。
【００１８】
共通領域特定部１２は、画像取得部１１が取得した（第１撮像部３１が撮影した）第１の画像と（第２撮像部３２が撮影した）第２の画像とで共通する撮影領域（共通領域）を特定する。上述したように、第１の画像と第２の画像とは、それぞれの端部の少なくとも一部が共通しているが、この共通している端部が共通領域である。共通領域特定部１２は、この共通領域を特定する。共通領域特定部１２は共通領域特定手段として機能する。例えば、第１撮像部と第２撮像部に地磁気センサや加速度センサを設けておいて、共通領域特定部１２は、撮影時の第１撮像部３１と第２撮像部３２の向きに関する情報をこれらのセンサから取得する。そして、共通領域特定部１２は、予め記憶しておいた第１撮像部３１と第２撮像部３２との画角の範囲情報と、第１撮像部３１と第２撮像部３２の向きに関する情報とに基づいて共通領域を特定するようにしてもよい。
【００１９】
特徴点特定部１３は、共通領域特定部１２が特定した共通領域において、第１の画像中の特徴点と、第２の画像中の特徴点と、の対応付けを行い、対応する特徴点のペアを特定する。特徴点とは、画像中のエッジ、角、模様等の特徴的な部分のことを言う。特徴点特定部１３は、例えば、第１の画像から抽出した特徴点の特徴量に基づいて、該特徴点と特徴量が類似する特徴点を第２の画像から探索することによって、第１の画像中の特徴点と第２の画像中の特徴点との対応付けを行う。特徴点特定部１３は特徴点特定手段として機能する。
【００２０】
移動ベクトル算出部１４は、特徴点特定部１３により特定された特徴点のペアに基づき、第１の画像中の第１の特徴点を始点とし、第１の特徴点に対応する第２の画像中の第２の特徴点を終点とする、移動ベクトルを算出する。この移動ベクトルは、特徴点特定部１３により特定された特徴点のペアの数だけ存在するので、移動ベクトル算出部１４は、第１移動ベクトルを複数（特定された特徴点のペアの数）算出する。移動ベクトル算出部１４は、移動ベクトル算出手段として機能する。
【００２１】
変換行列算出部１５は、移動ベクトル算出部１４により算出された複数の移動ベクトルの中から規定数（２次元空間上での変換行列を算出するなら４、３次元空間上での変換行列を算出するなら５）のベクトル（選定移動ベクトル）を選定し、この選定した選定移動ベクトルに基づいて、変換行列（射影変換行列）を算出する。選定移動ベクトルの選定を変更することによって、変換行列算出部１５は、複数の変換行列を算出することができる。変換行列算出部１５は変換行列算出手段として機能する。
【００２２】
変換部１６は、変換行列算出部１５により算出された変換行列を用いて、第１の画像中の第１の特徴点の位置を変換した位置である移動後特徴点の位置を算出する。変換部１６は変換手段として機能する。
【００２３】
誤差算出部１７は、第１の特徴点に対応する第２の画像中の第２の特徴点の位置と変換部１６により算出された移動後特徴点の位置との間の誤差を算出する。第２の特徴点は第１の特徴点のそれぞれに対応する形で複数存在し、変換部１６により算出された移動後特徴点も第１の特徴点のそれぞれに対応する形で複数存在するので、各特徴点について誤差が得られる。誤差算出部１７は、これらの誤差を評価する値として、後述する種々の評価値を算出する。誤差算出部１７は、誤差算出手段として機能する。
【００２４】
変換行列選出部１８は、変換行列算出部１５により算出された複数の変換行列の中から、誤差算出部１７により算出された誤差が所定の条件を満たす変換行列を選出する。変換行列選出部１８は、変換行列選出手段として機能する。
【００２５】
画像生成部１９は、変換行列選出部１８が選出した変換行列を用いて第１の画像と第２の画像とをつなぎ合わせた画像を生成する。画像生成部１９は、画像生成手段として機能する。
【００２６】
以上、画像処理装置１００の機能構成について説明した。次に、画像処理装置１００による画像処理について図２を参照して説明する。この画像処理は、ユーザの指示によって開始される。
【００２７】
まず、画像取得部１１は、第１撮像部３１が撮影した動画像の最初のフレーム（後述するステップＳ１１３から戻ってきた時は、次のフレーム）を第１の画像として取得し、第２撮像部３２が撮影した動画像の最初のフレーム（後述するステップＳ１１３から戻ってきた時は、次のフレーム）を第２の画像として取得する（ステップＳ１０１）。
【００２８】
例えば図３に示すように、第１撮像部３１は真上方向の半天球画像５１を画角２００度で撮影する魚眼レンズを搭載した撮像装置で、第２撮像部３２は真下方向の半天球画像５２を画角２００度で撮影する魚眼レンズを搭載した撮像装置であるとする。この場合、画像取得部１１は、第１の画像として第１撮像部３１が撮影した半天球画像５１を取得し、第２の画像として第２撮像部３２が撮影した半天球画像５２を取得する。ただし、上述したように、この画像取得はリアルタイムに行う必要はなく、予め第１撮像部３１及び第２撮像部３２が撮影した画像を記憶部２０に保存しておく場合は、画像取得部１１は、記憶部２０からこれらの画像を取得する。
【００２９】
図２に戻り、次に、共通領域特定部１２は、第１の画像と第２の画像とで共通する領域である共通領域を特定する（ステップＳ１０２）。例えば、図３で、各撮像部のレンズ中心からの角度が８０度から１００度の範囲（撮影された画像の端部）は、お互いに共通の被写体が撮影された領域（共通領域）である。したがって、共通領域特定部１２は、レンズ中心からの角度が８０度から１００度の範囲に入っている領域を共通領域として特定する。（図３ではレンズ中心からの角度が１００度の円周の線を実線５３で示し、レンズ中心からの角度が８０度の円周の線を点線５４で示している。また、地平線を点線５５で示している。図３では、地平線はレンズ中心からの角度が９０度の円周の線と一致する。）
【００３０】
このような共通領域には、共通の被写体（同じ物体等）が撮影されているので、共通領域においてそれぞれの画像から特徴点（被写体のエッジ、角、模様等の特徴的な部分）を抽出すると、第１の画像からも第２の画像からも、被写体の同じ部分を示す特徴点が抽出できる。これを対応する特徴点と言う。つまり、被写体上の特徴的な部分を介して、第１の画像中の該部分を表す第１の特徴点と、第２の画像中の該部分を表す第２の特徴点が存在することになる。この時、この第１の特徴点と第２の特徴点とは対応しており、第１の特徴点と第２の特徴点とは対応する特徴点のペアとなる。なお、実際にはまず第１の画像から特徴点を抽出し、その特徴点に類似する特徴点を第２の画像から探すことによって、特徴点のペアを見つける。
【００３１】
例えば、図３の半天球画像５１の共通領域を極座標展開すると、図４に示すように、レンズ中心からの角度θと、その角度θでの円周の所定の位置（例えば図３の半天球画像の左端）を０度とした時の角度φと、による長方形の領域として表すことができる。同様に、図３の半天球画像５２の共通領域を極座標展開すると図５に示すように、レンズ中心からの角度θと、その角度θでの円周の所定の位置（例えば図３の半天球画像の左端）を０度とした時の角度φと、による長方形の領域として表すことができる。
【００３２】
第１撮像部３１が正確に真上方向の半天球画像５１を撮影し、第２撮像部３２が正確に真下方向の半天球画像５２を撮影しているならば、地平線を示す点線５５はθ＝９０度の円周の線に一致し、図４に示す長方形の領域と図５に示す長方形の領域とには同じ被写体が撮影されることになる。したがって、この場合は撮影された両画像の特徴点の位置は一致し、これらの特徴点の位置が一致するように重ね合わせて両画像をつなぎ合わせれば、自然な全天球画像が生成できることになる。
【００３３】
しかし、実際には第１撮像部３１と第２撮像部３２とが正確に真逆の方向に設置できることはほとんどないし、両撮像部のカメラの諸特性は微妙に異なっていることが多い。したがって、通常は、共通領域をそのまま重ね合わせて両画像をつなぎ合わせることはできない。例えば、図６に示す例では、第１撮像部３１は正確に真上方向の半天球画像５１を撮影しているが、第２撮像部３２は真下方向から５度ずれた状態で半天球画像５２を撮影している場合を示している。すると、半天球画像５２において地平線を示す点線５５は、レンズ中心からの角度が９０度の円周を示す点線５６とずれることになる。
【００３４】
この場合、図６の半天球画像５１の共通領域を極座標展開すると、図４と同様に、図７に示す長方形の領域として表すことができる。しかし、図６の半天球画像５２の共通領域を極座標展開すると、図８に示すように、地平線を示す点線５５が、θ＝９０度の円周を示す点線５６と波状に交わることになる。つまり、図７に示す長方形の領域と図８に示す長方形の領域とは、共通領域ではあるが、そのまま重ね合わせることはできない。
【００３５】
通常の環境ではこのような状況になる。この場合、まず一方の長方形の領域から特徴点を抽出し、その特徴点に類似する特徴点を他方の長方形の領域から探すことによって特徴点のペア（対応する特徴点）を見つけ、この対応する特徴点同士（特徴点のペア）の位置を一致させるような射影変換行列を算出し、この行列を用いて一方の画像を変形し、他方の画像と共通領域を重ね合わせて、つなぎ合わせれば、全天球画像を生成することができる。射影変換行列の算出の際には精度を高めるために、ＲＡＮＳＡＣ（Ｒａｎｄｏｍ  Ｓａｍｐｌｅ  Ｃｏｎｓｅｎｓｕｓ）アルゴリズムを用いることができる。また、動画像を対象とする場合、このような２つの画像のつなぎ合わせをフレーム毎に行う。
【００３６】
このような処理について、図２に戻って順に説明する。ステップＳ１０２で共通領域特定部１２により共通領域が特定されているが、共通領域が２次元画像で表される場合は、共通領域に対応する第１の画像及び第２の画像をそれぞれ所定の数（例えば８×８）のマスに区切る。そして、特徴点特定部１３は、各マスにおいて、第１の画像と第２の画像との間で対応する特徴点のペアを特定する（ステップＳ１０３）。例えば、第１の画像中のあるマス（ａ，ｂ）内の特徴点Ａ（マス内の座標が（ｃ，ｄ）であるとする）に対応する第２の画像中の特徴点Ｂを探す場合、まず、第２の画像中のマス（ａ，ｂ）内の座標（ｃ、ｄ）を中心にして、その近傍から周辺に向かって特徴量が特徴点Ａの特徴量と類似する点を検索する。この検索は例えば、類似度が所定の閾値以上である点を見つけたら、該点を特徴点Ａと対応する第２の画像中の特徴点Ｂとしてもよいし、第２の画像中のマス（ａ，ｂ）内の全ての点について特徴点Ａとの類似度を計算して、最も類似する点を特徴点Ａと対応する第２の画像中の特徴点Ｂとしてもよい。特徴点特定部１３は例えばこのようにして対応する特徴点のペア（特徴点Ａと特徴点Ｂ）を特定する。
【００３７】
そして、移動ベクトル算出部１４は、特徴点特定部１３が特定した特徴点のペア（第１の画像中の特徴点及び第２の画像中の特徴点）について、このペアを構成する２つの特徴点の位置のずれをベクトル（移動ベクトル）として算出する（ステップＳ１０４）。移動ベクトル算出部１４が算出したこの移動ベクトルは、図９に示すように、各マスにおいて、第１の画像中の特徴点の位置を始点として、その特徴点に対応する第２の画像中の特徴点がどこに移動しているか（終点）を示すベクトルとなる。図９の例では、マスの数は８×８＝６４なので、移動ベクトルも６４本算出される。
【００３８】
図２に戻り、次に、変換行列選出部１８は、最適な変換行列を格納するための変数である「選出変換行列」を初期化する（ステップＳ１０５）。そして、変換行列算出部１５は、移動ベクトル算出部１４が算出した複数の移動ベクトルに基づき、第１の画像中の特徴点の位置を、対応する第２の画像中の特徴点に移動させる変換行列を算出する（ステップＳ１０６）。この変換行列は例えば射影変換行列である。第１の画像及び第２の画像が２次元画像の場合、射影変換行列は４本の移動ベクトルから算出できる。
【００３９】
したがって、変換行列算出部１５は、６４本の移動ベクトルの中からこの４本の移動ベクトルをランダムに選定し、選定した移動ベクトル（選定移動ベクトル）を用いて射影変換行列を算出する。例えば、図９において、丸６１で囲った移動ベクトル４本がランダムに選定された選定移動ベクトルであるとすると、変換行列算出部１５はこの４つの移動ベクトルの値から連立方程式を解くことによって変換行列を算出する。
【００４０】
なお、第１の画像及び第２の画像から抽出した移動ベクトルが３次元の場合に射影変換行列を算出するには、５本の移動ベクトルが必要である。本実施形態１では、第１の画像及び第２の画像はどちらも半天球画像なので、特徴点特定部１３が第１の画像中の第１の特徴点と第２の画像中の第２の特徴点を特定した後、移動ベクトル算出部１４は、第１の特徴点とそれに対応する第２の特徴点とをそれぞれ半径１の球面に投影し、投影して得られた各特徴点の３次元座標を用いて３次元の移動ベクトルを算出する。そして、変換行列算出部１５は、この３次元の移動ベクトルを５つ用いて連立方程式を解くことによって変換行列を算出する。
【００４１】
図２に戻り、次に、変換部１６は、変換行列算出部１５が算出した変換行列を用いて、第１の画像中の特徴点の位置を変換し、変換後の位置を移動後特徴点の位置として算出する（ステップＳ１０７）。例えば、図１０は、第１の画像中の特徴点の位置を始点として、その特徴点の位置を変換部１６が変換した移動後特徴点の位置を終点とするベクトル（変換後ベクトル）を、図９に示す移動ベクトル（ただし選定移動ベクトルを除く）と重ねて表示した図である。理想的には、移動ベクトルと変換後ベクトルとは一致する（少なくとも選定移動ベクトルを選択したマスにおいては、一致する）が、実際には図１０に示すようにずれが生じる。
【００４２】
図２に戻り、誤差算出部１７は、このずれを誤差として算出する（ステップＳ１０８）。この評価対象となる移動ベクトル（及び変換後ベクトル）は複数（図１０に示す例では６４本の移動ベクトルから４本の選定移動ベクトルを除いた６０本）あるが、ここでは、誤差を評価する値として、３種類の評価値を算出する。ここに挙げる評価値はいずれも、値が大きいほど誤差が小さい（つまりより良い変換行列である）ことを意味する。
【００４３】
第１の評価値は量子化代表クラスであり、これを評価値１とする。評価値１を求めるには、誤差算出部１７は、まず各ベクトルの差（移動ベクトルと変換後ベクトルの差）の絶対値の２乗を求め、ＳＤ（Ｓｑｕａｒｅｄ  Ｄｉｆｆｅｒｅｎｃｅ）値とする。図１０に示す例では６０個のＳＤ値が求められる。そして、誤差算出部１７は、この複数（ここでは６０個）のＳＤ値を所定のクラス数（例えば２０）の段階（クラス）に量子化（分類）する。
【００４４】
量子化の方法は任意だが、例えば、あるサポート範囲閾値Ａを規定し、ＳＤ値がＡより大きければクラス０に分類、Ａ以下かつＡ／２より大きければクラス１に分類、Ａ／２以下かつＡ／２２より大きければクラス２に分類、・・・、Ａ／２１７以下かつＡ／２１８より大きければクラス１８に分類、Ａ／２１８以下ならクラス１９に分類、とすることで２０段階に量子化することができる。
【００４５】
そして、誤差算出部１７は、複数（ここでは６０個）のＳＤ値の中の中央値が含まれるクラスを代表クラスとする。例えば、ＳＤ値の中央値がＡ／２２なら、代表クラスはクラス３となる。そして、誤差算出部１７は、この代表クラスの番号（例えばＳＤ値の中央値がＡ／２２なら、３）を評価値１とする。
【００４６】
第２の評価値は、サポート範囲内のＳＤ値の個数であり、これを評価値２とする。これも、まず各ベクトルの差（移動ベクトルと変換後ベクトルの差）の絶対値の２乗を求め、ＳＤ値とする。そして、あるサポート範囲閾値Ａを規定し、複数（ここでは６０個）のＳＤ値のうち、Ａ以下となるＳＤ値の個数を評価値２とする。
【００４７】
第３の評価値は、１つ前のフレームで選出された変換行列を用いて算出される評価値のうち、サポート範囲内のＳＤ値の個数で表す評価値であり、これを評価値３とする。例えば、まず、今回のフレームの第１の画像中の特徴点の位置を始点として、その特徴点の位置を１つ前のフレームで選出された変換行列によって変換した位置（前フレーム移動後特徴点の位置）を終点とするベクトル（前フレーム変換後ベクトル）を求める。そして、このベクトル（前フレーム変換後ベクトル）と今回のフレームの移動ベクトルとの差の絶対値の２乗を求め、ＳＤ値とする。そして、あるサポート範囲閾値Ａを規定し、複数（ここでは６０個）のＳＤ値のうち、Ａ以下となるＳＤ値の個数を評価値３とする。
【００４８】
以上の３つの評価値のうち、評価値１及び評価値２は、今回のフレーム（現フレーム）での誤差を評価する値なので、現フレーム誤差とも呼ぶ。また、評価値３は前フレームでの誤差を評価する値なので、前フレーム誤差とも呼ぶ。
【００４９】
そして、変換行列選出部１８は、誤差算出部１７が算出した誤差が所定の条件を満たすか否かを判定する（ステップＳ１０９）。この判定は、上述した３つの評価値により行う。まず、評価値１が同一ループ（ステップＳ１０６からステップＳ１１１までのループ）中でのそれまでの評価値１より大きければ「誤差が所定の条件を満たす」とする。そして、評価値１がそれまでの評価値１より小さければ「誤差が所定の条件を満たさない」とする。そして、評価値１がそれまでの評価値１と等しいなら、評価値２＋評価値３の値がそれまでの評価値２＋評価値３の値より大きければ「誤差が所定の条件を満たす」とし、評価値２＋評価値３の値がそれまでの評価値２＋評価値３の値以下なら「誤差が所定の条件を満たさない」とする。
【００５０】
誤差が所定の条件を満たすなら（ステップＳ１０９；Ｙｅｓ）、変換行列選出部１８は、今回のループで（ステップＳ１０６で）算出された変換行列で変数「選出変換行列」を更新し（ステップＳ１１０）、ステップＳ１０６に戻る。
【００５１】
誤差が所定の条件を満たさないなら（ステップＳ１０９；Ｎｏ）、変換行列選出部１８は、変数「選出変換行列」の更新無しで（ステップＳ１１０に行かずに）規定回数（例えば５０回）ステップＳ１０６での変換行列算出を繰り返したか否かを判定する（ステップＳ１１１）。
【００５２】
規定回数繰り返していなければ（ステップＳ１１１；Ｎｏ）、ステップＳ１０６に戻る。規定回数繰り返したなら（ステップＳ１１１；Ｙｅｓ）、画像生成部１９は、変数「選出変換行列」に格納されている変換行列（変換行列選出部１８が選出した変換行列）で第１の画像を変換し、共通領域を第２の画像と重ね合わせることにより、第１の画像と第２の画像とをつなぎ合わせた画像を生成する（ステップＳ１１２）。
【００５３】
そして、制御部１０は、動画像の全てのフレームについて処理を終了したか否かを判定する（ステップＳ１１３）。まだ全ては終了していないなら（ステップＳ１１３；Ｎｏ）、ステップＳ１０１に戻って、次のフレームの画像を取得して、これまでの処理を繰り返す。全てのフレームについて処理を終了したなら（ステップＳ１１３；Ｙｅｓ）、画像処理を終了する。
【００５４】
以上、画像処理の処理内容について説明した。次に、上述の画像処理によって、第１の画像と第２の画像がつなぎ合わされる例を図１１に示す画像を例にして説明する。
【００５５】
図１１では、第１の画像の右端及び第２の画像の左端がそれぞれ共通領域７１及び共通領域７２になっている。そして、第１の画像と第２の画像とは、縦方向の位置が少しずれているため、そのまま共通領域７１及び共通領域７２を重ね合わせて２つの画像をつなぎ合わせると、図１２に示すように、つなぎ目の領域７３で段差が生じる不自然な画像が生成されてしまう。（ここでは、共通領域７１に共通領域７２を上書きして２つの画像をつなぎ合わせた場合を想定している。）
【００５６】
上述した画像処理を行うと、このような段差が生じないように画像を変換する変換行列を変換行列算出部１５が算出し、画像生成部１９がその変換行列で第１の画像を変換してから第２の画像とつなぎ合わせた画像を生成する。すると、図１３に示すように、つなぎ目の領域７４で第１の画像と第２の画像とがぴったり重なり、自然な画像が生成される。
【００５７】
動画像の中のある１フレームだけに着目した場合には、図１３に示すような自然な画像が生成されるので、特に問題は無いように見える。しかし、フレーム間での変換行列の違いを全く考慮しない場合は、例えば画像生成部１９は、あるフレームでは図１４に示すような画像を生成し、次のフレームでは図１５に示すような画像を生成することが考えられる。この場合、それぞれのフレームでは自然な画像が生成されているが、図１４に示す画像と図１５に示す画像とは上下方向にずれがある。わかりやすくするため、図１４に示す画像と図１５に示す画像とを重ね合わせた画像を図１６に示す。したがって、これを動画像として再生した場合には、上下方向にブレが生じる不自然な動画像になってしまう。
【００５８】
そこで、上述した画像処理では、誤差算出部１７が１つ前のフレームで算出された変換行列も用いて評価値３を算出し、変換行列選出部１８が評価値３も用いて最適な変換行列を選出するようにしているので、フレーム間で不自然さが生じるような変換行列が選出されてしまう可能性を少なくすることができる。
【００５９】
このように、画像処理装置１００では、最適な変換行列を選出する際に、１つ前のフレームで選出された変換行列による評価も加味することにより、１つ前のフレームで選出された変換行列と類似した変換行列が選出されやすくなる。そうすることにより、複数の動画像について、各動画像のフレーム同士をその端部でつなぎ合わせた広範囲画像からなる動画像を生成する際にも、動画像の時間的な不連続性によって引き起こされる不自然な動画像が生成される可能性を低くすることができる。
【００６０】
（変形例１）
実施形態１では、画像処理（図２）のステップＳ１０９で、変換行列選出部１８は、誤差算出部１７が算出した評価値１がそれまでの評価値１と等しいなら、評価値２＋評価値３の値がそれまでの評価値２＋評価値３の値より大きければ「誤差が所定の条件を満たす」とし、評価値２＋評価値３の値がそれまでの評価値２＋評価値３の値以下なら「誤差が所定の条件を満たさない」とした。しかしこれに限られない。評価値２は今回のフレームにおけるサポート範囲内のＳＤ値の個数で、評価値３は１つ前のフレームで選出された変換行列を用いて算出されるＳＤ値のうちサポート範囲内のＳＤ値の個数であるが、例えば、変形例１として、これらに係数を掛けて重み付けをしてから加算した値を比較してもよい。
【００６１】
この変形例１では、評価値２に掛ける係数をＷ２、評価値３に掛ける係数をＷ３とする。すると、画像処理（図２）のステップＳ１０９では、変換行列選出部１８は、誤差算出部１７が算出した評価値１がそれまでの評価値１と等しいなら、Ｗ２×評価値２＋Ｗ３×評価値３の値がそれまでのＷ２×評価値２＋Ｗ３×評価値３の値より大きければ「誤差が所定の条件を満たす」とし、Ｗ２×評価値２＋Ｗ３×評価値３の値がそれまでのＷ２×評価値２＋Ｗ３×評価値３の値以下なら「誤差が所定の条件を満たさない」とする。
【００６２】
変形例１では、評価値２及び評価値３にそれぞれ係数を掛けることにより、１つ前のフレームで選出された変換行列の影響度合いを調整することができる。
【００６３】
（変形例２）
また、実施形態１では、画像処理（図２）のステップＳ１０８で、誤差算出部１７は、上述の３種類の評価値を算出したが、これに限られない。例えば、変形例２として、誤差算出部１７は、４つ目の評価値として、１つ前のフレームで選出された変換行列を用いて算出される評価値のうち、量子化代表クラスで表す評価値を算出してもよい。この評価値を評価値４とする。
【００６４】
誤差算出部１７は、評価値３を算出した時と同様、まず、今回のフレームの第１の画像中の特徴点の位置を始点として、その特徴点の位置を１つ前のフレームで選出された変換行列によって変換した位置（前フレーム移動後特徴点の位置）を終点とするベクトル（前フレーム変換後ベクトル）を求める。そして、誤差算出部１７は、このベクトル（前フレーム変換後ベクトル）と今回のフレームの移動ベクトルとの差の絶対値の２乗を求め、ＳＤ値とする。このＳＤ値は評価値１を算出した時と同様、複数（図１０に示す例では６０個）求められる。
【００６５】
そして、誤差算出部１７は、この複数（ここでは６０個）のＳＤ値を所定のクラス数（例えば２０）の段階（クラス）に量子化（分類）する。ここでの量子化の方法も任意であり、例えば上述の（評価値１を求める際の）量子化の方法を用いることができる。そして、誤差算出部１７は、複数（ここでは６０個）のＳＤ値の中の中央値が含まれるクラスを代表クラスとする。そして、誤差算出部１７は、この代表クラスの番号を評価値４とする。
【００６６】
そして、画像処理（図２）のステップＳ１０９では、変換行列選出部１８は、所定の閾値を基準クラス閾値として定めておき、評価値４−評価値１≦基準クラス閾値なら、「誤差が所定の条件を満たさない」（ステップＳ１０９；Ｎｏ）として、ステップＳ１１１に進む。これにより、今回のループ（ステップＳ１０６からステップＳ１１１のループ）で変換行列を算出する際に選定された選定移動ベクトルと、１つ前のフレームでの選出された変換行列を算出する際に選定された選定移動ベクトルとの違いが大きい場合には、すぐに次のループに進むことができる。選定移動ベクトルが大きく異なる場合には、１つ前のフレームで算出された変換行列と今回のフレームで算出される変換行列とが大きく異なると想定されるため、今回のループで算出される変換行列を棄却しているのである。
【００６７】
変形例２では、このようにすることにより、１つ前のフレームで選出された変換行列と大きく異なる変換行列が算出される可能性が高い場合には、その変換行列を棄却することにより、より適切な変換行列が選出される可能性を高めている。
【００６８】
（変形例３）
また、実施形態１では、画像処理（図２）のステップＳ１０８で、誤差算出部１７は、上述の３種類の評価値を算出したが、これに限られない。例えば、変形例３として、誤差算出部１７は、これら３種類の評価値の代わりに、次の２つの評価値（ここでは評価値５及び評価値６とする）を算出することにしてもよい。
【００６９】
変形例３では、誤差算出部１７は、各ベクトルの差（移動ベクトルと変換後ベクトルの差）の絶対値の２乗を求め、ＳＤ（Ｓｑｕａｒｅｄ  Ｄｉｆｆｅｒｅｎｃｅ）値とし、さらに、ＳＤ値の総和であるＳＳＤ（Ｓｕｍ  ｏｆ  Ｓｑｕａｒｅｄ  Ｄｉｆｆｅｒｅｎｃｅ）を求め、これを評価値５とする。
【００７０】
また、評価値６を求める場合には、誤差算出部１７は、まず、今回のフレームの第１の画像中の特徴点の位置を始点として、その特徴点の位置を１つ前のフレームで選出された変換行列によって変換した位置（前フレーム移動後特徴点の位置）を終点とするベクトル（前フレーム変換後ベクトル）を求める。そして、このベクトル（前フレーム変換後ベクトル）と今回のフレームの移動ベクトルとの差の絶対値の２乗を求め、ＳＤ値とし、さらにＳＤ値の総和であるＳＳＤを求め、これを評価値６とする。なお、評価値５及び評価値６は、上述の評価値と異なり、値が小さいほど誤差が小さい（つまりより良い変換行列である）ことを意味する。
【００７１】
そして、変換行列選出部１８は、画像処理（図２）のステップＳ１０９で、評価値５＋評価値６がそれまでの評価値５＋評価値６より小さければ「誤差が所定の条件を満たす」とする。そして、評価値５＋評価値６がそれまでの評価値５＋評価値６より大きければ「誤差が所定の条件を満たさない」とする。なお、上述の変形例１と同様に、各評価値に係数を掛ける（例えば、評価値５にＷ５を掛け、評価値６にＷ６を掛ける）ことによって、１つ前のフレームで選出された変換行列の影響度合いを調整してもよい。
【００７２】
変形例３では、誤差の評価値としてＳＳＤを用いることにより、ＳＤ値を複数のクラスに量子化したり、サポート範囲内のＳＤ値の個数を求めたりする必要がなくなり、より簡単に評価値を求めることができる。
【００７３】
（変形例３の変形例１）
さらに、変形例３の変形例１として、画像処理（図２）のステップＳ１０８で、誤差算出部１７が評価値５及び評価値６を求めた上で、所定の閾値として基準ＳＳＤ閾値を定めておいて、ステップＳ１０９では、変換行列選出部１８は、評価値６が基準ＳＳＤ閾値以上なら、「誤差が所定の条件を満たさない」（ステップＳ１０９；Ｎｏ）として、ステップＳ１１１に進むようにしてもよい。
【００７４】
このようにすることにより、今回のループ（ステップＳ１０６からステップＳ１１１のループ）で変換行列を算出する際に選定された選定移動ベクトルと、１つ前のフレームでの選出された変換行列を算出する際に選定された選定移動ベクトルとの違いが大きい場合には、今回のループで算出された変換行列を棄却して、すぐに次のループに進むことができる。
【００７５】
変形例３の変形例１では、このようにすることにより、１つ前のフレームで選出された変換行列と大きく異なる変換行列が算出される可能性が高い場合には、その変換行列を棄却することにより、より適切な変換行列が選出される可能性を高めている。
【００７６】
（変形例３の変形例２）
上述の変形例３の変形例１においては、画像処理（図２）のステップＳ１０９で、変換行列選出部１８は、評価値６が基準ＳＳＤ閾値以上なら、「誤差が所定の条件を満たさない」と判定することとしたが、これに限られない。例えば、変形例３の変形例２として、所定の割合として基準ＳＳＤ割合（ｎ％）を定めておいて、ステップＳ１０９で、変換行列選出部１８は、評価値６が評価値５の基準ＳＳＤ割合以上なら、「誤差が所定の条件を満たさない」（ステップＳ１０９；Ｎｏ）として、ステップＳ１１１に進むようにしてもよい。
【００７７】
このようにすることにより、今回のループ（ステップＳ１０６からステップＳ１１１のループ）で変換行列を算出する際に選定された選定移動ベクトルと、１つ前のフレームでの選出された変換行列を算出する際に選定された選定移動ベクトルとの違いが大きい場合には、今回のループで算出された変換行列を棄却して、すぐに次のループに進むことができる。
【００７８】
変形例３の変形例２では、このようにすることにより、１つ前のフレームで選出された変換行列と大きく異なる変換行列が算出される可能性が高い場合には、その変換行列を棄却することにより、より適切な変換行列が選出される可能性を高めている。
【００７９】
（変形例４）
実施形態１では、画像処理（図２）のステップＳ１０５で（つまり変換行列を変化させて最適な変換行列を選出するループに入る直前で）選出変換行列を初期化していたが、この処理をしなくてもよい。例えば、変形例４として、図１７に示すように、ステップＳ１０５の処理の代わりに、前回の選出変換行列を初期化せずに、前回の選出変換行列を用いて誤差算出部１７が誤差（各評価値）を算出しておく（ステップＳ１２１）ことにしてもよい。このようにすると、その後の（ステップＳ１０６からステップＳ１１１の）ループでは、前回の選出変換行列が初期値として扱われることになる。
【００８０】
すると、ステップＳ１０６で前回の選出変換行列とあまりにかけ離れた変換行列が算出されたとしてもそれはすぐに棄却されることになるので、より適切な変換行列が選出される可能性が高くなる。
【００８１】
（変形例５）
さらに、変形例５として、図１８に示すように、ステップＳ１２１で算出した誤差（各評価値）が所定の条件を満たすか否かを判定（ステップＳ１２２）してもよい。具体的には、所定の基準閾値を設定して、各評価値がその基準閾値より高ければ、変換行列選出部１８は「前回のフレームでの選出変換行列は、今回のフレームでも問題無く利用できる」と判断して、選出変換行列を更新しない（前回のフレームでの値のままにする）。
【００８２】
つまり、変形例５では、ステップ１２２で、変換行列選出部１８が、誤差が所定の条件を満たすと判定したら（ステップＳ１２２；Ｙｅｓ）、ステップＳ１１２に行き、画像生成部１９は、前回のフレームでの選出変換行列を用いて画像生成する。誤差が所定の条件を満たさないと判定したら（ステップＳ１２２；Ｎｏ）、ステップＳ１０６に行き、今回のフレームでの変換行列を選出するループに入る。誤差が所定の条件を満たすとは、例えば、誤差が所定の閾値より小さい場合である。
【００８３】
変形例５では、前回のフレームでの選出変換行列を利用可能な場合には、今回のフレームで変換行列を算出する処理を省略することができるので、処理負荷を軽くすることができる。
【００８４】
（変形例６）
また、実施形態１では、画像処理（図２）のステップＳ１０１でそのフレームの画像を取得したら、毎回変換行列を算出する処理を行っていたが、状況によってはこの処理をしなくてもよい。例えば、変形例６として、図１９に示すように、ステップＳ１０１の後で、制御部１０は状況を取得し（ステップＳ１３１）、状況に変化があるかを判定する（ステップＳ１３２）ようにしてもよい。
【００８５】
ここで、状況とは、周囲の環境や撮像部の動きである。例えば、撮像部に加速度センサを付け、制御部１０が加速度センサから得られる値を確認することにより、撮像部が動いたか否かを判定することができる。また、加速度センサを用いなくても、撮影した画像を前フレームで撮影した画像と比較することにより、状況の変化を判定できる。これは、具体的には、制御部１０が、前回のフレームと今回のフレームとで画像自体の差を算出（例えば、ピクセル単位で画素値の差の絶対値を出し、その絶対値の全ピクセルでの総和を算出）し、算出した値が所定の閾値よりも小さければ、状況に変化はないと判定し、算出した値が該閾値以上なら状況に変化ありと判定する。
【００８６】
制御部１０は、状況に変化がないと判定したら（ステップＳ１３２；Ｎｏ）、ステップＳ１１２に行き、画像生成部１９は、前回のフレームでの選出変換行列を用いて画像生成する。状況に変化ありと判定したら（ステップＳ１３２；Ｙｅｓ）、ステップＳ１０２に行き、今回のフレームで、新たに変換行列を選出する処理に入る。なお、上述のステップＳ１３１及びステップＳ１３２において、制御部１０は、状況判定手段として機能する。
【００８７】
変形例６では、状況が変化した時だけ変換行列の算出を行うので、処理負荷を軽くすることができる。
【００８８】
（変形例７）
上述の実施形態及び変形例では、変換行列選出部１８は、今回のフレームで算出された変換行列での評価値と１つ前のフレームで算出された変換行列での評価値とを用いて最適な変換行列の選出を行っているが、これに限られない。例えば、変形例７として、１つ前のフレームだけで無く、２つ前のフレームで算出された変換行列での評価値も用いて最適な変換行列の選出を行ってもよい。さらには、３つ前やそれ以上前のフレームで算出された変換行列での評価値も用いて最適な変換行列の選出を行ってもよい。
【００８９】
変形例７では、過去のフレームでの評価値を複数用いることで、より適切な変換行列が選出される可能性を高めることができる。
【００９０】
なお、上述の実施形態及び変形例では、画像処理装置１００は、撮像部を２つ（第１撮像部３１及び第２撮像部３２）備えていた。しかし、例えば、他の装置から動画像を取得したり、記憶部２０に記憶された動画像を取得したりして、画像取得部１１が複数の動画像を取得できる場合には、画像処理装置は撮像部を備えなくてもよい。
【００９１】
また、上述の実施形態及び変形例では、画像処理装置１００は、第１の画像と第２の画像をつなぎ合わせていたが、つなぎ合わせる画像の数は２つに限られない。画像処理装置は、３以上の画像をそれぞれ隣り合う画像との共通領域に基づいてつなぎ合わせた画像を生成してもよい。
【００９２】
なお、上述の実施形態１及び各変形例は適宜組み合わせることができる。例えば、変形例４（図１７）に変形例６（図１９）を組み合わせると、状況に変化がなければ前回の選出変換行列が今回の選出変換行列になり、状況に変化があれば前回の選出変換行列が今回の変換行列の初期値として扱われるので、処理負荷を軽減しつつ、より適切な変換行列が選出される可能性を高めることができる。
【００９３】
また、変形例５（図１８）に変形例６（図１９）を組み合わせると、状況に変化がなければ前回の選出変換行列が今回の選出変換行列になり、状況に変化があっても前回の選出変換行列での誤差が小さければ前回の選出変換行列が今回の選出変換行列になり、それ以外の場合に前回の選出変換行列が今回の変換行列の初期値として扱われるので、さらに処理負荷を軽減しつつ、より適切な変換行列が選出される可能性を高めることができる。
【００９４】
なお、画像処理装置１００の各機能は、通常のＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等のコンピュータによっても実施することができる。具体的には、上記実施形態では、画像処理装置１００が行う画像処理等のプログラムが、記憶部２０のＲＯＭに予め記憶されているものとして説明した。しかし、プログラムを、フレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  Ｄｉｓｃ）、メモリカード、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ等のコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムをコンピュータに読み込んでインストールすることにより、上述の各機能を実現することができるコンピュータを構成してもよい。
【００９５】
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲が含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【００９６】
（付記１）
第１の画像と、前記第１の画像と互いに端部が共通する第２の画像と、をそれぞれフレーム単位で取得する画像取得手段と、
前記画像取得手段が取得した前記第１の画像と前記第２の画像とで共通する領域である共通領域を特定する共通領域特定手段と、
前記共通領域特定手段により特定された前記共通領域において、前記第１の画像と前記第２の画像とで対応する特徴点のペアを特定する特徴点特定手段と、
前記特徴点特定手段により特定された特徴点のペアに基づき、前記第１の画像中の第１の特徴点を始点とし、前記第１の特徴点に対応する前記第２の画像中の第２の特徴点を終点とする、移動ベクトルを複数算出する移動ベクトル算出手段と、
前記移動ベクトル算出手段により算出された複数の移動ベクトルから選定された選定移動ベクトルに基づいて変換行列を算出する変換行列算出手段と、
前記変換行列算出手段により算出された変換行列を用いて、前記第１の画像中の第１の特徴点の位置を変換した位置である移動後特徴点の位置を算出する変換手段と、
前記第２の特徴点の位置と前記変換手段により算出された前記移動後特徴点の位置との間の誤差を算出する誤差算出手段と、
所定のフレームにおいて、前記変換行列算出手段により算出された複数の変換行列の中から、前記誤差算出手段により算出された誤差が所定の条件を満たす変換行列を選出する変換行列選出手段と、
前記変換行列選出手段が選出した変換行列を用いて前記第１の画像と前記第２の画像とをつなぎ合わせた画像を生成する画像生成手段と、
を備え、
前記変換行列選出手段は、前記所定のフレームの前のフレームにおいて選出された変換行列と前記所定のフレームにおいて前記変換行列算出手段で算出された複数の変換行列の中から、所定の条件を満たす変換行列を選出する、
画像処理装置。
【００９７】
（付記２）
さらに状況を判定する状況判定手段を備え、
前記変換行列選出手段は、前記状況判定手段が状況に変化はないと判定したら、前記所定のフレームの前のフレームにおいて選出された変換行列を前記所定のフレームにおける変換行列として選出する、
付記１に記載の画像処理装置。
【００９８】
（付記３）
前記変換手段は、前記所定のフレームの前のフレームにおいて選出された変換行列と、前記所定のフレームにおいて前記変換行列選出手段が選出した変換行列の、それぞれを用いて前記第１の画像中の第１の特徴点の位置を変換して移動後特徴点の位置を算出し、
前記誤差算出手段は、前記変換手段が算出した移動後特徴点の位置に基づき、前記所定のフレームの前のフレームにおいて選出された変換行列に基づく誤差である前フレーム誤差と、前記所定のフレームで選出された変換行列に基づく誤差である現フレーム誤差と、を算出し、
前記変換行列選出手段は、前記所定のフレームの前のフレームにおいて選出された変換行列と前記所定のフレームにおいて前記変換行列算出手段で算出された複数の変換行列の中から、前記前フレーム誤差及び前記現フレーム誤差が所定の条件を満たす変換行列を選出する、
付記１又は２に記載の画像処理装置。
【００９９】
（付記４）
前記変換行列選出手段は、前記前フレーム誤差が所定の閾値より小さい場合には、前記所定のフレームの前のフレームにおいて選出された変換行列を前記所定のフレームにおける変換行列として選出する、
付記３に記載の画像処理装置。
【０１００】
（付記５）
前記第１の画像と前記第２の画像は半天球画像であって、それを合成することで全天球画像を生成する、
付記１から４のいずれか１つに記載の画像処理装置。
【０１０１】
（付記６）
第１の画像と、前記第１の画像と互いに端部が共通する第２の画像と、をそれぞれフレーム単位で取得し、
前記取得した前記第１の画像と前記第２の画像とで共通する領域である共通領域を特定し、
前記特定された前記共通領域において、前記第１の画像と前記第２の画像とで対応する特徴点のペアを特定し、
前記特定された特徴点のペアに基づき、前記第１の画像中の第１の特徴点を始点とし、前記第１の特徴点に対応する前記第２の画像中の第２の特徴点を終点とする、移動ベクトルを複数算出し、
前記算出された複数の移動ベクトルから選定された選定移動ベクトルに基づいて変換行列を算出し、
前記算出された変換行列を用いて、前記第１の画像中の第１の特徴点の位置を変換した位置である移動後特徴点の位置を算出し、
前記第２の特徴点の位置と前記算出された前記移動後特徴点の位置との間の誤差を算出し、
所定のフレームにおいて、前記算出された複数の変換行列の中から、前記算出された誤差が所定の条件を満たす変換行列を選出し、
前記選出した変換行列を用いて前記第１の画像と前記第２の画像とをつなぎ合わせた画像を生成する、
画像処理方法であって、
前記変換行列の選出において、前記所定のフレームの前のフレームにおいて選出された変換行列と前記所定のフレームにおいて算出された複数の変換行列の中から、所定の条件を満たす変換行列を選出する、
画像処理方法。
【０１０２】
（付記７）
コンピュータに、
第１の画像と、前記第１の画像と互いに端部が共通する第２の画像と、をそれぞれフレーム単位で取得し、
前記取得した前記第１の画像と前記第２の画像とで共通する領域である共通領域を特定し、
前記特定された前記共通領域において、前記第１の画像と前記第２の画像とで対応する特徴点のペアを特定し、
前記特定された特徴点のペアに基づき、前記第１の画像中の第１の特徴点を始点とし、前記第１の特徴点に対応する前記第２の画像中の第２の特徴点を終点とする、移動ベクトルを複数算出し、
前記算出された複数の移動ベクトルから選定された選定移動ベクトルに基づいて変換行列を算出し、
前記算出された変換行列を用いて、前記第１の画像中の第１の特徴点の位置を変換した位置である移動後特徴点の位置を算出し、
前記第２の特徴点の位置と前記算出された前記移動後特徴点の位置との間の誤差を算出し、
所定のフレームにおいて、前記算出された複数の変換行列の中から、前記算出された誤差が所定の条件を満たす変換行列を選出し、
前記選出した変換行列を用いて前記第１の画像と前記第２の画像とをつなぎ合わせた画像を生成する、
処理を実行させるためのプログラムであって、
前記変換行列の選出において、前記所定のフレームの前のフレームにおいて選出された変換行列と前記所定のフレームにおいて算出された複数の変換行列の中から、所定の条件を満たす変換行列を選出する、
プログラム。
【符号の説明】
【０１０３】
１０…制御部、１１…画像取得部、１２…共通領域特定部、１３…特徴点特定部、１４…移動ベクトル算出部、１５…変換行列算出部、１６…変換部、１７…誤差算出部、１８…変換行列選出部、１９…画像生成部、２０…記憶部、３１…第１撮像部、３２…第２撮像部、５１，５２…半天球画像、５３…実線、５４，５５，５６…点線、６１…丸、７１，７２…共通領域、７３，７４…領域、１００…画像処理装置
【図１】
2020057182.tif 000003
【図２】
2020057182.tif 000004
【図３】
2020057182.tif 000005
【図４】
2020057182.tif 000006
【図５】
2020057182.tif 000007
【図６】
2020057182.tif 000008
【図７】
2020057182.tif 000009
【図８】
2020057182.tif 000010
【図９】
2020057182.tif 000011
【図１０】
2020057182.tif 000012
【図１１】
2020057182.tif 000013
【図１２】
2020057182.tif 000014
【図１３】
2020057182.tif 000015
【図１４】
2020057182.tif 000016
【図１５】
2020057182.tif 000017
【図１６】
2020057182.tif 000018
【図１７】
2020057182.tif 000019
【図１８】
2020057182.tif 000020
【図１９】
2020057182.tif 000021