詳細な説明は、添付図面を参照して行われる。図面において、参照番号の左端の数字は、その参照番号が最初に現れる図面を識別する。異なる図面における同じ参照番号の使用は、類似または同一の項目または特徴を示す。
本明細書におけるいくつかの実施形態は、道路脇の交通標識を検出および認識し、車両に対する認識された交通標識の位置を決定することによって、道路端部および道路平面を検出することができる技術および構成に関する。本明細書に記載されているように、道路端部および道路平面の自動検出は、ADASおよび/または自律型および半自律型車両システムを可能にするための大きな利点を提供することができる。一例として、車両が道路を走行するとき、道路端部検出システムは、認識モジュールなどの認識ロジックを実行して、カメラまたは車両に取り付けられた他のセンサの視野内の交通標識の種類を認識することができる。道路端部検出システムは記憶装置にアクセスし、記憶装置は、データベースまたは他のデータ構造に交通標識情報を記憶することができる。記憶された交通標識情報は、認識された種類の交通標識の道路端部に対する特定の場所を示すことができる。道路端部検出システムは、車両に対する交通標識の決定された位置と、交通標識に対する道路端部の位置を示す記憶された交通標識情報とに基づいて、道路端部の位置を推定することができる。
いくつかの例では、道路端部検出のための技術は、最初に交通標識を検出して認識し、次いで記憶装置に記憶されている認識された交通標識に関する情報に基づいて道路端部を推定することを含み得る。さらに、検出された道路端部と記憶装置に記憶されている交通標識の高さ情報に少なくとも部分的に基づいて、道路平面を決定することができる。いくつかの例では、道路脇の交通標識を自動的に認識するために交通標識認識ロジックを実行することができる。例えば、車両に設置された1つ以上のカメラは、車両が道路上を走行するにつれてそれぞれの視野内の交通標識の画像を受信することができる。認識ロジックは、検出段階中に、受信した画像内の1つ以上の標識を最初に検出することができる。続いて、認識段階中に、検出された交通標識を特定の種類の交通標識として識別することができる。一例として、認識段階は、標識について標識の種類の認識を行うのに十分な標識に関する可視情報を得るために、標識の一連の後続の画像を通して検出された標識を追跡することを含み得る。例えば、続いて取り込まれた複数の画像を介して検出された標識を追跡することは、認識のために同じ標識の複数の異なる画像を提供することによって認識の精度を向上させることができる。さらに、一連の複数の画像を介して標識を追跡することにより、車両に対する標識の位置のより正確な決定、標識に対する道路端部のより正確な決定が可能になり、それによって車両に対する道路端部の見込み位置のより正確な決定が可能になる。
場合によっては、本明細書の実施形態は、車両によって記憶される交通標識情報の1つ以上のデータ構造を含む。交通標識情報データ構造は既知の種類の交通標識に関する情報を含み得、この情報は、道路端部に対して各種類の標識が配置される可能性が高い特定の距離および高さについての情報を含み得る。例えば、道路端部からの交通標識の横方向距離および道路表面からの交通標識の高さは、交通標識の種類に依存することがあり、特定の管轄区域または標識が配置されているその他の地理的地域に対して確立された標識配置仕様に基づいて既知であり得る。さらに、標識の配置は、田舎道、州間高速道路、企業内の道路、商業地域、または住宅地域など、車両が走行している道路の種類に部分的に基づいて決定され得る。したがって、特定の種類の交通標識として交通標識を認識することは、交通標識が他の方法では見えない場合であっても、道路端部の見込み位置を推定するのを助けるために使用することができる。
多くの異なる種類の交通標識があり、様々な目的のために様々な異なる道路脇の位置で使用される可能性がある。交通標識は、規制標識、警告標識、案内標識、サービス標識、建設標識、レクリエーション標識、歩行者/自転車標識、およびインシデント管理標識など、複数のグループに広く分類され得る。本明細書の認識ロジックは、標識の種類に従って1つ以上の取り込まれた画像内の標識を認識することができる。さらに、特定の種類の道路に対する各種類の交通標識の空間的配置は、概して、車両が走行する可能性がある各地理的管轄区域について指定される場合がある。例えば、道路表面からの交通標識の高さおよび道路端部からの交通標識の横方向配置は、交通標識の標識の種類に依存し得る。一例として、米国では、米国連邦道路管理局(FHWA)は、田舎道、高速道路、企業内の道路、商業地域、または住宅地域など、特定の種類の道路に関して、様々な異なる種類の交通標識の最小高さおよび最小横方向距離を通常指定することができる管轄エンティティである。したがって、本明細書における実施形態は、米国内の様々な州、および/またはヨーロッパ、アジア、または車両が位置し得る世界の他の地域における様々な異なる国など、様々な異なる地理的管轄区域の様々な異なる種類の交通標識について指定される高さおよび横方向距離を記憶する、1つ以上の標識情報データ構造を含み得る。
いくつかの例では、データ構造は、道路表面からの各標識の種類の高さおよび道路端部からの各標識の種類の横方向距離を含み得る、様々な異なる交通標識の種類の標識場所情報を記憶するルックアップテーブルを含んでいてもよい。このデータベースは、FHWA、州自動車管理局、他国の交通当局などのような様々な管轄エンティティから得られた情報を含み得る。さらに、場合によっては、データベースは、特定の地理的管轄区域などについて得られた経験的情報を含み得る。例えば、道路端部および他の道路の特徴に関する交通標識の位置についての情報は、天気の良い日に決定され、複数の車両の各車両のログに保持されてもよい。複数の車両からのログ情報は、サーバまたは他のサービスコンピューティングデバイスによって、特定の管轄区域について集約されてもよい。集約された経験的情報はその後車両に提供され、管轄エンティティから得られた標識情報を補足、増強、および/または置換するために使用されてもよい。例えば、すべての交通標識の位置と高さがFHWAによって提供される仕様に準拠しているとは限らない。したがって、道路端部が見えるときに複数の車両によって収集された経験的標識場所および道路情報は、道路端部が見えないときに道路端部の位置を決定するために後で使用することができる。したがって、本明細書における実施形態は、経験的データと管轄区域指定の標識場所データおよび道路データとの組み合わせを使用して生成される、コンピュータビジョン技術ならびに/または交通標識および道路情報の1つ以上のデータ構造を採用し得る。
説明の目的で、自律型および半自律型車両のための道路端部および道路平面を決定するための画像を分析する環境においていくつかの例示的な実施形態を説明する。しかしながら、本明細書における実施形態は、提供される特定の例に限定されず、本明細書の開示に照らして当業者には明らかなように、他の種類の感知装置、他の種類の車両、他の種類のデータなどに拡張され得る。
図1は、いくつかの実施形態による道路情報を検出する例100を示す。この例では、画像102は、車両(図1には示されていない)に搭載されたカメラなどのセンサによって取得することができる。画像102は、少なくとも部分的にカメラの視野に対応し得る。車両内の道路検出システムは、画像102を分析して道路および他の様々な特徴を認識することができる。例えば、画像102が取り込まれるとき、車両が第2の車両106の後ろの道路104に沿って走行していると仮定する。この例では、道路端部108が画像102内に見える。第1の車線指示線110および第2の車線指示線112も見える。したがって、第1の車線指示線110と道路端部108との間の領域は、道路104の路肩114であると決定され、第1の車線指示線110と第2の車線指示線112との間の領域は、走行車線116であると決定され得る。
さらに、この例では、道路検出システムが画像102内の交通標識118を認識したと仮定する。以下にさらに説明するように、道路検出システムは、交通標識118を使用して、道路端部108の位置を決定する、および/または位置を確認するのを助けることができる。例えば、交通標識118の標識の種類の認識に続いて、道路検出システムは、標識情報データ構造(図1には示されていない)を参照して、交通標識118から道路端部108までの見込み横方向距離120を決定することができ、道路端部108または他の道路表面からの交通標識118の見込み垂直高さ122を決定することができる。この情報に基づいて、道路検出システムは、道路端部108を認識しようと試みるべき画像の見込み目標領域を決定することができる。追加的にまたは代替的に、道路検出システムは、標識場所情報に基づいて信頼性の高いレベルで道路端部108を識別することができる。
さらに、交通標識118の場所および標識情報データ構造を使用せずに信頼性の閾値レベル内で道路端部108を識別することができる場合、道路検出システムは、道路端部108の位置を使用して標識118に関する場所情報を決定することができる。例えば、道路検出システムは画像102から、道路端部108からの交通標識118の横方向距離120を決定することができ、道路端部108または他の道路表面からの交通標識118の垂直高さ122を決定することができる。次いで、道路検出システムは、この情報を、GPS(全地球測位システム)受信機などから得ることができるような地理的位置情報と共にログに記憶することができる。その後、ログ情報は、ネットワーク接続を通じてサービスコンピューティングデバイス(図1には示されていない)にアップロードまたはそうでなければ送信することができ、サービスコンピューティングデバイスは、複数の車両からのログ情報を集約し、そのログ情報を使用して標識情報データ構造の精度を向上させることができる。
画像124に示すように、道路端部108は、道路平面126を検出するために少なくとも部分的に使用され得る。例えば、右側の道路端部108および左側の道路端部(図1には示されていない)の道路端部情報を使用して、道路平面126の左側および右側を定義することができ、すなわち、道路平面は、右側の道路端部108と左側の道路端部との間に延在し得る。道路端部や道路平面を検出することは、完全自律型車両と半自律型車両の両方に有用である。完全自律型車両の場合、画像124に示すように、道路端部および道路平面、ならびに車線指示線110、112の検出を使用して、空きスペース128を決定してもよい。この例では、道路検出システムは、第2の車線指示線112が道路の中心線であり、道路104は車両の方向における交通走行が中心線の右に留まるべき2車線道路であると決定したと仮定する。したがって、空きスペース128は、車両を運転可能な範囲を示す。他の例では、道路104が4車線に分割された高速道路である場合などに、空きスペース128は右側の道路端部108から左側の道路端部まで延在することがある。
半自律型車両の場合、車線逸脱警報、適応走行制御、緊急ブレーキなどのようないくつかのADAS用途に対して道路端部および道路平面の決定を使用することができる。例えば、車線逸脱警告を正しく機能させるには、通常、道路端部とそれに対応する車線指示線を決定することが有用である。さらに、道路平面の推定は、道路平面上に存在する可能性がある車両、自転車、歩行者などの道路内の障害物を検出するのを助けるために使用され得る。そのような検出は、適応走行制御および/または自動緊急ブレーキに使用することができる。例えば、図1の例では、道路平面126の決定は、車両106の検出、ならびに車両106までの距離および車両106の推定速度に役立つことができ、適応走行制御および/または自動緊急ブレーキシステムに使用することができる。道路脇の木や標識などの他の障害物は道路平面上には存在せず、そのため、通常、適応走行制御および/または自動緊急ブレーキシステムでは考慮されない。
図2は、いくつかの実施形態による、道路情報を検出する例200を示す。この例では、画像202は、車両に搭載されたカメラまたは他のセンサ(図2には示されていない)によって取得され得る。この例では、雪などのために道路端部がぼやけていると仮定する。このような場合、道路検出システムは、道路端部を検出することが困難である可能性があり、したがって、道路平面、走行車線、または空きスペースを検出することができない可能性がある。この例では、道路検出システムが交通標識118の標識の種類を検出し認識したと仮定する。さらに、道路検出システムが道路端部からの交通標識118の見込み横方向距離120および道路表面からの(したがって道路の平面からの)交通標識118の見込み垂直高さを決定したと仮定する。これらの測定値に基づいて、道路検出システムは、道路端部が位置する可能性が高い画像の目標探索領域206を決定することができる。したがって、道路検出システムは、画像202のより広い領域を分析する必要があるのではなく、この領域に焦点を合わせて道路端部を検出することができる。例えば、道路検出システムは、信頼性の閾値レベル内で推定道路端部210を決定するためなど、道路端部の見込み位置を検出するために、目標探索領域206内に見える特徴208を分析することに焦点を合わせてもよい。
さらに、道路端部の見込み位置に基づいて、道路検出システムは道路平面および左側の車線指示線を推定することができる。例えば、道路情報データ構造(図2には示されていない)は、管轄区域内の様々な異なる種類の道路について典型的な車線幅および路肩幅についての情報を含むことができる。道路検出システムは、この道路情報と、車両がどの道路を走行しているかを示すGPS情報と、車両のある道路の種類を示す地図情報とに基づいて、推定道路端部210から道路の推定中心線214までの横方向距離212を推定することができる。したがって、推定中心線214の位置および推定道路端部210の位置に基づいて、道路検出システムは、図1に関して上記に例示した空きスペースを決定することができる。
したがって、本明細書の実施形態は、交通標識118の認識された標識の種類に基づいて、特定の目標探索領域206を決定することができる。これは、道路検出システムが画像202のより広い領域ではなく目標探索領域206内でのみ画像202を明るさおよびテクスチャの変化、あるいは道路端部を示す他の視差および特徴について分析することができるため、一般に道路端部210のより速い検出を可能にする。さらに、道路端部の見込み位置を検出または推定することに加えて、道路検出システムは、走行車線を決定することができるように、道路の中央位置、例えば道路の中心線214を推定することもできる。さらに、場合によっては、本明細書の技術を使用して見込み走行車線を決定するときに、車両のサイズを考慮に入れることができる。例えば、車両がトラックまたはバスである場合、特に車両が運転中またはカーブに近づいているときに、車両が小型車であった場合よりも道路端部の推定は右に向かってより多くの誤差を生じ得る。
1つ以上の画像内のコントラスト、テクスチャ、端部、および他の特徴を検出することに基づいて1つ以上の画像内の道路端部を認識するために、コンピュータビジョン技術を使用することができる。場合によっては、道路が雪で覆われていなくても、従来のコンピュータビジョン技術を使用して1つ以上の画像内の道路端部を識別することは困難であり得る。これは、異なる道路状況および道路脇の状況、強度の変動、低コントラスト、またはその他の問題に起因し得る。場合によっては、画像内のテクスチャまたは他の特徴を決定するために、いくつかの閾値またはパラメータを使用することができる。これらの閾値は、長い処理時間を避けるために画像処理中一定に保たれることがある。例えば、場合によっては、変化する閾値を使用して道路端部をより適切に決定することができるが、これは通常、画像全体を分析するための処理時間が長いために行われないことがある。しかしながら、本明細書の実施形態では、目標探索領域206は、道路端部の正確な推定をより迅速に得るためにさらなる画像処理のための入力情報として使用されてもよい。
画像202内の道路端部についての目標探索領域206の決定に続いて、目標探索領域206の外側の領域を除外するように画像202を切り取るかまたは他の方法で操作することができる。特徴検出、端部検出、テクスチャ分析などの様々なコンピュータビジョン技術が、目標探索領域206に対応する切り取られた領域に対して行われてもよい。したがって、切り取られた画像の目標探索領域206はフル画像202よりも実質的に小さいため、本明細書の実施形態は、画像202のより大きな領域を探索する場合に比べてより少ない時間量の中で、様々な異なる閾値に従って、テクスチャ、端部、および他の特徴208について切り取られた画像の目標探索領域206をより迅速に探索することができる。これは、道路端部210の見込み位置を正確に推定するのに有用であり得る。さらに、上記の例はカメラによって取り込まれた画像の文脈で説明されているが、LIDAR、レーダ、および超音波センサなどのカメラに加えて、またはその代わりとして、他の種類のセンサを使用することができる。
図3は、いくつかの実施形態による、車両302に含まれ得る道路検出および車両制御システム300の例示的なアーキテクチャを示す。システム300は、複数の認識構成要素304、および複数の制御構成要素306を含む。一緒に、認識構成要素304および制御構成要素306は、道路を検出し、道路に沿って自律的および/または半半自律的ナビゲーションを行い、ADAS機能を実行するなどのために車両302によって使用され得る。さらに、この例では認識構成要素304および制御構成要素306は互いに別々に示されているが、他の例では、これらの構成要素のいくつかが組み合わされてもよく、異なる構成で提供されてもよく、および/またはいくつかの機能が異なる構成要素によって提供されてもよい。したがって、本明細書の実施形態は、例示した特定のシステムおよびハードウェア構成に限定されず、本明細書の開示の恩恵を受ける当業者には明らかであるように様々な他の構成に拡張され得る。
認識構成要素304は、この例における1つ以上の車両カメラ308(1)〜308(N)などの1つ以上のセンサを含むことができる。例えば、車両カメラ308は、モノラルカメラ、ステレオカメラ、および/または複数のカメラを含むことができ、これらは1つ以上の位置で車両に設置することができる。車両カメラ308は、例えば前向きの方向、後向きの方向、および横向きの方向で、車両の周囲の複数の画像310を連続的に取り込むことができる。例えば、各カメラ308は、毎秒指定された数の画像310を取り込むことができる。いくつかの例では、画像取り込み速度は車両の速度または他の変数に関連してもよく、他の例では、画像取り込み速度は一定であってもよい。
さらに、認識構成要素304は、車両302の地理的位置に関する位置情報314を継続的に受信することができるGPS受信機312を含む。カメラ308によって取り込まれた画像310およびGPS受信機312からの位置情報314は、最初にRAM(ランダムアクセスメモリ)312または他のコンピュータ可読媒体(CRM)に記憶されてもよい。画像310および位置情報314は、本明細書の認識機能を行うために1つ以上のプロセッサ318によってアクセスすることができる。例えば、1つ以上のプロセッサ318でプログラムROM(読み出し専用メモリ)322または他のCRMに記憶されているかそうでなければ維持されている認識モジュール320を実行して、道路端部、道路平面、空きスペース、走行車線および/またはその他の道路情報を認識することができる。
認識モジュール320は、本明細書に記載の1つ以上のアルゴリズムを含むことができ、それらのアルゴリズムは、1つ以上のプロセッサ318によって実行される。さらに、認識モジュール320の実行中に、認識モジュール320は、認識モジュール312によって使用されるデータおよび/またはデータ構造を含むメモリまたは他のCRMなどの記憶装置324にアクセスすることができる。認識モジュール320によって使用されるデータおよびデータ構造の例は、地図情報326、1つ以上の標識情報データ構造328、1つ以上の道路情報データ構造330を含む。
上述したように、認識モジュール320は、交通標識の標識の種類、および車両の座標系または他の基準系に対する交通標識の位置を決定することによってなど、道路脇の交通標識を認識するために1つ以上のプロセッサ318によって実行され得る。その後、交通標識が認識され、場合によっては、標識情報データ構造328に含まれる識別された交通標識に関する情報、車両からの交通標識の推定距離、ならびに認識モジュール320によって決定された交通標識の横方向および垂直方向の測定値に基づいて、道路端部情報332が決定されてもよい。
さらに、1つ以上の見込み道路端部についての道路端部情報332に部分的に基づいて、道路平面および/または空きスペース情報334も決定することができる。いくつかの例では、地図情報326および地理的位置情報314を使用して、車両302が走行している道路の種類を決定することができ、その情報を道路情報データ構造330と共に使用して、道路の種類、中心線の位置、道路の幅、走行車線の幅、路肩の幅などのうちの1つ以上を決定することができる。あるいは、道路端部および/または道路情報に対する標識の位置が高い信頼度(例えば、85%、90%、またはそれ以上)で画像310のうちの1つ以上から決定され得る場合などには、認識モジュール320は、この標識場所情報および/または道路情報を標識および道路データログ336に記憶することができる。
いくつかの例では、カメラの視野は、車両の前の道路および任意の道路脇の物体を取り込むのに十分に広くてもよい。画像310が取り込まれた後、認識モジュールは取り込まれた画像を前処理してノイズを減らすことができる。次に、前処理した画像をコンピュータビジョン技術を使用して分析し、画像内の標識の検出を試みてもよい。標識が第1の信頼性の閾値レベル内で画像310内で検出された場合、次いで認識分類子を使用して、検出された標識を第2のより高い信頼性の閾値レベル内の特定の種類の交通標識として識別してもよい。いくつかの例では、複数の取り込まれた画像310にわたる追跡技術を使用して、標識を認識し、画像上の標識位置を決定して、単一の画像の使用よりも標識検出性能を向上させることができる。さらに、いくつかの例では、認識モジュールは、例えば同じ測定点の画像を複数のカメラ308によって撮像するときに得ることができる、複数の視点から撮影した画像の差(「視差」)を使用することができる。例えば、認識モジュールは、第1の画像内の標識の第1の場所と第2の画像内の標識の第2の場所との差に少なくとも部分的に基づいて、車両に対する道路端部の見込み位置を決定することができ、例えば、第1の画像は第1のカメラによって、またはステレオカメラの第1の開口部を通して撮影され、第2の画像は第2のカメラによってまたはステレオカメラの第2の開口部を通して撮影される。したがって、認識モジュールは、三角測量の原理に基づいて、標識、道路端部、または他の道路の特徴までの距離を取得することができる。例えば、目標までの距離をZ、カメラ間(またはステレオカメラの2つの開口部間)の距離をB、カメラの焦点距離をf、視差をδとすると、目標Zまでの距離はZ=B×f/δ(式1)の式によって得ることができる。
それに加えて、またはその代わりに、他のコンピュータビジョン技術を使用して、例えば取り込まれた画像内の標識の場所、画像の視野に対する標識のサイズ、車両が既知の速度で前進するときのある画像から次の画像への視野内の標識のサイズおよび場所の変化などに基づいて、車両の基準系に対する標識の場所を決定することができる。したがって、これらのおよび/または他の技術を使用して、認識モジュール320は、道路端部または道路端部が予想される位置までの認識された標識の横方向距離を測定することができる。同様に、認識モジュールは、道路端部上または道路端部が予想される位置上の認識された標識の垂直高さ、ならびに他の距離、例えば標識までの距離、道路の幅、路肩の幅、走行車線の幅などを決定することができる。
上述のように、いくつかの例では、認識モジュール320は、標識データ構造328に含まれる標識位置情報に少なくとも部分的に基づいて、道路端部情報332ならびに道路平面および/または空きスペース情報334を検出することができる。あるいは、他の例では、認識モジュール320は、標識データ構造内の標識情報に頼ることなく、他のコンピュータビジョン技術を使用して道路端部を検出することができてもよい。そのような場合には、道路端部が信頼性の閾値レベル内で検出され、認識モジュール320は、検出された道路端部に対する標識の場所を決定することができ、標識と道路端部との間の横方向距離、および道路表面から標識までの垂直距離を標識および道路データログ336に記録することができる。車両の現在の地理的位置(およびそれによる標識の地理的位置)も標識/道路データログに記録することができる。さらに、いくつかの例では、道路端部からの道路の幅、走行車線の幅、路肩の幅、および/または空きスペースの幅も、ログ336に定期的に記録することができる。
道路端部情報332ならびに/または道路平面および/もしくは空きスペース情報334が決定された後、この情報は制御構成要素306に利用可能にすることができる。制御構成要素306は、1つ以上のプロセッサ340およびRAM342を含み得る。プログラムROM346または他のCRMに記憶されているかそうでなければ維持されている制御モジュール344は、本明細書で説明されている制御機能を行うために1つ以上のプロセッサ340によって実行され得る。例えば、制御モジュール344は、1つ以上の制御機能を行うために制御モジュール344で使用することができる道路端部情報332と道路平面および/または空きスペース情報334とを含む記憶装置348にアクセスすることができる。いくつかの例では、記憶装置348は、共有記憶装置、例えば共有メモリまたは他の共有CRMなどの記憶装置324と同じであり得る。他の例では、記憶装置348は記憶装置324とは別個であり得る。さらに、場合によっては、道路端部情報332ならびに/または道路平面および/もしくは空きスペース情報334は、プロセッサ318からプロセッサ340に直接送信され、制御モジュール344で使用するためにRAM342に記憶されてもよい。さらに、記憶装置348は、位置情報314および制御モジュールによって使用される様々な他のデータ型(本明細書では他の制御データ350と呼ぶ)を記憶することができる。
道路端部情報332ならびに道路平面および/または空きスペース情報334に基づいて、制御モジュール344は、1つ以上の制御信号または他の情報を含み得る制御情報354を生成することができる。例えば、制御情報354を、ステアリング358、ブレーキ360、および/またはスロットル(エンジンまたはモータ速度制御)362などの1つ以上の車両駆動構成要素356に送信することができる。したがって、制御モジュール344は、車両を操舵するため、車両を制動するため、および/または車両の速度を制御するための1つ以上の制御信号を生成することができる。追加的または代替的に、制御モジュール344は、1つ以上の警告装置364に制御信号を送信するための制御情報354を生成することができる。警告装置364の例は、可聴警報を生成することができるスピーカ、振動もしくは他の種類の触覚警報を生成することができる触覚装置(例えば、座席またはステアリングホイール内)、および/または可視警報を生成することができる可視信号装置を含む。
さらに、制御情報354をディスプレイ366に送信することができ、ディスプレイ366は、道路、車両の進路などに関する情報を乗員に提供するなどのために、車両302の乗員に情報を提示することができる。いくつかの例では、画像310のうちの1つ以上もディスプレイ366上に提示することができ、制御情報354を画像310の上にオーバーレイするか、そうでなければ画像310を強調するために使用することができる。ディスプレイ366は、例えば、液晶ディスプレイ、有機LEDディスプレイなどの表示装置とすることができる。ディスプレイ366は、制御モジュール340の制御下で、ナビゲーションシステム(図示せず)用の走行経路の画像および/または画像310のうちの1つ以上などの様々な画像を表示することができる。さらに、制御モジュール340が警告を含む制御信号354を生成すると、警告に関連する情報がディスプレイ366に提示されてもよい。
加えて、いくつかの例では、現在の車両速度368または他の情報が、スロットル制御、速度計などの車両内の他のサブシステムから制御モジュール340に入力されてもよい。例えば、制御情報354を決定するために車両速度368を少なくとも少なくとも部分的に使用することができる。
さらに、イグニッションスイッチ370の状態は、道路検出を行うかどうかの認識モジュール320および/または制御モジュール344に対する指標になり得る。
例えば、イグニッションスイッチ370がオンになったときに一連の処理動作が開始され、イグニッションスイッチ370がオフになるまで繰り返し行われてもよい。場合によっては、車両302が走行中であるか停止中であるかにかかわらず、一連の処理動作が行われてもよい。例えば、イグニッションスイッチ370がオンになると、認識モジュール320は、カメラ308を使用して画像310を取り込み、取り込まれた画像310を分析して道路端部および他の道路の特徴を検出することによってなど、1つ以上のプロセスの実行を開始することができる。場合によっては、カメラ308を使用して、イグニッションスイッチがオン位置にある間、画像310を連続的に取り込むことができる。
いくつかの例では、プロセッサ318および/または340は、車両302内の1つまたは電子制御ユニット(ECU)に含まれるプロセッサであってもよい。例えば、ECUは、車両内のシステム、サブシステム、または構成要素のうちの1つ以上を制御する組込みシステムの総称である。各ECUは、1つ以上のプロセッサ、メモリ、ならびにデジタルおよび/またはアナログ通信インターフェース(図3には示されていない)を含み得る。特定のECUによって実行するための認識モジュール320および制御モジュール344などのソフトウェアは、それぞれのECUに関連付けられたメモリ(例えばプログラムROM)の一部に記憶されて、ECUが組込みシステムとして動作することを可能にしてもよい。ECUは通常、車両バスプロトコルに従って車両バス372を介して互いに通信することができる。一例として、コントローラエリアネットワークバス(CANバス)プロトコルは、ホストコンピュータなしでECUおよび他の装置が互いに通信することを可能にする車両バスプロトコルである。CANバスは少なくとも2つの異なる種類を含み得る。例えば、高速CANはバスが環境の一端から他端まで走るアプリケーションで使用することができ、一方、耐障害性CANはノードのグループが互いに接続されている場合によく使用される。あるいは、いくつかの例では、プロセッサ318および/または340は、中央処理装置(CPU)、グラフィック処理装置(GPU)、マイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタル信号プロセッサ、状態機械、論理回路など、他の種類のコンピューティングデバイスを含み得る。
さらに、記憶装置324および348は、RAM、ROM、EEPROM、フラッシュメモリ、または他のメモリ技術、光学記憶装置、固体記憶装置、磁気デバイス記憶装置、または所望の情報を記憶するために使用することができ、かつコンピューティングデバイスによってアクセスすることができる他の任意の媒体を含むことができるが、それらに限定されない。認識構成要素および制御構成要素の構成に応じて、記憶装置324および348は、一種のコンピュータ可読記憶媒体、および/または有形の非一時的媒体であってもよく、ただし、言及された場合には非一時的コンピュータ可読媒体は、エネルギー、搬送波信号、電磁波、および/または信号自体などの媒体を除外する。
さらに、いくつかの実施形態では、車両302内で実行される認識モジュール320または他のモジュールは、1つ以上のネットワーク378を介して1つ以上のサービスコンピューティングデバイス380と通信するように構成され得る。例えば、認識モジュール320は、1つ以上のネットワーク378を介して標識および道路データログ336の一部または全部をサービスコンピューティングデバイス380に送信することができる。サービスコンピューティングデバイス380は、1つ以上のプロセッサ382および1つ以上のCRM384を含み得る。
サービスコンピューティングデバイス380は、複数の車両302から標識および道路データログ336を受信し、受信したログ情報を集約された経験的標識および道路データ386として集約することができる。上述のように、各車両によって記録された標識および道路データログ336は、各車両が認識した様々な種類の交通標識、認識された各標識の道路端部からの距離、認識された各標識の道路表面からの高さ、および認識された標識の地理的位置に関する情報を含み得る。加えて、標識および道路データログ336は、様々な位置における(例えば、認識された標識に隣接する、または定期的に決定されるような他の場所における)検出された道路の幅、道路端部から道路の中心線までの距離、道路端部からの路肩の幅、走行車線の幅、道路の空きスペースなど、各車両302によって決定される道路情報を含み得る。
サービスコンピューティングデバイス380は、複数の受信した標識および道路データログ336からの情報を集約して、様々な異なる管轄区域および様々な異なる場所における道路端部からの様々な異なる種類の標識の実際の距離を決定することができる。場合によっては、サービスコンピューティングデバイスは、各管轄区域について各標識の種類に関連付けられた距離の範囲を決定することができる。例えば、サービスコンピューティングデバイスは、特定の状態において、田舎道の警告標識は、路肩がない場合には道路端部から13〜14フィートの間、または路肩がある場合には道路端部から7〜8フィートの間にある可能性が高いと判断することができる。他の場合では、サービスコンピューティングデバイス380は、道路端部からの横方向距離、および特定の道路上の特定の地理的位置における特定の標識の高さ、ならびに特定の地理的位置における道路、走行車線などの特定の幅を含む、より詳細なデータ構造をコンパイルすることができる。サービスコンピューティングデバイス380は、集約された経験的標識および道路データ386に基づいて、標識情報データ構造328および道路情報データ構造330を更新するか、そうでなければ生成することができる。サービスコンピューティングデバイス380は、これらの更新されたデータ構造328および330を車両302に送信することができ、認識モジュールは、道路端部、空きスペースなどを決定するときに更新されたデータ構造328および330を使用することができる。
車両302は、1つ以上のネットワーク378と無線で、または場合によっては有線接続を介して通信することができてもよい。1つ以上のネットワーク378は、インターネットなどの広域ネットワーク(WAN)、セルラーネットワークなどの無線ネットワーク、Wi−Fiなどのローカル無線ネットワーク、および/または短距離無線通信、光ファイバ、イーサネット(登録商標)もしくは任意の他のそのようなネットワークを含む有線ネットワーク、直接有線接続、またはそれらの任意の組み合わせを含む任意の種類のネットワークを含むことができる。したがって、1つ以上のネットワーク378は、有線および/または無線通信技術の両方を含み得る。そのような通信に使用される構成要素は、少なくとも部分的にネットワークの種類に依存する可能性がある。そのようなネットワークを介して通信するためのプロトコルは周知であり、本明細書では詳細に説明しない。したがって、車両302およびサービスコンピューティングデバイス380は、無線接続、および無線接続と有線接続との組み合わせを介して1つ以上のネットワーク378を介して通信することができる。
いくつかの例では、1つ以上のサービスコンピューティングデバイス380は、任意の数の方法で実施することができる1つ以上のサーバまたは他の種類のコンピューティングデバイスを含むことができる。例えば、サーバの場合、機能コンポーネントおよびデータ記憶装置は、単一のサーバ、サーバのクラスタ、サーバファームまたはデータセンタなどで実施することができるが、他のコンピュータアーキテクチャも追加的または代替的に使用することができる。
各プロセッサ382は、単一の処理装置または複数の処理装置とすることができ、単一または複数のコンピューティングユニット、または複数の処理コアを含むことができる。プロセッサ382は、1つ以上の中央処理装置、マイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタル信号プロセッサ、状態機械、論理回路、グラフィック処理装置、および/または動作命令に基づいて信号を操作する任意の装置として実施できる。例えば、プロセッサ382は、本明細書に記載のアルゴリズムおよびプロセスを実行するように特にプログラムまたは構成された任意の適切な種類の1つ以上のハードウェアプロセッサおよび/または論理回路とすることができる。プロセッサ382は、CRM384に記憶されているコンピュータ可読命令をフェッチして実行するように構成することができ、これによってプロセッサ382を本明細書で説明する機能を行うようにプログラムすることができる。
CRM384は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の種類の技術で実施された揮発性および不揮発性メモリならびに/または取り外し可能な媒体および固定の媒体を含むことができる。例えば、CRM384は、RAM、ROM、EEPROM、フラッシュメモリ、または他のメモリ技術、光学記憶装置、固体記憶装置、磁気テープ記憶装置、磁気ディスク記憶装置、RAID記憶装置システム、記憶装置アレイ、ネットワーク接続記憶装置、記憶装置エリアネットワーク、または所望の情報を記憶するために使用することができ、かつコンピューティングデバイスによってアクセスすることができる他の任意の媒体を含むことができるが、それらに限定されない。サービスコンピューティングデバイス380の構成に応じて、CRM384は、一種のコンピュータ可読記憶媒体、および/または有形の非一時的媒体であってもよく、ただし、言及された場合には非一時的コンピュータ可読媒体は、エネルギー、搬送波信号、電磁波、および/または信号自体などの媒体を除外する。さらに、コンピューティングデバイス380は、他の多くの論理構成要素、プログラム構成要素、および物理構成要素を含むことができるが、上記のものは本明細書の説明に関連する単なる例に過ぎない。
さらに、図3は単一の場所に存在するものとしてサービスコンピューティングデバイス380の構成要素およびデータを示しているが、これらの構成要素およびデータは任意の方法で異なるコンピューティングデバイスおよび異なる場所にわたって分散してもよい。したがって、これらの機能は、1つ以上のコンピューティングデバイスによって実施することができ、上記の様々な機能は、種々のコンピューティングデバイスにわたって様々な方法で分散される。
図4A〜図4Bおよび図5A〜図5Bは、いくつかの実施形態による、管轄エンティティから入手可能な交通標識場所情報の例を示す。例えば、サービスコンピューティングデバイスは、図2に関して上述したように、道路端部が位置する可能性が高い領域を推定するために車両によって使用され得る標識の場所および距離仕様のデータベースをコンパイルするために様々な異なる管轄区域からの情報を取得することができる。そのような情報の1つの情報源は、FHWAによって発行された「統一交通管制装置に関するマニュアル(Manual on Uniform Traffic Control Devices)」(MUTCD)である。MUTCDには、米国の交通管制装置の推奨構成が含まれている。様々な管轄区域から取得した情報は、例えば図3に関して上述したように取得した経験的データを使用してより正確にすることができるか、そうでなければ更新することができる。
図4Aは、いくつかの実施形態による、田舎地域における一時停止標識402について管轄エンティティから取得した仕様例400を示す。この例では、仕様は舗装された路肩のない道路に対するものである。したがって、この場合の道路端部404は走行車線の端部でもある。図4Aの仕様によって示されるように、標識402から道路端部404までの横方向距離は、406で示すように最小12フィートである。さらに、道路端部404からの標識402の垂直高さは、408で示すように最小5フィートである。
図4Bは、いくつかの実施形態による、田舎地域における警告標識422について管轄エンティティから取得した仕様例420を示す。この例では、仕様は、舗装された路肩424を含む道路に対するものである。したがって、この状況における道路端部426は、路肩424の端部であり得る。図4Bの仕様によって示されるように、標識422から道路端部426までの横方向距離は、428で示すように最小6フィートである。さらに、標識422から走行車線の端部430までの横方向距離は、432で示すように最小12フィートである。さらに、走行車線の端部430における道路表面からの標識422の垂直高さは、434に示すように最小5フィートである。
図5Aは、いくつかの実施形態による、高速道路またはフリーウェイ上の案内標識502について管轄エンティティから取得した例示的な仕様500を示す。この例では、仕様は、舗装された路肩504を含む道路に対するものである。したがって、この状況における道路端部506は、路肩504の端部であり得る。図5Aの仕様によって示されるように、標識502から道路端部506までの横方向距離は、508で示すように最小6フィートである。さらに、標識502から走行車線の端部510までの横方向距離は、512で示すように最小12フィートである。さらに、走行車線の端部510からの標識502の垂直高さは、514で示すように最小8フィートである。さらに、この例では、より小さい第2の標識516が標識502の下に取り付けられており、走行車線の端部510における道路表面からの第2の標識516の垂直高さは、518で示すように最小5フィートである。
図5Bは、いくつかの実施形態による、頭上案内標識522について管轄エンティティから取得した仕様例520を示す。この例では、仕様は、舗装された路肩524を含む道路に対するものである。したがって、この状況における道路端部526は、路肩524の端部であり得る。図5Aの仕様によって示されるように、標識522を支持するポール528から道路端部526までの横方向距離は、530で示すように最小6フィートである。さらに、走行車線の道路表面532からの標識522の垂直高さは、534で示すように最小8フィートである。
図6A〜図6Bは、いくつかの実施形態による、様々な種類の交差点における交通標識場所情報を決定するために使用され得る交差点情報の例を示す。例えば、上述のように、いくつかの交通標識の場所(例えば、横方向の距離および高さ)は、道路の種類(例えば、フリーウェイ、都市道路、田舎道など)および交差点の種類に依存し得る。したがって、本明細書の実施形態は、(例えばGPS受信機を使用して)車両の地理的位置を事前に決定し、その地理的位置を地図情報と比較して道路および/または交差点の種類を決定することができる。
図6Aは、第1の道路602が第2の道路604と斜めの角度で交差する例示的な交差点600を示す。この例では、一時停止標識606は、第1の道路602の端部610から最小で第1の距離608に配置されるように指定されている。さらに、一時停止標識606は、第2の道路604の端部614から最小で第2の距離612に配置されるように指定されている。したがって、交差点600に接近する車両616は、本明細書で論じる技術を使用して標識606までの距離618を決定することができ、さらに距離608に基づいて道路端部610の位置を決定することができ、またはその逆も同様である。
図6Bは、第1の道路622が第2の道路624と直角に交差する例示的な交差点620を示す。第1の道路622は小道路であり得、第2の道路624は主要道路であり得る。この例では、一時停止標識626は、第1の道路622の端部630から最小で第1の距離628に配置されるように指定されている。さらに、一時停止標識626は、第2の道路624の端部634から最小で第2の距離632に配置されるように指定されている。したがって、交差点600に接近する車両636は、本明細書で論じる技術を使用して標識626までの距離638を決定することができ、さらに距離628に基づいて道路端部630の位置を決定することができ、またはその逆も可能である。
場合によっては、道路端部について探索される画像内の目標探索領域は、例えば認識された標識の種類に基づいて異なり得る。第1の例として、道路検出システムによって認識された標識が交通速度制限標識であると仮定する。したがって、この例では、図2に関して上述したように、道路検出システムは、道路端部の目標探索領域206が車両の運転方向(例えば走行方向に対応する長手方向)に確立されるように、画像202内に目標探索領域206を確立することができる。一方、第2の例として、図6Bに示すように、認識された標識が「一時停止」標識であると仮定する。この第2の例では、道路検出システムは、走行方向に対して横方向の目標探索領域を含むように画像202内の道路端部の目標探索領域206を決定することができる。したがって、目標探索領域206は、例えば、走行の長手方向で道路端部を探索することに加えて、またはその代わりとして、走行方向に対して横方向に探索するために、車両の走行方向と交差する領域を含むことができる。例えば、横方向の探索は、車両が接近している交差点または交差道路の道路端部または他の特徴を識別するように行うことができる。
図7は、いくつかの実施形態による、標識情報を記憶するための例示的な標識情報データ構造328を示す。この例では、標識情報データ構造は、第1の管轄区域702と第2の管轄区域704とを含む複数の地理的管轄区域の標識情報を含む。例えば、データ構造328は、標識の種類706、道路端部からの横方向距離708、および道路表面710からの高さ710を含むことができる。例えば、道路端部からの横方向距離708は、道路が舗装された路肩を含む場合には路肩の端部まで、そうでなければ道路の舗装された端部までであり得る。さらに、高さ710は路肩を考慮するかどうかを指定することができる。
いくつかの例では、データ構造328に入力された情報は、最初に、米国のFHWAまたは州の自動車部門、または他国の同様のエンティティなどの管轄エンティティから取得することができる。信頼性の閾値レベル内で道路端部を検出することができ、次いで特定の地理的管轄区域における実際の異なる種類の標識の実際の横方向および垂直方向の距離を決定することができる複数の車両から受信した経験的データに基づいて、情報をその後補足、変更、またはそうでなければ更新することができる。上述のように、遠隔サービスコンピューティングデバイスは、複数の車両からの経験的データを集約してもよく、エントリを横方向距離および個々の標識の種類の高さについての見込み範囲などに変更してもよい。
例えば、第2の管轄区域704において、サービスコンピューティングデバイスは、集約された経験的データに基づいて、第2の管轄区域の舗装された路肩のない田舎道での一時停止標識が、道路端部からの横方向距離13〜15フィート、道路表面からの垂直距離5〜6フィートである可能性が高いと判断したと仮定する。このように、サービスコンピューティングデバイスは、経験的データに従って、データ構造328内の第2の管轄区域について708および710のエントリを変更することができる。場合によっては、サービスコンピューティングデバイスは、例えば、管轄区域提供データと経験的データとの間に矛盾がないことを確実にする、管轄区域提供データと経験的データとに異なる重みを与えるなどによって、管轄区域提供データと経験的データとの両方を考慮することができる。さらに、図7は、標識情報を記憶するためのデータ構造328の一例を示しているが、多数の他のデータ構造、データベース、記憶されるデータ型などは、本明細書の開示の利益を有する当業者には明らかであろう。
図8は、いくつかの実施形態による、道路情報を記憶するための例示的な道路情報データ構造330を示す。この例では、道路情報データ構造330は、第1の管轄区域802と第2の管轄区域804とを含む複数の地理的管轄区域についての道路情報を含む。例えば、データ構造330は、道路の種類806、右道路端部から中心線までの距離808、道路表面の幅810、走行車線の幅812、および路肩の幅814を含み得る。例えば、右道路端部から中心線までの距離808は、道路が舗装された路肩を含む場合には路肩の端部から測定することができるか、そうでなければ、2車線道路の場合などには道路の舗装された端部から道路の中心線までを測定することができる。さらに、道路の幅810は道路の全幅を指定し、走行車線の幅812は走行車線の幅を指定し、路肩の幅814は舗装された路肩があればその幅を指定する。
いくつかの例では、データ構造330に入力される情報は、最初に、米国のFHWAまたは州の自動車部門、または他国の同様のエンティティなどの管轄エンティティから取得することができる。信頼性の閾値レベル内で道路端部、道路平面および他の道路情報を検出することができ、次いで特定の地理的管轄区域における道路の特徴の実際の距離を決定することができる複数の車両から受信した経験的データに基づいて、情報をその後補足、変更、またはそうでなければ更新することができる。上述のように、リモートサービスコンピューティングデバイスは、複数の車両からの経験的データを集約し、第2の管轄区域804に田舎道について示すように、データ構造330のエントリをエントリの見込み範囲などに更新することができる。場合によっては、サービスコンピューティングデバイスは、例えば、管轄区域提供データと経験的データとの間に矛盾がないことを確実にする、管轄区域提供データと経験的データとに異なる重みを与えるなどによって、管轄区域提供データと経験的データとの両方を考慮することができる。さらに、図8は、道路情報を記憶するためのデータ構造330の一例を示しているが、多数の他のデータ構造、データベース、記憶されるデータ型などは、本明細書の開示の利益を有する当業者には明らかであろう。
図9〜図11は、いくつかの実施形態による例示的なプロセスを示す図である。プロセスは、一連の動作を表す論理フロー図のブロックの集まりとして例示されており、その一部または全部は、ハードウェア、ソフトウェア、またはそれらの組み合わせで実施することができる。ソフトウェアの文脈では、ブロックは、1つ以上のコンピュータ可読媒体に記憶されたコンピュータ実行可能命令を表すことができ、1つ以上のプロセッサによって実行されると列挙された動作を実行するようにプロセッサをプログラムする。一般に、コンピュータ実行可能命令は、特定の機能を行うかまたは特定のデータ型を実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。ブロックが記載されている順序は、限定として解釈されるべきではない。説明されたブロックはいくつでも任意の順序でおよび/または並行して組み合わせてプロセスまたは代替プロセスを実施することができ、すべてのブロックを実行する必要はない。説明のために、プロセスは、本明細書の例に記載されている環境、フレームワーク、およびシステムを参照して説明されているが、プロセスは、多種多様な他の環境、フレームワーク、およびシステムで実施され得る。
図9は、いくつかの実施形態による、検出された道路端部に基づいて車両を制御するための例示的なプロセス900を示す流れ図である。いくつかの例では、プロセス900は、認識モジュールおよび制御モジュールを実行する1つ以上のプロセッサによって行うことができる。画像が取り込まれた後、認識モジュールは、標識を検出し、その標識の標識の種類を認識するように実行することができる。標識が検出され認識された場合、標識情報データ構造にアクセスして、GPSデータおよび認識された標識の種類に基づいて見込み道路端部の位置および道路の高さが決定される。道路平面は、道路端部および道路の高さを使用して計算することができる。
さらに、本明細書における実施形態は、道路の両側の標識を検出し認識することができる。例えば、交通標識の標識の種類は、典型的には標識の形状によって認識することができる。さらに、交通標識の裏側は、通常、テキストまたは記号の存在、あるいはそれらの欠如、ポールまたは他の支持体の位置などに基づいて、正面と区別することができる。したがって、場合によっては、道路の左側および右側の両方の道路端部は、道路の左側および右側の両方の認識された標識に基づいて推定され得る。道路平面は、2つの道路端部の間に存在する可能性が高い平坦なまたは通常は曲線的な道路表面を考慮して計算することができる。さらに、場合によっては、認識された標識から横方向距離を決定するために、システムは、例えば、ステレオカメラ、複数のカメラ、または異なる時点で(例えば、車両が既知の速度で移動するときに)撮影された複数の画像を使用することによって、1つ以上のセンサによって取り込まれた1つ以上の画像から、および/または異なる視点から得られた2つの画像間で決定される視差に基づいて、3D深度マップを生成することができる。1つ以上の画像は、車両の位置に対する道路端部の位置を決定するために、車両の基準系に関連していてもよい。
902で、1つ以上のプロセッサは、1つ以上のセンサから1つ以上の画像を受信することができる。例えば、センサが1つ以上のカメラを含む場合、画像は、可視光、赤外光、またはその両方を使用して取得することができる。さらに、1つ以上の画像は、追加的にまたは代替的に、他の感知技術、またはその組み合わせ、例えばLIDAR、レーダ、超音波などを使用して取得することができる。
904で、1つ以上のプロセッサは、1つ以上の画像を使用して標識認識を行うことができる。例示的な標識認識アルゴリズムおよびプロセスは、図10に関して以下でさらに説明する。
906で、1つ以上のプロセッサは、標識が認識されたかどうかを判断することができる。標識が認識された場合、プロセスはブロック908に進むことができる。そうでない場合、プロセスはブロック902に戻って1つ以上の追加の画像を受信することができる。
908で、標識が認識された場合、1つ以上のプロセッサは、認識された交通標識の標識の種類を決定することができる。
910で、1つ以上のプロセッサはGPS受信機からGPS情報を受信することができる。例えば、GPS情報は、車両の地理的位置および認識された標識の地理的位置を決定するために地図情報と共に使用されてもよい。
912で、1つ以上のプロセッサは、記憶されている標識情報のデータ構造から、認識された標識の種類に関連する標識情報を取得することができる。さらに、場合によっては、データ構造は、例えば異なる州、異なる国などについて、異なる地理的管轄区域に基づいて異なる情報を含むことができる。さらに、いくつかの例では、標識情報は、データ構造を強化またはそうでなければ更新するために複数の車両によって収集され、集約された実際に測定された標識の場所に関する経験的収集データに基づいて、より正確になり得る。したがって、認識された標識の種類に関する情報は、認識された標識の標識の種類および地理的位置情報に基づいてデータ構造から検索することができ、道路端部からの標識の最小距離および高さ、道路端部からの標識の見込み距離と高さ、道路端部からの標識の見込み距離と高さの範囲などの情報を含むことができる。
914で、1つ以上のプロセッサは、車両の基準系に対する標識情報および標識の場所に少なくとも部分的に基づいて、道路端部の位置および高さを決定することができる。いくつかの例では、1つ以上のプロセッサは、1つ以上の画像に基づいて3D深度マップを生成し、深度マップを車両の基準系内の車両の座標に関連付けることができる。したがって、1つ以上のプロセッサは、1つ以上の画像内の道路端部の見込み位置を決定することができ、1つ以上の画像に基づいて道路端部に関する道路上の車両の位置を決定することができる。いくつかの例では、図2に関して上述したように、標識情報を使用して1つ以上の画像内の見込み検出領域を決定することができ、画像のはるかに広い領域から道路端部の検出を試みるのではなく、道路端部を検出するために認識モジュールが焦点を合わせることができる。
916で、1つ以上のプロセッサは、道路端部の位置に基づいて、道路平面、空き領域、または道路中心のうちの少なくとも1つを決定することができる。いくつかの例では、1つ以上のプロセッサは、本明細書で説明されている技術を使用して右側の道路端部および左側の道路端部を検出することができる。例えば、交通標識は道路の両側で検出されることがある。左右両方の道路端部を信頼性の閾値レベル内で検出できる場合、道路平面は検出された道路端部に基づいて予測することができる。別の例として、信頼性の閾値レベル内で1つの道路端部しか検出できない場合、1つ以上のプロセッサは、道路情報を使用して道路平面および/または空きスペースを決定してもよい。例えば、1つ以上のプロセッサは、GPS情報および地図情報に基づいて道路情報データ構造にアクセスすることができ、道路情報データ構造は、道路の種類について、車両が位置している現在の管轄区域内の道路の一般的な幅、路肩があれば路肩の見込み幅、見込み車線幅、道路端部から道路の中心線までの距離などのうちの1つ以上を示してもよい。上述した標識情報データ構造と同様に、いくつかの例では、道路データ構造は、道路データ構造の望ましい粒度レベルに応じて、特定の地理的管轄区域、管轄区域内の特定の地理的位置、特定の個々の道路などについての道路情報を決定するために、複数の車両によって収集され集約された経験的データで強化またはそうでなければ補強することができる。
さらに、本明細書における実施形態は、道路の両側の標識を検出し認識することができる。例えば、交通標識の標識の種類は、典型的には標識の形状によって認識することができる。さらに、交通標識の裏側は、通常、テキストまたは記号の存在、あるいはそれらの欠如、ポールまたは他の支持体の位置などに基づいて、正面と区別することができる。したがって、場合によっては、道路の左側および右側の両方の道路端部は、道路の左側および右側の両方の認識された標識に基づいて推定され得る。道路平面は、2つの道路端部の間に存在する可能性が高い平坦なまたは通常は曲線的な道路表面を考慮して計算することができる。さらに、場合によっては、認識された標識から横方向距離を決定するために、システムは、例えば、ステレオカメラ、複数のカメラ、または異なる時点で(例えば、車両が既知の速度で移動するときに)撮影された複数の画像を使用することによって、1つ以上のセンサによって取り込まれた1つ以上の画像から、および/または異なる視点から得られた2つの画像間で決定される視差に基づいて、3D深度マップを生成することができる。1つ以上の画像は、車両の位置に対する道路端部の位置を決定するために、車両の基準系に関連していてもよい。
918で、1つ以上のプロセッサは、道路上の車両の位置に対する道路端部の決定された見込み位置に基づいて、1つ以上の制御信号を少なくとも1つの車両構成要素に送信することができる。例えば、道路端部の見込み位置、およびそれによって見込まれる空きスペースに基づいて、1つ以上のプロセッサは、車両の制御、乗員への警告の発行などについて1つ以上の決定を下すことができる。例えば、1つ以上のプロセッサは、車両の操舵を調整するため、車両のブレーキをかけるため、エンジンまたはモータを加速または減速させるため、あるいは車両を制御するための他の機能を行うための制御信号を送信することができる。追加的にまたは代替的に、例えばADASシステムまたは半自律型車両の場合には、1つ以上のプロセッサは、道路端部の位置などに基づいて、検出された状態を運転者に警告するために警報を発してもよい。さらに、対応するグラフィックがリアルタイムまたはほぼリアルタイムで1つ以上の道路の画像上にオーバーレイされ得るように、1つ以上のプロセッサはディスプレイに、道路端部、走行車線、路肩などの表示を送信してもよい。
図10は、いくつかの実施形態による、交通標識を認識するための例示的なプロセス1000を示す流れ図である。いくつかの例では、プロセス1000は、認識モジュールを実行する1つ以上のプロセッサによって行うことができる。
1002で、1つ以上のプロセッサは、1つ以上のセンサから1つ以上の画像を受信することができる。例えば、センサが1つ以上のカメラを含む場合、画像は、可視光、赤外光、またはその両方を使用して取得することができる。さらに、1つ以上の画像は、追加的にまたは代替的に、他の感知技術、またはその組み合わせ、例えばLIDAR、レーダ、超音波などを使用して取得することができる。
1004で、1つ以上のプロセッサは、画像内のノイズを低減するために1つ以上の画像を前処理することができる。例えば、画像が可視光および/または赤外光を使用してカメラから取得される場合、1つ以上のフィルタリング技術を使用して、ごま塩雑音、ガウス雑音などの雑音を画像から除去することができる。
使用され得る技術の例は、線形平滑化フィルタ、彩度−輝度ノイズ分離、ウェーブレット変換、統計的方法、および非線形フィルタを含む。
1006で、1つ以上のプロセッサは受信画像内の標識を検出することができる。例えば、1つ以上のプロセッサは、画像のうちの1つが交通標識を含むことを検出することができるが、その標識はその時点ではまだ認識できないことがある。さらに、本明細書における実施形態は、道路の両側の標識を検出し認識することができる。
1008で、1つ以上のプロセッサは、後続の受信画像内の検出された標識を追跡することができる。1つ以上のプロセッサは、一連の画像内の標識を追跡することができ、車両が標識に近づくにつれて、その標識の標識の種類を認識しようと試みるために追加の認識機能を行うことができる。さらに、複数の画像内の標識を追跡することによって、1つ以上のプロセッサは、車両の基準系に対する標識の位置を決定することができ、それによって車両に対する標識の距離を決定することができる。加えて、場合によっては、標識の種類が認識できない、および/または認識された交通標識に関する規制情報もしくは他の距離情報が道路検出システムに利用可能でない場合、1つ以上のプロセッサは、道路端部が車両と交通標識の間の領域に位置する可能性が高いと判断してもよい。したがって、図2に関して上述した目標探索領域206は、この仮定に基づいて決定することができ、車両と交通標識との間の領域を包含することができる。
1010で、1つ以上のプロセッサは、画像のうちの1つ以上から検出された標識の標識の種類を認識することができる。場合によっては、1つ以上のプロセッサは、例えば標識上のテキスト、色、形状、サイズ、標識の支持構造を認識すること、標識の裏面から標識の正面を区別できることなどによって、標識の標識の種類を認識するために標識の様々な特徴を使用することができる。一例として、認識モジュール320は、異なる角度、異なる距離、異なる気象条件、異なる光の条件などから様々な異なる標識の種類を認識するために、トレーニングデータを使用してトレーニングされた計算モデルを含むかまたは使用するように1つ以上のプロセッサ上で実行されてもよい。場合によっては、計算モデルを最新の状態に保つために、計算モデルを新しいトレーニングデータに基づいて定期的に更新および再トレーニングしてもよい。本明細書のいくつかの実施形態で使用され得る計算モデルの例は、予測モデル、決定ツリー、分類、線形回帰モデルなどの回帰モデル、サポートベクターマシン、ならびにマルコフモデルおよび隠れマルコフモデルなどの確率モデル、リカレントニューラルネットワーク、ロングショートタームメモリ(LSTM)ニューラルネットワークなどの人工ニューラルネットワークを含み得る。標識の種類が認識されると、次いで、例えば図10に関して上述したように、1つ以上のプロセッサは道路端部検出を行うことができる。
図11は、いくつかの実施形態による、1つ以上のデータ構造を更新するための例示的なプロセス1100を示す流れ図である。いくつかの例では、プロセス1100は、部分的には車両上で認識モジュールを実行する1つ以上のプロセッサによって、また部分的には1つ以上のリモートサービスコンピューティングデバイスによって行われてもよい。
1102で、1つ以上のプロセッサは、道路端部に関して認識された標識の種類の場所を決定する、および/または車両が走行している道路の道路情報を決定することができる。例えば、1つ以上のプロセッサは、少なくとも1つの画像から、道路端部から標識までの距離、および/または道路端部から道路の中心線までの距離、道路の走行車線の幅、道路の幅、もしくは舗装された路肩の幅のうちの少なくとも1つを含む経験的道路情報を決定することができる。
1104で、1つ以上のプロセッサは、標識場所情報および/または道路情報を、関連付けられた地理的位置情報と共にログに記憶することができる。
1106で、1つ以上のプロセッサは、標識場所情報ならびに/または道路情報および地理的位置情報をサービスコンピューティングデバイスに送信することができる。
1108で、サービスコンピューティングデバイスは、1つ以上の地理的管轄区域について複数の車両から標識場所情報および/または道路情報を受信することができる。
1110で、サービスコンピューティングデバイスは、受信した標識場所情報を管轄エンティティから取得した標識場所情報と比較すること、および/または受信した道路情報を特定の地理的管轄について管轄エンティティから取得した道路情報と比較することができる。
1112で、サービスコンピューティングデバイスは、比較に基づいて、標識情報データ構造および/または道路情報データ構造内の1つ以上のエントリを追加、変更またはそうでなければ更新することができる。例えば、サービスコンピューティングデバイスは、標識情報データ構造内のエントリを最小横方向距離から横方向距離の範囲に変更することができる。一例として、管轄エンティティが、警告標識は田舎道の舗装された路肩の端部から最小6フィートに位置すべきであると指定したと仮定する。さらに、複数の車両によって検出された経験的データが、地理的管轄区域内の警告標識の90%が田舎道の端部の舗装された路肩から6〜8フィートにあることを示すと仮定する。したがって、サービスコンピューティングデバイスは、地理的管轄区域内の田舎道における警告標識の見込み距離を、舗装された路肩の端部から最小6フィートから6〜8フィートに変更することができる。
1114で、サービスコンピューティングデバイスは、更新された標識情報データ構造および/または更新された道路情報データ構造を送信することができる。
1116で、車両の1つ以上のプロセッサは、更新された標識情報データ構造および/または道路情報データ構造を受信することができる。例えば、車両のプロセッサは、複数の車両からサービスコンピューティングデバイスに送信された経験的標識情報に基づいて更新される更新された標識情報をサービスコンピューティングデバイスから受信することができ、将来的に道路端部の位置を決定する際に使用するために、更新された標識情報を記憶することができる。さらに、車両のプロセッサは、複数の車両からサービスコンピューティングデバイスに送信された経験的道路情報に基づいて更新される更新された道路情報をサービスコンピューティングデバイスから受信することができ、将来的に別の道路端部、道路中心線、走行車線、または路肩のサイズのうちの少なくとも1つの位置を決定する際に使用するために、更新された道路情報を記憶することができる。
1118で、1つ以上のプロセッサは、道路端部、道路平面、道路中心線、走行車線、または空きスペースのうちの少なくとも1つを決定するときに、更新された標識情報データ構造および/または更新された道路情報データ構造を使用することができる。
本明細書に記載の例示的なプロセスは、説明の目的で提供されたプロセスの単なる例である。多くの他の変形が、本明細書の開示に照らして当業者には明らかであろう。さらに、本明細書の開示は、プロセスを実行するための適切なフレームワーク、アーキテクチャおよび環境のいくつかの例を述べているが、本明細書の実施は、示され、論じられた特定の例に限定されない。さらに、本開示は、記載され、図面に示されたような様々な例示的な実施形態を提供する。しかし、この開示は、本明細書に記載および例示された実施形態に限定されず、当業者に知られているように、または知られることになるように、他の実施形態に拡張することができる。
本明細書に記載の様々な命令、プロセス、および技術は、コンピュータ可読媒体に記憶され本明細書のプロセッサによって実行されるプログラムモジュールなど、コンピュータ実行可能命令の一般的な文脈で考えられ得る。一般に、プログラムモジュールは、特定のタスクを行うため、または特定の抽象データ型を実施するための、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、実行可能コードなどを含む。これらのプログラムモジュールなどは、ネイティブコードとして実行することができ、または仮想マシンまたは他のジャストインタイムコンパイル実行環境などでダウンロードして実行することができる。典型的には、プログラムモジュールの機能は、様々な実施形態で望まれるように組み合わせたり分散させることができる。これらのモジュールおよび技術の実施形態は、コンピュータ記憶媒体に記憶されるか、または何らかの形態の通信媒体を介して伝送されてもよい。
主題は、構造的特徴および/または方法論的行為に特有の言語で記載されているが、添付の特許請求の範囲に定義された主題は必ずしも記載された特定の特徴または動作に限定されないことを理解されたい。むしろ、特定の特徴および動作は、請求項を実施する例示的な形態として開示される。