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

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

▶ リアルシー・(ベイジン)・テクノロジー・カンパニー・リミテッドの特許一覧

特許7484055深度情報付きのパノラマ画像を生成する方法、装置、記憶媒体、電子機器及びコンピュータプログラム
<>
  • 特許-深度情報付きのパノラマ画像を生成する方法、装置、記憶媒体、電子機器及びコンピュータプログラム 図1
  • 特許-深度情報付きのパノラマ画像を生成する方法、装置、記憶媒体、電子機器及びコンピュータプログラム 図2
  • 特許-深度情報付きのパノラマ画像を生成する方法、装置、記憶媒体、電子機器及びコンピュータプログラム 図3
  • 特許-深度情報付きのパノラマ画像を生成する方法、装置、記憶媒体、電子機器及びコンピュータプログラム 図4
  • 特許-深度情報付きのパノラマ画像を生成する方法、装置、記憶媒体、電子機器及びコンピュータプログラム 図5
  • 特許-深度情報付きのパノラマ画像を生成する方法、装置、記憶媒体、電子機器及びコンピュータプログラム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-08
(45)【発行日】2024-05-16
(54)【発明の名称】深度情報付きのパノラマ画像を生成する方法、装置、記憶媒体、電子機器及びコンピュータプログラム
(51)【国際特許分類】
   G06T 7/50 20170101AFI20240509BHJP
