【文献】
山本修平, 外2名,“映像とセンサ信号を用いたドライブレコーダデータからのヒヤリハット検出手法”,情報処理学会論文誌,情報処理学会,2017年,Vol.10, No.4,p.26-30
(58)【調査した分野】(Int.Cl.,DB名)
前記検出部は、第2の移動体の移動過程において撮像された第2の映像データを構成するフレームごとに、当該フレームに係る画像データから物体と当該物体の領域を検出し、
前記第2の映像データと、前記第2の映像データの撮像に対応して前記第2の移動体に関して計測された第2のセンサデータと、前記第2の映像データを構成するフレームに係る画像データから検出された物体及び当該物体の領域の検出結果とを前記DNNモデルに入力して、前記第2の映像データについて、各移動状況の確率を計算する計算部、
を有することを特徴とする請求項1記載の移動状況解析装置。
第1の移動体の移動過程において撮像された第1の映像データを構成するフレームごとに、当該フレームに係る画像データから物体と当該物体の領域を検出する検出手順と、
前記第1の映像データと、前記第1の映像データの撮像に対応して前記第1の移動体に関して計測された第1のセンサデータの特徴と、前記物体及び当該物体の領域の検出結果と、前記第1の映像データに係る移動状況を示す情報とに基づいて、映像データ及びセンサデータを入力とし各移動状況の確率を出力とするDNNモデルを学習する学習手順と、
をコンピュータが実行することを特徴とする移動状況解析方法。
前記検出手順は、第2の移動体の移動過程において撮像された第2の映像データを構成するフレームごとに、当該フレームに係る画像データから物体と当該物体の領域を検出し、
前記第2の映像データと、前記第2の映像データの撮像に対応して前記第2の移動体に関して計測された第2のセンサデータと、前記第2の映像データを構成するフレームに係る画像データから検出された物体及び当該物体の領域の検出結果とを前記DNNモデルに入力して、前記第2の映像データについて、各移動状況の確率を計算する計算手順、
をコンピュータが実行することを特徴とする請求項4記載の移動状況解析方法。
【発明を実施するための形態】
【0011】
以下、図面に基づいて本発明の実施の形態を説明する。
図1は、本発明の実施の形態における移動状況認識装置10のハードウェア構成例を示す図である。
図1の移動状況認識装置10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、及びインタフェース装置105等を有する。
【0012】
移動状況認識装置10での処理を実現するプログラムは、CD−ROM等の記録媒体101によって提供される。プログラムを記憶した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【0013】
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従って移動状況認識装置10に係る機能を実行する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。
【0014】
図2は、学習フェーズにおける移動状況認識装置10の機能構成例を示す図である。学習フェーズにおいて、移動状況認識装置10は、映像データ前処理部11、センサデータ前処理部12、物体検出部13、空間特徴埋め込み部14、DNNモデル構築部15及び移動状況認識モデル学習部16を有する。これら各部は、移動状況認識装置10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。移動状況認識装置10は、また、学習フェーズにおいて、映像データDB121、センサデータDB122、物体検出モデルDB123、アノテーションDB124及びDNNモデルDB125等を利用する。これら各DB(Data Base)は、例えば、補助記憶装置102、又は移動状況認識装置10にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
【0015】
学習フェーズにおいて、移動状況認識装置10は、各DBに記憶された情報を利用して移動状況認識DNN(Deep Neural Network)モデルを出力する。
【0016】
映像データDB121には、1以上の映像データが記憶されている。本実施の形態において、1つの映像データは、車両に搭載されたカメラ(例えば、ドライブレコーダ等)によって、当該車両の移動過程において撮像された動画データであるとする。
【0017】
センサデータDB122には、映像データを撮像したカメラを搭載した車両における各種センサによって計測されたセンサデータが記憶されている。
【0018】
なお、映像データDB121及びセンサデータDB122には、対応する映像データ及びセンサデータの対応付けが把握可能なように共通のデータIDに関連付けられて映像データ又はセンサデータが記憶されている。対応する映像データ及びセンサデータとは、同一車両及び同一期間において撮像された映像データ及び計測されたセンサデータをいう。例えば、システム運用者によって映像データ及びセンサデータのペアが入力され、当該ペアを一意に特定するIDをデータIDとして、入力された映像データ及びセンサデータに付与し、映像データを映像データDB121に格納し、センサデータをセンサデータDB122に格納してもよい。
【0019】
物体検出モデルDB123には、訓練済み(学習済み)の物体検出モデルのモデル構造とパラメータとが記憶されている。ここで、物体検出とは、1枚の画像中に写っている物体の一般的な名称(物体名)をその物体の写っている境界領域と共に検出することをいう。物体検出モデルには、HOGなどの画像特徴量で学習されたSVMや、YOLOなどのDNNなど、公知のモデルを利用することも可能である。なお、HOGについては、「Dalal, Navneet and Triggs, Bill: Histograms of Oriented Gradients for Human Detection. In Proc. of Computer Vision and Pattern Recognition 2005, pp. 886-893, 2005.」に詳しい。また、YOLOについては、「J. Redmon, S. Divvala, R. Girshick and A. Farhadi: You Only Look Once: Unified, Real-Time Object Detection, Proc. of Computer Vision and Pattern Recognition 2016, pp. 779-788, 2016.」に詳しい。
【0020】
アノテーションDB124には、各データIDに対するアノテーション名が格納されている。ここで、アノテーション名とは、例えば、映像データに対する状況を説明した文字列が想定され、「車ヒヤリハット」や「自転車ヒヤリハット」等が該当する。アノテーションDB124についても、映像データDB121やセンサデータDB122と同様、例えば、システム運用者によって各データIDに対するアノテーション名が入力され、その入力結果がアノテーションDB124に格納されるようにしてもよい。
【0021】
一方、
図3は、認識フェーズにおける移動状況認識装置10の機能構成例を示す図である。
図3中、
図2と同一部分には同一符号を付し、その説明は省略する。
【0022】
認識フェーズにおいて、移動状況認識装置10は、映像データ前処理部11、センサデータ前処理部12、物体検出部13、空間特徴埋め込み部14及び移動状況認識部17を有する。移動状況認識部17は、移動状況認識装置10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。移動状況認識装置10は、また、認識フェーズにおいて、物体検出モデルDB123及びDNNモデルDB125を利用する。
【0023】
認識フェーズにおいて、移動状況認識装置10は、各DBに記憶された情報を利用して、入力される映像データ及び入力されるセンサデータに対する認識結果を出力する。入力される映像データとは、例えば、映像データDB121に記憶されている映像データとは異なる映像データであって、映像データDB121に記憶されている映像データを撮像した車両と同一又は異なる車両において撮像された映像データをいう。また、入力されるセンサデータとは、入力される映像データを撮像した車両と同一車両において計測され、当該映像データの撮像期間と同一期間において計測されたセンサデータをいう。
【0024】
なお、学習フェーズと認識フェーズとにおいて、異なるコンピュータが用いられてもよい。
【0025】
以下、移動状況認識装置10が実行する処理手順について説明する。
図4は、学習フェーズにおいて移動状況認識装置10が実行する処理手順の一例を説明するためのフローチャートである。
【0026】
ステップS100において、映像データ前処理部11は、映像データDB121から各映像データを取得し、各映像データについて前処理を実行する。
【0027】
図5は、映像データDB121の構成例を示す図である。
図5に示されるように、映像データDB121には、センサデータと紐付けるためのデータIDに対応付けられて映像データが記憶されている。映像データは、例えば、Mpeg4形式などで圧縮されたファイルに格納されている。なお、データIDが異なる映像データは、例えば、撮像した車両が異なる映像データ又は撮像期間が異なる映像データである。
【0028】
前処理の結果、各映像データは、DNNモデルが扱いやすい形式に変換される。以下、前処理によって生成されたデータを「前処理された映像データ」という。なお、映像データの前処理の詳細は後述する。
【0029】
続いて、センサデータ前処理部12は、センサデータDB122から各センサデータを取得し、各センサデータについて前処理を実行する。(S110)。
【0030】
図6は、センサデータDB122の構成例を示す図である。各センサデータは、固有の系列IDが付与され、映像データを紐付けるためのデータIDに対応付けられて記憶されている。各センサデータは、日時、緯度経度、X軸加速度及びY軸加速度等の要素を含む。
【0031】
前処理の結果、各センサデータは、DNNモデルが扱いやすい形式(後述の「特徴ベクトル」)に変換される。以下、前処理によって生成されたデータを「前処理されたセンサデータ」という。なお、センサデータの前処理の詳細は後述する。
【0032】
続いて、物体検出部13は、映像データ前処理部11から前処理された映像データを受け取り、物体検出モデルDB123に記憶されている物体検出モデルを用いて、前処理された映像データから、当該映像データに含まれる各物体の物体名及び領域を検出する(S120)。当該処理の詳細は後述する。
【0033】
続いて、空間特徴埋め込み部14は、物体検出部13から物体検出結果を受け取り、当該物体検出結果の空間特徴埋め込みデータを生成する(S130)。処理の詳細及び空間特徴埋め込みデータの詳細は後述する。
【0034】
続いて、DNNモデル構築部15は、DNNモデルを構築する(S140)。DNNモデルの詳細は後述する。
【0035】
続いて、移動状況認識モデル学習部16は、映像データ前処理部11から前処理された映像データ、センサデータ前処理部12から前処理されたセンサデータ、空間特徴埋め込み部14から空間特徴埋め込みデータ、DNNモデル構築部15からDNNモデル、アノテーションDB124からアノテーションデータを受け取り、DNNモデルを学習し、学習結果としてのDNNモデルをDNNモデルDB125に出力する(S150)。
【0036】
図7は、アノテーションDB124の構成例を示す図である。
図7に示されるように、アノテーションDB124には、各データIDに対するアノテーション名が記憶されている。
【0037】
図8は、認識フェーズにおいて移動状況認識装置10が実行する処理手順の一例を説明するためのフローチャートである。
【0038】
ステップS200において、映像データ前処理部11は、入力として映像データを受け取り、当該映像データについて、ステップS100と同様の前処理を実行する。以下、前処理によって生成されたデータを「前処理された映像データ」という。
【0039】
続いて、センサデータ前処理部12は、入力としてセンサデータを受け取り、当該センサデータについて、ステップS110と同様の前処理を実行する(S210)。以下、前処理によって生成されたデータを「前処理されたセンサデータ」という。
【0040】
続いて、物体検出部13は、映像データ前処理部11から前処理された映像データを受け取り、物体検出モデルDB123に記憶されている物体検出モデルを用いて、前処理された映像データから、当該映像データに含まれる各物体の物体名及び領域を検出する(S220)。
【0041】
続いて、空間特徴埋め込み部14は、物体検出部13から物体検出結果を受け取り、当該物体検出結果の空間特徴埋め込みデータを生成する(S230)。空間特徴埋め込みデータの詳細については後述するが、空間特徴埋め込みデータは、各物体が出現する領域(映像(画像)における領域)の特徴を示すデータの一例である。
【0042】
続いて、移動状況認識部17は、映像データ前処理部11から前処理された映像データ、センサデータ前処理部12から前処理されたセンサデータ、空間特徴埋め込み部14から空間特徴埋め込みデータ、DNNモデルDB125から学習済みのDNNモデルを受け取り、これらに基づいて移動状況認識結果を計算し、計算結果を出力する(S240)。
【0043】
続いて、
図4のステップS100及び
図8のステップS200の詳細について説明する。
図9は、映像データ前処理部11が実行する処理手順の一例を説明するためのフローチャートである。
図9の処理手順は、学習フェーズの場合、データIDごとに実行され、認識フェーズの場合、入力された1つの映像データについて実行される。
【0044】
ステップS300において、映像データ前処理部11は、処理対象の映像データ(以下、「対象映像データ」という。)を取得する。学習フェーズの場合、処理対象の映像データは、映像データDB121に記憶されている映像データ群のうち、処理対象のデータIDに係る映像データである。認識フェーズの場合、処理対象の映像データは、入力された1つの映像データである。
【0045】
続いて、映像データ前処理部11は、対象映像データの各フレームに画像データを、所定の縦サイズ×所定の横サイズ×3チャネル(RGB)の画素値で表現された画像データに変換する(S310)。例えば、所定の縦のサイズが100画素とされ、所定の横のサイズが200画素とされてもよい。
【0046】
図10は、映像データから生成した各フレームにおける画像データの例を示す図である。
図10に示されるように、各画像データは元の映像データに対応付くデータID、当該映像データにおける当該画像データに係るフレームの番号、当該映像データにおける当該フレームのタイムスタンプの情報に関連付けられる。
【0047】
なお、認識フェーズにおいて、データIDは不要である。認識フェーズでは、映像データと当該映像データに対応するセンサデータとが入力されるため、映像データとセンサデータとの対応関係は明確だからである。
【0048】
続いて、映像データ前処理部11は、冗長なデータを削減するために、対象映像データのフレームについて、一定フレーム間隔(Nフレーム間隔)でサンプリングする(S320)。その結果、一部のフレームが除去される。
【0049】
続いて、映像データ前処理部11は、サンプリングされた各フレームの画像データをDNNモデルにおいて扱いやすくするために、当ギア各フレームにおける画像データの各画素値を正規化する(S330)。例えば、各々の画素値の範囲が0〜1の範囲に収まるように、画素の取りうる最大値で各画素値を除算することで正規化が行われる。
【0050】
続いて、映像データ前処理部11は、ステップS330において正規化された各フレームの画像データからなる画像データ系列として表現された映像データ、及び当該映像データのサンプリング後の各フレームの日時情報を出力する(S340)。当該映像データが、対象映像データについて前処理された映像データである。また、各フレームの日時情報は、映像データDB121において映像データごとに記憶されている撮像開始日時(
図5では非図示)に、当該フレームのタイムスタンプ(
図10)を加算することで得ることができる。なお、学習フェーズの場合、出力先は物体検出部13及び移動状況認識モデル学習部16である。認識フェーズの場合、出力先は物体検出部13及び移動状況認識部17である。
【0051】
続いて、
図4のステップS110及び
図8のステップS210の詳細について説明する。
図11は、センサデータ前処理部12が実行する処理手順の一例を説明するためのフローチャートである。
図11の処理手順は、学習フェーズの場合、データIDごとに実行され、認識フェーズの場合、入力されたセンサデータについて実行される。
【0052】
ステップS400において、センサデータ前処理部12は、処理対象のセンサデータ(以下、「対象センサデータ」という。)を取得する。学習フェーズの場合、処理対象のセンサデータは、センサデータDB122に記憶されているセンサデータ群のうち、処理対象のデータIDに対応するセンサデータである。認識フェーズの場合、処理対象のセンサデータは、入力されたセンサデータである。
【0053】
続いて、センサデータ前処理部12は、センサデータをDNNモデルが扱いやすくするために、処理対象の各センサデータにおける各計測値を正規化する(S410)。例えば、センサデータ前処理部12は、緯度、経度、X軸加速度及びY軸加速度のそれぞれについて、処理対象の全センサデータの平均値が0、標準偏差が1になるように正規化する。
【0054】
続いて、センサデータ前処理部12は、各センサデータについて正規化された各々の値を結合した結果を、各センサデータの特徴ベクトルとして生成する(S420)。例えば、センサデータに含まれる計測値が、緯度、経度、X軸加速度及びY軸加速度の4つであれば、特徴ベクトルは、正規化された緯度、正規化された経度、正規化されたX軸加速度及び正規化されたY軸加速度から構成される。なお、各特徴ベクトルは、対応するセンサデータに関連付けられる。
【0055】
続いて、センサデータ前処理部12は、各センサデータの特徴ベクトル、各特徴ベクトルの日時情報を出力する(S430)。各特徴ベクトルの日時情報とは、当該特徴ベクトルの元となるセンサデータについてセンサデータDB122に記憶されている「日時」の値である。なお、学習フェーズの場合、出力先は移動状況認識モデル学習部16である。認識フェーズの場合、出力先は移動状況認識部17である。
【0056】
続いて、
図4のステップS120及び
図8のステップS220の詳細について説明する。
図12は、物体検出部13が実行する処理手順の一例を説明するためのフローチャートである。
【0057】
ステップS500において、物体検出部13は、映像データ前処理部11から前処理された映像データを受け取る。
【0058】
続いて、物体検出部13は、物体検出モデルDB123から学習済みの物体検出モデル(モデル構造及びパラメータ)を取得する(S510)。
【0059】
続いて、物体検出部13は、物体検出モデルを用いて、前処理された映像データのそれぞれのフレームごとに、当該フレームに係る画像データについて物体検出処理を実行する(S520)。
【0060】
図13は、物体検出結果の例を示す図である。
図13に示されるように、物体検出結果は、各フレームに係る画像データから検出された物体ごとに、当該フレームが属する映像データのデータID、当該フレームのフレーム番号、当該フレームの日時情報、当該物体を表す名称、当該画像データにおいて当該物体が検出された境界領域を表す座標(左端、上端、右端、下端)等の情報を含む。
【0061】
続いて、物体検出部13は、物体検出結果(
図13)を空間特徴埋め込み部14に出力する(S530)。
【0062】
続いて、
図4のステップS130及び
図8のステップS230の詳細について説明する。
図14は、空間特徴埋め込み部14が実行する処理手順の一例を説明するためのフローチャートである。
【0063】
ステップS600において、空間特徴埋め込み部14は、物体検出部13から物体検出結果を受け取る。
【0064】
続いて、空間特徴埋め込み部14は、予め定義されたグリッドサイズに従い、物体検出結果に含まれる物体についてグリッド空間への空間特徴の埋め込み処理を実行する(S610)。空間特徴埋め込み処理の結果、空間特徴埋め込みデータが生成される。
【0065】
図15は、空間特徴埋め込みデータの例を示す図である。
図15に示されるように、空間特徴埋め込みデータは、フレームごとに生成される。すなわち、ステップS610は、
図13においてフレーム番号が共通する物体の集合ごとに実行される。1つの空間特徴埋め込みデータは、縦グリッド×横グリッド×検出可能な物体数の構造を有する。なお、空間特徴の埋め込み処理の詳細については後述する。
【0066】
続いて、空間特徴埋め込み部14は、フレームごとの各空間特徴埋め込みデータと、各空間特徴埋め込みデータに対応する日時情報とを出力する(S620)。空間特徴埋め込みデータに対応する日時情報は、映像データの撮像開始日時と、
図15のタイムスタンプとに基づいて特定可能である。なお、学習フェーズの場合、出力先は移動状況認識モデル学習部16である。認識フェーズの場合、出力先は移動状況認識部17である。
【0067】
続いて、ステップS610の詳細について説明する。
図16は、空間特徴の埋め込み処理の処理手順の一例を説明するためのフローチャートである。
図16の処理手順は、物体検出結果(
図13)のフレームごと(フレーム番号が共通するレコードごと)に実行される。
【0068】
ステップS700において、空間特徴埋め込み部14は、埋め込み先のデータ構造、関連する変数を初期化する。
【0069】
ここでは、前処理された映像データの各フレームの画像データの画像サイズについて、縦をH、横をWと表す。なお、各画像データの画像サイズは、前処理によって共通化されているため、各画像データについて、H及びWは共通である。また、事前に定義された縦のグリッドサイズをGh、横のグリッドサイズをGw、学習済み物体検出モデルにおいて検出可能な物体種類数をOと表す。埋め込み先の行列G∈R
Gh×Gw×O←0で初期化する。また、空間特徴の埋め込み先のグリッド構造の縦グリッドの単位幅ShをSh←H/Gh、横グリッドSwの単位幅をSw←W/Gwで得る。
【0070】
続いて、空間特徴埋め込み部14は、処理対象のフレームの物体検出結果を受け取る(S710)。ここで、処理対象の一つのフレームから検出された物体の集合を{o
1,o
2,…,o
N}と表す。Nは、当該フレームから検出された物体数で、フレームによって変動する。検出可能な各物体の名称を識別するIDをo
n.id∈[1,2,…,O]、当該フレームから検出された各物体の境界領域を表す左端、上端、右端、下端の座標をそれぞれ、o
n.left、o
n.top、o
n.right、o
n.bottomで表す。
【0071】
続いて、空間特徴埋め込み部14は、処理対象のフレームの画像データから検出された各物体n∈[1,2,…,N]について、定義したグリッドサイズにおける、左端インデックスleft、上端インデックスtop、右端インデックスright、下端インデックスbottomを、
【0072】
【数1】
とそれぞれ計算する(S720)。
【0073】
続いて、空間特徴埋め込み部14は、インデックスi(top≦i≦bottom)、j(left≦j≦right)、k←o
n.idについて、グリッドg
i,j,kのスコアを以下のように計算する(S730)。なお、グリッドg
i,j,kは、埋め込み先の行列Gの最小単位である。ここでは、3種類のスコア計算式を示す。
計算例1)物体kの出現数をグリッドg
i,j,kごとにカウントする。
g
i,j,k←g
i,j,k+1
計算例2)物体kの出現位置をグリッドg
i,j,kごとにガウスカーネルで考慮する。
g
i,j,k←g
i,j,k+exp (−|i−m|
2)+exp (−|j−c|
2),m←(top+bottom)/2,c←(left+right)/2
計算例3)物体kの境界領域の画像サイズに対する面積比をグリッドg
i,j,kごとに考慮する。
g
i,j,k←g
i,j,k+(height×width)/(H×W),height←o
k.bottom−o
k.top,width←o
k.right−o
k.left
このようにg
i,j,kが計算されることで得られるGが、当該フレームの空間特徴埋め込みデータである。
【0074】
続いて、
図4のステップS140において構築(生成)されるDNNモデルについて説明する。
図17は、DNNモデル構築部15によって構築されるDNNモデルの構造の一例を示す図である。
【0075】
DNNモデルは、入力として、前処理された映像データ、及び当該映像データに対応する、前処理されたセンサデータ(すなわち、当該センサデータの特徴ベクトル)、及び当該映像データに基づいて生成された空間特徴埋め込みデータを受け取り、出力として各移動状況の確率を獲得する。
図17に示されるように、DNNのネットワークは、畳み込み層A、全結合層A、畳み込み層B、全結合層B、全結合層C、LSTM(Long-short-term-memory)、及び全結合層D等のユニットから構成される。
【0076】
畳み込み層Aは、1フレームの画像行列(すなわち、3チャネルの画像群)から特徴を抽出する。畳み込み層Aは、例えば、画像を3×3のフィルタで畳み込んだり、特定短形内の最大値を抽出(最大プーリング)したりする。畳み込み層には、AlexNet(「Krizhevsky, A., Sutskever, I. and Hinton, G. E.: ImageNet Classification with Deep Convolutional Neural Networks, pp.1106-1114, 2012.」))等公知のネットワーク構造や事前学習済みパラメータを利用することも可能である。
【0077】
全結合層Aは、畳み込み層Aから得られる特徴を更に抽象化する。全結合層Aは、例えば、シグモイド関数やReLu関数などを利用して、入力の特徴量を非線形変換する。
【0078】
畳み込み層Bは、物体検出結果の空間特徴埋め込みデータから特徴を抽出する。畳み込み層Bも、畳み込み層Aと同様の処理を行う。すなわち、畳み込み層Bは、例えば、物体検出結果の空間特徴埋め込みデータを3×3のフィルタで畳み込んだり、特定短形内の最大値を抽出(最大プーリング)したりする。
【0079】
全結合層Bは、畳み込み層Bから得られる特徴を更に抽象化する。全結合層Bは、全結合層Aと同様に、入力される特徴量を非線形変換する。
【0080】
全結合層Cは、センサデータの特徴ベクトルを、全結合層Aから得られる画像特徴と同等レベルに抽象化する。全結合層Cは、全結合層Aと同様に、入力の特徴ベクトルを非線形変換する。なお、画像特徴と同等レベルに抽象化するとは、センサデータの特徴ベクトルの各次元の値のスケール(上限から下限までの範囲)、及び当該特徴ベクトルの次元数を、画像特徴を示すベクトルの各次元の値のスケール、又は当該画像特徴を示すベクトルの次元数に合わせることをいう。
【0081】
LSTMは、全結合層A、全結合層B及び全結合層Cから出力される、3つの抽象化された特徴を更に系列特徴として抽象化する。具体的には、LSTMは、全結合層A、全結合層B及び全結合層Cから出力される特徴の系列データを順次受け取り、過去の抽象化された情報を循環させながら、当該系列データを繰り返し非線形変換する。LSTMには忘却ゲートが搭載された公知のネットワーク構造(「Felix A. Gers, Nicol N. Schraudolph, and Juergen Schmidhuber: Learning precise timing with LSTM recurrent networks. Journal of Machine Learning Research, vol. 3, pp.115-143, 2002.」)を利用することもできる。
【0082】
全結合層Dは、LSTMによって抽象化された系列特徴を、対象とする移動状況の種類数の次元のベクトルに落とし込み、各移動状況に対する確率ベクトルを計算する。全結合層Dは、ソフトマックス関数などを利用して入力の特徴量の全要素の総和が1になるように非線形変換することで、各移動状況に対する確率ベクトルを計算する。
【0083】
出力層は、各移動状況に対する確率ベクトルを出力する。例えば、「非ヒヤリハット:10%,車ヒヤリハット:5%,自転車ヒヤリハット:70%,バイクヒヤリハット:5%,歩行者ヒヤリハット:5%,その他:5%」といった情報が出力される。
【0084】
なお、DNNモデルの構造は、映像データ及びセンサデータから影響を受けるものではないため、DNNモデルは、予め構築されてデータベースに記憶されていてもよい。
【0085】
続いて、
図4のステップS150の詳細について説明する。
図18は、移動状況認識モデル学習部16が実行する処理手順の一例を説明するためのフローチャートである。
【0086】
ステップS800において、移動状況認識モデル学習部16は、前処理された映像データの各フレームの日時情報、センサデータの日時情報、空間特徴埋め込みデータの日時情報に基づいて、前処理された映像データのフレームの画像データ、センサデータの特徴ベクトル、及び空間特徴埋め込みデータを、1:1:1に対応付ける。例えば、日時情報が一致するデータ同士、又は日時情報が示すタイミングが最も近いデータ同士が対応付けられる。なお、対応付く相手が無いデータは、対応付けの対象から除去されてよい。
【0087】
続いて、移動状況認識モデル学習部16は、DNNモデル構築部15から
図17に示すようなネットワーク構造(DNNモデル)を受け取る(S810)。
【0088】
続いて、移動状況認識モデル学習部16は、ネットワーク(DNNモデル)における各ユニットのモデルパラメータを初期化する(S820)。例えば、各モデルパラメータが、0から1の乱数で初期化される。
【0089】
続いて、移動状況認識モデル学習部16は、前処理された映像データ、当該映像データに対応するセンサデータに対する前処理によって得られた特徴ベクトル、当該映像データに基づく空間特徴埋め込みデータ、及び当該映像データに対応するアノテーション名を用いてモデルパラメータを更新する(S830)。映像データに対応するアノテーション名とは、映像データと同一のデータIDに対応付けられてアノテーションDBに記憶されているアノテーション名をいう。
【0090】
具体的には、移動状況認識モデル学習部16は、ステップ800において対応付けられた画像データ、特徴ベクトル、及び空間特徴埋め込みデータの組ごとに、当該画像データ、当該特徴ベクトル、当該空間特徴埋め込みデータ、及び当該画像データが属する映像データと同じデータIDに対応付けられてアノテーションDB124に記憶されているアノテーション名を用いて、DNNモデルのモデルパラメータを計算する。より詳しくは、移動状況認識モデル学習部16は、当該組ごとに、当該画像データ、当該特徴データ、及び当該空間特徴埋め込みデータに対して得られる出力の確率ベクトルと、アノテーション名から得られるバイナリベクトルとを求め、確率ベクトルとバイナリベクトルとのクロスエントロピー誤差が最小になるように、バックプロパゲーションなど公知の技術を利用して、モデルパラメータを最適化する。
【0091】
続いて、移動状況認識モデル学習部16は、移動状況認識DNNモデル(ネットワーク構造及びモデルパラメータ)を出力し、出力された結果をDNNモデルDB125に格納する(S840)。
【0092】
図19は、モデルパラメータの一例を示す図である。
図19に示されるように、各層において行列やベクトルとしてパラメータが格納されている。また、出力層1、2、3に対しては、全結合層Dで計算された、各移動状況に対する確率ベクトルの各要素番号と対応するアノテーション名(移動状況を示すテキスト)が格納されている。
【0093】
続いて、
図8のステップS240の詳細について説明する。
図20は、移動状況認識部17が実行する処理手順の一例を説明するためのフローチャートである。
【0094】
ステップS900において、移動状況認識部17は、前処理された映像データを映像データ前処理部11から受け取り、前処理されたセンサデータをセンサデータ前処理部12から受け取り、物体検出結果の空間特徴埋め込みデータを空間特徴埋め込み部14から受け取る。
【0095】
続いて、移動状況認識部17は、DNNモデルDB125から学習済みの移動状況認識DNNモデルを取得する(S910)。
【0096】
続いて、移動状況認識部17は、当該移動状況認識DNNモデルを用いて、ステップS900において受け取った映像データ、センサデータ及び空間特徴埋め込みデータから各移動状況に対する確率を計算する(S920)。
【0097】
続いて、移動状況認識部17は、確率の最も高い移動状況に係るアノテーション名を出力する(S930)。
【0098】
なお、本実施の形態では、映像データ及び計測データが、車両において撮像又は計測される例について説明したが、人の移動に関して撮像される映像データ及び計測データに対して本実施の形態が適用されてもよい。この場合、映像データは、或る人が装着しているグラスウェア等を通じて取得された一人称視点の映像データであり、センサデータは、当該人が形態するウェアラブルセンサで取得されたセンサデータであってもよい。又は、第三者視点から或る人を撮像した映像データと、当該或る人の周囲のセンサから取得されたセンサデータとが本実施の形態に適用されてもよい。また、車両及び人以外の移動体に関して本実施の形態が適用されてもよい。
【0099】
上述したように、本実施の形態によれば、センサデータに加え映像データを利用したモデルを構築・学習し、得られたモデルを移動状況認識に利用することで、従来認識できなかった移動状況を認識可能になる。その結果、移動状況認識の精度を向上させることができる。
【0100】
また、移動状況認識のために効果的な画像特徴を扱える畳み込み層、適切な抽象度で特徴を抽象化できる全結合層、系列データを効率的に抽象化できるLSTMを備えた移動状況認識DNNモデルによって、高精度にユーザの移動状況を認識可能になる。
【0101】
また、移動状況認識のために効果的な物体検出結果を入力データとして利用することで、高精度にユーザの移動状況を認識可能になる。
【0102】
また、物体検出結果の検出境界領域をグリッド空間に特徴埋め込みして入力データとして利用することで、物体の検出位置を考慮することが可能になり、高精度に移動状況を認識可能になる。また、空間特徴埋め込みの際の計算方法に応じて物体の検出数、検出領域の面積比、検出領域の重心などを考慮することが可能になり、高精度に移動状況を認識可能になる。
【0103】
更に、物体検出結果おける検出された全ての物体を1つの空間特徴埋め込みされた構造データとして利用することで、全ての物体を各々入力データとして扱う方法に比べて、計算コストの低減が可能になる。
【0104】
なお、本実施の形態において、移動状況認識装置10は、移動状況解析装置の一例である。映像データDB121に記憶されている映像データは、第1の映像データの一例である。センサデータDB122に記憶されているセンサデータは、第1のセンサデータの一例である。認識フェーズにおいて入力される映像データは、第2の映像データの一例である。認識フェーズにおいて入力されるセンサデータは、第2のセンサデータの一例である。物体検出部13は、検出部の一例である。移動状況認識モデル学習部16は、学習部の一例である。移動状況認識部17は、計算部の一例である。空間特徴埋め込み部14は、生成部の一例である。アノテーション名は、移動状況を示す情報の一例である。
【0105】
以上、本発明の実施の形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【0106】
本出願は、2018年6月4日に出願された日本国特許出願第2018−107057号に基づきその優先権を主張するものであり、同日本国特許出願の全内容を参照することにより本願に援用する。