(58)【調査した分野】(Int.Cl.,DB名)
画像点群シーケンスを取得するステップであって、上記画像点群シーケンスは少なくとも一組の同時刻に取り込まれた初期画像と点群データを含み、初期画像は無人運転車両に取り付けられたカメラにより取り込まれ、点群データは無人運転車両に取り付けられたレーダにより取り込まれる、ステップと、
上記画像点群シーケンスに基づいて上記無人運転車両の実走行軌跡を確定するステップと、
上記実走行軌跡における、上記画像点群シーケンスの各組の画像点群における初期画像に対応する位置点を確定し、上記画像点群シーケンスに対応する位置点シーケンスを得るステップと、
上記位置点シーケンスにおける位置点について、該位置点において、上記初期画像に対応する目標点群データを取得するステップと、
目標点群データと上記画像点群シーケンスにおける対応する初期画像とをマッチングして、上記カメラの補正パラメータを確定するステップと、
を含む、カメラをキャリブレーションするための方法。
画像点群シーケンスを取得するように構成される画像点群シーケンス取得ユニットであって、上記画像点群シーケンスは少なくとも一組の同時刻に取り込まれた初期画像と点群データを含み、初期画像は無人運転車両に取り付けられたカメラにより取り込まれ、点群データは無人運転車両に取り付けられたレーダにより取り込まれる、画像点群シーケンス取得ユニットと、
上記画像点群シーケンスにおける各組の画像点群に対応する上記初期画像の目標点群データを確定するように構成される目標点群データ確定ユニットと、
目標点群データと上記画像点群シーケンスにおける対応する初期画像とをマッチングして、上記カメラの補正パラメータを確定するように構成される補正パラメータ取得ユニットと、を備え、
上記目標点群データ確定ユニットは、
上記画像点群シーケンスに基づいて上記無人運転車両の実走行軌跡を確定するように構成される実走行軌跡確定サブユニットと、
上記実走行軌跡における、上記画像点群シーケンスの各組の画像点群における初期画像に対応する位置点を確定し、上記画像点群シーケンスに対応する位置点シーケンスを得るように構成される位置点確定サブユニットと、
上記位置点シーケンスにおける位置点について、該位置点において上記初期画像に対応する目標点群データを取得するように構成される目標点群データ取得サブユニットと、を備える、カメラをキャリブレーションするための装置。
【発明の概要】
【課題を解決するための手段】
【0004】
本開示の実施例はカメラをキャリブレーションするための方法及び装置を提供する。
【0005】
第1態様において、本開示の実施例は、カメラをキャリブレーションするための方法を提供し、該方法は、画像点群シーケンスを取得するステップであって、上記画像点群シーケンスは少なくとも一組の同時刻に取り込まれた初期画像と点群データを含み、初期画像は無人運転車両に取り付けられたカメラにより取り込まれ、点群データは無人運転車両に取り付けられたレーダにより取り込まれる、ステップと、上記画像点群シーケンスにおける各組の画像点群に対応する上記初期画像の目標点群データを確定するステップと、目標点群データと上記画像点群シーケンスにおける対応する初期画像とをマッチングして、上記カメラの補正パラメータを確定するステップと、を含む。
【0006】
いくつかの実施例において、上記画像点群シーケンスは、無人運転車両が直線に沿って等速で走行し、無人運転車両に取り付けられた上記カメラにより設定時間おきに画像を取り込み、無人運転車両に取り付けられたレーダにより上記設定時間おきに点群データを取り込むように取得される。
【0007】
いくつかの実施例において、上記画像点群シーケンスにおける各組の画像点群に対応する上記初期画像の目標点群データを確定するステップは、上記画像点群シーケンスに基づいて上記無人運転車両の実走行軌跡を確定するステップと、上記実走行軌跡における、上記画像点群シーケンスの各組の画像点群における初期画像に対応する位置点を確定し、上記画像点群シーケンスに対応する位置点シーケンスを得るステップと、上記位置点シーケンスにおける位置点について、該位置点において上記初期画像に対応する目標点群データを取得するステップと、を含む。
【0008】
いくつかの実施例において、上記画像点群シーケンスに基づいて上記無人運転車両の実走行軌跡を確定するステップは、上記画像点群シーケンスにおける各組の画像点群に含まれる点群データに基づいて、上記無人運転車両の3次元空間におけるマーク点を確定し、上記点群データシーケンスに対応するマーク点シーケンスを得るステップと、上記マーク点シーケンスにおけるマーク点の順位に基づいてマーク点をフィッティングし、上記無人運転車両の実走行軌跡を得るステップと、を含む。
【0009】
いくつかの実施例において、上記画像点群シーケンスにおける各組の画像点群に含まれる点群データに基づいて、上記無人運転車両の3次元空間におけるマーク点を確定するステップは、点群データの3次元空間における角度情報を確定し、上記角度情報に基づいて上記無人運転車両の3次元空間におけるマーク点を確定するステップを含む。
【0010】
いくつかの実施例において、上記実走行軌跡における、上記画像点群シーケンスの各組の画像点群における初期画像に対応する位置点を確定するステップは、上記マーク点を対応する各組の画像点群における初期画像の位置点に設定するステップを含む。
【0011】
いくつかの実施例において、該位置点において上記初期画像に対応する目標点群データを取得するステップは、3次元空間の上記マーク点において目標点群データを取得するステップを含む。
【0012】
いくつかの実施例において、目標点群データと上記画像点群シーケンスにおける対応する初期画像とをマッチングして、上記カメラの補正パラメータを確定するステップは、初期画像から特徴点集合を取得するステップと、上記目標点群データにおける上記特徴点集合に対応する少なくとも1つの点群特徴データを確定するステップと、上記少なくとも1つの点群特徴データの間の位置関係及び角度関係に基づいて、上記カメラの補正パラメータを確定するステップと、を含む。
【0013】
第2態様において、本開示の実施例はカメラをキャリブレーションするための装置を提供し、該装置は、画像点群シーケンスを取得するように構成される画像点群シーケンス取得ユニットであって、上記画像点群シーケンスは少なくとも一組の同時刻に取り込まれた初期画像と点群データを含み、初期画像は無人運転車両に取り付けられたカメラにより取り込まれ、点群データは無人運転車両に取り付けられたレーダにより取り込まれる、画像点群シーケンス取得ユニットと、上記画像点群シーケンスにおける各組の画像点群に対応する上記初期画像の目標点群データを確定するように構成される目標点群データ確定ユニットと、目標点群データと上記画像点群シーケンスにおける対応する初期画像とをマッチングして、上記カメラの補正パラメータを確定するように構成される補正パラメータ取得ユニットと、を備える。
【0014】
いくつかの実施例において、上記画像点群シーケンスは、無人運転車両が直線に沿って等速で走行し、無人運転車両に取り付けられた上記カメラにより設定時間おきに画像を取り込み、無人運転車両に取り付けられたレーダにより上記設定時間おきに点群データを取り込むように取得される。
【0015】
いくつかの実施例において、上記目標点群データ確定ユニットは、上記画像点群シーケンスに基づいて上記無人運転車両の実走行軌跡を確定するように構成される実走行軌跡確定サブユニットと、上記実走行軌跡における、上記画像点群シーケンスの各組の画像点群における初期画像に対応する位置点を確定し、上記画像点群シーケンスに対応する位置点シーケンスを得るように構成される位置点確定サブユニットと、上記位置点シーケンスにおける位置点について、該位置点において上記初期画像に対応する目標点群データを取得するように構成される目標点群データ取得サブユニットと、を備える。
【0016】
いくつかの実施例において、上記実走行軌跡確定サブユニットは、上記画像点群シーケンスにおける各組の画像点群に含まれる点群データに基づいて、上記無人運転車両の3次元空間におけるマーク点を確定し、上記点群データシーケンスに対応するマーク点シーケンスを得るように構成されるマーク点確定モジュールと、上記マーク点シーケンスにおけるマーク点の順位に基づいてマーク点をフィッティングし、上記無人運転車両の実走行軌跡を得るように構成される実走行軌跡フィッティングモジュールと、を備える。
【0017】
いくつかの実施例において、上記マーク点確定モジュールは、点群データの3次元空間における角度情報を確定し、上記角度情報に基づいて上記無人運転車両の3次元空間におけるマーク点を確定するように構成されるマーク点確定サブモジュールを備える。
【0018】
いくつかの実施例において、上記位置点確定サブユニットは、上記マーク点を対応する各組の画像点群における初期画像の位置点に設定するように構成される位置点設定モジュールを備える。
【0019】
いくつかの実施例において、上記目標点群データ取得サブユニットは、3次元空間の上記マーク点において目標点群データを取得するように構成される目標点群データ取得モジュールを備える。
【0020】
いくつかの実施例では、上記補正パラメータ取得ユニットは、初期画像から特徴点集合を取得するように構成される特徴点集合取得サブユニットと、上記目標点群データにおける上記特徴点集合に対応する少なくとも1つの点群特徴データを確定するように構成される点群特徴データ確定サブユニットと、上記少なくとも1つの点群特徴データの間の位置関係及び角度関係に基づいて、上記カメラの補正パラメータを確定するように構成される補正パラメータ確定サブユニットと、を備える。
【0021】
第3態様において、本開示の実施例は、1つまたは複数のプロセッサと、1つまたは複数のプログラムが格納されているメモリと、を備える電子機器であって、上記1つまたは複数のプログラムが上記1つまたは複数のプロセッサにより実行されると、上記1つまたは複数のプロセッサに、上記第1態様のカメラをキャリブレーションするための方法を実行させる電子機器を提供する。
【0022】
第4態様において、本開示の実施例は、コンピュータプログラムが格納されているコンピュータ可読媒体であって、該プログラムがプロセッサにより実行されると、上記第1態様のカメラをキャリブレーションするための方法が実行されるコンピュータ可読媒体を提供する。
【0023】
本開示の実施例が提供するカメラをキャリブレーションするための方法及び装置は、まず画像点群シーケンスを取得し、続いて上記画像点群シーケンスにおける各組の画像点群に対応する上記初期画像の目標点群データを確定し、最後に目標点群データと上記画像点群シーケンスにおける対応する初期画像とをマッチングして、上記カメラの補正パラメータを確定する。本出願は点群データによってカメラに対するキャリブレーションを実現することができる。
【0024】
本開示の他の特徴、目的および利点は、以下の図面を参照して行われる非限定的な実施例についての詳細な説明から明らかになるであろう。
【発明を実施するための形態】
【0026】
以下、図面と実施例を参照しながら本開示をさらに詳細に説明する。ここに説明する具体的な実施例は関連発明を解釈するためのものであり、本開示を限定するものではないことを理解すべきである。なお、説明の便宜上、図面中に関連発明に関する部分のみを示す。
【0027】
なお、矛盾しない前提下、本開示における実施例及び実施例における特徴は互いに組み合わせることができる。次に、図面を参照しながら実施例を合わせて本開示を詳しく説明する。
【0028】
図1は、本開示の実施例に係るカメラをキャリブレーションするための方法またはカメラをキャリブレーションするための装置が適用可能な例示的なシステムアーキテクチャ100を示している。
【0029】
図1に示すように、システムアーキテクチャ100は、無人運転車両101、102、103、ネットワーク104及びサーバ105を含むことができる。ネットワーク104は、無人運転車両101、102、103とサーバ105との間で通信リンクを提供するための媒体である。ネットワーク104には、有線、無線通信リンクまたは光ファイバケーブル等の各種の接続形態が含まれていてもよい。
【0030】
無人運転車両101、102、103は、カメラ、レーダ等の複数のデータ収集ユニット及びデータ処理ユニットを有する各種の車両であってもよく、電気自動車、ハイブリッド車、内燃機関自動車等が挙げられるが、これらに限定されるものではない。
【0031】
サーバ105は、無人運転車両101、102、103から送信された画像点群シーケンスをサポートするサーバなど、様々なサービスを提供するサーバであってもよい。サーバは受信した画像点群シーケンス等のデータに対して分析等の処理を行い、且つ処理結果(例えば、無人運転車両101、102、103におけるカメラの補正パラメータ)を無人運転車両にフィードバックすることができる。
【0032】
なお、本開示の実施例により提供される、カメラをキャリブレーションするための方法は、一般的にサーバ105により実行され、それに応じて、カメラをキャリブレーションするための装置は一般的にサーバ105に設けられる。
【0033】
なお、サーバはハードウェアであってもよく、ソフトウェアであってもよい。サーバがハードウェアである場合、複数のサーバで構成される分散型サーバクラスタとして実現することができ、単一のサーバとして実現することもできる。サーバがソフトウェアである場合、複数のソフトウェア又はソフトウェアモジュール(例えば、分散サービスを提供するために用いられる)として実現することができ、単一のソフトウェア又はソフトウェアモジュールとして実現することもでき、ここでは特に限定しない。
【0034】
なお、
図1の無人運転車両、ネットワーク、サーバの数は例示的なものである。実現のニーズに応じて、任意の数の無人運転車両、ネットワーク及びサーバを有することができる。
【0035】
次に、本開示のカメラをキャリブレーションするための方法の一実施例のフロー200を示す
図2を参照されたい。該カメラをキャリブレーションするための方法は、ステップ201〜203を含む。
【0036】
ステップ201:画像点群シーケンスを取得する。
【0037】
本実施例では、カメラをキャリブレーションするための方法の実行主体(例えば、
図1に示すサーバ105)は、有線接続方式又は無線接続方式によって無人運転車両101、102、103から送信された画像点群シーケンスを受信することができる。ここで、無人運転車両101、102、103に、画像を取得するためのカメラ及び点群データを取得するためのレーダ等のデバイスが取り付けられている。なお、上記無線接続方式には、3G/4G接続、WiFi接続、ブルートゥース(登録商標)接続、WiMAX接続、Zigbee接続、UWB(Ultra Wideband)接続、及びその他の現在既知又は将来に開発される無線接続方式が含まれるが、これらに限定されない。
【0038】
従来の車両には、通常、複数種類のセンサが搭載されている。センサを車両に搭載した後、センサの各種のパラメータをキャリブレーションするために、一般的に特定の場所に移動する必要があり、車両の車載カメラはその一つである。カメラをキャリブレーションする際に、車両は特定の場所における複数の特定の位置まで走行する必要があり、続いてカメラで画像を撮影し又は二次元コードを走査するなどの方式により車両の現在位置を取得する。車両の現場における実際の位置を踏まえ、カメラが二次元コードを撮影又は走査する時に取得した画像と画像ライブラリにおける基準画像との差を確定することができ、さらにカメラの補正すべきパラメータを確定する。しかしながら、毎年多数の車種や同一車種の異なる車両は、車載のカメラを補正する必要があるが、対応する特定の場所が限られている。
【0039】
本願の実行主体は、まず画像点群シーケンスを取得することができる。ここで、上記画像点群シーケンスは、少なくとも一組の同時刻に取り込まれた初期画像と点群データを含むことができる。初期画像は、無人運転車両に搭載されたカメラによって取り込まれる。点群データは、無人運転車両に搭載されたレーダによって取り込まれる。すなわち、本願は、無人運転車両上のカメラをキャリブレーションするために用いられる。
【0040】
本実施例のいくつかの選択可能な実現方式において、上記画像点群シーケンスは、無人運転車両が直線に沿って等速で走行し、無人運転車両に取り付けられた上記カメラにより設定時間おきに画像を取り込み、無人運転車両に取り付けられたレーダにより上記設定時間おきに点群データを取り込むように取得される。
【0041】
無人運転を実現するために、無人運転車両101、102、103に、いずれも点群データを取得することができるレーダ等のデバイスが取り付けられているのが通常である。点群データは、一般的には十分な精度を有しているため、カメラのパラメータの補正に利用することができる。具体的には、無人運転車両101、102、103は道路において直線的に等速で走行することができる。この過程において、無人運転車両101、102、103上のレーダ及びカメラは設定時間おきに点群データ及び画像を同時にそれぞれ取り込むことができる。すなわち、取り込まれた点群データと画像とはマッチング関係にある。
【0042】
ステップ202:画像点群シーケンスにおける各組の画像点群に対応する初期画像の目標点群データを確定する。
【0043】
点群データと画像がマッチング関係を有するため、カメラのパラメータを補正する必要がある。そのため、実行主体は点群データによって初期画像に対応する目標点群データを検索することができる。ここで、目標点群データは初期画像を補正するための点群データであってもよい。
【0044】
本実施例のいくつかの選択可能な実現形態において、上記画像点群シーケンスにおける各組の画像点群に対応する上記初期画像の目標点群データを確定するステップは、次の第1ステップ〜第3ステップを含むことができる。
【0045】
第1ステップ:上記画像点群シーケンスに基づいて上記無人運転車両の実走行軌跡を確定する。
【0046】
実行主体は、画像点群シーケンスを取得した後、画像点群シーケンスに含まれる画像点群と従来の点群データとをマッチングして、無人運転車両101、102、103の実走行軌跡を確定することができる。
【0047】
第2ステップ:上記実走行軌跡における、上記画像点群シーケンスの各組の画像点群における初期画像に対応する位置点を確定し、上記画像点群シーケンスに対応する位置点シーケンスを得る。
【0048】
点群データと画像はマッチング関係を有し、カメラのパラメータを補正する必要がある。そのため、実走行軌跡において各初期画像を取り込む時に無人運転車両101、102、103が位置する位置、すなわち位置点を確定する必要がある。
【0049】
第3ステップ:上記位置点シーケンスにおける位置点について、該位置点において上記初期画像に対応する目標点群データを取得する。
【0050】
位置点が確定された後、実行主体は3次元空間の該位置点に点群データを取得することができ、該点群データは初期画像に対応する目標点群データである。
【0051】
本実施例のいくつかの選択可能な実現形態において、上記画像点群シーケンスに基づいて上記無人運転車両の実走行軌跡を確定するステップは、次の第1ステップ〜第2ステップを含むことができる。
【0052】
第1ステップ:上記画像点群シーケンスにおける各組の画像点群に含まれる点群データに基づいて、上記無人運転車両の3次元空間におけるマーク点を確定し、上記点群データシーケンスに対応するマーク点シーケンスを得る。
【0053】
点群データは、3次元データであり、3次元データの角度情報を含んでもよい。したがって、実行主体は、各組の画像点群に含まれる点群データを3次元空間にマークし、点群データにどのような物体が含まれるかを判定し、さらに無人運転車両の3次元空間におけるマーク点を確定することができる。
【0054】
第2ステップ:上記マーク点シーケンスにおけるマーク点の順位に基づいてマーク点をフィッティングし、上記無人運転車両の実走行軌跡を得る。
【0055】
マーク点が得られた後、実行主体はフィッティング等の方式によりマーク点を連結して一本の線を得ることができ、該線は無人運転車両の実走行軌跡に対応する。
【0056】
本実施例のいくつかの選択可能な実現形態において、上記画像点群シーケンスにおける各組の画像点群に含まれる点群データに基づいて、上記無人運転車両の3次元空間におけるマーク点を確定するステップは、点群データの3次元空間における角度情報を確定し、上記角度情報に基づいて上記無人運転車両の3次元空間におけるマーク点を確定することを含んでもよい。
【0057】
点群データには角度情報が含まれてもよい。角度情報を合わせて、実行主体は点群データを取得する3次元空間点を確定することができる。該3次元空間点は、無人運転車両の3次元空間におけるマーク点である。
【0058】
本実施例のいくつかの選択可能な実現形態において、上記実走行軌跡における、上記画像点群シーケンスの各組の画像点群における初期画像に対応する位置点を確定するステップは、上記マーク点を対応する各組の画像点群における初期画像の位置点に設定するステップを含んでもよい。
【0059】
点群データと画像はマッチング関係を有し、マーク点は点群データに対応する3次元空間における無人運転車両の位置である。これにより、実行主体は、マーク点を、対応する各組の画像点群における初期画像の位置点に直接設定することができる。
【0060】
本実施例のいくつかの選択可能な実現形態において、上記位置点において上記初期画像に対応する目標点群データを取得するステップは、3次元空間の上記マーク点において目標点群データを取得するステップを含んでもよい。
【0061】
確定された位置点は実走行環境に対応しており、マーク点は位置点の3次元空間における座標表示と考えることができる。実行主体はマーク点で点群データを取り込むことができ、該点群データは初期画像に対応する目標点群データである。
【0062】
ステップ203:目標点群データと画像点群シーケンスにおける対応する初期画像とをマッチングして、カメラの補正パラメータを確定する。
【0063】
目標点群データは、カメラが対応する初期画像が存在する位置で撮影すべき画像に対応する。実行主体は目標点群データと初期画像とをマッチングして、上記カメラの補正パラメータを確定することができる。パラメータを補正することによりカメラをキャリブレーションすることができる。
【0064】
本実施例のいくつかの選択可能な実現形態において、上記目標点群データと上記画像点群シーケンスにおける対応する初期画像とをマッチングして、上記カメラの補正パラメータを確定するステップは、次の第1ステップ〜第3ステップを含んでもよい。
【0065】
第1ステップ:初期画像から特徴点集合を取得する。
【0066】
カメラの補正すべきパラメータを確定するために、実行主体は初期画像から特徴点を抽出し、特徴点を得ることができる。特徴点は、初期画像において、建物の輪郭や路面の境界線などをマークアップする点であってもよい。初期画像内の異なる画像内容について、特徴点は他の種類の点であってもよく、ここでは説明を省略する。
【0067】
第2ステップ:上記目標点群データにおける上記特徴点集合に対応する少なくとも1つの点群特徴データを確定する。
【0068】
目標点群データは初期画像に対応しており、すなわち目標点群データには初期画像の画像内容に対応する点群データが含まれている。実行主体は特徴マッチング等の方式により、上記目標点群データのうち、上記特徴点集合に対応する少なくとも1つの点群特徴データを確定することができる。
【0069】
第3ステップ:上記少なくとも1つの点群特徴データの間の位置関係及び角度関係に基づいて、上記カメラの補正パラメータを確定する。
【0070】
目標点群データは、カメラが対応する初期画像の所在位置で撮影すべき画像である。すなわち、目標点群データは、カメラの各パラメータがキャリブレーションされた場合に取得された画像に対応すると考えられる。そのため、実行主体は、少なくとも1つの点群特徴データの間の位置関係及び角度関係に基づいて、上記カメラの補正パラメータを確定することができる。
【0071】
次に、本実施例に係るカメラをキャリブレーションするための方法の適用シーンの一例を示す概略図である
図3を参照されたい。
図3の適用シーンにおいて、無人運転車両101は走行中に画像点群シーケンスを取得し、且つ画像点群シーケンスをネットワーク104を介してサーバ105に送信する。ここで、画像点群は道路わきの木とバスケットボールコートの画像と点群データを含む。サーバ105は画像点群シーケンスを受信した後、画像点群シーケンスにおける各組の画像点群に対応する初期画像の目標点群データを確定する。次に、目標点群データと画像点群シーケンスにおける対応する初期画像とをマッチングして、カメラの補正パラメータを確定する。最後に、サーバ105はカメラの補正パラメータを無人運転車両101に送信することができ、無人運転車両101はカメラのパラメータを補正し、カメラに対するキャリブレーションが実現される。
【0072】
本開示の上記実施例により提供された方法は、まず画像点群シーケンスを取得する。次に、上記画像点群シーケンスにおける各組の画像点群に対応する上記初期画像の目標点群データを確定する。最後に、目標点群データと上記画像点群シーケンスにおける対応する初期画像とをマッチングして、上記カメラの補正パラメータを確定する。本出願は、点群データによってカメラに対するキャリブレーションを実現することができる。
【0073】
さらに、カメラをキャリブレーションするための方法の他の実施例のフロー400が示される
図4を参照されたい。該カメラをキャリブレーションするための方法のフロー400は、次のステップ401〜404を含む。
【0074】
ステップ401:画像点群シーケンスを取得する。
【0075】
本実施例において、カメラをキャリブレーションするための方法の実行主体(例えば、
図1に示すサーバ105)は、有線接続方式又は無線接続方式によって無人運転車両101、102、103から送信された画像点群シーケンスを受信することができる。
【0076】
ステップ401の内容はステップ201の内容と同じであり、ここでは説明を省略する。
【0077】
ステップ402:画像点群シーケンスにおける各組の画像点群に対応する初期画像の目標点群データを確定する。
【0078】
ステップ402の内容はステップ202の内容と同じであり、ここでは説明を省略する。
【0079】
ステップ403:目標点群データと画像点群シーケンスにおける対応する初期画像とをマッチングして、カメラの補正パラメータを確定する。
【0080】
ステップ403の内容はステップ203の内容と同じであり、ここでは説明を省略する。
【0081】
ステップ404:補正パラメータを車両に送信する。
【0082】
補正パラメータが得られると、実行主体は、補正パラメータを車両に送信することができる。車両は補正パラメータを受信した後、カメラのプリセットパラメータを補正することができ、それによりカメラはレーダで取り込まれた点群データとマッチングする画像を取得することができる。
【0083】
さらに
図5を参照し、上記各図に示す方法に対する実装として、本開示はカメラをキャリブレーションするための装置の一実施例を提供し、該装置の実施例は
図2に示す方法の実施例に対応しており、該装置は具体的に様々な電子機器に適用することができる。
【0084】
図5に示すように、本実施例のカメラをキャリブレーションするための装置500は、画像点群シーケンス取得ユニット501、目標点群データ確定ユニット502及び補正パラメータ取得ユニット503を備えることができる。ここで、画像点群シーケンス取得ユニット501は、画像点群シーケンスを取得するように構成され、上記画像点群シーケンスは少なくとも一組の同時刻に取り込まれた初期画像と点群データを含み、初期画像は無人運転車両に取り付けられたカメラによって取り込まれ、点群データは無人運転車両に取り付けられたレーダによって取り込まれる。目標点群データ確定ユニット502は、上記画像点群シーケンスにおける各組の画像点群に対応する上記初期画像の目標点群データを確定するように構成される。補正パラメータ取得ユニット503は、目標点群データと上記画像点群シーケンスにおける対応する初期画像とをマッチングして、上記カメラの補正パラメータを確定するように構成される。
【0085】
本実施例のいくつかの選択可能な実現形態において、上記画像点群シーケンスは、無人運転車両が直線に沿って等速で走行し、無人運転車両に取り付けられた上記カメラにより設定時間おきに画像を取り込み、無人運転車両に取り付けられたレーダにより上記設定時間おきに点群データを取り込むように取得されてもよい。
【0086】
本実施例のいくつかの選択可能な実現形態において、上記目標点群データ確定ユニット502は、実走行軌跡確定サブユニット(図示せず)、位置点確定サブユニット(図示せず)及び目標点群データ取得サブユニット(図示せず)を備えることができる。そのうち、実走行軌跡確定サブユニットは、上記画像点群シーケンスに基づいて上記無人運転車両の実走行軌跡を確定するように構成される。位置点確定サブユニットは、上記実走行軌跡における、上記画像点群シーケンスの各組の画像点群における初期画像に対応する位置点を確定し、上記画像点群シーケンスに対応する位置点シーケンスを得るように構成される。目標点群データ取得サブユニットは、上記位置点シーケンスにおける位置点について、該位置点において上記初期画像に対応する目標点群データを取得するように構成される。
【0087】
本実施例のいくつかの選択可能な実現形態において、上記実走行軌跡確定サブユニットは、マーク点確定モジュール(図示せず)及び実走行軌跡フィッティングモジュール(図示せず)を備えることができる。そのうち、マーク点確定モジュールは、上記画像点群シーケンスにおける各組の画像点群に含まれる点群データに基づいて、上記無人運転車両の3次元空間におけるマーク点を確定し、上記点群データシーケンスに対応するマーク点シーケンスを得るように構成される。実走行軌跡フィッティングモジュールは、上記マーク点シーケンスにおけるマーク点の順位に基づいてマーク点をフィッティングし、上記無人運転車両の実走行軌跡を得るように構成される。
【0088】
本実施例のいくつかの選択可能な実現形態において、上記マーク点確定モジュールは、点群データの3次元空間における角度情報を確定し、上記角度情報に基づいて上記無人運転車両の3次元空間におけるマーク点を確定するように構成されるマーク点確定サブモジュール(図示せず)を備えることができる。
【0089】
本実施例のいくつかの任意の実現形態において、上記位置点確定サブユニットは、上記マーク点を対応する各組の画像点群における初期画像の位置点に設定するように構成される位置点設定モジュール(図示せず)を備えることができる。
【0090】
本実施例のいくつかの選択可能な実現形態において、上記目標点群データ取得サブユニットは、3次元空間の上記マーク点において目標点群データを取得するように構成される目標点群データ取得モジュール(図示せず)を備えることができる。
【0091】
本実施例のいくつかの選択可能な実現形態において、上記補正パラメータ取得ユニット503は、特徴点集合取得サブユニット(図示せず)、点群特徴データ確定サブユニット(図示せず)及び補正パラメータ確定サブユニット(図示せず)を備えることができる。ここで、特徴点集合取得サブユニットは、初期画像から特徴点集合を取得するように構成される。点群特徴データ確定サブユニットは、上記目標点群データにおける上記特徴点集合に対応する少なくとも1つの点群特徴データを確定するように構成される。補正パラメータ確定サブユニットは、上記少なくとも1つの点群特徴データの間の位置関係及び角度関係に基づいて、上記カメラの補正パラメータを確定するように構成される。
【0092】
本実施例は、1つまたは複数のプロセッサと、1つまたは複数のプログラムが格納されているメモリと、を備える電子機器であって、上記1つまたは複数のプログラムが上記1つまたは複数のプロセッサにより実行されると、上記1つまたは複数のプロセッサに、上記のカメラをキャリブレーションするための方法を実行させる電子機器をさらに提供する。
【0093】
本実施例は、コンピュータプログラムが格納されているコンピュータ可読媒体であって、該プログラムがプロセッサにより実行されると、上記のカメラをキャリブレーションするための方法が実行されるコンピュータ可読媒体をさらに提供する。
【0094】
次に、本開示の実施例に係る電子機器(例えば、
図1のサーバ105)を実現するために好適なコンピュータシステム600の概略構成図を示す
図6を参照されたい。なお、
図6に示す電子機器はあくまでも一例であり、本開示の実施例の機能および使用範囲には如何なる制限も与えない。
【0095】
図6に示すように、電子機器600は、読み取り専用メモリ(ROM)602に格納されたプログラム、または記憶装置608からランダムアクセスメモリ(RAM)603にロードされたプログラムに従って様々な適切な動作および処理を実行する処理装置(例えば、中央処理装置、グラフィックプロセッサ等)601を備えることができる。RAM603にはまた、電子機器600の動作に必要な各種のプログラムやデータが格納されている。処理装置601、ROM602、およびRAM603は、バス604を介して相互に接続されている。バス604にはまた、入力/出力(I/O)インタフェース605が接続されている。
【0096】
通常、I/Oインタフェース605には、例えば、タッチパネル、タッチパッド、キーボード、マウス、カメラ、マイクロホン、加速度計、ジャイロスコープなどを含む入力装置606、液晶ディスプレイ(LCD)、スピーカ、バイブレータなどを含む出力装置607、磁気テープ、ハードディスクなどを含む記憶装置608並びに通信装置609が接続されている。通信装置609は、電子機器600と他の機器との間で無線または有線による通信を行い、データの授受を可能にする。なお、
図6では、様々な装置を有する電子機器600を示しているが、必ずしも全ての装置を実装または備える必要はない。また、より多くの装置を実装してもよいし、より少ない装置を実装してもよい。
図6に示す各ブロックは1つの装置を代表してもよいし、必要に応じて複数の装置を代表してもよい。
【0097】
特に、本開示の実施例によれば、上記のフローチャートを参照しながら記載されたプロセスは、コンピュータのソフトウェアプログラムとして実現されてもよい。例えば、本開示の実施例は、コンピュータ可読媒体に具現化されるコンピュータプログラムを含むコンピュータプログラム製品を備え、該コンピュータプログラムは、フローチャートで示される方法を実行するためのプログラムコードを含む。このような実施例では、該コンピュータプログラムは、通信装置609を介してネットワークからダウンロードしてインストールすることが可能であり、または記憶装置608またはROM602からインストールすることもできる。該コンピュータプログラムが処理デバイス601によって実行されると、本開示の実施例の方法で定義された上記の機能が実行される。
【0098】
なお、本開示の実施例に記載されたコンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体、またはこれらの任意の組み合わせであってもよい。コンピュータ可読記憶媒体は、例えば、電気、磁気、光、電磁気、赤外線、または半導体システム、装置もしくはデバイス、またはこれらの任意の組み合わせであってもよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例としては、1本または複数の導線による電気的接続、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、消去可能プログラマブル読取り専用メモリ(EPROMもしくはフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスク読取り専用メモリ(CD−ROM)、光メモリ、磁気メモリ、またはこれらの任意の適切な組み合わせが挙げられるが、これらに限定されない。本開示の実施例において、コンピュータ可読記憶媒体は、命令実行システム、装置もしくはデバイスによって使用される、またはそれらに組み込まれて使用されるプログラムを包含または格納する任意の有形の媒体であってもよい。本開示の実施例において、コンピュータ可読信号媒体は、ベースバンド内の、または搬送波の一部として伝搬されるデータ信号を含むことができ、その中にコンピュータ可読プログラムコードが担持されている。かかる伝搬されたデータ信号は、様々な形態をとることができ、電磁信号、光信号、またはこれらの任意の適切な組み合わせが挙げられるが、これらに限定されない。コンピュータ可読信号媒体は、更にコンピュータ可読記憶媒体以外の任意のコンピュータ可読媒体であってもよい。当該コンピュータ可読媒体は、命令実行システム、装置もしくはデバイスによって使用されるか、またはそれらに組み込まれて使用されるプログラムを送信、伝搬または伝送することができる。コンピュータ可読媒体に含まれるプログラムコードは、任意の適切な媒体で伝送することができ、当該任意の適切な媒体としては、電線、光ケーブル、RF(無線周波数)など、またはこれらの任意の適切な組み合わせが挙げられるが、これらに限定されない。
【0099】
上記コンピュータ可読媒体は、上記電子機器に含まれるものであってもよく、該電子機器に実装されずに別体として存在するものであってもよい。上記コンピュータ可読媒体に1つ又は複数のプログラムが搭載され、上記1つ又は複数のプログラムが該電子機器により実行されると、該電子機器は、画像点群シーケンスを取得するステップであって、上記画像点群シーケンスは少なくとも一組の同時刻に取り込まれた初期画像と点群データを含み、初期画像は無人運転車両に取り付けられたカメラにより取り込まれ、点群データは無人運転車両に取り付けられたレーダにより取り込まれる、ステップと、上記画像点群シーケンスにおける各組の画像点群に対応する上記初期画像の目標点群データを確定するステップと、目標点群データと上記画像点群シーケンスにおける対応する初期画像とをマッチングして、上記カメラの補正パラメータを確定するステップと、を実行する。
【0100】
本開示の実施例の動作を実行するためのコンピュータプログラムコードは、1種以上のプログラミング言語、又はそれらの組み合わせで作成することができ、上記プログラミング言語は、Java(登録商標)、Smalltalk、C++などのオブジェクト指向プログラミング言語と、「C」言語又は同様のプログラミング言語などの従来の手続き型プログラミング言語とを含む。プログラムコードは、完全にユーザのコンピュータで実行することも、部分的にユーザのコンピュータで実行することも、単独のソフトウェアパッケージとして実行することも、部分的にユーザのコンピュータで実行しながら部分的にリモートコンピュータで実行することも、または完全にリモートコンピュータもしくはサーバで実行することも可能である。リモートコンピュータの場合、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意の種類のネットワークを介してユーザのコンピュータに接続することができ、または(例えば、インターネットサービスプロバイダによるインターネットサービスを介して)外部のコンピュータに接続することができる。
【0101】
図面のうちのフローチャートおよびブロック図は、本開示の様々な実施例に係るシステム、方法およびコンピュータプログラム製品によって実現できるアーキテクチャ、機能および動作の表示例である。これについて、フローチャートまたはブロック図における各ブロックは、モジュール、プログラムセグメント、またはコードの一部を表すことができる。当該モジュール、プログラムセグメント、またはコードの一部には、所定のロジック機能を実現するための1つまたは複数の実行可能命令が含まれている。さらに注意すべきなのは、一部の代替となる実施態様においては、ブロックに示されている機能は図面に示されているものとは異なる順序で実行することも可能である。例えば、連続して示された2つのブロックは、実際には係る機能に応じてほぼ並行して実行してもよく、時には逆の順序で実行してもよい。さらに注意すべきなのは、ブロック図および/またはフローチャートにおけるすべてのブロック、ならびにブロック図および/またはフローチャートにおけるブロックの組み合わせは、所定の機能または操作を実行する専用のハードウェアベースのシステムで実現することもできれば、専用のハードウェアとコンピュータ命令との組み合わせで実現することもできる。
【0102】
本開示の実施例に記載されたユニットは、ソフトウェアで実現されてもよく、ハードウェアで実現されてもよい。記載されたユニットは、プロセッサに設けられてもよく、例えば、「画像点群シーケンス取得ユニット、目標点群データ確定ユニット及び補正パラメータ取得ユニットを備えるプロセッサ」というように記載されてもよい。ここで、これらのユニットの名称は、ある場合において当該ユニット自体を限定するものではなく、例えば、補正パラメータ取得ユニットは、さらに「カメラの補正パラメータを取得するためのユニット」と記述され得る。
【0103】
以上の記載は、本開示の好ましい実施例、および適用される技術的原理に関する説明に過ぎない。当業者であれば、本開示に係る発明の範囲が、上記の技術的特徴の特定の組み合わせからなる技術案に限定されるものではなく、上記の本開示の趣旨を逸脱しない範囲で、上記の技術的特徴またはそれらの同等の特徴の任意の組み合わせからなる他の技術案も含まれるべきであることを理解すべきである。例えば、上記の特徴と、本開示に開示された類似の機能を持っている技術的特徴(これらに限定されていない)とを互いに置き換えてなる技術案が挙げられる。