(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022186522
(43)【公開日】2022-12-15
(54)【発明の名称】位置関係導出装置、位置関係導出方法、及び位置関係導出プログラム
(51)【国際特許分類】
G06T 7/70 20170101AFI20221208BHJP
【FI】
G06T7/70 Z
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021094792
(22)【出願日】2021-06-04
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(71)【出願人】
【識別番号】504137912
【氏名又は名称】国立大学法人 東京大学
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】八尾 泰洋
(72)【発明者】
【氏名】安藤 慎吾
(72)【発明者】
【氏名】島村 潤
(72)【発明者】
【氏名】石川 涼一
(72)【発明者】
【氏名】大石 岳史
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA06
5L096CA05
5L096DA02
5L096EA06
5L096EA15
5L096EA16
5L096FA02
5L096FA38
5L096FA66
5L096FA69
5L096GA51
5L096HA01
5L096JA11
(57)【要約】
【課題】キャリブレーションターゲット、又は多数の学習データ等の事前準備を必要とすることなく、カメラと三次元位置を計測する計測装置との位置関係を得る。
【解決手段】投影コスト導出部105は、三次元空間の各点の三次元位置を計測する計測装置が計測した三次元点群を、第一カメラと計測装置との位置関係の解候補に基づいて、計測装置が三次元点群を計測した時刻と同一の時刻に第一カメラが撮影した画像である第一カメラ画像に投影した位置における画素情報と、三次元点群を、解候補、及び第一カメラと第二カメラとの位置関係に基づいて、同一の時刻に第二カメラが撮影した画像である第二カメラ画像に投影した位置における画素情報との差分に応じたコストを導出し、最小化部107は、コストが最小となる解候補を、第一カメラと計測装置との位置関係の最適解として導出する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
三次元空間の各点の三次元位置を計測する計測装置が計測した三次元点群を、第一カメラと前記計測装置との位置関係の解候補に基づいて、前記計測装置が前記三次元点群を計測した時刻と同一の時刻に前記第一カメラが撮影した画像である第一カメラ画像に投影した位置における画素情報と、前記三次元点群を、前記解候補、及び前記第一カメラと第二カメラとの位置関係に基づいて、前記同一の時刻に前記第二カメラが撮影した画像である第二カメラ画像に投影した位置における画素情報との差分に応じたコストを導出する導出部と、
前記コストが最小となる前記解候補を、前記第一カメラと前記計測装置との位置関係の最適解として導出する最小化部と、
を備えた位置関係導出装置。
【請求項2】
三次元空間の各点の三次元位置を計測する計測装置が計測した三次元点群を、第一カメラと前記計測装置との位置関係の解候補に基づいて、前記計測装置が前記三次元点群を計測した時刻と同一の時刻に前記第一カメラが撮影した画像である第一カメラ画像に投影した位置における画素情報と、前記投影した位置の奥行が無限遠であると仮定して、前記三次元点群を、前記解候補、及び前記第一カメラと第二カメラとの位置関係に基づいて、前記同一の時刻に前記第二カメラが撮影した画像である第二カメラ画像に投影した位置における画素情報との差分に応じたコストを導出する導出部と、
前記コストが最小となる前記解候補を、前記第一カメラと前記計測装置との位置関係の最適解として導出する最小化部と、
を備えた位置関係導出装置。
【請求項3】
前記導出部は、前記三次元点群を、前記第一カメラ画像に投影した位置における画素情報と、前記第二カメラ画像に投影した位置における画素情報との差分である投影コストと、前記三次元点群を、前記解候補に基づいて、前記第一カメラ画像に投影した位置における画素情報と、前記投影した位置の奥行が無限遠であると仮定して、前記三次元点群を、前記解候補、及び前記第一カメラと前記第二カメラとの位置関係に基づいて、前記第二カメラ画像に投影した位置における画素情報との差分である背景キャンセル項とに基づく前記コストを導出する請求項1に記載の位置関係導出装置。
【請求項4】
前記第一カメラと前記計測装置との位置関係の解空間における所定範囲に含まれる点に対応する前記解候補を生成する生成部を更に備え、
前記最小化部は、前記生成部が生成した前記解候補のうち、前記コストが最も小さい前記解候補を前記最適解として導出する、
請求項1~請求項3の何れか1項に記載の位置関係導出装置。
【請求項5】
予め定められた条件を満たすまで、前記生成部に、前記最小化部で導出された前記最適解に対応する前記解候補を生成させる処理、及び、前記導出部に、前記コストを導出する処理を繰り返し実行させる終了判定部を、更に備え、
前記生成部は、前記解空間において、前記最小化部で導出された直近の前記最適解を中心とする前記所定範囲を、所定の分割数で分割した領域内の各点から前記最適解に対応する前記解候補を生成する、
請求項4に記載の位置関係導出装置。
【請求項6】
前記生成部は、前記解候補を生成する処理の繰り返し回数が多くなるにしたがって、前記分割数は維持したまま、前記所定範囲を小さくする請求項5に記載の位置関係導出装置。
【請求項7】
導出部が、三次元空間の各点の三次元位置を計測する計測装置が計測した三次元点群を、第一カメラと前記計測装置との位置関係の解候補に基づいて、前記計測装置が前記三次元点群を計測した時刻と同一の時刻に前記第一カメラが撮影した画像である第一カメラ画像に投影した位置における画素情報と、前記三次元点群を、前記解候補、及び前記第一カメラと第二カメラとの位置関係に基づいて、前記同一の時刻に前記第二カメラが撮影した画像である第二カメラ画像に投影した位置における画素情報との差分に応じたコストを導出し、
最小化部が、前記コストが最小となる前記解候補を、前記第一カメラと前記計測装置との位置関係の最適解として導出する、
位置関係導出方法。
【請求項8】
コンピュータを、請求項1~請求項6の何れか1項に記載の位置関係導出装置の各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
開示の技術は、位置関係導出装置、位置関係導出方法、及び位置関係導出プログラムに関する。
【背景技術】
【0002】
ステレオカメラと、三次元空間の各点の三次元位置を計測する計測装置の一例であるLiDAR(Light Detection and Ranging)センサとから構成される系において、これらの装置の位置関係を導出する技術が知られている。なお、位置関係とは、2つのセンサ間の三次元空間内での位置の違いを示す関係であり、例えば、三次元の各軸周りの回転角度と、三次元の各軸方向についての距離とからなる関係である。
【0003】
例えば、非特許文献1には、4つの円形の穴の空いた板であるキャリブレーションターゲットを用いて、ステレオカメラとLiDARセンサとの位置関係を導出する技術が開示されている。
【0004】
非特許文献2には、ステレオ画像によって生成した奥行画像とLiDARセンサによって生成した奥行画像とが一致するように、ステレオカメラとLiDARセンサとの位置関係を導出する技術が開示されている。
【0005】
非特許文献3には、ステレオカメラとLiDARセンサとの位置関係を導出可能なニューラルネットワークを学習によって得る技術が開示されている。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献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.
【非特許文献3】Park, Kihong, Seungryong Kim, and Kwanghoon Sohn. "High-precision depth estimation using uncalibrated LiDAR and stereo fusion." IEEE Transactions on Intelligent Transportation Systems 21.1 (2019): 321-335.
【発明の概要】
【発明が解決しようとする課題】
【0007】
非特許文献1に記載の技術の問題点は、特定の形状のキャリブレーションターゲットがない場合、上記位置関係を導出できない点である。
【0008】
非特許文献2に記載の技術の問題点は、ステレオ画像の奥行画像とマッチングできる程度に解像度が高い奥行画像を、LiDARセンサが生成する必要がある点である。LiDARセンサには、低解像度のものから高解像度のものまであるため、解像度が低いLiDARセンサを用いて、非特許文献2に記載の技術を適用した場合、上記位置関係を導出できない。
【0009】
非特許文献3に記載の技術の問題点は、位置関係が既知のステレオカメラとLiDARセンサとを用いて取得した大量の学習データが必要である点である。上記学習データを取得するためには、特定の形状のキャリブレーションターゲットを用いたキャリブレーション、又は手動でのキャリブレーションを実施したステレオカメラ及びLiDARセンサで事前に計測を行う必要がある。
【0010】
開示の技術は、上記の点に鑑みてなされたものであり、キャリブレーションターゲット、又は多数の学習データ等の事前準備を必要とすることなく、カメラと三次元位置を計測する計測装置との位置関係を得ることができる位置関係導出装置、位置関係導出方法、及び位置関係導出プログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
本開示の第1態様は、位置関係導出装置であって、三次元空間の各点の三次元位置を計測する計測装置が計測した三次元点群を、第一カメラと前記計測装置との位置関係の解候補に基づいて、前記計測装置が前記三次元点群を計測した時刻と同一の時刻に前記第一カメラが撮影した画像である第一カメラ画像に投影した位置における画素情報と、前記三次元点群を、前記解候補、及び前記第一カメラと第二カメラとの位置関係に基づいて、前記同一の時刻に前記第二カメラが撮影した画像である第二カメラ画像に投影した位置における画素情報との差分に応じたコストを導出する導出部と、前記コストが最小となる前記解候補を、前記第一カメラと前記計測装置との位置関係の最適解として導出する最小化部と、を含む。
【0012】
本開示の第2態様は、位置関係導出方法であって、導出部が、三次元空間の各点の三次元位置を計測する計測装置が計測した三次元点群を、第一カメラと前記計測装置との位置関係の解候補に基づいて、前記計測装置が前記三次元点群を計測した時刻と同一の時刻に前記第一カメラが撮影した画像である第一カメラ画像に投影した位置における画素情報と、前記三次元点群を、前記解候補、及び前記第一カメラと第二カメラとの位置関係に基づいて、前記同一の時刻に前記第二カメラが撮影した画像である第二カメラ画像に投影した位置における画素情報との差分に応じたコストを導出し、最小化部が、前記コストが最小となる前記解候補を、前記第一カメラと前記計測装置との位置関係の最適解として導出することを含む。
【0013】
本開示の第3態様は、位置関係導出プログラムであって、コンピュータを、上記第1態様の位置関係導出装置の各部として機能させるためのプログラムである。
【発明の効果】
【0014】
開示の技術によれば、キャリブレーションターゲット、又は多数の学習データ等の事前準備を必要とすることなく、カメラと三次元位置を計測する計測装置との位置関係を得ることができる。
【図面の簡単な説明】
【0015】
【
図1】実施形態に係る位置関係導出システムのハードウェア構成の一例を示す模式図である。
【
図2】実施形態に係る位置関係導出装置のハードウェア構成の一例を示す模式図である。
【
図3】実施形態に係る位置関係導出装置の機能構成の一例を示すブロック図である。
【
図4】実施形態に係る撮影シーンの一例を示す模式図である。
【
図5】実施形態に係る第一カメラ画像の一例を示す模式図である。
【
図6】実施形態に係る第二カメラ画像の一例を示す模式図である。
【
図7】実施形態に係る回転行列の初期値及び並進ベクトルの初期値を適用して三次元点群を第一カメラ画像に投影した場合の一例を示す模式図である。
【
図8】実施形態に係る解候補の生成方法の一例を示す模式図である。
【
図9】実施形態に係る投影コストの導出方法の一例を示す模式図である。
【
図10】実施形態に係る背景キャンセル項の導出方法の一例を示す模式図である。
【
図11】実施形態に係る最適解に対応する回転行列及び並進ベクトルを適用して三次元点群を第一カメラ画像に投影した場合の一例を示す模式図である。
【
図12】実施形態の位置関係導出装置における位置関係導出処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0016】
以下、開示の技術の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
【0017】
図1に示すように、本実施形態に係る位置関係導出システム100は、計測装置20、第一カメラ30A、及び第二カメラ30Bを含む。計測装置20、第一カメラ30A、及び第二カメラ30Bの各々は、同一の計測対象を計測範囲又は撮影範囲とするように配置されている。なお、位置関係導出システム100では、第一カメラ30Aと第二カメラ30Bとの位置関係は既知であるが、第一カメラ30Aと計測装置20との位置関係、及び第二カメラ30Bと計測装置20の位置関係はいずれも未知である。ここで、位置関係とは、2つのセンサ間の三次元空間内での位置及び姿勢の違いを示す関係であり、姿勢の違いを表す三次元の各軸周りの回転角度(以下、「回転」ともいう)と、位置の違いを表す三次元の各軸方向の距離(以下、「並進」ともいう)とで表される関係である。
【0018】
また、本実施形態では、計測装置20として、LiDARセンサを適用している。しかし、計測装置20として、超音波センサ又は赤外線センサ等、三次元空間の各点の三次元位置を計測可能な装置を適用してもよい。また、本実施形態では、第一カメラ30Aと第二カメラ30Bとで、ステレオカメラを構成する。また、本実施形態では、第一カメラ30Aと第二カメラ30Bは便宜的に番号を付与しているだけである。したがって、第一カメラ30Aと第二カメラ30Bを入れ替えても、本実施形態に適用可能である。
【0019】
次に、本実施形態に係る位置関係導出装置10のハードウェア構成を説明する。
図2に示すように、位置関係導出装置10は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、ストレージ14、及び通信I/F(Interface)17を有する。各構成は、バス19を介して相互に通信可能に接続されている。
【0020】
CPU11は、中央演算処理ユニットであり、各種プログラムを実行したり、各部を制御したりする。すなわち、CPU11は、ROM12又はストレージ14からプログラムを読み出し、RAM13を作業領域としてプログラムを実行する。CPU11は、ROM12又はストレージ14に記憶されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。本実施形態では、ROM12又はストレージ14には、位置関係導出プログラムが格納されている。位置関係導出プログラムは、1つのプログラムであってもよいし、複数のプログラム又はモジュールで構成されるプログラム群であってもよい。
【0021】
ROM12は、各種プログラム及び各種データを格納する。RAM13は、作業領域として一時的にプログラム又はデータを記憶する。ストレージ14は、HDD(Hard Disk Drive)又はSSD(Solid State Drive)により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
【0022】
通信I/F17は、計測装置20、第一カメラ30A、及び第二カメラ30Bを含む他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI、Wi-Fi(登録商標)等の規格が用いられる。
【0023】
次に、位置関係導出装置10の機能構成について説明する。
図3に示すように、位置関係導出装置10は、イテレーション部101、画像平滑化部102、生成部103、導出部104、最小化部107、及び終了判定部108を備えている。なお、導出部104は、投影コスト導出部105及び背景キャンセル項導出部106を備えている。
【0024】
イテレーション部101は、イテレーションのためのデータ準備をする。具体的には、イテレーション部101は、後述する各機能部の処理のイテレーション回数jのカウント、及びイテレーションごとに更新するパラメータ(後述するf、λ等)の設定を行う。なお、イテレーション回数jの初期値は0である。
【0025】
画像平滑化部102は、計測装置20が三次元点群Pを計測した時刻と同一の時刻に、第一カメラ30Aが撮影した第一カメラ画像I_1、及び上記同一の時刻に第二カメラ30Bが撮影した画像である第二カメラ画像I_2を取得する。
図4に、第一カメラ30A及び第二カメラ30Bが上記同一の時刻に撮影したシーン、すなわち計測対象の被写体を含む風景の一例を概略的に示す。
図4中の丸、三角、及び菱形の各々は、被写体を概略的に表したものである。また、
図5に、
図4に示すシーンを第一カメラ30Aで撮影した第一カメラ画像I_1の一例、
図6に、
図4に示すシーンを第二カメラ30Bで撮影した第二カメラ画像I_2の一例を示す。なお、第一カメラ画像I_1及び第二カメラ画像I_2は、例えば、歪み補正されたRGB又はグレースケールの画像であり、解像度が縦H×横Wピクセルの画像である。
【0026】
画像平滑化部102は、第一カメラ画像I_1及び第二カメラ画像I_2を平滑化した画像を出力する。後述する最小化部107が最小化するコストは、解空間上で一般的になめらかではないため、解候補のサンプリングの粒度によっては、真に最適な解候補を見逃す可能性がある。そこで、第一カメラ画像I_1及び第二カメラ画像I_2の画素値に基づいて算出されるコスト(詳細は後述)が解空間上でなめらかになるように、第一カメラ画像I_1及び第二カメラ画像I_2を平滑化するものである。後述する生成部103は、イテレーション回数jが多くなるにしたがって粒度の小さいサンプリングを行うため、それに合わせて画像平滑化部102は、イテレーション回数jが多くなるにしたがって画像の平滑化の度合いが小さくなるようにする。
【0027】
具体的には、画像平滑化部102は、第一カメラ画像I_1(
図5参照)に標準偏差f(SIGMA,j)のガウシアンフィルタを適用し、ガウシアンフィルタを適用した第一カメラ画像I_1_Gを作成する。また、画像平滑化部102は、第二カメラ画像I_2(
図6参照)に標準偏差f(SIGMA,j)のガウシアンフィルタを適用し、ガウシアンフィルタを適用した第二カメラ画像I_2_Gを作成する。なお、SIGMAは、第一カメラ画像I_1及び第二カメラ画像I_2に適用するガウシアンフィルタの標準偏差の初期値である。また、fはイテレーション回数jの増加に従って減衰するような関数であり、一例として、f(SIGMA,j)=SIGMA/(2^j)としてよい。画像平滑化部102は、作成した平滑化後の第一カメラ画像I_1_G及び第二カメラ画像I_2_Gを出力する。
【0028】
生成部103は、第一カメラ30Aと計測装置20との位置関係の解空間における所定の探索空間に含まれる点に対応する解候補CANDを生成する。具体的には、生成部103は、イテレーションごとに、後述する最小化部107で導出された直近の最適解Aを中心とする探索空間からサンプリングを実施して、解候補CANDを生成する。
【0029】
上述したように、生成部103は、イテレーション回数jが多くなるにしたがって粒度の小さいサンプリングを行う。例えば、生成部103は、探索空間を所定の分割数Sで分割した各領域から解候補CANDをサンプリングする場合、イテレーション回数jが多くなるにしたがって、分割数Sを維持したまま、探索空間を小さくする。これにより、イテレーション回数jが多くなるにしたがって、探索の解像度が大きくなる。
【0030】
なお、探索空間は、回転三次元(yaw,pitch,roll)と並進三次元(x,y,z)とからなる六次元の空間である。生成部103は、1回のイテレーションにおいて、六次元の空間で解候補CANDを生成してもよい。また、生成部103は、例えば、回転三次元の解候補の探索空間(以下、「回転空間」ともいう)で解候補CANDを生成した後、並進三次元の解候補の探索空間(以下、「並進空間」ともいう)で解候補CANDを生成するなど、交互に解候補CANDを生成してもよい。また、生成部103は、回転空間での解候補CANDの探索を複数イテレーションで実施した後に、並進空間での解候補CANDの探索を複数イテレーションで実施してもよい。
【0031】
具体的には、まず生成部103は、計測装置20により計測された三次元点群P、及び後述する最小化部107で導出された直近の最適解Aを入力として取得する。そして、生成部103は、三次元点群Pに含まれるそれぞれの三次元点について、式(1)を用いて、計測装置20の座標系から第一カメラ30Aの座標系に変換したP_RTを導出する。
【0032】
【0033】
なお、R_LASTとは、後述する最小化部107が前イテレーションまでに導出した第一カメラ30Aと計測装置20との位置関係の最適解Aに含まれる3×3の回転行列を示す。また、T_LASTとは、前イテレーションまでに導出した第一カメラ30Aと計測装置20との位置関係の最適解Aに含まれる三次元の並進ベクトル(3×1次元の配列)を示す。j=0の場合、生成部103は、R_LASTを、回転行列の初期値R_INITとする。また、生成部103は、T_LASTを、並進ベクトルの初期値T_INITとする。なお、R_INITは、R_LASTと同様、3×3の回転行列であり、T_INITは、T_LASTと同様、三次元の並進ベクトル(3×1次元の配列)である。また、R_INIT及びT_INITは、最適化の過程で初期値として用いるだけであるため、任意の値を設定しておけばよい。また、解の収束を考慮して、所定範囲内の値からR_INIT及びT_INITを設定してもよい。また、上記三次元点は三次元のベクトルである。三次元点群Pは、上記三次元点がN点存在する場合、N×3×1次元の配列である。また、P_RTもN×3×1次元の配列である。
【0034】
図7に、後述する生成部103が、R_INIT及びT_INITを適用して三次元点群Pを第一カメラ画像I_1_Gに投影した場合の一例を示す。
図7に示すように、R_INIT及びT_INITは初期値であるため、これらの移動を適用した場合、三次元点群Pは被写体以外にも投影される。
【0035】
なお、本実施形態では、第一カメラ30Aと計測装置20との位置関係における三次元の回転を3×3の回転行列として、三次元の並進を三次元のベクトルとして表現する。しかし、これらの表現方法として他の表現方法もあり、開示の技術は、その表現方法の違いには依存しない。例えば、これらの表現方法として、回転をオイラー角で表す方法、若しくは四元数で表す方法、又は回転と並進とをまとめて六次元のリー代数で表す方法が一般的に用いられる。これらの方法により表現したものを回転行列と並進ベクトルに変換すれば、容易に本実施形態に適用できる。
【0036】
次に、生成部103は、P_RTのうち、第一カメラ画像I_1_Gの撮影範囲(画角内)に存在するものの集合P_REMを求める。具体的には、生成部103は、第一カメラ内部パラメータK_1により、P_RTを第一カメラ画像I_1_Gに投影した際に画角外に投影されるものをP_RTから除外し、残存する点をP_REMとする。上記除外後に残存する点数をMとすると、P_REMはM×3×1次元の配列となる。なお、P_REMはP_RTの部分集合である。また、K_1は、ワールド座標系の三次元座標と、第一カメラ画像の二次元座標との関係を表す3×3のカメラ内部パラメータ行列である。
【0037】
次に、生成部103は、回転に関する解候補の探索範囲である回転探索範囲RAD_RANGEを直近の最適解Aを中心とし、yaw,pitch,roll方向それぞれに[-GR,GR]の範囲として、回転の解候補RAD_CANDを生成する。また、生成部103は、並進に関する解候補の探索範囲である並進探索範囲SHIFT_RANGEを直近の最適解Aを中心とし、x,y,z方向それぞれに[-HD,HD]の範囲として、並進の解候補SHIFT_CANDを生成する。
【0038】
GRは、回転探索範囲RAD_RANGEの大きさを規定するスカラー値である。生成部103は、GRを、式(2)を用いて導出する。
【0039】
【0040】
HDは、並進探索範囲SHIFT_RANGEの大きさを既定するスカラー値である。生成部103は、HDを、式(3)を用いて導出する。
【0041】
【0042】
なお、lambda_r及びlambda_dの各々は、1または0の値をとる変数である。そのイテレーションで回転空間を探索する場合はlambda_r=1とし、回転空間を探索しない場合はlambda_r=0とする。同様に、そのイテレーションで並進空間を探索する場合はlambda_d=1とし、並進空間を探索しない場合lambda_d=0とする。g及びhは、それぞれイテレーション回数jの増加に従って減衰する関数であり、一例として式(4)及び式(5)を用いてそれぞれ表される。
【0043】
【0044】
GRが0でない場合、生成部103は、回転探索範囲RAD_RANGEのyaw,pitch,roll方向それぞれについて等間隔にS個サンプリングし、回転の解候補RAD_CANDを生成する。これにより、生成部103は、イテレーションごとにS^3個の回転の解候補RAD_CANDを生成する。なお、GRが0である場合、生成部103は、RAD_CANDを生成しない。
【0045】
また、HDが0でない場合、生成部103は、並進探索範囲SHIFT_RANGEのx,y,z方向それぞれについて等間隔にS個サンプリングし、並進の解候補SHIFT_CANDを生成する。これにより、生成部103は、イテレーションごとにS^3個の並進の解候補SHIFT_CANDを生成する。なお、HDが0である場合、生成部103は、SHIFT_CANDを生成しない。
【0046】
図8に、生成部103が、直近の最適解Aを中心として、±GR(±HD)の範囲を回転探索範囲RAD_RANGE(並進探索範囲SHIFT_RANGE)とした例を示す。また、
図8は、S=3とし、yaw,pitch,roll方向(x,y,z方向)それぞれについて等間隔に3個ずつサンプリングし、27個の回転の解候補RAD_CAND(並進の解候補SHIFT_CAND)を生成した例である。なお、
図8では、丸印が解候補RAD_CAND(並進の解候補SHIFT_CAND)であり、pitch方向(y方向)のサンプリングの間隔毎に丸印内の色(ハッチング)を異ならせて表現している。
【0047】
生成部103は、RAD_CANDとSHIFT_CANDとの全ての組み合わせを本イテレーションの解候補とする。すなわち、生成部103は、解候補CAND=RAD_CAND×SHIFT_CANDを本イテレーションの解候補とする。CANDのそれぞれは(yaw,pitch,roll,x,y,z)の値からなる。以下では、生成した解候補CANDの要素数をS_Cと記載する。
【0048】
次に、生成部103は、P_REMを解候補CANDに含まれる回転行列及び並進ベクトルによって移動した三次元座標の集合であるP_CANDを導出する。P_CANDは、M×S_C×3×1次元の配列である。
【0049】
次に、生成部103は、P_CANDを第一カメラ内部パラメータK_1により第一カメラ画像I_1_Gに投影した二次元点の画像上での二次元座標の集合P_CAND_1(M×S_C×2次元の配列)を導出する。
【0050】
次に、生成部103は、P_CANDを第二カメラ画像I_2_Gに投影した二次元点の画像上での二次元座標の集合P_CAND_2(M×S_C×2の配列)を導出する。具体的には、まず、生成部103は、P_CANDを、第一カメラ30Aと第二カメラ30B間の回転行列R_C、及び第一カメラ30Aと第二カメラ30B間の並進ベクトルT_Cによって第二カメラ30Bの座標系に変換する。その後、生成部103は、座標変換したP_CANDを、第二カメラ内部パラメータK_2によって第二カメラ画像I_2_Gに投影することでP_CAND_2を導出する。ここで、P_CAND_1とP_CAND_2との2つの配列の並び、すなわち、三次元点を各画像に投影した二次元点の組み合わせの対応はついている。なお、K_2は、3×3のカメラ内部パラメータ行列である。また、R_Cは3×3の回転行列であり、T_Cは三次元の並進ベクトルである。
【0051】
最後に、生成部103は、P_CAND_1とP_CAND_2とを出力する。
【0052】
投影コスト導出部105は、生成部103が生成した全ての解候補CANDについての投影コストCを導出する。投影コストCとは、三次元点群Pに解候補CANDによる三次元の回転及び三次元の並進を適用することで、第一カメラ画像I_1_G及び第二カメラ画像I_2_Gに投影し、投影した位置及びその周辺における画素がどの程度異なるかを評価するコストである。解候補CANDが、第一カメラ30Aと計測装置20との真の位置関係に近くなる場合、解候補CANDに基づいて移動させた三次元点群Pが第一カメラ画像I_1_G及び第二カメラ画像I_2_Gの各々に投影される点は同じような画像になるべきであるという考えに基づくものである。投影コストCを用いることで、キャリブレーションターゲットを検出する事前処理を経ずに、かつ三次元点群Pの解像度が低い場合でも、第一カメラ30Aと計測装置20との位置関係を評価することができる。
【0053】
投影コスト導出部105は、投影コストCとして、P_CAND_1とP_CAND_2とで、二次元点の組それぞれに対して値を求めたのちに、M個の三次元点(二次元点の組)全てについての和を取る。したがって、投影コストCは、S_Cの要素を持つ配列となる。具体的には、投影コスト導出部105は、三次元点を第一カメラ画像I_1_Gに投影した二次元点をp_1(p_1∈P_CAND_1)、第二カメラ画像I_2_Gに投影した二次元点をp_2(p_2∈P_CAND_2)とし、式(6)によって投影コストCを導出する。
【0054】
【0055】
ここで、式(6)におけるStereoは第一カメラ画像I_1_Gと第二カメラ画像I_2_Gとに基づく、任意のステレオマッチングコストである。例えば、Stereoは、画素値の差異を直接用いるフォトメトリックコストでもよいし、Censusコストでもよいし、勾配の差分によるコストでもよいし、それらの任意の組み合わせの任意の重みづけ和でもよい。また、それぞれのコストを導出する際のウィンドウサイズなどのパラメータも任意でよい。
【0056】
例えば、Stereoとして、フォトメトリックコストのウィンドウサイズをw_p、Censusコストのカーネルサイズをd_c、Censusコストのウィンドウサイズをw_c、勾配の差分によるコストのウィンドウサイズをw_g、フォトメトリックコストの重みをα_p、Censusコストの重みをα_c、及び勾配の差分によるコストの重みをα_gとし、式(7)で表されるステレオマッチングコストを用いてもよい。
【0057】
【0058】
ここで、
図9を用いて、2つの解候補(CAND1及びCAND2)の各々の投影コストCを導出する場合の具体例を説明する。
【0059】
図9に示すように、CAND1の移動を適用した三次元点A1を第一カメラ画像I_1_Gに投影した座標PA11における画素は背景を表す画素であり、第二カメラ画像I_2_Gに投影した座標PA12における画素は三角形を表す画素である。また、CAND1の移動を適用した三次元点B1を第一カメラ画像I_1_Gに投影した座標PB11における画素は菱形を表す画素であり、第二カメラ画像I_2_Gに投影した座標PB12における画素は背景を表す画素である。
【0060】
一方、CAND2の移動を適用した三次元点A2を第一カメラ画像I_1_Gに投影した座標PA21における画素は円を表す画素であり、第二カメラ画像I_2_Gに投影した座標PA22における画素も円を表す画素である。また、CAND2の移動を適用した三次元点B2を第一カメラ画像I_1_Gに投影した座標PB21における画素は菱形を表す画素であり、第二カメラ画像I_2_Gに投影した座標PB22における画素も菱形を表す画素である。
【0061】
したがって、CAND1の移動を適用した三次元点をそれぞれの画像に投影した位置におけるステレオマッチングコストは、CAND2の移動を適用した三次元点をそれぞれの画像に投影した位置におけるステレオマッチングコストより大きい。言い換えると、CAND1の投影コストCは、CAND2の投影コストCより大きい。上述した投影コストCを用いた場合、投影コストCの値が大きいほど、投影した位置の画素間のマッチング度合いが低いことを表す。
【0062】
背景キャンセル項導出部106は、三次元点群Pが背景領域に投影されている度合いに応じて、投影コストCを低下させるための項である背景キャンセル項Dを導出する。第一カメラ画像I_1_G及び第二カメラ画像I_2_Gの背景領域に三次元点が投影されていた場合、どのような視差値でもステレオマッチングコストが小さくなるため、対応する投影コストCも小さくなる。その結果、投影コストCだけでコスト関数を作ると、後述する最小化部107は、最適解Aとして、背景領域に多くの三次元点を投影する解候補を選ぶ可能性がある。そのため、三次元点群Pが背景領域に投影されている度合いに応じて、投影コストCを低下させる必要がある。
【0063】
具体的には、背景キャンセル項導出部106は、生成部103が出力したP_CAND_1に含まれる全ての二次元点の奥行値を無限大とし、K_1、R_C、T_C、及びK_2によって第二カメラ画像I_2_Gに投影した二次元座標の集合P_CAND_2_INFを導出する。なお、P_CAND_2_INFはM×S_C×2の配列である。また、点までの距離を無限遠としているため、第一カメラ30Aと第二カメラ30B間の並進ベクトルT_Cによる並進の効果は無視できる。したがって、背景キャンセル項導出部106は、K_1、R_C、及びK_2のみによってP_CAND_2_INFを導出する。
【0064】
背景キャンセル項導出部106は、背景キャンセル項Dとして、P_CAND_1とP_CAND_2_INFとで、二次元点の組それぞれに対して値を求めたのちに、M個の二次元点全てについての和を取る。したがって、背景キャンセル項Dは、S_Cの要素を持つ配列となる。具体的には、背景キャンセル項導出部106は、三次元点を第一カメラ画像I_1_Gに投影した二次元点をp_1(p_1∈P_CAND_1)、奥行き値を無限大として第二カメラ画像I_2_Gに投影した二次元点をp_2_inf(p_2_inf∈P_CAND_2_INFとし、式(8)によって背景キャンセル項Dを導出する。
【0065】
【0066】
ここで、式(8)におけるStereoは、投影コストCを導出した際のステレオマッチングコストと同様である。ただし、式(8)におけるStereoが、式(6)におけるステレオマッチングコスト(例えば、式(7))と必ずしも一致していなくてもよい。すなわち、Stereoを構成するコストの要素の種類、数、重み、及びウィンドウサイズなどのパラメータは任意である。
【0067】
ここで、
図10を用いて、2つの解候補(CAND1及びCAND2)の各々の背景キャンセル項Dを導出する場合の具体例を説明する。
【0068】
図10に示すように、CAND1の移動を適用した三次元点C1を第一カメラ画像I_1_Gに投影した座標PC11における画素は三角形を表す画素である。一方、三次元点C1を座標PC11の奥行が無限遠であると仮定して第二カメラ画像I_2_Gに投影した座標PC12における画素は背景を表す画素である。また、CAND1の移動を適用した三次元点D1を第一カメラ画像I_1_Gに投影した座標PD11における画素は円を表す画素である。一方、三次元点D1を座標PD11の奥行が無限遠であると仮定して第二カメラ画像I_2_Gに投影した座標PD12における画素は背景を表す画素である。
【0069】
また、CAND2の移動を適用した三次元点C2を第一カメラ画像I_1_Gに投影した座標PC21における画素は背景を表す画素である。一方、三次元点C2を座標PC21の奥行が無限遠であると仮定して第二カメラ画像I_2_Gに投影した座標PC22における画素も背景を表す画素である。また、CAND2の移動を適用した三次元点D2を第一カメラ画像I_1_Gに投影した座標PD21における画素は背景を表す画素である。一方、三次元点D2を座標PD21の奥行が無限遠であると仮定して第二カメラ画像I_2_Gに投影した座標PD22における画素も背景を表す画素である。
【0070】
したがって、CAND1の移動を適用した三次元点のステレオマッチングコストは、CAND2の移動を適用した三次元点のステレオマッチングコストより大きい。言い換えると、CAND1の移動を適用した場合、三次元点が第一カメラ画像I_1_Gの背景に投影されている可能性が低いため、CAND1の背景キャンセル項Dは、CAND2の背景キャンセル項Dより大きい。
【0071】
最後に、導出部104は、全ての解候補CANDに対応する、投影コスト導出部105が導出した投影コストCと、背景キャンセル項導出部106が導出した背景キャンセル項Dに変数λによって重みづけをした項との差分であるコストを導出する。なお、導出部104は、イテレーション回数jの増加にしたがって変数λを小さくすることで、探索範囲が小さくなるにしたがって、背景キャンセル項Dにより投影コストCが低下しなくなるようにしてもよい。また、導出部104は、例えば、exp(-D)Cのように、投影コストCを背景キャンセル項Dによって重みづけをし、正規化したコストを導出してもよい。
【0072】
最小化部107は、全ての解候補CANDの中から、導出部104が導出したコストが最小となる(yaw,pitch,roll,x,y,z)の組を最適解Aとして導出する。具体的には、最小化部107は、式(9)を用いて最適解Aを導出する。
【0073】
【0074】
また、最小化部107は、導出部104により導出されたコストが、投影コストCを背景キャンセル項Dによって重みづけをし、正規化したコストの場合、式(10)を用いて最適解Aを導出してもよい。
【0075】
【0076】
最小化部107は、導出した最適解Aを回転行列R_CURRENTと並進ベクトルT_CURRENTとに変換する。そして、最小化部107は、R_LAST及びT_LASTとR_CURRENT及びT_CURRENTとをアキュムレーションすることで、第一カメラ30Aと計測装置20との位置関係の回転行列R、及び第一カメラ30Aと計測装置20との位置関係の並進ベクトルTを導出する。具体的には、最小化部107は、式(11)及び式(12)を用いて回転行列Rと並進ベクトルTを導出する。なお、回転行列Rは3×3の回転行列であり、並進ベクトルTは三次元のベクトル(3×1次元の配列)である。
【0077】
【0078】
図11に、生成部103が、回転行列R及び並進ベクトルTを適用して三次元点群Pを第一カメラ画像I_1_Gに投影した場合の一例を示す。
図11に示すように、R及びTは最適解Aに対応しているため、これらの移動を適用した場合、
図7に示すように初期値を適用した場合に比べ、三次元点群Pが適切な位置(被写体上)に投影される。
【0079】
終了判定部108は、予め定められた終了条件を満たす場合、最小化部107が導出した回転行列R及び並進ベクトルTを出力する。一方、終了判定部108は、予め定められた終了条件を満たさない場合、生成部103に、最小化部107が導出した最適解Aに対応する解候補を生成させ、かつ、導出部104に、コストを繰り返し導出させる。なお、上記終了条件は任意の条件である。例えば、上記終了条件として、既定回数のイテレーションを実施したとの条件、又はR及びTの値が前回イテレーションの結果と比較して差分が閾値よりも小さいとの条件を適用してもよい。
【0080】
次に、位置関係導出装置10の作用について説明する。
【0081】
図12は、位置関係導出装置10による位置関係導出処理の流れを示すフローチャートである。CPU11がROM12又はストレージ14から位置関係導出プログラムを読み出して、RAM13に展開して実行することにより、位置関係導出処理が行なわれる。
【0082】
ステップS101で、CPU11は、イテレーション部101として、イテレーション回数jの初期値を0とする。
【0083】
ステップS102で、CPU11は、画像平滑化部102として、計測装置20が三次元点群Pを計測した時刻と同一の時刻に、第一カメラ30Aが撮影した第一カメラ画像I_1、及び上記同一の時刻に第二カメラ30Bが撮影した画像である第二カメラ画像I_2を入力として取得する。そして、CPU11は、画像平滑化部102として、取得した第一カメラ画像I_1及び第二カメラ画像I_2を平滑化した第一カメラ画像I_1_G及び第二カメラ画像I_2_Gを作成し、出力する。
【0084】
ステップS103で、CPU11は、生成部103として、前のイテレーションにおいて、後述するステップS108で導出された回転行列R及び並進ベクトルT、又は回転行列の初期値R_INIT及び並進ベクトルの初期値T_INITを取得する。そして、CPU11は、生成部103として、解空間において、R及びT又はR_INIT及びT_INITに対応する最適解Aを中心とした所定の探索範囲からサンプリングすることにより、第一カメラ30Aと計測装置20との位置関係の解候補CANDを生成する。
【0085】
ステップS104で、CPU11は、生成部103として、計測装置20により計測された三次元点群Pを取得する。そして、CPU11は、生成部103として、ステップS103で生成した解候補CANDと、カメラ内部パラメータK_1及びK_2とに基づいて、ステップS102で平滑化した第一カメラ画像I_1_G及び第二カメラ画像I_2_Gの各々に、三次元点群Pを投影する。
【0086】
ステップS105で、CPU11は、投影コスト導出部105として、三次元点群Pが投影された二次元点の位置の画素値に基づいて、ステップS103で生成した解候補CANDに対応する全ての投影コストCを導出する。
【0087】
ステップS106で、CPU11は、背景キャンセル項導出部106として、三次元点群Pが投影された二次元点の位置の画素値、及び第一カメラ画像I_1_Gに投影された二次元点の奥行きが無限遠であるとの仮定に基づいて、ステップS103で生成した解候補CANDに対応する全ての背景キャンセル項Dを導出する。
【0088】
ステップS107で、CPU11は、導出部104として、上記ステップS105で導出した投影コストCと、上記ステップS106で導出した背景キャンセル項Dとに基づいて、ステップS103で生成した解候補CANDに対応する全てのコストを導出する。
【0089】
ステップS108で、CPU11は、最小化部107として、ステップS103で生成した解候補CANDの中から、ステップS107で導出したコストが最小となる解候補を最適解Aとして導出し、対応する回転行列Rと並進ベクトルTを導出する。
【0090】
ステップS109で、CPU11は、終了判定部108として、終了条件を満たすか否かを判定する。CPU11は、ステップS109で肯定判定となった場合は本位置関係導出処理を終了し、否定判定となった場合はステップS110へ移行する。
【0091】
ステップS110で、CPU11は、イテレーション部101として、イテレーション回数jをインクリメントし、ステップS103に戻る。
【0092】
以上説明したように、本実施形態に係る位置関係導出装置は、三次元空間の各点の三次元位置を計測する計測装置が計測した三次元点群を、第一カメラと計測装置との位置関係の解候補に基づいて、計測装置が三次元点群を計測した時刻と同一の時刻に第一カメラが撮影した画像である第一カメラ画像に投影した位置における画素情報と、三次元点群を、解候補、及び第一カメラと第二カメラとの位置関係に基づいて、同一の時刻に第二カメラが撮影した画像である第二カメラ画像に投影した位置における画素情報との差分に応じたコストを導出する。位置関係導出装置は、コストが最小となる解候補を、第一カメラと計測装置との位置関係の最適解として導出する。これにより、キャリブレーションターゲット、又は多数の学習データ等の事前準備を必要とすることなく、カメラと三次元位置を計測する計測装置との位置関係を得ることができる。
【0093】
<変形例>
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【0094】
例えば、投影コスト導出部105の処理を省略してもよい。この場合、最小化部107は、生成部103が生成した解候補CANDの中から、背景キャンセル項Dが最小となる解候補を、最適解Aとして導出する。
【0095】
また、背景キャンセル項導出部106の処理を省略してもよい。この場合、最小化部107は、生成部103が生成した解候補CANDの中から、投影コストCが最小となる解候補を、最適解Aとして導出する。
【0096】
また、上記各実施形態でCPUがソフトウェア(プログラム)を読み込んで実行した各種処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、位置関係導出処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0097】
また、上記各実施形態では、位置関係導出プログラムがストレージ14に予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM(Compact Disk Read Only Memory)、DVD-ROM(Digital Versatile Disk Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の非一時的(non-transitory)記憶媒体に記憶された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【0098】
以上の実施形態に関し、更に以下の付記を開示する。
【0099】
(付記項1)
位置関係導出装置であって、
メモリと、
前記メモリに接続された少なくとも1つのプロセッサと、
を含み、
前記プロセッサは、
三次元空間の各点の三次元位置を計測する計測装置が計測した三次元点群を、第一カメラと前記計測装置との位置関係の解候補に基づいて、前記計測装置が前記三次元点群を計測した時刻と同一の時刻に前記第一カメラが撮影した画像である第一カメラ画像に投影した位置における画素情報と、前記三次元点群を、前記解候補、及び前記第一カメラと第二カメラとの位置関係に基づいて、前記同一の時刻に前記第二カメラが撮影した画像である第二カメラ画像に投影した位置における画素情報との差分に応じたコストを導出し、
前記コストが最小となる前記解候補を、前記第一カメラと前記計測装置との位置関係の最適解として導出する
ように構成される位置関係導出装置。
【0100】
(付記項2)
位置関係導出処理を実行するようにコンピュータによって実行可能なプログラムを記憶した非一時的記憶媒体であって、
前記位置関係導出処理は、
三次元空間の各点の三次元位置を計測する計測装置が計測した三次元点群を、第一カメラと前記計測装置との位置関係の解候補に基づいて、前記計測装置が前記三次元点群を計測した時刻と同一の時刻に前記第一カメラが撮影した画像である第一カメラ画像に投影した位置における画素情報と、前記三次元点群を、前記解候補、及び前記第一カメラと第二カメラとの位置関係に基づいて、前記同一の時刻に前記第二カメラが撮影した画像である第二カメラ画像に投影した位置における画素情報との差分に応じたコストを導出し、
前記コストが最小となる前記解候補を、前記第一カメラと前記計測装置との位置関係の最適解として導出する
非一時的記憶媒体。
【符号の説明】
【0101】
10 位置関係導出装置
11 CPU
12 ROM
13 RAM
14 ストレージ
17 通信I/F
19 バス
101 イテレーション部
102 画像平滑化部
103 生成部
104 導出部
105 投影コスト導出部
106 背景キャンセル項導出部
107 最小化部
108 終了判定部