IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

特開2025-38752画像処理装置、画像処理方法、及びプログラム
<>
  • 特開-画像処理装置、画像処理方法、及びプログラム 図1
  • 特開-画像処理装置、画像処理方法、及びプログラム 図2
  • 特開-画像処理装置、画像処理方法、及びプログラム 図3
  • 特開-画像処理装置、画像処理方法、及びプログラム 図4
  • 特開-画像処理装置、画像処理方法、及びプログラム 図5
  • 特開-画像処理装置、画像処理方法、及びプログラム 図6
  • 特開-画像処理装置、画像処理方法、及びプログラム 図7
  • 特開-画像処理装置、画像処理方法、及びプログラム 図8
  • 特開-画像処理装置、画像処理方法、及びプログラム 図9
  • 特開-画像処理装置、画像処理方法、及びプログラム 図10
  • 特開-画像処理装置、画像処理方法、及びプログラム 図11
  • 特開-画像処理装置、画像処理方法、及びプログラム 図12
  • 特開-画像処理装置、画像処理方法、及びプログラム 図13
  • 特開-画像処理装置、画像処理方法、及びプログラム 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025038752
(43)【公開日】2025-03-19
(54)【発明の名称】画像処理装置、画像処理方法、及びプログラム
(51)【国際特許分類】
   G06T 7/00 20170101AFI20250312BHJP
   G06T 7/55 20170101ALI20250312BHJP
