(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-16
(45)【発行日】2024-12-24
(54)【発明の名称】3Dモデル生成装置、方法及びプログラム
(51)【国際特許分類】
G06T 17/10 20060101AFI20241217BHJP
G06T 7/55 20170101ALI20241217BHJP
【FI】
G06T17/10
G06T7/55
(21)【出願番号】P 2021209904
(22)【出願日】2021-12-23
【審査請求日】2024-02-07
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100092772
【氏名又は名称】阪本 清孝
(74)【代理人】
【識別番号】100119688
【氏名又は名称】田邉 壽二
(72)【発明者】
【氏名】今野 智明
【審査官】鈴木 明
(56)【参考文献】
【文献】特開2018-063693(JP,A)
【文献】米国特許出願公開第2018/0101979(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 17/10
G06T 7/55
(57)【特許請求の範囲】
【請求項1】
カメラ画像に基づいて物体の3Dモデルを生成する3Dモデル生成装置において、
視点の異なる複数のカメラ画像に基づいてボクセルモデルを生成する手段と、
視点の異なる複数のデプスカメラから取得したデプスマップに基づいてボクセルモデルを補正する手段とを具備し、
前記補正する手段は、
ボクセルモデルのボクセルごとに信頼度を計算する手段と、
ボクセルモデルをボクセル単位で、前記信頼度及びデプスマップの対応するデプス値に基づいて除去する手段とを具備したことを特徴とする3Dモデル生成装置。
【請求項2】
前記除去する手段は、信頼度が所定の閾値を下回るボクセルごとに、各デプスカメラへそのカメラパラメータで投影した際のデプスマップ上のデプス値と各デプスカメラまでの距離とを比較し、距離がデプス値を下回るボクセルを除去することを特徴とする請求項1に記載の3Dモデル生成装置。
【請求項3】
前記信頼度を計算する手段は、ボクセルモデルの表面ボクセルごとに信頼度を計算し、
前記除去する手段は、信頼度が所定の閾値を下回って前記距離がデプス値を下回る表面ボクセルを除去することを特徴とする請求項2に記載の3Dモデル生成装置。
【請求項4】
カメラ画像に基づいて物体の3Dモデルを生成する3Dモデル生成装置において、
視点の異なる複数のカメラ画像に基づいてボクセルモデルを生成する手段と、
視点の異なる複数のデプスカメラから取得したデプスマップに基づいてボクセルモデルを補正する手段とを具備し、
前記補正する手段は、
ボクセルモデルの表面ボクセルごとに、当該表面ボクセルを除去すれば代わって表面ボクセルとなる表面ボクセル候補を対応付ける手段と、
表面ボクセル及び表面ボクセル候補の信頼度を計算する手段と、
表面ボクセルごとに、その信頼度TAを前記対応付けられた表面ボクセル候補の信頼度TBと比較し、TAがTBを上回らない表面ボクセルを除去する手段とを具備したことを特徴とする3Dモデル生成装置。
【請求項5】
前記除去する手段は、ボクセルモデルの表面ボクセルごとに、各デプスカメラへそのカメラパラメータで投影した際のデプスマップ上のデプス値と当該デプスカメラまでの距離とを比較し、距離がデプス値を下回る表面ボクセルを除去することを特徴とする請求項4に記載の3Dモデル生成装置。
【請求項6】
前記補正する手段は、表面ボクセルを除去した後のボクセルモデルと除去する前のボクセルモデルとのボクセル数を比較し、ボクセル数差が所定の閾値を下回るまで、表面ボクセルを除去した後のボクセルモデルを除去する前のボクセルモデルと見做して補正を繰り返すことを特徴とする請求項4または5に記載の3Dモデル生成装置。
【請求項7】
前記信頼度を計算する手段は、ボクセルモデルの少なくとも表面ベクトルを含む各ボクセルの各カメラおよび各デプスマップの少なくとも一方への投影位置の画素情報に基づいて信頼度を計算することを特徴とする請求項1ないし6のいずれかに記載の3Dモデル生成装置。
【請求項8】
前記信頼度を計算する手段は、各ボクセルを各カメラへ投影した際の各投影位置の色情報のカメラ間でのばらつきが小さいほど信頼度を高く計算することを特徴とする請求項7に記載の3Dモデル生成装置。
【請求項9】
前記信頼度を計算する手段は、各ボクセルを各カメラへ投影した際の投影位置が物体シルエットのエッジである割合が低いほど信頼度を高く計算することを特徴とする請求項7に記載の3Dモデル生成装置。
【請求項10】
前記信頼度を計算する手段は、各ボクセルを各デプスマップへ投影した際の投影位置のデプス値のカメラ間でのばらつきが小さいほど信頼度を高く計算することを特徴とする請求項7に記載の3Dモデル生成装置。
【請求項11】
前記信頼度を計算する手段は、各ボクセルを各デプスマップへ投影した際の投影位置が物体領域のエッジである割合が低いほど信頼度を高く計算することを特徴とする請求項7に記載の3Dモデル生成装置。
【請求項12】
前記信頼度を計算する手段は、各ボクセルを各デプスカメラの撮影時刻の異なる各デプスマップへ投影した際の投影位置の各時刻におけるデプス値のカメラ間でのばらつきが小さいほど信頼度を高く計算することを特徴とする請求項7に記載の3Dモデル生成装置。
【請求項13】
前記信頼度を計算する手段は、
各ボクセルを各カメラへ投影した際の各投影位置の色情報のカメラ間でのばらつきを指標として信頼度を計算する第1計算手段、
各ボクセルを各カメラへ投影した際の投影位置が物体シルエットのエッジである割合を指標として信頼度を計算する第2計算手段、
各ボクセルを各デプスマップへ投影した際の投影位置のデプス値のカメラ間でのばらつきを指標とし信頼度を計算する第3計算手段、
各ボクセルを各デプスマップへ投影した際の投影位置が物体領域のエッジである割合を指標とし信頼度を計算する第4計算手段、および
各ボクセルを各カメラの撮影時刻の異なる各デプスマップへ投影した際の投影位置の各時刻におけるデプス値のカメラ間でのばらつきに基づいて信頼度を計算する第5計算手段の少なくとも2つを具備し、
複数の指標値に基づいて各ボクセルの信頼度を計算することを特徴とする請求項7に記載の3Dモデル生成装置。
【請求項14】
前記信頼度を計算する手段は、複数の指標値の重み付き平均に基づいて各ボクセルの信頼度を計算することを特徴とする請求項13に記載の3Dモデル生成装置。
【請求項15】
コンピュータがカメラ画像に基づいて物体の3Dモデルを生成する3Dモデル生成方法において、
視点の異なる複数のカメラ画像に基づいてボクセルモデルを生成し、
視点の異なる複数のデプスカメラからデプスマップを取得し、
ボクセルモデルのボクセルごとに信頼度を計算し、
ボクセルモデルをボクセル単位で、前記信頼度及びデプスマップの対応するデプス値に基づいて除去することを特徴とする3Dモデル生成方法。
【請求項16】
コンピュータがカメラ画像に基づいて物体の3Dモデルを生成する3Dモデル生成方法において、
視点の異なる複数のカメラ画像に基づいてボクセルモデルを生成し、
視点の異なる複数のデプスカメラからデプスマップを取得し、
ボクセルモデルの表面ボクセルごとに、当該表面ボクセルを除去すれば代わって表面ボクセルとなる表面ボクセル候補を対応付け、
表面ボクセル及び表面ボクセル候補の信頼度を計算し、
表面ボクセルごとに、その信頼度TAを前記対応付けられた表面ボクセル候補の信頼度TBと比較し、TAがTBを上回らない表面ボクセルをボクセルモデルから除去することを特徴とする3Dモデル生成方法。
【請求項17】
カメラ画像に基づいて物体の3Dモデルを生成する3Dモデル生成プログラムにおいて、
視点の異なる複数のカメラ画像に基づいてボクセルモデルを生成する手順と、
視点の異なる複数のデプスカメラからデプスマップを取得する手順と、
ボクセルモデルのボクセルごとに信頼度を計算する手順と、
ボクセルモデルをボクセル単位で、前記信頼度及びデプスマップの対応するデプス値に基づいて除去する手順と、をコンピュータに実行させることを特徴とする3Dモデル生成プログラム。
【請求項18】
カメラ画像に基づいて物体の3Dモデルを生成する3Dモデル生成プログラムにおいて、
視点の異なる複数のカメラ画像に基づいてボクセルモデルを生成する手順と、
視点の異なる複数のデプスカメラからデプスマップを取得する手順と、
ボクセルモデルの表面ボクセルごとに、当該表面ボクセルを除去すれば代わって表面ボクセルとなる表面ボクセル候補を対応付ける手順と、
表面ボクセル及び表面ボクセル候補の信頼度を計算する手順と、
表面ボクセルごとに、その信頼度TAを前記対応付けられた表面ボクセル候補の信頼度TBと比較し、TAがTBを上回らない表面ボクセルをボクセルモデルから除去する手順と、をコンピュータに実行させることを特徴とする3Dモデル生成プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像から3Dボクセルモデルを生成する3Dモデル生成装置、方法及びプログラムに係り、特に、ボクセルをカメラパラメータに基づいて投影した位置の色情報やデプス情報を考慮した信頼度に基づきモデリング処理を行う3Dモデル生成装置、方法及びプログラムに関する。
【背景技術】
【0002】
カメラ画像を利用して3Dモデルを生成する手法が知られている。例えば、複数のカメラを被写体の周りを囲むように配置して撮影された複数の画像から3Dモデルを生成することができる。
【0003】
非特許文献1には、複数のシルエット画像から3Dモデルの形状を生成する視体積交差法が開示されている。非特許文献2には、3Dモデルの点を各カメラに投影した際のカメラ間での色情報の整合性に基づき、凹みも含めた物体の形状を生成するSpace Carving法が開示されている。
【0004】
特許文献1には、色情報の整合性に加えて、表面の滑らかさを考慮して物体の形状を生成する方法が開示されている。特許文献2には、色情報の整合性により3D空間内の点を削除した後に、3D空間内の対象となる点の周辺の点が存在する密度に応じて、削除してしまった点を復元する技術が開示されている。
【0005】
上記の先行技術はいずれも、複数のカメラ映像から3Dモデルの形状を生成するが、非特許文献3には、デプスセンサから能動的に物体のデプス値を取得して3Dモデルの形状を生成する技術が開示されている。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2012-208759号公報
【文献】特開2018-32938号公報
【非特許文献】
【0007】
【文献】A. LAURENTINI, "The Visual Hull Concept for Silhouette-Based Image Understanding", IEEE Transactions on Pattern Analysis and Machine Intelligence", 150-162, 1994
【文献】K.N.KUTULAKOS, S. M. SEITZ, "A Theory of Shape by Space Carving," International Journal of Computer Vision 38(3), 199-218, 2000
【文献】森ら,"距離画像センサを用いた運動する物体のリアルタイム3次元形状復元", 情報処理学会インタラクション, 2014
【発明の概要】
【発明が解決しようとする課題】
【0008】
非特許文献1の視体積交差法では凸形状のモデルは精度よく復元できるが、凹形状部分は復元できない。非特許文献2では、色の整合性に基づき表面の形状を削っていくことで凹みを表現することはできる。しかしながら、色の整合性のみに頼り表面の形状を削るかを判定するため、閾値によっては凹みなどを十分に表現できず、モデルの品質を低下させてしまう。特許文献1,2も同様である。
【0009】
非特許文献3において、デプスセンサで取得されるデプス値には、物体の反射特性やハードウェアの精度などの影響で一部の領域にノイズが含まれる場合があり、デプス値のみで復元したモデルの品質は当該ノイズの影響により低下してしまう。
【0010】
本発明の目的は、上記の技術課題を解決し、視体積交差法で生成したモデルの各ボクセルに信頼度を付与し、別のアプローチで得られたデプス情報を利用して形状を補正することで、特に凹形状部分のモデル品質を改善する3Dモデル生成装置、方法及びプログラムを提供することにある。
【課題を解決するための手段】
【0011】
上記の目的を達成するために、本発明は、カメラ画像に基づいて物体の3Dモデルを生成する3Dモデル生成装置において、以下の構成を具備した点に特徴がある。
【0012】
(1) 視点の異なる複数のカメラ画像に基づいてボクセルモデルを生成する手段と、視点の異なる複数のデプスカメラから取得したデプスマップに基づいてボクセルモデルを補正する手段とを具備し、前記補正する手段は、ボクセルモデルの少なくとも表面ボクセルごとに信頼度を計算する手段と、ボクセルモデルをボクセル単位で、前記信頼度及びデプスマップの対応するデプス値に基づいて除去する手段とを具備した。
【0013】
(2)視点の異なる複数のカメラ画像に基づいてボクセルモデルを生成する手段と、視点の異なる複数のデプスカメラから取得したデプスマップに基づいてボクセルモデルを補正する手段とを具備し、前記補正する手段は、ボクセルモデルの表面ボクセルごとに、当該表面ボクセルを除去すれば代わって表面ボクセルとなる表面ボクセル候補を対応付ける手段と、表面ボクセル及び表面ボクセル候補の信頼度を計算する手段と、表面ボクセルごとに、その信頼度TAを前記対応付けられた表面ボクセル候補の信頼度TBと比較し、TAがTBを上回らない表面ボクセルを除去する手段とを具備した。
【発明の効果】
【0014】
(1) 3Dボクセルモデルの各ボクセルを評価し、視体積交差法では再現できない物体凹部のノイズや、カメラ数の不足やシルエット抽出の精度不足によるノイズを排除して形状を正確に表現した3Dモデルを生成できるようになる。
【0015】
(2) 生成したボクセルモデルの各表面ボクセルと表面ボクセル候補との信頼度を比較し、表面ボクセル候補の信頼度の方が高ければ当該表面ボクセルを除去する一方、表面ボクセルの信頼度の方が高ければ当該表面ボクセルを維持するので、補正時におけるボクセルの過剰な除去を防止して、より精度の高い3Dボクセルモデルを生成できるようになる。
【図面の簡単な説明】
【0016】
【
図1】本発明の第1実施形態に係る3Dモデル生成装置の主要部の構成を示した機能ブロック図である。
【
図2】第1実施形態の動作を模式的に示した図である。
【
図3】第1実施形態におけるボクセルモデルの補正方法を模式的に示した図である。
【
図4】ボクセル信頼度の第1の計算方法を模式的に示した図である。
【
図5】ボクセル信頼度の第2の計算方法を模式的に示した図である。
【
図6】ボクセル信頼度の第3の計算方法を模式的に示した図である。
【
図7】ボクセル信頼度の第4の計算方法を模式的に示した図である。
【
図8】ボクセル信頼度の第5の計算方法を模式的に示した図である。
【
図9】ボクセル信頼度の第6の計算方法を模式的に示した図である。
【
図10】ボクセルモデルの補正手順を示したフローチャート(その1)である。
【
図11】ボクセルモデルの補正手順を示したフローチャート(その2)である。
【
図12】本発明の第2実施形態に係る3Dモデル生成装置の主要部の構成を示した機能ブロック図である。
【
図13】第2実施形態の動作を模式的に示した図である。
【
図14】第2実施形態の動作の概要を示したフローチャートである。
【
図15】第2実施形態の動作を詳細に示したフローチャート(その1)である。
【
図16】第2実施形態の動作を詳細に示したフローチャート(その2)である。
【
図17】第2実施形態の動作を詳細に示したフローチャート(その3)である。
【発明を実施するための形態】
【0017】
以下、図面を参照して本発明の実施の形態について詳細に説明する。
図1は本発明の第1実施形態に係る3Dモデル生成装置の主要部の構成を示した機能ブロック図であり、
図2はその動作を模式的に示した図である。
【0018】
本発明の3Dモデル生成装置は、3Dモデル生成部1および3Dモデル補正部2を主要な構成とし、視点の異なる複数のカメラcから取得したRBG画像を用いて被写体(物体)の3Dボクセルモデルを生成する。更に、視点の異なる複数のデプスカメラdまたはデプスセンサ(以下、デプスカメラdで総称する)から取得したデプスマップを用いて3Dボクセルモデルを補正する。カメラcとデプスカメラdとは一体型でも、あるいは
図2(a)に示すように分離していても良く、視点の位置や台数も任意である。
【0019】
前記3Dモデル生成部1において、シルエット画像生成101は、カメラごとに物体(前景領域)のシルエットを背景差分法などで抽出してシルエット画像を生成する。モデル生成部102は、
図2(b)に示すように、各シルエット画像を視体積交差法に適用して物体の3DボクセルモデルvAを生成する。
【0020】
本実施形態では、3D空間をボクセル単位で区切り、視体積交差法により各ボクセルvを各カメラへそのカメラパラメータを用いて投影する。その結果、全てのカメラでシルエットの内側と判定されたボクセルvには物体がある(On)と見做し、また1つ以上のカメラでシルエットの外側と判定されたボクセルvに物体がない(Off)と見做す。全てのボクセルvに対して同様の処理を行い、On判定されたボクセルvの塊が3Dボクセルモデルと認識される。
【0021】
前記3Dモデル補正部2は、
図2(b),(c)に示すように、視体積交差法によるモデリング時にノイズ等の影響により、特に凹部を正確にモデリングできなかったために物体よりも大きく生成されたボクセルモデルvAの一部をボクセル単位で除去する補正を行い、補正用ボクセルモデルvCを出力モデルとする。
【0022】
前記3Dモデル補正部2において、第1信頼度計算部201は、
図3(a)に示すようにボクセルモデルvAの表面に露出するボクセル(以下、表面ボクセルと表現する場合もある)ごとに各カメラ視点でのオクルージョンを判定し、少なくとも一つのカメラによりオクルージョンではないと判定されたボクセルvごとに信頼度TAを計算する。全てのカメラでオクルージョンと判定されたボクセルvはオブジェクトの表面に露出しない内側ボクセルとして信頼度の計算対象外とされる。ただし、内側ボクセルも補正(除去)対象とするのであれば、その信頼度も同様に計算できる。
【0023】
図4は、ボクセル信頼度TAの第1の計算方法を模式的に示した図である。第1信頼度計算部201は、ボクセルモデルvAの各表面ボクセルvを各カメラへそのカメラパラメータを用いて投影し、投影位置の各画素の色情報(例えば、RGB値)を指標として、その統計値に基づいて各ボクセルvの信頼度TAを算出する。
【0024】
本実施形態では、ボクセルvごとに各カメラcでの投影位置のRGB値とRGB空間の原点とのユークリッド距離dcおよびその平均μを次式(1),(2)により求め、さらにカメラcごとに次式(3)に基づいて標準偏差σを求める。
【0025】
【0026】
ここで、Cはカメラの台数、pc (x,y)R,pc (x,y)G,pc (x,y)Bはカメラcの投影位置のRGB値、qR、qG、qBはRGB空間の原点のRGB値である。信頼度TAは下限閾値をTHL、上限閾値をTHHとして次式(4),(5),(6)により計算する。
【0027】
【0028】
図4の例では、同図(a)に示すように、ボクセルv1の各カメラへの投影位置のRGB値は全て同一なのに対して、ボクセルv2の各カメラへの投影位置のRGB値は、同図(b)に示したように同一ではない。その結果、ボクセルv1,v2の信頼度TAは、同図(c)に示すようにそれぞれ「1.0」,「0.3」と計算される。
【0029】
図5は、ボクセル信頼度TAの第2の計算方法を模式的に示した図である。第1信頼度計算部201は、ボクセルモデルvAの各表面ボクセルvを各カメラへそのカメラパラメータを用いて投影し、投影位置がシルエット画像のエッジ領域であるか否かの統計値に基づいて当該ボクセルvの信頼度を算出する。
【0030】
シルエット画像の特性として、シルエットのエッジ付近では誤って前景と判断される可能性が高くなることがある。そのため、本実施形態ではエッジ付近に投影されるボクセルの信頼度は低く、エッジ付近以外に投影されるボクセルの信頼度は高くなるように各ボクセルの信頼度TAが計算される。
【0031】
シルエット画像では、画素値が白であれば物体が存在する領域(On)、黒であれば物体が存在しない領域(Off)とすることができる。On領域の各画素について、本実施形態では注目画素の周囲N近傍(例えば8近傍)にOff領域があるか否かを判定する。N近傍内にOff領域がない画素はエッジ領域ではないと判定し、Off領域がある画素はエッジ領域と判定する。
【0032】
投影するデプスマップが複数ある場合は、デプスマップごとに算出された信頼度の平均値などを当該ボクセルの信頼度とすることができる。注目するボクセルviの信頼度TAは、ボクセルviを各カメラcへそのカメラパラメータで投影した位置の画素x, yがエッジか否かを表す判定式をf、カメラの台数をCとすれば次式(7),(8),(9)で表すことができる。
【0033】
【0034】
信頼度TAは0.0から1.0の範囲となるが、所定の閾値THBinより大きい場合にTA=1.0、小さい場合にTA=0.0のように2値化してもよい。また、各カメラの平均値の代わりに多数決としてもよい。多数決で同数の場合は、TA = 1.0とするなどしてもよい。
【0035】
図5の例では、同図(a)に示すように、ボクセルv1の各カメラへの投影位置は全てエッジ領域ではないのに対して、ボクセルv2の投影位置は、同図(b)に示したように全てエッジ領域となっている。その結果、ボクセルv1,v2の信頼度TAは、同図(c)に示すようにそれぞれ「1.0」,「0.0」と計算される。
【0036】
図6は、ボクセル信頼度TAの第3の計算方法を模式的に示した図である。第1信頼度計算部201は、ボクセルモデルvAの表面ボクセルvを各デプスカメラへそのカメラパラメータを用いて投影する。本実施形態では、デプスマップの投影位置のデプス値の集合に対する統計値に基づいて、デプス値のばらつきが大きければ信頼度TAを低いと判定し、ばらつきが小さければ高いと判定する。
【0037】
ボクセルvの信頼度T(0.0-1.0の範囲)は、投影するデプスカメラの台数をD、デプスマップにおけるデプス値をpd (x, y)、平均をμ、標準偏差をσ、下限閾値をTHL、上限閾値をTHHとして次式で表すことができる。
【0038】
【0039】
図6の例では、同図(a)に示すように、ボクセルv1の各デプスマップへの投影位置のデプス値dはいずれも「10」であるのに対して、ボクセルv2の各デプスマップへの投影位置のデプス値dは、同図(b)に示したように、それぞれ「1」,「5」,「10」と異なっている。その結果、ボクセルv1,v2の信頼度TAは、同図(c)に示すようにそれぞれ「1.0」,「0.0」と計算される。
【0040】
図7は、ボクセル信頼度TAの第4の計算方法を模式的に示した図である。第1信頼度計算部201は、ボクセルモデルvAの表面ボクセルvを各デプスカメラdのデプスマップへそのカメラパラメータを用いて投影する。本実施形態では、投影位置がエッジであるか否かの統計値に基づき、エッジ付近であれば低く、エッジ付近以外であれば高くなるように当該ボクセルvの信頼度を計算する。デプスマップの特性としてエッジ付近のデプス値はゆらぎが大きくなることが多いからである。
【0041】
本実施形態では、デプスマップ内で物体が存在する領域を決定するために所定の閾値THForegroundを用い、デプスマップの各画素のデプス値がTHForegroundより小さい範囲を物体が存在する領域(On)とし、大きい範囲を物体が存在しない領域(Off)とする。
【0042】
次いで、On領域の各画素について、注目画素の周囲N近傍(例えば8近傍)にOff領域があるか否かに基づいて、N近傍内にOff領域が無い画素はエッジ領域ではないと判定し、Off領域がある画素はエッジ領域と判定する。その結果、カメラパラメータによる投影位置がエッジ領域のボクセルは信頼度TAを低く評価され、エッジ領域以外のボクセルは信頼度TAを高く評価される。
【0043】
投影するデプスマップが複数ある場合は、デプスマップごとに計算された信頼度の平均値などを当該ボクセルの信頼度とすればよい。
【0044】
各ボクセルvの信頼度TAは、ボクセルviを各デプスカメラdへそのカメラパラメータで投影した位置の画素(x, y)がエッジか否かを表す判定式をf、カメラの台数をDとすれば次式(15),(16),(17)で表すことができる。
【0045】
【0046】
Tは0.0から1.0となるが、所定の閾値THBinより大きい場合にTA=1.0、小さい場合にTA=0.0のように2値化してもよい。また、各カメラの平均値の代わりに、多数決としてもよい。多数決で同数の場合は、TA = 1.0とするなどしてもよい。
【0047】
図7の例では、同図(a)に示すように、ボクセルv1の各デプスマップへの投影位置は全てエッジ領域ではないのに対して、ボクセルv2の各デプスマップへの投影位置は、同図(b)に示したように全てエッジ領域となっている。その結果、ボクセルv1,v2の信頼度TAは、同図(c)に示すようにそれぞれ「1.0」,「0.0」と計算される。
【0048】
図8は、ボクセル信頼度TAの第5の計算方法を模式的に示した図である。第1信頼度計算部201は、ボクセルモデルvAの各ボクセルを各デプスカメラへそのカメラパラメータで投影し、デプスマップにおける投影位置のデプス値の時間的なばらつきが小さいボクセルほど信頼度TAを高く評価する。
【0049】
デプスマップは被写体が動いていないにも関わらず時間的なゆらぎを持つ場合があるため、ゆらぐような箇所は信頼度が低いと考えても良い。時間的なばらつきは人物の動作で大きく変化しないであろう所定のフレーム数の範囲(フレーム幅L)で計算すればよい。例えば、3フレーム以内であれば大きく動きが生じないということであればフレーム幅L=3としてフレームごとに時間的なばらつきを求めることができる。
【0050】
本実施形態では、ボクセルごとに各デプスマップの投影位置のデプス値の統計値を、例えば標準偏差として算出し、標準偏差が所定の閾値以下であるか否かで信頼度TAを計算する。
【0051】
ボクセルvの信頼度TA(0.0-1.0の範囲)は、デプス値のばらつきの算出範囲(フレーム幅)をL、時刻フレームlのボクセルvを各デプスカメラdへそのカメラパラメータで投影した位置の画素値pd (x, y, l)のカメラ平均をμ、標準偏差をσとして次式(18)-(23)で求めることができる。ただし、投影するデプスカメラの台数をD、下限閾値をTHL、上限閾値をTHHとする。なお、カメラ平均μとして標準偏差を統合した評価指標σを求めてもよい。評価指標σはカメラ間での最小値や最大値などでもよい。
【0052】
【0053】
図8の例では、同図(a)に示すように、ボクセルv1の各デプスマップにおける投影位置のデプス値は全ての時刻で同一なのに対して、ボクセルv2の各デプスマップにおける投影位置のデプス値は、同図(b)に示したように時刻ごとに変化しており、時間的な揺らぎが大きいことが判る。その結果、ボクセルv1,v2の信頼度TAは、同図(c)に示すようにそれぞれ「1.0」,「0.0」と計算される。
【0054】
このとき、カメラ毎に重みWdを付与し、次式(24)のように評価指標σをカメラ毎に算出される指標値σdの重み付き平均として計算しても良い。
【0055】
【0056】
重みWdは事前に与えてもよいし、自動で決定してもよい。自動で決定する場合は、例えば事前に被写体として静止物体を設置し、所定のフレーム数Mのデプスマップをカメラ毎に取得して、画素単位でのデプス値の時間的なばらつきのデプスマップ全体での平均σ0dからカメラごとの重みWdを算出してもよい。
【0057】
フレームmの画素x,yの画素値をl(x,y,m)とすれば、カメラdのデプスマップ全体での平均評価指標σ0dは次式(25)で求まる。
【0058】
【0059】
ただし、σ0d=0.0となる場合は除算の例外対策としてσ0d=β(β=0.0001など)とされる。重みWdは次式(26),(27)で求まる。
【0060】
【0061】
なお、上記の第1ないし第5の計算方法では各ボクセルの信頼度TAを一つの評価指標に基づいて計算するものとして説明したが、本発明はこれのみに限定されるものでなく、
図9に示した第6の計算方法のように、複数の評価指標の重み付き平均に基づいて信頼度TAを計算しても良い。
【0062】
重みは手動で設定してもよいし、自動的に設定してもよい。自動的に設定する場合は、いくつかの重みパラメータの中で生成した3Dモデルをカメラ位置でレンダリングした際の復元画像とカメラ画像とを比較し、最も類似するパラメータを選択することで設定できる。信頼度TAは次式(28)のように、方法mで推定した信頼度TAmに方式mの重みWmを乗じた値の総和として算出できる。
【0063】
【0064】
図1へ戻り、補正部202は、
図3(b)に示すように、ボクセルモデルvAから信頼度の低いボクセルを除去することで、除去したボクセルに隠れていたボクセルが露出して新たな表面ボクセルとなった補正用ボクセルモデルvCを生成し、これを正規の3Dボクセルモデルとして出力する。
【0065】
図10,11は、前記3Dモデル補正部2における補正手順を示したフローチャートであり、ステップS101では、前記第1信頼度計算部201において、視体積交差法により生成したボクセルモデルvAを模した補正用ボクセルモデルvCが生成される。ステップS102では、3Dのボクセル空間において各ボクセルを識別するボクセル識別子iがリセット(=0)される。ステップS103では、識別子iのボクセルviが今回の注目ボクセルに選択される。
【0066】
ステップS104では、注目ボクセルviがボクセルモデルvAの表面ボクセルvAiであるか否かが判定され、表面ボクセルvAiであればステップS105へ進む。ステップS105では、注目ボクセルvAi(=vi)がオクルージョンとならないカメラが存在するか否かが判定され、そのようなカメラが一台でも存在すればステップS106へ進む。
【0067】
ステップS106では、注目ボクセルvAiの信頼度TAiが、各カメラやデプスマップへの投影位置の色情報、デプス値またはその時系列の統計値に基づいて、前記第1ないし第6の計算方法のいずれかにより計算される。
【0068】
ステップS200では、注目ボクセルvAiの信頼度TAiが所定の閾値TAthと比較される。TAi<TAthでなければ、注目ボクセルvAiの信頼度が十分に高く、補正不要なのでステップS209へ進む。ステップS209では、全てのボクセルvに関して上記の処理が終了したか否かが判定される。終了していなければ識別子iを更新してステップS103へ戻り、注目ボクセルviを次のボクセルに切り替えて上記の各処理を繰り返す。
【0069】
これに対して、TAi<TAthであればステップS201へ進み、デプスカメラdを識別するデプスカメラ識別子jがリセットされる。ステップS202では、識別子jのデプスカメラdjが今回の注目デプスカメラに選択される。ステップS203では、注目デプスカメラdjの視点で注目ボクセルvAiのオクルージョンが判断され、オクルージョンでなければステップS204へ進む。
【0070】
ステップS204では、注目ボクセルvAiを注目デプスカメラdjのデプスマップへ投影して投影位置(x, y)のデプス値dAij (x, y)を取得する。ステップS205では、注目ボクセルvAiと注目デプスカメラdjとの距離δAijを取得する。本実施形態では、ワールド座標系において、デプスカメラdjの3次元位置(x1, y1, z1)と注目ボクセルvAiの3次元位置(x2, y2, z2)との2点間のユークリッド距離が次式(29)に基づいて計算される。
【0071】
【0072】
ステップS206では、デプス値dAij (x, y)と距離δAijとが比較される。本実施形態ではデプスカメラdiの精度を優先し、dAij (x, y)≦δAijであれば、注目ボクセルvAiのモデリング精度が注目デプスカメラdjの視点では低くないと判断してステップS207へ進む。ステップS207では、全てのデプスカメラdに関して上記の処理が終了したか否かが判定される。終了していなければ識別子jを更新してステップS202へ戻り、注目デプスカメラdjを次のデプスカメラに切り替えて上記の各処理を繰り返す。
【0073】
これに対して、dAij (x, y)≦δAijでなければ注目ボクセルvAiのモデリング精度が低いと判断してステップS208へ進み、補正用ボクセルモデルvCから注目ボクセルvAiに対応するボクセルvi(vCi)が除去される。
【0074】
ステップS209では、全てのボクセルvに関して上記の処理が終了したか否かが判定される。終了していなければ識別子iを更新してステップS103へ戻り、注目ボクセルviを次のボクセルに切り替えて上記の各処理を繰り返す。全てのボクセルvに関して終了していれば、現在の補正用ボクセルモデルvCを正規の3Dボクセルモデルとして出力し、当該処理を終了する。
【0075】
本実施形態によれば、3Dボクセルモデルの各ボクセルを評価し、信頼度が低いと推定されるボクセルを削除するので、視体積交差法では再現できない物体凹部のノイズや、カメラ数の不足やシルエット抽出の精度不足によるノイズを排除して形状を正確に表現できる3Dモデルを生成できるようになる。
【0076】
図12は、本発明の第2実施形態に係る3Dモデル生成装置の主要部の構成を示した機能ブロック図、
図13はその動作を模式的に示した図であり、前記と同一の符号は同一又は同等部分を表しているので、その説明は省略する。
【0077】
本実施形態は、ボクセルを補正する際に誤って除去し過ぎないように、ボクセルを除去することで信頼度が向上するなら除去し、ボクセルを除去することで却って信頼度が低下するなら除去を見送ることで、必要以上にボクセルが除去されないようにした点に特徴がある。
【0078】
3Dモデル補正部2において、第1信頼度計算部201は、
図13(a)に示すように3Dモデル生成部1が生成したボクセルモデルvAを対象に、少なくとも一つのカメラとの関係でオクルージョンではないと判定されたボクセルごとに信頼度TAを計算する。
【0079】
仮補正部203は、
図13(b)に示すように、ボクセルモデルvAから表面ボクセルを除去すれば、除去した表面ボクセルに隠れていたボクセルが代わって露出し、新たな表面ボクセル(表面ボクセル候補)となり得る仮補正ボクセルモデルvBを生成する。
【0080】
第2信頼度計算部204は、
図13(c)に示すように、仮補正ボクセルモデルvBの表面ボクセル候補の信頼度TBを、前記表面ボクセルの信頼度TAと同様の手法により計算する。
【0081】
ボクセル対応付部205は、
図13(d)に示すように、ボクセルモデルvAから除去した表面ボクセルと、仮補正ボクセルモデルvBにおいて前記除去した表面ボクセルに代わって表面に露出することになる表面ボクセル候補とを対応付ける。
【0082】
補正部206は、
図13(e)に示すように、対応付けられた表面ボクセルおよび表面ボクセル候補の各信頼度TA,TBを比較し、TA<TBの表面ボクセルをボクセルモデルvAから除去することで、表面ボクセル候補が表面ボクセルとなった補正用ボクセルモデルvCを生成する。
【0083】
収束判定部207は、
図13(f)に示すように、補正前後の各ボクセルモデルvA,vCのボクセル数NvA,NvCの差分ΔN(=NvA-NvC)を収束判定閾値Nthと比較する。その結果、ΔN>Nthの間は補正用ボクセルモデルvCを新たなボクセルモデルvAと見做して上記の各処理を繰り返し、ΔN≦Nthとなった時点での補正用ボクセルモデルvCを正規の3Dボクセルモデルとして出力する。
【0084】
図14は、第2実施形態における3Dモデル補正部2の動作の概要を示したフローチャートであり、
図15~17は、その詳細を示したフローチャートである。
【0085】
ステップS1では、前記第1信頼度計算部201において、視体積交差法で生成したボクセルモデルvAの表面ボクセルvAiの信頼度TAiが、前記第1ないし第6の計算方法のいずれかにより計算される。
【0086】
ステップS2では、前記仮補正部203において、ボクセルモデルvAを模したボクセルモデルの表面ボクセルを除去し、代わりに表面ボクセル候補が露出する仮補正ボクセルモデルvBが生成される。
【0087】
ステップS3では、前記第2信頼度計算部204において、仮補正ボクセルモデルvBの表面ボクセル候補vBiの信頼度TBiが前記第1ないし第6の計算方法のいずれかにより計算される。
【0088】
ステップS4では、前記ボクセル対応付部205において、ボクセルモデルの表面ボクセルvAiごとに、当該表面ボクセルを除去すれば表面に露出する表面ボクセル候補vBiが対応付けられる。
【0089】
ステップS5では、前記補正部206において、対応付けられた表面ボクセルおよび表面ボクセル候補の各信頼度TA,TBを比較し、TA<TBの表面ボクセルを、ボクセルモデルvAを模したボクセルモデルから除去することで補正用ボクセルモデルvCが生成される。
【0090】
ステップS6では、前記収束判定部207において、補正前後の各ボクセルモデルvA,vCのボクセル数NvA,NvCの差分ΔN(=NvA-NvC)が所定の収束判定閾値Nthと比較される。ΔN≧Nthであれば補正用ボクセルモデルvCを新たなボクセルモデルvAと見做してステップS1へ戻り、上記の各処理を繰り返す。ΔN<NthであればステップS7へ進み、現在の補正用ボクセルモデルvCが正規の3Dボクセルモデルとして出力される。
【0091】
図15ないし
図17を参照し、ステップS101~S106の各処理は前記ステップS1の動作に対応する。ステップS201~S209の各処理は前記ステップS2の動作に対応する。ステップS301~S305の各処理は前記ステップS3の動作に対応する。ステップS401~S409の各処理は前記ステップS4の動作に対応する。ステップS501~S513の各処理は前記ステップS5の動作に対応する。ステップS601~S602の各処理は前記ステップS6の動作に対応する。
【0092】
ステップS101では、視体積交差法により生成したボクセルモデルvAを模した仮補正ボクセルモデルvBが生成される。ステップS102では、3Dのボクセル空間において各ボクセルを識別するボクセル識別子iがリセットされる。ステップS103では、識別子iのボクセルviが今回の注目ボクセルに選択される。
【0093】
ステップS104では、注目ボクセルviがボクセルモデルvAの表面ボクセルvAiであるか否かが判定され、表面ボクセルvAiであればステップS105へ進む。ステップS105では、注目ボクセルvAi(=vi)がオクルージョンとならないRGBカメラが存在する否かが判定され、そのようなカメラが一台でも存在すればステップS106へ進む。
【0094】
ステップS106では、注目ボクセルvAiの信頼度TAiが、各RGBカメラやデプスマップDMへの投影位置の色情報、デプス値またはその時系列の統計値に基づいて、前記第1ないし第6の計算方法のいずれかにより計算される。
【0095】
ステップS201では、デプスカメラdを識別するデプスカメラ識別子jがリセットされる。ステップS202では、識別子jのデプスカメラdjが今回の注目デプスカメラに選択される。ステップS203では、注目デプスカメラdjの視点で注目ボクセルvAiのオクルージョンが判断され、オクルージョンでなければステップS204へ進む。
【0096】
ステップS204では、注目ボクセルvAiを注目デプスカメラdjのデプスマップへ投影することで投影位置(x, y)のデプス値dAij (x, y)が取得される。ステップS205では、注目ボクセルvAiと注目デプスカメラdjとの距離δAijが取得される。
【0097】
ステップS206では、デプス値dAij (x, y)と距離δAijとが比較され、dAij (x, y)≦δAijであれば、注目ボクセルvAiのモデリング精度が注目デプスカメラdjの視点では低くなく、この時点では補正不要と判断してステップS207へ進む。ステップS207では、全てのデプスカメラdに関して上記の処理が終了したか否かが判定される。終了していなければ識別子jを更新してステップS202へ戻り、注目デプスカメラdjを次のデプスカメラに切り替えて上記の各処理を繰り返す。
【0098】
これに対して、dAij (x, y)≦δAijでなければ注目ボクセルvAiのモデリング精度が低いと判断してステップS208へ進み、仮補正ボクセルモデルvBから注目ボクセルvAiに対応する表面ボクセルvi(vBi)が除去される。
【0099】
ステップS209では、全てのボクセルvに関して上記の処理が終了したか否かが判定される。終了していなければ識別子iを更新してステップS103へ戻り、注目ボクセルviを次のボクセルに切り替えて上記の各処理を繰り返す。
【0100】
図16を参照し、ステップS301ではボクセル識別子iがリセットされる。ステップS302では、改めて注目ボクセルviが選択される。ステップS303では、注目ボクセルviが仮補正ボクセルモデルvBの表面ボクセル候補vBiであるか否かが判定され、表面ボクセル候補vBiであればステップS304へ進む。
【0101】
ステップS304では、注目ボクセルvBi(=vi)がオクルージョンとならないデプスカメラdが存在するか否かが判定され、そのようなデプスカメラが一台でも存在すればステップS305へ進む。ステップS305では、注目ボクセルvBiの信頼度TBiが、各RGBカメラやデプスマップDMへの投影位置の色情報、デプス値またはその時系列の統計値に基づいて、前記第1ないし第6の計算方法のいずれかにより計算される。
【0102】
ステップS401では、デプスカメラ識別子jがリセットされる。ステップS402では、識別子jに基づいて今回の注目デプスカメラdjが選択される。ステップS403では、注目デプスカメラdjの視点で注目ボクセルvBiのオクルージョンが判断され、オクルージョンでなければステップS404へ進む。
【0103】
ステップS404では、注目ボクセルvBiを注目デプスカメラdjのデプスマップへ投影することで投影位置(x, y)のデプス値dBij (x, y)が取得される。ステップS405では、注目ボクセルvBiと注目デプスカメラdjとの距離δBijが取得される。
【0104】
ステップS406では、デプス値dBij (x, y)と距離δBijとが比較され、dBij (x, y)≦δBijであれば、ボクセルvBiのモデリング精度が注目デプスカメラdjの視点では低くないと判断してステップS407へ進む。ステップS407では、全てのデプスカメラdに関して上記の処理が終了したか否かが判定される。終了していなければ識別子jを更新してステップS402へ戻り、注目デプスカメラdjを次のデプスカメラに切り替えて上記の各処理を繰り返す。
【0105】
これに対して、dBij (x, y)≦δBijでなければ、ボクセルvBiのモデリング精度が少なくとも注目デプスカメラdjの視点では低いと判断してステップS408へ進み、ボクセル対応付けリストPj (x, y)に現在のボクセル識別子iが登録される。すなわち、ボクセル対応付けリストPj (x, y)には、モデリング精度がいずれかのデプスカメラの視点で低いと判断されたボクセルvの識別子iと当該ボクセルviの各デプスマップにおける投影位置 (x, y) との対応関係が登録されることになる。
【0106】
ステップS409では、全てのボクセルに関して上記の処理が終了したか否かが判定される。終了していなければ識別子iを更新してステップS302へ戻り、注目ボクセルviを次のボクセルに切り替えて上記の各処理を繰り返す。
【0107】
図17へ進み、ステップS501では、ボクセルモデルvAを模した補正用ボクセルモデルvCが生成される。ステップS502ではボクセル識別子iがリセットされる。ステップS503では、識別子iのボクセルviが今回の注目ボクセルに選択される。
【0108】
ステップS504では、注目ボクセルviがボクセルモデルvAの表面ボクセルvAiであるか否かが判定され、表面ボクセルvAiであればステップS505へ進む。ステップS505では、注目ボクセルvAiがオクルージョンとならないRGBカメラが存在する否かが判定され、そのようなカメラが一台でも存在すればステップS506へ進む。
【0109】
ステップS506では、デプスカメラ識別子jがリセットされる。ステップS507では、識別子jのデプスカメラdjが今回の注目デプスカメラに選択される。ステップS508では、注目ボクセルvAiを注目デプスカメラdjへ投影することで投影位置(x, y)が取得される。
【0110】
ステップS509では、注目デプスカメラdjの投影位置(x, y)をインデックスとして選択される対応リストPj (x, y)に登録されているボクセル識別子iで識別される表面ボクセル候補vBiの信頼度TBiが取得される。
【0111】
なお、対応リストPj (x, y)に複数のボクセル識別子iが登録されている場合には、対応する全てのボクセルvBiの信頼度TBの平均値TBave(x, y)が計算される。信頼度TB ave(x, y)は、対応リストPj (x, y)に登録されている複数のボクセルの信頼度の平均値となる。
【0112】
ステップS510では、ボクセルモデルvAの注目ボクセルvAiの信頼度TAiと、当該注目ボクセルvAiが除去されると仮補正ボクセルモデルvBの表面に露出することになる表面ボクセル候補vBの信頼度TB又はその代表値TB ave(x, y)とが比較される。その結果、TAi>TB ave(x, y)であれば注目ボクセルviの補正が不要なのでステップS511へ進む。
【0113】
ステップS511では、全てのデプスカメラに関して上記の各処理が終了したか否かが判断される。終了していなければ識別子jを更新してステップS507へ戻り、注目デプスカメラdjを次のデプスカメラに切り替えて上記の各処理が繰り返される。これに対して、信頼度TA_i>TB ave(x, y)でなければステップS512へ進み、補正用ボクセルモデルvCから注目ボクセルvAiに対応するボクセルvi(vCi)が除去される。
【0114】
ステップS513では、全てのボクセルに関して上記の各処理が終了したか否かが判断される。終了していなければ識別子iを更新してステップS503へ戻り、注目ボクセルを次のボクセルに切り替えて上記の各処理が繰り返される。全てのボクセルに関して上記の各処理が終了するとステップS601へ進む。
【0115】
ステップS601では、ボクセルモデルvAを構成するボクセル数NvAと補正用ボクセルモデルvCを構成するボクセル数NvCとが比較される。補正前後でのボクセル数差ΔN(=NvA-NvC)が所定の収束判定閾値Nth以下でなければ、ステップS602へ進んで補正用ボクセルモデルvCを新たなボクセルモデルvAと見做してステップS102へ戻り、上記の各処理を繰り返す。
【0116】
ボクセル数差ΔNが所定の収束判定閾値Nth以下であれば、補正用ボクセルモデルvCを正規の3Dボクセルモデルとして出力し、当該処理を終了する。
【0117】
本実施形態によれば、生成したボクセルモデルの各表面ボクセルと表面ボクセル候補との信頼度を比較し、表面ボクセル候補の信頼度の方が高ければ当該表面ボクセルを除去する一方、表面ボクセルの信頼度の方が高ければ当該表面ボクセルを維持するので、補正時におけるボクセルの過剰な除去を防止して、より精度の高い3Dボクセルモデルを生成できるようになる。
【0118】
そして、上記の各実施形態によれば高品質な3Dボクセルモデルを生成することができ、通信インフラ経由でもリアルタイムで提供することが可能となるので、地理的あるいは経済的な格差を超えて多くの人々に多様なエンターテインメントを提供できるようになる。その結果、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、包括的で持続可能な産業化を推進する」や目標11「都市を包摂的、安全、レジリエントかつ持続可能にする」に貢献することが可能となる。
【符号の説明】
【0119】
1…3Dモデル生成部,2…3Dモデル補正部,101…シルエット画像生成,102…モデル生成部,201…第1信頼度計算部,202…補正部,203…仮補正部,204…第2信頼度計算部,205…ボクセル対応付部,206…補正部,207…収束判定部