(58)【調査した分野】(Int.Cl.,DB名)
人の顔を含む画像から顔の向きを検出するための学習を行った学習済みの第1学習器であって、人の顔を含む対象画像を入力とし、前記対象画像に含まれる顔の向きに関する第1情報を出力とする第1学習器と、
人の顔を含む画像から顔の器官の位置を検出するための学習を、前記第1情報ごとに行った、少なくとも1つの学習済みの第2学習器であって、前記対象画像を入力とし、前記対象画像に含まれる顔の器官の位置に関する第2情報を出力とする、少なくとも1つの第2学習器と、
前記第1学習器及び前記第2学習器を制御する制御部と、
前記対象画像に、顔の一部を遮蔽する遮蔽物が含まれているか否かを判断する遮蔽物判断部と、
を備え、
前記制御部は、
前記第1学習器によって、前記対象画像から前記第1情報を取得し、
前記第1情報に対応する前記第2学習器によって、前記対象画像から前記第2情報を取得するように構成されており、
前記制御部は、
前記遮蔽物判断部によって、前記対象画像に前記遮蔽物が含まれていると判断された場合に、前記対象画像を入力とし、前記第1学習器及び前記第2学習器によって、前記第1情報及び前記第2情報を出力するように構成されている、画像処理装置。
人の顔を含む画像から顔の向きを検出するための学習を、前記第1情報ごとに行った、少なくとも1つの学習済みの第3学習器であって、前記対象画像を入力とし、前記対象画像に含まれる顔の向きに関する第3情報を出力とする、少なくとも1つの第3学習器をさらに備え、
前記制御部は、
前記第1学習器から出力された前記第1情報に対応する前記第3学習器によって、前記対象画像から前記第3情報を取得するように構成されている、請求項1から3のいずれかに記載の画像処理装置。
人の顔を含む画像から顔の器官の位置を検出するための学習を、前記第1情報ごとに行った、少なくとも1つの学習済みの第4学習器であって、前記第2情報に係る器官が含まれる前記対象画像を入力とし、前記対象画像に含まれる顔の器官の位置に関する第4情報を出力とする、少なくとも1つの第4学習器をさらに備え、
前記制御部は、
前記第1学習器から出力された前記第1情報に対応する前記第4学習器によって、前記第2情報に係る器官が含まれる前記対象画像から、前記第4情報を取得するように構成されている、請求項1から5のいずれかに記載の画像処理装置。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、対象となる画像に含まれる人が、例えば、マスクやサングラスを着用している場合には、顔の大部分が隠されるため、十分な数のノードを検出することができず、顔の器官の位置を推定することができないという問題がある。本発明は、この問題を解決するためになされたものであり、顔の一部がマスク等で遮蔽されている場合であっても、そのような顔が含まれる画像から少なくとも顔の器官の位置を検出することができる、画像処理装置、画像処理方法、及び画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0005】
この画像処理装置は、人の顔を含む画像から顔の向きを検出するための学習を行った学習済みの第1学習器であって、人の顔を含む対象画像を入力とし、前記対象画像に含まれる顔の向きに関する第1情報を出力とする第1学習器と、人の顔を含む画像から顔の器官の位置を検出するための学習を、前記第1情報ごとに行った、少なくとも1つの学習済みの第2学習器であって、前記対象画像を入力とし、前記対象画像に含まれる顔の器官の位置に関する第2情報を出力とする、少なくとも1つの第2学習器と、前記第1学習器及び第2学習器を制御する制御部と、を備え、前記制御部は、前記第1学習器によって、前記対象画像から前記第1情報を取得し、前記第1情報に対応する前記第2学習器によって、前記対象画像から前記第2情報を取得するように構成されている。
【0006】
この構成によれば、対象画像から人の顔の器官の位置を検出する第2学習器として、第1学習器で出力された第1情報に対応したものが用いられる。すなわち、特定の顔の向きによって学習された学習器を用いて、顔の器官の検出が行われるため、より精度の高い器官の位置を検出することができる。
【0007】
上記画像処理装置において、前記第1情報は、人の顔の向きを規定した複数の異なる、向き情報から選択される1つとすることができる。
【0008】
上記各画像処理装置において、前記第2情報は、人の顔の器官において規定される少なくとも1つの特徴点の位置とすることができる。
【0009】
上記各画像処理装置においては、人の顔を含む画像から顔の向きを検出するための学習を、前記第1情報ごとに行った、少なくとも1つの学習済みの第3学習器であって、前記対象画像を入力とし、前記対象画像に含まれる顔の向きに関する第3情報を出力とする、少なくとも1つの第3学習器をさらに備えることができ、前記制御部は、前記第1学習器から出力された前記第1情報に対応する前記第3学習器によって、前記対象画像から前記第3情報を取得するように構成することができる。
【0010】
この構成によれば、対象画像から人の顔の向きを検出する第3学習器として、第1学習器で出力された第1情報に対応したものが用いられる。すなわち、特定の顔の向きによって学習された学習器を用いて、顔の向きの検出が行われるため、より精度の高い向きの検出することができる。
【0011】
上記各画像処理装置において、前記第3情報は、人の顔の向きを示す角度とすることができる。
【0012】
上記各画像処理装置においては、人の顔を含む画像から顔の器官の位置を検出するための学習を、前記第1情報ごとに行った、少なくとも1つの学習済みの第4学習器であって、前記第2情報に係る器官が含まれる前記対象画像を入力とし、前記対象画像に含まれる顔の器官の位置に関する第4情報を出力とする、少なくとも1つの第4学習器をさらに備えることができ、前記制御部は、前記第1学習器から出力された前記第1情報に対応する前記第4学習器によって、前記第2情報に係る器官が含まれる前記対象画像から、前記第4情報を取得するように構成することができる。
【0013】
この構成によれば、人の顔の器官の位置を検出する第4学習器は、対象画像全体ではなく、第2情報に係る器官を含む対象画像によって学習が行われているため、より局所的に、器官の位置の検出が行われる。その結果、より精度の高い顔の器官の検出が可能となる。
【0014】
上記各画像処理装置において、前記第2情報は、人の顔の器官において規定される少なくとも1つの特徴点の位置であり、前記第4学習器は、前記第2学習器への入力に用いられた前記対象画像に基づいて生成され、前記特徴点を含む入力用画像を入力とし、前記各特徴点の位置を出力とすることができる。
【0015】
上記各画像処理装置において、前記対象画像に、顔の一部を遮蔽する遮蔽物が含まれているか否かを判断する遮蔽物判断部をさらに備えることができ、前記制御部は、前記遮蔽物判断部によって、前記対象画像に前記遮蔽物が含まれていると判断された場合に、前記対象画像を入力とし、前記第1学習器及び前記第2学習器によって、前記第1情報及び前記第2情報を出力するように構成することができる。
【0016】
上記各画像処理装置において、前記各学習器は、ニューラルネットワークによって構成することができる。
【0017】
この画像処理方法は、人の顔を含む画像から顔の向きを検出するための学習を行った学習済みの第1学習器を準備するステップと、前記第1学習器によって、人の顔を含む対象画像から、前記人の顔の向きに関する第1情報を取得するステップと、人の顔を含む画像から顔の器官の位置を検出するための学習を、前記第1情報ごとに行った、少なくとも1つの学習済みの第2学習器を準備するステップと、前記第1学習器で出力された前記第1情報に対応した前記第2学習器によって、前記対象画像から、前記対象画像に含まれる顔の器官の位置に関する第2情報を出力するステップと、を備えている。なお、上記ステップの順序は適宜変更することができる。例えば、第1情報を取得する前に、第2学習器を準備することもできる。この点は、後述する第3及び第4学習器についても同様である。
【0018】
上記画像処理方法においては、前記対象画像に、顔の一部を遮蔽する遮蔽物が含まれているか否かを判断するステップをさらに備えることができ、前記対象画像に前記遮蔽物が含まれている場合には、前記第1学習器を準備するステップ、前記第1情報を出力するステップ、前記第2学習器を準備するステップ、及び前記第3情報を出力するステップを実行することができる。
【0019】
上記各画像処理方法においては、人の顔を含む画像から顔の向きを検出するための学習を、前記第1情報ごとに行った、少なくとも1つの学習済みの第3学習器を準備するステップと、前記第1学習器から出力された前記第1情報に対応する前記第3学習器によって、前記対象画像から、前記対象画像に含まれる顔の向きに関する前記第3情報を出力するステップと、をさらに備えることができる。
【0020】
上記各画像処理方法においては、人の顔を含む画像から顔の器官の位置を検出するための学習を、前記第1情報ごと行った、少なくとも1つの学習済みの第4学習器を準備するステップと、前記第1学習器から出力された前記第1情報に対応する前記第4学習器によって、前記第2情報に係る器官が含まれた前記対象画像から、前記対象画像に含まれる顔の器官の位置に関する第4情報を出力するステップと、をさらに備えることができる。
【0021】
上記各画像処理方法において、前記各学習器は、ニューラルネットワークによって構成することができる。
【0022】
この画像処理プログラムは、コンピュータに、人の顔を含む画像から顔の向きを検出するための学習を行った学習済みの第1学習器を準備するステップと、前記第1学習器によって、人の顔を含む対象画像から、前記人の顔の向きに関する第1情報を取得するステップと、人の顔を含む画像から顔の器官の位置を検出するための学習を、前記第1情報ごとに行った、少なくとも1つの学習済みの第2学習器を準備するステップと、前記第1学習器で出力された前記第1情報に対応した前記第2学習器によって、前記対象画像から、前記対象画像に含まれる顔の器官の位置に関する第2情報を出力するステップと、を実行させる。なお、上記ステップの順序は適宜変更することができる。例えば、第1情報を取得する前に、第2学習器を準備することもできる。この点は、後述する第3及び第4学習器についても同様である。
【0023】
上記画像処理プログラムにおいては、前記対象画像に、顔の一部を遮蔽する遮蔽物が含まれているか否かを判断するステップをさらに備えることができ、前記対象画像に前記遮蔽物が含まれている場合には、前記第1学習器を準備するステップ、前記第1情報を出力するステップ、前記第2学習器を準備するステップ、及び前記第3情報を出力するステップを実行させることができる。
【0024】
上記画像処理プログラムにおいては、コンピュータに、人の顔を含む画像から顔の向きを検出するための学習を、前記第1情報ごとに行った、少なくとも1つの学習済みの第3学習器を準備するステップと、前記第1学習器から出力された前記第1情報に対応する前記第3学習器によって、前記対象画像から、前記対象画像に含まれる顔の向きに関する前記第3情報を出力するステップと、をさらに実行させることができる。
【0025】
上記各画像処理プログラムにおいては、コンピュータに、人の顔を含む画像から顔の器官の位置を検出するための学習を、前記第1情報ごと行った、少なくとも1つの学習済みの第4学習器を準備するステップと、前記第1学習器から出力された前記第1情報に対応する前記第4学習器によって、前記第2情報に係る器官が含まれた前記対象画像から、前記対象画像に含まれる顔の器官の位置に関する第4情報を出力するステップと、をさらに実行させることができる。
【0026】
上記各画像処理プログラムにおいて、前記各学習器は、ニューラルネットワークによって構成することができる。
【発明の効果】
【0027】
本発明によれば、顔の一部がマスク等で遮蔽されている場合であっても、そのような顔が含まれる画像から少なくとも顔の器官の位置を検出することができる。
【発明を実施するための形態】
【0029】
以下、本発明に係る画像処理装置、画像処理方法、及び画像処理プログラムの一実施形態について、図面を参照しつつ説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
【0030】
<1.画像処理システムの概要>
図1を用いて、本実施形態に係る画像処理装置が含まれる画像処理システムについて、説明する。この画像処理システムは、画像処理装置1、学習装置2、及びカメラ3を備えている。この画像処理システムでは、カメラ3によって撮影された人を含む撮影画像(対象画像)から、画像処理装置1によって、人の顔の向き、顔の器官(目、鼻、口など)の位置を検出するものである。特に、本実施形態に係る画像処理装置1では、撮影画像内の人の顔にマスク、サングラスのような遮蔽物が含まれているときにも、有効に顔の向き等の検出を行うことができるように構成されている。
【0031】
すなわち、この画像処理装置1では、後述する
図4に示すように、遮蔽物が含まれていない顔から向き等を検出する第1検出部113と、遮蔽物が含まれている顔から向き等を検出する第2検出部114と、を備えている。そして、第2検出部114は、ニューラルネットワークにより構成される学習器によって、顔の向き等の検出を行う。そのため、学習装置2は、第2検出部114に含まれる学習器の学習を行う。
【0032】
画像処理装置1は、例えば、ネットワーク10を介して、学習装置2により作成された学習済みの学習器を取得することができる。ネットワーク10の種類は、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。その他、画像処理装置1と学習装置2とを直接接続して、学習器を送信することもできる。あるいは、画像処理装置1と学習装置2とを接続せず、学習装置2で学習された学習済みの学習器を、CD−ROM等の記憶媒体に記憶し、この記憶媒体に記憶された学習器を画像処理装置1に保存することもできる。以下、各装置について詳細に説明する。
【0033】
<1−1.カメラ>
カメラ3は、公知のものを用いることができ、人を撮影することで撮影画像を生成し、これを画像処理装置1に出力する。なお、撮影画像は、静止画または動画のいずれであってもよく、動画の場合には、フレーム毎に画像処理装置1によって顔の向き等の検出が行われる。
【0035】
図2は、本実施形態に係る画像処理装置を示すブロック図である。
図2に示すように、本実施形態に係る画像処理装置1は、制御部11、記憶部12、通信インタフェース13、入力装置14、出力装置15、外部インタフェース16、及びドライブ17が電気的に接続されたコンピュータである。なお、
図1では、通信インタフェース及び外部インタフェースをそれぞれ、「通信I/F」及び「外部I/F」と記載している。
【0036】
制御部11は、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を含み、情報処理に応じて各構成要素の制御を行う。記憶部12は、例えば、ハードディスクドライブ、ソリッドステートドライブ等の補助記憶装置であり、制御部11で実行される画像処理プログラム121、学習済みの学習器に関する情報を示す学習結果データ122等を記憶する。
【0037】
画像処理プログラム121は、撮影画像内の顔に遮蔽物が含まれているか否かを判断し、遮蔽物が含まれていない場合には、上記第1検出部113を用い、遮蔽物が含まれている場合には上記第2検出部114を用いて、顔の向き、器官の位置を検出するための処理を、画像処理装置1に実行させるためのプログラムである。また、学習結果データ122は、学習済みの学習器の設定を行うためのデータである。詳細は後述する。
【0038】
通信インタフェース13は、例えば、有線LAN(Local Area Network)モジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。入力装置14は、例えば、マウス、キーボード等の入力を行うための装置である。出力装置15は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。外部インタフェース16は、USB(Universal Serial Bus)ポート等であり、カメラ3等の外部装置と接続するためのインタフェースである。
【0039】
ドライブ17は、例えば、CD(Compact Disk)ドライブ、DVD(Digital Versatile Disk)ドライブ等であり、記憶媒体91に記憶されたプログラムを読み込むための装置である。ドライブ17の種類は、記憶媒体91の種類に応じて適宜選択されてよい。上記画像処理プログラム121及び/又は学習結果データ122は、この記憶媒体91に記憶されていてもよい。
【0040】
記憶媒体91は、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、このプログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。画像処理装置1は、この記憶媒体91から、画像処理プログラム121及び/又は学習結果データ122を取得してもよい。
【0041】
ここで、
図2では、記憶媒体91の一例として、CD、DVD等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体91の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
【0042】
なお、画像処理装置1の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部11は、複数のプロセッサを含んでもよい。画像処理装置1は、複数台の情報処理装置で構成されてもよい。また、画像処理装置1は、提供されるサービス専用に設計された情報処理装置の他、汎用のデスクトップPC(Personal Computer)、タブレットPC等が用いられてもよい。
【0043】
<1−3.学習装置>
図3は、本実施形態に係る学習装置を示すブロック図である。
図3に示すように、本実施形態に係る学習装置2は、上記第2検出部102に含まれる学習器を学習するためのものであり、制御部21、記憶部22、通信インタフェース23、入力装置24、出力装置25、外部インタフェース26、及びドライブ27が電気的に接続されたコンピュータである。なお、
図2では、
図1と同様に、通信インタフェース及び外部インタフェースをそれぞれ、「通信I/F」及び「外部I/F」と記載している。
【0044】
制御部21〜ドライブ27及び記憶媒体92はそれぞれ、上記画像処理装置1の制御部11〜ドライブ17及び記憶媒体91と同様である。ただし、学習装置2の記憶部22は、制御部21で実行される学習プログラム221、学習器の学習に利用する学習データ222、学習プログラム221を実行して作成した学習結果データ122等を記憶する。
【0045】
学習プログラム221は、学習装置2に後述するニューラルネットワークの学習処理(
図8)を実行させるためのプログラムである。また、学習データ222は、人の顔の向き、器官の位置を検出するために学習器の学習を行うためのデータである。詳細は後述する。
【0046】
なお、上記画像処理装置1と同様に、学習プログラム221及び/又は学習データ222は、記憶媒体92に記憶されていてもよい。これに応じて、学習装置2は、利用する学習プログラム221及び/又は学習データ222を記憶媒体92から取得してもよい。
【0047】
また、上記画像処理装置1と同様に、学習装置2の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。更に、学習装置2は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、デスクトップPC等が用いられてもよい。
【0048】
<2.画像処理装置の機能的構成>
次に、
図4を参照しつつ、本実施形態に係る画像処理装置1の機能構成の一例を説明する。
図4は、本実施形態に係る画像処理装置1の機能構成の一例を模式的に例示する。
【0049】
<2−1.概略構成>
図4に示すように、画像処理装置1の制御部11は、記憶部12に記憶された画像処理プログラム121をRAMに展開する。そして、制御部11は、RAMに展開された画像処理プログラム121をCPUにより解釈及び実行して、各構成要素を制御する。これによって、
図4に示すように、本実施形態に係る画像処理装置1は、画像取得部111、遮蔽物判断部112、第1検出部113、及び第2検出部114を備えるコンピュータとして機能する。
【0050】
画像取得部111は、カメラ3で生成された撮影画像を取得する。また、遮蔽物判断部112は、撮影画像内の顔にマスクやサングラスなどの遮蔽物が含まれているか否かを判断する。第1検出部113は、遮蔽物判断部112において顔に遮蔽物が含まれていないと判断した場合に、その撮影画像から顔の向きや器官の位置を検出する。一方、第2検出部114は、遮蔽物判断部112において顔に遮蔽物が含まれていると判断した場合に、その撮影画像から顔の向きや器官の位置を検出する。一例として、本実施形態では、遮蔽物判断部112において、顔に遮蔽物としてマスクが含まれているか否かを判断し、第1及び第2検出部113,114では、顔の向き、角度、及び器官として目の位置を検出するものとする。以下、これらの機能構成について、詳細に説明する。
【0051】
<2−2.遮蔽物判断部>
図5を参照しつつ、遮蔽物判断部112について説明する。遮蔽物判断部112は、例えば、
図5Aに示すように、撮影画像123内の人が遮蔽物を着用していない場合と、
図5Bに示すように、マスクなどの遮蔽物を着用している場合のいずれかであるかを判断する。そのような手法は、特には限定されないが、例えば、パターンマッチングなど、種々の方法を採用することができる。
【0052】
<2−3.第1検出部>
遮蔽物を着用していない顔の向きや器官の位置の検出は、従来より種々の方法が提案されている。したがって、第1検出部で用いる処理は特には限定されない。例えば、三次元モデルを用いて特徴点の抽出を行う手法があり、具体的には、例えば、国際公開2006/051607号公報、特開2007−249280号公報などに記載されている手法を採用することができる。そして、このような手法を用い、撮影画像123から顔の向き、角度、目の位置を検出する。
【0053】
<2−4.第2検出部の概要>
次に、
図4を参照しつつ、第2検出部114について説明する。
図4に示すように、第2検出部114では、撮影画像123を、顔の向き及び器官の位置について学習した学習器の入力として用いる。そして、この学習器の演算処理により、当該学習器から出力値を得る。そして、第2検出部114は、学習器から得られた出力値に基づいて、撮影画像123の中の人の顔の向き及び器官の位置に関する情報を取得する。
【0054】
<2−4−1.学習器の概要>
次に、
図4及び
図6を参照しつつ、学習器について説明する。
図4に示すように、本実施形態に係る画像処理装置1は、一例として、顔の向きの検出について、4つの学習器、つまり1つの第1向き学習器710と3種類の第2向き学習器720が用いられる。また、顔の器官の検出についても6つの学習器、つまり3種類の第1器官学習器730と3種類の第2器官学習器740が用いられる。すなわち、本実施形態では、合計10個の学習器711〜743が用いられる。いずれの学習器711〜743もニューラルネットワークで構成されている。具体的には、
図6に示すような、いわゆる深層学習に用いられる多層構造のニューラルネットワークであり、入力から順に、入力層71、中間層(隠れ層)72、及び出力層73を備えている。
【0055】
図6では、ニューラルネットワーク7は1層の中間層72を備えており、入力層71の出力が中間層72の入力となり、中間層72の出力が出力層73の入力となっている。ただし、中間層72の数は1層に限られなくてもよく、ニューラルネットワーク7は、中間層72を2層以上備えてもよい。
【0056】
各層71〜73は、1又は複数のニューロンを備えている。例えば、入力層71のニューロンの数は、各撮影画像123の画素数に応じて設定することができる。中間層72のニューロンの数は実施の形態に応じて適宜設定することができる。また、出力層73は、後述する顔の向き、角度、特徴点の座標などに応じて設定することができる。
【0057】
隣接する層のニューロン同士は適宜結合され、各結合には重み(結合荷重)が設定されている。
図6の例では、各ニューロンは、隣接する層の全てのニューロンと結合されているが、ニューロンの結合は、このような例に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。
【0058】
各ニューロンには閾値が設定されており、基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。画像処理装置1は、このようなニューラルネットワーク7の入力層71に上記各撮影画像を入力することで出力層73から得られる出力値に基づいて、顔の向き、角度、特徴点の座標などを特定する。
【0059】
なお、このようなニューラルネットワーク7の構成(例えば、ニューラルネットワーク7の層数、各層におけるニューロンの個数、ニューロン同士の結合関係、各ニューロンの伝達関数)、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報は、学習結果データ122に含まれている。画像処理装置1は、学習結果データ122を参照して、顔の向き及び器官の位置の検出に係る処理に用いる学習済みの学習器710〜740の設定を行う。
【0060】
<2−4−2.顔の向きの検出のための学習器>
次に、
図4を参照しつつ顔の向きの検出のために用いられる学習器について、説明する。上述したように、本実施形態においては、顔の向きの検出について、4つの学習器を用いる。すなわち、撮影画像中の顔のおおよその向きを検出する第1向き学習器710と、顔の向きの具体的な角度を検出する3種類の第2向き学習器720(721〜723)と、が用いられる。なお、第1向き学習器710が、本発明の第1学習器に相当し、第2向き学習器721〜723が、本発明の第3学習器に相当する。
【0061】
図4に示すように、第1向き学習器710では、撮影画像123が入力されると、そこから、顔のおおよその向き、つまり、正面を向いているか、斜めをむいているか、あるいは横を向いているか、という3種類のいずれかであるかが出力される。ここでは、一例として、
図7に示すように、「正面」は、人の頭の中心を通る上下方向の軸Nを中心として左右に0〜30度ずつの範囲と定義する。同様に、「斜め」は、上記上下方向の軸Nを中心として左右に30〜60ずつ度の範囲、「横」は、上記上下方向の軸Nを中心として左右に60〜90ずつ度の範囲と定義する。以下、この出力を向き情報(第1情報)と称することとする。
【0062】
第2向き学習器720では、撮影画像が入力されると、そこから、顔の具体的な向き、つまり顔の角度が出力される。但し、本実施形態では、3種類の第2向き学習器721〜723を用いている。すなわち、正面を向く顔を含む撮影画像を用いて学習が行われた正面向き学習器721、斜めを向く顔を含む撮影画像を用いて学習が行われた斜め向き学習器722、及び横を向く顔を含む撮影画像を用いて学習が行われた横向き学習器723である。
【0063】
そして、正面向き学習器721は、第1向き学習器710において、顔の向きが「正面」であると出力された撮影画像123を入力とし、ここから具体的な角度を出力する。同様に、斜め向き学習器722は、第1向き学習器710において、顔の向きが「斜め」であると出力された撮影画像123を入力とし、横向き学習器723は、第1向き学習器710において、顔の向きが「横」であると出力された撮影画像123を入力とする。以下、ここで出力される角度を角度情報(第3情報)と称することとする。
【0064】
<2−4−3.顔の器官の位置の検出のための学習器>
次に、
図4を参照しつつ顔の器官の位置の検出のために用いられる学習器について、説明する。上述したように、本実施形態においては、顔の器官の位置の検出について、6つの学習器を用いる。すなわち、撮影画像中の顔の器官の位置を検出する3種類の第1器官学習器730と、顔の器官の正確な位置を検出する3種類の第2器官学習器740(741〜743)と、が用いられる。なお、第1器官学習器730が、本発明の第2学習器に相当し、第2器官学習器740が、本発明の第4学習器に相当する。
【0065】
図4に示すように、第1器官学習器730は、上記第2向き学習器721〜723と同様に、3種類準備されている。すなわち、正面を向く顔を含む撮影画像を用いて学習が行われた第1正面器官学習器731、斜めを向く顔を含む撮影画像を用いて学習が行われた第1斜め器官学習器732、及び横を向く顔を含む撮影画像を用いて学習が行われた第1横器官学習器733である。
【0066】
そして、第1正面器官学習器731は、第1向き学習器710において、顔の向きが「正面」であると出力された撮影画像123を入力とし、ここから器官の位置を出力する。同様に、斜め器官学習器732は、第1向き学習器710において、顔の向きが「斜め」であると出力された撮影画像123を入力とし、第1横器官学習器733は、第1向き学習器710において、顔の向きが「横」であると出力された撮影画像123を入力とする。そして、本実施形態においては、一例として、マスクに隠されていない目の4つの特徴点の位置が出力されるように各学習器731〜733が設定されている。すなわち、
図8に示すように、右目と左目に対し、それぞれ、目頭A1、目尻A2、目の輪郭の最上部A3、目の輪郭の最下部A4の、4つの特徴点の位置が出力される。具体的には、撮影画像123内の4つの特徴点の座標が得られる。以下、この出力を第1特徴点情報(第2情報)と称することとする。
【0067】
次に、
図4を参照しつつ、第2器官学習器740について説明する。
図4に示すように、この学習器も、3種類準備されている。すなわち、正面を向く顔を含む撮影画像を用いて学習が行われた第2正面器官学習器741、斜めを向く顔を含む撮影画像を用いて学習が行われた第2斜め器官学習器742、及び横を向く顔を含む撮影画像を用いて学習が行われた第2横器官学習器743である。
【0068】
そして、各学習器741〜743の入力は、次のように設定されている。すなわち、第1器官学習器730から出力された特徴点をそれぞれ含む部分画像を、撮影画像から切り出し、これを並べた合成画像を入力とする。例えば、
図9に示すように、第1器官学習器から目に関する4つの特徴点A1〜A4の位置が出力されたとき、入力された撮影画像123から、各特徴点A1〜A4を中心に含む矩形状の部分画像124a〜124dを抽出する。そして、これら4つの部分画像124a〜124dを並べた合成画像124を生成する。部分画像124a〜124dの作成方法は、特には限定されないが、少なくとも画像による学習が可能なように、特徴点を概ね中心付近に含む所定の大きさの画像にすることができる。このような合成画像124は、右目及び左目について、それぞれ作成される。そして、各第2器官学習器741〜743は、右目用と左目用がそれぞれ準備され、上記各合成画像124を入力とし、上記4つの特徴点A1〜A4の位置を出力する。具体的には、撮影画像内の4つの特徴点A1〜A4の座標が得られる。以下、この出力を第2特徴点情報(第4情報)と称することとする。なお、第2特徴点情報は、特徴点の座標とすることもできるが、例えば、第1特徴点情報に係る座標と、第2器官学習器740で得られた座標とのズレ量を第2特徴点情報とすることもできる。また、右目と左目用にそれぞれ学習器は必要となるが、後述するように、左右反転させたものを利用することができる。
【0069】
<3.学習装置の機能的構成>
次に、
図10を用いて、本実施形態に係る学習装置2の機能構成の一例を説明する。
図10は、本実施形態に係る学習装置2の機能構成の一例を模式的に例示する。
【0070】
学習装置2の制御部21は、記憶部22に記憶された学習プログラム221をRAMに展開する。そして、制御部21は、RAMに展開された学習プログラム221をCPUにより解釈及び実行して、各構成要素を制御する。これによって、
図10に示されるとおり、本実施形態に係る学習装置2は、上述した10個の学習器ごとに10個の学習ユニット210a〜210jを備え、各学習ユニット210a〜210jが、学習画像取得部211a〜211j、及び学習処理部211a〜212jを備えるコンピュータとして機能する。
【0071】
以下、
図11及び
図12を参照して、第1向き学習器710及び第2向き学習720に対する学習データについて説明する。例えば、第1向き学習器710に対する学習ユニット210aでは、学習画像取得部211aは、
図11に示すように、学習データ222aとして、カメラ3で撮影した撮影画像223と、この撮影画像に写る顔の3つの向き(正面、斜め、横)を示す向き情報2241の組を取得する。
【0072】
また、第2向き学習器720に対しては、3種類の学習データが用いられる。例えば、正面向き学習器721に対する学習ユニット210bでは、学習画像取得部211bは、
図12に示すように、学習データ222bとして、カメラ3で撮影した撮影画像のうち、向きが「正面」に分類された撮影画像2231と、この「正面」に分類された撮影画像2231に写る顔の角度を示す角度情報2242との組を取得する。同様に、斜め向き学習器722、横向き学習器723に対する学習ユニット210c、210dでは、向きが「斜め」、「横」の撮影画像を含む学習データ222c,222dを取得する。なお、左右の向きは、対象であるため、例えば、右の斜めである撮影画像は、反転して左の斜めである撮影画像として利用することができる。これにより、メモリの負荷を軽減することができる。この点については、以下の各学習ユニットにおいても同様である。
【0073】
次に、
図13及び
図14を参照して、第1器官学習器730及び第2器官向き学習730に対する学習データについて説明する。第1器官学習器730に対しては、3種類の学習データが用いられる。例えば、第1正面器官学習器731に対する学習ユニット210eでは、学習画像取得部211eは、
図13に示すように、学習データ222eとして、カメラ3で撮影した撮影画像のうち、向きが「正面」に分類された撮影画像2231と、この「正面」に分類された撮影画像2231に写る顔の目の特徴点の位置を示す第1特徴点情報2243との組を取得する。同様に、第1斜め器官学習器732、第1横向き学習器723に対する学習ユニット210f、210gでは、向きが「斜め」、「横」の撮影画像を含む学習データ222f,222gを取得する。
【0074】
そして、第2器官学習器740に対しても、3種類の学習データが用いられる。例えば、第2正面器官学習器741に対する学習ユニット210hでは、学習画像取得部211hは、
図14に示すように、学習データ222hとして、向きが「正面」である合成画像と、この「正面」に分類された合成画像に写る顔の目の特徴点の位置を示す第2特徴点情報との組を取得する。同様に、第2斜め器官学習器742、第2横向き学習器743に対する学習ユニット210i、210jでは、向きが「斜め」、「横」の撮影画像を含む学習データ222i,222jを取得する。なお、右目用と左目用の学習器をそれぞれ準備することもできるが、右目と左目は左右対称であるため、画像を反転させたものを理由することができる。
【0075】
各学習処理部212a〜jは、学習データ222a〜jを用いて、取得した各撮影画像223や合成画像224を入力すると、上記向き情報、角度情報、第1特徴点情報、及び第2特徴点情報に対応する出力値を出力するようにニューラルネットワーク8を学習させる。
【0076】
図11〜
図14に示すように、学習器の一例であるニューラルネットワーク8は、入力層81、中間層(隠れ層)82、及び出力層83を備え、上記ニューラルネットワーク7と同様に構成される。各層81〜83は、上記各層71〜73と同様である。学習処理部212a〜jは、ニューラルネットワークの学習処理により、撮影画像223や合成画像224を入力すると、上記各情報に対応する出力値を出力するニューラルネットワーク8を構築する。そして、学習処理部212は、構築したニューラルネットワーク8の構成、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報を学習結果データ122a〜jとして記憶部22に格納する。そして、この学習結果データ122a〜jは、上述した種々の方法で、画像処理装置1に送信される。また、このような学習結果データ122を定期的に更新してもよい。そして、制御部21は、作成した学習結果データ122を学習処理の実行毎に画像処理装置1に転送することで、画像処理装置1の保持する学習結果データ122を定期的に更新してもよい。
【0077】
<4.その他>
画像処理装置1及び学習装置2の各機能に関しては後述する動作例で詳細に説明する。なお、本実施形態では、画像処理装置1及び学習装置2の各機能がいずれも汎用のCPUによって実現される例について説明している。しかしながら、以上の機能の一部又は全部が、1又は複数の専用のプロセッサにより実現されてもよい。また、画像処理装置1及び学習装置2それぞれの機能構成に関して、実施形態に応じて、適宜、機能の省略、置換及び追加が行われてもよい。
【0078】
<5.画像処理装置の動作>
次に、
図15を参照しつつ、画像処理装置1の動作例を説明する。
図15は、画像処理装置1の処理手順の一例を例示するフローチャートである。なお、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【0079】
まず、利用者は、画像処理装置1を起動し、起動した画像処理装置1に画像処理プログラム121を実行させる。画像処理装置1の制御部11は、学習結果データ122を参照して、ニューラルネットワーク7の構造、各ニューロン間の結合の重み及び各ニューロンの閾値の設定を行う。そして、制御部11は、以下の処理手順に従って、撮影画像から、その撮影画像に写る顔の向きや器官の位置を検出する。
【0080】
そして、制御部11は、画像取得部111として機能し、外部インタフェース16を介して接続されるカメラ3から、人の顔が写る撮影画像123を取得する(ステップS101)。上述したように、撮影画像123は、静止画でもよいし、動画である場合は、フレームごとに撮影画像が取得される。
【0081】
次に、制御部11は、遮蔽物判断部112として機能し、ステップS101で取得した各撮影画像123に遮蔽物が含まれているか否かを判断する(ステップS102)。そして、遮蔽物が含まれていないと判断された場合には(ステップS102のNO)、第1検出部113によって撮影画像123から、その撮影画像123に写る顔の向きや器官の位置を検出する(ステップS103)。
【0082】
一方、撮影画像123に遮蔽物が含まれていると判断された場合には(ステップS102のYES)、第2検出部114によって撮影画像123から、その撮影画像123に写る顔の向きや器官の位置を検出する(ステップS104)。以下、第2検出部114による処理について、
図16を参照しつつ、さらに詳細に説明する。
【0083】
図16に示すように、第2検出部114では、まず、第1向き学習器710によって、撮影画像123から顔の向きを検出する(ステップS201)。すなわち、第1向き学習器710に撮影画像123を入力し、上述した3つの向きのいずれかに対応する出力値を得る。制御部11は、ここで得られた向きを向き情報として記憶部12に記憶する。続いて、制御部11は、向き情報に対応する第2向き学習器721〜723を選択する。例えば、検出向きが正面であれば、正面向き学習器721を選択し、これに撮影画像123を入力する(ステップS211)。その結果、正面向き学習器721からは、この撮影画像123内の顔の角度に対応する出力値が得られる。そして、制御部11は、得られた角度を角度情報として記憶部12に記憶する。
【0084】
次に、制御部11は、向き情報に対応する第1器官学習器730を選択する。例えば、向き情報が正面であれば、第1正面器官学習器731を選択し、これに撮影画像123を入力する(ステップS221)。その結果、第1正面器官学習器731からは、この撮影画像内の4つの特徴点に対応する出力値が得られる。すなわち、4つの特徴点A1〜A4の撮影画像123内での座標を取得し、これを第1特徴点情報として、記憶部12に記憶する。
【0085】
続いて、制御部11は、第1正面器官学習器731から出力された4つの特徴点を含む合成画像を生成する(ステップS231〜S233)。この合成画像の生成方法は、上述したとおりである。そして、制御部11は、例えば、正面の向きに対応する第2正面器官学習器に741に、この合成画像を入力する(ステップS241)。その結果、第2正面器官学習器741からは、この合成画像内の4つの特徴点の座標に対応する出力値が得られる。そして、ここで得られた座標と第1特徴点情報に係る座標とがずれている場合には、第1特徴点情報を修正し、第2特徴点情報として記憶部12に記憶する。こうして、1つの撮影画像に含まれる顔き、角度、目の特徴点の座標が取得される。以上は、向き情報として「正面」が出力された場合の例を示したが、「斜め」、「横」の場合も同様である。
【0086】
<6.特徴>
以上のように、本実施形態によれば、撮影画像から人の顔の器官の位置を検出する第1器官学習器730として、第1向き学習器710で出力された向き情報に対応したものが用いられる。すなわち、特定の顔の向きによって学習された学習器を用いて、顔の器官の検出が行われるため、より精度の高い器官の位置を検出することができる。したがって、顔が遮蔽物で遮蔽され、ノードの取得が十分に行えず、第1検出部が利用できない場合であっても、顔の器官の位置を正確に検出することができる。
【0087】
さらに、より高い器官の位置を検出するため、本実施形態では、第2器官学習器を用いている。この第2器官学習器は、撮影画像全体ではなく、第1器官学習器で得られた特徴点を含む部分画像によって学習が行われている。そのため、より局所的に、器官の位置の検出を行うことが可能であり、さらに精度の高い顔の器官の位置の検出が可能となる。
【0088】
また、顔の向きについても、第2向き学習器722を用い、顔の角度まで検出することができる。すなわち、特定の顔の向きによって学習された学習器を用いて、顔の向きの検出が行われるため、顔の角度を検出することができる。
【0089】
このような画像処理装置は、種々の分野に利用することかできるが、例えば、自動車に搭載することができる。具体的には、運転者の運転中の顔をカメラで撮影し、顔の角度、目の位置を検出することができる。これにより、運転者の運転中の挙動を解析することができる。例えば、運転中に顔が正面を向いていなかったり、目の特徴点の位置から目が閉じていることなどを検出することができ、これによって、運転者が運転に集中していない、眠る、などの異常行動を検出することができる。そして、このような異常行動を検出したときには、警告を発したり、あるいは自動車を緊急停止するなどの処理を行うことができる。
【0090】
その他、人の顔の向きや器官の位置を検出し、これを利用する種々の分野に適用することができる。
【0091】
<7.変形例>
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
【0092】
<7.1>
例えば、上記実施形態では、
図5及び
図6に示されるとおり、各ニューラルネットワーク(7、8)として、多層構造を有する一般的な順伝播型ニューラルネットワークを用いている。しかしながら、各ニューラルネットワーク(7、8)の種類は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、各ニューラルネットワーク(7、8)は、入力層71及び中間層72を畳み込み層及びプーリング層として利用する畳み込みニューラルネットワークであってもよい。また、例えば、各ニューラルネットワーク(7、8)は、中間層72から入力層71等のように出力側から入力側に再帰する結合を有する再帰型ニューラルネットワークであってもよい。なお、各ニューラルネットワーク(7、8)の層数、各層におけるニューロンの個数、ニューロン同士の結合関係、及び各ニューロンの伝達関数は、実施の形態に応じて適宜決定されてよい。
【0093】
<7.2>
上記実施形態では、画像処理装置1と学習器(ニューラルネットワーク)の学習を行う学習装置2とは別々のコンピュータで構成されている。しかしながら、画像処理装置1及び学習装置2の構成はこのような例に限定されなくてもよく、画像処理装置1及び学習装置2の両方の機能を有するシステムを1台又は複数台のコンピュータで実現してもよい。画像処理装置1に組み込んで使用することもできる。
【0094】
<7.3>
上記実施形態では、学習器は、ニューラルネットワークにより構成されている。しかしながら、学習器の種類は、カメラ3で撮影された撮影画像123を入力として利用可能であれば、ニューラルネットワークに限られなくてもよく、実施の形態に応じて適宜選択されてよい。複数の撮影画像123を入力可能な学習器として、例えば、上記ニューラルネットワークの他、サポートベクターマシン、自己組織化マップ、又は強化学習により学習を行う学習器によって構成された学習器を挙げることができる。
【0095】
<7.4>
上記実施形態では、カメラ3によって撮影された撮影画像を画像処理装置1に送信して、顔の向き等を検出しているが、カメラを用いず、予め準備された画像を画像処理装置1に送信してもよいし、予め画像処理装置3の記憶部12に記憶されている画像から顔の向き等を検出することもできる。
【0096】
<7.5>
上記実施形態では、4つの学習器710〜740を用いて、顔の向き、角度、及び特徴点の位置を検出しているが、これに限定されるものではない。例えば、第1向き学習器710と第1器官学習器730のみを用いて第2検出部114を構成し、顔の向き及び特徴点の位置を検出することもできる。また、第1向き学習器710、第1器官学習器730、及び第2器官学習器740を用いて、顔の向き、及び詳細な特徴点の位置を検出することもできる。あるいは、第1向き学習器710と第2向き学習器720を用い、顔の向きと角度を検出することもできる。また、上記実施形態では、顔の向き(正面、斜め、横)に合わせ、第2向き学習器720、第1器官学習器730、及び第2器官学習器740において、それぞれ、3種類の学習器を設定したが、これに限定されるものでない。すなわち、2または4以上の顔の向きを適宜決定し、これに合わせて学習器も2または4以上作成することができる。
【0097】
<7.6>
上記実施形態では、第2器官学習器740において、合成画像124を入力としている。すなわち、撮影画像123から特徴点A1〜A4を含む複数の部分画像124a〜124dを切り出し、これを並べた合成画像124を生成し、これを第2器官学習器740の入力としている。しかしながら、第2器官学習器740の入力はこれに限定されるものではなく、種々の入力用画像を生成することができる。例えば、合成画像124を入力とせず、部分画像124a〜124dをそれぞれ別個に入力することができる。また、撮影画像123から部分画像を切り出す以外に、撮影画像全体を第2器官学習器740の入力とすることもできる。すなわち、入力用画像としては、第1器官学習器730で検出された特徴点を含んでいるのであれば、種々の態様にすることができる。
【0098】
<7.7>
上記実施形態の画像処理装置1は、遮蔽物の有無を判断した後、第1検出部113または第2検出部114を用いるようにしているが、第2検出部114のみを搭載した画像処理装置1を用いることもできる。
【0099】
<7.8>
上記実施形態では、マスクを遮蔽物とし、目を器官として位置の検出をしているが、目以外でも検出できることは言うまでもない。例えば、遮蔽物としてサングラスが着用されている場合には、口や鼻を器官として、その位置を検出することもできる。また、上記実施形態では、顔の向きとして、左右方向の向きのみを検出したが、上下方向の向き、あるいはこれらを組み合わせた向きを検出することもできる。また、顔の向きは、3種類を示したが、これに限定されず、適宜設定することができる。
【0100】
(付記1)
第1学習器、及び少なくとも1つの第2学習器を記憶するように構成されたメモリと、
前記メモリに接続された少なくとも1つのハードウェアプロセッサと、
を備え、
前記第1学習器は、人の顔を含む画像から顔の向きを検出するための学習を行った学習済みの第1学習器であって、人の顔を含む対象画像を入力とし、前記対象画像に含まれる顔の向きに関する第1情報を出力とするように構成され、
前記第2学習器は、人の顔を含む画像から顔の器官の位置を検出するための学習を、前記第1情報ごとに行った、少なくとも1つの学習済みの第2学習器であって、前記対象画像を入力とし、前記対象画像に含まれる顔の器官の位置に関する第2情報を出力とするように構成され、
前記少なくとも1つのハードウェアプロセッサは、
前記第1学習器によって、前記対象画像から前記第1情報を取得し、
前記第1情報に対応する前記第2学習器によって、前記対象画像から前記第2情報を取得するように構成されている、画像処理装置。
【0101】
(付記2)
人の顔を含む画像から顔の向きを検出するための学習を行った学習済みの第1学習器を準備するステップと、
少なくとも1つのハードウェアプロセッサにより、前記第1学習器によって、人の顔を含む対象画像から、前記人の顔の向きに関する第1情報を取得するステップと、
人の顔を含む画像から顔の器官の位置を検出するための学習を、前記第1情報ごとに行った、少なくとも1つの学習済みの第2学習器を準備するステップと、
少なくとも1つのハードウェアプロセッサにより、前記第1学習器で出力された前記第1情報に対応した前記第2学習器によって、前記対象画像から、前記対象画像に含まれる顔の器官の位置に関する第2情報を出力するステップと、
を備えている、画像処理方法。