添付の図面を参照しつつ、実施形態の例について以下詳細に説明する。図1は、一実施形態に係る異常推定システム10の機能構成を例示している。異常推定システム10は、図2に例示される車両20の運転者30が写り込んだ画像に基づいて、運転者30の姿勢が異常であるかを推定するシステムである。車両20は、移動体の一例である。
姿勢の異常は、運転者30の異常を検知するために推定される。本明細書において用いられる「運転者の異常」という語は、予め予測することが困難な体調の急変を意味する。
添付の図面において、矢印Fは、運転者30から見た前方向を表している。矢印Bは、運転者30から見た後方向を表している。矢印Lは、運転者30から見た左方向を表している。矢印Rは、運転者30から見た右方向を表している。矢印Uは、運転者30から見た上方向を表している。矢印Dは、運転者30から見た下方向を表している。
図1に例示されるように、異常推定システム10は、撮像装置11を含んでいる。撮像装置11は、車両20における適宜の箇所に配置される。図2に例示される車両20の車室21内に配置されたシート22に着座した運転者30が、撮像装置11による撮像に供される。
図1に例示されるように、撮像装置11は、取得された画像に対応する画像情報Iを出力するように構成されている。画像情報Iは、アナログデータの形態でもよいし、デジタルデータの形態でもよい。
異常推定システム10は、画像処理装置12を含んでいる。画像処理装置12は、受付部121と処理部122を備えている。受付部121は、撮像装置11から画像情報Iを受け付けるように構成されている。画像情報Iがアナログデータの形態である場合、受付部121は、A/Dコンバータを含む適宜の変換回路を含みうる。処理部122は、デジタルデータの形態である画像情報Iを処理の対象とする。
処理部122は、画像情報Iに基づいて運転者30の姿勢が異常であるかを推定する処理を実行するように構成されている。当該処理の詳細については後述する。
画像処理装置12は、出力部123を備えている。処理部122は、運転者30の姿勢が異常であると推定された場合、出力部123を通じて制御情報Cを出力するように構成されている。制御情報Cは、デジタルデータの形態でもよいし、アナログデータの形態でもよい。制御情報Cがアナログデータの形態である場合、出力部123は、D/Aコンバータを含む適宜の変換回路を含みうる。
異常推定システム10は、制御装置13を含んでいる。制御装置13は、車両20に搭載されている。制御装置13は、画像処理装置12から出力された制御情報Cに基づいて、車両20に搭載された被制御装置40の動作を制御するように構成されている。
具体的には、制御装置13は、運転者30の姿勢が異常であると推定された場合に、車両20の運転支援を有効にするように構成されている。本明細書において用いられる「運転支援」という語は、運転操作(ハンドル操作、加速、減速など)、走行環境の監視、および運転操作のバックアップの少なくとも一つを少なくとも部分的に行なう制御処理を意味する。すなわち、衝突被害軽減ブレーキ機能やレーンキープアシスト機能のような部分的な運転支援から完全自動運転動作までを含む意味である。
例えば、制御装置13は、画像処理装置12から出力された制御情報Cに基づいて、車両20を減速させ、路肩に停車させるために必要な動作を、被制御装置40に行なわせる。被制御装置40の例としては、車両20の駆動系を構成する装置、灯具、運転支援動作が有効であることを車両20や他車両の乗員や歩行者に報知する装置などが挙げられる。
次に、図3から図5を参照しつつ、画像処理装置12の処理部122により実行される運転者30の姿勢を推定する処理について詳細に説明する。図3は、当該処理の流れを例示している。
処理部122は、受付部121を通じて撮像装置11から画像情報Iを受け付ける(STEP1)。図4は、撮像装置11により取得された運転者30が写り込んだ画像IMを例示している。画像情報Iは、画像IMに対応している。
続いて、処理部122は、骨格モデルを適用する処理を行なう(図3のSTEP2)。本明細書で用いられる「骨格モデルを適用する処理」という語は、撮像装置により取得された画像に写り込んだ運転者において当該骨格モデルにおいて規定された複数の特徴点を検出し、当該複数の特徴点同士を当該骨格モデルにおいて規定された複数の骨格線で接続することを意味する。
図5は、撮像装置11により取得された画像IMに写り込んだ運転者30に骨格モデルMが適用された例を示している。本例においては、骨格モデルMは、頭特徴点H、首特徴点NK、左肩特徴点LS、および右肩特徴点RSを含んでいる。
頭特徴点Hは、モデル人体の頭の中心に対応する点である。首特徴点NKは、モデル人体の首に対応する点である。左肩特徴点LSは、モデル人体の左肩に対応する点である。右肩特徴点RSは、モデル人体の右肩に対応する点である。頭特徴点Hと首特徴点NKは、骨格線により接続されている。首特徴点NKは、左肩特徴点LSおよび右肩特徴点RSの各々と骨格線により接続されている。
処理部122は、画像IMに写り込んだ運転者30において、頭特徴点H、首特徴点NK、左肩特徴点LS、および右肩特徴点RSの各々に対応する点を検出し、検出された複数の点同士を、上記の各骨格線で接続する。この処理を遂行するためのアルゴリズムは周知であるので、詳細な説明は省略する。
図1に例示されるように、画像処理装置12は、記憶部124を備えている。処理部122は、各特徴点の画像IMにおける位置を、正常時における運転者30の姿勢を表すものとして記憶部124に記憶する。具体的には、各特徴点に対応する画像IM中の画素の位置が、記憶部124に保存される。
続いて、処理部122は、運転者30の姿勢が正常であるかを判断する(STEP3)。例えば、当該判断は、骨格モデルMが適用されることにより画像IM内に検出された各特徴点が規定された範囲内に位置しているかに基づいてなされうる。
運転者30の姿勢が正常でないと判断されると(STEP3においてNO)、処理部122は、姿勢推定処理を実行する(STEP4)。姿勢推定処理は、予め規定された複数の異常姿勢の各々を運転者30がとっているかを推定する処理である。姿勢推定処理の詳細については、後述する。
続いて、処理部122は、姿勢推定処理の結果として運転者30がとっていると推定された複数の異常姿勢の少なくとも一つについてスコアを加算する処理を行なう(STEP5)。スコアは、運転者30の姿勢が複数の異常姿勢の各々に該当する可能性に対応する数値である。
続いて、処理部122は、異常推定処理を実行する(STEP7)。図6は、異常推定処理において実行される処理の流れを例示している。
処理部122は、スコア加算処理の結果として、複数の異常姿勢のうちスコアが閾値を上回っている姿勢があるかを判断する(STEP71)。
スコアが閾値を上回っている異常姿勢がないと判断されると(STEP71においてNO)、処理部122は、異常推定処理を終了する。処理は図3のSTEP1に戻り、次の画像情報Iが受け付けられる。画像情報Iの受け付けが繰り返される周期は、撮像装置11のフレームレートに対応しうる。
また、運転者30の姿勢が正常であると判断されると(STEP3においてYES)、処理部122は、各異常姿勢について付与されているスコアを減算する処理を行なう(STEP6)。スコアは、0に戻されてもよいし、所定の値だけ差し引かれてもよい。その後、処理は図3のSTEP1に戻り、次の画像情報Iが受け付けられる。
異常推定処理において、スコア加算処理の結果として、複数の異常姿勢の少なくとも一つについてスコアが閾値を上回っていると判断されると(図6のSTEP71においてYES)、処理部122は、運転者30が当該少なくとも一つの異常姿勢をとっていると推定する(STEP72)。
続いて、処理部122は、出力部123から制御情報Cを出力する(STEP73)。制御情報Cは、制御装置13へ送信される。制御情報Cは、同じ動作を被制御装置40に行なわせるものであってもよいし、推定された異常姿勢の種別に応じて異なる動作を被制御装置40に行なわせるものであってもよい。
次に、図7から図9を参照しつつ、処理部122により実行される姿勢推定処理(図3におけるSTEP4)の一例について説明する。図7は、処理の流れの一例を示している。
本例においては、運転者30が「よそ見姿勢」をとっているかが推定される。本明細書で用いられる「よそ見姿勢」という語は、運転者30が車両20の進行方向を見ていない姿勢が継続している状態を意味する。
本例においては、処理部122は、撮像装置11により取得された画像IMに写り込んだ運転者30の頭部31の車両20のヨー方向への回転角が閾値を上回る場合に、運転者30が「よそ見姿勢」をとっている可能性があると判断する。
本明細書で用いられる「ヨー方向」という語は、車両20の上下方向に延びる軸を中心とする回転方向を意味する。「ヨー方向」に関しては、運転者30の頭上から見て反時計回り方向を「左ヨー方向」と定義し、運転者30の頭上から見て時計回り方向を「右ヨー方向」と定義する。
車両20のヨー方向への頭部31の回転角を検出するために、処理部122は、撮像装置11により取得された画像IMに写り込んだ運転者30の頭部31の中心座標を仮定する処理を行なう(STEP11)。図8と図9を参照しつつ、当該処理の詳細について説明する。
図8は、図4および図5に例示された画像IMのうち、運転者30の頭部31が写り込んでいる部分を拡大して示している。本例においては、骨格モデルMを適用する処理により、頭特徴点Hに加えて、左目特徴点LYもまた検出されうる。左目特徴点LYは、モデル人体の左目に対応する点である。また、骨格モデルMを適用する処理により、画像IMにおいて運転者30の頭部31が位置する領域を推定する矩形の枠FMが設定される。
図9は、設定された枠FMを用いて頭部31の中心座標CTを仮定する手法を説明するための図である。同図においては、頭部31を上方から見た状態が模式的に示されている。本例においては、車両20の左右方向における頭部31の幅、および車両20の前後方向における頭部31の幅は、図8に示される画像IM中に設定された枠FMの幅Wと同一であるとみなされる。この前提下において、頭部31の中心座標CTは、頭特徴点Hから車両20の後方へ(W/2)だけ離れた点として仮定される。処理部122は、距離(W/2)に対応する画素数を、記憶部124に保存する。
このとき、中心座標CTと左目特徴点LYを結ぶ直線が中心座標CTと頭特徴点Hを結ぶ直線に対してなす角度θY0は、車両20の左右方向における頭特徴点Hと左目特徴点LYの間の距離dHLと上記の(W/2)のアークタンジェントを求めることにより特定されうる。この角度θY0は、運転者30が正常姿勢をとっている場合(車両20の進行方向を見ている場合)の初期角度として、記憶部124に保存される。
運転者30が「よそ見姿勢」をとると、頭部31は、車両20のヨー方向へ回転する。このとき、中心座標CTと左目特徴点LYを結ぶ直線が中心座標CTと頭特徴点Hを結ぶ直線(車両20の前後方向)に対してなす角度θY1は、初期角度θY0から変化する。その変化量(θY1−θY0)は、車両20のヨー方向への頭部31の回転角θYとみなされうる。したがって、その変化量(θY1−θY0)の絶対値が閾値を上回る場合に、運転者30が「よそ見姿勢」をとっていると推定されうる。閾値は、一般的な運転者30が「よそ見姿勢」をとる場合に生じうる回転角θYとして、統計的に定められうる。
上記の原理に基づき、処理部122は、STEP11で特定された中心座標CTを用いて、車両20のヨー方向への頭部31の回転角θYを特定する処理を行なう(図7のSTEP12)。具体的には、図8に例示されるように、車両20の左右方向における取得された画像IMに写り込んだ運転者30の頭特徴点Hと左目特徴点LYの間の距離dHLを特定する。距離dHLは、画素数として特定される。続いて、処理部122は、記憶部124に保存されている距離(W/2)と距離dHLのアークタンジェントを求めることにより、上記の角度θY1を特定する。
さらに、処理部122は、特定された角度θY1と初期角度θY0の差分値をとることにより、車両20のヨー方向への頭部31の回転角θYを特定する。差分値が正の値ととる場合、頭部31は左ヨー方向に回転していると判断されうる。差分値が負の値をとる場合、頭部31は右ヨー方向に回転していると判断されうる。
続いて、処理部122は、STEP12で特定された回転角θYの絶対値が記憶部124に保存されている閾値を上回っているかを判断する(STEP13)。
回転角θYの絶対値が閾値を上回っていると判断された場合(STEP13においてYES)、処理部122は、運転者30が「よそ見姿勢」をとっている可能性があると判断する(STEP14)。この場合、処理部122は、「よそ見姿勢」にスコアを加算する(図3のSTEP5)。
他方、回転角θYの絶対値が閾値を上回っていないと判断された場合(STEP13においてNO)、処理部122は、運転者30が「よそ見姿勢」をとっている可能性がないと判断する(STEP15)。この場合、処理部122は、「よそ見姿勢」にスコアを加算しない。
車両20のヨー方向への頭部31の回転角θYを特定可能であれば、左目特徴点LYに代えて、頭部31に含まれる適宜の特徴点が用いられうる。そのような特徴点の例としては、車両20の左右方向における顔の中央部から離れた位置において検出されうる右目特徴点、左耳特徴点、右耳特徴点などが挙げられる。
次に、図8、および図10から13を参照しつつ、処理部122により実行される姿勢推定処理(図3におけるSTEP4)の別例について説明する。図10は、処理の流れの一例を示している。
本例においては、処理部122は、撮像装置11により取得された画像IMに写り込んだ運転者30の頭部31の車両20のピッチ方向への回転角が閾値を上回る場合に、運転者30が「えび反り姿勢」または「うつむき姿勢」をとっていると可能性があると判断する。
本明細書で用いられる「ピッチ方向」という語は、車両20の左右方向に延びる軸を中心とする回転方向を意味する。「ピッチ方向」に関しては、運転者30の左方から見て反時計回り方向を「下ピッチ方向」と定義し、運転者30の左方から見て時計回り方向を「上ピッチ方向」と定義する。
「えび反り姿勢」は、国土交通省により定義されている複数種の「姿勢崩れパターン」の一つである。「えび反り姿勢」は、運転者の上半身が反り上がり、顔が上を向いている姿勢が継続している状態として定義されている。
図11は、「えび反り姿勢」を例示している。「えび反り姿勢」は、運転者の顔の上ピッチ方向への回転角θPUが閾値を上回った状態として定義される。回転角θPUの閾値は、例えば25°である。
「うつむき姿勢」は、国土交通省により定義されている複数種の「姿勢崩れパターン」の一つである。「うつむき姿勢」は、運転者の顔が下を向いている姿勢が継続している状態として定義されている。
図12は、「うつむき姿勢」を例示している。「うつむき姿勢」は、運転者の顔の下ピッチ方向への回転角θPDが閾値を上回った状態として定義される。回転角θPDの閾値は、例えば20°である。
車両20のピッチ方向への頭部31の回転角を検出するために、処理部122は、撮像装置11により取得された画像IMに写り込んだ運転者30の頭部31の中心座標を仮定する処理を行なう(図10のSTEP21)。図8と図13を参照しつつ、当該処理の詳細について説明する。
図8に例示されるように、本例においては、骨格モデルMを適用する処理により、頭特徴点Hに加えて、鼻特徴点NSもまた検出されうる。鼻特徴点NSは、モデル人体の鼻に対応する点である。また、骨格モデルMを適用する処理により、画像IMにおいて運転者30の頭部31が位置する領域を推定する矩形の枠FMが設定される。
図13は、設定された枠FMを用いて頭部31の中心座標CTを仮定する手法を説明するための図である。同図においては、頭部31を左方から見た状態が模式的に示されている。本例においては、車両20の上下方向における頭部31の幅、および車両20の前後方向における頭部31の幅は、図8に示される画像IM中に設定された枠FMの幅Wと同一であるとみなされる。この前提下において、頭部31の中心座標CTは、頭特徴点Hから車両20の後方へ(W/2)だけ離れた点として仮定される。処理部122は、距離(W/2)に対応する画素数を、記憶部124に保存する。
このとき、中心座標CTと鼻特徴点NSを結ぶ直線が中心座標CTと頭特徴点Hを結ぶ直線に対してなす角度θP0は、車両20の左右方向における頭特徴点Hと鼻特徴点NSの間の距離dHNと上記の(W/2)のアークタンジェントを求めることにより特定されうる。この角度θP0は、運転者30が正常姿勢をとっている場合の初期角度として、記憶部124に保存される。
運転者30が「えび反り姿勢」または「うつむき姿勢」をとると、頭部31は、車両20のピッチ方向へ回転する。このとき、中心座標CTと鼻特徴点NSを結ぶ直線が中心座標CTと頭特徴点Hを結ぶ直線(車両20の前後方向)に対してなす角度θP1は、初期角度θP0から変化する。その変化量(θP1−θP0)は、車両20のピッチ方向への頭部31の回転角θPとみなされうる。したがって、その変化量(θP1−θP0)の絶対値が閾値を上回る場合に、運転者30が「えび反り姿勢」または「うつむき姿勢」をとっていると推定されうる。閾値は、国土交通省による定義に基づいて、適宜に定められうる。
上記の原理に基づき、処理部122は、STEP21で特定された中心座標CTを用いて、車両20のピッチ方向への頭部31の回転角θPを特定する処理を行なう(図10のSTEP22)。具体的には、図8に例示されるように、車両20の上下方向における取得された画像IMに写り込んだ運転者30の頭特徴点Hと鼻特徴点NSの間の距離dHNを特定する。距離dHNは、画素数として特定される。続いて、処理部122は、記憶部124に保存されている距離(W/2)と距離dHNのアークタンジェントを求めることにより、上記の角度θP1を特定する。
さらに、処理部122は、特定された角度θP1と初期角度θP0の差分値をとることにより、車両20のピッチ方向への頭部31の回転角θPを特定する。差分値が正の値ととる場合、頭部31は下ピッチ方向に回転していると判断されうる。差分値が負の値をとる場合、頭部31は上ピッチ方向に回転していると判断されうる。
続いて、処理部122は、STEP22で特定された回転角θPの絶対値が記憶部124に保存されている閾値を上回っているかを判断する(STEP23)。
回転角θPの絶対値が閾値を上回っていると判断された場合(STEP23においてYES)、処理部122は、運転者30が「えび反り姿勢」または「うつむき姿勢」をとっていると可能性があると判断する(STEP24)。
具体的には、回転角θPが正の値をとる場合に運転者30が「うつむき姿勢」をとっている可能性があると判断され、回転角θPが負の値をとる場合に運転者30が「えび反り姿勢」をとっている可能性があると判断される。運転者30が「えび反り姿勢」をとっている可能性があると判断された場合、処理部122は、「えび反り姿勢」にスコアを加算する(図3のSTEP5)。運転者30が「うつむき姿勢」をとっている可能性があると判断された場合、処理部122は、「うつむき姿勢」にスコアを加算する(図3のSTEP5)。
他方、回転角θPの絶対値が閾値を上回っていないと判断された場合(STEP23においてNO)、処理部122は、運転者30が「えび反り姿勢」または「うつむき姿勢」をとっている可能性がないと判断する(STEP25)。この場合、処理部122は、「えび反り姿勢」および「うつむき姿勢」にスコアを加算しない。
車両20のピッチ方向への頭部31の回転角θPを特定可能であれば、鼻特徴点NSに代えて、頭部31に含まれる適宜の特徴点が用いられうる。そのような特徴点の例としては、顔の表面において検出されうる左目特徴点、右目特徴点、口特徴点、顔特徴点などが挙げられる。
次に、図14から17を参照しつつ、処理部122により実行される姿勢推定処理(図3におけるSTEP4)の別例について説明する。図14は、処理の流れの一例を示している。
本例においては、処理部122は、撮像装置11により取得された画像IMに写り込んだ運転者30の頭部31の車両20のロール方向への回転角が閾値を上回る場合に、運転者30が「首のみ横倒れ姿勢」をとっている可能性があると推定する。
本明細書で用いられる「ロール方向」という語は、車両20の前後方向に延びる軸を中心とする回転方向を意味する。「ロール方向」に関しては、運転者30から見て反時計回り方向を「左ロール方向」と定義し、運転者30から見て時計回り方向を「右ロール方向」と定義する。
「首のみ横倒れ姿勢」は、国土交通省により定義されている複数種の「姿勢崩れパターン」の一つである。「首のみ横倒れ姿勢」は、運転者の頭が左方または右方へ傾いている姿勢が継続している状態として定義されている。
図15は、左方への「首のみ横倒れ姿勢」を例示している。左方への「首のみ横倒れ姿勢」は、運転者の顔の左ロール方向への回転角θRLが閾値を上回った状態として定義される。回転角θRLの閾値は、例えば30°である。
図16は、右方への「首のみ横倒れ姿勢」を例示している。右方への「首のみ横倒れ姿勢」は、運転者の顔の右ロール方向への回転角θRRが閾値を上回った状態として定義される。回転角θRRの閾値は、例えば30°である。
図17は、車両20のロール方向への回転角θRを特定する手法の一例を示している。本例においては、骨格モデルMの適用により検出された左目特徴点LYと右目特徴点RYが利用される。左目特徴点LYと右目特徴点RYを結ぶ直線の車両20の左右方向に対応する方向からの傾き角は、上記の回転角θRとみなされうる。したがって、車両20の左右方向における左目特徴点LYと右目特徴点RYの間の距離dLRと、車両20の上下方向における左目特徴点LYと右目特徴点RYの間の距離dUDを取得し、距離dLRと距離dUDのアークタンジェントを求めることにより、回転角θRが特定されうる。
運転者30が「首のみ横倒れ姿勢」をとると、回転角θRの絶対値が増大する。したがって、回転角θRの絶対値が閾値を上回る場合に、運転者30が「首のみ横倒れ姿勢」をとっていると推定されうる。閾値は、国土交通省による定義に基づいて、適宜に定められうる。
上記の原理に基づき、処理部122は、車両20のロール方向への頭部31の回転角θRを特定する処理を行なう(図14のSTEP31)。具体的には、車両20の上下方向における取得された画像IMに写り込んだ運転者30の左目特徴点LYと右目特徴点RYについて、上記の距離dLRと距離dUDを特定する。続いて、処理部122は、距離dLRと距離dUDのアークタンジェントを求めることにより、回転角θRを特定する。
回転角θRが正の値ととる場合、頭部31は左ロール方向に回転していると判断されうる。回転角θRが負の値をとる場合、頭部31は右ロール方向に回転していると判断されうる。
続いて、処理部122は、STEP31で特定された回転角θPの絶対値が記憶部124に保存されている閾値を上回っているかを判断する(STEP32)。
回転角θRの絶対値が閾値を上回っていると判断された場合(STEP32においてYES)、処理部122は、運転者30が「首のみ横倒れ姿勢」をとっている可能性があると判断する(STEP33)。
具体的には、回転角θRが正の値をとる場合に運転者30が左方への「首のみ横倒れ姿勢」をとっている可能性があると判断され、回転角θRが負の値をとる場合に運転者30が右方への「首のみ横倒れ姿勢」をとっている可能性があると判断される。この場合、処理部122は、「首のみ横倒れ姿勢」にスコアを加算する(図3のSTEP5)。
他方、回転角θRの絶対値が閾値を上回っていないと判断された場合(STEP32においてNO)、処理部122は、運転者30が「首のみ横倒れ姿勢」をとっている可能性がないと判断する(STEP34)。この場合、処理部122は、「首のみ横倒れ姿勢」にスコアを加算しない。
車両20のロール方向への頭部31の回転角θRを特定可能であれば、左目特徴点LYと右目特徴点RYの組合せに代えて、頭部31に含まれる適宜の特徴点の組合せが用いられうる。そのような組合せの例としては、左耳特徴点と右耳特徴点、左目特徴点と右耳特徴点、左目特徴点と左耳特徴点、左目特徴点と鼻特徴点などが挙げられる。
次に、図18から図22を参照しつつ、処理部122により実行される姿勢推定処理(図3におけるSTEP4)の別例について説明する。図18は、処理の流れの一例を示している。
まず、処理部122は、前述した複数の特徴点の特定に用いられた画像IMにおいて、当該複数の特徴点に対応する複数の画素間の規定された方向における距離を特定する(STEP41)。本例においては、規定された方向は、車両20の左右方向である。
図19は、図4および図5に例示された画像IMのうち、運転者30の頭部31が写り込んでいる部分を拡大して示している。本例においては、骨格モデルMを適用する処理により、左耳特徴点LEと右耳特徴点REもまた検出されうる。左耳特徴点LEは、モデル人体の左耳に対応する点である。右耳特徴点REは、モデル人体の右耳に対応する点である。図19において左耳特徴点LEと右耳特徴点REを結ぶ直線が延びる方向は、車両20の左右方向に対応している。
本例においては、処理部122は、車両20の左右方向における左耳特徴点LEに対応する画素PLと右耳特徴点REに対応する画素PRの間の距離である画素間距離DPを特定する。画素間距離DPは、画素数により特定される。
続いて、図18に例示されるように、処理部122は、画像IM中の二点間距離と実空間における二点間距離との対応関係を特定する処理を行なう(STEP42)。
画像IM中の二点間距離は、STEP41を参照して説明した画素間距離DPとして特定されている。本例においては、この画素間距離DPを、画像IMに写り込んだ運転者30の頭部31の車両20の左右方向における幅とみなしている。
人体の各部位における平均的な寸法は、統計的に調査されてデータベースとして提供されている。そのようなデータベースの例としては、国立研究開発法人産業技術総合研究所により提供されている「AIST人体寸法データベース1997-98」が挙げられる。図20は、そのようなデータベースより得られる人体の左右方向における頭部幅WHを例示している。頭部幅WHは、平均的な人間の左耳と右耳の間の実空間距離DRに対応していると言える。
幅WHに対応する実空間距離DRの値は、記憶部124に格納されている。処理部122は、実空間距離DRの値を記憶部124から読み出し、STEP41で特定された画素間距離DPとの比P(=DR/DP)を算出する。これにより、画像IM中の画素間距離DPが特定されれば、比Pに基づいて車両20の車室21内における実空間距離DRを算出できる(DR=DP×P)。
本例においては、STEP42で特定された画素間距離DPと実空間距離DRの対応関係に基づいて、運転者30が「横もたれ姿勢」をとっているかが推定される。
「横もたれ姿勢」は、国土交通省により定義されている複数種の「姿勢崩れパターン」の一つである。「横もたれ姿勢」は、運転者の上半身が左方または右方へ傾いている姿勢が継続している状態として定義されている。
図21は、左方への「横もたれ姿勢」を例示している。左方への「横もたれ姿勢」は、運転者の顔における特定の位置の、正常時からの車両20の左方向への移動量ΔDLが閾値を上回った状態として定義される。閾値は、例えば200mmである。
図22は、右方への「横もたれ姿勢」を例示している。右方への「横もたれ姿勢」は、運転者の顔における特定の位置の、正常時からの車両20の右方向への移動量ΔDRが閾値を上回った状態として定義される。閾値は、例えば200mmである。
運転者30が「横もたれ姿勢」をとっているかを推定するために、処理部122は、取得された画像IMに写り込んだ運転者30の頭特徴点Hに対応する画素の位置を特定し、記憶部124に格納されている正常時における頭特徴点Hに対応する画素の位置と比較する。なお、適用される骨格モデルの仕様に応じて、鼻、目、顔などの特徴点が推定に用いられてもよい。
比較の結果、取得された画像IMに写り込んだ運転者30の頭特徴点Hに対応する画素の位置と、正常時における頭特徴点Hに対応する画素の位置との間の車両20の左右方向における画素間距離が特定されうる。この画素間距離が、STEP42で特定された比に基づいて、車両20内における実空間距離に換算される。この実空間距離は、取得された画像IMに写り込んだ運転者30の頭部31の正常時からの車両20の左右方向への移動量に対応している。すなわち、処理部122は、運転者30の頭部31の車両20の左右方向への移動量を特定する(図18のSTEP43)。
続いて、処理部122は、換算された実空間距離が閾値を上回っているかを判断する(STEP44)。すなわち、運転者30の頭部31の車両20の左方への移動量ΔDLが閾値を上回っているかを判断する。同様に、運転者30の頭部31の車両20の右方への移動量ΔDRが閾値を上回っているかを判断する。
換算された実空間距離が閾値を上回っていないと判断された場合(STEP44においてNO)、処理部122は、運転者30が「横もたれ姿勢」をとっている可能性がないと判断する(STEP45)。この場合、処理部122は、「横もたれ姿勢」にスコアを加算しない。
換算された実空間距離が閾値を上回っていると判断された場合(図18のSTEP44においてYES)、処理部122は、運転者30が「横もたれ姿勢」をとっている可能性があると判断する(STEP46)。
具体的には、運転者30の頭部31の車両20の左方への移動量ΔDLが閾値を上回っていると判断された場合、運転者30が左方への「横もたれ姿勢」をとっていると可能性があると判断される。運転者30の頭部31の車両20の右方への移動量ΔDRが閾値を上回っていると判断された場合、運転者30が右方への「横もたれ姿勢」をとっている可能性があると判断される。この場合、処理部122は、「横もたれ姿勢」にスコアを加算する(図3のSTEP5)。
頭部31に含まれる複数の特徴点であれば、適用される骨格モデルMの仕様に応じて、左耳特徴点LEおよび右耳特徴点REとは異なる組合せが採用されうる。例えば、左目特徴点と右目特徴点の組合せ、鼻特徴点と左耳特徴点の組合せ、頭特徴点と右耳特徴点の組合せ、左目特徴点と左耳特徴点の組合せなどが挙げられる。
「横もたれ姿勢」は、車両20の左右方向への頭部31の移動量を基準に推定されるので、車両20の左右方向における距離の基準を与えうるのであれば、複数の特徴点の組合せは、頭部31に含まれるものに限られない。例えば、左肩特徴点と右肩特徴点の組合せ、左耳特徴点と左肩特徴点の組合せ、首特徴点と右肩特徴点の組合せなどが挙げられる。
図18に例示されるように、画像処理装置12の処理部122は、運転者30が「横倒れ姿勢」をとっているかを推定しうる。
「横倒れ姿勢」は、国土交通省により定義されている複数種の「姿勢崩れパターン」の一つである。「横倒れ姿勢」は、運転者の上半身が左方または右方へ傾き、かつ運転者の顔も同方向に傾いている姿勢が継続している状態として定義されている。
図23は、左方への「横倒れ姿勢」を例示している。左方への「横倒れ姿勢」は、運転者の顔における特定の位置の、正常時からの車両20の左方向への移動量ΔDLが閾値を上回り、かつ運転者の顔の左方へのロール角θRLが閾値を上回った状態として定義される。ΔDLの閾値は、例えば200mmである。θRLの閾値は、例えば15°である。
図24は、右方への「横倒れ姿勢」を例示している。右方への「横倒れ姿勢」は、運転者の顔における特定の位置の、正常時からの車両20の右方向への移動量ΔDRが閾値を上回り、かつ運転者の顔の右方へのロール角θRRが閾値を上回った状態として定義される。ΔDRの閾値は、例えば200mmである。θRRの閾値は、例えば15°である。
具体的には、処理部122は、画像IMに写り込んだ運転者30の頭部31の車両20の左右方向への移動量が閾値を上回ると判断された場合に(図18のSTEP44においてYES)、頭部31の車両20のロール方向への回転角θRを特定する(STEP47)。回転角θRの特定にあたっては、図17を参照して説明した方法が用いられうる。
続いて、処理部122は、特定された回転角θRが閾値を上回っているかを判断する(図18のSTEP48)。すなわち、運転者30の頭部31の左ロール方向への回転角θRが閾値を上回っているかを判断する。同様に、運転者30の頭部31の右ロール方向への回転角θRが閾値を上回っているかを判断する。
回転角θRが閾値を上回っていないと判断された場合(STEP48においてNO)、処理部122は、運転者30が「横もたれ姿勢」をとっている可能性があると判断する(STEP46)。この場合、処理部122は、「横もたれ姿勢」にスコアを加算する(図3のSTEP5)。
回転角θRが閾値を上回っていると判断された場合(図18のSTEP48においてYES)、処理部122は、運転者30が「横倒れ姿勢」をとっている可能性があると判断する(STEP49)。
具体的には、運転者30の頭部31の車両20の左ロール方向への回転角θRLが閾値を上回っていると判断された場合、運転者30が左方への「横倒れ姿勢」をとっている可能性があると判断される。運転者30の頭部31の車両20の右ロール方向への回転角θRRが閾値を上回っていると判断された場合、運転者30が右方への「横倒れ姿勢」をとっている可能性があると判断される。この場合、処理部122は、「横倒れ姿勢」にスコアを加算する(図3のSTEP5)。
図25は、処理部122により実行される姿勢推定処理(図3におけるSTEP4)の流れの別例を示している。図18に例示された処理の流れと共通する要素については、同一の参照符号を付与し、繰り返しとなる説明を省略する。
本例においては、STEP42で特定された画素間距離DPと実空間距離DRの対応関係に基づいて、運転者30が「突っ伏し姿勢」をとっているかが推定される。
「突っ伏し姿勢」は、国土交通省により定義されている複数種の「姿勢崩れパターン」の一つである。「突っ伏し姿勢」は、運転者が前方に倒れ、ハンドルの付近に顔が位置している姿勢が継続している状態として定義されている。
図26は、「突っ伏し姿勢」を例示している。「突っ伏し姿勢」は、運転者の顔における特定の位置の、正常時からの車両20の前方向への移動量ΔDFが閾値を上回るとともに車両20の下方向への移動量ΔDDが閾値を上回り、かつ運転者の顔の下方へのピッチ角θPDが閾値を上回った状態として定義される。ΔDFの閾値は、例えば200mmである。ΔDDの閾値は、例えば180mmである。θPDの閾値は、例えば30°である。
本例においては、運転者30が「突っ伏し姿勢」をとっているかを推定するために、処理部122は、取得された画像IMに写り込んだ運転者30の頭特徴点Hに対応する画素の位置を特定し、記憶部124に格納されている正常時における頭特徴点Hに対応する画素の位置と比較する。なお、適用される骨格モデルの仕様に応じて、鼻、目、顔などの特徴点が推定に用いられてもよい。
比較の結果、取得された画像IMに写り込んだ運転者30の頭特徴点Hに対応する画素の位置と、正常時における頭特徴点Hに対応する画素の位置との間の車両20の前後方向における画素間距離が特定されうる。この画素間距離が、STEP42で特定された比に基づいて、車両20内における実空間距離に換算される。この実空間距離は、取得された画像IMに写り込んだ運転者30の頭部31の正常時からの車両20の前方向への移動量に対応している。すなわち、処理部122は、運転者30の頭部31の車両20の前方向への移動量を特定する(図25のSTEP53)。
続いて、処理部122は、換算された実空間距離が閾値を上回っているかを判断する(STEP54)。すなわち、運転者30の頭部31の車両20の前方への移動量ΔDFが閾値を上回っているかを判断する。
換算された実空間距離が閾値を上回っていないと判断された場合(STEP54においてNO)、処理部122は、運転者30が「突っ伏し姿勢」とっている可能性がないと判断する(STEP55)。この場合、処理部122は、「突っ伏し姿勢」にスコアを加算しない。
換算された実空間距離が閾値を上回っていると判断された場合(図25のSTEP54においてYES)、処理部122は、運転者30が「突っ伏し姿勢」をとっている可能性があると判断する(STEP26)。この場合、処理部122は、「突っ伏し姿勢」にスコアを加算する(図3のSTEP5)。
すなわち、本例においては、「突っ伏し姿勢」の定義に含まれている移動量ΔDF、移動量ΔDD、およびピッチ角θPDのうち、移動量ΔDFのみに着目して処理を行なっている。しかしながら、このような構成によっても「突っ伏し姿勢」の推定は可能である。
次に、図27から図29を参照しつつ、処理部122により実行される姿勢推定処理(図3におけるSTEP4)の別例について説明する。図27は、処理の流れの一例を示している。本例においては、運転者30が「突っ伏し姿勢」をとっているかが推定される。
図28は、図4および図5に例示された画像IMのうち、運転者30の上半身が写り込んでいる部分を拡大して示している。本例においては、骨格モデルMを適用する処理により、鼻特徴点NSもまた検出されうる。鼻特徴点NSは、モデル人体の鼻に対応する点である。
まず、処理部122は、撮像装置11により取得された画像IMに写り込んだ運転者30の鼻特徴点NSと左肩特徴点LSの間の車両20の上下方向に対応する方向における距離dを特定する(図27のSTEP61)。鼻特徴点NSと左肩特徴点LSは、上半身における複数の特徴点の一例である。距離dは、画素数により特定される。特定された距離dの値は、記憶部124に記憶される。
続いて、処理部122は、STEP11において特定された距離dの値と記憶部124に記憶されている距離dの値を比較し、減少量が閾値dthを上回っているかを判断する(STEP62)。
図29は、運転者30が「突っ伏し姿勢」をとった場合における鼻特徴点NSと左肩特徴点LSの間の距離dの経時変化を例示している。運転者30が前方に倒れるに連れて、鼻特徴点NSと左肩特徴点LSの間の車両20の上下方向における距離dは、急速に減少する。図示の例においては、時点t1において距離dの減少が始まり、時点t2において減少量が閾値dthを上回っている。
したがって、鼻特徴点NSと左肩特徴点LSの間の車両20の上下方向における距離dの減少量が閾値dthを上回っていると判断された場合(STEP62においてYES)、処理部122は、運転者30が「突っ伏し姿勢」をとっている可能性があると判断する(STEP63)。この場合、処理部122は、「突っ伏し姿勢」にスコアを加算する(図3のSTEP5)。閾値dthは、一般的な運転者30が「突っ伏し姿勢」をとる場合に生じうる距離dの減少量として、統計的に定められうる。
他方、鼻特徴点NSと左肩特徴点LSの間の車両20の上下方向における距離dの減少量が閾値dthを上回っていないと判断された場合(STEP62においてNO)、処理部122は、運転者30が「突っ伏し姿勢」をとっている可能性がないと判断する(STEP64)。この場合、処理部122は、「突っ伏し姿勢」にスコアを加算しない。
運転者30の顔の向きや位置によっては、鼻特徴点NSの特定が困難である場合がある。よって、図27に例示されるように、処理部122は、鼻特徴点NSの特定が不能であるかを判断しうる(STEP65)。
鼻特徴点NSが特定できた場合(STEP65においてNO)、処理はSTEP62に進み、前述の通り鼻特徴点NSと左肩特徴点LSの間の車両20の上下方向における距離dの減少量が閾値dthを上回っているかが判断される。
鼻特徴点NSが特定できない場合(STEP65においてYES)、図28に例示されるように、処理部122は、頭特徴点Hと左肩特徴点LSの間の車両20の上下方向における距離d’を特定する(STEP66)。頭特徴点Hと左肩特徴点LSは、上半身における複数の特徴点の一例である。距離d’は、画素数により特定される。特定された距離d’の値は、記憶部124に記憶される。
この場合、処理部122は、STEP66において特定された距離d’の値と記憶部124に記憶されている距離d’の値を比較し、減少量が閾値dth’を上回っているかを判断する(STEP62)。閾値dthは、一般的な運転者30が「突っ伏し姿勢」をとる場合に生じうる距離d’の減少量として、統計的に定められうる。
頭特徴点Hと左肩特徴点LSの間の車両20の上下方向における距離d’の減少量が閾値dth’を上回っていると判断された場合(STEP62においてYES)、処理部122は、運転者30が「突っ伏し姿勢」をとっている可能性があると判断する(STEP63)。この場合、処理部122は、「突っ伏し姿勢」にスコアを加算する(図3のSTEP5)。
他方、頭特徴点Hと左肩特徴点LSの間の車両20の上下方向における距離d’の減少量が閾値dth’を上回っていないと判断された場合(STEP62においてNO)、処理部122は、運転者30が「突っ伏し姿勢」をとっている可能性がないと判断する(STEP64)。この場合、処理部122は、「突っ伏し姿勢」にスコアを加算しない。
このような構成によれば、顔の向きや位置が「突っ伏し姿勢」の推定に及ぼす影響をさらに抑制できる。
本例においては、運転者30が「突っ伏し姿勢」をとっているかを推定するために、鼻特徴点NSまたは頭特徴点Hと左肩特徴点LSが用いられている。しかしながら、正常姿勢からの逸脱に伴って車両20の上下方向における距離が減少する特徴点同士であれば、運転者30の上半身に含まれるものから適宜の組合せを選択可能である。そのような組合せの例としては、鼻特徴点と首特徴点、左耳特徴点と左肩特徴点などが挙げられる。
正常姿勢からの逸脱に伴って車両20の上下方向における距離が減少する複数の特徴点が運転者30の上半身から適宜に選ばれることにより、画像処理装置12の処理部122は、図23と図24を参照して説明した「横倒れ姿勢」を運転者30がとっているかも推定しうる。
図3に例示される姿勢推定処理(STEP4)においては、図7から図29を参照して説明した様々な異常姿勢のうち二つ以上の異常姿勢について、運転者30が当該姿勢をとっているかの推定がなされうる。したがって、図6に例示される異常推定処理においては、当該二つ以上の異常姿勢についてスコアが閾値を上回っているかの判断がなされる。
少なくとも一つの異常姿勢についてスコアが付与されており、かつ当該スコアが閾値を上回っていない状況は(STEP71においてNO)、運転者30が当該異常姿勢をとっている可能性があるものの、当該異常姿勢をとっているとの推定には至っていないことを意味する。
少なくとも一つの異常姿勢についてスコアが付与されており、かつ当該スコアが閾値を上回っている状況は(STEP71においてYES)、運転者30が当該異常姿勢をとっているとの推定に至っていることを意味する。
運転者30の正常な姿勢から異常な姿勢への移行は、上記の様々な異常姿勢の要素を含みつつ複合的に進行することが一般的である。ある画像情報Iの取得時点において優勢であった特定の異常姿勢が、次の画像情報Iの取得時点においては優勢でなくなり、別の異常姿勢が優勢になることもある。
上記のような構成によれば、規定された複数の異常姿勢の各々を運転者30がとっている可能性が画像情報Iを受け付ける度に判断され、可能性に基づくスコアが付与される。当該スコアが閾値を上回っているかに基づいて異常姿勢の推定がなされるので、運転者30が複数の異常姿勢をとっている可能性を把握しつつ、最終的には運転者30がとっている少なくとも一つの異常姿勢を推定できる。したがって、撮像装置11により取得された画像IMに基づいてなされる運転者30の姿勢異常の推定の確からしさを高めることができる。
付与されたスコアが閾値を上回っているかの判断(図6のSTEP71)の結果として、複数の異常姿勢が同時に閾値を上回る場合がありうる。したがって、処理部122は、複数の異常姿勢が同時に閾値を上回っているかを判断しうる(STEP71においてYES、STEP74)。
付与されたスコアが閾値を上回っている異常姿勢が一つだけである場合(STEP74においてNO)、処理はSTEP72に進む。すなわち、運転者30が当該異常姿勢をとっていると推定される。
付与されたスコアが閾値を上回っている異常姿勢が複数ある場合(STEP74においてYES)、処理部122は、スコアの値が最大である異常姿勢を特定する(STEP75)。その後、処理はSTEP72に進む。すなわち、スコアの値が最大である異常姿勢を運転者30がとっていると推定される。
このような構成によれば、運転者30の動きが複数の異常姿勢の要素を含んでいる場合において、最も優勢である異常姿勢を推定できる。これにより、例えば、当該最も優勢である異常姿勢に対応しうる制御情報Cの出力を行なうことができる。
図7から図29を参照して説明した様々な異常姿勢に対する推定処理が行なわれた結果として、運転者30がいずれの異常姿勢もとっている可能性がないと判断される場合がありうる。しかしながら、姿勢推定処理(図3のSTEP4)は、運転者30の姿勢が正常でないと判断された状況下で実行されている(STEP3においてNO)。したがって、運転者30が未定義の異常姿勢をとっている可能性がある。
処理部122は、姿勢推定処理の終了時において、運転者30の姿勢が全ての異常姿勢に該当しなかったかを判断しうる。運転者30の姿勢が全ての異常姿勢に該当しなかったと判断された場合、処理部122は、STEP5のスコア加算処理において「未定義の異常姿勢」にスコアを加算しうる。
このような構成によれば、画像IMに写り込んだ運転者30の姿勢が規定された複数の異常姿勢のいずれにも該当しないと判断された場合においても、運転者30の姿勢に何らの異常もないという結論を回避し、何らかの異常姿勢をとっているとの取扱いを行なうことができる。したがって、未定義の異常姿勢に対する異常推定システム10の柔軟性を高めることができる。
これまで説明した各機能を有する処理部122は、汎用メモリと協働して動作する汎用マイクロプロセッサにより実現されうる。汎用マイクロプロセッサとしては、CPU、MPU、GPUが例示されうる。汎用メモリとしては、ROMやRAMが例示されうる。この場合、ROMには、上述した処理を実行するコンピュータプログラムが記憶されうる。ROMは、コンピュータプログラムを記憶している記憶媒体の一例である。プロセッサは、ROM上に記憶されたコンピュータプログラムの少なくとも一部を指定してRAM上に展開し、RAMと協働して上述した処理を実行する。上記のコンピュータプログラムは、汎用メモリにプリインストールされてもよいし、通信ネットワークを介して外部サーバからダウンロードされて汎用メモリにインストールされてもよい。この場合、外部サーバは、コンピュータプログラムを記憶している記憶媒体の一例である。
処理部122は、マイクロコントローラ、ASIC、FPGAなどの上記のコンピュータプログラムを実行可能な専用集積回路によって実現されてもよい。この場合、当該専用集積回路に含まれる記憶素子に上記のコンピュータプログラムがプリインストールされる。当該記憶素子は、コンピュータプログラムを記憶している記憶媒体の一例である。処理部122は、汎用マイクロプロセッサと専用集積回路の組合せによっても実現されうる。
記憶部124は、半導体メモリやハードディスク装置により実現されうる。記憶部124は、上記の汎用メモリや記憶素子により実現されてもよい。
上記の実施形態は、本発明の理解を容易にするための例示にすぎない。上記の実施形態に係る構成は、本発明の趣旨を逸脱しなければ、適宜に変更・改良されうる。
上記の実施形態においては、姿勢推定処理(図3のSTEP4)の結果として規定された複数の異常姿勢の少なくとも一つをとっている可能性があると判断された場合、スコア加算処理(図3のSTEP5)において付与されるスコアの値が一定とされている。しかしながら、運転者30が各異常姿勢をとっている可能性に応じて複数種のスコアが付与されてもよい。具体的には、各異常姿勢についてなされる姿勢推定処理において複数個の閾値範囲が設定され、各閾値範囲に応じて異なるスコアが対応付けられうる。
例えば、運転者30が「うつむき姿勢」と「横倒れ姿勢」を同時にとっている可能性があると判断されている状況において、「うつむき姿勢」がとられている可能性がより高いことが閾値範囲に基づいて判断されている場合、「うつむき姿勢」に付与されるスコアは、「横倒れ姿勢」に付与されるスコアよりも高くなる。このような構成によれば、運転者30の動きが複数の異常姿勢の要素を含んでいる場合において、より優勢な異常姿勢が最終的に推定される可能性を高めることができる。すなわち、より精密な異常姿勢の推定が可能となる。
上記の実施形態においては、規定された複数の異常姿勢の各々に付与されるスコアが閾値を上回るかの判断(図6のSTEP71)は、スコアの累積値に基づいてなされている。累積値は、代表値の一例である。しかしながら、平均値、中央値、最頻値などの代表値が用いられ、当該代表値に対応する閾値が設定されてもよい。
上記の実施形態においては、運転者30がとりうる異常姿勢として「よそ見姿勢」、「えび反り姿勢」、「うつむき姿勢」、「首のみ横倒れ姿勢」、「横もたれ姿勢」、「横倒れ姿勢」、および「突っ伏し姿勢」を例示した。しかしながら、骨格モデルMを適用することにより得られる特徴点に基づいて画像IMに写り込んだ運転者30の頭部31を特定可能であり、当該特徴点の位置や移動方向と車両20における規定された方向への頭部31の回転角の関係を見出すことができれば、当該関係に基づいて、適宜の異常姿勢を推定できる。
図30は、そのような異常姿勢の一例として「仰け反り姿勢」を示している。「仰け反り姿勢」は、国土交通省により定義されている複数種の「姿勢崩れパターン」の一つである。「仰け反り姿勢」は、運転者の上半身が車両の後方へ傾き、顔が上を向いている姿勢が継続している状態として定義されている。
具体的には、「仰け反り姿勢」は、運転者の顔における特定の位置の、正常時からの車両20の後方向への移動量ΔDBが閾値を上回り、かつ運転者の顔の上ピッチ方向への回転角θPUが閾値を上回った状態として定義される。ΔDBの閾値は、例えば100mmである。θPUの閾値は、例えば20°である。
画像処理装置12は、車両20に搭載されてもよいし、車両20と周知の無線通信ネットワークを介して通信可能な外部装置として提供されてもよい。この場合、撮像装置11から出力された画像情報Iが、無線通信ネットワークを介して画像処理装置12に送信される。処理部122による姿勢推定処理の結果として出力されうる制御情報Cは、周知の無線通信ネットワークを介して制御装置13へ送信される。
異常推定システム10は、車両20以外の移動体にも適用されうる。他の移動体の例としては、鉄道、航空機、船舶などが挙げられる。