(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-19
(45)【発行日】2022-12-27
(54)【発明の名称】画像処理装置、方法及びプログラム
(51)【国際特許分類】
G06T 15/20 20110101AFI20221220BHJP
G06T 15/40 20110101ALI20221220BHJP
G06T 19/00 20110101ALI20221220BHJP
【FI】
G06T15/20 500
G06T15/40
G06T19/00 A
(21)【出願番号】P 2020012384
(22)【出願日】2020-01-29
【審査請求日】2022-01-07
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100092772
【氏名又は名称】阪本 清孝
(74)【代理人】
【識別番号】100119688
【氏名又は名称】田邉 壽二
(72)【発明者】
【氏名】陳 軍
(72)【発明者】
【氏名】渡邊 良亮
【審査官】村松 貴士
(56)【参考文献】
【文献】特開2000-268188(JP,A)
【文献】特開2020-013216(JP,A)
【文献】特開2018-163467(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 1/00 - 19/20
(57)【特許請求の範囲】
【請求項1】
多視点画像より生成される複数オブジェクトの3次元モデルに対して、当該3次元モデルの面要素を指定されるカメラ視点の画像平面上へと投影して、各画素位置について、当該投影された面要素のうち距離が最も近いオブジェクトの識別子を与えた分離マップを生成する第1生成部と、
前記3次元モデルの面要素を前記指定されるカメラ視点の画像平面上へと投影して、各画素位置について、前記分離マップで与えられる識別子とは異なるオブジェクトの面要素が投影されている場合にオクルージョン発生の旨を識別することで、オクルージョンマップを生成する第2生成部と、を備えることを特徴とする画像処理装置。
【請求項2】
前記第2生成部では、前記3次元モデルの面要素を前記指定されるカメラ視点の画像平面上へと投影して、各画素位置について、前記分離マップで与えられる識別子とは異なるオブジェクトの面要素が投影されている場合に、当該異なるオブジェクトに関してオクルージョン発生の旨を識別し、且つ、前記分離マップで与えられる識別子に対応するオブジェクトについてはオクルージョンが発生しない旨を識別することで、オクルージョンマップを生成することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記多視点画像と前記3次元モデルとを用いて、ユーザ指定される仮想視点において前記3次元モデルを描画することで自由視点画像を生成する画像生成部をさらに備え、
前記画像生成部は、描画対象となるオブジェクトを前記多視点画像のいずれかの視点画像のテクスチャを用いて描画する際に、当該視点画像に対応するものとして前記第2生成部で生成されたオクルージョンマップを参照し、当該オブジェクトに関してオクルージョン判定されている領域のテクスチャは描画に用いないことを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記3次元モデルの面要素は多角形として与えられ、各辺には有向線分として当該多角形を1周する向きが、前記3次元モデルの内部から外部に向かう当該多角形の法線方向と対応する向きとして定められており、
前記第1生成部及び前記第2生成部では、面要素の各有向線分を前記指定されるカメラ視点の画像平面へと投影し、各画素位置において、当該投影された面要素の全ての有向線分から見て当該画像位置が右手側又は左手側のいずれかで統一されている場合に、当該面要素は当該画素位置に対して投影されているものとして判定することを特徴とする請求項1ないし3のいずれかに記載の画像処理装置。
【請求項5】
多視点画像より生成される複数オブジェクトの3次元モデルに対して、当該3次元モデルの面要素を指定されるカメラ視点の画像平面上へと投影して、各画素位置について、当該投影された面要素のうち距離が最も近いオブジェクトの識別子を与えた分離マップを生成する第1生成段階と、
前記3次元モデルの面要素を前記指定されるカメラ視点の画像平面上へと投影して、 各画素位置について、前記分離マップで与えられる識別子とは異なるオブジェクトの面要素が投影されている場合にオクルージョン発生の旨を識別することで、オクルージョンマップを生成する第2生成段階と、を備えることを特徴とする画像処理方法。
【請求項6】
多視点画像より生成される複数オブジェクトの3次元モデルに対して、当該3次元モデルの面要素を指定されるカメラ視点の画像平面上へと投影して、各画素位置について、当該投影された面要素のうち距離が最も近いオブジェクトの識別子を与えた分離マップを生成する第1生成段階と、
前記3次元モデルの面要素を前記指定されるカメラ視点の画像平面上へと投影して、 各画素位置について、前記分離マップで与えられる識別子とは異なるオブジェクトの面要素が投影されている場合にオクルージョン発生の旨を識別することで、オクルージョンマップを生成する第2生成段階と、をコンピュータに実行させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、多視点画像から生成される3次元モデルに関するオクルージョン判定を行う画像処理装置、方法及びプログラムに関する。
【背景技術】
【0002】
多視点映像から自由視点映像を生成する技術は、メディア視聴に利用することでユーザに対して没入感や臨場感を与えることが可能である。通常の固定視点の映像(予め決まったカメラによる映像)とは異なり、非特許文献3や4でも開示されているように、自由視点映像においてはユーザがインタラクティブに視点を選択することが可能であり、通常であればカメラを配置できない位置での新たな映像を得ることが可能である。
【0003】
自由視点映像の生成においては、3次元メッシュや点群による3次元モデル生成がなされる。カメラ撮影されるオブジェクトの近似的な3次元形状を得る手法として、非特許文献1ではシルエットによる3次元形状復元が提案され、3次元空間をボクセルに区切って離散化しておき、各ボクセルについて、複数のカメラ映像のシルエットが全て投影されるかを調べ、全て投影されるボクセルが3次元形状を占めるものであると判定する。ボクセル集合として3次元形状が得られるとさらに、非特許文献2の手法によりマーチングキューブ法を適用し、ポリゴンモデル化された3次元形状を得て、これをレンダリングして自由視点映像を得る。当該ポリゴンモデルの各要素について、レンダリング結果としての自由視点映像の品質を向上させるために、各カメラから見える位置にあるか否かを調べる(すなわち、オクルージョン判定を行う)必要がある。
【0004】
オクルージョン判定に関して、特許文献1ではGPU(グラフィックス処理装置)等による並列処理が可能な手法として、逆投影及び距離判定を用いる。具体的に、複数の3次元モデルをそれぞれ画像平面に投影し、2つ以上の3次元モデルが同じ画素位置に投影されている領域を重なり領域として得る。3次元モデルのうち、この重なり領域に投影される部分は、潜在的にオクルージョンを発生させうる部分であると推定される。重なり領域ごとに、投影される元となっている3次元モデルの部分を、異なる3次元モデルごとに求め、カメラ中心との平均距離が最小となる3次元モデル部分が可視でありオクルージョンを発生させないものと判定し、これより距離が大きいその他の3次元モデル部分はオクルージョンを発生させるものと判定する。
【0005】
オクルージョン判定に関してまた、非特許文献4の手法ではレイキャスティング法により、光線に対して初めて交差する3次元モデル表面が可視であるものと判定する、具体的に、カメラ中心と画像平面上のターゲット画素位置とを結ぶことで光線を定める。3次元空間に予め定められているボクセル(3次元モデルはこのボクセル集合として与えられる)に対して、当該定めた光線が入射するボクセルと出射するボクセルとを求める。こうして、入射位置のボクセルは可視と判定され、これよりも奥にある出射位置までのボクセルはオクルージョン判定される。
【先行技術文献】
【特許文献】
【0006】
【非特許文献】
【0007】
【文献】A Laurentini. The visual hull concept for silhouette-based image understanding. IEEE transactions on pattern analysis and machine intelligence, vol. 16, no. 2, pp. 150-162, 1994.
【文献】W Lorensen, H Cline. Marching cubes: A high resolution 3d surface construction algorithm, ACM siggraph computer graphics. ACM, 1987, vol. 21, pp
【文献】J Chen, R Watanabe, K Nonaka, T Konno, H Sankoh, S Naito. A Fast Free-viewpoint Video Synthesis Algorithm for Sports Scenes. 2019 IEEE/RSJ International Conference on Intelligent Robots and Systems.
【文献】H Sankoh, S Naito, K Nonaka, H Sabirin, J Chen. Robust billboard-based, free-viewpoint video synthesis algorithm to overcome occlusions under challenging outdoor sport scenes. Proceedings of the 26th ACM international conference on Multimedia, 1724-1732.
【文献】J Chen, K Nonaka, H Sankoh, R Watanabe, H Sabirin, S Naito. Efficient Parallel Connected Component Labeling with a Coarse-to-Fine Strategy. IEEE Access 6, 55731-55740.
【発明の概要】
【発明が解決しようとする課題】
【0008】
以上のような従来技術によるオクルージョン判定には課題があった。
【0009】
特許文献1の手法では、ある程度の並列処理が可能であるが、効率性に改善の余地があった。特許文献1の手法では、3次元モデルの点について、同一オブジェクトに属する点ごとに重なり領域への投影を行うことで平均距離を計算する必要があるが、こうした点の個数は未知である(その都度、変動しうるものである)ため、動的なメモリ割り当てによりバッファサイズを調整する等の追加処理が必要となる場合があった。さらに、潜在的にオクルージョンを発生させうる3次元モデル部分の点の数も未知であることも、並列処理の効率性に影響を与えうるものであった。
【0010】
非特許文献4のレイキャスティング法によるオクルージョン判定では原理的な問題として、光線スキャンのストライド幅をどう決めるかという問題があった。すなわち、ストライド幅を小さくすればオクルージョン判定の精度は上がるが、計算量が増えて効率が下がり、逆にストライド幅を大きくすれば計算量は減るが、オクルージョン判定の精度は下がってしまうという問題があった。さらに、自己オクルージョン(self-occlusion)の影響が大きいという問題もあった。すなわち、ストライド幅を小さくすると、同一モデルの奥の側が、手前側にある表面によってオクルージョン判定される場合があり、逆にストライド幅を小さくすると、このような自己オクルージョンは無視できたとしても、異なるモデル同士でのオクルージョン判定に失敗する場合があった。
【0011】
上記従来技術の課題に鑑み、本発明は並列処理に適した効率的な手法でロバストにオクルージョン判定を行うことができる画像処理装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
上記目的を達成するため、本発明は、画像処理装置であって、多視点画像より生成される複数オブジェクトの3次元モデルに対して、当該3次元モデルの面要素を指定されるカメラ視点の画像平面上へと投影して、各画素位置について、当該投影された面要素のうち距離が最も近いオブジェクトの識別子を与えた分離マップを生成する第1生成部と、前記3次元モデルの面要素を前記指定されるカメラ視点の画像平面上へと投影して、各画素位置について、前記分離マップで与えられる識別子とは異なるオブジェクトの面要素が投影されている場合にオクルージョン発生の旨を識別することで、オクルージョンマップを生成する第2生成部と、を備えることを特徴とする。また、前記画像処理装置に対応する画像処理方法及びプログラムであることを特徴とする。
【発明の効果】
【0013】
本発明によれば、投影処理により分離マップとオクルージョンマップを得ることで、効率的且つロバストに、オクルージョン判定結果としてのオクルージョンマップを得ることができる。
【図面の簡単な説明】
【0014】
【
図1】一実施形態に係る画像処理装置の機能ブロック図である。
【
図2】画像処理装置の各部並びにモデル生成部及び画像生成部の動作を説明するための模式例を示す図である。
【
図3】第1生成部での第1処理としての投影判定の模式例を示す図である。
【
図4】第2生成部で得るオクルージョンマップを模式的に説明するための図である。
【
図6】一般的なコンピュータにおけるハードウェア構成例を示す図である。
【発明を実施するための形態】
【0015】
図1は、一実施形態に係る画像処理装置の機能ブロック図である。画像処理装置10は、第1生成部11及び第2生成部12を備える。
図1に示されるように、画像処理装置10での入力データ(3次元モデル)を用意するための構成としてのモデル生成部1と、画像処理装置10での出力データ(オクルージョンマップ)を用いてさらに追加処理を行うための構成としての画像生成部2とが、画像処理装置10の外部構成として存在している。
図1に示される実施形態とは別の実施形態として、これらモデル生成部1及び/又は画像生成部2が、外部構成ではなく画像処理装置10に備わる実施形態も可能である。
【0016】
画像処理装置10の各部並びにモデル生成部1及び画像生成部2の動作は以下の通りである。
図2は、画像処理装置10の各部並びにモデル生成部1及び画像生成部2の動作を説明するための模式例をデータD1~D4として列挙したものであり、以下の説明において適宜、この
図2の模式例を参照する。
【0017】
モデル生成部1では、互いに異なる視点で同一シーンを撮影する複数のN台(N≧2)のカメラによる画像としての多視点画像(各カメラ視点に対応したN枚の画像セット)を用いて、この多視点画像に撮影されている複数のオブジェクトについての3次元モデルを生成する。モデル生成部1が当該生成した3次元モデルは、第1生成部11及び画像生成部2へと入力される。
【0018】
なお、多視点画像を撮影しているN台のカメラの各々に関して、その投影行列Tk
34(k番目(k=1,2,…,N)のカメラに関して、3次元世界座標からこのカメラの2次元画像座標へと投影する変換を行う行列であり、当該カメラの外部パラメータ及び内部パラメータに相当する情報を有するもの)は既知であり、カメラの撮影している3次元世界座標における位置{Ci
x, Ci
y, Ci
z}(及び向き)も既知であるものとする。(既知でない場合は、任意の既存手法により、マーカー等を撮影した画像を用いてカメラキャリブレーションを行う等により、これらの情報を求めるようにしてよい。)
【0019】
モデル生成部1で生成する3次元モデルはポリゴンモデルであり、当該3次元モデルを表現する情報として、当該3次元モデルに含まれる複数のオブジェクトのうちi番目(i=1,2,…,M;Mはオブジェクトの総数)のオブジェクトOB(i)のj番目(j=1,2,…,K(i);K(i)はオブジェクトOB(i)を構成する面要素の総数)の面要素としての3角形TR(j)の3頂点{pi
j1,pi
j2,pi
j3}(3次元空間内の3頂点の座標)の情報が与えられているものとする。(従って、3次元モデル内の各オブジェクトを区別する情報として、オブジェクトOB(i)に関してID(識別子)として、i番目のオブジェクトである旨の情報も与えられているものとする。)
【0020】
図2ではデータD1として、3角形の面要素で構成される3次元モデルの模式例が示されている。また、データD2として、3次元モデルの各オブジェクトにIDが付与されており互いに識別されていることの模式例が、IDが異なるオブジェクトを異なる濃淡で描くことによって示されている。(なお、
図2に示される例は、スポーツシーンを撮影した多視点画像より、複数のオブジェクトとして、複数の選手や1つのボールが抽出されることで、3次元モデルが構成される例である。)
【0021】
面要素としての3角形の3頂点{pi
j1,pi
j2,pi
j3}には、オブジェクトの表面法線方向(オブジェクトの内部から外部へ向けて出射する向きの法線方向)が定義されるように、所定向き(例えば時計回りの向き)で3頂点の順番が定義されているものとする。例えば、3頂点を当該定義される順番、すなわち「pi
j1→pi
j2→pi
j3→pi
j1」の順番で時計回りに回ることにより、3角形の辺上においてこの3角形を1周する場合に、右手側(法線方向に垂直に立って当該3角形の辺上を歩いて1周する仮想的な人物を考えた場合の右手側)に3角形の内部が位置するような向きとして、オブジェクトの内部から外部に向かう法線方向が定義されるように、3頂点{pi
j1, pi
j2,pi
j3}の当該順番が定義されているものとする。
【0022】
モデル生成部1では、以上のように各要素情報が定義される3次元モデルを、多視点画像を入力として任意の既存手法によって生成してよい。例えば、非特許文献3の背景差分法でオブジェクトを前景シルエットとして抽出し、非特許文献1及び2の手法により点群及びメッシュ表現としてオブジェクト形状を計算し、非特許文献5の手法により、3次元モデル内のオブジェクトにIDを付与するようにしてよい。
【0023】
第1生成部11では、以下の第1処理及び第2処理を行うことで分離マップを得て、当該分離マップを第2生成部12へと出力する。この分離マップとは、ユーザ指定されるカメラ視点の画像平面の各画素位置において、最も位置が近いものとして投影される3次元モデルのオブジェクトIDを紐づけたマップである。
【0024】
第1生成部11では第1処理として、モデル生成部1で得られた3次元モデルを構成する各面要素{pi
j1,pi
j2,pi
j3}を、ユーザ指定されるカメラ視点(モデル生成部1に入力された多視点画像を撮影したN台のカメラのうちのいずれかのカメラ視点)の画像平面へと投影し、当該画像平面上の各画素に関して、いずれの面要素{pi
j1,pi
j2,pi
j3}が投影されたかの情報を取得する。(画素によっては、面要素が全く投影されない結果となる場合や、1つ以上の面要素が投影される場合もありうる。)
【0025】
ここで、各面要素{pi
j1,pi
j2,pi
j3}を構成する3次元空間内の3点の画像平面上への投影は、ユーザ指定されるカメラ(k番目とする)について既知である前述の投影行列Tk
34を用いて行うことができる。前述の通り、面要素{pi
j1,pi
j2,pi
j3}の3点には対応する3角形を回る向き(例えば時計回りに回る場合に、3角形内部が常に右手側に位置するような向き)が定められており、この向きの情報は画像平面へ投影された後にもそのまま保持されている。従って、画像平面上の各画素について、各面要素{pi
j1,pi
j2,pi
j3}の投影位置に形成される3角形を所定の向きに回った際に、常に同じ側(例えば右側)に当該画素が存在していれば、当該面要素{pi
j1,pi
j2,pi
j3}が当該画素へと投影されている旨を判定することができる。
【0026】
図3は、第1生成部11での上記第1処理としての投影判定の模式例を示す図である。ある面要素{p
i
j1,p
i
j2,p
i
j3}を画像平面上に投影した3角形が有向線分l
1→l
2→l
3であった場合に、例EX1の画素P
1は、これら有向線分l
1,l
2,l
3の全てから見て右手側に位置しているため当該3角形の内部にある、すなわち、面要素{p
i
j1,p
i
j2,p
i
j3}が投影されている旨の判定を得ることができる。一方、例EX2の画素P
2は、これら有向線分l
1,l
2,l
3の全てに関して右手側に位置しているわけではない(有向線分l
1,l
2からは右手側に位置しているが、有向線分l
3からは左手側に位置している)ため、当該3角形の外部にある、すなわち、面要素{p
i
j1,p
i
j2,p
i
j3}が投影されていない旨の判定を得ることができる。
【0027】
なお、ある画素とある面要素とについて
図3のような判定を行う際に、有向線分から見て当該画素が全て左手側に位置していたとする場合は、当該面要素はオブジェクトの裏側にあるため、(すなわち、当該指定される視点のカメラから見て、3次元モデルの裏側に隠れた状態にあるため、)上記判定と同様にして、投影されていない旨の判定を得ることができる。例えば、
図1の例EX1の有向線分の向きが逆で、l
1→l
3→l
2であったとする場合には画素P
1が当該投影された面要素の内部に位置しているが、3次元空間ではオブジェクト裏側にあるため、投影されていない旨の判定を得ることができる。別の実施形態として、裏側であっても投影されている旨の判定を得るようにしてもよく、この場合、有向線分で構成されるある面要素について、ある画素の位置が右手側又は左手側のいずれかに統一されていれば、投影されている旨の判定を得るようにすればよい。
【0028】
次いで、第1生成部11では第2処理として、上記第1処理による投影結果を用いることにより、画像平面の各画素I(Iは画素の識別子とする)について、そのデプス値dI(3次元モデルの深度値)と、3次元モデルを構成する複数のオブジェクトのうちいずれのオブジェクトが最も近く、当該デプス値diに対応するものであるかの情報と、を紐づけた分離マップを得て、この分離マップを第2生成部12へと出力する。
【0029】
具体的に第2処理ではまず、以下の式(1)により画素Iのデプス値dIを求める。
【0030】
【0031】
ここで、nは第1処理において当該画素Iに投影された3角形(面要素{pi
j1,pi
j2,pi
j3})の総数であり、dI
J(J=1,2,…,n)は、投影された面要素J(Jは面要素の識別子とする)のデプス値である。すなわち、式(1)により、各画素Iについて、投影されたn個の面要素のうち、最小のデプス値となるものを、当該画素Iのデプス値として求めることができる。なお、面要素のデプス値については、面要素{pi
j1,pi
j2,pi
j3}の3頂点と、カメラ中心との距離をそれぞれd(pi
j1),d(pi
j2),d(pi
j3)として、これらの平均値{d(pi
j1)+d(pi
j2)+d(pi
j3)}/3として計算すればよい。
【0032】
第1生成部11での第2処理ではさらに、上記の式(1)により最小デプス値が得られた面要素に紐づいているオブジェクトのIDを、当該画素Iに紐づけることで、分離マップを得る。なお、第1処理で面要素が全く投影されなかったような画素Iについては、その旨(デプス値の該当なし又は無限大の旨と、対応オブジェクトなしの旨)を紐づけることにより、分離マップを得るようにすればよい。
【0033】
図2の例ではデータD3が、分離マップを得るために式(1)で求めるデプス値のマップを模式的に示しており、白色に近いほどデプスが大きく、黒色に近いほどデプスが小さいものとして、グレースケール画像の形式により示している。
図2の例ではデータD4が、データD3に対応するものとして、第1生成部11で得られる分離マップを示しており、異なるオブジェクトIDが付与された領域ごとに異なる濃淡を付与することで、オブジェクトIDを模式的に示している。なお、データD3及びD4において完全な白の領域はデプスが無限大で、投影された面要素が存在せず、オブジェクトIDも付与されていない領域を表している。
【0034】
第2生成部12では、以下の第1処理及び第2処理を行うことで、第1生成部11で得られた分離マップよりオクルージョンマップを得て、画像処理装置10からの出力とする。
【0035】
第2生成部12での第1処理は、第1生成部11での第1処理と同様であり、ユーザ指定されるカメラ視点(第1生成部11での第1処理で指定したのと同一のカメラ視点)の画像平面に、モデル生成部1で得られた3次元モデルを構成する各面要素{pi
j1,pi
j2,pi
j3}を投影し、各画素位置について、いずれの面要素が投影されたかの情報を取得する。
【0036】
次いで、第2生成部12では第2処理として、上記第1処理による投影結果を第1生成部11で得た分離マップと画素位置ごとに照合し、分離マップで与えられているオブジェクトIDとは異なるIDのオブジェクトが1個でも第1処理において投影されていた場合に、当該画素位置にオクルージョンが発生する旨の識別を与え、否定の場合(分離マップで与えられているオブジェクトIDと同一IDのオブジェクトのみが投影されている場合)には当該画素位置にオクルージョンが発生しない旨の識別を与えることにより、オクルージョンマップを得る。
【0037】
ここで、オクルージョンマップにおいてオクルージョンが発生する旨の識別は、分離マップで与えられるオブジェクトIDとは異なるIDの1つ以上のオブジェクト(第1処理で投影されたオブジェクト)と紐づけて識別される。当該識別されることでオクルージョンが発生するとされた画素位置においても、分離マップで与えられるオブジェクトIDについては、オクルージョンは発生しない旨が紐づけられることにより、オクルージョンマップが得られる。(具体例は
図4及び
図5を参照して後述する。)
【0038】
なお、分離マップにおいて1つもオブジェクトが投影されていない領域は、オクルージョンマップにおいても同様に、1つもオブジェクトが投影されてない領域となる。オクルージョンマップは、少なくとも1つのオブジェクトが投影されている領域においてさらに、投影されているオブジェクトが1つのみであってオクルージョンがない領域と、投影されているオブジェクトが2つ以上であってオクルージョンがある領域とを区別したマップとして構成される。
【0039】
すなわち、オクルージョンマップはユーザ指定のカメラ視点の画像平面上の各画素位置において、以下の情報を紐づけたマップとして第2生成部12により生成されるものである。(具体例は
図4及び
図5を参照して後述する。)
(1) 当該画素位置は、3次元モデルのオブジェクトが投影される位置であるか否か
(2) 上記(1)が肯定(投影位置である)の場合、オクルージョンを発生させうる位置であるか否か
(3) 上記(2)が否定(オクルージョンを発生させうる画素位置ではない)の場合、投影されている単一のオブジェクトのID
(4) 上記(2)が肯定(オクルージョンを発生させうる画素位置である)の場合、分離マップで与えられるオブジェクトIDに関して、最もカメラ位置に近いものでありオクルージョンを発生させないオブジェクトである旨の情報と、分離マップで与えられるオブジェクトIDとは別IDのオブジェクトで投影されているものに関して、オクルージョンが発生しているオブジェクトである旨の情報
【0040】
図4は、第2生成部12で得るオクルージョンマップを模式的に説明するための図である。
図4では、画像Pはユーザ指定したカメラ視点の画像(モデル生成部1へ入力される多視点画像のうち指定されたユーザ視点のもの)の例であり、3人のスポーツ選手が3つのオブジェクトOB1,OB2,OB3としてモデル生成部1において3次元モデルとして得られている場合に、画像平面上に投影された結果としてそれぞれ領域R1,R2,R3が得られる。(なお、各領域R1,R2,R3はそれぞれ個別に拡大したものとして示し、白色又は灰色の部分で当該領域が定義されるものである。黒色の領域は各領域R1,R2,R3の外部の背景部分に該当する。)
【0041】
これら3人のスポーツ選出としての3つのオブジェクトOB1,OB2,OB3においては、画像Pより見て取ることができるように、OB2の選手の足元の側に相当する部分がOB1の選手(当該選手の頭部付近)によって遮蔽されてオクルージョンが発生しており、その他の部分ではオクルージョンは発生していない。このようなオクルージョンの発生状況に関する情報が、以下のように、オクルージョンマップに記録されて得られることとなる。
【0042】
すなわち、この場合、オクルージョンマップにおいて、以下の情報が与えられることとなる。
・オブジェクトOB1に関して領域R1の全体が投影結果として対応しており、且つ、オクルージョンを発生させない領域である。
・オブジェクトOB2に関して領域R2の全体が投影結果として対応しており、領域R2は2つの部分領域R21及びR22からなり、部分領域R21(白色部分)はオブジェクトOB2のみが投影されることでオクルージョンが発生しない領域であり、部分領域R22(灰色部分)はオブジェクトOB2よりも手前側(カメラに近い側)にオブジェクトOB1が投影されていることから、オブジェクトOB2に関してオクルージョンが発生する領域である。
・オブジェクトOB3に関して領域R3の全体が投影結果として対応しており、且つ、オクルージョンを発生させない領域である。
【0043】
図5は、
図4の領域R1に関する補足説明図である。上記で領域R2について説明した通り、この
図5に示されるように領域R1は領域R2との重複部分として部分領域R22(R22=R1∩R2)を含むものであり、この部分領域R22はオブジェクトOB1及びOB2の2つが投影される領域である。この部分領域R22では、オブジェクトOB1は最もカメラに近い側にあるため、オクルージョンを発生させないものとして識別され、オブジェクトOB2はオブジェクトOB1よりも奥側(カメラよりも遠い側)にあるため、オクルージョンを発生させるものとして識別され、オクルージョンマップに記録されている。
【0044】
以上まとめると、
図4及び
図5の例では、画像Pに関して以下のような情報で構成されるオクルージョンマップが得られる。
・領域R10(
図5に示される、領域R1から部分領域R22を除いた領域)ではオブジェクトOB1のみが投影され、オクルージョンが発生しない。
・領域R22ではオブジェクトOB1及びOB2の2個が投影され、オブジェクトOB1に関してオクルージョンは発生しないが、オブジェクトOB2に関してオクルージョンが発生する。
・領域R21ではオブジェクトOB2のみが投影され、オクルージョンが発生しない。
・領域R3ではオブジェクトOB3のみが投影され、オクルージョンが発生しない。
・以上の各領域R10,R22,R21,R3以外の領域には、オブジェクトが投影されていない。
【0045】
以上、本実施形態の画像処理装置10によれば、GPU等による並列処理に適した処理で、オクルージョンマップを得ることができる。
図3の例で説明したような、面要素を構成する有向線分から見た右手側/左手側の判定による投影結果判定は並列処理に適しており、動的なメモリ割り当ての手間も不要である。また、本実施形態の画像処理装置10では、特許文献1で用いていた距離判定閾値(ボクセルの可視/不可視を判定するための閾値判定)のような、事前設定を要する閾値判定も不要であり、自己オクルージョンに対してもロバストに処理を行うことができる。すなわち、距離で判定する場合、人物等のオブジェクトの正面と背面とに距離差が存在し、距離閾値が適切でなければ自己オクルージョンがオブジェクト間のオクルージョンとして誤検出される可能性があるのに対し、本発明の一実施形態では正面でも背面でもオブジェクトのIDは共通であるため、自己オクルージョンに対してロバストに処理を行うことができる。
【0046】
以下、画像処理装置10の実施形態の種々の追加例等に関して説明する。
【0047】
(1) 画像処理装置10より出力されるオクルージョンマップは様々な用途で利用することができる。一例として、ユーザ指定される仮想視点における自由視点画像を生成するのに、オクルージョンマップを利用してもよい。
図1の画像生成部2は当該用途の一例としての、自由視点画像を生成する機能部である。
【0048】
画像生成部2は、モデル生成部1が3次元モデルを生成するのに用いたN台のカメラの多視点画像と、モデル生成部1が生成した3次元モデルと、画像処理装置10が出力したオクルージョンマップと、を入力として用いて、ユーザ指定される仮想視点の位置における自由視点画像を生成する。当該生成に関しては、任意の既存手法を用いてよい。
【0049】
画像生成部2ではオクルージョンマップを参照することで、ユーザ指定される仮想視点の位置におけるオブジェクトを、多視点画像のN枚の画像のうち仮想視点に近いと判定される少なくとも1つのカメラ視点の画像のテクスチャを用いて描画することができる。この際、描画しようとしているオブジェクトに関して、各カメラ視点の画像におけるテクスチャとオクルージョンマップとを照合し、当該オブジェクトに関してオクルージョン判定がある場合には描画に利用せず、オクルージョン判定のない近接カメラの画像のテクスチャを利用して描画することができる。
【0050】
例えば、
図4及び
図5の例であれば、画像Pのテクスチャを用いてオブジェクトOB2を描画する場合には、オブジェクトOB2の投影領域である領域R21及びR22のうち、領域R21(オブジェクトOB2のみが投影されている領域R21)は描画に用いてもよいが、領域R22(オブジェクトOB2よりも手前側にオブジェクトOB1が投影されている領域R22)は描画に用いないようにする判断を、当該画像Pに対応するオクルージョンマップを参照して行うことが可能である。
【0051】
(2) モデル生成部1、画像処理装置10及び画像生成部2では、入力としての多視点画像を多視点映像における各時刻のフレーム画像としてリアルタイムで読み込み、リアルタイムで3次元モデル、オクルージョンマップ及び自由視点映像を生成するようにしてもよい。すなわち、以上説明してきた各部の処理は、このようなリアルタイムの各時刻における共通の処理とすることができる。
【0052】
(3) 第1生成部11及び第2生成部12では、上記で説明したように同じ投影処理をそれぞれ個別に行うことで、中間結果をメモリに保存することなく高速に計算を行うことが可能である。対比例となる一実施形態として、第1生成部11で分離マップを生成する際に、式(1)により最小値として求める際の候補となるn個のデプス値dI
J(J=1,2,…,n)を中間結果としてメモリに保存しておくことで、第2生成部12ではこのメモリ保存されている中間結果を参照して投影処理を行うことなく、オクルージョンマップを生成することも可能であるが、メモリに関する処理が必要となることで処理時間が増える可能性がある。
【0053】
一方、一実施形態では第1生成部11(及び後述の第2生成部12)では以下の疑似コードで示される同じ投影処理を個別に行うことで、上記の中間結果をメモリ保存する処理を必要とすることなく、高速に分離マップ及びオクルージョンマップを生成することができる。
[1] dI=100000
[2] For J = 1:n
[3] Compute dI
J,
[4] dI=min{ dI
J, dI },
[5] End
【0054】
上記の疑似コードにおいて[1]~[5]は説明のための行番号であり、[1]行目では第1生成部11で求めるデプス値dIの初期値として十分に大きなダミー値を設定しており、[2]行目と[5]行目とはこれら行が囲む[3],[4]行目の処理をJ=1,2,…,nについて繰り返し実施することを表す。[3]行目では投影処理によりデプス値dI
Jを計算し、[4]行目では当該計算されたデプス値dI
Jと現在のデプス値dIとを比較して、これらのうちより小さい値へと現在のデプス値dIを更新する。J=1,2,…,nの全てについて繰り返してこの[3],[4]による更新処理を行い、最終的に得られているデプス値dIが、分離マップ(及びデプスマップ)を構成するものとなる。
【0055】
第2生成部12でも同様に、以下の疑似コードで示される投影処理を行えばよい。[6]~[11]は説明のための行番号である。
[6] dI=分離マップの値
[7] For J = 1:n
[8] Compute dI
J,
[9] if (dI
J == dI) Output("dI
Jはオクルージョン無し"),
[10] else Output("dI
Jはオクルージョン有り"),
[11] End
【0056】
[6]行目ではデプス値dIに第1生成部11で得た分離マップのデプス値を設定してから、[7],[11]行で囲まれる[8],[9],[10]行目の処理をJ=1,2,…,nについて繰り返し実施する。[8]行目では投影処理によりデプス値dI
Jを計算し、[9]行目では当該計算されたデプス値dI
Jと設定されているデプス値dIとを比較し、等しかった場合にデプス値dI
Jが対応するオブジェクトは「オクルージョン無し」である旨を出力し、[9]行目の比較結果が等しくなかった場合(計算されたデプス値dI
Jの方が設定デプス値dIよりも大きい場合)は[10]行目においてデプス値dI
Jが対応するオブジェクトは「オクルージョン有り」である旨を出力する。以上をJ=1,2,…,nについて繰り返し実施して、中間結果をメモリ保存することなくオクルージョンマップを生成することができる。
【0057】
(4) モデル生成部1で得る3次元モデルの面要素は3角形として説明したが、3角形に限らず4角形以上の任意の凸多角形が3次元モデルの面要素として含まれていてもよい。
図3で説明したような投影判定についても、3角形の場合と同様に凸多角形においても実施することができる。
【0058】
(5)
図6は、一般的なコンピュータ装置70におけるハードウェア構成の例を示す図である。画像処理装置10の各部並びにモデル生成部1及び画像生成部2の全部又は一部はそれぞれ、このような構成を有する1台以上のコンピュータ装置70として実現可能である。コンピュータ装置70は、所定命令を実行するCPU(中央演算装置)71、CPU71の実行命令の一部又は全部をCPU71に代わって又はCPU71と連携して実行する1つ以上の専用プロセッサ72(GPU(グラフィックス処理装置)や深層学習専用プロセッサ等)、CPU71にワークエリアを提供する主記憶装置としてのRAM73、補助記憶装置としてのROM74、通信インタフェース75、ディスプレイ76、マウス、キーボード、タッチパネル等によりユーザ入力を受け付ける入力インタフェース77と、これらの間でデータを授受するためのバスBSと、を備える。
【0059】
画像処理装置10の各部並びにモデル生成部1及び画像生成部2は、各部の機能に対応する所定のプログラムをROM74から読み込んで実行するCPU71及び/又は専用プロセッサ72によって実現することができる。ここで、表示関連の処理が行われる場合にはさらに、ディスプレイ76が連動して動作し、ネットワーク上でのデータ送受信に関する通信関連の処理が行われる場合にはさらに通信インタフェース75が連動して動作する。
【符号の説明】
【0060】
10…画像処理装置、11…第1生成部、12…第2生成部
1…モデル生成部、2…画像生成部