(57)【要約】【課題】  限られたサンプル数で、様々な環境における物体の表面の状態を検出することができる装置等を提供する。【解決手段】  この装置は、物体の表面の凍結を検出する情報処理装置であり、物体の偏光情報を取得可能な取得装置から該偏光情報の入力を受け付ける入力部３０と、入力部３０が受け付けた偏光情報に基づき、前記物体の表面が凍結しているか否かを判定する凍結判定部３２とを含み、凍結判定部３２は、表面が凍結している物体についての偏光情報の数が０または表面が凍結していない物体についての偏光情報の数より少ない、予め取得された複数の偏光情報を用いて機械学習を行い、該機械学習の結果を用いて前記物体の表面が凍結しているか否かを判定する。【選択図】  図５
2017125809.tif 000002
【特許請求の範囲】
【請求項１】
物体の表面の凍結を検出する情報処理装置であって、
前記物体の偏光情報を取得可能な取得装置から該偏光情報の入力を受け付ける入力部と、
前記入力部が受け付けた前記偏光情報に基づき、前記物体の表面が凍結しているか否かを判定する凍結判定部とを含み、
前記凍結判定部は、表面が凍結している物体についての偏光情報の数が０または表面が凍結していない物体についての偏光情報の数より少ない、予め取得された複数の偏光情報を用いて機械学習を行い、該機械学習の結果を用いて前記物体の表面が凍結しているか否かを判定する、情報処理装置。
【請求項２】
前記表面が凍結している物体についての偏光情報の数が０または表面が凍結していない物体についての偏光情報の数より少ない、予め取得された複数の偏光情報を用いて機械学習を行い、該機械学習の結果を用いて前記入力部が受け付けた偏光情報の次元数より少ない次元数の第２の偏光情報を生成する次元削減部をさらに含み、
前記凍結判定部は、前記入力部が受け付けた偏光情報と、前記次元削減部により生成された前記第２の偏光情報とに基づき、前記物体の表面が凍結しているかを判定する、請求項１に記載の情報処理装置。
【請求項３】
前記次元削減部の機械学習において該次元削減部から出力される複数の偏光情報を用いて機械学習を行い、該機械学習の結果を用いて前記入力部が受け付けた偏光情報の次元数と同じ次元数の第３の偏光情報を生成する次元復元部をさらに含み、
前記凍結判定部は、前記入力部が受け付けた偏光情報と、前記第２の偏光情報に代えて前記次元復元部により生成された前記第３の偏光情報とに基づき、前記物体の表面が凍結しているかを判定する、請求項２に記載の情報処理装置。
【請求項４】
前記入力部が受け付けた偏光情報と前記第３の偏光情報との差分を誤差として算出する誤差算出部をさらに含み、
前記凍結判定部は、前記入力部が受け付けた偏光情報および前記第３の偏光情報に代えて前記誤差算出部により算出された前記誤差に基づき、前記物体の表面が凍結しているかを判定する、請求項３に記載の情報処理装置。
【請求項５】
前記凍結判定部が用いる前記機械学習の結果としてのアルゴリズムが、LOF(Local Outlier Factor)または1 class SVM(Support Vector Machine)である、請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記次元削減部および前記次元復元部が用いる前記機械学習の結果としてのアルゴリズムが、主成分分析(PCA)またはオートエンコーダである、請求項３に記載の情報処理装置。
【請求項７】
前記入力部は、前記物体が存在する場所の温度を測定する温度測定装置から温度情報の入力を受け付け、
前記凍結判定部は、表面が凍結している物体についての偏光情報の数が０または表面が凍結していない物体についての偏光情報の数より少ない、予め取得された複数の偏光情報と、該複数の偏光情報を取得した場所の温度情報とを用いて機械学習を行い、該機械学習の結果を用いて前記物体の表面が凍結しているか否かを判定する、請求項１〜６のいずれか１項に記載の情報処理装置。
【請求項８】
物体の偏光情報を取得することが可能な取得装置と、前記物体の表面の凍結を検出する情報処理装置とを含む情報処理システムであって、
前記情報処理装置が、
前記物体の偏光情報を取得可能な取得装置から該偏光情報の入力を受け付ける入力部と、
前記入力部が受け付けた前記偏光情報に基づき、前記物体の表面が凍結しているか否かを判定する凍結判定部とを含み、
前記凍結判定部は、表面が凍結している物体についての偏光情報の数が０または表面が凍結していない物体についての偏光情報の数より少ない、予め取得された複数の偏光情報を用いて機械学習を行い、該機械学習の結果を用いて前記物体の表面が凍結しているか否かを判定する、情報処理システム。
【請求項９】
前記取得装置は、前記物体の前記偏光情報と輝度情報とを取得可能な撮像装置である、請求項８に記載の情報処理システム。
【請求項１０】
前記物体に光を照射する照射装置をさらに含む、請求項９に記載の情報処理システム。
【請求項１１】
物体の表面の凍結を検出する処理をコンピュータに実行させるためのプログラムであって、
前記物体の偏光情報を取得可能な取得装置から該偏光情報の入力を受け付けるステップと、
前記偏光情報に基づき、前記物体の表面が凍結しているか否かを判定するステップとを実行させ、
前記判定するステップでは、表面が凍結している物体についての偏光情報の数が０または表面が凍結していない物体についての偏光情報の数より少ない、予め取得された複数の偏光情報を用いて機械学習を行い、該機械学習の結果を用いて前記物体の表面が凍結しているか否かを判定する、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物体の表面の凍結を検出する装置、システムおよびその検出する処理をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
カメラの撮像素子上に領域分割した偏光フィルタを設置し、画素毎に取得する光の偏光方向を変えることで、撮像した画像の偏光情報に基づき、輝度情報のみでは判断できない物体を判別する方法が知られている。この方法により、全体が黒色の被写体や透明な被写体であっても、その形状や存在を検知することができる。
【０００３】
例えば、このカメラを使用し、撮像した画像中の周波数成分の分布の特徴値を算出し、特徴値が設置された値より大か否かにより路面の凍結、湿潤、乾燥を判定する方法が提案されている（特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の方法では、様々な氷の状態、環境、路面状態に対応するためには、全ての状態の組み合わせのサンプルを準備し、各サンプルに対してパラメータを調整しなければならない。全ての状態の組み合わせのサンプルを準備することは困難で、現実的には位置を固定する等の制御された環境や外乱が少ない状況にしか対応できないという問題があった。
【０００５】
本発明は、上記に鑑みてなされたものであって、限られたサンプル数で、様々な環境における路面等の物体の表面の凍結を検出することができる装置、システムおよびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、物体の表面の凍結を検出する情報処理装置であって、物体の偏光情報を取得可能な取得装置から偏光情報の入力を受け付ける入力部と、入力部が受け付けた偏光情報に基づき、物体の表面が凍結しているか否かを判定する凍結判定部とを含み、凍結判定部は、表面が凍結している物体についての偏光情報の数が０または表面が凍結していない物体についての偏光情報の数より少ない、予め取得された複数の偏光情報を用いて機械学習を行い、該機械学習の結果を用いて物体の表面が凍結しているか否かを判定する、情報処理装置を提供する。
【発明の効果】
【０００７】
本発明によれば、限られたサンプル数で、様々な環境における物体の表面の凍結を検出することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】情報処理システムの構成例を示した図。
【図２】情報処理システムを構成する撮像装置に設置する偏光フィルタについて説明する図。
【図３】図２に示す偏光フィルタの断面図。
【図４】情報処理システムを構成する情報処理装置のハードウェア構成を示した図。
【図５】情報処理装置の第１の実施例を示した機能ブロック図。
【図６】図５に示す情報処理装置により路面の凍結を判定する処理の流れを示したフローチャート。
【図７】ニューラルネットワークについて説明する図。
【図８】Autoencoderについて説明する図。
【図９】LOFのアルゴリズムを使用して路面の凍結を判定する処理の流れを示したフローチャート。
【図１０】情報処理装置の第２の実施例を示した機能ブロック図。
【図１１】図１０に示す情報処理装置により路面の凍結を判定する処理の流れを示したフローチャート。
【図１２】情報処理装置の第３の実施例を示した機能ブロック図。
【図１３】図１２に示す情報処理装置により路面の凍結を判定する処理の流れを示したフローチャート。
【図１４】使用するアルゴリズムの違いによる路面の凍結の誤検出率と未検出率との関係を示した図。
【図１５】撮像装置の違いによる路面の凍結の誤検出率と未検出率との関係を示した図。
【発明を実施するための形態】
【０００９】
図１は、物体の偏光情報を取得可能な取得装置と、その物体の表面の凍結を検出する情報処理装置とを含む情報処理システムの構成例を示した図である。物体は、道路や線路等、いかなる物体であってもよいが、以下、車両が通行する道路とし、その表面を路面として説明する。また、表面の凍結は、路面に氷が形成された状態である。この情報処理システムは、路面の凍結を検出するシステムであるが、路面が水で濡れた湿潤状態や水で濡れていない乾燥状態も検出可能である。
【００１０】
情報処理システムは、必要に応じて、路面に光を照射する照射装置としての光源１０を備えることができる。光源１０としては、蛍光灯、水銀ランプ、キセノンランプ、ハロゲンランプ、メタルハライドランプ、HID(High Intensity Discharge)ランプ、LED(Light Emitting Diode)等を挙げることができる。
【００１１】
取得装置は、路面の偏光情報のみを取得するセンサであってもよいが、偏光情報に加えて、輝度情報も取得可能な撮像装置１１とすることができる。以下、取得装置を撮像装置１１とし、撮像装置１１が偏光情報を含む画像を撮像して取得するものとして説明する。
【００１２】
撮像装置１１は、CCD(Charged Coupled Device)イメージセンサやCMOS(Complementary Metal Oxide Semiconductor)イメージセンサ等の撮像素子を備える。撮像素子は、入射された光を電気信号に変換するデバイスである。撮像装置１１は、この撮像素子上に偏光フィルタ１２を設置し、輝度情報とともに偏光情報も取得することができるようになっている。偏光は、振動方向が規則的な光である。黒色体や透明な物体であっても、形状等が異なると、偏光状態が異なることから、撮像装置１１は、偏光フィルタ１２を用い、この偏光状態の差異を撮像して取得する。
【００１３】
情報処理装置１３は、撮像装置１１とケーブルにより有線接続され、撮像装置１１が撮像した偏光情報と輝度情報とを有する画像を取得する。情報処理装置１３は、凍結した路面を撮像した画像の数が０または乾燥状態の路面および湿潤状態の路面といった凍結していない路面を撮像した画像の数より少ない、予め取得された複数の画像を学習データとして用い、機械学習を行ってアルゴリズムを発展させる。情報処理装置１３は、判定する対象の路面を撮像した画像を取得した場合、機械学習の結果としての上記のアルゴリズムを使用し、取得した画像に基づき、その路面が凍結しているか否かを判定し、その路面の凍結を検出する。
【００１４】
撮像装置１１と情報処理装置１３とは、上記の有線接続に限らず、Wi-Fi等の無線LAN(Local Area Network)により接続されていてもよい。また、撮像装置１１と情報処理装置１３とは、情報処理装置１３がインターネット等のネットワークに接続され、そのネットワークに接続されたアクセスポイントを介して撮像装置１１と接続されていてもよい。
【００１５】
情報処理システムは、光源１０と撮像装置１１と情報処理装置１３のそれぞれを任意の位置に設置し、その位置を固定することができる。しかしながら、これに限られるものではなく、光源１０と撮像装置１１のみを、または光源１０と撮像装置１１と情報処理装置１３の全部を車両等の移動体に設置し、移動可能とされていてもよい。
【００１６】
図２および図３を参照して、撮像装置１１について説明する。撮像装置１１は、図示しない結像レンズと、撮像素子１４と、光学フィルタ１５とを含んで構成される。結像レンズは、入射される光を集光し、像を生成するためのレンズである。撮像素子１４は、図３に示すように基板１６上に画素（ピクセル）が二次元配列したもので、図２に示す例では、その配列は正方行列配置となっている。撮像素子１４は、結像レンズとは離間して配置され、入射された光を電気信号に変換する。なお、撮像素子１４は、モノクロのセンサであってもよいし、カラーセンサであってもよい。
【００１７】
光学フィルタ１５は、図３に示すように偏光フィルタ１２を、フィルタ基板１７と充填材１８で挟持した構成とされている。光学フィルタ１５は、撮像素子１４と密着して配置され、接着剤としての充填材１８により一体化されている。
【００１８】
フィルタ基板１７は、結像レンズを通して光学フィルタ１５に入射する入射光を透過する透明な基板である。偏光フィルタ１２は、フィルタ基板１７の撮像素子１４側の面に偏光フィルタ層として形成される。充填材１８は、この偏光フィルタ層を覆うように形成される。光学フィルタ１５に入射された光のうち、偏光フィルタ１２を透過した光は、撮像素子１４の各画素領域に入射される。
【００１９】
偏光フィルタ１２は、偏光方向が異なる複数種の偏光子を、撮像素子１４の画素サイズに併せて二次元的に配列してなる領域分割偏光フィルタである。図２に示す例では、隣接する４つの画素PC1〜PC4に対応して、偏光子POL1〜POL4が重ね合わされている。偏光フィルタ１２に用いられる偏光子の種類は、S偏光成分を透過させるものと、P偏光成分を透過させるものの２種類である。ここで、S偏光は、入射する光の偏光方向が反射面に平行に偏光した光で、P偏光は、その反射面に垂直に偏光した光である。これら２種類の偏光子は、撮像素子１４の画素配列の縦方向（二次元行列配列の列方向）を長手方向とする短冊状のパターン、横方向（二次元行列配列の行方向）を長手方向とする短冊状のパターンを有している。
【００２０】
図２に示す例では、縦方向を長手方向とする短冊状のパターンを有する偏光子が、S偏光成分を透過させる偏光子であり、横方向を長手方向とする短冊状のパターンを有する偏光子が、P偏光成分を透過させる偏光子である。偏光フィルタ層が形成されている領域では、S偏光とP偏光が透過し、撮像素子１４は、その透過したS偏光とP偏光が受光される。このようにして、画素毎に、S偏光の像またはP偏光の像が撮像される。なお、これらは、後述する差分画像を形成することで視差画像として各種情報の検知に利用される。
【００２１】
図２に示す例では、領域分割偏光フィルタを使用する構成を示したが、これに限定されるものではない。例えば、撮像装置１１としてのカメラの前面に偏光子を配置し、その偏光子を回転させながら複数枚の偏光角が異なる画像を取得する構成のカメラを使用してもよい。
【００２２】
図４を参照して、情報処理装置１３のハードウェア構成について説明する。情報処理装置１３は、ハードウェアとして、CPU２０、ROM２１、RAM２２、HDD２３、通信I/F２４、入出力I/F２５、表示装置２６、入力装置２７を備える。CPU２０、ROM２１、RAM２２、HDD２３、通信I/F２４、入出力I/F２５は、バス２８に接続され、バス２８を介して互いにデータ等のやりとりを行う。
【００２３】
CPU２０は、情報処理装置１３全体の制御を行う演算処理装置である。ROM２１は、情報処理装置１３を起動させるためのブートプログラム、表示装置２６や入力装置２７等の動作を制御するためのファームウェア等を格納する不揮発性の記憶装置である。RAM２２は、CPU２０が各種の処理を実行する際の作業領域を提供する揮発性の記憶装置である。HDD２３は、上記の凍結を検出するために凍結かどうかを判定する処理を実現するためのプログラム、OS、各種のデータ等を格納する不揮発性の記憶装置である。
【００２４】
通信I/F２４は、ネットワークを介して他の機器との通信を可能にするインタフェースである。通信I/F２４は、撮像装置１１とネットワークを介して通信する際に利用される。入出力I/F２５は、表示装置２６や入力装置２７を接続し、ユーザからの指示、判定結果の表示等を可能にする。この入出力I/F２５は、撮像装置１１と情報処理装置１３とをケーブルで接続する際にも利用される。表示装置２６は、CRT(Cathode Ray Tube)や液晶ディスプレイ等を用いることができ、入力装置２７は、マウスやキーボードを用いることができる。表示機能と入力機能の両方を備えるタッチパネルを採用してもよい。
【００２５】
情報処理装置１３は、そのほか、CD-ROMドライブやSDカードスロット等の外部記憶装置I/F、マイク等の音声入力装置、スピーカ等の音声出力装置等を備えていてもよい。HDD２３は、SSD(Solid State Drive)等であってもよい。
【００２６】
図５は、情報処理装置１３の第１の実施例を示した機能ブロック図である。情報処理装置１３は、CPU２０が上記のプログラムを実行することにより各機能を実現するが、その機能部として、入力部３０、次元削減部３１、凍結判定部３２を備える。次元削減部３１は、必要に応じて設けることができ、情報処理装置１３は、入力部３０と凍結判定部３２のみから構成されていてもよい。ここでは、次元削減部３１を備えるものとして説明する。
【００２７】
入力部３０は、検出対象となる路面１を撮像した偏光情報を有する画像の入力を受け付ける。入力部３０は、この画像の入力を、上記の撮像装置１１から受け付ける。また、入力部３０は、表面が凍結している路面を撮像した偏光情報を有する画像の数が０または表面が凍結していない乾燥状態および湿潤状態の路面を撮像した偏光情報を有する画像の数より少ない複数の画像（サンプル）を受け付ける。これらのサンプルは、学習データとして用いられる。
【００２８】
次元削減部３１は、学習データを用いて機械学習を行う。また、次元削減部３１は、入力部３０が受け付けた検出対象の画像に基づき、その画像の特徴を表し、該画像の次元数より少ない次元数の画像を生成する。すなわち、次元削減部３１は、学習したアルゴリズムを使用して、検出対象の画像の次元数を削減する。
【００２９】
次元削減は、画像の中で有用と思われる情報を抽出し、特徴として使用することができるようにし、未知のデータに対して正しく判定できるようにする汎化能力を付与するために実行される。その詳細については後述する。
【００３０】
凍結判定部３２は、上記の学習データおよび機械学習した次元削減部３１から出力されるデータを用いて機械学習を行う。凍結判定部３２は、この機械学習により得られたアルゴリズムを使用して、路面が凍結しているか否かを判定する。凍結判定部３２は、その判定を、入力部３０が受け付けた画像および次元削減部３１により次元数が削減された画像に基づき行う。その詳細については後述する。
【００３１】
機械学習は、複数のサンプルを入力し、様々なアルゴリズムを使用して解析を行い、その解析結果から有用な規則や判断基準等を抽出し、アルゴリズムを発展させる。ここでは、凍結している路面のサンプル画像の数が０または凍結していない路面のサンプル画像の数より少ない複数のサンプル画像を入力して学習を行い、様々な環境に対応できるアルゴリズムに発展させる。これにより、次元削減部３１は、学習したアルゴリズムを使用して、適正な次元に削減し、凍結判定部３２は、学習したアルゴリズムを使用して、路面が凍結しているか否かを高い精度で判定することができる。なお、次元削減部３１と凍結判定部３２で使用するアルゴリズムは、処理が異なることから、当然にして異なるアルゴリズムである。
【００３２】
その判定の精度を向上させるためには、サンプルとして、凍結していない路面の画像だけではなく、凍結している路面の画像も含めることが望ましい。また、凍結している路面のサンプル数は、多いほうが精度を向上させるためには望ましい。しかしながら、凍結している路面のサンプルは、少数であってもよく、その数は、凍結していない路面のサンプル数より少なくても充分に高い精度で凍結か否かを判定することができる。
【００３３】
このような機能部を備える情報処理装置１３が行う処理を、図６を参照して説明する。なお、次元削減部３１を設けない場合は、次元削減部３１が行う処理を省略することができる。ステップ６００からこの処理を開始し、ステップ６１０では、入力部３０が撮像装置１１から検出対象の画像の入力を受け付ける。ステップ６２０では、別途設けられる抽出部により、入力された画像から輝度画像と偏光情報とを抽出する。
【００３４】
入力された画像は、撮像素子１４の撮像領域を二次元x、y座標で表すと、位置(x,y)の画素において受光したS偏光およびP偏光の強度がそれぞれIs(x,y)、Ip(x,y)で表される。輝度画像Ibright(x,y)は、これらの強度を用い、次の式１で各画素の輝度値を計算することにより求めることができる。
【００３５】
【数１】
2017125809.tif 000003
【００３６】
偏光情報としては種々のものが考えられるが、例えば、偏光度、差分偏光度、偏光比を挙げることができる。偏光度(DOP)は、偏光現象に関する周知のストークスパラメータ(S0、S1、S2、S3)を用いて定義される量である。ストークスパラメータは、ストークスベクトルを構成する４つの成分であり、ストークスベクトルは、偏光状態を表現するためのベクトルで、各パラメータは、測定可能な光の強度として表現される。上記のDOPは、これら４つのパラメータを使用し、次の式２で表すことができる。
【００３７】
【数２】
2017125809.tif 000004
【００３８】
差分偏光度(SDOP)は、上記のストークスパラメータ(S0、S1)を用いて定義される量で、次の式３で表すことができる。ここで、式３中、I(0,φ)は、軸角度を０度としたときの偏光フィルタ１２を通した光強度で、I(90,φ)は、軸角度を９０度としたときの偏光フィルタ１２を通した光強度である。上記の領域分割偏光フィルタを使用する場合は、I(0,φ)がS偏光を受光した画素の受光強度であり、I(90,φ)がP偏光を受光した画素の受光強度である。
【００３９】
【数３】
2017125809.tif 000005
【００４０】
偏光比は、上記のI(0,φ)とI(90,φ)の比で、次の式４で表すことができる。なお、偏光比は、それらの比であればよいので、次の式５のように表してもよい。
【００４１】
【数４】
2017125809.tif 000006
【００４２】
【数５】
2017125809.tif 000007
【００４３】
偏光情報は、例えば上述した差分画像の１つであるSDOP画像であり、輝度画像とSDOP画像は、例えば640×480画素のサイズの画像として抽出される。ステップ６３０では、次元削減部３１が機械学習を行い得られたアルゴリズムを使用し、これらの画像を、例えば6×12画素に次元を削減し、72画素×2=144次元の特徴量を有する画像を生成する。ステップ６４０では、凍結判定部３２が機械学習を行い得られたアルゴリズムを使用し、元の画像およびステップ６３０で生成された画像に基づき、路面が凍結しているか否かを判定する。
【００４４】
機械学習において、少なくとも凍結していない乾燥状態および湿潤状態の路面を学習しているので、それらの路面の状態とは一定以上に異なる場合、路面が凍結していると判定することができる。また、機械学習において、少数ながらも凍結状態の路面を学習している場合は、上記の乾燥状態等の路面とは一定以上に異なることに加え、その凍結状態の路面に一定以上に近似している場合、路面が凍結していると判定することができる。
【００４５】
撮像された画像のみでは、路面を覆う物質が同じ水であるため、湿潤状態の画像か、凍結状態の画像かを判別することが難しい場合がある。しかしながら、偏光フィルタ１２を使用して偏光情報を取得し、上記の複数のサンプル画像を用いて機械学習で学習したアルゴリズムを使用することで、凍結している路面か否かを高い精度で判別することができる。
【００４６】
凍結していると判定した場合、ステップ６５０へ進み、路面の凍結を検出し、ステップ６７０でこの処理を終了する。一方、凍結していないと判定した場合、ステップ６６０へ進み、路面が凍結していないことを検出し、ステップ６７０でこの処理を終了する。凍結しているか否かの情報は、情報処理装置１３が備える表示装置２６に表示してユーザに知らせることができる。なお、これに限らず、音を出力してその旨を通知してもよい。
【００４７】
このように機械学習を行い、その学習結果であるアルゴリズムを使用して処理を行うことで、様々な氷の状態に対応した凍結の有無を高い精度で判定することができる。次元削減部３１は設けなくてもよいが、次元削減部３１を設けることで、次元削減後の画像も用いて路面の凍結の有無を判定することができるので、その精度を向上させることができる。
【００４８】
以下に、次元削減処理および凍結判定処理を詳細に説明する。まず、次元削減処理について説明する。有用な次元削減とするため、学習データとして、正常な値を示すデータ（ポジティブデータ）のみを用いて学習する半教師あり異常検知手法を採用し、次元削減部３１を学習させる。これにより、少ないパラメータ数でサンプル群のノイズ（ばらつき）を含んだ状態でより良くポジティブデータのみを表現できる次元削減を行うことができる。
【００４９】
次元削減を実現するためのアルゴリズムとしては、代表的に以下の２つがある。１つ目の手法は、主成分分析(PCA)である。このPCAは、以下の手順で実施することができる。例えば、学習データを、３０個の１００次元のベクトルデータとすると、各学習データは、次の式６で表すことができる。
【００５０】
【数６】
2017125809.tif 000008
【００５１】
このとき、多次元の入力ベクトルYは、次の式７で表すことができる。
【００５２】
【数７】
2017125809.tif 000009
【００５３】
このYの分散共分散行列Aは、次の式８により計算することができる。分散共分散行列は、散らばり具合を表す分散の概念を多次元確率変数に拡張して行列にしたものである。
【００５４】
【数８】
2017125809.tif 000010
【００５５】
次に、式９に示す固有値方程式を解き、固有値λを求める。なお、式７中、Iは単位行列である。
【００５６】
【数９】
2017125809.tif 000011
【００５７】
求めた各固有値λに対して、次の式１０に示す関係を満たす固有ベクトルxを求める。
【００５８】
【数１０】
2017125809.tif 000012
【００５９】
上記の式９で求めた固有値λのうち、最も大きい固有値λが第一主成分となり、その固有値λをλ１とし、このλ１を代入して上記の式１０により求めた固有ベクトルをx１とする。同様にして、第二主成分となるλ１の次に大きい固有値λ２を式９により求め、式１０に代入して固有ベクトルx２を求める。このようにして、固有ベクトルx３、x４、x５、…を求めることができる。ここでは簡素化のため、第一主成分の情報のみへの次元削減（一次元への削減）を行うものとする。
【００６０】
第一主成分の固有ベクトルx１と、入力されたデータとの相関演算を次の式１１を用いて行い、第一主成分の固有値を算出する。なお、式１１中、Nはブロック数である。
【００６１】
【数１１】
2017125809.tif 000013
【００６２】
上記式１１により求めた第一主成分の固有値を用い、入力された多次元データから一次元となる成分のみを抽出し、次の式１２により次元削減を行う。なお、式１２中、y(x,t)が一次元に削減された後の入力データである。
【００６３】
【数１２】
2017125809.tif 000014
【００６４】
なお、ここではtが入力データの時系列を示している。PCAは、次元削減として非常に基本的なもので、性能としては高くないが、処理は高速である。ちなみに、次に説明する手法は、処理は遅いが、より次元削減性能が高いものである。
【００６５】
２つ目の手法は、ニューラルネットワークの一種である多層パーセプトロンである。多層パーセプトロンは、複数の層にニューロンを配置させたフィードフォワード型ニューラルネットワークである。この多層パーセプトロンは、図７に示すような素子の接続となっている。図７中、丸は素子であるニューロンを示し、そのニューロンが多層に接続されている。
【００６６】
図７に示すニューラルネットワークは、ループする結合がなく、入力層、中間層、出力層の順に単一方向へのみ信号が伝播する。入力層は、データが入力される最初の層で、中間層は、入力と出力の間にある層で、隠れ層とも呼ばれる。出力層は、ネットワークの最終的な出力が行われる層である。例えば、入力層内のニューロンは、中間層内のニューロンの１つと繋がっており、この繋がりの強さは、重みと呼ばれる値（パラメータ）としてニューロン間に与えられる。
【００６７】
このニューラルネットワークを学習（パラメータを最適化）させるためのアルゴリズムの１つとして、誤差逆伝播法を用いることができる。誤差逆伝播法は、教師あり学習の１つのアルゴリズムであり、教師あり学習は、入力とその入力に対応する出力（ラベル）を写像する関数を求めるものである。ちなみに、教師なし学習は、入力のみからモデルを構築するもので、半教師あり学習は、出力がある例と出力がない例の両方を扱えるようにしたもので、近似する関数やデータを分類する分類器を生成する。
【００６８】
誤差逆伝播法は、サンプルを与え、ネットワークの出力とそのサンプルの最適解とを比較して、各ニューロンの出力に対して誤差を計算し、パラメータである重みを変化させ、最終的に正しい出力が得られるように調整していく手法である。このパラメータを変化させていくことが学習である。
【００６９】
次元削減は、このニューラルネットワークを使用したオートエンコーダ(Autoencoder)と呼ばれるアルゴリズムを使用することができる。Autoencoderは、入力と出力を同じ学習データ（教師データ）とし、教師あり学習をさせることにより作成される。Autoencoderは、次元削減（encode）と次元復元(decode)とを実行する。
【００７０】
Autoencoderは、例えば、入力を変換し、それを逆変換して元の入力と比較し、一致するようにパラメータを更新していくことで学習させ、作成される。このように学習させていくと、学習データに対しては充分に学習しているが、未知のデータに対しては適合できない、汎化できていない過学習が行われる。この過学習を防ぎ、未知のデータに対しても適合するようにするため、正則化や事前分布等の手法が適用される。この手法の適用により、中間層である隠れ層は、図８に示すように、入力層や出力層より少ない数のニューロン数で表現することができる。このように、中間層のニューロン数を入力の次元数よりも少なくすることで、より少ない次元数で入力データを再現するように次元削減を行うことができる。
【００７１】
このAutoencoderを、一層ずつ学習を行い、組み合わせて多層としたStacked Auto-Encoders(SAE)と呼ばれる方法を採用すると、良好に次元削減を行うことができる。隠れ層が２層以上あると、不適切な極小解に収束してうまくいかない。SAEは、隠れ層が２以上ある場合、隠れ層を１層だけ作り、出力層を取り除き、その隠れ層を入力層とみなして次の隠れ層を積み上げる形で、これを繰り返して作成される。
【００７２】
上記と同様、学習データを、３０個の１００次元のベクトルデータとすると、yiをSAEの第１のAutoencoderの入力データとし、誤差逆伝播法で学習を行い、パラメータの調整を行う。次に、SAEの第２のAutoencoderについて、第１のAutoencoderの隠れ層に対する入力データを用いて学習を行う。このとき、第１のAutoencoderにおいて、入力層の各ニューロンと隠れ層の上からj番目のニューロンとの間のパラメータをw1,k、w2,k、…、w100,kとすると、第２のAutoencoderの入力データは、次の式１３で表すことができる。
【００７３】
【数１３】
2017125809.tif 000015
【００７４】
上記式１３中、ziは、３０個の５０次元に次元削減されたベクトルデータである。このziを第２のAutoencoderの入力データとして誤差逆伝播法により学習を行い、パラメータの調整を行うことができる。
【００７５】
ニューラルネットワークは、多層にすることで、中間層の数を変えて様々な表現や特徴等に識別あるいは分類することができることから、表現能力や識別器の性能を向上させることができ、また、その次元削減を行うことができる。このため、次元削減を行う際、一層で所望の次元数まで削減するのではなく、上記のSAEを使用し、複数の層に分けて次元数を削減することが望ましい。
【００７６】
なお、SAEを使用する場合においても、各層で個別に学習を行い、それを組み合わせ、最後に一度Fine-trainingと呼ばれる学習を行うことが望ましい。これにより、次元削減としての性能をさらに向上させることができるからである。ここでは、２つの次元削減手法について説明したが、これに限られるものではなく、これまでに知られた他の方法を採用してもよい。
【００７７】
次に、凍結判定処理について説明する。氷の状態、環境、路面状態のあらゆる組み合わせのサンプルを準備することは、現実的に困難であることから、教師あり学習を使用した異常検知手法（教師あり異常検知）を採用することはできない。乾燥した路面、濡れている路面のあらゆる状態のサンプルを準備することは困難で、それ以外のものを異常データとして検知し、それを凍結と判定するには、その精度が低くなるからである。
【００７８】
また、教師なし学習は、乾燥した路面のグループ、濡れている路面のグループに分類することは可能であるが、あらゆる状態のサンプルを準備することが困難であるため、教師なし学習を使用した異常検知手法も採用することはできない。
【００７９】
そこで、教師あり異常検知より検知精度が低い場合が多いが、予想しない異常な値も検知可能な半教師あり学習を使用した異常検知手法（半教師あり異常検知）を採用する。この半教師あり異常検知のアルゴリズムとしては、代表的に以下の２つがある。１つは、LOF(Local Outlier Factor)である。LOFは、識別するサンプル周辺に、既知のサンプルの密度がどれくらいあるかにより、異常値（外れ値）を検出する密度ベースの外れ値検出法である。
【００８０】
例えば、データ全体の集合をD、任意の正数をk、Dに含まれるデータをp、oとし、pとoの距離をd(p,o)とする。この距離は、統計学における距離である。距離が近いほど、同じ分類に分類され、距離が遠いほど異なる分類となる。少なくともk個のDに含まれるo’とpの距離に対してd(p,o’)≦d(p,o)が成立し、高々k-1個のデータo’とpの距離に対してd(p,o’)＜d(p,o)が成立するときのoとpの距離を、pのk距離(kdist(p))という。このpのk距離が与えられたとき、pのk距離近傍に含まれるデータNk(p)は、次の式１４で表すことができる。
【００８１】
【数１４】
2017125809.tif 000016
【００８２】
このNk(p)は、pからk番目に近いデータokまでの距離kdist(p)=d(p,ok)の範囲内にあるデータの集合である。次に、pのoに関する到達可能距離rdk(p,o)を、式１５により求める。
【００８３】
【数１５】
2017125809.tif 000017
【００８４】
pがoから離れているとき、pとo間の到達可能距離は、単純にそれら間の距離となり、pがoに充分に近いとき、oのk距離(kdist(o))が到達可能距離となる。これにより、pがoの近くにある場合の距離d(p,o)の変動を緩和することができる。
【００８５】
LOFの算出に先立ち、局所到達可能密度(Ird)と呼ばれるpのk距離近傍内にあるデータの到達可能距離(rd)の平均の逆数を算出する。そのlrdk(p)は、次の式１６により求めることができる。
【００８６】
【数１６】
2017125809.tif 000018
【００８７】
なお、式１６中、rdk(p,o)は、pとoの距離がkdist(o)より小さい場合にkdist(p)に置き換えて到達可能距離rdとする。LOFは、lrdk(p)とkdist(p)との平均を取り、pの外れ度合いを示すLOFk(p)として、次の式１７により求めることができる。
【００８８】
【数１７】
2017125809.tif 000019
【００８９】
上記式１７より、lrdk(p)が小さく、kdist(p)が大きくなるにつれて、LOFk(p)が大きくなる。LOFは、密集しているデータについては１に近くなることが知られており、１に近いデータは外れ値の可能性が低く、１から離れるにつれて外れ値の可能性が高いことを示す。
【００９０】
実際の判定は、機械学習においてプロットしたポジティブデータを表すデータ集合と同じ多次元空間に、多次元データをプロットする。そして、そのプロットした点の周りの密度に基づき、LOFk(p)として各LOF値を算出し、算出されたLOF値が閾値以上であるか否かを判定することにより行うことができる。
【００９１】
もう１つは、教師あり学習を用いるパターン認識モデルの１つである1 class SVM（Support Vector Machine：サポートベクターマシン）である。1 class SVMは、識別器としてよく知られているSVMの評価関数を変更し、半教師あり異常検知を使用した識別器として使えるようにしたものである。具体的には、1 class SVMは、データを特徴空間上に写像すると、その特徴空間上で孤立しているデータはその特徴空間の原点近くに写像されることから、超平面より原点側にあるデータを外れ値とみなす手法である。
【００９２】
1 class SVMは、学習データを用いて、正常な値のクラスと外れ値のクラスに分類できるようにうまく学習することができれば、LOFに比較して高速に識別することが可能となる。なお、ここでは、２つの半教師あり異常検知について説明してきたが、これらの手法に限定されるものではなく、これまでに知られた他の手法を採用することも可能である。
【００９３】
実際の判定は、機械学習においてプロットしたポジティブデータを表すデータ集合と同じ多次元空間に、多次元データをプロットする。そして、多次元データを入力とした評価関数の値が、機械学習において求めた所定の平面または曲面によって分けられた多次元空間のいずれに属するかにより、検出対象のデータが異常値データか否かを判定することで行うことができる。
【００９４】
この半教師あり異常検知としてLOFを使用した凍結判定処理について説明する。図９は、凍結判定処理の流れを示したフローチャートである。ステップ９００からこの処理を開始し、ステップ９０５では、凍結路面以外のサンプルを学習データとして用い、これを正常として学習させたアルゴリズムである識別器を用いてLOF値を計算する。LOF値は、上記の式１４から式１７を用いて計算することができる。ここで計算されたLOF値をLOFaとする。
【００９５】
ステップ９１０では、凍結路面以外のサンプルより少ない数の凍結路面のサンプルを学習データとして用い、これを正常として学習させた識別器を用いてLOF値を計算する。このLOF値も、上記の式１４から式１７を用いて計算することができる。ここで計算されたLOF値をLOFbとする。
【００９６】
ステップ９１５では、ステップ９０５で計算したLOFaとステップ９１０で計算したLOFbの両方を考慮したLOF値を、次の式１８により求める。なお、式１８中、a、bは、任意の定数である。
【００９７】
【数１８】
2017125809.tif 000020
【００９８】
ステップ９２０では、求めたLOF値が閾値以上であるかを判定する。ステップ９２０で閾値以上と判定した場合、ステップ９２５へ進み、その路面は凍結状態と判定し、ステップ９３５でこの処理を終了する。一方、ステップ９２０で閾値未満と判定した場合、ステップ９３０へ進み、その路面は非凍結状態と判定し、ステップ９３５でこの処理を終了する。
【００９９】
このように、少数でも凍結路面のサンプルが手に入る場合は、それを考慮した判定を行うことができ、その判定精度を向上させることができる。
【０１００】
これまで、次元削減部３１を備え、次元削減した画像を用いて路面の凍結を判定する処理について説明してきたが、これに限られるものではない。図１０は、情報処理装置１３の第２の実施例を示した機能ブロック図である。図１０に示す例では、次元削減部３１の後段に、次元復元部３３が設けられている。入力部３０、次元削減部３１、凍結判定部３２については既に説明したので、ここではその説明を省略する。
【０１０１】
次元復元部３３は、次元削減部３１が学習データを用いて学習を行い、その次元削減部３１から出力されるデータを用いて、次元削減されたデータの次元数を元の多次元に戻すための機械学習を行う。この多次元に戻す処理は、次元復元と呼ばれる。次元復元部３３は、次元復元したデータを凍結判定部３２に出力し、凍結判定部３２は、この次元復元したデータと学習データとを用いて機械学習を行う。
【０１０２】
凍結判定部３２は、機械学習においてプロットしたポジティブデータを表すデータ集合と同じ多次元空間に、多次元データをプロットし、各LOF値を算出する等して、凍結の有無を判定する。このため、次元数が多いほうが、プロット数を多くし、より多くのLOF値や評価関数の値を得て判定することができ、その精度を向上させることができる。このため、次元復元部３３を設けることで、図５に示した次元削減部３１のみの構成に比較して、その精度を向上させることができる。
【０１０３】
この次元復元部３３を備える情報処理装置１３が行う処理を、図１１を参照して説明する。ステップ１１００からこの処理を開始し、ステップ１１１０〜ステップ１１３０は、図６に示すステップ６１０〜ステップ６３０の処理と同じである。ステップ１１４０では、次元復元部３３が、次元削減部３１が削減した次元数の画像を、次元削減部３１により入力される元の画像の次元数に戻し、次元を復元する。
【０１０４】
次元の復元は、上記のAutoencoderやSAE等を機械学習により作成し、そのAutoencoderやSAE等を使用して行うことができる。これも次元削減の場合と同様、その他の方法を採用して行うことも可能である。ステップ１１５０以降は、図６に示すステップ６４０以降の処理と同じであり、ここではその説明を省略する。
【０１０５】
図１２は、情報処理装置１３の第３の実施例を示した機能ブロック図である。図１２に示す例では、次元復元部３３の後段に、誤差算出部３４が設けられている。入力部３０、次元削減部３１、凍結判定部３２、次元復元部３３については既に説明したので、ここではその説明を省略する。
【０１０６】
誤差算出部３４は、次元削減部３１に入力される多次元データと、次元復元部３３により復元された後の多次元データとの差分を計算することで、次元削減部３１により次元削減されたことにより発生した誤差量を算出する。
【０１０７】
例えば、入力される学習データが上記の式６で表される場合、各yiを入力して次元削減部３１により次元削減した後、次元復元部３３により次元復元した結果をYiとすると、その誤差Δiは、次の式１９により算出することができる。
【０１０８】
【数１９】
2017125809.tif 000021
【０１０９】
次元削減部３１および次元復元部３３が適切に学習されている場合、Δiは、略０（ゼロ）になる。これは、入力された多次元データを次元削減部３１で次元削減し、次元復元部３３で次元復元すれば、ほぼ元通りに復元されることを示している。凍結判定部３２は、誤差算出部３４により算出されたΔiを用いて機械学習を行う。
【０１１０】
この場合、凍結判定部３２は、Δiを多次元空間にプロットし、ポジティブデータを表すデータ集合を生成する。凍結判定部３２が上記のLOFを使用する場合は、このデータ集合をHDD２３等に格納し、判定時に読み出して使用することができる。凍結判定部３２が上記の1 class SVMを使用する場合、このデータ集合と、多次元平面上の所定の点とを分ける所定の平面または曲面を求める。この平面等のデータもHDD２３等に格納し、判定時に読み出して使用することができる。
【０１１１】
この誤差算出部３４備える情報処理装置１３が行う処理を、図１３参照して説明する。ステップ１３０からこの処理を開始し、ステップ１３１０〜ステップ１３４０は、図１１に示すステップ１１１０〜ステップ１１４０の処理と同じである。ステップ１１５０では、誤差算出部３４が、次元削減部３１に入力される多次元データと、次元復元部３３により復元された後の多次元データとの差分を計算して誤差を算出する。ステップ１３６０以降は、図１１に示すステップ１１５０以降の処理と同じであり、ここではその説明を省略する。
【０１１２】
凍結判定部３２がLOFを使用する場合、機械学習においてプロットしたポジティブデータを表すデータ集合と同じ多次元空間に、Δiをプロットする。そして、そのプロットした点の周りの密度に基づき、LOFk(p)として各LOF値を算出し、算出されたLOF値が閾値以上であるか否かを判定する。これにより、凍結の有無を判定することができる。
【０１１３】
凍結判定部３２が1 class SVMを使用する場合、機械学習においてプロットしたポジティブデータを表すデータ集合と同じ多次元空間に、Δiをプロットする。そして、Δiを入力とした評価関数の値が、機械学習において求めた所定の平面または曲面によって分けられた多次元空間のいずれに属するかにより、検出対象のデータが異常値データか否かを判定する。これにより、凍結の有無を判定することができる。
【０１１４】
ここで実際に、学習画像として、車両に本装置を搭載し、撮像した濡れ路面約２万枚を用い、テスト画像として、別途濡れ路面約２５００枚と凍結路面約２５００枚を用いた結果を、図１４に示す。なお、凍結路面と乾燥路面は簡単に識別することができるため、ここではその識別が難しい凍結路面と濡れ路面とを識別した結果を示している。
【０１１５】
図１４は、DET(Detection Error Tradeoff)のグラフである。図１４の横軸は、誤検出率を示し、縦軸は、未検出率を示している。１つが機械学習としてLOFを用いた結果を示し、もう１つが機械学習としてSAE+LOFを用いた結果を示す。DETのグラフは、グラフの右下に行くほど、誤検出率、未検出率が低くなり、性能が良好であることを示している。
【０１１６】
図１４に示す結果では、SAE+LOFを用いた結果の方が、誤検出率、未検出率ともに低く、性能が良いことが分かる。ちなみに、その精度は、濡れ路面を約７０枚に１枚の確率で凍結路面と誤検出する場合の凍結路面の検出率は９０％程度であった。このことから、約２万枚という少なく限られた数のサンプル画像で学習を行うだけで、しかも全く凍結路面を学習させなくても、高い精度で凍結路面を検出することができることを見出すことができた。なお、この方法では、凍結路面のデータを学習させずに凍結路面を検出することができているため、未知の様々な凍結路面の検出も可能である。
【０１１７】
図１５は、輝度情報と偏光情報の両方を用いた場合と、偏光情報は用いず、輝度情報のみを用いた場合を比較したDETのグラフである。このグラフも、横軸は、誤検出率を示し、縦軸は、未検出率を示している。輝度情報のみを用いた場合に比較して、偏光情報も用いた場合は、誤検出率、未検出率ともに低く、その検出精度が向上していることを見出すことができた。凍結路面と濡れ路面の反射光の偏光状態に差があり、この差が検出精度に影響しているものと考えられる。
【０１１８】
凍結路面の状態は多岐にわたり、機械学習を行い、十分な学習が可能な数の全ての凍結状態の画像を網羅するサンプルを準備するのは困難である。しかしながら、本発明によれば、乾燥路面や湿潤路面といった一定以上の外気温で凍結していないことが確実な状況で簡単に取得できる非凍結路面のみを取得して、機械学習のサンプルとすることで、サンプルが準備できていない様々な凍結状態にも対応することができる。
【０１１９】
また、すべての凍結状態のサンプルを取得できないにしても、若干得られた凍結状態のサンプルを、非凍結状態のサンプルに比べて少ない状態で追加し、基本的には非凍結状態のサンプルを用いた上で、若干得られた少ない凍結状態のサンプルも機械学習時に考慮することで、凍結か非凍結かを判定する精度を向上させることができる。
【０１２０】
なお、凍結しているか否かの判定においては、路面が存在する場所の温度を測定する温度測定装置としての温度センサを用いて取得した温度情報としての外気温のデータも加味することができる。この外気温のデータも加味して機械学習を行い、その機械学習により得られたアルゴリズムを使用することで、より高精度な凍結路面の検出を行うことができる。
【０１２１】
これまで本発明を、情報処理装置、情報処理システムおよびプログラムとして上述した実施の形態をもって説明してきた。しかしながら、本発明は上述した実施の形態に限定されるものではなく、他の実施の形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができるものである。また、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【０１２２】
したがって、情報処理装置が実行する方法、上記プログラムが記録された記録媒体、上記プログラムを提供する外部機器等も提供することができるものである。
【符号の説明】
【０１２３】
１０…光源、１１…撮像装置、１２…偏光フィルタ、１３…情報処理装置、１４…撮像素子、１５…光学フィルタ、１６…基板、１７…フィルタ基板、１８…充填材、２０…CPU、２１…ROM、２２…RAM、２３…HDD、２４…通信I/F、２５…入出力I/F、２６…表示装置、２７…入力装置、２８…バス、３０…入力部、３１…次元削減部、３２…凍結判定部、３３…次元復元部、３４…誤差算出部
【先行技術文献】
【特許文献】
【０１２４】
【特許文献１】特許第２７０７４２６号公報
【図１】
2017125809.tif 000022
【図２】
2017125809.tif 000023
【図３】
2017125809.tif 000024
【図４】
2017125809.tif 000025
【図５】
2017125809.tif 000026
【図６】
2017125809.tif 000027
【図７】
2017125809.tif 000028
【図８】
2017125809.tif 000029
【図９】
2017125809.tif 000030
【図１０】
2017125809.tif 000031
【図１１】
2017125809.tif 000032
【図１２】
2017125809.tif 000033
【図１３】
2017125809.tif 000034
【図１４】
2017125809.tif 000035
【図１５】
2017125809.tif 000036