(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-16
(45)【発行日】2024-07-24
(54)【発明の名称】通過可能性のティーチングのための埋め込みおよびサポートベクトルマシン
(51)【国際特許分類】
G06T 7/00 20170101AFI20240717BHJP
G06N 3/08 20230101ALI20240717BHJP
G06N 20/10 20190101ALI20240717BHJP
B25J 13/00 20060101ALI20240717BHJP
【FI】
G06T7/00 350Z
G06N3/08
G06N20/10
G06T7/00 350C
B25J13/00 Z
【外国語出願】
(21)【出願番号】P 2020152095
(22)【出願日】2020-09-10
【審査請求日】2023-07-14
(32)【優先日】2019-09-13
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-11-27
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】518102470
【氏名又は名称】トヨタ リサーチ インスティテュート,インコーポレイティド
(74)【代理人】
【識別番号】100099759
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100092624
【氏名又は名称】鶴田 準一
(74)【代理人】
【識別番号】100147555
【氏名又は名称】伊藤 公一
(74)【代理人】
【識別番号】100123593
【氏名又は名称】関根 宣夫
(74)【代理人】
【識別番号】100133835
【氏名又は名称】河野 努
(74)【代理人】
【識別番号】100141162
【氏名又は名称】森 啓
(72)【発明者】
【氏名】ジェレミー マー
(72)【発明者】
【氏名】クリシュナ シャンカー
(72)【発明者】
【氏名】ケビン ストーン
【審査官】藤原 敬利
(56)【参考文献】
【文献】特許第6393433(JP,B1)
【文献】特開2009-175932(JP,A)
【文献】米国特許出願公開第2018/0239969(US,A1)
【文献】特開2008-250990(JP,A)
【文献】特開平05-233585(JP,A)
【文献】Rupesh A. Kharjul et al.,Real-time pedestrian detection using SVM and AdaBoost,2015 International Conference on Energy Systems and Applications,米国,IEEE,2015年10月30日,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7503447
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
G06N 3/00-99/00
G06T 7/00- 7/90
G06V 10/00-20/90
(57)【特許請求の範囲】
【請求項1】
カメラによってキャプチャされた画像データを記憶するように構成されたメモリモジュールと、該メモリモジュールに通信可能に結合された電子コントローラと、を備えるシステムであって、
該電子コントローラは、前記カメラ
によりキャプチャされた画像データを受信し、
環境の前記画像データ内のドライブ可能部分を予測するようにトレーニングされたニューラルネットワークを実装し、ここで、該ニューラルネットワークは、該環境の前記画像データ内のドライブ可能部分を予測するものであり、
サポートベクトルマシンを実装し、ここで、該サポートベクトルマシンは、前記ニューラルネットワークによって出力された前記環境の
前記予測されたドライブ可能部分が、該サポートベクトルマシンの超平面に基づいてドライブ可能として分類されるかどうかを判定するものであり、
前記環境の前記ドライブ可能部分の表示を出力する
ように構成される、システム。
【請求項2】
前記ニューラルネットワークは、ドライブ可能部分または非ドライブ可能部分で注釈付けされた環境の複数の画像で、オフラインでトレーニングされる、請求項1に記載のシステム。
【請求項3】
前記電子コントローラは、さらに、ディスプレイ上の、前記画像データを含むユーザインタフェースを提供し、
前記画像データ内に
キャプチャされた
前記環境のドライブ可能部分を編集または注釈付けし、
注釈付けされた
前記画像データに基づいて
前記サポートベクトルマシンの
前記超平面を更新するための対話型ツールを提供する
ように構成される、
請求項1または2に記載のシステム。
【請求項4】
前記対話型ツール
がペインティングツールを含み、それによって、ユーザ
が、前記環境の前記ドライブ可能部分を示す、前記ディスプレイ上に表示された前記画像データの部分を強調表示する、請求項3に記載のシステム。
【請求項5】
前記環境の前記ドライブ可能部分は、前記ユーザインタフェース
の上に提示される前記画像データ
の上のカラーオーバーレイとして描かれる、請求項3に記載のシステム。
【請求項6】
前記電子コントローラは、さらに、
新しい環境の注釈付き画像データが前記サポートベクトルマシンに入力されると、前記ニューラルネットワークによって出力された
前記環境の
前記予測
されたドライブ可能部分に基づいて
前記サポートベクトルマシンの超平面を自動的に更新し、それによって、
前記ニューラルネットワークを再トレーニングすることなくオンラインで
前記サポートベクトルマシンを更新するように構成される、
請求項1ないし5のいずれか1項に記載のシステム。
【請求項7】
前記メモリモジュールは検証画像データをさらに含み、
前記電子コントローラは、さらに、
前記検証画像データから検証画像を検索し、
前記検証画像内のドライブ可能部分の予測が生成されるように、
前記ニューラルネットワークおよび前記サポートベクトルマシンを介して前記検証画像を処理し、
前記サポートベクトルマシンによって出力された前記環境内の前記予測
されたドライブ可能部分が、
前記検証画像データからの前記検証画像に関連する予期予測に対応することを確認する
ように構成される、
請求項1ないし5のいずれか1項に記載のシステム。
【請求項8】
前記検証画像データは、前記環境の既知のドライブ可能部分で注釈付けされた1つ以上の検証画像を含む、請求項7に記載のシステム。
【請求項9】
環境のドライブ可能部分を予測するための方法であって、
該方法は、カメラ
によりキャプチャされた画像データを電子コントローラで受信するステップと、
前記電子コントローラを用いて、前記環境の前記画像データにおけるドライブ可能部分を予測するようにトレーニングされたニューラルネットワークを、を実装するステップと、
前記ニューラルネットワークを用いて、前記環境の前記画像データ内の前記ドライブ可能部分を予測するステップと、
前記電子コントローラを用いて、サポートベクトルマシンを実装するステップと、
該サポートベクトルマシンを用いて、
前記ニューラルネットワークによって出力された
前記環境の
前記予測
されたドライブ可能部分が
前記サポートベクトルマシンの超平面に基づいてドライブ可能として分類されるかどうかを判定するステップと、
前記環境の前記ドライブ可能部分の表示を出力するステップと、
を含む、方法。
【請求項10】
ディスプレイ上の
、前記画像データを含むユーザインタフェースを提供するステップと、
前記画像データ内に
キャプチャされた前記環境のドライブ可能部分を編集または注釈付けするための対話型ツールを提供するステップと、
前記注釈付けされた画像データに基づいて前記サポートベクトルマシンの前記超平面を更新するステップと、
をさらに含む、請求項9に記載の方法。
【請求項11】
前記対話型ツールがペインティングツールを含み、それによって、ユーザが、前記環境の前記ドライブ可能部分を示
し、前記ディスプレイ上に表示された前記画像データの部分を強調表示する、
請求項10に記載の方法。
【請求項12】
新しい環境の注釈付き画像データが前記サポートベクトルマシンに入力されると、前記ニューラルネットワークによって出力された前記環境の前記予測されたドライブ可能部分に基づいて
前記サポートベクトルマシンの前記超平面を自動的に更新し、それによって、前記ニューラルネットワークを再トレーニングすることなくオンラインで前記サポートベクトルマシンを更新する
ステップをさらに含む、請求項9ないし11のいずれか1項に記載の方法。
【請求項13】
検証画像データから検証画像
を検索するステップと、
前記検証画像内のドライブ可能部分の予測が生成されるように、
前記ニューラルネットワークおよび
前記サポートベクトルマシンを介して
前記検証画像を処理
するステップと、
前記検証画像データからの前記検証画像に関連する予期予測に対応する、前記サポートベクトルマシンによって出力された前記環境内の前記予測されたドライブ可能部分を確認するステップと、
をさらに含む、
請求項9ないし12のいずれか1項に記載の方法。
【請求項14】
環境のドライブ可能部分を予測するための方法であって、該方法は、
カメラ
によりキャプチャされた画像データを電子コントローラで受信するステップと、
ディスプレイ上に、前記電子コントローラによって生成されたユーザインタフェースを介して
前記画像データに注釈を付けるステップであって、前記画像データの1つ以上の部分は、対話型ツールを使用してドライブ可能として注釈を付けられる、ステップと、
前記電子コントローラを用いて、前記環境の
前記ドライブ可能部分を予測するようにトレーニングされたニューラルネットワークから前記環境のドライブ可能部分の予測を
受信するように構成されたサポートベクトルマシンを実装するステップと、
超平面を定義する制約が変更されるように、前記注釈
を付けられた画像データに基づいて前記サポートベクトルマシンの
前記超平面を更新するステップと、
を含む、方法。
【請求項15】
前記カメラによって
キャプチャされた第2の画像データを
前記電子コントローラで受信するステップと、
前記環境の前記第2の画像データ内のドライブ可能部分を予測するようにトレーニングされた前記ニューラルネットワークを、
前記電子コントローラを用いて実装するステップと、
ニューラルネットワークを用いて、前記環境の前記第2の画像データ内の前記ドライブ可能部分を予測するステップと、
前記サポートベクトルマシンを用いて、前記ニューラルネットワークによって出力された前記環境の前記予測されたドライブ可能部分が、前記サポートベクトルマシンの更新された超平面に基づいてドライブ可能として分類されるかどうかを判定するステップと、
前記環境の前記ドライブ可能部分の表示を出力するステップと、
をさらに含む、
請求項14の方法。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
本出願は2019年9月13日に出願された米国仮特許出願第62/900,091号の利益を主張し、その全内容は、参照により本明細書に組み込まれる。
【0002】
本明細書は一般に、分類器システムに関する。より具体的には、本明細書が環境の画像データのドライブ可能部分および非ドライブ可能部分を分類するためのシステムおよび方法に関する。
【背景技術】
【0003】
一般に、ニューラルネットワークによってイネーブルされた自律システムが、ニューラルネットワークが以前に内部でトレーニングされていない新しい環境に遭遇すると、ニューラルネットワークは、不正確な予測または判定を行う可能性がある。ニューラルネットワークの動作を改善するために、ニューラルネットワークは、一般に、新しい環境に関連する新しいまたは追加のデータを含むトレーニングデータを用いて再トレーニングされる必要がある。ニューラルネットワークを再トレーニングするプロセスは時間がかかり、資源集約的であり、一般に、ニューラルネットワークが再トレーニングされる間、ニューラルネットワークを実装するシステムがオフラインにされることを必要とする。
【0004】
したがって、ロボットなどの自律システムが新しい環境に適応し、ニューラルネットワークのオフライン再トレーニングなしに新しい環境で分類タスクを実行する能力を改善することを可能にするシステムおよび方法が必要とされている。
【発明の概要】
【0005】
一実施形態では、システムは、カメラによってキャプチャされた画像データを記憶するように構成されたメモリモジュールと、メモリモジュールに通信可能に結合された電子コントローラとを含む。電子コントローラは、カメラによってキャプチャされた画像データを受信し、環境の画像データ内のドライブ可能部分を予測するようにトレーニングされたニューラルネットワークを実装し、ここで、ニューラルネットワークは環境の画像データ内のドライブ可能部分を予測し、サポートベクトルマシンを実装し、ここで、サポートベクトルマシンは、ニューラルネットワークによって出力された環境の予測されたドライブ可能部分がサポートベクトルマシンの超平面に基づいてドライブ可能として分類されるかどうかを判定し、環境のドライブ可能部分の表示を出力するように構成される。
【0006】
いくつかの実施形態では、環境のドライブ可能部分を予測するための方法は、カメラによって取り込まれた画像データを電子コントローラで受信するステップと、環境の画像データ内のドライブ可能部分を予測するようにトレーニングされたニューラルネットワークを電子コントローラで実装するステップと、環境の画像データ内のドライブ可能部分をニューラルネットワークで予測するステップと、電子コントローラでサポートベクトルマシンを実装するステップと、ニューラルネットワークによって出力された環境の予測ドライブ可能部分がサポートベクトルマシンの超平面に基づいてドライブ可能として分類されるかどうかをサポートベクトルマシンで判定するステップと、環境のドライブ可能部分の表示を出力するステップとを含む。
【0007】
いくつかの実施形態では、環境のドライブ可能部分を予測するための方法が、電子コントローラを用いて、カメラによって取り込まれた画像データを受信するステップと、画像データの1つ以上の部分を、電子コントローラによって生成されたユーザインタフェースを介して画像データに注釈を付けるステップであって、該画像データの1つ以上の部分は対話型ツールを使用してドライブ可能として注釈付けされるステップと、電子コントローラを用いて、環境のドライブ可能部分を予測するようにトレーニングされたニューラルネットワークから環境のドライブ可能部分の予測を受信するように構成されたサポートベクトルマシンを実装するステップと、超平面を定義する制約が変更されるように、注釈付けされた画像データに基づいてサポートベクトルマシンの超平面を更新することとを含む。
【0008】
本明細書で説明される実施形態によって提供されるこれらの特徴および追加の特徴は、図面と併せて、以下の詳細な説明を考慮して、より完全に理解される。
【図面の簡単な説明】
【0009】
図面に記載された実施形態は、本質的に図示的かつ例示的なものであり、特許請求の範囲によって定義される主題を限定することを意図するものではない。例示的な実施形態の以下の詳細な説明は、同様の構造が同様の参照番号で示されている以下の図面と併せて読むと理解することができる。
【
図1】
図1は、本明細書に示され、説明される1つ以上の実施形態による、ニューラルネットワークおよびサポートベクトルマシンに基づく分類器システムを使用する例示的なシステムを概略的に示す。
【
図2】
図2は、本明細書で示され、説明される1つ以上の実施形態による、環境のドライブ可能部分を予測または決定するためのサポートベクトルマシンを有するニューラルネットワークモデルを実装する分類器システムの例示的な図を示す。
【
図3】
図3は、本明細書で示され、説明される1つ以上の実施形態による、環境の画像データのドライブ可能部分および非ドライブ可能部分を編集および/または注釈付けするように構成された例示的なユーザインタフェースを示す。
【
図4】
図4は、本明細書で示され、説明される1つ以上の実施形態による、環境の画像データのドライブ可能部分および非ドライブ可能部分を編集および/または注釈付けするように構成された例示的なユーザインタフェースを示す。
【
図5】
図5は本明細書で示され、説明される1つ以上の実施形態による、環境のドライブ可能部分および非ドライブ可能部分を予測し、分類器システムを更新するための例示的な流れ図を示す。
【発明を実施するための形態】
【0010】
本開示の実施形態は、環境の画像データのドライブ可能部分および非ドライブ可能部分を分類するように構成された分類器システムを提供するシステムおよび方法を含む。より具体的には、本開示は、新しい環境が分類器システムに提示されるときにニューラルネットワークを再トレーニングする必要なく分類器システムのオンライン更新を可能にする固有の構成でニューラルネットワークおよびサポートベクトルマシン(「SVM」)を実装する分類器システムおよび方法に関する。本明細書で使用される「オンライン」または「オンライン更新」が、分類器システムをトレーニングまたは更新するために、静的な事前定義データセットが利用される「オフライン」とは対照的に、環境からのデータが捕捉され処理される間に分類器システムを更新する能力を指す。実施形態において、ニューラルネットワークは、環境の画像データを受信する。画像データは、例えば、ロボットカメラから直接取得されることができるし、電子コントローラのメモリモジュールから取得されることができる。ニューラルネットワークは、環境のドライブ可能部分の初期予測を生成するようにトレーニングされる。ニューラルネットワークは、画像データに対して特徴抽出等の操作を行うことができる。いくつかの実施形態では、画素ごと、通過可能性分析、および埋め込みなどの動作を入力画像データに対して実行して、環境の画像データのドライブ可能部分を予測および/または決定することができる。
【0011】
本明細書で使用されるように、「部分」および「画像データの部分」は画像の1つ以上の画素を指し、さらに、分類器システムは、ロボットまたは車両が画像データの画素または画素のグループによって表される環境の部分を通過することができるかどうかに関する各画素または画素のグループ(本明細書では「画像データの部分」および「画像データの部分」と呼ばれる)の予測を生成する。システムは、各画素値を定義する16桁以上の数値を、ドライブ可能または非ドライブ可能な表示に関連付けることができる。さらに、システムが画素のグループおよびグループ内の各画素を規定する値のグループを分析するとき、システム(例えば、ニューラルネットワーク)は、環境内のドライブ可能領域およびドライブ不能領域をもたらす画素のグループのパターンを学習することができる。しかしながら、これは、システムが環境の画像データのドライブ可能な部分および非ドライブ可能な部分を予測することをどのように学習するかの一例に過ぎない。
【0012】
ニューラルネットワークの出力はサポートベクトルマシンによって処理され、サポートベクトルマシン内の定義された超平面は予測および/または判定を洗練することができる。定義され調節可能超平面を有するサポートベクトルマシンの添加は、分類器システムに便利な更新能力を提供する。すなわち、環境のドライブ可能な部分の予測および/または判定を改善するために、分類器システムに対する新しい環境を作る、または補正を行う必要がある場合、ニューラルネットワークを完全に再トレーニングすることを必要とするのではなく、注釈付き画像データを使用して超平面を調整することができる。超平面は、ニューラルネットワークによって生成された環境の画像データのドライブ可能部分および非ドライブ可能部分の予測を確認および/または更新する。したがって、サポートベクトルマシンの超平面を調整することによって、ニューラルネットワークによってドライブ可能または非ドライブ可能と不正確に判定される可能性がある画像データの部分の予測および/または決定はサポートベクトルマシンによって処理されると、その後、より正確に、非ドライブ可能またはドライブ可能と定義することができる。
【0013】
いくつかの実施形態では、サポートベクトルマシンからの出力が、ユーザがドライブ可能または非ドライブ可能として識別されるべきであるが、ニューラルネットワークによってそれぞれ非ドライブ可能またはドライブ可能として予測された環境の画像データの部分を電子的にペイントする(すなわち、グラフィカルにラベル付けする)ことを可能にするように構成されたユーザインタフェースを介して更新され得る。注釈付き環境画像データは、ニューラルネットワークによって生成された予測の分類を定義する超平面が必要に応じて更新されるように、サポートベクトルマシンにフィードバックされることができる。サポートベクトルマシンの1つ以上の超平面を更新することは、正則化パラメータ、ガンマパラメータ、および/またはマージンのうちの1つ以上を更新することを含むことができる。サポートベクトルマシンの正則化パラメータは、どれだけの誤分類を回避すべきかを定義する。すなわち、正則化パラメータは、誤って分類された例がより少なく許容され、正則化パラメータが0になる傾向がある(0ではない)とき、正則化パラメータが増加することにつれて、より多くの誤分類が許容されるように、誤分類に与えられる重要度を定義する。
【0014】
サポートベクトルマシンのガンマパラメータは単一のトレーニング例の影響がどれだけ遠くに到達するかを定義し、ここで、低い値は「遠い」を意味し、高い値は「近い」を意味する。言い換えれば、低ガンマでは、超平面の計算において、妥当な超平面から遠く離れた点が考慮され、一方、高ガンマは、妥当な超平面に近い点が考慮されることを意味する。マージンは、サポートベクトルマシンの目的を定義する。すなわち、サポートベクトルマシンの目的は、データ間のマージンを最大にする最適な分離超平面を識別することである。言い換えれば、各クラスの最も近い点と超平面との間の距離を最大にすると、最適な分離超平面が得られる。いくつかの実施形態では、超平面を更新することによって、超平面を定義する式の制約のうちの1つ以上が、サポートベクトルマシンが分類するようにトレーニングされるデータセット(たとえば、トレーニングデータ)に対して超平面がさらに最適化されるように調整される。
【0015】
本明細書で説明するさらなる実施形態では、ニューラルネットワークがトレーニングされると、新しい環境からの追加のトレーニングデータをサポートベクトルマシンに供給することができ、サポートベクトルマシンはオンラインのままである間に新しいトレーニングデータを考慮に入れるように超平面を調整することができる。新しいトレーニングデータの導入は、超平面の1つ以上のパラメータを更新して、超平面に調整を行うことも含むことができる。さらに、超平面への変化が分類器システムを不正確にバイアスしないことを検証するために、検証画像データのセットからの1つ以上の検証画像がシステムによって処理されることができ、それによって、出力予測ドライブ可能部分が検証画像内の既知のドライブ可能部分と比較される。ニューラルネットワーク/サポートベクトルマシンの組み合わせによって出力された検証画像および予測されたドライブ可能部分が予め定義された許容閾値内で互いに整列する場合、分類器システムに対する調整は、有効であると判定される。
【0016】
以下では、図面を参照してこれらのシステムおよび方法をより詳細に説明し、ここで、同様の番号は同様の構造を指す。
【0017】
ここで
図1を参照すると、ニューラルネットワークおよびサポートベクトルマシンに基づく分類器システムを使用する例示的なシステムが示されている。
図1は、通信バス110を介してカメラ104およびディスプレイ106に通信結合された電子コントローラ102を有するシステム100を示す。電子コントローラ102は、ロボットシステム、自律走行車両等のための電子コントローラであることができる。電子コントローラ102は多くの様々な動作を実行するように構成することができるが、本明細書では環境のドライブ可能部分および非ドライブ可能部分を分類するためのシステムおよび方法に関連する動作を説明する。いくつかの実施形態ではシステム100がロボットまたは車両、より具体的には自律車両において実施される。
【0018】
電子コントローラ102は、通信バス110を介してカメラ104に通信的に結合することができる。本明細書では1つのカメラのみが示され、説明されているが、システムは2つ以上のカメラを含むことができることが理解される。カメラ104は、紫外線波長帯域、可視光波長帯域、または赤外線波長帯域の放射線を検出することができる感知デバイス(例えば、ピクセル)のアレイを有する任意のデバイスであることができる。カメラ104は、任意の解像度を有することができる。カメラ104は例えば、全方位カメラであることができるし、パノラマカメラであることができる。いくつかの実施形態では、カメラ104が、RGB-D(例えば、インテル-リアルセンス-深度カメラ(Intel RealSense Depth Camera)のような画像化深度カメラ、または、画像データに基づいて環境内の深度を決定するために分析されることが可能な環境内の深度測定値を取り込むことが可能な画像データを取り込むことが可能な別のデバイスであることができる。いくつかの実施形態では、ミラー、魚眼レンズ、または任意の他のタイプのレンズなどの1つ以上の光学コンポーネントを、カメラ104のそれぞれに光学的に結合することができる。
【0019】
電子コントローラ102は、通信バス110を介してディスプレイ106に通信可能に結合することができる。ディスプレイ106は、ディスプレイデバイスであることができる。ディスプレイ106は、例えば、陰極線管、発光ダイオード、液晶ディスプレイ、プラズマディスプレイ等のような、光出力を伝送可能な任意の媒体を含むことができる。さらに、ディスプレイ106は、1つ以上の入力デバイスを含むこともできる。1つ以上の入力デバイスは、ユーザの接触を、例えば、キーボード、ボタン、スイッチ、ノブ、マイクロフォンなど、通信バス110を介して送信することができるデータ信号に変換することができる任意のデバイスとすることができる。いくつかの実施形態では、1つ以上の入力デバイスが電源ボタン、音量ボタン、起動ボタン、スクロールボタンなどを含む。1つ以上の入力デバイスは、ユーザがメニューをナビゲートし、選択を行い、プリファレンスを設定し、本明細書に記載する他の機能を行うなど、ディスプレイ106と対話できるように提供されることができる。いくつかの実施形態では、入力装置が圧力センサ、タッチセンシティブ領域、圧力ストリップなどを含む。
【0020】
通信バス110は、例えば、導電性ワイヤ、導電性トレース、光導波路等のような信号を伝送することができる任意の媒体から形成することができる。通信バス110は、また、電磁放射およびそれらに対応する電磁波が通過する膨張を指すことができる。さらに、通信バス110は、信号を送信することができる媒体の組み合わせから形成することができる。一実施形態では、通信バス110が、プロセッサ、メモリ、センサ、入力装置、出力装置、および通信装置などのコンポーネントへの電気データ信号の伝達を可能にするために協働する導電性トレース、導電性ワイヤ、コネクタ、およびバスの組み合わせを含む。したがって、通信バス110は、バスを備えることができる。また、「信号」とは直流、交流、正弦波、三角波、矩形波、振動等、媒体を伝搬可能な波形(電気、光、磁気、機械、電磁等)を意味することに留意する。通信バス110はシステム100の種々のコンポーネントを通信的に結合するものであり、ここでは、用語”通信的に結合”は、例えば、結合されたコンポーネントが、導電性媒体を介した電気信号、空気を介した電磁信号、光導波路を介した光信号等の信号を交換可能であることを意味する。
【0021】
電子コントローラ102に移ると、電子コントローラ102は、本明細書に示され、説明される実施形態にしたがって、ハードウェア、ソフトウェア、および/またはファームウェアを利用することができる。いくつかの実施形態では電子コントローラ102が必要なハードウェア、ソフトウェア、および/またはファームウェアを有する汎用コンピュータとして構成されることができるが、いくつかの実施形態では電子コントローラ102が本明細書で説明される機能を実行するために特に設計された専用コンピュータとして構成されることができる。
【0022】
図1に示すように、電子コントローラ102は、プロセッサ130、入出力ハードウェア132、ネットワーク・インタフェース・ハードウェア134、検証画像データ138Aおよび/またはトレーニング画像データ138Bを記憶するデータ記憶コンポーネント136、および、メモリモジュール140を含むことができる。メモリモジュール140は、機械可読メモリ(非一時的プロセッサ可読メモリとも呼ばれる)であることができる。メモリモジュール140は揮発性および/または不揮発性メモリとして構成することができ、ランダムアクセスメモリ(SRAM、DRAM、および/または他の種類のランダムアクセスメモリを含む)、フラッシュメモリ、レジスタ、コンパクトディスク、デジタル多用途ディスク(DVD)、および/または他の種類の記憶コンポーネントを含むことができる。さらに、メモリモジュール140は、動作ロジック142、画像データ144、ニューラルネットワーク146を実装するためのロジック、サポートベクトルマシン148を実装するためのロジック、および/またはユーザインタフェース・アノテータ150を実装するためのロジック(これらの各々が一例として、コンピュータプログラム、ファームウェア、またはハードウェアとして具体化することができる)を格納するように構成することができる。ローカルインタフェース246も
図1に含まれ、電子コントローラ102のコンポーネント間の通信を容易にするために、バスまたは他のインタフェースとして実装されることができる。
【0023】
プロセッサ130は、(データ記憶コンポーネント136および/またはメモリモジュール140からのよう)プログラミング命令を受信し実行するように構成された任意の処理コンポーネントを含むことができる。命令は、データ記憶コンポーネント136および/またはメモリモジュール140に記憶された機械可読命令セットの形成であることができる。入出力ハードウェア132は、モニタリング、キーボード、マウス、プリンタ、カメラ、マイクロフォン、スピーカ、および/またはデータを受信、送信、および/または提示するための他のデバイスを含むことができる。ネットワークインタフェースハードウェア134は、モデム、LANポート、Wi-Fiカード、WiMaxカード、移動通信ハードウェア、および/または他のネットワークおよび/または装置と通信するための他のハードウェアなど、任意の有線または無線ネットワークハードウェアを含むことができる。
【0024】
データ記憶コンポーネント136は、電子コントローラ102に局部的におよび/または遠隔的に存在することができ、電子コントローラ102および/または他のコンポーネントによるアクセスのために1つ以上のデータを記憶するように構成されることができることを理解されたい。
図1に示すように、データ格納コンポーネント136は、検証画像データ138Aを格納する。検証画像データ138Aは、環境の画像と、画像内のドライブ可能部分および非ドライブ可能部分を定義する対応するアノテーションとを含む。検証画像データ138Aは、サポートベクトルマシンの超平面に対してオンライン更新が行われたときに分類器システムの機能性を確認するための1つ以上の画像および関連するアノテーションを含むことができる。データ格納コンポーネント136は、トレーニング画像データ138Bを格納する。トレーニング画像データ138Bは、環境の画像と、ニューラルネットワークおよびサポートベクトルマシンをトレーニングするために使用される画像データのドライブ可能部分および非ドライブ可能部分を定義する対応するアノテーションとを含む。
【0025】
いくつかの実施形態では、トレーニング画像データ138Bが、カメラ104によってキャプチャされ、環境の画像データのドライブ可能部分および非ドライブ可能部分を識別するために注釈が付けられた環境の画像を含む。いくつかの実施形態では、ドライブ可能な画像データのアノテーションが自動的に生成されることができる。たとえば、ロボットのパスに沿ってキャプチャされた画像は、ロボットが通過するパスと同様に記録される。ロボットが走行する経路は、ロボットが、画像データを収集するときに少なくとも1回経路を通過したので、ドライブ可能な部分を示す収集した画像データ内に重ね合わせることができる。これはニューラルネットワーク200をトレーニングするためにトレーニングデータを収集することができる唯一の方法であり、これについては
図2を参照して本明細書でより詳細に説明する。
【0026】
メモリモジュール140には、動作ロジック142、画像データ144、ニューラルネットワーク146を実装するためのロジック、サポートベクトルマシン148を実装するためのロジック、および/またはユーザインタフェース・アノテータ150を実装するためのロジックが含まれる。オペレーティングロジック142は、電子コントローラ102のコンポーネントを管理するためのオペレーティングシステムおよび/または他のソフトウェアを含むことができる。画像データ144は、カメラ104から取り込まれた環境の画像を含む。画像データ144は、カメラ104によって捕捉された画像、深度画像等であることができる。ニューラルネットワーク146を実装するためのロジックは、ニューラルネットワーク146を実装するハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せを含むことができる。ロジックはニューラルネットワークをトレーニングするためのロジック、および/またはサポートベクトルマシンを用いてニューラルネットワーク146を実装するためのロジックを含む。サポートベクトルマシン148を実装するためのロジックは、サポートベクトルマシン148を実装するハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せを含むことができる。このロジックは、超平面を生成し、超平面を更新し、超平面を検証し、画像データ144およびニューラルネットワークからの出力に基づいて環境のドライブ可能および/または非ドライブ可能部分の出力予測を構成するためのロジックを含む。
【0027】
メモリモジュール140はさらに、ユーザインタフェース・アノテータ・ロジック150を含む。ユーザインタフェース・アノテータ・ロジック150は、ユーザが生の画像データを見ること、環境のドライブ可能および非ドライブ可能部分の予測のオーバーレイを含む画像データを見ること、および/またはユーザが画像データ内のドライブ可能および/または非ドライブ可能部分を編集および/またはアノテーションするために対話することができる対話的特徴を見ることを可能にするロジックである。対話的特徴は、ユーザがドライブ可能部分を識別するためのペイントオプション、または非ドライブ可能部分を識別するためのペイントオプションを選択することができる、ペイントのようなインタフェースツールを含むことができる。本明細書でさらに詳細に説明するように、ユーザインタフェース・アノテータロジック150は、ディスプレイ上にユーザインタフェースを提供し、画像データを表示し、画像データ内に捕捉された環境のドライブ可能部分を編集または注釈付けするための対話型ツール(例えば、グラフィカルユーザインタフェース「GUI」)を提供する。
【0028】
次に
図2を参照すると、環境のドライブ可能部分を予測および/または決定するためのサポートベクトルマシン230を有するニューラルネットワーク200を実装する分類器システムの例示的な図が示されている。いくつかの実施形態では、ニューラルネットワーク200がノード接続202によって接続された1つ以上のノード201を有する1つ以上の層205、210、215、220を含むことができる。1つ以上の層205、210、215、220は、入力層205、1つ以上の隠れ層210、215、および出力層220を含むことができる。入力層205は、ニューラルネットワーク200に供給される生情報を表す。例えば、カメラ104またはメモリモジュール140からの画像データ144、分類器システムに対するオンライン更新を検証するための検証画像データ138A、および/またはニューラルネットワークをトレーニングし、サポートベクトルマシンの超平面を確立するためのトレーニング画像データ138Bを、入力層205でニューラルネットワーク200に入力することができる。トレーニング中、予測ドライブ可能部分240はまた、ニューラルネットワーク200にフィードバックされるか、またはニューラルネットワーク経路をトレーニングするために逆伝播されることができる。ニューラルネットワーク200は、ノード201およびノード接続202を介して入力層205で受信された生情報を処理する。1つ以上の隠れ層210、215は、入力層205からの入力およびノード接続202上の重みに応じて、計算活動を実行する。言い換えれば、隠れ層210、215は計算を実行し、関連するノード201およびノード接続202を介して入力層205から出力層220に情報を転送する。
【0029】
一般に、ニューラルネットワーク200が学習しているとき、ニューラルネットワーク200は入力層205で受信された生情報内のパターンを識別し、決定している。それに応答して、1つ以上のパラメータ、たとえば、ノード201間のノード接続202に関連する重みを、バックプロパゲーションとして知られるプロセスによって調整することができる。学習が行われ得る様々なプロセスがあるが、2つの一般的な学習プロセスは連想マッピングおよび規則性検出を含むことを理解されたい。連想マッピングは、別の特定のパターンが入力の設定に適用されるときはいつでも、ニューラルネットワーク200が入力の設定に特定のパターンを生成することを学習する学習プロセスを指す。規則性検出は、ニューラルネットワークが入力パターンの特定の特性に応答するように学習する学習プロセスを指す。連想マッピングではニューラルネットワークはパターン間の関係を記憶するが、規則性検出では各ユニットの応答は特定の「意味」を有する。このタイプの学習メカニズムは、特徴発見および知識表現のために使用され得る。
【0030】
ニューラルネットワークは、ノード接続重みの値に含まれる知識を有する。経験の機能としてネットワークに記憶された知識を修正することは、重みの値を変更するための学習規則を意味する。情報は、ニューラルネットワークの重み行列Wに格納される。学習は、重みの判定である。学習が実行される方法に続いて、ニューラルネットワークの2つの主要なカテゴリ、すなわち、1)重みを変更することができない固定ネットワーク(すなわち、dW/dt=0)と、2)重みを変更することができる適応ネットワーク(すなわち、dW/dt=0ではない)とを区別することができる。固定ネットワークでは、重みが解くべき課題にしたがって事前に固定される。
【0031】
ニューラルネットワーク200をトレーニングして、あるタスクを実行するために、所望の出力と実際の出力との間の誤差が低減されるように、重みの調整が行われる。このプロセスは、ニューラルネットワーク200が重み(EW)の誤差微分値を計算することを必要とし得る。言い換えれば、各重みがわずかに増加または減少することにつれて、誤差がどのように変化するかを計算しなければならない。逆伝搬アルゴリズムは、EWを決定するために使用される1つの方法である。
【0032】
アルゴリズムは最初に誤り微分値(EA)を計算することによって各EWを計算し、ユニットの活動レベルが変化することにつれて誤りが変化するレートを計算する。出力ユニットでは、EAは単に実際の出力と所望の出力の差である。出力層の直前の層内の隠れユニットのEAを計算するために、まず、その隠れユニットとそれが接続されている出力ユニットとの間のすべての重みが識別される。そして、それらの重みに、それらの出力ユニットのEAを乗算し、その積を加算する。この合計は、選択された隠れユニットのEAに等しい。出力層の直前の隠れ層内のすべてのEAを計算した後、同様に、アクティビティがニューラルネットワーク200を通って伝播するのとは反対の方向に層から層に移動して、他の層のEAを計算することができ、したがって「逆伝播」が行われる。一旦、EAがユニットについて計算されると、ユニットの各入力接続についてEWを計算することは簡単である。EWは、EAと、入力接続を通る活動との積である。これは、ニューラルネットワーク200がタスクを実行するようにトレーニングされる唯一の方法であることを理解されたい。
【0033】
さらに
図2を参照すると、ニューラルネットワーク200は、出力層220の1つ以上のノード201に供給する1つ以上の隠れ層210、215を含むことができる。ニューラルネットワーク200が生成するように構成された特定の出力に応じて、1つ以上の出力層220があることができる。
【0034】
本明細書で説明する実施形態では、サポートベクトルマシン230がニューラルネットワーク200から出力を受信し、サポートベクトルマシン230の超平面235に基づいて環境のドライブ可能および/または非ドライブ可能部分をさらに予測または決定するように構成することができる。例えば、新しい地形に遭遇すると、分類器システム(通過可能性ネットワークとも呼ばれる)は、ドライブ可能シナリオおよび非ドライブ可能シナリオの新しい例を生成することができる。これらは、超平面235のパラメータを調整するために、サポートベクトルマシン230に正および負の例として追加されることができ、したがって、超平面235を、以前に分析されたデータセットにおける新しいおよび/または変化を考慮して、より最適な超平面に調整する。
【0035】
一般に、サポートベクトルマシン230は、分類問題と回帰問題の両方に使用できる教師つき機械学習アルゴリズムの一種である。サポートベクトルマシンは、カーネル・メソッドと呼ばれる技法にしたがい、データを変換し、これらの変換に基づいて、可能な出力(例えば、環境のドライブ可能な部分と非ドライブ可能な部分)間の最適な境界(例えば、超平面235)を見つける。サポートベクトルマシン230は定義されたラベルまたは出力に基づいてデータをどのように分離するかを決定するために、複雑なデータ変換を実行することができる。超平面235は、データセット内の分離を定義する。超平面は、n次元ユークリッド空間のn-1次元部分空間である。例えば、データセットが1Dである場合、単一の点が超平面を表し、データセットが2Dである場合、超平面は線であり、データセットが3Dである場合、超平面は平面である、等々である。いくつかの実施形態では、データのクラスを分離する1つ以上の超平面を定義することができる。
【0036】
より一般的に分類器システムに戻って参照すると、いくつかの実施形態では、分類器システムがカメラ104から収集された深度情報または画像データ144の深度画像処理アルゴリズムを通して決定される深度情報を利用する。環境の深度情報は、環境内の物体の高度、高さ、および/または他の寸法を示すことができる。例えば、物体の高度、高さ、または他の寸法が所定の通過可能寸法(例えば、ロボットシステムまたは車両が通過できる高さ)よりも大きい場合、環境の部分は、ドライブ不能であると判断される。画像データ(例えば、RGB画像データ)から、または他の深度測定技術を利用することによって、高度および/または深度を決定または推定するための様々な技術があることが理解される。
【0037】
分類器システムをトレーニングすることは、反復プロセスであり、ニューラルネットワーク200によって行われた予測、およびサポートベクトルマシン230によって行われた決定および/または分類を完全にし、調整するためのユーザ対話を含むことができることを理解されたい。いくつかの実施形態では、ユーザが画像データを編集または注釈付けし、それによって、ロボットシステムまたは車両が通過することができるおよび/または通過することができない環境の画像データの高度、高さ、または他の寸法もしくは部分を定義することができるように、ユーザインタフェースが提供される。例えば、
図3および
図4は、環境の画像データのドライブ可能部分および非ドライブ可能部分を編集および/または注釈付けするように構成されたユーザインタフェースの図示的な例を提供する。
図3を参照すると、例示的なユーザインタフェースが示されている。ユーザインタフェースは、環境モデル300を、ドライブ可能部分310(例えば、画像データ上の着色オーバーレイである緑色ハイライトで描写されることができる)を示す着色部分と、環境内の非ドライブ可能部分320(例えば、画像データ上の着色オーバーレイである赤色ハイライトで描写されることができる)とを用いて表示してもよい。ユーザインタフェースは、環境の画像に対応するカメラ104(
図1)からキャプチャされた注釈の付いていないRGB画像データ305を表示することができる。編集モードまたは注釈モードでは、第2のパネルおよび対話型ツールセットをユーザが使用できるようにすることができる。例えば、対話型編集および注釈付けツール340を選択可能にすることができる。これは、ユーザがドライブ可能または非ドライブ可能のいずれかとして、表示された画像データに取り込まれた環境の部分をペイントすることを可能にするペイントブラシツールを含むことができる。例えば、第2のパネルは、注釈付け可能画像350と、RGB画像データ144(例えば、
図1)にオーバーに適用された環境の予測ドライブ可能部分361および予測非ドライブ可能部分362を示す出力画像360とを含むこともできる。注釈付け可能画像350は、ユーザによって編集可能であり、その結果、例えば、ペインティングツールを選択し、これを利用して、注釈付け可能画像350の部分を強調表示して、ドライブ可能および/または非ドライブ可能部分を示すことができる。図示のように、四角351は環境の一部がドライブ可能であることを示すために、例えば緑色で強調表示された環境の画像の注釈付き部分を示す。例えば、ニューラルネットワーク200(
図2)は、物体、例えば、床上の紙片が検出されたために、環境のこの部分(すなわち、四角351)をドライブ不能であると識別することができる。しかしながら、注釈付け可能な画像350に、通過可能でないと予測された物を示す環境の画像の部分上の「ドライブ可能である」強調表示で注釈を付けることによって、サポートベクトルマシン230は、環境の画像のその部分に関連付けられたデータセットをドライブ可能なものとして適切に分類することができる。注釈付き画像350は、
図2の説明で参照した注釈付き環境画像データ250の一例である。いくつかの例では更新が超平面235(
図2)を更新させ、または画像データの部分の補正された分類を考慮に入れるように要求することができる。いくつかの実施形態では、ユーザがユーザインタフェースによって提供されるツールを利用して、ドライブ可能部分および/または非ドライブ可能部分を変更、追加、または削除することができる。次に、注釈付き環境画像データ250(例えば、
図2)は、超平面235を更新するためにサポートベクトルマシン230に供給される。
【0038】
図4を参照すると、例示的なユーザインタフェースの別のスクリーンショットが示されている。環境モデル300は、ロボット330、ドライブ可能部分310、および非ドライブ可能部分380の位置の描写を含むことができる。上述したように、
図4に示す環境モデル300は、
図3の注釈付け可能画像350によって示されるように入力された更新に続いて生成される。すなわち、
図3の環境の途中にある非ドライブ可能な部分320(
図3)は、
図3に先に描かれた非ドライブ可能な部分320がないことによって図示されているように、サポートベクトルマシン230になされた更新によってドライブ可能であるようにトレーニングされたが、ここでは
図4においてドライブ可能な部分310として描かれている。
【0039】
図4に示されるユーザインタフェースの右側パネルを参照すると、別の例示的な注釈付け可能画像355が示されている。例示的な注釈付け可能画像355は机の固定具315の周囲の床を捕捉する画像であり、その後、予測された通過可能出力画像365内に非ドライブ可能なオーバーレイ366を用いて描写される。さらに、机の固定具315の周りの床は、環境の一部が通過可能であることを分類器システムが決定したことを示すドライブ可能なオーバーレイ367で示されている。
【0040】
図5を参照すると、環境のドライブ可能部分および非ドライブ可能部分を予測し、分類器システム(例えば、
図2に示す通過可能性ネットワーク)を更新するための例示的な流れ
図500が示されている。ブロック510では、電子コントローラによって画像データが受信される(例えば、カメラ104から電子コントローラ102によって画像データ144が受信される)。ニューラルネットワーク200(例えば、
図2のニューラルネットワーク200)をトレーニングするとき、画像データは、ニューラルネットワーク200をトレーニングするためにデータストレージコンポーネント(例えば、電子コントローラ102のデータストレージコンポーネント136または他の計算装置)から受信されたトレーニング画像データ138Bであることができる。場合によっては、イメージ・データが検証画像データ138Aのデータセットであるかもしれない。例えば、適宜、検証画像データ138Aからの画像データを、ニューラルネットワーク200に挿入し、ブロック520-540に関して以下に説明するように処理することができる。ブロック550で、検証画像データ138Aからの既知の画像データを処理するときに、予想される既知の結果とは反対の予測が分類器システムによって行われる場合、サポートベクトルマシンへの更新が必要であると判定することができ、これについては本明細書でより詳細に説明する。
【0041】
ブロック520において、電子コントローラ102はニューラルネットワーク200(例えば、画像データから環境のドライブ可能な部分を予測するようにトレーニングされたニューラルネットワーク)を実装する。ニューラルネットワークの実施は、電子コントローラ102上でトレーニングされたニューラルネットワークを動作させるための負荷ロジック(例えば、
図1および
図2を参照して図示および説明したようなニューラルネットワーク146を実装するためのロジック)を含むことができる。
【0042】
ブロック530において、電子コントローラ102はサポートベクトルマシン(例えば、サポートベクトルマシン230、
図2)を実装する。サポートベクトルマシン230の実装は、電子コントローラ102上でサポートベクトルマシンを動作させるためのロジック(例えば、
図1を参照して図示し説明したサポートベクトルマシン148を実装するためのロジック)をロードすることを含むことができる。ブロック540において、ブロック510で受信された画像データ144は、ニューラルネットワーク200およびサポートベクトルマシン230によって処理され、画像データ144内に取り込まれた環境のドライブ可能および/または非ドライブ可能部分の予測および/または判定を生成する。いくつかの実施形態では、ニューラルネットワーク200が環境の画像データ内のドライブ可能部分および/または非ドライブ可能部分を予測し、サポートベクトルマシンは、ニューラルネットワークによって出力された環境の予測ドライブ可能部分がサポートベクトルマシンの超平面に基づいてドライブ可能として分類されるかどうかを判定する。また、電子コントローラは、ブロック540において、環境のドライブ可能部分の表示を出力してもよい。この表示は、ロボットまたは車両の動きを制御するナビゲーションまたはモータドライブシステムなどの1つ以上の他のロボットまたは車両システムによって利用され得る。
【0043】
ドライブ可能(または本明細書では環境の通過可能領域とも呼ばれる)の予測は、ナビゲーション機能をサポートするためのロボットおよび/または自律車両、車両の半自律制御またはドライバーへの警告を提供するための車両における衝突検出などのドライバーサポートシステムなどによって利用され得る。しかしながら、2つの環境は同一ではないので、分類器システム(通過可能性ネットワーク)は、時々新しいデータで更新されるか、新しい環境内で遭遇する必要があるかもしれない。ニューラルネットワークを再トレーニングすることは1つの選択肢であるが、このプロセスは非常に煩わしく、データ集約的であり、時間のかかるタスクである。このようなリソースは、環境内で動作するシステムには利用できない。したがって、分類器システム(通過可能性ネットワーク)に更新が必要な場合、分類器システム(通過可能性ネットワーク)がオンラインのままである間に、そのようにするためのシステムおよび方法が必要である。さらに別の実施形態では、ユーザがシステムと手動でインタフェースし、サポートベクトルマシンに更新を行うように要求することができる。
【0044】
ブロック550で、分類器システム(通過可能性ネットワーク)を更新する必要があるかどうかについての判定が行われる。更新が必要であるという判定は、ニューラルネットワーク200によって行われる予測がサポートベクトルマシン230によって行われる分類に反する場合に行われてもよい。更新が必要であるという判定は、検証画像データ138Aからの画像データに基づく予測が期待される結果と競合する場合に起因し得る。
【0045】
更新が必要であると判定されない場合、例えば、ブロック550で「NO」判定が行われる場合、方法はブロック510に戻って、新しい画像データ144を取り出すか、または受信することができるが、更新が判定される場合、例えば、ブロック550で「YES」判定が行われる場合、プロセスはブロック550からブロック560に進む。ブロック560では、ユーザインタフェース(例えば、
図3および
図4に関して描写され、説明されたユーザインタフェース)が生成され、ディスプレイ(例えば、
図1のディスプレイ106)上に表示される。ユーザインタフェースは、環境の画像データ内のドライブ可能部分および非ドライブ可能部分の対話型編集を可能にする、
図3および
図4を参照して上述したものを含むことができる。ブロック560で生成された注釈付き環境画像データ250(
図2)はブロック570で超平面(例えば、
図2の超平面235)を更新するためにサポートベクトルマシンに入力される。注釈付き環境画像データ250の処理は、サポートベクトルマシン230に超平面235を再最適化させることができる。いくつかの実施形態では、ブロック570で、電子コントローラは新しい環境の注釈付き画像データを受信し、それによって、ニューラルネットワークによって出力された環境の予測されたドライブ可能部分に基づいて、サポートベクトルマシンの超平面の自動更新を引き起こすことができる。すなわち、ニューラルネットワークを再トレーニングすることなくオンラインでサポートベクトルマシンを更新するために、新しい環境の注釈付き画像データがサポートベクトルマシンに入力される。
【0046】
ブロック580で、超平面に変化が行われたかどうか、およびオンライン更新のために通過可能性ネットワークを検証する必要があるかどうかに関する判定が行われる。ブロック580で「いいえ」と判定された場合、方法はブロック510に戻り、ブロック580で「はい」と判定された場合、プロセスはブロック590に進み、検証画像データ138Aが取り出され、通過可能性ネットワークに入力され、通過可能性ネットワークの出力が、検証に使用された選択された検証画像データに対応する期待結果と比較される。期待される結果が予め定義された誤差のマージン内にあり、かつ/または期待される予測をもたらす場合、通過可能性ネットワークは有効であると判定され、そうでない場合、通過可能性ネットワークは有効でないと判定され、超平面に対する以前の更新が逆にされる。環境のドライブ可能部分およびドライブ不能部分を予測し、分類器システム(例えば、
図2に図示されている通過可能性ネットワーク)を更新するための本フローダイアグラム500のインスタンスは、ロボット、自律走行車両、ドライバー支援システムなどによって連続的に実行されることができる。
【0047】
前述のプロセスのステップは本開示の目的を依然として達成しながら、省略されることができ、または様々な順序で実行されることができることを理解されたい。本明細書で説明される機能ブロックおよび/またはフローチャート要素は、機械可読命令に変換され得る。限定されない例として、機械可読命令は以下のような任意のプログラミングプロトコルを使用して書くことができる。例えば、構文解析されるべき記述テキスト(例えば、ハイパーテキストマークアップ言語、拡張マークアップ言語等)、
(ii)アセンブリ言語、
(iii)コンパイラによってソースコードから生成されるオブジェクトコード、
(iv)インタプリタによって実行される任意の適切なプログラミング言語からの構文を使用して書かれたソースコード、
(v)ジャストインタイムコンパイラによるコンパイルおよび実行のためのソースコード、等。あるいは、機械可読命令が、フィールドプログラマブルゲートアレイ(FPGA)構成または特定用途向け集積回路(ASIC)、あるいはそれらの等価物のいずれかを介して実装されるロジックなどのハードウェア記述言語(HDL)で書かれてもよい。したがって、本明細書で説明する機能は、任意の従来のコンピュータプログラミング言語で、事前にプログラムされたハードウェア要素として、またはハードウェア構成要素とソフトウェアコンポーネントの組合せとして実装することができる。
【0048】
ここで、本明細書で説明される実施形態は、ニューラルネットワークおよびサポートベクトルマシンを有する通過可能性ネットワークを提供するシステムおよび方法を対象とすることを理解されたい。いくつかの実施形態では、ロボットシステムが、カメラによってキャプチャされた画像データを記憶するように構成されたメモリモジュールと、メモリモジュールに通信可能に結合された電子コントローラとを含む。電子コントローラは、カメラによってキャプチャされた画像データを受信し、画像データから環境のドライブ可能な部分を予測するようにトレーニングされたニューラルネットワークを実装するように構成され、ニューラルネットワークはカメラから画像データを受信し、画像データにおいてキャプチャされた環境のドライブ可能な部分を予測し、サポートベクトルマシンを実装し、サポートベクトルマシンはニューラルネットワークによって出力された環境の予測されたドライブ可能な部分を受信し、サポートベクトルマシンの超平面に基づいてニューラルネットワークによって出力された環境の予測されたドライブ可能な部分を調整する。
【0049】
いくつかの実施形態では、サポートベクトルマシンの超平面が環境のドライブ可能部分および非ドライブ可能部分のアノテーションまたは予測を編集するためにユーザインタフェースを使用することによって更新されることができる。これらの更新された画像データの設定はサポートベクトルマシンに供給されて、ドライブ可能部分および非ドライブ可能部分の重みを再学習し、次に、超平面を調整し、一方、トラバーシビリティネットワークはオンラインのままである。すなわち、ニューラルネットワークをオフラインで再トレーニングする必要がない。
【0050】
「実質的に」および「約」という用語は、本明細書では、任意の定量的な比較、値、測定、または他の表現に起因し得る固有の不確実性の程度を表すために利用され得ることに留意されたい。これらの用語はまた、本明細書中では、問題の主題の基本的な機能の変化をもたらすことなく、定量的な表現が記載された参考文献から変化し得る程度を表すために利用される。
【0051】
本明細書では特定の実施形態を図示し、説明してきたが、特許請求される主題の主旨および範囲から逸脱することなく、様々な他の変更および修正を行うことができることを理解されたい。さらに、特許請求される主題の様々な態様が本明細書で説明されてきたが、そのような態様は組み合わせて利用される必要はない。したがって、添付の特許請求の技術的範囲は、クレームされた主題事項の技術的範囲内にある全てのそのような変更および修正をカバーすることが意図されている。