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

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

▶ 三菱電機株式会社の特許一覧 ▶ 国立大学法人 東京大学の特許一覧

特許7214057データ処理装置、データ処理方法及びデータ処理プログラム
<>
  • 特許-データ処理装置、データ処理方法及びデータ処理プログラム 図1
  • 特許-データ処理装置、データ処理方法及びデータ処理プログラム 図2
  • 特許-データ処理装置、データ処理方法及びデータ処理プログラム 図3
  • 特許-データ処理装置、データ処理方法及びデータ処理プログラム 図4
  • 特許-データ処理装置、データ処理方法及びデータ処理プログラム 図5
  • 特許-データ処理装置、データ処理方法及びデータ処理プログラム 図6
  • 特許-データ処理装置、データ処理方法及びデータ処理プログラム 図7
  • 特許-データ処理装置、データ処理方法及びデータ処理プログラム 図8
  • 特許-データ処理装置、データ処理方法及びデータ処理プログラム 図9
  • 特許-データ処理装置、データ処理方法及びデータ処理プログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2023-01-19
(45)【発行日】2023-01-27
(54)【発明の名称】データ処理装置、データ処理方法及びデータ処理プログラム
(51)【国際特許分類】
   H04N 23/60 20230101AFI20230120BHJP
【FI】
H04N5/232
【請求項の数】 9
(21)【出願番号】P 2022554391
(86)(22)【出願日】2021-03-08
(86)【国際出願番号】 JP2021008985
【審査請求日】2022-09-08
【早期審査対象出願】
(73)【特許権者】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(73)【特許権者】
【識別番号】504137912
【氏名又は名称】国立大学法人 東京大学
(74)【代理人】
【識別番号】110002491
【氏名又は名称】弁理士法人クロスボーダー特許事務所
(72)【発明者】
【氏名】長谷川 雄史
(72)【発明者】
【氏名】岡登 洋平
(72)【発明者】
【氏名】大石 岳史
(72)【発明者】
【氏名】石川 涼一
【審査官】吉川 康男
(56)【参考文献】
【文献】特開2020-198074(JP,A)
【文献】特開2020-061651(JP,A)
【文献】特開2019-070983(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 5/232
(57)【特許請求の範囲】
【請求項1】
移動体に設置されている撮影機器により取得された撮影画像データを用いて算出された前記移動体の推定移動量を第1の移動量として取得する第1の移動量取得部と、
前記第1の移動量取得部による前記第1の移動量の取得に同期して、前記第1の移動量の推定精度よりも高い推定精度の前記移動体の推定移動量を第2の移動量として取得する第2の移動量取得部と、
前記第1の移動量と前記第2の移動量とを比較し、前記第1の移動量と前記第2の移動量との差が閾値未満である場合に、前記第1の移動量をキャリブレーション演算に用いることを決定する比較決定部とを有するデータ処理装置。
【請求項2】
前記第2の移動量取得部は、
前記移動体に設置されている3次元センサにより取得された3次元センサデータを用いて算出された前記移動体の推定移動量を前記第2の移動量として取得する請求項1に記載のデータ処理装置。
【請求項3】
前記第1の移動量取得部は、
前記撮影画像データを用いて算出された前記移動体の推定回転量が含まれる前記第1の移動量を取得し、
前記第2の移動量取得部は、
前記3次元センサデータを用いて算出された前記移動体の推定回転量が含まれる前記第2の移動量を取得し、
前記比較決定部は、
前記第1の移動量に含まれる前記移動体の推定回転量と、前記第2の移動量に含まれる前記移動体の推定回転量とを比較し、前記第1の移動量に含まれる前記移動体の推定回転量と前記第2の移動量に含まれる前記移動体の推定回転量との差が閾値未満である場合に、前記第1の移動量をキャリブレーション演算に用いることを決定する請求項2に記載のデータ処理装置。
【請求項4】
前記第2の移動量取得部は、
前記移動体に設置されている制御機器により計測された計測値を用いて算出された前記移動体の推定移動量を前記第2の移動量として取得する請求項1に記載のデータ処理装置。
【請求項5】
前記第1の移動量取得部は、
前記第1の移動量の取得を繰り返し、
前記第2の移動量取得部は、
前記第2の移動量の取得を繰り返し、
前記比較決定部は、
前記第1の移動量取得部による前記第1の移動量の取得及び前記第2の移動量取得部による前記第2の移動量の取得がある度に、前記第1の移動量と前記第2の移動量との比較を繰り返し、
前記第1の移動量と前記第2の移動量との比較を繰り返した結果、前記キャリブレーション演算に用いると決定された前記第1の移動量が複数ある場合に、複数の前記第1の移動量の中から、前記撮影機器の光軸を中心とする回転移動に対応する第1の移動量を選択する請求項1に記載のデータ処理装置。
【請求項6】
前記比較決定部は、
前記第1の移動量と前記第2の移動量との差が閾値未満である場合に、前記第1の移動量を、前記移動体に設置されている3次元センサと前記撮影機器との相対位置及び相対姿勢を算出するための、モーションベース手法によるキャリブレーション演算に用いることを決定する請求項1に記載のデータ処理装置。
【請求項7】
前記移動体は、AGV(Automatic Guided Vehicle)であり、
前記第1の移動量取得部は、
前記第1の移動量を算出する移動量算出装置に接続されており、前記移動量算出装置により算出された前記第1の移動量を取得し、
前記移動量算出装置は、
前記AGVが周回コースの走行開始位置から走行を開始した時点で前記撮影機器により取得された撮影画像データである走行開始撮影画像データと前記AGVが前記周回コースを一周して前記走行開始位置に戻ったと判定して走行を終了した時点で前記撮影機器により取得された撮影画像データである走行終了撮影画像データとが一致するか否かを判定し、
前記走行開始撮影画像データと前記走行終了撮影画像データとが一致する場合に、前記AGVが前記周回コースを一周する間に前記撮影機器により取得された複数の撮影画像データのうちのいずれかの撮影画像データを用いて前記AGVの推定移動量を前記第1の移動量として算出する請求項1に記載のデータ処理装置。
【請求項8】
コンピュータが、移動体に設置されている撮影機器により取得された撮影画像データを用いて算出された前記移動体の推定移動量を第1の移動量として取得し、
前記コンピュータが、前記第1の移動量の取得に同期して、前記第1の移動量の推定精度よりも高い推定精度の前記移動体の推定移動量を第2の移動量として取得し、
前記コンピュータが、前記第1の移動量と前記第2の移動量とを比較し、前記第1の移動量と前記第2の移動量との差が閾値未満である場合に、前記第1の移動量をキャリブレーション演算に用いることを決定するデータ処理方法。
【請求項9】
移動体に設置されている撮影機器により取得された撮影画像データを用いて算出された前記移動体の推定移動量を第1の移動量として取得する第1の移動量取得処理と、
前記第1の移動量取得処理による前記第1の移動量の取得に同期して、前記第1の移動量の推定精度よりも高い推定精度の前記移動体の推定移動量を第2の移動量として取得する第2の移動量取得処理と、
前記第1の移動量と前記第2の移動量とを比較し、前記第1の移動量と前記第2の移動量との差が閾値未満である場合に、前記第1の移動量を、キャリブレーション演算に用いることを決定する比較決定処理とをコンピュータに実行させるデータ処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、自動キャリブレーションに関する。
【背景技術】
【0002】
移動体には周辺環境を認識するために複数のセンサが設置されている。例えば、移動体の1つである車両には、センサとしてカメラ等の撮影機器、LiDAR(Light Detection and Ranging)等の3次元センサが設置されている。これら複数のセンサの検出結果を統合して車両の周辺環境を認識することができる。
センサの検出結果を正確に統合するためには、センサ間の相対的な位置及び姿勢を事前に算出しておく必要がある。このようなセンサ間の相対的な位置及び姿勢の算出を自動で行うことを自動キャリブレーションという。
【0003】
特許文献1では、自動キャリブレーションの精度を向上させるための技術が開示されている。より具体的には、特許文献1では、LiDARにより得られた3次元点群のうち、カメラから距離の近い3次元点群の重み付け(信頼度)を大きくし、距離の遠い3次元点群の重み付けを小さくする。このようにすることで、特許文献1では、自動キャリブレーションの精度を向上させる。
【先行技術文献】
【特許文献】
【0004】
【文献】国際公開WO2019/155719号
【発明の概要】
【発明が解決しようとする課題】
【0005】
自動キャリブレーションの手法には、アピアランスベース手法とモーションベース手法がある。
【0006】
アピアランスベース手法では、カメラ撮影画像のエッジ情報と、LiDARの3次元点群データを重畳させる。そして、エッジ情報と3次元点群データとのズレ量を検出することでキャリブレーションが行われる。アピアランスベース手法は移動体が走行中でもキャリブレーションが可能であるが、その一方で走行中の周辺環境に依存するため、ロバスト性が低い。
【0007】
モーションベース手法は、このロバスト性が低いという課題を改善することができる。モーションベース手法では、カメラの撮影画像データから算出した移動量と、LiDARの3次元点群データから算出した移動量とを比較する。そして、移動量の比較によりキャリブレーションが行われ、カメラとLiDARとの相対位置及び相対姿勢が算出される。カメラとLiDARとの相対位置及び相対姿勢は移動体が移動しても変動しないことから、移動量を比較することで、カメラとLiDARとの相対位置及び相対姿勢を算出することができる。
【0008】
一般的に、カメラの撮影画像データから算出された移動量はスケールが不明である。また、カメラの撮影画像データはLiDARの3次元点群データに比べて画像特徴点の検出精度が低い傾向にあるため、カメラの撮影画像データには大きな誤差が含まれる可能性がある。
このように、モーションベース手法において、カメラの撮影画像データの精度が低いと、正確なキャリブレーション演算ができず、正確な相対位置及び相対姿勢の算出ができないという課題がある。
【0009】
本開示は、上記のような課題を解決することを主な目的の一つとしている。より具体的には、本開示は、カメラの撮影画像データを用いた正確なキャリブレーション演算を可能にし、正確な相対位置及び相対姿勢の算出することを主な目的とする。
【課題を解決するための手段】
【0010】
本開示に係るデータ処理装置は、
移動体に設置されている撮影機器により取得された撮影画像データを用いて算出された前記移動体の推定移動量を第1の移動量として取得する第1の移動量取得部と、
前記第1の移動量取得部による前記第1の移動量の取得に同期して、前記第1の移動量の推定精度よりも高い推定精度の前記移動体の推定移動量を第2の移動量として取得する第2の移動量取得部と、
前記第1の移動量と前記第2の移動量とを比較し、前記第1の移動量と前記第2の移動量との差が閾値未満である場合に、前記第1の移動量をキャリブレーション演算に用いることを決定する比較決定部とを有する。
【発明の効果】
【0011】
本開示によれば、カメラの撮影画像データを用いて正確なキャリブレーション演算を行うことができ、このため、正確な相対位置及び相対姿勢を算出することができる。
【図面の簡単な説明】
【0012】
図1】実施の形態1に係るキャリブレーションシステムの構成例を示す図。
図2】実施の形態1に係るキャリブレーションシステムの別の構成例を示す図。
図3】実施の形態1に係るキャリブレーションシステムの別の構成例を示す図。
図4】実施の形態1に係るデータ処理装置のハードウェア構成例を示す図。
図5】実施の形態1に係るデータ処理装置の機能構成例を示す図。
図6】実施の形態1に係るデータ処理装置の動作例を示すフローチャート。
図7】実施の形態2に係るキャリブレーションシステムの構成例を示す図。
図8】実施の形態2に係るデータ処理装置の機能構成例を示す図。
図9】実施の形態2に係るデータ処理装置の動作例を示すフローチャート。
図10】実施の形態3に係るデータ処理装置の動作例を示すフローチャート。
【発明を実施するための形態】
【0013】
以下、実施の形態を図を用いて説明する。以下の実施の形態の説明及び図面において、同一の符号を付したものは、同一の部分又は相当する部分を示す。
【0014】
実施の形態1.
***構成の説明***
図1図2及び図3は、それぞれ、本実施の形態に係るキャリブレーションシステム1000の構成例を示す。
キャリブレーションシステム1000は、カメラ20と、LiDAR30と、データ処理装置100と、移動量算出装置200と、キャリブレーション装置300とで構成される。
【0015】
図1では、カメラ20と、LiDAR30と、データ処理装置100と、移動量算出装置200と、キャリブレーション装置300が、それぞれ車両10に設置されている。図1の構成では、データ処理装置100と移動量算出装置200とキャリブレーション装置300は例えば有線接続されている。
図2では、データ処理装置100はスマートフォン等の携帯端末装置である。このため、図2の構成では、データ処理装置100は車両10内で使用されることもあるし、車両10の外で使用されることもある。図2の構成では、データ処理装置100は、移動量算出装置200及びキャリブレーション装置300と無線接続される。
図3では、データ処理装置100及びキャリブレーション装置300は車両10の外に配置されている。図3の構成でも、データ処理装置100はスマートフォン等の携帯端末装置である。図3では、データ処理装置100は車両10の外に配置されているが、データ処理装置100は車両10内で使用されてもよい。図3の構成でも、データ処理装置100は、移動量算出装置200及びキャリブレーション装置300と無線接続される。
【0016】
以下では、図1の構成を前提に説明を進めるが、図2及び図3の構成に合わせた読み替えにより、以下の説明は、図2及び図3の構成にも適用される。
【0017】
図1において、カメラ20は車両10に設置され、車両10の走行に伴って一定の撮影周期で車両10の周辺環境を撮影して撮影画像データを取得する。例えば、カメラ20は、50ミリ秒周期で撮影を行う。撮影により得られた撮影画像データは移動量算出装置200に出力される。
カメラ20は撮影機器の例である。
【0018】
LiDAR30も車両10に設置され、車両10の走行に伴って車両10の周辺環境を撮像して3次元点群データを取得する。LiDAR30は、カメラ20に同期して(カメラ20の撮影周期と同一周期の撮像周期で)車両10の周辺環境を撮像する。例えば、LiDAR30は、50ミリ秒周期で撮像を行う。撮像により得られた3次元点群データは移動量算出装置200に出力される。
LiDAR30は、3次元センサの例である。また、LiDAR30により取得される3次元点群データは3次元センサデータの例である。
【0019】
なお、図1図3に示すカメラ20及びLiDAR30の設置位置は一例であり、カメラ20及びLiDAR30を図1図3に示す位置と異なる位置に設置してもよい。
【0020】
移動量算出装置200は、カメラ20から撮影画像データを取得する。そして、移動量算出装置200は、撮影画像データを用いて車両10の推定移動量を算出する。移動量算出装置200が算出する推定移動量には、カメラ20の回転ベクトルを中心とする車両10の回転移動の推定量(推定回転量)が含まれるものとする。
以下では、撮影画像データを用いて算出される車両10の推定移動量をカメラ移動量110という。カメラ移動量110は第1の移動量に相当する。
移動量算出装置200は、今回の撮影周期に取得した撮影画像データと前回の撮影周期に取得した撮影画像データとの比較から、撮影周期(例えば、50ミリ秒)における車両10の推定移動量であるカメラ移動量110を算出する。
移動量算出装置200は、具体的には、時系列画像間の対応関係を用いたVisual-SLAM(Simultaneous Localization and Mapping)によりカメラ移動量110を算出する。
【0021】
また、移動量算出装置200は、LiDAR30から3次元点群データを取得する。そして、移動量算出装置200は、3次元点群データを用いて車両10の推定移動量を算出する。移動量算出装置200が算出する推定移動量には、LiDAR30の回転ベクトルを中心とする車両10の回転移動の推定量(推定回転量)が含まれるものとする。
以下では、3次元点群データを用いて算出される車両10の推定移動量をLiDAR移動量120という。LiDAR移動量120は、カメラ移動量110よりも推定精度が高い。LiDAR移動量120は第2の移動量に相当する。
移動量算出装置200は、今回の撮像周期に取得した3次元点群データと前回の撮像周期に取得した3次元点群データとの比較から、撮像周期(例えば、50ミリ秒)における車両10の推定移動量であるLiDAR移動量120を算出する。具体的には、移動量算出装置200は、ICP(Iterative Closest Point)アルゴリズムを用いたLiDAR-SLAMによりLiDAR移動量120を算出する。
【0022】
移動量算出装置200は、算出したカメラ移動量110及びLiDAR移動量120をデータ処理装置100に出力する。
また、移動量算出装置200は、撮影画像データのID(Identifier)もデータ処理装置100に出力する。撮影画像データのIDを、以下では、撮影画像データID130という。
【0023】
データ処理装置100は、移動量算出装置200からカメラ移動量110及びLiDAR移動量120を取得する。また、データ処理装置100は、移動量算出装置200から撮影画像データID130も取得する。
データ処理装置100は、カメラ移動量110とLiDAR移動量120とを比較して、カメラ移動量110が後述するキャリブレーション装置300でのキャリブレーション演算に適するか否かを判定する。カメラ移動量110がキャリブレーション演算に適する場合は、カメラ移動量110をキャブレーション演算に用いることを決定する。そして、データ処理装置100は、カメラ移動量110とLiDAR移動量120と撮影画像データID130をキャリブレーション装置300に出力する。
【0024】
キャリブレーション装置300は、カメラ移動量110とLiDAR移動量120と、撮影画像データID130で特定される撮影画像データと、当該撮影画像データと同時刻に得られた3次元点群データとを用いて、モーションベース手法によるキャリブレーション演算を行う。
キャリブレーション装置300は、キャリブレーション演算により、カメラ20とLiDAR30との相対位置及び相対姿勢を算出することができる。なお、キャリブレーション装置300は、例えば、移動量算出装置200から、撮影画像データID130で特定される撮影画像データと、当該撮影画像データと同時刻に得られた3次元点群データとを取得することができるものとする。
キャリブレーション装置300は、キャリブレーション演算として、主に以下を行う。
キャリブレーション装置300は、まず、カメラ20とLiDAR30の座標系を大まかに合わせ、2D-3Dマッチングを行う。2D-3Dマッチングは、カメラ20の撮影画像データから検出した画像特徴点と、LiDAR30の3次元点群データの3次元点群との対応関係を探索する処理である。
【0025】
図4は、本実施の形態に係るデータ処理装置100のハードウェア構成例を示す。
図5は、本実施の形態に係るデータ処理装置100の機能構成例を示す。
まず、図4を参照して、データ処理装置100のハードウェア構成例を説明する。
【0026】
本実施の形態に係るデータ処理装置100は、コンピュータである。
なお、データ処理装置100の動作手順は、データ処理方法に相当する。また、データ処理装置100の動作を実現するプログラムは、データ処理プログラムに相当する。
データ処理装置100は、ハードウェアとして、プロセッサ901、主記憶装置902、補助記憶装置903及び通信装置904を備える。
また、データ処理装置100は、機能構成として、図5に示すように、カメラ移動量取得部101、LiDAR移動量取得部102及び比較決定部103を備える。
補助記憶装置903には、カメラ移動量取得部101、LiDAR移動量取得部102及び比較決定部103の機能を実現するプログラムが記憶されている。
これらプログラムは、補助記憶装置903から主記憶装置902にロードされる。そして、プロセッサ901がこれらプログラムを実行して、後述するカメラ移動量取得部101、LiDAR移動量取得部102及び比較決定部103の動作を行う。
図3では、プロセッサ901がカメラ移動量取得部101、LiDAR移動量取得部102及び比較決定部103の機能を実現するプログラムを実行している状態を模式的に表している。
通信装置904は、移動量算出装置200及びキャリブレーション装置300と通信を行う。
【0027】
次に、図5を参照して、本実施の形態に係るデータ処理装置100の機能構成例を説明する。
【0028】
カメラ移動量取得部101は、移動量算出装置200からカメラ移動量110と撮影画像データID130を取得する。カメラ移動量取得部101は、取得したカメラ移動量110と撮影画像データID130を比較決定部103に出力する。
カメラ移動量取得部101は、第1の移動量取得部に相当する。また、カメラ移動量取得部101により行われる処理は、第1の移動量取得処理に相当する。
【0029】
LiDAR移動量取得部102は、移動量算出装置200からLiDAR移動量120を取得する。LiDAR移動量取得部102は、取得したLiDAR移動量120を比較決定部103に出力する。
LiDAR移動量取得部102は、第2の移動量取得部に相当する。また、LiDAR移動量取得部102により行われる処理は、第2の移動量取得処理に相当する。
【0030】
比較決定部103は、カメラ移動量110とLiDAR移動量120とを比較し、カメラ移動量110とLiDAR移動量120との差が閾値未満である場合に、カメラ移動量110を、キャリブレーション装置300でのキャリブレーション演算に用いることを決定する。
そして、比較決定部103は、カメラ移動量110とLiDAR移動量120と撮影画像データID130をキャリブレーション装置300に出力する。
比較決定部103により行われる処理は、比較決定処理に相当する。
【0031】
***動作の説明***
次に、図6を参照して、本実施の形態に係るデータ処理装置100の動作例を説明する。
なお、データ処理装置100は、図6に示す動作を、撮影周期及び撮像周期が到来する度に繰り返す。
【0032】
ステップS101において、カメラ移動量取得部101がカメラ移動量110と撮影画像データID130を取得する。カメラ移動量取得部101は、取得したカメラ移動量110と撮影画像データID130を比較決定部103に出力する。
また、並行して、ステップS102において、LiDAR移動量取得部102がLiDAR移動量120を取得する。LiDAR移動量取得部102は、取得したLiDAR移動量120を比較決定部103に出力する。
【0033】
次に、ステップS103において、比較決定部103が、カメラ移動量110とLiDAR移動量120とを比較する。
具体的には、比較決定部103は、カメラ移動量110に含まれる推定回転量と、LiDAR移動量120に示される推定回転量とを比較する。
カメラ20とLiDAR30は回転移動時の回転ベクトル周りの回転移動量が等しい。また、LiDAR30の推定回転量はカメラ20の推定回転量よりも精度が高い。このため、比較決定部103は、LiDAR移動量120を正解値として、カメラ移動量110に含まれる推定回転量をLiDAR移動量120に含まれる推定回転量と比較する。
【0034】
カメラ移動量110とLiDAR移動量120との差が閾値未満であれば(ステップS104でYES)、処理がステップS105に進む。一方、カメラ移動量110とLiDAR移動量120との差が閾値以上であれば(ステップS104でNO)、処理が終了する。
【0035】
ステップS105では、比較決定部103は、カメラ移動量110をキャリブレーション演算に用いることを決定する。
つまり、カメラ移動量110とLiDAR移動量120との差が小さければ、カメラ移動量110の精度が高いと考えられるので、比較決定部103は、カメラ移動量110をキャリブレーション演算に用いることを決定する。
【0036】
そして、ステップS106において、比較決定部103は、カメラ移動量110とLiDAR移動量120と撮影画像データID130をキャリブレーション装置300に出力する。
【0037】
キャリブレーション装置300は、カメラ移動量110とLiDAR移動量120と撮影画像データID130を取得する。
そして、キャリブレーション装置300は撮影画像データID130を移動量算出装置200に出力する。移動量算出装置200は、キャリブレーション装置300から取得した撮影画像データID130で特定される撮影画像データと、当該撮影画像データと同時刻に撮像された3次元点群データをキャリブレーション装置300に出力する。
次に、キャリブレーション装置300は、以下の、モーションベース手法によるキャリブレーション演算を行う。
【0038】
(1)キャリブレーション装置300は、カメラ移動量110とLiDAR移動量120から、カメラ20とLiDAR30との相対位置及び相対姿勢を算出する。しかしながら、この相対位置及び相対姿勢は誤差を含むため、キャリブレーション装置300は、以下の2D-3Dマッチングにより誤差を補正する。
【0039】
(2)キャリブレーション装置300は、算出した誤差を含む相対位置及び相対姿勢を用いた座標変換を行い、カメラ20とLiDAR30の座標系を一致させる。
【0040】
(3)次に、キャリブレーション装置300は、座標原点と撮影画像データ内の特徴点とを結ぶ直線を描く。当該撮影画像データは移動量算出装置200から取得したものである。
【0041】
(4)更に、キャリブレーション装置300は、LiDAR30で計測した3次元点群から3次元形状(ポリゴン面等)を生成する。
【0042】
(5)次に、キャリブレーション装置300は、座標原点と特徴点とを結ぶ直線と3次元形状との交点を求める。この交点を2D-3D対応点という。
(6)更に、キャリブレーション装置300は、2D-3D対応点を用いて、撮影画像データ内の特徴点を2次元座標情報から3次元座標情報に変換する。
【0043】
(7)また、キャリブレーション装置300は、変換により得られた3次元座標情報からカメラ20の推定移動量を算出する。
【0044】
(8)そして、キャリブレーション装置300は、上記の(7)で算出したカメラ20の推定移動量とLiDAR移動量120から、カメラ20とLiDAR30との相対位置及び相対姿勢を算出する。
【0045】
(9)次に、キャリブレーション装置300は、(8)の処理で得られた相対位置及び相対姿勢の、(1)の処理で得られた相対位置及び相対姿勢からの変化量を評価する。
変化量が閾値以上である場合は、より精度の高い相対位置及び相対姿勢を算出できる可能性があるため、キャリブレーション装置300は、(8)の処理で算出された相対位置及び相対姿勢を用いて(2)~(8)の処理を再度行う。一方、変化量が閾値未満であれば、(8)の処理で得られた相対位置及び相対姿勢を出力する。
【0046】
(10)上記の(2)~(8)の処理を再度行った場合は、キャリブレーション装置300は、最後の(8)の処理で得られた相対位置及び相対姿勢の、1つ前の(8)の処理で得られた相対位置及び相対姿勢からの変化量を評価する。
変化量が閾値以上である場合は、より精度の高い相対位置及び相対姿勢を算出できる可能性があるため、キャリブレーション装置300は、(8)の処理で算出された相対位置及び相対姿勢を用いて(2)~(8)の処理を再度行う。一方、変化量が閾値未満であれば、(8)の処理で得られた相対位置及び相対姿勢を出力する。
【0047】
このように、キャリブレーション装置300は、(2)~(8)の処理を繰り返すことにより、相対位置及び相対姿勢の精度を徐々に向上させることができる。
【0048】
***実施の形態の効果の説明***
本実施の形態では、データ処理装置100が、LiDAR移動量120との比較により、精度が高いカメラ移動量110を選択する。そして、キャリブレーション装置300は、データ処理装置100により選択されたカメラ移動量110を用いてキャリブレーション演算を行う。このため、本実施の形態によれば、カメラ移動量110を用いた正確なキャリブレーション演算が可能であり、このため、正確な相対位置及び相対姿勢を算出することができる。
キャリブレーション装置300に入力されるカメラ20の推定移動量の精度が低い場合は、2D-3D対応点の誤差が大きい。このため、キャリブレーション装置300が(2)~(8)の処理を繰り返しても相対位置及び相対姿勢の評価結果が収束せずに、相対位置及び相対姿勢の算出精度が向上しない。
本実施の形態では、精度が高いカメラ移動量110を用いることができるため、キャリブレーション装置300が(2)~(8)の処理を繰り返すことにより、精度の高い相対位置及び相対姿勢の算出することができる。
【0049】
なお、以上では、移動体の例として車両10を用いて説明を行った。しかし、以上の説明は、船舶、航空機、ヘリコプター、ドローン、人等の他の移動体にも適用可能である。
【0050】
また、以上では、3次元センサの例としてLiDAR30を用いて説明を行った。3次元センサとしてLiDAR30に代えてミリ波センサ、ソナー等の他の種類のセンサを用いることができる。
【0051】
また、以上では、データ処理装置100がキャリブレーション装置300に撮影画像データID130に出力し、キャリブレーション装置300が撮影画像データID130に基づき移動量算出装置200から撮影画像データと3次元点群データを取得することとした。移動量算出装置200が、撮影画像データID130に代えて撮影画像データと3次元点群データをデータ処理装置100に出力し、データ処理装置100がカメラ移動量110をキャリブレーション演算に用いると決定した場合に、データ処理装置100が、カメラ移動量110とLiDAR移動量120と撮影画像データと3次元点群データをキャリブレーション装置300に出力するようにしてもよい。
【0052】
実施の形態2.
本実施の形態では、主に実施の形態1との差異を説明する。
なお、以下で説明していない事項は、実施の形態1と同様である。
【0053】
***構成の説明***
図7は、本実施の形態に係るキャリブレーションシステム1000の構成例を示す。
図7では、図1と比較して、制御機器40が追加されている。
制御機器40は、車両10の制御を行う。制御機器40は、車両10の制御に際して、カメラ20に同期して(カメラ20の撮影周期と同一周期の計測周期で)、車両10の速度及び進行方向角度を計測する。そして、制御機器40は、速度及び進行方向角度の計測値を移動量算出装置200に出力する。
【0054】
本実施の形態では、移動量算出装置200は、制御機器40から取得した速度及び進行方向角度の計測値を用いて、計測周期(例えば、50ミリ秒間)における車両10の推定移動量を算出する。以下では、速度及び進行方向角度の計測値を用いて算出される車両10の推定移動量を計測値移動量140という。計測値移動量140は、カメラ移動量110よりも推定精度が高い。計測値移動量140にも推定回転量が含まれているものとする。
本実施の形態では、計測値移動量140が第2の移動量に相当する。
【0055】
本実施の形態では、データ処理装置100は、移動量算出装置200からカメラ移動量110とLiDAR移動量120と撮影画像データID130と計測値移動量140を取得する。
データ処理装置100は、カメラ移動量110と計測値移動量140とを比較して、カメラ移動量110がキャリブレーション装置300でのキャリブレーション演算に適するか否かを判定する。カメラ移動量110がキャリブレーション演算に適する場合は、カメラ移動量110をキャブレーション演算に用いることを決定する。そして、データ処理装置100は、カメラ移動量110とLiDAR移動量120と撮影画像データID130をキャリブレーション装置300に出力する。
【0056】
キャリブレーション装置300は、実施の形態1に示したものと同じである。
【0057】
なお、本実施の形態に係るキャリブレーションシステム1000を、図2及び図3に制御機器40を追加した構成により実現してもよい。
以下では、図7の構成を前提に説明を進めるが、図2及び図3の構成に合わせた読み替えにより、以下の説明は、図2及び図3に制御機器40を追加した構成にも適用される。
【0058】
図8は、本実施の形態に係るデータ処理装置100の機能構成例を示す。
【0059】
図8に示すデータ処理装置100では、図5に示すLiDAR移動量取得部102に代えて計測値移動量取得部104が含まれる。
計測値移動量取得部104は、計測値移動量140を移動量算出装置200から取得する。計測値移動量取得部104は、取得した計測値移動量140を比較決定部103に出力する。
本実施の形態では、計測値移動量140が第2の移動量取得部に相当する。また、計測値移動量取得部104により行われる処理は、第2の移動量取得処理に相当する。
【0060】
本実施の形態では、カメラ移動量取得部101は、カメラ移動量110とLiDAR移動量120と撮影画像データID130を取得する。カメラ移動量取得部101は、取得したカメラ移動量110とLiDAR移動量120と撮影画像データID130を比較決定部103に出力する。
【0061】
比較決定部103は、カメラ移動量110と計測値移動量140とを比較し、カメラ移動量110と計測値移動量140との差が閾値未満である場合に、カメラ移動量110を、キャリブレーション装置300でのキャリブレーション演算に用いることを決定する。
そして、比較決定部103は、カメラ移動量110とLiDAR移動量120と撮影画像データID130をキャリブレーション装置300に出力する。
【0062】
***動作の説明***
次に、図9を参照して、本実施の形態に係るデータ処理装置100の動作例を説明する。
なお、データ処理装置100は、図9に示す動作を、撮影周期、撮像周期及び計測周期が到来する度に繰り返す。
【0063】
ステップS201において、カメラ移動量取得部101がカメラ移動量110とLiDAR移動量120と撮影画像データID130を取得する。カメラ移動量取得部101は、取得したカメラ移動量110とLiDAR移動量120と撮影画像データID130を比較決定部103に出力する。
また、並行して、ステップS202において、計測値移動量取得部104が計測値移動量140を取得する。計測値移動量取得部104は、取得した計測値移動量140を比較決定部103に出力する。
【0064】
次に、ステップS203において、比較決定部103が、カメラ移動量110と計測値移動量140とを比較する。より具体的には、比較決定部103は、カメラ移動量110に含まれる推定回転量と計測値移動量140に含まれる推定回転量とを比較する。
【0065】
カメラ移動量110と計測値移動量140との差が閾値未満であれば(ステップS204でYES)、処理がステップS205に進む。一方、カメラ移動量110と計測値移動量140との差が閾値以上であれば(ステップS204でNO)、処理が終了する。
【0066】
ステップS205では、比較決定部103は、カメラ移動量110をキャリブレーション演算に用いることを決定する。
つまり、カメラ移動量110と計測値移動量140との差が小さければ、カメラ移動量110の精度が高いと考えられるので、比較決定部103は、カメラ移動量110をキャリブレーション演算に用いることを決定する。
【0067】
そして、ステップS206において、比較決定部103は、カメラ移動量110とLiDAR移動量120と撮影画像データID130をキャリブレーション装置300に出力する。
【0068】
キャリブレーション装置300の動作は実施の形態1と同じであるため、キャリブレーション装置300の動作の説明は省略する。
【0069】
なお、データ処理装置100のハードウェア構成例は、図4に示すとおりである。本実施の形態では、LiDAR移動量取得部102の機能を実現するプログラムの代わりに計測値移動量取得部104の機能を実現するプログラムがプロセッサ911により実行される。
【0070】
***実施の形態の効果の説明***
本実施の形態によれば、計測値移動量140を用いても、実施の形態1と同様に、正確な相対位置及び相対姿勢を算出することができる。
【0071】
実施の形態3.
本実施の形態では、主に実施の形態1との差異を説明する。
なお、以下で説明していない事項は、実施の形態1と同様である。
【0072】
本実施の形態では、データ処理装置100は、LiDAR移動量120との差が閾値未満の複数のカメラ移動量110の中から、キャリブレーション演算に用いるカメラ移動量110を選択する。
【0073】
なお、本実施の形態に係るデータ処理装置100のハードウェア構成例及び機能構成は図4及び図5に示すとおりである。
【0074】
次に、図10を参照して、本実施の形態に係るデータ処理装置100の動作例を説明する。
【0075】
ステップS101~S105は図6に示したものと同じであるため、説明を省略する。
なお、本実施の形態では、比較決定部103は、カメラ移動量110をキャリブレーション演算に用いることを決定しても、カメラ移動量110をキャリブレーション装置300に出力しない。比較決定部103は、例えば、カメラ移動量110とLiDAR移動量120と撮影画像データID130を相互に関連付けて補助記憶装置903に格納する。
【0076】
ステップS301において、比較決定部103は、キャリブレーション演算に用いることを決定したカメラ移動量110の数が既定の目標数に達したか否かを判定する。目標数は2以上の任意の数である。
キャリブレーション演算に用いることを決定したカメラ移動量110の数が目標数に達している場合は、処理がステップS302に進む。一方、キャリブレーション演算に用いることを決定したカメラ移動量110の数が目標数に達していない場合は、比較決定部103は、カメラ移動量取得部101によるカメラ移動量110と撮影画像データID130の取得と、LiDAR移動量取得部102によるLiDAR移動量120の取得を待つ。
【0077】
ステップS302において、比較決定部103は、キャリブレーション演算に用いることを決定したカメラ移動量110の中に、カメラ20の光軸を中心とする回転移動に対応するカメラ移動量110があるか否かを判定する。
キャリブレーション演算に用いることを決定したカメラ移動量110の中に、カメラ20の光軸を中心とする回転移動に対応するカメラ移動量110がある場合は、処理がステップS303に進む。一方、キャリブレーション演算に用いることを決定したカメラ移動量110の中に、カメラ20の光軸を中心とする回転移動に対応するカメラ移動量110がない場合は、処理が終了する。
【0078】
ステップS303では、比較決定部103は、カメラ20の光軸を中心とする回転移動に対応するカメラ移動量110をキャリブレーション演算の対象として選択する。つまり、データ処理装置100は、並進移動成分が少ないカメラ移動量110をキャリブレーション演算の対象として選択する。
カメラ移動量110に含まれる並進ベクトルはキャリブレーション誤差の低減効果が低い。つまり、カメラ移動量110に含まれる並進ベクトルは、2D-3Dマッチングの精度の向上に寄与しない。一方で、カメラ20の光軸を中心とする回転移動に対応するカメラ移動量110は、キャリブレーション精度を向上させることができる。
このため、比較決定部103は、カメラ20の光軸を中心とする回転移動に対応するカメラ移動量110を、キャリブレーション演算の対象として選択する。
具体的には、比較決定部103は、カメラ移動量110の並進ベクトルの長さの比を比較して、並進ベクトルの短い順にロール、ピッチ、ヨー方向の各方向でカメラ移動量110を既定数選択することが考えられる。
【0079】
次に、ステップS304において、比較決定部103は、ステップS303で選択したカメラ移動量110と、当該カメラ移動量110と関連付けられているLiDAR移動量120と撮影画像データID130をキャリブレーション装置300に出力する。
【0080】
本実施の形態では、データ処理装置100が、キャリブレーション精度を向上させるカメラ移動量110を選択し、選択したカメラ移動量110をキャリブレーション装置300に出力する。このため、実施の形態1よりも高精度に相対位置及び相対姿勢を算出することができる。
【0081】
なお、本実施の形態では、実施の形態1と同様に、データ処理装置100がカメラ移動量110とLiDAR移動量120を比較することを説明したが、実施の形態2のように、データ処理装置100がカメラ移動量110と計測値移動量140を比較してもよい。
【0082】
実施の形態4.
本実施の形態では、主に実施の形態1との差異を説明する。
なお、以下で説明していない事項は、実施の形態1と同様である。
【0083】
本実施の形態では、車両10は小型モビリティであるAGV(Automatic Guided Vehicle)である。
衝撃センサ等でカメラ20及び/又はLiDAR30の設置位置のズレを検出した際に、AGVは、自動キャリブレーションに必要なスペース(以下、キャリブレーションスペースという)を検出する。そして、AGVに搭載されているキャリブレーション装置300が、キャリブレーションスペースでの走行により得られたカメラ移動量110とLiDAR移動量120を用いてキャリブレーション演算を実施することで、早急に設置位置のズレの補正を行うことができる。
自動キャリブレーションでは、回転移動時のカメラ移動量110及びLiDAR移動量120が重要である。このため、AGVは、キャリブレーションスペースにおいて回転移動を伴う周回コースを走行することが望ましい。この点、AGVは、大型車両と比較して、走行時の小回りが得意である。
【0084】
本実施の形態では、AGVは、周回コースを一周するものとする。つまり、AGVは、周回コースのいずれかの位置を走行開始位置に設定し、周回コースを一周して走行開始位置に戻ってくる。AGVが走行開始位置まで戻ることで、カメラ20の撮影画像データから算出されるカメラ移動量110の算出精度を評価可能である。本評価では、カメラ移動量110からAGVの移動軌跡を生成し、移動軌跡の終了位置が走行開始位置に正確に戻っているかを評価することが考えられる。
【0085】
また、本実施の形態では、移動量算出装置200は、走行開始撮影画像データと走行終了撮影画像データとが一致するか否かを判定する。走行開始撮影画像データは、AGVが周回コースの走行開始位置から走行を開始した時点でカメラ20により取得された撮影画像データである。また、走行終了撮影画像データは、AGVが周回コースを一周して走行開始位置に戻ったと判定して走行を終了した時点でカメラ20により取得された撮影画像データである。走行開始撮影画像データと走行終了撮影画像データとが一致する場合に、移動量算出装置200は、AGVが周回コースを一周する間にカメラ20により取得された複数の撮影画像データのうちのいずれかの撮影画像データを用いてAGVの推定移動量をカメラ移動量110として算出する。
なお、この場合に、走行開始位置に目印となるIDタグを置いてもよい。走行開始位置にIDタグ等の目印を置くことで、走行開始撮影画像データと走行終了撮影画像データの比較が容易となる。また、AGVの充電設備を走行開始位置としてもよい。
【0086】
また、AGVの走行前に予めキャリブレーションスペースを探索しておき、探索の結果得られたキャリブレーションスペースの位置情報をAGV内に保管しておいてもよい。
【0087】
以上、実施の形態1~4を説明したが、これらの実施の形態のうち、2つ以上を組み合わせて実施しても構わない。
あるいは、これらの実施の形態のうち、1つを部分的に実施しても構わない。
あるいは、これらの実施の形態のうち、2つ以上を部分的に組み合わせて実施しても構わない。
また、これらの実施の形態に記載された構成及び手順を必要に応じて変更してもよい。
【0088】
***ハードウェア構成の補足説明***
最後に、データ処理装置100のハードウェア構成の補足説明を行う。
図4に示すプロセッサ901は、プロセッシングを行うIC(Integrated Circuit)である。
プロセッサ901は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)等である。
図4に示す主記憶装置902は、RAM(Random Access Memory)である。
図4に示す補助記憶装置903は、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)等である。
図4に示す通信装置904は、データの通信処理を実行する電子回路である。
通信装置904は、例えば、通信チップ又はNIC(Network Interface Card)である。
【0089】
また、補助記憶装置903には、OS(Operating System)も記憶されている。
そして、OSの少なくとも一部がプロセッサ901により実行される。
プロセッサ901はOSの少なくとも一部を実行しながら、カメラ移動量取得部101、LiDAR移動量取得部102、比較決定部103及び計測値移動量取得部104の機能を実現するプログラムを実行する。
プロセッサ901がOSを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、カメラ移動量取得部101、LiDAR移動量取得部102、比較決定部103及び計測値移動量取得部104の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、主記憶装置902、補助記憶装置903、プロセッサ901内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、カメラ移動量取得部101、LiDAR移動量取得部102、比較決定部103及び計測値移動量取得部104の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記録媒体に格納されていてもよい。そして、カメラ移動量取得部101、LiDAR移動量取得部102、比較決定部103及び計測値移動量取得部104の機能を実現するプログラムが格納された可搬記録媒体を流通させてもよい。
【0090】
また、カメラ移動量取得部101、LiDAR移動量取得部102、比較決定部103及び計測値移動量取得部104の「部」を、「回路」又は「工程」又は「手順」又は「処理」又は「サーキットリー」に読み替えてもよい。
また、データ処理装置100は、処理回路により実現されてもよい。処理回路は、例えば、ロジックIC(Integrated Circuit)、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)である。
この場合は、カメラ移動量取得部101、LiDAR移動量取得部102、比較決定部103及び計測値移動量取得部104は、それぞれ処理回路の一部として実現される。
なお、本明細書では、プロセッサと処理回路との上位概念を、「プロセッシングサーキットリー」という。
つまり、プロセッサと処理回路とは、それぞれ「プロセッシングサーキットリー」の具体例である。
【符号の説明】
【0091】
10 車両、20 カメラ、30 LiDAR、40 制御機器、100 データ処理装置、101 カメラ移動量取得部、102 LiDAR移動量取得部、103 比較決定部、104 計測値移動量取得部、110 カメラ移動量、120 LiDAR移動量、130 撮影画像データID、140 計測値移動量、200 移動量算出装置、300 キャリブレーション装置、901 プロセッサ、902 主記憶装置、903 補助記憶装置、904 通信装置、1000 キャリブレーションシステム。
【要約】
カメラ移動量取得部(101)は、車両(10)に設置されているカメラ(20)により取得された撮影画像データを用いて算出された車両(10)の推定移動量をカメラ移動量(110)として取得する。LiDAR移動量取得部(102)は、カメラ移動量取得部(101)によるカメラ移動量(110)の取得に同期して、カメラ移動量(110)の推定精度よりも高い推定精度の車両(10)の推定移動量をLiDAR移動量(120)として取得する。比較決定部(103)は、カメラ移動量(110)とLiDAR移動量(120)とを比較し、カメラ移動量(110)とLiDAR移動量(120)との差が閾値未満である場合に、カメラ移動量(110)をキャリブレーション演算に用いることを決定する。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10