JP6854629B2 - 画像処理装置、画像処理方法 - Google Patents

画像処理装置、画像処理方法 Download PDF

Info

Publication number
JP6854629B2
JP6854629B2 JP2016228295A JP2016228295A JP6854629B2 JP 6854629 B2 JP6854629 B2 JP 6854629B2 JP 2016228295 A JP2016228295 A JP 2016228295A JP 2016228295 A JP2016228295 A JP 2016228295A JP 6854629 B2 JP6854629 B2 JP 6854629B2
Authority
JP
Japan
Prior art keywords
image
optical flow
image processing
difference
images
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016228295A
Other languages
English (en)
Other versions
JP2018084997A5 (ja
JP2018084997A (ja
Inventor
知宏 西山
知宏 西山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2016228295A priority Critical patent/JP6854629B2/ja
Priority to US15/818,006 priority patent/US10818018B2/en
Publication of JP2018084997A publication Critical patent/JP2018084997A/ja
Publication of JP2018084997A5 publication Critical patent/JP2018084997A5/ja
Application granted granted Critical
Publication of JP6854629B2 publication Critical patent/JP6854629B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Analysis (AREA)
  • Studio Devices (AREA)

Description

本発明は、画像間のオプティカルフローを求めるための技術に関するものである。
近年、画像間の各画素の対応付けを行う技術の重要性が高まっている。対応とは、基準画像の画素と同一であるとみなす参照画像の画素との関係であり、二点の座標で表現できる。ステレオ画像や多視点画像を入力した場合は、画素の対応関係から被写体の奥行きを算出できるため、3次元画像処理に応用することも可能である。また、連続して撮像された画像(動画)を入力し、その対応関係を相対座標として表現すれば、それは動きベクトルとなる。画素ごとの動きベクトル(以下オプティカルフローと称する)を利用することによって、動体追跡、動画の防振などが可能となる。
オプティカルフローを取得する代表的な手法としては勾配法がある。勾配法では、画素の時空間の輝度変化の方向と大きさから、オプティカルフローを算出する。勾配法は大きく2種類に分けることができる。一つ目の勾配法では、着目画素の周辺の画素は同じ動きであると仮定し、着目画素を中心とするパッチ内の画素の平均的な時空間の輝度変化からオプティカルフローを算出する(以下、パッチベースの手法と呼称する)。二つ目の勾配法では、画素ごとに画像間の輝度差と、オプティカルフローの滑らかさを表す平滑化項を重みづけして加算し、すべての画素で総和をとったものをエネルギーとして、エネルギーを最適化する(以下、エネルギー最適化法と呼称する)。
パッチベースの手法の代表的なものには、非特許文献1に記載のLucas Kanade法(以下、LK法と呼称する)があり、特許文献1でも同様の考え方が用いられている。特許文献2では、エネルギー最適化法が用いられている。
国際公開第06/075394 特開平9−178764号公報
Pyramidal Implementation of the Lucas Kanade Feature Tracker Description of the algorithm Jean−Yves Bouguet [online] [retrieved on 2016-11-07] Retrieved from the Internet: <URL:http://robots.stanford.edu/cs223b04/algo_tracking.pdf>
しかしながら、特許文献2に代表されるエネルギー最適化法では、エネルギー最適化のための反復計算が必要となり、演算量が増大するという課題がある。一方、非特許文献1に代表されるパッチベースの手法では、反復計算が不要なため、高速にオプティカルフローを推定できる。しかし、拘束条件が明確に考慮されていないため、正解値から外れたフローベクトルが推定される可能性が高くなり、推定が不安定になるという課題がある。
特許文献1の手法は、階層処理の中で、推定したオプティカルフローを平滑化するようパッチベースの手法を改良したものである。このことにより、正解から外れたフローベクトルの出現を抑制できるが、テクスチャが少ない領域では、推定値が不安定になるという課題がある。
本発明はこのような問題に鑑みてなされたものであり、少ない演算量で高精度にオプティカルフローを推定するための技術を提供する。
本発明の一様態は、第1の画像及び該第1の画像を規定の縮小率で再帰的に縮小した複数の縮小画像を要素とする第1の集合と、第2の画像及び該第2の画像を前記規定の縮小率で再帰的に縮小した複数の縮小画像を要素とする第2の集合と、を取得する取得手段と、前記第2の集合に属する画像を画像サイズが小さい順に選択する選択手段と、前記選択手段が今回選択した選択画像の各画素を、前記選択手段が前回選択した画像に対応するオプティカルフローを該選択画像のサイズに応じて変換した変換済みオプティカルフローに従って移動させた移動済み選択画像を生成する生成手段と、前記第1の集合に属する画像のうち前記選択画像と同サイズの画像と前記移動済み選択画像との差分である第1の差分と、前記変換済みオプティカルフローと該変換済みオプティカルフローに対して平滑化処理を施した処理済みオプティカルフローとの差分である第2の差分と、に基づく評価値を極小化するオプティカルフローを、前記選択画像に対応するオプティカルフローとして求める計算手段と、前記計算手段が求めた、前記第2の画像に対応するオプティカルフローを出力する出力手段とを備えることを特徴とする。
本発明の構成によれば、少ない演算量で高精度にオプティカルフローを推定することができる。
コンピュータ装置のハードウェア構成例を示すブロック図。 オプティカルフローを説明する図。 画像処理装置の機能構成例を示すブロック図。 オプティカルフローを生成するための処理のフローチャート。 画像処理装置の機能構成例を示すブロック図。 オプティカルフローを生成するための処理のフローチャート。 参考オプティカルフローを得るための処理について説明する図。 画像処理装置の機能構成例を示すブロック図。 画像処理装置の機能構成例を示すブロック図。
以下、添付図面を参照し、本発明の実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の1つである。
[第1の実施形態]
本実施形態では、次のような構成を有する画像処理装置の一例について説明する。この画像処理装置は、第1の画像及び該第1の画像を規定の縮小率で再帰的に縮小した複数の縮小画像を要素とする第1の集合と、第2の画像及び該第2の画像を上記規定の縮小率で再帰的に縮小した複数の縮小画像を要素とする第2の集合と、を取得する。そして画像処理装置は、第2の集合に属する画像を画像サイズが小さい順に選択する。そして画像処理装置は、今回選択した選択画像の各画素を、前回選択した画像に対応するオプティカルフローを該選択画像のサイズに応じて変換した変換済みオプティカルフローに従って移動させた移動済み選択画像を生成する。そして画像処理装置は、第1の集合に属する画像のうち選択画像と同サイズの画像と移動済み選択画像との差分である第1の差分と、変換済みオプティカルフローと該変換済みオプティカルフローに対して平滑化処理を施した処理済みオプティカルフローとの差分である第2の差分と、に基づく評価値を極小化するオプティカルフローを、選択画像に対応するオプティカルフローとして求める(計算)。そして画像処理装置は、この計算により求めた、第2の画像に対応するオプティカルフローを出力する。
先ず、本実施形態を含む以下の各実施形態において用いる様々な定義について説明する。以下の説明における「オプティカルフロー」(以下、OFと称する場合がある)とは、基準画像に対する対象画像の動きベクトルを画素毎に登録したマップ画像である。つまり、オプティカルフローは対象画像と同じ解像度(縦横の画素数)を有し、対象画像の各画素に対応するオプティカルフローの要素は二次元ベクトルとなっている。
以下では、画像をIと表記した場合、該画像上の画素位置(x、y)における画素値はI(x,y)と表記する。オプティカルフローにおいて、基準画像I上の画素位置(x、y)に対応する要素は(u(x,y),v(x,y))と表記する。u(x,y)は、基準画像Iの画素位置(x、y)に対応する動きベクトルの水平方向成分(X成分)を表し、v(x,y)は、基準画像Iの画素位置(x、y)に対応する動きベクトルの垂直方向成分(Y成分)を表している。
オプティカルフローについて図2を例にとり説明する。図2では、画像201に対する画像202のオプティカルフローについて説明する。画像201は、人物203が移動しているシーンを撮像装置を動かしながら撮像した動画像中のN(Nは1以上の整数)フレーム目の画像であり、画像202は該動画像における(N+N’)(N’は1以上の整数)フレーム目の画像である。画像201及び画像202には被写体として人物203と家204とが含まれている。動きベクトル205は、画像201中の人物203から画像202中の人物203への動きベクトルを表しており、動きベクトル206は、画像201中の家204から画像202中の家204への動きベクトルを表している。一般的に、画像中の人物203(家204)の領域を構成するそれぞれの画素に対する動きベクトルは全く同じではないが、図2では説明を簡単にするために、オブジェクト内の各画素の動きベクトルは全て同じであるものとする。つまり図2では、画像201中の人物203の領域内の各画素の動きベクトルは全て動きベクトル205とし、画像201中の家204の領域内の各画素の動きベクトルは全てベクトル206としている。ここで、動きベクトル205の成分を(10,5)、動きベクトル206の成分を(−5,0)とする。このとき、画像201上の画素位置(x、y)が人物203の領域に含まれている場合、画像201に対するオプティカルフローにおいて画素位置(x、y)に対応する要素(u(x,y),v(x,y))=(10,5)となる。また、画像201上の画素位置(x、y)が家204の領域に含まれている場合、画像201に対するオプティカルフローにおいて画素位置(x、y)に対応する要素(u(x,y),v(x,y))=(−5,0)となる。なお、画像201上の画素位置(x、y)が背景領域(人物203及び家204以外の領域)に含まれている場合、画像201に対するオプティカルフローにおいて画素位置(x、y)に対応する要素(u(x,y),v(x,y))=(0,0)とする。
本実施形態では、単一の撮像装置において互いに異なる時刻に撮像された第1の画像及び第2の画像(第1の画像の撮像時刻は第2の撮像時刻よりも早い)を取得し、該第1の画像に対する該第2の画像のオプティカルフローを生成する。なお、第1の画像及び第2の画像は単一の撮像装置において互いに異なる時刻に撮像された画像に限らず、複数台の撮像装置において同時刻に撮像された画像であっても良いし、複数台の撮像装置において互いに異なる時刻に撮像された画像であっても良い。
次に、本実施形態に係る画像処理装置の機能構成例及びその動作について、画像処理装置の機能構成例を示すブロック図である図3、画像処理装置がオプティカルフローを生成するために行う処理のフローチャートを示す図4、を用いて説明する。なお、図面においてOFはオプティカルフローを表す。また、図4に示したフローチャートに従った処理は、1枚の画像に対するオプティカルフローを求めるための処理である。然るに、例えば、複数枚の画像のそれぞれについてオプティカルフローを求める場合には、該複数の画像のそれぞれについて図4のフローチャートに従った処理を行えばよい。
ステップS401では、画像データ取得部301は、上記の第1の画像及び第2の画像を取得する。以下では、2枚の画像のみを取得する場合について説明するが、複数枚の画像や動画像を取得しても構わない。画像が3枚以上ある場合や動画像の場合は、対象となる2枚の画像、もしくはフレームを選択して以降の処理を進める。
ステップS402では、画像縮小部302は、第1の画像Iを縮小率scale_factor(以下sfと呼称する:0<sf<1)に従って再帰的に縮小して複数枚の縮小画像を生成する。更に画像縮小部302は、第2の画像Iを縮小率sfに従って再帰的に縮小して複数枚の縮小画像を生成する。具体的には、画像縮小部302は先ず、I及びIから生成する縮小画像の枚数である最大階層数(max_lv)を取得する。最大階層数max_lvは予め画像処理装置100に設定されていたものであっても良いし、ユーザに入力させても良い。本実施形態では、I(I)を縮小率sfに従ってmax_lv回縮小した縮小画像のサイズ(縦及び/又は横サイズ)がI(I)のサイズ(縦及び/又は横サイズ)の5%以下となるまで縮小を行うものとした。然るにこの場合、以下の式1に示す如く、max_lv=5となる。
Figure 0006854629
以下では、Iを縮小率sfに従ってlv(lvは0〜max_lvを満たす整数)回縮小した縮小画像をI[lv]と表記する。また、Iを縮小率sfに従ってlv回縮小した縮小画像をI[lv]と表記する。つまり、I=I[0]、I=I[0]である。Iに対するI[lv]の縮小率s(Iに対するI[lv]の縮小率s)は以下の式2で表される。
Figure 0006854629
つまり、Iを縮小率sに従って縮小することでI[lv]が得られ、Iを縮小率sに従って縮小することでI[lv]が得られる。以下では一例として、sf=0.5であるものとするが、sfの値は0より大きく1未満であれば如何なる値であっても良い。なお、I[max_lv](I[max_lv])のサイズは、画像間の動き検出対象の動きが大きいほど小さく設定すべきであるが、処理時間など様々な要素によって応じて最適な設定をすることが望ましい。また、画像の縮小処理の際には、バイキュービック法を用いても良いし、Lanczos 3−lobed法などの方法を用いてもよい。
ステップS403では、制御部399は、変数lvの値にmax_lvを設定する。以下では、I[lv]及びI[lv]を階層lvにおける画像、I[0]及びI[0]は最小階層における画像、I[max_lv]及びI[max_lv]は最大階層における画像と称する場合がある。
ステップS404では、制御部399は、lv<max_lvであるか否かを判断する。この判断の結果、lv<max_lvであれば、処理はステップS405に進み、lv=max_lvであれば、処理はステップS408に進む。
ステップS408では、OF初期化部303は、階層max_lvにおけるオプティカルフローの全ての要素の値を0に初期化する。以下では、階層lvにおけるオプティカルフローをOF[lv]と表記する。OF[lv]の解像度はI[lv]、I[lv]の解像度と同じである。そして処理はステップS409に進む。
一方、ステップS405でOF拡大部307は、最近求めたオプティカルフロー(OF[lv+1])の各要素の値(動きベクトルの成分値)を1/sf倍してから、該オプティカルフローの縦横サイズを1/sf倍に拡大したOF’[lv+1]を生成する。拡大では、RGB画像の拡大においてR、G,Bそれぞれの成分を独立して処理するのと同様に、動きベクトルのX成分、Y成分を独立して処理する。この拡大には、バイリニア補間を用いても良いし、バイキュービック法等の他の方法を採用しても良い。OF[lv+1]における要素u(x,y)、v(x,y)とOF’[lv+1]における要素u’(x,y)、v’(x,y)との関係を以下の式3に示す。
Figure 0006854629
ステップS406では、画像変形部305は、I[0]〜I[max_lv]のうちI[lv]を選択し、該選択したI[lv]内の各画素を、OF’[lv+1]に従って移動(ワーピング)させた画像I2w[lv]を生成する。つまり、以下の式4に示す如く、I[lv]内の画素位置(x、y)における画素を、OF’[lv+1]内のu’(x,y)、v’(x,y)によって規定される動きベクトルの方向に、該動きベクトルの長さだけ移動させた画像I2w[lv]を生成する。
Figure 0006854629
ステップS407では、OF平滑化部304は、ステップS405で生成したオプティカルフローOF’[lv+1]に対して平滑化フィルタを適用して、平滑化処理済みのオプティカルフローOF”[lv+1]を生成する。平滑化フィルタとしては、例えば、平均フィルタや、ジョイントバイラテラルフィルタなどを用いることができる。ジョイントバイラテラルフィルタを用いる場合は、I[lv]の画素値を参照することで、被写体境界の再現性を向上させることができる。また、メディアンフィルタなどの非線形フィルタを用いてもよい。つまり、オプティカルフローOF’[lv+1]を平滑化できる手法であれば、如何なる手法を用いても構わない。本実施形態では、フィルタサイズが7x7の平均フィルタを用いてオプティカルフローOF’[lv+1]に対する平滑化処理を行うものとする。
ステップS409では、エネルギー関数生成部306は、I[lv]とI2w[lv]との差分である第1の差分と、OF’[lv+1]とOF”[lv+1]との差分である第2の差分と、に基づく関数であるエネルギー関数を生成する。ステップS409における処理の詳細については後述する。
ステップS410では、OF算出部308は、ステップS409で生成したエネルギー関数を極小化するようなオプティカルフローOF[lv]を生成する。ステップS410における処理の詳細については後述する。
ステップS411では、制御部399は、変数lvの値が0であるか否かを判断する。この判断の結果、変数lvの値が0であれば、OF算出部308は、ステップS410で生成したオプティカルフローOF[0]を、画像Iを基準とする画像Iのオプティカルフローとして出力する。OF算出部308によるオプティカルフローOF[0]の出力先については画像処理装置100内のメモリや外部のメモリ、外部の装置など、特定の出力先に限るものではない。そして図4のフローチャートに従った処理は終了する。
一方、変数lvの値が0ではない場合には、処理はステップS412に進む。ステップS412では、制御部399は、変数lvの値を1つデクリメントし、その後、処理はステップS404に進む。
次に、上記のステップS409における処理の詳細について説明する。エネルギー関数を最小化するようにオプティカルフローを推定する方法は、一般的に勾配法と呼ばれる。基本となるのはデータタームと呼ばれる項であり、データタームは以下の式で定義される。
Figure 0006854629
fは、IとI2wとの差分を求める関数であり、IとI2wとの差の絶対値を求める関数であっても良いし、IとI2wとの差の二乗を求める関数であっても良い。勾配法のエネルギー関数は主に2種類に分類することができる。
一つ目は、データタームをあるパッチの範囲で総和をとったものをエネルギー関数と定義するタイプであり、以下の式6で定義される。以下、この手法をパッチベースの手法と呼称する。パッチベースの手法では、画素ごとに以下のエネルギー関数を最小にするオプティカルフローを算出する。
Figure 0006854629
ここで、Bは画素位置(x、y)を中心としたパッチ領域を表しており、例えば7×7のパッチを考えた場合、はx−3からx+3まで、qはy−3からy+3までの整数値をとる。この手法の利点は、ρとして例えば差分2乗を採用した場合、最小となるオプティカルフローを解析的に求めることができる点である。一方で、推定されるオプティカルフローは正解から外れた値になることが多く、高精度に推定することが困難である。
二つ目は、上記の問題を解決するために、拘束条件として、オプティカルフローを滑らかにするための平滑化項を追加する。エネルギー関数は以下の式で定義されることが多い。
Figure 0006854629
ここで、λは適当な重み係数であり、∇u,∇vはオプティカルフローの勾配である。パッチベースの手法では、Σはパッチ領域内の和をとっていたが、ここでは全体画素の和をとる。gは平滑化項であり、TVノルムや、L2ノルムを用いることが多い。勾配は、例えば以下の式で算出される。
Figure 0006854629
平滑化項を用いた手法では、式7で表されるような画像全体のエネルギー関数を最小化するように全ての画素のオプティカルフローを最適化する。以下、この手法をエネルギー最適化法と呼称する。エネルギー最適化法は、精度のよいオプティカルフローを求めることができる一方で、最適化を行うために反復計算が必要となり、演算量が増大するという課題がある。
本実施形態では、パッチベースの手法、エネルギー最適化法のそれぞれの問題点に鑑み、パッチベースの手法に擬似的な平滑化項を追加してエネルギー最適化法の考え方を取り入れつつ、パッチベースの手法とほぼ同等の演算量でオプティカルフローを推定する。本実施形態に係るエネルギー関数を以下の式9に示す。
Figure 0006854629
式9のエネルギー関数は、画素位置(x、y)に対するものである。なお、式9ではφ()についてはパッチ内の総和を計算していないが、ρ()と同様にパッチ内の総和を計算しても良い。式9におけるρ()、φ()を、以下の式10に示す。
Figure 0006854629
式10においてp、qは、画素位置(x、y)を中心とするパッチ領域内のx座標値、y座標値を示す。ステップS410では、E(x、y)が極小(最小)となるdu[lv](x、y)、dv[lv](x、y)を、画像I[lv]に対応するオプティカルフローにおいて、画像I[lv]中の画素位置(x、y)に対する動きベクトルのX成分及びY成分として求める。
ρ(p、q)は、画像I2w[lv]中の画素位置(p、q)からdu[lv](x、y)、dv[lv](x、y)によって規定される動きベクトルの分だけ移動させた画素位置の画素値と、画像I[lv]中の画素位置(p、q)における画素値との差の二乗を表している。なお、ρ()は、差の二乗に限らず、差の絶対値等、「画像I2w[lv]中の画素位置(p、q)からdu[lv](x、y)、dv[lv](x、y)によって規定される動きベクトルの分だけ移動させた画素位置の画素値と、画像I[lv]中の画素位置(p、q)における画素値との差」を表す様々な式を適用しても構わない。
式10においてφ(x、y)は、OP’[lv+1]におけるX成分であるu’(x、y)にdu[lv](x、y)を加えたものと、OP”[lv+1]におけるX成分であるuave(x、y)と、の差の二乗と、OP’[lv+1]におけるY成分であるv’(x、y)にdv[lv](x、y)を加えたものと、OP”[lv+1]におけるY成分であるvave(x、y)と、の差の二乗と、の和を表している。なお、φ()は、差の二乗和に限らず、例えば、前者の差の絶対値と後者の差の絶対値との和であっても良い。
エネルギー関数にφ()の項を加えることで、uave(x、y)、vave(x、y)はもともとのオプティカルフローに比べて滑らかで、外れ値が抑制された結果となるので、u’とuaveの値が乖離しないように推定値が算出され、この項が平滑化項としての役割を果たす。これはvについても同様である。
上記の式9においてλ=0の場合は、階層型のLucasーKanade法に帰着する。ここで、上記のdu、dvが小さいとして、ρをテイラー展開すると、以下の式11が得られる。
Figure 0006854629
ここで、I2xwは、式4におけるIの代わりに画像I2wのx方向の1次偏微分画像、式4におけるI2wの代わりにI2xwを当てはめて計算されるものである。同様に、I2ywは、式4におけるIの代わりに画像I2wのy方向の1次偏微分画像、式4におけるI2wの代わりにI2ywを当てはめて計算されるものである。画像Iの1次偏微分は、例えば以下の式12で求めることが可能である。
Figure 0006854629
それ以外にも、水平、垂直のSobelフィルタなどを作用させて求めてもよい。求めるべき解析解du、dvは以下の連立方程式を満たす。なお、式14、15は階層によらないため、階層表記は省いている。
Figure 0006854629
Figure 0006854629
Figure 0006854629
式13の両辺にAの逆行列をかけることで、du、dvを求めることができる。このように、本実施形態によれば、前の階層のオプティカルフローに対して平滑化した結果と、算出するオプティカルフローとの差分が小さくなるようにエネルギーを極小化することで、演算量を増加させることなく、精度を向上させることができる。
[第2の実施形態]
以下では、第1の実施形態との差分について重点的に説明し、以下で特に触れない限りは第1の実施形態と同様であるものとする。第1の実施形態では、エネルギー関数に使用するオプティカルフローは、現階層lvよりも1つ上の階層(lv+1)におけるオプティカルフローを使用した。これに対し、本実施形態では、現フレームよりも1つ前のフレームの画像について求めたオプティカルフローをエネルギー関数に使用する。以下では、現フレームの画像Iに対するオプティカルフローを、該フレームよりも1フレーム前の画像Iについて求めたオプティカルフローを使用して求める例について説明する。
本実施形態に係る画像処理装置の機能構成例、画像Iに対するオプティカルフローを求めるために画像処理装置100が行う処理について、図5のブロック図、図6のフローチャートを用いて説明する。なお、図5において、図3に示した機能部と同じ機能部には同じ参照番号を付しており、該機能部に係る説明は省略する。また、図6のフローチャートにおいて、図4に示した処理ステップと同じ処理ステップには同じステップ番号を付しており、該処理ステップに係る説明は省略する。なお、図6に示したフローチャートに従った処理は、1枚の画像に対するオプティカルフローを求めるための処理である。然るに、例えば、複数枚の画像のそれぞれについてオプティカルフローを求める場合には、該複数の画像のそれぞれについて図6のフローチャートに従った処理を行えばよい。
ステップS601では、OF変形部501は、画像Iについて過去に求めたオプティカルフローを、画像Iのオプティカルフローを生成するためのエネルギー関数に使用する参考オプティカルフローに変換する。この変換方法には様々な方法が考えられる。
例えば、画像Iについて求めたオプティカルフローは、画像Iよりも1フレーム前の画像Iに対する画像Iのオプティカルフローであり、該オプティカルフローの要素は、画像Iからの動きベクトルを表している。ここで、フレーム間の時間間隔が充分に短い場合、画像中のオブジェクトの動きは等速直線運動と見なせるため、画像Iについて求めたオプティカルフローの各要素を、該オプティカルフローの要素が示す動きベクトルに従って移動させたものを、上記の参考オプティカルフローとして使用することができる。この移動により、参考オプティカルフローには、動きベクトルが格納されない要素が存在する可能性があるため、そのような要素はフィルタ処理などによって周囲の動きベクトルから穴埋めする。
なお、画像Iを基準とした画像Iのオプティカルフローが得られている場合には、このオプティカルフローの要素の符号を逆にしたものを上記の参考オプティカルフローとしても良い。
参考オプティカルフローを得るための処理について、図7を例にとり説明する。画像701〜703はそれぞれ画像I〜Iであり、何れの画像にも人物203及び家204が含まれている。
画像Iを基準とした画像Iにおける人物203の動きベクトル713を該動きベクトル713の分だけ移動させた動きベクトルを、画像Iを基準とした画像Iにおける人物203の動きベクトル707として求める。もし、画像Iを基準とした画像Iにおける人物203の動きベクトル705が得られている場合には、これを反転させたものを動きベクトル707としても良い。画像Iを基準とした画像Iにおける家204の動きベクトル704を該動きベクトル704の分だけ移動させた動きベクトルを、画像Iを基準とした画像Iにおける家204の動きベクトル708として求める。もし、画像Iを基準とした画像Iにおける家204の動きベクトル706が得られている場合には、これを反転させたものを動きベクトル708としても良い。このようにして求めた動きベクトル707,708が上記の参考オプティカルフローとなる。
図6に戻って、次にステップS602では、OF平滑化部304は、ステップS601で生成した参考オプティカルフローに対して、第1の実施形態で説明したオプティカルフローに対する平滑化処理を行う。
ステップS603では、OF縮小部502は、ステップS602で平滑化処理を施した参考オプティカルフローの各要素の値をsflv倍してから、該参考オプティカルフローの縦横サイズをsflv倍に縮小したオプティカルフローを生成する。
そして以降は、ステップS603で生成したオプティカルフローのu(x,y)、v(x,y)をuave(x,y)、vave(x,y)として使用してエネルギー関数を構成する以外は第1の実施形態と同様である。なお、図6のフローチャートでは、全ての階層について、ステップS603で生成したオプティカルフローのu(x,y)、v(x,y)をuave(x,y)、vave(x,y)として使用してエネルギー関数を構成している。しかし、特定の階層、例えば、最終回層以外の階層については第1の実施形態と同様にしてエネルギー関数を構成し、最終階層については、ステップS603で生成したオプティカルフローのu(x,y)、v(x,y)をuave(x,y)、vave(x,y)として使用してエネルギー関数を構成しても良い。
なお、第1の実施形態と同様に、前の階層のオプティカルフローを平滑化した結果をエネルギー関数に追加してもよい。ステップS603で生成したオプティカルフローのu(x,y)、v(x,y)のそれぞれをuave1(x、y)、vave1(x、y)、OP”[lv+1]におけるX成分、Y成分のそれぞれをuave2(x、y)、vave2(x、y)とすると、エネルギー関数は以下のようになる。
Figure 0006854629
Figure 0006854629
なお、式16ではφ()、φ()についてはパッチ内の総和を計算していないが、ρ()と同様にパッチ内の総和を計算しても良い。本実施形態によれば、オプティカルフローの時間的な連続性も考慮しつつ、演算量を抑えて高精度にオプティカルフローを算出することができる。なお、図4,6に示した全てのステップは上記の説明の通り上から順に実行されることに限らず、一部の処理ステップで順番を入れ替えても良いし、一部の処理ステップを並列に実行しても良い。
[第3の実施形態]
第1,2の実施形態で説明したオプティカルフローの生成処理によって生成されたオプティカルフローは様々な用途に装用できる。オプティカルフローを算出することで、動いている被写体の特定や、カメラが動いている方向を推定することができる。このことにより、被写体の追跡や動画の防振など様々な用途に適用することが可能である。また、撮影した画像や動画に対し、映像効果を付与することも可能である。例えば、撮影した画像に対して、オプティカルフローの方向にブラーを付けることで、動きのある被写体を強調した躍動感のある画像を生成することができる。以下では、動画の防振と、ある特定のフレームに対して動きに基づいたブラーを付与する場合について説明する。
動画の防振にオプティカルフローを用いる画像処理装置の機能構成例について、図8のブロック図を用いて説明する。図8の画像処理装置800は、上記の画像処理装置100内に納められた装置であっても良い。
OFデータ取得部801は、上記の画像処理装置100が生成して出力したオプティカルフローを取得する。OFデータ取得部801によるオプティカルフローの取得方法については特定の取得方法に限らない。例えば、画像処理装置100から無線若しくは有線のネットワーク、若しくは有線と無線の組み合わせによるネットワークを介してオプティカルフローを取得しても良いし、外部の記憶装置に格納されているオプティカルフローを取得しても良い。
算出部802は、OFデータ取得部801が取得したオプティカルフローを用いてグローバルモーションを算出する。グローバルモーションとは、画像全体に対して最も支配的な動きの方向であり、一つのベクトルで表される。グローバルモーションは、例えばオプティカルフローのヒストグラムを生成して最頻値を取得することにより算出することが可能である。なお、画像全体の動きを算出することができれば、別の手法で算出しても構わない。
平滑部803は、グローバルモーションの時間方向の高周波成分を除去する。これは、時間方向に対する、動画の振動を除去するためである。例えば、時間方向にフーリエ変換して高周波を除去したり、時間方向に平滑化フィルタを作用させることで実現することができる。
防振部804は、各時刻のグローバルモーションに基づいて、画像データ取得部805が取得する各フレームの画像のうち対応する時刻の画像を電子的にシフトして位置合わせする。
次に、動きに基づいたブラーを付与する画像処理装置の機能構成例について、図9のブロック図を用いて説明する。図9の画像処理装置900は、上記の画像処理装置100内に納められた装置であっても良い。図9において図8と同じ機能部には同じ参照番号を付しており、該機能部に係る説明は省略する。なお、以下では処理対象の画像を画像1として説明する。
画像変形部901は、k=1〜n−1としたとき、OFデータ取得部801が取得したオプティカルフロー内の各要素(動きベクトルの成分)をk/n倍した動きベクトルを用いて、式4に従って画像1をシフトしたシフト画像を生成する。例えば、n=10とすると、k=1〜9に対して、n−1枚分のシフトしたシフト画像を生成する。画像合成部902は、n−1枚の変形画像と画像1とを画素毎に合成した合成画像を生成し、該合成画像の各画素の画素値をnで除算することにより、ブラーが付与された画像を生成する。動きの大きな被写体ほどオプティカルフローベクトルが大きく、静止している被写体は、オプティカルフローベクトルが0になるため、動きが大きいほどブラーが発生した画像が生成される。本実施形態では、nとして固定値を用いたが、画像中のオプティカルフローの長さの最大値から決めてもよい。例えば、オプティカルフローの長さの最大値が50pixであれば、n=50とする。また、ユーザーがブラーの強度を指定できる場合は、強度に応じてオプティカルフローをリスケールし、同様の処理を行ってもよい。例えば、ブラーの効果を強くする場合は、元のオプティカルフローを何倍かして処理を行えばよい。本実施形態によれば、オプティカルフローを用いることで、カメラ機能を高速化・高精度化したり、映像効果を付与することが可能になる。また、異なる撮像装置で同一時刻に撮影された画像の場合は、オプティカルフローから被写体の奥行きを算出することも可能である。
[第4の実施形態]
図3,5に示した画像処理装置100を構成する各機能部は何れもハードウェアで実装しても良いが、ソフトウェア(コンピュータプログラム)で実装しても良い。後者の場合、このコンピュータプログラムを実行可能なプロセッサを有するコンピュータ装置は、上記の画像処理装置100に適用することができる。画像処理装置100に適用可能なコンピュータ装置のハードウェア構成例について、図1のブロック図を用いて説明する。
CPU101は、RAM102やROM103に格納されているコンピュータプログラムやデータを用いて各種の処理を実行する。これによりCPU101は、コンピュータ装置全体の動作制御を行うと共に、画像処理装置100が行うものとして上述した各処理を実行若しくは制御する。
RAM102は、ROM103や記憶部104からロードされたコンピュータプログラムやデータを格納するためのエリアを有する。更にRAM102は、CPU101が各種の処理を実行する際に用いるワークエリアを有する。このようにRAM102は、各種のエリアを適宜提供することができる。ROM103には、書き換え不要の設定データやブートプログラムなどが格納されている。
記憶部104は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。記憶部104には、OS(オペレーティングシステム)や、画像処理装置100が行うものとして上述した各処理をCPU101に実行させるためのコンピュータプログラムやデータが保存されている。記憶部104に保存されているコンピュータプログラムには、図3,5に示した各機能部の機能をCPU101に実行させるためのコンピュータプログラムが含まれている。また、記憶部104に保存されているデータには、上記の説明において既知の情報として説明したものや、処理対象となる画像や動画像のデータが含まれている。記憶部104に保存されているコンピュータプログラムやデータは、CPU101による制御に従って適宜RAM102にロードされ、CPU101による処理対象となる。
なお、記憶部104としては、ハードディスクドライブ装置以外にも、CD−ROMやDVD−ROM等の記憶媒体から情報を読み取る機器、フラッシュメモリ、USBメモリなどのメモリ装置を適用することもできる。
出力インターフェース106には表示装置109が接続されている。表示装置109は、CRTや液晶画面、プロジェクタ装置などにより構成されており、CPU101による処理結果を画像や文字などでもって表示もしくは投影することができる。
CPU101、RAM102、ROM103、記憶部104、出力インターフェース106は何れもバス107に接続されている。なお、図1に示した構成は、画像処理装置100に適用可能なコンピュータ装置の構成の一例に過ぎない。
また、図8,9に示した画像処理装置800,900の各機能部についても同様で、何れもハードウェアで実装しても良いが、ソフトウェア(コンピュータプログラム)で実装しても良い。後者の場合、このコンピュータプログラムを実行可能なプロセッサを有するコンピュータ装置は、上記の画像処理装置800,900として機能するので、このコンピュータ装置に図1に示した構成を適用可能であることはいうまでもない。また、画像処理装置800や画像処理装置900を画像処理装置100内に納めた場合には、図1のコンピュータ装置は、画像処理装置800や画像処理装置900の機能をも実現することになる。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
301:画像データ取得部 302:画像縮小部 303:OF初期化部 304:OF平滑化部 305:画像変形部 306:エネルギー関数生成部 307:OF拡大部 308:OF算出部

Claims (11)

  1. 第1の画像及び該第1の画像を規定の縮小率で再帰的に縮小した複数の縮小画像を要素とする第1の集合と、第2の画像及び該第2の画像を前記規定の縮小率で再帰的に縮小した複数の縮小画像を要素とする第2の集合と、を取得する取得手段と、
    前記第2の集合に属する画像を画像サイズが小さい順に選択する選択手段と、
    前記選択手段が今回選択した選択画像の各画素を、前記選択手段が前回選択した画像に対応するオプティカルフローを該選択画像のサイズに応じて変換した変換済みオプティカルフローに従って移動させた移動済み選択画像を生成する生成手段と、
    前記第1の集合に属する画像のうち前記選択画像と同サイズの画像と前記移動済み選択画像との差分である第1の差分と、前記変換済みオプティカルフローと該変換済みオプティカルフローに対して平滑化処理を施した処理済みオプティカルフローとの差分である第2の差分と、に基づく評価値を極小化するオプティカルフローを、前記選択画像に対応するオプティカルフローとして求める計算手段と、
    前記計算手段が求めた、前記第2の画像に対応するオプティカルフローを出力する出力手段と
    を備えることを特徴とする画像処理装置。
  2. 前記選択手段が前回選択した画像に対応するオプティカルフローを該選択画像のサイズに応じて変換した変換済みオプティカルフローは、前記選択手段が前回選択した画像に対応するオプティカルフローの要素である動きベクトルの成分値、及び前記選択手段が前回選択した画像に対応するオプティカルフローのサイズ、を前記選択画像のサイズに応じて変換したオプティカルフローであることを特徴とする請求項1に記載の画像処理装置。
  3. 第1の画像及び該第1の画像を規定の縮小率で再帰的に縮小した複数の縮小画像を要素とする第1の集合と、第2の画像及び該第2の画像を前記規定の縮小率で再帰的に縮小した複数の縮小画像を要素とする第2の集合と、を取得する取得手段と、
    前記第2の集合に属する画像を画像サイズが小さい順に選択する選択手段と、
    前記選択手段が今回選択した選択画像の各画素を、前記選択手段が前回選択した画像に対応するオプティカルフローを該選択画像のサイズに応じて変換した変換済みオプティカルフローに従って移動させた移動済み選択画像を生成する生成手段と、
    前記第1の集合に属する画像のうち前記選択画像と同サイズの画像と前記移動済み選択画像との差分である第1の差分と、前記変換済みオプティカルフローと前記第1の画像に対するオプティカルフローを前記選択画像のサイズに応じて変換してから平滑化処理を施した処理済みオプティカルフローとの差分である第2の差分と、に基づく評価値を極小化するオプティカルフローを、前記選択画像に対応するオプティカルフローとして求める計算手段と、
    前記計算手段が求めた、前記第2の画像に対応するオプティカルフローを出力する出力手段と
    を備えることを特徴とする画像処理装置。
  4. 前記平滑化処理には、平均フィルタ、ジョイントバイラテラルフィルタ、メディアンフィルタ、何れかが用いられていることを特徴とする請求項1乃至3の何れか1項に記載の画像処理装置。
  5. 更に、
    前記出力手段が出力したオプティカルフローを用いて画像中のグローバルモーションを求め、該求めたグローバルモーションに基づいて画像をシフトする防振手段を備えることを特徴とする請求項1乃至4の何れか1項に記載の画像処理装置。
  6. 更に、
    前記出力手段が出力したオプティカルフローから複数のオプティカルフローを生成し、画像を該複数のオプティカルフローを用いてシフトした複数のシフト画像を生成し、該画像及び複数のシフト画像を合成する手段を備えることを特徴とする請求項1乃至4の何れか1項に記載の画像処理装置。
  7. 前記第1の画像及び前記第2の画像のそれぞれは、複数台の撮像装置において同時刻、若しくは互いに異なる時刻に撮像された画像であることを特徴とする請求項1乃至6の何れか1項に記載の画像処理装置。
  8. 前記第1の画像及び前記第2の画像のそれぞれは、単一の撮像装置において互いに異なる時刻に撮像された画像であることを特徴とする請求項1乃至6の何れか1項に記載の画像処理装置。
  9. 画像処理装置が行う画像処理方法であって、
    前記画像処理装置の取得手段が、第1の画像及び該第1の画像を規定の縮小率で再帰的に縮小した複数の縮小画像を要素とする第1の集合と、第2の画像及び該第2の画像を前記規定の縮小率で再帰的に縮小した複数の縮小画像を要素とする第2の集合と、を取得する取得工程と、
    前記画像処理装置の選択手段が、前記第2の集合に属する画像を画像サイズが小さい順に選択する選択工程と、
    前記画像処理装置の生成手段が、前記選択工程で今回選択した選択画像の各画素を、前記選択工程で前回選択した画像に対応するオプティカルフローを該選択画像のサイズに応じて変換した変換済みオプティカルフローに従って移動させた移動済み選択画像を生成する生成工程と、
    前記画像処理装置の計算手段が、前記第1の集合に属する画像のうち前記選択画像と同サイズの画像と前記移動済み選択画像との差分である第1の差分と、前記変換済みオプティカルフローと該変換済みオプティカルフローに対して平滑化処理を施した処理済みオプティカルフローとの差分である第2の差分と、に基づく評価値を極小化するオプティカルフローを、前記選択画像に対応するオプティカルフローとして求める計算工程と、
    前記画像処理装置の出力手段が、前記計算工程で求めた、前記第2の画像に対応するオプティカルフローを出力する出力工程と
    を備えることを特徴とする画像処理方法。
  10. 画像処理装置が行う画像処理方法であって、
    前記画像処理装置の取得手段が、第1の画像及び該第1の画像を規定の縮小率で再帰的に縮小した複数の縮小画像を要素とする第1の集合と、第2の画像及び該第2の画像を前記規定の縮小率で再帰的に縮小した複数の縮小画像を要素とする第2の集合と、を取得する取得工程と、
    前記画像処理装置の選択手段が、前記第2の集合に属する画像を画像サイズが小さい順に選択する選択工程と、
    前記画像処理装置の生成手段が、前記選択工程で今回選択した選択画像の各画素を、前記選択工程で前回選択した画像に対応するオプティカルフローを該選択画像のサイズに応じて変換した変換済みオプティカルフローに従って移動させた移動済み選択画像を生成する生成工程と、
    前記画像処理装置の計算手段が、前記第1の集合に属する画像のうち前記選択画像と同サイズの画像と前記移動済み選択画像との差分である第1の差分と、前記変換済みオプティカルフローと前記第1の画像に対するオプティカルフローを前記選択画像のサイズに応じて変換してから平滑化処理を施した処理済みオプティカルフローとの差分である第2の差分と、に基づく評価値を極小化するオプティカルフローを、前記選択画像に対応するオプティカルフローとして求める計算工程と、
    前記画像処理装置の出力手段が、前記計算工程で求めた、前記第2の画像に対応するオプティカルフローを出力する出力工程と
    を備えることを特徴とする画像処理方法。
  11. コンピュータを、請求項1乃至8の何れか1項に記載の画像処理装置の各手段として機能させるためのコンピュータプログラム。
JP2016228295A 2016-11-24 2016-11-24 画像処理装置、画像処理方法 Active JP6854629B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016228295A JP6854629B2 (ja) 2016-11-24 2016-11-24 画像処理装置、画像処理方法
US15/818,006 US10818018B2 (en) 2016-11-24 2017-11-20 Image processing apparatus, image processing method, and non-transitory computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016228295A JP6854629B2 (ja) 2016-11-24 2016-11-24 画像処理装置、画像処理方法

Publications (3)

Publication Number Publication Date
JP2018084997A JP2018084997A (ja) 2018-05-31
JP2018084997A5 JP2018084997A5 (ja) 2020-01-16
JP6854629B2 true JP6854629B2 (ja) 2021-04-07

Family

ID=62238457

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016228295A Active JP6854629B2 (ja) 2016-11-24 2016-11-24 画像処理装置、画像処理方法

Country Status (1)

Country Link
JP (1) JP6854629B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109816611B (zh) * 2019-01-31 2021-02-12 北京市商汤科技开发有限公司 视频修复方法及装置、电子设备和存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003067752A (ja) * 2001-08-28 2003-03-07 Yazaki Corp 車両周辺監視装置
CN1575479A (zh) * 2001-10-25 2005-02-02 皇家飞利浦电子股份有限公司 用于运动估算的单元和方法以及设有这种运动估算单元的图像处理设备
JP5547739B2 (ja) * 2008-10-15 2014-07-16 イノベイティブ テクノロジー ディストリビューターズ エルエルシー オプティカルフローの決定のためのデジタル処理方法およびシステム

Also Published As

Publication number Publication date
JP2018084997A (ja) 2018-05-31

Similar Documents

Publication Publication Date Title
US10818018B2 (en) Image processing apparatus, image processing method, and non-transitory computer-readable storage medium
JP5385969B2 (ja) 画像の超解像のための方法及び装置
CA2745380C (en) Devices and methods for processing images using scale space
US11062464B2 (en) Image processing apparatus, method, and storage medium to derive optical flow
KR20070093995A (ko) 움직임 벡터 연산 방법과 이 방법을 이용한 손 떨림 보정장치, 촬상 장치, 및 동영상 생성 장치
JP2007000205A (ja) 画像処理装置及び画像処理方法並びに画像処理プログラム
JP2006311480A (ja) 補間フレーム生成方法、補間フレーム生成装置および補間フレーム生成プログラム
JP7032871B2 (ja) 画像処理装置及び画像処理方法、プログラム、記憶媒体
JP5225313B2 (ja) 画像生成装置、画像生成方法、及びプログラム
KR101987079B1 (ko) 머신러닝 기반의 동적 파라미터에 의한 업스케일된 동영상의 노이즈 제거방법
CN105205787A (zh) 用于对ldr视频序列进行动态范围扩展的方法和设备
JP6904842B2 (ja) 画像処理装置、画像処理方法
JP2019079114A (ja) 画像処理装置、画像処理方法およびプログラム
JP2016213574A (ja) 画像処理装置及び画像処理装置の制御方法
CN108271022A (zh) 一种运动估计的方法及装置
JP6854629B2 (ja) 画像処理装置、画像処理方法
JP6938282B2 (ja) 画像処理装置、画像処理方法及びプログラム
JP2012169701A (ja) 画像処理装置、画像処理方法及びプログラム
JP7005338B2 (ja) 情報処理装置及びその制御方法及びプログラム
JP2005157847A (ja) 画像処理装置および処理方法
JP6708131B2 (ja) 映像処理装置、映像処理方法及びプログラム
JP2015148965A (ja) 画像処理装置、撮像装置及び画像処理方法
JP2018180964A (ja) 画像処理装置及び画像処理方法
KR101097779B1 (ko) 대칭성 기반 움직임 벡터 추정을 사용한 움직임이 보상된 영상 보간 기법
CN109754370B (zh) 图像去噪方法及装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191125

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191125

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210215

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210316

R151 Written notification of patent or utility model registration

Ref document number: 6854629

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151