【FI】
G06T7/50
【請求項の数】 13
(21)【出願番号】P 2022554963
(86)(22)【出願日】2020-11-11
(65)【公表番号】
(43)【公表日】2023-01-25
(86)【国際出願番号】 CN2020128079
(87)【国際公開番号】W WO2021098567
(87)【国際公開日】2021-05-27
【審査請求日】2022-07-05
(31)【優先権主張番号】201911133455.X
(32)【優先日】2019-11-19
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】522019454
【氏名又は名称】リアルシー・(ベイジン)・テクノロジー・カンパニー・リミテッド
【氏名又は名称原語表記】REALSEE(BEIJING)TECHNOLOGY CO.,LTD.
(74)【代理人】
【識別番号】100107456
【弁理士】
【氏名又は名称】池田 成人
(74)【代理人】
【識別番号】100162352
【弁理士】
【氏名又は名称】酒巻 順一郎
(74)【代理人】
【識別番号】100123995
【弁理士】
【氏名又は名称】野田 雅一
(72)【発明者】
【氏名】シー, ウェンボー
(72)【発明者】
【氏名】グ, シャオドン
(72)【発明者】
【氏名】パン, チーフイ
(72)【発明者】
【氏名】リウ, チェンリン
【審査官】小池 正彦
(56)【参考文献】
【文献】国際公開第2019/204118(WO,A1)
【文献】尾山匡浩、松崎大輔,単眼RGB画像からの深度画像生成,ロボティクスメカトロニクス講演会2019講演会論文集,日本,日本機械学会,2019年06月05日,2P2-H09(1)-(2)
【文献】ALADEM M et al,A Comparative Study of Different CNN Encoders for Monocular Depth Prediction,2019 IEEE National Aerospace and Electronics Conference (NAECON),米国,IEEE,2019年07月15日,pp. 328-331,https://ieeexplore.ieee.org/document/9057857
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/50
(57)【特許請求の範囲】
【請求項1】
深度情報付きのパノラマ画像を生成する方法であって、
現在のシーンの、球面投影に基づく二次元画像を取得することと、
予め設定された数の前記二次元画像を水平方向に端と端をつなげて接することで中間画像を構成することと、
予め設定された数の前記二次元画像を水平方向に端と端をつなげて接することで中間画像を構成した後、前記中間画像の上下縁をトリミングすることと、
画像深度を予測するためのトレーニングされたニューラルネットワークモデルを利用して、前記中間画像の深度情報を確定することと、
前記中間画像の水平方向における中間位置に基づいて前記中間画像をトリミングすることで、前記二次元画像の長さと等しく画像を得て、トリミングされた前記画像の深度情報を確定し、深度情報付きのトリミングされた前記画像を現在のシーンのパノラマ画像として確定することと
を含む、深度情報付きのパノラマ画像を生成する方法。
【請求項2】
前記画像深度を予測するためのニューラルネットワークモデルは、
プレトレーニングされた畳み込みニューラルネットワークを初期バックボーンネットワークとし、U-Netネットワーク構造に応じて前記初期バックボーンネットワークを構造的に調整し、
複数の深度情報付きのカラー三次元画像を利用して、調整された前記初期バックボーンネットワークをトレーニングし、前記画像深度を予測するためのニューラルネットワークモデルを生成することによってトレーニングされる、請求項1に記載の方法。
【請求項3】
前記プレトレーニングされた畳み込みニューラルネットワークは、ImageNetでプレトレーニングされたDenseNetネットワークであり、
前記U-Netネットワーク構造に応じて前記初期バックボーンネットワークを構造的に調整することは、
前記DenseNetネットワークの全接続層を削除することと、
前記U-Netネットワーク構造に基づいて、前記全接続層を削除したDenseNetネットワークの最後の層の後ろに複数のアップサンプリング層を添加し、それぞれ前記複数のアップサンプリング層における各アップサンプリング層に対応する重畳層を設定し、各アップサンプリング層の入力チャンネル数は該アップサンプリング層の出力チャンネル数の予め設定された倍数であり、
添加された各アップサンプリング層において、該アップサンプリング層の入力情報を予め設定された解像度倍数でアップサンプリングして、アップサンプリング結果を該アップサンプリング層に対応する重畳層の出力データと重畳して、重畳結果に少なくとも1回の畳み込み演算を実行し、予め設定された活性化関数を使用して畳み込み演算結果を線形修正することと、
前記複数のアップサンプリング層における最後のアップサンプリング層の出力に対して、1回の深度情報を出力するための畳み込み演算と、1回の信頼度情報を出力するための畳み込み演算とを行うことと
を含む、請求項2に記載の方法。
【請求項4】
前記DenseNetネットワークはDenseNet-169ネットワークであり、前記複数のアップサンプリング層は4つのアップサンプリング層であり、
各アップサンプリング層の入力チャンネル数は該アップサンプリング層の出力チャンネル数の2倍であり、
添加された各アップサンプリング層において、該アップサンプリング層の入力情報を2倍の解像度でアップサンプリングし、
前記少なくとも1回の畳み込み演算は2回の畳み込み演算である、請求項3に記載の方法。
【請求項5】
4つの前記アップサンプリング層に対して、4つの前記アップサンプリング層の最初の層から最後の層の順に応じて、前記4つのアップサンプリング層に順次対応する重畳層は、それぞれpool3_pool、pool2_pool、pool1、conv1/reluである、請求項4に記載の方法。
【請求項6】
複数の深度情報付きのカラー三次元画像を利用して、調整された前記初期バックボーンネットワークをトレーニングする前に、前記方法は、
前記複数の深度情報付きのカラー三次元画像を前処理し、前記複数の深度情報付きのカラー三次元画像を前処理する過程において、少なくとも1つの深度情報付きのカラー三次元画像には、前記深度情報付きのカラー三次元画像において深度情報を確定できない画素点を指すホールがあると確定した場合に、前記ホールに穴埋め処理を行わないことを更に含む、請求項2に記載の方法。
【請求項7】
前記複数の深度情報付きのカラー三次元画像を利用して、調整された前記初期バックボーンネットワークをトレーニングする過程において、教師付き学習方法を用いてトレーニングし、
深度推定に用いられる損失関数は、ニューラルネットワークモデルに基づく各画素の深度推定値と信頼度推定値の関数である、請求項2に記載の方法。
【請求項8】
現在のシーンの、球面投影に基づく二次元画像を取得した後、前記二次元画像に視角ブラインド領域があると確定したことに応答して、前記視角ブラインド領域を黒色に塗りつぶすことを更に含む、請求項1~7のいずれか一項に記載の方法。
【請求項9】
前記中間画像の上下縁をトリミングすることは、
前記中間画像の上縁と下縁から、それぞれ前記中間画像の高さの予め設定された比率の高さの画像をトリミングすることを含む、請求項1に記載の方法。
【請求項10】
深度情報付きのパノラマ画像を生成する装置であって、
現在のシーンの、球面投影に基づく二次元画像を取得するための取得ユニットと、
予め設定された数の前記二次元画像を水平方向に端と端をつなげて接することで中間画像を構成し、予め設定された数の前記二次元画像を水平方向に端と端をつなげて接することで中間画像を構成した後、前記中間画像の上下縁をトリミングするためのつなぎ合わせユニットと、
画像深度を予測するためのトレーニングされたニューラルネットワークモデルを利用して、前記中間画像の深度情報を確定するための処理ユニットと、
前記中間画像の水平方向における中間位置に基づいて前記中間画像をトリミングすることで、前記二次元画像の長さと等しく画像を得て、トリミングされた前記画像の深度情報を確定し、深度情報付きのトリミングされた前記画像を現在のシーンのパノラマ画像として確定するためのトリミングユニットと
を含む、深度情報付きのパノラマ画像を生成する装置。
【請求項11】
電子機器のプロセッサによって実行されると、前記プロセッサに請求項1~9のいずれか一項に記載の方法を実行させる命令を含むコンピュータプログラムが記憶された非一時的コンピュータ可読記憶媒体。
【請求項12】
電子機器であって、
プロセッサと、
前記プロセッサで実行可能なコンピュータプログラムを記憶するためのメモリと
を含み、
前記コンピュータプログラムは前記プロセッサによって実行されると、前記プロセッサに請求項1~9のいずれか一項に記載の方法を実行させる電子機器。
【請求項13】
プロセッサを有する電子機器によって実行されるためのコンピュータプログラムであって、前記プロセッサによって実行されると、前記電子機器に請求項1~9のいずれか一項に記載の方法を実行させる命令を含む、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は三次元モデル再構築技術分野に関し、特に深度情報付きのパノラマ画像を生成する方法、装置及び記憶媒体に関する。
【背景技術】
【0002】
三次元モデル再構築は工業検出、品質制御とマシンビジョンなどの分野で重要な地位を占めている。室内外のシーンの三次元再構築の分野では、深度データがポイントクラウドを形成してモデル化すると共に、ポイントクラウドの距離情報に基づいて、センサで得られた異なる位置のポイントクラウドをつなぎ合わせる必要がある。ただし、三次元再構築の深度データの取得には、通常、構造化光、時間飛行(Time Of Flight)原理に基づくレーザーなどの高コストの専用深度センサが必要であり、そのコストが高いため、大規模な工業的実用では、コストが高すぎる。
【発明の概要】
【0003】
本開示の実施例は深度情報付きのパノラマ画像を生成する方法を提供し、該方法は、現在のシーンの、球面投影に基づく二次元画像を取得することと、予め設定された数の前記二次元画像を水平方向に端と端をつなげて接することで中間画像を構成することと、画像深度を予測するためのトレーニングされたニューラルネットワークモデルを利用して、前記中間画像の深度情報を確定することと、中間画像の水平方向における中間位置に基づいて中間画像をトリミングすることで、二次元画像の長さと等しく画像を得て、トリミングされた画像の深度情報を確定し、深度情報付きのトリミングされた画像を現在のシーンのパノラマ画像として確定することとを含む。
【0004】
本開示の一例において、画像深度を予測するためのニューラルネットワークモデルは、プレトレーニングされた畳み込みニューラルネットワークを初期バックボーンネットワークとし、U-Netネットワーク構造に応じて前記初期バックボーンネットワークを構造的に調整し、複数の深度情報付きのカラー三次元画像を利用して、調整された前記初期バックボーンネットワークをトレーニングし、前記画像深度を予測するためのニューラルネットワークモデルを生成することによってトレーニングされる。
【0005】
本開示の一例において、前記プレトレーニングされた畳み込みニューラルネットワークは、ImageNetでプレトレーニングされたDenseNetネットワークである。U-Netネットワーク構造に応じて前記初期バックボーンネットワークを構造的に調整することは、
DenseNetネットワークの全接続層を削除することと、
U-Netネットワーク構造に基づいて、全接続層を削除したDenseNetネットワークの最後の層の後ろに複数のアップサンプリング層を添加し、それぞれ複数のアップサンプリング層における各アップサンプリング層に対応する重畳層を設定し、ここで、各アップサンプリング層の入力チャンネル数はその出力チャンネル数の予め設定された倍数であり、添加された各アップサンプリング層において、該アップサンプリング層の入力情報を予め設定された解像度倍数でアップサンプリングして、アップサンプリング結果を該アップサンプリング層に対応する重畳層の出力データと重畳して、重畳結果に少なくとも1回の畳み込み演算を実行し、予め設定された活性化関数を使用して畳み込み演算結果を線形修正することと、
複数のアップサンプリング層における最後のアップサンプリング層の出力に対して、1回の深度情報を出力するための畳み込み演算と、1回の信頼度情報を出力するための畳み込み演算とを行うことと
を含む。
【0006】
本開示の一例において、DenseNetネットワークはDenseNet-169ネットワークであり、複数のアップサンプリング層は4つのアップサンプリング層である。各アップサンプリング層の入力チャンネル数はその出力チャンネル数の2倍である。添加された各アップサンプリング層において、該アップサンプリング層の入力情報を2倍の解像度でアップサンプリングし、少なくとも1回の畳み込み演算は2回の畳み込み演算であってもよい。
【0007】
本開示の一例において、4つのアップサンプリング層に対して、4つのアップサンプリング層の最初の層から最後の層の順に応じて、この4つのアップサンプリング層に順次対応する重畳層はpool3_pool、pool2_pool、pool1、conv1/reluである。
【0008】
本開示の一例において、複数の深度情報付きのカラー三次元画像を利用して、調整された前記初期バックボーンネットワークをトレーニングする前に、本開示の実施例による方法は、
前記複数の深度情報付きのカラー三次元画像を前処理し、前記複数の深度情報付きのカラー三次元画像を前処理する過程において、少なくとも1つの深度情報付きのカラー三次元画像には、深度情報付きのカラー三次元画像において深度情報を確定できない画素点を指すホールがあると確定した場合に、ホールに穴埋め処理を行わないことをさらに含む。
【0009】
本開示の一例において、複数の深度情報付きのカラー三次元画像を利用して、調整された初期バックボーンネットワークをトレーニングする過程において、教師付き学習方法を用いてトレーニングし、ここで、深度推定に用いられる損失関数は、ニューラルネットワークモデルに基づく各画素の深度推定値と信頼度推定値の関数である。
【0010】
本開示の一例において、現在のシーンの、球面投影に基づく二次元画像を取得した後、本開示の実施例による方法は、前記二次元画像に視角ブラインド領域があると確定したことに応答して、前記視角ブラインド領域を黒色に塗りつぶすことをさらに含む。
【0011】
本開示の一例において、本開示の実施例による方法は、予め設定された数の前記二次元画像を水平方向に端と端をつなげて接することで中間画像を構成した後、前記中間画像の上下縁をトリミングすることをさらに含む。
【0012】
本開示の一例において、前記中間画像の上下縁をトリミングすることは、前記中間画像の上縁と下縁から、それぞれ前記中間画像の高さの予め設定された比率の高さの画像をトリミングすることを含む。
【0013】
本開示の一例において、前記予め設定された数は3であり、前記予め設定された比率は15%である。
【0014】
本開示の実施例は深度情報付きのパノラマ画像を生成する装置をさらに提供し、前記装置は、現在のシーンの、球面投影に基づく二次元画像を取得するための取得ユニットと、予め設定された数の前記二次元画像を水平方向に端と端をつなげて接することで中間画像を構成するためのつなぎ合わせユニットと、画像深度を予測するためのトレーニングされたニューラルネットワークモデルを利用して、前記中間画像の深度情報を確定するための処理ユニットと、中間画像の水平方向における中間位置に基づいて中間画像をトリミングすることで、二次元画像の長さと等しく画像を得て、トリミングされた画像の深度情報を確定し、深度情報付きのトリミングされた画像を現在のシーンのパノラマ画像として確定するためのトリミングユニットとを含む。
【0015】
本開示の一例において、画像深度を予測するためのニューラルネットワークモデルは、
プレトレーニングされた畳み込みニューラルネットワークを初期バックボーンネットワークとし、U-Netネットワーク構造に応じて前記初期バックボーンネットワークを構造的に調整し、複数の深度情報付きのカラー三次元画像を利用して、調整された初期バックボーンネットワークをトレーニングし、前記画像深度を予測するためのニューラルネットワークモデルを生成することによってトレーニングされる。
【0016】
本開示の一例において、前記プレトレーニングされた畳み込みニューラルネットワークは、ImageNetでプレトレーニングされたDenseNet-169ネットワークである。
【0017】
本開示の一例において、前記処理ユニットは、
DenseNet-169ネットワークの全接続層を削除するための削除サブユニットと、
U-Netネットワーク構造に基づいて、全接続層を削除したDenseNet-169ネットワークの最後の層の後ろに4つのアップサンプリング層を添加し、それぞれ4つのアップサンプリング層における各アップサンプリング層に対応する重畳層を設定し、ここで、各アップサンプリング層の入力チャンネル数は出力チャンネル数の2倍であり、添加された各アップサンプリング層において、該アップサンプリング層の入力情報を2倍の解像度でアップサンプリングして、アップサンプリング結果を該アップサンプリング層に対応する重畳層の出力データと重畳して、重畳結果に2回の畳み込み演算を連続的に実行し、予め設定された活性化関数を使用して畳み込み演算結果を線形修正するための添加サブユニットと、
4つのアップサンプリング層における最後のアップサンプリング層の出力に対して、1回の深度情報を出力するための畳み込み演算と、1回の信頼度情報を出力するための畳み込み演算とを行うための演算サブユニットと
を含む。
【0018】
本開示の一例において、4つのアップサンプリング層に対して、4つのアップサンプリング層の最初の層から最後の層の順に応じて、4つのアップサンプリング層に順次対応する重畳層はpool3_pool、pool2_pool、pool1、conv1/reluである。
【0019】
本開示の一例において、前記処理ユニットはさらに、
前記複数の深度情報付きのカラー三次元画像を前処理し、前記複数の深度情報付きのカラー三次元画像を前処理する過程において、少なくとも1つの深度情報付きのカラー三次元画像には、深度情報付きのカラー三次元画像において深度情報を確定できない画素点を指すホールがあると確定した場合に、ホールに穴埋め操作を行わないために用いられる。
【0020】
本開示の一例において、前記複数の深度情報付きのカラー三次元画像を利用して、調整された前記初期バックボーンネットワークをトレーニングする過程において、教師付き学習方法を用いてトレーニングし、ここで、深度推定に用いられる損失関数は、ニューラルネットワークモデルに基づく各画素の深度推定値と信頼度推定値の関数である。
【0021】
本開示の一例において、前記取得ユニットはさらに、前記二次元画像に視角ブラインド領域があると確定したことに応答して、視角ブラインド領域を黒色に塗りつぶすために用いられる。
【0022】
本開示の一例において、前記つなぎ合わせユニットはさらに、前記中間画像の上下縁をトリミングするために用いられる。
【0023】
本開示の一例において、前記つなぎ合わせユニットはさらに、前記中間画像の上縁と下縁から、それぞれ中間画像の高さの予め設定された比率の高さの画像をトリミングするために用いられる。
【0024】
本開示の一例において、前記予め設定された数の値は3であり、前記予め設定された比率は15%である。
【0025】
本開示の実施例は、電子機器のプロセッサによって実行されると、前記プロセッサに上記の深度情報付きのパノラマ画像を生成する方法を実行させる命令を含むコンピュータプログラムが記憶された非一時的コンピュータ可読記憶媒体を更に提供する。
【0026】
本開示の実施例はメモリとプロセッサを含む電子機器を更に提供する。メモリは、プロセッサで実行可能なコンピュータプログラムを記憶するために用いられ、前記プロセッサは前記プログラムを実行すると、以上に記載の深度情報付きのパノラマ画像を生成する方法を実現する。
【0027】
本開示の実施例による技術的解決手段によって、現在のシーンの、球面投影に基づく二次元画像を取得した後、複数の二次元画像を水平方向に端と端をつなげて接することで中間画像を構成する。続いて、画像深度を予測するためのトレーニングされたニューラルネットワークモデルを利用して、中間画像の深度情報を確定する。中間画像の水平方向における中間位置に基づいて中間画像をトリミングすることで、二次元画像の長さと等しく画像を得る。中間画像の深度情報を確定したので、中間画像からトリミングされた画像も対応的に深度情報を有し、現在のシーンの深度情報付きのパノラマ画像とすることができる。本開示の実施例による技術的解決手段を応用すると、深度カメラを使用することを必要とせず、現在のシーンの深度情報付きのパノラマ画像を得ることができるので、コストを低減することができる。また、複数の二次元画像をつなぎ合わせた中間画像に対して深度情報を確定するため、二次元画像の端と端の接続部分に情報が欠落することがなく、従って、確定された深度情報結果をより正確にすることができる。
【図面の簡単な説明】
【0028】
以下の図面は、本開示の範囲を限定するものではなく、本開示を例示的に説明し解釈するものに過ぎない。
図1】本開示のいくつかの実施例による深度情報付きのパノラマ画像を生成する方法のフローチャートである。
図2】本開示のいくつかの実施例による複数の二次元画像を端と端をつなげて接して構成される中間画像の概略図である。
図3】本開示のいくつかの実施例による中間画像の上下縁をトリミングした結果の概略図である。
図4】本開示のいくつかの実施例による深度情報付きのパノラマ画像を生成する装置の概略構成図である。
図5】本開示の別のいくつかの実施例による深度情報付きのパノラマ画像を生成する装置の概略構成図である。
図6】本開示のいくつかの実施例による電子機器の概略構成図である。
【発明を実施するための形態】
【0029】
本開示の目的、技術的解決手段、および利点をより明確にするために、以下では、図面及び実施例に合わせて、本開示の技術的解決手段を詳細に説明する。
【0030】
本開示の実施例では、通常のカメラを利用して撮影し、現在のシーンの二次元画像を得ることができる。複数の同じ現在のシーンの二次元画像を水平方向に端と端をつなげて接することで中間画像を構成し、画像深度を予測するためのトレーニングされたニューラルネットワークモデルを利用して中間画像の深度情報を確定することができる。続いて、中間画像の水平方向における中間位置に基づいて中間画像をトリミングすることで、現在のシーンの二次元画像の長さと等しく画像を得る。中間画像からトリミングされた画像は対応する深度情報を持つため、現在のシーンの深度情報付きのパノラマ画像とすることができる。
【0031】
図1は本開示のいくつかの実施例による深度情報付きのパノラマ画像を生成する方法のフローチャートであり、図1に示すように、該方法は主に以下のステップを含む。
【0032】
ステップ101では、現在のシーンの、球面投影に基づく二次元画像を取得する。
【0033】
本開示の実施例では、画像キャプチャ装置から現在のシーンの、球面投影に基づく二次元画像を取得することができる。二次元画像にはパノラマ画像のRGB情報のみを持つことができるが、パノラマ画像の深度情報を持っていないため、画像キャプチャ装置に対する要求は低く、RGB魚眼カメラなどのRGBカメラ付きのスキャン装置であればよく、携帯電話などのカメラ付きのモバイルデバイスでもよい。使用した画像キャプチャ装置は深度カメラを必要としないため、パノラマ画像を取得するコストが低い。
【0034】
本開示の実施例では、取得された現在のシーンの二次元画像の上縁と下縁については、ニューラルネットワークモデルが二次元画像の深度情報を推測するために、完全な視角を揃える必要はなく、垂直視角で十分なテクスチャ、ライン、物体情報を持っていればよい。
【0035】
例えば、完全な視角を揃っていない場合、二次元画像における視角ブラインド領域は黒色に塗りつぶすことができる。例示的な実施例によれば、現在のシーンの、球面投影に基づく二次元画像を取得した後、二次元画像に視角ブラインド領域があるかどうかをさらに確定することができる。二次元画像に視角ブラインド領域があると確定したことに応答して、二次元画像における視角ブラインド領域を黒色に塗りつぶす。
【0036】
ステップ102では、予め設定された数の二次元画像を水平方向に端と端をつなげて接することで中間画像を構成する。
【0037】
本開示の実施例では、予め設定された数Nの値は1よりも大きい整数であり、例えば、Nの値は3であってもよい。
【0038】
球面投影に基づく二次元画像は、それ自体の情報が端と端をつなげて接するものである。予め設定された数の二次元画像を水平方向に端と端をつなげて接することで中間画像を構成することは、1番目の二次元画像の尾部を2番目の二次元画像の頭部に接続し、2番目の二次元画像の尾部を3番目の二次元画像の頭部に接続し、以下同様にして、かつ、1番目二次元画像の頭部は最後の二次元画像の尾部に接続されていないことを指すことができる。予め設定された数の二次元画像は複数の同じ画像であってもよく、すなわち、いずれも現在のシーンの、球面投影に基づく二次元画像である。例えば、図2に示すように、3つの二次元画像によって構成された中間画像の概略図を示す。
【0039】
いくつかの例では、球面投影に基づく二次元画像の長さ(水平方向における長さである)と幅(垂直方向における長さであり、高さとも呼ばれる)の比率は2:1である。したがって、N個の二次元画像を水平方向に端と端をつなげて接して構成された中間画像は、その長さと幅の比が2N:1である。例えばN=3の場合、中間画像のアスペクト比は6:1となる。
【0040】
実際の応用では、球面投影に基づく二次元画像の上下縁の部分に歪みが存在する可能性があり、歪みは後続の畳み込みニューラルネットワークのトレーニングと深度推定に影響を与える。この影響を低減するために、本開示の実施例では、予め設定された数の二次元画像を水平方向に端と端をつなげて接することで中間画像を構成した後、中間画像の上下縁をトリミングすることもできる。例えば、中間画像の上縁から一定の比率の高さの画像をトリミングし、中間画像の下縁から一定の比率の高さの画像をトリミングすることができる。上縁に対するトリミング比率と下縁に対するトリミング比率は同じであってもよいし、異なっていてもよい。
【0041】
本開示の実施例では、中間画像の上下縁をトリミングすることは、中間画像の上縁と下縁から、それぞれ中間画像の高さの予め設定された比率の高さの画像をトリミングすることを含み、ここでは、予め設定された比率は、二次元画像におけるテクスチャ、ライン、物体情報の欠落が一定の閾値を超えていないことを保証できればよく、15%であってもよく、他の値であってもよい。この閾値は具体的な必要に応じて確定することができ、本開示はこれに限定されない。例えば、アスペクト比が6:1の中間画像については、この中間画像の上下縁をそれぞれに15%トリミングした後、そのアスペクト比が60:7になる。図3に示すように、上下縁をトリミングした中間画像の例を示しており、ここでのスクライブ部分はトリミングされた画像部分である。
【0042】
ステップ103では、画像深度を予測するためのトレーニングされたニューラルネットワークモデルを利用して、中間画像の深度情報を確定する。
【0043】
本開示の実施例では、トレーニングによって画像深度を予測するためのニューラルネットワークモデルを得ることができる。例えば、大量の実際のシーンの深度情報付きのカラー三次元画像をトレーニングサンプルとして予め収集しておいてもよい。トレーニングサンプルには画素レベルのアライメントが必要であり、例えば壁の隅、自動車、天井、地面、窓、ドアなどの要素の屋内及び屋外の様々なシーンを含む。
【0044】
一般的には、実際のシーンの深度情報付きのカラー三次元画像にはホールがあり、本開示の実施例では、収集された大量なトレーニングサンプル(即ち深度情報付きのカラー三次元画像)を前処理(ガウシアンフィルタ、寸法調整など)することができる。説明すべきことは、トレーニングサンプルを前処理する際に、トレーニングサンプルにホールがあれば、ホールに穴埋め処理を行わない。ここでのホールとは画像における深度情報を確定できない画素点を指す。このような深度情報を確定できない画素点については、本開示の実施例では、その深度情報が依然として未知のままに保持され、事前推定や他の方法によりその深度値取得して穴埋め処理を実現することがない。
【0045】
大量なトレーニングサンプルを收集した後、トレーニングサンプルを利用してニューラルネットワークモデルをトレーニングすることで、画像深度を予測するためのニューラルネットワークモデルを得ることができる。
【0046】
本開示の実施例では、画像深度を予測するためのニューラルネットワークモデルは以下の方式によってトレーニングすることができる。プレトレーニングされた畳み込みニューラルネットワークを初期バックボーンネットワークとし、U-Netネットワーク構造に応じて初期バックボーンネットワークを構造的に調整する。複数の深度情報付きのカラー三次元画像(即ちトレーニングサンプル)を利用して、調整された初期バックボーンネットワークをトレーニングし、画像深度を予測するためのニューラルネットワークモデルを生成する。
【0047】
プレトレーニングされた畳み込みニューラルネットワークは、ImageNetでプレトレーニングされたDenseNetネットワークであってもよい。いくつかの例では、DenseNetネットワークはDenseNet-169ネットワークであってもよい。
【0048】
U-Netネットワーク構造に応じて初期バックボーンネットワークを構造的に調整することは、以下のステップを含むことができる。
【0049】
DenseNetネットワークの全接続層を削除する。U-Netネットワーク構造に基づいて、全接続層を削除したDenseNetネットワークの最後の層の後ろに複数のアップサンプリング層を添加し、それぞれ複数のアップサンプリング層における各アップサンプリング層に対応する重畳層を設定する。いくつかの例では、例えば、DenseNetネットワークはDenseNet-169ネットワークである場合に、DenseNet-169ネットワークの最後の層の後ろに4つのアップサンプリング層を添加することができる。
【0050】
説明すべきことは、プレトレーニングされた畳み込みニューラルネットワークは、ImageNetでプレトレーニングされたGoogle Inception、ResNet、VGGなどのモデルであってもよい。プレトレーニングされた畳み込みニューラルネットワークはImageNetでプレトレーニングされたGoogle Inception、ResNet、またはVGGである場合、上記のU-Netネットワーク構造に基づいてアップサンプリング層を添加し、各アップサンプリング層に対応する重畳層を設定する実現方式が異なる可能性があり、例えば添加された層の名前が変化する可能性がある。
【0051】
本開示の実施例では、添加された4つのアップサンプリング層は、例えばそれぞれDenseNet-169ネットワークにおける1つの層とすることができる。添加された4つのアップサンプリング層が最初の層から最後の層の順に、1番目のアップサンプリング層、2番目のアップサンプリング層、3番目のアップサンプリング層、4番目のアップサンプリング層であると仮定すると、全接続層を削除したDenseNet-169ネットワークの最後の層の出力は1番目のアップサンプリング層の入力とし、1番目のアップサンプリング層の出力は2番目のアップサンプリング層の入力とし、2番目のアップサンプリング層の出力は3番目のアップサンプリング層の入力とし、3番目のアップサンプリング層の出力は4番目のアップサンプリング層の入力とする。また、1番目のアップサンプリング層、2番目のアップサンプリング層、3番目のアップサンプリング層、4番目のアップサンプリング層に対応する重畳層は、pool3_pool、pool2_pool、pool1、conv1/reluとして順次構成されることができる。
【0052】
各アップサンプリング層の入力チャンネル数は2倍などのその出力チャンネル数の予め設定された倍数であってもよい。添加された各アップサンプリング層では、該アップサンプリング層の入力情報を予め設定された解像度倍数(例えば2倍の解像度)でアップサンプリングして、アップサンプリング結果を該アップサンプリング層に対応する重畳層の出力データと重畳して、重畳結果に少なくとも1回の畳み込み演算(例えば、少なくとも1回の畳み込み演算は2回の畳み込み演算であってもよい。2回の畳み込み演算である場合に、第1回の畳み込み演算を実行し、さらに第1回の畳み込み演算結果に第2回の畳み込み演算を実行し、各畳み込み演算は畳み込みカーネルが3×3である二次元畳み込み演算であってもよい)を実行し、予め設定された活性化関数(例えばrelu活性化関数)を使用して畳み込み演算結果を線形修正する。ここでは、アップサンプリング層の入力情報を2倍の解像度でアップサンプリングすることは、それぞれ入力情報の画素の行数と列数を元の2倍に拡張することによって行われるアップサンプリングを指すことができる。
【0053】
複数のアップサンプリング層における最後のアップサンプリング層の出力に対して、1回の深度情報を出力するための畳み込み演算と、1回の信頼度情報を出力するための畳み込み演算とを行う。または、最後のアップサンプリング層の出力に出力チャネルが2である1回の畳み込み演算を行い、この2つの出力チャネルはそれぞれ信頼度情報と深度情報を出力する。いくつかの例では、畳み込み演算は畳み込みカーネルが3×3である二次元畳み込み演算であってもよい。
【0054】
深度情報Dはメートル単位であってもよい。信頼度情報とは中間画像における各画素点の予測深度値に対する信頼度を指す。画素点の信頼度値が高いことは、この画素点の予測深度値は実際の深度値に近いことを示し、信頼度値が低いことは、この画素点の予測深度値は実際の深度値にあまり近くないことを示し、信頼度値が0であることは、この画素点が1つのホールであり、その深度値を確定/予測できないことを示している。
【0055】
いくつかの例示的な例によれば、複数の深度情報付きのカラー三次元画像を利用して、調整された初期バックボーンネットワークをトレーニングする過程において、教師付き学習方法を用いてトレーニングすることができ、深度推定に用いられる損失関数は、トレーニングされて得られたニューラルネットワークモデルに基づく各画素の深度推定値と信頼度推定値の関数である。いくつかの実施例において、損失関数は以下の3つの関数の組み合わせであってもよい。
【0056】
関数1、ニューラルネットワークモデルに基づく各画素xの深度推定値の関数f1(x):ニューラルネットワークモデルによる各画素xの深度推定値と深度真値の差値の絶対値をマスクフィルタリングすること、
関数2、ニューラルネットワークモデルに基づく各画素xの深度推定値の勾配関数f2(x):ニューラルネットワークモデルによる各画素xの深度推定値の勾配と深度真値の勾配の差値の絶対値をマスクフィルタリングすること、
関数3、ニューラルネットワークモデルに基づく各画素xの信頼度推定値の関数f3(x):ニューラルネットワークモデルによる各画素xの信頼度推定値と信頼度真値の差値の絶対値である。
【0057】
信頼度真値は以下の方法を採用して確定することができる:ニューラルネットワークモデルによる画素xの深度推定値が存在しない場合、信頼度真値を0と確定し、ニューラルネットワークモデルによる画素xの深度推定値が存在する場合、以下の公式を採用して信頼度真値を確定し、信頼度真値=1-予め設定された調節ファクター(例えば0.02)×(ニューラルネットワークモデルによる画素xの深度推定値-画素xの深度真値)である。
【0058】
本開示の実施例では、画像における各画素の上記の3つの関数の対応する加重平均結果を累積加算してから平均値を計算して、算出された平均値を損失関数の損失値とすることができる。なお、上記の深度真値とは、画像における画素の実際の深度値を指す。
【0059】
以上に記載の関数f1と関数f2について、マスクフィルタリングにより、深度真値にホールがある部分の深度推定値を無視することができる。以上に記載の関数f3は、信頼度推定にL1絶対値損失を使用するものであり、この関数を採用することにより、深度真値のホールがある部分の信頼度真値が0に設定され、深度推定値が深度真値から遠く離れている画素点に対して、信頼度推定値は0に近づくべきであり、深度推定値と深度真値が比較的近い画素点に対して、信頼度推定値は1に近づくべきである。
【0060】
ステップ104では、中間画像の水平方向における中間位置に基づいて中間画像をトリミングすることで、二次元画像の長さと等しく画像を得て、トリミングされた画像の深度情報を確定し、深度情報付きのトリミングされた画像を現在のシーンのパノラマ画像として確定する。
【0061】
本開示の実施例では、画像深度を予測するためのトレーニングされたニューラルネットワークモデルを利用して、中間画像の深度情報を確定した後、1枚の深度情報と信頼度情報を持つ中間画像が得られる。中間画像の水平方向における中間位置(例えば中点位置)に基づいて、中間画像をトリミングすることで、現在のシーンの二次元画像の長さと等しく画像を得ることができる。例えば、図2に示すように、3つの同じ現在のシーンの二次元画像を水平方向に端と端をつなげて接して中間画像を構成する場合、中間画像の水平方向における中点位置を基準として左向きに及び右向きにそれぞれ二次元画像の長さの50%に対応する長さの2つの画像領域を確定し、この2つの画像領域をトリミングすることにより、得られた現在のシーンの二次元画像の長さと等しく画像を中間画像中の2番目の二次元画像に対応させることができる。トリミングされた画像の深度情報を確定することができ、深度情報付きのトリミングされた画像を現在のシーンのパノラマ画像として確定することができる。
【0062】
実際には、画像深度を予測するためのトレーニングされたニューラルネットワークモデルを利用して確定された中間画像の深度情報は、中間画像における各画素点の深度情報を含む。したがって、中間画像の水平方向における中間位置に基づいて中間画像をトリミングして得られた二次元画像の長さと等しく画像における各画素点の深度情報は直接確定することができる。同様に、トリミングして得られた画像における各画素点の信頼度情報も直接確定することができる。
【0063】
現在のシーンのパノラマ画像における信頼できる深度データソースとして、対応する信頼度推定値が予め設定された信頼度閾値(例えば0.8)よりも大きい深度推定値を使用することができる。信頼度閾値の値は、例えば最終的な応用がより多くの深度データを必要とするか、より高い信頼度を有する深度データを必要とするかによって調整することができる。
【0064】
本開示の実施例では、現在のシーンの深度情報付きのパノラマ画像を確定した後、後続の画素アライメント、画像つなぎ合わせなどの処理において、この深度情報を使用して高精度の画素アライメントと画像つなぎ合わせなどの操作を支援することができる。同時に、この深度情報は、三角メッシング(meshing)、テクスチャマッピング(texture mapping)などの屋内外のシーンの全体に後続の三次元再構築の作業を行うために、単一点のポイントクラウドに変換することもできる。
【0065】
以上、本開示の実施例による深度情報付きのパノラマ画像を生成する方法を詳細に説明し、本開示の実施例は深度情報付きのパノラマ画像を生成する装置をさらに提供し、以下、図4を合わせて詳しく説明する。
【0066】
図4は、本開示のいくつかの実施例による深度情報付きのパノラマ画像を生成する装置400の概略構成図である。図4に示すように、この装置400は取得ユニット401、つなぎ合わせユニット402、処理ユニット403及びトリミングユニット404を含むことができる。
【0067】
取得ユニット401は、現在のシーンの、球面投影に基づく二次元画像を取得するために用いられる。
【0068】
つなぎ合わせユニット402は、予め設定された数の二次元画像を水平方向に端と端をつなげて接することで中間画像を構成するために用いられる。
【0069】
処理ユニット403は、画像深度を予測するためのトレーニングされたニューラルネットワークモデルを利用して、中間画像の深度情報を確定するために用いられる。
【0070】
トリミングユニット404は、中間画像の水平方向における中間位置に基づいて中間画像をトリミングすることで、二次元画像の長さと等しく画像を得て、トリミングされた画像の深度情報を確定し、深度情報付きのトリミングされた画像を現在のシーンのパノラマ画像として確定するために用いられる。
【0071】
図5は、本開示の別のいくつかの実施例による深度情報付きのパノラマ画像を生成する装置500の概略構成図である。図5に示すように、この装置500は取得ユニット501、つなぎ合わせユニット502、処理ユニット503及びトリミングユニット504を含む。いくつかの実施例において、取得ユニット501、つなぎ合わせユニット502、処理ユニット503及びトリミングユニット504は、それぞれ上記の取得ユニット401、つなぎ合わせユニット402、処理ユニット403及びトリミングユニット404に基づいて実現されることができる。
【0072】
いくつかの実施例において、画像深度を予測するためのニューラルネットワークモデルは、プレトレーニングされた畳み込みニューラルネットワークを初期バックボーンネットワークとし、U-Netネットワーク構造に応じて初期バックボーンネットワークを構造的に調整し、複数の深度情報付きのカラー三次元画像を利用して、調整された初期バックボーンネットワークをトレーニングすることで、画像深度を予測するためのニューラルネットワークモデルを生成するによってトレーニングされることができる。
【0073】
いくつかの実施例において、プレトレーニングされた畳み込みニューラルネットワークはImageNetでプレトレーニングされたDenseNetネットワークである。例えば、DenseNetネットワークはDenseNet-169ネットワークであってもよい。
【0074】
いくつかの実施例において、処理ユニット503は削除サブユニット5031、添加サブユニット5032及び演算サブユニット5033を含むことができる。
【0075】
削除サブユニット5031はDenseNetネットワークの全接続層を削除するために用いられる。
【0076】
添加サブユニット5032は、U-Netネットワーク構造に基づいて、全接続層を削除したDenseNetネットワークの最後の層の後ろに複数のアップサンプリング層を添加し、それぞれ複数のアップサンプリング層における各アップサンプリング層に対応する重畳層を設定するために用いられる。各アップサンプリング層の入力チャンネル数は出力チャンネル数の予め設定された倍数である。添加された各アップサンプリング層において、該アップサンプリング層の入力情報を予め設定された解像度倍数でアップサンプリングして、アップサンプリング結果を該アップサンプリング層に対応する重畳層の出力データと重畳して、重畳結果に少なくとも1回の畳み込み演算を実行し、予め設定された活性化関数を使用して畳み込み演算結果を線形修正する。
【0077】
いくつかの例では、DenseNetネットワークはDenseNet-169ネットワークである。DenseNet-169ネットワークの最後の層の後ろに4つのアップサンプリング層を添加することができる。各アップサンプリング層の入力チャンネル数は出力チャンネル数の2倍である。いくつかの例では、添加された各アップサンプリング層において、該アップサンプリング層の入力情報を2倍の解像度でアップサンプリングする。いくつかの例では、重畳結果に2回の畳み込み演算を実行する。
【0078】
演算サブユニット5033は、複数のアップサンプリング層における最後のアップサンプリング層の出力に対して、1回の深度情報を出力するための畳み込み演算と、1回の信頼度情報を出力するための畳み込み演算とを行うために用いられる。
【0079】
いくつかの実施例において、DenseNetネットワークはDenseNet-169ネットワークである。4つのアップサンプリング層に対して、4つのアップサンプリング層の最初の層から最後の層の順に応じて、4つのアップサンプリング層に順次対応する重畳層は、それぞれpool3_pool、pool2_pool、pool1、conv1/reluであってもよい。
【0080】
いくつかの実施例において、処理ユニット503はさらに、複数の深度情報付きのカラー三次元画像を前処理し、前記複数の深度情報付きのカラー三次元画像を前処理する過程において、少なくとも1つの深度情報付きのカラー三次元画像には、深度情報付きのカラー三次元画像において深度情報を確定できない画素点を指すホールがあると確定した場合に、ホールに穴埋め操作を行わないために用いられる。
【0081】
いくつかの実施例において、処理ユニット503はさらに、複数の深度情報付きのカラー三次元画像を利用して、調整された初期バックボーンネットワークをトレーニングする過程において、教師付き学習方法を用いてトレーニングし、深度推定に用いられる損失関数は、ニューラルネットワークモデルに基づく各画素の深度推定値と信頼度推定値の関数であるために用いられる。
【0082】
いくつかの実施例において、取得ユニット501はさらに、二次元画像に視角ブラインド領域があると確定したことに応答して、二次元画像における視角ブラインド領域を黒色に塗りつぶすために用いられる。
【0083】
いくつかの実施例において、つなぎ合わせユニット502はさらに、中間画像の上下縁をトリミングするために用いられる。
【0084】
いくつかの実施例において、つなぎ合わせユニット502は中間画像の上下縁をトリミングする際に、中間画像の上縁と下縁から、それぞれ中間画像の高さの予め設定された比率の高さの画像をトリミングするために用いられる。
【0085】
いくつかの実施例において、予め設定された数の値は3であってもよく、予め設定された比率15%であってもよい。
【0086】
本開示の実施例は、電子機器のプロセッサによって実行されると、プロセッサに本開示の実施例による深度情報付きのパノラマ画像を生成する方法を実行させる命令を含むコンピュータプログラムが記憶された非一時的コンピュータ可読記憶媒体を更に提供する。
【0087】
本開示の実施例は、電子機器を更に提供する。図6は、本開示の実施例による電子機器600の概略構成図である。図6に示すように、電子機器600はメモリ601とプロセッサ602を含む。メモリ601とプロセッサ602はバスを介して接続されることができる。メモリ601は、プロセッサ602で実行可能なコンピュータプログラムを記憶するために用いられ、プロセッサ602は前記プログラムを実行すると、本開示の実施例による深度情報付きのパノラマ画像を生成する方法を実現することができる。
【0088】
以上は、本開示の例示的な実施例にすぎず、本開示の内容を限定するものではない。本開示における精神および原則から逸脱することなく行われるいかなる修正、等価変更、改善などは、いずれも本開示の保護範囲に含まれるものである。
図1
図2
図3
図4
図5
図6