(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023069711
(43)【公開日】2023-05-18
(54)【発明の名称】3次元点群処理装置、3次元点群処理方法、及び3次元点群処理プログラム
(51)【国際特許分類】
G06T 7/33 20170101AFI20230511BHJP
G06T 7/593 20170101ALI20230511BHJP
【FI】
G06T7/33
G06T7/593
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021181787
(22)【出願日】2021-11-08
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り 令和3年6月9日 第27回画像センシングシンポジウムにて公開
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(71)【出願人】
【識別番号】504137912
【氏名又は名称】国立大学法人 東京大学
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】八尾 泰洋
(72)【発明者】
【氏名】安藤 慎吾
(72)【発明者】
【氏名】島村 潤
(72)【発明者】
【氏名】石川 涼一
(72)【発明者】
【氏名】大石 岳史
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA09
5L096FA64
5L096FA66
5L096FA69
(57)【要約】
【課題】計測して得られた3次元点群に対して精度よく画素値を付与する。
【解決手段】入力処理部20が、入力処理部が、少なくとも撮影位置の関係が予め求められている第1画像及び第2画像と、少なくとも前記撮影位置と計測位置との関係が予め求められている物体の表面上の3次元点群とを受け付け、前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置を求める。画像情報選択部24が、前記3次元点群の3次元点の各々について、前記3次元点に対応する前記第1画像上の画素位置に基づいて、近傍の複数の画素位置から、前記第1画像及び前記第2画像の間の整合性が高くなるように、前記画素位置を選択し、前記画素位置の画素値を付与する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
少なくとも撮影位置の関係が予め求められている第1画像及び第2画像と、少なくとも前記撮影位置と計測位置との関係が予め求められている物体の表面上の3次元点群とを受け付け、前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置を求める入力処理部と、
前記3次元点群の3次元点の各々について、前記3次元点に対応する前記第1画像上の画素位置に基づいて、近傍の複数の画素位置から、前記第1画像及び前記第2画像の間の整合性が高くなるように、前記画素位置を選択し、前記画素位置の画素値を付与する画像情報選択部と、
を含む3次元点群処理装置。
【請求項2】
前記画像情報選択部は、
前記3次元点に対応する前記第1画像上の画素位置の近傍の画素位置から選択される画素位置の画像情報と、前記選択される前記画素位置に対応する前記第2画像上の画素位置の画像情報との距離、及び
前記3次元点に対応する前記第1画像上の画素位置から、前記選択される前記画素位置までの移動
を用いて表されるコストに基づいて、前記画素位置を選択する請求項1記載の3次元点群処理装置。
【請求項3】
少なくとも撮影位置の関係が予め求められている第1画像及び第2画像と、少なくとも前記撮影位置と計測位置との関係が予め求められている物体の表面上の3次元点群とを受け付け、前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置を求める入力処理部と、
前記3次元点群の3次元点の各々について、前記3次元点に対応する前記第1画像上の画素位置の近傍の複数の画素位置から、
前記第1画像及び前記第2画像の間の整合性が高く、かつ、
前記3次元点に対応する前記第1画像上の画素位置から、前記3次元点について選択される前記画素位置までの移動が、周辺の前記3次元点に対応する前記第1画像上の画素位置から、前記周辺の前記3次元点について選択される前記画素位置までの移動と対応するように、前記画素位置を選択し、前記画素位置の画素値を付与する画像情報選択部と、
を含む3次元点群処理装置。
【請求項4】
前記画像情報選択部は、
前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置をノードとして前記ノード間をエッジで結んだグラフを作成し、
各エッジについての、前記エッジで結ばれた2つのノードの各々に対応する前記3次元点について選択される前記画素値の画素位置までの前記移動の差分、及び前記エッジの長さと、
前記3次元点に対応する前記第1画像上の画素位置の近傍の画素位置から選択される画素位置の画像情報、及び前記選択される前記画素位置に対応する前記第2画像上の画素位置の画像情報の距離と
を用いて表されるコスト関数に基づいて、前記3次元点群の3次元点の各々について、前記画素位置を選択し、前記画素位置の画素値を付与する請求項3記載の3次元点群処理装置。
【請求項5】
前記3次元点群の計測位置の変化速度に基づいて、近傍の複数の画素位置の探索範囲を計算する探索範囲計算部を更に含み、
前記画像情報選択部は、前記探索範囲内の複数の画素位置から前記画素位置を選択する請求項1~請求項4の何れか1項記載の3次元点群処理装置。
【請求項6】
入力処理部が、少なくとも撮影位置の関係が予め求められている第1画像及び第2画像と、少なくとも前記撮影位置と計測位置との関係が予め求められている物体の表面上の3次元点群とを受け付け、前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置を求め、
画像情報選択部が、前記3次元点群の3次元点の各々について、前記3次元点に対応する前記第1画像上の画素位置に基づいて、近傍の複数の画素位置から、前記第1画像及び前記第2画像の間の整合性が高くなるように、前記画素位置を選択し、前記画素位置の画素値を付与する
3次元点群処理方法。
【請求項7】
入力処理部が、少なくとも撮影位置の関係が予め求められている第1画像及び第2画像と、少なくとも前記撮影位置と計測位置との関係が予め求められている物体の表面上の3次元点群とを受け付け、前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置を求め、
画像情報選択部が、前記3次元点群の3次元点の各々について、前記3次元点に対応する前記第1画像上の画素位置の近傍の複数の画素位置から、
前記第1画像及び前記第2画像の間の整合性が高く、かつ、
前記3次元点に対応する前記第1画像上の画素位置から、前記3次元点について選択される前記画素位置までの移動が、周辺の前記3次元点に対応する前記第1画像上の画素位置から、前記周辺の前記3次元点について選択される前記画素位置までの移動と対応するように、前記画素位置を選択し、前記画素位置の画素値を付与する
3次元点群処理方法。
【請求項8】
コンピュータを、請求項1~請求項5の何れか1項に記載の3次元点群処理装置として機能させるための3次元点群処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
開示の技術は、3次元点群処理装置、3次元点群処理方法、及び3次元点群処理プログラムに関する。
【背景技術】
【0002】
非特許文献1には、4つの円形の穴の空いた板という特定の形状のキャリブレーションターゲットを用いてステレオカメラとLiDAR(Light Detection and Ranging)の位置関係を導出する技術が開示されている。
【0003】
非特許文献2には、ステレオ画像によって生成した奥行画像とLiDARによって生成した奥行画像が一致するようにLiDARとカメラの位置関係を導出する技術が開示されている。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Guindel, Carlos, et al. ”Automatic extrinsic calibration for lidar-stereo vehicle sensor setups.” 2017 IEEE 20th international conference on intelligent transportation systems (ITSC). IEEE, 2017.
【非特許文献2】John, Vijay, et al. ”Automatic calibration and registration of lidar and stereo camera without calibration objects.” 2015 IEEE International Conference on Vehicular Electronics and Safety (ICVES). IEEE, 2015.
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来、LiDARで計測した3次元点群に画像情報を付与する際には、LiDARとカメラを、非特許文献1や非特許文献2のような手法でセンサ間の位置関係を計測し、その位置関係に基づいて3次元点群をカメラ画像に投影して、投影された位置の画素に基づいて画素値を付与していた。
【0006】
このような画像情報の付与では、LiDAR点群がカメラ画像に正しく投影されていない場合には誤りを含む。具体的には、LiDARで計測された点がカメラ画像では遮蔽されているオクルージョンが生じている場合(
図2参照)、撮影者が移動しておりLiDARとカメラの計測時刻の違いにより位置関係がずれる場合(
図10参照)などで、正しい位置関係を計測したとしてもLiDAR点群への画像への投影誤り、すなわち画像情報の付与誤りが生じる。
【0007】
開示の技術は、上記の点に鑑みてなされたものであり、計測して得られた3次元点群に対して精度よく画素値を付与することができる3次元点群処理装置、3次元点群処理方法、及び3次元点群処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本開示の第1態様は、3次元点群処理装置であって、少なくとも撮影位置の関係が予め求められている第1画像及び第2画像と、少なくとも前記撮影位置と計測位置との関係が予め求められている物体の表面上の3次元点群とを受け付け、前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置を求める入力処理部と、前記3次元点群の3次元点の各々について、前記3次元点に対応する前記第1画像上の画素位置に基づいて、近傍の複数の画素位置から、前記第1画像及び前記第2画像の間の整合性が高くなるように、前記画素位置を選択し、前記画素位置の画素値を付与する画像情報選択部と、を含む。
【0009】
本開示の第2態様は、3次元点群処理装置であって、少なくとも撮影位置の関係が予め求められている第1画像及び第2画像と、少なくとも前記撮影位置と計測位置との関係が予め求められている物体の表面上の3次元点群とを受け付け、前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置を求める入力処理部と、前記3次元点群の3次元点の各々について、前記3次元点に対応する前記第1画像上の画素位置の近傍の複数の画素位置から、前記第1画像及び前記第2画像の間の整合性が高く、かつ、前記3次元点に対応する前記第1画像上の画素位置から、前記3次元点について選択される前記画素位置までの移動が、周辺の前記3次元点に対応する前記第1画像上の画素位置から、前記周辺の前記3次元点について選択される前記画素位置までの移動と対応するように、前記画素位置を選択し、前記画素位置の画素値を付与する画像情報選択部と、を含む。
【0010】
本開示の第3態様は、3次元点群処理方法であって、入力処理部が、少なくとも撮影位置の関係が予め求められている第1画像及び第2画像と、少なくとも前記撮影位置と計測位置との関係が予め求められている物体の表面上の3次元点群とを受け付け、前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置を求め、画像情報選択部が、前記3次元点群の3次元点の各々について、前記3次元点に対応する前記第1画像上の画素位置に基づいて、近傍の複数の画素位置から、前記第1画像及び前記第2画像の間の整合性が高くなるように、前記画素位置を選択し、前記画素位置の画素値を付与する。
【0011】
本開示の第4態様は、3次元点群処理方法であって、入力処理部が、少なくとも撮影位置の関係が予め求められている第1画像及び第2画像と、少なくとも前記撮影位置と計測位置との関係が予め求められている物体の表面上の3次元点群とを受け付け、前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置を求め、画像情報選択部が、前記3次元点群の3次元点の各々について、前記3次元点に対応する前記第1画像上の画素位置の近傍の複数の画素位置から、前記第1画像及び前記第2画像の間の整合性が高く、かつ、前記3次元点に対応する前記第1画像上の画素位置から、前記3次元点について選択される前記画素位置までの移動が、周辺の前記3次元点に対応する前記第1画像上の画素位置から、前記周辺の前記3次元点について選択される前記画素位置までの移動と対応するように、前記画素位置を選択し、前記画素位置の画素値を付与する。
【0012】
本開示の第5態様は、3次元点群処理プログラムであって、コンピュータを、上記第1態様又は第2態様の3次元点群処理装置として機能させるためのプログラムである。
【発明の効果】
【0013】
開示の技術によれば、計測して得られた3次元点群に対して精度よく画素値を付与することができる。
【図面の簡単な説明】
【0014】
【
図1】第1実施形態及び第1実施形態の3次元点群処理装置として機能するコンピュータの一例の概略ブロック図である。
【
図2】LiDARセンサによる計測点と、第1カメラ及び第2カメラの撮影シーンとの一例を示す図である。
【
図3】第1実施形態及び第1実施形態の3次元点群処理装置の構成を示すブロック図である。
【
図4】(A)第1画像の一例を示す図、(B)第2画像の一例を示す図、及び(C)第1画像に3次元点群を投影した結果の一例を示す図である。
【
図7】第1実施形態の3次元点群処理装置の3次元点群処理ルーチンを示すフローチャートである。
【
図9】第2実施形態の3次元点群処理装置の3次元点群処理ルーチンを示すフローチャートである。
【
図10】三次元点を誤って投影する例を示す図である。
【発明を実施するための形態】
【0015】
以下、開示の技術の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
【0016】
<本実施形態の概要>
LiDARで計測された3次元点群は色情報を持たない。色情報を付与するためには、3次元点群の計測と同時に撮影したカメラ画像に3次元点群を投影して、その投影位置の画素値を取得することが一般的に行われる。3次元点群に画素値を付与することによって、色情報を活用した3次元点群の識別などが可能となる。しかし、3次元点群が画像に誤って投影されている場合、誤った画素値が3次元点群に付与されてしまう。
【0017】
例えば、カメラはグローバルシャッター方式であり、瞬時に計測を行うが、LiDARはローリングシャッター方式であり、計測に時間幅があることが多い。そのため、
図10のように移動体上にLiDARセンサ50と第1カメラ52を設置して計測をした場合、点Aを計測した時と点Bを計測した時では、実際には異なる計測位置から3次元点を計測している。しかし、投影の際に静止状態での第1カメラ52とLiDARセンサ50の位置関係を使って投影を行うため、投影誤りが生じる。
【0018】
本実施形態では、LiDARセンサによる計測で得られた3次元点群に対して、第1画像と第2画像を手掛かりとして画素値を付与する。LiDARセンサとカメラ間に、車両の移動や、センサ位置の違いによるオクルージョンによる投影誤りがある場合でも正しく画素値を付与することが可能となる。
【0019】
なお、第1画像と第2画像は別時刻の同一のカメラで撮影された画像であってよい。これは、撮影者が移動しているために撮影位置が変化しているためである。
【0020】
具体的には、本実施形態では、LiDARセンサで計測された3次元点群に画像情報をもとに画素値を選択して付与する。本実施形態では、その画素値の選択の仕方について2つの特徴を持つ。
【0021】
投影誤りがあっても正しく画素値を付与できるように、LiDARセンサで計測した3次元点を画像上に投影し、その投影点の近傍から最もその点の画素値として確からしいものを選択する。
【0022】
上記画素値の選択を、第1画像と第2画像とに投影された3次元点の奥行値から計算されるステレオコストに基づいて実施する。
【0023】
さらに、上記画素値の選択を、3次元点を投影した、隣接する画素位置が、同じような移動によって得られる画素位置の画素値を選択するための平滑化コストを考慮して実施する。
【0024】
[第1実施形態]
<第1実施形態に係る3次元点群処理装置の構成>
図1は、本実施形態の3次元点群処理装置10のハードウェア構成を示すブロック図である。
【0025】
図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を介して相互に通信可能に接続されている。
【0026】
CPU11は、中央演算処理ユニットであり、各種プログラムを実行したり、各部を制御したりする。すなわち、CPU11は、ROM12又はストレージ14からプログラムを読み出し、RAM13を作業領域としてプログラムを実行する。CPU11は、ROM12又はストレージ14に記憶されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。本実施形態では、ROM12又はストレージ14には、3次元点群に画素値を付与するための3次元点群処理プログラムが格納されている。3次元点群処理プログラムは、1つのプログラムであっても良いし、複数のプログラム又はモジュールで構成されるプログラム群であっても良い。
【0027】
ROM12は、各種プログラム及び各種データを格納する。RAM13は、作業領域として一時的にプログラム又はデータを記憶する。ストレージ14は、HDD(Hard Disk Drive)又はSSD(Solid State Drive)により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
【0028】
入力部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の計測位置との関係が予め求められている。
【0029】
第1画像は、歪み補正されたRGBもしくはグレースケールの画像であり、第2画像は、歪み補正されたRGBもしくはグレースケールの画像である。3次元点群Pは、LiDARセンサ50によって計測された3次元点の集合である。一つ一つの3次元点は、3次元のベクトルであり、3次元点群Pに、3次元点がN点含まれる場合には、3次元点群PはN個の要素を持つ3次元のベクトルの集合となる。
【0030】
また、入力部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が入力される。
【0031】
第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次元のベクトルである。
【0032】
表示部16は、例えば、液晶ディスプレイであり、LiDARセンサ50によって計測された3次元点群Pに対して画素値を付与した結果を含む各種の情報を表示する。表示部16は、タッチパネル方式を採用して、入力部15として機能しても良い。
【0033】
具体的には、表示部16は、画素値(色情報)を付与した3次元点群P_Cを表示する。ここで、3次元点群P_Cでは、一つ一つの点は3次元のxyz座標と1次元(グレースケール)もしくは3次元(RGB)の色情報を持ち、それがM個存在するので、3次元点群P_Cは、M×4次元またはM×6次元の配列である。ここで、N≠Mである理由は、入力したN点の一部は画像の範囲外に投影され、画素値を付与できないからである。
【0034】
通信インタフェース17は、他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI、Wi-Fi(登録商標)等の規格が用いられる。
【0035】
次に、3次元点群処理装置10の機能構成について説明する。
図3は、3次元点群処理装置10の機能構成の例を示すブロック図である。
【0036】
3次元点群処理装置10は、機能的には、
図3に示すように、入力処理部20、探索範囲計算部22、及び画像情報選択部24を備えている。
【0037】
入力処理部20は、入力部15により受け付けた、第1画像及び第2画像と、3次元点群Pとに基づいて、3次元点群Pの各々の3次元点を第1画像上に投影し、各3次元点に対応する第1画像上の画素位置を求める(
図4(C)参照)。
図4(C)では、ドットで表される物体の表面上の3次元点の一つが、第1画像上の白い物体を表す領域内の画素位置に誤って投影されている例を示している。
【0038】
具体的には、3次元点群Pの各々の3次元点を、第1画像上に投影し、第1画像の領域外に投影された3次元点を3次元点群Pから除去する。除去後の3次元点群Pの各々の3次元点に対応する第1画像上の画素位置及び奥行値の組み合わせである要素からなる集合Q_1を求める。集合Q_1の各要素が示す点を、第2画像上に投影し、第2画像の領域外に投影された点を示す要素を集合Q_1から除去し、除去後の集合Q_1に更新する。
【0039】
例えば、3次元点群Pに含まれる3次元点それぞれについて、以下の式に従って投影行列R_L、並進ベクトルT_Lを適用して3次元点群P_1を求める。3次元点群P_1はN個の3次元ベクトルの集合である。
【0040】
P_1=R_L P+T_L
【0041】
3次元点群P_1を内部パラメータK_1により第1カメラ52の第1画像上に投影し、第1画像の領域外に投影されたものを除去し、(第1画像中のx座標、第1画像中のy座標、3次元点の奥行値)からなる要素の集合Q_1を得る。
【0042】
第1画像の領域内に投影された点の数をM_1と表記する。なお、集合Q_1の各要素と変換前の3次元点群Pの各3次元点との対応付けは保持されている。
【0043】
そして、3次元点群P_1に含まれる3次元点それぞれについて、以下の式に従って投影行列R_C、並進ベクトルT_Cを適用して3次元点群P_2を求める。3次元点群P_2はN個の3次元ベクトルの集合である。
【0044】
P_2=R_C P_1+T_C
【0045】
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の各要素との対応付けは保持されている。
【0046】
集合Q_1のうち、集合Q_2にも含まれている要素を、3次元点群Pとの対応付けを利用して抽出し、集合Q_1及び集合Q_2の両方に含まれている要素からなる集合となるように、集合Q_1を更新する。
【0047】
探索範囲計算部22は、3次元点群Pの計測位置の変化速度に基づいて、3次元点群の3次元点の各々について、近傍の複数の画素位置の探索範囲を計算する。
【0048】
具体的には、LiDARセンサ50、第1カメラ52、及び第2カメラ54を保持する撮影者の移動速度をv=(vx,vy,vz)とし、取得されているものとする。なお、速度vは第1カメラ52の座標系で与えられている。LiDARセンサ50のローリングシャッターによって全周囲の計測にかかる時間をΔtとする。3次元点群P_1に含まれる点について±vΔtの移動を適用した3次元点群P_1+と3次元点群P_1-を考える。3次元点群P_1+と3次元点群P_1-について、Kにより画像上に投影して、集合Q_1+と集合Q_1-を得る。集合Q_1と集合Q_1+と集合Q_1-に含まれる点の対応(もともと3次元点群Pのどの点だったのか)については保持されている。以降、集合Q_1、集合Q_1+、集合Q_1-から、xy座標のみを取り出した集合Q_1’、集合Q_1+’、集合Q_1-‘を考える。集合Q_1’に含まれるある画素位置(集合Q_1+’の画素位置q+、集合Q_1-‘の画素位置q-に対応する)についての探索範囲を、あらかじめ定められた半径rを用いて「焦点を画素位置q+,q-とし、長径の長さを||q-q+||/2+rとする楕円」とする。
【0049】
上記楕円は、撮影者が移動する際にLiDARセンサ50で計測した3次元点が第1画像中で移動する可能性のある範囲を示すものである。なお、移動速度vが0の場合には、探索範囲は半径rの円となる(
図5参照)。
図5では、要素qに対応する画素位置を中心とする半径rの円を、当該要素qについての探索範囲とする例を示している。
【0050】
画像情報選択部24は、3次元点群Pの3次元点の各々について、当該3次元点に対応する第1画像上の画素位置に基づいて、探索範囲内の複数の画素位置から、第1画像及び第2画像の間の整合性が高くなるように、画素位置を選択し、選択した画素位置の画素値を、当該3次元点に付与する。
【0051】
具体的には、画像情報選択部24は、集合Q_1の各要素について、当該要素に対応する第1画像上の画素位置の近傍の画素位置から選択される画素位置の画像情報と、選択される画素位置に対応する第2画像上の画素位置の画像情報との距離、及び当該要素に対応する第1画像上の画素位置から、選択される画素位置までの移動を用いて表されるコストに基づいて、画素値を選択する。
【0052】
例えば、集合Q_1に含まれる各要素について、探索範囲内の複数の画素位置の各々に対するコストを計算する。
【0053】
この計算処理は、集合Q_1に含まれる要素ごとに実施する。以降、集合Q_1に含まれる1つの要素qに注目して計算処理を説明する。
【0054】
本計算処理では、要素qについて計算された探索範囲内に存在する画素位置のうち、最もコストが小さくなるような画素位置を選択し、その画素値を要素qに付与する。
【0055】
なお、移動速度vが0の場合には、半径r以内に存在する画素位置のうち、最もコストが小さくなるような画素位置を選択する。
【0056】
ここで、要素q(x,y,d)から(Δx,Δy)だけ移動した要素q’(x1’,y1’,d)を考える。まず、要素q’が第2画像上のどこに投影されるかを導出する。これは要素q’(x1’,y1’,d)をK_1の逆行列によって逆投影し、R_CとT_Cを適用して第2画像の座標系に座標変換をしたのちに、K_2によって第2画像平面に投影することによって得られる。このように、3次元点の奥行値を用いることによって、第2画像平面に投影することができる。これによって得た第2画像上での座標値を(x2’,y2’)とする。要素qの画素位置からδ=(Δx,Δy)だけ移動した画素位置の画素値の割り当てやすさを評価するコストcを以下のように導出する。
【0057】
【0058】
ただし、λは、0以上の定数である。第一項のStereoはステレオコストである。すなわち、
図6に示すように、第1画像の座標(
x1’,y
1’)と第2画像の座標(x
2’,y
2’)における画像情報の距離を評価する関数であり、照度差、センサス距離、画像勾配の差異を取る方法などがあり、その重みづけやウィンドウサイズは任意である。第1画像の座標(x
1’,y
1’)と第2画像の座標(x
2’,y
2’)における画像情報の距離が長いほど、ステレオコストが大きくなる。
図6では、要素qに対応する黒丸で示す画素位置(x,y)から(Δx、Δy)だけ移動した、斜線の丸印で示す第1画像の座標(x
1’,y
1’)の画像情報と、第1画像の座標(x
1’,y
1’)に対応する、白丸で示す第2画像の座標(x
2’,y
2’)の画像情報との距離のステレオコストを導出する例を示している。
【0059】
第二項は同じようなステレオコストを持つ画素があった際に、画像上での位置が近いほうが割り当てられやすくするための項である。
【0060】
要素qから探索範囲内であるような移動すべてについて上記のコストcを計算し、コストが最も小さくなるような移動(Δx、Δy)を求める。なお、移動速度が0の場合には、要素qの画素位置からΔx2+Δy2<r2であるような移動すべてについて上記のコストcを計算する。
【0061】
コストが最も小さくなるような移動(Δx、Δy)から、(x1’,y1’)を求め、要素qに、第1画像の画素位置(x1’,y1’)にある画素値を付与する。このとき、一例として、画素値の色情報を付与する。色情報は、グレースケールであれば1次元であり、カラー画像であれば3次元である。
【0062】
集合Q_1のすべての要素について上記の方法で画素値を付与したら、集合Q_1と3次元点群Pの対応付けによって3次元点群Pの各3次元点に画素値を付与する。
【0063】
<第1実施形態に係る3次元点群処理装置の作用>
次に、3次元点群処理装置10の作用について説明する。
【0064】
図7は、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が入力されているものとする。
【0065】
ステップS100で、CPU11は、入力処理部20として、入力部15により受け付けた、第1画像及び第2画像と、3次元点群とを取得する。
【0066】
ステップS102で、CPU11は、入力処理部20として、第1画像及び第2画像と、3次元点群とに基づいて、集合Q_1、Q_2を計算する。
【0067】
ステップS104では、CPU11は、探索範囲計算部22として、3次元点群Pの計測位置の変化速度に基づいて、集合Q_1の各要素について、近傍の複数の画素位置の探索範囲を計算する。
【0068】
ステップS106では、CPU11は、画像情報選択部24として、集合Q_1の各要素について、当該要素について計算された探索範囲内の第1画像上の画素位置の各々に対し、当該画素位置の画像情報と、当該画素位置に対応する第2画像上の画素位置の画像情報との距離、及び当該要素に対応する第1画像上の画素位置から、当該画素位置までの移動を用いて表されるコストを、上記式(1)に従って計算する。
【0069】
ステップS108では、CPU11は、画像情報選択部24として、要素qについて計算された探索範囲内に存在する画素位置のうち、最もコストが小さくなるような画素位置を選択し、その画素値を要素qに付与する。そして、CPU11は、集合Q_1と3次元点群Pの対応付けによって3次元点群Pの各3次元点に画素値を割り当て、表示部16により表示して、3次元点群処理ルーチンを終了する。
【0070】
以上説明したように、本実施形態に係る3次元点群処理装置は、3次元点群の3次元点の各々について、当該3次元点に対応する前記第1画像上の画素位置に基づいて、近傍の複数の画素位置から、第1画像及び第2画像の間の整合性が高くなるように、画素位置を選択し、画素位置の画素値を付与する。これにより、計測して得られた3次元点群に対して精度よく画素値を付与することができる。
【0071】
[第2実施形態]
第2実施形態では、画素位置を選択するときに用いるコスト関数が、第1実施形態と異なっている。
【0072】
<第2実施形態の概要>
上記第1実施形態では、ステレオコストのみによって画素位置を選択していたが、第2実施形態では、平滑化コストを更に考慮して画素位置を選択する。これは上記
図10に示したような撮影者の移動による投影誤りがある場合に、隣接して投影される点は同じような移動δによって最適な画素値を付与するのが望ましいためである。
【0073】
<第2実施形態に係る3次元点群処理装置の構成>
第2実施形態の3次元点群処理装置について説明する。第1実施形態と同様の構成となるため、同一符号を付して説明を省略する。
【0074】
3次元点群処理装置10の画像情報選択部24は、3次元点群Pの3次元点の各々について、当該3次元点に対応する第1画像上の画素位置に基づいて、近傍の複数の画素位置から、第1画像及び前記第2画像の間の整合性が高く、かつ、当該3次元点に対応する第1画像上の画素位置から、当該3次元点について選択される画素位置までの移動が、周辺の3次元点に対応する第1画像上の画素位置から、当該周辺の3次元点について選択される画素位置までの移動と対応するように、画素位置を選択する。
【0075】
具体的には、画像情報選択部24は、集合Q_1の各要素に対応する第1画像上の画素位置をノードとしてノード間をエッジで結んだグラフを作成する。
【0076】
画像情報選択部24は、各エッジについての、エッジで結ばれた2つのノードの各々に対応する要素qについて選択される画素位置までの移動の差分、及びエッジの長さと、要素qに対応する第1画像上の画素位置の近傍の画素位置から選択される画素位置の画像情報と、選択される画素位置に対応する第2画像上の画素位置の画像情報との距離を用いて表されるコスト関数に基づいて、集合Q_1の各要素qについて、画素位置を選択する。
【0077】
例えば、集合Q_1の各要素qのx,y座標を用いてドロネー三角形を作成し、集合Q_1の各要素qの画素位置をノードとし、ドロネー三角形の各辺からなるエッジ集合を含むグラフGを作成する。エッジ集合Eから、あらかじめ定められた閾値e_maxよりも長い距離のエッジを除去する(
図8参照)。
図8では、集合Q_1の各要素に対応する第1画像上の画素位置を黒印で示すノードとし、ノード間を、長さが閾値以下となる、点線で示すエッジで結んだグラフを作成した例を示している。なお、エッジの長さの計算には、集合Q_1の各要素qの画素位置をK_1
-1(x
d,y
d,d)のように3次元空間中に逆投影したうえで、3次元空間中での点間の距離を求める。コスト関数c’は、以下の式(2)で表される。
【0078】
【0079】
第一項は上記式(1)のコストcをグラフのノードすべてについて足し合わせることを意味する。第二項は、エッジeで結ばれているノード(隣接する3次元点)に画素値を選択する際に同じような移動(δ)をするという制約を加えるための項である。∇δはグラフでエッジが張られている二点間について移動δの差分をとることを意味する。それをエッジの長さ||e||1の逆数で重みづけることにより、距離が近い2点ほど強く制約が課されるようにしている。オクルージョンがある場合には、隣接ノード間でも移動δが離散的になるので、そのような変化も許容されるよう、∇δの評価にはl1ノルムを採用し、最大値aでトランケーションをする。
【0080】
移動δの探索範囲は、探索範囲計算部22で求めた楕円形である。撮影者の速度が0である場合には、探索範囲は、半径rの円となる。
【0081】
コスト関数c’の最小化は信念伝播によって実施することができ、コスト関数c’を最小にするような移動δを求め、その移動δによって画素値を付与する。上記第1実施形態の画像情報選択部24とは異なり、移動δは各点個別に求まるのではなく、エッジ集合Eを構成するすべての点について最適化する。
【0082】
画像情報選択部24は、コスト関数c’を最小化する画素位置(x,y)を、集合Q_1の要素のそれぞれについて、信念伝播によって選択する。
【0083】
コスト関数c’の最小化は、信念伝播(Belief Propagation)という手法、より具体的にはループありの信念伝播(Loopy Belief Propagation)によって行うことができる。
【0084】
以上のように、画像情報選択部24では、コスト関数c’の最小化によって、集合Q_1の全ての要素qの各々について探索範囲から選択される画素位置(x,y)の組み合わせが求められる。
【0085】
<第2実施形態に係る3次元点群処理装置の作用>
次に、3次元点群処理装置10の作用について説明する。なお、第1実施形態と同様の処理については同一符号を付して詳細な説明を省略する。
【0086】
図9は、3次元点群処理装置10による3次元点群処理の流れを示すフローチャートである。CPU11がROM12又はストレージ14から3次元点群処理プログラムを読み出して、RAM13に展開して実行することにより、3次元点群処理が行なわれる。
【0087】
ステップS100で、CPU11は、入力処理部20として、入力部15により受け付けた、第1画像及び第2画像と、3次元点群とを取得する。
【0088】
ステップS102で、CPU11は、入力処理部20として、第1画像及び第2画像と、3次元点群とに基づいて、集合Q_1、Q_2を計算する。
【0089】
ステップS104では、CPU11は、探索範囲計算部22として、3次元点群Pの計測位置の変化速度に基づいて、集合Q_1の各要素について、近傍の複数の画素位置の探索範囲を計算する。
【0090】
ステップS106では、CPU11は、画像情報選択部24として、集合Q_1の各要素について、当該要素について計算された探索範囲内の第1画像上の画素位置の各々に対し、当該画素位置の画像情報と、当該画素位置に対応する第2画像上の画素位置の画像情報との距離、及び当該要素に対応する第1画像上の画素位置から、当該画素位置までの移動を用いて表されるコストを、上記式(1)に従って計算する。
【0091】
ステップS200では、CPU11は、画像情報選択部24として、集合Q_1の各要素に対応する第1画像上の画素位置をノードとしてノード間をエッジで結んだグラフを作成する。
【0092】
ステップS202では、CPU11は、画像情報選択部24として、各エッジについての、エッジで結ばれた2つのノードの各々に対応する要素qについて選択される画素位置までの移動の差分、及びエッジの長さと、上記ステップS106で計算されたコストを用いて表される上記式(2)に示すコスト関数に基づいて、集合Q_1の各要素qについて、画素位置を選択し、その画素値を要素qに付与し、集合Q_1と3次元点群Pの対応付けによって3次元点群Pの各3次元点に画素値を付与して、表示部16により表示して、3次元点群処理ルーチンを終了する。
【0093】
以上説明したように、本実施形態に係る3次元点群処理装置は、3次元点群の3次元点の各々について、当該3次元点に対応する第1画像上の画素位置の近傍の複数の画素位置から、第1画像及び第2画像の間の整合性が高く、かつ、当該3次元点に対応する第1画像上の画素位置から、当該3次元点について選択される画素位置までの移動が、周辺の3次元点に対応する第1画像上の画素位置から、当該周辺の前記3次元点について選択される画素位置までの移動と対応するように、画素位置を選択し、画素位置の画素値を付与する。これにより、計測して得られた3次元点群に対して精度よく画素値を付与することができる。
【0094】
<変形例>
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【0095】
例えば、LiDARセンサによる計測で、3次元点群を取得する場合を例に説明したが、これに限定されるものではない。LiDARセンサ以外のセンサを用いて、3次元点群を計測するようにしてもよい。
【0096】
また、第1画像と第2画像とが異なるカメラによって撮影された場合を例に説明したが、これに限定されるものではない。撮影位置の関係が予め求められていれば、第1画像と第2画像とが同じカメラによって撮影されたものでもよい。
【0097】
また、上記各実施形態で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との組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0098】
また、上記各実施形態では、3次元点群処理プログラムがストレージ14に予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM(Compact Disk Read Only Memory)、DVD-ROM(Digital Versatile Disk Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の非一時的(non-transitory)記憶媒体に記憶された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【0099】
以上の実施形態に関し、更に以下の付記を開示する。
【0100】
(付記項1)
3次元点群処理装置であって、
メモリと、
前記メモリに接続された少なくとも1つのプロセッサと、
を含み、
前記プロセッサは、
少なくとも撮影位置の関係が予め求められている第1画像及び第2画像と、少なくとも撮影位置と計測位置との関係が予め求められている物体の表面上の3次元点群とを受け付け、3次元点群の3次元点の各々に対応する第1画像上の画素位置を求め、
3次元点群の3次元点の各々について、前記3次元点に対応する前記第1画像上の画素位置に基づいて、近傍の複数の画素位置から、前記第1画像及び前記第2画像の間の整合性が高くなるように、前記画素位置を選択し、前記画素位置の画素値を付与する
ように構成される3次元点群処理装置。
【0101】
(付記項2)
3次元点群処理を実行するようにコンピュータによって実行可能なプログラムを記憶した非一時的記憶媒体であって、
前記3次元点群処理は、
少なくとも撮影位置の関係が予め求められている第1画像及び第2画像と、少なくとも撮影位置と計測位置との関係が予め求められている物体の表面上の3次元点群とを受け付け、3次元点群の3次元点の各々に対応する第1画像上の画素位置を求め、
3次元点群の3次元点の各々について、前記3次元点に対応する前記第1画像上の画素位置に基づいて、近傍の複数の画素位置から、前記第1画像及び前記第2画像の間の整合性が高くなるように、前記画素位置を選択し、前記画素位置の画素値を付与する
非一時的記憶媒体。
【0102】
(付記項3)
3次元点群処理装置であって、
メモリと、
前記メモリに接続された少なくとも1つのプロセッサと、
を含み、
前記プロセッサは、
少なくとも撮影位置の関係が予め求められている第1画像及び第2画像と、少なくとも前記撮影位置と計測位置との関係が予め求められている物体の表面上の3次元点群とを受け付け、前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置を求め、
前記3次元点群の3次元点の各々について、前記3次元点に対応する前記第1画像上の画素位置の近傍の複数の画素位置から、前記第1画像及び前記第2画像の間の整合性が高く、かつ、前記3次元点に対応する前記第1画像上の画素位置から、前記3次元点について選択される前記画素位置までの移動が、周辺の前記3次元点に対応する前記第1画像上の画素位置から、前記周辺の前記3次元点について選択される前記画素位置までの移動と対応するように、前記画素位置を選択し、前記画素位置の画素値を付与する
ように構成される3次元点群処理装置。
【0103】
(付記項4)
3次元点群処理を実行するようにコンピュータによって実行可能なプログラムを記憶した非一時的記憶媒体であって、
前記3次元点群処理は、
少なくとも撮影位置の関係が予め求められている第1画像及び第2画像と、少なくとも前記撮影位置と計測位置との関係が予め求められている物体の表面上の3次元点群とを受け付け、前記3次元点群の3次元点の各々に対応する前記第1画像上の画素位置を求め、
前記3次元点群の3次元点の各々について、前記3次元点に対応する前記第1画像上の画素位置の近傍の複数の画素位置から、前記第1画像及び前記第2画像の間の整合性が高く、かつ、前記3次元点に対応する前記第1画像上の画素位置から、前記3次元点について選択される前記画素位置までの移動が、周辺の前記3次元点に対応する前記第1画像上の画素位置から、前記周辺の前記3次元点について選択される前記画素位置までの移動と対応するように、前記画素位置を選択し、前記画素位置の画素値を付与する
非一時的記憶媒体。
【符号の説明】
【0104】
10 3次元点群処理装置
11 CPU
14 ストレージ
15 入力部
16 表示部
20 入力処理部
22 探索範囲計算部
24 画像情報選択部
50 LiDARセンサ
52 第1カメラ
54 第2カメラ