以下、図面に基づいて実施の形態について説明する。
実施の形態1.
図1は、実施の形態1に係る眠気推定システム100の構成例を示すブロック図である。眠気推定システム100は、眠気推定装置10及び撮像装置20を備えており、眠気推定装置10及び撮像装置20は、車両に搭載される。また、眠気推定装置10は、眠気推定装置10が搭載された車両における、空調機器、音響機器、ナビゲーション装置、報知部等の車載機器、及びエンジン等を制御する車両側制御装置200と接続されている。
図2は、実施の形態1に係る撮像装置20の撮像範囲を示す説明図である。図2には、眠気推定装置10を搭載した車両の内部を上方から見た図を示している。撮像装置20は、例えば、広角カメラ、赤外線カメラ等で構成され、車両の内部を撮像する。また、撮像装置20は、撮像装置20と被写体との距離を反映した画像を撮像可能な、TOF(Time-of-flight)カメラであってもよい。撮像装置20は、例えば30~60fps(frames per second)の間隔で車両の内部を撮像し、撮像した画像(以下、撮像画像という)を眠気推定装置10が有する画像取得部1に出力する。図2の例において、撮像装置20の撮像範囲を領域Aで示している。撮像装置20は、少なくとも運転席501に存在する運転者503を撮像範囲に含むように、一台又は複数台、オーバーヘッドコンソール、インストメントパネル、ステアリングコラム、ルームミラー等に配置される。
また、図2に示すように、撮像装置20は、助手席502又は後席に存在する乗員、すなわち同乗者504を撮像範囲に含むように配置されていてもよい。つまり、撮像装置20の撮像範囲に、運転席501に加えて、例えば、助手席502、後席左側の座席、後席中央の座席、及び後席右側の座席の少なくともいずれかを含んでもよい。以下、運転者503、同乗者504をそれぞれ「乗員」と表現する場合がある。
図1に戻り、眠気推定装置10について説明する。眠気推定装置10は、撮像装置20から撮像画像を取得する画像取得部1と、撮像画像から乗員の顔要素を検出する顔検出部11と、撮像画像から検出された乗員の眠気を推定する眠気推定部12とを備える。
眠気推定装置10の画像取得部1は、撮像装置20と接続されており、撮像装置20から撮像画像を取得する。そして、画像取得部1は、取得した撮像画像を顔検出部11に出力する。また、図1に示すように、画像取得部1は、次に説明する車両情報取得部2と接続されている。画像取得部1は、車両情報取得部2から、例えば、車両のエンジンが始動した旨の信号を取得した場合、撮像画像の取得を開始する。一方、画像取得部1は、車両情報取得部2から、例えば、車両のエンジンが停止した旨の信号を取得した場合、撮像画像の取得を終了する。
眠気推定装置10は、車両側制御装置200と接続された車両情報取得部2を有する。車両情報取得部2は、車両側制御装置200から、車両の始動、停止等に関する信号を取得する。そして、車両側制御装置200から取得した信号を用いて、画像取得部1に撮像画像の取得を開始させる旨の信号、又は撮像画像の取得を終了させる旨の信号を出力する。
例えば、車両情報取得部2は、車両側制御装置200から、ドアの開錠、ドアのオープン、イグニッションのON、人感センサのON、シフトレバーがドライブの位置に移動、車両速度が0km/hを超えた、ナビゲーション装置が案内を開始した、及び車両が自宅を出発した等のいずれかの信号を取得した場合、画像取得部1に撮像画像の取得を開始させる旨の信号を出力する。一方、例えば、車両情報取得部2は、車両側制御装置200から、イグニッションのOFF、人感センサのOFF、シフトレバーがパーキングの位置に移動、ナビゲーション装置が案内を終了した、及び車両が自宅へ帰着した等のいずれかの信号を取得した場合、画像取得部1に撮像画像の取得を終了させる旨の信号を出力する。
次に、眠気推定装置10の顔検出部11について説明する。顔検出部11は、撮像画像内の乗員の顔要素の特徴点を検出する特徴点検出部3と、乗員の顔要素に関する特徴量を算出する特徴量算出部4と、乗員の複数の顔要素のうち、一部の顔要素が検出されなかったか否かを判定する顔要素判定部5とを有する。
まず、特徴点検出部3による特徴点検出処理について説明する。図3は、実施の形態1に係る眠気推定装置10の特徴点検出例を示す説明図である。図3には、運転者503が撮像された撮像画像61を示している。特徴点検出部3は、撮像画像の解析を行い、撮像画像において、乗員の顔が存在する領域である顔領域を検出する。まず、特徴点検出部3は、例えば、撮像画像内におけるコントラスト比から、乗員の顔が存在する領域を抽出する。
そして、特徴点検出部3は、例えば図3Bの例のように、乗員の顔が存在する領域を含むよう、矩形等の領域を設定し、顔領域71として検出する。さらに、特徴点検出部3は、顔領域の位置情報を取得し、眠気推定装置10の記憶部(図示せず)に出力する。ここで、顔領域の位置情報とは、例えば顔領域が矩形である場合、撮像画像における特定の点(例えば、図3Aに示す点O)に対する顔領域の各頂点の座標、顔領域の幅、高さ、及び大きさ等である。
次に、特徴点検出部3は、顔領域に含まれる乗員の顔の要素(以下、顔要素という)の特徴点を抽出する。ここで、乗員の顔要素とは、例えば、図3Bに示す、乗員の左眼81、右眼82、鼻83、及び口84等である。なお、乗員の顔要素は、乗員の顔のパーツのみでなく、乗員の頭部の形状、顔の輪郭等を含んでもよい。すなわち、乗員の顔要素は、乗員の身体を構成する要素であればよい。また、特徴点検出部3による特徴点の検出処理は、公知の種々のアルゴリズムを用いることができるものであり、これらのアルゴリズムの詳細な説明は省略する。例えば、特徴点検出部3は、乗員の顔要素の特徴点を検出する場合、顔要素(例えば、左眼、右眼、鼻、口等)の各々が有する、一つ又は複数の特徴点を検出する処理を実行する。
特徴点検出部3は、例えば、左眼及び右眼に関して、瞳孔、目尻、目頭、上瞼、及び下瞼等、顔要素が有する特徴的な部位、すなわち特徴点の、撮像画像内における位置情報を取得する。以下、説明のため、左眼及び右眼をまとめて、眼と記載する場合がある。
また、特徴点検出部3は、例えば、鼻に関して、鼻根、鼻尖、鼻背、及び鼻翼等の、顔要素が有する特徴点の撮像画像内における位置情報を取得する。さらに、特徴点検出部3は、例えば、口に関して、上唇、下唇、及び口角等の、顔要素が有する特徴点の撮像画像内における位置情報を取得する。そして、特徴点検出部3が取得した各顔要素に関する位置情報、すなわち特徴点の位置情報は、特徴量算出部4及び顔要素判定部5に出力される。
なお、特徴点検出部3が取得する、各顔要素が有する特徴点の位置情報は、例えば図3Aに示す撮像画像内の特定の位置Oを始点とした座標、又は撮像画像における中心等の特定の位置を始点とした座標等を示す情報である。
そして、顔検出部11の特徴量算出部4は、検出された特徴点から、乗員の顔要素に関する特徴量を算出する。ここで、特徴量とは、例えば、開眼度、開口度等、乗員の状態を示す、後述の眠気推定処理に用いられる情報である。さらに、特徴量は、例えば、瞬目の頻度、瞬目の時間、欠伸の有無、頷きの速度等、複数の撮像画像にわたって得られる情報であってもよい。なお、特徴量算出部4による特徴量の算出処理についても、公知の種々のアルゴリズムを用いることができる。また、特徴量算出部4が算出した特徴量についても、眠気推定装置10の記憶部に記録されてもよい。以下、顔検出処理によって検出された乗員の眠気推定処理に関する情報、すなわち、顔要素が有する特徴点の位置情報と、顔要素を用いて算出された特徴量とをまとめて、顔情報という。
ところで、撮像画像を用いて乗員の顔要素を検出する場合、様々な要因により顔要素を検出することが困難となる場合がある。例えば、乗員がサングラスを着用した場合、乗員の顔要素である眼はサングラスに隠れ、顔検出部11により検出することが困難となる。また、乗員がマスクを着用した場合、乗員の顔要素である鼻及び口はマスクに隠れ、顔検出部11により検出することが困難となる。さらに、例えば、乗員が手で顔の一部を覆う等すれば、乗員の手で隠れた顔要素は検出できなくなる。また、逆光等により、取得した撮像画像が暗くなる、又は明るくなる等すれば、顔要素と、顔要素の背景との間のコントラスト比が小さくなり、顔検出部11による顔要素の検出が困難となる場合がある。
上述のように、顔検出処理により、複数の顔要素のうち、一部の顔要素が検出されなかった場合においては、検出された顔要素のみを用いて乗員の眠気を推定すると、眠気推定処理に用いられる顔情報が不足し、乗員の眠気の状態が不定になる等、眠気推定結果の信頼性を担保できない可能性が生じ、また、眠気推定処理を実行できなくなる可能性も生じる。そこで、本開示に係る眠気推定部12は、顔検出処理により、複数の顔要素のうち、一部の顔要素が検出されなかった場合は、過去に検出された顔情報も用いて乗員の眠気を推定する。
以下、顔要素判定部5による、顔検出処理で複数の顔要素のうち、一部の顔要素が検出されたか否かを判定する処理について説明した後、眠気推定部12について説明する。まず、顔要素判定部5は、顔検出部11の特徴点検出部3から顔要素が有する特徴点の位置情報を取得し、撮像画像から検出された顔要素を特定する。
例えば、顔要素判定部5は、特徴点検出部3から取得した特徴点の位置情報から、撮像画像に乗員の左眼が存在することが示されれば、撮像画像から乗員の左眼が検出されたと特定する。一方、顔要素判定部5は、特徴点検出部3から取得した特徴点の位置情報から、撮像画像に乗員の左眼が存在しないことが示されれば、顔検出部11により左眼が検出されなかったと特定する。
ここで、顔要素判定部5は、例えば、顔要素が有する特徴点が顔領域におけるいずれの位置に存在するかによって、乗員の顔要素が検出されたか否かを特定すればよい。この場合、例えば眼に関して、眼が有する特徴点、すなわち瞳孔、目尻、目頭、上瞼、及び下瞼等が、顔領域において存在し得る位置で検出されれば、眼が検出されたと特定するようにすればよい。なお、乗員の鼻、口、及び輪郭等、他の顔要素についても同様に、顔要素が有する特徴点が、顔領域における顔要素が存在し得る位置で検出されれば、顔検出部11により顔要素が検出されたと特定すればよい。
さらに、顔要素判定部5は、顔検出部11の特徴量算出部4から、特徴量の算出結果を取得し、撮像画像から検出された顔要素を特定するようにしてもよい。この場合、顔要素判定部5は、例えば、特徴量算出部4から開口度を取得した場合、口が検出されたと特定し、開口度を取得できなかった場合、口が検出されなかったと特定してもよい。このように、顔要素判定部5は、顔要素に対応した特徴量を取得すれば、撮像画像から顔要素が検出されたと特定し、顔要素に対応した特徴量を取得できなかった場合、撮像画像から顔要素が検出されなかったと判定するようにしてもよい。なお、顔要素に対応した特徴量とは、例えば、眼に関しては開眼度であり、口に関しては開口度であり、また、輪郭に関しては顔向き等である。
また、顔要素判定部5による顔要素の特定処理は上述の例に限らない。例えば、顔要素判定部5は、テンプレートマッチング等の画像処理手法を用いて、撮像画像から検出された顔要素を特定してもよい。テンプレートマッチングを用いて撮像画像から検出された顔要素を特定する場合は、例えば、撮像画像と、顔要素を撮像した画像等の、記憶部等に予め蓄積された類似度判定用の画像とを、顔要素判定部5により比較して、撮像画像から検出された顔要素を特定すればよい。なお、顔要素判定部5による特定処理については、インスタンスセグメンテーション等、公知の画像処理手法を用いることも可能である。
さらに、顔要素判定部5は、乗員がマスク、サングラス等の着類を着用していることが検出された場合に、着類に隠れる可能性がある顔要素が検出されなかったと特定するようにしてもよい。例えば、乗員がマスクを着用していることが検出された場合には、顔要素のうち、鼻及び口が検出されなかったと特定するようにしてもよい。また、例えば、乗員がサングラスを着用していることが検出された場合には、顔要素のうち、眼が検出されなかったと特定するようにしてもよい。
そして、顔要素判定部5は、上述の特定処理を行った撮像画像における、顔要素の特定結果を眠気推定装置10の記憶部に記録する。図4は、実施の形態1に係る眠気推定装置10の顔要素の特定結果例を示す説明図である。図4には、撮像画像を取得したフレーム(フレームN1~N5)について、顔検出処理によって乗員の左眼、右眼、鼻、口、及び輪郭が検出されたか否かを特定した結果の記録例を示している。図4では、特定のフレームにおいて、顔要素判定部5が、顔検出処理によって検出されたと特定した顔要素についてはOKと示し、顔検出処理によって検出されなかったと特定した顔要素についてはNGと示している。なお、フレームN1からフレームN5において、N1、N2、N3、N4、N5の順に時間が進んでおり、それぞれのフレーム間の間隔は任意である。
図4には、フレームN1からN5において、顔検出部11の顔検出処理により乗員の左眼、右眼、鼻、口、及び輪郭が検出され、フレームN3からN5において、顔検出部11の顔検出処理により乗員の左眼及び右眼が検出されなかった例を示している。このような場合、フレームN3からN5において、乗員の眠気推定処理に、左眼及び右眼を用いることができない。すなわち、一部の顔要素が検出されなかった撮像画像については、検出されなかった顔要素を眠気推定処理に用いることができない。
そのため、顔要素判定部5は、顔要素特定処理の結果を用いて、特定のフレームにおいて、乗員の複数の顔要素のうち、一部の顔要素が検出されなかったか否かを判定する。顔要素判定部5は、例えば、顔検出処理において、複数の顔要素のうち、予め設定された顔要素が検出されなかった場合、複数の顔要素のうち、一部の顔要素が検出されなかったと判定する。一方、顔要素判定部5は、顔検出処理において、複数の顔要素のうち、予め設定された顔要素が全て検出された場合、複数の顔要素のうち、全ての顔要素が検出されたと判定する。
また、顔要素判定部5は、例えば、顔検出処理において、予め設定された複数の顔要素うち、全ての顔要素が検出されなかった場合、複数の顔要素のうち、一部の顔要素が検出されなかったと判定してもよい。この場合、顔要素判定部5は、顔検出処理において、予め設定された複数の顔要素の全てが検出された場合、複数の顔要素のうち、全ての顔要素が検出されたと判定する。
なお、予め設定された顔要素とは、例えば、左眼、右眼、又は口等、眠気推定処理に用いられる一つ又は複数の顔要素である。また、上述したように、全ての顔要素とは、乗員が有する全ての顔要素に限らず、乗員が有する全ての顔要素から選択された複数の顔要素も含む。そして、顔要素判定部5は、特定のフレームにおいて、複数の顔要素のうち、一部の顔要素が検出されなかったか否かを示す判定結果を、眠気推定部12に出力する。
次に、眠気推定部12について、撮像画像から検出された乗員の眠気推定処理の一例として、眠気レベルを算出して乗員の眠気を推定する例を挙げて説明する。ここで、眠気レベルとは、覚醒状態から強い眠気を感じている状態まで段階的に分けられた、乗員の眠気の指標を示す指標値である。例えば、乗員が覚醒状態にある場合、眠気レベルは1となり、乗員が強い眠気を感じている状態にある場合、眠気レベルは9となる。なお、乗員が眠気を感じていくにつれ、眠気レベル1から眠気レベル9に推移していくものとする。
眠気推定部12は、顔検出部11から取得した顔情報を用いて、乗員の眠気レベルを算出する。例えば、眠気推定部12は、特徴量である開眼度を顔情報として取得した場合、開眼度が小さくなるにつれて乗員の眠気レベルを高く算出する。眠気が強くなれば、乗員の開眼度が小さくなる傾向にあるためである。この場合、例えば、眠気推定部12により開眼度に対して複数の閾値を設定し、開眼度がそれぞれの閾値未満であるか否かを判定して眠気レベルを算出すればよい。
また、例えば、眠気推定部12は、特徴量である開口度を顔情報として取得した場合、開口度が大きくなるにつれて眠気レベルを高く算出する。開口度が大きい場合は、乗員が眠気を感じ、欠伸をした可能性があるためである。この場合、例えば、開口度に対して複数の閾値を設け、眠気推定部12により開口度がそれぞれの閾値未満であるか否かを判定して眠気レベルを算出すればよい。
さらに、例えば、眠気推定部12は、特徴量である瞬きの頻度を顔情報として取得した場合、瞬きの頻度が低くなるにつれて乗員の眠気レベルを高く算出する。眠気が強くなれば、乗員の瞬きの頻度は低くなる傾向にあるためである。この場合、例えば、瞬きの頻度に対して複数の閾値を設け、眠気推定部12により瞬きの頻度がそれぞれの閾値未満であるか否かを判定して眠気レベルを算出すればよい。
そして、眠気推定部12は、顔検出部11から複数の顔情報を取得した場合、複数の顔情報を用いて総合的に眠気レベルを算出する。例えば、眠気推定部12は、顔検出部11から顔情報として、特徴量である開眼度及び開口度を取得した場合、開眼度及び開口度を用いて眠気レベルを算出する。この場合、眠気推定部12は、開眼度から算出した眠気レベルと、開口度から算出した眠気レベルとをそれぞれ算出し、各眠気レベルの平均を総合的な眠気レベルとしてもよい。
また、眠気推定部12は、例えば、開眼度から算出した眠気レベルと、開口度から算出した眠気レベルとを比較し、各眠気レベルのうち、眠気レベルが高い方を総合的な眠気レベルとしてもよい。一方、眠気推定部12は、例えば、開眼度から算出した眠気レベルと、開口度から算出した眠気レベルとを比較し、各眠気レベルのうち、眠気レベルが低い方を総合的な眠気レベルとしてもよい。
このように、眠気推定部12は、顔検出部11から複数の顔情報を取得した場合、算出した総合的な眠気レベルを眠気推定結果として、車両側制御装置200等に出力する。なお、眠気推定部12による眠気推定処理は、上述の例に限らず、公知の種々のアルゴリズムを用いることができる。例えば、眠気推定部12は、眠気レベルを算出せずに、顔検出部11から取得した顔情報を用いて、段階的に分けられた眠気状態のうち、乗員がどの眠気状態にあるかを推定してもよい。また、眠気推定部12は、顔検出部11から特徴点の位置情報を顔情報として取得した場合、特徴量算出部4と同様に特徴点の位置情報から特徴量の算出処理を行った後、特徴量を用いて上述の眠気推定処理を行ってもよい。
さらに、眠気推定部12は、顔要素判定部5による、顔検出処理で複数の顔要素のうち、一部の顔要素が検出されたか否かの判定結果で、眠気推定処理が異なる。本実施の形態における眠気推定部12は、特定のフレームにおける顔検出処理において、複数の顔要素のうち、一部の顔要素が検出されなかった場合、特定のフレームの以前に行われた顔検出処理により得られた顔情報を用いて、乗員の眠気推定処理を行う。以下、説明のため、特定のフレームの以前に行われた顔検出処理を、第1顔検出処理といい、特定のフレームにおける顔検出処理を、第2顔検出処理という。すなわち、第2顔検出処理は、第1顔検出処理の後に行われる処理である。
また、第1顔検出処理によって得られた一つ又は複数の顔情報を第1顔情報といい、第2顔検出処理によって得られた一つ又は複数の顔情報を第2顔情報という。なお、第2顔検出処理が、第1顔検出処理の後に行われる処理であれば、第1顔検出処理と第2顔検出処理との間隔は任意である。また、第1顔情報、第2顔情報をそれぞれ「顔情報」と表現する場合がある。
第2顔検出処理により、複数の顔要素のうち、一部の顔要素が検出されなかった場合の眠気推定処理について説明する。眠気推定部12は、第2顔検出処理によって、複数の顔要素のうち、一部の顔要素が検出されなかった場合、第1顔検出処理によって得られた一部の顔要素に関する第1顔情報と、第2顔検出処理によって得られた他の顔要素に関する第2顔情報とから、乗員の眠気レベルを算出する。なお、他の顔要素とは、複数の顔要素のうち、一部の顔要素と異なる一つ又は複数の顔要素である。
例えば、乗員がサングラスを着用し、第2顔検出処理で、乗員の眼が検出されず、乗員の口が検出された例を挙げて、眠気推定部12による眠気推定処理について説明する。
第2顔検出処理で乗員の左眼及び右眼が検出されなかった場合、顔要素判定部5は、第2顔検出処理により、複数の顔要素のうち、一部の顔要素が検出されなかったことを示す判定結果を眠気推定部12に出力する。そして、判定結果を取得した眠気推定部12は、第1顔検出処理によって得られた、一部の顔要素(眼)に関する第1顔情報の開眼度と、第2顔検出処理によって得られた、他の顔要素(口)に関する第2顔情報の開口度とを用いて、乗員の眠気を推定する。
また、例えば、乗員がマスクを着用し、第2顔検出処理で乗員の口が検出されず、乗員の眼が検出された例を挙げて、複数の顔要素のうち、一部の顔要素が検出されなかった場合の、眠気推定部12による眠気推定処理について説明する。
第2顔検出処理で乗員の口が検出されなかった場合、顔要素判定部5は、第2顔検出処理により、複数の顔要素のうち、一部の顔要素が検出されなかったことを示す判定結果を眠気推定部12に出力する。そして、判定結果を取得した眠気推定部12は、第1顔検出処理によって得られた、一部の顔要素(口)に関する第1顔情報の開口度と、第2顔検出処理によって得られた、他の顔要素(眼)に関する第2顔情報の開眼度とを用いて、乗員の眠気を推定する。なお、眠気推定処理については、上述した処理と同様であるため、詳細な説明を省略する。
また、眠気推定部12による眠気推定結果は、車両側制御装置200に出力されてもよい。例えば、車両側制御装置200は、眠気推定部12による乗員の眠気推定結果から、乗員が眠気を感じていることが示された場合に、眠気を解消するように空調機器を制御する、又は乗員に警告を発するよう報知部を制御する等してもよい。
以下、眠気推定装置10の動作について説明する。図5は、実施の形態1に係る眠気推定装置10の動作例を示すフローチャートである。眠気推定装置10は、例えば、車両情報取得部2が、車両側制御装置200から車両のエンジンが始動した旨を示す信号を取得した場合、動作を開始する。また、図5のフローチャートには、眠気推定装置10の動作を終了する処理が示されていないが、眠気推定装置10は、例えば、車両情報取得部2が、車両側制御装置200から車両のエンジンが停止した旨を示す信号を取得した場合、動作を終了する。
まず、眠気推定装置10の動作が開始した後、眠気推定装置10の画像取得部1は、撮像装置20から撮像画像を取得する(ST101)。そして、眠気推定装置10の顔検出部11は、撮像画像を用いて、第1顔検出処理を行う(ST102)。ここで、第1顔検出処理とは、顔検出部11の特徴点検出部3と特徴量算出部4とにより、撮像画像内の乗員の顔要素の特徴点を検出し、特徴量を算出する処理である。そして、顔要素判定部5は、次に説明する、ST103、ST105の処理で、第1顔検出処理によって乗員の顔要素が検出されたか否かを特定する。
顔要素判定部5は、第1顔検出処理によって、乗員の複数の顔要素のうち、一部の顔要素が検出されたか否かを特定する(ST103)。例えば、顔要素判定部5は、特徴点検出部3から特徴点の位置情報を取得し、顔要素が存在し得る位置で特徴点が検出されたか否かにより、顔要素が検出されたか否かを特定する。なお、図5の例において、第1顔検出処理によって検出される、一部の顔要素を顔要素A1として示している。ここで、顔要素A1は、乗員の複数の顔要素のうち、設定された一つ又は複数の顔要素である。
そして、顔要素判定部5は、第1顔検出処理によって、顔要素A1が検出されたと特定した場合(ST103;YES)、第1顔検出処理によって顔要素A1が検出されたことを示す特定結果とともに、顔検出部11から取得した顔要素A1に関連する第1顔情報を記憶部に記録する(ST104)。ここで、記憶部に記録される顔要素A1の第1顔情報とは、例えば、顔要素A1が有する特徴点の位置情報、顔要素A1に関する特徴量等である。一方、顔要素判定部5により、第1顔検出処理によって、顔要素A1が検出されなかったと特定された場合(ST103;NO)、眠気推定装置10の動作は、ST105の処理に進む。
次に、顔要素判定部5は、第1顔検出処理で、乗員の複数の顔要素のうち、他の顔要素が検出されたか否かを特定する(ST105)。他の顔要素とは、一部の顔要素、すなわち顔要素A1と異なる、設定された一つ又は複数の顔要素である。なお、図5の例において、第1顔検出処理によって検出される他の顔要素を、顔要素B1として示している。また、説明のため、一部の顔要素を顔要素A1とし、顔要素A1と異なる他の顔要素を顔要素B1としているが、顔要素A1及び顔要素B1はいずれも、乗員の顔要素のうち、一部の顔要素である。さらに、顔要素A1及び顔要素B1の関係は、一方が一部の顔要素となり、他方が他の顔要素となる。
そして、顔要素判定部5は、第1顔検出処理で、顔要素B1が検出されたと特定した場合(ST105;YES)、第1顔検出処理によって顔要素B1が検出されたことを示す特定結果とともに、顔検出部11から取得した顔要素B1に関連する第1顔情報を記憶部に記録する(ST106)。記憶部に記録される顔要素B1の第1顔情報とは、例えば、顔要素B1が有する特徴点の位置情報、顔要素B1に関する特徴量等である。なお、顔要素A1、B1の顔情報は、第1顔検出処理が行われた時間を示す情報である時系列データ等とともに、記憶部に記録されてもよい。さらに、図示は省略するが、眠気推定装置10の眠気推定部12は、顔要素A1、B1から得られた第1顔情報を用いて眠気レベルの算出処理を行ってもよい。
一方、顔要素判定部5により、第1顔検出処理で、顔要素B1が検出されなかったと特定された場合(ST105;NO)、眠気推定装置10の動作は、ST107の処理に進む。
まず、画像取得部1は、撮像装置20から撮像画像を取得する(ST107)。そして、眠気推定装置10の顔検出部11は、撮像画像を用いて、第2顔検出処理を行う(ST108)。ここで、第2顔検出処理とは、第1顔検出処理の後に行われる処理であり、顔検出部11の特徴点検出部3と特徴量算出部4とにより、撮像画像内の乗員の顔要素の特徴点を検出し、特徴量を算出する処理である。
さらに、顔要素判定部5は、次に説明する、ST109、ST110、ST114の処理で、第2顔検出処理によって検出された乗員の顔要素がいずれの顔要素であるかを特定する。なお、前述したST101~ST106の処理と同様の処理については、詳細な説明を省略する。
まず、顔要素判定部5は、第2顔検出処理で、乗員の複数の顔要素のうち、一部の顔要素が検出されたか否かを特定する(ST109)。なお、図5の例において、第2顔検出処理によって検出される一部の顔要素を、顔要素A2として示している。ここで、顔要素A2は、顔要素A1と同一の顔要素である。
そして、顔要素判定部5により、第2顔検出処理で、顔要素A2が検出されたと特定された場合(ST109;YES)、眠気推定装置10の動作は、ST110の処理に進む。なお、顔要素判定部5は、第2顔検出処理で顔要素A2が検出されたと特定した場合、ST104の処理と同様に、第2顔検出処理で顔要素A2が検出されたことを示す特定結果とともに、顔要素A2に関連する第2顔情報を記憶部に記録してもよい。
次に、顔要素判定部5は、第2顔検出処理で、乗員の複数の顔要素のうち、設定された他の顔要素が検出されたか否かを特定する(ST110)。なお、図5の例において、第2顔検出処理によって検出される他の顔要素を、顔要素B2として示している。ここで、顔要素B2は、顔要素B1と同一の顔要素である。また、顔要素A1及び顔要素B1と同様に、顔要素A2及び顔要素B2の関係は、一方が一部の顔要素となり、他方が他の顔要素となる。
顔要素判定部5は、第2顔検出処理で、顔要素B2が検出されたと特定した場合(ST110;YES)、第2顔検出処理で、顔要素A2及び顔要素B2が検出された、すなわち複数の顔要素のうち、全ての顔要素が検出されたと判定する。そして、顔要素判定部5は、判定結果を眠気推定部12に出力する。
眠気推定部12は、第2顔検出処理で、複数の顔要素のうち、全ての顔要素が検出されたことを示す判定結果を取得した場合、第2顔検出処理によって得られた第2顔情報を用いて、乗員の眠気推定処理を行う(ST111)。すなわち、眠気推定部12は、顔要素A2及び顔要素B2から得られた第2顔情報を用いて、乗員の眠気レベルを算出する。なお、眠気推定部12によって算出された乗員の眠気レベルは、車両側制御装置200に出力されてもよい。そして、眠気推定装置10の動作は、ST101の処理に進む。
一方、顔要素判定部5は、第2顔検出処理で、顔要素B2が検出されなかったと特定した場合(ST110;NO)、第2顔検出処理で、顔要素A2が検出され、顔要素B2が検出されなかった、すなわち、複数の顔要素のうち、一部の顔要素が検出されなかったと判定する。そして、顔要素判定部5は、判定結果を眠気推定部12に出力する。
眠気推定部12は、第2顔検出処理で、複数の顔要素のうち、一部の顔要素が検出されなかったことを示す判定結果を取得した場合、第2顔検出処理で検出されなかった顔要素の第1顔情報が、第1顔検出処理で得られたか否かを確認する。ST112の処理の場合は、第2顔検出処理で検出されなかった顔要素は顔要素B2である。つまり、眠気推定部12は、第1顔検出処理で顔要素B1の第1顔情報が得られたか否か、すなわち記憶部に顔要素B1の第1顔情報が記録されているか否かを確認する(ST112)。
眠気推定部12は、顔要素B1の第1顔情報が記憶部に記録されていることを確認した場合(ST112;YES)、第1顔検出処理によって得られた第1顔情報と、第2顔検出処理によって得られた第2顔情報とを用いて、乗員の眠気推定処理を行う。すなわち、眠気推定部12は、第1顔検出処理によって得られた顔要素B1の第1顔情報と、第2顔検出処理によって得られた顔要素A2の第2顔情報とを用いて、乗員の眠気推定処理を行う(ST113)。
このように、眠気推定部12は、第2顔検出処理によって一部の顔要素が検出されなかった場合、第1顔検出処理によって得られた一部の顔要素に関する顔情報と、第2顔検出処理によって得られた他の顔要素に関する顔情報とを用いて乗員の眠気を推定する。なお、ST113の処理で、眠気推定部12によって算出された乗員の眠気レベルは、車両側制御装置200に出力されてもよい。そして、眠気推定装置10の動作は、ST101の処理に進む。
一方、眠気推定部12により、顔要素B1の第1顔情報が記憶部に記録されていることが確認されなかった場合(ST112;NO)、眠気推定装置10の動作は、ST101の処理に進む。ここで、第2顔検出処理が第1顔検出処理の後に行われる処理であれば、第1顔検出処理と第2顔検出処理との間隔は任意である。つまり、顔要素B1の第1顔情報が記憶部に記録されていない場合とは、第2顔検出処理以前の顔検出処理で、一度も顔要素B1が検出されていない場合と、設定された期間の間で顔要素B1が検出されていない場合とを含むものである。
顔要素判定部5により、第2顔検出処理で、顔要素A2が検出されなかったと特定された場合(ST109;NO)について説明する。顔要素判定部5により、第2顔検出処理で顔要素A2が検出されなかったと特定された場合、眠気推定装置10の動作は、ST114の処理に進む。なお、図5において、ST110の処理とST114の処理とで、同様の処理を行う例を示しているが、ST110の処理とST114の処理とは、以降の眠気推定装置10の動作が異なる。
次に、顔要素判定部5は、第2顔検出処理で、乗員の複数の顔要素のうち、他の顔要素、すなわち顔要素B2が検出されたか否かを特定する(ST114)。顔要素判定部5は、第2顔検出処理で、顔要素B2が検出されなかったと特定した場合(ST114;NO)、特定結果を眠気推定部12に出力する。そして、眠気推定装置10の動作はST101の処理に進む。なお、眠気推定部12は、第2顔検出処理で顔要素A2及び顔要素B2のいずれも検出されなかったことを示す特定結果を取得した場合、顔要素A1の第1顔情報及び顔要素B1の第1顔情報の少なくともいずれかを用いて乗員の眠気推定処理を行ってもよい。
一方、顔要素判定部5は、第2顔検出処理で、顔要素B2が検出されたと特定した場合(ST114;YES)、第2顔検出処理で、顔要素B2が検出され、顔要素A2が検出されなかった、すなわち、複数の顔要素のうち、一部の顔要素が検出されなかったと判定する。そして、顔要素判定部5は、判定結果を眠気推定部12に出力する。
眠気推定部12は、第2顔検出処理で、複数の顔要素のうち、一部の顔要素が検出されなかったことを示す判定結果を取得した場合、第2顔検出処理で検出されなかった顔要素の第1顔情報が、第1顔検出処理で得られたか否かを確認する。ST115の処理の場合は、第2顔検出処理で検出されなかった顔要素は顔要素A2である。つまり、眠気推定部12は、第1顔検出処理で顔要素A1の第1顔情報が得られたか否か、すなわち記憶部に顔要素A1の第1顔情報が記録されているか否かを確認する(ST115)。
眠気推定部12は、顔要素A1の第1顔情報が記憶部に記録されていることを確認した場合(ST115;YES)、第1顔検出処理によって得られた第1顔情報と、第2顔検出処理によって得られた第2顔情報とを用いて、乗員の眠気推定処理を行う。すなわち、眠気推定部12は、第1顔検出処理によって得られた顔要素A1の第1顔情報と、第2顔検出処理によって得られた顔要素B2の第2顔情報とを用いて、乗員の眠気推定処理を行う(ST116)。
このように、眠気推定部12は、第2顔検出処理によって一部の顔要素と異なる他の顔要素が検出されなかった場合においても、第1顔検出処理によって得られた他の顔要素に関する顔情報と、第2顔検出処理によって得られた一部の顔要素に関する顔情報とを用いて乗員の眠気を推定する。なお、ST116の処理で、眠気推定部12によって算出された乗員の眠気レベルは、車両側制御装置200に出力されてもよい。そして、眠気推定装置10の動作は、ST101の処理に進む。
一方、眠気推定部12により、顔要素A1の第1顔情報が記憶部に記録されていることが確認されなかった場合(ST115;NO)、眠気推定装置10の動作は、ST101の処理に進む。ここで、第2顔検出処理が第1顔検出処理の後に行われる処理であれば、第1顔検出処理と第2顔検出処理との間隔は任意である。つまり、顔要素A1の検出結果が記憶部に記録されていない場合とは、第2顔検出処理以前の顔検出処理で、一度も顔要素A1が検出されていない場合と、設定された期間の間で顔要素A1が検出されていない場合とを含むものである。
また、上述の眠気推定装置10の動作において、第2顔検出処理の後に第3顔検出処理を行い、第2顔検出処理によって検出された顔要素と第3顔検出処理によって検出された顔要素とが同一である場合、第3顔検出処理以降の眠気推定処理を、他の顔要素を用いて眠気を推定するようにしてもよい。つまり、眠気推定部12は、第2顔検出処理及び第3顔検出処理により、乗員の複数の顔要素のうち、一部の顔要素が検出されなかった場合、第3顔検出処理によって検出された他の顔要素から得た第3顔情報を用いて、眠気を推定してもよい。
例えば、乗員が着類を着用せず、顔検出部11による第1顔検出処理で眼、鼻、及び口が検出され、乗員がサングラスを着用して顔検出部11による第2顔検出処理で眼が検出されず、鼻及び口が検出されたとする。この場合、眠気推定部12は、眼、鼻、及び口から得た第1顔情報を用いて眠気を推定し、その後、第2顔検出処理で得た第2顔情報と第1顔検出処理で得た第1顔情報とを用いて眠気を推定する。そして、眠気推定部12は、乗員がサングラスを着用したままであれば、第3顔検出処理で鼻及び口から得た第3顔情報を用いて眠気を推定する。このようにすると、一部の顔要素が検出できなくなった以降の眠気推定処理では、顔検出処理によって検出可能な顔要素を用いて眠気推定を行うため、眠気推定装置10の処理負荷を軽減できる。なお、第2顔検出処理と第3顔検出処理との間隔は任意である。
すなわち、眠気推定部12は、第1顔検出処理又は第2顔検出処理で、乗員の顔要素が検出されれば、検出された顔要素の顔情報を用いて乗員の眠気を推定する。さらに、眠気推定部12は、第2顔検出処理で、乗員の複数の顔要素のうち、一部の顔要素が検出されなければ、第2顔検出処理の以前に行われた、第1顔検出処理で得られた一部の顔要素の顔情報と、第2顔検出処理で得られた他の顔要素の顔情報とを用いて乗員の眠気を推定する。このようにすると、乗員の顔の要素の一部が検出されなかった場合においても、乗員の眠気の推定結果が不定となることがなく、乗員の眠気の推定結果の信頼性を担保することができる。
次に、眠気推定装置10の機能を実現するハードウェア構成について説明する。図6は、実施の形態1に係る眠気推定装置10のハードウェア構成例を示す図である。眠気推定装置10における画像取得部1、車両情報取得部2、特徴点検出部3、特徴量算出部4、顔要素判定部5、顔検出部11、眠気推定部12、及び記憶部の機能は、処理回路によって実現される。すなわち、眠気推定装置10の、画像取得部1、車両情報取得部2、特徴点検出部3、特徴量算出部4、顔要素判定部5、顔検出部11、眠気推定部12、及び記憶部は、図6Aに示すように専用のハードウェアである処理回路10aであってもよいし、図6Bに示すようにメモリ10cに格納されているプログラムを実行するプロセッサ10bであってもよい。
図6Aに示すように、画像取得部1、車両情報取得部2、特徴点検出部3、特徴量算出部4、顔要素判定部5、顔検出部11、眠気推定部12、及び記憶部が専用のハードウェアである場合、処理回路10aは、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field-programmable Gate Array)、又はこれらを組み合わせたものが該当する。画像取得部1、車両情報取得部2、特徴点検出部3、特徴量算出部4、顔要素判定部5、顔検出部11、眠気推定部12、及び記憶部の各部の機能それぞれを処理回路で実現してもよいし、各部の機能をまとめて1つの処理回路で実現してもよい。
図6Bに示すように、画像取得部1、車両情報取得部2、特徴点検出部3、特徴量算出部4、顔要素判定部5、顔検出部11、眠気推定部12、及び記憶部がプロセッサ10bである場合、各部の機能は、ソフトウェア、ファームウェア、又はソフトウェアとファームウェアとの組み合わせにより実現される。ソフトウェア又はファームウェアはプログラムとして記述され、メモリ10cに格納される。プロセッサ10bは、メモリ10cに記憶されたプログラムを読み出して実行することにより、画像取得部1、車両情報取得部2、特徴点検出部3、特徴量算出部4、顔要素判定部5、顔検出部11、眠気推定部12、及び記憶部の各機能を実現する。すなわち、画像取得部1、車両情報取得部2、特徴点検出部3、特徴量算出部4、顔要素判定部5、顔検出部11、眠気推定部12、及び記憶部は、プロセッサ10bにより実行されるときに、図5に示す各ステップが結果的に実行されることになるプログラムを格納するためのメモリ10cを備える。また、これらのプログラムは、画像取得部1、車両情報取得部2、特徴点検出部3、特徴量算出部4、顔要素判定部5、顔検出部11、眠気推定部12、及び記憶部の手順又は方法をコンピュータに実行させるものであるともいえる。
ここで、プロセッサ10bとは、例えば、CPU(Central Processing Unit)、処理装置、演算装置、プロセッサ、マイクロプロセッサ、マイクロコンピュータ、又はDSP(Digital Signal Processor)等のことである。メモリ10cは、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable ROM)、EEPROM(Electrically EPROM)等の不揮発性又は揮発性の半導体メモリであってもよいし、ハードディスク、フレキシブルディスク等の磁気ディスクであってもよいし、ミニディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)等の光ディスクであってもよい。
なお、画像取得部1、車両情報取得部2、特徴点検出部3、特徴量算出部4、顔要素判定部5、顔検出部11、眠気推定部12、及び記憶部の各機能について、一部を専用のハードウェアで実現し、一部をソフトウェア又はファームウェアで実現するようにしてもよい。このように、眠気推定装置10における処理回路10aは、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせによって、上述の各機能を実現することができる。また、画像取得部1、車両情報取得部2、特徴点検出部3、特徴量算出部4、顔要素判定部5、顔検出部11、眠気推定部12、及び記憶部の少なくとも一部の機能を、外部サーバに実行させてもよい。
このように、眠気推定装置10に、車内の乗員を撮像する撮像装置20から、撮像画像を取得する画像取得部1と、撮像画像から、乗員の複数の顔要素を検出する顔検出処理を行う顔検出部11と、撮像画像から検出された乗員の眠気を推定する眠気推定部12と、を備え、顔検出部11は、顔検出処理として、第1顔検出処理と、第1顔検出処理の後に第2顔検出処理とを行い、眠気推定部12は、第2顔検出処理により、乗員の複数の顔要素のうち、一部の顔要素が検出されなかった場合、第1顔検出処理よって検出された、一部の顔要素から得た第1顔情報と、第2顔検出処理によって検出された、一部の顔要素と異なる他の顔要素から得た第2顔情報とを用いて、乗員の眠気を推定するものであると、乗員の顔の要素の一部が検出されなかった場合においても、乗員の眠気の推定結果の信頼性を担保することができる。
なお、本実施の形態で、眠気推定部12が、第2顔検出処理で複数の顔要素のうち、一部の顔要素が検出されなかった場合、第1顔検出処理で検出された一部の顔要素の第1顔情報と、第2顔検出処理で検出された他の顔要素の第2顔情報とを用いて乗員の眠気を推定する例を挙げて説明した。しかしながら、眠気推定部12は、第2顔検出処理で複数の顔要素のうち、一部の顔要素が検出されなかった場合、第1顔検出処理で検出された一部の顔要素の第1顔情報と、第2顔検出処理で検出された他の顔要素の第2顔情報とに加え、第1顔検出処理で検出された他の顔要素の第1顔情報を用いて乗員の眠気を推定してもよい。このようにすると、乗員の眠気推定に用いられる顔情報の数が増加するため、乗員の眠気の推定結果の信頼性を担保できる。
実施の形態2.
実施の形態2に係る眠気推定装置10は、実施の形態1と同様に、撮像画像を取得する画像取得部1と、撮像画像から乗員の複数の顔要素を検出する顔検出処理を行う顔検出部11と、撮像画像から検出された乗員の眠気を推定する眠気推定部12とを備える。本実施の形態では、第2顔検出処理によって一部の顔要素が検出されなかった場合、第1顔検出処理によって得られた第1顔情報から推定された眠気レベルと、第2顔検出処理によって検出された他の顔要素から得られた第2顔情報とを用いて乗員の眠気を推定する点が、実施の形態1と異なる。実施の形態1と同じ構成要素には同じ符号を付し、その説明を省略する。
眠気推定装置10において、左眼、右眼、及び口等、複数の顔要素を用いて乗員の眠気を推定すると、一つの顔要素を用いて乗員の眠気を推定する場合に比して、眠気の推定精度が向上する。一方で、特定のフレームにおいて、複数の顔要素のうち、一部の顔要素が検出されなかった場合に眠気推定処理が行われない等すると、乗員の眠気の状態が不定となり、眠気推定結果の信頼性が低下するおそれがある。
そのため、本実施の形態に係る眠気推定装置10は、特定のフレームにおける顔検出処理で、複数の顔要素のうち、一部の顔要素が検出されなかった場合には、一部の顔要素が検出できなくなる前に算出された眠気レベルを引き継ぎ、特定のフレームにおける顔検出処理によって得られた顔情報を用いて乗員の眠気を推定する。
本実施の形態に係る眠気推定部12による眠気推定処理について説明する。なお、顔要素判定部5により第2顔検出処理で、複数の顔要素のうち、全ての顔要素が検出されたと判定された場合の眠気推定処理については、実施の形態1と同様であるため、詳細な説明を省略する。眠気推定部12は、第2顔検出処理によって、複数の顔要素のうち、一部の顔要素が検出されなかった場合、第1顔検出処理によって得られた第1顔情報から算出された眠気レベルと、第2顔検出処理によって得られた他の顔要素に関する第2顔情報とから、総合的な眠気レベルを算出する。
まず、眠気推定部12は、第1顔検出処理によって得られた第1顔情報から、乗員の眠気レベルを算出する。以下、説明のため、第1顔検出処理によって得られた第1顔情報から算出された眠気レベルを、第1眠気レベルという。そして、眠気推定部12は、第2顔検出処理によって得られた他の顔要素に関する第2顔情報から、第1眠気レベルに対する眠気レベルの変化量を算出する。さらに、眠気推定部12は、第1眠気レベルと、第1眠気レベルに対する眠気レベルの変化量とから、総合的な眠気レベルを算出する。ここで、第1眠気レベルに対する眠気レベルの変化量とは、第1眠気レベルを基準として、眠気レベルがいかに変化したかを示す指標値である。以下、第1眠気レベルに対する眠気レベルの変化量を、単に変化量という。
顔検出部11による第1顔検出処理で乗員の左眼、右眼、及び口が検出され、乗員がサングラスを着用したことにより、第2顔検出処理で乗員の口が検出され、左眼及び右眼が検出されなかった例を挙げて、変化量について説明する。顔検出部11による第1顔検出処理で、乗員の左眼、右眼、及び口が検出された場合、眠気推定部12は、第1顔情報として、開眼度及び開口度等を顔検出部11から取得する。そして、眠気推定部12は、開眼度及び開口度等を用いて、第1眠気レベルを算出し、眠気推定装置10の記憶部に第1眠気レベルを記録する。
さらに、第2顔検出処理で乗員の口が検出され、左眼及び右眼が検出されなかった場合、すなわち、複数の顔要素のうち、一部の顔要素が検出されなかった場合、まず、眠気推定部12は、顔検出部11又は記憶部から第1眠気レベルを取得する。そして、眠気推定部12は、顔検出部11から、第2顔情報として、第2顔検出処理で検出された顔要素に関する第2顔情報を取得する。上述の例では、第2顔検出処理で検出された顔要素は口であり、眠気推定部12が第2顔情報として取得する情報は、開口度等である。
次に、眠気推定部12は、変化量を算出する。例えば、第1眠気レベルとして算出された眠気レベルが5であり、第2顔情報として取得した開口度から欠伸等、乗員が眠気を感じていると考えられる行動をしたことが示された場合、例えば、変化量を+1として算出する。一方、眠気推定部12は、第2顔情報として取得した開口度から、欠伸等、乗員が眠気を感じていると考えられる行動をしていないことが示された場合、例えば、変化量を-1として算出する。
そして、眠気推定部12は、第1眠気レベルと、第1眠気レベルに対する変化量とから、総合的な乗員の眠気レベルを算出する。例えば、上述の例で、第1眠気レベルが5であり、変化量が+1である場合、総合的な乗員の眠気レベルは6となる。なお、眠気推定部12により変化量が0と算出された場合は、総合的な乗員の眠気レベルは第1眠気レベルと同等となる。
なお、眠気推定部12による変化量は、眠気レベルの算出処理と同様に、例えば、顔情報である特徴量に対して閾値を設定し、設定された閾値と特徴量とを比較して算出すればよい。この場合、例えば眼に関しては、開眼度に対して複数の閾値を設定し、開眼度が閾値よりも小さくなれば総合的な眠気レベルが大きくなるように、眠気推定部12により変化量を算出すればよい。また、開眼度が閾値よりも大きくなれば、総合的な眠気レベルが小さくなるように、眠気推定部12により変化量を算出すればよい。
さらに、第1顔情報と第2顔情報とを比較して、第1顔情報が得られた乗員の顔の状態よりも、第2顔情報が得られた乗員の顔の状態が、眠気を感じている顔の状態である場合に、眠気推定部12により、眠気レベルが増加するように変化量を算出してもよい。一方、第1顔情報と第2顔情報とを比較して、第1顔情報が得られた乗員の顔の状態よりも、第2顔情報が得られた乗員の顔の状態が、眠気が解消された顔の状態である場合に、眠気推定部12により、眠気レベルが低下するように変化量を算出してもよい。
このように、眠気推定部12は、複数の顔要素のうち、一部の顔要素が検出されなかった場合、乗員の顔要素の一部が検出できなくなる前の眠気レベルを引き継いで乗員の眠気を推定するため、乗員の眠気状態が不定となることがなく、眠気推定結果の信頼性を担保できる。
以下、眠気推定装置10の動作について説明する。図7は、実施の形態2に係る眠気推定装置10の動作例を示すフローチャートである。以下では、実施の形態1に係る眠気推定装置10の処理と同一のステップには図5で示した符号と同一の符号を付し、説明を省略又は簡略化する。眠気推定装置10は、例えば、車両情報取得部2が、車両側制御装置200から車両のエンジンが始動した旨を示す信号を取得した場合、動作を開始する。また、図7のフローチャートには、眠気推定装置10の動作を終了する処理が示されていないが、眠気推定装置10は、例えば、車両情報取得部2が、車両側制御装置200から車両のエンジンが停止した旨を示す信号を取得した場合、動作を終了する。
まず、眠気推定装置10の動作が開始した後、画像取得部1は撮像装置20から撮像画像を取得する(ST101)。そして、顔検出部11は、撮像画像を用いて第1顔検出処理を行う(ST102)。
次に、顔要素判定部5は、第1顔検出処理により検出された乗員の顔要素を特定する。ここで、顔要素判定部5は、第1顔検出処理により乗員の複数の顔要素のうち、全ての顔要素が検出されたか否かを特定する。図7の例では、実施の形態1と同様に、一部の顔要素を顔要素A1、他の顔要素を顔要素B1として示している。すなわち、顔要素判定部5は、第1顔検出処理により検出された乗員の顔要素を特定し、顔要素A1及び顔要素B1の両方が検出されたか否かを判定する(ST201)。
顔要素判定部5は、第1顔検出処理によって、顔要素A1及び顔要素B1の両方が検出されなかった、すなわち、顔要素A1又は顔要素B1の少なくとも一方が検出されなかったと判定した場合(ST201;NO)、判定結果を眠気推定部12に出力する。そして、眠気推定装置10の動作は、ST101の処理に進む。一方、顔要素判定部5は、第1顔検出処理によって、顔要素A1及び顔要素B1の両方が検出された、すなわち複数の顔要素のうち、全ての顔要素が検出されたと判定した場合(ST201;YES)、判定結果を眠気推定部12に出力する。
そして、眠気推定部12は、顔要素A1及び顔要素B1の両方が検出されたことを示す判定結果を取得した場合、第1顔検出処理により得られた第1顔情報を用いて、第1眠気レベルを算出する(ST202)。そして、眠気推定部12は、算出した第1眠気レベルを記憶部に記録する。なお、眠気推定部12によって算出された第1眠気レベルは、車両側制御装置200に出力されてもよい。そして、眠気推定装置10の動作は、ST107の処理に進む。
画像取得部1は、撮像装置20から撮像画像を取得する(ST107)。次いで、顔検出部11は、撮像画像を用いて、第1顔検出処理の後に行われる処理である、第2顔検出処理を行う(ST108)。
次に、顔要素判定部5は、ST201の処理と同様に、第2顔検出処理により検出された乗員の顔要素を特定し、顔要素A2及び顔要素B2の両方が検出されたか否かを判定する(ST203)。なお、図7の例では、実施の形態1と同様に、第2顔検出処理により検出される顔要素のうち、顔要素A1と同一の顔要素を顔要素A2として示し、顔要素B1と同一の顔要素を顔要素B2として示している。
顔要素判定部5は、第2顔検出処理により、顔要素A2及び顔要素B2の両方が検出された、すなわち複数の顔要素のうち、全ての顔要素が検出されたと判定した場合(ST203;YES)、判定結果を眠気推定部12に出力する。そして、眠気推定部12は、顔要素A2及び顔要素B2の両方が検出されたことを示す判定結果を取得した場合、第2顔検出処理により得られた第2顔情報を用いて、眠気レベルを算出する(ST204)。次いで、眠気推定部12は、算出した眠気レベルを記憶部に記録する。以下、第2顔情報を用いて算出された眠気レベルを第2眠気レベルという。なお、眠気推定部12によって算出された第2眠気レベルは、車両側制御装置200に出力されてもよい。そして、眠気推定装置10の動作は、ST101の処理に進む。
一方、顔要素判定部5は、顔要素A2又は顔要素B2の少なくとも一方が検出されなかったと特定した場合(ST203;NO)、複数の顔要素のうち、一部の顔要素が検出されなかったと判定する。そして、眠気推定装置10の動作は、ST205の処理に進む。
次に、顔要素判定部5は、ST205、ST206の処理で、第2顔検出処理によって検出された顔要素がいずれの顔要素であるかを示す特定結果を眠気推定部12に出力する。まず、顔要素判定部5は、第2顔検出処理によって、顔要素A2が検出されたか否かを確認する(ST205)。ここで、顔要素判定部5は、例えば、ST203の処理における、第2顔検出処理で検出された顔要素の特定結果を用いて、顔要素A2が検出されたか否かを確認すればよい。
そして、顔要素判定部5は、第2顔検出処理により顔要素A2が検出されたことを確認した場合(ST205;YES)、第2顔検出処理で、複数の顔要素のうち、一部の顔要素が検出されなかったことを示す判定結果と、複数の顔要素のうち、一部の顔要素、すなわち顔要素A2が検出されたことを示す特定結果とを眠気推定部12に出力する。
次に、ST205の処理における判定結果と特定結果とを取得した眠気推定部12は、第1眠気レベルと、第2顔情報とを用いて乗員の第2眠気レベルを算出する(ST207)。例えば、眠気推定部12は、第2顔情報として、開口度を取得した場合、開口度を用いて変化量を算出する。そして、眠気推定部12は、第1眠気レベルと、変化量とから、第2眠気レベルを算出する。なお、眠気推定部12により算出された第2眠気レベルは、車両側制御装置200に出力されてもよい。
一方、顔要素判定部5により、第2顔検出処理で顔要素A2が検出されなかったことを確認された場合(ST205;NO)、眠気推定装置10の動作は、ST205の処理に進む。顔要素判定部5は、第2顔検出処理によって、顔要素B2が検出されたか否かを確認する(ST206)。ここで、顔要素判定部5は、ST205の処理と同様に、例えば、ST203の処理における、第2顔検出処理で検出された顔要素の特定結果を用いて、顔要素B2が検出されたか否かを確認すればよい。
そして、顔要素判定部5は、第2顔検出処理により顔要素B2が検出されたことを確認した場合(ST206;YES)、第2顔検出処理で、複数の顔要素のうち、一部の顔要素が検出されなかったことを示す判定結果と、複数の顔要素のうち、一部の顔要素、すなわち顔要素B2が検出されたことを示す特定結果とを眠気推定部12に出力する。
次に、ST205の処理における判定結果と特定結果とを取得した眠気推定部12は、第1眠気レベルと、第2顔情報とを用いて乗員の第2眠気レベルを算出する(ST208)。例えば、まず、眠気推定部12は、第2顔情報として、開眼度を取得した場合、開眼度を用いて変化量を算出する。そして、眠気推定部12は、第1眠気レベルと、変化量とから、第2眠気レベルを算出する。なお、眠気推定部12により算出された第2眠気レベルは、車両側制御装置200に出力されてもよい。
一方、顔要素判定部5により、第2顔検出処理で顔要素B2が検出されなかったことを確認された場合(ST206;NO)、すなわち、第2顔検出処理で顔要素A2も顔要素B2も検出されなかったことが確認された場合、眠気推定装置10の動作は、ST101の処理に進む。なお、眠気推定部12は、第2顔検出処理で顔要素A2も顔要素B2も検出されなかったことが確認された場合、第1眠気レベルを取得して、取得した第1眠気レベルを第2眠気レベルとして車両側制御装置200に出力してもよい。
また、上述の眠気推定装置10の動作において、第2顔検出処理の後に第3顔検出処理を行い、第2顔検出処理によって検出された顔要素と第3顔検出処理によって検出された顔要素とが同一である場合、第3顔検出処理以降の眠気推定処理を、他の顔要素を用いて眠気を推定するようにしてもよい。つまり、眠気推定部12は、第2顔検出処理及び第3顔検出処理により、乗員の複数の顔要素のうち、一部の顔要素が検出されなかった場合、第3顔検出処理によって検出された他の顔要素から得た第3顔情報を用いて、眠気を推定してもよい。
例えば、乗員が着類を着用せず、顔検出部11による第1顔検出処理で眼、鼻、及び口が検出され、乗員がサングラスを着用して顔検出部11による第2顔検出処理で眼が検出されず、鼻及び口が検出されたとする。この場合、眠気推定部12は、眼、鼻、及び口から得た第1顔情報を用いて第1眠気レベルを算出し、その後、第2顔検出処理で得た第2顔情報を用いて変化量を算出するとともに第2眠気レベルを算出する。そして、眠気推定部12は、乗員がサングラスを着用したままであれば、第3顔検出処理で鼻及び口から得た第3顔情報を用いて第3眠気レベルを算出する。このようにすると、一部の顔要素が検出できなくなった以降の眠気推定処理では、顔検出処理によって検出可能な顔要素を用いて眠気推定を行うため、眠気推定装置10の処理負荷を軽減できる。
すなわち、眠気推定部12は、乗員の顔要素の一部が検出されなかった場合、顔要素の一部が検出できなくなる前の第1眠気レベルを引き継いで、引き継いだ第1眠気レベルと、第1眠気レベルに対する眠気レベルの変化量とから乗員の眠気を推定する。このようにすると、一部の顔要素が検出されなかった場合においても乗員の眠気状態が不定となることがなく、眠気推定結果の信頼性を担保できる。
実施の形態3.
実施の形態3に係る眠気推定装置10は、実施の形態1と同様に、撮像画像を取得する画像取得部1と、撮像画像から乗員の複数の顔要素を検出する顔検出処理を行う顔検出部11と、撮像画像から検出された乗員の眠気を推定する眠気推定部12とを備える。本実施の形態では、第2顔検出処理によって一部の顔要素が検出されなかった場合、第1顔検出処理によって得られた顔情報から推定された眠気レベルと、第2顔検出処理によって検出された他の顔要素から得られた顔情報とを用いて乗員の眠気を推定する点が、実施の形態1と異なる。実施の形態1と同じ構成要素には同じ符号を付し、その説明を省略する。
本実施の形態の眠気推定部12は、実施の形態2と同様に、複数の顔要素のうち、一部の顔要素が検出されなかった場合、一部の顔要素が検出できなくなる前の第1眠気レベルを引き継ぐ。そして、眠気推定部12は、引き継いだ第1眠気レベルと、第1眠気レベルに対する変化量とから乗員の眠気を推定する。
さらに、本実施の形態の眠気推定装置10は、第1眠気レベルに対する変化量を、眠気レベルの変化量を推論するための学習済モデルから取得する。以下、眠気推定装置10に関する学習装置300と、眠気推定装置10とについてそれぞれ説明する。
図8は、実施の形態3に係る眠気推定装置10に関する学習装置300の構成図である。学習装置300は、データ取得部31、モデル生成部32、及び学習済モデル記憶部40を備える。
データ取得部31は、顔検出部11から顔情報と、変化量とを学習用データとして取得する。
モデル生成部32は、データ取得部31から出力される顔情報と、変化量との組み合わせに基づいて作成される学習用データに基づいて変化量を学習する。すなわち、眠気推定装置10の顔情報と、変化量とから最適な変化量を推論する学習済モデルを生成する。ここで、学習用データは、顔情報及び変化量を互いに関連付けたデータである。
なお、学習装置300は、眠気推定装置10の変化量を学習するために使用されるが、例えば、ネットワークを介して眠気推定装置10に接続され、眠気推定装置10とは別個の装置であってもよい。また、学習装置300は、眠気推定装置10に内蔵されていてもよい。さらに、学習装置300は、クラウドサーバ上に存在していてもよい。
モデル生成部32が用いる学習アルゴリズムは、教師あり学習、教師なし学習、強化学習等の公知の種々のアルゴリズムを用いることができる。以下、一例として、ニューラルネットワークを適用した場合について説明する。
モデル生成部32は、例えば、ニューラルネットワークモデルに従って、いわゆる教師あり学習により、変化量を学習する。ここで、教師あり学習とは、入力と結果(ラベル)のデータの組を学習装置300に与えることで、それらの学習用データにある特徴を学習し、入力から結果を推論する手法をいう。
図9は、実施の形態3に係る学習装置300のニューラルネットワークの学習例を示す説明図である。ニューラルネットワークは、複数のニューロンを有する入力層、複数のニューロンを有する中間層(隠れ層)、及び複数のニューロンを有する出力層で構成される。なお、中間層は1層、又は2層以上であってもよい。
例えば、図9に示すような3層のニューラルネットワークであれば、複数の入力が入力層(X1-X3)に入力されると、その値に重みW1(w11-w16)を掛けて中間層(Y1-Y2)に入力され、その結果にさらに重みW2(w21-w26)を掛けて出力層(Z1-Z3)から出力される。この出力結果は、重みW1とW2の値によって変化する。
本開示において、ニューラルネットワークは、データ取得部31によって取得される顔情報、変化量の組み合わせに基づいて作成される学習用データに従って、いわゆる教師あり学習により、変化量を学習する。
本開示において、ニューラルネットワークは、入力層に顔情報を入力して出力層から出力された結果が、学習用データとして入力された変化量に近づくように重みW1とW2とを調整することで学習する。モデル生成部32は、上述のような学習を実行することで学習済モデルを生成し、出力する。また、学習済モデル記憶部40は、モデル生成部32から出力された学習済モデルを記憶する。以下、説明のため、学習済モデルを生成する処理を、学習済モデル生成処理という。
図10は、実施の形態3に係る学習装置300の学習済モデル生成処理例を示すフローチャートである。図10を用いて、学習装置300が学習する処理について説明する。まず、データ取得部31は、顔情報と、変化量とを取得する(ST301)。なお、顔情報と、変化量とを同時に取得するものとしたが、顔情報と、変化量とを関連付けて入力できればよく、顔情報と、変化量とのデータをそれぞれ異なるタイミングで取得してもよい。
次に、モデル生成部32は、データ取得部31によって取得される顔情報と、変化量との組み合わせに基づいて作成される学習用データに従って、いわゆる教師あり学習により、変化量を学習し、学習済モデルを生成する(ST302)。そして、学習済モデル記憶部40は、モデル生成部32が生成した学習済モデルを記録する(ST303)。
さらに、モデル生成部32は、上述の学習済モデルの生成手法により、複数の学習済モデルを生成し、学習済モデル記憶部40に記録する。本実施の形態における複数の学習済モデルは、それぞれ入力される顔情報の種別に応じて、顔情報の変化量の推論への寄与度が異なる。ここで、変化量の推論への寄与度とは、特定の顔情報を学習済モデルに入力した場合に、特定の顔情報が、変化量の推論へ与える影響の大きさを示す指標値である。
図11は、実施の形態3に係る顔情報の変化量の推論に対する寄与度を示す説明図である。図11Aは、開眼度が変化量の推論に対する寄与度が最も高い学習済モデルを説明するための説明図であり、図11Bは、開口度が変化量の推論に対する寄与度が最も高い学習済モデルを説明するための説明図である。
例えば、顔検出部11による顔検出処理で、複数の顔要素のうち、一部の顔要素が検出されなければ、一部の顔要素に関する顔情報は眠気推定処理に用いることができない。例えば、開眼度、開口度、頭部の動き(顔向き)等、複数の顔情報を入力して変化量を推論する場合、変化量の推論の処理についての詳細な説明は後述するが、顔情報を学習済モデルに入力し、学習済モデルから変化量を得る必要がある。
しかしながら、顔情報が入力される学習済モデルにおいて、顔検出処理によって得ることができなかった顔情報が変化量の推論に対する寄与度が高い場合は、学習済モデルから取得した変化量の信頼性が低いおそれがある。これにより、学習済モデルから取得した変化量を用いて推定される乗員の眠気推定結果の信頼性も担保できない可能性がある。
そこで、本実施の形態においては、学習済モデル記憶部40は、顔情報の種別に応じて変化量の推論に対する寄与度が異なる複数の学習済モデルが記録されていると好ましい。以下に、複数の学習済モデル例を示す。
例えば、図11Aの例では、眼に関する顔情報である開眼度、瞬目の速度、及び瞬目の頻度が、口に関する顔情報である開口度に比して、変化量の推論への寄与度が高い学習済モデルの例を示している。すなわち、乗員がマスクを着用する等して、顔検出処理で乗員の眼が検出され、口が検出されなかった場合に、図11Aの例に示すような寄与度を有する学習済モデルに、顔情報を入力すれば、変化量の推論結果の信頼性を向上できる。
一方、例えば、図11Bの例では、口に関する顔情報である開口度が、眼に関する顔情報である開眼度、瞬目の速度、及び瞬目の頻度に比して、変化量の推論への寄与度が高い学習済モデルの例を示している。すなわち、乗員がサングラスを着用する等して、顔検出処理によって乗員の口が検出され、眼が検出されなかった場合に、図11Bの例に示すような寄与度を有する学習済モデルへ顔情報を入力すれば、変化量の推論結果の信頼性を向上できる。
すなわち、顔検出処理により、複数の顔要素のうち、一部の顔要素が検出されなかった場合は、検出された他の顔要素の種別に応じて、眠気レベルの変化量を取得する学習済モデルを、複数の学習済モデルから選択すれば、眠気推定結果の信頼性を担保できる。以下、眠気推定装置10の構成とともに、眠気推定処理について説明する。
図12は、実施の形態3に係る眠気推定システム100の構成例を示す構成図である。本実施の形態において、眠気推定装置10の眠気推定部12は、学習済モデル記憶部40と接続されている。
眠気推定部12は、学習済モデルを利用して変化量を推論する。すなわち、眠気推定部12は、顔検出部11から顔情報を取得し、学習済モデルに顔検出部11から取得した顔情報を入力することで、顔情報から推論される変化量を得る。
なお、本実施の形態では、眠気推定装置10に関する学習装置300のモデル生成部32で学習した学習済モデルを用いて変化量を出力するものとして説明したが、他の眠気推定装置に関する学習装置等の、外部から学習済モデルを取得し、この学習済モデルに基づいて変化量を出力するようにしてもよい。
次に、図13を用いて、変化量及び眠気レベルを得るための処理について説明する。図13は、実施の形態3に係る眠気推定装置10の動作例を示すフローチャートである。図13Aには、図7におけるST207の処理に対応するフローチャートを示し、図13Bには、図7におけるST208の処理に対応するフローチャートを示している。
つまり、図13Aに示す、ST304~ST307には、顔要素判定部5により、第2顔検出処理で、一部の顔要素(顔要素B2)が検出されず、他の顔要素(顔要素A2)が検出されたと特定された後の眠気推定処理を示している。そして、図13Bに示す、ST308~ST311には、顔要素判定部5により、第2顔検出処理で、一部の顔要素(顔要素A2)が検出されず、他の顔要素(顔要素B2)が検出されなかったと特定された後の眠気推定処理を示している。なお、ST304~ST307、ST308~ST311のいずれも、顔要素判定部5により、第2顔検出処理で複数の顔要素のうち、一部の顔要素が検出されなかったと判定された後の処理である。
まず、図13Aに示す処理について説明する。まず、眠気推定部12は、顔検出部11から第2顔情報を取得する(ST304)。なお、眠気推定部12が取得する第2顔情報は、第2顔検出処理で検出されなかった一部の顔要素(顔要素B2)と異なる他の顔要素(顔要素A2)に関する第2顔情報である。
そして、眠気推定部12は、学習済モデル記憶部40に記録された学習済モデルに第2顔情報を入力する(ST305)。ここで、眠気推定部12は、第2顔検出処理で検出された他の顔要素(顔要素A2)が、顔要素A2と異なる顔要素(例えば、顔要素B2)に比して、変化量の推論に対して寄与度が高い学習済モデルに第2顔情報を入力する。なお、図13Aの例では、第1の顔要素である顔要素A2が変化量の推論に対して寄与度が高い学習済モデルを、第1学習済モデルとして示している。また、第1の顔要素とは、例えば、乗員の眼であり、第1学習済モデルとは、例えば、図11Aに示すような、眼に関する顔情報の寄与度が、口等に関する顔情報の寄与度よりも大きい学習済モデルである。
次に、眠気推定部12は、学習済モデルにより得られた第1眠気レベルに対する変化量を取得する(ST306)。そして、眠気推定部12は、記憶部等から第1眠気レベルを取得し、第1眠気レベルと、学習済モデルにより得られた変化量とから第2眠気レベルを算出する(ST307)。
一方、図13Bに示す処理について説明する。まず、眠気推定部12は、顔検出部11から第2顔情報を取得する(ST308)。なお、眠気推定部12が取得する第2顔情報は、第2顔検出処理で検出されなかった一部の顔要素(顔要素A2)と異なる他の顔要素(顔要素B2)に関する第2顔情報である。
そして、眠気推定部12は、学習済モデル記憶部40に記録された学習済モデルに第2顔情報を入力する(ST309)。ここで、眠気推定部12は、第2顔検出処理で検出された他の顔要素(顔要素B2)が、顔要素B2と異なる顔要素(例えば、顔要素A2)に比して、変化量の推論に対して寄与度が高い学習済モデルに第2顔情報を入力する。なお、図13Bの例では、第2の顔要素である顔要素B2が変化量の推論に対して寄与度が高い学習済モデルを、第2学習済モデルとして示している。また、第2の顔要素とは、例えば、乗員の口であり、第2学習済モデルとは、例えば、図11Bに示すような、口に関する顔情報の寄与度が、眼等に関する顔情報の寄与度よりも大きい学習済モデルである。
次に、眠気推定部12は、学習済モデルにより得られた第1眠気レベルに対する変化量を取得する(ST310)。そして、眠気推定部12は、記憶部等から第1眠気レベルを取得し、第1眠気レベルと、学習済モデルにより得られた変化量とから第2眠気レベルを算出する(ST311)。このようにすると、複数の顔要素のうち、一部の顔要素が検出されなかった場合においても、乗員の眠気状態が不定となることがなく、顔検出処理によって検出可能な顔要素が眠気の推定に与える影響が大きい学習済モデルを用いて乗員の眠気の推定が可能となるため、眠気推定結果の信頼性を向上できる。
また、上述の眠気推定装置10の動作において、第2顔検出処理の後に第3顔検出処理を行い、第2顔検出処理によって検出された顔要素と第3顔検出処理によって検出された顔要素とが同一である場合、第3顔検出処理以降の眠気推定処理を、他の顔要素を用いて眠気を推定するようにしてもよい。つまり、眠気推定部12は、第2顔検出処理及び第3顔検出処理により、乗員の複数の顔要素のうち、一部の顔要素が検出されなかった場合、第3顔検出処理によって検出された他の顔要素から得た第3顔情報を用いて、眠気を推定してもよい。
例えば、乗員が着類を着用せず、顔検出部11による第1顔検出処理で眼、鼻、及び口が検出され、乗員がサングラスを着用して顔検出部11による第2顔検出処理で眼が検出されず、鼻及び口が検出されたとする。この場合、眠気推定部12は、眼、鼻、及び口から得た第1顔情報を用いて第1眠気レベルを算出し、その後、第2顔検出処理で得た第2顔情報を用いて変化量を算出するとともに、第2眠気レベルを算出する。そして、眠気推定部12は、乗員がサングラスを着用したままであれば、第3顔検出処理で鼻及び口から得た第3顔情報を用いて第3眠気レベルを算出する。このようにすると、一部の顔要素が検出できなくなった以降の眠気推定処理では、顔検出処理によって検出可能な顔要素を用いて眠気推定を行うため、眠気推定装置10の処理負荷を軽減できる。
さらに、顔情報から眠気レベルを推論するための学習済モデルを生成し、学習済モデル記憶部40に学習済モデルを記憶させ、眠気推定部12は、第3顔情報を学習済モデル記憶部40に入力して第3眠気レベルを取得してもよい。この場合、第3眠気レベルを推論する学習済モデルは、第3顔情報の眠気レベルの算出に対する影響が大きい学習済モデルであると好ましい。このようにすると、一部の顔要素が検出できなくなった場合であっても、顔検出処理によって検出可能な顔要素が眠気の推定に与える影響が大きい学習済モデルを用いて眠気推定を行えるため、眠気推定装置10の眠気推定結果の信頼性を向上できる。
なお、本実施の形態では、モデル生成部32が用いる学習アルゴリズムに教師あり学習を適用した場合について説明したが、これに限られるものではない。学習アルゴリズムについては、教師あり学習以外にも、強化学習、教師なし学習、又は半教師あり学習等を適用することも可能である。
また、モデル生成部32は、複数の眠気推定装置10に対して作成される学習用データに従って、変化量を学習するようにしてもよい。なお、モデル生成部32は、同一のエリアで使用される複数の眠気推定装置10から学習用データを取得してもよいし、異なるエリアで独立して動作する複数の眠気推定装置10から収集される学習用データを利用して変化量を学習してもよい。また、学習用データを収集する眠気推定装置10を途中で対象に追加、又は対象から除去することも可能である。さらに、ある眠気推定装置に関して変化量を学習した学習装置300を、これとは別の眠気推定装置に適用し、当該別の眠気推定装置10に関して変化量を再学習して更新するようにしてもよい。
また、モデル生成部32に用いられる学習アルゴリズムとしては、特徴量そのものの抽出を学習する、深層学習(Deep Learning)を用いることもでき、他の公知の方法、例えば、勾配ブースティング、遺伝的プログラミング、機能論理プログラミング、サポートベクターマシンなどに従って機械学習を実行してもよい。
なお、本明細書中に開示する各実施の形態は、その範囲内において、各実施の形態を自由に組み合わせることが可能であり、各実施の形態を適宜、変形、省略することが可能である。