(57)【要約】【課題】対象者の眠気レベルをより正確に判断することができる、画像処理装置、これを用いた監視システム、画像処理方法、及び画像処理プログラムを提供することを目的とする。【解決手段】この画像処理装置は、撮影によって生成され、対象者の顔を含み、時系列に並ぶ複数の画像から、所定時間における目の開閉に係る開閉データを時系列に算出する第１データ取得部と、前記第１データ取得部で算出された時系列の前記開閉データを含む入力情報から、眠気のレベルを出力する学習を行った学習済みの第２データ取得部であって、少なくとも１つのタイムドメイン畳み込み層を含む第２データ取得部と、を備えている。【選択図】図１
2020126378.tif 000002
【特許請求の範囲】
【請求項１】
撮影によって生成され、対象者の顔を含み、時系列に並ぶ複数の画像から、所定時間における前記人の目の開閉に係る開閉データを時系列に算出する第１データ取得部と、
前記第１データ取得部で算出された時系列の前記開閉データが少なくとも含まれた入力情報から、眠気レベルを出力する学習を行った学習済みの第２データ取得部であって、少なくとも１つのタイムドメイン畳み込み層を含む第２データ取得部と、
を備えている、画像処理装置。
【請求項２】
前記第２データ取得部は、複数のメインブロックと、複数のサブブロックと、グローバルプーリング層と、全結合層と、を結合することで構成されており、
前記各メインブロック及び各サブブロックには、少なくとも前記タイムドメイン畳み込み層が含まれており、
前記各メインブロックのタイムドメイン畳み込み層のカーネルサイズは、２以上であり、
前記各サブブロックのタイムドメイン畳み込み層のカーネルサイズは、１であり、
前記複数のメインブロックは直列的に結合され、
前記複数のメインブロックの少なくとも１つには、前記サブブロックが結合されており、
前記サブブロック及び最も出力側のメインブロックのうち、少なくとも前記サブブロックの出力が前記グローバルプーリング層に入力され、
前記グローバルプーリング層の出力が、前記全結合層に入力されている、請求項１に記載の画像処理装置。
【請求項３】
全ての前記メインブロックに前記サブブロックが結合されており、
前記各サブブロックからの出力が前記グローバルプーリング層に入力されている、請求項２に記載の画像処理装置。
【請求項４】
前記複数のメインブロックの少なくとも１つは、プーリング層を有している、請求項２または３に記載の画像処理装置。
【請求項５】
前記第１データ取得部は、異なる前記所定時間における複数種の前記開閉データを出力し、
前記第２データ取得部は、前記複数種の前記開閉データを入力とする、請求項１から４のいずれかに記載の画像処理装置。
【請求項６】
前記第１データ取得部は、
前記動画から、目の形状に係る形状データを出力する形状データ取得部と、
所定時間内の複数の前記形状データから、前記開閉データを算出する開閉データ取得部と、
を備えている、請求項１から５のいずれかに記載の画像処理装置。
【請求項７】
前記第２データ取得部は、前記開閉データ及びこれに対応する前記形状データを入力とする、請求項６に記載の画像処理装置。
【請求項８】
前記開閉データの１つは、前記所定時間における前記動画の全フレーム数に対する、前記目が閉じていたフレーム数の割合である、請求項１から７のいずれかに記載の画像処理装置。
【請求項９】
前記開閉データの１つは、前記所定時間における前記動画の全フレーム数に対する、前記目が完全に開いていないフレーム数の割合である、請求項１から８のいずれかに記載の画像処理装置。
【請求項１０】
カメラと、
前記カメラによって撮影された動画が入力される、請求項１から８のいずれかに記載の画像処理装置と、
前記画像処理装置において算出された眠気レベルが所定値以上である場合に、居眠りに対する警告を発する報知部と、
を備えている、監視システム。
【請求項１１】
撮影によって生成され、対象者の顔を含み、時系列に並ぶ複数の画像から、所定時間における目の開閉に係る開閉データを時系列に算出するステップと、
少なくとも１つのタイムドメイン畳み込み層を含む学習済みのデータ取得部によって、前記時系列の開閉データを少なくとも含む入力情報から、眠気のレベルを出力するステップと、
を備えている、画像処理方法。
【請求項１２】
コンピュータに、
撮影によって生成され、対象者の顔を含み、時系列に並ぶ複数の画像から、所定時間における目の開閉に係る開閉データを時系列に算出するステップと、
少なくとも１つのタイムドメイン畳み込み層を含む学習済みのデータ取得部によって、前記時系列の開閉データを少なくとも含む入力情報から、眠気のレベルを出力するステップと、
を実行させる、画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、これを備えた監視システム、画像処理方法、及び画像処理プログラムに関する。
【背景技術】
【０００２】
従来より、自動車の運転者の居眠りを監視するための種々の技術が提案されている。例えば、特許文献１には、カメラによって運転者の顔を撮影し、運転者の目の開眼時間を取得している。そして、取得した開眼時間のパラツキが大きければ、運転者の覚醒度が高いと判定し、開眼時間のパラツキが小さければ、運転者の覚醒度が低いと判定している。すなわち、この技術では、開眼時間の閾値を設定し、この閾値に基づいて、覚醒度を判定している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１８４０６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、眠気レベルは経時的に変化するものであるため、眠気レベルの判定は容易ではなく、より精度の高い判定が要望されていた。また、このような問題は、自動車の運転に限られず、例えば、工場での作業者の居眠りの判定においても起こりうる問題である。本発明は、この問題を解決するためになされたものであり、対象者の眠気レベルをより正確に判断することができる、画像処理装置、これを用いた監視システム、画像処理方法、及び画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
この画像処理装置は、撮影によって生成され、対象者の顔を含み、時系列に並ぶ画像から、所定時間における目の開閉に係る開閉データを時系列に算出する第１データ取得部と、前記第１データ取得部で算出された時系列の前記開閉データが少なくとも含まれた入力情報から、眠気のレベルを出力する学習を行った学習済みの第２データ取得部であって、少なくとも１つのタイムドメイン畳み込み層を含む第２データ取得部と、を備えている。
【０００６】
上記画像処理装置において、前記第２データ取得部は、複数のメインブロックと、複数のサブブロックと、グローバルプーリング層と、全結合層と、を結合することで構成されており、前記各メインブロック及び各サブブロックには、少なくとも前記タイムドメイン畳み込み層が含まれており、前記各メインブロックのタイムドメイン畳み込み層のカーネルサイズは、２以上であり、前記各サブブロックのタイムドメイン畳み込み層のカーネルサイズは、１であり、前記複数のメインブロックは直列的に結合され、前記複数のメインブロックの少なくとも１つには、前記サブブロックが結合されており、前記サブブロック及び最も出力側のメインブロックのうち、少なくとも前記サブブロックの出力が前記グローバルプーリング層に入力され、前記グローバルプーリング層の出力が、前記全結合層に入力されているものとすることができる。
【０００７】
上記画像処理装置においては、全ての前記メインブロックに前記サブブロックが結合されており、前記各サブブロックの出力が前記グローバルプーリング層に入力されているものとすることができる。
【０００８】
上記画像処理装置において、前記複数のメインブロックの少なくとも１つは、プーリング層を有することができる。
【０００９】
上記画像処理装置において、前記第１データ取得部は、異なる前記所定時間における複数種の前記開閉データを出力し、前記第２データ取得部は、前記複数種の前記開閉データを入力とすることができる。
【００１０】
上記画像処理装置において、前記第１データ取得部は、前記動画から、目の形状に係る形状データを出力する形状データ取得部と、所定時間内の複数の前記形状データから、前記開閉データを算出する開閉データ取得部と、を備えることができる。
【００１１】
上記画像処理装置において、前記第２データ取得部は、前記開閉データ及びこれに対応する前記形状データを入力とすることができる。
【００１２】
上記画像処理装置において、前記開閉データの１つは、前記所定時間における前記動画の全フレーム数に対する、前記目が閉じていたフレーム数の割合とすることができる。
【００１３】
上記画像処理装置において、前記開閉データの１つは、前記所定時間における前記動画の全フレーム数に対する、前記目が完全に開いていないフレーム数の割合とすることができる。
【００１４】
この監視システムは、自動車に設置される監視システムであって、カメラと、前記カメラによって撮影された動画が入力される、上述したいずれかの画像処理装置と、前記画像処理装置において算出された眠気レベルが所定値以上である場合に、居眠りに対する警告を発する報知部と、を備えている。
【００１５】
この画像処理方法は、撮影によって生成され、対象者の顔を含み、時系列に並ぶ複数の画像から、所定時間における目の開閉に係る開閉データを算出するステップと、時系列に並ぶ少なくとも１つのタイムドメイン畳み込み層を含む学習済みのデータ取得部によって、前記時系列の開閉データを少なくとも含む入力情報から、眠気のレベルを出力するステップと、を備えている。
【００１６】
この画像処理プログラムは、コンピュータに、撮影によって生成され、対象者の顔を含み、時系列に並ぶ複数の画像から、所定時間における目の開閉に係る開閉データを算出するステップと、時系列に並ぶ少なくとも１つのタイムドメイン畳み込み層を含む学習済みのデータ取得部によって、前記時系列の開閉データを少なくとも含む入力情報から、眠気のレベルを出力するステップと、を実行させる。
【発明の効果】
【００１７】
本発明によれば、対象者の眠気レベルをより正確に判断することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施形態に係る運転監視システムの概要を示す図である。
【図２】図１の画像処理装置のハードウェア構成の一例を示すブロック図である。
【図３】図１の学習装置のハードウェア構成の一例を示すブロック図である。
【図４】図１の画像処理装置のソフトウェア構成の一例を示すブロック図である。
【図５】図４の第２データ取得部のソフトウェア構成の一例を示すブロック図である。
【図６】図５の第２データ取得部におけるタイムドメイン畳み込み層の処理を説明する図である。
【図７】図５の第２データ取得部におけるタイムドメイン畳み込み層の処理を説明する図である。
【図８】図１の学習装置のソフトウェア構成の一例を示すブロック図である。
【図９】図１の運転監視システムの動作を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明に係る運転監視システム、画像処理装置、画像処理方法、及び画像処理プログラムの一実施形態について、図面を参照しつつ説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
【００２０】
＜１．適用例＞
まず、図１を参照しつつ、本実施形態に係る運転監視システムについて説明する。この運転監視ステムは、自動車に設けられるものであり、自動車１００に設けられたカメラ１０１と、このカメラ１０１によって撮影された運転者の顔の動画を取得し、得られた動画から運転者の眠気レベルを算出する画像処理装置１０と、居眠り運転の警告を行う報知器１０６と、を備えている。なお、ここでいう動画とは、運転者が含まれる時系列に並ぶ複数の画像を意味するが、画像とは、カメラで撮影されたフレーム画像などの各種静止画、あるいは圧縮された画像を意味する。
【００２１】
画像処理装置１０は、第１データ取得部１と、第２データ取得部２とを有している。そして、第１データ取得部には、第１〜第３処理部１１，１３，１６が設けられている。第１データ取得部１では、得られた動画の各フレームから、第１処理部１１によって、運転者の目の画像１２を抽出し、この目の画像１２から第２処理部（形状データ取得部）１３によって、目の形状に関する位置データ１４を算出する。第１処理部１１は、公知の画像認識技術により、顔の画像から目を検出し、目を含む画像１２を抽出する。また、第２処理部１３は、ニューラルネットワークなどの機械学習器によって構成される。この学習器のよって生成される位置データ１４は、例えば、目の輪郭上にある複数の点１４１の二次元座標、瞳の二次元座標等とすることができる。そして、この位置データ１４から、目の形状に関する形状データ１５を算出することができる。形状データ１５は、例えば、目の中心の位置、瞳の中心の位置、目の幅と高さ、目の開度などとすることができるが、これは一例であり、目の形状に係る他のデータを算出することもできる。なお、目の開度とは、例えば、目が完全に開いている状態を１，目が完全に閉じている状態を０としたときの目が開いている度合いを０〜１の数字で表したものである。このように、第２処理部１３では、動画の各フレームにおける運転者の目の静的なデータ、つまり形状データ１５が取得される。また、第２処理部１３は、目の画像１２が入力されたときに、それに対応する位置データ１４が出力されるように、学習装置４によって学習されている。
【００２２】
続いて、第３処理部（開閉データ取得部）１６では、複数のフレームを用い、上記のように得られた目の形状データ１５から、所定時間における目の動的なデータ、つまり目の開閉データ１７を算出する。ここでは、以下の４つの開閉データ１７を算出する。
【００２３】
・ＰＥＲＣＬＯＳ（Percentage of eyelid closure）：所定時間における全フレーム数に対する、目が閉じているフレーム数の割合
・瞬き頻度：所定時間における全フレーム数に対する、目が開いた状態から目が閉じた状態に遷移している回数の割合
・ＡＥＣＴ（Average eye closed time）：所定時間における瞬きの合計に対する、目が閉じているフレーム数の割合
・Ｓｏｆｔ  ＰＥＲＣＬＯＳ（Soft Percentage of eyelid closure）：所定時間における全フレーム数に対する、目が完全に開いていないフレーム数の割合
【００２４】
但し、上記開閉データ１７は、一例であり、目の開閉に係る経時的な変化、度合いなどを表せるものであれば、特には限定されない。また、上記全ての開閉データ１７を用いなくてもよく、一部を用いてもよい。
【００２５】
このように、第１データ取得部１では、運転者の顔を撮影した動画から、所定時間における、運転者の目の動的な開閉データ１７を算出する。
【００２６】
第２データ取得部２は、タイムドメイン畳み込み層を有するニューラルネットワークなどの機械学習器によって構成される。すなわち、時間の経過を考慮した機械学習器によって構成されている。この第２データ取得部２では、第１データ取得部１で算出された形状データ１５と開閉データ１７の両方を入力とし、眠気レベルを出力とする。眠気レベルは、種々の指標で示すことができるが、例えば、眠気のレベルを０〜４の５段階で表すことができる。具体的には、眠気がない：０、少し眠い：１、眠い：２、かなり眠い：３、極度に眠い：４とすることができる。なお、第２データ取得部２は、形状データ１５及び開閉データ１７を入力としたとき、それに対応する眠気レベルを出力するように、学習装置４によって学習されている。
【００２７】
以上のように、本実施形態においては、まず、第１データ取得部１において、動画から、目の開閉の経時的な変化を表す開閉データ１７を算出し、この開閉データ１７から、経時的な機械学習がなされた第２データ取得部２によって眠気レベルを算出する。したがって、入力データ及び学習器の何れも時間の経過を考慮したものを用いる。したがって、眠気レベルを正確に算出することができる。
【００２８】
＜２．構成例＞
＜２−１．ハードウェア構成＞
＜２−１−１．画像処理装置＞
次に、本実施形態に係る画像処理装置１０のハードウェア構成の一例について説明する。図２は、画像処理装置のハードウェア構成の一例を示すブロック図である。
【００２９】
この画像処理装置１０は、制御部３１、記憶部３２、通信インタフェース３３、及び外部インタフェース３４が電気的に接続されたコンピュータである。なお、図２では、通信インタフェース３３及び外部インタフェース３４を「通信Ｉ／Ｆ」及び「外部Ｉ／Ｆ」と記載している。この点は、後述する学習装置においても同様である。
【００３０】
制御部３１は、ＣＰＵ、ＲＡＭ、ＲＯＭ等を含み、プログラム及びデータに基づいて各種情報処理を実行するように構成される。記憶部３２は、例えば、ＲＡＭ、ＲＯＭ等で構成され、画像処理プログラム３２１、学習結果データ３２２等を記憶する。画像処理プログラム３２１は、後述するように、カメラ１０１で撮影された動画から運転者の眠気レベルを算出するための処理を実行させるためのプログラムであり、学習装置４で生成された学習結果データ３２２に基づいて制御処理を行う。制御部３１は、この画像処理プログラム３２１を解釈及び実行することで、後述する各ステップの処理を実行するように構成される。
【００３１】
通信インタフェース３３は、例えば、有線ＬＡＮ（Local Area Network）モジュール、無線ＬＡＮモジュール等であり、有線又は無線通信を行うためのインタフェースである。すなわち、通信インタフェース３３は、他の装置と通信を行うように構成された通信部の一例である。本実施形態では、ネットワーク１０を介して、上述した学習装置４に接続されている。
【００３２】
外部インタフェース３４は、外部装置と接続するためのインタフェースであり、接続する外部装置に応じて適宜構成される。本実施形態では、外部インタフェース３４が、カメラ１０１、入力装置１０５、及び出力装置１０６に接続されている。入力装置１０５は、例えば、キーボード、タッチパネル等で構成され、出力装置１０６は、ディスプレイ等の表示装置や、スピーカ、警報器などの音声の出力装置により構成される。
【００３３】
なお、画像処理装置１０の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。制御部３１は、複数のプロセッサを含んでもよい。また、制御部３１は、ＦＰＧＡにより構成されてもよい。記憶部３２は、制御部３１に含まれるＲＡＭ及びＲＯＭにより構成されてもよい。また、記憶部３２は、ハードディスクドライブ、ソリッドステートドライブ等の補助記憶装置で構成されてもよい。画像処理装置１０は、提供されるサービス専用に設計された情報処理装置の他、制御する対象に応じて、汎用のデスクトップＰＣ、タブレットＰＣ等であってもよい。以上の点は、後述する学習装置４においても同じである。
【００３４】
＜２−１−２．カメラ＞
図１に示すように、カメラ１０１は、自動車１００の運転席に座る運転者を撮影するようになっている。なお、カメラ１０１は、所定の場所に固定されてもよいし、モータ等により撮影方向（向き）を変更可能に構成されてもよい。カメラ１０１には、一般のデジタルカメラ、ビデオカメラ、３６０度カメラ等が用いられてよいし、可視光撮影用でも赤外光撮影用カメラであってもよい。
【００３５】
＜２−１−３．学習装置＞
図３は、本実施形態に係る学習装置を示すブロック図である。図４に示すように、本実施形態に係る学習装置４は、画像処理装置１０の制御部３１を学習するためのものであり、制御部４１、記憶部４２、外部インタフェース４３、通信インタフェース４４、及びドライブ４７が電気的に接続されたコンピュータである。
【００３６】
制御部４１は、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等を含み、情報処理に応じて各構成要素の制御を行う。記憶部４２は、例えば、ハードディスクドライブ、ソリッドステートドライブ等の補助記憶装置であり、制御部４１で実行される第１学習プログラム４２１、第１学習結果データ４２２、第１学習データ４２３、第２学習プログラム４２４、第２学習結果データ４２５、第２学習データ４２６等を記憶する。
【００３７】
第１学習プログラム４２１は、学習装置４に、ニューラルネットワーク等の機械学習による学習処理を実行させるためのプログラムであり、学習処理の結果として、第１学習結果データ４２２を生成する。この学習処理を第１学習と称することとする。この第１学習結果データ４２２は、画像処理装置１０の第２処理部１３の設定を行うためのデータである。また、第１学習データ４２３は、学習装置４が第１学習を行うためのデータである。
【００３８】
第２学習プログラム４２４は、学習装置４に、ニューラルネットワーク等の機械学習による学習処理を実行させるためのプログラムであり、学習処理の結果として、第２学習結果データ４２５を生成する。この学習処理を第２学習と称することとする。この第２学習結果データ４２５は、画像処理装置１０の第２データ取得部２の設定を行うためのデータである。また、第２学習データ４２６は、学習装置４が第２学習を行うためのデータである。
【００３９】
外部インタフェース４３及び通信インタフェース４４は、画像処理装置１０で示したものと同じである。外部インタフェース４３には、入力装置４５及び出力装置４６が接続される。入力装置４５は、例えば、マウス、キーボード等の入力を行うための装置であり、各学習データ４２３，４２６の入力等が行われる。出力装置４６は、例えば、ディスプレイ、スピーカ等の出力を行うための装置であり、例えば、ディスプレイには、学習装置４の操作画面等が表示される。
【００４０】
ドライブ４７は、例えば、ＣＤ（Compact Disk）ドライブ、ＤＶＤ（Digital Versatile Disk）ドライブ等であり、記憶媒体４９に記憶されたプログラムを読み込むための装置である。ドライブ４７の種類は、記憶媒体４９の種類に応じて適宜選択されてよい。上記各学習プログラム４２１、４２４及び／又は学習結果データ４２２、４２５は、この記憶媒体４９に記憶されていてもよい。
【００４１】
記憶媒体４９は、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、このプログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。画像処理装置１０は、この記憶媒体４９から、各学習プログラム４２１、４２４及び／又は学習結果データ４２２、４２５を取得してもよい。
【００４２】
ここで、図３では、記憶媒体４９の一例として、ＣＤ、ＤＶＤ等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体４９の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
【００４３】
＜２−２．ソフトウェア構成＞
＜２−２−１．画像処理装置＞
次に、図４を参照しつつ、画像処理装置１０のソフトウェア構成について説明する。図４に示すように、画像処理装置１０の制御部３１は、記憶部３２に記憶された画像処理プログラム３２１をＲＡＭに展開すると、その画像処理プログラム３２１をＣＰＵにより解釈及び実行して、第１データ取得部１、第２データ取得部２、及び入力部３１１を備えたコンピュータとして機能する。また、第１データ取得部１には、第１処理部１１、第２処理部１３、及び第３処理部１６が含まれている。
【００４４】
入力部３１１は、カメラで１０１撮影された動画データを逐次取得し、これを第１処理部１１に入力する。また、入力部３１１は、学習装置４から第１学習結果データ４２２及び第２学習結果データ４２５を取得する。そして、第１学習結果データ４２２は、第２処理部１３の設定のために用いられ、第２学習結果データ４２５は、第２データ取得部２の設定のために用いられる。
【００４５】
第１処理部１１では、公知の画像処理技術により、入力された動画データからフレーム毎に目の検出が行われ、各フレーム画像から目の画像１２の抽出が行われる。そして、抽出された目の画像１２は、フレーム毎に第２処理部１３に入力される。
【００４６】
第２処理部１３では、入力された目の画像１２から、これに対応する目の位置データ１４が出力される。目の位置データ１４は、目の輪郭に沿う複数の点１４１の座標、瞳の座標等が含まれる。このような位置データ１４の出力を行う第２処理部１３は、ニューラルネットワークで構成されている。具体的には、図４に示すような、いわゆる深層学習に用いられる多層構造のニューラルネットワークであり、入力から順に、入力層１３１、中間層（隠れ層）１３２、及び出力層１３３を備えている。
【００４７】
このニューラルネットワークは１層の中間層１３２を備えており、入力層１３１の出力が中間層１３２の入力となり、中間層１３２の出力が出力層１３３の入力となっている。ただし、中間層１３２の数は１層に限られなくてもよく、ニューラルネットワークは、中間層１３２を２層以上備えてもよい。
【００４８】
各層１３１〜１３３は、１又は複数のニューロンを備えている。例えば、入力層１３１のニューロンの数は、入力される目の画像１２の画素数等に応じて設定することができる。中間層１３２のニューロンの数は実施の形態に応じて適宜設定することができる。また、出力層１３３も、出力する目の位置データ１４の数に応じて設定することができる。
【００４９】
隣接する層のニューロン同士は適宜結合され、各結合には重み（結合荷重）が設定されている。図４の例では、各ニューロンは、隣接する層の全てのニューロンと結合されているが、ニューロンの結合は、このような例に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。
【００５０】
各ニューロンには閾値が設定されており、基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。この第２処理部１３では、このようなニューラルネットワークの入力層１３１に、上記目の画像１２に係るデータを入力することで、出力層１３３からそれに対応する目の位置データ１４を得る。
【００５１】
なお、このようなニューラルネットワークの構成（例えば、ニューラルネットワークの層数、各層におけるニューロンの個数、ニューロン同士の結合関係、各ニューロンの伝達関数）、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報は、第１学習結果データ４２２に含まれている。画像処理装置１０は、第１学習結果データ４２２を参照して、学習済みの第２処理部１３の設定を行う。
【００５２】
こうして第２処理部１３から出力された目の位置データ１４に対しては演算処理が行われ、上述したように、目の形状データ１５、つまり目の中心位置、瞳の中心位置、目の幅と高さ、及び目の開度が、算出される。そして、この目の形状データ１５は、第３処理部１６に入力され、上述した目の開閉データ１７、つまりＰＥＲＣＬＯＳ、まばたき頻度、ＡＥＣＴ，Ｓｏｆｔ  ＰＥＲＣＬＯＳが算出される。ここで、算出される開閉データ１７は、所定時間おきに算出される。特に、本実施形態では、複数の異なる時間の開閉データが算出される。一例として、５秒毎の開閉データ、１０秒毎の開閉データ、及び２０秒毎の開閉データの３種類の開閉データ１７が、逐次算出される。但し、開閉データ１７を算出する時間は適宜変更でき、また、時間の種類の数も適宜変更することができる。その後、各開閉データ、及びこれに対応する形状データが第２データ取得部２に入力される。以下、これら開閉データ１７及び形状データ１５をまとめて入力データと称することがある。
【００５３】
＜２−２−２．第２データ取得部＞
次に、第２データ取得部２における処理について説明する。第２データ取得部２は、複数のいわゆるタイムドメイン畳み込みニューラルネットワーク（Time-domain CNN）により構成されている。具体的には、第１メインブロック２１、第２メインブロック２２、及び第３メインブロック２３を有しており、これらが入力側から出力側へ、この順で直列に結合されている。各メインブロック２１〜２３は、タイムドメイン畳み込み層２１１，２２１，２３１、正規化処理層２１２，２２２，２３２、及び活性化処理層２１３，２２３，２３３を備えており、第２メインブロック２２と第３メインブロック２３は、さらにプーリング層２２４，２３４を備えている。正規化処理層２１２，２２２，２３２、及び活性化処理層２１３，２２３，２３３は、一般的な畳み込みニューラルネットワークで用いられる公知の層である。
【００５４】
続いて、図６を参照しつつ、タイムドメイン畳み込み層２１１，２２１，２３１の処理について説明する。タイムドメイン畳み込み層２１１，２２１，２３１は、上述した入力データの畳み込み演算を行う層である。図６に示すように、入力データは、時系列に並ぶデータであり（説明の便宜のため、一次元のデータとする）、形状データ、５秒毎の開閉データ、１０秒毎の開閉データ、及び２０秒毎の開閉データである。但し、図６では、説明の便宜のため、４フレーム分の画像を５秒間のデータとし、２０秒毎の開閉データは省略している。例えば、５秒毎の開閉データは、４フレームの形状データによって順次作成され、１０秒毎の形状データは、８フレームの形状データによって順次作成される。こうして時系列に並ぶ形状データ及び開閉データが作成されると、１フレームずつすらしながら、４フレーム分のデータを、タイムドメイン畳み込み層２１１，２２１，２３１に順次入力する。但し、フレームの数である「４」は、説明のための一例であり、これに限定されない。
【００５５】
例えば、図７に示すように、抽出された時刻ｔ＋７のデータは、４つのフレームのデータが時系列に並ぶように結合し、これを入力とする。そして、畳み込み層２１１，２２１，２３１では、結合されたデータに対し、カーネルサイズが２以上の一次元のカーネル（フィルタ）によって畳み込みを行う（説明の便宜のため、図６に示す実際のカーネルサイズとは異なり、カーネルサイズを２にしている）。畳み込みは、時系列に対応するデータ（図７の横方向に並ぶ一列のデータ）に対して行われる。図７の縦方向には、異なる特徴が並んでいるので（例えば、形状データであれば、目の中心位置、瞳の中心位置等）、図示を省略するが、これらに対しても一列ずつ畳み込みを行う。
【００５６】
そして、畳み込み処理によって得られた出力データを、正規化処理層及び活性化処理層に順に入力し、出力値を得る。また、第２及び第３メインブロック２２，２３においては、さらにプーリング層２２４，２３４によりプーリング処理を行う。このプーリング処理は、特には限定されないが、例えば、データの圧縮を行う最大プーリング処理を行うことができる。本実施形態のプーリング層２２４，２３４は、全ての最大プーリング処理を行うこととし、出力を半分に圧縮することとする。また、図５に示すように、第１〜第３メインブロック２１〜２３におけるカーネルの数、及びカーネルサイズが相違している。例えば、第１メインブロックでは、カーネルの数が３２であるため、出力されるデータ列も３２となる。但し、カーネルの数、及びカーネルサイズは一例であり、適宜変更が可能である。
【００５７】
また、各メインブロック２１〜２３にはサブブロック２４〜２６がそれぞれ結合されている。すなわち、第１〜第３メインブロック２１〜２３には、それぞれ、第１〜第３サブブロック２４〜２６が結合されている。したがって、例えば、第１メインブロック２１の出力は、第２メインブロック２２と、第１サブブロック２４に入力される。また、第３メインブロック２３には第３サブブロック２６のみが結合されている。各サブブロック２４〜２６は、タイムドメイン畳み込み層２４１，２５１，２６１、及び活性化処理層２４２，２５２，２６２を備えており、カーネルサイズが、メインブロック２１〜２３とは異なり、１であることが特徴となっている。したがって、各サブブロック２４〜２６では、時間を考慮した畳み込みは行わず、活性化処理層２４２，２５２，２６２によって、単に、入力されたデータ列の重み付けするような処理がなされる。
【００５８】
こうして各サブブロック２４〜２６からの出力はグローバルプーリング層に入力される。この例では、第１サブブロック２４、第２サブブロック２５、及び第３サブブロック２６から、グローバルプーリング層２７へ、それぞれ３２，６４，及び１２８の合計２１４のデータ列が入力される。すなわち、グローバルプーリング層２７は、２１４のニューロンを有している。そして、グローバルプーリング層２７は、全結合層２８に結合されている。全結合層２８は、隣接する層の間のニューロン全てを結合した層であり、眠気レベルが出力される。すなわち、全結合層２８に含まれる各ニューロンは、隣接する層に含まれる全てのニューロンに結合される。全結合層２８は、２層以上で構成されてもよい。そして、この眠気レベルは、ディスプレイやスピーカなどの出力装置１０６から出力それる。
【００５９】
なお、各ブロック２１〜２６の各層に含まれるニューロン（ノード）の数は、実施の形態に応じて適宜選択されてよい。隣接する層のニューロン同士は適宜結合され、各結合には重み（結合荷重）が設定されている。各ニューロンには閾値が設定されており、基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。各層に含まれる各ニューロン間の結合の重み及び各ニューロンの閾値は、演算処理に利用される各ブロック２１〜２６のパラメータの一例である。
【００６０】
＜２−２−３．学習装置＞
次に、本実施形態に係る学習装置４のソフトウェア構成の一例を説明する。図８は、学習装置のソフトウェア構成の一例を示すブロック図である。
【００６１】
第１学習を行うとき、つまり、第２処理部１３のための第１学習結果データ４２２を生成するとき、学習装置４の制御部４１は、記憶部４２に記憶された第１学習プログラム４２１をＲＡＭに展開する。そして、制御部４１は、ＲＡＭに展開された第１学習プログラム４２１をＣＰＵにより解釈及び実行して、各構成要素を制御する。これによって、図８に示されるとおり、本実施形態に係る学習装置４は、第１学習データ取得部４０１、第１学習処理部４０２、及び送信部４０３を備えるコンピュータとして機能する。また、第１学習処理部には、第１学習器４０６が含まれる。
【００６２】
一方、第２学習を行うとき、つまり第２データ取得部２のための第２学習結果データ４２５を生成するとき、学習装置４の制御部４１は、記憶部４２に記憶された第２学習プログラム４２４をＲＡＭに展開する。これにより、学習装置４は、第２学習データ取得部４０４、第２学習処理部４０５、及び送信部４０３を備えるコンピュータとして機能する。また、第２学習処理部４０５には、第２学習器４０７が含まれる。
【００６３】
まず、第１学習について説明する。第１学習データ取得部４０１は、第１学習のための第１学習データ４２３を取得する。すなわち、第２処理部１３の入力となる学習用の目の画像と、各目の画像に対応する目の位置データとの組を複数取得する。
【００６４】
次に、この第１学習データ４２３を用いて、第１学習処理部４０２は、第１学習器４０６の学習を行う。第１学習器４０６は、第２処理部１３と同じネットワーク構造を有するニューラルネットワークにより構成されている。そして、第１学習処理部４０２は、誤差逆伝播法（Back propagation）などの学習処理により、目の画像を入力すると、各目の画像に対応する目の位置データを出力するとニューラルネットワークを構築する。そして、第１学習処理部４０２は、構築したニューラルネットワークの構成、各ニューロン間の結合の重み、及び各ニューロンの閾値等を示す情報を第１学習結果データ４２２として記憶部４２に格納する。そして、この第１学習結果データ４２２は、送信部４０３によって画像処理装置１０に送信され、第２処理部１３の設定に用いられる。
【００６５】
続いて、第２学習について説明する。第２学習データ取得部４０４は、第２学習のための第２学習データ４２６を取得する。すなわち、第２データ取得部２の入力となる学習用の上述した入力データと、各入力データに対応する眠気レベルとの組を複数取得する。
【００６６】
これに続いて、この第２学習データ４２６を用いて、第２学習処理部４０５は、第２学習器４０７の学習を行う。第２学習器４０７は、第２データ取得部２と同じネットワーク構造を有するニューラルネットワークにより構成されている。そして、第２学習処理部４０５は、誤差逆伝播法（Back propagation）などの学習処理により、入力データを入力すると、各目の画像に対応する目の位置データを出力するとニューラルネットワークを構築する。そして、第２学習処理部４０５は、構築したニューラルネットワークの構成、各ニューロン間の結合の重み、及び各ニューロンの閾値等を示す情報を第２学習結果データ４２５として記憶部４２に格納する。そして、この第２学習結果データ４２５は、送信部４０３によって画像処理装置１０に送信され、第２データ取得部２の設定に用いられる。
【００６７】
＜３．画像処理装置の動作＞
次に、図９を参照しつつ、画像処理装置１０の動作例を説明する。図９は、画像処理装置における学習器の更新の処理手順の一例を例示するフローチャートである。なお、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【００６８】
まず、自動車の運転が開始されると、カメラ１０１によって運転者の顔の撮影を開始する(ステップＳ１０１)。そして、上記のように、撮影された動画を画像処理装置１０に逐次入力し、眠気レベルを算出する(ステップＳ１０２)。眠気レベルは、経時的に算出する。そして、算出された眠気レベルが所定値以上、例えば、眠気レベル２以上になったときに(ステップＳ１０３のＹＥＳ)、警報器を駆動し(ステップＳ１０４)、運転者に居眠り運転の警告を行う。そして、運転を停止する場合(ステップＳ１０５のＹＥＳ)、例えば、イグニションキーをオフにした場合には、画像処理装置１０による処理を停止する。一方、眠気レベルが１以下である場合には(ステップＳ１０３のＮＯ)、運転が停止するまで、撮影と眠気レベルの算出を続けていく。
【００６９】
＜４．特徴＞
以上のように、本実施形態によれば、次の効果を得ることができる。
（１）運転者を撮影した動画から目の開閉データを取得している。すなわち、所定時間内に生じる目の開閉に関する動的なデータを取得し、さらに、動画から得られた目の形状に関する静的なデータを取得し、これらの両方に基づいて、眠気レベルを算出している。したがって、眠気レベルを正確に算出することができる。
【００７０】
そして、このような動的なデータを、時間経過を考慮できるタイムドメイン畳み込み層を有するニューラルネットワークの入力とすることで、入力データと、これを入力とするニューラルネットワークとの親和性が向上し、眠気レベルをより正確に算出することができる。
【００７１】
（２）第２データ取得部２では、タイムドメイン畳み込み層を有する複数のメインブロック２１〜２３を直列に結合し、これをグローバルプーリング層２７及び全結合層２８に接続している。このように、複数のメインブロック２１〜２３でデータが順次処理されることで、最も出力側の第３メインブロック２３では、眠気レベルの算出のためのより強い特徴を持ったデータが出力される。これに対し、本実施形態では、各メインブロック２１〜２３と並列に結合されたサブブロック２４〜２６を有している。そして、これらサブブロック２４〜２６を、グローバルプーリング層２７に接続し、全結合層２８から眠気レベルを出力している。これにより、グローバルプーリング層２７では、複数のメインブロック２１〜２３を経た、特徴の強いデータのみならず、例えば、入力側の第１メインブロック２１から出力された特徴がまだ強くないデータも入力される。したがって、グローバルプーリング層２７では、より広範なデータが入力されるため、眠気レベルをさらに正確に算出することができる。なお、サブブロック２４〜２６の畳み込み層では、カーネルサイズを１にしているが、これは、各メインブロック２１〜２３の出力の重要度を調整するためである。
【００７２】
（３）第２データ取得部２には、３つの異なる時間における開閉データ１７を用いている。眠気レベルは、時間の経過によって変化するため、複数種の時間のデータを入力とすることで、より正確な眠気レベルを算出することができる。
【００７３】
＜５．変形例＞
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
【００７４】
＜５−１＞
上記実施形態では、第２データ取得部２において、形状データ１５と開閉データ１７とを入力としているが、開閉データ１７のみを入力とすることもできる。また、第１データ取得部１では、形状データ１５を算出し、さらにこの形状データ１５から開閉データ１７を算出しているが、撮影された動画から開閉データ１７を直接算出することもできる。すなわち、第１データ取得部１では、少なくとも、第２データ取得部２に入力するための開閉データ１７が取得できればよく、その方法は特には限定されない。
【００７５】
また、上記実施形態において、形状データ１５を算出する第２処理部１３は、ニューラルネットワークを有しているが、これ以外の公知の手法で、形状データ１５を算出することもできる。
【００７６】
＜５−２＞
第２データ取得部２では、３つのメインブロック２１〜２３と、３つのサブブロック２４〜２６を用いてネットワークを構成しているが、これに限定されない。すなわち、メインブロック２１〜２３の数及びサブブロック２４〜２６の数は適宜変更することができる。また、最も出力側のメインブロック（第３メインブロック２３）を、サブブロックを介さずに、グローバルプーリング層２７に直接接続することもできる。さらに、全てのメインブロック２１〜２３にサブブロックを結合しなくてもよく、少なくとも１つのメインブロックにサブブロックが接続されればよい。但し、より入力側のメインブロックにサブブロックを接続することが好ましい。あるいは、サブブロックを用いず、メインブロックのみでネットワークを構成することもできる。
【００７７】
＜５−３＞
各メインブロック２１〜２３及びサブブロック２４〜２６の層構成は、特には限定されず、少なくともタイムドメイン畳み込み層を有していればよく、正規化処理層、活性化処理層、プーリング層は、必要に応じて適宜設ければよい。また、タイムドメイン畳み込み層のカーネルの数、カーネルサイズは適宜変更することができる。
【００７８】
＜５−４＞
上記実施形態では、第２データ取得部２に複数種（３種類）の時間における開閉データ１７を入力しているが、これ以外の時間の開閉データを入力とすることもできし、３種類以外の時間の開閉データ（例えば、２種類や４種類以上）を入力とすることもできる。また、１種類の時間の開閉データのみを入力してもよい。
【００７９】
＜５−５＞
上記実施形態では、画像処理装置１０と学習装置４とは別々のコンピュータで構成されている。しかしながら、画像処理装置１０及び学習装置４の構成はこのような例に限定されなくてもよく、画像処理装置１０及び学習装置４の両方の機能を有するシステムを１台又は複数台のコンピュータで実現してもよい。画像処理装置１０に組み込んで使用することもできる。
【００８０】
＜５−６＞
上記実施形態では、本発明に係る画像処理装置を自動車の運転監視システムに適用した例を説明したが、これに限定されず、例えば、工場などの作業者の居眠りを監視するためのシステムなど、種々のシステムに適用することもできる。
【符号の説明】
【００８１】
１０…画像処理装置
１０１…カメラ
１…第１データ取得部
２…第２データ取得部
１２…第２処理部（形状データ取得部）
１６…第３処理部（開閉データ取得部）
１０６…報知器
【図１】
2020126378.tif 000003
【図２】
2020126378.tif 000004
【図３】
2020126378.tif 000005
【図４】
2020126378.tif 000006
【図５】
2020126378.tif 000007
【図６】
2020126378.tif 000008
【図７】
2020126378.tif 000009
【図８】
2020126378.tif 000010
【図９】
2020126378.tif 000011