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

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

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

特許7427467画像処理装置、画像処理方法、学習済みモデルの生成方法、およびプログラム
<>
  • 特許-画像処理装置、画像処理方法、学習済みモデルの生成方法、およびプログラム 図1
  • 特許-画像処理装置、画像処理方法、学習済みモデルの生成方法、およびプログラム 図2
  • 特許-画像処理装置、画像処理方法、学習済みモデルの生成方法、およびプログラム 図3
  • 特許-画像処理装置、画像処理方法、学習済みモデルの生成方法、およびプログラム 図4
  • 特許-画像処理装置、画像処理方法、学習済みモデルの生成方法、およびプログラム 図5
  • 特許-画像処理装置、画像処理方法、学習済みモデルの生成方法、およびプログラム 図6
  • 特許-画像処理装置、画像処理方法、学習済みモデルの生成方法、およびプログラム 図7
  • 特許-画像処理装置、画像処理方法、学習済みモデルの生成方法、およびプログラム 図8
  • 特許-画像処理装置、画像処理方法、学習済みモデルの生成方法、およびプログラム 図9
  • 特許-画像処理装置、画像処理方法、学習済みモデルの生成方法、およびプログラム 図10
  • 特許-画像処理装置、画像処理方法、学習済みモデルの生成方法、およびプログラム 図11
  • 特許-画像処理装置、画像処理方法、学習済みモデルの生成方法、およびプログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-26
(45)【発行日】2024-02-05
(54)【発明の名称】画像処理装置、画像処理方法、学習済みモデルの生成方法、およびプログラム
(51)【国際特許分類】
   G06T 7/00 20170101AFI20240129BHJP
   G06T 19/00 20110101ALI20240129BHJP
