(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022186523
(43)【公開日】2022-12-15
(54)【発明の名称】3次元点群処理装置、3次元点群処理方法、及び3次元点群処理プログラム
(51)【国際特許分類】
G06T 7/50 20170101AFI20221208BHJP
【FI】
G06T7/50
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021094793
(22)【出願日】2021-06-04
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(71)【出願人】
【識別番号】504137912
【氏名又は名称】国立大学法人 東京大学
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】八尾 泰洋
(72)【発明者】
【氏名】安藤 慎吾
(72)【発明者】
【氏名】島村 潤
(72)【発明者】
【氏名】石川 涼一
(72)【発明者】
【氏名】大石 岳史
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA02
5L096AA03
5L096AA06
5L096AA09
5L096CA05
5L096DA05
5L096FA66
5L096FA69
5L096GA07
(57)【要約】
【課題】計測して得られた3次元点群を精度よくアップサンプリングする。
【解決手段】入力処理部20が、少なくとも撮影位置の関係が予め求められている第1画像及び第2画像と、少なくとも撮影位置と計測位置との関係が予め求められている物体の表面上の3次元点群とを受け付け、3次元点群の3次元点の各々に対応する第1画像上の画素位置を求める。近傍選択部24が、3次元点群の3次元点の各々に対応する第1画像上の画素位置に基づいて、第1画像上の画素位置の各々について、近傍の複数の画素位置に対応する3次元点の奥行値から、第1画像及び第2画像の間の整合性が高く、かつ近傍の画素位置との距離が近くなるように、奥行値を選択する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
少なくとも撮影位置の関係が予め求められている第1画像及び第2画像と、少なくとも前記撮影位置と計測位置との関係が予め求められている物体の表面上の3次元点群とを受け付け、前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置を求める入力処理部と、
前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置に基づいて、前記第1画像上の画素位置の各々について、近傍の複数の画素位置に対応する3次元点の奥行値から、前記第1画像及び前記第2画像の間の整合性が高くなるように、前記奥行値を選択する近傍選択部と、
を含む3次元点群処理装置。
【請求項2】
前記近傍選択部は、
前記第1画像上の画素位置の各々について、
前記近傍の複数の画素位置に対応する3次元点の各々に対し、前記第1画像上の画素位置及び前記3次元点の奥行値からなる点を、前記第2画像上に投影し、前記第1画像上の画素位置の画素値と、前記第2画像上に投影した点の画素位置の画素値との距離を求め、
前記近傍の複数の画素位置に対応する3次元点の各々に対し求められた、前記第1画像上の画素位置の画素値と、前記第2画像上に投影した点の画素位置の画素値との距離を用いて表されるコスト関数に基づいて、前記近傍の複数の画素位置に対応する3次元点の奥行値を選択する請求項1記載の3次元点群処理装置。
【請求項3】
前記近傍選択部は、
前記第1画像上の画素位置の各々について、
前記コスト関数及び隣接する画素位置において選択される奥行値との差分を用いて表されるエネルギー関数に基づいて、前記奥行値を選択する請求項2記載の3次元点群処理装置。
【請求項4】
前記第1画像上の画素位置の各々について選択された前記奥行値を平滑化する平滑化部を更に含む請求項1~請求項3の何れか1項記載の3次元点群処理装置。
【請求項5】
前記近傍選択部は、前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置に基づいて、前記第1画像上の画素位置の各々について、近傍の複数の画素位置に対応する3次元点の奥行値から、前記第1画像及び前記第2画像の間の整合性が高く、かつ前記近傍の画素位置との距離が近くなるように、前記奥行値を選択する請求項1~請求項4の何れか1項記載の3次元点群処理装置。
【請求項6】
前記入力処理部は、
前記3次元点群の各々の3次元点を、前記第1画像上に投影し、前記第1画像の領域外に投影された3次元点を除去し、除去後の前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置及び奥行値の組み合わせである要素からなる集合を求め、
前記集合の各要素の点を、前記第2画像上に投影し、前記第2画像の領域外に投影された要素を除去し、除去後の前記集合に更新し、
前記近傍選択部は、
前記集合の要素の前記第1画像上の画素位置に基づいて、前記第1画像上の画素位置の各々について、近傍の複数の画素位置を持つ、前記集合の要素の奥行値から、前記第1画像及び前記第2画像の間の整合性が高く、かつ前記近傍の画素位置との距離が近くなるように、前記集合の要素の奥行値を選択する
請求項1~請求項5の何れか1項記載の3次元点群処理装置。
【請求項7】
入力処理部が、少なくとも撮影位置の関係が予め求められている第1画像及び第2画像と、少なくとも前記撮影位置と計測位置との関係が予め求められている物体の表面上の3次元点群とを受け付け、前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置を求め、
近傍選択部が、前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置に基づいて、前記第1画像上の画素位置の各々について、近傍の複数の画素位置に対応する3次元点の奥行値から、前記第1画像及び前記第2画像の間の整合性が高くなるように、前記奥行値を選択する
3次元点群処理方法。
【請求項8】
コンピュータを、請求項1~請求項6の何れか1項に記載の3次元点群処理装置として機能させるための3次元点群処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
開示の技術は、3次元点群処理装置、3次元点群処理方法、及び3次元点群処理プログラムに関する。
【背景技術】
【0002】
非特許文献1には、LiDAR(Light Detection and Ranging)とステレオ画像により、LiDARによって疎な点群をステレオ画像の視差推定結果に基づいてアップサンプリングした深度画像を出力する技術が開示されている。
【0003】
非特許文献2には、教師ありの深層学習によってLiDARとステレオ画像からLiDAR点群をアップサンプリングした深度画像を出力する技術が開示されている。
【0004】
非特許文献3には、半教師ありの深層学習によってLiDARとステレオ画像からLiDAR点群をアップサンプリングした深度画像を出力する技術が開示されている。非特許文献3に開示の技術では投影誤りがある場合でもその影響を除去して推論をすることが可能である。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】Maddern, Will, and Paul Newman. "Real-time probabilistic fusion of sparse 3D LIDAR and dense stereo." 2016 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). IEEE, 2016.
【非特許文献2】Park, Kihong, Seungryong Kim, and Kwanghoon Sohn. "High-precision depth estimation with the 3d lidar and stereo fusion." 2018 IEEE International Conference on Robotics and Automation (ICRA). IEEE, 2018.
【非特許文献3】Cheng, Xuelian, et al. "Noise-aware unsupervised deep lidar-stereo fusion." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019.
【発明の概要】
【発明が解決しようとする課題】
【0006】
非特許文献1の問題点は、投影されたLiDAR点を正しい奥行値とみなして処理をすることであり、投影誤りがある場合を考慮していないことである。
【0007】
非特許文献2の問題点は、非特許文献1と同様、投影誤りがデータにあることを考慮していないこと、および学習のために高密度な深度画像を必要とするがそのようなデータを得ることが容易ではないことである。
【0008】
非特許文献3の問題点は、学習時に正しくレジストレーションされたLiDAR計測とステレオ画像の組が多量に必要となることであり、そのようなデータを得ることは容易ではない。
【0009】
上述したように、非特許文献1、2の問題は「LiDARデータの投影誤りを考慮していない」という点である。また、非特許文献3の問題は「多量の学習データを必要とする」という点である。
【0010】
さらに、非特許文献1~3はいずれも「視差推定をした結果によってアップサンプリングしたデータを作成する」という処理になっている。ステレオによる視差推定は長距離での距離計測精度が落ちる。これに対してLiDARは長距離でも距離計測精度が高いが、その特性を生かすことができていない。
【0011】
開示の技術は、上記の点に鑑みてなされたものであり、計測して得られた3次元点群を精度よくアップサンプリングすることができる3次元点群処理装置、3次元点群処理方法、及び3次元点群処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
本開示の第1態様は、3次元点群処理装置であって、少なくとも撮影位置の関係が予め求められている第1画像及び第2画像と、少なくとも前記撮影位置と計測位置との関係が予め求められている物体の表面上の3次元点群とを受け付け、前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置を求める入力処理部と、前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置に基づいて、前記第1画像上の画素位置の各々について、近傍の複数の画素位置に対応する3次元点の奥行値から、前記第1画像及び前記第2画像の間の整合性が高くなるように、前記奥行値を選択する近傍選択部と、を含む。
【0013】
本開示の第2態様は、3次元点群処理方法であって、入力処理部が、少なくとも撮影位置の関係が予め求められている第1画像及び第2画像と、少なくとも前記撮影位置と計測位置との関係が予め求められている物体の表面上の3次元点群とを受け付け、前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置を求め、近傍選択部が、前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置に基づいて、前記第1画像上の画素位置の各々について、近傍の複数の画素位置に対応する3次元点の奥行値から、前記第1画像及び前記第2画像の間の整合性が高くなるように、前記奥行値を選択する。
【0014】
本開示の第3態様は、3次元点群処理プログラムであって、コンピュータを、上記第1態様の3次元点群処理装置として機能させるためのプログラムである。
【発明の効果】
【0015】
開示の技術によれば、計測して得られた3次元点群を精度よくアップサンプリングすることができる。
【図面の簡単な説明】
【0016】
【
図1】本実施形態の3次元点群処理装置として機能するコンピュータの一例の概略ブロック図である。
【
図2】LiDARセンサによる計測点と、第1カメラ及び第2カメラの撮影シーンとの一例を示す図である。
【
図3】本実施形態の3次元点群処理装置の構成を示すブロック図である。
【
図4】(A)第1画像の一例を示す図、(B)第2画像の一例を示す図、及び(C)第1画像に3次元点群を投影した結果の一例を示す図である。
【
図5】近傍集合を抽出する方法を説明するための図である。
【
図6】本実施形態の3次元点群処理装置の3次元点群処理ルーチンを示すフローチャートである。
【発明を実施するための形態】
【0017】
以下、開示の技術の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
【0018】
<本実施形態の概要>
本実施形態では、LiDARによる計測で得られた疎な3次元点群について、カメラにより撮影された第一画像と第二画像を手掛かりとしてアップサンプリングをする。
【0019】
具体的には、LiDARの投影を正しいとせずに、画素の周囲に投影された3次元点から、コスト関数と平滑化項とからなるエネルギー関数に基づいて最適である奥行値を選択するという手法により、学習データを必要とせず、LiDARの投影情報に誤りがある場合でも、LiDARによって計測された3次元点群を正しくアップサンプリングするものである。
【0020】
さらに、本実施形態は、LiDARで計測した3次元点群を画素に割り当てる形でアップサンプリングをするため、視差推定を実施する手法とは異なり、長距離において計測精度が維持されることを特徴としている。
【0021】
このように、本実施形態では、学習データを用いないこと、LiDARとカメラ間に、車両の移動やセンサ位置の違いから生じるオクルージョンによる投影誤りがある場合でも正しくアップサンプリングが可能なこと、画像の視差による距離推定をせずLiDARで計測された3次元点群をアップサンプリングするので長距離での精度低下が抑えられることを特徴とする。
【0022】
<本実施形態に係る3次元点群処理装置の構成>
図1は、本実施形態の3次元点群処理装置10のハードウェア構成を示すブロック図である。
【0023】
図1に示すように、3次元点群処理装置10は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、ストレージ14、入力部15、表示部16及び通信インタフェース(I/F)17を有する。各構成は、バス19を介して相互に通信可能に接続されている。
【0024】
CPU11は、中央演算処理ユニットであり、各種プログラムを実行したり、各部を制御したりする。すなわち、CPU11は、ROM12又はストレージ14からプログラムを読み出し、RAM13を作業領域としてプログラムを実行する。CPU11は、ROM12又はストレージ14に記憶されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。本実施形態では、ROM12又はストレージ14には、3次元点群をアップサンプリングするための3次元点群処理プログラムが格納されている。3次元点群処理プログラムは、1つのプログラムであっても良いし、複数のプログラム又はモジュールで構成されるプログラム群であっても良い。
【0025】
ROM12は、各種プログラム及び各種データを格納する。RAM13は、作業領域として一時的にプログラム又はデータを記憶する。ストレージ14は、HDD(Hard Disk Drive)又はSSD(Solid State Drive)により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
【0026】
入力部15は、マウス等のポインティングデバイス、及びキーボードを含み、少なくとも撮影位置の関係が予め求められている第1画像及び第2画像と、少なくとも撮影位置と計測位置との関係が予め求められている物体の表面上の3次元点群Pとを含む各種の入力を行うために使用される。例えば、入力部15には、
図2に示すような、LiDARセンサ50によって計測された3次元点群Pと、第1カメラ52によって撮影された第1画像(
図4(A)参照)と、第2カメラ54によって撮影された第2画像(
図4(B)参照)と、が入力される。第1カメラ52と第2カメラ54との撮影位置の関係が予め求められており、第1カメラ52の撮影位置とLiDARセンサ50の計測位置との関係が予め求められている。
【0027】
第1画像は、歪み補正されたRGBもしくはグレースケールの画像であり、第2画像は、歪み補正されたRGBもしくはグレースケールの画像である。3次元点群Pは、LiDARセンサ50によって計測された3次元点の集合である。一つ一つの3次元点は、3次元のベクトルであり、3次元点群Pに、3次元点がN点含まれる場合には、3次元点群PはN個の要素を持つ3次元のベクトルの集合となる。
【0028】
また、入力部15には、第1カメラ52の内部パラメータK_1、第2カメラ54の内部パラメータK_2、第1カメラ52と第2カメラ54間の回転行列R_C、第1カメラ52と第2カメラ54間の並進ベクトルT_C、第1カメラ52とLiDARセンサ50間の投影行列R_L、及び第1カメラ52とLiDARセンサ50間の並進ベクトルT_Lが入力される。
【0029】
第1カメラ52及び第2カメラ54の内部パラメータK_1、K_2は、3×3のカメラ内部パラメータ行列である。第1カメラ52と第2カメラ54間の回転行列R_Cは、3×3の回転行列である。第1カメラ52と第2カメラ54間の並進ベクトルT_Cは、3次元のベクトルである。第1カメラ52とLiDARセンサ50間の投影行列R_Lは、3×3の回転行列である。第1カメラ52とLiDARセンサ50間の並進ベクトルT_Lは、3次元のベクトルである。
【0030】
表示部16は、例えば、液晶ディスプレイであり、LiDARセンサ50によって計測された3次元点群Pに対してアップサンプリングした結果を含む各種の情報を表示する。表示部16は、タッチパネル方式を採用して、入力部15として機能しても良い。
【0031】
通信インタフェース17は、他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI、Wi-Fi(登録商標)等の規格が用いられる。
【0032】
次に、3次元点群処理装置10の機能構成について説明する。
図3は、3次元点群処理装置10の機能構成の例を示すブロック図である。
【0033】
3次元点群処理装置10は、機能的には、
図3に示すように、入力処理部20、近傍抽出部22、近傍選択部24、及び平滑化部26を備えている。
【0034】
入力処理部20は、入力部15により受け付けた、第1画像及び第2画像と、3次元点群Pとに基づいて、3次元点群Pの各々の3次元点を第1画像上に投影し、各3次元点に対応する第1画像上の画素位置を求める(
図4(C)参照)。
図4(C)では、ドットで表される物体の表面上の3次元点の一つが、第1画像上の白い物体を表す領域内の画素位置に誤って投影されている例を示している。
【0035】
具体的には、3次元点群Pの各々の3次元点を、第1画像上に投影し、第1画像の領域外に投影された3次元点を3次元点群Pから除去する。除去後の3次元点群Pの各々の3次元点に対応する第1画像上の画素位置及び奥行値の組み合わせである要素からなる集合Q_1を求める。集合Q_1の各要素が示す点を、第2画像上に投影し、第2画像の領域外に投影された点を示す要素を集合Q_1から除去し、除去後の集合Q_1に更新する。
【0036】
例えば、3次元点群Pに含まれる3次元点それぞれについて、以下の式に従って投影行列R_L、並進ベクトルT_Lを適用して3次元点群P_1を求める。3次元点群P_1はN個の3次元ベクトルの集合である。
【0037】
P_1=R_L P+T_L
【0038】
3次元点群P_1を内部パラメータK_1により第1カメラ52の第1画像上に投影し、第1画像の領域外に投影されたものを除去し、(第1画像中のx座標、第1画像中のy座標、3次元点の奥行値)からなる要素の集合Q_1を得る。例えば、3次元点p(∈P_1)の各々について以下の式に従って計算される(x,y,d)を集合Q_1の要素とする。
(X,Y,d)=K_1 p
x=X/d
y=Y/d
第1画像の領域内に投影された点の数をM_1と表記する。なお、集合Q_1の各要素と変換前の3次元点群Pの各3次元点との対応付けは保持されている。
【0039】
そして、3次元点群P_1に含まれる3次元点それぞれについて、以下の式に従って投影行列R_C、並進ベクトルT_Cを適用して3次元点群P_2を求める。3次元点群P_2はN個の3次元ベクトルの集合である。
【0040】
P_2=R_C P_1+T_C
【0041】
3次元点群P_2を内部パラメータK_2により第2カメラ54の第2画像上に投影し、3次元点群P_2から第2画像の領域外に投影されたものを除去し、(第2画像中のx座標、第2画像中のy座標、3次元点の奥行値)からなる要素の集合Q_2を得る。第2画像の領域内に投影された点の数をM_2と表記する。なお、集合Q_2の各要素と変換前の3次元点群Pの各要素との対応付けは保持されている。
【0042】
集合Q_1のうち、集合Q_2にも含まれている要素を、3次元点群Pとの対応付けを利用して抽出し、集合Q_1及び集合Q_2の両方に含まれている要素からなる集合となるように、集合Q_1を更新する。
【0043】
近傍抽出部22は、3次元点群Pの各々の3次元点に対応する第1画像上の画素位置に基づいて、第1画像上の画素位置の各々について、近傍の複数の画素位置に対応する3次元点の奥行値を抽出する。
【0044】
具体的には、第1画像の画素について、集合Q_1に含まれる要素のうち、近傍の画素位置を持つ要素を抽出する。これにより、各画素位置(x,y)について近傍集合Q_1_xyが抽出される。各画素位置(x,y)の近傍集合Q_1_xyは、集合Q_1の部分集合である。また、近傍の画素位置を持つ要素が抽出されなかった画素位置(x,y)については、近傍集合Q_1_xyは空集合とする。
【0045】
なお、近傍の定義は任意であるが、例えば、画素位置からある半径以内に存在すること(
図5)、又は画素位置からK近傍であることを、近傍としてもよい。
図5では、注目点である画素位置から探索半径以内に存在する画素位置を有する要素を、近傍集合Q_1_xyとして抽出する例を示している。
【0046】
後述する信念伝播部32において、画素位置(x,y)には近傍集合Q_1_xyに含まれる何れかの要素の奥行値が割り当てられる。
【0047】
近傍選択部24は、第1画像上の画素位置(x,y)の各々について、近傍集合Q_1_xyの要素の奥行値から、第1画像と第2画像との間の整合性が高く、かつ当該画素位置(x,y)と当該要素の画素位置との距離が近くなるように、奥行値を選択する。
【0048】
具体的には、近傍選択部24は、コスト計算部30及び信念伝播部32を備えている。
【0049】
コスト計算部30は、第1画像上の画素位置(x,y)毎に、近傍集合Q_1_xyに含まれる要素の各々について、当該画素位置(x,y)及び当該要素の奥行値を用いて表される点を、第2画像上に投影し、第1画像上の当該画素位置(x,y)の画素値と、第2画像上に点が投影された画素位置の画素値との距離を求める。コスト計算部30は、第1画像上の画素位置(x,y)毎に、近傍集合Q_1_xyに含まれる要素の各々について、第1画像上の画素位置(x,y)と当該要素の画素位置との距離、及び上記で求められた第1画像上の当該画素位置(x,y)の画素値と、第2画像上に点が投影された画素位置の画素値との距離を用いて表されるコスト関数を計算する。
【0050】
具体的には、コスト計算部30は、近傍集合Q_1_xyに含まれる各要素q=(q_x,q_y,d)について、コスト関数を計算する。コスト関数は、画素位置(x,y)が要素qの奥行値dを取る尤もらしさを評価する。
【0051】
まず、第1画像の画素位置(x,y)がdの奥行値を持っていたときに第2画像上のどこに投影されるかを導出する。これは、第1画像の画素位置(x,y)と奥行値dとを用いて表される点(x,y,d)を内部パラメータK_1の逆行列によって逆投影し、投影行列R_Cと並進ベクトルT_Cを適用して第2カメラ54の第2画像の座標系に座標変換をしたのちに、内部パラメータK_2によって第2画像平面に投影することによって得ることができる。これによって得た第2画像上での画素位置を(x’,y’)とする。例えば、以下の式に従って、画素位置(x,y)を、奥行値dを用いて第2画像に投影した座標(x’,y’)を計算する。
(X’,Y’,d’)=K_2(R_C K_1-1(d×x,d×y,d)+T_C)
x’=X’/d’
y’=Y’/d’
これによって、画素位置(x,y)がqの奥行値を取った際のコスト関数c_xyqは以下のように求められる。
【0052】
c_xyq=w_S Stereo(I_1,I_2,x,y,x’,y’)+w_D Distance(x,y,q_x,q_y)
【0053】
Stereoは、第1画像の画素位置(x,y)と第2画像の画素位置(x’,y’)における画素値の違いを評価する関数であり、画素値の差異、センサス変換をした画像間のハミング距離、画素値の勾配の差異を取る方法などがあり(非特許文献3参照)、その重みづけやウィンドウサイズは任意である。
【0054】
Distanceは、第1画像の画素位置(x,y)と要素の画素位置(q_x,q_y)の距離であり、l1距離、l2距離、もしくはHuber距離などであり、距離をトランケーションした値を用いてもよい。
【0055】
w_S,w_Dはそれぞれの重みである。c_xyqの意味するところは、画素位置(x,y)に奥行値dを割り当てた際に第1画像と第2画像の整合性が高く、かつ当該画素位置(x,y)の近くに投影された3次元点の奥行値が割り当てやすくなるということを意味する。
【0056】
信念伝播部32は、第1画像上の画素位置(x,y)毎に、コスト関数及び隣接する画素において選択される奥行値との差分を用いて表されるエネルギー関数に基づいて、3次元点の奥行値を選択する。
【0057】
具体的には、信念伝播部32は、前述のコスト関数に加えて、平滑化項を考慮したエネルギー関数を定義し、そのエネルギー関数を最小化する奥行値d(x,y)を、第1画像の各画素位置(x,y)のそれぞれについて、信念伝播によって選択する。エネルギー関数Eは以下の式で定義される。
【0058】
【0059】
norm(∇d(x,y))は隣接する奥行値d(x,y)の差分のノルム(l1距離、l2距離、もしくはHuber距離など)を意味し、ノルムをトランケーションした値を用いてもよい。norm(∇d(x,y))は隣接する画素間での奥行値の差分が小さいほど値が小さくなる。
例えば、norm(∇d(x,y))は、注目画素位置から右と下に隣接する画素位置に対して計算する、選択した奥行値の差分のノルム(l1距離、l2距離、もしくはHuber距離など)の和である。右に隣接する画素位置との差分をどのように計算するかを具体的に示す。下に隣接する画素位置との差分の計算も同様である。
第1画像での注目画素位置(x,y)において、奥行値dをQ_1_xyから選択しており、隣接する画素位置(x+1,y)において奥行値d’をQ_1_x+1_yから選択しているとすると、それらの差分(d-d’)を導出し、そのノルムを求める。
【0060】
エネルギー関数Eを最小化することにより、ステレオ誤差、投影位置の近さ、各画素位置の奥行値の滑らかさを考慮した上で最適な奥行値d(x,y)を各画素位置(x,y)について定めることができる。
【0061】
エネルギー関数Eの最小化は、信念伝播(Belief Propagation)という手法、より具体的にはループありの信念伝播(Loopy Belief Propagation)によって行うことができる。
【0062】
以上のように、信念伝播部32により、以下の式に従って、エネルギー関数Eの最小化によって、全ての画素位置(x,y)の各々について近傍集合Q_1_xyから選択される奥行値d(x,y)の組み合わせが求められる。
【0063】
d(x,y)=argmin E
【0064】
平滑化部26は、第1画像上の画素位置(x,y)の各々について選択された奥行値d(x,y)を平滑化する。
【0065】
ここで、奥行値d(x,y)は、信念伝播部32により近傍の画素位置に投影される3次元点の奥行値の割り当てによって導出されるので、不連続なマップとなっている。そこで、本実施形態に係る平滑化部26は、連続関数の平滑化法であるVariational法によって平滑化をし、平滑化後の奥行値d_v(x,y)を生成し、深度画像として表示部16により出力する。
【0066】
具体的には、Variational法により、以下のエネルギー関数E_Vを最小化する。
【0067】
【0068】
norm1,norm2はl1距離、l2距離、もしくはHuber距離などの距離である。また、Gは非特許文献4記載のADT(Anisotropic Diffusion Tensor)もしくはB-ADT(Binary Anisotropic Diffusion Tensor)であり、画像の位置ごとに平滑化項norm2(∇d_V(x,y))を重みづけするものである。
【0069】
エネルギー関数E_Vの最小化は非特許文献4に記載のようにfirst order primal dual algorithmによって実施できる。これにより、以下の式に従って、平滑化後の、全ての画素位置(x,y)の各々についての奥行値d_V(x,y)の組み合わせが求められる。
【0070】
d_V(x,y)=argmin E_V
【0071】
[非特許文献4]Yao, Yasuhiro, et al. "Discontinuous and Smooth Depth Completion with Binary Anisotropic Diffusion Tensor." IEEE Robotics and Automation Letters 5.4 (2020): 5128-5135.
【0072】
<本実施形態に係る3次元点群処理装置の作用>
次に、3次元点群処理装置10の作用について説明する。
【0073】
図6は、3次元点群処理装置10による3次元点群処理の流れを示すフローチャートである。CPU11がROM12又はストレージ14から3次元点群処理プログラムを読み出して、RAM13に展開して実行することにより、3次元点群処理が行なわれる。また、3次元点群処理装置10に、LiDARセンサ50によって計測された3次元点群Pと、第1カメラ52によって撮影された第1画像と、第2カメラ54によって撮影された第2画像と、が入力される。また、3次元点群処理装置10に、第1カメラ52の内部パラメータK_1、第2カメラ54の内部パラメータK_2、第1カメラ52と第2カメラ54間の回転行列R_C、第1カメラ52と第2カメラ54間の並進ベクトルT_C、第1カメラ52とLiDARセンサ50間の投影行列R_L、及び第1カメラ52とLiDARセンサ50間の並進ベクトルT_Lが入力されているものとする。
【0074】
ステップS100で、CPU11は、入力処理部20として、入力部15により受け付けた、第1画像及び第2画像と、3次元点群とを取得する。
【0075】
ステップS102で、CPU11は、入力処理部20として、第1画像及び第2画像と、3次元点群とに基づいて、集合Q_1、Q_2を計算する。
【0076】
ステップS104では、CPU11は、近傍抽出部22として、3次元点群Pの各々の3次元点に対応する第1画像上の画素位置に基づいて、第1画像上の各画素位置(x,y)について、近傍集合Q_1_xyを抽出する。
【0077】
ステップS106では、CPU11は、コスト計算部30として、第1画像上の画素位置(x,y)毎に、近傍集合Q_1_xyに含まれる各要素q=(q_x,q_y,d)について、コスト関数を計算する。
【0078】
ステップS108では、CPU11は、信念伝播部32として、第1画像上の画素位置(x,y)毎に、コスト関数及び隣接する画素において選択される奥行値との差分を用いて表されるエネルギー関数に基づいて、近傍集合Q_1_xyに含まれる各要素の奥行値の何れかを選択する。
【0079】
ステップS110では、CPU11は、平滑化部26として、第1画像上の画素位置の各々について選択された奥行値を平滑化し、平滑化された奥行値を深度画像として表示部16により表示して、3次元点群処理ルーチンを終了する。
【0080】
以上説明したように、本実施形態に係る3次元点群処理装置は、LiDARセンサにより計測された3次元点群の3次元点の各々が投影される第1画像上の画素位置に基づいて、第1画像上の画素位置の各々について、近傍の複数の画素位置に対応する3次元点の奥行値から、第1画像及び第2画像の間の整合性が高く、かつ近傍の画素位置との距離が近くなるように、奥行値を選択する。これにより、計測して得られた3次元点群を精度よくアップサンプリングすることができる。
【0081】
<変形例>
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【0082】
例えば、LiDARセンサによる計測で、3次元点群を取得する場合を例に説明したが、これに限定されるものではない。LiDARセンサ以外のセンサを用いて、3次元点群を計測するようにしてもよい。
【0083】
また、第1画像と第2画像とが異なるカメラによって撮影された場合を例に説明したが、これに限定されるものではない。撮影位置の関係が予め求められていれば、第1画像と第2画像とが同じカメラによって撮影されたものでもよい。
【0084】
また、上記各実施形態でCPUがソフトウェア(プログラム)を読み込んで実行した各種処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、GPU(Graphics Processing Unit)、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、3次元点群処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0085】
また、上記各実施形態では、3次元点群処理プログラムがストレージ14に予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM(Compact Disk Read Only Memory)、DVD-ROM(Digital Versatile Disk Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の非一時的(non-transitory)記憶媒体に記憶された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【0086】
以上の実施形態に関し、更に以下の付記を開示する。
【0087】
(付記項1)
3次元点群処理装置であって、
メモリと、
前記メモリに接続された少なくとも1つのプロセッサと、
を含み、
前記プロセッサは、
少なくとも撮影位置の関係が予め求められている第1画像及び第2画像と、少なくとも前記撮影位置と計測位置との関係が予め求められている物体の表面上の3次元点群とを受け付け、前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置を求め、
前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置に基づいて、前記第1画像上の画素位置の各々について、近傍の複数の画素位置に対応する3次元点の奥行値から、前記第1画像及び前記第2画像の間の整合性が高くなるように、前記奥行値を選択する
ように構成される3次元点群処理装置。
【0088】
(付記項2)
3次元点群処理を実行するようにコンピュータによって実行可能なプログラムを記憶した非一時的記憶媒体であって、
前記3次元点群処理は、
少なくとも撮影位置の関係が予め求められている第1画像及び第2画像と、少なくとも前記撮影位置と計測位置との関係が予め求められている物体の表面上の3次元点群とを受け付け、前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置を求め、
前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置に基づいて、前記第1画像上の画素位置の各々について、近傍の複数の画素位置に対応する3次元点の奥行値から、前記第1画像及び前記第2画像の間の整合性が高くなるように、前記奥行値を選択する
非一時的記憶媒体。
【符号の説明】
【0089】
10 3次元点群処理装置
14 ストレージ
15 入力部
16 表示部
20 入力処理部
22 近傍抽出部
24 近傍選択部
26 平滑化部
30 コスト計算部
32 信念伝播部
50 LiDARセンサ
52 第1カメラ
54 第2カメラ