【FI】
G06T7/00 350B
G06T7/55
【審査請求】未請求
【請求項の数】16
【出願形態】OL
(21)【出願番号】P 2023145542
(22)【出願日】2023-09-07
(71)【出願人】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】岩尾 知頼
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096CA05
5L096FA67
5L096FA69
5L096KA04
(57)【要約】
【課題】 NeRFの学習に要する時間を短縮する。
【解決手段】 画像処理装置102は、互いに異なる位置に配置された複数の撮像装置のそれぞれの撮像パラメータと、前記複数の撮像装置のそれぞれによる撮像により得られる撮像画像のデータと、仮想視点の位置を示す情報、及び前記仮想視点からの視線の方向を示す情報の少なくともいずれかを含む仮想視点情報とを取得し、前記仮想視点情報に基づいて、前記複数の撮像装置の撮像領域に存在するオブジェクトに対応する放射輝度場を推定する学習モデルの学習条件を決定し、前記学習条件、前記撮像パラメータ、及び前記撮像画像のデータに基づいて、前記学習モデルの学習を行う。
【選択図】 図4
【特許請求の範囲】
【請求項1】
互いに異なる位置に配置された複数の撮像装置のそれぞれの撮像パラメータを取得する撮像パラメータ取得手段と、
前記複数の撮像装置のそれぞれによる撮像により得られる撮像画像のデータを取得する画像取得手段と、
仮想視点の位置を示す情報、及び前記仮想視点からの視線の方向を示す情報の少なくともいずれかを含む仮想視点情報を取得する視点取得手段と、
前記仮想視点情報に基づいて、前記複数の撮像装置の撮像領域に存在するオブジェクトに対応する放射輝度場を推定する学習モデルの学習条件を決定する決定手段と、
前記学習条件、前記撮像パラメータ、及び前記撮像画像のデータに基づいて、前記学習モデルの学習を行う学習手段と、
を有することを特徴とする画像処理装置。
【請求項2】
前記決定手段は、前記仮想視点情報に基づいて、前記画像取得手段により取得された複数の前記撮像画像のデータのうちから、前記学習モデルの学習において学習画像データとして用いる前記撮像画像のデータを決定することにより、前記学習条件を決定すること、
を特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記仮想視点情報は、前記仮想視点からの視線の方向を示す情報を含み、
前記決定手段は、前記仮想視点からの視線の方向を示す情報と、前記複数の撮像装置のそれぞれの前記撮像パラメータに含まれる撮像装置の光軸の方向を示す情報とに基づいて、前記学習画像データとして用いる前記撮像画像のデータを決定すること、
を特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記仮想視点情報は、前記仮想視点の位置を示す情報を含み、
前記決定手段は、前記仮想視点の位置を示す情報と、前記複数の撮像装置のそれぞれの前記撮像パラメータに含まれる撮像装置の位置を示す情報とに基づいて、前記学習画像データとして用いる前記撮像画像のデータを決定すること、
を特徴とする請求項2に記載の画像処理装置。
【請求項5】
前記学習手段は、前記決定手段により決定された前記撮像画像のデータのみを前記学習画像データとして用いて前記学習モデルの学習を行うこと、
を特徴とする請求項2に記載の画像処理装置。
【請求項6】
前記学習手段による前記学習モデルの学習は、学習フェーズとして、前記決定手段により決定された前記撮像画像のデータのみを前記学習画像データとして用いて前記学習モデルの学習を行う第1の学習フェーズと、前記画像取得手段により取得された全ての前記撮像画像のデータを前記学習画像データとして用いて前記学習モデルの学習を行う第2の学習フェーズとを含むこと、
を特徴とする請求項2に記載の画像処理装置。
【請求項7】
前記学習手段は、前記第1の学習フェーズによる前記学習モデルの学習を行った後に、前記第2の学習フェーズによる前記学習モデルの学習を行うこと、
を特徴とする請求項6に記載の画像処理装置。
【請求項8】
前記学習手段は、前記第2の学習フェーズによる前記学習モデルの学習を行った後に、前記第1の学習フェーズによる前記学習モデルの学習を行うこと、
を特徴とする請求項6に記載の画像処理装置。
【請求項9】
前記学習手段は、前記第1の学習フェーズによる前記学習モデルの学習、及び前記第2の学習フェーズによる前記学習モデルの学習の少なくとも一方を、他方の学習を行う前と後とに繰り返し行うこと、
を特徴とする請求項6に記載の画像処理装置。
【請求項10】
前記決定手段は、前記仮想視点情報に基づいて決定した、前記学習画像データとして用いる複数の前記撮像画像のデータを複数の画像グループに分割し、
前記学習手段は、前記画像グループごとに、前記画像グループに含まれる前記撮像画像のデータを前記学習画像データとして用いて前記学習モデルの学習を行うこと、
を特徴とする請求項2に記載の画像処理装置。
【請求項11】
前記決定手段は、前記仮想視点情報に基づいて決定した、前記学習画像データとして用いる複数の前記撮像画像のデータを複数の画像グループに分割し、
前記学習手段は、前記画像グループごとに、前記画像グループに含まれる前記撮像画像のデータを前記学習画像データとして用いて、前記第1の学習フェーズによる前記学習モデルの学習を行うこと、
を特徴とする請求項6に記載の画像処理装置。
【請求項12】
前記学習手段は、前記決定手段により決定された前記撮像画像のデータを前記学習画像データとして用いる場合の学習の重みを、前記画像取得手段により取得された複数の前記撮像画像のデータのうちの、前記決定手段により決定された前記撮像画像のデータ以外の前記撮像画像のデータを前記学習画像データとして用いる場合の前記学習モデルの学習の重みより高くすること、
を特徴とする請求項2に記載の画像処理装置。
【請求項13】
学習済みの前記学習モデルである学習済モデルを用いて、前記オブジェクトに対応する放射輝度場を推定して、前記仮想視点からの見えに対応する仮想視点画像を生成する生成手段、
を更に有し、
前記仮想視点情報は、前記仮想視点の位置を示す情報、及び前記仮想視点からの視線の方向を示す情報を含み、
前記生成手段は、前記仮想視点情報を前記学習済モデルに入力することにより前記仮想視点画像を生成すること、
を特徴とする請求項1に記載の画像処理装置。
【請求項14】
前記仮想視点画像を表示制御して表示装置に表示出力する出力手段、
を更に有することを特徴とする請求項13に記載の画像処理装置。
【請求項15】
互いに異なる位置に配置された複数の撮像装置のそれぞれの撮像パラメータを取得する撮像パラメータ取得工程と、
前記複数の撮像装置のそれぞれによる撮像により得られる撮像画像のデータを取得する画像取得工程と、
仮想視点の位置を示す情報、及び前記仮想視点からの視線の方向を示す情報の少なくともいずれかを含む仮想視点情報を取得する視点取得工程と、
前記仮想視点情報に基づいて、前記複数の撮像装置の撮像領域に存在するオブジェクトに対応する放射輝度場を推定する学習モデルの学習条件を決定する決定工程と、
前記学習条件、前記撮像パラメータ、及び前記撮像画像のデータに基づいて、前記学習モデルの学習を行う学習工程と、
を含むことを特徴とする画像処理方法。
【請求項16】
コンピュータを、請求項1乃至14のいずれか1項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、撮像装置による撮像対象領域の仮想視点画像を生成する技術に関する。
【背景技術】
【0002】
互いに異なる視点からの撮像により得られる複数の撮像画像(以下「多視点画像」と呼ぶ。)データを用いて、撮像対象領域に存在するオブジェクト(以下「シーン」と呼ぶ。)の放射輝度場(Radiance Fields)を推定する技術がある。また、推定された放射輝度場を用いて、任意の仮想的な視点(以下「仮想視点」と呼ぶ。)からのシーンの見えに対応する画像(以下「仮想視点画像」と呼ぶ。)を生成する技術がある。非特許文献1には、深層学習ネットワークにより構成されるNeRF(Neural Radiance Fields)を用いて、放射輝度場を推定し、仮想視点画像を生成する技術が開示されている。多視点画像データを用いたNeRFの学習の結果として得られる学習済みのNeRFに対して、3次元空間における任意の位置と視点方向と示す情報を入力することにより、シーンに対応する色と体積密度とが推定される。ここで、体積密度とは、色の不透明度を表す指標である。
【0003】
上述の学習済みのNeRFを用いて仮想視点画像を生成する場合、学習済みのNeRF内では以下のような処理が実行される。まず、入力された仮想視点の位置及び視線方向に基づいて、生成予定の仮想視点画像の大きさに相当する画像を仮想視点の位置から3次元空間に投影し、当該画像における各画素の方向に向かって、仮想視点の位置から光線を射出する。続いて、各画素に対応する光線上に存在する、3次元空間における複数の点をサンプリングして、サンプリングした各点に対応する色と体積密度とを算出する。更に続いて、算出した各点に対応する色と体積密度とを仮想視点から光線ごとに積算することにより、仮想視点画像における各画素値を決定して、仮想視点画像を生成する。
【0004】
また、NeRFの学習を行う場合には、以下のような一連の処理が繰り返し実行される。まず、撮像装置の位置と光軸方向(以下「姿勢」と呼ぶ。)とを示す情報をNeRFに入力する。NeRFは、入力されたこれらの情報に基づいて、上述の仮想視点画像の生成処理と同様の処理を実行することにより、当該撮像装置の撮像により得られる撮像画像に対応する画像を生成する。続いて、当該撮像画像のデータを教師データとして、NeRFにより生成された画像の各画素値と当該撮像画像の各画素値との差分がより小さくなるように、NeRFを構成する深層学習ネットワークの重みパラメータを更新する。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】Ben Mildenhall,外5名,“NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis”,[online],令和2年8月3日,arXiv,[令和5年8月9日検索],インターネット<https://arxiv.org/pdf/2003.08934.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0006】
NeRFを用いて高精度の放射輝度場を推定できるようにするためには、大量の多視点画像データを用いて、上述のようなNeRFの学習を繰り返し行う必要がある。そのため、NeRFの学習には多くの時間を要するという問題点があった。
【課題を解決するための手段】
【0007】
本開示に係る画像処理装置は、互いに異なる位置に配置された複数の撮像装置のそれぞれの撮像パラメータを取得する撮像パラメータ取得手段と、前記複数の撮像装置のそれぞれによる撮像により得られる撮像画像のデータを取得する画像取得手段と、仮想視点の位置を示す情報、及び前記仮想視点からの視線の方向を示す情報の少なくともいずれかを含む仮想視点情報を取得する視点取得手段と、前記仮想視点情報に基づいて、前記複数の撮像装置の撮像領域に存在するオブジェクトに対応する放射輝度場を推定する学習モデルの学習条件を決定する決定手段と、前記学習条件、前記撮像パラメータ、及び前記撮像画像のデータに基づいて、前記学習モデルの学習を行う学習手段と、を有する。
【発明の効果】
【0008】
本開示によれば、NeRFの学習に要する時間を短縮することができる。
【図面の簡単な説明】
【0009】
図1】実施形態1に係る画像処理システムの構成の一例を示す図である。
図2】実施形態1に係る画像処理装置のハードウェア構成の一例を示すブロック図である。
図3】実施形態1に係るNeRFの学習に用いる撮像画像データを説明するための図である。
図4】実施形態1に係る画像処理装置の機能構成の一例を示すブロック図である。
図5】実施形態1に係る画像処理装置の一連の処理フローの一例を示すフローチャートである。
図6】実施形態1に係る学習部における学習処理の流れの一例を示すフローチャートである。
図7】実施形態2に係る学習部における学習処理の流れの一例を示すフローチャートである。
図8】実施形態3に係る画像処理装置の機能構成の一例を示すブロック図である。
図9】実施形態3に係る画像処理装置の一連の処理フローの一例を示すフローチャートである。
図10】実施形態3に係る撮像装置の配置の一例を示す図である。
図11】実施形態3に係る撮像画像の一例を示す図である。
図12】実施形態3に係る重要度決定部における処理の流れの一例を示すフローチャートである。
図13】実施形態3に係る条件決定部における処理の流れの一例を示すフローチャートである。
図14】実施形態5に係る重要度決定部における処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、本開示の実施形態について図面を参照して説明する。なお、以下の実施形態は、本開示を限定するものではなく、また、本実施形態において説明されている特徴の組み合わせの全てが本開示の解決手段に必須のものとは限らない。なお、同一の構成については、同じ符号を付して説明する。
【0011】
[実施形態1]
本実施形態では、仮想視点の位置と、仮想視点における仮想的な視線の方向(以下、単に「視線方向」と呼ぶ。)とを示す情報に基づいて、深層学習ネットワークにより構成されるNeRFの学習に用いる撮像画像データの数を削減する方法について説明する。以下、仮想視点を仮想カメラと呼び、仮想視点の視線方向を仮想カメラの姿勢と呼ぶ。また、仮想視点の位置及び視線方向、すなわち、仮想カメラの位置及び姿勢を示す情報を仮想カメラ情報と呼ぶ。
【0012】
図1は、実施形態1に係る画像処理システムの構成の一例を示す図である。画像処理システムは、複数の撮像装置101、画像処理装置102、UIパネル103、記憶装置104、及び表示装置105を有する。各撮像装置101は、デジタルスチルカメラ又はデジタルビデオカメラ等により構成され、設定された撮像条件に従って、撮像対象領域に存在するオブジェクト106を互いに同期して撮像する。撮像装置101は、撮像対象領域の周囲を取り囲むように配置されている。画像処理装置102は、各撮像装置101による同期した撮像により得られる複数の撮像画像(多視点画像)のデータを用いて、NeRFの学習を行う。また、画像処理装置102は、学習済みのNeRFを用いて、与えられた仮想視点に対応するオブジェクト106の放射輝度場を推定し、当該仮想視点からの見えに対応する仮想視点画像を生成する。以下、撮像装置101による撮像により得られる撮像画像を、「撮像装置101の撮像画像」と表記する。
【0013】
UIパネル103は、ユーザからの、各撮像装置101における撮像条件、並びに各撮像装置101及び画像処理装置102における処理条件の設定の入力操作を受け付ける。また、UIパネル103は、NeRFにより推定される放射輝度場に基づいて仮想視点画像を生成する際の、仮想視点の位置及び視線方向、すなわち、仮想カメラの位置及び姿勢の設定の入力操作を受け付け得る。なお、上述の入力操作は、必ずしもUIパネルを介して行われなくてもよく、例えば、マウス又はキーボード等の、画像処理装置102に接続された別の操作入力デバイスを介して行なわれてもよい。記憶装置104は、画像処理装置102が取得した多視点画像データ、及び、画像処理装置102により推定されたオブジェクト106の放射輝度場の情報等を記憶する。表示装置105は、画像処理装置102が生成した仮想視点画像を表示する。なお、画像処理システムの構成については、上述のものに限定されるものではなく、上述の構成以外にも、様々な構成要素が存在し得る。しかしながら、上述の構成以外の構成については、本開示の主眼ではないため、その説明については省略する。
【0014】
図2は、実施形態1に係る画像処理装置102のハードウェア構成の一例を示すブロック図である。画像処理装置102は、CPU201、メインメモリ202、記憶部203、入力部204、表示部205、及び外部I/F206を有し、これらは互いにバス207を介して通信可能に接続されている。CPU201は、画像処理装置102を統括的に制御する演算処理デバイスであり、記憶部203等に格納されている各種プログラムを実行して各種な処理を行う。メインメモリ202は、CPU201が各種処理を実行する際に用いる各種のデータ及びパラメータ等を一時的に格納する。また、メインメモリ202は、CPU201に対して作業領域を提供する。
【0015】
記憶部203は、各種プログラム、及び表示装置105へのGUI(グラフィカル・ユーザ・インターフェイス)の表示に必要な各種データ等を記憶する大容量記憶装置であり、ハードディスク又はシリコンディスク等の不揮発性メモリにより構成される。入力部204は、キーボード、マウス、電子ペン、又はタッチパネル等の操作入力デバイスであり、ユーザからの入力操作を受け付ける。表示部205は、液晶パネル等により構成され、画像処理装置102により出力されるGUI等の表示を行う。CPU201は、表示部205を制御する表示制御部、及び入力部204を制御する入力制御部としても動作する。実施形態1では、表示部205及び入力部204は、画像処理装置102の内部に存在するものとして説明するが、表示部205及び入力部204の少なくとも一方は、画像処理装置102の外部に別の装置として存在していてもよい。外部I/F部206は、LAN208を介して各撮像装置101に接続され、撮像画像データ及び制御信号の送受信を行う。
【0016】
各撮像装置101は、LAN208を介して画像処理装置102と接続されている。各撮像装置101は、画像処理装置102から出力される制御信号を受信し、受信した制御信号に基づいて、撮像の開始及び停止、シャッタースピード及び絞り値等の撮像条件の設定の変更、並びに、撮像により得られる撮像画像データの送信を行う。
【0017】
図3は、実施形態1に係るNeRFの学習に用いる撮像画像データを説明するための図である。図3(a)は、従来のNeRFの学習に用いる撮像画像データの一例を説明するための図である。従来のNeRFの学習においては、仮想カメラ301の位置及び姿勢に関わらず、オブジェクト106を撮像し得る全ての撮像装置101の撮像画像(多視点画像)のデータをNeRFの学習に用いる。
【0018】
図3(b)は、本実施形態に係るNeRFの学習に用いる撮像画像データの一例を説明するための図である。従来のNeRFの学習では、上述したように、仮想カメラ301の位置及び姿勢に関わらず、全ての撮像装置101による撮像により得られた多視点画像データをNeRFの学習に用いる。これに対して、本実施形態に係るNeRFの学習では、図3(b)に示すように、仮想カメラ301の位置又は姿勢に近い1台以上の撮像装置101の撮像画像データのみをNeRFの学習に用いる。すなわち、仮想カメラ301の位置又は姿勢に近い撮像装置101以外の撮像装置101の撮像画像データについては、NeRFの学習に用いずに、学習に用いる撮像画像データの数を削減する。学習に用いる撮像画像データを削減することにより、NeRFの学習に要する時間を短縮することができる。
【0019】
図3(c)は、NeRFの学習に用いる撮像画像データの数を削減する場合の従来の一般的な例を示す図である。図3(c)に一例として示すように、オブジェクト106の周囲を取り囲む撮像装置101の数を満遍なく削減することによりNeRFの学習に用いる撮像画像データの数を削減することができる。しかしながら、このような削減方法では、学習済みのNeRFにより推定される放射輝度場の精度が低下してしまう。結果として、このような削減方法では、生成される仮想視点画像の品質が低下してしまう。
【0020】
一方、本実施形態に係る画像処理装置102は、図3(b)に示すような削減方法により、仮想カメラ301の位置又は姿勢に近い撮像装置101の撮像画像データを集中的に用いてNeRFの学習を行う。このような学習の結果として得られる学習済みのNeRFによれば、少なくとも当該仮想カメラ301の位置及び姿勢と同一又は略同一の仮想カメラの位置及び姿勢において推定される放射輝度場及び生成される仮想視点画像の品質の低下を抑制することができる。すなわち、仮想カメラ301の位置又は姿勢に近い撮像装置101の撮像画像データを集中的に用いてNeRFの学習を行うことにより、NeRFの学習に要する時間を短縮しつつ、放射輝度場の推定精度を高精度のまま維持することができる。
【0021】
図4は、実施形態1に係る画像処理装置102の機能構成の一例を示すブロック図である。画像処理装置102は、仮想カメラ情報取得部400、撮像パラメータ取得部401、画像取得部402、特定部403、学習部404、生成部405、及び出力部406を有する。仮想カメラ情報取得部400は、仮想カメラ情報を取得する。仮想カメラ情報取得部400は、例えば、画像処理装置102の入力部204であるマウス若しくはキーボード等、又はUIパネル103等を介してユーザにより設定された仮想カメラ情報を取得する。仮想カメラ情報取得部400により取得された仮想カメラ情報は、特定部403及び生成部405に送信される。画像取得部402は、各撮像装置101の撮像画像データ、すなわち、多視点画像データを取得する。具体的には、例えば、画像取得部402は、全ての撮像装置101の同期した撮像により得られた多視点画像データを取得する。画像取得部402により取得された多視点画像データは、学習部404に送信される。多視点画像データを構成する複数の撮像画像データの一部を学習画像データとして用いて、NeRFの学習が行われる。
【0022】
撮像パラメータ取得部401は、各撮像装置101の外部パラメータ、内部パラメータ、及び歪曲パラメータ等を含む撮像パラメータを取得する。撮像パラメータは、例えば、画像処理装置102とは異なる外部装置により事前に行われたカメラキャリブレーションの結果に基づいて生成され、撮像パラメータ取得部401は、外部装置により生成された撮像パラメータを取得する。撮像パラメータの取得方法は、上述の方法に限定されるものではなく、例えば、撮像パラメータ取得部401が、画像取得部402により取得された多視点画像データを用いてカメラキャリブレーションを行うことにより撮像パラメータを生成して取得してもよい。撮像パラメータ取得部401により取得された撮像パラメータは、特定部403及び学習部404に送信される。
【0023】
特定部403は、仮想カメラ情報取得部400から送信される仮想カメラ情報、及び撮像パラメータ取得部401から送信される各撮像装置の撮像パラメータを受信する。特定部403は、仮想カメラ情報、及び各撮像装置の撮像パラメータに基づいて、全ての撮像装置101のうちから、NeRFの学習に学習画像データとして用いる撮像画像データを出力する撮像装置101を特定する。すなわち、特定部403は、撮像装置101を特定することにより、画像取得部402が取得した多視点画像データのうちから、NeRFの学習に学習画像データとして用いる撮像画像データを決定する。撮像装置101の特定方法の詳細については後述する。特定部403により特定された撮像装置101を示す情報は、学習部404に送信される。
【0024】
学習部404は、特定部403が特定した撮像装置101の撮像パラメータと撮像画像データとに基づいて、NeRFの学習を行う。具体的には、まず、学習部404は、特定部403が特定した1台以上の撮像装置101のうちの任意の撮像装置101の撮像パラメータをNeRFに入力する。より具体的には、学習部404は、少なくとも、撮像パラメータのうちの外部パラメータである撮像装置101の位置及び姿勢を示す情報をNeRFに入力する。NeRFでは、入力された撮像装置101の位置及び姿勢を示す情報に基づいて、オブジェクト106の放射輝度場が推定される。更に、NeRFでは、放射輝度場の推定結果を用いて、仮想視点画像の生成と同様の処理により画像が生成される。学習部404は、NeRFが生成した画像のデータを取得する。続いて、学習部404は、当該撮像装置101の撮像画像データを正解の学習画像データ(教師画像データ)として、NeRFにより生成された画像と撮像画像との差異がより小さくなるように、NeRFの重みパラメータを更新する。学習部404は、上述の一連の処理を繰り返し実行することにより、NeRFの学習を行う。学習部404による学習の結果として得られる学習済みのNeRFは、生成部405に送信される。
【0025】
生成部405は、学習部404から送信される学習済みのNeRFと、仮想カメラ情報取得部400から送信される仮想カメラ情報とを受信して、受信した学習済みのNeRFと仮想カメラ情報とに基づいて仮想視点画像を生成する。具体的には、生成部405は、学習済みのNeRFに対して、仮想カメラ情報、すなわち、仮想カメラの位置及び姿勢を示す情報を入力する。学習済みのNeRFでは、入力された仮想カメラの位置及び姿勢を示す情報に基づいて、オブジェクト106の放射輝度場が推定される。更に、学習済みのNeRFでは、放射輝度場の推定結果を用いて、仮想視点画像が生成される。生成部405は、学習済みのNeRFにより生成された仮想視点画像のデータを取得する。生成部405により生成された仮想視点画像のデータは、出力部406に送信される。出力部406は、仮想視点画像のデータを受信し、これを出力する。具体的には、例えば、出力部406は、仮想視点画像のプレビュー画像を含むGUIを生成して、生成したGUIを表示部205に出力して表示する。
【0026】
図5及び6を参照して、画像処理装置102の動作について説明する。図5は、実施形態1に係る画像処理装置102の一連の処理フローの一例を示すフローチャートである。なお、以下の説明において、符号の先頭に示す「S」は、ステップ(工程)を表す。また、図5のフローチャートに示す各ステップの処理は、CPU201が、所定のプログラムを記憶部203から読み出してメインメモリ202に展開し、これをCPU201が実行することにより実現される。
【0027】
まず、S501にて、撮像パラメータ取得部401は、各撮像装置101の撮像パラメータを取得する。次に、S502にて、画像取得部402は、各撮像装置101による撮像により得られた多視点画像データを取得する。具体的には、例えば、画像取得部402は、LAN208を介して各撮像装置101に対して撮像を指示する信号を送信する。各撮像装置101は、当該信号を受けて、互いに同期した撮像を行い、撮像により得た撮像画像データを、LAN208を介して画像処理装置102に送信する。画像取得部402は、各撮像装置101から送信された撮像画像データを、LAN208、外部I/F部206、及びバス207を介して受信する。画像取得部402により受信された各撮像画像データ、すなわち、多視点画像データは、メインメモリ202に格納される。
【0028】
次に、S503にて、仮想カメラ情報取得部400は、仮想カメラ情報を取得する。次に、S504にて、特定部403は、S503にて取得された仮想カメラ情報に基づいて、全ての撮像装置101のうちから、NeRFの学習に学習画像データとして用いる撮像画像データを出力する撮像装置101を特定する。具体的には、例えば、特定部403は、仮想カメラの姿勢、すなわち、仮想視点における視線の方向を示す情報を用いて、NeRFの学習に学習画像データとして用いる撮像画像データを出力する撮像装置101を特定する。
【0029】
上述したように、従来のNeRFの学習方法では、多視点画像データを構成する全ての撮像画像データを学習画像データとして用いて、NeRFの学習を行っていた。このような学習により、従来の学習済みのNeRFは、3次元空間において任意の位置に指定した仮想視点と、当該仮想視点において指定した任意の視線の方向とに対応する色と体積密とを推定することが可能なものである。一方、本実施形態に係るNeRFの学習方法では、仮想カメラの姿勢に近い姿勢の撮像装置101の撮像画像データのみを学習画像データとして用いて、NeRFの学習を行う。このような学習の結果として得られる学習済みのNeRFによれば、仮想カメラの姿勢、すなわち、仮想視点における視線の方向に近い方向からオブジェクト106を見たときの色と体積密度とを推定することができる。このとき、仮想カメラの姿勢に近い姿勢の撮像装置101による撮像により得られる撮像画像データが学習画像データとして用いられているため、生成される仮想視点画像は、品質の劣化が非常に少ない画像となる。一方、仮想カメラの姿勢を大きく変えた場合において生成される仮想視点画像の精度は大きく落ちてしまう。
【0030】
例えば、特定部403は、まず、仮想カメラの姿勢を示す方向ベクトルと、各撮像装置101の姿勢を示す方向ベクトルとが成す角度の閾値θth[deg]を設定する。次に、特定部403は、全ての撮像装置101のうちから方向ベクトルが、例えば、次式(1)を満たす撮像装置101を、NeRFの学習に学習画像データとして用いる撮像画像データを出力する撮像装置101として特定する。
【0031】
|arccos((vm・vr)/(|vm||vr|))|<θth ・・・ 式(1)
ここで、vmは、仮想カメラの姿勢を示す方向ベクトルを表し、vrは、撮像装置101の姿勢を示す方向ベクトルを表し、vm・vrは、vmとvrとの内積値を表す。なお、arccos(x)は-180~180[deg]の値をとるものとする。特定部403は、式(1)を満たす1台以上の撮像装置101のそれぞれを、NeRFの学習に学習画像データとして用いる撮像画像データを出力する撮像装置101として特定する。
【0032】
本実施形態では、予め与えられた1つの閾値θthを用いて、撮像装置101を特定するものとして説明するが、特定部403が用いる閾値は1つに限定されるものではなく、特定部403は、複数の閾値を用いて、撮像装置101を特定してもよい。また、特定部403は、仮想カメラの姿勢と撮像装置101の姿勢とではなく、仮想カメラの位置と撮像装置101の位置とに基づいて、撮像装置101を特定してもよい。例えば、この場合、特定部403は、まず、仮想カメラの位置と撮像装置101の位置との間の距離の閾値dthを設定する。次に、特定部403は、仮想カメラの位置と撮像装置101の位置との間の距離が、例えば、次式(2)を満たす撮像装置101を、NeRFの学習に学習画像データとして用いる撮像画像データを出力する撮像装置101として特定する。
【0033】
||pm―pr||2<dth ・・・ 式(2)
ここで、pmは、3次元空間における仮想カメラの位置を表す位置ベクトルであり、prは、撮像装置101の位置に対応する3次元空間における位置を表す位置ベクトルであり、||x||2は、ベクトルxのユークリッドノルムを表す。また、例えば、特定部403は、式(1)と式(2)とを用いて、式(1)及び式(2)の両方を満たす撮像装置101を、NeRFの学習に学習画像データとして用いる撮像画像データを出力する撮像装置101として特定してもよい。
【0034】
S504の後、S505にて、学習部404は、S502にて取得された多視点画像データのうちの、S504にて特定された撮像装置101の撮像画像データのみを学習画像データとして用いて、NeRFの学習を行う。S505における学習部404の処理の詳細については、図6を用いて後述する。次に、S506にて、生成部405は、S505における学習の結果により得られる学習済みのNeRFと、S503にて取得した仮想カメラ情報とに基づいて、仮想視点画像を生成する。具体的には、生成部405は、学習済みのNeRFに仮想カメラ情報を入力し、学習済みのNeRFにより生成して出力される仮想視点画像のデータを取得する。学習済みのNeRFにおける仮想視点画像の生成方法としては、後述するボリュームレンダリング法を用いることができる。S506の後、S507にて、出力部406は、S506にて生成された仮想視点画像を出力する。S507の後、画像処理装置102は、図5に示すフローチャートの処理を終了する。
【0035】
図6は、実施形態1に係る学習部404における学習処理の流れの一例を示すフローチャートであって、図5に示すS505の処理の詳細な流れの一例を示すフローチャートである。当該フローチャートの処理は、図5に示すS504の処理の後に実行される。まず、S601にて、学習部404は、NeRFの学習を行う際の学習のエポック数を取得する。エポック数とは、深層学習における学習回数を表す数値である。本実施形態においてエポック数は、学習画像データがnL枚の撮像画像のデータあった場合に、各撮像画像データを用いた学習を、撮像画像データごとにそれぞれ何回行うかを示す指標であるものとする。
【0036】
次に、S602にて、学習部404は、S504にて特定された1台以上の撮像装置101の任意の1つの撮像装置101を選択し、選択した撮像装置101の撮像パラメータをNeRFに入力する。NeRFに入力される撮像パラメータには、少なくとも撮像装置101の位置及び姿勢を示す情報が含まれる。
【0037】
なお、非特許文献1に開示されているNeRFは、多層パーセプトロン(以下「MLP」と表記する。)の深層学習ネットワークにより構成されている。本実施形態に係るNeRFは、MLPの深層学習ネットワークにより構成されたものであってもよく、MLP以外の深層学習ネットワークにより構成されたものであってもよい。本実施形態に係るNeRFがMLPの深層学習ネットワークにより構成されたものである場合、NeRFの学習フェーズにおいては、非特許文献1に開示の手法と同様に、簡単には、以下のような処理がNeRFにおいて実行される。
【0038】
まず、学習部404により、撮像装置101の位置及び姿勢を示す情報がNeRFに入力される。このとき、放射輝度場の高周波成分の変化についても捉えられるように、学習部404にておいて、入力する情報を多次元化する変換処理を行い、当該変換処理後の情報をNeRFに入力することが好適である。次に、NeRFは、入力された撮像装置101の位置に対応する3次元空間の位置から、生成予定の大きさの画像を3次元空間に投影し、投影した画像における各画素の方向に向かって当該位置から仮想の光線を射出する。次に、NeRFは、3次元空間における、射出した光線上に存在する複数の点をサンプリングして、サンプリングした各点の色と体積密度とを算出する。次に、NeRFは、算出した複数の点の色と体積密度とを、射出した光線ごとに、撮像装置101の位置に対応する3次元空間の位置から積算することにより画像を生成する。このような画像の生成方法は、一般にボリュームレンダリング法と呼ばれる。最後に、NeRFは、生成した画像のデータを出力する。
【0039】
S602の後、S603にて、学習部404は、S602にてNeRFに入力した撮像パラメータに対応する撮像装置101の撮像画像データを正解の学習画像データ(教師画像データ)として、NeRFの重みパラメータを更新する。具体的には、学習部404は、NeRFが生成して出力した画像のデータと、当該学習画像データとの差分が小さくなるように、NeRFの重みパラメータを更新する。次に、S604にて、学習部404は、S504にて特定された全ての撮像装置101の撮像パラメータをS602にて入力したか否かを判定する。S604にて少なくとも一部の撮像装置101の撮像パラメータが入力されていないと判定された場合、学習部404は、S602の処理に戻る。このとき、S602にて、学習部404は、S504にて特定された全ての撮像装置101のうちの、撮像パラメータが未だ入力されていない撮像装置101の撮像パラメータをNeRFに入力する。その後、学習部404は、S604にて全ての撮像装置101の撮像パラメータが入力されたと判定されるまでの間、S602からS604までの処理を繰り返し実行する。
【0040】
S604にて全ての撮像装置101の撮像パラメータが入力されたと判定された場合、S605にて、学習部404は、NeRFの学習回数がS601にて取得されたエポック数に到達したか否かを判定する。具体的には、学習部404は、NeRFの学習回数が、S504にて特定された各撮像装置101の撮像画像データごとに、エポック数に到達したか否かを判定する。S605にてエポック数に到達していないと判定された場合、学習部404は、S602の処理に戻って、S605にてエポック数に到達したと判定されるまでの間、S602からS605までの処理を繰り返し実行する。なお、この場合、学習部404は、学習回ごとに、S604にて全ての撮像装置101の撮像パラメータが入力されたと判定されるまでの間、S602からS604までの処理を繰り返し実行する。S605にてエポック数に到達したと判定された場合、学習部404は、図6に示すフローチャートの処理、すなわち、S505の処理を終了する。
【0041】
なお、本実施形態では、学習回数がエポック数に到達することが学習部404におけるNeRFの学習処理の終了条件であるものとして説明したが、学習処理の終了条件は、これに限定されるものではない。例えば、学習部404は、NeRFの重みパラメータの更新量が所定の範囲以内に収まったり、NeRFにより生成される画像の変化量が所定の基準より小さくなったりした場合に、学習を終了してもよい。
【0042】
以上のように、本実施形態では、NeRFの学習の際に、仮想カメラの姿勢又は位置に近い撮像装置101を特定し、特定した撮像装置101の撮像画像データのみを学習画像データとして用いるように画像処理装置102を構成した。このように構成した画像処理装置102によれば、NeRFの学習に用いる学習画像の枚数を削減することよりNeRFの学習時間を短縮しつつ、オブジェクト106の放射輝度場を高精度に推定でき、品質の劣化の少ない仮想視点画像を生成することができる。
【0043】
[実施形態2]
実施形態1に係る画像処理装置102は、仮想カメラの姿勢又は位置に近い撮像装置101の撮像画像データのみをNeRFの学習画像データとして用いて、NeRFの学習を行うものであった。実施形態1において説明したNeRFの学習方法では、仮想カメラの姿勢又は位置に近い撮像装置101の数が十分に多い場合には、高精度の放射輝度場の推定が可能である。しかしながら、仮想カメラの姿勢又は位置に近い撮像装置101の数が少ない場合には、高精度の放射輝度場の推定ができないことがある。そこで、実施形態2では、特定部403が特定した撮像装置101の撮像画像データのみを学習画像データとして用いるのではなく、全ての撮像装置101の撮像画像データを学習画像データとして用いつつ、NeRFの学習時間を短縮する形態について説明する。なお、実施形態2に係る画像処理装置102(以下、単に「画像処理装置102」と表記する。)の機能構成は、図2及び図4に一例として示す実施形態1に係る画像処理装置102と同様である。実施形態2では、実施形態1との差異のある内容を中心に説明する。
【0044】
実施形態2に係る学習部404(以下、単に「学習部404」と表記する。)は、実施形態1において説明した学習処理を実行する前に、全ての撮像装置101の撮像画像データを学習画像データとして用いてNeRFの学習を所定の回数だけ行う。全ての撮像装置101の撮像画像データを学習画像データとして学習に用いることにより、仮想カメラの姿勢又は位置に近い撮像装置101の撮像画像データのみを学習画像データとして用いる場合と比較して、より高精度の放射輝度場の推定を行うことができる。具体的には、学習部404は、全ての撮像装置101の撮像画像データを学習画像データとして用いる学習処理と、仮想カメラの姿勢又は位置に近い撮像装置101の撮像画像データのみを学習画像データとして用いる学習処理とを行う。すなわち、学習部404は、全ての撮像装置101の撮像画像データを学習画像データとして用いて学習した後のNeRFに対して、仮想カメラの姿勢又は位置に近い撮像装置101の撮像画像データのみを学習画像データとして用いた学習を更に行う。
【0045】
より具体的には、例えば、従来のNeRFの学習では、全ての撮像装置101の撮像画像データを学習画像データとして用いて、n回の学習を行っていた。これに対して、本実施形態におけるNeRFの学習では、まず、全ての撮像装置101の撮像画像データを学習画像データとして用いてnD回の学習を行う。その後、仮想カメラの姿勢又は位置に近い撮像装置101の撮像画像データのみを学習画像データとして用いてnT回(n-nD回)の学習を行う。このような学習方法によれば、仮想カメラの姿勢又は位置に近い撮像装置101の撮像画像データのみを学習画像データとして用いるnT回の学習では、全ての撮像装置101の撮像画像データとの差分だけ、学習画像データを削減できる。結果として、本実施形態に係る画像処理装置102によれば、従来の、全ての撮像装置101の撮像画像データを学習画像データとして用いてn回の学習を行う場合と比較して、NeRFの学習時間を短縮することができる。
【0046】
図7を参照して、画像処理装置102の動作について説明する。なお、画像処理装置102は、実施形態1に係る画像処理装置102と同様に、図5のフローチャートに示すS501からS507までの処理を順次実行するが、S505における学習部404の処理が実施形態1に係る学習部404の処理とは異なる。図7を参照して、学習部404と実施形態1に係る学習部404との処理の違いを説明する。図7は、実施形態2に係る学習部404における学習処理の流れの一例を示すフローチャートであって、図5に示すS505の処理の詳細な流れの一例を示すフローチャートである。当該フローチャートの処理は、図5に示すS504の処理の後に実行される。なお、図7に示すフローチャートの説明において、図6のフローチャートに示すステップと同一の処理を行うステップについては、同一の符号を付して説明を省略する。
【0047】
まず、S701にて、学習部404は、NeRFの学習を行う際の学習のエポック数を取得する。実施形態1にて説明したように、エポック数とは、深層学習における学習回数を表す数値である。本実施形態に係るNeRFの学習は、全ての撮像装置101の撮像画像データを学習画像データとして用いる学習のステップと、仮想カメラの姿勢又は位置に近い撮像装置101の撮像画像データのみを学習画像データとして用いる学習のステップとに分かれる。そのため、学習部404は、全ての撮像装置101の撮像画像データを学習画像データとして用いる学習の第1エポック数と仮想カメラの姿勢又は位置に近い撮像装置101の撮像画像データのみを学習画像データとして用いる学習の第2エポック数とを取得する。
【0048】
次に、S702にて、学習部404は、全ての撮像装置101のうちから任意の撮像装置101を選択し、選択した撮像装置101の撮像パラメータをNeRFに入力する。次に、S703にて、学習部404は、S702にてNeRFに入力した撮像パラメータに対応する撮像装置101の撮像画像データを正解の学習画像データ(教師画像データ)として、NeRFの重みパラメータを更新する。具体的には、学習部404は、NeRFが生成して出力した画像のデータと当該学習画像データとの差分が小さくなるように、NeRFの重みパラメータを更新する。次に、S704にて、学習部404は、全ての撮像装置101の撮像パラメータがS702にて入力されたか否かを判定する。
【0049】
S704にて少なくとも一部の撮像装置101の撮像パラメータが入力されていないと判定された場合、学習部404は、S702の処理に戻る。このとき、S702にて、学習部404は、全ての撮像装置101のうちの、撮像パラメータが未だ入力されていない撮像装置101の撮像パラメータをNeRFに入力する。その後、学習部404は、S704にて全ての撮像装置101の撮像パラメータが入力されたと判定されるまでの間、S702からS704までの処理を繰り返し実行する。S704にて全ての撮像装置101の撮像パラメータが入力されたと判定された場合、S705にて、学習部404は、NeRFの学習回数がS701にて取得された第1エポック数に到達したか否かを判定する。具体的には、学習部404は、NeRFの学習回数が、全ての撮像装置101のそれぞれの撮像画像データごとに、第1エポック数に到達したか否かを判定する。
【0050】
S705にて第1エポック数に到達していないと判定された場合、学習部404は、S702の処理に戻って、S705にて第1エポック数に到達したと判定されるまでの間、S702からS705までの処理を繰り返し実行する。なお、この場合、学習部404は、学習回ごとに、S704にて全ての撮像装置101の撮像パラメータが入力されたと判定されるまでの間、S702からS704までの処理を繰り返し実行する。
【0051】
S705にて第1エポック数に到達したと判定された場合、学習部404は、S602からS604までの処理を実行する。具体的には、学習部404は、S604にて全ての撮像装置101の撮像パラメータが入力されたと判定されるまでの間、S602からS604までの処理を繰り返し実行する。S604にて全ての撮像装置101の撮像パラメータが入力されたと判定された場合、S706にて、学習部404は、NeRFの学習回数がS701にて取得された第2エポック数に到達したか否かを判定する。具体的には、学習部404は、NeRFの学習回数が、S504にて特定された各撮像装置101の撮像画像データごとに、第2エポック数に到達したか否かを判定する。
【0052】
S706にて第2エポック数に到達していないと判定された場合、学習部404は、S602の処理に戻って、S706にてエポック数に到達したと判定されるまでの間、S602からS706までの処理を繰り返し実行する。なお、この場合、学習部404は、学習回ごとに、S604にて全ての撮像装置101の撮像パラメータが入力されたと判定されるまでの間、S602からS604までの処理を繰り返し実行する。S706にて第2エポック数に到達したと判定された場合、学習部404は、図7に示すフローチャートの処理、すなわち、S505の処理を終了する。
【0053】
本実施形態では、全ての撮像装置101の撮像画像データを学習画像データとして用いて学習を行った後に、仮想カメラの姿勢又は位置に近い撮像装置101の撮像画像データのみを学習画像データとして用いて学習を行うものとして説明した。しかしながら、上述の学習の順序はあくまで一例であって、NeRFの学習の順序は、上述の順序に限定されるものではない。例えば、画像処理装置102は、仮想カメラの姿勢又は位置に近い撮像装置101の撮像画像データのみを学習画像データとして用いて学習を行った後に、全ての撮像装置101の撮像画像データを学習画像データとして用いて学習を行ってもよい。
【0054】
また、例えば、画像処理装置102は、以下のように、NeRFの学習を行ってもよい。まず、画像処理装置102は、全ての撮像装置101の撮像画像データを学習画像データとして用いて学習を行った後に、仮想カメラの姿勢又は位置に近い撮像装置101の撮像画像データのみを学習画像データとして用いて学習を行う。続いて、画像処理装置102は、再度、全ての撮像装置101の撮像画像データを学習画像データとして用いて学習を行う。すなわち、画像処理装置102は、全ての撮像装置101の撮像画像データを学習画像データとして用いた学習と仮想カメラの姿勢又は位置に近い撮像装置101の撮像画像データのみを学習画像データとして用いた学習とを複数回に分けて行ってもよい。
【0055】
また、本実施形態では、仮想カメラの姿勢又は位置に近い撮像装置101の撮像画像データのみを学習画像データとして用いた学習を1つの学習処理として実行するものとして説明した。しかしながら、画像処理装置102は、仮想カメラの姿勢又は位置に近い撮像装置101の撮像画像データのみを学習画像データとして用いた学習を複数の学習処理に分けて実行してもよい。
【0056】
例えば、画像処理装置102は、仮想カメラの姿勢又は位置に近い撮像装置101の撮像画像データのみを学習画像データとして用いた学習を、以下のようにして、複数の学習処理に分けて実行する。式(1)において、仮想カメラの姿勢を示す方向ベクトルと各撮像装置101の姿勢を示す方向ベクトルとが成す角度の閾値θthを予め複数用意しておく。具体的には、例えば、閾値θthとして、第1閾値θth1と第2閾値θth2とを予め用意しておく。まず、画像処理装置102の特定部403は、第1閾値θth1を用いて1台以上の撮像装置101を特定する。続いて、画像処理装置102の学習部404は、特定部403が第1閾値θth1を用いて特定した各撮像装置101の撮像画像データを学習画像データとして用いた学習を行う。続いて、画像処理装置102の特定部403は、第2閾値θth2を用いて1台以上の撮像装置101を特定する。特定部403が第2閾値θth2を用いて特定した各撮像装置101の撮像画像データを学習画像データとして用いた学習を行う。続いて、画像処理装置102の学習部404は、全ての撮像装置101の撮像画像データを学習画像データとして用いた学習を行う。
【0057】
また、画像処理装置102は、仮想カメラの姿勢又は位置に近い撮像装置101の撮像画像データを重要な学習画像データとして、当該学習画像データを用いた学習の際に、学習の重みを高く設定する等、学習画像データごとに学習の重みを変更してもよい。
【0058】
なお、本実施形態では、学習回数がエポック数に到達することが学習部404におけるNeRFの学習処理の終了条件であるものとして説明したが、学習処理の終了条件は、これに限定されるものではない。例えば、学習部404は、実施形態1にて上述したように、NeRFの重みパラメータの更新量が所定の範囲以内に収まったり、NeRFにより生成される画像の変化量が所定の基準より小さくなったりした場合に、NeRFの学習を終了してもよい。
【0059】
以上のように、本実施形態では、NeRFの学習の際に、仮想カメラの姿勢又は位置に近い撮像装置101の撮像画像データのみではなく、全ての撮像装置101の撮像画像データについても学習画像データとして用いるように画像処理装置102を構成した。このように構成した画像処理装置102によれば、仮想カメラの姿勢又は位置に近い撮像装置101が少ない場合でも、NeRFの学習時間を短縮しつつ、オブジェクト106の放射輝度場を高精度に推定でき、品質の劣化の少ない仮想視点画像を生成できる。
【0060】
[実施形態3]
実施形態1及び2に係る画像処理装置102は、仮想カメラ情報、すなわち、仮想カメラの位置又は姿勢に基づいて、学習画像データとして用いる撮像画像データを出力する撮像装置101を特定するものであった。実施形態1及び2に係る画像処理装置102によれば、このように特定された撮像装置101の撮像画像データを学習画像データとして重点的に学習することにより、NeRFの学習時間を短縮することができる。実施形態3では、オブジェクト106の重要度に基づいてNeRFの学習条件を決定して、決定した学習条件に基づいて、NeRFの学習を行う形態について説明する。
【0061】
図8は、実施形態3に係る画像処理装置102(以下、単に「画像処理装置102」と表記する。)の機能構成の一例を示すブロック図である。画像処理装置102は、仮想カメラ情報取得部400、撮像パラメータ取得部401、画像取得部402、特定部830、学習部804、生成部405、及び出力部406を有する。すなわち、画像処理装置102は、実施形態1に係る画像処理装置102と比較して、実施形態1に係る画像処理装置102の特定部403及び学習部404が、特定部830及び学習部804にそれぞれ変更されたものである。以下、図8に示す各部のうち、図4に示す各部と同一の処理を行うものについては、図4と同一の符号を付して、説明を省略する。
【0062】
特定部830は、全ての撮像装置101のうちから、NeRFの学習に学習画像データとして用いる撮像画像データを出力する撮像装置101を特定する。特定部830は、重要度決定部831、条件決定部832を有する。以下、重要度決定部831及び条件決定部832の処理について説明する。重要度決定部831は、仮想視点からのオブジェクト106の見え、すなわち、仮想視点画像におけるオブジェクト106に対応する画像領域(以下、「オブジェクト106の領域」と呼ぶ。)に基づいて、そのオブジェクト106の重要度を決定する。重要度決定部831は、複数のオブジェクトが仮想カメラの画角に入る場合、各オブジェクトの重要度を決定する。条件決定部832は、重要度決定部831が決定した各オブジェクトの重要度に基づいて、NeRFの学習を行う際の学習条件を決定する。以下、一例として、オブジェクトA、オブジェクトB、及びオブジェクトCの3つのオブジェクトが仮想カメラの画角内に存在する場合について説明する。
【0063】
例えば、オブジェクトAの重要度が他のオブジェクトの重要度より高いとされた場合、学習済みNeRFにより生成される仮想視点画像においてオブジェクトAが高品質な像となるような放射輝度場が推定され得るようにNeRFの学習条件を決定する。オブジェクトの重要度は、例えば、仮想視点画像におけるオブジェクト106の領域の大きさに基づいて決定される。例えば、当該領域の大きさがより大きいオブジェクト106の重要度がより高くなるように決定される。オブジェクト106の重要度の決定方法は、上述の方法に限定されるものではなく、例えば、オブジェクト106の重要度は、ユーザが重点的に見たいと所望するオブジェクト106を、ユーザがUIパネル103等を介して指定することにより決定されてもよい。
【0064】
例えば、条件決定部832は、重要度が高いオブジェクト106を画角に捉え得る撮像装置101の撮像画像データを、他の撮像装置101の撮像画像データよりも多く学習画像データとして用いてNeRFの学習を行うように学習条件を決定する。このような学習条件の決定により、NeRFの学習に学習画像データとして用いる撮像画像データが削減され、NeRFの学習時間を短縮しつつ、重要度の高いオブジェクトの放射輝度場を高精度に推定することができる。
【0065】
図9乃至13を参照して、画像処理装置102の動作について説明する。図9は、実施形態3に係る画像処理装置102の一連の処理フローの一例を示すフローチャートである。なお、図9のフローチャートに示す各ステップの処理は、CPU201が、所定のプログラムを記憶部203から読み出してメインメモリ202に展開し、これをCPU201が実行することにより実現される。図9に示すフローチャートの説明において、図5のフローチャートに示すステップと同一の処理を行うステップについては、同一の符号を付して説明を省略する。
【0066】
まず、画像処理装置102は、S501からS503までの処理を実行する。S503の後、S901にて、重要度決定部831は、撮像対象領域に存在する1つ以上のオブジェクトの重要度をオブジェクトごとに決定する。S901におけるオブジェクトの重要度の決定処理の詳細については後述する。S901の後、S902にて、条件決定部832は、S901にて決定されたオブジェクトの重要度に基づいて、NeRFの学習条件を決定する。S902における学習条件の決定処理の詳細について後述する。S902の後、S903にて、学習部804は、S902にて決定された学習条件に基づいてNeRFの学習を行い、学習の結果として得られる学習済みのNeRFを生成部405に送信する。S903におけるNeRFの学習処理の詳細については後述する。S903の後、画像処理装置102は、S506及びS507の処理を実行し、S507の後、画像処理装置102は、図9に示すフローチャートの処理を終了する。
【0067】
図10は、実施形態3に係る複数の撮像装置101の配置、及び撮像対象領域に存在するオブジェクト106の一例を示す図である。図10には、一例として、10台の撮像装置101(101a乃至101j)のそれぞれの配置が示されている。また、図10には、一例として、3つのオブジェクト106(106a乃至106c)が示されている。更に、図10には、仮想カメラ301の3次元空間における位置が示されている。
【0068】
図11は、実施形態3に係る各撮像装置101による撮像により得られる撮像画像の一例を示す図である。図11(a)は、仮想カメラ301の位置及び姿勢における仮想視点画像1100の一例を示しており、仮想視点画像1100は、オブジェクト106a乃至106cのそれぞれに対応する像を含んでいる。図11(b)は、撮像装置101aによる撮像により得られる撮像画像1101の一例を示しており、撮像画像1101は、オブジェクト106a乃至106cのそれぞれに対応する像を含んでいる。図11(c)乃至(k)は、図11(b)と同様に、撮像装置101b乃至101jによる撮像により得られる撮像画像1102乃至1110の一例を示している。また、撮像画像1102乃至1110のそれぞれは、オブジェクト106a乃至106cのそれぞれに対応する像を含んでいる。
【0069】
重要度決定部831は、例えば、まず、仮想視点画像におけるオブジェクト106a乃至106cのそれぞれの領域の大きさを算出する。次に、重要度決定部831は、算出した当該領域の大きさに基づいて、オブジェクトごとの重要度を決定する。また、重要度決定部831は、各撮像画像1101乃至1110のそれぞれにおけるオブジェクト106a乃至106cのそれぞれの領域の大きさを算出する。次に、重要度決定部831は、決定した各オブジェクト106の重要度と、各撮像画像1101乃至1110における各オブジェクト106の領域の大きさとに基づいて、撮像画像1101乃至1110ごとに、各オブジェクト106の領域の影響度を決定する。ここで、影響度とは、各撮像装置101の撮像画像データを学習画像データとしてNeRFの学習を行う場合における、学習画像データが、各オブジェクト106の放射輝度場の推定精度に与える影響の度合いを表す指標である。具体的には、影響度は、NeRFの学習に用いられる撮像画像における各オブジェクト106の領域が、学習済みのNeRFにより生成される仮想視点画像における各オブジェクト106の領域の画質に与える影響の度合いを表す指標である。
【0070】
条件決定部832は、例えば、撮像画像における各オブジェクト106の領域の影響度が、対応するオブジェクト106の重要度に対して同程度又はより高い撮像画像のデータを学習画像データとして用いて、NeRFの学習を行うように学習条件を決定する。また、条件決定部832は、重要度の高いオブジェクト106の領域を含む撮像画像のデータほど、より多くの回数、学習画像データとして用いられて、NeRFの学習が行われるように学習条件を設定してもよい。
【0071】
例えば、重要度が、オブジェクト106a、オブジェクト106b、オブジェクト106cの順に大きい場合、条件決定部832は、学習回数が、nA>nB>nCとなるようにNeRFの学習条件を決定する。ここで、nAは、最も重要度の高いオブジェクト106aの領域を含む撮像画像のデータを学習画像データとして用いた、NeRFの学習回数を表す。同様に、nBは、重要度が2番目に高いオブジェクト106bの領域を含む撮像画像のデータを学習画像データとして用いた、NeRFの学習回数を表す。同様に、nCは、最も重要度の低いオブジェクト106cの領域を含む撮像画像のデータを学習画像データとして用いた、NeRFの学習回数を表す。なお、仮想視点画像1100におけるオブジェクト106cの領域が非常に小さい場合、すなわち、オブジェクト106cの重要度が非常に低い場合、条件決定部832は、nCの値を0に設定してもよい。
【0072】
また、条件決定部832は、上述の、オブジェクト106の重要度に基づく学習に加えて、全ての撮像装置101の撮像画像データを学習画像データとして用いた学習(以下「デフォルト学習」と呼ぶ。)を行う旨の学習条件を決定してもよい。この場合、例えば、合計の学習回数がn回であれば、条件決定部832は、nA、nB、nC、及び、nDの合計値がnとなるようにnA、nB、nC、及びnDの値を設定する。ここで、nDは、デフォルト学習の学習回数を表す。なお、オブジェクト106の重要度に基づく学習を十分に行うために、デフォルト学習の学習回数を表すnDについては、可能な限り小さい値を設定しておくのがよい。
【0073】
図12を参照して、S901の処理について説明する。図12は、実施形態3に係る重要度決定部831における処理の流れの一例を示すフローチャートであって、S901における処理の詳細な流れの一例を示すフローチャートである。当該フローチャートの処理は、図9に示すS503の処理の後に実行される。まず、S1201にて、重要度決定部831は、仮想カメラ301の姿勢に最も近い姿勢の撮像装置101を特定する。例えば、重要度決定部831は、式(1)のように、仮想カメラ301の姿勢を示す方向ベクトルと仮想カメラ301の姿勢を示す方向ベクトルの内積値に基づいて、仮想カメラ301の姿勢に最も近い姿勢の撮像装置101を特定する。
【0074】
次に、S1202にて、重要度決定部831は、S1201にて特定された撮像装置101を基準として、全ての撮像装置101のうちから、2台以上の撮像装置101を疎らに選択する。S1202にて選択された2台以上の撮像装置101を用いて、重要度決定部831は、次のステップにおいてオブジェクト106の粗い形状の推定を行う。そのため、S1202にて、重要度決定部831は、全ての撮像装置101のうちから、撮像装置101同士の姿勢の方向ベクトルの成す角度が水平方向に60度等の略等間隔で並ぶ2台以上の撮像装置を選択することが好適である。
【0075】
具体的には、例えば、重要度決定部831は、図3(a)に一例として示す全ての撮像装置101のうちから、仮想カメラの姿勢に最も近い姿勢の撮像装置101を選択した後に、時計回りに4台毎に1台の撮像装置101を選択する。このような選択により、図3(c)に一例として示す5台の撮像装置101が選択される。選択する撮像装置101の数を多くするほど、オブジェクト106の形状の推定精度が高くなる。しかしながら、選択する撮像装置101の数を多くするほど、形状の推定処理に要する演算量が増大する。そのため、ユースケースに応じて選択する撮像装置101の台数又は間隔等を変更することが好適である。
【0076】
S1202の後、S1203にて、重要度決定部831は、S502にて取得された多視点画像データのうちのS1202にて選択された撮像装置101の撮像画像データを用いて、オブジェクト106の形状を推定する。例えば、重要度決定部831は、ビジュアルハル(以下「VH」と呼ぶ。)法によりオブジェクト106の形状を推定する。具体的には、重要度決定部831は、まず、各撮像画像からオブジェクト106の領域をシルエットとして抽出する。続いて、重要度決定部831は、抽出したシルエットと、S501にて取得された撮像装置101の撮像パラメータとから、オブジェクト106の3次元形状を推定して3次元形状データを生成する。具体的には、重要度決定部831は、撮像装置101の撮像パラメータに基づいて、抽出したシルエットを3次元空間に投影し、重要度決定部831は、投影領域の積集合をオブジェクトの形状として定義して推定する。
【0077】
より具体的には、重要度決定部831は、まず、所定の大きさのボクセルを敷き詰めた3次元空間を定義する。続いて、重要度決定部831は、3次元空間に敷き詰めた各ボクセルを、撮像パラメータを用いて、3次元座標から、各撮像装置101の2次元の撮像画像上に射影する。重要度決定部831は、射影された各ボクセルが各撮像画像において抽出したオブジェクト106のシルエットと重なっているか否かを判定する。重要度決定部831は、重なっていると判定された撮像画像の枚数が予め定めらされた閾値以上となるボクセルについては、当該ボクセルがオブジェクト106の形状の一部であるものとする。例えば、重要度決定部831は、3次元空間にボクセルを敷き詰める際に、全ボクセルのフラグの値を0に初期化としておき、オブジェクト106の形状の一部であると判定されたボクセルのフラグの値を1に変更する。フラグの値が1のボクセルの集合が、オブジェクト106の形状を示す3次元形状データとなる。
【0078】
本実施形態では、重要度決定部831は、VH法等の3次元形状の再構成技術を用いてオブジェクト106の形状を推定するものとして説明するが、オブジェクト106の形状の推定方法は、VH法を用いる方法に限定されるものではない。例えば、重要度決定部831は、深層学習等の結果として得られる学習済モデルを用いて、オブジェクト106の形状を推定してもよい。この場合、重要度決定部831は、複数の撮像装置101の撮像画像データを用いてオブジェクト106の形状を推定するとは限らない。例えば、重要度決定部831は、S1201にて特定された撮像装置101の撮像画像データ等の、1つの撮像装置101の撮像画像データのみを用いてオブジェクト106の形状を推定してもよい。
【0079】
S1203の後、S1204にて、重要度決定部831は、S1203にて推定されたオブジェクト106の形状を、仮想カメラ情報に基づいて、生成予定の仮想視点画像に逆射影する。ただし、オブジェクト106が複数存在する場合、逆射影の際に各オブジェクト106の形状の領域がどのオブジェクト106に対応するかについては、仮想カメラと撮像装置101との間で整合がとれているものとする。次に、S1205にて、重要度決定部831は、S1204にて逆射影された仮想視点画像におけるオブジェクト106のシルエットの大きさ、すなわち仮想視点画像におけるオブジェクト106の領域の大きさに基づいてオブジェクト106の重要度を決定する。以下、オブジェクト106の領域の大きさは、当該領域に含まれる画素の数により決定されるものとして説明するが、オブジェクト106の領域の大きさは、当該領域の縦方向又は横方向の画素の最大値等、他の指標により決定されてもよい。
【0080】
例えば、オブジェクト106a乃至106cのそれぞれの形状の領域が仮想視点画像に逆射影される場合、仮想視点画像におけるオブジェクト106aのシルエットの大きさが500画素であるとする。また、仮想視点画像における、オブジェクト106bのシルエットの大きさが300画素であり、オブジェクト106cのシルエットの大きさが200画素であるものとする。この場合、例えば、重要度決定部831は、オブジェクト106a、106b、及び106cのそれぞれの重要度が、順に、0.5、0.3、及び0.2であると決定する。
【0081】
上述の例では、オブジェクト106の重要度は、仮想視点画像におけるオブジェクト106の領域の大きさのみに基づいて決定されるものとして説明したが、これに加えて、ユーザにより予め設定された仮の重要度に基づいて決定されてもよい。例えば、ユーザは、オブジェクト106の重要度について予め仮の重要度を設定しておく。ユーザは、オブジェクト106の仮の重要度として、オブジェクト106の種類、ユーザの興味又は関心等のユーザが考えるオブジェクト106の重要度に基づいて、自由に設定することができる。例えば、この場合、重要度決定部831は、仮想視点画像におけるオブジェクト106の領域の大きさに基づいて決定した重要度に対して、オブジェクト106ごとに予め設定された仮の重要度に基づく所定の重みづけをして真の重要度を算出する。
【0082】
具体的には、例えば、ユーザは、オブジェクト106a、オブジェクト106b、及びオブジェクト106cのそれぞれに対する仮の重要度として、順に、0.2、0.8、及び0.0を事前に設定しておく。重要度決定部831は、例えば、事前に設定された仮の重要度と、仮想視点画像におけるオブジェクト106同士の領域の大きさの比とを乗算することにより、真の重要度を決定する。すなわち、あるオブジェクト106における、オブジェクト106同士の領域に大きさの比をIs、ユーザによって設定された仮の重要度をIuとすると、真の重要度Iは、次式(3)のように表せる。
【0083】
I=Is×Iu ・・・ 式(3)
例えば、上述の場合、オブジェクト106a、オブジェクト106b、及びオブジェクト106cのそれぞれの真の重要度は、順に、0.5×0.2=0.1、0.3×0.8=0.24、及び0.2×0.0=0.00となる。なお、重要度決定部831は、各オブジェクト106の重要度の合計が1となるように、重要度を補正してもよい。上述の例の場合、オブジェクト106a、オブジェクト106b、及びオブジェクト106cのそれぞれの真の重要度は、順に、0.29、0.71、及び0.00となる。
【0084】
S1205の後、S1206にて、重要度決定部831は、各撮像装置101の撮像画像における各オブジェクト106の領域の大きさに基づいて、各撮像装置101の撮像画像データを学習画像データとして学習を行う際の影響度を決定する。具体的には、例えば、重要度決定部831は、S1205におけるオブジェクト106の重要度の決定方法と同様の方法により、NeRFの学習を行う際の影響度を決定する。より具体的には、例えば、重要度決定部831は、各撮像装置101の撮像画像における各オブジェクト106の領域の大きさの比に基づいて、撮像画像データごとに、各オブジェクト106の影響度を決定する。
【0085】
各撮像装置101の撮像画像における各オブジェクト106の領域の大きさの情報には、S1203にてVH法を用いてオブジェクト106の形状を推定する際に抽出したオブジェクト106のシルエットの大きさの情報を用いることができる。なお、S1203にてオブジェクト106のシルエットの抽出を行っていない場合には、S1203にて推定されたオブジェクト106の形状の領域を各撮像装置101の撮像画像に逆射影したときのオブジェクト106のシルエットの大きさを算出すればよい。ただし、オブジェクト106が複数存在する場合、逆射影の際に各オブジェクト106の形状の領域がどのオブジェクト106に対応するかについては、仮想カメラと撮像装置101との間で整合がとれているものとする。S1206の後、重要度決定部831は、図12に示すフローチャートの処理、すなわち、S901の処理を終了する。
【0086】
図13を参照して、S902の処理について説明する。図13は、実施形態3に係る条件決定部832における処理の流れの一例を示すフローチャートであって、S902における処理の詳細な流れの一例を示すフローチャートである。当該フローチャートの処理は、図9に示すS901の処理の後に実行される。まず、S1301にて、条件決定部832は、デフォルト学習の学習回数(エポック数)を決定する。ここで、デフォルト学習とは、実施形態2において上述したように、NeRFの学習において、全ての撮像装置101の撮像画像データのそれぞれを学習画像データとして用いる学習である。また、デフォルト学習の学習回数(エポック数)とは、デフォルト学習において、撮像画像データを学習画像データとして用いる学習を、撮像画像データごとに何回行うかを表すものである。なお、この後のステップにおいて、条件決定部832は、影響度の高い撮像画像データを学習画像データとして用いる学習のエポック数を決定する。そのため、条件決定部832は、当該エポック数を増やすために、デフォルト学習のエポック数については、可能な限り小さな値に決定するのが好適である。
【0087】
次に、S1302にて、条件決定部832は、S901にて決定された、各オブジェクト106の重要度と、撮像画像データごとの各オブジェクト106の影響度とに基づいて、撮像装置101ごとにエポック数を決定する。例えば、条件決定部832は、オブジェクト106の重要度に対して同程度又はより高いオブジェクト106の影響度を有する撮像画像データを学習画像データとして用いる学習回数を多くするように、撮像装置101のエポック数を決定する。具体的には、例えば、オブジェクト106a乃至106cのそれぞれの重要度より数パーセント低い値を閾値として、閾値よりも高い影響度を有する撮像画像データを学習画像データとして用いる学習回数を多くするように撮像装置101のエポック数を決定する。
【0088】
例えば、条件決定部832は、多視点画像データを構成する全ての撮像画像データのうちの、オブジェクト106aの重要度の閾値よりも高い影響度を有する各撮像画像データを学習画像データとして、学習画像データごとにnA回の学習を行うように決定する。同様に、条件決定部832は、オブジェクト106bの重要度の閾値よりも高い影響度を有する各撮像画像データを学習画像データとして、学習画像データごとにnB回の学習を行うように決定する。また、同様に、条件決定部832は、オブジェクト106bの重要度の閾値よりも高い影響度を有する各撮像画像データを学習画像データとして、学習画像データごとにnC回の学習を行うように決定する。この場合、全てのオブジェクト106a乃至106cにおいて、重要度の閾値よりも高い影響度を有する撮像画像データについては、学習回数がnA、nB、nC、及びnDの合計値となる。ここで、nDは、デフォルト学習のエポック数である。
【0089】
なお、条件決定部832は、各オブジェクト106の重要度に応じた学習回数を、学習画像データごとに決定してもよい。すなわち、条件決定部832は、重要度の高いオブジェクトの領域を含む撮像画像のデータほど、より多くの回数、学習画像データとして用いて、NeRFの学習が行われるように、nA、nB、及びnCの値を決定してもよい。具体的には、各オブジェクト106の重要度がオブジェクト106a、オブジェクト106b、オブジェクト106cの順である場合、条件決定部832は、nA、nB、nCの順に値が小さくなるように、nA、nB、及びnCの値を決定する。
【0090】
また、本実施形態では、影響度が重要度の閾値よりも高い撮像画像データを学習画像データとして、当該学習画像データをより多くの回数用いて学習を行うものとして説明したが、エポック数の決定は、これに限定されるものではない。例えば、条件決定部832は、重要度の閾値よりも低い影響度を有する撮像画像データを学習画像データとして用いる学習のエポック数を減少させてもよい。また、例えば、条件決定部832は、重要度と同程度の影響度を有する撮像画像データを学習画像データとして用いる学習のエポック数を増加させてもよい。
【0091】
S1302の後、条件決定部832は、図13に示すフローチャートの処理、すなわち、S902の処理を終了する。S902の後、画像処理装置102は、S903の処理を実行する。具体的には、上述したように、S902の後、S903にて、学習部804は、S902にて決定された学習条件に基づいてNeRFの学習を行う。より具体的には、
S903にて、学習部804は、S1302にて決定された各撮像装置101に対応するエポック数に応じて、各撮像装置101の撮像画像データを学習画像データとして用いるNeRFの学習を行う。
【0092】
なお、本実施形態では、学習回数がS1302にて決定されたエポック数に到達することが学習部804におけるNeRFの学習処理の終了条件であるものとして説明したが、学習処理の終了条件は、これに限定されるものではない。例えば、学習部804は、実施形態1及び2にて上述したように、NeRFの重みパラメータの更新量がある所定の範囲以内に収まったり、NeRFにより生成される画像の変化量が所定の基準より小さくなったりした場合に、NeRFの学習を終了してもよい。また、この場合、学習部804は、学習画像データとしてNeRFの学習に用いる撮像画像データによって、学習の終了条件を変更してもよい。例えば、学習部804は、重要度に対して同程度又はより高い影響度を有する撮像画像データを学習画像データとして用いる学習については、学習の終了条件を厳しくしてもよい。また、例えば、学習部804は、重要度よりも低い影響度を有する撮像画像データを学習画像データとして用いる学習については、学習の終了条件を緩くしてもよい。
【0093】
また、学習部804は、NeRFの学習に学習画像データとして用いる撮像画像データによって、学習画像データごとにNeRFの学習の重みを変更してもよい。例えば、学習部804は、重要度より高い影響度を有する撮像画像データについては、NeRFの学習において重要な画像データであるものとして、当該撮像画像データを学習画像データとして用いる学習の際には、NeRFの学習の重みを高く設定してもよい。逆に、重要度より低い影響度を有する撮像画像データについては、NeRFの学習において重要な画像データではないものとして、学習部804は、当該撮像画像データを学習画像データとして用いる学習の際には、NeRFの学習の重みを低く設定してもよい。
【0094】
本実施形態では、推定された各オブジェクト106の形状の領域を生成予定の仮想視点画像に対して逆射影し、当該仮想視点画像における各オブジェクト106のシルエットの大きさに基づいて、各オブジェクト106の重要度が決定されるものとして説明した。また、本実施形態では、各撮像装置101の撮像画像から抽出された各オブジェクト106に対応するシルエットの大きさに基づいて、各オブジェクト106の影響度が決定されるものとして説明した。しかしながら、オブジェクト106の重要度又は影響度を決定する方法は、上述の方法に限定されるものではない。
【0095】
例えば、重要度は、推定されたオブジェクト106の3次元形状と仮想カメラの位置及び姿勢とに基づいて算出し得る、仮想カメラからオブジェクト106までの距離に基づいて決定されてもよい。具体的には、重要度決定部831は、仮想カメラの位置に近いオブジェクト106ほど重要度が高くなるように、仮想カメラからの距離に応じて各オブジェクト106の重要度を決定してもよい。同様に、影響度は、推定されたオブジェクト106の3次元形状と各撮像装置101の位置及び姿勢とに基づいて算出し得る、撮像装置101からオブジェクト106までの距離に基づいて決定されてもよい。具体的には、重要度決定部831は、撮像装置101の位置に近いオブジェクト106ほど影響度が高くなるように、撮像装置101からの距離に応じて各オブジェクト106の影響度を決定してもよい。また、例えば、重要度決定部831は、推定された各オブジェクト106の3次元形状の体積を重要度及び影響度の決定の指標として用いてもよい。また、例えば、推定された各オブジェクト106の3次元形状の体積と、上記のオブジェクト106までの距離とを重要度及び影響度の決定の指標として用いてもよい。
【0096】
以上のように、本実施形態では、推定されたオブジェクトの3次元形状に基づいて、NeRFの学習を行う際の学習条件を決定するように画像処理装置102を構成した。このように構成した画像処理装置102によれば、重要度の高いオブジェクト106が写らない撮像画像データを学習画像データとして用いるNeRFの学習の回数を減らすことができ、NeRFの学習時間を短縮することが可能になる。更に、画像処理装置102によれば、NeRFの学習時間を短縮しつつ、重要度の高いオブジェクト106の放射輝度場を高精度に推定でき、オブジェクト106の領域において品質の劣化の少ない仮想視点画像を生成することができる。
【0097】
[実施形態4]
実施形態3に係る画像処理装置102は、VH法を用いて粗く推定したオブジェクト106の形状の領域を仮想視点画像に逆射影し、仮想視点画像におけるオブジェクト106の領域の大きさに基づいてオブジェクト106の重要度を決定するものであった。また、実施形態3に画像処理装置102は、各撮像画像のそれぞれにおけるオブジェクト106の領域の大きさに基づいて、NeRFの学習の際に学習画像データとして用いる撮像画像データにおけるオブジェクト106の影響度を決定するものであった。更に、実施形態3に画像処理装置102は、決定したオブジェクト106の重要度、及び、決定したオブジェクト106の影響度に基づいて、撮像画像データを学習画像データとして用いる際の学習回数(エポック数)を決定するものであった。ここで、VH法等によるオブジェクト106の3次元形状の推定処理は、演算量が多く、長い処理時間を要する。そこで、実施形態4では、オブジェクト106の形状の推定を行わずに、2次元画像である撮像画像のデータから、仮想視点画像におけるオブジェクト106の領域の大きさを推定する形態について説明する。
【0098】
実施形態4に係る画像処理装置102の機能構成は、実施形態3に係る画像処理装置102の機能構成と同様であり、実施形態4に係る重要度決定部831の処理のみが実施形態3に係る重要度決定部831の処理と異なる。すなわち、図9に示すフローチャートにおける各ステップにおいて、実施形態4に係る画像処理装置102の処理のうち、S901の処理のみが実施形態3に係る画像処理装置102の処理と異なる。以下、実施形態4に係る画像処理装置102を、単に「画像処理装置102」と表記する。
【0099】
図14は、実施形態4に係る重要度決定部831の処理の流れの一例を示すフローチャートであって、図9に示すS901における処理の詳細な流れの一例を示すフローチャートである。実施形態4に係る重要度決定部831(以下、単に「重要度決定部831」と表記する。)は、撮像画像に対して2次元のセグメンテーションを行うことにより、撮像画像におけるオブジェクト106の領域を抽出する。具体的なステップとしては、以下のとおりである。
【0100】
まず、S1401にて、重要度決定部831は、実施形態3に係る重要度決定部831と同様に、仮想カメラの姿勢に最も近い撮像装置101を特定する。次に、S1402にて、重要度決定部831は、S1401にて特定された撮像装置101の撮像画像におけるオブジェクト106の領域を抽出する。具体的には、重要度決定部831は、当該撮像画像に対して2次元のセグメンテーションを行い、主要なオブジェクト106の領域を、撮像画像における背景領域と分離することにより、オブジェクト106の領域を抽出する。例えば、重要度決定部831は、SNAKE法、レベルセット法、又は前景背景分離法等の画像処理方法を用いて、撮像画像に対するセグメンテーションを行う。セグメンテーションの方法は、上述のような画像処理による方法に限定されるものではない。例えば、重要度決定部831は、セマンティックセグメンテーション等の深層学習の結果として得られる学習済モデルを用いて、撮像画像に対するセグメンテーションを行ってもよい。このような手法を用いることにより、重要度決定部831は、撮像画像における各オブジェクト106の領域を抽出することができる。
【0101】
撮像対象領域に複数のオブジェクト106が存在する場合、複数のオブジェクト106複数の領域のそれぞれがどのオブジェクト106に対応するかについては、例えば、セグメンテーションを行った後にオブジェクト106の領域ごとにラベリングが行われる。また、重要度決定部831は、セグメンテーションを行う際に、既知のラベルを考慮してセグメンテーションを行ってもよい。ただし、オブジェクト106の領域がどのオブジェクト106に対応するかについては、セグメンテーションが行われる際に、撮像装置101同士の間で整合がとれているものとする。
【0102】
次に、S1403にて、重要度決定部831は、S1402にて抽出された各オブジェクト106の領域に含まれる画素の数を取得し、取得した画素数を仮想視点画像におけるオブジェクト106の領域の大きさとして取得する。ここで、本実施形態では、重要度決定部831は、オブジェクト106の3次元形状の推定を行わない。そのため、重要度決定部831は、仮想視点画像におけるオブジェクト106の領域の大きさについては、直接、算出できない。したがって、重要度決定部831は、S1401にて特定された撮像装置101の撮像画像におけるオブジェクト106の領域の大きさを、仮想視点画像におけるオブジェクト106の領域の大きさとみなす。
【0103】
次に、S1404にて、重要度決定部831は、各オブジェクト106の重要度を決定する。S1404におけるオブジェクト106の重要度の決定処理は、図12に示すS1205におけるオブジェクト106の重要度の決定処理と同様であるため説明を省略する。次に、S1405にて、重要度決定部831は、全ての撮像装置101のうちの、S1401にて特定された撮像装置101以外の各撮像装置101の撮像画像における各オブジェクト106の領域を抽出する。S1405におけるオブジェクト106の領域の抽出方法は、S1402におけるオブジェクト106の領域の抽出方法と同様であるため説明を省略する。
【0104】
次に、S1406にて、重要度決定部831は、S1405にて抽出された各オブジェクト106の領域に含まれる画素の数を取得し、取得した画素数を、各撮像画像におけるオブジェクト106の領域の大きさとして取得する。また、重要度決定部831は、S1402にて抽出された各オブジェクト106の領域に含まれる画素の数を取得し、取得した画素数を、S1401にて特定された撮像装置101の撮像画像におけるオブジェクト106の領域の大きさとして取得する。なお、S1402の処理の説明において上述したように、複数のオブジェクト106の領域がどのオブジェクト106に対応するかについては、セグメンテーションを行う際に、撮像装置101同士の間で整合がとれているものとする。
【0105】
次に、S1407にて、重要度決定部831は、S1404にて決定された各オブジェクト106の重要度、及び、S1406にて取得された、各撮像画像における各オブジェクト106の領域の大きさに基づいて、NeRFの学習を行う際の影響度を決定する。具体的には、重要度決定部831は、各オブジェクト106の重要度と、各撮像画像における各オブジェクト106の領域の大きさとに基づいて、NeRFの学習の際に学習画像データとして用いる撮像画像データにおけるオブジェクト106の影響度を決定する。S1407におけるオブジェクト106の影響度の決定処理は、図12に示すS1206におけるオブジェクト106の影響度の決定処理と同様であるため説明を省略する。S1407の後、画像処理装置102は、図14に示すフローチャートの処理、すなわち、図9に示すS901の処理を終了する。
【0106】
なお、本実施形態では、オブジェクト106の写り方が仮想視点画像に近い撮像画像を撮像する撮像装置101を特定する方法として、S1401のように、仮想カメラの姿勢と撮像装置101の姿勢とを比較している。しかしながら、撮像装置101の特定方法は、上述の方法に限定されるものではない。例えば、オブジェクト106が、ステージの中央、又は図1のように撮像対象領域の中央等の特定の位置に存在する場合、各撮像画像におけるオブジェクト106の領域の大きさは、各撮像装置101の位置、姿勢、及び画角等によって決定される。したがって、重要度決定部831は、これらの撮像パラメータのうちの少なくとも1つを用いて、オブジェクト106の写り方が仮想視点画像に近い撮像画像を撮像する撮像装置101を特定してもよい。
【0107】
以上のように、本実施形態では、2次元画像である撮像画像に対して2次元のセグメンテーションを行うことにより、仮想視点画像及び各撮像装置におけるオブジェクト106の領域の大きさを取得するように画像処理装置102を構成した。また、このように取得した、仮想視点画像におけるオブジェクト106の領域の大きさに基づいて、オブジェクト106の重要度を決定するように画像処理装置102を構成した。更に、決定したオブジェクト106の重要度と、このように取得した、各撮像画像におけるオブジェクト106の領域の大きさとに基づいて、撮像画像データごとに、オブジェクト106の影響度を決定するように画像処理装置102を構成した。このように構成した画像処理装置102によれば、オブジェクト106の3次元形状の推定を行わずに学習条件を決定することができるため、NeRFの学習の前処理に要する時間を短縮でき、結果として、NeRFの学習処理の全体に掛かる時間を短縮できる。
【0108】
[その他の実施形態]
本開示は、上述の実施形態の1以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0109】
なお、本開示はその開示の範囲内において、各実施形態の自由な組み合わせ、各実施形態の任意の構成要素の変形、又は、各実施形態において任意の構成要素の省略が可能である。
【0110】
[本開示の構成]
本開示は、以下の構成、方法、及びプログラムを含む。
【0111】
<構成1>
互いに異なる位置に配置された複数の撮像装置のそれぞれの撮像パラメータを取得する撮像パラメータ取得手段と、
前記複数の撮像装置のそれぞれによる撮像により得られる撮像画像のデータを取得する画像取得手段と、
仮想視点の位置を示す情報、及び前記仮想視点からの視線の方向を示す情報の少なくともいずれかを含む仮想視点情報を取得する視点取得手段と、
前記仮想視点情報に基づいて、前記複数の撮像装置の撮像領域に存在するオブジェクトに対応する放射輝度場を推定する学習モデルの学習条件を決定する決定手段と、
前記学習条件、前記撮像パラメータ、及び前記撮像画像のデータに基づいて、前記学習モデルの学習を行う学習手段と、
を有することを特徴とする画像処理装置。
【0112】
<構成2>
前記決定手段は、前記仮想視点情報に基づいて、前記画像取得手段により取得された複数の前記撮像画像のデータのうちから、前記学習モデルの学習において学習画像データとして用いる前記撮像画像のデータを決定することにより、前記学習条件を決定すること、
を特徴とする構成1に記載の画像処理装置。
【0113】
<構成3>
前記仮想視点情報は、前記仮想視点からの視線の方向を示す情報を含み、
前記決定手段は、前記仮想視点からの視線の方向を示す情報と、前記複数の撮像装置のそれぞれの前記撮像パラメータに含まれる撮像装置の光軸の方向を示す情報とに基づいて、前記学習画像データとして用いる前記撮像画像のデータを決定すること、
を特徴とする構成2に記載の画像処理装置。
【0114】
<構成4>
前記仮想視点情報は、前記仮想視点の位置を示す情報を含み、
前記決定手段は、前記仮想視点の位置を示す情報と、前記複数の撮像装置のそれぞれの前記撮像パラメータに含まれる撮像装置の位置を示す情報とに基づいて、前記学習画像データとして用いる前記撮像画像のデータを決定すること、
を特徴とする構成2又は3に記載の画像処理装置。
【0115】
<構成5>
前記学習手段は、前記決定手段により決定された前記撮像画像のデータのみを前記学習画像データとして用いて前記学習モデルの学習を行うこと、
を特徴とする構成2乃至4のいずれか1つに記載の画像処理装置。
【0116】
<構成6>
前記学習手段による前記学習モデルの学習は、学習フェーズとして、前記決定手段により決定された前記撮像画像のデータのみを前記学習画像データとして用いて前記学習モデルの学習を行う第1の学習フェーズと、前記画像取得手段により取得された全ての前記撮像画像のデータを前記学習画像データとして用いて前記学習モデルの学習を行う第2の学習フェーズとを含むこと、
を特徴とする構成2乃至4のいずれか1つに記載の画像処理装置。
【0117】
<構成7>
前記学習手段は、前記第1の学習フェーズによる前記学習モデルの学習を行った後に、前記第2の学習フェーズによる前記学習モデルの学習を行うこと、
を特徴とする構成6に記載の画像処理装置。
【0118】
<構成8>
前記学習手段は、前記第2の学習フェーズによる前記学習モデルの学習を行った後に、前記第1の学習フェーズによる前記学習モデルの学習を行うこと、
を特徴とする構成6に記載の画像処理装置。
【0119】
<構成9>
前記学習手段は、前記第1の学習フェーズによる前記学習モデルの学習、及び前記第2の学習フェーズによる前記学習モデルの学習の少なくとも一方を、他方の学習を行う前と後とに繰り返し行うこと、
を特徴とする構成6乃至8のいずれか1つに記載の画像処理装置。
【0120】
<構成10>
前記決定手段は、前記仮想視点情報に基づいて決定した、前記学習画像データとして用いる複数の前記撮像画像のデータを複数の画像グループに分割し、
前記学習手段は、前記画像グループごとに、前記画像グループに含まれる前記撮像画像のデータを前記学習画像データとして用いて前記学習モデルの学習を行うこと、
を特徴とする構成2乃至9のいずれか1つに記載の画像処理装置。
【0121】
<構成11>
前記決定手段は、前記仮想視点情報に基づいて決定した、前記学習画像データとして用いる複数の前記撮像画像のデータを複数の画像グループに分割し、
前記学習手段は、前記画像グループごとに、前記画像グループに含まれる前記撮像画像のデータを前記学習画像データとして用いて、前記第1の学習フェーズによる前記学習モデルの学習を行うこと、
を特徴とする構成6乃至9のいずれか1つに記載の画像処理装置。
【0122】
<構成12>
前記学習手段は、前記決定手段により決定された前記撮像画像のデータを前記学習画像データとして用いる場合の学習の重みを、前記画像取得手段により取得された複数の前記撮像画像のデータのうちの、前記決定手段により決定された前記撮像画像のデータ以外の前記撮像画像のデータを前記学習画像データとして用いる場合の前記学習モデルの学習の重みより高くすること、
を特徴とする構成2乃至11のいずれか1つに記載の画像処理装置。
【0123】
<構成13>
学習済みの前記学習モデルである学習済モデルを用いて、前記オブジェクトに対応する放射輝度場を推定して、前記仮想視点からの見えに対応する仮想視点画像を生成する生成手段、
を更に有し、
前記仮想視点情報は、前記仮想視点の位置を示す情報、及び前記仮想視点からの視線の方向を示す情報を含み、
前記生成手段は、前記仮想視点情報を前記学習済モデルに入力することにより前記仮想視点画像を生成すること、
を特徴とする構成1乃至12のいずれか1つに記載の画像処理装置。
【0124】
<構成14>
前記仮想視点画像を表示制御して表示装置に表示出力する出力手段、
を更に有することを特徴とする構成13に記載の画像処理装置。
【0125】
<方法>
互いに異なる位置に配置された複数の撮像装置のそれぞれの撮像パラメータを取得する撮像パラメータ取得工程と、
前記複数の撮像装置のそれぞれによる撮像により得られる撮像画像のデータを取得する画像取得工程と、
仮想視点の位置を示す情報、及び前記仮想視点からの視線の方向を示す情報の少なくともいずれかを含む仮想視点情報を取得する視点取得工程と、
前記仮想視点情報に基づいて、前記複数の撮像装置の撮像領域に存在するオブジェクトに対応する放射輝度場を推定する学習モデルの学習条件を決定する決定工程と、
前記学習条件、前記撮像パラメータ、及び前記撮像画像のデータに基づいて、前記学習モデルの学習を行う学習工程と、
を含むことを特徴とする画像処理方法。
【0126】
<プログラム>
コンピュータを、構成1乃至14のいずれか1つに記載の画像処理装置として機能させるためのプログラム。
【符号の説明】
【0127】
102 画像処理装置
400 仮想カメラ情報取得部
401 撮像パラメータ取得部
402 画像取得部
403 特定部
404 学習部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14