(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0017】
以下に説明される詳細を参照しながら本発明の様々な実施形態及び態様を説明し、添付図面には上記の各実施形態が示される。以下の説明及び図面は、本発明を例示するためのものであり、限定するものとして解釈されるべきではない。本発明の様々な実施形態を全面的に理解するために、多くの特定の詳細を説明する。なお、本発明の実施形態を簡潔的に説明するように、周知又は従来技術の詳細について説明していない場合もある。
【0018】
本明細書において、「一実施形態」又は「実施形態」とは、当該実施形態に基づいて説明された特定の特徴、構造又は特性が本発明の少なくとも一実施形態に含まれてもよいと意味する。「一実施形態において」という表現は、本明細書の全体において全てが同一の実施形態を指すとは限らない。
【0019】
本発明の実施形態は、所定の期間にわたる歩行者の可能な位置を予測するための予測システムを開示する。一態様によれば、システムは、ADVの画像取込装置からADVの環境を感知する取込画像を受信する。システムは、取込画像に基づいて、ADV近傍の移動障害物を識別する。システムは、複数の時点のそれぞれでの移動障害物の位置を予測する。システムは、各時点での予測位置に基づいて確率楕円を生成し、当該確率楕円は、各時点での確率楕円内の異なる位置における移動障害物の異なる確率を示す確率インジケータを含む。確率楕円の楕円形状内の異なる位置は、歩行者の動きの異なる確率と関連付けられてもよい。それは逆に、経路及び/又は軌跡計画のコストならびに車両をナビゲートするための最適な経路及び/又は軌跡の選択に影響を及ぼし得る。
【0020】
一実施形態では、システムは、各時点での確率楕円に基づいてADVの軌跡をさらに計画して、当該軌跡に従ってADVを制御する。別の実施形態では、生成された確率楕円の長手方向(長)軸は、1.0+0.2tの一次方程式などにより、時間に基づいて確定され、ここで、tは秒単位の時点である。別の実施形態では、生成された確率楕円の横方向(短)軸は、0.5+0.2tの一次方程式などにより、時間に基づいて確定され、ここで、tは秒単位の時点である。
【0021】
一実施形態では、確率インジケータの確率は、楕円の焦点から移動障害物までの距離に基づいて確定される。一実施形態では、確率楕円は、移動障害物の移動方向と同じ方向に長手方向軸を有する。一実施形態では、移動障害物は歩行者である。
【0022】
図1は、本発明の一実施形態に係る自動運転車両のネットワーク構成を示すブロック図である。
図1に示すように、ネットワーク構成100は、ネットワーク102を介して1つ又は複数のサーバ103〜104に通信可能に接続される自動運転車両101を含む。一台の自動運転車両のみが示されているが、複数の自動運転車両が、ネットワーク102を介して、互いに接続されるか、及び/又はサーバ103〜104に接続されてもよい。ネットワーク102は、任意のタイプのネットワーク、例えば、有線又は無線のローカルエリアネットワーク(LAN)、インターネットのようなワイドエリアネットワーク(WAN)、セルラーネットワーク、衛星ネットワーク又はそれらの組み合わせであってもよい。サーバ103〜104は、任意のタイプのサーバ又はサーバクラスタであってもよく、例えば、ネットワーク又はクラウドサーバ、アプリケーションサーバ、バックエンドサーバ、又はそれらの組み合わせが挙げられる。サーバ103〜104は、データ解析サーバ、コンテンツサーバ、交通情報サーバ、地図・ポイントオブインタレスト(MPOI)サーバ又は位置サーバなどであってもよい。
【0023】
自動運転車両とは、自動運転モードになるように構成可能な車両を指し、前記自動運転モードにおいて、車両が運転手からの入力がほとんど又は全くない場合に環境を通過するようにナビゲートされる。このような自動運転車両は、車両の運転環境に関する情報を検出するように配置される1つ又は複数のセンサを備えるセンサシステムを備えていてもよい。前記車両及びその関連コントローラは、検出された情報を使用して前記環境を通過するようにナビゲートする。自動運転車両101は、手動モード、全自動運転モード、又は部分自動運転モードで動作することができる。
【0024】
一実施形態において、自動運転車両101は、感知・計画システム110、車両制御システム111、無線通信システム112、ユーザインターフェースシステム113及びセンサシステム115を含むが、それらに限定されない。自動運転車両101は更に、エンジン、車輪、ステアリングホイール、変速機などの一般車両に含まれるいくつかの共通構成要素を備えていてもよい。前記構成要素は、車両制御システム111及び/又は感知・計画システム110によって複数種の通信信号及び/又はコマンドで制御されることができ、これらの複数種の通信信号及び/又はコマンドは、例えば加速信号又はコマンド、減速信号又はコマンド、ステアリング信号又はコマンド、ブレーキ信号又はコマンドなどが挙げられる。
【0025】
構成要素110〜115は、インターコネクト、バス、ネットワーク、又はそれらの組み合わせを介して互いに通信可能に接続することができる。例えば、構成要素110〜115は、コントローラエリアネットワーク(CAN)バスを介して互いに通信可能に接続することができる。CANバスは、ホストコンピュータなしのアプリケーションでマイクロコントローラ及びデバイスが相互に通信できるように設計された車両通信規格である。それは、もともと自動車内の多重電気配線のために設計されたメッセージに基づくプロトコルであるが、他の多くの環境にも用いられる。
【0026】
ここで
図2を参照すると、一実施形態において、センサシステム115は、1つ又は複数のカメラ211、全地球測位システム(GPS)ユニット212、慣性計測ユニット(IMU)213、レーダユニット214及び光検出・測距(LIDAR)ユニット215を含むが、それらに限定されない。GPSユニット212は、自動運転車両の位置に関する情報を提供するように動作可能な送受信機を備えていてもよい。IMUユニット213は、慣性加速度に基づいて自動運転車両の位置及び配向の変化を検知することができる。レーダユニット214は、自動運転車両のローカル環境内のオブジェクトを検知するために無線信号を利用するシステムを表すことができる。いくつかの実施形態において、オブジェクトを検知することに加えて、レーダユニット214はさらに、オブジェクトの速度及び/又は進行方向を検知することができる。LIDARユニット215は、レーザを使用して自動運転車両が位置する環境内のオブジェクトを検知することができる。LIDARユニット215は、他のシステム構成要素のほかに、1つ又は複数のレーザ源、レーザスキャナ及び1つ又は複数の検出器を更に備えていてもよい。カメラ211は、自動運転車両の周囲の環境における画像を取り込むための1つ又は複数の装置を備えていてもよい。カメラ211は、定点カメラ(stationary cameras)及び/又はPTZ(パンチルトズーム)カメラであり得る。カメラは、例えば、回転及び/又は傾斜のプラットフォームに取り付けることによって機械的に移動可能なものであってもよい。
【0027】
センサシステム115は、ソナーセンサ、赤外線センサ、ステアリングセンサ、スロットルセンサ、ブレーキセンサ及びオーディオセンサ(例えば、マイクロホン)などの他のセンサを更に含むことができる。オーディオセンサは、自動運転車両の周囲の環境から音を取得するように構成されてもよい。ステアリングセンサ(例えば、電動パワーステアリング(EPS))は、ステアリングホイールの操舵角、車両の車輪又はそれらの組み合わせを感知するように構成されてもよい。スロットルセンサ及びブレーキセンサはそれぞれ車両のスロットル位置及びブレーキ位置を感知する。場合によっては、スロットルセンサとブレーキセンサを統合型スロットル/ブレーキセンサとして一体化することができる。
【0028】
車両制御システム111はステアリングユニット201、スロットルユニット202(加速ユニットともいう)及びブレーキユニット203を含んでもよいが、これらに限定されない。ステアリングユニット201は車両の方向又は進行方向を調整するために用いられる。スロットルユニット202はモータ又はエンジンの速度を制御するために用いられ、モータ又はエンジンの速度は更に車両の速度及び加速度を制御するために用いられる。ブレーキユニット203は、摩擦を与えることによって車両の車輪又はタイヤを減速させることで、車両を減速させる。なお、
図2に示された構成要素は、ハードウェア、ソフトウェア又はそれらの組み合わせで実現されてもよい。
【0029】
図1を再び参照して、無線通信システム112は、自動運転車両101と、装置、センサ、他の車両などの外部システムとの間の通信を可能にするものである。例えば、無線通信システム112は、直接又は通信ネットワークを介して、1つ又は複数の装置と無線通信することができ、例えば、ネットワーク102を介してサーバ103〜104と通信することができる。無線通信システム112は、任意のセルラー通信ネットワーク又は無線ローカルエリアネットワーク(WLAN)を使用することができ、例えば、WiFi(登録商標)を使用して別の構成要素又はシステムと通信することができる。無線通信システム112は、例えば、赤外線リンク、ブルートゥース(登録商標)などを使用して、装置(例えば、乗員のモバイルデバイス、表示装置、車両101内のスピーカ)と直接通信することができる。ユーザインターフェースシステム113は、車両101内に実現された周辺装置の部分(例えば、キーボード、タッチスクリーン表示装置、マイクロホン及びスピーカなどを含む)であってもよい。
【0030】
自動運転車両101の機能の一部又は全部は、特に自動運転モードで動作しているときに、感知・計画システム110によって制御又は管理することができる。感知・計画システム110は、必要なハードウェア(例えば、プロセッサ、メモリ、記憶装置)及びソフトウェア(例えば、オペレーティングシステム、計画及びルーティングプログラム)を備え、センサシステム115、制御システム111、無線通信システム112及び/又はユーザインターフェースシステム113から情報を受信し、受信した情報を処理し、出発地から目的地までのルート又は経路を計画し、その後、計画及び制御情報に基づいて車両101を運転する。あるいは、感知・計画システム110を車両制御システム111と一体に統合することができる。
【0031】
例えば、乗員としてのユーザは、例えば、ユーザインターフェースを介して、旅程の出発地位置及び目的地を指定することができる。感知・計画システム110は、旅程関連データを取得する。例えば、感知・計画システム110は、MPOIサーバから位置及びルート情報を取得することができ、前記MPOIサーバはサーバ103〜104の一部であってもよい。位置サーバは位置サービスを提供し、MPOIサーバは地図サービス及び特定の位置のPOIを提供する。あるいは、そのような位置及びMPOI情報は、感知・計画システム110の永続性記憶装置にローカルキャッシュされることができる。
【0032】
自動運転車両101がルートに沿って移動している間、感知・計画システム110は交通情報システム又はサーバ(TIS)からリアルタイム交通情報を取得していてもよい。なお、サーバ103〜104は第三者機関によって操作されてもよい。あるいは、サーバ103〜104の機能は、感知・計画システム110と一体に統合されてもよい。リアルタイム交通情報、MPOI情報及び位置情報、並びにセンサシステム115によって検出又は検知されたリアルタイムローカル環境データ(例えば、障害物、オブジェクト、周辺車両)に基づいて、感知・計画システム110は、指定された目的地までに安全かつ効率的に到着するように、最適なルートを計画し、計画されたルートに従って、例えば、制御システム111によって車両101を運転する。
【0033】
サーバ103は、様々な顧客に対してデータ解析サービスを行うためのデータ解析システムであってもよい。一実施形態において、データ解析システム103は、データコレクタ121と、機械学習エンジン122とを備える。データコレクタ121は、様々な車両(自動運転車両又は人間の運転手によって運転される一般車両)から運転統計データ123を収集する。運転統計データ123は、発された運転命令(例えば、スロットル、ブレーキ、ステアリング命令)及び車両のセンサによって異なる時点で取り込まれた車両の応答(例えば、速度、加速、減速、方向)を示す情報を含む。運転統計データ123は更に、異なる時点における運転環境を記述する情報、例えば、ルート(出発地位置及び目的地位置を含む)、MPOI、道路状況、天気状況などを含んでもよい。
【0034】
機械学習エンジン122は、運転統計データ123に基づいて、様々な目的でルールセット、アルゴリズム及び/又は予測モデル124を生成又は訓練する。一実施形態において、例えば、アルゴリズム/モデル124は、歩行者などのオブジェクトを検出し、これらのオブジェクトに関する情報を識別するための1つ又は複数の機械学習モデル及び/又は画像分割モデルを含むことができる。機械学習モデルは、ADVによる自動運転にリアルタイムで使用されるように訓練されADVにアップロードされることができる。アルゴリズム/モデル124は、検出された歩行者の位置を所定の期間にわたる点ごとに予測し、これらの点について楕円を生成してADVによって使用される確率雲を表すためのアルゴリズム/モデルを含むことができる。ここで、確率雲とは、確率雲の中心の周りの、特定の歩行者を検出する確率を有する空間領域の分布を指す。
【0035】
図3A及び
図3Bは、一実施形態に係る自動運転車両と一緒に使用される感知・計画システムの一例を示すブロック図である。システム300は、
図1の自動運転車両101の一部として実現されてもよく、感知・計画システム110、制御システム111及びセンサシステム115を含むが、これらに限定されない。
図3A及び
図3Bに示すように、感知・計画システム110は、測位モジュール301、感知モジュール302、予測モジュール303、決定モジュール304、計画モジュール305、制御モジュール306、ルーティング/サンプリングモジュール307及び楕円予測モジュール308を含むが、これらに限定されない。
【0036】
モジュール301〜308のうちの一部又は全部は、ソフトウェア、ハードウェア又はそれらの組み合わせで実現されていてもよい。例えば、これらのモジュールは、永続性記憶装置352にインストールされ、メモリ351にロードされ、1つ又は複数のプロセッサ(図示せず)によって実行されていてもよい。なお、これらのモジュールの一部又は全部は、
図2の車両制御システム111のモジュールの一部又は全部と通信可能に接続されるか、又は一体に統合されていてもよい。モジュール301〜308の一部は、集積モジュールとして一体化されていてもよい。例えば、楕円予測モジュール308及び予測モジュール303は単一のモジュールとして統合されてもよい。
【0037】
測位モジュール301は、自動運転車両300の現在の位置(例えば、GPSユニット212を利用して)を特定し、ユーザの旅程又はルートに関連する如何なるデータを管理する。測位モジュール301(地図・ルートモジュールともいう)は、ユーザの旅程又はルートに関連する如何なるデータを管理する。ユーザは、例えば、ユーザインターフェースを介してログインして、旅程の出発地位置及び目的地を指定することができる。測位モジュール301は、自動運転車両300の地図・ルート情報311のような他の構成要素と通信して、旅程関連データを取得する。例えば、測位モジュール301は、位置サーバ及び地図・ポイントオブインタレスト(MPOI)サーバから位置及びルート情報を取得することができる。位置サーバは位置サービスを提供し、MPOIサーバは、地図サービス及び特定位置のPOIを提供し、これらは地図・ルート情報311の一部としてキャッシュすることができる。自動運転車両300がルートに沿って移動するとき、測位モジュール301は交通情報システム又はサーバからリアルタイム交通情報を得ることも可能である。
【0038】
感知モジュール302は、センサシステム115により提供されたセンサデータと、測位モジュール301により取得された測位情報とに基づいて、周囲環境への感知を確定する。感知情報は、一般運転手が運転手により運転されている車両の周囲で感知すべきものを表すことができる。感知は、例えばオブジェクトの形態を採用する車線構成(例えば、直進車線又はカーブ車線)、信号機信号、他の車両の相対位置、歩行者、建築物、横断歩道、又は他の交通関連標識(例えば、止まれ標識、ゆずれ標識)などを含んでもよい。車線構成は、例えば、車線の形状(例えば、直線又は湾曲)、車線の幅、道路内の車線数、一方向又は二方向車線、合流車線又は分流車線、退出車線など、1つ又は複数の車線を記述する情報を含む。
【0039】
感知モジュール302は、1つ又は複数のカメラによって取り込まれた画像を処理及び解析して、自動運転車両の環境内のオブジェクト及び/又は特徴を認識するためのコンピュータビジョンシステム又はコンピュータビジョンシステムの機能を含むことができる。前記オブジェクトは、交通信号、道路境界、他の車両、歩行者及び/又は障害物などを含んでいてもよい。コンピュータビジョンシステムは、オブジェクト認識アルゴリズム、ビデオトラッキング、及び他のコンピュータビジョン技術を使用することができる。いくつかの実施形態において、コンピュータビジョンシステムは、環境地図の描画、オブジェクトの追跡、及びオブジェクトの速度の推定などができる。感知モジュール302は、レーダ及び/又はLIDARのような他のセンサによって提供される他のセンサデータに基づいてオブジェクトを検出することもできる。
【0040】
各オブジェクトについて、予測モジュール303は、その場合にオブジェクトがどのように挙動するかを予測する。この予測は、地図・ルート情報311と交通ルール312のセットを考慮した時点で運転環境を感知する感知データに基づいて実行される。例えば、オブジェクトが反対方向の車両であり、かつ現在の運転環境が交差点を含む場合、予測モジュール303は、車両が直進するか又は方向転換するかを予測する。感知データが、交差点に信号機がないことを示す場合、予測モジュール303は、交差点に入る前に車両が完全に停止する必要があると予測する可能性がある。感知データが、車両が現在左折専用車線又は右折専用車線にあることを示す場合、予測モジュール303は、車両がそれぞれ左折又は右折する可能性がより高いと予測することが可能である。
【0041】
オブジェクトごとに対して、決定モジュール304はオブジェクトをどのように処置するかを決定する。例えば、特定のオブジェクト(例えば、交差ルートにおける他の車両)及びオブジェクトを記述するメタデータ(例えば、速度、方向、転向角)について、決定モジュール304は前記オブジェクトと遇うときに如何に対応するか(例えば、追い越し、道譲り、停止、追い抜き)を決定する。決定モジュール304は、交通ルール又は運転ルール312などのルールセットに基づいてそのような決定を行うことができ、前記ルールセットは永続性記憶装置352に格納されていてもよい。
【0042】
ルーティングモジュール307は、出発地から目的地までの1つ以上のルート又は経路を提供するように構成される。ルーティングモジュール307は、出発地位置から目的地位置までの特定の旅程(例えば、ユーザから受信された特定の旅程)について、ルート及び地図情報311を取得し、出発地位置から目的地位置までのすべての可能なルート又は経路を決定する。ルーティングモジュール307は、出発地位置から目的地位置までの各ルートを特定する地形図の形の基準線を生成することができる。基準線とは、他の車両、障害物又は交通状況などからの如何なる干渉を受けていない理想的なルート又は経路をいう。つまり、道路に他の車両、歩行者又は障害物がない場合、ADVは基準線に精確的に又は密接的に従うべきである。そして、地形図を決定モジュール304及び/又は計画モジュール305に提供する。決定モジュール304及び/又は計画モジュール305は、他のモジュールにより提供された他のデータ(例えば測位モジュール301からの交通状况、感知モジュール302により感知された運転環境及び予測モジュール303により予測された交通状况)に応じて、全ての走行可能なルートを検査して最適ルートのうちの一つを選択及び変更する。特定の時点における特定の走行環境に応じて、ADVを制御するための実際の経路又はルートは、ルーティングモジュール307によって提供される基準線に近いか又は異なっていてもよい。
【0043】
計画モジュール305は、感知されたオブジェクトのそれぞれに対する決定に基づいて、自動運転車両に経路又はルート並びに運転パラメータ(例えば、距離、速度及び/又は転向角)を計画する。言い換えれば、特定のオブジェクトについて、決定モジュール304は該オブジェクトに対して何をするかを決定し、計画モジュール305はどのようにするかを確定する。例えば、特定のオブジェクトについて、決定モジュール304は前記オブジェクトを追い抜くか否かを決定することができ、計画モジュール305は前記オブジェクトを左側から追い抜くか又は右側から追い抜くかを確定することができる。計画及び制御データは、計画モジュール305により生成され、車両300が次の移動周期(例えば、次のルート/経路区間)にはどのように移動するかを記述する情報を含む。例えば、計画及び制御データは、車両300に時速30マイル(mph)で10m移動し、次に25マイル(mph)の速度で右車線に変更することを示すことができる。
【0044】
制御モジュール306は、計画及び制御データに基づいて、計画及び制御データにより定義されたルート又は経路に応じて適当なコマンド若しくは信号を車両制御システム111に送信することにより自動運転車両を制御及び運転する。前記計画及び制御データは、経路又はルートに沿って異なる時点で適切な車両構成又は運転パラメータ(例えば、スロットル、ブレーキ、及びステアリングコマンド)を使用して、車両をルート又は経路の第1の点から第2の点まで運転するのに十分な情報を含む。
【0045】
一実施形態では、計画段階は、コマンドサイクルともいう複数の計画周期で実行され、例えば、100ミリ秒(ms)の時間間隔ごとに実行される。計画周期又はコマンドサイクルのそれぞれについて、計画及び制御データに基づいて1つ又は複数の制御コマンドを発する。すなわち、100msごとに、計画モジュール305は、次のルート区間又は経路区間(例えば、目標位置及びADVが目標位置に到着するのに必要な時間が含まれる)を計画する。あるいは、計画モジュール305は、具体的な速度、方向、及び/又は転向角などを更に指定することができる。一実施形態では、計画モジュール305は、次の所定期間(例えば、5秒)のルート区間又は経路区間を計画する。計画周期のそれぞれに対し、計画モジュール305は、前の周期で計画された目標位置に基づいて、現在の周期(例えば、次の5秒)のための目標位置を計画する。制御モジュール306は、次に、現在の周期における計画及び制御データに基づいて1つ又は複数の制御コマンド(例えば、スロットル、ブレーキ、ステアリング制御コマンド)を生成する。
【0046】
なお、決定モジュール304及び計画モジュール305は、集積モジュールとして一体化されてもよい。決定モジュール304/計画モジュール305は、自動運転車両の運転経路を決定するためのナビゲーションシステム又はナビゲーションシステムの機能を含んでいてもよい。例えば、ナビゲーションシステムは、自動運転車両の以下の経路に沿った移動を達成するための一連の速度及び進行方向を決定することができる。前記経路では、自動運転車両が最終的な目的地に通じる走行車線ベースの経路に沿って前進するとともに、感知した障害物を実質的に回避できる。目的地は、ユーザインターフェースシステム113を介したユーザ入力に従って設定することができる。ナビゲーションシステムは、自動運転車両が走行している間に運転経路を動的に更新することができる。ナビゲーションシステムは、自動運転車両のための運転経路を確定するために、GPSシステム及び1つ又は複数の地図からのデータを取り入れることができる。
【0047】
決定モジュール304/計画モジュール305は、更に、自動運転車両の環境における潜在的な障害物を認識、評価、回避又は他の方法で通過するための衝突防止システム又は衝突防止システムの機能を備えていてもよい。例えば、衝突防止システムは、制御システム111の1つ又は複数のサブシステムを動作させることで、ステアリング操作、ターニング操作、ブレーキ操作などを行うことによって、自動運転車両のナビゲーション中の変更を実現することができる。衝突防止システムは、周囲の交通パターンや道路状況などに基づいて、実行可能な障害物回避操作を自動的に決定することができる。衝突防止システムは、他のセンサシステムが、自動運転車両が方向転換して進入しようとする隣接領域における車両、建築障害物などを検出したときに、ステアリング操作を行わないように構成されることができる。衝突防止システムは、自動運転車両の乗員の安全性を最大限にするとともに、利用可能な操作を自動的に選択することができる。衝突防止システムは、自動運転車両の客室内に最も少ない加速度を発生させると予測される回避操作を選択することができる。
【0048】
図4は、一実施形態に係る楕円予測モジュールの一例を示すブロック図である。
図4を参照すると、楕円予測モジュール308は、1)所定の期間にわたる点ごとの位置を予測すること、及び2)これらの点の位置に楕円を適用することによって、歩行者の楕円ごとの位置を予測することができる。ここで、楕円とは、歩行者を検出する可能性がゼロ以外の空間領域である。一実施形態において、
図3Aのモジュール305などの計画モジュールは、歩行者を回避するために歩行者の楕円(又は確率雲)の周りの運転軌跡を計画することができる。いくつかの実施形態において、所定の期間にわたる異なる時点で歩行者を見つける可能性を示すために、ADVのユーザに対して、グラフィカルユーザインターフェース上に楕円を表示する。
【0049】
一実施形態において、楕円予測モジュール308は、画像受信機/前処理モジュール401、障害物識別子モジュール403、位置予測子モジュール405、及び楕円生成器モジュール407を含む。画像受信機/前処理モジュール401は、ADVの画像取込装置(例えば、1つ又は複数のカメラ)によって取り込まれた画像を受信することができる。画像受信機モジュール401は画像を前処理することもできる。前処理は、画像に適用される露光制御、利得制御、トーンマッピング、ホワイトバランス調整、デモザイク及びバイラテラルフィルタリングを調整することを含み得るが、これらに限定されない。画像の前処理とは、様々な時間帯及び気象条件で画像内に取り込まれたオブジェクト(例えば、地図ルート、歩行者)をより良好に識別するために画像を準備することである。例えば、夜間には、オブジェクト及び/又は車線をより良好に識別できるように、画像に対する露光量を日中よりも高くする。
【0050】
前処理の別の例は、画像内のオブジェクト/障害物を検出するために適用されるように、機械学習モデルと互換性のある画像サイズへの画像のスケーリング及び/又はクロッピングを含む。障害物識別子モジュール403は、受信した画像に機械学習モデルを適用して、オブジェクト/障害物(例えば、歩行者)を識別/検出することができる。ここで、機械学習モデルは、移動オブジェクト/障害物を検出するように訓練された深層学習畳み込みニューラルネットワーク(CNN)(又は任意の画像分割モデル)とすることができ、これらの移動オブジェクトに対する障害物情報(例えば、向き、方向及び速度)を確定することができる。位置予測子モジュール405は、所定の期間にわたってオブジェクト(例えば、歩行者)の点ごとの位置を予測することができる。楕円生成器モジュール407は、楕円モデルに基づいて(楕円モデル313の一部として)予測された位置点に対する確率雲として1つ又は複数の楕円を生成することができる。
【0051】
図5は、一実施形態に係る、ある期間にわたる点ごとの予測の一例を示すチャートである。
図5を参照すると、一実施形態において、障害物501(例えば、歩行者501)は、時点t0の位置(x0,y0)で検出され得る。予測モジュール303は、時点t0とそれに続く時点:t1、t2、及びt3での歩行者501の位置を予測することができる。歩行者501について4つの時点が示されているが、予測モジュール303は、検出された任意の数の歩行者について任意の数の時点(又は期間)を予測することができる。
【0052】
図5を参照すると、地図情報及び/又は歩行者501の向きに応じて、時点t0〜t3が線形経路又は曲線経路にあることが予測され得る。例えば、地図情報には湾曲した歩行者用歩道が示された場合、予測モジュール303は、線形曲線ではなく、歩行者が歩道を移動するための曲線経路を予測することができる。一実施形態において、予測モジュール303は、利用できない地図のしるしがない場合、歩行者501の速度及び向きに基づいて歩行者501のための比較的線形曲線を点ごとに予測する。時点予測に基づいて、
図5では、歩行者501が、時間t1で(x1,y1)、時間t2で(x2,y2)、及び時間t3で(x3,y3)に1の確率で位置すると解釈される。しかしながら、実際には、歩行者501は時間t2において(x2,y2)の近くに位置することがあり、例えば、確率曲線又はヒート地図は、任意の特定の時間における歩行者501の位置を予測するためにより適している。
【0053】
図6は、一実施形態に係る、ある期間にわたる楕円ごとの確率予測の一例を示すチャートである。
図6を参照すると、
図5で説明したように、時点t0〜t3について歩行者位置の予測を確定する。その後、時点t0〜t3のそれぞれについて楕円を生成する。生成された楕円は、異なる時点で歩行者501を検出するためのゼロより大きい確率を有する領域を示す確率雲を表す。一実施形態において、生成された楕円は、対応する時点について歩行者501の移動方向又は向きに長手方向である長軸方向を有する。一実施形態において、各楕円の中心点は、対応する時点の予測位置にある。一実施形態において、各楕円のサイズはtに比例して確定され、ここでtは秒単位の時点に対する経過時間である。一実施形態において、生成された確率楕円の長手方向(半長)軸は1.0+0.2tによって確定されることができ、生成された確率楕円の横方向(半短)軸は0.5+0.2tによって確定されることができる。従って、(x0、y0)を原点とした楕円の中心の方程式は次のようになる。
【数1】
式中、aはx座標軸に沿った距離、bはy座標軸に沿った距離、θは楕円の反時計回りの回転角である。デカルト座標系(x,y)が楕円を記述するために使用されているが、楕円の方程式は、ステーション−ラテラル(station−lateral)座標系又は極座標系のような他の座標系に変換されてもよい。
【0054】
図6を参照すると、一実施形態において、時間t=t0=0秒において、楕円601の(長手方向、横方向)サイズは(1.0,0.5)となり、楕円中心点(x0,y0)を中心に反時計回りに回転する角度がθ
0である。そして、楕円601の方程式は次のようになる。
【数2】
式中、(x0,y0)は楕円601の中心点であり、θ
0は楕円601の反時計回りの回転角である。
【0055】
楕円603〜607についても同様の方程式を適用することができる。
図6に示すように、将来のある時点の楕円は不確実性が高いので、大きい楕円で表される。
【0056】
図7は、一実施形態に係る、ある時点についての楕円の一例を示す。
図7を参照すると、楕円700は、任意の時点の楕円、例えば楕円601〜607のうちのいずれかを表すことができる。楕円700は、中心点(X,Y)を有する確率雲(又は確率インジケータ)をモデル化する。確率雲(又は確率インジケータ)は、確率雲内に位置する任意の特定の点で歩行者を見つける確率への確定に利用することができる。楕円700は、F2に位置する歩行者の分布(又はヒートマップ)をモデル化する焦点F2及びF1を含むことができる。そして、楕円700内の各点は、点F2と各点との間の距離に基づいて確定された確率値と関連付けられる。例えば、点701は(1−L1/L2)の確率値を有し、式中、L1は点F2と点701との間の距離であり、L2はF2と、点701を通って延びる直線と楕円700の境界(例えば点703)の交点との間の距離である。この場合、歩行者がF2に近づく確率は非常に高く、楕円700の境界に向かって徐々に減少する(例えば、L1/L2は楕円700の境界近傍の1つに近づく)。この場合、楕円によって表される確率曲線又はヒートマップは、任意の特定の時点での歩行者の位置を予測するために、より現実的である。
【0057】
従って、単一の位置点に基づいて歩行者の動きを予測する代わりに、本発明の実施形態は、歩行者が異なる確率で動くことがある領域に基づく予測を実行する。車両の軌跡を計画するとき、システムは、歩行者の移動可能な全領域(例えば、楕円領域)を考慮に入れることができる。そのようなプロセスはより効率的になる。例えば、移動するのに十分なスペースがある場合、システムは楕円領域内にある任意の経路候補を考慮から素早く除去することができる。システムが、その領域を通過する特定の経路候補を考慮に入れる必要がある場合であっても、その領域に関連付けられた確率インジケータを用いて、計画システムは、それらの経路候補のうち、考慮又は除去できるものを迅速に識別することができる。
【0058】
図8は、一実施形態に係る方法を示すフローチャートである。プロセス800は、処理ロジックにより実行可能である。前記処理ロジックにはソフトウェア、ハードウェア、又はこれらの組み合わせが含まれてもよい。例えば、プロセス800は
図3Aの楕円予測モジュール308によって実行可能である。
図8を参照すると、ブロック801において、処理ロジックは、ADVの画像取込装置からADVの環境を感知する取込画像を受信する。ブロック802において、処理ロジックは、取込画像に基づいて、ADV近傍の移動障害物を識別する。ブロック803において、処理ロジックは、複数の時点のそれぞれでの移動障害物の位置を予測する。ブロック804において、処理ロジックは、各時点での予測位置に基づいて確率楕円を生成し、ここで、当該確率楕円は、各時点での確率楕円内の異なる位置における移動障害物の異なる確率を示す確率インジケータを含む。
【0059】
一実施形態では、システムは、各時点での確率楕円に基づいてADVの軌跡をさらに計画して、当該軌跡に従ってADVを制御する。別の実施形態では、生成された確率楕円の長手方向(長)軸は、1.0+0.2tの一次方程式などにより、時間に基づいて確定され、ここで、tは秒単位の時点である。別の実施形態では、生成された確率楕円の横方向(短)軸は、0.5+0.2tの一次方程式などにより、時間に基づいて確定され、ここで、tは秒単位の時点である。
【0060】
一実施形態では、確率インジケータの確率は、楕円の焦点から移動障害物までの距離に基づいて確定される。一実施形態では、確率楕円は、移動障害物の移動方向と同じ方向に長手方向軸を有する。一実施形態では、移動障害物は歩行者である。
【0061】
図9は、本発明の一実施形態と組み合わせて使用可能なデータ処理システムの一例を示すブロック図である。例えば、システム1500は、上述した前記プロセス又は方法のいずれかを実行するデータ処理システムのいずれか(例えば、
図1の感知・計画システム110、又はサーバ103〜104のいずれか)を表すことができる。システム1500は、いくつかの異なる構成要素を備えていてもよい。これらの構成要素は、集積回路(IC)、集積回路の一部、ディスクリート型電子デバイス、又は回路基板(例えば、コンピュータシステムのマザーボード若しくはアドインカード)に適するその他のモジュールとして実現されることができ、又は、他の形態でコンピュータシステムのシャーシ内に組み込まれる構成要素として実現されることが可能である。
【0062】
なお、システム1500は、コンピュータシステムのいくつかの構成要素の高レベルビューを示すことを意図している。しかしながら、特定の実施例においては付加的構成要素が存在してもよく、また、その他の実施例においては示された構成要素を異なる配置にすることも可能であることを理解されたい。システム1500は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、携帯電話、メディアプレヤー、パーソナルデジタルアシスタント(PDA)、スマートウォッチ、パーソナルコミュニケーター、ゲーム装置、ネットワークルーター又はハブ、無線アクセスポイント(AP)又はリピーター、セット・トップボックス、又はそれらの組み合わせを表すことができる。また、単一の機械又はシステムのみが示されたが、「機械」又は「システム」という用語は、本明細書で説明されるいずれか1つ又は複数の方法を実行するための、1つ(又は複数)の命令セットを単独で又は共同で実行する機械又はシステムの任意の組み合わせも含まれることを理解されたい。
【0063】
一実施形態では、システム1500は、バス又はインターコネクト1510を介して接続される、プロセッサ1501と、メモリ1503と、デバイス1505〜1508とを含む。プロセッサ1501は、単一のプロセッサコア又は複数のプロセッサコアが含まれる単一のプロセッサ又は複数のプロセッサを表すことができる。プロセッサ1501は、マイクロプロセッサ、中央処理装置(CPU)などのような、1つ又は複数の汎用プロセッサを表すことができる。より具体的には、プロセッサ1501は、複雑命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、又はその他の命令セットを実行するプロセッサ、又は命令セットの組み合わせを実行するプロセッサであってもよい。プロセッサ1501は更に1つ又は複数の専用プロセッサであってもよい。例えば、特定用途向け集積回路(ASIC)、セルラー又はベースバンドプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、デジタルシグナルプロセッサ(DSP)、ネットワークプロセッサ、グラフィックプロセッサ、通信プロセッサ、暗号化プロセッサ、コプロセッサ、組込みプロセッサ、又は命令を処理可能な任意の他のタイプのロジックが挙げられる。
【0064】
プロセッサ1501は、超低電圧プロセッサのような低電力マルチコアプロセッサソケットであってもよく、前記システムの様々な構成要素と通信するための主処理ユニット及び中央ハブとして機能することができる。このようなプロセッサは、システムオンチップ(SoC)として実現されることができる。プロセッサ1501は、本明細書で説明される動作及びステップを実行するための命令を実行するように構成される。システム1500は、更に任意選択グラフィックサブシステム1504と通信するグラフィックインターフェースを含むことができ、グラフィックサブシステム1504は、表示コントローラ、グラフィックプロセッサ及び/又は表示装置を含んでいてもよい。
【0065】
プロセッサ1501は、メモリ1503と通信することができ、メモリ1503は、一実施形態において、所定量のシステムメモリを提供するための複数のメモリ装置によって実現されることができる。メモリ1503は、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)、又はその他のタイプの記憶装置のような、1つ又は複数の揮発性記憶(又はメモリ)装置を含むことができる。メモリ1503は、プロセッサ1501又はその他の任意の装置により実行される命令シーケンスを含む情報を格納することができる。例えば、様々なオペレーティングシステム、デバイスドライバ、ファームウェア(例えば、ベーシックインプット/アウトプットシステム又はBIOS)、及び/又はアプリケーションの実行可能なコード及び/又はデータは、メモリ1503にロードされ、プロセッサ1501により実行されることができる。オペレーティングシステムは、例えば、ロボットオペレーティングシステム(ROS)、Microsoft(登録商標)社のWindows(登録商標)オペレーティングシステム、アップル社のMacOS(登録商標)/iOS(登録商標)、Google(登録商標)社のAndroid(登録商標)、LINUX(登録商標)、UNIX(登録商標)、又はその他のリアルタイム若しくは組込みオペレーティングシステムのような、任意のタイプのオペレーティングシステムであってもよい。
【0066】
システム1500は、更に、ネットワークインターフェースデバイス1505、任意選択入力デバイス1506、及びその他の任意選択I/Oデバイス1507を含むデバイス1505〜1508のようなI/Oデバイスを含むことができる。ネットワークインターフェースデバイス1505は、無線送受信機及び/又はネットワークインターフェースカード(NIC)を含むことができる。前記無線送受信機は、WiFi(登録商標)送受信機、赤外線送受信機、ブルートゥース(登録商標)送受信機、WiMax送受信機、無線携帯電話送受信機、衛星送受信機(例えば、全地球測位システム(GPS)送受信機)、又はその他の無線周波数(RF)送受信機、又はそれらの組み合わせであってもよい。NICは、イーサネット(登録商標)カードであってもよい。
【0067】
入力デバイス1506は、マウス、タッチパネル、タッチスクリーン(表示装置1504と一体に統合されてもよい)、ポインター装置(例えば、スタイラス)、及び/又はキーボード(例えば、物理キーボード又はタッチスクリーンの一部として表示された仮想キーボード)を含むことができる。例えば、入力デバイス1506は、タッチスクリーンと接続されるタッチスクリーンコントローラを含むことができる。タッチスクリーン及びタッチスクリーンコントローラは、例えば、様々なタッチ感応技術(コンデンサ、抵抗、赤外線、及び表面弾性波の技術を含むが、それらに限定されない)のいずれか、並びにその他の近接センサアレイ、又は、タッチスクリーンと接触する1つ又は複数の点を確定するためのその他の素子を用いて、それらの接触、移動又は中断を検出することができる。
【0068】
I/Oデバイス1507は、音声装置を含むことができる。音声装置は、音声認識、音声複製、デジタル記録、及び/又は電話機能のような音声サポート機能を促進するために、スピーカ及び/又はマイクロホンを含んでもよい。その他のI/Oデバイス1507は、更に、ユニバーサルシリアルバス(USB)ポート、パラレルポート、シリアルポート、プリンタ、ネットワークインターフェース、バスブリッジ(例えば、PCI−PCIブリッジ)、センサ(例えば、加速度計、ジャイロスコープ、磁力計、光センサ、コンパス、近接センサなどのモーションセンサ)、又はそれらの組み合わせを含むことができる。装置1507は、更に結像処理サブシステム(例えば、カメラ)を含むことができ、前記結像処理サブシステムは、写真及びビデオ断片の記録のようなカメラ機能を促進するための、電荷結合素子(CCD)又は相補型金属酸化物半導体(CMOS)光学センサのような光学センサを含むことができる。いくつかのセンサは、センサハブ(図示せず)を介してインターコネクト1510に接続されることができ、キーボード又はサーマルセンサのようなその他の装置はシステム1500の具体的な構成又は設計により、組込みコントローラ(図示せず)により制御されることができる。
【0069】
データ、アプリケーション、1つ又は複数のオペレーティングシステムなどの情報の永続性記憶を提供するために、プロセッサ1501には、大容量記憶装置(図示せず)が接続されることができる。様々な実施形態において、より薄くてより軽量なシステム設計を可能にしながら、システムの応答性を向上するために、このような大容量記憶装置は、ソリッドステート装置(SSD)によって実現されることができる。しかしながら、その他の実施形態において、大容量記憶装置は、主にハードディスクドライブ(HDD)を使用して実現することができ、より小さい容量のSSD記憶装置をSSDキャッシュとして機能することで、停電イベントの間にコンテキスト状態及び他のそのような情報の不揮発性記憶を可能にし、それによりシステム動作が再開するときに通電を速く実現することができる。また、フラッシュデバイスは、例えば、シリアルペリフェラルインターフェース(SPI)を介してプロセッサ1501に接続されることができる。このようなフラッシュデバイスは、前記システムのBIOS及びその他のファームウェアを含むシステムソフトウェアの不揮発性記憶のために機能することができる。
【0070】
記憶デバイス1508は、コンピュータアクセス可能な記憶媒体1509(機械可読記憶媒体又はコンピュータ可読媒体ともいう)を含むことができ、前記コンピュータアクセス可能な記憶媒体1509には、本明細書で記載されたいずれか1つ又は複数の方法又は機能を具現化する1つ又は複数の命令セット又はソフトウェア(例えば、モジュール、ユニット及び/又はロジック1528)が格納されている。処理モジュール/ユニット/ロジック1528は、例えば、
図3Aの楕円予測モジュール308など、前記構成要素のいずれかを表すことができる。処理モジュール/ユニット/ロジック1528は、更に、データ処理システム1500、メモリ1503及びプロセッサ1501による実行中に、メモリ1503内及び/又はプロセッサ1501内に完全的に又は少なくとも部分的に存在してもよく、データ処理システム1500、メモリ1503、及びプロセッサ1501も機械アクセス可能な記憶媒体を構成する。処理モジュール/ユニット/ロジック1528は、更に、ネットワークによってネットワークインターフェースデバイス1505を経由して送受信されてもよい。
【0071】
コンピュータ可読記憶媒体1509は、以上に説明されたいくつかのソフトウェア機能を永続的に格納するために用いることができる。コンピュータ可読記憶媒体1509は、例示的な実施形態において単一の媒体として示されるが、「コンピュータ可読記憶媒体」という用語は、前記1つ又は複数の命令セットが格納される単一の媒体又は複数の媒体(例えば、集中型又は分散型データベース及び/又は関連するキャッシュとサーバ)を含むと解釈されるものとする。「コンピュータ可読記憶媒体」という用語は、更に、命令セットを格納又は符号化できる任意の媒体を含むと解釈されるものであり、前記命令セットは機械により実行され、本発明のいずれか1つ又は複数の方法を前記機械に実行させるためのものである。それゆえに、「コンピュータ可読記憶媒体」という用語は、ソリッドステートメモリ、光学媒体及び磁気媒体、又はその他の任意の非一時的機械可読媒体を含むが、それらに限定されないと解釈されるものとする。
【0072】
本明細書に記載の処理モジュール/ユニット/ロジック1528、構成要素及びその他の特徴は、ディスクリートハードウェア構成要素として実現されてもよく、又はハードウェア構成要素(例えば、ASICS、FPGA、DSP又は類似の装置)の機能に統合されてもよい。さらに、処理モジュール/ユニット/ロジック1528は、ハードウェアデバイスにおけるファームウェア又は機能性回路として実現されていてもよい。また、処理モジュール/ユニット/ロジック1528は、ハードウェアデバイスとソフトウェア構成要素の任意の組み合わせで実現されてもよい。
【0073】
なお、システム1500は、データ処理システムの様々な構成要素を有するものとして示されているが、構成要素を相互接続する任意の特定のアーキテクチャ又は方式を表すことを意図するものではなく、そのような詳細は、本発明の実施形態とは密接な関係がない。また、より少ない構成要素又はより多くの構成要素を有するネットワークコンピュータ、ハンドヘルドコンピュータ、携帯電話、サーバ、及び/又はその他のデータ処理システムも、本発明の実施形態と一緒に使用可能であることを理解されたい。
【0074】
上述した具体的な説明の一部は、既に、コンピュータメモリにおけるデータビットに対する演算のアルゴリズムと記号表現により示された。これらのアルゴリズムの説明及び表現は、データ処理分野における当業者によって使用される、それらの作業実質を所属分野の他の当業者に最も効果的に伝達する方法である。本明細書では、一般的に、アルゴリズムは、所望の結果につながるセルフコンシステントシーケンスと考えられる。これらの操作は、物理量の物理的処置が必要とされるものである。
【0075】
しかしながら、念頭に置くべきなのは、これらの用語及び類似の用語の全ては、適切な物理量に関連付けられるものであり、これらの量を標識しやすくするためのものに過ぎない。以上の説明で他に明示的に記載されていない限り、本明細書の全体にわたって理解すべきなのは、用語(例えば、添付された特許請求の範囲に記載のもの)による説明とは、コンピュータシステム、又は類似の電子式計算装置の動作及び処理を指し、前記コンピュータシステム又は電子式計算装置は、コンピュータシステムのレジスタ及びメモリにおける物理(電子)量として示されたデータを制御するとともに、前記データをコンピュータシステムメモリ又はレジスタ又はこのようなその他の情報記憶装置、伝送又は表示装置において同様に物理量として示された別のデータに変換する。
【0076】
本発明の実施形態は、本明細書の操作を実行するための装置にも関する。このようなコンピュータプログラムは、非一時的コンピュータ可読媒体に格納される。機械可読媒体は、機械(例えば、コンピュータ)により読み取り可能な形式で情報を格納するための任意のメカニズムを含む。例えば、機械可読(例えば、コンピュータ可読)媒体は、機械(例えば、コンピュータ)可読記憶媒体(例えば、読み出し専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリ装置)を含む。
【0077】
上述した図面において説明されたプロセス又は方法は、ハードウェア(例えば、回路、専用ロジックなど)、ソフトウェア(例えば、非一時的コンピュータ可読媒体に具現化されるもの)、又は両方の組み合わせを含む処理ロジックにより実行されることができる。前記プロセス又は方法は、以上で特定の順序に応じて説明されたが、前記操作の一部が異なる順序で実行されてもよいことを理解されたい。また、一部の操作は、順番ではなく並行して実行されてもよい。
【0078】
本発明の実施形態は、いずれの特定のプログラミング言語を参照することなく記載されている。理解すべきことは、本明細書に記載の本発明の実施形態の教示を実現するために、様々なプログラミング言語を使用することができる。
【0079】
本明細書において、本発明の実施形態は、既にその具体的な例示的な実施形態を参照しながら記載された。明らかなように、添付された特許請求の範囲に記載された本発明のより広い趣旨及び範囲を逸脱しない限り、本発明に対して様々な変更を行うことができる。それゆえに、本明細書及び図面は、限定的な意味でなく、例示的な意味で理解されるべきである。