(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-01
(45)【発行日】2024-07-09
(54)【発明の名称】検出装置、学習装置、検出方法及びプログラム
(51)【国際特許分類】
G06F 18/213 20230101AFI20240702BHJP
G06N 3/045 20230101ALI20240702BHJP
G06N 3/084 20230101ALI20240702BHJP
G06V 10/82 20220101ALI20240702BHJP
G06V 40/16 20220101ALI20240702BHJP
G10L 15/16 20060101ALI20240702BHJP
【FI】
G06F18/213
G06N3/045
G06N3/084
G06V10/82
G06V40/16
G10L15/16
(21)【出願番号】P 2022533017
(86)(22)【出願日】2020-07-03
(86)【国際出願番号】 JP2020026278
(87)【国際公開番号】W WO2022003982
(87)【国際公開日】2022-01-06
【審査請求日】2022-12-09
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100107331
【氏名又は名称】中村 聡延
(74)【代理人】
【識別番号】100104765
【氏名又は名称】江上 達夫
(74)【代理人】
【識別番号】100131015
【氏名又は名称】三輪 浩誉
(72)【発明者】
【氏名】高橋 巧一
【審査官】多賀 実
(56)【参考文献】
【文献】米国特許出願公開第2020/0012887(US,A1)
【文献】米国特許出願公開第2014/0257805(US,A1)
【文献】国際公開第2016/026063(WO,A1)
【文献】特開平09-065032(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06F 18/00-18/40
G06T 7/00- 7/90
G06V 10/00-40/70
G10L 15/16
(57)【特許請求の範囲】
【請求項1】
検出対象に関するデータを取得する取得手段と、
前記検出対象が有する属性の複数の候補に共通する共通特徴量を、前記データから抽出する共通特徴量抽出手段と、
前記共通特徴量に基づき、前記複数の候補の各々に対する前記検出対象の特徴情報を検出する特徴情報検出手段と、
前記データに基づき、前記属性を判別する属性判別手段と、
判別された前記属性に対応する前記特徴情報を出力する出力手段と、
を有する検出装置。
【請求項2】
前記共通特徴量抽出手段は、前記データを入力した場合に前記共通特徴量に関する情報を出力するように学習されたニューラルネットワークに基づき、前記共通特徴量を生成する、請求項1に記載の検出装置。
【請求項3】
前記特徴情報検出手段及び前記属性判別手段は、共通のパラメータにより構成された前記ニューラルネットワークから出力される共通の出力結果に基づき、夫々の処理を実行する、請求項2に記載の検出装置。
【請求項4】
前記特徴情報検出手段は、前記ニューラルネットワークの出力結果が入力された場合に、前記特徴情報を出力するように前記複数の候補ごとに学習された検出器に基づき、前記複数の候補の各々に対する前記特徴情報を検出し、
前記属性判別手段は、前記ニューラルネットワークの出力結果が入力された場合に、前記属性の判別結果を出力するように学習された判別器に基づき、前記属性を判別する、請求項2または3に記載の検出装置。
【請求項5】
前記複数の候補の各々に対する前記検出器と、前記判別器とは、前記ニューラルネットワークのパラメータを共有して学習される、請求項4に記載の検出装置。
【請求項6】
前記共通特徴量抽出手段は、前記データを入力した場合に前記共通特徴量に関する情報を出力するように学習されたニューラルネットワークである第1ニューラルネットワークと、前記データを入力した場合に前記属性判別手段に入力する特徴量を出力するように学習されたニューラルネットワークである第2ニューラルネットワークとを含む、請求項1または2に記載の検出装置。
【請求項7】
前記特徴情報検出手段は、前記第1ニューラルネットワークの出力結果が入力された場合に、前記特徴情報を出力するように前記複数の候補ごとに学習された検出器に基づき、前記複数の候補の各々に対する前記特徴情報を検出し、
前記複数の候補の各々に対する前記検出器は、前記第1ニューラルネットワークのパラメータを共有して学習される、請求項6に記載の検出装置。
【請求項8】
コンピュータにより、
検出対象に関するデータを取得し、
前記検出対象が有する属性の複数の候補に共通する共通特徴量を、前記データから抽出し、
前記共通特徴量に基づき、前記複数の候補の各々に対する前記検出対象の特徴情報を検出し、
前記データに基づき、前記属性を判別し、
判別された前記属性に対応する前記特徴情報を出力する、
検出方法。
【請求項9】
検出対象に関するデータを取得し、
前記検出対象が有する属性の複数の候補に共通する共通特徴量を、前記データから抽出し、
前記共通特徴量に基づき、前記複数の候補の各々に対する前記検出対象の特徴情報を検出し、
前記データに基づき、前記属性を判別し、
判別された前記属性に対応する前記特徴情報を出力する処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、検出対象の特徴を検出する処理を行う検出装置、検出方法及び記憶媒体の技術分野に関する。
【背景技術】
【0002】
顔特徴点検出は顔画像から目の瞳中心などの特徴点を検出する技術であり、検出された顔特徴点情報は顔認証や表情分析などに利用される。精度よく顔認証や表情分析を行うためには、目や鼻、口の位置や形状を正確に知ることが必要不可欠である。非特許文献1~非特許文献5には、顔特徴点検出に関連する技術が開示されている。
【先行技術文献】
【非特許文献】
【0003】
【文献】Zhen-Hua Feng, Josef Kittler, Muhammad Awais, Patrik Huber, Xiao-Jun Wu, 「Wing Loss for Robust Facial Landmark Localisation with Convolutional Neural Networks」, Computer Vision and Pattern Recognition, 2018.
【文献】Zhe Cao, Tomas Simon, Shih-En Wei, Yaser Sheikh, 「Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields」, Computer Vision and Pattern Recognition, 2018.
【文献】Wenyan Wu, Shuo Yang, 「Leveraging Intra and Inter-Dataset Variations for Robust Face Alignment」, Computer Vision and Pattern Recognition, 2017.
【文献】Paul Viola, Michael Jones, 「Rapid Object Detection Using a Boosted Cascade of Simple Features」, Computer Vision and Pattern Recognition, 2011.
【文献】Karen Simonyan, Andrew Zisserman, 「Very Deep Convolutional Networks for Large-Scale Image Recognition」, International Conference on Learning Representations, 2015.
【発明の概要】
【発明が解決しようとする課題】
【0004】
横を向いた人物の顔認証や表情分析では、画面に向かって奥側の目や口角が見えなくなるため、正面顔の場合と横顔の場合とで使用する特徴点を切り替える必要がある。人物の顔以外においても、検出対象が一時的または部分的に異なる属性を有する場合には、検出対象の属性に応じて、検出対象の特徴点又は特徴量等を検出する必要がある。
【0005】
本開示の目的は、上記の課題を勘案し、検出対象の複数の属性に対応可能な特徴の検出を好適に行うことが可能な検出装置、検出方法及び記憶媒体を提供することである。
【課題を解決するための手段】
【0006】
検出装置の一の態様は、検出対象に関するデータを取得する取得手段と、
前記検出対象が有する属性の複数の候補に共通する共通特徴量を、前記データから抽出する共通特徴量抽出手段と、
前記共通特徴量に基づき、前記複数の候補の各々に対する前記検出対象の特徴情報を検出する特徴情報検出手段と、
前記データに基づき、前記属性を判別する属性判別手段と、
判別された前記属性に対応する前記特徴情報を出力する出力手段と、
を有する検出装置である。
【0007】
検出方法の一の態様は、コンピュータにより、
検出対象に関するデータを取得し、
前記検出対象が有する属性の複数の候補に共通する共通特徴量を、前記データから抽出し、
前記共通特徴量に基づき、前記複数の候補の各々に対する前記検出対象の特徴情報を検出し、
前記データに基づき、前記属性を判別し、
判別された前記属性に対応する前記特徴情報を出力する、
検出方法である。
【0008】
プログラムの一の態様は、検出対象に関するデータを取得し、
前記検出対象が有する属性の複数の候補に共通する共通特徴量を、前記データから抽出し、
前記共通特徴量に基づき、前記複数の候補の各々に対する前記検出対象の特徴情報を検出し、
前記データに基づき、前記属性を判別し、
判別された前記属性に対応する前記特徴情報を出力する処理をコンピュータに実行させるプログラムである。
【図面の簡単な説明】
【0010】
【
図1】第1実施形態における顔特徴点検出装置の機能的な構成を示すブロック図である。
【
図2】第1実施形態における顔特徴点検出装置の動作の手順を示すフローチャートの一例である。
【
図6】
図3で示した正面向きの顔画像に対して、正面用顔特徴点を明示した図である。
【
図7】
図4で示した右向きの顔画像に対して、右向き用顔特徴点を明示した図である。
【
図8】
図5で示した左向きの顔画像に対して、左向き用顔特徴点を明示した図である。
【
図9】顔特徴点検出装置のハードウェア構成の一例である。
【
図11】
図10に示されるネットワークの学習方法の概要図である。
【
図12】
図11に示される学習方法の手順を示すフローチャートの一例である。
【
図13】第2実施形態における検出装置のブロック構成図である。
【
図14】第2実施形態における検出装置の処理手順を示すフローチャートの一例である。
【
図15】第3実施形態における顔特徴点検出装置の共通特徴量抽出手段、顔特徴点検出手段及び顔向き判別手段に関する構成図である。
【
図16】第4実施形態における顔特徴点検出装置の共通特徴量抽出手段、顔特徴点検出手段及び顔向き判別手段に関する構成図である。
【
図17】第4実施形態における顔共通特徴量抽出手段、顔特徴点検出手段及び顔向き判別手段の学習方法の概要図である。
【
図18】第4実施形態における学習装置による学習処理の手順を示すフローチャートの一例である。
【
図19】第5実施形態における顔特徴点検出装置の機能的な構成を示すブロック図である。
【発明を実施するための形態】
【0011】
以下、図面を参照しながら、検出装置、検出方法及び記憶媒体の実施形態について説明する。
【0012】
<第1実施形態>
(1)
機能ブロック
図1は、第1実施形態における顔特徴点検出装置1の機能的な構成を示すブロック図である。第1実施形態における顔特徴点検出装置1は、機能的には、画像入力手段11と、顔検出手段12と、共通特徴量抽出手段13と、顔特徴点検出手段14と、顔向き判別手段15と、顔特徴点結果出力手段16とを有する。なお、
図1では、データの授受が行われるブロック同士を実線により結んでいるが、データの授受が行われるブロックの組合せは
図1に限定されない。後述する他の機能ブロックの図においても同様である。
【0013】
画像入力手段11は、処理対象となる画像(「処理対象画像」とも呼ぶ。)を取得する。画像入力手段11は、処理対象画像として、少なくとも人の顔を示した画像(顔画像)を取得する。画像入力手段11は、処理対象画像を、顔特徴点検出装置1とは別の外部装置から、有線若しくは無線による直接通信又はネットワークを介した通信により受信してもよく、顔特徴点検出装置1に内蔵されたメモリ等から抽出してもよい。画像入力手段11は、取得した処理対象画像を、顔検出手段12に供給する。
【0014】
顔検出手段12は、画像入力手段11が取得した処理対象画像から顔領域を検出する。この場合、顔検出手段12は、任意の顔検出手法を用いて、顔領域の検出を行ってもよい。顔領域は、例えば、処理対象画像中の人物の顔全体を内包するバウンディングボックスとして定義されてもよく、矩形以外の任意の形状により区分けされてもよい。顔検出手段12は、検出した顔領域を示す情報(「顔領域情報」とも呼ぶ。)を、共通特徴量抽出手段13に供給する。顔領域情報は、例えば、処理対象画像から顔領域部分を抽出した画像又は当該画像のサイズを正規化した画像である。
【0015】
共通特徴量抽出手段13は、予め学習されたニューラルネットワークによって、顔検出手段12が検出した顔領域情報に基づき、顔の向きの候補毎の顔特徴点検出において共通して使用される特徴量(「共通特徴量」とも呼ぶ。)を抽出する。第1実施形態では、一例として、顔の向きの候補は、正面向き、右向き、左向きの3種類であるものとする。また、顔の向きの候補毎の顔特徴点検出として、正面向き用の顔特徴点検出、右向き用の顔特徴点検出、及び、左向き用顔特徴点検出が行われる。
【0016】
そして、上記のニューラルネットワークには、各顔特徴点検出において共通のパラメータが適用される。上記のニューラルネットワークは、顔領域情報が入力された場合に、共通特徴量に関する情報を出力するように予め学習されており、学習により得られた重み等のパラメータが共通特徴量抽出手段13により参照可能に記憶されている。共通特徴量抽出手段13は、抽出した共通特徴量を、顔特徴点検出手段14及び顔向き判別手段15に供給する。そして、顔特徴点検出手段14及び顔向き判別手段15は、共通特徴量抽出手段13が生成した共通特徴量を共用し(即ち共通の共通特徴量を用い)、夫々の処理を実行する。
【0017】
顔特徴点検出手段14は、共通特徴量抽出手段13が抽出した共通特徴量に基づき、正面向き用顔特徴点検出、右向き用顔特徴点検出及び左向き用顔特徴点検出を夫々行う。ここで、正面向き用顔特徴点検出において検出される顔特徴点は、顔の器官や骨格などの情報によって定義されており、例えば、瞳中心、鼻の頭頂部などが該当する。また、右向き用顔特徴点検出では、顔が右を向いていることにより顔の右半分が見えなくなるため、左目の瞳中心、鼻の頭頂部などが顔特徴点として検出される。また、左向き用顔特徴点検出では、顔が左を向いていることにより顔の左半分が見えなくなるため、右目の瞳中心、鼻の頭頂部などが顔特徴点として検出される。顔特徴点検出手段14は、各顔特徴点検出の検出結果を、顔特徴点結果出力手段16に供給する。
【0018】
顔向き判別手段15は、共通特徴量抽出手段13が抽出した共通特徴量に基づき、処理対象画像に示された顔の向きの判別を行う。本実施形態では、顔の向きの候補が正面向き、右向き、左向きの3つであることから、顔向き判別手段15は、処理対象画像に示された顔の向きがこれらの3つの候補のいずれであるかを判別する。顔向き判別手段15は、例えば、ニューラルネットワークにより構成される。このニューラルネットワークの具体的な構成例及び学習方法については、
図10~
図12を参照して後述する。顔向き判別手段15は、顔の向きの判別結果を、顔特徴点結果出力手段16に供給する。
【0019】
顔特徴点結果出力手段16は、顔特徴点検出手段14が出力する顔の向きの候補毎の顔特徴点検出の検出結果から、顔向き判別手段15が判別した顔の向きに対応する顔特徴点の検出結果を選択する。そして、顔特徴点結果出力手段16は、選択した顔特徴点を示す情報(「顔特徴点情報」とも呼ぶ。)を出力する。
【0020】
なお、顔特徴点検出装置1は、複数の装置により構成されてもよい。即ち、画像入力手段11と、顔検出手段12と、共通特徴量抽出手段13と、顔特徴点検出手段14と、顔向き判別手段15と、顔特徴点結果出力手段16とは、複数の装置により構成された顔特徴点検出装置1により実現されてもよい。この場合、顔特徴点検出装置1を構成する複数の装置は、予め割り当てられた処理を実行するために必要な情報の授受を、有線又は無線での直接通信により又はネットワークを介した通信により他の装置と行う。
【0021】
(2)
処理フロー
図2は、第1実施形態における顔特徴点検出装置1の動作の手順を示すフローチャートの一例である。
【0022】
まず、顔特徴点検出装置1の画像入力手段11は、人物の顔画像を、処理対象画像として取得する(ステップS111)。次に、顔検出手段12は、入力された処理対象画像から顔領域を検出する(ステップS112)。
【0023】
次に、共通特徴量抽出手段13は、顔検出手段12が生成した顔領域情報から、ニューラルネットワークによって、正面向き用・右向き用・左向き用の各顔特徴点検出に共通して使用される共通特徴量を計算(抽出)する(ステップS113)。
【0024】
次に、顔特徴点検出手段14は、ステップS113で計算した共通特徴量に基づき、顔の向きの候補毎の顔特徴点を検出する(ステップS114)。具体的には、顔特徴点検出手段14は、正面向き用顔特徴点検出、右向き用顔特徴点検出及び左向き用顔特徴点検出を夫々行い、正面向き用、右向き用及び左向き用の顔特徴点を検出する。
【0025】
次に、顔向き判別手段15は、ステップS113で抽出した共通特徴量に基づき、処理対象画像に示された顔の向きを判別する(ステップS115)。
【0026】
次に、顔特徴点結果出力手段16は、ステップS114及びステップS115の処理結果に基づき、顔特徴点検出結果を出力する(ステップS116)。具体的には、顔特徴点結果出力手段16は、ステップS114で検出された正面向き用顔特徴点、右向き用顔特徴点、左向き用顔特徴点のうち、ステップS115で判別された顔の向きに対応する顔特徴点を選択する。そして、顔特徴点結果出力手段16は、選択した顔特徴点を示す顔特徴点情報を、顔特徴点検出結果として出力する。
【0027】
(3)
実施例
次に、本実施形態における顔特徴点検出装置1の具体的な動作及び構成を示す実施例について説明する。まず、
図2を引き続き参照し、顔特徴点検出装置1が実行する具体的な動作について説明する。
【0028】
(3-1)ステップS111
ステップS111では、画像入力手段11は、人物の顔を含む顔画像を処理対象画像として取得する。本実施例では、画像入力手段11は、処理対象画像として、正面向きの顔画像、右向きの顔画像または左向きの顔画像のいずれかを取得する。
図3は、正面向きの顔画像を示す。
図4は、右向きの顔画像を示す。
図5は、左向きの顔画像を示す。
【0029】
(3-2)ステップS112
ステップS112では、顔検出手段12は、入力された画像から顔領域を検出し、顔領域画像として処理対象画像からクロップする。この場合、顔検出手段12は、非特許文献4に開示されている顔検出手法、又はその他の種々の顔検出手法を用いて、顔領域の検出を行ってもよい。
【0030】
(3-3)ステップS113
ステップS113では、共通特徴量抽出手段13は、畳み込みニューラルネットワークの入力層から最終隠れ層までを使用した構造をもつ畳み込みニューラルネットワークを使用して、共通特徴量の抽出を行う。共通特徴量抽出手段13は、上記の畳み込みニューラルネットワークとして、例えば、非特許文献5に開示されているVGGネットワークを使用する。VGGネットワークの場合、最終隠れ層は1000個のニューロンを持つ全結合層であり、1000次元の特徴量が抽出される。なお、共通特徴量抽出手段13は、VGGネットワーク以外の任意の畳み込みニューラルネットワークを用いてもよい。
【0031】
(3-4)ステップS114
ステップS114では、顔特徴点検出手段14は、共通特徴量抽出手段13で抽出された特徴量から、正面向き用・右向き用・左向き用の顔特徴点検出を行う。それぞれの顔特徴点の定義は、顔の器官や骨格などの情報によって決定される。検出される顔特徴点は、特徴点ごとに、画像(詳しくは処理対象画像又は顔領域画像)内の座標を示すx座標およびy座標の二つの数字の組で表現される。
【0032】
図6は、
図3で示した正面向きの顔画像に対して、正面向き用の顔特徴点を明示した図である。
図6は、検出対象の5点の特徴点P1~P5を×印により示している。ここで、特徴点P1、P2は、両目の瞳中心に相当し、特徴点P3は、鼻の頭頂部に相当し、特徴点P4、P5は、両口角に相当する。
【0033】
図7は、
図4で示した右向きの顔画像に対して、右向き用の顔特徴点を明示した図である。
図7は、検出対象の3点の特徴点P2、P3、P5を×印により示している。ここで、特徴点P2は、左目の瞳中心に相当し、特徴点P3は、鼻の頭頂部に相当し、特徴点P5は、左口角に相当する。なお、
図6に示した正面用顔特徴点のうち、右目の瞳中心と右口角の2点の特徴点P1、P4は、顔が右を向いてしまっているため見えず、使用しない。
【0034】
図8は、
図5で示した左向きの顔画像に対して、左向き用顔特徴点を明示した図である。
図8は、検出対象の3点の特徴点P1、P3、P4を×印により示している。ここで、特徴点P1は、右目の瞳中心に相当し、特徴点P3は、鼻の頭頂部に相当し、特徴点P4は、右口角に相当する。なお、
図6に示した正面用顔特徴点のうち、左目の瞳中心と右口角の2点の特徴点P2、P5は、顔が左を向いてしまっているため見えず、使用しない。
【0035】
図6~
図8に示すように特徴点が定義されている場合、顔特徴点検出手段14は、5点の正面用顔特徴点の座標として、5点分のx座標及びy座標を夫々示す10個の数値を出力する。さらに、顔特徴点検出手段14は、3点の右向き用顔特徴点の座標として、3点分のx座標及びy座標を夫々示す6個の数値を出力し、3点の左向き用顔特徴点の座標として、3点分のx座標及びy座標を夫々示す6個の数値を出力する。この場合、顔特徴点検出手段14は、例えば、共通特徴量抽出手段13を構成するVGGネットワークの1000個のニューロンの出力を入力とし、正面向き用の顔特徴点として10個のニューロンを持つ全結合層、右向き用の顔特徴点として6個のニューロンを持つ全結合層、左向き用の顔特徴点として6個のニューロンを持つ全結合層をそれぞれ接続したネットワークを構成する。顔特徴点検出手段14の具体的な構成例については、後述の
図10を参照して説明する。
【0036】
(3-5)ステップS115
ステップS115では、顔向き判別手段15は、共通特徴量抽出手段13で抽出された特徴量に基づき、顔の向きの判別を行う。この場合、顔向き判別手段15は、予め定められた顔の向きの候補(本実施形態では正面、右、左の3個の候補)から、確からしさが最も高い顔の向きの候補を、処理対象画像における顔の向きとして判別する。顔の向きは、一例では、45度以上右を向いた場合を右向き、45度以上左を向いた場合を左向き、それ以外を正面向きと定義される。
【0037】
判別された顔の向きを示す情報は、それぞれの顔向きの確からしさを確率として持つ3個のニューロンにより示される。この場合、顔向き判別手段15は、例えば、共通特徴量抽出手段13で抽出されたVGGネットワークの1000個のニューロンの出力を入力とし、3つの顔の向きの候補(正面、右、左)に夫々対応する3個のニューロンを持つ全結合層と、Softmax層とを直列に接続したネットワークにより実現される。上記ネットワークは、共通特徴量抽出手段13で抽出されたVGGネットワークの1000個のニューロンの出力が入力された場合に、顔向きの各候補に対する確からしさを示す確率(確信度)を出力する。そして、正面向きの0.9、右向きが0.1、左向きが0.0と出力されたとすると、顔向き判別手段15は、最も確率が高い正面向きを、処理対象画像における顔の向きとして判別する。顔向き判別手段15の具体的な構成例については、後述の
図10を参照して説明する。
【0038】
(3-6)ステップS116
ステップS116では、顔特徴点結果出力手段16は、顔特徴点検出手段14で検出された各顔の向きの3つの候補に対応する顔特徴点のうち、顔向き判別手段15で判別された顔向きの顔特徴点を選択し、選択した顔特徴点を示す顔特徴点情報をディスプレイなどに出力する。
【0039】
なお、顔特徴点結果出力手段16は、顔特徴点情報をディスプレイに表示する代わりに、顔特徴点検出装置1内の他の処理ブロックに供給してもよく、顔特徴点検出装置1内又は顔特徴点検出装置1と接続するメモリ(記憶装置)に記憶してもよく、顔特徴点検出装置1以外の外部装置に送信してもよい。上述の処理ブロック又は外部装置は、例えば、顔特徴点情報を、予め登録された人物の顔の特徴点のデータベースと照合することで人を識別する顔認証を行う認証ブロック又は認証装置などであってもよい。上記の処理ブロックは、特徴情報に基づき、検出対象に関する識別を行う識別手段の一例である。
【0040】
(3-7)顔特徴点検出装置のハードウェア構成
図9は、顔特徴点検出装置1のハードウェア構成の一例である。顔特徴点検出装置1は、ハードウェアとして、プロセッサ5と、メモリ6と、インターフェース7とを含む。プロセッサ5、メモリ6及びインターフェース7は、データバス8を介して接続されている。
【0041】
プロセッサ5は、メモリ6に記憶されているプログラムを実行することにより、顔特徴点検出装置1の全体の制御を行うコントローラ(演算装置)として機能する。プロセッサ5は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、TPU(Tensor Processing Unit)、FPGA(Field-Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)、量子プロセッサなどのプロセッサである。プロセッサ5は、複数のプロセッサから構成されてもよい。プロセッサ5は、コンピュータの一例である。
【0042】
メモリ6は、RAM(Random Access Memory)、ROM(Read Only Memory)などの各種の揮発性メモリ及び不揮発性メモリにより構成される。また、メモリ6には、顔特徴点検出装置1が実行する処理を実行するためのプログラムが記憶される。また、メモリ6には、顔検出手段12、共通特徴量抽出手段13、顔特徴点検出手段14、顔向き判別手段15を夫々機能させるために必要なパラメータが記憶されている。例えば、メモリ6は、共通特徴量抽出手段13がニューラルネットワークを構成するために必要なパラメータを記憶している。上記のパラメータは、例えば、層構造、各層のニューロン構造、各層におけるフィルタ数及びフィルタサイズ、並びに各フィルタの各要素の重みなどの各種パラメータを含む。パラメータは、機械学習により顔特徴点検出装置1又は他の装置により生成された後、メモリ6に記憶されている。なお、パラメータは、顔特徴点検出装置1が参照可能であればよく、顔特徴点検出装置1以外の1又は複数の外部装置(記憶媒体を含む)により記憶されてもよい。
【0043】
インターフェース7は、顔特徴点検出装置1と他の装置とを電気的に接続するためのインターフェースである。これらのインターフェースは、他の装置とデータの送受信を無線により行うためのネットワークアダプタなどのワイアレスインタフェースであってもよく、他の装置とケーブル等により接続するためのハードウェアインターフェースであってもよい。
【0044】
なお、顔特徴点検出装置1のハードウェア構成は、
図9に示す構成に限定されない。例えば、顔特徴点検出装置1は、入力装置、ディスプレイなどの表示装置、音出力装置の少なくとも一方を含んでもよい。
【0045】
ここで、
図1において説明した画像入力手段11、顔検出手段12、共通特徴量抽出手段13、顔特徴点検出手段14、顔向き判別手段15及び顔特徴点結果出力手段16の各要素は、例えば、プロセッサ5がプログラムを実行することによって実現できる。また、必要なプログラムを任意の不揮発性記憶媒体に記録しておき、必要に応じてインストールすることで、各構成要素を実現するようにしてもよい。なお、これらの各構成要素の少なくとも一部は、プログラムによるソフトウェアで実現することに限ることなく、ハードウェア、ファームウェア、及びソフトウェアのうちのいずれかの組合せ等により実現してもよい。また、これらの各構成要素の少なくとも一部は、例えばFPGA(field-programmable gate array)又はマイクロコントローラ等の、ユーザがプログラミング可能な集積回路を用いて実現してもよい。この場合、この集積回路を用いて、上記の各構成要素から構成されるプログラムを実現してもよい。また、各構成要素の少なくとも一部は、ASSP(Application Specific Standard Produce)やASIC(Application Specific Integrated Circuit)により構成されてもよい。このように、上述の各構成要素は、種々のハードウェアにより実現されてもよい。以上のことは、後述する他の実施の形態においても同様である。
【0046】
(3-8)ネットワークの構成及び学習
図10は、第1実施形態において共通特徴量抽出手段13、顔特徴点検出手段14及び顔向き判別手段15により構成されるネットワークの全体構成図である。
図10に示されるネットワークは、共通特徴量抽出手段13の畳み込みニューラルネットワーク31と、顔特徴点検出手段14の顔向きの3つの候補に夫々対応する全結合層41~43と、顔向き判別手段15の全結合層51及びSoftmax層52とを含む。
【0047】
全結合層41~43及び全結合層51は、畳み込みニューラルネットワーク31の出力を共用するように並列に配置されている。そして、全結合層41は、正面向き用顔特徴点として10個の数値を出力し、全結合層42は、右向き用顔特徴点として6個の数値を出力し、全結合層43は、左向き用顔特徴点として6個の数値を出力する。このように、全結合層41~43は、それぞれ、畳み込みニューラルネットワーク31の出力結果が入力された場合に顔の向きの候補毎の顔特徴点を出力するように学習されたモデル(顔特徴点の検出器)である。
【0048】
全結合層51は、顔向きの3つの候補に夫々対応する3つの出力をSoftmax層52に入力し、Softmax層52は、顔向きの3つの候補に夫々対応する確からしさを示す確率を出力する。全結合層51は、畳み込みニューラルネットワーク31の出力結果が入力された場合に顔の向きの判別結果を出力するように学習されたモデル(顔の向きの判別器)である。
【0049】
図11は、
図10に示される畳み込みニューラルネットワーク31の学習方法の概要図である。なお、
図10に示される畳み込みニューラルネットワーク31の学習は、顔特徴点検出装置1により行われてもよく、顔特徴点検出装置1以外の装置により行われてもよい。ここで、畳み込みニューラルネットワーク31A~31Dは、
図10に示す畳み込みニューラルネットワーク31を学習により生成する過程で一時的に生成する畳み込みニューラルネットワークである。
【0050】
学習では、顔向きの3つ候補に対応する顔特徴点検出と顔向き判別とに夫々対応する4つの異なるタスクを取り扱っており、これらのタスクの学習を個別に行う場合にはタスク数と同数の4本のネットワークの学習が必要となる。
【0051】
まず、正面向き用の顔特徴点検出のタスクでは、顔領域画像と正面向き用の顔特徴点の座標の正解値とのペアが登録された正面用顔特徴点学習DB(DataBase)61を参照し、直列に接続した畳み込みニューラルネットワーク31Aと全結合層41との学習を行う。この場合、例えば、顔領域画像を畳み込みニューラルネットワーク31Aに入力した場合に全結合層41から出力される10個の座標値と正解の座標値との損失(例えばL1ロス)が最小となるように、畳み込みニューラルネットワーク31Aと全結合層41の重みパラメータを決定する。なお、損失を最小化するように上述のパラメータを決定するアルゴリズムは、勾配降下法や誤差逆伝播法などの機械学習において用いられる任意の学習アルゴリズムであってもよい。
【0052】
次に、右向き用顔特徴点検出のタスクでは、顔領域画像と右向き用顔特徴点座標の正解値とのペアが登録された右向き用顔特徴点学習DB62を参照し、直列に接続した畳み込みニューラルネットワーク31Bと全結合層42との学習を行う。この場合、例えば、顔領域画像をニューラルネットワーク31Bに入力した場合に全結合層42から出力される6個の座標値と正解の座標値とのL1ロスが最小となるように、畳み込みニューラルネットワーク31Bと全結合層42の重みパラメータを決定する。
【0053】
次に、左向き用顔特徴点検出のタスクでは、顔領域画像と左向き用顔特徴点の座標の正解値とのペアが登録された左向き用顔特徴点学習DB63を参照し、直列に接続した畳み込みニューラルネットワーク31Cと全結合層43との学習を行う。この場合、例えば、顔領域画像をニューラルネットワーク31Cに入力した場合に全結合層43から出力される6個の座標値と正解の座標値とのL1ロスが最小となるように、畳み込みニューラルネットワーク31Cと全結合層43の重みパラメータを決定する。
【0054】
次に、顔向き判別のタスクでは、顔領域画像と顔向きの正解値(正解ラベル)とのペアが登録された顔向き判別用学習DB64を参照し、この順により直列に接続した畳み込みニューラルネットワーク31Dと全結合層51とSoftmax層52との学習を行う。この場合、例えば、顔領域画像を畳み込みニューラルネットワーク31Dに入力した場合にSoftmax層52から出力される3個の確率に関する損失(例えばCross-Entropyロス)が最小となるように、畳み込みニューラルネットワーク31Dと全結合層51とSoftmax層52とのパラメータを決定する。
【0055】
本実施形態では、各タスクにおいて使用される畳み込みニューラルネットワーク31A~31Dはいずれも同じ構造であり、重みを共通として同時学習を行う。これにより、学習が完了するとタスクと同数の4本のネットワークが得られるが、畳み込みニューラルネットワーク31A~31Dのパラメータは4本のネットワークとも同一となる。したがって、学習後、畳み込みニューラルネットワーク31A~31Dをどれか一つ選択し、その出力と、各全結合層41~43、51の入力とを接続することで、
図10に示されるような、単一のネットワークを構成することができる。また、4つのタスクは全て顔の特徴抽出に関連するタスクであり、同時学習することでマルチタスク学習の効果によって、精度よく顔特徴点を検出可能なパラメータを取得することが期待できる。ここで、「同時学習」とは、
図10に示すニューラルネットワーク31を生成するために4つのタスクを順不同により行うことを指し、必ずしも同じタイミングにより学習することを必要としない。
【0056】
図12は、
図11に示す処理を実行する学習装置による学習処理の手順を示すフローチャートの一例である。学習装置は、顔特徴点検出装置1であってもよく、顔特徴点検出装置1以外の装置であってもよい。
【0057】
まず、学習装置は、正面用顔特徴点学習DB61を参照し、直列に接続した畳み込みニューラルネットワーク31Aと全結合層41との学習を行う(ステップS151)。次に、学習装置は、右向き用顔特徴点学習DB62を参照し、直列に接続した畳み込みニューラルネットワーク31Bと全結合層42との学習を行う(ステップS152)。さらに、学習装置は、左向き用顔特徴点学習DB63を参照し、直列に接続した畳み込みニューラルネットワーク31Cと全結合層43との学習を行う(ステップS153)。さらに、学習装置は、顔向き判別用学習DB64を参照し、この順により直列に接続した畳み込みニューラルネットワーク31Dと全結合層51とSoftmax層52との学習を行う(ステップS154)。なお、ステップS151~ステップS154の処理は、順不同であり、順番が入れ替わって行われてもよい。また、ステップS151~ステップS154の各ステップで用いられる入力用データと正解データとの組数は、1組分であってもよく、所定組数分であってもよい。
【0058】
次に、学習装置は、学習が終了したか否か判定する(ステップS155)。例えば、学習装置は、正面用顔特徴点学習DB61、右向き用顔特徴点学習DB62、左向き用顔特徴点学習DB63及び顔向き判別用学習DB64に記憶された全てのデータを用いて学習を行った場合に、学習が終了したと判定する。他の例では、学習装置は、他の例では、ステップS151~ステップS154の各ステップで算出される損失がいずれも所定の閾値以下となった場合に、学習が終了したと判定する。さらに別の例では、学習装置は、ステップS151~ステップS154を所定の規定回数繰り返した場合に、学習が終了したと判定する。
【0059】
そして、学習装置は、学習が終了したと判定した場合(ステップS155;Yes)、ネットワークの結合を行う(ステップS156)。具体的には、学習装置は、畳み込みニューラルネットワーク31A~31Dをどれか一つ選択し、その出力と、各全結合層41~43、51の入力とを接続することで、
図10に示されるような、単一のネットワークを構成する。なお、学習装置は、構成したネットワークのパラメータを、顔特徴点検出装置1が顔特徴点検出において参照するメモリ又は記憶装置に記憶してもよく、顔特徴点検出装置1に送信してもよい。一方、学習装置は、学習が終了していないと判定した場合(ステップS155;No)、ステップS151へ処理を戻す。
【0060】
なお、本実施形態において、顔特徴点検出手段14は、正面向き、右向き、左向きの3つの顔の向きの候補の顔特徴点検出を行っているが、任意の3以上のN種類の顔の向きの候補に対する顔特徴点検出を行ってもよい。例えば、顔特徴点検出手段14は、正面用・右向き用・左向き用・下向き用の4つの顔の向きの候補の顔特徴点検出を行ってもよい。この場合、顔向き判別手段15は、N種類の顔の向きの候補から処理対象画像に示された顔の向きを選択する。そして、顔特徴点結果出力手段16は、N種類の顔の向きの候補に対する顔特徴点検出手段14の顔特徴点検出結果から、顔向き判別手段15が選択した顔の向きに対応する顔特徴点を示す顔特徴点情報を出力する。
【0061】
(4)第1実施形態における効果
次に、第1実施形態の顔特徴点検出装置1が実行する処理の効果について補足説明する。
【0062】
一般に、顔特徴点検出に深層学習を利用した手法がいくつか存在するが、大きく分けて2つに分類される。一つは、回帰に基づく手法である。回帰に基づく手法は、画像を入力とし、顔特徴点の二次元座標を出力する手法である。回帰に基づく手法の一例は、非特許文献1に記載されている。もう一つは、ヒートマップに基づく手法である。ヒートマップに基づく手法は、画像を入力とし、各特徴点の存在確率をヒートマップとして出力する手法である。ヒートマップに基づく手法の一例は、非特許文献2に記載されている。
【0063】
回帰に基づく手法は、座標値を必ず出力するため、例えば横を向いて見えなくなった顔特徴点を取り扱うことができないという欠点がある。一方で、ヒートマップに基づく手法は確率をゼロと表現することで、顔特徴点が見えていないことを取り扱うことができる。しかしながら、ヒートマップに基づく手法は顔特徴点の数だけヒートマップを出力するが、回帰に基づく手法は顔特徴点の数だけ二次元座標値を出力すればよいため、回帰に基づく手法のほうがネットワークの規模が小さく、高速に実行可能である。
【0064】
ここで、横を向いた人物の顔認証や表情分析では、画面に向かって奥側の目や口角が見えなくなるため、正面顔の場合と横顔の場合とで使用する特徴点を切り替える必要がある。そして、複数の顔の向きに対応する顔特徴点検出器を構成する際には、以下に述べる課題が存在する。
【0065】
第一の課題は、要求されるファイルサイズやメモリサイズが増大してしまうことである。正面向き、および、横向きの両方の顔に対応した顔特徴点検出器を構成する場合、1つの案では、正面向きの顔特徴点と横向きの顔特徴点をそれぞれ別に定義し、正面向き用・右向き用・左向き用の顔特徴点検出器を個別に学習することで、3つのモデルを用意する。そして、顔特徴点検出処理の前に、別途用意した正面向き・右向き・左向きの顔向き判別処理を使用し、正面向き用・右向き用・左向き用の顔特徴点検出器から使用するモデルを選択する。すなわち、この案では、顔向き判別器1つと顔特徴点検出器3つの合計4種類のモデルを個別に準備する。この場合、各顔特徴点検出器は、夫々、特徴点検出のための特徴量抽出を行う層を有しており、各モデルを個別に準備するために要求されるファイルサイズやメモリサイズが増大してしまう。
【0066】
第二の課題は、回帰に基づく手法は画像中に存在しない顔特徴点を取り扱えず、正面向き用・右向き用・左向き用の顔特徴点を単一のモデルで学習することができないことである。回帰に基づく手法は、ヒートマップに基づく手法より高速に計算可能であることが利点であるが、正面の時に見えているが横を向くと見えなくなるような特徴点は、取り扱うことができない。なお、正面向き用の特徴点データと横向きのデータセットを同時に学習する方法は、非特許文献3に記載されている。しかしながら、正面向きか横向きかの区別がつかず、どの結果を選択すればよいかは不明である。
【0067】
以上を勘案し、第1実施形態では、顔の向きの候補毎の顔特徴点検出において共通して用いられる共通特徴量の抽出を行うニューラルネットワークを共通化し、顔の向き毎の顔特徴点検出のタスク及び顔向き判別のタスクを同時に学習する。そして、顔特徴点検出装置1は、推論段階では、処理対象画像に基づき、複数の顔の向きの候補に対する顔特徴点検出において共通して用いられる共通特徴量を抽出し、顔の向きによって顔特徴点の結果を自動で切り替える。これにより、顔特徴点検出装置1は、複数の顔の向きに対応する顔特徴点検出を好適に実行することができる。これに加えて、顔特徴点検出装置1は、共通特徴量の抽出を行うニューラルネットワークを設けることで、顔の向き毎に個別の特徴量抽出を行う構成とする場合と比較して、パラメータを記憶するための要求メモリサイズを好適に削減し、かつ、マルチタスク学習の効果等により高精度な顔特徴点検出を提供することができる。そして、本実施形態に基づき、顔特徴点検出を行うことで、顔特徴点を用いた顔認証による人物の識別などの種々の応用の精度を好適に向上させることができる。
【0068】
<第2実施形態>
図13は、第2実施形態における検出装置1Xのブロック構成図である。検出装置1Xは、主に、取得手段12Xと、共通特徴量抽出手段13Xと、特徴情報検出手段14Xと、属性判別手段15Xと、出力手段16Xと、を有する。
【0069】
取得手段12Xは、検出対象に関するデータを取得する。「データ」は、例えば、第1実施形態における顔領域情報である。なお、データは、検出対象を表す画像に限らず、検出対象が発する音を示す音データなどであってもよい。「検出対象」は、後述の特徴情報の検出の対象となるものを指し、例えば第1実施形態における顔である。取得手段12Xは、例えば、第1実施形態において、処理対象画像から顔領域情報(顔領域画像)を生成する顔検出手段12とすることができる。なお、取得手段12Xは、処理対象画像から顔領域情報を生成する代わりに、他の装置が処理対象画像から生成した顔領域情報を取得してもよい。
【0070】
共通特徴量抽出手段13Xは、検出対象が有する属性の複数の候補に共通する共通特徴量を、データから抽出する。「属性」は、検出時に依存して一時的または部分的に異なってデータに表れる検出対象の性質であり、第1実施形態では、顔の向きに相当する。共通特徴量抽出手段13Xは、第1実施形態における共通特徴量抽出手段13とすることができる。
【0071】
特徴情報検出手段14Xは、共通特徴量に基づき、複数の候補の各々に対する特徴情報を検出する。「特徴情報」は、複数の候補の各々の特徴を表す情報である。特徴情報は、例えば、データが画像である場合には、画像中の検出対象の特徴点を示す情報であり、データが音データである場合には、音データ中の検出対象の特徴的な周波数等を示す音響(音声)特徴量を示す情報である。特徴情報検出手段14Xは、第1実施形態における顔特徴点検出手段14とすることができる。
【0072】
属性判別手段15Xは、データに基づき、検出対象の属性を判別する。言い換えると、属性判別手段15Xは、データに基づき、データの検出時点での検出対象の属性を判別する。属性判別手段15Xは、第1実施形態における顔向き判別手段15とすることができる。
【0073】
出力手段16Xは、判別された属性に対応する特徴情報を出力する。言い換えると、出力手段16Xは、特徴情報検出手段14Xが検出した属性の複数の候補の各々に対する特徴情報から、属性判別手段15Xが判別した属性に対応する特徴情報を選択して出力する。この場合、出力手段16Xは、検出装置1X内の他の処理ブロックに特徴情報を出力してもよく、外部装置に特徴情報を出力してもよい。出力手段16Xは、第1実施形態における顔特徴点結果出力手段16とすることができる。
【0074】
図14は、第2実施形態における検出装置1Xの処理手順を示すフローチャートの一例である。まず、取得手段12Xは、検出対象に関するデータを取得する(ステップS211)。次に、共通特徴量抽出手段13Xは、検出対象が有する属性の複数の候補に共通する共通特徴量を、データから抽出する(ステップS212)。特徴情報検出手段14Xは、共通特徴量に基づき、複数の候補の各々に対する特徴情報を検出する(ステップS213)。属性判別手段15Xは、データに基づき、検出対象の属性を判別する(ステップS214)。出力手段16Xは、判別された属性に対応する特徴情報を出力する(ステップS215)。なお、ステップS213とステップS214とは、処理順序が逆であってもよく、同時に実行されてもよい。
【0075】
第2実施形態によれば、検出装置1Xは、複数の属性の候補を有する検出対象について、検出対象の属性に応じた特徴情報を好適に検出し、出力することができる。
【0076】
次に、顔以外を検出対象とする応用例について補足説明する。
【0077】
第1応用例では、検出装置1Xは、指紋認証又は静脈認証において用いられる指紋の特徴点の検出を行ってもよい。この場合、取得手段12Xは、上記データとして、指紋又は静脈を示した画像を取得する。共通特徴量抽出手段13Xは、指紋又は静脈に関する属性(例えば、指紋又は静脈の向き)の複数の候補に共通する共通特徴量を、画像から抽出する。特徴情報検出手段14Xは、共通特徴量に基づき、複数の候補の各々に対する指紋又は静脈の特徴点を示す情報を検出する。属性判別手段15Xは、画像に基づき、画像に示された指紋又は静脈の属性を判別する。出力手段16Xは、判別された属性に対応する指紋又は静脈の特徴点を示す情報を出力する。
【0078】
第2応用例では、検出装置1Xは、声認証において用いられる音響特徴量の検出を行ってもよい。この場合、取得手段12Xは、上記データとして、人の声が含まれる音データを取得する。共通特徴量抽出手段13Xは、声に関する属性(例えば、発声者の性別又は年齢等に関する属性)の複数の候補に共通する特徴量である共通特徴量を、音データから抽出する。特徴情報検出手段14Xは、共通特徴量に基づき、複数の候補の各々に対する音響特徴量を示す情報を検出する。属性判別手段15Xは、音データに基づき、音データに含まれる声の属性を判別する。出力手段16Xは、判別された属性に対応する音響特徴量を示す情報を出力する。
【0079】
その他、検出装置1Xは、例えば、チャネルごとの識別に用いる特徴情報の検出を行ってもよい。この場合、検出装置1Xは、共通特徴量の抽出、チャネルごとの特徴情報の検出、チャネルの判別、及び判別したチャネルに対応する特徴情報の出力を、第1及び第2応用例と同様に行う。
【0080】
このように、第2実施形態に係る検出装置1Xは、複数の属性の候補を有する任意の対象について、属性に応じた特徴情報を好適に検出し、出力することができる。
【0081】
<第3実施形態>
図15は、第3実施形態における顔特徴点検出装置1Aの共通特徴量抽出手段13、顔特徴点検出手段14及び顔向き判別手段15に関する構成図である。第3実施形態では、共通特徴量抽出手段13が単一の畳み込みニューラルネットワーク31を有する代わりに、顔特徴点検出手段14に接続する畳み込みニューラルネットワーク31Xと、顔向き判別手段15に接続する畳み込みニューラルネットワーク31Yとを夫々有する点において、第1実施形態と異なる。その他、第1実施形態と同一構成要素については、適宜同一符号を付し、その説明を省略する。畳み込みニューラルネットワーク31Xは、「第1ニューラルネットワーク」の一例であり、畳み込みニューラルネットワーク31Yは、「第2ニューラルネットワーク」の一例である。
【0082】
畳み込みニューラルネットワーク31Xは、顔領域画像が入力された場合に、正面向き用・右向き用・左向き用の各顔特徴点検出に共通して使用される共通特徴量を推論するように学習される。畳み込みニューラルネットワーク31Xは、推論した共通特徴量を、顔特徴点検出手段14の全結合層41~43に夫々供給する。また、畳み込みニューラルネットワーク31Yは、顔領域画像が入力された場合に、顔の向きの判別に使用する特徴量(「顔向き判別特徴量」とも呼ぶ。)を推論するように学習される。畳み込みニューラルネットワーク31Yは、推論した顔向き判別特徴量を、顔向き判別手段15の全結合層51に供給する。
【0083】
ここで、畳み込みニューラルネットワーク31X、31Yの学習について、
図11及び
図12を再び参照して説明する。
【0084】
畳み込みニューラルネットワーク31Xの学習では、学習装置は、
図11に示す畳み込みニューラルネットワーク31A~31Cの重みを共通として、ステップS151~ステップS153の学習を行う。即ち、ステップS151~ステップS153において使用される畳み込みニューラルネットワーク31A~31Cは、はいずれも同じ構造であり、重みを共通として同時学習が行われる。そして、ステップS155において学習が終了したと判定した後のステップS156でのネットワークの結合において、学習装置は、畳み込みニューラルネットワーク31A~31Cのどれか一つを畳み込みニューラルネットワーク31Xとして選択し、その出力と、各全結合層41~43の入力とを接続する(
図15参照)。
【0085】
また、畳み込みニューラルネットワーク31Yの学習では、学習装置は、ニューラルネットワーク31A~31Cと重みを共有しないニューラルネットワーク31Dを用いて、ステップS154の学習を行う。この場合、ニューラルネットワーク31Dは、ニューラルネットワーク31A~31Cと同じ構造であってもよく、異なる構造であってもよい。この場合、ステップS154の学習では、顔特徴点検出手段14の学習に用いられる畳み込みニューラルネットワーク31A~31Cと重みを共有せずにニューラルネットワーク31Dの学習が行われるため、顔向き判定に特化した顔向き判別特徴量を出力するようにニューラルネットワーク31Dの学習が行われる。そして、ステップS155において学習が終了したと判定した後のステップS156でのネットワークの結合において、学習装置は、畳み込みニューラルネットワーク31Dを、畳み込みニューラルネットワーク31Yとみなし、その出力と、各全結合層51の入力とを接続する(
図15参照)。
【0086】
このように、第3実施形態によれば、顔特徴点検出装置1Aは、正面向き用・右向き用・左向き用の各顔特徴点検出に共通して使用される共通特徴量を1つの畳み込みニューラルネットワーク31Xにより抽出することができる。また、顔特徴点検出装置1Aは、顔向き判定に適した顔向き判別特徴量を畳み込みニューラルネットワーク31Yにより抽出することができる。
【0087】
<第4実施形態>
図16は、第4実施形態における顔特徴点検出装置1Bの共通特徴量抽出手段13、顔特徴点検出手段14及び顔向き判別手段15に関する構成図である。第4実施形態では、顔向き判別手段15は、(正面向き,右向き,左向き)のいずれかと、(上向き,下向き)のいずれかとの組を、判別結果として出力する点において、第1実施形態と異なる。その他、第1実施形態と同一構成要素については、適宜同一符号を付し、その説明を省略する。以後では、便宜上、3つの顔向きの候補(正面向き,右向き,左向き)を、顔向き候補の第1グループ、2つの顔向きの候補(上向き,下向き)を、顔向き候補の第2グループとする。
【0088】
この場合、
図16に示すように、顔特徴点検出手段14は、第1実施形態において説明した全結合層41~43に加えて、全結合層44及び全結合層45を有する。そして、全結合層41~45及び全結合層51は、畳み込みニューラルネットワーク31の出力を共用するように並列に配置されている。ここで、全結合層44は、畳み込みニューラルネットワーク31から出力される共通特徴量が入力された場合に、所定個数分の座標値に相当する数値を上向き用顔特徴点として出力する。また、全結合層45は、畳み込みニューラルネットワーク31から出力される共通特徴量が入力された場合に、所定個数分の座標値に相当する数値を下向き用顔特徴点として出力する。
【0089】
また、顔向き判別手段15は、顔向きの候補の第1グループに属する(正面向き,右向き,左向き)のいずれかと、顔向き候補の第2グループに属する(上向き,下向き)のいずれかとの組を、判別結果として出力する。この場合、例えば、顔向き判別手段15は、第1グループの(正面向き、右向き、左向き)のうちSoftmax層52が出力する確率(確信度)が最も高い向きと、第2グループの(上向き、下向き)のうちSoftmax層52が出力した確率が最も高い向きとの組を、判別結果として出力する。なお、顔向き判別手段15は、第1グループの(正面向き、右向き、左向き)に対応する確率を出力するSoftmax層と、第2グループの(上向き、下向き)に対する確率を出力するSoftmax層とを、Softmax層52として有してもよい。その後、顔特徴点結果出力手段16は、判別結果として顔向き判別手段15から出力された2つの顔向きに対応する顔特徴点を示す顔特徴点情報を出力する。
【0090】
図17は、
図16に示される共通特徴量抽出手段13、顔特徴点検出手段14及び顔向き判別手段15の学習方法の概要図である。学習では、顔向きの5つ候補に対応する顔特徴点検出と顔向き判別とに夫々対応する6つの異なるタスクを扱い、各タスクにおいて使用する畳み込みニューラルネットワーク31A~31Fの重みを共通として学習を行う。
【0091】
ここで、第4実施形態では、学習装置は、第1実施形態において説明した4つのタスクに加えて、上向き用の顔特徴点検出のタスクと、下向き用の顔特徴点検出のタスクとを行う。上向き用の顔特徴点検出のタスクでは、顔領域画像と上向き用の顔特徴点の座標の正解値とのペアが登録された上向き用顔特徴点学習DB65を参照し、直列に接続した畳み込みニューラルネットワーク31Eと全結合層44との学習を行う。この場合、例えば、顔領域画像をニューラルネットワーク31Eに入力した場合に全結合層44から出力される座標値と正解の座標値とのL1ロスが最小となるように、畳み込みニューラルネットワーク31Eと全結合層44の重みパラメータを決定する。下向き用の顔特徴点検出のタスクでは、顔領域画像と下向き用の顔特徴点の座標の正解値とのペアが登録された下向き用顔特徴点学習DB66を参照し、直列に接続した畳み込みニューラルネットワーク31Fと全結合層45との学習を行う。この場合、例えば、顔領域画像をニューラルネットワーク31Fに入力した場合に全結合層45から出力される座標値と正解の座標値とのL1ロスが最小となるように、畳み込みニューラルネットワーク31Fと全結合層45の重みパラメータを決定する。
【0092】
図18は、
図17に示す処理を実行する学習装置による学習処理の手順を示すフローチャートの一例である。
【0093】
まず、学習装置は、正面用顔特徴点学習DB61を参照し、直列に接続した畳み込みニューラルネットワーク31Aと全結合層41との学習を行う(ステップS161)。次に、学習装置は、右向き用顔特徴点学習DB62を参照し、直列に接続した畳み込みニューラルネットワーク31Bと全結合層42との学習を行う(ステップS162)。さらに、学習装置は、左向き用顔特徴点学習DB63を参照し、直列に接続した畳み込みニューラルネットワーク31Cと全結合層43との学習を行う(ステップS163)。さらに、学習装置は、上向き用顔特徴点学習DB65を参照し、直列に接続した畳み込みニューラルネットワーク31Eと全結合層44との学習を行う(ステップS164)。さらに、学習装置は、下向き用顔特徴点学習DB66を参照し、直列に接続した畳み込みニューラルネットワーク31Fと全結合層45との学習を行う(ステップS165)。さらに、学習装置は、顔向き判別用学習DB64を参照し、この順により直列に接続した畳み込みニューラルネットワーク31Dと全結合層51とSoftmax層52との学習を行う(ステップS166)。なお、ステップS161~ステップS166の処理は、順不同であり、順番が入れ替わって行われてもよい。また、ステップS161~ステップS166の各ステップで用いられる入力用データと正解データとの組数は、1組分であってもよく、所定組数分であってもよい。
【0094】
次に、学習装置は、学習が終了したか否か判定する(ステップS167)。例えば、学習装置は、正面用顔特徴点学習DB61、右向き用顔特徴点学習DB62、左向き用顔特徴点学習DB63、顔向き判別用学習DB64、上向き用顔特徴点学習DB65及び下向き用顔特徴点学習DB66に記憶された全てのデータを用いて学習を行った場合に、学習が終了したと判定する。他の例では、学習装置は、他の例では、ステップS161~ステップS166の各ステップで算出される損失がいずれも所定の閾値以下となった場合に、学習が終了したと判定する。さらに別の例では、学習装置は、ステップS161~ステップS166を所定の規定回数繰り返した場合に、学習が終了したと判定する。
【0095】
そして、学習装置は、学習が終了したと判定した場合(ステップS167;Yes)、ネットワークの結合を行う(ステップS168)。具体的には、学習装置は、畳み込みニューラルネットワーク31A~31Eをどれか一つ選択し、その出力と、各全結合層41~45、51の入力とを接続することで、
図16に示されるような、単一のネットワークを構成する。一方、学習装置は、学習が終了していないと判定した場合(ステップS167;No)、ステップS161へ処理を戻す。
【0096】
なお、第4実施形態に係る共通特徴量抽出手段13は、第3実施形態と同様に、顔特徴点検出手段14に共通特徴量を出力する畳み込みニューラルネットワークと、顔向き判別手段15に顔向き判別特徴量を出力する畳み込みニューラルネットワークとを、夫々有してもよい。
【0097】
第4実施形態によれば、顔特徴点検出装置1は、検出された顔が正面、右向き、又は左向きのいずれであるかの判別に加えて、上向きか下向きかについても好適に判別することができる。なお、グループ数は、上述した2つに限られず、検出対象に応じて任意の数のグループに検出対象の属性の候補が分けられてもよい。この場合、グループ毎に検出対象の属性の判別が行われる。
【0098】
<第5実施形態>
図19は、第5実施形態における顔特徴点検出装置1Cの機能的な構成を示すブロック図である。顔特徴点検出装置1Cは、畳み込みニューラルネットワーク31等の学習に使用する各学習DBを更新する点において、第1実施形態における顔特徴点検出装置1と異なる。その他、第1実施形態と同一構成要素については、適宜同一符号を付し、その説明を省略する。なお、第5実施形態は、第3実施形態又は/及び第4実施形態と組み合わせてもよい。
【0099】
顔特徴点結果出力手段16は、画像入力手段11が処理対象画像を取得した場合に顔特徴点検出手段14が出力する顔特徴点の検出結果及び顔向き判別手段15が出力する顔向き判別結果に基づき、顔特徴点学習DB61~63のいずれかと、顔向き判別用学習DB64とを更新する。具体的には、顔特徴点結果出力手段16は、顔検出手段12が出力する顔領域画像と、顔向き判別手段15が判別した顔向きに対応する顔特徴点座標との組を、入力用データと正解データとの組として、顔向き判別手段15が判別した顔向きに対応する顔特徴点学習DB61~63のいずれかに登録する。また、顔特徴点結果出力手段16は、顔検出手段12が出力する顔領域画像と、顔向き判別手段15が判別した顔向きを示すラベル(タグ)とを、入力用データと正解データとの組として、顔向き判別用学習DB64に登録する。その後、顔特徴点学習DB61~63、顔特徴点学習DB61~63に登録されたデータは、
図11において説明した畳み込みニューラルネットワーク31等の学習において好適に用いられる。
【0100】
このように、第5実施形態では、顔特徴点検出装置1Cは、畳み込みニューラルネットワーク31等の学習用データを、処理対象画像への処理結果に応じて好適に生成し、学習DBを更新することができる。
【0101】
なお、上述した各実施形態において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータであるプロセッサ等に供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記憶媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記憶媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記憶媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0102】
その他、上記の各実施形態の一部又は全部は、以下の付記のようにも記載され得るが以下には限られない。
【0103】
[付記1]
検出対象に関するデータを取得する取得手段と、
前記検出対象が有する属性の複数の候補に共通する共通特徴量を、前記データから抽出する共通特徴量抽出手段と、
前記共通特徴量に基づき、前記複数の候補の各々に対する前記検出対象の特徴情報を検出する特徴情報検出手段と、
前記データに基づき、前記属性を判別する属性判別手段と、
判別された前記属性に対応する前記特徴情報を出力する出力手段と、
を有する検出装置。
[付記2]
前記共通特徴量抽出手段は、前記データを入力した場合に前記共通特徴量に関する情報を出力するように学習されたニューラルネットワークに基づき、前記共通特徴量を生成する、付記1に記載の検出装置。
[付記3]
前記特徴情報検出手段及び前記属性判別手段は、共通のパラメータにより構成された前記ニューラルネットワークから出力される共通の出力結果に基づき、夫々の処理を実行する、付記2に記載の検出装置。
[付記4]
前記特徴情報検出手段は、前記ニューラルネットワークの出力結果が入力された場合に、前記特徴情報を出力するように前記複数の候補ごとに学習された検出器に基づき、前記複数の候補の各々に対する前記特徴情報を検出し、
前記属性判別手段は、前記ニューラルネットワークの出力結果が入力された場合に、前記属性の判別結果を出力するように学習された判別器に基づき、前記属性を判別する、付記2または3に記載の検出装置。
[付記5]
前記複数の候補の各々に対する前記検出器と、前記判別器とは、前記ニューラルネットワークのパラメータを共有して学習される、付記4に記載の検出装置。
[付記6]
前記共通特徴量抽出手段は、前記データを入力した場合に前記共通特徴量に関する情報を出力するように学習されたニューラルネットワークである第1ニューラルネットワークと、前記データを入力した場合に前記属性判別手段に入力する特徴量を出力するように学習されたニューラルネットワークである第2ニューラルネットワークとを含む、付記1または2に記載の検出装置。
[付記7]
前記特徴情報検出手段は、前記第1ニューラルネットワークの出力結果が入力された場合に、前記特徴情報を出力するように前記複数の候補ごとに学習された検出器に基づき、前記複数の候補の各々に対する前記特徴情報を検出し、
前記複数の候補の各々に対する前記検出器は、前記第1ニューラルネットワークのパラメータを共有して学習される、付記6に記載の検出装置。
[付記8]
前記出力手段は、判別された前記属性に対応する前記特徴情報に基づき、前記ニューラルネットワークの学習用データを生成する、付記2~7のいずれか一項に記載の検出装置。
[付記9]
前記複数の候補は、複数のグループに分けられており、
前記属性判別手段は、前記複数のグループの各々に対し、前記属性を夫々判別する、付記1~8のいずれか一項に記載の検出装置。
[付記10]
前記特徴情報に基づき、前記検出対象に関する識別を行う識別手段をさらに有する、付記1~9のいずれか一項に記載の検出装置。
[付記11]
前記データは、前記検出対象である人物の顔を示す画像であり、
前記属性は、前記画像に示された前記顔の向きであり
前記共通特徴量抽出手段は、前記画像に基づき、前記顔の向きの複数の候補に共通する前記共通特徴量を生成し、
前記特徴情報検出手段は、前記共通特徴量に基づき、前記複数の候補の各々に対する前記画像内の前記顔の特徴点を、前記特徴情報として検出し、
前記属性判別手段は、前記画像に基づき、前記画像における前記顔の向きを判別し、
前記出力手段は、判別された前記顔の向きに対応する前記特徴点を出力する、付記1~10のいずれか一項に記載の検出装置。
[付記12]
前記データは、指紋又は静脈を示す画像であり、
前記共通特徴量抽出手段は、前記画像に基づき、前記指紋又は静脈が有する属性の複数の候補に共通する前記共通特徴量を生成し、
前記特徴情報検出手段は、前記共通特徴量に基づき、前記複数の候補の各々に対する前記画像内の前記指紋又は静脈の特徴点を、前記特徴情報として検出し、
前記属性判別手段は、前記画像に基づき、前記属性を判別し、
前記出力手段は、判別された前記属性に対応する前記特徴点を出力する、付記1~10のいずれか一項に記載の検出装置。
[付記13]
前記データは、声が含まれる音データであり、
前記共通特徴量抽出手段は、前記音データに基づき、前記声の属性の複数の候補に共通する前記共通特徴量を生成し、
前記特徴情報検出手段は、前記共通特徴量に基づき、前記複数の候補の各々に対する前記声の特徴量を、前記特徴情報として検出し、
前記属性判別手段は、前記音データに基づき、前記声の属性を判別し、
前記出力手段は、判別された前記声の属性に対応する前記特徴量を出力する、付記1~10のいずれか一項に記載の検出装置。
[付記14]
コンピュータにより、
検出対象に関するデータを取得し、
前記検出対象が有する属性の複数の候補に共通する共通特徴量を、前記データから抽出し、
前記共通特徴量に基づき、前記複数の候補の各々に対する前記検出対象の特徴情報を検出し、
前記データに基づき、前記属性を判別し、
判別された前記属性に対応する前記特徴情報を出力する、
検出方法。
[付記15]
検出対象に関するデータを取得し、
前記検出対象が有する属性の複数の候補に共通する共通特徴量を、前記データから抽出し、
前記共通特徴量に基づき、前記複数の候補の各々に対する前記検出対象の特徴情報を検出し、
前記データに基づき、前記属性を判別し、
判別された前記属性に対応する前記特徴情報を出力する処理をコンピュータに実行させるプログラムが格納された記憶媒体。
[付記16]
検出対象に関するデータが入力された場合に、前記検出対象が有する属性の複数の候補に共通する共通特徴量に関する情報を出力するニューラルネットワークの学習を行う学習手段を有する、学習装置。
[付記17]
コンピュータにより、
検出対象に関するデータが入力された場合に、前記検出対象が有する属性の複数の候補に共通する共通特徴量に関する情報を出力するニューラルネットワークの学習を行う、学習方法。
[付記18]
検出対象に関するデータが入力された場合に、前記検出対象が有する属性の複数の候補に共通する共通特徴量に関する情報を出力するニューラルネットワークの学習を行う処理をコンピュータに実行させるプログラムが格納された記憶媒体。
[付記19]
検出対象に関するデータが入力された場合に、前記検出対象が有する属性の複数の候補に共通する共通特徴量に関する情報を出力するニューラルネットワークと、前記ニューラルネットワークの出力結果を入力として、前記複数の候補の各々に対する前記検出対象の特徴情報を出力する検出器と、前記ニューラルネットワークの出力結果を入力として、前記属性の判別結果を出力する判別器との学習を行う学習手段を有し、
前記学習手段は、前記複数の候補の各々に対する前記検出器と、前記判別器とを、前記ニューラルネットワークのパラメータを共有して学習を行う、学習装置。
[付記20]
互いに異なる学習データベースを用いて、同じ構造を持つ複数の畳み込みニューラルネットワークを個別に学習させ、互いに異なる学習データベースを用いた学習結果に基づいて、複数の畳み込みニューラルネットワークのパラメータの重みをそれぞれ更新し、個別に学習を完了した複数のニューラルネットワークのパラメータの重みを共有させることによって、単一の畳み込みニューラルネットワークを生成する学習装置。
[付記21]
コンピュータにより、
検出対象に関するデータが入力された場合に、前記検出対象が有する属性の複数の候補に共通する共通特徴量に関する情報を出力するニューラルネットワークと、前記ニューラルネットワークの出力結果を入力として、前記複数の候補の各々に対する前記検出対象の特徴情報を出力する検出器と、前記ニューラルネットワークの出力結果を入力として、前記属性の判別結果を出力する判別器との学習を行う場合に、前記複数の候補の各々に対する前記検出器と、前記判別器とを、前記ニューラルネットワークのパラメータを共有して学習を行う、学習方法。
[付記22]
検出対象に関するデータが入力された場合に、前記検出対象が有する属性の複数の候補に共通する共通特徴量に関する情報を出力するニューラルネットワークと、前記ニューラルネットワークの出力結果を入力として、前記複数の候補の各々に対する前記検出対象の特徴情報を出力する検出器と、前記ニューラルネットワークの出力結果を入力として、前記属性の判別結果を出力する判別器との学習を行う場合に、前記複数の候補の各々に対する前記検出器と、前記判別器とを、前記ニューラルネットワークのパラメータを共有して学習を行う処理をコンピュータに実行させるプログラムが格納された記憶媒体。
【0104】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。すなわち、本願発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。また、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。
【符号の説明】
【0105】
1、1A~1C 顔特徴点検出装置
1X 検出装置
11 画像入力手段
12 顔検出手段
13 共通特徴量抽出手段
14 顔特徴点検出手段
15 顔向き判別手段
16 顔特徴点結果出力手段