【FI】
G06T7/00 350B
G06T19/00 A
【請求項の数】 13
(21)【出願番号】P 2020023374
(22)【出願日】2020-02-14
(65)【公開番号】P2021128592
(43)【公開日】2021-09-02
【審査請求日】2023-02-10
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】藤田 秀
(72)【発明者】
【氏名】米田 圭吾
(72)【発明者】
【氏名】荒谷 俊太郎
(72)【発明者】
【氏名】伊達 厚
(72)【発明者】
【氏名】藤井 俊彰
(72)【発明者】
【氏名】高橋 桂太
(72)【発明者】
【氏名】杉江 孝士
【審査官】真木 健彦
(56)【参考文献】
【文献】特開2020-005202(JP,A)
【文献】特開2018-081672(JP,A)
【文献】特開2018-026064(JP,A)
【文献】特開2019-191915(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
G06T 15/20
G06T 19/00
(57)【特許請求の範囲】
【請求項1】
複数の撮像装置により複数の視点からオブジェクトを撮像することにより得られた複数の撮像画像と、前記複数の撮像画像に基づいて生成される前記オブジェクトの3次元形状データとに基づいて生成される仮想視点画像を取得する取得手段と、
仮想視点画像を入力し、当該仮想視点画像における補正対象の領域を示す情報を出力する学習済みモデルである第1モデルと、前記第1モデルに入力される前記仮想視点画像および前記第1モデルから出力される補正対象の領域を示す情報を入力し、入力された前記仮想視点画像の前記補正対象の領域を補正した補正済仮想視点画像を出力する学習済みモデルである第2モデルとに、前記取得手段により取得された仮想視点画像をそれぞれ入力することにより、補正済仮想視点画像を生成する生成手段と、を有し、
前記生成手段において前記第1モデルおよび前記第2モデルに入力される前記仮想視点画像は、1つの仮想視点のみに対応する仮想視点画像であることを特徴とする画像処理装置。
【請求項2】
前記補正済仮想視点画像は、前記仮想視点画像に対し、前記3次元形状データの精度に起因して発生するノイズを除去するように補正された仮想視点画像であることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
記補正済仮想視点画像は、前記仮想視点画像の前記補正対象の領域を補正することで生成された仮想視点画像であることを特徴とする請求項1または2に記載の画像処理装置。
【請求項4】
前記第1モデルは、所定の位置および姿勢に対応する視点の仮想視点画像を入力データとし、当該仮想視点画像と前記所定の位置および姿勢に対応する画像との差分を示す差分画像を正解データとした教師データに基づいて学習された学習済みモデルであることを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。
【請求項5】
前記第1モデルは、所定の位置および姿勢に対応する視点の仮想視点画像を入力データとし、前記所定の位置および姿勢に対応する画像が示す画像内のオブジェクトを構成する3次元形状データの可視性に基づく画像を正解データとした教師データに基づいて学習された学習済みモデルであることを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。
【請求項6】
前記第1モデルは、前記可視性に基づく画像をユーザが修正した修正画像を、前記画像の代わりに前記正解データとして用いることを特徴とする請求項に記載の画像処理装置。
【請求項7】
前記第1モデルは、所定の位置および姿勢に対応する視点の仮想視点画像を入力データとし、前記所定の位置および姿勢に対応する画像内においてユーザが補正対象の領域を設定したマスク画像を正解データとした教師データに基づいて学習された学習済みモデルであることを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。
【請求項8】
前記第2モデルは、所定の第二位置および姿勢に対応する視点の仮想視点画像と、当該仮想視点画像に対応する補正対象の領域とを入力データとし、前記第二位置および姿勢に対応する画像を正解データとした教師データに基づいて学習された学習済みモデルであることを特徴とする請求項乃至のいずれか一項に記載の画像処理装置。
【請求項9】
前記第二位置および姿勢は、所定の撮像装置の位置および姿勢であり、前記第二位置および姿勢に対応する前記画像は、当該所定の撮像装置の撮像により取得された撮像画像であることを特徴とする請求項に記載の画像処理装置。
【請求項10】
複数の撮像装置により複数の視点からオブジェクトを撮像することにより得られた複数の撮像画像と、前記複数の撮像画像に基づいて生成される前記オブジェクトの3次元形状データと、に基づいて生成される仮想視点に対応した仮想視点画像を取得する取得手段と、
仮想視点画像を入力し、当該仮想視点画像における補正対象の領域を示す情報を出力する学習済みモデルである第1モデルと、前記第1モデルに入力される前記仮想視点画像および前記第1モデルから出力される補正対象の領域を示す情報を入力し、入力された前記仮想視点画像の前記補正対象の領域を補正した補正済仮想視点画像を出力する学習済みモデルである第2モデルとに、前記取得手段により取得された前記仮想視点画像をそれぞれ入力することにより、前記仮想視点画像を補正する補正手段と、
を有し、
前記補正手段において前記第1モデルおよび前記第2モデルに入力される前記仮想視点画像は、1つの仮想視点のみに対応する仮想視点画像であることすることを特徴とする画像処理装置。
【請求項11】
複数の撮像装置により複数の視点からオブジェクトを撮像することにより得られた複数の撮像画像と、前記複数の撮像画像に基づいて生成される前記オブジェクトの3次元形状データとに基づいて生成される仮想視点画像を取得する取得工程と、
仮想視点画像を入力し、当該仮想視点画像における補正対象の領域を示す情報を出力する学習済みモデルである第1モデルと、前記第1モデルに入力される前記仮想視点画像および前記第1モデルから出力される補正対象の領域を示す情報を入力し、入力された前記仮想視点画像の前記補正対象の領域を補正した補正済仮想視点画像を出力する学習済みモデルである第2モデルとに、前記取得工程により取得された仮想視点画像をそれぞれ入力することにより、補正済仮想視点画像を生成する生成工程と、
を有し、
前記生成工程において前記第1モデルおよび前記第2モデルに入力される前記仮想視点画像は、1つの仮想視点のみに対応する仮想視点画像であることを特徴とする画像処理方法。
【請求項12】
複数の撮像装置により複数の視点からオブジェクトを撮像することにより得られた複数の撮像画像と、前記複数の撮像画像に基づいて生成される前記オブジェクトの3次元形状データと、に基づいて生成される仮想視点に対応した仮想視点画像を取得する取得工程と、
仮想視点画像を入力し、当該仮想視点画像における補正対象の領域を示す情報を出力する学習済みモデルである第1モデルと、前記第1モデルに入力される前記仮想視点画像および前記第1モデルから出力される補正対象の領域を示す情報を入力し、入力された前記仮想視点画像の前記補正対象の領域を補正した補正済仮想視点画像を出力する学習済みモデルである第2モデルとに、前記取得工程により取得された前記仮想視点画像をそれぞれ入力することにより、前記仮想視点画像を補正する補正工程と、
を有し、
前記補正工程において前記第1モデルおよび前記第2モデルに入力される前記仮想視点画像は、1つの仮想視点のみに対応する仮想視点画像であることすることを特徴とする画像処理方法。
【請求項13】
コンピュータを、請求項1乃至10のいずれか一項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、仮想視点画像に関する。
【背景技術】
【0002】
複数の撮像装置により得られた複数の画像を用いて、仮想視点からの見えを表す仮想視点コンテンツを生成する技術がある。特許文献1では、仮想視点コンテンツを生成するために、まず、被写体を複数の方向から撮像して取得された画像に基づいて推定した被写体の3次元形状を構成する各要素に対して、複数の撮像画像を用いて色を決定することが開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2019-057248号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1のような方法で仮想視点画像を生成する場合、3次元形状の推定の精度が仮想視点画像の画質に影響を及ぼす。つまり、適切に3次元形状の推定が行われない場合、仮想視点画像の画質が低下する恐れが生じる。例えば、撮像領域においてオブジェクト(被写体)が密集する領域、つまり、オクルージョンが発生する領域などでは、オブジェクトが本来存在しないにもかかわらず、オブジェクトが存在するとして3次元形状の推定が行われてしまう場合がある。この場合、3次元形状を構成する複数の要素のうち、オブジェクトが本来存在しないにもかかわらず、オブジェクトが存在するとされた要素に対して、誤った色が決定されてしまう。その結果として、仮想視点画像にノイズが発生し、画質が低下する場合がある。
【0005】
本開示は、仮想視点画像の画質の低下を抑制することを目的とする。
【課題を解決するための手段】
【0006】
本開示の一態様に係る画像処理装置は、複数の撮像装置により複数の視点からオブジェクトを撮像することにより得られた複数の撮像画像と、前記複数の撮像画像に基づいて生成される前記オブジェクトの3次元形状データとに基づいて生成される仮想視点画像を取得する取得手段と、仮想視点画像を入力し、当該仮想視点画像における補正対象の領域を示す情報を出力する学習済みモデルである第1モデルと、前記第1モデルに入力される前記仮想視点画像および前記第1モデルから出力される補正対象の領域を示す情報を入力し、入力された前記仮想視点画像の前記補正対象の領域を補正した補正済仮想視点画像を出力する学習済みモデルである第2モデルとに、前記取得手段により取得された仮想視点画像をそれぞれ入力することにより、補正済仮想視点画像を生成する生成手段と、を有し、前記生成手段において前記第1モデルおよび前記第2モデルに入力される前記仮想視点画像は、1つの仮想視点のみに対応する仮想視点画像であることを特徴とする。
【発明の効果】
【0007】
本開示によれば、仮想視点画像の画質の低下を抑制することができる。
【図面の簡単な説明】
【0008】
図1】画像処理システムの構成の例を示す図である。
図2】ゼリーノイズが発生する場合の例を説明する図である。
図3】学習モデルの概略を説明する図である。
図4】画像生成装置のハードウェア構成の例を示す図である。
図5】画像生成装置において行われる処理の例を示すフローチャートである。
図6】カメラ座標系とカメラ画像座標系の概略図である。
図7】画像処理システムの構成を示す図である。
図8】ゼリーノイズマップを説明する図である。
図9】ゼリーノイズ領域の検出を行う学習モデルの概略を説明する図である。
図10】ゼリーノイズ領域の修復を行う学習モデルの概略を説明する図である。
図11】画像生成装置7が行う処理の例を示すフローチャートである。
図12】画像生成装置7が行う処理の例を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、図面を参照しながら、本開示の一態様を実施するための形態について説明する。なお、以下の実施形態は本開示事項を限定するものではなく、また、本実施形態で説明されている特徴の組み合わせの全てが本開示事項の一態様の解決手段に必須のものとは限らない。なお、同一の構成については、同じ符号を付して説明する。
【0010】
<<第1実施形態>>
本実施形態では、精度が低い形状推定結果に起因して発生するノイズ(以下、本明細書ではゼリーノイズという)を含んだ仮想視点画像を修復(修正または補正と呼んでもよい)する処理を行う例を述べる。修復する処理には、学習済みモデル(ニューラルネットワーク(以下、NNという))が用いられる。具体的には、学習済みモデルに対してゼリーノイズを含んだ仮想視点画像を入力することで、ゼリーノイズ部分が除去(改善)された仮想視点画像が学習済みモデルから出力される。
【0011】
なお、ゼリーノイズは、3次元形状の推定の際に、本来オブジェクト(被写体と呼んでもよい)が存在しないにもかかわらず、オクルージョンによりオブジェクトが存在すると推定されたことに起因して発生する。また、ゼリーノイズは、凹凸が多く含まれるような複雑な形状を有するオブジェクトがある場合にも発生しやすい。
【0012】
本実施形態の画像処理システムは、複数の撮像装置により異なる方向から撮像して取得された複数の撮像画像と、撮像装置の状態と、仮想視点を示す仮想視点情報とに基づいて、仮想視点からの見えを表す仮想視点画像を生成する。
【0013】
複数の撮像装置は、異なる複数の方向から撮像領域を撮像する。撮像領域は、例えば、ラグビーまたはサッカーなどが行われる競技場の平面と任意の高さとで囲まれた領域である。複数の撮像装置は、このような撮像領域を取り囲むようにして、それぞれ異なる位置および方向に設置され、同期して撮像を行う。なお、撮像装置は、撮像領域の全周にわたって設置されなくてもよく、設置場所の制限等によっては撮像領域の一部にのみ設置されていてもよい。撮像装置の数は限定されず、例えば、撮像領域をラグビーの競技場とする場合、競技場の周囲に数十~数百台程度の撮像装置が設置されてもよい。
【0014】
望遠カメラおよび広角カメラなどのように、画角が異なる複数の撮像装置が設置されていてもよい。例えば、望遠カメラを用いれば、高解像度にオブジェクトを撮像できるので、生成される仮想視点画像の解像度も向上する。また、例えば、広角カメラを用いれば、一台のカメラで撮像できる範囲が広いので、カメラ台数を減らすことができる。撮像装置は、現実世界の一つの時刻情報で同期され、撮像した映像には毎フレームの画像に撮像時刻情報が付与される。
【0015】
なお、1台の撮像装置は、1台のカメラで構成されていてもよいし、複数台のカメラで構成されていてもよい。さらに、撮像装置は、カメラ以外の装置を含んでいてもよい。
【0016】
撮像装置の状態とは、撮像装置の位置、姿勢(向き及び撮像方向)、焦点距離、光学中心、および歪みなどの状態のことをいう。撮像装置の位置および姿勢(向き及び撮像方向)は、撮像装置そのもので制御されてもよいし、撮像装置の位置および姿勢を制御する雲台により制御されてもよい。以下では、撮像装置の状態を示すデータのことを撮像装置のカメラパラメータとして説明を行うが、そのパラメータには、雲台等の別の装置により制御されるパラメータが含まれていてもよい。また、撮像装置の位置および姿勢(向き及び撮像方向)に関するカメラパラメータは、いわゆる外部パラメータである。撮像装置の焦点距離、画像中心、および歪みに関するパラメータは、いわゆる内部パラメータである。撮像装置の位置および姿勢は、一つの原点と直交する3軸を持つ座標系(以下、世界座標系という)で表現される。
【0017】
仮想視点画像は、自由視点画像とも呼ばれるものであるが、ユーザが自由に(任意に)指定した視点に対応する画像に限定されず、例えば、複数の候補からユーザが選択した視点に対応する画像なども仮想視点画像に含まれる。また、仮想視点の指定は、ユーザ操作により行われてもよいし、画像解析の結果等に基づいて自動で行われてもよい。また、本実施形態では、仮想視点画像が静止画である場合を中心に説明するが、仮想視点画像は動画であってもよい。
【0018】
仮想視点画像の生成に用いられる仮想視点情報は、例えば仮想視点の位置及び向きを示す情報である。具体的には、仮想視点情報は、仮想視点の3次元位置を表すパラメータと、パン、チルト、及びロール方向における仮想視点の向きを表すパラメータとを含む。なお、仮想視点情報の内容は上記に限定されない。例えば、仮想視点情報のパラメータには、仮想視点の視野の大きさ(画角)を表すパラメータが含まれてもよい。また、仮想視点情報は、複数フレームのパラメータを有していてもよい。つまり、仮想視点情報が、仮想視点画像の動画を構成する複数のフレームにそれぞれ対応するパラメータを有し、連続する複数の時点それぞれにおける仮想視点の位置及び向きを示す情報であってもよい。
【0019】
仮想視点画像は、例えば、以下のような方法で生成される。まず、撮像装置により異なる方向からそれぞれの撮像領域を撮像することで、複数の撮像画像が取得される。次に、複数の撮像画像から、人物またはボールなどのオブジェクトに対応する前景領域を抽出した前景画像と、前景領域以外の背景領域を抽出した背景画像とが取得される。前景画像および背景画像は、テクスチャ情報(色情報など)を有している。そして、オブジェクトの3次元形状を表す前景モデルと、前景モデルに色付けするためのテクスチャデータとが、前景画像に基づいて生成される。前景モデルは、例えば視体積交差法(shape-from-silhouette法)などの形状推定方法により推定される。背景モデルは、例えばスタジアムまたは会場などを事前に3次元測定しておくことで生成される。また、競技場などの背景の3次元形状を表す背景モデルに色づけするためのテクスチャデータは、背景画像に基づいて生成される。そして、前景モデルと背景モデルとに対してテクスチャデータをマッピングし、仮想視点情報が示す仮想視点に応じてレンダリングを行うことにより、仮想視点画像が生成される。なお、仮想視点画像の生成方法はこれに限定されず、前景モデルおよび背景モデルを用いずに、撮像画像の射影変換により仮想視点画像を生成する方法など、種々の方法を用いることができる。
【0020】
前景画像とは、撮像装置により撮像されて取得された撮像画像から、オブジェクトの領域(前景領域)を抽出した画像である。前景領域として抽出されるオブジェクトとは、一般的に、時系列で同じ方向から撮像を行った場合において動きのある(その位置または形が変化し得る)動的オブジェクト(動体)を指す。オブジェクトは、例えば、競技において、競技が行われるフィールド内にいる選手または審判などの人物を含み、球技であれば人物に加えボールなども含み得る。また、コンサートまたはエンタテイメントなどにおいては、歌手、演奏者、パフォーマー、または司会者などが、オブジェクトの一例である。
【0021】
背景画像とは、少なくとも前景となるオブジェクトとは異なる領域(背景領域)の画像である。具体的には、背景画像は、撮像画像から前景となるオブジェクトを取り除いた状態の画像である。また、背景は、時系列で同じ方向から撮像を行った場合において静止している、又は静止に近い状態が継続している撮像対象物を指す。このような撮像対象物は、例えば、コンサート等のステージ、競技などのイベントを行うスタジアム、球技で使用するゴールなどの構造物、またはフィールドなどである。ただし、背景は、少なくとも前景となるオブジェクトとは異なる領域であり、撮像対象物としては、オブジェクトと背景との他に、別の物体等が含まれていてもよい。
【0022】
<システム構成>
図1は、本実施形態における画像処理システムの構成の例を示す図である。画像処理システムは、画像生成装置1と複数の撮像装置2と形状推定装置3と表示装置4とを有する。図1では、1台の撮像装置2を示し、他の撮像装置は、図示を省略している。
【0023】
画像処理装置である画像生成装置1は、撮像装置2と形状推定装置3と表示装置4に、デイジーチェーン方式で、または、所定のネットワークを介して接続されている。画像生成装置1は、撮像装置2から撮像画像データを取得する。また、画像生成装置1は、形状推定装置3からオブジェクトの3次元形状データを取得する。そして、画像生成装置1は、撮像装置2から得た撮像画像データと形状推定装置3から得た3次元形状データとに基づいて、仮想視点画像データを生成する。撮像画像データによって表される画像を撮像画像といい、仮想視点画像データによって表される画像を仮想視点画像という。以下では、説明を簡素化するため、各種の画像データを取得または生成することなどを、単に、仮想視点画像を取得または生成する、などと表現することがある。画像生成装置1は、仮想視点画像を生成するために、仮想視点情報の指定を受け付け、その仮想視点情報に基づいて仮想視点画像を生成する。仮想視点情報は、例えば、ジョイスティック、ジョグダイヤル、タッチパネル、キーボード、及びマウスなどの不図示の入力部により、ユーザ(操作者)から指定される。なお、仮想視点情報の指定はこれに限定されず、オブジェクトを認識するなどして、自動的に指定されてもよい。画像生成装置1が生成した仮想視点画像は、表示装置4へ出力される。
【0024】
撮像装置2は、他の撮像装置2と識別するための固有の識別番号を持つ。撮像装置2は、撮像して取得した画像から前景画像を抽出する機能など、他の機能を有してよく、その機能を実現するハードウェア(回路または装置など)も含んでもよい。
【0025】
形状推定装置3は、撮像装置2から撮像画像又は前景画像を取得し、オブジェクトの3次元形状を推定し、3次元形状データを出力する。表示装置4は、画像生成装置1から仮想視点画像を取得し、仮想視点画像をディスプレイなどの表示デバイスを用いて出力する。
【0026】
次に、画像生成装置1の構成を説明する。画像生成装置1は、カメラ情報取得部11、仮想視点画像生成部12、および仮想視点画像修復部13を有する。
【0027】
カメラ情報取得部11は、複数の撮像装置2から撮像画像を取得する。また、カメラ情報取得部11は、複数の撮像装置2のそれぞれのカメラパラメータを取得する。なお、カメラ情報取得部11が、撮像装置2のカメラパラメータを算出して取得するようにしてもよい。例えば、カメラ情報取得部11は、複数の撮像装置2から取得した撮像画像から対応点を算出する。そして、対応点を撮像装置の視点に投影した時の誤差が最小になるように最適化し、各撮像装置の視点の位置および姿勢等を校正することでカメラパラメータを算出してもよい。なお、校正方法は既存のいかなる方法であってもよい。カメラパラメータは、撮像画像に同期して取得されてもよいし、事前準備の段階で取得されてもよいし、また必要に応じて撮像画像に非同期で取得されてもよい。
【0028】
仮想視点画像生成部12は、カメラ情報取得部11が取得した撮像装置2の撮像画像と、カメラパラメータと、形状推定装置3が出力した3次元形状データと、仮想視点情報とに基づいて、仮想視点画像を生成する。
【0029】
仮想視点画像修復部13は、仮想視点画像生成部12によって生成された仮想視点画像を修復する。仮想視点画像生成部12により生成された仮想視点画像には、精度が低い形状推定に起因するゼリーノイズが含まれている可能性があるためである。仮想視点画像修復部13は、このゼリーノイズを除去する。
【0030】
<ゼリーノイズの説明>
図2は、精度が低い形状推定が原因で、上記のゼリーノイズが発生する場合の例を説明する図である。図2を用いてゼリーノイズを説明する。図2(a)は、所定の撮像装置2がオブジェクトを撮像して取得した撮像画像201を示す。撮像画像201には、オブジェクト202、203、204が表れている。図2(b)は、オブジェクト202、203、204を上面から見たときのオブジェクトの例を示している。図2(b)のオブジェクト212、213、214は、図2(a)のオブジェクト202、203、204にそれぞれ対応している。
【0031】
図2(c)は、図2(a)のオブジェクト202、203、204を撮像している複数の撮像装置2を用いてオブジェクトの形状推定を行った結果を用いて、撮像画像201を取得した所定の撮像装置2の視点に仮想視点を指定した場合の画像221の例である。図2(c)の領域222、223、224は、オブジェクト202、203、204にそれぞれ対応する。なお、図2(c)の領域222、223、224の各要素に対しては、色が決定されていないものとする。この図2(c)は、領域222、223、224に対応する3次元形状データを構成する要素が存在することを示している。
【0032】
図2(a)のオブジェクト202、203、204が密集すると、撮像領域において、複数の撮像装置2から不可視な領域が発生する。この場合、形状推定の精度が低くなり、例えば図2(c)の領域225、226、227のように、本来オブジェクトが存在しない領域においても、3次元形状データを構成する要素が存在することが生じ得る。図2(d)は、図2(c)の領域222~227が示す3次元形状データを上面から示した図である。つまり、図2(d)に示すように、オクルージョンの影響により、領域222~227が一塊の3次元形状データ231として形成されてしまう。
【0033】
図2(e)は、図2(c)の画像221において、領域222、223、224の要素に対して色付けを行って得られる仮想視点画像241を示している。図2(e)の領域242、243、244は、図2(c)の領域222、223、224にそれぞれ対応する。図2(e)の領域245、246、247は、図2(c)の領域225、226、227にそれぞれ対応している。
【0034】
図2(f)は、図2(e)の領域242~247が示す3次元形状データを上面から示した図である。図2(f)の領域252、253、254は、図2(b)のオブジェクト212、213、214に対応する3次元形状データである。図2(e)の領域242、243、244、または、図2(f)の領域252、253、254のように、オブジェクトが存在する位置にある3次元点に対しては、色が元々のオブジェクトとほぼ同一になると期待できる。しかしながら、図2(e)の領域245、246、247のように、本来オブジェクトとして存在しない箇所に対しては、誤った色が付けられる可能性が高い。また、図2(f)の3次元形状データの一部のデータ領域255は、図2(b)のオブジェクト212、213、214に囲まれたオクルージョン領域に該当する領域である。これらの箇所に誤った色が付けられると、ゼリーノイズを含む仮想視点画像が結果として生成され、仮想視点画像の画質の低下を招いてしまう。以上が、ゼリーノイズが発生する場合の例である。
【0035】
<仮想視点画像修復部の説明>
図1に戻り説明を続ける。仮想視点画像修復部13は、仮想視点画像生成部12によって生成されたゼリーノイズを含み得る仮想視点画像を修復する。なお、本実施形態では、ニューラルネットワークを学習させた学習済みモデルを生成し、その学習済みモデルによって仮想視点画像の修復を行うことを想定している。以下、仮想視点画像修復部13の説明を行う。仮想視点画像修復部13は、教師データ生成部131、修復学習部132、および修復部133を有する。
【0036】
教師データ生成部131は、仮想視点画像生成部12で生成された仮想視点画像を入力とし、カメラ情報取得部11で取得できる対応視点のカメラの撮像画像をその正解とする、1組の教師データを生成する。なお、正解データである画像として、実空間を実際に撮影して得られる画像を用いてもよいし、二つの実カメラの撮像画像から補間して生成される画像を用いてもよい。また、正解データである画像は、三つ以上の実カメラの撮像画像から合成される画像であってもよい。また、CG(コンピュータグラフィックス)によって作成した仮の3次元空間上で得られるカメラのシミュレーション画像を用いてもよい。ただし、正解データとして実際の撮影に用いたカメラを使用する場合、入力とする仮想視点画像の仮想視点の位置姿勢は、実カメラの位置姿勢のものに限定される。また、正解データとして二つの実カメラの撮像画像から補間して生成される画像を用いる場合は、撮影領域が重なっている二つのカメラを選んだ上で、両方あるいはどちらかのカメラによって撮影されている領域のみを有効な正解データとする。また、正解データとしてCGによるシミュレーション画像を用いる場合、オブジェクトの正解3次元形状は既知となる。しかしながら、仮想視点画像生成部12では正解3次元形状を用いず、シミュレーションによって得られる複数カメラ情報を形状推定装置3へ入力して、その出力として得られる3次元形状を用いて生成した仮想視点画像を入力に使用する。正解データとして実カメラの撮像画像から補間して生成される画像を用いる場合、または、CGによるシミュレーション画像を用いる場合においても、入力として用いる仮想視点画像の視点は、それらの画像に対応する視点が用いられる。つまり、教師データ生成部131は、入力とする仮想視点画像の視点の位置姿勢を、正解データである画像の位置姿勢に対応させた教師データを生成する。以上のようにして、教師データ生成部131は、適切な教師データを生成する。なお、教師データは、学習用データともいう。
【0037】
修復学習部132は、教師データ生成部131で生成された教師データに基づいて、正解に対する入力の損失関数を定義し、その損失関数を最小化または最大化できるようにニューラルネットワークのパラメータを繰り返し最適化していくことで、学習を進める。そして、学習して得られたモデル(学習済みモデルという)は修復部133へ出力される。
【0038】
図3は、学習モデルの概略を説明する図である。図3(a)は、修復学習部132で行われる学習処理の例を示している。例えば、実カメラC1の視点位置に対応する仮想視点画像を入力データとし、その実カメラC1で撮像された撮像画像を正解データとする教師データを用いて学習が行われる。そして、入力データと正解データとのずれ量Lが最小化または最大化するように、繰り返し学習が行われる。ここでは、一つの視点の実カメラを例に挙げたが、画像処理システムを構成する各撮像装置2の対応視点における教師データを用いて繰り返し学習が行われる。
【0039】
なお、修復学習部132は、誤差検出部と、更新部と、を備えてもよい。誤差検出部は、入力層に入力される入力データに応じてニューラルネットワークの出力層から出力される出力データと、教師データとの誤差を得る。誤差検出部は、損失関数を用いて、ニューラルネットワークからの出力データと教師データとの誤差を計算するようにしてもよい。更新部は、誤差検出部で得られた誤差に基づいて、その誤差が小さくなるように、ニューラルネットワークのノード間の結合重み付け係数等を更新する。この更新部は、例えば、誤差逆伝播法を用いて、結合重み付け係数等を更新する。誤差逆伝播法は、上記の誤差が小さくなるように、各ニューラルネットワークのノード間の結合重み付け係数等を調整する手法である。また、本実施形態では、ニューラルネットワークを利用して、学習するための特徴量および結合重み付け係数を自ら生成する深層学習(ディープラーニング)をすることを想定している。なお、利用するニューラルネットワークのネットワーク構造としては、ネットワークの入力と出力とが画像データであり、入出力の関係を十分に学習できるものであれば、いかなる方法でもよい。
【0040】
修復部133は、修復学習部132で得られた学習済みモデルに対して、仮想視点画像生成部12から与えられる仮想視点画像を入力として与えることで、ゼリーノイズを含む仮想視点画像を修復する。修復後の仮想視点画像は、表示装置4へと出力される。
【0041】
図3(b)は、修復部133で行われる修復処理(推論処理)の例を示している。修復学習部132で得られた学習済みモデルに対して、任意の仮想視点の仮想視点画像を入力データとして入力すると、修復済みの仮想視点画像が出力データとして出力される。
【0042】
<ハードウェア構成>
図4は、画像生成装置1のハードウェア構成の例を示す図である。画像生成装置1は、CPU411、ROM412、RAM413、補助記憶装置414、表示部415、操作部416、通信I/F417、GPU418、及びバス419を有する。CPU411は、ROM412またはRAM413に格納されているコンピュータプログラムおよびデータを用いて画像生成装置1の全体を制御することで、図1に示す画像生成装置1の各機能を実現する。なお、画像生成装置1がCPU411とは異なる1又は複数の専用のハードウェアを有し、CPU411による処理の少なくとも一部を専用のハードウェアが実行してもよい。専用のハードウェアの例としては、ASIC(特定用途向け集積回路)、FPGA(フィールドプログラマブルゲートアレイ)、およびDSP(デジタルシグナルプロセッサ)などがある。ROM412は、変更を必要としないプログラムなどを格納する。RAM413は、補助記憶装置414から供給されるプログラムおよびデータ、並びに、通信I/F417を介して外部から供給されるデータなどを一時記憶する。補助記憶装置414は、例えばハードディスクドライブ等で構成され、画像データまたは音声データなどの種々のデータを記憶する。GPU418は、データをより多く並列処理することで効率的な演算を行うことができるので、ディープラーニングのような学習モデルを用いて複数回に渡り学習を行う場合にはGPU418で処理を行うことが有効である。そこで本実施形態では、修復学習部132による処理には、CPU411に加えてGPU418を用いる。具体的には、学習モデルを含む学習プログラムを実行する場合に、CPU411とGPU418とが協働して演算を行うことで学習を行う。なお、修復学習部132の処理は、CPU411またはGPU418の一方のみにより演算が行われても良い。また、修復部133も修復学習部132と同様にGPU418を用いても良い。
【0043】
表示部415は、例えば液晶ディスプレイまたはLED等で構成され、ユーザが画像生成装置1を操作するためのGUI(Graphical User Interface)などを表示する。操作部416は、例えばキーボード、マウス、ジョイスティック、またはタッチパネル等で構成され、ユーザによる操作を受けて各種の指示をCPU411に入力する。CPU411は、表示部415を制御する表示制御部及び操作部416を制御する操作制御部として動作する。
【0044】
通信I/F417は、画像生成装置1の外部の装置との通信に用いられる。例えば、画像生成装置1が外部の装置と有線で接続される場合には、通信用のケーブルが通信I/F417に接続される。画像生成装置1が外部の装置と無線通信する機能を有する場合には、通信I/F417はアンテナを備える。バス419は、画像生成装置1の各部をつないで情報を伝達する。
【0045】
本実施形態では表示部415と操作部416とが画像生成装置1の内部に存在するものとするが、表示部415と操作部416との少なくとも一方が画像生成装置1の外部に別の装置として存在していてもよい。
【0046】
<処理フロー>
図5は、本実施形態の画像生成装置1において行われる処理の例を示すフローチャートである。図5に示す処理は、CPU411またはGPU418が、ROM412または補助記憶装置414に記憶されているプログラムを実行することで行われる。なお、各処理の説明における記号「S」は、当該フローチャートにおけるステップであることを意味する(以下、本明細書において同様である)。
【0047】
図5(a)は、修復学習部132において行われる学習処理を示すフローチャートである。まず、図5(a)を用いて、仮想視点画像修復を行うニューラルネットワークの学習処理のフローチャートを説明する。
【0048】
S501において、カメラ情報取得部11は、撮像装置2からカメラ情報を取得する。カメラ情報は、撮像画像およびカメラパラメータを含み得る。即ち、S501において、カメラ情報取得部11は、撮像装置2から複数の撮像画像を取得する。取得された撮像画像は、仮想視点画像生成部12および教師データ生成部131に出力される。なお、ここで取得された撮像画像は、ニューラルネットワークを学習する際の正解データとなる。さらに、S501においてカメラ情報取得部11は、撮像装置2からカメラパラメータを取得する。なお、カメラ情報取得部11が、該カメラパラメータを算出するようにしてもよい。また、カメラパラメータは、撮像画像を取得する度に算出される必要はなく、仮想視点画像を生成する前に少なくとも1度算出されればよい。取得したカメラパラメータは、仮想視点画像生成部12に出力される。
【0049】
S502において、仮想視点画像生成部12は、形状推定装置3から、オブジェクトを構成する3次元点群の情報(3次元形状データ)を取得する。
【0050】
S503において、仮想視点画像生成部12は、実カメラの視点位置に対応する仮想視点画像群を生成する。生成された仮想視点画像群は、教師データ生成部131へと出力される。即ち、S503において生成された仮想視点画像は、ニューラルネットワークの学習をするための入力データとなる。本例のS503では、全ての実カメラの視点位置に対応する仮想視点画像を生成する。ただし、本例では、それらの仮想視点画像の全フレームを教師データ生成部131へと出力するのではなく、該仮想視点画像で何らかの前景オブジェクトを撮影しているフレームの中から、ゼリーノイズを含むフレームと含まないフレームをユーザが予め選択する。そして、仮想視点画像生成部12は、ゼリーノイズを含むフレームと含まないフレームとのシーンの割合が等しくなるようにランダムで選択した仮想視点画像を、教師データ生成部131へ出力する。ゼリーノイズが発生していないシーンも含めて学習入力データとすることで、ゼリーノイズ領域とは異なり大幅な修正を必要としない領域についても学習できることが期待される。
【0051】
ここで、仮想視点画像を生成する方法を説明する。仮想視点画像生成部12は、前景仮想視点画像(オブジェクト領域の仮想視点画像)を生成する処理と、背景仮想視点画像(オブジェクト領域以外の仮想視点画像)を生成する処理とを実行する。そして、生成した背景仮想視点画像に前景仮想視点画像を重ねることで仮想視点画像を生成する。
【0052】
仮想視点画像の前景仮想視点画像を生成する方法を説明する。前景仮想視点画像は、ボクセルを、座標が(Xw,Yw,Zw)である3次元点と仮定し、ボクセルの色を算出し、色が付いたボクセルを既存のCGレンダリング手法によりレンダリングすることで生成できる。色を算出する前に、まず、撮像装置2のカメラからオブジェクトの3次元形状の表面までの距離を画素値とする距離画像を生成する。
【0053】
距離画像を生成する方法を説明する。距離画像は、撮像画像と同じ幅、高さとし、各画素には距離値が格納される。例えば、まず、3次元点群の点Pの座標(Xw、Yw、Zw)に、外部行列Teをかけることで、世界座標系の座標からカメラ座標系のカメラ座標(Xc、Yc)に変換する。カメラ座標系とは、カメラのレンズ中心を原点とし、レンズ平面(Xc、Yc)とレンズ光軸(Zc)から定義される3次元座標系である。ここで外部行列Teは、実カメラの外部パラメータから構成される行列である。カメラ位置を原点に実カメラのレンズが向く方向をカメラ座標系のz軸の正とすると、カメラ座標(Xc、Yc)のz座標が、その点を実カメラから見た場合の距離値である。
【0054】
次に、カメラ座標(Xc、Yc)の画像座標(Xi、Yi)を算出し、距離値を格納する距離画像の座標を求める。画像座標(Xi、Yi)は、カメラ座標(Xc、Yc)をz座標で正規化した正規化カメラ座標に内部行列Tiをかけることで算出されるカメラ画像座標系の座標である。カメラ画像座標系は、図6に示すように、レンズ面から前方にある一定距離離れた平面上に定義され、カメラ座標系のXc軸とYc軸およびカメラ画像座標系のXi軸とYi軸とが、それぞれ平行であるような2次元座標系である。図6(a)は、カメラ座標系の概略図であり、図6(b)は、カメラ画像座標系の概略図である。なお、内部行列Tiは、実カメラの内部パラメータから構成される行列である。画像座標(Xi、Yi)の画素に既に計算した別の点の距離値が格納されている場合、その値と画像座標(Xi、Yi)のz座標とを比較する。そして、z座標の方が小さい場合に、z座標を画像座標(Xi、Yi)における画素値として新しく格納する。3次元点群の全ての点Pにこれらの処理を実行することで1台の実カメラの距離画像を生成することができる。さらに、全ての実カメラについて処理することで、全実カメラの距離画像を生成することができる。
【0055】
次に、ボクセルに色を割り当てるために、3次元点(Xw,Yw,Zw)を画角内に含むカメラにおいて、その3次元点をカメラ座標系に一度変換する。そして、カメラ座標系に変換された3次元点を、カメラ画像座標系に変換し、該ボクセルからカメラまでの距離dとカメラ画像座標系上の座標(Xi,Yi)とを算出する。そして、距離dと、先に生成した距離画像における対応する座標(Xi,Yi)の画素値(=表面までの距離)との差を算出し、予め設定した閾値以下であれば、該ボクセルは該カメラから可視であると判定される。可視と判定された場合、該カメラに対応する撮像装置2の撮像画像における座標(Xi,Yi)の画素値を、該ボクセルの色とする。該ボクセルが複数のカメラにおいて可視と判定された場合、撮像装置2の各撮像画像からの前景画像のテクスチャデータから画素値が取得され、例えば、それらの平均値を該ボクセルの色とする。ただし、色を算出する方法はこれに限定されない。例えば、平均値ではなく、仮想視点から最も近い撮像装置2から取得された撮像画像の画素値を用いるなどの方法を用いても構わない。全ボクセルについて同じ処理を繰り返すことで3次元形状データを構成する全ボクセルに色を割り当てることができる。
【0056】
なお、本例では、仮想視点画像生成部12が、各3次元点がどのカメラから可視であるか否かを判定する例を説明したが、これに限られない。形状推定装置3が、各3次元点がどのカメラから可視であるか否かを表す可視情報を有する場合、仮想視点画像生成部12は、形状推定装置3から当該可視情報を取得し、取得した情報を用いて処理を行ってもよい。
【0057】
次に、仮想視点画像の背景仮想視点画像を生成する方法を説明する。背景仮想視点画像を生成するために、競技場などの背景の3次元形状データが取得される。背景の3次元形状データは、競技場などのCGモデルを予め作成し、システム内に保存しておいたCGモデルが用いられる。CGモデルを構成する各面の法線ベクトルと撮像装置2を構成する各カメラの方向ベクトルとを比較し、各面を画角内に収め、最も正対する撮像装置2が算出される。そして、この撮像装置2に面の頂点座標を投影し、面に貼るテクスチャ画像が生成され、既存のテクスチャマッピング手法でレンダリングすることで、背景仮想視点画像が生成される。このようにして得られた仮想視点画像の背景仮想視点画像上に前景仮想視点画像を重ねる(合成する)ことで、仮想視点画像が生成される。
【0058】
図5のフローチャートの説明を続ける。S504において、教師データ生成部131は、仮想視点画像の修復を行うニューラルネットワークの学習のための教師データを生成する。ここでは、S503において生成された、実カメラの視点位置に対応する仮想視点画像を入力データとし、S501において取得した、その仮想視点の位置に対応する実カメラの撮像画像を正解データとする1組の教師データを生成するものとする。実カメラの視点位置に対応する仮想視点画像における色情報は、撮影に使用された実カメラ画像に等しい。このため、仮想視点の位置姿勢と実カメラの位置姿勢とを同一とすれば、理想的には、仮想視点画像と実カメラ画像とが等しくなるためである。なお、S504では、学習に必要な教師データの数を確保するために、データの拡張も付随して行ってもよい。適用するデータの拡張の方法としては、例えば次のような処理を適用する方法が挙げられる。即ち、入力データの仮想視点画像とそれに対応する正解データである実カメラ画像に対して、対応し合う同一の画像部分領域をランダムに切り取る処理(ただし、切り取る画像サイズは固定)と、左右反転させる処理とを適用する方法が例として挙げられる。
【0059】
S505において、修復学習部132は、S504において生成された教師データを用いて、学習モデル(ニューラルネットワーク)を学習させる。例えば、任意の仮想視点画像を入力としたときに、出力としてゼリーノイズのない、あるいは低減させた仮想視点画像を生成できるように学習モデルを学習させる。学習して得られる学習済みモデルは、修復部133へと出力される。なお、ニューラルネットワークの学習をする際に用いる損失関数としては、正解に対する入力の忠実度を測るために、平均二乗誤差を用いる。また、その損失関数を最小化するようにニューラルネットワークのパラメータを最適化するための方法としては、Adam法を用いる。また、ニューラルネットワークのアーキテクチャとしては、U-Netとして知られているアーキテクチャと同等のものを用いる。U-Netは、画像の多重解像度分析をしながら処理をするネットワークアーキテクチャであり、画像特徴のスケールに対してロバストになるという特徴を有する。そのため、様々な大きさのゼリーノイズに対して対応が可能になると考えられるため、今回の仮想視点画像修復に対しても効果が期待できる。以上が、学習フェーズにおける処理である。
【0060】
次に、学習済みのニューラルネットワークモデルを用いて、実際に仮想視点画像の修復を行う推論処理を説明する。
【0061】
図5(b)は、学習済みのニューラルネットワークモデルを用いて、仮想視点画像の修復を行う推論処理のフローチャートの例を示す図である。図5(b)において、S501のカメラ情報の取得処理およびS502の形状推定情報の取得処理は、図5(a)と同様の処理であるので、説明を省略する。
【0062】
S502に続くS513において、仮想視点画像生成部12は、任意の視点位置における仮想視点画像を生成する。仮想視点画像の生成方法は、図5(a)のS504で説明した方法と同じである。推論フェーズにおいては、任意の視点位置における仮想視点画像が生成される。生成された仮想視点画像は、修復部133へと出力され、学習済みモデルへの入力となる。
【0063】
S514において、修復部133は、S505で学習された学習済みモデルに対して、S513において生成された仮想視点画像を入力し、仮想視点画像を修復する。なお、ここでは、ゼリーノイズの有無に関わらず、任意の仮想視点画像を入力とする。これは、S505で実施された学習が、S503において生成された教師データに基づいて行われており、そして、該教師データは仮想視点画像にゼリーノイズが無い場合も含んでいる。そのため、ゼリーノイズがない仮想視点画像が入力されたとしても、不必要な修復が行われることがないことが期待される。修復部133で修復された仮想視点画像は、表示装置4に出力される。
【0064】
また、例えばゼリーノイズがある場合にだけ、修復部133により仮想視点画像が修復されるような構成でもよい。この場合には、画像生成装置1が、仮想視点画像がゼリーノイズを含むか否かを判断する判断部を有していてもよい。その判断部が仮想視点画像修復部13に含まれていてもよい。そして、仮想視点画像生成部12から出力される仮想視点画像が判断部に入力され、その判断部が入力された仮想視点画像にゼリーノイズが含まれるか判断する。そして、ゼリーノイズが仮想視点画像に含まれる場合に、修復部133にその仮想視点画像が出力され、修復部133で修復の処理が行われる。一方、ゼリーノイズが仮想視点画像に含まれない場合には、その仮想視点画像は、判断部から修復部133を介さずに、表示装置4に出力される。
【0065】
また、ゼリーノイズが発生しやすいイベントの際に、仮想視点画像生成部12で生成された仮想視点画像が仮想視点画像修復部13に出力される構成にしてもよい。例えば、ラグビーなどのオブジェクトが密集しやすいようなイベントの場合は、どの撮像装置からも撮像されない領域が生じ、ゼリーノイズが発生しやすいため、上記の構成とする。一方、被写体が密集しにくいようなイベントの場合には、仮想視点画像生成部12で生成された仮想視点画像が仮想視点画像修復部13を介さずに、表示装置4に出力されるようにしてもよい。この構成を達成するため、例えば、イベント情報に基づいて、自動で、仮想視点画像生成部12の出力先が、仮想視点画像修復部13か表示装置4に切り替わるようにしてもよい。また、イベント情報に限らず、被写体の密集度などゼリーノイズの発生の可能性が変わることを示す情報に基づいて、出力先が切り替わる構成にしてもよい。また、ユーザの操作や設定に応じて、出力先の切り替えを行うように、画像処理装置1が構成されていてもよい。
【0066】
また、学習には、同じ会場で行われた同一のイベントのみの入力データと正解データの組からなる教師データを用いたが、これに限られない。つまり、複数の異なる会場で行われる様々なイベントのそれぞれにおいて撮像される撮像画像と、それに基づいて生成される仮想視点画像との組を入力データと正解データの組を含む教師データを用いて学習を行ってもよい。例えば、会場Aで開催されたラグビーの試合での撮像に基づいて教師データAを生成し、会場Bで開催されたラグビーの試合での撮像に基づいて教師データBを生成してもよい。そして、教師データAと教師データBとを含む教師データを用いて、修復学習部132の学習が行われてもよい。さらに、教師データとして、教師データAと教師データBの他に、会場Cで開催されるサッカーの試合での撮像に基づいて生成された教師データCを含んでもよく、その教師データを用いて修復学習部132の学習が行われてもよい。また、教師データの中から、イベントなどの情報、またはユーザの設定に基づいて、学習に適切なデータが選択されて、選択された教師データに基づいて学習が行われてもよい。
【0067】
仮想視点画像生成部12から出力される仮想視点画像に対して、例えば自動的、あるいはユーザの設定によりゼリーノイズ、さらにはその他のノイズを特定し、ノイズが特定された仮想視点画像を教師データ生成部に入力する構成であってもよい。
【0068】
以上説明したように、本実施形態によれば、精度が低い形状推定結果に起因して発生するゼリーノイズを、事後処理によって仮想視点画像から取り除くことができる。この結果、仮想視点画像の画質の低下を抑制することができる。
【0069】
<<第2実施形態>>
本実施形態では、仮想視点画像中のどの領域にゼリーノイズがあるかを検出し、検出した領域を修復する処理を、検出用および修復用の二つのニューラルネットワークに分けて学習させる。即ち、検出用の第一モデルと、修復用の第二モデルとをそれぞれ学習させる。そして、その学習済みモデルを組み合わせることで、修復結果をニューラルネットワークに推論させる例を説明する。
【0070】
<システム構成>
図7は、本実施形態における画像処理システムの構成を示す図である。本実施形態の画像処理システムは、第1実施形態で説明した画像生成装置1の代わりに、画像生成装置7が備えられている。図7に示すように、画像生成装置7は、撮像装置2、形状推定装置3、表示装置4に、デイジーチェーン方式で、または、所定のネットワークを介して接続されている。撮像装置2、形状推定装置3、および表示装置4の構成は第1実施形態と同じである。以下、第1実施形態と同じ構成については説明を省略する。
【0071】
画像生成装置7は、カメラ情報取得部11、仮想視点画像生成部12、および仮想視点画像修復部73を有する。第1実施形態と比べて、仮想視点画像修復部73の機能と動作が異なる。
【0072】
仮想視点画像修復部73は、仮想視点画像生成部12が生成した仮想視点画像において、ゼリーノイズがどの領域にあるかを検出し、その検出したゼリーノイズ領域を修復する。この過程を、図8を用いて説明する。
【0073】
図8は、ゼリーノイズマップを説明する図である。図8(a)は、図2(c)の画像221で表されるような仮想視点画像を入力として得られる、ゼリーノイズ領域を表した画像であるゼリーノイズマップを示す図である。図8(b)は、図8(a)に示されるゼリーノイズ領域を修復した仮想視点画像を説明する図である。
【0074】
図8(a)は、図2(c)の画像221の例におけるゼリーノイズマップ801を示している。図8(a)の領域805、806、807は、図2(c)の画像221においてゼリーノイズとして観測される領域225、226、227にそれぞれ対応する画素領域である。図8(b)の画像611は、図8(a)のゼリーノイズマップ801に基づいて、ゼリーノイズ領域を修復した仮想視点画像の例である。図8(b)の領域812、813、814は、図2(a)のオブジェクト202、203、204にそれぞれ対応する画像領域の例である。本実施形態では、ゼリーノイズ領域を検出し、その検出した領域を修復の対象とすることで、それ以外の画像領域を不必要に変えないため、仮想視点画像の画質が安定して向上することが期待される。
【0075】
本実施形態では、これらのゼリーノイズ領域の検出と修復との処理を二つのニューラルネットワークに分けて学習させ、その二つの学習済みモデルを組み合わせることで、仮想視点画像の修復を行うことを想定している。本実施形態の仮想視点画像修復部73は、ノイズ検出用教師データ生成部731、ノイズ検出学習部732、ノイズ検出部733、修復用教師データ生成部734、修復学習部735、および領域修復部736を有する。
【0076】
ノイズ検出用教師データ生成部731は、例えば次の1組の教師データを生成する。即ち、仮想視点画像生成部12で生成される仮想視点画像を入力データとし、その仮想視点画像とカメラ情報取得部11で取得できる対応視点のカメラの撮像画像との差分領域を正解データとした、教師データを生成する。なお、正解データに用いるカメラの撮像画像として、実空間を実際に撮影して得られる画像を用いてもよいし、二つの実カメラの撮像画像から補間して生成される画像を用いてもよい。また、CGによって作成した仮の3次元空間上で得られるカメラのシミュレーション画像を用いてもよい。それぞれの場合における制約は、第1実施形態で説明した例と同様である。
【0077】
ノイズ検出学習部732は、ノイズ検出用教師データ生成部731で生成された教師データに基づいて、正解に対する入力の損失関数を定義する。そして、その損失関数を最小化または最大化できるようにニューラルネットワークのパラメータを繰り返し最適化していくことで、学習を進める。そして、学習して得られたモデルは、ノイズ検出部733へ出力される。
【0078】
図9は、ゼリーノイズ領域の検出を行う学習モデルの概略を説明する図である。図9(a)は、ノイズ検出学習部732で行われる学習処理の例を示している。実カメラC1の視点位置に対応する仮想視点画像P1を入力データとし、その仮想視点画像P1と実カメラC1で撮像された撮像画像との差分領域を正解データとする教師データを用いて学習が行われる。そして、入力データと正解データとのずれ量Lが最小化または最大化するように、繰り返し学習が行われる。ここでは、一つの視点の実カメラを例に挙げたが、画像処理システムを構成する各撮像装置2の対応視点における教師データを用いて繰り返し学習が行われる。
【0079】
なお、ノイズ検出学習部732は、誤差検出部と、更新部と、を備えてもよく、それらの機能は第1実施形態で説明した修復学習部132が備えているものと同様である。また、本実施形態では、ニューラルネットワークを利用して、学習するための特徴量および結合重み付け係数を自ら生成する深層学習(ディープラーニング)をすることを想定している。なお、利用するニューラルネットワークのネットワーク構造としては、ネットワークの入力と出力とが画像データであり、入出力の関係を十分に学習できるものであれば、いかなる方法でもよい。
【0080】
ノイズ検出部733は、ノイズ検出学習部732で得られた学習済みモデルに対して仮想視点画像を入力として与えることで、仮想視点画像においてゼリーノイズがどの領域にあるかを検出する。ここで検出されたゼリーノイズ領域は、ゼリーノイズマップという入力の仮想視点画像と同じサイズの画像形式に変換された後に、修復用教師データ生成部734と領域修復部736とに出力され得る。なお、ノイズ検出学習部732からゼリーノイズマップそのものが出力されるように学習が行われてもよい。また、入力として与えられた仮想視点画像も、修復用教師データ生成部734と領域修復部736とに出力され得る。修復用の学習フェーズの場合には、入力として与えられた仮想視点画像とニューラルネットワークから得られたゼリーノイズマップとは、領域修復部736に出力される。修復用の推論フェーズの場合には、入力として与えられた仮想視点画像とニューラルネットワークから得られたゼリーノイズマップとは、領域修復部736に出力される。
【0081】
図9(b)は、ノイズ検出部733で行われるゼリーノイズ領域の検出処理(推論処理)の例を示している。ノイズ検出学習部732で得られた学習済みモデルに対して、任意の仮想視点の仮想視点画像P2を入力データとして入力すると、仮想視点画像P2におけるゼリーノイズ領域R2が検出される。そして、ゼリーノイズ領域R2は、仮想視点画像P2と同じサイズのゼリーノイズマップM2に変換される。
【0082】
修復用教師データ生成部734は、ノイズ検出部733から得られる仮想視点画像とゼリーノイズマップとを入力データとし、カメラ情報取得部11で取得できる対応視点のカメラの撮像画像を正解データとした、1組の教師データを生成する。なお、ノイズ検出用教師データ生成部731で説明した例と同様に、正解データとするカメラの撮像画像として、実空間を実際に撮影して得られる画像を用いてもよいし、二つの実カメラの撮像画像から補間して生成される画像を用いてもよい。また、CG(コンピュータグラフィックス)によって作成した仮の3次元空間上で得られるカメラのシミュレーション画像を用いてもよい。それぞれの場合における制約は、第1実施形態で説明した例と同様である。
【0083】
修復学習部735は、修復用教師データ生成部734で生成された教師データに基づいて、正解に対する入力の損失関数を定義する。そして、その損失関数を最小化または最大化できるようにニューラルネットワークのパラメータを繰り返し最適化していくことで、学習を進める。そして、学習して得られたモデルは領域修復部736へ出力される。
【0084】
図10は、仮想視点画像におけるゼリーノイズ領域の修復を行う学習モデルの概略を説明する図である。図10(a)は、修復学習部735で行われる学習処理の例を示している。実カメラC1の視点位置に対応する仮想視点画像P1と、仮想視点画像P1に対応するゼリーノイズマップM1とを入力データとし、実カメラC1で撮像された撮像画像を正解データとする教師データを用いて学習が行われる。そして、入力データと正解データとのずれ量Lが最小化または最大化するように、繰り返し学習が行われる。ここでは、一つの視点の実カメラを例に挙げたが、画像処理システムを構成する各撮像装置2の対応視点における教師データを用いて繰り返し学習が行われる。
【0085】
なお、修復学習部735は、誤差検出部と、更新部と、を備えてもよく、それらの機能は第1実施形態で説明した修復学習部132が備えているものと同様である。また、本実施形態では、ニューラルネットワークを利用して、学習するための特徴量および結合重み付け係数を自ら生成する深層学習(ディープラーニング)をすることを想定している。なお、利用するニューラルネットワークのネットワーク構造としては、ネットワークの入力と出力とが画像データであり、入出力の関係を十分に学習できるものであれば、いかなる方法でもよい。
【0086】
領域修復部736は、修復学習部735で得られた学習済みモデルに対して、ノイズ検出部733から与えられるゼリーノイズマップと仮想視点画像とを入力として与えることで、仮想視点画像を修復する。修復後の仮想視点画像は、表示装置4へと出力される。
【0087】
図10(b)は、領域修復部736で行われるゼリーノイズ領域の修復処理(推論処理)の例を示している。修復学習部735で得られた学習済みモデルに対して、任意の仮想視点の仮想視点画像P2と、仮想視点画像P2に対応するゼリーノイズマップM2とを入力データとして入力する。すると、仮想視点画像P2におけるゼリーノイズ領域R2が修復された修復済み仮想視点画像が学習済みモデルから出力される。
【0088】
<処理フロー>
図11および図12は、本実施形態の画像生成装置7が行う処理の例を示すフローチャートである。図11および図12に示すフローチャートを用いて、本実施形態の画像生成装置7の処理を説明する。なお、図5のフローチャートと同じ番号が付与されたステップは、第1実施形態で説明したステップと同じであるため、説明を省略する。
【0089】
まず、図11(a)を用いて、仮想視点画像におけるゼリーノイズ領域の検出を行うニューラルネットワークの学習処理に関するフローチャートを説明する。S501およびS502の処理に続いて、S1103の処理が行われる。
【0090】
S1103において、仮想視点画像生成部12は、実カメラの位置に対応する仮想視点画像群を生成する。生成された仮想視点画像群は、ノイズ検出用教師データ生成部731へと出力される。S1103において生成された仮想視点画像は、ニューラルネットワークの学習をするための入力データとなる。なお、S1103では第1実施形態とは異なり、ノイズ検出用教師データ生成部731へ出力する仮想視点画像群は、ゼリーノイズを含む仮想視点画像のみでもよいし、あるいはゼリーノイズを含まない仮想視点画像を1%程度の割合で混入させてもよい。ゼリーノイズが発生するシーンを重点的に学習に用いる入力データとすることで、ゼリーノイズ領域の特徴を重点的に学習させることができる。また、全てをゼリーノイズ有にするのではなく、ゼリーノイズ無しの仮想視点画像も少量加えることで、学習済みモデルのロバスト性が向上することが期待される。
【0091】
S1104において、ノイズ検出用教師データ生成部731は、S501において取得した実カメラの撮像画像とS1103において生成した、この実カメラの視点位置に応じた仮想視点画像から、差分画像を算出する。なお、この差分画像は、前景領域の各画素について、二つの画像の差の絶対値が閾値以上なら画素値に1をとり、そうでなければ0をとる二値画像である。なお、背景領域の全ての画素は、画素値に0をとる。つまり、二つの画像の差が閾値以上となる画素をゼリーノイズとして検出する。ここで、閾値はゼリーノイズとして検出するか否かの許容値を表しており、どの程度の差まで許容するかどうかで任意に設定可能である。本実施形態においては、例えば5として設定する。なお、本実施形態では、ゼリーノイズ領域の正解データとして、仮想視点画像と対応視点の撮像画像との差分画像を用いる例を説明するが、S1104では、正解データとして用いるデータ(画像データ)を取得できればよい。他の例として、被写体を構成する3次元点群に対する各カメラからの可視性に基づく重み画像を取得してもよいし、ユーザが手動でゼリーノイズ領域を指定したマスク画像を取得してもよい。なお、各カメラからの可視性に基づく重み画像は、注目3次元点があるカメラから可視なら、その3次元点をカメラへ射影した画素の重みを1、不可視なら0として生成した重み画像である。これは、ゼリーノイズが、撮影に使用しているカメラ群から不可視となる領域で発生することが多く、該重み画像内にはゼリーノイズ領域が検出されていると期待されるためである。なお、ユーザが手動でゼリーノイズ領域を指定する場合は、仮想視点画像のみを基にして最初からゼリーノイズマップを作成してもよい。また、上記のような方法によって作成されたゼリーノイズマップと見立てた画像に対してゼリーノイズの過不足がある領域のみ修正した修正画像を用いてもよい。ユーザが手動でゼリーノイズ領域を指定する場合は、ゼリーノイズ領域を指定する工程を別途設ければよい。
【0092】
S1105において、ノイズ検出用教師データ生成部731は、仮想視点画像におけるゼリーノイズ検出を行うニューラルネットワークの学習のための教師データを生成する。なお、ここでは、S1103において生成された仮想視点画像を入力データ、S1104において算出された差分画像を正解データとみなした1組の教師データを生成する。仮想視点画像における色情報は、撮影に使用された実カメラ画像に等しいため、仮想視点の位置姿勢と実カメラの位置姿勢とを同一とすれば、理想的には仮想視点画像と実カメラ画像とが等しくなる。このため、差分画像にはゼリーノイズ領域が浮かび上がっていることが期待されるためである。なお、S1105では、学習に必要な教師データの数を確保するために、データの拡張も付随して行ってもよい。適用するデータの拡張の方法としては、例えば次の処理を適用する方法が挙げられる。即ち、入力データの仮想視点画像とそれに対応する正解データである差分画像とに対して、対応し合う同一の画像部分領域をランダムに切り取る処理(ただし、切り取る画像サイズは固定)と、左右反転させる処理とを適用する方法が挙げられる。
【0093】
S1106において、ノイズ検出学習部732は、S1105において生成された教師データを用いてニューラルネットワークを学習させる。即ち、ノイズ検出学習部732は、任意の仮想視点画像を入力としたときに、出力としてゼリーノイズ領域を表した画像であるゼリーノイズマップを生成できるようにニューラルネットワークを学習させる。学習して得られる学習済みモデルは、ノイズ検出部733へと出力される。
【0094】
この学習済みモデルの出力で得られるゼリーノイズ領域を表した画像であるゼリーノイズマップは、本実施形態では、各画素がゼリーノイズか否か、つまり0か1かの二値を画素値としてとるものと想定している。したがって、ゼリーノイズ検出はラベル付け問題として解釈できるため、ニューラルネットワークの学習をする際に用いる損失関数としては、ラベルが合っているか否かを評価するために用いられる交差エントロピー誤差を用いる。また、その損失関数を最小化するようにニューラルネットワークのパラメータを最適化するための方法としては、確率的勾配法を用いる。また、ニューラルネットワークのアーキテクチャとしては、高精度なセグメンテーションが可能であることで知られているSegNetで使用されているものと同等のものを用いる。なお、本実施形態では、ゼリーノイズマップが二値であるとして処理をしたが、ゼリーノイズマップが多値であるとして扱って処理を行ってもよい。その場合、ラベルを多値にわけるか、画素値をラベルとしてではなくゼリーノイズの尤度と考え、各画素におけるニューラルネットワークの出力として、ラベル値ではなく確率を出力すればよい。
【0095】
なお、このゼリーノイズマップに対して、ユーザが処理を加えてもよい。例えば、後段のゼリーノイズ修復用NNにおいて、同時に修復させたいノイズをユーザが特定し、その特定されたノイズの画像領域に対し、アノテーションを付ける処理をしてもよい。そのアノテーションが付された領域の画素値がゼリーノイズの領域と同じ画素値にすればよい。また、ユーザが同時に修復させたいノイズを特定し、特定されたノイズの領域を含むマップとゼリーノイズマップとから、いずれかのマップにノイズとして含まれる領域をノイズとして生成された合成マップが、ゼリーノイズマップとして用いられてもよい。
【0096】
次に、図11(b)に示す、仮想視点画像におけるゼリーノイズ領域の修復を行うニューラルネットワークの学習処理に関するフローチャートを説明する。S501、S502、S1103の処理は、図11(a)に示す処理と同じである。これらの処理に続き、S1114の処理が行われる。
【0097】
S1114において、ノイズ検出部733は、ノイズ検出学習部732より得られる学習済みのモデルに対して、S1103において生成した実カメラ位置に応じた仮想視点画像を入力して、ゼリーノイズマップを生成する。生成されたゼリーノイズマップは、修復用教師データ生成部734へ出力さる。
【0098】
S1115において、修復用教師データ生成部734は、仮想視点画像におけるゼリーノイズ領域に対して修復処理を行うニューラルネットワークの学習のための教師データを生成する。ここでは、S1103において生成された仮想視点画像と、S1114において生成されたゼリーノイズマップとを入力データとし、S501において取得した、その仮想視点の位置に対応する実カメラの撮像画像を正解データとした、教師データを生成する。仮想視点画像における色情報は、撮影に使用された実カメラ画像に等しいため、仮想視点の位置姿勢と実カメラの位置姿勢を同一とすれば、理想的には仮想視点画像と実カメラ画像が等しくなるためである。
【0099】
S1116において、修復学習部735は、S1115において生成された教師データを用いて、ニューラルネットワークを学習させる。即ち、修復学習部735は、任意の仮想視点画像とそれに対応するゼリーノイズマップとを入力としたときに、出力としてゼリーノイズ領域を修復した仮想視点画像を生成できるようにニューラルネットワークを学習させる。なお、入力として与えられた仮想視点画像とゼリーノイズマップとは、ニューラルネットワークに対して、一つの入力層、つまり仮想視点画像とゼリーノイズマップとを統合した1枚の多チャンネル画像として入力される。学習して得られる学習済みモデルは、領域修復部736へと出力される。なお、ニューラルネットワークの学習をする際に用いる損失関数としては、正解に対する入力の忠実度を測るために、平均二乗誤差を用いる。ただし、誤差を計算する画素は、ゼリーノイズマップにおいてゼリーノイズと判断されている領域のみとする。誤差を計算する画素の対象をゼリーノイズ領域のみとすることで、ゼリーノイズ領域ではない領域への画質の影響をなくすことができる。また、その損失関数を最小化するようにニューラルネットワークのパラメータを最適化するための方法としては、Adam法を用いる。また、ニューラルネットワークのアーキテクチャとしては、第1実施形態で採用したU-Netにおける畳み込み層を、Partial Convolution Layer(部分的畳み込み層)で置き換えたものを用いる。部分的畳み込み層は、演算に使用する画素の位置をマスク画像として与えることで、マスクされた領域の値のみを用いて処理を行う。そのため、部分的畳み込み層は、画像のインペインティング処理に適している。本実施形態での仮想視点画像修復はゼリーノイズ領域のインペインティング処理として解釈できるため、部分的畳み込み層は有効である。
【0100】
次に、学習済みのゼリーノイズ領域の検出用と修復用のニューラルネットワークモデルを用いて、実際に仮想視点画像の修復を行う推論処理のフローチャートを、図12を用いて説明する。図12では、第1実施形態で説明したS501、S502、S513の処理に続いて、S1204の処理が行われる。
【0101】
S1204において、ノイズ検出部733は、ノイズ検出学習部732から取得できる学習済みモデルに対して、S513において生成された仮想視点画像を入力し、ゼリーノイズマップを生成する。なお、ここでは、ゼリーノイズを含むか否かを検出するために、任意の仮想視点画像を入力とする。生成されたゼリーノイズマップは、領域修復部736へと出力され、学習済みモデルへの入力となる。
【0102】
S1205において、領域修復部736は、S1116で学習された学習済みモデルに対して、S1204において与えられた対応仮想視点画像と生成されたゼリーノイズマップとを入力し、仮想視点画像を修復する。なお、ここでは、ゼリーノイズの有無に関わらず、任意の仮想視点画像を入力とする。これは、S1116において学習された学習済みモデルは、ゼリーノイズ領域のみを修復するように学習がなされており、S1205においてゼリーノイズ領域が検出されない限り、その他の領域には影響を与えないためである。その結果、副作用を抑え、ゼリーノイズ領域の改善を行うことができる。修復された仮想視点画像は、表示装置4に出力される。
【0103】
なお、図12の処理においては、ゼリーノイズの有無に関わらず、任意の仮想視点画像を領域修復部736に入力する例を説明したが、これに限られない。S1204で生成されたゼリーノイズマップにおいてゼリーノイズ領域が存在しない場合には、対応する仮想視点画像を、領域修復部736に入力せず、修復処理を省略してもよい。
【0104】
以上説明したように、本実施形態によれば、精度が低い形状推定結果に起因して発生するゼリーノイズが仮想視点画像のどの領域にあるかを検出することができ、その検出結果に基づいてゼリーノイズ領域を修復することができる。このため、ゼリーノイズではない領域に影響を与えずに仮想視点画像を修復することができる。この結果、仮想視点画像の画質の低下を抑制することができる。
【0105】
<<その他の実施形態>>
上述した各実施形態では、画像生成装置において学習部と修復部または検出部(推論部という)との両方が備えられている例を説明したが、学習部と推論部とが別々の画像生成装置に備えられていてもよい。例えば、学習部を備えている第一の画像生成装置で学習が行われてよい。そして学習された学習済みモデルが、推論部を備える第二の画像生成装置に送られ、第二の画像生成装置において推論処理が行われてもよい。
【0106】
また、以上の実施形態において、学習済みモデルは別の環境(図1の画像処理システム以外)で作成しておき、その学習結果を適用してノイズを修復するようにしてもよい。
【0107】
また、以上の実施形態では機械学習を用いてノイズ領域を補正するものとしたがこれに限らない。所定の仮想視点の仮想視点画像と、当該仮想視点と同じ、あるいは当該仮想視点に近い実カメラ画像との比較により差分を抽出し、その差分を用いて仮想視点画像を補正することによってノイズを除去あるいは低減させた仮想視点画像を得ることも可能である。このとき実カメラ画像を、比較対象とする仮想視点画像の仮想視点に一致または近付けるために射影変換等を行ってから比較するようにしてもよい。また、複数の実カメラ画像を適宜ブレンド(合成処理)した画像と比較するようにしてもよい。
【0108】
本発明は上述の実施形態の1以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0109】
1 画像生成装置
2 撮像装置
3 形状推定装置
12 仮想視点画像生成部
13 仮想視点画像修復部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12