(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-15
(45)【発行日】2024-11-25
(54)【発明の名称】画像処理装置、画像処理方法、およびプログラム
(51)【国際特許分類】
G06T 7/246 20170101AFI20241118BHJP
【FI】
G06T7/246
(21)【出願番号】P 2020186713
(22)【出願日】2020-11-09
【審査請求日】2023-10-12
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100090273
【氏名又は名称】國分 孝悦
(72)【発明者】
【氏名】小林 正明
【審査官】豊田 好一
(56)【参考文献】
【文献】国際公開第2016/199264(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/246
(57)【特許請求の範囲】
【請求項1】
時間的に連続した画像を基に動きベクトルを取得するベクトル取得手段と、
前記取得した複数の動きベクトルから、着目する動きベクトルとその周辺の複数の動きベクトルとを選択する選択手段と、
二つの動きベクトルの間で動きの類似度を取得する類似度取得手段と、
前記取得する動きベクトルに対応する画像類似度情報を取得する情報取得手段と、
前記着目する動きベクトルに対して前記類似度が閾値以内である高い類似度の前記周辺の動きベクトルの数の総和に関する値を、信頼度として取得する信頼度取得手段と、
を有
し、
前記画像類似度情報は、前記動きの類似度が最も高い動きベクトルの画像類似度と、前記動きの類似度が次に高い動きベクトルの画像類似度との比であり、
前記信頼度取得手段は、前記動きの信頼度が閾値以内である高い信頼度の動きベクトルの数と、前記画像類似度情報とを基に、前記信頼度を算出することを特徴とする画像処理装置。
【請求項2】
時間的に連続した画像を基に動きベクトルを取得するベクトル取得手段と、
前記取得した複数の動きベクトルから、着目する動きベクトルとその周辺の複数の動きベクトルとを選択する選択手段と、
二つの動きベクトルの間で動きの類似度を取得する類似度取得手段と、
前記取得する動きベクトルに対応する画像類似度情報を取得する情報取得手段と、
前記着目する動きベクトルに対して前記類似度が閾値以内である高い類似度の前記周辺の動きベクトルの数の総和に関する値を、信頼度として取得する信頼度取得手段と、
を有し、
前記画像類似度情報は、前記動きの類似度が最も高い動きベクトルの画像類似度と、前記動きの類似度が次に高い動きベクトルの画像類似度との差であり、
前記信頼度取得手段は、前記動きの信頼度が閾値以内である高い信頼度の動きベクトルの数と、前記画像類似度情報とを基に、前記信頼度を算出することを特徴とする画像処理装置。
【請求項3】
前記選択手段は、前記画像を分割した分割領域ごとに、少なくとも前記着目する動きベクトルを含む分割領域に含まれる、他の動きベクトルを前記周辺の動きベクトルとして選択することを特徴とする請求項1
または請求項2に記載の画像処理装置。
【請求項4】
前記類似度取得手段は、二つの動きベクトルの差のノルム値を、前記動きの類似度として算出することを特徴とする請求項1から請求項
3のいずれか1項に記載の画像処理装置。
【請求項5】
前記信頼度取得手段は、前記周辺の動きベクトルと前記着目する動きベクトルとの前記ノルム値が閾値以内である場合、前記周辺の動きベクトルの数の総和に関連する値を前記信頼度として取得することを特徴とする請求項
4に記載の画像処理装置。
【請求項6】
前記ノルム値に対する閾値は、動きを検出する対象の被写体に応じて変わることを特徴とする請求項
5に記載の画像処理装置。
【請求項7】
前記取得した信頼度の動きベクトルを基に、前記画像の動きを表す動きパラメータを取得するパラメータ取得手段を有することを特徴とする請求項1から請求項
6のいずれか1項に記載の画像処理装置。
【請求項8】
前記動きパラメータを基に、映像のブレ補正と自由視点の生成と画像合成との少なくともいずれかの処理を行う手段をさらに有することを特徴とする請求項1から請求項
7のいずれか1項に記載の画像処理装置。
【請求項9】
時間的に連続した画像を基に動きベクトルを取得するベクトル取得工程と、
前記取得した複数の動きベクトルから、着目する動きベクトルとその周辺の複数の動きベクトルとを選択する選択工程と、
二つの動きベクトルの間で動きの類似度を取得する類似度取得工程と、
前記取得する動きベクトルに対応する画像類似度情報を取得する情報取得工程と、
前記着目する動きベクトルに対して前記類似度が閾値以内である高い類似度の前記周辺の動きベクトルの数の総和に関する値を、信頼度として取得する信頼度取得工程と、
を有
し、
前記画像類似度情報は、前記動きの類似度が最も高い動きベクトルの画像類似度と、前記動きの類似度が次に高い動きベクトルの画像類似度との比であり、
前記信頼度取得工程では、前記動きの信頼度が閾値以内である高い信頼度の動きベクトルの数と、前記画像類似度情報とを基に、前記信頼度を算出することを特徴とする画像処理方法。
【請求項10】
コンピュータを、請求項1から請求項
8のいずれか1項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像から動きベクトルを取得する画像処理技術に関する。
【背景技術】
【0002】
コンピュータの計算性能の向上に伴い、画像の領域分割、画像の位置合わせなど、コンピュータビジョンと呼ばれる分野の画像処理技術の実用性が高まっている。
画像の位置合わせでは、時間的に連続する画像から動きベクトルを複数算出し、それら動きベクトルを基に画像間の位置ズレを表す動きパラメータを算出する処理が行われる。動きベクトルの算出手法には、着目画像の画像領域(特徴点)に対し、参照画像から類似度が最も高い画像領域を探索して、それら画像領域の相対位置を動きベクトルとする手法がある。類似度に基づく探索手法には、例えば、SAD(Sum of Absolute Difference)やSSD(Sum of Squared Difference)を画像の類似度として用いたブロックマッチングによる探索手法がある。そして、画像の類似度が高い(SADの場合はその値が小さい)ほど、その類似度に基づく動きベクトルの信頼度は高いと判定することができる。また、特許文献1には、特徴点とその特徴量を算出し、着目画像の特徴量の類似度が最も高い特徴量をペアリングして、その特徴点の位置関係を動きベクトルとする方法が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、動きベクトルの算出に用いられた類似度は、例えば、画像の特徴が少ない平坦部では、画像の特徴が多い領域と比べて、高く算出されがちである。このため、類似度が高いほど動きベクトルの信頼度が高いと判定する手法の場合、画像の特徴が少ない平坦部では動きベクトルの信頼度が高いと判定される可能性が高くなる。しかしながら、その信頼度は、精度と正確度が高い信頼度であるとは必ずしも言えない。
【0005】
そこで、本発明は、精度と正確度が高い、動きベクトルの信頼度を、取得可能にすることを目的とする。
【課題を解決するための手段】
【0006】
本発明の画像処理装置は、時間的に連続した画像を基に動きベクトルを取得するベクトル取得手段と、前記取得した複数の動きベクトルから、着目する動きベクトルとその周辺の複数の動きベクトルとを選択する選択手段と、二つの動きベクトルの間で動きの類似度を取得する類似度取得手段と、前記取得する動きベクトルに対応する画像類似度情報を取得する情報取得手段と、前記着目する動きベクトルに対して前記類似度が閾値以内である高い類似度の前記周辺の動きベクトルの数の総和に関する値を、信頼度として取得する信頼度取得手段と、を有し、前記画像類似度情報は、前記動きの類似度が最も高い動きベクトルの画像類似度と、前記動きの類似度が次に高い動きベクトルの画像類似度との比であり、前記信頼度取得手段は、前記動きの信頼度が閾値以内である高い信頼度の動きベクトルの数と、前記画像類似度情報とを基に、前記信頼度を算出することを特徴とする。
【発明の効果】
【0007】
本発明によれば、精度と正確度が高い、動きベクトルの信頼度を、取得可能となる。
【図面の簡単な説明】
【0008】
【
図1】画像処理装置の構成例と適用例を示す図である。
【
図2】動き検出を基にした電子防振処理のフローチャートである。
【
図3】第一の実施形態における変換行列推定処理のフローチャートである。
【
図5】第一の実施形態における信頼度算出処理のフローチャートである。
【
図7】第二の実施形態における変換行列推定処理のフローチャートである。
【
図8】第二の実施形態における信頼度算出処理のフローチャートである。
【
図9】第三の実施形態における変換行列推定処理のフローチャートである。
【
図10】オブジェクト単位の領域分割と領域番号の例を示す図である。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態を、添付の図面に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。また実施形態において同一の構成または処理については、同じ参照符号を付して説明する。
<第一の実施形態>
本実施形態では、画像の位置合わせを行うために、時間的に連続する画像から複数の動きベクトルを取得してそれらの信頼度を算出し、信頼度が高い動きベクトルを基に画像の位置ズレを表す動きパラメータを取得する画像処理を例に挙げて説明する。また本実施形態では、動きパラメータ取得処理において、回転行列(下記の参考文献1参照)を求めることとし、時間的に連続する画像から行列を推定して、画像に対していわゆる電子防振処理を行う例を挙げて説明する。
【0010】
ここで、動きベクトル取得処理としては、例えば、画像から特徴点を抽出し、その特徴点の特徴量を算出して、着目画像の特徴量の類似度が最も高い特徴量をペアリングし、それらの特徴点の位置関係を基に動きベクトルを取得する処理等を挙げることができる。ただし特徴点は、画像の特定の領域に集中することもあるため、画像を例えば同サイズの領域に分割し、それら分割領域ごとに検出する特徴点数を設定して、画像全体から均等に特徴点を検出する手法(特開2014-229030号公報参照)を用いるとする。また、画像の動きを表現する動きパラメータは、回転行列の他、例えば二次元ベクトルやホモグラフィ行列を用いても表現できる。行列の形式に限定はなく、アフィン変換行列やホモグラフィ行列などの他の行列であってもよい。また画像の動きを表す動きパラメータは、二次元ベクトルやホモグラフィ行列を用いても表現可能である。
参考文献1:姿勢推定と回転行列、 玉木徹、"IEICE Technical Report SIP2009-48, SIS2009-23(2009-09)"
【0011】
なお検出した動きベクトルは、全てが正しいとは限らず、誤った動きベクトルが含まれることがあるため、誤りを含んだデータからモデルを推定するロバスト推定処理が必要となる。ロバスト推定の代表的なアルゴリズムには、RANSAC(下記の参考文献2参照)がある。
参考文献2:"Random sample consensus: A paradigm for model fitting with applications to image analysis and automated cartography"、M.A. Fischler and R.C. Bolles、 "Communications of the ACM, 24(6):381-395, 1981"
RANSACは、計算を繰り返しながら最適なモデルを推定する技術である。ただし、RANSACは、モデルに対しデータの外れ値(アウトライア)が多いほど、または、推定するモデルのパラメータの要素数が多いほど、多くの繰り返し(イタレーション)を必要とする。そこで、信頼度が低い(精度や正確度が低いと推定される)動きベクトルを除去してからロバスト推定を行うことで、アウトライアの比率を減らし、イタレーション回数を削減できる。
【0012】
また電子防振のような映像ブレ補正では、時間的に連続する複数の画像に対し、画像間の動きを表現する行列の逆行列をそれぞれ作り、複数の逆行列を使って平滑化した行列を用いて、それら画像を幾何変換することで動きブレの補正が行われる。行列の平滑化は、行列の移動相乗平均を用いて計算することができ、相乗平均の算出に必要な行列のべき乗根は、下記の参考文献3に記載の手法を使って計算することができる。
参考文献3:"Algorithms for the matrix pth root"、 "Dario A. Binia、 Nicholas J. Highamb、and Beatrice Meinia"、NumericalAlgorithms (2005)39: 349-378
なお、画像の位置合わせ技術は、本実施形態で挙げた電子防振のような映像ブレ補正技術の他、自由視点生成技術、画像合成など様々な技術に応用可能である。映像ブレ補正技術は特開2010-109876号公報にも開示されており、自由視点生成技術は特開2004-246667号公報にも開示されている。
【0013】
本実施形態の画像処理装置は、時間的に連続した画像から複数の動きベクトルを取得する動きベクトル取得処理を行い、それら取得した複数の動きベクトルから、着目する動きベクトルとその周辺の複数の動きベクトルとを取得する選択処理を行う。以下、着目する動きベクトルを着目ベクトルと呼び、周辺の動きベクトルを周辺ベクトルと呼ぶことにする。そして画像処理装置は、二つの動きベクトルの間で動きの類似度を取得する類似度取得処理を行い、着目ベクトルに対して類似度が高い、例えばSADの値が閾値以内である周辺ベクトルの数の総和に関連する値を、動きベクトルの信頼度として取得する。本実施形態の画像処理装置では、この信頼度取得処理によって、精度と正確度が高い、動きベクトルの信頼度を取得する。これにより、本実施形態の画像処理装置では、精度と正確度が高い信頼度の動きベクトルを確実に取得すること、言い換えると、精度や正確度が低い動きベクトルを確実に除外することを可能にする。
【0014】
図1(a)は、本実施形態に係るプログラムを実行することによって、本実施形態の画像処理装置における機能および処理を実現可能とする、情報処理装置の内部構成例を示した図である。
図1(a)では、情報処理装置として、例えば、パーソナルコンピュータ(PC)を例に挙げている。本実施形態の画像処理装置として機能するPCは、CPU105、グラフィックプロセッサ103、RAM102、外部ストレージ107、ネットワークI/F108、バス101、ディスプレイ104、及びユーザーI/F106を有する。またPCには、撮像装置である外部撮像部109が接続されているとする。なお、外部撮像部109はPCに内蔵されていてもよいし、ディスプレイ104は外部表示装置としてPCに接続されていてもよい。
本実施形態の画像処理装置(PC)は、外部撮像部109によって撮像された動画像の画像を解析して特徴点を検出し、特徴点の類似度に基づいて取得した動きベクトルの信頼度を算出するような画像処理を行う。以下、PCの構成と各モジュールの動作について、
図1(a)を参照して説明する。
【0015】
図1(a)において、バス101は、PC内においてデータの流れを司る。
RAM102は、書込み可能メモリであり、CPU105のワークエリア等として機能する。
外部ストレージ107は、不揮発性の外部記憶媒体を有し、大容量メモリとして機能する。本実施形態の場合、外部ストレージ107は、ハードディスク装置(HDD)により実現されるが、SSD(フラッシュメモリを使用したソリッドステートドライブ)等の他の記憶装置が用いてもよい。
外部撮像部109は、カメラなどの撮像装置であり、被写体等の動画像を取得することができる。
【0016】
グラフィックプロセッサ103は、ディスプレイ104に画像を表示する際に必要となる各種の計算処理を行うプロセッサである。グラフィックプロセッサ103は、行列演算が可能であり、行列に従って、回転などの画像の幾何変換を行うことができる。
ディスプレイ104は、ユーザI/F106から入力されたコマンドや、それに対するPCの応答出力等を表示する表示装置である。
【0017】
CPU105は、中央演算処理装置であり、オペレーティングシステム(OS)やアプリケーションプログラム等のコンピュータプログラムに基づいて他の構成要素と協働し、PC全体の動作を制御する。詳細は後述するが、本実施形態の場合、CPU105が、画像解析により特徴点を抽出し、その特徴点の類似度に基づいて動きベクトルを取得し、さらにその動きベクトルの信頼度を算出するための各種処理を行うとする。なお本実施形態では、CPU105が一つであるとして説明するがこれに限定されず複数のCPUが存在する構成であってもよい。その場合の各処理はマルチスレッド処理による並列動作が可能である。また本実施形態では、画像解析による特徴点抽出や動きベクトルの取得、その動きベクトルの信頼度の算出等をCPU105が行うとしているが、これらの画像処理はグラフィックプロセッサ103が行ってもよい。
【0018】
ユーザーI/F106は、ユーザーからの指示やコマンドの入力を受け付ける。ユーザーI/F106から入力された指示やコマンドの情報は、バス101を介してCPU105に送られる。CPU105は、入力された指示やコマンドのなどを基に、プログラムの起動やPCの動作制御等を行う。ユーザI/F106は、タッチパネル、ポインティングデバイス、キーボードなどであるが、特定のデバイスに限定されるものではない。なお、ユーザI/F106は、タッチパネル、ポインティングデバイスである場合には、ディスプレイ104上の任意の座標位置でユーザーのタッチがなされたか否かの情報を取得することができる。
ネットワークI/F108は、外部装置とのデータのやり取りを中継する。
【0019】
本実施形態において実行されるプラグラムおよびデータ、外部撮像部109にて取得された動画のデータ等は、外部ストレージ107に記録され、これらがRAM102へ入力され、CPU105が実行および処理する構成をとる。プログラムおよびデータは、バス101を介して入出力が行われる。画像データは、特に説明しない限り、外部ストレージ107から入力され、その入力時に内部画像フォーマットに変換されるものとする。画像の入力は、外部撮像部109やネットワークI/F108から行うことも可能である。本実施形態における内部画像フォーマットは、RGB画像とするが、これに限定されずYUV画像、モノクロの輝度画像でもよい。また、後述する動き検出は8bitの輝度画像で行うものとし、内部画像フォーマットがRGB画像、またはYUV画像である場合には、変換して動き検出がなされるものとして説明する。本実施形態において、時間的に連続する各画像は、動画を構成している各フレームの画像であるとする。また、画像サイズは1920×1088画素、フレームレートは60fpsとする。UI(ユーザインターフェース)画面や処理画像結果は、グラフィックプロセッサ103を介して、ディスプレイ104上に表示することができる。グラフィックプロセッサ103は、入力した画像の幾何変換を行うことが可能で、変換した画像をRAM102に記憶したり、ディスプレイ104に直接出力したりすることも可能である。処理データは、外部ストレージ107に記録したりRAM102に記憶したりして、他のプログラムと共有可能であるとする。
【0020】
なお本実施形態では、電子防振処理を行う画像処理装置をPCにより実現する例を説明するが、これに限られない。本実施形態に係る電子防振処理は、カメラ装置、組込みシステム、タブレット端末、スマートフォン等の情報機器を用いて実施することができる。また、電子防振処理は、全体または部分的にハードウェアが実行する構成をとってもよい。
また
図1(b)は、本実施形態の画像処理装置がカメラ装置に適用された場合の構成例を示している。
図1(b)に示したカメラ装置は、撮像部110と動き検出部111とを備えている。撮像部110は、画像を撮像し、その画像をバス101へ送る。動き検出部111は、画像から動きベクトルの検出を行う。なお、
図1(b)のバス101~ネットワークI/F108までの他のモジュールは、
図1(a)に示したPCの対応した各モジュールと同等のものである。このように、本実施形態で説明する各処理は、カメラ装置でも実行可能である。
【0021】
図2は、時間的に連続する画像からホモグラフィ行列を推定して電子防振処理を行う処理の流れを示すフローチャートである。これ以降の各フローチャートの説明に関しては、特に説明しない限り、それぞれ「S」の符号を付したステップの処理が実行され、各ステップの処理は矢印の順に行われるものとして説明する。また、互いに依存関係のない独立した処理については記載のステップ順に処理を実行する必要はなく、順序を入れ替えて実行したり、複数CPUが存在する場合には処理を並列に実行したりすることも可能である。同様に、ステップが存在するサブルーチンの位置も限定はなく、処理結果が同じであれば、異なるサブルーチンで処理を実行する構成であってもよく、サブルーチンの構成にも限定はない。以降の説明では、
図1(a)の構成およびモジュールを例に挙げて、本実施形態の画像処理装置に係る処理を説明する。
【0022】
S201において、例えば外部撮像部109にて撮像されて外部ストレージ107に記録された、時間的に連続する各画像(動画の各フレームの画像)が、フレーム順に入力され、CPU105は、それら各フレームの画像を基に動き検出を行う。例えば、第c-1番フレーム、第c番フレームの輝度画像が入力される場合、CPU105は、第c-1番フレームから第c番フレームの画像への変化に応じた動きベクトルを検出する。なお、時間的に連続する各入力画像のフレーム番号は0から始まるとし、処理対象のフレーム番号は1から開始され、S201の処理が実行されるごとに、cの値がインクリメントされるものとして説明する。
【0023】
ここで、動き検出は、画像から特徴点を検出し、その特徴点の特徴量を画像間でマッチングし、その対応位置関係を動きベクトルとすることによって行われる。特徴点検出では、画像を同サイズの領域に分割し、分割領域ごとに検出する特徴点数を設定する手法を用いることが望ましい。本実施形態の場合、例えば画像を縦8分割、横10分割した、80個の分割領域に対し、分割領域ごとに100点の特徴点が検出されるとする。だだし、動き検出のアルゴリズムはこれに限定されず、例えば、輝度画像を縦16×横16画素単位のブロックで分けた計8160ブロックに対し、ブロック単位で、SADを使った動き探索によって行うといった構成をとってもよい。
【0024】
また本実施形態では、一つの動きベクトルは始点の座標と終点の座標とから構成される有向線分であり、一つの動きベクトルをv={A,B}={(x′,y′),(x,y)}と表現する。ただし、Aは動きベクトルの始点を表し、Bは動きベクトルの終点を表すとする。
また本実施形態では、動きベクトルvの純粋なベクトル成分をCv=CAB=(x-x′,y-y′)と表現する。さらに、複数の動きベクトルの集合をXとし、集合X内の個別の動きベクトルを識別するインデックス番号をiとすると、各動きベクトルはvi={Ai,Bi}={(xi′,yi′),(xi,yi)}と表現されるとする。またこのとき、集合Xは、X={v1,v2,v3,・・・}と表現されるものとする。以降、特別な記述がない場合、添え字iが共通のv、A、B、x′、y′、x、y、Cv,CABは、同一の動きベクトル、および、その要素を表すものとして説明する。
また本実施形態では、各数値は浮動小数点として扱うものとして説明するが、固定小数点として計算する方法をとってもよい。また、画像の画素を参照する場合、特別な記述がなければ小数部を切り捨てた数値を座標値として画素を参照するものとする。また、本実施形態において、集合は配列として実装されるものとし、集合Xの要素を動きベクトルのvi=X[i]、あるいはベクトル成分のCvi=CX[i]と表現し、集合の要素である動きベクトルやそのベクトル成分を参照できるものとして説明する。また、集合の要素数は、集合を||で挟む形式で表現する。つまり集合Xの要素数は|X|と表現される。なお、集合は配列として実装することに限定されず、例えばリストとして実装してもよい。
【0025】
次にS202において、CPU105は、前述のようにして取得した動き検出結果から変換行列を推定する。変換行列の推定方法の詳細は、
図3を用いて後述する。本実施形態では、第c-1番フレームから第c番フレームの変化を表す変換行列をH
cと表現する。本実施形態では、変換行列H
cは3×3の行列である回転行列(前述の参考文献1参照)として説明する。なお、行列は、アフィン変換行列やホモグラフィ行列など他の行列でもよい。
【0026】
次にS203において、CPU105は、防振行列を生成するために必要な、防振フレーム周期の数以上の変換行列が推定できたかを判定する。ここで、防振フレーム周期をpとすると、CPU105は、c≧pが真の場合にはS204へ遷移し、偽の場合にはS201へ遷移する。pの値は例えば16であるとするが、pの値に限定はなく、長周期のブレを抑制する場合にはpを大きく設定し、短周期のブレのみ抑制する場合はpを小さく設定する。
【0027】
次にS204において、CPU105は、推定した複数の変換行列から防振行列を生成する。防振は、高周波のブレを抑制することが目的であり、変換行列を複数フレームにわたって平滑化したものが防振行列となる。本実施形態の場合、CPU105は、過去のフレームの変換行列と直前の防振行列とを基に計算を行う。例えば、第c番フレームの防振行列をScとすると、防振行列Scは下記の式(1)により計算することができる。
【0028】
【0029】
なお、行列のべき乗根の計算は近似計算でよく、例えば前述した参考文献2に開示された方法で計算できる。ただし、行列のべき乗根は複数存在する場合があるため、一意の行列が定まる制約を設ける。本実施形態では、行列は回転行列であるため、回転量が最も小さい行列を選択することになる。また、行列のべき乗根が計算できない場合、防振行列Scは単位行列であるものとして処理が進められる。なお、行列の平滑の方法はこれに限定されない。
【0030】
次にS205において、グラフィックプロセッサ103は、前述のようにして求められた防振行列を使って画像を幾何変換する。本実施形態の場合、グラフィックプロセッサ103には、第c-p+1番フレームのRGB画像が入力され、RGBそれぞれのチャネルごとに処理がなされる。
ここで、幾何変換後の画像である出力画像の画素位置を(xout,yout)とし、入力画像の画素位置を(xin,yin)、出力画像から入力画像への変換行列を下記の式(2)で表されるMとする。
【0031】
【0032】
このとき、出力画像の画素位置(xout,yout)から入力画像の画素位置(xin,yin)を計算するproj関数は、下記の式(3)のように表せる。
【0033】
【0034】
またS205において、グラフィックプロセッサ103は、出力画像の画素を一画素ずつ走査しながら、M=S-1としたproj関数を用いて、出力画像の走査対象画素に対応する入力画像の対応画素の位置を計算する。そして、グラフィックプロセッサ103は、この対応画素の画素値を走査対象画素の画素値として、出力画像の全ての画素値を決定する。なお、入力画像の画素位置(xin,yin)は小数値をもつため、バイリニアやバイキュービックなどの方法を使って補間し、より精度の高い画素値を計算する方法がとられてもよい。このようにして変換された画像は、ディスプレイ104に表示されたり、さらに符号化されて外部ストレージ107に記録したりされる。
【0035】
次にS206において、CPU105は、全ての入力画像が処理されたかを判定し、処理されたと判定した場合には
図2のフローチャートの処理を終了し、一方、未処理の画像がある場合にはS201に遷移し、以後、S201からS206の処理を繰り返す。なお、本実施形態では、処理の終了条件として全ての入力画像が処理されたか否かを判定したが、これに限定されず、CPU105は、ユーザーから処理終了を指示するUI操作が行われたか否か判定し、終了指示の操作が行われた場合に処理を終了してもよい。
【0036】
図3は、本実施形態に係る変換行列推定処理の流れを示すフローチャートである。
S301において、CPU105は、前述のようにして複数分割した分割領域のうち、処理の対象分割領域を走査し、分割領域内ごとに当該分割領域内の動きベクトルの集合を取得する。
【0037】
以下、分割領域の走査方法について
図4(a)と
図4(b)を参照して詳細に説明する。
図4(a)は、画像の分割方法と分割領域番号を例示した図である。
本実施形態の場合、CPU105は、分割した領域を、
図4(a)中の各番号順のようなラスター順にしたがって走査する。つまり、CPU105は、一回目のS301の処理が実行される場合には、番号1の分割領域が対象となり、以下、2回、3回と実行されるごとに分割領域番号2、3の分割領域が対象となって処理される。
そして、S301において、CPU105は、対象分割領域内にベクトルの終点(矢印のついた点)が含まれる動きベクトルを入力する。本実施形態では、この分割領域の番号をdとし、以下、分割領域dのように表現して説明する。また、最大分割数をd
maxと表現する。本実施形態では、d
max=20である。分割領域dの番号は1から始まり、S301が実行されるごとにdの番号がインクリメントされることになる。なお動き検出の方法においても画像を分割しているが、その際の区切り位置とS301における分割の区切り位置とは同一にせずとも、処理は可能であるが、分割領域内の動きベクトルの本数を完全に一致させるためには区切り位置を一致させることが望ましい。
【0038】
図4(b)は、動きベクトルの状態を例示する図であり、図中の各矢印が動きベクトルを表している。
図4(b)に例示したように、動きベクトルは、分割領域をまたぐ場合があるため、本実施形態では、動きベクトルvの終点が含まれる分割領域を、その動きベクトルに対応した分割領域として扱う。動きベクトルvの終点Bが、分割領域dに含まれるか否かを判定する関数をin(d,B)とすると、分割領域dに含まれるベクトルの集合Y
dは、下記の式(4)により表される。
【0039】
Yd={v∈X|in(d,B)=true} 式(4)
ただしv={A,B}
【0040】
この式(4)の記法は、集合Xの要素を走査して、「|」以降で表現された条件を満足する要素を抽出し、抽出された要素の部分集合であるY
dを生成することを示している。以下、部分集合の生成は、同様の記法を用いて説明する。なお、部分集合として新しい配列やリストを生成せず、各要素に部分集合であるか否かを示すフラグを設け、要素の抽出時にフラグを設定する構成をとってもよい。その構成の場合、処理ごとに上位集合の要素を走査して走査対象の要素のフラグを参照することによって、部分集合である要素のみを取得できる。なお、集合Y
dは、事前に作成しておき、S301で入力のみする構成をとってもよい。また本実施形態では、
図4のように画像を20分割したものとして説明したが、分割方法はこれに限定されない。また本実施形態では、終点が分割領域に含まれる動きベクトルを入力するとして説明したが、始点が分割領域に含まれる動きベクトルを入力する構成をとってもよい。また分割領域の走査順も、ラスター順に限定されない。さらには、動きベクトルvの終点Bが、自身の分割領域とその近傍の8個の分割領域のいずれに含まれるか否かを判定する関数をneighbour(d,B)と表した場合、下記の式(5)を用いて、ベクトルの集合Y′
dが生成されてもよい。
【0041】
Y′d={v∈X|neighbour(d,B)=true} 式(5)
ただしv={A,B}
【0042】
例えば番号9の分割領域の場合、当該番号9の分割領域とその近傍の8個の分割領域とは、
図4(a)中で太線で囲まれた9個の分割領域になる。ただし、近傍の分割領域が画面外に存在する場合には、画面内の分割領域から、ベクトルの集合Y′
dが作られるものとする。
【0043】
次にS302において、CPU105は、着目ベクトルに対して類似度が高い(SADの値が閾値以内)周辺ベクトルの数の総和に関連する値を、動きベクトルの信頼度として算出する。信頼度は、着目ベクトルに対する周辺ベクトルの相違の少なさを表す指標である。例えば、信頼度riは、以下の式(6)、式(7)で計算される。信頼度riのiは、分割領域内の動きベクトルのインデックス値を示す。そして、CPU105は、分割領域内のベクトル全てに対し信頼度を算出する。
【0044】
【0045】
ここで、Y″
dは、Y″
d=Y
dもしくはY″
d=Y′
dとなる。前者は対象分割領域内の動きベクトルのみ参照するため演算量が少なくて、後者は対象分割領域に加えて近傍8個の分割領域の動きベクトルを参照するため、数が多く精度が増すことになる。以下、Y″
d=Y
dとして説明する。なお本実施形態では、式(6)のeはe=1とする。この処理の詳細は
図5を用いて後述する。
【0046】
次にS303において、CPU105は、動きベクトルの信頼度に対して所定の閾値を用いた判定処理を行うことで、信頼度が高い動きベクトルを抽出する。本実施形態では、動きベクトルの信頼度は、着目ベクトルに対する周辺ベクトルの相違の少なさを表す指標であるため、所定の閾値は、相違の少なさを判定するための値として設定される。そして、CPU105は、動きベクトルの信頼度が閾値以内となる動きベクトルを、信頼度が高い動きベクトルとして抽出する。
信頼度に対する閾値を用いた判定処理で抽出された動きベクトルの集合、例えば、第c番フレームの分割領域dで抽出された動きベクトルの集合Vdは、以下の式(8)で表現される。
【0047】
Vd={vi∈X/ri>th} 式(8)
【0048】
ここで、式(8)の閾値thは動きベクトルの密度に依存する。本実施形態では、th=|Y″d|×0.1とする。なお、S302でriを|Y″d|で割ることで正規化しておき、th=0.1としてもよい。
【0049】
次にS304において、CPU105は、全ての分割領域の処理が終了したか否かを判定する。CPU105は、全ての分割領域の処理が終了したと判定した場合にはS305に遷移し、処理が終了していない場合はS301に遷移し、以後、S301からS304のステップが繰り返される。
【0050】
S305に進むと、CPU105は、全分割領域から抽出した動きベクトルを入力して回転行列を推定する。本実施形態では、許容誤差e
hを3として、RANSACを実行するサブルーチンが呼び出されるものとする。回転行列推定処理のサブルーチンの詳細については、
図6を用いて後述する。
【0051】
以下、信頼度算出処理の流れについて
図5のフローチャートを用いて説明する。なお、以降の説明において、変数i,j,c
iはゼロに初期化しておくものとする。
まずS501において、CPU105は、着目ブロックから、着目ベクトルv
iを取得する。これは、動きベクトルの集合Y
dからi番目の動きベクトルを取得する処理に当たる。
次にS502において、CPU105は、着目ブロックの周辺ブロックに含まれる動きベクトルを周辺ベクトルとして取得し、着目ブロックと周辺ブロックに含まれる動きベクトルから、参照ベクトルを取得する。これは、動きベクトルの集合Y″
dからj番目の動きベクトルを参照ベクトルとして取得する処理に当たる。
【0052】
次にS503において、CPU105は、着目ベクトルと参照ベクトルとの差を算出する。着目ベクトルと参照ベクトルとの差のノルム値は、二つの動きベクトルの間における動きの類似度を表す。
そしてS504において、CPU105は、S503で算出した差のノルム値に対して閾値を用いた判定処理を行い、差(ノルム値)が閾値以内であるならば、変数ciに1を加算する。本実施形態では、閾値は1とする。すなわち着目ベクトルとのノルム値が閾値以内である場合、周辺ベクトルは類似度が高いとなされて、動きベクトルの数の総和に関連する値を信頼度として算出する処理に用いられることになる。
【0053】
次にS505において、CPU105は、全ての参照ベクトルを参照したかを判定する。つまり、S505において、CPU105は、集合Y″
dの要素全てを参照したかを判定する。そして、CPU105は、全て判定した場合にはS506の処理を実行し、残りがある場合にはS507の処理を実行する。
S506に進むと、CPU105は、全ての着目ベクトルを参照したかを判定する。つまり、CPU105は、Y
dの要素全てを参照したかを判定する。そして、CPU105は、全て判定したと判定した場合には
図5の処理を終了し、まだ残りがある場合にはS508の処理を実行する。
S507に進むと、CPU105は、jをインクリメントした後、S501の処理に戻る。
またS508に進むと、CPU105は、iをインクリメントした後、S501の処理に戻る。
この
図5のフローチャートの終了次点で、変数c
iには信頼度が格納されていることになる。
【0054】
図6は、回転行列推定処理のサブルーチンを示すフローチャートである。本実施形態では、RANSAC法を例に挙げて説明する。
S600において、CPU105は、イタレーション数をインクリメントする。
次にS601において、CPU105は、入力サンプル全体から動きベクトルを四つ取得する。本実施形態において、入力サンプル全体とは、
図3のフローチャートで抽出された動きベクトルの全分割領域に対する集合である。つまり、入力サンプル全体Zは、下記の式(9)で表される。
【0055】
Z={v∈Vd|1≦d≦dmax} 式(9)
【0056】
次にS602において、CPU105は、四つの動きベクトルから行列を算出する。このとき、取得した動きベクトルをvj(ただしjは1から4)と表現する。算出する行列はS202の処理による変換行列Hcである。変換行列Hcは下記の式(10)で表される。
【0057】
【0058】
そしてS602において、CPU105は、方程式を解いて下記の式(11)を満足する回転行列のそれぞれの要素を算出する。
【0059】
【0060】
なお、行列の算出は様々な方法があり、回転行列の算出は前述した参考文献1に記載されている方法で算出できるため、詳細な説明は省略する。ただし、行列の計算方法によっては、サンプルの選び方によって行列が算出できない場合がある。このため、CPU105は、行列算出の失敗を判定して、失敗と判定した場合にはS600の処理に遷移し、再度、処理が行われるものとする。
【0061】
次にS603において、CPU105は、サンプル全体に対し、動きベクトルの始点を、算出した行列で射影した点と終点との距離を算出し、距離が許容誤差内のデータをインライア数としてカウントする。この許容誤差は前述のehである。回転行列推定のおけるインライア数cHinlierは、下記の式(12)により計算できる。
【0062】
cHinlier=|{v∈Z|dist((proj(Hc,(x′,y′)t))t-(x,y))≦eh}|
ただしv={(x′,y′),(x,y)} 式(12)
【0063】
次にS604において、CPU105は、現在までのイタレーションでインライア数が最大であるか否か判定する。そして、CPU105は、判定が真である場合にはS605へ遷移し、偽である場合にはS606へ遷移する。なお、例外として、一回目のS604の処理の実行では、必ずS605へ遷移するものとする。
【0064】
S605に進むと、CPU105は、取得した動きベクトルをベストパラメータとして保存する。
次にS606において、CPU105は、イタレーション数が上限数に達したか否かを判定する。本実施形態では、上限を50回とする。だたし、この回数に限定はない。例えば、入力される動画のフレームレートが60fpsの場合、
図2のフローチャートの処理は16ms以内で完了する必要がある。そのため、CPU105のスペックや数によって、最適な値が決定される。CPU105は、イタレーション数が上限数に達したと判定した場合にはS608に遷移し、達していない場合にはS607に遷移する。
【0065】
607に進むと、CPU105は、イタレーション数が十分か否かを判定する。そして、CPU105は、イタレーション数が十分と判定した場合にはS608に遷移し、不十分と判定した場合にはS600へ遷移する。また、この判定は、イタレーション数が次の式(13)によって算出されるN値を超える場合に十分と判定される。
【0066】
N=log(1-p)/log(1-(rinlier)m) 式(13)
【0067】
ここで、pは、正しいサンプルが最低一つ存在する確率である。本実施形態では、サンプルが99%の確率で存在すると仮定し、p=0.99とする。mは、パラメータの自由度である。本実施形態では、二次元のベクトルを求めるため、m=2である。rinlierは、下記の式(14)により求められる。
【0068】
rinlier=cinlier/|Vd| 式(14)
【0069】
なお、cinlierは、S603で算出したインライア数である。|Vd|は、S303で抽出した動きベクトルの要素数である。
【0070】
次にS608において、CPU105は、ベストパラメータとして戻り値を返す。本実施形態では、ベストパラメータは二次元ベクトルであり、これが分割領域の代表ベクトルにあたる。
【0071】
以上説明したように、本実施形態では、着目ベクトルに対し、周辺の類似した動きベクトルの数をカウントし、その総和に関連する値を信頼度とすることで、動きベクトルの信頼度を算出している。動きベクトルを誤検出した場合でも、周辺ベクトルが着目ベクトルと同じベクトルとして誤検出される可能性は低いため、本信頼度は有効である。ここで、アウトライアの割合(以下、アウトライア率とする)が高い動きベクトルを入力とし、RANSACを用いて回転行列を推定すると、イタレーション数が多くなるという問題がある。また、ロバスト推定技術の一つで比較的処理が軽いとされ、処理時間が短いM推定は、アウトライア率が高い場合には十分な推定性能が発揮できない。本実施形態では、動きベクトルの信頼度で閾値判定を行い、信頼度の低い動きベクトルを除外している。これにより、回転行列推定の入力となる動きベクトルのアウトライアを除去し、RANSACのイタレーション数を減少させる、あるいは、M推定の推定性能を向上させることができる。信頼度を算出する処理は、複雑な行列演算がないため処理量が非常に少ない。そのため、例えばRANSACに適用する場合、その前処理としての信頼度算出のオーバーヘッドを考慮してもトータルの処理時間の大幅な短縮が可能となる。また例えば、60fpsの動画では一つのフレームの処理を16ms以内に完了する必要がある。そのためイタレーション数に上限を設ける必要があるが、この場合でも本実施形態に係る処理を行えば、イタレーション数が上限に達し難く、安定的に行列を推定できる。これにより、行列を使って画像の防振を行う場合、行列推定の失敗の確率が減り、より安定的で自然な防振が可能となる。本実施形態では、画像の防振を行うことを例に、代表ベクトルの決定と類似ベクトルの抽出を説明したが、アプリケーションはこれに限定されず、画像合成などのアプリケーションにも適用できる。
【0072】
また本実施形態では、S505で全ての要素について、処理したか否かを判定したが、それに限定されず、S507で2或いは3ずつインクリメントし、着目ブロックと周辺ブロックの動きベクトルの集合の要素が、最終まで到達して処理したかを判定してもよい。
またS302において、閾値e=1としたが、この値はフレームレートなど撮像対象、条件によって設定される値である。また、本実施形態では防振を目的としているため、背景の動きをとることが目的であり、背景の剛体とみなせるため、比較的小さな値を設定したが、人や動物などの軟体の動きを検出する場合は、eの値を3といった大きめの値に設定することが望ましい。
【0073】
<第二の実施形態>
以下、時間的に連続する画像から回転行列を推定して電子防振処理を行う第二の実施形態について説明する。
第二の実施形態の画像処理装置は、第一の実施形態の
図3に示したフローチャートのS302、S303の処理を実行する代わりに、
図7のフローチャートに示すように、それぞれS702、S703の処理を実行する。また第二の実施形態の場合、S701の処理が追加されている。他のステップの処理は、第一の実施形態と同様であるためそれらの説明は省略する。
【0074】
第二の実施形態では、輝度画像を縦16×横16画素のブロック単位で画像の類似度を表すSADを算出し、動き探索に行うものとして説明する。動き探索はSADが最小となる動きベクトルを探すアルゴリズムであるが、最小のSADに加えて、次に小さいSADの値も、検出した動きベクトルごとに記憶しておくものとする。
【0075】
図7は、第二の実施形態における類似ベクトル抽出処理を行うフローチャートである。第二の実施形態の場合、S301の処理後、CPU105は、S701の処理に遷移する。
S701に進むと、CPU105は、対象分割領域とその近傍分割領域の各動きベクトルにおける画像類似度情報を取得するような情報取得処理を行う。これは、第一の実施形態のS302で説明したY″
d=Y′
dとなる処理である。
本実施形態では、画像類似度にはSADを使うものとする。なお、SADは値が低いほど画像類似度が低くなる指標であるが、本実施形態では動きベクトルの画像類似度情報として用いる。本実施形態では、動き探索において、画像類似度が最も高いとして選ばれた動きベクトルの当該画像類似度、つまり最小のSADをdist
i,1とする。また本実施形態では、探索の結果、画像類似度が次に高い動きベクトルの画像類似度、つまり次点となった動きベクトルのSADをdist
i,2と表現する。本実施形態では、これら二つのSADであるdist
i,1とdist
i,2とを動きベクトルにおける画像類似度情報として取得するものとする。
【0076】
そして本実施形態では、信頼度取得処理において、動きの類似度が高い動きベクトルの数と、画像類似度情報とを基に動きベクトルの信頼度を算出する。本実施形態では、動きベクトルのための探索において類似度が最も高かった動きベクトルの画像類似度と、類似度が次に高い動きベクトルの画像類似度との比coeffを基に、動きベクトルの信頼度を求める。
【0077】
すなわちS702において、CPU105は、画像類似度情報と周辺ベクトルとから、下記の式(15)と式(16)により、対象分割領域内の各動きベクトルの信頼度情報を算出する。
【0078】
【0079】
ここで、coeffについて説明する。coeffの式では、第一候補が分母、第二候補が分子にあるため、第一候補のSADが第二候補のSADに比べ小さいほど、coeffが大きくなり信頼度が大きくなる。offsetは、SADが0を取り得ることがあるため、0除算を防止するために設定されている。本実施形態では、offset=3とする。仮に、disti,1=10, disti,2=20であれば、coeff(i)は、23/13=1.77となる。disti,1=0, disti,2=1であれば、coeff(i)=1.3となる。
【0080】
次にS703において、CPU105は、対象分割領域ごとに信頼度を降順でソートし、信頼度が高い上位の動きベクトルを一定数抽出する。本実施形態では、1920×1088画素の画像に対し、16×16画素ごとのブロックで動き探索を行っている。また、画像の分割領域あたり20であるので、一分割領域あたり408本の動きベクトルが検出されていることになる。本実施形態では、このうち上位25%、つまり101本の動きベクトルが抽出されるものとする。S703の後、CPU105は、S304に遷移する。
【0081】
図8は、第二の実施形態における信頼度算出処理の流れを示すフローチャートである。
フローを説明する図である。
図8のフローチャートにおいて、CPU105は、S503の次にS801の処理を実行し、
図5のS504の代わりにS802の処理が実行される以外は、
図5で説明したフローと同様の処理がなされるものとする。
S801において、CPU105は、前述した類似度の比coeff(j)を取得する。
またS802において、CPU105は、S503で取得された差に対する閾値判定を行い、差が閾値以内ならば、変数c
iに類似度の比coeff(j)を加算する。
【0082】
ここで、SADは画像の類似性が高いほど0に近い値になるが、画像に特徴が少ない領域では、探索しても各ポイントでSADが0に近くなってしまう。このとき、首位と次点との類似度の比(coeff(i))が1に近いほど信頼度が低く、1より大きいほど信頼度が高くなる。そこで、CPU105は、類似度の比を重みとして式(14)に適用し、重み付き総和を使うことで、より精度の高い信頼度としている。特に、周辺に類似のベクトルが少ない場合でも、類似度の比が大きい場合には、信頼度が大きくなり、孤立した動きが除外され難くなる。
【0083】
本実施形態では、SADを使ったブロックマッチングよる動き探索として説明したが、これに限定されず、SSDが使われてもよい。また本実施形態では、特徴点の特徴量を算出し、特徴量をマッチングさせる方法が用いられてもよい。その場合、disti,1、およびdisti,2は、特徴量空間における距離となる。
また、本実施形態では、coeff(i)の算出に比を用いたが、それには限定されず、例えば下記の式(17)のように差が使われてもよい。すなわち、動きの類似度が最も高い動きベクトルの画像類似度と、動きの類似度が次に高い動きベクトルの画像類似度との差が、coeff(i)として求められてもよい。
【0084】
coeff(i)=k(disti,2-disti,1)+offset 式(17)
【0085】
ここでは、SAD算出のブロックサイズが16×16であるためk=1/256とする。また、offsetは10とする。
第二の実施形態では、第一の実施形態のS302で説明したY″d=Y′dとなる方法を挙げたが、これに限定されず、Y″d=Ydとして処理してもよい。
【0086】
<第三の実施形態>
以下、インテリジェントな領域分割を用いて回転行列を推定して電子防振処理を行う第三の実施形態について説明する。
図9は、オブジェクト単位の領域分割を用いた変換行列の推定処理の流れを示すフローチャートである。
図9のフローチャートでは、
図3のフローチャートに対し、S900の処理が追加されている。
S900において、CPU105は、入力画像を被写体等に応じたオブジェクト単位で領域分割する。領域分割方法にはさまざまな方法が存在するが本実施形態では、k-mean法を用いて分割するものとする。また本実施形態の例では、分割数は8となっており、各分割領域には番号が付けられる。オブジェクト単位の各分割領域の番号の順序は任意である。なお、分割アルゴリズムや分割数はこれに限定されず、他の方式、分割数であってもよい。このようにして画像を分割すると、例えば
図10のような分割結果が得られる。
図10の例は、画像が被写体等のオブジェクト単位で分割された状態と、オブジェクト単位の分割領域に番号が付与された例を示した図である。分割領域の番号の振り方に任意である。
【0087】
S900の後、CPU105は、S301の処理に遷移する。S301以降は、第一の実施形態で例示した格子状に区切られた分割領域の代わりに、任意の形状を持つオブジェクト単位の分割領域を対象にする以外は第一の実施形態と同様の処理が実行される。
なお、第三の実施形態の場合、前述した閾値thは、動きベクトルの密度(本/画素)と分割領域の面積(画素)とによって決定される。例えば、動きベクトルの密度を縦16画素×横16画素あたり一本、分割領域の面積を10000画素、係数kを0.1とすると、th=k×1/256×10000≒4となる。
また、第三の実施形態の場合、eは対象の被写体が動物や人などの軟体の場合は3、車や建物、地面などの剛体の場合は1とする。
また、同一オブジェクトに含まれる動きベクトルのベクトル成分は同一になる可能性が高いため、同一オブジェクト内に含まれる動きベクトルから信頼度を算出し、信頼度が低いベクトルを除外することで、インライア率が高まる。このため、回転行列推定においては、同一の動きを持つオブジェクトの集合の面積が最も大きい集合に含まれる動きベクトルが、画像全体の動きの主要成分となる傾向が強まる。これは、推定した回転行列を使って防振を行う場合、広い面積が安定して防振されることになり、防振の安定性が高まる。
本実施形態では、被写体と動きベクトルが対応付けされているため、信頼度を判定することで抽出したベクトルは、防振を目的とした回転行列推定だけでなく被写体を追尾する用途にも使える。
【0088】
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける一つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
上述の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【0089】
101:バス、102:RAM、103:グラフィックプロセッサ、104:ディスプレイ、105:CPU、106:ユーザーI/F、107:外部ストレージ、108:ネットワークI/F、109:外部撮像部、110:撮像部、111:動き検出部