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

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

▶ グーグル インコーポレイテッドの特許一覧

特許74027963次元視線ベクトルを用いた車両乗員関与を決定するための方法、コンピューティングデバイス、コンピューティングシステム、コンピュータプログラム、および車両
<>
  • 特許-3次元視線ベクトルを用いた車両乗員関与を決定するための方法、コンピューティングデバイス、コンピューティングシステム、コンピュータプログラム、および車両 図1
  • 特許-3次元視線ベクトルを用いた車両乗員関与を決定するための方法、コンピューティングデバイス、コンピューティングシステム、コンピュータプログラム、および車両 図2
  • 特許-3次元視線ベクトルを用いた車両乗員関与を決定するための方法、コンピューティングデバイス、コンピューティングシステム、コンピュータプログラム、および車両 図3
  • 特許-3次元視線ベクトルを用いた車両乗員関与を決定するための方法、コンピューティングデバイス、コンピューティングシステム、コンピュータプログラム、および車両 図4
  • 特許-3次元視線ベクトルを用いた車両乗員関与を決定するための方法、コンピューティングデバイス、コンピューティングシステム、コンピュータプログラム、および車両 図5
  • 特許-3次元視線ベクトルを用いた車両乗員関与を決定するための方法、コンピューティングデバイス、コンピューティングシステム、コンピュータプログラム、および車両 図6A
  • 特許-3次元視線ベクトルを用いた車両乗員関与を決定するための方法、コンピューティングデバイス、コンピューティングシステム、コンピュータプログラム、および車両 図6B
  • 特許-3次元視線ベクトルを用いた車両乗員関与を決定するための方法、コンピューティングデバイス、コンピューティングシステム、コンピュータプログラム、および車両 図6C
  • 特許-3次元視線ベクトルを用いた車両乗員関与を決定するための方法、コンピューティングデバイス、コンピューティングシステム、コンピュータプログラム、および車両 図6D
  • 特許-3次元視線ベクトルを用いた車両乗員関与を決定するための方法、コンピューティングデバイス、コンピューティングシステム、コンピュータプログラム、および車両 図6E
  • 特許-3次元視線ベクトルを用いた車両乗員関与を決定するための方法、コンピューティングデバイス、コンピューティングシステム、コンピュータプログラム、および車両 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-13
(45)【発行日】2023-12-21
(54)【発明の名称】3次元視線ベクトルを用いた車両乗員関与を決定するための方法、コンピューティングデバイス、コンピューティングシステム、コンピュータプログラム、および車両
(51)【国際特許分類】
   G06T 7/00 20170101AFI20231214BHJP
