以下、本発明の実施形態を図面に基づいて説明する。
以下、図面に基づいて、本実施形態に係る情報提供システム1の構成を示す図である。図1に示すように、本実施形態に係る情報提供システム1は、複数の車両に搭載された複数の車載装置100と、サーバ200とから構成される。複数の車載装置100とサーバ200とは、通信回線を介して各種情報の授受が可能となっている。通信回線としては、例えば、携帯電話網、無線LAN網、DSRC(Dedicated Short Range Communications)網および電力線通信網などが挙げられる。また、車載装置100がフラッシュメモリ等の着脱式の記憶媒体に各種情報を記録し、記録した各種情報を、通信機能を有する端末(例えば、携帯電話機)経由で送受信する構成としてもよい。なお、図1に示す例では、1つの車両に搭載された1つの車載装置100のみを例示しているが、情報提供システムは、車載装置100を複数備える構成とすることができる。
車載装置100は、車内カメラ110、車内マイク120、ナビゲーション装置130、コントローラ140、記憶装置150、通信装置160、コンテンツ情報取得装置170、入力装置180、出力装置190を備える。これら装置は、相互に情報の授受を行うためにCAN(Controller Area Network)その他の車載LANによって接続されている。
車内カメラ110は、車両の室内に設置され、室内にいる乗員を撮影する。車内カメラ110は、静止画又は動画が撮影可能な撮影機能を有している。車内カメラ110の設置位置は特に限定されないが、各乗員の顔画像が撮影できる位置に設置するのが好ましい。なお、車内カメラ110の数は特に限定されない。車内カメラ110は、撮影した静止画又は動画のデータを、コントローラ140に出力する。
車内マイク120は、車両の室内に設置され、室内にいる乗員が発する音声を電気信号に変換する。車内マイク120は、集音機能を有している。車内マイク120の設置位置は特に限定されないが、各乗員の音声を収集できる、車両のシート近傍に設置するのが好ましい。なお、車内マイク120の数は特に限定されない。車内マイク120は、収集した音声を電気信号に変換し、変換した電気信号をコントローラ140に出力する。
ナビゲーション装置130は、位置検出装置131と、地図情報132とを備える。ナビゲーション装置130は、自車両の現在位置から目的地までの経路を算出する。経路の算出手法は、ダイキストラ法やA*などのグラフ探索理論に基づく出願時に知られた手法を用いることができる。ナビゲーション装置130は、算出した走行経路の情報と、目的地の情報をコントローラ140に出力する。
位置検出装置131は、GPS(Global Positioning System)を備える。位置検出装置131は、路側装置に搭載された高度道路交通システム:ITS(Intelligent Transport Systems)が提供する位置情報を、近距離通信を介して、自車両の現在位置として取得してもよい。
地図情報132は、いわゆる電子地図であり、緯度経度と地図情報が対応づけられた情報である。地図情報132には、車両の乗員が予め登録した目的地の情報が含まれる。
記憶装置150は、後述するコントローラ140により作成された、同乗者ごとの乗降履歴や、コントローラ140により推定された、運転者と同乗者の関係性と、この関係性に関連付けられたコンテンツ情報とを記憶する。記憶装置150としては、例えば、HDDやROM等が挙げられる。記憶装置150は、コントローラ140からのアクセスに応じて、コントローラ140から入力される情報を記憶し、又は記憶している情報をコントローラ140に出力する。
通信装置160は、電話回線網などを介して、サーバ200のサーバ通信装置210と通信可能となっている。通信装置160は、コントローラ140から取得したプローブ情報をサーバ通信装置210に送信するとともに、サーバ200から、同乗者の組み合わせに関する学習情報と、コンテンツ情報の公共性に関する学習情報とを受信し、受信した各情報をコントローラ140に出力する。なお、同乗者の組み合わせに関する学習情報と、コンテンツ情報の公共性に関する学習情報については後述する。
コンテンツ情報取得装置170は、無線LANやWifiなどを介して、インターネットと接続可能となっている。コンテンツ情報取得装置170には、後述するコントローラ140からコンテンツ情報を取得するための指令信号が入力される。コンテンツ情報取得装置170は、入力信号に応じて、インターネットからコンテンツ情報を取得する。コンテンツ情報とは、テキスト情報、画像、動画、音声、音楽、その他のデータ、あるいはプログラム、またはそれらの組み合わせのことである。コンテンツ情報には、例えば、ニュースサイト、キュレーションサービス、SNS(Social Networking Service)、インターネットラジオ等が挙げられる。コンテンツ情報取得装置170は、取得したコンテンツ情報をコントローラ140に出力する。
入力装置180は、車両の室内で利用するコンテンツ情報について、車両の乗員が操作可能な操作部材である。入力装置180には、後述するディスプレイ191に表示出力されるコンテンツ情報を操作する操作スイッチ、後述するスピーカ192から音声出力されるコンテンツ情報を操作する操作スイッチを少なくとも含む。車両の乗員が入力装置180を操作すると、入力装置180は、操作に応じた信号をコントローラ140に出力する。
出力装置190は、車両の室内にコンテンツ情報を出力する。出力装置190は、ディスプレイ191と、スピーカ192を備える。ディスプレイ191は、コンテンツ情報取得装置170が取得したコンテンツ情報を表示する。例えば、ディスプレイ191は、室内にいる乗員に対して、動画やニュースサイトを表示する。ディスプレイ191としては、例えば、液晶パネルが挙げられる。スピーカ192は、コンテンツ情報取得装置170が取得したコンテンツ情報を出力する。例えば、スピーカ192は、室内にいる乗員に対して、音楽やインターネットラジオを流す。
コントローラ140は、コンテンツ情報提供処理を実行させるプログラムが格納されたROM(Read Only Memory)と、このROMに格納されたプログラムを実行するCPU(Central Processing Unit)と、アクセス可能な記憶装置として機能するRAM(Random Access Memory)と、を備えるコンピュータである。なお、動作回路としては、CPUに代えて、MPU(Micro Processing Unit)、ASIC(Application Specified Integrated Circuit)、FPGA(Field Programmable Gate Array)等を用いてもよい。
コントローラ140は、ROMに格納されたプログラムをCPUにより実行することにより、同乗者特定機能と、履歴情報取得機能と、乗降履歴作成機能と、関係性推定機能と、コンテンツ情報学習機能と、コンテンツ情報提供機能と、を実現する。コントローラ140は、各機能を実現するため、又は各処理を実行するためのソフトウェアと、上述したハードウェアの協働により各機能を実行する。以下に、コントローラ140が備える各機能について説明する。
まず、同乗者特定機能について説明する。コントローラ140は、同乗者特定機能により、車両の室内にいる同乗者を特定する。本実施形態のコントローラ140は、車内カメラ110又は車内マイク120から入力されるデータに基づいて、同乗者を特定する。例えば、コントローラ140は、車内カメラ110から入力される顔画像のデータを、予めROM等に記憶されている人物データに対して、パターンマッチング処理を実行することで、同乗者を特定する。また、例えば、コントローラ140は、車内マイク120から入力される電気信号に対してソフトウェア処理を実行し、声紋を抽出する。そして、コントローラ140は、抽出した声紋を、予めROM等に記憶されている人物データに対して、パターンマッチング処理を実行することで、同乗者を特定する。
また、コントローラ140は、上述した方法に限られず、情報端末装置の固有IDを用いて、同乗者を特定してもよい。インターネットを利用可能な情報端末装置には、各装置ごとにMACアドレスが割り当てられている。例えば、同乗者が情報端末装置を所持している場合、コントローラ140は、車両の室内からインターネットに接続している情報端末装置のMACアドレスを、予めROM等に記憶されている人物データに対して、パターンマッチング処理を実行することで、同乗者を特定する。
人物データには、各人の識別ID、各識別IDに対応づけられた、顔画像のデータ、声紋のデータ、及びMACアドレス等が含まれる。また、予めROM等に記憶させる際に、運転者との関係性を示す情報を人物データに登録しておいてもよい。なお、人物データに記憶されていない顔画像のデータが入力された場合、人物データに記憶されていない声紋が抽出された場合、又は人物データに記憶されていないMACアドレスが検出された場合、コントローラ140は、これらのデータを新規データとして人物データに登録する。
また、上述した例では、同乗者が一人の場合を説明したが、同乗者が複数人の場合でも、コントローラ140は、同乗者特定機能により、上述した何れかの方法を用いて、又はこれらの方法を組み合わせて、複数の同乗者をそれぞれ特定する。
次に、履歴情報取得機能について説明する。コントローラ140は、履歴情報取得機能により、車両の走行履歴と、車両の室内で利用されたコンテンツ情報の利用履歴を取得する。コントローラ140には、ナビゲーション装置130から走行履歴が入力される。走行履歴には、車両の走行経路、走行経路に対応づけられた、目的地及び走行日時が含まれる。また、コントローラ140は、後述するコンテンツ情報提供機能により車両の室内において利用されたコンテンツ情報を、利用履歴として取得する。利用履歴には、コンテンツ情報のカテゴリ、コンテンツ情報のジャンル、コンテンツ情報のレベル、及び利用日時が含まれる。説明の便宜上、以降では、コンテンツ情報の区分の大きさを示す表現として、カテゴリ、ジャンル、レベルを用いる。区分が大きい順に、カテゴリ、ジャンル、レベルとなる。カテゴリとしては、テキスト情報、静止画像、動画、音声、音楽が一例として挙げられ、ジャンルとしては、スポーツ、芸能、ニュースが一例として挙げられる。また、レベルは情報量の多さを示しており、レベルとしては、見出しレベル、概要レベル、詳細レベルが一例として挙げられる。
次に、乗降履歴作成機能について説明する。コントローラ140は、乗降履歴作成機能により、同乗者ごとに、同乗者が車両に乗降した乗降履歴を作成する。乗降履歴には、同乗者が乗車した日時、この日時に対応づけられた、同乗者が乗車した乗車位置、同乗者が降車した降車位置、降車位置での運転者の行動、及び走行経路が含まれる。
例えば、同乗者が所定の位置で車両に乗車すると、コントローラ140には、車内カメラ110から同乗者の顔画像データが入力され、コントローラ140は、車両に所定の人物が乗車したことを認識する。コントローラ140は、同乗者特定機能により乗車した同乗者を特定する。また、この時に、コントローラ140は、車両の停車位置を同乗者の乗車位置として特定するとともに、乗車位置を同乗者の識別IDに対応づける。そして、同乗者が所定の位置で降車すると、コントローラ140には、車内カメラ110から同乗者の顔画像データが入力されず、コントローラ140は同乗者が降車したことを認識する。コントローラ140は、車両の停車位置を同乗者の降車位置として特定するとともに、降車位置を同乗者の識別IDに対応づける。
また、同乗者と一緒に運転者が降車した場合、コントローラ140には、車内カメラ110から運転者の顔画像データも入力されなくなり、コントローラ140は運転者が降車したことを認識する。コントローラ140は、運転者が同乗者と一緒に降車した情報を、同乗者の識別IDに対応づける。
なお、同乗者の乗降履歴の作成方法は、上述した方法に限定されず、コントローラ140は、履歴情報取得機能により取得した走行履歴を用いて、同乗者の乗降履歴を作成してもよい。例えば、コントローラ140は、同乗者が乗車した後に、ナビゲーション装置130に入力された目的地を、同乗者の降車位置として特定してもよい。また、降車位置の精度を上げるために、車内カメラ110による特定方法を組み合わせてもよい。
このような処理を実行することで、コントローラ140は、同乗者ごとに、乗降履歴を作成し、作成した乗降履歴を記憶装置150に記憶させる。
図2は、同乗者の乗降履歴の一例を示す図である。図2に示すように、コントローラ140は、「同乗者A」、「同乗者B」ごとに、「乗降日時」、「乗車位置」、「降車位置」、「降車位置での運転者の行動」で示される乗降履歴を、記憶装置150に記憶させる。例えば、図2に示す同乗者Aの乗降履歴では、20xx年11月12日に、同乗者Aは、運転者の自宅で乗車し、地点A1で運転者と一緒に降車したことを示している。なお、図2では、「乗車位置」及び「降車位置」は、地図情報132に含まれる特徴物(ランドマーク)で示されているが、これに限定されず、例えば、住所で示してもよい。また、乗降履歴の形態は、特に限定されず、図2に示す表の形式でなくてもよい。
次に、関係性推定機能について説明する。コントローラ140は、関係性推定機能により、運転者と同乗者の関係性を推定する。コントローラ140は、記憶装置150に記憶された同乗者の乗降履歴に基づいて、運転者と同乗者の関係性を推定する。コントローラ140は、頻度レベルと親密度レベルの2種類のパラメータを用いて、運転者と同乗者の関係性を示す。
頻度レベルとは、同乗者がどの程度運転者が運転する車両に乗降しているかを示すパラメータである。コントローラ140は、同乗者の乗降回数に基づいて、頻度レベルを設定する。例えば、コントローラ140は、記憶装置150に記憶された乗降履歴を参照し、乗車回数又は降車回数を積算することで、頻度を算出する。また、コントローラ140は、乗降履歴の所定期間における乗車回数又は降車回数をカウントすることで、頻度を算出してもよい。コントローラ140は、算出した頻度が予め定められた頻度レベルのうち、どのレベルに該当するかを判定する。例えば、頻度レベルは、利用頻度が高い順に5~1の5段階で表される。コントローラ140は、同乗者ごとに、5段階の頻度レベルを設定する。
一方、親密度レベルとは、同乗者がどの程度運転者と親密であるかを示すパラメータである。親密度レベルは、ビジネスレベルと、プライベートレベルとに分けられる。コントローラ140は、同乗者が運転者とともに乗車している時間帯、同乗者の乗車位置若しくは降車位置、又は走行経路に基づいて、親密度レベルを設定する。
ビジネスレベルは、同乗者が運転者と仕事上の関係においてどの程度親密であるかを示す。例えば、ビジネスレベルは、親密度が高い順にB4~B1の4段階で表わせる。コントローラ140は、記憶装置150に記憶された乗降履歴の中から、乗車位置又は降車位置に運転者の自宅が含まれていない同乗者の乗降履歴を検出すると、この同乗者は運転者と仕事上の関係を持つと判定する。そして、コントローラ140は、この乗降履歴を参照して、この同乗者に対するビジネスレベルを設定する。
例えば、コントローラ140は、乗降履歴に、運転者の自宅を迂回する走行経路、又はそのような走行経路で到着する乗車位置又は降車位置が含まれている場合、運転者との親密度は最も高いものと判断し、親密度レベルB4を設定する。また、コントローラ140は、乗降履歴に、運転者の自宅に向かう途中までの走行経路、又はそのような走行経路で到着する乗車位置又は降車位置が含まれている場合、親密度レベルB3を設定する。さらに、コントローラ140は、乗降履歴に、運転者の顧客先の場所と、この顧客先の最寄りの駅やバス停が乗車位置又は降車位置として含まれている場合、親密度レベルB2を設定する。また、コントローラ140は、同乗者の乗車時間又は降車時間の大半が運転者の仕事の時間帯の範囲内である場合、運転者との親密度は最も低いものと判断し、親密度レベルB1を設定する。なお、上述したビジネスレベルの判断基準は、本発明を説明するための一例であって特に限定されるものではない。
プライベートレベルは、同乗者が運転者とプライベートな関係においてどの程度親密であるかを示す。例えば、プライベートレベルは、親密度が高い順にP5~P1の5段階で表される。コントローラ140は、乗車位置又は降車位置に運転者の会社やその周辺が含まれていない同乗者の乗降履歴を検出すると、この同乗者は運転者とプライベート上の関係を持つと判定する。そして、コントローラ140は、この乗降履歴を参照して、この同乗者に対するプライベートレベルを設定する。
例えば、コントローラ140は、乗降履歴のうち、乗車位置又は降車位置の大半が運転者の自宅である場合、運転者との親密度は最も高いものと判断し、親密度レベルP5を設定する。また、コントローラ140は、運転者が同乗者と一緒に降車している割合が比較的高い場合、親密度レベルP4を設定する。さらに、コントローラ140は、乗降履歴に、運転者が立ち寄る場所と、運転者の自宅以外のPOI(Point Of Interest)と、運転者の自宅が乗車位置又は降車位置として含まれている場合、親密度レベルP3を設定する。また、コントローラ140は、乗降履歴に、運転者が立ち寄る場所と、運転者の自宅以外のPOIが乗車位置又は降車位置として含まれている場合、親密度レベルP2を設定する。さらに、コントローラ140は、運転者が立ち寄る場所と、駅やバス停が乗車位置又は降車位置として含まれている場合、運転者との親密度は最も低いものと判断し、親密度レベルP1を設定する。なお、上述したプライベートレベルの判断基準は、本発明を説明するための一例であって特に限定されるものではない。
ここで、本実施形態と異なり、運転者と同乗者の関係性を、頻度レベルのみ、すなわち、1種類のパラメータのみで示す場合について説明する。例えば、運転者の家族は、平日に学校まで送ってもらうために乗車し、また、運転者の会社の同僚は、平日に顧客先へ訪問するために乗車するものとする。この場合、両者は平日に同程度の頻度で乗車するため、運転者の家族の乗降履歴から設定される頻度レベルと、運転者の会社の同僚の乗降履歴から設定される頻度レベルは、同じレベルで示されるおそれがある。つまり、運転者と同乗者の関係性を、頻度レベルのみで示す場合には、運転者が同僚と親密な関係でない場合であっても、家族と同僚は同じレベルの親密度で示されてしまい、運転者と同乗者の関係性を適切に示すことができない。
これに対して、本実施形態では、上述したように、運転者と同乗者の関係性を示すために、頻度レベルだけでなく親密度レベルを用いる。家族と同僚の例では、家族と同僚は、頻度レベルは同じレベルで示されたとしても、親密度レベルにおいて、両者を異なるレベルで示すことができる。具体的には、家族の場合には、運転者との関係性をプライベートレベルで示すことができ、一方、同僚の場合には、運転者との関係性をビジネスレベルで示すことができる。これにより、運転者と同乗者の関係性を適切に示すことができる。
次に、コンテンツ情報学習機能について説明する。コントローラ140は、コンテンツ情報学習機能により、同乗者の組み合わせに応じて、利用されるコンテンツ情報を学習する。コントローラ140は、記憶装置150に記憶された乗降履歴と、履歴情報取得機能により取得されたコンテンツ情報の利用履歴とを関連付けることで、同乗者の組み合わせに応じたコンテンツ情報を分析する。具体的には、コントローラ140は、各同乗者の乗降履歴と利用履歴とを対比し、乗降履歴に含まれる同乗者が乗車した日時と、利用履歴に含まれるコンテンツ情報の利用日時が一致した場合、該当する同乗者の組み合わせに、コンテンツ情報のカテゴリ、コンテンツ情報のジャンル、及びコンテンツ情報のレベルを関連付ける。これにより、コントローラ140は、同乗者の組み合わせにコンテンツ情報が関連付けられた分析結果を得ることができる。
コントローラ140は、所定の周期毎に、上述した関連付けの処理を実行することでコンテンツ情報を更新し、同乗者の組み合わせに応じて、利用されるコンテンツ情報を学習する。なお、乗車回数が所定回数未満の場合には、コンテンツ情報の学習結果の精度が著しく低下するおそれがあるという観点に基づいて、コントローラ140は、乗車回数が所定回数未満の乗降履歴に対してコンテンツ情報の学習を行わない。なお、所定回数は実験的に求められた値であるのが好ましい。
図3は、コントローラ140のコンテンツ情報学習機能による分析結果の一例である。図3を参照しながら、コンテンツ情報学習機能について説明する。図3は、同乗者の組み合わせと、利用されたコンテンツ情報の対応関係を示すものである。図3では、表の列は利用されたコンテンツ情報の種類を示し、表の行は同乗者の組み合わせを示す。また、図3の表中に示す数字は、一の同乗者の組み合わせに対して、利用された各コンテンツ情報の割合を示す。なお、同乗者の組み合わせの列の中に示されるA、B、Cは、それぞれ同乗者A、同乗者B、同乗者Cを示す。
図3の例では、同乗者Aが一人で乗車する場合には、コンテンツAのスポーツのジャンルが最も多く利用されていることから、コントローラ140は、同乗者Aが一人で乗車した場合には、コンテンツAのスポーツのジャンルが利用される傾向にあることを学習する。また、図3の例では、同乗者Aと同乗者Cが一緒に乗車する場合には、コンテンツCが最も多く利用されていることから、コントローラ140は、同乗者Aと同乗者Cが一緒に乗車する場合には、コンテンツCが利用される傾向にあることを学習する。
また、コントローラ140は、分析結果から、同乗者間の相関関係を学習する。図3の例では、同乗者Aと同乗者Bが一緒に乗車する場合には、コンテンツAのスポーツのジャンルが最も多く利用されている(50%)。一方、同乗者A一人で乗車する場合には、コンテンツAのスポーツのジャンルが最も多く利用されており(40%)、同乗者B一人で乗車する場合には、コンテンツAの全てのジャンルが利用されている(80%)。このことから、コントローラ140は、同乗者Aと同乗者Bが一緒に乗車した場合には、同乗者Aの好みが優先される傾向にあることを学習する。
コントローラ140は、上述した方法により学習した一つの結果を、一つの情報として扱う。コントローラ140は、同乗者の組み合わせごとに、上述した方法により学習し、学習結果を記憶装置150に記憶させる。記憶装置150には、同乗者の組み合わせに関連付けられたコンテンツ情報の学習結果が格納される。
さらに、コントローラ140は、同乗者の組み合わせに関連付けられたコンテンツ情報の分析結果を含むプローブ情報を、通信装置160を介して、サーバ200に送信する。例えば、コントローラ140は、イグニッションオフ又はイグニッションオンのタイミング、一定時間ごと、又は、車両が一定距離走行する度に、プローブ情報をサーバ200に送信する。本実施形態においては、コントローラ140は、一定時間ごとに、プローブ情報をサーバ200に送信するものとして説明する。なお、コントローラ140は、プローブ情報に含まれる各同乗者の情報を、同乗者の識別ID(例えば、同乗者A)から、運転者と同乗者の関係性(例えば、頻度レベル5/親密度レベルP3)に変換する。これにより、サーバ200は、複数の車両からプローブ情報を受信しても、各プローブ情報を、同乗者の識別IDではなく、運転者と同乗者の関係性という共通のパラメータで扱うことが可能となる。
次に、コンテンツ情報提供機能について説明する。コントローラ140は、コンテンツ情報提供機能により、車両の室内に提供するコンテンツ情報を決定する。具体的に、コントローラ140は、現在の同乗者の組み合わせと、コンテンツ情報学習機能により学習した結果に基づいて、複数のコンテンツ情報から、現在の車両の室内に最適なコンテンツ情報を選択する。
まず、コントローラ140は、記憶装置150にアクセスして、現在の同乗者の組み合わせに対応する、コンテンツ情報の学習結果が存在するか否かを判定する。コントローラ140は、コンテンツ情報の学習結果が存在する場合、この学習結果に基づいて、コンテンツ情報を決定する。
図3の例を用いて説明すると、同乗者Bが乗車した場合、コントローラ140は、コンテンツAの全てのジャンルが利用される傾向にあるという学習結果に基づいて、コンテンツAの中からランダムにジャンルを選択する。また、図3の例において、同乗者Aと同乗者Bが一緒に乗車した場合には、コンテンツAのスポーツのジャンルが利用される傾向にあるという学習結果に基づいて、コンテンツAの中から、スポーツのジャンルを選択する。コントローラ140は、選択したコンテンツ情報を取得するための指令信号を、コンテンツ情報取得装置170に出力する。
また、コントローラ140は、コンテンツ情報のカテゴリやコンテンツ情報のジャンルを選択するだけでなく、コンテンツ情報のレベルも決定する。図3の例において、同乗者Aと同乗者Bが一緒に乗車した場合には、同乗者Aの好みが優先されるという傾向にあるという学習結果に基づいて、コンテンツAのスポーツのジャンルを詳細レベルの情報量にする。そして、コントローラ140は、コンテンツAのスポーツのジャンルについて詳細レベルで取得するための指令信号を、コンテンツ情報取得装置170に出力する。
反対に、コントローラ140は、現在の同乗者の組み合わせに対応する、コンテンツ情報の学習結果が存在しない場合に、サーバ200から送信された、同乗者の組み合わせに関する学習情報と、コンテンツ情報の公共性に関する学習情報に基づいて、コンテンツ情報を決定する。コンテンツ情報の学習結果が存在しない場合として、例えば、同乗者の乗車回数が所定回数未満の場合や、複数の同乗者のうち、初めて乗車する同乗者がいる場合等が挙げられる。コントローラ140には、所定期間ごとに、通信装置160を介してサーバ200から学習情報が入力される。
同乗者の組み合わせに関する学習情報には、複数の運転者と同乗者の関係性の組み合わせと、各組み合わせに関連付けられたコンテンツ情報が含まれる。コントローラ140は、関係性推定機能により、運転者と同乗者の関係性を推定した場合、学習情報に含まれる運転者と同乗者の関係性の中から、推定した運転者と同乗者の関係性についてパターンマッチング処理を実行する。コントローラ140は、推定した運転者と同乗者の関係性が存在する場合、この関係性に関連付けられたコンテンツ情報を、車両の室内に提供するコンテンツ情報として決定する。コントローラ140は、決定したコンテンツ情報を取得するための指令信号を、コンテンツ情報取得装置170に出力する。なお、同乗者の組み合わせに関する学習情報の詳細については後述する。
反対に、コントローラ140は、推定した運転者と同乗者の関係性が存在しない場合、コンテンツ情報の公共性に関する学習情報に基づいて、コンテンツ情報を決定する。コンテンツ情報の公共性に関する学習情報には、運転者と同乗者の親密度が低い場合に利用される複数のコンテンツ情報が含まれる。コントローラ140は、複数のコンテンツ情報からランダムに選択し、選択したコンテンツ情報を、車両の室内に提供するコンテンツ情報として決定する。コントローラ140は、決定したコンテンツ情報を取得するための指令信号を、コンテンツ情報取得装置170に出力する。なお、コンテンツ情報の公共性に関する学習情報の詳細については後述する。
コントローラ140は、コンテンツ情報提供により、コンテンツ情報を決定した後、決定したコンテンツ情報について乗員の反応を学習するために、所定の期間の間、待機状態に入る。例えば、コントローラ140により決定されたコンテンツ情報が車内に提供された後、車両の乗員がコンテンツ情報を変更したいと思い、入力装置180を介して、コンテンツ情報を変更する操作を行うことがある。この場合、待機状態中のコントローラ140には、入力装置180から操作信号が入力される。コントローラ140は、操作信号から乗員が選択したコンテンツ情報を取得するとともに、変更するコンテンツ情報を取得するための指令信号を、コンテンツ情報取得装置170に出力する。
そして、コントローラ140は、乗員が選択したコンテンツ情報と、運転者と同乗者の組み合わせとを、コンテンツ情報学習機能による学習結果に反映させる。コントローラ140は、乗員が選択したコンテンツ情報と、コンテンツ情報提供機能により決定したコンテンツ情報とを比較することで、学習結果の精度を判定する。例えば、コントローラ140は、乗員がコンテンツ情報のカテゴリを変更した場合には、学習結果の精度は低いと判定し、乗員が選択したコンテンツ情報が優先して決定されるように学習結果に反映させる。また、例えば、コントローラ140は、乗員がコンテンツ情報のレベルを変更しない場合には、学習結果の精度は高いと判定し、記憶装置150に記憶された学習結果に変更を加えない。
再び、図1に戻り、サーバ200について説明する。サーバ200は、車両の外部に設置されるものであり、サーバ通信装置210と、サーバコントローラ220と、データベース230と、を備える。
サーバ通信装置210は、電話回線網等を介して、車載装置100の通信装置160と通信可能となっている。サーバ通信装置210は、複数の車両にそれぞれ搭載された複数の車載装置100から複数のプローブ情報を受信する。サーバ通信装置210は、受信した複数のプローブ情報を、サーバコントローラ220に出力するとともに、サーバコントローラ220から取得した、同乗者の組み合わせに関する学習情報と、コンテンツ情報の公共性に関する学習情報を車載装置100に送信する。
データベース230は、複数の車両から取得した複数のプローブ情報を格納している。このようなプローブ情報には、同乗者の組み合わせに対するコンテンツ情報の分析結果が含まれる。
サーバコントローラ220は、同乗者とコンテンツ情報の組み合わせ算出処理と、コンテンツ情報の公共性判定処理を実行させるプログラムが格納されたROM(Read Only Memory)と、このROMに格納されたプログラムを実行するCPU(Central Processing Unit)と、アクセス可能な記憶装置として機能するRAM(Random Access Memory)と、を備えるコンピュータである。なお、動作回路としては、CPUに代えて、MPU(Micro Processing Unit)、ASIC(Application Specified Integrated Circuit)、FPGA(Field Programmable Gate Array)等を用いることができる。
サーバコントローラ220は、ROMに格納されたプログラムをCPUにより実行することにより、コンテンツ情報学習機能と、公共性学習機能と、を実現する。サーバコントローラ220は、各機能を実現するため、又は各処理を実行するためのソフトウェアと、上述したハードウェアの協働により各機能を実行する。以下に、サーバコントローラ220が備える各機能について説明する。
まず、コンテンツ情報学習機能について説明する。サーバコントローラ220は、コンテンツ情報学習機能により、運転者と同乗者の関係性の組み合わせに応じて、利用されるコンテンツ情報を学習する。まず、サーバコントローラ220は、データベース230にアクセスして、複数の車両から取得したコンテンツ情報の分析結果を取得する。サーバコントローラ220は、各車両における分析結果を、運転者と同乗者の関係性でソートし、運転者と同乗者の関係性ごとに分析結果をマージする処理を実行する。
図4は、サーバコントローラ220のコンテンツ情報学習機能による分析結果の一例である。図4を参照しながら、コンテンツ情報学習機能について説明する。図4は、同乗者の組み合わせと、各車両において利用されたコンテンツ情報の対応関係を示すものである。図4では、表の列は利用されたコンテンツ情報の種類を示し、表の行は同乗者の組み合わせを示す。また、図4の表中に示す数字は、一の同乗者の組み合わせに対して、利用された各コンテンツ情報の割合を示す。なお、同乗者の組み合わせの列の中に示されるカッコは、運転者と同乗者の関係性(頻度レベル/親密度レベル)を示す。
図4の例は、同乗者が3人の場合であっても、運転者と同乗者の関係性の組み合わせに応じて、異なるコンテンツ情報が利用されることを示す。例えば、図4の表において、最上段の同乗者の組み合わせは、運転者と同乗者の関係性が「頻度レベル5/親密度レベルB2」と、「頻度レベル4/親密度レベルB2」と、「頻度レベル3/親密度レベルB1」の3人の同乗者の組み合わせである。この場合、各車両において最も多く利用されたコンテンツ情報は、コンテンツAのスポーツのジャンル(40%)であることから、サーバコントローラ220は、運転者と仕事上の関係性を持つ上述した3人の同乗者の組み合わせでは、コンテンツAのスポーツのジャンルが利用される傾向にあることを学習する。また、図4の表において、次段の同乗者の組み合わせは、運転者と同乗者の関係性が「頻度レベル5/親密度レベルP5」と、「頻度レベル3/親密度レベルP5」と、「頻度レベル3/親密度レベルP2」の3人の同乗者の組み合わせである。この場合、各車両において最も多く利用されたコンテンツ情報は、コンテンツAの全てのジャンルである(70%)であることから、サーバコントローラ220は、運転者とプライベートの関係性を持つ上述した3人の同乗者の組み合わせでは、コンテンツAの全てのジャンルが利用される傾向にあることを学習する。
サーバコントローラ220は、上述した方法により学習した一つの結果を、一つの情報として扱う。サーバコントローラ220は、同乗者の組み合わせ毎に、上述した方法により学習し、学習結果をデータベース230に記憶させる。これにより、データベース230には、同じ乗車人数であっても、運転者との関係性が異なる同乗者の組み合わせそれぞれにおいて学習された学習結果が格納される。具体的には、データベース230には、同乗者が車両に乗降する乗降頻度と、同乗者と運転者との親密度とに応じた学習結果が格納される。
また、サーバコントローラ220は、学習結果を同乗者の組み合わせに関する学習情報として、サーバ通信装置210を介して、複数の車両に搭載された車載装置100に送信する。上述したように、各車両に搭載された車載装置100において、コントローラ140は、自車両では同乗者の組み合わせの学習結果が存在しない場合、サーバコントローラ220で学習された他車両での同乗者の組み合わせの学習結果に基づいて、車内に提供するコンテンツ情報を決定する。
次に、公共性学習機能について説明する。サーバコントローラ220は、公共性学習機能により、コンテンツ情報の公共性について学習する。本実施形態のコンテンツ情報の公共性とは、運転者と同乗者の親密度が低い場合であっても、両者に共通するようなコンテンツ情報の特性又は両者の好みのどちらにも偏らないようなコンテンツ情報の特性のことである。
まず、サーバコントローラ220は、データベース230にアクセスして、複数の車両から取得したコンテンツ情報の分析結果を取得する。サーバコントローラ220は、各車両における分析結果から、親密度が最も低い同乗者の組み合わせ、すなわち、運転者と親密でない同乗者の組み合わせと、その同乗者の組み合わせにおいて利用されていたコンテンツ情報を抽出する。サーバコントローラ220は、重複したコンテンツ情報を検出すると、カウントアップしコンテンツ情報ごとに利用件数を算出する。
サーバコントローラ220は、利用件数に応じて、コンテンツ情報の公共性を示すパラメータとして公共性レベルを設定する。例えば、公共性レベルは、公共性が高い順にPu4~Pu1の4段階で表せる。サーバコントローラ220は、コンテンツ情報ごとに、公共性レベルを設定する。
図5は、サーバコントローラ220の公共性学習機能による分析結果の一例である。図5を参照しながら、公共性学習機能について説明する。図5は、コンテンツ情報と、利用件数の対応関係を示すものである。図5では、表の列は利用件数を示し、表の行はコンテンツ情報を示す。
図5の例では、運転者と親密でない同乗者が乗車した場合、最も多く利用されたコンテンツ情報は、コンテンツCのニュースのジャンルであることから、サーバコントローラ220は、コンテンツCのニュースは運転者と同乗者が親密でない場合に最も多く利用される傾向にあると学習し、コンテンツCのニュースに対して、公共性レベルPu4を設定する。同様に、サーバコントローラ220は、利用件数に応じて、コンテンツDのスポーツのジャンルには公共性レベルPu3を設定し、コンテンツEの全てのジャンルには公共性レベルPu2を設定し、コンテンツFの全てのジャンルには公共性レベルPu1を設定する。
サーバコントローラ220は、上述した方法により学習した一つの結果を、一つの情報として扱う。サーバコントローラ220は、コンテンツ情報毎に、上述した方法により学習し、学習結果をデータベース230に記憶させる。これにより、データベース230には、各コンテンツ情報に対しての公共性に関する学習結果が格納される。
また、サーバコントローラ220は、公共性レベルが設定されたコンテンツ情報を、コンテンツ情報の公共性に関する学習情報として、サーバ通信装置210を介して、複数の車両に搭載された車載装置100に送信する。上述したように、各車両に搭載された車載装置100において、コントローラ140は、自車両では同乗者の組み合わせの学習結果が存在しない場合、サーバコントローラ220で学習された公共性の学習結果に基づいて、車内に提供するコンテンツ情報を決定する。
続いて、図6~図8を参照して、本実施形態の情報提供システムの動作について説明する。なお、図6は、本実施形態のコントローラ140のコンテンツ情報学習処理を示すフローチャートであり、図7、図8は、本実施形態の情報提供処理を示すフローチャートである。
まず、図6を参照して、同乗者の組み合わせにコンテンツ情報を関連付けるコンテンツ学習処理について説明する。図6に示すコンテンツ情報学習処理は、各車両に搭載された車載装置100によりそれぞれ実行される。
ステップS101において、コントローラ140は、車両の室内に同乗者が存在するか否かを判定する。例えば、コントローラ140は、車内カメラ110から同乗者の顔画像データが入力された場合、同乗者が存在すると判定する。同乗者が存在する場合には、ステップS102に進み、同乗者が存在しない場合には、ステップS101で待機する。
ステップS102において、コントローラ140は、同乗者の特定を行う。例えば、コントローラ140は、車内カメラ110から入力される同乗者の顔画像データと、記憶装置150に記憶された人物データとのパターンマッチング処理を実行する。同乗者が特定できた場合には、ステップS103に進み、同乗者が特定できない場合には、コンテンツ情報学習処理を終了する。
ステップS103において、コントローラ140は、同乗者が降車したか否かを判定する。例えば、コントローラ140は、車内カメラ110から同乗者の顔画像データが入力されなくなると、同乗者が降車したと判定する。同乗者が降車した場合には、ステップS104に進み、同乗者が乗車中の場合には、ステップS103で待機する。
ステップS104において、コントローラ140は、走行履歴を取得する。例えば、コントローラ140は、ナビゲーション装置130から走行履歴を取得する。
ステップS105において、コントローラ140は、同乗者の乗降履歴を作成する。例えば、コントローラ140は、車内カメラ110から同乗者の顔画像データが入力された位置と走行履歴に含まれる走行経路を関連付けて、同乗者の乗車位置を算出する。また、コントローラ140は、車内カメラ110から同乗者の顔画像データが入力されなくなった位置と走行履歴に含まれる走行経路を関連付けて、同乗者の降車位置を算出する。そして、コントローラ140は、図2に示すように、乗降日時と、乗車位置と、降車位置と、降車位置における運転者行動を、同乗者が車両を乗降した履歴として乗降履歴を作成する。コントローラ140は、記憶装置150に作成した乗降履歴を記憶させる。
ステップS106において、コントローラ140は、運転者と同乗者の関係性を推定する。例えば、コントローラ140は、ステップS105で作成された乗降履歴から、同乗者の降車位置に運転者の自宅が含まれている場合、同乗者は運転者とプライベートの関係を持つと判定し、親密度レベルP4を設定する。また、コントローラ140は、乗降履歴から乗車回数又は降車回数を積算することで頻度レベルを設定する。
ステップS107において、コントローラ140は、コンテンツ情報の利用履歴を取得する。例えば、コントローラ140は、ステップS101~ステップS103の間に、コンテンツ情報提供機能により選択されたコンテンツ情報を取得する。
ステップS108において、コントローラ140は、同乗者とコンテンツ情報の関連性を学習する。例えば、コントローラ140は、ステップS106で推定した運転者と同乗者の関係性と、ステップS107で取得したコンテンツ情報の利用履歴を関連付けることで、図3に示すような、同乗者の組み合わせとコンテンツ情報の対応関係を示す分析結果を作成する。そして、コントローラ140は、分析結果から、最も多く利用されているコンテンツ情報を特定し、ステップS102で特定した同乗者が乗車した場合には、特定したコンテンツ情報が利用される傾向にあると学習する。コントローラ140は、同乗者の組み合わせと、この組み合わせに関連付けられたコンテンツ情報の学習結果を、記憶装置150に記憶させて、コンテンツ情報学習処理を終了する。
続いて、図7、図8を参照して、車両の室内コンテンツ情報を提供する情報提供処理について説明する。図7、8に示す情報提供処理は、各車両に搭載された車載装置100によりそれぞれ実行される。
ステップS201において、コントローラ140は、通信装置160を介してサーバ200から学習情報を取得する。学習情報には、同乗者の組み合わせに関する学習情報と、コンテンツ情報の公共性に関する学習情報が含まれる。
ステップS202において、コントローラ140は、車両の室内に同乗者が存在するか否かを判定する。ステップS202は、図6のステップS101に対応するステップであるため、ステップS101の説明を援用する。同乗者が存在する場合には、ステップS0203に進み、同乗者が存在しない場合には、ステップS202で待機する。
ステップS203において、コントローラ140は、コンテンツ情報の学習が終了した同乗者の組み合わせであるか否かを判定する。例えば、コントローラ140は、記憶装置150を参照して、ステップS202で判定された同乗者の組み合わせに関連付けられたコンテンツ情報が存在するか否かを判定する。既にコンテンツ情報の利用傾向を学習している場合には、ステップS204に進み、コンテンツ情報の利用傾向を学習していない場合には、ステップS210に進む。
ステップS204において、コントローラ140は、現在車内で利用されているコンテンツ情報は記憶装置150に記憶されている学習結果と一致しているか否かを判定する。学習結果と一致していない場合には、ステップS205に進み、学習結果と一致している場合には、ステップS206に進む。
ステップS205において、コントローラ140は、複数のコンテンツ情報から、学習結果に基づくコンテンツ情報を選択する。例えば、コントローラ140は、学習結果を参照し、利用される傾向にあるジャンルのコンテンツ情報を選択する。また、例えば、コントローラ140は、記憶装置150に記憶されている学習結果を参照し、利用される傾向にあるレベルのコンテンツ情報を選択する。
ステップS206において、コントローラ140は、ステップS205において選択したコンテンツ情報を、車両の室内に提供するコンテンツ情報として決定する。コントローラ140は、コンテンツ情報取得装置170を介して決定したコンテンツ情報を取得し、ディスプレイ191又はスピーカ192から出力させる。
ステップS207において、コントローラ140は、現在のコンテンツ情報が変更されたか否かを判定する。例えば、乗員が入力装置180を介してコンテンツ情報のジャンルを変更すると、コントローラ140には、変更されたコンテンツ情報に関する情報が入力される。コンテンツ情報が変更された場合には、ステップS208に進み、コンテンツ情報が変更されない場合には、ステップS209に進む。
ステップS208において、コントローラ140は、ステップS207で変更された結果を、同乗者の組み合わせと、この組み合わせに関連付けられたコンテンツ情報の学習結果に反映させる。コントローラ140は、乗員によるコンテンツ情報の変更を反映した学習結果を、記憶装置150に記憶させる。
ステップS209において、コントローラ140は、同乗者の組み合わせに関連付けられたコンテンツ情報の分析結果を含むプローブ情報を、通信装置160を介して、サーバ200に送信し、情報提供処理を終了する。
ステップS203において、コンテンツ情報の利用傾向を学習していない場合には、ステップS210に進む。
ステップS210において、コントローラ140は、ステップS201において取得したサーバ200の学習情報に含まれる同乗者の組み合わせであるか否かを判定する。例えば、コントローラ140は、サーバ200から取得した学習情報に、ステップS202で判定された同乗者の組み合わせが存在するか否かを判定する。同乗者の組み合わせがサーバ200の学習情報に含まれている場合には、ステップS211に進み、同乗者の組み合わせがサーバ200の学習情報に含まれていない場合、ステップS213に進む。
ステップS211において、コントローラ140は、現在車内で利用されているコンテンツ情報はサーバ200の学習情報と一致しているか否かを判定する。サーバ200の学習情報と一致していない場合には、ステップS212に進み、サーバ200の学習情報と一致している場合には、ステップS206に進む。
ステップS212において、コントローラ140は、複数のコンテンツ情報から、サーバ200の学習情報に基づくコンテンツ情報を選択する。例えば、コントローラ140は、サーバ200の学習情報を参照し、利用される傾向にあるジャンルのコンテンツ情報を選択する。また、例えば、コントローラ140は、サーバ200の学習情報を参照し、利用される傾向にあるレベルのコンテンツ情報を選択する。
ステップS210において、同乗者の組み合わせがサーバ200の学習情報に含まれていない場合、ステップS213に進む。
ステップS213において、コントローラ140は、現在車内で利用されているコンテンツ情報の公共性レベルが高いか否かを判定する。例えば、コントローラ140は、図5に示すような、サーバ200の学習情報のうち、コンテンツ情報の公共性に関する学習情報を参照し、現在のコンテンツ情報の公共性レベルを確認する。現在のコンテンツ情報の公共性レベルが所定のレベルより低い場合には、ステップS214に進み、現在のコンテンツ情報の公共性レベルが所定のレベルより高い場合には、ステップS206に進む。なお、所定のレベルは実験的に求められた値であることが好ましい。
以上のように、本実施形態において、コントローラ140は、車内カメラ110又は車内マイク120により車両に乗車している同乗者を特定し、同乗者が車両を乗降した履歴として乗降履歴を作成するとともに記憶装置150に記憶させ、乗降履歴に基づいて、同乗者が車両に乗降した乗降頻度を算出し、同乗者の乗降履歴と、同乗者の乗降頻度に基づいて、運転者と同乗者の関係性を推定する。これにより、車両の室内で会話がない場合であっても、運転者と同乗者の関係性を適切に推定することができる。
また、本実施形態において、コントローラ140は、同乗者の乗降履歴に含まれる、同乗者の乗車位置又は同乗者の降車位置と、同乗者の乗降頻度に基づいて、運転者と同乗者の関係性を推定する。これにより、運転者と同乗者の関係性を適切に推定することができる。
さらに、本実施形態において、コントローラ140は、運転者と同乗者の関係性に基づいて、車両の室内に提供するコンテンツ情報を選択する。これにより、運転者と同乗者の関係性に適したコンテンツ情報を提供することができる。
また、本実施形態において、コントローラ140は、実際に利用されていたコンテンツ情報の履歴を利用履歴として取得し、この利用履歴と運転者と同乗者の関係性に基づいて、コンテンツ情報を選択する。これにより、上述した効果と同様の効果を奏する。
さらに、本実施形態において、サーバ200は、運転者と同乗者の関係性に関連付けられたコンテンツ情報の分析結果に基づいて、コンテンツ情報の公共性レベルを設定する。そして、サーバ200は、公共性レベルから、コンテンツ情報が公共性の高い情報か否かを推定する。車載装置100は、サーバ200から、公共性レベルが付加されたコンテンツ情報を受信し、公共性レベルに応じたコンテンツ情報を決定する。これにより、同乗者の組み合わせに適したコンテンツ情報を提供することができる。
加えて、本実施形態において、コントローラ140は、車両の乗員が運転者と同乗者の関係性に基づいて選択したコンテンツ情報に対して変更を行なった場合、乗員が変更したコンテンツ情報を優先して提供する。これにより、コンテンツ情報の学習結果の精度が低い場合であっても、同乗者の組み合わせに適したコンテンツ情報が提供される。
なお、以上に説明した実施形態は、本発明の理解を容易にするために記載されたものであって、本発明を限定するために記載されたものではない。したがって、上記の実施形態に開示された各要素は、本発明の技術的範囲に属する全ての設計変更や均等物をも含む趣旨である。
例えば、上述した実施形態において、車載装置100が乗降履歴を作成してコンテンツ情報の学習処理を実行する構成を例示したがこれに限定されず、サーバ200がプローブ情報に基づいて乗降履歴を作成して一の車両におけるコンテンツ情報の学習処理を実行してもよい。
また、上述した実施形態において、サーバ200は、複数の車両からプローブ情報を受信し、各車両において利用された利用件数に基づいて、コンテンツ情報の公共性レベルを設定する構成を例示したが、これに限定されない。例えば、サーバ200は、利用件数が所定の回数よりも少ないコンテンツ情報について、車両以外で利用された情報に基づいて、コンテンツ情報の公共性レベルを設定してもよい。具体的には、サーバ200は、例えば、オフィス、自宅などで利用されたコンテンツ情報の利用件数に基づいて、コンテンツ情報の公共性レベルを設定してもよい。これにより、公共性レベルを設定する際に、データ数が少ない場合であっても、コンテンツ情報の公共性を適切に設定することができる。
また、上述した実施形態において、サーバ200は、複数の車両に対して、学習情報を提供する構成を例示したがこれに限定されない。例えば、運転者の年齢や性別の個人情報がプローブ情報に含まれている場合、サーバ200は、コンテンツ情報を学習する対象のプローブ情報を予め特定してもよい。例えば、サーバ200は、複数のプローブ情報を、運転者の年齢についてクラスタリング処理を実行して複数のクラスに分類する。そして、サーバ200は、各クラスの車両から取得したプローブ情報に基づいて、同乗者の組み合わせと、この組み合わせに関連付けられたコンテンツ情報の学習や、コンテンツ情報の公共性についての学習を行ってもよい。これにより、運転者の年齢や性別等の個人情報に応じた、コンテンツ情報の利用傾向を学習することができる。
なお、本明細書では、本発明に係るコントローラを、車載装置100が備えるコントローラ140とサーバ200が備えるサーバコントローラ220を例に説明するが、本発明はこれに限定されるものではない。
また、本明細書では、本発明に係る情報を、コンテンツ情報を例に説明するが、本発明はこれに限定されるものではない。