【FI】
G06T7/00 660A
G06T7/00 650Z
【請求項の数】 14
(21)【出願番号】P 2020529676
(86)(22)【出願日】2019-11-12
(65)【公表番号】
(43)【公表日】2021-11-18
(86)【国際出願番号】 US2019061025
(87)【国際公開番号】W WO2020256764
(87)【国際公開日】2020-12-24
【審査請求日】2020-09-04
【審判番号】
【審判請求日】2023-01-19
(31)【優先権主張番号】62/862,561
(32)【優先日】2019-06-17
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】アローラ,アンキット
(72)【発明者】
【氏名】ケラー,ブレイズ・マイケル
(72)【発明者】
【氏名】ナガラジャン,グル
【合議体】
【審判長】畑中 高行
【審判官】板垣 有紀
【審判官】高橋 宣博
(56)【参考文献】
【文献】特表2017-516219(JP,A)
【文献】特開2000-113186(JP,A)
【文献】Constantin Carapencea et al.,REAL-TIME GAZE TRACKING WITH A SINGLE CAMERA, JOURNAL OF INFORMATION SYSTEMS & OPERATIONS MANAGEMENT,Vol.9(1),米国,2015年01月01日,p.1-13,URL:http://rebe.rau.ro/RePEc/rau/jiscomg/SU15/JISCOM-SU15-A4.pdf
【文献】CUDALBU C ET AL.,Driver monitoring with a single high-speed camera and IR illumination,SIGNALS, CIRCUITS AND SYSTEMS, 2005. ISSCS 2005. INTERNATIONAL SYMPOSIUM ON IASI,Vol.1(14),米国,IEEE,2005年07月14日,p.219-222
(58)【調査した分野】(Int.Cl.,DB名)
G06T7/00-7/90
(57)【特許請求の範囲】
【請求項1】
コンピュータによって実行される方法であって、
車両のカメラシステムを介して前記車両の乗員の少なくとも1つの画像を取得するステップと、
前記乗員の前記少なくとも1つの画像における目の位置に基づいて前記車両内の前記乗員の1つ以上の目の位置を求めるステップと、
前記車両内の前記乗員の1つ以上の目の位置および1つ以上の目の動きに基づいて第1初期視線ベクトルを求めるステップと、
前記少なくとも1つの画像における1つ以上の顔面ランドマークに基づいて前記乗員の顔面平面のピッチ角、ロール角、およびヨー角を求め、前記ピッチ角、前記ロール角、および前記ヨー角に基づいて、第2初期視線ベクトルを求めるステップと、
前記第1初期視線ベクトルおよび前記第2初期視線ベクトルを用いて、前記乗員の視線ベクトルを求めるステップと、
前記乗員が見ている関心領域として、前記車両の複数の関心領域のうちの前記視線ベクトルが交差する関心領域を求めるステップとを含み、前記車両のデータファイルは前記複数の関心領域の各々の座標のセットを含み、当該座標のセットの各々は、前記車両の各々の関心領域の2次元平面を画定し、
前記求めた関心領域に対応付けられたアクションを実行するステップとを含む、方法。
【請求項2】
前記視線ベクトルを求めるステップは、前記第1初期視線ベクトルおよび前記第2初期視線ベクトルの平均を、前記視線ベクトルとして利用することを含む、請求項1に記載の方法。
【請求項3】
前記視線ベクトルを求めるステップは、前記少なくとも1つの画像が部分的に顔が隠れている前記乗員を含む場合、前記第1初期視線ベクトルを前記視線ベクトルとして利用することを含む、請求項1または請求項2に記載の方法。
【請求項4】
前記視線ベクトルを求めるステップは、前記少なくとも1つの画像において前記乗員の目が閉じられている場合、前記第2初期視線ベクトルを前記視線ベクトルとして利用することを含む、請求項1~請求項3のいずれか1項に記載の方法。
【請求項5】
前記1つ以上の目の動きは、瞳孔の動きを含む、請求項1~請求項4のいずれか1項に記載の方法。
【請求項6】
前記第2初期視線ベクトルを求めるステップは、少なくとも1つの機械学習済モデルを前記少なくとも1つの画像に適用するステップを含み、前記少なくとも1つの機械学習済モデルは、顔面ランドマークを識別するように学習されており、前記少なくとも1つの機械学習済モデルは前記少なくとも1つの画像に適用されることにより前記乗員の前記顔面ランドマークを出力する、請求項1~請求項5のいずれか1項に記載の方法。
【請求項7】
前記少なくとも1つの画像は、前記カメラシステムの2つ以上の異なるカメラの各々が取り込んだ少なくとも1つの画像を含み、前記車両内の前記乗員の1つ以上の目の位置を求めるステップは、
前記2つ以上の異なるカメラの各々が取り込んだ少なくとも1つの画像に基づいて視差角を求めるステップを含み、前記視差角は、前記2つ以上の異なるカメラのうち第1のカメラに対する前記乗員の角度と前記2つ以上の異なるカメラのうち第2のカメラに対する前記乗員の角度の間の視差角であり、前記車両内の前記乗員の1つ以上の目の位置を求めるステップは、
前記第1のカメラおよび前記第2のカメラの各々の位置と前記視差角とに基づいて、前記第1のカメラおよび前記第2のカメラの各々から前記乗員の1つ以上の目までの距離を求めるステップと、
前記乗員の前記少なくとも1つの画像における目の位置と前記距離と前記第1のカメラおよび前記第2のカメラの各々の位置とに基づいて、前記乗員の1つ以上の目の位置を求めるステップとを含む、請求項1~請求項6のいずれか1項に記載の方法。
【請求項8】
前記少なくとも1つの画像は、前記カメラシステムの赤外線カメラを用いて取り込んだ画像を含み、前記車両内の前記乗員の1つ以上の目の位置を求めるステップは、
前記画像の歪みに基づいて、前記赤外線カメラから前記乗員の1つ以上の目までの距離を求めるステップと、
前記乗員の前記少なくとも1つの画像における目の位置と前記赤外線カメラの位置と前記距離とに基づいて、前記乗員の1つ以上の目の位置を求めるステップとを含む、請求項1~請求項6のいずれか1項に記載の方法。
【請求項9】
前記車両内の前記乗員の1つ以上の目の位置は、前記カメラシステムの1つのカメラを重心とするカメラベースの座標系を用いて特定され、
前記複数の関心領域の各々の位置は車両ベースの座標系を用いて特定され、前記車両ベースの座標系の重心は前記車両の内部に位置し前記1つのカメラの位置と異なっており、
前記関心領域を求めるステップは、
前記1つ以上の目の位置を、前記カメラベースの座標系から前記車両ベースの座標系に変換するステップを含み、
前記視線ベクトルが交差する関心領域を求めることは、
前記視線ベクトルを、前記車両ベースの座標系を用いて特定した前記1つ以上の目の位置から延ばしたものが交差する関心領域を求めることを含む、請求項1~請求項8のいずれか1項に記載の方法。
【請求項10】
前記車両のデータファイルは拡張可能マークアップ言語に従って構成されたデータを含み、前記車両のデータファイルは前記複数の関心領域のうちの各関心領域の座標のセットを含み、前記座標のセットの各々は前記車両の内部を包む球体の重心に対して定められ、前記座標のセットの各々は2次元平面を画定する、請求項1~請求項9のいずれか1項に記載の方法。
【請求項11】
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサによって実行されると請求項1~請求項10のいずれか1項に記載の方法を前記少なくとも1つのプロセッサに実行させる命令を含むメモリとを備える、コンピューティングデバイス。
【請求項12】
請求項11に記載のコンピューティングデバイスと、カメラシステムと、を備えるコンピューティングシステム。
【請求項13】
コンピューティングデバイスの少なくとも1つのプロセッサによって実行されると請求項1~請求項10のいずれか1項に記載の方法を前記少なくとも1つのプロセッサに実行させる命令を含むコンピュータプログラム。
【請求項14】
請求項11に記載のコンピューティングデバイスを備える車両。
【発明の詳細な説明】
【背景技術】
【0001】
背景
両は、車線境界線内で車両を維持すること、曲がり角を回るように車両を案内すること、または他の車両の存在に基づいて自動的に加速するかもしくはブレーキをかけることを支援する機能を備えている場合がある。これらの運転支援機能は、適切に使用される場合は有用であるが、一部の運転者はさまざまな時間帯においてこれらの機能に依存して車両を完全に制御している。運転者は、積極的に車両を運転するのではなく、車両のヘッドユニットと対話をしている、窓の外の景色を眺めている、携帯電話を見ている、食べている、またはそれ以外の作業を行っている場合がある。残念ながら、これらの運転支援システムはユーザとの対話を必要とするように設計されているので、不注意な運転者は事故を起こす可能性がある。
【発明の概要】
【課題を解決するための手段】
【0002】
概要
概して、本開示は、ユーザが車両の運転に関与しているのかまたは何か他のものに注意を向けているのかをコンピューティングシステムが3次元の車室空間内の3次元視線ベクトルを用いて判断することを可能にするための技術に関する。本開示の技術は、ユーザがハンドルに触れることを要求したり、運転者の目が開いていると判断したり、顔の表情または瞬きの速度を分析したりするのではなく、コンピューティングシステムが、ユーザが見ている車両内の場所を正確に判断し車両内のその場所に何が物理的に位置しているかを判断することを可能にすることができる。たとえば、コンピューティングシステムは、3次元の車室内における乗員の頭部および/または目の位置を求め、乗員の顔面平面に少なくとも一部基づいて3次元視線ベクトルを求めることができる。コンピューティングシステムは、車室空間内における乗員の頭部/目の3次元位置と3次元視線ベクトルとを用いて、ユーザが見ている3次元の車室空間内の場所、たとえばバックミラー、車両のヘッドユニット、車両の計器ディスプレイ、車両のフロントガラスなどを、より正確に判断することができる。場合によっては、コンピューティングシステムは、(たとえば乗員が見ている場所は窓に関連があるという理由で)乗員が車両外部の何かを見ていると判断することがある。このような場合、コンピューティングシステムは、乗員がサイドウィンドウから外を見ておりしたがって車両の運転に十分な注意を向けていない可能性があるか否かを判断することある。コンピューティングシステムは、ユーザが見ている場所を利用して、安全に関係するまたはその他の各種措置を講じることができる(たとえば、窓の外のユーザが見ているものの写真を撮影する、車両のヘッドユニットと対話するためのユーザの能力は制限せずに、ヘッドユニットと対話するための運転者の能力を制限する、運転者がどれほど道路規則を守っているかを評価するなど)。
【0003】
このようにして、本開示の技術は、車両の乗員の車両に対する関与のレベルをより効果的に確かめるために、乗員がどこを見ているかをコンピューティングシステムがより正確に判断することを可能にすることができる。コンピューティングシステムは、乗員がどこを見ているかをより正確に判断することにより、乗員が道路に注意を向けているか否かを判断するだけでなく、乗員が見ている物に関連するその他の各種アクションを実行することもできる。このように、本明細書に記載の視線検出システムは、典型的なドライバーアテンションシステムと比較して、コンピューティングシステムがより多くの機能を提供することを可能にすることができる。
【0004】
1つ以上の例の詳細を添付の図面および以下の説明に記載する。本開示の他の特徴、目的、および利点は、この説明および図面ならびに請求項から明らかになるであろう。
【図面の簡単な説明】
【0005】
図1】本開示の1つ以上の局面に係る、3次元視線ベクトルを用いて運転者の関与を判断するように構成された車両コンピューティングシステムの一例を含む車両の内部を示す概念図である。
図2】本開示の1つ以上の局面に係る、内部カメラシステムを有する車両の一例を示す概念図である。
図3】本開示の1つ以上の局面に係る、運転者の顔面平面の一例を示す概念図である。
図4】本開示の1つ以上の局面に係る、関心領域を有する車両の内部の一例を示す概念図である。
図5】本開示の1つ以上の局面に係る、3次元視線ベクトルを用いて運転者の関与を判断するように構成されたコンピューティングデバイスの一例を示すブロック図である。
図6A】本開示の1つ以上の局面に係る、機械学習済モデルの一例のある局面を示す概念図である。
図6B】本開示の1つ以上の局面に係る、機械学習済モデルの一例のある局面を示す概念図である。
図6C】本開示の1つ以上の局面に係る、機械学習済モデルの一例のある局面を示す概念図である。
図6D】本開示の1つ以上の局面に係る、機械学習済モデルの一例のある局面を示す概念図である。
図6E】本開示の1つ以上の局面に係る、機械学習済モデルの一例のある局面を示す概念図である。
図7】本開示の1つ以上の局面に係る、3次元視線ベクトルを用いて運転者の関与を判断するように構成されたコンピューティングシステムの動作の例を示すフローチャートの図である。
【発明を実施するための形態】
【0006】
詳細な説明
図1は、本開示の1つ以上の局面に係る、3次元(3D)視線ベクトルを用いて運転者の関与を判断するように構成された車両コンピューティングシステムの一例を含む車両の内部を示す概念図である。図1は、カメラ102Aおよび102B(まとめて「カメラ102」)ならびに車両コンピューティングシステム104に加えて車両100の内部(本明細書では車両100の「車室」とも呼ぶ)の断面図を示す。図1に示される車両は自動車であってもよいが、本開示の局面は、トラック、オートバイ、航空機、船舶、列車、またはそれ以外の車両を含む、他の種類の車両にも適用できるものであってもよい。図1において、運転者は通常はこの座席に座っていてもよく、その他の同乗者の座席は運転者の座席の後方または隣に位置していてもよい。
【0007】
カメラ102は、カメラまたは電荷結合素子等の、任意の適切な種類の画像捕捉装置のうちの1つ以上であってもよい。いくつかの例において、カメラ102は、高視野浅焦点深度の1つ以上の赤外線カメラであってもよく、概ね車両100の1つ以上の座席の方向に向けられた背面照光赤外線カメラであってもよい。その他の例において、カメラ102は、その他1つ以上の赤外線カメラ、サーモグラフィーカメラ、熱撮像カメラ、感光カメラ、レンジセンサ、深度カメラ、トモグラフィーデバイス、レーダーデバイス、または超音波カメラを含み得る、1つ以上のその他の種類のカメラもしくは画像センサであってもよい、またはこれらを含んでいてもよい。いくつかの例において、カメラ102は、コンピュータビジョン技術の適用に適した画像キャプチャデバイスであってもよい。使用するセンサまたはカメラの種類に応じて、結果として得られる画像は、2次元画像、3次元画像、または画像シーケンスを含み得る。画素値は、典型的には1つ以上のスペクトル帯における光度に対応するが、深度、超音波もしくは電磁波の吸収もしくは反射、または核磁気共鳴に関連していてもよい。図1には2つのカメラ102のみが示されているが、車両100は、車両100の内部に配置された3つ以上のカメラ102を含んでいてもよく、本開示の技術は任意の数のカメラ102が取り込んだ任意の数の画像を使用することができる。
【0008】
一般的に、車両コンピューティングシステム104は、支援する、報知する、楽しませる、または、車両の乗員とのユーザ対話を必要とするその他のタスクを実行するように動作することができる。車両コンピューティングシステム104を、車両ヘッドユニット、インフォテイメント(infotainment)システム、またはそのサブコンポーネントと呼ぶこともできる。たとえば、車両コンピューティングシステム104は、車両の1人以上の乗員に代わって、機能を実行するまたは情報を処理する各種アプリケーションを実行することができる。たとえば、車両コンピューティングシステム104は、目的地への方向を提供するナビゲーションサービスを提供してもよい。車両コンピューティングシステム104はまた、クエリに応じておよび/またはプリエンプティブな支援またはレコメンデーションとして情報を提供する情報検索サービスを提供することができる。車両コンピューティングシステム104はまた、車両に関する車両データまたは音声もしくは動画等のマルチメディアを提供することもできる。車両コンピューティングシステム104が提供し得る機能のわずかな例にしか言及していないが、車両コンピューティングシステム104はその他多数の機能を提供することができる。このやり方およびその他のやり方で、車両コンピューティングシステム104は、車両の1人以上の乗員の運転または乗車体験を改善することができる。
【0009】
カメラシステムおよび/または車両コンピューティングシステム104は、カメラ102が取り込んだ画像を用いて、車両100の内部における乗員の位置を求めることができ、かつ、乗員の3D視線ベクトル(たとえば3D視線ベクトル112)を求めることができる。カメラ102は、車両100の乗員が車両100を運転しているときのこの乗員(たとえば車両100の運転者)の画像を取り込むことができる。いくつかの場合において、カメラ102は、車両100のその他の乗員の画像を取り込むカメラを含み得る。カメラ102は、少なくとも1つ以上のプロセッサとメモリとを含むカメラシステムの一部であってもよい。カメラ102が取り込んだ画像は、カメラシステムまたは車両コンピューティングシステム104または双方によって分析されてもよい。さまざまな例において、車両コンピューティングシステム104に関連する本明細書に記載の技術は、その全体または一部がコンピューティングシステムによって実行されてもよい。
【0010】
車両コンピューティングシステム104は、乗員の頭部および/または目を車両100内部に配置するために、カメラ102のうちの1つ以上から乗員の目(または頭部)までの距離を、カメラ102のうちの1つ以上が取り込んだ画像を用いて求める。いくつかの場合において、カメラ102のうちの少なくとも2つが乗員の画像を取り込む。車両コンピューティングシステム104は、少なくとも2つのカメラ102の各々の位置はわかっていると仮定して、画像間の視差角(parallax angle)を分析することができる。車両コンピューティングシステム104は、視差角とカメラ間の距離とを用いて、少なくとも2つのカメラ102のうちの1つ以上と乗員の目との間の距離を求める。別の例として、カメラ102のうちの1つは赤外線カメラであってもよい。車両コンピューティングシステム104は、カメラ102のうちの1つのカメラを用いて、赤外線カメラが取り込んだ画像の歪みを分析することにより、赤外線カメラ102と乗員の目との間の距離を求めることができる。
【0011】
車両コンピューティングシステム104は、この求めたカメラ102と乗員の目との間の距離と、取り込んだ画像における乗員の目の位置とを用いて、乗員の目を3D空間においてカメラ102に対して配置することができる。すなわち、車両コンピューティングシステム104および/またはカメラシステムは、車両100の内部における、カメラ102のうちの1つ以上に対する乗員の目の位置を求めることができる。乗員の目の位置は、3D空間内でカメラ102のうちの1つ以上に対して定められる位置である。たとえば、3D空間は球体でその重心がカメラ102のうちの1つの位置に対応していてもよい。このような例において、乗員の目の位置は(x,y,z)座標で定めることができ、(0,0,0)はこの球体の重心として用いられているカメラ102のうちの1つの位置である。このような座標は「カメラベースの座標系」の内部にあると言うことができる。
【0012】
車両コンピューティングシステム104は、車両100の乗員の目を追跡することもできる。たとえば、車両コンピューティングシステム104は、カメラ102を用いて、カメラ102が取り込んだ複数の異なる画像にわたって乗員の目の位置および動きを追跡してもよい。車両コンピューティングシステム104は、目の位置および瞳孔または目のその他の特徴の動き(すなわちアイトラッキング)を用いて、第1の初期3D視線ベクトルを求めることができる。しかしながら、さまざまな場合において、乗員の目が遮られているためにカメラ102が取り込んだ画像が乗員の目の明瞭な画像を含んでいないことがある。よって、車両コンピューティングシステム104は、乗員の目の位置および動きの追跡に頼るだけではなく、取り込んだ画像をさらに分析することによって乗員の画像平面を求めてもよい。
【0013】
乗員の顔面平面の計算において、車両コンピューティングシステム104は、カメラ102のうちの1つ以上が取り込んだ1つ以上の画像において複数の顔面ランドマークを識別することができる。顔面ランドマークは、口、目、鼻、耳、眉、あご、またはそれ以外の顔の特徴の輪郭を含み得る。車両コンピューティングシステム104は、識別した顔面ランドマークを用い、各種顔面ランドマーク間の幾何学的整合性に基づいて、画像に含まれる乗員の顔が何らかのピッチ、ロール、またはヨーを示しているか否かを判断することができる。たとえば、乗員の口と目との間の総距離と比較して、乗員の2つの目の間の距離が、乗員が真っすぐ前方を見ているときよりも短い場合、車両コンピューティングシステム104は、乗員が左または右を見ていると判断する。車両コンピューティングシステム104は、画像は乗員の右耳を含んでいるが左耳は含んでいないと判断した場合、乗員は左を見ていると判断する。顔面平面のピッチ角、ロール角、およびヨー角は、顔面ランドマーク間の距離の相対的変化に基づいて判断することができる。車両コンピューティングシステム104は、求めた顔面平面のピッチ角、ロール角、およびヨー角を用いて、第2の初期3D視線ベクトルを求めることができる。本明細書に記載の、ピッチ、ロール、およびヨーは、特定の軸を中心とするユーザの頭部の回転を意味し得る。一般的に、ロールは、頭部のその鉛直軸を中心とする回転を意味し得るものであり、頭部の左右の回転と言うこともできる。ピッチは、ユーザが、人がうなずいているかのように頭部を上下に動かすことを意味し得る。ヨーは、ユーザが頭部を左(右)から鉛直軸を通って右(左)に回すことを意味し得る。このときの回転は、ユーザの一方の耳から他方の耳までの水平面に沿った回転となる。
【0014】
さまざまな場合において、車両コンピューティングシステム104は、トレーニングされた機械学習モデルを画像に適用することにより、顔面平面を求めることができる。機械学習モデルは、既に識別されている顔面ランドマークを有し顔面平面の角度が既に求められている他の人々の画像を用いてトレーニングすることができる。機械学習モデルは、ユーザフィードバックと、車両コンピューティングシステム104から与えられたフィードバックとに基づいて、継続的に学習することができる。たとえば、車両コンピューティングシステム104は、顔面平面を用いて求めた第2の初期3D視線ベクトルと比較される、アイトラッキングを用いて求めた第1の初期3D視線ベクトルに基づいて、機械学習モデルのパラメータをランク付けまたは調整することができる。機械学習システムが如何にして動作し得るかに関するその他の詳細は、以下で図6A図6Eを参照しながら説明する。
【0015】
車両コンピューティングシステム104は、第1および第2の初期3D視線ベクトルを求めると、第1および第2の初期3D視線ベクトル双方に基づいて、乗員の3D視線ベクトル112を求めることができる。さまざまな場合において、車両コンピューティングシステム104は、第1および第2の初期3D視線ベクトルの平均を用いて3D視線ベクトル112を求めることができる。その他の例において、車両コンピューティングシステム104は、第1および第2の初期3D視線ベクトルのうちの1つ以上に重み付けを適用し重み付けされた値を用いることによって3D視線ベクトル112を求めることができる。車両コンピューティングシステム104は、第1または第2の初期3D視線ベクトルが正確に求められた確信度(confidence)に基づいて、第1および第2の初期3D視線ベクトルに適用する重みを求めることができる。たとえば、車両コンピューティングシステム104が顔面ランドマークのうちの一部のみを検出した場合(たとえば目と鼻だけ、口またはあごは検出なし)、顔面平面のピッチ角、ロール角、およびヨー角の誤差範囲が大きくなる可能性がある。このため、車両コンピューティングシステム104は、小さくした重みの値を第2の初期3D視線ベクトルに適用し大きくした重みの値をアイトラッキングを用いて求めた第1の初期3D視線ベクトルに適用することができる。
【0016】
第1および第2の初期3D視線ベクトル双方が必要と説明しているが、車両コンピューティングシステム104は、第1および第2の初期3D視線ベクトルのうちの一方を用いて3D視線ベクトル112を求めることもできる。たとえば、カメラ102が取り込んだ画像において乗員の目が閉じられているまたは乗員がサングラスを着用している場合、車両コンピューティングシステム104は、第2の初期3D視線ベクトル(すなわち乗員の顔面平面のピッチ、ロール、およびヨーに基づいて求めた3D視線ベクトル)を3D視線ベクトル112として使用してもよい。別の例として、カメラ102が取り込んだ画像に、(たとえば乗員の手によって)顔が部分的に隠れている乗員が含まれている場合、車両コンピューティングシステム104は、第1の初期3D視線ベクトル(すなわちアイトラッキングを用いて求めた3D視線ベクトル)を3D視線ベクトル112として使用してもよい。
【0017】
車両コンピューティングシステム104が3D視線ベクトルを求めるのではなく、または求めることに加えて、カメラシステムが3D視線ベクトル112を求めてもよい。すなわち、車両コンピューティングシステム104がカメラ102から1つ以上の画像を受けるのではなく、カメラシステムが、(たとえば各カメラ102の中でまたは車両コンピューティングシステム104と区別されるコンピューティングデバイスを用いて)画像を分析し、3D視線ベクトル112を求め、3D視線ベクトル112の値を車両コンピューティングシステム104に与えてもよい。いくつかの場合において、カメラシステムは、第1および第2の初期3D視線ベクトルを求めてこれらを車両コンピューティングシステム104に与える。そうすると、車両コンピューティングシステム104は、カメラシステムから受けた第1および第2の初期3D視線ベクトルを用いて3D視線ベクトル112を求めることができる。
【0018】
車両コンピューティングシステム104は、3D視線ベクトル112と、カメラ102のうちの1つ以上に対する乗員の目の位置とに基づいて、乗員が見ている1つ以上の関心領域を求める。このように関心領域を求めるために、車両コンピューティングシステム104は、3D視線ベクトル112が車両100の内部の1つ以上の位置と交差する場所を求める。一例として、車両コンピューティングシステム104には車両固有データファイルが与えられる。車両データファイルは、車両100の内部の各関心領域の座標のセットを含み、その座標セットの各々は、車両の内部の重心を基準として(すなわち車両ベースの座標系を用いて)定められ、その座標のセットの各々は、関心領域の2次元平面を画定する。さらに、各種車両の内部の特徴を定める車両データファイルを用いることにより、本開示の技術を、プログラマーが異なる各車両に合わせて計算をカスタマイズすることを要求せずに、多種多様な車両に対して一層簡単に適用することができる。
【0019】
乗員の位置は最初にカメラ102のうちの1つ以上に対して(すなわちカメラベースの座標系内で)求めることができるので、車両コンピューティングシステム104は、乗員の目の初期位置座標を、車両データファイルで指定されている重心に対して定められる座標のセットに変換することができる。すなわち、車両コンピューティングシステム104は、カメラ102のうちの1つ以上に対して定められた球体についての座標を用いるのではなく、乗員の目の位置を調整することにより、車両100の内部を包む球体の重心に対する位置を定める。車両100の内部を包みその重心がカメラ102のうちの1つの位置以外のいずれかの場所にある球体の内部の座標位置を、本明細書では「車両ベースの座標系」内の座標を有すると言うことができる。いくつかの例において、車両ベースの座標系の重心は、車両100の内部の中心点に位置していてもよい。その他の例において、この重心は、運転席と車両100のダッシュボードまたはハンドルとの間の空間内の中心点に位置していてもよい。
【0020】
車両データファイルは、車両ベースの座標系を用いて、車両100内における1つ以上のカメラ102の位置を定めることができる(たとえば(x,y,z座標で))。車両コンピューティングシステム104は、1つ以上のカメラ102の座標位置と、カメラベースの座標系を用いて定めた乗員の目の座標位置とを使用し、車両ベースの座標系における乗員の目の新たな座標位置を生成する。
【0021】
車両コンピューティングシステム104は、乗員の目の、車両ベースの座標系の位置を用いて、3D視線ベクトル112を、乗員の目から、関心領域に対応付けられた平面と交差するまで延ばす。車両コンピューティングシステム104は、3D視線ベクトル112が交差するこの平面が、車両100の乗員が見ている関心領域であると判断する。図1に示されるように、3D視線112は車両100のフロントガラスに向かって延びている。したがって、車両コンピューティングシステム104は、乗員が車両100のフロントガラスから外を見ており車両100の運転に関与していると判断することができる。
【0022】
いくつかの場合において、車両コンピューティングシステム104は、車両100の乗員がある時間にわたってどの関心領域を見ているかを、定期的にまたは連続的に判断してもよい。車両コンピューティングシステム104は、乗員がどの関心領域を見ているかをモニタリングすることにより、乗員の関与のレベルを判断することができるとともに、乗員がどれほど良く交通規則および安全運転のための最良の実施に従っているかを判断することができる。たとえば、乗員がサイドミラーを見ずに車線変更した場合、またはバックミラーを見ずに車両100を後退させた場合、車両コンピューティングシステム104は、乗員が安全のための最善の実施に従って車両100を運転していないと判断することができる。別の例として、車両100が動いているときに乗員が長時間にわたって車両コンピューティングシステム104のディスプレイを見ている場合、車両コンピューティングシステム104は、ロックアウトする、または乗員が車両コンピューティングシステム104とやり取りするのを禁止することができる。
【0023】
このようにして、本開示の技術は、車両コンピューティングシステムが、車両の乗員がどこを見ているかをより正確に判断することを可能にし、乗員が車両の運転者である場合は、運転者の関与をより正確に判断することを可能にすることができる。さらに、車両コンピューティングシステム104は、乗員が何を見ているかについてのより正確な判断を用いることで、安全に関する各種アクションまたは任意の数のその他のアクションを自動的に実行することができる。このようにして、本開示の技術は改善された車両安全システムを可能にすることができる。
【0024】
図2は、本開示の1つ以上の局面に係る、内部カメラシステムを有する車両の一例を示す概念図である。図2に示されるように、車両内部200は、車両内部200のさまざまな異なる場所に配置された4つのカメラ202A~202D(まとめて「カメラ202」)を含む。各カメラ202は、図1に示され図1との関連で説明したカメラ102の一例であってもよい。
【0025】
車両内部200における異なるカメラ配置は、本明細書に記載の乗員の画像の取り込みについて異なる長所または短所をもたらし得る。たとえば、カメラ202Aは車両内部200の計器クラスタ内に配置されている。カメラ202Aは車両の運転者のおそらく頭部位置の正面に位置しているので、カメラ202Aが取り込んだ画像は、運転者の顔面平面のピッチ、ロール、およびヨーを求めるための高品質画像を提供することができる。カメラ202Cは車両のヘッドユニットディスプレイの上方に位置しているので、車両の運転者と同乗者双方の顔を含む画像を取り込むことができる。このような画像を用いることにより、車両の同乗者の3D視線ベクトルを求めることができ、また、このような画像を用いることにより、車両の運転者か同乗者のどちらが車両のヘッドユニットディスプレイとやり取りしているかを区別することができる。別の例として、運転者側の支柱内に配置されたカメラ202Dは、カメラ202Dから運転者の目までの距離を求めるのに使用される画像を取り込む赤外線カメラであってもよい。これに代えてまたはこれに加えて、車両コンピューティングシステム104は、カメラ202Bおよび202D双方が取り込んだ画像を用いることにより、運転者の目についての視差角を求めることができ、カメラ202Bおよび202Dのうちの一方または双方(またはカメラ202Bおよび202Dの間の中心点)から運転者の目までの距離を求めることができる。車両200は左ハンドル車であるが、他の例において、車両内部200または図1の車両100は右ハンドル車であってもよい。このような例ではカメラ202の配置を反転させてもよい(たとえばカメラ202Dが右側の支柱にあってもよい)。
【0026】
図3は、本開示の1つ以上の局面に係る、運転者の顔面平面の一例を示す概念図である。図3に示されるように、車両コンピューティングシステム104により、1つ以上の顔ランドマーク302および顔面平面304が識別されており、3D視線ベクトル306が求められている。
【0027】
顔ランドマーク302は、運転者の2つの口角と、運転者の鼻の基部と、運転者の各目の角とを含む。車両コンピューティングシステム104は、これらの顔ランドマーク302を用いることで顔面平面を画定することができる。たとえば、車両コンピューティングシステム104は、1つ以上の顔ランドマーク302間の距離を求めてもよい。いくつかの場合において、車両コンピューティングシステム104は、運転者の2つの口角の間の距離、および/または左目の角と右目の角との間の距離を求めることができる。車両コンピューティングシステム104は、これらの距離を、基準または運転者の学習済の距離と比較することにより、顔面平面304を画定する座標を求めることができる。
【0028】
車両コンピューティングシステム104は、顔面平面304を用いて3D視線ベクトル306(たとえば図1に関して説明した第2の初期3D視線ベクトル)を求めることができる。3D視線ベクトル306は、運転者の両目から出ている矢印として示されているが、運転者の目の一方または双方の位置から外に延ばすことができる1本のベクトルであってもよい。さらに、3D視線ベクトル306を、車両コンピューティングシステムがアイトラッキングを用いて求めた別の3D視線ベクトルと組み合わせてもよい。
【0029】
図4は、本開示の1つ以上の局面に係る、関心領域を有する車両の内部の一例を示す概念図である。図4に示されるように、車両の内部は関心領域400A~400G(まとめて「関心領域400」)を含む。関心領域400は、図4に示される車両内部の特定の形状およびモデルについての車両データファイルにおいて定められていてもよい。車両データファイルは、車両ベースの座標系内の平面を画定する関心領域400の各々の座標を特定する。一般的に、車両データファイルは、拡張可能マークアップ言語(XML)等の構造化されたデータフォーマットを用いて定められる。しかしながら、車両データファイルに含まれる情報は、車両コンピューティングシステム104が処理するように構成されている任意のフォーマットで符号化されてもよい。
【0030】
各関心領域400は、車両の物理的要素に対応付けることができる。関心領域は、車両内部の関心領域として説明しているが、さまざまな場合において、関心領域は車両外部に位置する物体に対応付けられていることがある。たとえば、関心領域400Aおよび400Gは各々、車両のサイドミラーに対応付けられてもよい(たとえばそれぞれ運転者側のサイドミラーおよび同乗者側のサイドミラー)。
【0031】
その他の関心領域は、車両の1つの物理的要素の異なる領域に対応付けられていてもよい。たとえば、関心領域400Bおよび400Dはいずれも車両のフロントガラスに対応付けることができる。この例において、フロントガラスの異なる部分を運転者の異なる関与レベルに対応付けることができる。よって、車両コンピューティングシステム104が運転者は関心領域400Bを見ていると判断した場合、車両コンピューティングシステム104は、ユーザは車両の前方の道路を見ている可能性が高く車両の運転に関与していると判断することができる。しかしながら、車両コンピューティングシステム104が運転者は関心領域400Dを見ていると判断した場合、車両コンピューティングシステム104は、運転者は道路沿いにある何か外のものを見ており、したがって車両の前方の道路を見ている場合と比較して車両の運転への関与は少ないであろうと判断することができる。車両コンピューティングシステム104が運転者は安全運転のための最良の実施に従っているか否かを判断する場合に、車両コンピューティングシステム104は、車両が緑に変わったばかりの信号機の場所に位置していると判断することがある。車両コンピューティングシステム104は、たとえば運転者が関心領域400Dを見ていたか否かを判断することにより、赤信号で走り過ぎた可能性のある他の車両を運転者が確認していたか否かを判断することができる。
【0032】
いくつかの例において、車両コンピューティングシステム104は、運転者が見ている関心領域を用いることにより、運転者が実行しているアクションと同乗者が実行しているアクションを区別することができる。たとえば、インフォテイメントシステムと対話している(たとえばナビゲーションアプリに住所を入力、音楽を選択、車両または同乗者設定を調整する、など)ユーザからのユーザ入力を車両コンピューティングシステム104が受けた場合、車両コンピューティングシステム104は、運転者が関心領域400Fを見ているか否かを判断することができる。運転者は関心領域400Fを見ていないと車両コンピューティングシステム104が判断した場合、車両コンピューティングシステム104は、同乗者が入力していると判断して同乗者が制限なしでインフォマントシステムを引続き使用することを認めることができる。
【0033】
しかしながら、運転者が関心領域400Fを見ている場合、車両コンピューティングシステム104は、運転者がユーザ入力を与えている可能性が高いと判断することができる。運転者が、所定期間内にユーザ入力のしきい値数を超える数の入力を与えた場合、または所定期間を超えてインフォマントシステムと対話し続けた場合、車両コンピューティングシステム104は、道路に再び注意を向けるよう運転者に促すためのさまざまなアクションを実行することができる。たとえば、車両コンピューティングシステム104は、非限定的な例として、追加のユーザ入力の処理を停止してもよく、ディスプレイにグラフィカルユーザインターフェイスを出力するのをやめてもよく、または、道路に注意するよう運転者に促すメッセージを出力してもよい。
【0034】
いくつかの例において、車両コンピューティングシステム104は、求めた関心領域を用いることにより、各種通知をどこに出力するかを判断することができる。たとえば、車両コンピューティングシステム104は、運転者が関心領域400E(すなわち計器クラスタに相当)を見ていると判断した場合、計器クラスタを用いて、車両の燃料が減少しているという警告メッセージを出力することができる。車両コンピューティングシステム104は、運転者が関心領域400Eではなく関心領域400Bを見ていると判断した場合、警告メッセージを、関心領域400B内において車両のフロントガラスに投影されるよう、ヘッドアップディスプレイを用いて出力することができる。
【0035】
図5は、本開示の1つ以上の局面に係る、3D視線ベクトルを用いて運転者の関与を判断するように構成されたコンピューティングデバイスの一例を示すブロック図である。コンピューティングデバイス500は、図1の車両コンピューティングシステム104のより詳細な例である。図5は、コンピューティングデバイス500のある特定の例のみを示しており、他の場合では、コンピューティングデバイス500の他の多数の例が用いられてもよく、この一例としてのコンピューティングデバイス500に含まれるコンポーネントのサブセットを含み得る、または図5に示されていないその他のコンポーネントを含み得る。
【0036】
図5の例に示されるように、コンピューティングデバイス500は、存在感知ディスプレイ512と、1つ以上のプロセッサ540と、1つ以上の通信ユニット542と、1つ以上の入力コンポーネント544と、1つ以上の出力コンポーネント546と、1つ以上の記憶装置548とを含む。コンピューティングデバイス500の記憶装置548は、視線モジュール522と、目位置モジュール524と、関心領域モジュール526と、車両データ528とを含む。
【0037】
通信チャネル550は、コンポーネント512、540、542、546、および/または548の各々を、コンポーネント間通信のために(物理的に、通信可能に、および/または作動的に)相互接続することができる。いくつかの例において、通信チャネル550は、システムバス、ネットワーク接続、1つ以上のプロセス間通信データ構造、またはデータ(情報とも呼ぶ)通信のための任意の他のコンポーネントを含み得る。
【0038】
コンピューティングデバイス500の1つ以上の通信ユニット542は、データを送信および/または受信することによって外部デバイスと通信することができる。たとえば、コンピューティングデバイス500は、通信ユニット542のうちの1つ以上を用いることにより、セルラー無線ネットワーク等の無線ネットワーク上で無線信号を送信および/または受信することができる。いくつかの例において、通信ユニット542は、グローバルポジショニングシステム(GPS)ネットワーク等の衛星ネットワーク上で衛星信号を送信および/または受信することができる。通信ユニット542の例は、ネットワークインターフェイスカード(たとえばイーサネット(登録商標)カード等)、光トランシーバ、無線周波数トランシーバ、GPS受信機、または情報を送信および/または受信することが可能な任意の他の種類のデバイスを含む。通信ユニット542のその他の例は、携帯電話で見受けられる短波無線(たとえばNFC、ブルートゥース(登録商標)(BLEを含む))、GPS、3G、4G、5G、およびWIFI(登録商標)無線、ならびにユニバーサルシリアルバス(USB)コントローラなどを含み得る。
【0039】
コンピューティングデバイス500の1つ以上の入力コンポーネント544は入力を受信することができる。入力の2、3の例を挙げると、触覚、音声、動的、および光入力である。コンピューティングデバイス500の入力コンポーネント544は、一例において、マウス、キーボード、タッチパッド、音声応答システム、ビデオカメラ、ボタン、スクロールホイール、ダイヤル、コントロールパッド、マイク、または人間もしくはマシンからの入力を検出するための任意の他の種類のデバイスを含む。入力コンポーネント544は、図1のカメラ102のようなカメラを含み得る。いくつかの例において、入力コンポーネント544は、存在感知スクリーン、接触感知スクリーンなどを含み得る、存在感知入力コンポーネントであってもよい。
【0040】
コンピューティングデバイス500の1つ以上の出力コンポーネント546は出力を生成することができる。出力の例は、触覚、音声、およびビデオ出力である。コンピューティングデバイス500の出力コンポーネント546は、いくつかの例において、存在感知スクリーン、サウンドカード、ビデオグラフィックスアダプタカード、スピーカ、陰極線管(CRT)モニタ、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)、または、人間もしくはマシンに対する触覚、音声および/または視覚出力を生成するための任意の他の種類のデバイスを含む。
【0041】
いくつかの例において、コンピューティングデバイス500の存在感知ディスプレイ512は、入力コンポーネント544および/または出力コンポーネント546の機能を含み得る。図5の例において、存在感知ディスプレイ512は、存在感知スクリーンまたは接触感知スクリーン等の存在感知入力コンポーネント504を含み得る。いくつかの例において、存在感知入力コンポーネント504は、存在感知入力コンポーネントの場所にあるおよび/またはその近くにある物体を検出することができる。レンジの一例として、存在感知入力コンポーネント504は、存在感知入力コンポーネント504から2インチ以内にある指またはスタイラス等の物体を検出することができる。存在感知入力コンポーネント504は、物体が検出された存在感知入力コンポーネントの位置(たとえば(x,y)座標)を求めることができる。レンジの別の例として、存在感知入力コンポーネント504は、存在感知入力コンポーネント504から2インチ以内の物体を検出することができ、その他のレンジも可能である。存在感知入力コンポーネント504は、容量性、誘導性、および/または光認識技術を用いて、ユーザの指で選択された存在感知入力コンポーネント504の位置を求めることができる。
【0042】
いくつかの例において、存在感知ディスプレイ512も、出力コンポーネント546に関して述べたように、触覚、音声、またはビデオ刺激を用いて出力をユーザに与えることができる。たとえば、存在感知ディスプレイ512は、グラフィカルインターフェイスを表示するディスプレイコンポーネント502を含み得る。ディスプレイコンポーネント502は、出力コンポーネント546について述べたように、視覚的出力を提供する任意の種類の出力コンポーネントであればよい。存在感知ディスプレイ512はコンピューティングデバイス500に一体化されたコンポーネントとして示されているが、いくつかの例では、入力および出力の送信および/または受信のためにコンピューティングデバイス500の他のコンポーネントとデータまたは情報経路を共有する外部コンポーネントであってもよい。たとえば、存在感知ディスプレイ512は、コンピューティングデバイス500の外部パッケージング内に位置しこのパッケージングに物理的に接続された、コンピューティングデバイス500の内蔵コンポーネントであってもよい(たとえば車両のダッシュボードに搭載された車載スクリーン)。別の例において、存在感知ディスプレイ512は、コンピューティングデバイス500のパッケージングの外側に位置しこのパッケージングから物理的に離れている、コンピューティングデバイス500の外部コンポーネント(たとえば、車両の電子制御部と有線および/または無線データ経路を共有する、モニタ、プロジェクタなど)であってもよい。いくつかの例において、存在感知ディスプレイ512は、コンピューティングデバイス500のパッケージングの外部に位置しこのパッケージングから物理的に離れている場合、出力を提供するために、別々の2つのコンポーネントとしての、入力を受けるための存在感知入力コンポーネント504と出力を提供するためのディスプレイコンポーネント502とにより、実現することができる。
【0043】
コンピューティングデバイス500内の1つ以上の記憶コンポーネント548は、コンピューティングデバイス500の動作中に処理するために情報を格納することができる(たとえば、コンピューティングデバイス500は、コンピューティングデバイス500での実行中にモジュール522、524、526がアクセスするデータを格納することができる。いくつかの例において、記憶コンポーネント548は一時メモリである。このことは、記憶コンポーネント548の主な目的が長期保存ではないことを意味する。コンピューティングデバイス500上の記憶コンポーネント548は、揮発性メモリとして短期記憶用に構成されていてもよく、したがって、電源がオフにされた場合は格納されているコンテンツを保持しない。揮発性メモリの例は、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、および当該技術において周知の他の形態の揮発性メモリを含む。
【0044】
いくつかの例において、記憶コンポーネント548はまた、1つ以上のコンピュータ読取可能記憶媒体を含む。いくつかの例において、記憶コンポーネント548は、1つ以上の非一時的なコンピュータ読取可能記憶媒体を含む。記憶コンポーネント548は、揮発性メモリが一般的に格納する情報の量よりも多い量の情報を格納するように構成することができる。記憶コンポーネント548はさらに、不揮発性メモリ空間として情報の長期記憶用に構成されて電源のオン/オフサイクル後も情報を保持するように構成することができる。不揮発性メモリの例は、磁気ハードディスク、光ディスク、フラシュメモリ、または、電気的プログラム可能メモリ(EPROM(登録商標))もしくは電気的消去可能プログラム可能(EEPROM)メモリの形態を含む。記憶コンポーネント548は、モジュール522、524、および526に対応付けられたプログラム命令および/または情報(たとえばデータ)を格納することができる。記憶コンポーネント548は、522、524、および526に対応付けられたデータまたはその他の情報、ならびに車両データ528を格納するように構成されたメモリを含み得る。
【0045】
1つ以上のプロセッサ540は、コンピューティングデバイス500に対応付けられた機能を実現するおよび/または命令を実行することができる。プロセッサ540の例は、アプリケーションプロセッサ、ディスプレイコントローラ、補助プロセッサ、1つ以上のセンサハブ、および、プロセッサ、処理ユニット、または処理デバイスとして機能するように構成された任意のその他のハードウェアを含む。モジュール522、524、および526は、コンピューティングデバイス500の各種アクション、動作、または機能を実行するように、プロセッサ540が動作させることが可能であってもよい。たとえば、コンピューティングデバイス500のプロセッサ540は、モジュール522、524、および526に帰する本明細書に記載の動作をプロセッサ540に実行させる、記憶コンポーネント548に格納された命令を、取り出して実行することができる。命令は、プロセッサ540によって実行されると、コンピューティングデバイス500に、情報を記憶コンポーネント548に格納させる。
【0046】
目位置モジュール524は、車両内に位置する1つ以上のカメラから乗員の頭部または目までの距離を求めることができ、かつ、当該1つ以上のカメラに対する、3D空間内の乗員の頭部または目の位置を求めることができる。目位置モジュール524は、図1に関して述べた技術に従い、乗員の頭部および/または目の距離および/または位置を求めることができる。さらに、視線モジュール522と同様、目位置モジュール524の機能のうちのすべてまたは一部を、車両のカメラシステムにより、コンピューティングデバイス500により、またはその組み合わせにより、実行することができる。
【0047】
目位置モジュール524は、2つ以上の異なるカメラが取り込んだ画像間の視差角を、これら2つ以上のカメラの各々の位置はわかっていると仮定して、分析することができる。目位置モジュール524は、視差角およびカメラ間の距離を用いて、2つ以上のカメラのうちの1つ以上と乗員の目との間の距離を求める。別の例として、目位置モジュール524は、1つの赤外線カメラが取り込んだ画像を分析することにより、赤外線カメラが取りこんだ画像の歪みを求めて、赤外線カメラと乗員の目との間の距離を求めることができる。
【0048】
目位置モジュール524は、この求めた2つ以上のカメラと乗員の目との間の距離と、取り込んだ画像における乗員の目の位置とに基づいて、乗員の目を、3D空間内において2つ以上のカメラに対して配置することができる。すなわち、目位置モジュール524は、少なくとも1つのカメラの位置に対する、車両内部の中の乗員の目の位置を、求めることができる。乗員の目の位置は、少なくとも1つのカメラを基準として定められた3D空間内の位置である。たとえば、3D空間は、球体であってもよく、カメラの位置に対応する重心を有していてもよい。このような例において、乗員の目の位置は、(x,y,z)座標で定められてもよく、(0,0,0)は、この球体の重心として使用されているカメラの位置である。このような座標は「カメラベースの座標系」内に位置していると言うことができる。
【0049】
視線モジュール522は、図1および図3に関して述べた技術に従い、車両の乗員の3D視線ベクトルを求めることができる。コンピューティングデバイス500のコンポーネントとして示されているが、さまざまな例において、視線モジュール522の機能は、コンピューティングデバイス500による実行の代わりにまたはコンピューティングデバイス500による実行に加えて、車両のカメラシステムによって実行されてもよい。さらに、カメラシステムおよび視線モジュール522は、3D視線ベクトル決定プロセスの個々の部分を実行してもよい。
【0050】
さまざまな場合において、視線モジュール522は、アイトラッキングを実行することによって第1の初期3D視線ベクトルを求めることができ、乗員の顔面平面を求めることによって第2の初期3D視線ベクトルを求めることができる。視線モジュール522は、第1および第2の初期3D視線ベクトルを組み合わせることにより、乗員の最終的な3D視線ベクトルを求めることができる。視線モジュール522は、目の位置および瞳孔または目のその他の特徴の動き(すなわちアイトラッキング)を用いて、第1の初期3D視線ベクトルを求めることができる。しかしながら、さまざまな場合において、乗員の目が遮られているためにカメラが取り込んだ画像が乗員の目の明瞭な画像を含んでいないことがある。よって、視線モジュール522は、乗員の目の位置および動きの追跡に頼るだけではなく、取り込んだ画像をさらに分析することによって乗員の画像平面を求めてもよい。
【0051】
乗員の顔面平面の計算において、視線モジュール522は、カメラ102のうちの1つ以上が取り込んだ1つ以上の画像において複数の顔面ランドマークを識別することができる。顔面ランドマークは、口、目、鼻、耳、眉、あご、またはそれ以外の顔の特徴の輪郭を含み得る。視線モジュール522は、識別した顔面ランドマークを用い、各種顔面ランドマーク間の幾何学的整合性に基づいて、画像に含まれる乗員の顔が何らかのピッチ、ロール、またはヨーを示しているか否かを判断することができる。たとえば、乗員の口と目との間の総距離と比較して、乗員の2つの目の間の距離が、乗員が真っすぐ前方を見ているときよりも短い場合、視線モジュール522は、乗員が左または右を見ていると判断する。視線モジュール522は、画像は乗員の右耳を含んでいるが左耳は含んでいないと判断した場合、乗員が左を見ていると判断する。顔面平面のピッチ角、ロール角、およびヨー角は、顔面ランドマーク間の距離の相対的変化に基づいて判断することができる。視線モジュール522は、求めた顔面平面のピッチ角、ロール角、およびヨー角を用いて、第2の初期3D視線ベクトルを求めることができる。
【0052】
さまざまな場合において、視線モジュール522は、トレーニングされた機械学習モデルを画像に適用することにより、顔面平面を求めることができる。機械学習モデルは、既に識別されている顔面ランドマークを有し顔面平面の角度が既に求められている他の人々の画像を用いてトレーニングすることができる。機械学習モデルは、ユーザフィードバックと、視線モジュール522から与えられたフィードバックとに基づいて、継続的に学習することができる。たとえば、視線モジュール522は、顔面平面を用いて求めた第2の3D視線ベクトルと比較される、アイトラッキングを用いて求めた第1の初期3D視線ベクトルに基づいて、機械学習モデルのパラメータをランク付けまたは調整することができる。
【0053】
視線モジュール522は、第1および第2の初期3D視線ベクトルを求めると、第1および第2の初期3D視線ベクトル双方に基づいて、乗員の3D視線ベクトルを求めることができる。さまざまな場合において、視線モジュール522は、第1および第2の初期3D視線ベクトルの平均を用いて3D視線ベクトル112を求めることができる。その他の例において、視線モジュール522は、第1および第2の3D視線ベクトルのうちの1つ以上に重み付けを適用し重み付けされた値を用いることによって3D視線ベクトルを求めることができる。視線モジュール522は、第1または第2の初期3D視線ベクトルが正確に求められた確信度に基づいて、第1および第2の初期3D視線ベクトルに適用する重みを求めることができる。たとえば、視線モジュール522が顔面ランドマークのうちの一部のみを検出した場合(たとえば目と鼻だけ、口またはあごは検出なし)、顔面平面のピッチ角、ロール角、およびヨー角の誤差範囲が大きくなる可能性がある。このため、視線モジュール522は、小さくした重みの値を第2の初期3D視線ベクトルに適用し大きくした重みの値をアイトラッキングを用いて求めた第1の初期3D視線ベクトルに適用することができる。
【0054】
第1および第2の初期3D視線ベクトル双方が必要と説明しているが、視線モジュール522は、第1および第2の初期3D視線ベクトルのうちの一方を用いて3D視線ベクトルを求めることもできる。たとえば、2つ以上のカメラが取り込んだ画像において乗員の目が閉じられているまたは乗員がサングラスを着用している場合、視線モジュール522は、第2の初期3D視線ベクトル(すなわち乗員の顔面平面のピッチ、ロール、およびヨーに基づいて求めた3D視線ベクトル)を、求めた3D視線ベクトルとして使用してもよい。別の例として、2つ以上のカメラが取り込んだ画像に、(たとえば乗員の手によって)顔が部分的に隠れている乗員が含まれている場合、視線モジュール522は、第1の初期3D視線ベクトル(すなわちアイトラッキングを用いて求めた3D視線ベクトル)を3D視線ベクトルとして使用してもよい。
【0055】
関心領域モジュール526は、図1および図4に関して述べた技術に従い、車両の乗員が見ているのはどの関心領域であるかを判断することができる。関心領域モジュール526は、車両データ528から車両固有データをロードすることができる。車両データ528は、乗員がどの関心領域を見ているかを関心領域モジュールが判断するために使用できるテキスト情報または符号化された情報を格納するのに適した、ファイル、データベース、またはその他のデータ構造等の、任意の種類のデータストアであればよい。車両データは、車両のさまざまな関心領域に対応付けられた2次元平面を画定する座標を含む。いくつかの場合において、各平面は、車両の異なる物理的要素(たとえばバックミラー、ヘッドユニットディスプレイ、計器パネルなど)に対応付けられていてもよく、または、車両の同一の物理的要素の異なる部分(たとえばフロントガラスの異なる領域)に対応付けられていてもよい。
【0056】
関心領域モジュールは、3D視線ベクトル情報を視線モジュール522から受けることができ、かつ、乗員の頭部および/または目の位置情報を目位置モジュール524から受けることができる。関心領域モジュール526は、頭部および/または目位置情報を、カメラベースの座標系から車両ベースの座標系に変換することができる。座標を車両ベースの座標系に変換することにより、関心領域モジュール526は、車両データにおいて特定されている車両のさまざまな物理的物体の座標位置に対する、乗員の頭部および/または目の位置を特定することができる。関心領域モジュール526は、3D視線ベクトルを、乗員の頭部および/または目の、車両ベースの座標系の位置から延ばし、この3D視線ベクトルが交差する1つ以上の平面を求めることができる。関心領域モジュール526は、交差した面を、乗員が見ている関心領域として識別する。
【0057】
いくつかの場合において、関心領域モジュール526は、車両の乗員がある時間にわたってどの関心領域を見ているかを、定期的にまたは連続的に判断してもよい。関心領域モジュール526は、乗員がどの関心領域を見ているかをモニタリングすることにより、乗員の関与レベルを判断することができるとともに、乗員がどれほど良く交通規則および安全運転のための最良の実施に従っているかを判断することができる。たとえば、乗員がサイドミラーを見ずに車線変更した場合、またはバックミラーを見ずに車両を後退させた場合、コンピューティングデバイス500は、乗員が安全のための最善の実施に従って車両を運転していないと判断することができる。別の例として、車両が動いているときに乗員が長時間にわたってコンピューティングデバイス500のディスプレイを見ている場合、コンピューティングデバイス500は、ロックアウトする、または乗員がコンピューティングデバイス500とやり取りするのを禁止することができる。
【0058】
視線モジュール522、目位置モジュール524、および関心領域モジュール526が実行する技術のうちの1つ以上を、機械学習を用いて実行してもよい。図5には示されていないが、コンピューティングデバイス500は、カメラが取り込んだ画像に適用されるトレーニングされた1つ以上の機械学習モジュールを含み得る。
【0059】
図6A図6Eは、本開示の実装例に係る、機械学習済モデルの一例の局面を示す概念図である。以下、図6A図6Eを、図1の車両100の文脈で説明する。たとえば、いくつかの場合において、以下で言及する機械学習済モデル600は、3D視線ベクトル、乗員の頭部および/または目の位置、乗員が見ている関心領域、またはそのコンポーネントをカメラシステムまたは車両コンピューティングシステム104が求めるために使用する、任意のモデルの一例であってもよい。
【0060】
図6Aは、本開示の実装例に係る、機械学習済モデルの一例の概念図を示す。図6Aに示されるように、いくつかの実装例において、機械学習済モデル600は、1つ以上の種類の入力データを受け、それに応じて1つ以上の種類のデータを出力するようにトレーニングされる。よって、図6Aは推論を実行する機械学習済モデル600を示す。
【0061】
入力データは、ある場合またはある例に対応付けられた1つ以上の特徴を含み得る。いくつかの実装例において、この場合または例に対応付けられた1つ以上の特徴を、特徴ベクトルに組織することができる。いくつかの実装例において、出力データは1つ以上の予測を含み得る。予測(prediction)は推論(inference)と言うこともできる。したがって、特定の場合に対応付けられた特徴が与えられると、機械学習済モデル600は、この特徴に基づいてこのような場合についての予測を出力することができる。
【0062】
機械学習済モデル600は、種類が異なる各種の機械学習済モデルのうちの1つ以上であってもよい、またはこれを含み得る。特に、いくつかの実装例において、機械学習済モデル600は、分類、回帰、クラスタリング、異常検知、レコメンデーション生成、顔ランドマーク検出、3D視線の決定、および/またはその他のタスクを実行することができる。
【0063】
いくつかの実装例において、機械学習済モデル600は、入力データに基づいて、さまざまな種類の分類を実行することができる。たとえば、機械学習済モデル600は、二項分類または多クラス分類を実行することができる。二項分類の場合、出力データは、入力データを異なる2つのクラスのうちの一方に分類したものを含み得る。多クラス分類の場合、出力データは、入力データを3つ以上のクラスのうちの1つ(以上)に分類したものを含み得る。分類は、シングルラベルまたはマルチラベルであってもよい。機械学習済モデル600は、離散カテゴリ分類を実行してもよく、この分類では入力データを単純に1つ以上のクラスまたはカテゴリに分類する。
【0064】
いくつかの実装例において、入力データは対応するクラスに分類されるべきであると考えられる程度を記述する数値を1つ以上のクラス各々について機械学習済モデル600が提供する、という分類を、機械学習済モデル600は実行することができる。いくつかの場合において、機械学習済モデル600が提供する数値を、それぞれのクラスへの入力の分類に対応付けられたそれぞれの確信度を示す「確信度スコア」と呼ぶことができる。いくつかの実装例において、確信度スコアを1つ以上のしきい値と比較することにより、離散カテゴリ予測を提供することができる。いくつかの実装例において、確信度スコアが相対的に最も大きい、特定数(たとえば1つ)のクラスのみを選択して離散カテゴリ予測を提供することができる。
【0065】
機械学習済モデル600は確率的予測を出力することができる。たとえば、機械学習済モデル600は、サンプル入力を与えられて、1組のクラスについての確率分布を予測することができる。したがって、機械学習済モデル600は、サンプル入力が属すべき最も可能性が高いクラスだけを出力するのではなく、クラスごとに、サンプル入力がこのようなクラスに属する確率を出力することができる。いくつかの実装例において、可能性のあるすべてのクラスについての確率分布の総和は1になり得る。いくつかの実装例において、Softmax関数またはその他の種類の関数もしくはレイヤを用いることにより、可能なクラスにそれぞれ対応付けられた1組の実数値を、合計が1になる、範囲(0,1)の1組の実数値に、スカッシュする(squash)ことができる。
【0066】
いくつかの例において、確率分布が提供する確率を、1つ以上のしきい値と比較することにより、離散カテゴリ予測を提供することができる。いくつかの実装例において、予測された確率が相対的に最も高い、特定数(たとえば1つ)のクラスのみを選択して、離散カテゴリ予測を提供することができる。
【0067】
機械学習済モデル600が分類を実行する場合、機械学習済モデル600を、教師あり学習技術を用いてトレーニングしてもよい。たとえば、機械学習済モデル600を、1つ以上のクラスに属する(または属さない)ものとしてラベル付けされたトレーニング例を含むトレーニングデータセットについてトレーニングすることができる。教師ありトレーニング技術に関するさらに他の詳細は、以下図6B図6Eの説明において示される。
【0068】
いくつかの実装例において、機械学習済モデル600は、回帰を実行することにより、連続する数値の形態の出力データを提供することができる。連続する数値は、たとえば通貨の値、スコア、またはその他の数値表現を含む、任意の数の異なるメトリックまたは数値表現に対応し得る。例として、機械学習済モデル600は、線形回帰、多項回帰、または非線形回帰を実行することができる。例として、機械学習済モデル600は、単純回帰または重回帰を実行することができる。先に述べたように、いくつかの実装例において、Softmax関数またはその他の関数もしくはレイヤを用いることにより、2つ以上の可能なクラスにそれぞれ対応付けられた1組の実数値を、合計が1になる、範囲(0,1)の1組の実数値に、スカッシュする(squash)ことができる。
【0069】
機械学習済モデル600は、さまざまな種類のクラスタリングを実行することができる。たとえば、機械学習済モデル600は、入力データが対応する可能性が最も高い、過去に定められた1つ以上のクラスタを識別することができる。機械学習済モデル600は、入力データ内の1つ以上のクラスタを識別することができる。すなわち、入力データが複数のオブジェクト、文書、またはその他のエンティティを含む場合、機械学習済モデル600は、入力データに含まれる複数のエンティティを、複数のクラスタにソートすることができる。機械学習済モデル600がクラスタリングを実行するいくつかの実装例において、機械学習済モデル600を、教師なし学習技術を用いてトレーニングすることができる。
【0070】
機械学習済モデル600は、異常検知または外れ値検知を実行することができる。たとえば、機械学習済モデル600は、予測されたパターンまたはその他の特徴(たとえば過去の入力データから過去に観察されたもの)と一致しない入力データを識別することができる。例として、異常検知は不正検知またはシステム障害検知に使用することができる。
【0071】
いくつかの実装例において、機械学習済モデル600は、1つ以上のオブジェクト位置の形態の出力データを提供することができる。たとえば、機械学習済モデル600は、3D視線ベクトル決定システムに含めることができる。一例として、機械学習済モデル600は、特定の顔ランドマークについての過去の結果(たとえば、顔ランドマークの位置を示すスコア、または、ランキング)を記述する入力データを与えられると、新たな画像における顔ランドマークの位置を出力することができる。一例として、図1の車両コンピューティングシステム104等のコンピューティングシステムは、図1の車両100の乗員の1つ以上の画像等の、車両の乗員を記述する入力データが与えられると、乗員の顔ランドマークの位置を出力することができる。
【0072】
機械学習済モデル600は、場合によっては環境内のエージェントの機能を果たすことができる。たとえば、機械学習済モデル600を強化学習を用いてトレーニングすることができる。その詳細は以下で述べる。
【0073】
いくつかの実装例において、機械学習済モデル600はパラメータモデルであってもよく、他の実装例において、機械学習済モデル600は非パラメータモデルであってもよい。いくつかの実装例において、機械学習済モデル600は線形モデルであってもよく、他の実装例において、機械学習済モデル600は非線形モデルであってもよい。
【0074】
先に述べたように、機械学習済モデル600は、さまざまな異なる種類の機械学習済モデルのうちの1つ以上であってもよい、またはこれを含み得る。このような異なる種類の機械学習済モデルの例を、説明のために以下に示す。下記のモデルの例のうちの1つ以上を使用する(たとえば組み合わせる)ことにより、入力データに応じて出力データを提供することができる。下記のモデルの例の範囲外のその他のモデルも同様に使用できる。
【0075】
いくつかの実装例において、機械学習済モデル600は、たとえば線形分類モデル、二次分類モデルなどのような、1つ以上の分類器モデルであってもよい、またはこれを含み得る。機械学習済モデル600は、たとえば単純線形回帰モデル、多線形回帰モデル、ロジスティック回帰モデル、ステップワイズ回帰モデル、多変量適応的回帰スプライン、局所推定スキャタープロット平滑化モデルなどのような、1つ以上の回帰モデルであってもよい、またはこれを含み得る。
【0076】
いくつかの例において、機械学習済モデル600は、たとえば、分類木および/または回帰木、反復二項化3(iterative dichotomiser 3)決定木、C4.5決定木、カイ二乗自動相互作用検出決定木、決定スタンプ、条件付き決定木などのような、決定木に基づくモデルであってもよい、またはこれを含み得る。
【0077】
機械学習済モデル600は、1つ以上のカーネルマシンであってもよい、またはこれを含み得る。いくつかの実装例において、機械学習済モデル600は、1つ以上のサポートベクターマシンであってもよい、またはこれを含み得る。機械学習済モデル600は、たとえば、学習ベクトル量子化モデル、自己組織化マップモデル、局所重み付き学習モデルなどのような、1つ以上のインスタンスベースの学習モデルであってもよい、またはこれを含み得る。いくつかの実装例において、機械学習済モデル600は、たとえば、k近傍分類モデル、k近傍回帰モデルなどのような、1つ以上の近傍モデルであってもよい、またはこれを含み得る。機械学習済モデル600は、たとえば、ナイーブベイズ(naive Bayes)モデル、ガウスナイーブベイズモデル、多項ナイーブベイズモデル、平均1依存推定器、ベイジアンネットワーク、ベイジアンビリーフネットワーク、隠れマルコフモデルなどのような、1つ以上のベイジアンモデルであってもよい、またはこれを含み得る。
【0078】
いくつかの実装例において、機械学習済モデル600は、1つ以上の人工ニューラルネットワーク(簡単にニューラルネットワークとも呼ばれる)であってもよい、またはこれを含み得る。ニューラルネットワークは、ニューロンまたはパーセプトロンと呼ぶこともできる、接続された一群のノードを含み得る。ニューラルネットワークは、1つ以上の層に組織することができる。複数の層を含むニューラルネットワークを「ディープ」ネットワークと呼ぶことができる。ディープネットワークは、入力層と、出力層と、入力層と出力層の中に配置された1つ以上の隠れ層とを含み得る。ニューラルネットワークのノードは、接続されていてもよい、または不完全に接続されていてもよい。
【0079】
機械学習済モデル600は、1つ以上のフィードフォワードニューラルネットワークであってもよい、またはこれを含み得る。フィードフォワードネットワークにおいて、ノード間の接続はサイクルを形成しない。たとえば、各接続は、前の層のノードを後の層のノードに接続することができる。
【0080】
いくつかの場合において、機械学習済モデル600は、1つ以上の回帰型ニューラルネットワークであってもよい、またはこれを含み得る。いくつかの場合において、再帰型ニューラルネットワークのノードのうちの少なくとも一部はサイクルを形成することができる。再帰型ニューラルネットワークは、本質的に逐次的である入力データの処理に特に有用である。特に、いくつかの場合において、再帰型ニューラルネットワークは、入力データシーケンスの前の部分から、入力データシーケンスの後の部分へと、再帰または有向循環ノード接続の使用を通じて、情報を送るまたは保持することができる。
【0081】
いくつかの例において、逐次入力データは、時系列データ(たとえば時間に対するセンサデータ、または異なる時間に取り込まれた画像)を含み得る。非限定的な一例として、たとえば、再帰型ニューラルネットワークは、時間に対するセンサデータを分析することにより、乗員が見ている関心領域の変化を検出することができる。
【0082】
再帰型ニューラルネットワークの例は、長・短期(long short-term)(LSTM)再帰型ニューラルネットワーク、ゲート付き再帰型ユニット、双方向性再帰型ニューラルネットワーク、連続時間再帰型ニューラルネットワーク、ニューラルヒストリコンプレッサ、エコーステートネットワーク、エルマンネットワーク、ジョーダンネットワーク、リカーシブニューラルネットワーク、ホップフィールドネットワーク、完全再帰型ネットワーク、シーケンス・トゥー・シーケンス構成などを含む。
【0083】
いくつかの実装例において、機械学習済モデル600は、1つ以上の畳み込みニューラルネットワークであってもよい、またはこれを含み得る。いくつかの場合において、畳み込みニューラルネットワークは、学習済フィルタを用いて入力データに対し畳み込みを実行する1つ以上の畳み込み層を含み得る。
【0084】
フィルタはカーネルと呼ぶこともできる。畳み込みニューラルネットワークは、入力データが静止画像または動画等の画像を含む場合などの視覚問題には特に有用である可能性がある。しかしながら、畳み込みニューラルネットワークは自然言語処理に適用することもできる。
【0085】
いくつかの例において、機械学習済モデル600は、たとえば敵対的生成ネットワーク等の1つ以上の生成ネットワークであってもよい、またはこれを含み得る。生成ネットワークを用いることにより、新たな画像またはその他のコンテンツ等の新たなデータを生成することができる。
【0086】
機械学習済モデル600は、オートエンコーダであってもよい、またはこれを含み得る。いくつかの場合において、オートエンコーダの目的は、典型的には次元削減のために、1組のデータの表現(たとえばより低次元の符号化)を学習することである。たとえば、いくつかの場合において、オートエンコーダは、入力データを符号化し入力データを符号化から再構成した出力データを提供することを求めることができる。最近、オートエンコーダの概念は、データの生成モデルの学習により広く使用されるようになっている。いくつかの場合において、オートエンコーダは、入力データの再構成を超える追加の損失を含み得る。
【0087】
機械学習済モデル600は、たとえばディープボルツマンマシン、ディープビリーフネットワーク、積層オートエンコーダなどのような、1つ以上の他の形態の人工ニューラルネットワークであってもよい、またはこれを含み得る。本明細書に記載のニューラルネットワークのいずれかを組み合わせる(たとえば積層する)ことにより、より複雑なネットワークを形成することができる。
【0088】
1つ以上のニューラルネットワークを使用することにより、入力データに基づいた埋め込みを提供することができる。たとえば、埋め込みは、入力データから抽出した知識を1つ以上の学習済の次元にして表すことであってもよい。いくつかの場合において、埋め込みは、関連するエンティティを識別するための有用なソースとなり得る。いくつかの場合において、埋め込みはネットワークの出力から抽出することができ、他の場合において、埋め込みはネットワークの任意の隠れノードまたは層(たとえばネットワークの最後の層に近いが最後の層ではない)から抽出することができる。埋め込みは、次のビデオのオートサジェスト、プロダクトサジェスト、エンティティまたはオブジェクト認識などを実行するのに有用となり得る。いくつかの場合において、埋め込みは、ダウンストリームモデルの入力に有用である。たとえば、埋め込みは、ダウンストリームモデルまたは処理システムの入力データ(たとえばサーチクエリ)を生成するのに有用となり得る。
【0089】
機械学習済モデル600は、たとえば、k平均クラスタリングモデル、k中央値クラスタリングモデル、予測最大化モデル、階層クラスタリングモデルなどのようなクラスタリングモデルを1つ以上含み得る。
【0090】
いくつかの実装例において、機械学習済モデル600は、たとえば主成分分析、カーネル主成分分析、グラフベースのカーネル主成分分析、主成分回帰、部分的最小二乗回帰、サモンマッピング、多次元スケーリング、射影追跡、線形判別分析、混合判別分析、二次判別分析、一般化判別分析、フレキシブル判別分析、オートエンコードなどのような、次元削減技術を1つ以上実行することができる。
【0091】
いくつかの実装例において、機械学習済モデル600は、マルコフ決定過程、動的プログラミング、Q関数またはQ学習、価値関数アプローチ、ディープQネットワーク、微分可能ニューラルコンピュータ、非同期アドバンテージアクター・クリティック、決定型方策勾配法などのような強化学習技術を1つ以上実行する、または受けることができる。
【0092】
いくつかの実装例において、機械学習済モデル600は自己回帰モデルであってもよい。いくつかの場合において、自己回帰モデルは、出力データが、自身の過去の値と確率項とに線形的に依存することを示すことができる。いくつかの場合において、自己回帰モデルは、確率微分方程式の形態を取ることができる。自己回帰モデルの一例は、生の音声の生成モデルであるWaveNetである。
【0093】
いくつかの実装例において、機械学習済モデル600は、マルチモデルアンサンブルを含み得る、またはその一部を形成し得る。一例として、「バギング(bagging)」と呼ぶこともできるブートストラップ集約を実行することができる。ブートストラップ集約では、(たとえば置換ありのランダムサンプリングを通じて)トレーニングデータセットを複数のサブセットに分割し、複数のモデルをそれぞれ複数のサブセットについてトレーニングする。推論時に、複数モデルそれぞれの出力を(たとえば平均、投票、またはその他の技術により)組み合わせてアンサンブルの出力として使用することができる。
【0094】
アンサンブルの一例は、ランダム決定フォレストと呼ぶこともできるランダムフォレストである。ランダムフォレストは、分類、回帰、およびその他のタスクのためのアンサンブル学習方法である。ランダムフォレストは、トレーニング時に複数の決定木を生成することによって生成する。いくつかの場合において、推論時に、個々の木の、クラス(分類)または平均予測(回帰)のモードであるクラスを、フォレストの出力として使用することができる。ランダム決定フォレストは、そのトレーニングセットにオーバーフィットする決定木の傾向を修正することができる。
【0095】
アンサンブル技術の別の例はスタッキングであり、これはいくつかの場合ではスタック一般化(stacked generalization)と呼ばれることもある、スタッキングである。スタッキングは、コンバイナモデルをトレーニングすることにより、その他いくつかの機械学習済モデルの予測をブレンドするかそうでなければ組み合わせることを含む。このようにして、(たとえば同一または異なる種類の)複数の機械学習済モデルをトレーニングデータに基づいてトレーニングすることができる。加えて、コンバイナモデルをトレーニングすることにより、他の機械学習済モデルの予測を入力として取り込み、それに応じて、最終的な推論または予測を生成することができる。いくつかの場合において、単層ロジスティック回帰モデルをコンバイナモデルとして使用することができる。
【0096】
もう1つのアンサンブル技術の例はブースティングである。ブースティングは、弱いモデルを繰り返しトレーニングしてから最終的な強いモデルに追加することにより、アンサンブルを増分的に構築することを含み得る。たとえば、いくつかの場合において、新たな各モデルをトレーニングすることにより、過去のモデルが誤解釈(たとえば誤分類)されたというトレーニング例を強調することができる。たとえば、このような誤解釈された例各々に対応付けられた重みを増すことができる。ブースティングの一般的な一実装例は、適応型ブースティングと呼ぶこともできるAdaBoostである。ブースティング技術の他の例は、LPBoost、TotalBoost、BrownBoost、xgboost、MadaBoost、LogitBoost、勾配ブースティング(gradient boosting)などを含む。さらに、上記モデル(たとえば回帰モデルおよび人工ニューラルネットワーク)のうちのいずれかを組み合わせることによりアンサンブルを形成することができる。一例として、アンサンブルは、アンサンブルを形成するモデルの出力を組み合わせるおよび/または重み付けするためのトップレベル機械学習済モデルまたは発見的機能を含み得る。
【0097】
いくつかの実装例において、(たとえばアンサンブルを形成する)複数の機械学習済モデルを(たとえばモデルアンサンブルを通した逐次的な誤差逆伝播により)共にリンクさせトレーニングすることができる。しかしながら、いくつかの実装例では、共にトレーニングしたモデルのサブセット(たとえば1つ)のみを推論に使用する。
【0098】
いくつかの実装例において、機械学習済モデル600を用いて、入力データを、次に別のモデルに入力するために、前処理することができる。たとえば、機械学習済モデル600は、次元削減技術および埋め込み(たとえば行列分解、主成分分析、特異値分解、word2vec/GLOVE、および/または関連する手法)、ならびにクラスタリングを実行することができ、また、ダウンストリーム消費のための分類および回帰さえも実行することができる。これらの技術のうちの多くは先に説明した通りであり以下ではこれ以上説明しない。
【0099】
上述のように、機械学習済モデル600は、入力データを受けてそれに応じて出力データを提供するようにトレーニングするかそうでなければ構成することができる。入力データは、異なる種類もしくは形態の入力データ、または入力データの変形を含み得る。例として、各種実装例において、入力データは、最初にユーザが選択したコンテンツ(またはコンテンツの一部)を記述する特徴を含み得る。コンテンツは、たとえば、ユーザが選択した文書または画像のコンテンツ、ユーザ選択を示すリンク、デバイスまたはクラウド上で利用可能なその他のファイルに関連するユーザ選択内のリンク、ユーザ選択のメタデータなどである。加えて、ユーザの許可の下で、入力データは、アプリケーション自体からまたはその他のソースから得たユーザ使用のコンテキストを含む。使用コンテキストの例は、シェアの範囲(公的に共有、または大きなグループと共有、または私的に共有、または特定の人物と共有)、シェアのコンテキストなどを含む。ユーザに許可された場合、追加の入力データは、デバイスの状態、たとえばデバイスの位置、デバイス上で実行されているアプリケーションなどを含み得る。
【0100】
いくつかの実装例において、機械学習済モデル600は、入力データをその生の形態で受けて使用することができる。いくつかの実装例において、生の入力データを前処理することができる。よって、生の入力データに加えてまたはその代わりに、機械学習済モデル600は、前処理された入力データを受けて使用することができる。
【0101】
いくつかの実装例において、入力データを前処理することは、生の入力データから1つ以上の追加の特徴を抽出することを含み得る。たとえば、特徴抽出技術を入力データに適用することにより、1つ以上の新たな追加特徴を生成することができる。特徴抽出技術の例は、エッジ検出、コーナー検出、ブロブ(blob)検出、リッジ(ridge)検出、スケール不変特徴量変換、モーション検出、光フロー、ハフ変換などを含む。
【0102】
いくつかの実装例において、抽出した特徴は、入力データを他のドメインおよび/または次元に変換したものを含み得る、またはこの変換したものから導出することができる。一例として、抽出した特徴は、入力データを周波数ドメインに変換したものを含み得る、または変換したものから導出することができる。たとえば、ウェーブレット変換および/または高速フーリエ変換を入力データに対して実行することにより、追加の特徴を生成することができる。
【0103】
いくつかの実装例において、抽出した特徴は、入力データから計算した統計、または入力データの特定の部分または次元を含み得る。統計の例は、入力データまたはその部分の、モード、平均値、最大値、最小値、またはその他のメトリックを含む。
【0104】
いくつかの実装例において、上述のように、入力データは本質的に逐次的である。いくつかの場合において、逐次入力データは、入力データのストリームのサンプリング、そうでなければセグメンテーションにより、生成することができる。一例として、ビデオからフレームを抽出することができる。いくつかの実装例において、逐次データは要約(summarization)により非逐次データにすることができる。
【0105】
別の前処理技術の例として、入力データの部分を補完(impute)することができる。たとえば、追加の合成入力データを内挿および/または外挿によって生成することができる。
【0106】
別の前処理技術の例として、入力データのうちの一部またはすべてを、スケーリング、標準化、正規化、一般化、および/又は正則化することができる。正則化技術の例は、リッジ回帰、ラッソ回帰(least absolute shrinkage and selection operator)(LASSO)、エラスティックネット、最小角度回帰、交差検証、L1正則化、L2正則化などを含む。一例として、入力データのうちの一部またはすべてを、個々の特徴値各々から所定の次元の特徴値の平均値を減算してから標準偏差またはその他のメトリックで除算することにより、正規化することができる。
【0107】
別の前処理技術の例として、入力データのうちの一部またはすべてを量子化または離散化することができる。いくつかの場合において、入力データに含まれる定性的な特徴または変数を量的な特徴または変数に変換することができる。たとえば、ワンホットエンコーディング(one hot encoding)を実行することができる。
【0108】
いくつかの例において、次元削減技術は、機械学習済モデル600に入力する前の入力データに適用することができる。次元削減技術のいくつかの例は、先に挙げた通りであり、たとえば、主成分分析、カーネル主成分分析、グラフベースのカーネル主成分分析、主成分回帰、部分最小二乗回帰、サモンマッピング、多次元スケーリング、射影追跡、線形判別分析、混合判別分析、二次判別分析、一般化判別分析、フレキシブル判別分析、オートエンコードなどを含む。
【0109】
いくつかの実装例において、トレーニング中に入力データを任意の数のやり方で意図的に変形することにより、モデルロバストネス、一般化、またはその他の品質を高めることができる。入力データ変形技術の例は、ノイズ追加、色または濃淡または色調の変更、拡大、セグメンテーション、増幅などを含む。
【0110】
機械学習済モデル600は、入力データを受けたことに応じて出力データを提供することができる。出力データは、異なる種類もしくは形態の出力データ、または出力データの変形を含み得る。例として、各種実装例において、出力データは、最初のコンテンツ選択とともに関連して共有可能な、ユーザデバイスにローカルに格納されているかまたはクラウドに格納されたコンテンツを含み得る。
【0111】
上述のように、いくつかの実装例において、出力データはさまざまな種類の分類データ(たとえば二項分類、多クラス分類、シングルラベル、マルチラベル、離散分類、回帰分類、確率分類など)を含み得る、または、さまざまな種類の回帰データ(たとえば線形回帰、多項回帰、非線形回帰、単純回帰、重回帰など)を含み得る。その他の場合において、出力データは、クラスタリングデータ、異常検知データ、レコメンデーションデータ、または上記その他の形態の出力データのうちのいずれかを、含み得る。
【0112】
いくつかの実装例において、出力データは、ダウンストリームプロセスまたは意思決定に影響する可能性がある。一例として、いくつかの実装例において、出力データを、ルールベースのレギュレータによって解釈するおよび/またはその作用を受けることができる。
【0113】
本開示は、顔面平面、3D視線ベクトル、乗員の頭部および/または目の位置、ならびに乗員が見ている関心領域を求めるための、1つ以上の機械学習済モデルを含む、そうでなければ強化する、システムおよび方法を提供する。上記異なる種類または形態の入力データのうちのいずれかを、上記異なる種類または形態の機械学習済モデルのうちのいずれかと組み合わせることにより、上記異なる種類または形態の出力データのうちのいずれかを提供することができる。
【0114】
本開示のシステムおよび方法は、1つ以上のコンピューティングデバイスによって実現する、そうでなければ1つ以上のコンピューティングデバイス上で実行することができる。コンピューティングデバイスの例は、ユーザコンピューティングデバイス(たとえばラップトップ、デスクトップ、および、タブレット、スマートフォン、ウェアラブルコンピューティングデバイス等のモバイルコンピューティングデバイスなど)、埋め込まれたコンピューティングデバイス(たとえば車両、カメラ、画像センサ、産業用機械、衛星、ゲーム機もしくはコントローラ、または、冷蔵庫、サーモスタット、電力量計、家庭用エネルギー管理装置、スマートホームアシスタント等の家庭用電気器具などに埋め込まれたデバイス)、サーバコンピューティングデバイス(たとえばデータベースサーバ、パラメータサーバ、ファイルサーバ、メールサーバ、プリントサーバ、ウェブサーバ、ゲームサーバ、アプリケーションサーバなど)、専用、専門モデル処理もしくはトレーニングデバイス、仮想コンピューティングデバイス、その他のコンピューティングデバイスもしくはコンピューティングインフラストラクチャ、またはその組み合わせを含む。
【0115】
図6Bは、図1の車両コンピューティングシステム104および/または図5のコンピューティングデバイス500の一例であるコンピューティングデバイス610の概念図を示す。コンピューティングデバイス610は、処理コンポーネント602と、メモリコンポーネント604と、機械学習済モデル600とを含む。コンピューティングデバイス610は、機械学習済モデル600をローカルに(すなわちオンデバイスで)格納し実現することができる。よって、いくつかの実装例において、機械学習済モデル600は、埋め込まれたデバイス、またはモバイルデバイス等のユーザコンピューティングデバイスにより、ローカルに格納および/または実現することができる。埋め込まれたデバイスまたはユーザコンピューティングデバイスにおいて機械学習済モデル600をローカルに実現して得られた出力データを用いることにより、当該埋め込まれたデバイスまたはユーザコンピューティングデバイスのパフォーマンス(たとえば埋め込まれたデバイスまたはユーザコンピューティングデバイスによって実現されるアプリケーション)を改善することができる。
【0116】
図6Cは、機械学習済モデルを含むサーバコンピューティングシステムの一例とネットワークを介して通信することが可能なクライアントコンピューティングデバイスの一例の概念図を示す。図6Cは、サーバデバイス660とネットワーク630を介して通信するクライアントデバイス610Aを含む。クライアントデバイス610Aは、図1の車両コンピューティングシステム104の一例および/または図5のコンピューティングデバイス500の一例である。サーバデバイス660は機械学習済モデル600を格納し実現する。いくつかの場合において、サーバデバイス660において機械学習済モデル600を通して得られた出力データを用いることによって他のサーバタスクを改善することができる、または、この出力データを他の非ユーザデバイスが使用することにより、このような他の非ユーザデバイスが実行するサービスもしくはこのような他の非ユーザデバイスのためのサービスを改善することができる。たとえば、この出力データは、ユーザのコンピューティングデバイスまたは埋め込まれたコンピューティングデバイスのためにサーバデバイス660が実行する他のダウンストリームプロセスを改善することができる。その他の場合において、サーバデバイス660において機械学習済モデル600を実現することにより得られた出力データは、ユーザコンピューティングデバイス、埋め込まれたコンピューティングデバイス、またはクライアントデバイス610A等のその他何らかのクライアントデバイスに送信する、またはこのようなデバイスが使用することができる。たとえば、サーバデバイス660は機械学習をサービスとして実行すると言うことができる。
【0117】
さらに他の実装例において、機械学習済モデル600の異なるそれぞれの部分を、ユーザコンピューティングデバイス、埋め込まれたコンピューティングデバイス、サーバコンピューティングデバイスなどの何らかの組み合わせに格納するおよび/またはこれによって実現することができる。言い換えると、機械学習済モデル600の部分は、その全体または一部を、クライアントデバイス610Aとサーバデバイス660とに分散させることができる。
【0118】
デバイス610Aおよび660は、たとえばTensorFlow(登録商標)、Caffe/Caffe2、Theano、Torch/PyTorch、MXnet、CNTKなどのような、1つ以上の機械学習プラットフォーム、フレームワーク、および/またはライブラリを用いて、グラフ処理技術またはその他の機械学習技術を実行することができる。デバイス610Aおよび660を、異なる物理的位置に分散させ、ネットワーク630を含む1つ以上のネットワークを介して接続することができる。デバイス610Aおよび660は、分散型コンピューティングデバイスとして構成された場合、逐次コンピューティングアーキテクチャ、並列コンピューティングアーキテクチャ、またはその組み合わせに従って動作することができる。一例において、分散型コンピューティングデバイスは、パラメータサーバの使用を通じて制御またはガイドすることができる。
【0119】
いくつかの実装例において、機械学習済モデル600の複数のインスタンスを並列化することにより、処理スループットを高めることができる。たとえば、機械学習済モデル600の複数のインスタンスを1つの処理デバイスもしくはコンピューティングデバイス上で並列化する、または、複数の処理デバイスもしくはコンピューティングデバイスにわたって並列化することができる。
【0120】
機械学習済モデル600または本開示のその他の局面を実現する各コンピューティングデバイスは、本明細書に記載の技術の実行を可能にする複数のハードウェアコンポーネントを含み得る。たとえば、各コンピューティングデバイスは、機械学習済モデル600のうちの一部またはすべてを格納する1つ以上のメモリデバイスを含み得る。たとえば、機械学習済モデル600は、メモリに格納されている構造化された数値表現であってもよい。上記1つ以上のメモリデバイスはまた、機械学習済モデル600を実現するためまたはその他の動作を実行するための命令を含み得る。メモリデバイスの例は、RAM、ROM、EEPROM、EPROM、フラシュメモリデバイス、磁気ディスクなど、およびその組み合わせを含む。
【0121】
各コンピューティングデバイスはまた、機械学習済モデル600のうちの一部またはすべてを実現するおよび/またはその他の関連する動作を実行する1つ以上の処理デバイスを含み得る。処理デバイスの例は、中央処理装置(CPU)、仮想処理ユニット(virtual processing unit)(VPU)、グラフィックス処理ユニット(graphics processing unit)(GPU)、テンソル処理ユニット(tensor processing unit)(TPU)、ニューラル処理ユニット(neural processing unit)(NPU)、ニューラル処理エンジン、CPU、VPU、GPU、TPU、NPUもしくはその他の処理装置のコア、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、コプロセッサ、コントローラ、または上記処理装置の組み合わせ、のうちの1つ以上を含む。処理装置は、たとえば画像センサ、加速度計などのようなその他のハードウェアコンポーネントに埋め込むことができる。
【0122】
ハードウェアコンポーネント(たとえばメモリデバイスおよび/または処理装置)は、物理的に分散させたコンピューティングデバイスおよび/または仮想的に分散させたコンピューティングシステムにわたって分散させることができる。
【0123】
図6Dは、モデルトレーナーを含むトレーニングコンピューティングシステムの一例と通信するコンピューティングデバイスの一例の概念図を示す。図6Dは、トレーニングデバイス670とネットワーク630を介して通信するクライアントデバイス610Bを含む。クライアントデバイス610Bは、図1の車両コンピューティングシステム104および/または図5のコンピューティングデバイス500の一例である。本明細書に記載の機械学習済モデル600を、トレーニングデバイス670等のトレーニングコンピューティングシステムにおいてトレーニングした後に、クライアントデバイス610B等の1つ以上のコンピューティングデバイスにおいて格納および/または実現するために提供することができる。たとえば、モデルトレーナー672はトレーニングデバイス670においてローカルに実行される。しかしながら、いくつかの例において、モデルトレーナー672を含むトレーニングデバイス670は、クライアントデバイス610Bに、または機械学習済モデル600を実現するその他任意のコンピューティングデバイスに、含まれていてもよい、またはこれと離れていてもよい。
【0124】
いくつかの実装例において、機械学習済モデル600を、オフライン方式またはオンライン方式でトレーニングすることができる。オフライントレーニング(バッチ学習としても知られている)の場合、機械学習済モデル600を、トレーニングデータのスタティックセット全体についてトレーニングする。オンライン学習の場合、機械学習済モデル600を、新たなトレーニングデータが利用できるようになると(たとえば推論の実施のためにモデルが使用されている間に)連続的にトレーニング(再トレーニング)することができる。
【0125】
モデルトレーナー672は、機械学習済モデル600の集中型トレーニングを(たとえば中央に格納されたデータセットに基づいて)実行することができる。その他の実装例において、分散型トレーニング、フェデレ―テッドラーニング(federated learning)その他のような非集中型トレーニングを用いることにより、機械学習済モデル600をトレーニング、アップデート、またはパーソナライズすることができる。
【0126】
本明細書に記載の機械学習済モデル600は、各種の異なるトレーニングタイプまたは技術のうちの1つ以上に従ってトレーニングすることができる。たとえば、いくつかの実装例において、機械学習済モデル600を、モデルトレーナー672が教師あり学習を用いてトレーニングすることができ、この教師あり学習では、機械学習済モデル600が、ラベルを有するインスタンスまたは例を含むトレーニングデータセットについてトレーニングされる。ラベルは、専門家によって手作業で与えられてもよく、クラウドソーシングを通して生成されてもよく、または、その他の技術によって(たとえば物理学に基づくもしくは複雑な数学的モデルによって)提供されてもよい。いくつかの実装例において、ユーザが承諾している場合、トレーニング例をユーザコンピューティングデバイスが提供してもよい。いくつかの実装例において、このプロセスをモデルのパーソナライズと呼ぶことができる。
【0127】
図6Eは、ラベル693を有する入力データ例692を含むトレーニングデータ691について機械学習済モデル600がトレーニングされるトレーニングプロセスの一例であるトレーニングプロセス690の概念図を示す。トレーニングプロセス690はトレーニングプロセスの一例であり、他のトレーニングプロセスも同様に使用できる。
【0128】
トレーニングプロセス690が使用するトレーニングデータ691は、このようなデータをトレーニングに使用することをユーザが許可すると、共有フローの匿名使用ログ、たとえば、ともに共有されていたコンテンツアイテムや、たとえばナレッジグラフ(knowledge graph)のエンティティからの、ともに所属していることが既に識別されているバンドル化されたコンテンツなどを含み得る。いくつかの実装例において、トレーニングデータ691は、出力データ694に対応するラベル693が既に割り当てられている入力データ例692を含み得る。
【0129】
いくつかの実装例において、機械学習済モデル600を、目的関数695等の目的関数を最適化することによってトレーニングすることができる。たとえば、いくつかの実装例において、目的関数695は、トレーニングデータから当該モデルが生成した出力データと、トレーニングデータに対応付けられたラベル(たとえばグラウンドトゥルース(ground-truth)ラベル)とを比較する(たとえばこれらの差を求める)損失関数であってもよく、またはこの損失関数を含んでいてもよい。たとえば、損失関数は、出力データとラベルとの自乗差の合計または平均を評価することができる。いくつかの例において、目的関数695は、特定の結果または出力データのコストを記述するコスト関数であってもよく、またはこのコスト関数を含んでいてもよい。目的関数695のその他の例は、たとえばトリプレット損失または最大マージントレーニング等のマージンベースの技術を含み得る。
【0130】
各種最適化技術のうちの1つ以上を実行することにより、目的関数695を最適化することができる。たとえば、最適化技術は、目的関数695を最小または最大にすることができる。最適化技術の例は、ヘシアン(Hessian)に基づく技術、および、たとえば座標降下法(coordinate descent)、勾配降下法(gradient descent)(たとえば確率的勾配降下法(stochastic gradient descent))、サブ勾配法(subgradient method)のような、勾配に基づく技術を含む。その他の最適化技術は、ブラックボックス最適化技術およびヒューリスティックス(heuristics)を含む。
【0131】
いくつかの実装例において、誤差逆伝播を最適化技術(たとえば勾配に基づく技術)とともに使用することにより、機械学習済モデル600をトレーニングすることができる(たとえば機械学習済モデルが人工ニューラルネットワークのような多層モデルの場合)。たとえば、伝播およびモデルパラメータ(たとえば重み)アップデートの反復サイクルを実行することにより、機械学習済モデル600をトレーニングすることができる。逆伝播技術の例は、打ち切り型通時的逆伝播(truncated backpropagation through time)、レーベンバーグ・マーカート逆伝播(Levenberg-Marquardt backpropagation)などを含む。
【0132】
いくつかの実装例において、本明細書に記載の機械学習済モデル600は、教師なし学習技術を用いてトレーニングすることができる。教師なし学習は、関数を推論することにより、ラベル付けされていないデータから隠れた構造を説明することを含み得る。たとえば、分類またはカテゴライズはデータに含まれていなくてもよい。教師なし学習技術を用いることにより、クラスタリング、異常検知、潜在変数モデルの学習、またはその他のタスクを実行することができる。
【0133】
機械学習済モデル600を、教師あり学習および教師なし学習の側面を組み合わせた半教師あり技術を用いてトレーニングすることができる。機械学習済モデル600を、進化的技術または遺伝的アルゴリズムを通じてトレーニングする、そうでなければ生成することができる。いくつかの実装例において、本明細書に記載の機械学習済モデル600を、強化学習を用いてトレーニングすることができる。強化学習の場合、エージェント(たとえばモデル)が環境においてアクションを実行しこのようなアクションから生じた報酬を最大にするおよび/またはペナルティを最小にするよう学習することができる。強化学習と教師あり学習問題との違いは、正しい入力/出力ペアが提示されず最適下限アクションが明確に補正されない点にある。
【0134】
いくつかの実装例において、1つ以上の一般化技術をトレーニング中に実行することにより、機械学習済モデル600の一般化を改善することができる。一般化技術は、機械学習済モデル600のトレーニングデータへの過剰適合を低減するのに役立ち得る。一般化技術の例は、ドロップアウト(dropout)技術、重み減衰(weight decay)技術、バッチ正規化(batch normalization)、早期終了(early stopping)、サブセット選択(subset selection)、ステップワイズ選択(stepwise selection)などを含む。
【0135】
いくつかの実装例において、本明細書に記載の機械学習済モデル600は、たとえば、学習レート、層の数、各層のノードの数、木の葉の数、クラスタの数などのような複数のハイパーパラメータを含み得る、そうでなければ複数のハイパーパラメータの影響を受ける可能性がある。ハイパーパラメータはモデルパフォーマンスに影響を与える可能性がある。ハイパーパラメータは、手で選択する、または、たとえばグリッドサーチ、ブラックボックス最適化技術(たとえばベイズ最適化(Bayesian optimization)、ランダムサーチなど)、勾配に基づく最適化などのような技術を適用することにより、自動的に選択することができる。自動ハイパーパラメータ最適化を実行するための技術および/またはツールの例は、Hyperopt、Auto-WEKA、Spearmint、メトリック最適化エンジン(Metric Optimization Engine)(MOE)などを含む。
【0136】
いくつかの実装例において、各種技術を用いることにより、モデルがトレーニングされるときの学習レートを最適化および/または適応化することができる。学習レート最適化または適応化を実行するための技術および/またはツールの例は、Adagrad、適応モーメント推定(Adaptive Moment Estimation)(ADAM)、Adadelta、RMSpropなどを含む。
【0137】
いくつかの実装例において、転移学習技術を用いることにより、初期モデルを提供することができ、この初期モデルから、本明細書に記載の機械学習済モデル600のトレーニングが開始される。
【0138】
いくつかの実装例において、本明細書に記載の機械学習済モデル600は、コンピューティングデバイス上のコンピュータ読取可能コードの異なる部分に含まれていてもよい。一例において、機械学習済モデル600は、特定のアプリケーションまたはプログラムに含まれこのような特定のアプリケーションまたはプログラムによって(たとえば独占的に)使用されてもよい。よって、一例において、コンピューティングデバイスは複数のアプリケーションを含むことができ、このようなアプリケーションのうちの1つ以上は、それぞれの機械学習ライブラリおよび機械学習済モデルを含むことができる。
【0139】
別の例において、本明細書に記載の機械学習済モデル600は、コンピューティングデバイスのオペレーティングシステムに(たとえばオペレーティングシステムの中央知能層に)含まれ当該オペレーティングシステムとやり取りする1つ以上のアプリケーションによってコールされる、そうでなければ使用されることができる。いくつかの実装例において、各アプリケーションは、中央知能層(およびそこに格納されているモデル)と、アプリケーションプログラミングインターフェイス(API)(たとえばすべてのアプリケーションの共通するパブリックAPI)を用いて通信することができる。
【0140】
いくつかの実装例において、中央知能層は、中央デバイスデータ層と通信することができる。中央デバイスデータ層は、コンピューティングデバイスのための集中データリポジトリであってもよい。中央デバイスデータ層は、コンピューティングデバイスのその他の複数のコンポーネント、たとえば1つ以上のセンサ、コンテキストマネージャ、デバイス状態コンポーネント、および/またはその他のコンポーネントと通信することができる。いくつかの実装例において、中央デバイスデータ層は、API(たとえばプライベートAPI)を用いて各デバイスコンポーネントと通信することができる。
【0141】
本明細書に記載の技術は、サーバ、データベース、ソフトウェアアプリケーション、およびその他のコンピュータベースのシステム、ならびに実行されるアクションおよびこのようなシステムとの間で送信される情報を参照する。コンピュータベースのシステムに固有の柔軟性により、コンポーネント間のタスクおよび機能の多様な可能な構成、組み合わせ、および分割が可能である。たとえば、本明細書に記載のプロセスは、単一のデバイスもしくはコンポーネント、または組み合わせとして働く複数のデバイスもしくはコンポーネントを用いて実現することができる。
【0142】
データベースおよびアプリケーションは、単一のシステム上で実現することができる、または複数のシステムに分散させることができる。分散型コンポーネントは逐次的にまたは並列に動作することができる。
【0143】
加えて、本明細書に記載の機械学習技術は、容易に交換および組み合わせが可能である。特定の技術例について説明してきたが、その他多数の技術が存在しそれらは本開示の局面に関連して使用することができる。
【0144】
本開示では機械学習済モデルおよび関連技術の例の簡単な概要を示した。その他の詳細については以下の参考文献、Machine Learning A Probabilistic Perspective (Murphy)、Rules of Machine Learning: Best Practices for ML Engineering (Zinkevich)、Deep Learning (Goodfellow)、Reinforcement Learning: An Introduction (Sutton)、および、Artificial Intelligence: A Modern Approach (Norvig)を検討すべきである。
【0145】
上記説明に加えて、本明細書に記載のシステム、プログラムまたは特徴により、ユーザ情報(たとえばユーザのソーシャルネットワーク、社会的行動または活動、職業、ユーザの好み、またはユーザの現在の位置)の収集を可能にすることができるか否かまたはいつ可能にすることができるかと、コンテンツまたは通信がサーバからユーザに送信されるか否かとの双方についてユーザが選択できるよう、ユーザに管理権が与えられてもよい。加えて、特定のデータを、格納または使用前に、個人識別可能情報が削除されるように1つ以上のやり方で処理してもよい。たとえば、ユーザのIDを、このユーザについて個人識別可能情報が判断できないように処理してもよく、または、位置情報が得られる場合はユーザの特定の位置が判断できないようにユーザの地理的位置を(都市、郵便番号または州レベルなどに)一般化してもよい。よって、ユーザは、当該ユーザに関してどのような情報が収集されるか、この情報が如何にして使用されるか、および、どのような情報がユーザに提供されるかについて、管理することができる。
【0146】
図7は、本開示の1つ以上の局面に係る、3D視線ベクトルを用いて運転者の関与を判断するように構成されたコンピューティングシステムの動作の例を示すフローチャートである。以下、図7の動作を図1の車両100および図5の一例としてのコンピューティングデバイス500の文脈で説明する。1つ以上のカメラ102は車両100の乗員の少なくとも1つの画像を取り込むことができる(702)。
【0147】
コンピューティングデバイス500の目位置モジュール524は、上記少なくとも1つの画像を分析し、車両100内の乗員の頭部および/または目の位置を求めることができる(704)。たとえば、上記少なくとも1つの画像は2つの画像を含み得る。これら2つの画像の各々は、異なるカメラ102のうちの対応する1つのカメラが取り込んだものである。目位置モジュール524は、画像に取り込まれている乗員の頭部に対するカメラ102の視差角を求めることができる。目位置モジュール524は、この視差角と、カメラ102間の距離とを用いて、カメラ102のうちの1つ以上から乗員の頭部および/または目までの距離を求めることができる。目位置モジュール524は、カメラ102のうちの1つ以上から乗員の頭部および/または目までの距離と、3次元空間におけるカメラ102のうちの1つ以上の各々の相対的な位置とを用いて、3次元空間におけるカメラ102のうちの1つ以上に対する乗員の頭部および/または目の位置を求めることができる。別の例として、カメラ102のうちの1つは、乗員の赤外線画像を取り込む赤外線カメラであってもよい。目位置モジュール524は、赤外線画像における歪みを分析し、歪みに基づいてカメラから乗員の頭部および/または目までの距離を求めてもよい。また、目位置モジュール524は、画像内における頭部および/または目の位置に基づいて、カメラに対する乗員の頭部および/または目の位置を求めてもよい。
【0148】
視線モジュール522は、車両の乗員の3D視線ベクトルを求めることができる(706)。いくつかの場合において、視線モジュール522は、カメラ102のうちの1つ以上が取り込んだ1つ以上の画像を分析し、乗員の顔面平面を求めることができる。たとえば、視線モジュール522は、機械学習済モデルを上記1つ以上の画像に適用することにより、画像内の乗員の各種顔面ランドマークを識別することができ、また、機械学習済モデルを識別した顔面ランドマークの位置に適用することにより、乗員の顔面平面のピッチ、ロール、およびヨーを求めることができる。いくつかの場合において、1つの機械学習済モデルが、顔面ランドマークを識別するとともに顔面平面のピッチ角、ロール角、およびヨー角を求めてもよい。別の例として、視線モジュール522は、ヒューリスティックスを実行することによって顔面ランドマークの位置を求め、機械学習以外の技術を用いて顔面平面のピッチ角、ロール角、およびヨー角を計算してもよい。視線モジュール522は、この顔面平面のヨー角、ピッチ角、およびロール角を用いて、乗員の3D視線ベクトルを求めることができる。
【0149】
いくつかの場合において、視線モジュール522はまた、アイトラッキングを用いて3D視線ベクトルを求めることができる。しかしながら、乗員の目が遮られているために画像では見えない場合がある。このような場合、視線モジュール522は、アイトラッキングを用いて3D視線ベクトルを求めるのではなく、顔面平面を用いて3D視線ベクトルを求めることができる。視線モジュール522がアイトラッキングおよび顔面平面双方に基づいて初期3D視線ベクトルを求めることができる場合、視線モジュール522は、双方の初期3D視線ベクトルの組み合わせを用いて最終3D視線ベクトルを求めてもよい。
【0150】
関心領域モジュール526は、視線モジュール522が求めた3D視線ベクトルと、目位置モジュール524が求めた頭部および/または目の位置との両方を用いることにより、乗員が見ている1つ以上の関心領域を求めることができる(708)。さまざまな場合において、目位置モジュール524が求めた頭部および/または目の位置は、1つ以上のカメラ102の位置に対して定められた座標のセットである。すなわち、頭部および/または目の位置は、カメラベースの座標系を用いて特定することができる。このような場合、関心領域モジュール526は、位置データをカメラベースの座標系から車両ベースの座標系に変換してもよい。車両ベースの座標系は、車両コンピューティングシステム104に与えられる車両データファイルによって定められてもよい。車両データファイルは、車両ベースの座標系を用いて車両の複数の関心領域を定める座標を含み得る。
【0151】
関心領域モジュール526は、視線モジュール522が求めた3D視線ベクトルを、乗員の目のうちの1つ以上の車両ベースの座標系の位置から延ばすことができる。関心領域モジュール526は、もしあれば、3D視線ベクトルが関心領域の面のうちのいずれと交差するかを判断するとともに、各面内の、3D視線ベクトルが交差する位置を求めることができる。乗員の目および関心領域の座標位置は同一の座標系を用いて特定するので、関心領域モジュール526は、各関心領域と乗員の目の位置との間の距離を求めることが可能である。関心領域モジュール526は、この距離を3D視線ベクトル方向とともに用いて、3D視線ベクトルが、関心領域の面のうちの1つ以上と交差する位置を求めることが可能である。関心領域モジュール526は、3D視線ベクトルが交差する関心領域の面が、乗員が見ている1つ以上の関心領域であると判断する。
【0152】
さまざまな場合において、関心領域モジュール526が、乗員が見ている少なくとも1つの関心領域を求めると、車両コンピューティングシステム104は、1つ以上のアクションを実行することができる(710)。たとえば、車両100の乗員がサイドウィンドウから外を少なくともしきい値期間見ている場合、車両コンピューティングシステム104は、サイドウィンドウの外に位置する何か、たとえば風景を乗員が見ていると判断することができる。車両コンピューティングシステム104は、車両100の外部に位置するカメラを自動制御し、乗員がカメラを持ち上げて自身で写真を撮影しなくても、その風景の画像をカメラに取り込ませることができる。
【0153】
別の例として、車両100の乗員が車両100の運転者である場合、車両コンピューティングシステム104は、運転者が道路を注視しているのではなく車両コンピューティングシステム104のディスプレイを見ていると判断する場合がある。このような場合、車両コンピューティングシステム104は、運転者がディスプレイをしきい値期間よりも長く見ていたか否かを(たとえば運転者がディスプレイに対応付けられた関心領域をまだ見ていることを定期的に確認することによって)判断するように構成されていてもよい。車両コンピューティングシステム104は、運転者がディスプレイをしきい値期間よりも長く見ていたと判断した場合、ディスプレイに情報を出力するのを中止する、またはディスプレイに警告メッセージを出力する、または車両コンピューティングシステム104が受けたユーザ入力の処理を中止することができる。車両コンピューティングシステム104は、運転者がディスプレイをしきい値期間よりも長く見ていないと判断した場合、ディスプレイに対応付けられた関心領域を運転者が見ていることに基づいたアクションの実行を控えてもよい。このようにして、車両コンピューティングシステム104は、車両の乗員が見ている関心領域に基づいてアクションを選択的に実行することができる。
【0154】
1つ以上の例において、記載された機能は、ハードウェア、ソフトウェア、ファームウェア、またはその任意の組み合わせで実現されてもよい。ソフトウェアで実現される場合、当該機能は、1つ以上の命令またはコードとして、コンピュータ読取可能媒体上に格納またはコンピュータ読取可能媒体を介して送信され、ハードウェアに基づいた処理ユニットによって実行されてもよい。コンピュータ読取可能媒体は、データ記憶媒体等の有形の媒体に対応するコンピュータ読取可能記憶媒体、または、たとえば通信プロトコルに従ってある場所から別の場所までのコンピュータプログラムの転送を促進する任意の媒体を含む通信媒体を、含み得る。このように、コンピュータ読取可能媒体は一般的に、(1)非一時的な有形のコンピュータ読取可能記憶媒体、または、(2)信号もしくは搬送波等の通信媒体に対応し得る。データ記憶媒体は、本開示に記載されている技術の実現のために、命令、コードおよび/またはデータ構造を取り出すよう1つ以上のコンピュータまたは1つ以上のプロセッサがアクセス可能な、利用可能な任意の媒体であってもよい。コンピュータプログラムプロダクトはコンピュータ読取可能媒体を含み得る。
【0155】
限定ではなく例示として、そのようなコンピュータ読取可能記憶媒体は、所望のプログラムコードを命令またはデータ構造の形態で格納するために使用することができるとともにコンピュータがアクセスできる、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または任意の他の記憶媒体を含み得る。また、任意の接続は適切にコンピュータ読取可能媒体と呼ばれる。たとえば、同軸ケーブル、光ファイバケーブル、撚り対線、デジタル加入者線(DSL)、または、赤外線、無線、およびマイクロ波等の無線技術を使用して、命令をウェブサイト、サーバまたは他のリモートソースから送信する場合、当該同軸ケーブル、光ファイバケーブル、撚り対線、DSL、または、赤外線、無線、およびマイクロ波等の無線技術は、媒体の定義に含まれる。しかしながら、コンピュータ読取可能記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的な媒体を含まないがその代わりに非一時的な有形の記憶媒体に向けられることが理解されるはずである。使用されるディスク(diskおよびdisc)は、コンパクトディスク(CD)、レーザーディスク(登録商標)、光ディスク、デジタルバーサタイルディスク(DVD)、フロッピー(登録商標)ディスクおよびブルーレイ(登録商標)ディスク、ウルトラブルーレイなどを含み、ディスク(disk)は通常磁気的にデータを再生するものであり、ディスク(disc)はレーザでデータを光学的に再生するものである。これらの組み合わせもコンピュータ読取可能媒体の範囲に含まれねばならない。
【0156】
命令は、1つ以上のプロセッサによって実行されてもよく、たとえば、1つ以上のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、または他の同等の集積もしくは離散論理回路によって実行されてもよい。したがって、使用されている「プロセッサ」という用語は、上記構造、または、記載されている技術の実現に適した任意の他の構造のうちのいずれかを指す。加えて、いくつかの局面において、記載されている機能は、専用ハードウェアおよび/またはソフトウェアモジュール内に与えられてもよい。また、当該技術は1つ以上の回路または論理素子において完全に実現することが可能である。
【0157】
本開示の技術は、無線ハンドセット、集積回路(IC)またはICのセット(たとえばチップセット)を含む多様なデバイスまたは装置において実現されてもよい。各種コンポーネント、モジュール、またはユニットは、本開示において、開示されている技術を実行するように構成されたデバイスの機能的側面を強調するように記載されているが、必ずしも異なるハードウェアユニットによる実現を要求していない。むしろ、上述のように、各種ユニットは、ハードウェアユニットにおいて組み合わされてもよい、または、好適なソフトウェアおよび/またはファームウェアとともに上記1つ以上のプロセッサを含む共同作業するハードウェアユニットの集まりによって提供されてもよい。
【0158】
さまざまな例について説明した。これらのおよびその他の例は以下の請求項の範囲に含まれる。
図1
図2
図3
図4
図5
図6A
図6B
図6C
図6D
図6E
図7