JP5772825B2 - 画像処理学習装置、画像処理学習方法、および画像処理学習プログラム - Google Patents
画像処理学習装置、画像処理学習方法、および画像処理学習プログラム Download PDFInfo
- Publication number
- JP5772825B2 JP5772825B2 JP2012523797A JP2012523797A JP5772825B2 JP 5772825 B2 JP5772825 B2 JP 5772825B2 JP 2012523797 A JP2012523797 A JP 2012523797A JP 2012523797 A JP2012523797 A JP 2012523797A JP 5772825 B2 JP5772825 B2 JP 5772825B2
- Authority
- JP
- Japan
- Prior art keywords
- image
- face
- manifold
- unknown
- orientation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
- G06V10/76—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries based on eigen-space representations, e.g. from pose or different illumination conditions; Shape manifolds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
- G06F18/2155—Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the incorporation of unlabelled data, e.g. multiple instance learning [MIL], semi-supervised techniques using expectation-maximisation [EM] or naïve labelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/19—Recognition using electronic means
- G06V30/191—Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
- G06V30/19147—Obtaining sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/19—Recognition using electronic means
- G06V30/192—Recognition using electronic means using simultaneous comparisons or correlations of the image signals with a plurality of references
- G06V30/194—References adjustable by an adaptive method, e.g. learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/161—Detection; Localisation; Normalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/161—Detection; Localisation; Normalisation
- G06V40/164—Detection; Localisation; Normalisation using holistic features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30196—Human being; Person
- G06T2207/30201—Face
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Artificial Intelligence (AREA)
- Human Computer Interaction (AREA)
- Evolutionary Computation (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- General Engineering & Computer Science (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Description
本発明は、画像処理学習装置、画像処理学習方法、および画像処理学習プログラムに関する。
本発明に関連する、画像中の顔の向きを推定等する技術として、例えば特許文献1や特許文献2に記載の技術がある。
例えば、特許文献1に記載の顔向き推定技術は、予め複数人の正面顔データを取得して平均顔を作成し、平均顔を3Dモデルに張り合わせて任意の角度を回転させた画像を生成する。特許文献1に記載の顔向き推定技術は、入力画像と最も相関度の高い角度の画像を決定することで入力画像の顔の向きを推定する。特許文献1に記載の顔向き推定技術は、入力画像が顔画像であることが前提である。この前提は、特許文献2も同様である。
上記のように、顔向き推定技術は、多くの場合、予め入力画像が顔画像であるか否かが判断されている。入力画像が顔画像であるか否かの判断は、例えば、非特許文献1などに記載の顔検出技術によって入力画像中の顔を検出することにより行う。
非特許文献1などにみられる様々な顔検出技術は、顔を検出したい画像中から顔の領域を抽出する。具体的には、顔検出技術は画像中から様々な部分画像を抽出する。次に顔検出技術は、抽出した部分画像が、顔が主体的に映っている画像かそうではない画像かを判断する。そして顔検出技術は、顔が主体的に映っている画像であると判断した画像に対応する領域を、顔が存在する領域であると判定する。
なお、以後は説明の便宜のために、「顔が主体的に映っている画像」を顔画像と呼び、「そうではない画像」を非顔画像と呼ぶ。
非特許文献1などに記載の技術は、顔を検出する処理を、予め大量の顔画像群と非顔画像群を用意した上で学習する。学習に用いる顔画像群は、例えば、顔が含まれる画像中から人手によって顔が存在する領域を指定し、その領域のみ切り出すことで取得する。
上記の特許文献1のように、顔向き推定技術の多くは、関連する顔検出技術などによって顔の検出処理が行われていることを前提としている。すなわち、多くの場合、顔向き推定技術と顔検出技術とは独立の技術である。多くの場合、顔向き推定技術は、推定の対象となる画像が顔画像であるか非顔画像であるかがわかっていることが前提となっており、一方で顔検出技術は、検出の対象となる画像中の顔の向きが大まかにわかっていることが前提となっている。
ここで、非特許文献2に記載の技術は、顔向き推定処理と顔検出処理とを独立として行わず、同時に行わせることで双方の処理の精度を向上させている。
非特許文献2に記載の技術は、予め大量の顔画像群と非顔画像群を用意する。非特許文献2に記載の技術は、用意した各画像群の画像それぞれに対して、顔画像であるか否かという情報と、顔画像であればどの向きを向いているかの情報を合わせて付与しておく。そして、非特許文献2に記載の技術は、各画像とそれぞれの情報を統合したデータを用いて、顔検出処理と顔向き推定処理を同時に学習する。そのため非特許文献2に記載の技術は、顔検出処理と顔向き推定処理を同時に、かつ高精度に行うことができる。
例えば、特許文献1に記載の顔向き推定技術は、予め複数人の正面顔データを取得して平均顔を作成し、平均顔を3Dモデルに張り合わせて任意の角度を回転させた画像を生成する。特許文献1に記載の顔向き推定技術は、入力画像と最も相関度の高い角度の画像を決定することで入力画像の顔の向きを推定する。特許文献1に記載の顔向き推定技術は、入力画像が顔画像であることが前提である。この前提は、特許文献2も同様である。
上記のように、顔向き推定技術は、多くの場合、予め入力画像が顔画像であるか否かが判断されている。入力画像が顔画像であるか否かの判断は、例えば、非特許文献1などに記載の顔検出技術によって入力画像中の顔を検出することにより行う。
非特許文献1などにみられる様々な顔検出技術は、顔を検出したい画像中から顔の領域を抽出する。具体的には、顔検出技術は画像中から様々な部分画像を抽出する。次に顔検出技術は、抽出した部分画像が、顔が主体的に映っている画像かそうではない画像かを判断する。そして顔検出技術は、顔が主体的に映っている画像であると判断した画像に対応する領域を、顔が存在する領域であると判定する。
なお、以後は説明の便宜のために、「顔が主体的に映っている画像」を顔画像と呼び、「そうではない画像」を非顔画像と呼ぶ。
非特許文献1などに記載の技術は、顔を検出する処理を、予め大量の顔画像群と非顔画像群を用意した上で学習する。学習に用いる顔画像群は、例えば、顔が含まれる画像中から人手によって顔が存在する領域を指定し、その領域のみ切り出すことで取得する。
上記の特許文献1のように、顔向き推定技術の多くは、関連する顔検出技術などによって顔の検出処理が行われていることを前提としている。すなわち、多くの場合、顔向き推定技術と顔検出技術とは独立の技術である。多くの場合、顔向き推定技術は、推定の対象となる画像が顔画像であるか非顔画像であるかがわかっていることが前提となっており、一方で顔検出技術は、検出の対象となる画像中の顔の向きが大まかにわかっていることが前提となっている。
ここで、非特許文献2に記載の技術は、顔向き推定処理と顔検出処理とを独立として行わず、同時に行わせることで双方の処理の精度を向上させている。
非特許文献2に記載の技術は、予め大量の顔画像群と非顔画像群を用意する。非特許文献2に記載の技術は、用意した各画像群の画像それぞれに対して、顔画像であるか否かという情報と、顔画像であればどの向きを向いているかの情報を合わせて付与しておく。そして、非特許文献2に記載の技術は、各画像とそれぞれの情報を統合したデータを用いて、顔検出処理と顔向き推定処理を同時に学習する。そのため非特許文献2に記載の技術は、顔検出処理と顔向き推定処理を同時に、かつ高精度に行うことができる。
P.Viola and M.Jones,″Rapid Object Detection using a Boosted Cascade of Simple Features,″Computer Vision and Pattern Recognition,2001.
M.Osadchy,Matthew L.Miller and Y.L.Cun,″Synergistic Face Detection and Pose Estimation with Energy−Based Models,″Journal of Machine Learning Research,2007.
C.M.ビショップ著、元田浩/栗田多喜夫/樋口知之/松本裕治/村田昇監訳、pp.270−272、パターン認識と機械学習(上)、2007.
C.M.ビショップ著、元田浩/栗田多喜夫/樋口知之/松本裕治/村田昇監訳、pp.226−238、パターン認識と機械学習(上)、2007.
非特許文献2に記載の技術では、予め用意したすべての画像に対して、顔情報と、顔画像であればどの向きを向いているかに関する情報を合わせて付与する必要がある。
しかしながら、実際にはすべての画像に対して、顔情報と、顔向き情報を同時に付与しておくことは困難である。なぜならば、顔情報を付与する過程と顔向き情報を付与する過程は、まったく異なるからである。
顔情報は、収集された顔を含む画像中から、顔の領域を1つ1つ人手によって切り出すことで得ることができる。一方、顔向き情報は、画像をカメラ等で撮影・採取する前にカメラと被写体の位置を予め固定し、その位置関係を測定することによって正確な値を得ることができる。逆にいえば、正確な顔向き情報は、正確な数値を把握することなく撮影された顔画像(例えばWeb等で容易かつ大量に収集可能な、カメラと被写体の位置がわからない状態で撮影されている顔画像)からは得ることができない。
また、撮影の時にカメラと被写体の位置を予め測定しておけば、その後カメラで大量に画像を撮影することで、顔向き情報を把握した画像を多く、容易に得ることができる。しかし、その中から顔画像を適切に切り出すために顔の領域を指定する作業は、画像1枚1枚ごとに対して人手をかけなければならず、多大なコストがかかる。
そのため、顔向き情報と顔情報を同時に保持する画像を多量に集めることは、実用上においては困難である。
なお、非特許文献2には、顔向き情報が未知である場合、顔向きを推定した結果を用いて学習すれば良いことが簡単に言及されているが、詳細な学習方法については記載されていない。
以上より、本発明の目的は、予め用意したすべての画像が、顔情報と、顔画像であればどの向きを向いているかという情報を同時に付与されていなくても、多大なコストをかけずに、顔向き推定処理と顔検出処理を同時に、かつ高精度に学習することができる技術を提供することである。
しかしながら、実際にはすべての画像に対して、顔情報と、顔向き情報を同時に付与しておくことは困難である。なぜならば、顔情報を付与する過程と顔向き情報を付与する過程は、まったく異なるからである。
顔情報は、収集された顔を含む画像中から、顔の領域を1つ1つ人手によって切り出すことで得ることができる。一方、顔向き情報は、画像をカメラ等で撮影・採取する前にカメラと被写体の位置を予め固定し、その位置関係を測定することによって正確な値を得ることができる。逆にいえば、正確な顔向き情報は、正確な数値を把握することなく撮影された顔画像(例えばWeb等で容易かつ大量に収集可能な、カメラと被写体の位置がわからない状態で撮影されている顔画像)からは得ることができない。
また、撮影の時にカメラと被写体の位置を予め測定しておけば、その後カメラで大量に画像を撮影することで、顔向き情報を把握した画像を多く、容易に得ることができる。しかし、その中から顔画像を適切に切り出すために顔の領域を指定する作業は、画像1枚1枚ごとに対して人手をかけなければならず、多大なコストがかかる。
そのため、顔向き情報と顔情報を同時に保持する画像を多量に集めることは、実用上においては困難である。
なお、非特許文献2には、顔向き情報が未知である場合、顔向きを推定した結果を用いて学習すれば良いことが簡単に言及されているが、詳細な学習方法については記載されていない。
以上より、本発明の目的は、予め用意したすべての画像が、顔情報と、顔画像であればどの向きを向いているかという情報を同時に付与されていなくても、多大なコストをかけずに、顔向き推定処理と顔検出処理を同時に、かつ高精度に学習することができる技術を提供することである。
上記目的を達成するために、本発明における画像処理学習装置は、学習データ群から選択されたデータに対して、顔向きが既知か未知かを識別する顔向き情報識別部と、顔向き情報識別部で顔向きが既知であると識別された場合に、顔向き情報を、多様体上の位置に変換する多様***置変換部と、顔向き情報識別部で顔向きが未知であると識別された場合に、データに対応する画像を多様体が埋め込まれた空間上の位置に変換する関数を用いて変換された画像の空間上の位置から、多様体上のどの位置が相応しい位置かを推定する多様***置推定部と、データに対して、顔画像であるか非顔画像であるかが既知か未知かを識別する顔情報識別部と、顔情報識別部で顔画像であるか非顔画像であるかが既知であると識別された場合に、多様***置変換部が変換したか、又は多様***置推定部が推定した多様体上の位置と、関数によって変換された画像の空間上の位置との距離を計算し、該距離に基づき、顔画像であるか非顔画像であるかに応じて関数を構成するパラメータの更新量を計算する第1のパラメータ更新量計算部と、顔情報識別部で顔画像であるか非顔画像であるかが未知であると識別された場合に、多様***置変換部が変換したか、又は多様***置推定部が推定した多様体上の位置と、画像の空間上の位置との距離が近い場合はより近づけ、遠い場合はより遠ざけるようにパラメータの更新量を計算する第2のパラメータ更新量計算部と、第1のパラメータ更新量計算部又は第2のパラメータ更新量計算部で計算された更新量を用いてパラメータを更新するパラメータ更新部と、を含む。
上記目的を達成するために、本発明における画像処理学習方法は、学習データ群から選択されたデータに対して、顔向きが既知か未知かを識別し、顔向きが既知であると識別された場合に、顔向き情報を、多様体上の位置に変換し、顔向きが未知であると識別された場合に、データに対応する画像を多様体が埋め込まれた空間上の位置に変換する関数を用いて変換された画像の空間上の位置から、多様体上のどの位置が相応しい位置かを推定し、データに対して、顔画像であるか非顔画像であるかが既知か未知かを識別し、顔画像であるか非顔画像であるかが既知であると識別された場合に、変換又は推定した多様体上の位置と、関数によって変換された画像の空間上の位置との距離を計算し、該距離に基づき、顔画像であるか非顔画像であるかに応じて関数を構成するパラメータの更新量を計算し、顔画像であるか非顔画像であるかが未知であると識別された場合に、変換又は推定した多様体上の位置と、画像の空間上の位置との距離が近い場合はより近づけ、遠い場合はより遠ざけるようにパラメータの更新量を計算し、計算された更新量を用いてパラメータを更新する。
上記目的を達成するために、本発明における画像処理学習プログラムは、学習データ群から選択されたデータに対して、顔向きが既知か未知かを識別し、顔向きが既知であると識別された場合に、顔向き情報を、多様体上の位置に変換し、顔向きが未知であると識別された場合に、データに対応する画像を多様体が埋め込まれた空間上の位置に変換する関数を用いて変換された画像の空間上の位置から、多様体上のどの位置が相応しい位置かを推定し、データに対して、顔画像であるか非顔画像であるかが既知か未知かを識別し、顔画像であるか非顔画像であるかが既知であると識別された場合に、変換又は推定した多様体上の位置と、関数によって変換された画像の空間上の位置との距離を計算し、該距離に基づき、顔画像であるか非顔画像であるかに応じて関数を構成するパラメータの更新量を計算し、顔画像であるか非顔画像であるかが未知であると識別された場合に、変換又は推定した多様体上の位置と、画像の空間上の位置との距離が近い場合はより近づけ、遠い場合はより遠ざけるようにパラメータの更新量を計算し、計算された更新量を用いてパラメータを更新する、処理をコンピュータに実行させる。
上記目的を達成するために、本発明における画像処理学習方法は、学習データ群から選択されたデータに対して、顔向きが既知か未知かを識別し、顔向きが既知であると識別された場合に、顔向き情報を、多様体上の位置に変換し、顔向きが未知であると識別された場合に、データに対応する画像を多様体が埋め込まれた空間上の位置に変換する関数を用いて変換された画像の空間上の位置から、多様体上のどの位置が相応しい位置かを推定し、データに対して、顔画像であるか非顔画像であるかが既知か未知かを識別し、顔画像であるか非顔画像であるかが既知であると識別された場合に、変換又は推定した多様体上の位置と、関数によって変換された画像の空間上の位置との距離を計算し、該距離に基づき、顔画像であるか非顔画像であるかに応じて関数を構成するパラメータの更新量を計算し、顔画像であるか非顔画像であるかが未知であると識別された場合に、変換又は推定した多様体上の位置と、画像の空間上の位置との距離が近い場合はより近づけ、遠い場合はより遠ざけるようにパラメータの更新量を計算し、計算された更新量を用いてパラメータを更新する。
上記目的を達成するために、本発明における画像処理学習プログラムは、学習データ群から選択されたデータに対して、顔向きが既知か未知かを識別し、顔向きが既知であると識別された場合に、顔向き情報を、多様体上の位置に変換し、顔向きが未知であると識別された場合に、データに対応する画像を多様体が埋め込まれた空間上の位置に変換する関数を用いて変換された画像の空間上の位置から、多様体上のどの位置が相応しい位置かを推定し、データに対して、顔画像であるか非顔画像であるかが既知か未知かを識別し、顔画像であるか非顔画像であるかが既知であると識別された場合に、変換又は推定した多様体上の位置と、関数によって変換された画像の空間上の位置との距離を計算し、該距離に基づき、顔画像であるか非顔画像であるかに応じて関数を構成するパラメータの更新量を計算し、顔画像であるか非顔画像であるかが未知であると識別された場合に、変換又は推定した多様体上の位置と、画像の空間上の位置との距離が近い場合はより近づけ、遠い場合はより遠ざけるようにパラメータの更新量を計算し、計算された更新量を用いてパラメータを更新する、処理をコンピュータに実行させる。
本発明における画像処理学習装置によれば、予め用意したすべての画像が、顔情報と、顔画像であればどの向きを向いているかという情報を同時に付与されていなくても、多大なコストをかけずに、顔向き推定処理と顔検出処理を同時に、かつ高精度に学習することができる。
<第1の実施の形態>
図1は、本発明の第1の実施の形態における画像処理学習装置100のハードウェア構成図である。図1に示すように、画像処理学習装置100は、CPU(central processing unit)1と、通信インターフェース(IF)2と、メモリ3と、HDD(ハードディスクドライブ)4とを含む。これらの構成要素は、入力装置5と、出力装置6とを合わせてバス7を通して互いに接続されており、データの入出力を行なう。通信IF2は、外部のネットワークに接続するためのインターフェースである。入力装置5は、例えば、キーボードやマウスである。出力装置6は、例えばディスプレイなどである。画像処理学習装置100は、CPU1が、メモリ3又はHDD4等の記憶媒体に記憶されているプログラムを実行することにより実現される。
図2は、本発明の第1の実施の形態における画像処理学習装置100の機能構成を示すブロック図である。図2に示すように、画像処理学習装置100は、学習データ選択部102と顔向き情報識別部103と多様***置変換部104と多様***置推定部105と顔情報識別部106と第1のパラメータ更新量計算部107と第2のパラメータ更新量計算部108とパラメータ更新部109とを含む。また、画像処理学習装置100は、学習データ入力部101及び結果出力部110と接続されている。
学習データ入力部101は、顔検出処理と顔向き推定処理の学習を行わせるための大量の学習データ群を入力する。また、学習データ入力部101は、入力した学習データ群を、たとえば図1に示すバス7または学習データ選択部102に出力するために一時的に格納する機能を有しても良い。学習データ入力部101は、メモリ3又はHDD4等の記憶媒体に記憶されている学習データ群を読み出して入力しても良い。または学習データ入力手段101は、ユーザが入力装置5を操作して発生した情報に基づいて学習データ群を入力しても良い。または、学習データ入力部101は、図1の通信IF2を通じてインターネットから学習データ群を受信することで入力しても良い。
学習データ群は、以下で説明する情報から構成されるデータの群である。学習データの情報の1つは、1枚の顔画像情報または1枚の非顔画像情報である。また、学習データの情報の1つは、顔情報である。ここで、顔情報とは、画像が顔画像であるか非顔画像であるか、またはどちらか不明であるか、を示す情報である。また、学習データの情報の1つは、顔向き情報である。顔向き情報とは、顔画像であればどの向きを向いているかに関する情報である。学習データは、以上の画像情報と、顔情報と、顔向き情報との組み合わせで構成される。
以降では、入力される学習データ群の中に学習データがN個あったとし、それぞれの学習データをzi(ここで、i=1,2,3,・・・,N)と表現する。ziは、画像情報xiと、顔情報yiと、顔向き情報wiとを含む。
例えば、xiについては、画像が縦32画素で横32画素のモノクロ画像であれば、xは32×32の場所における階調値を並べた32×32次元のベクトルでも良い。
また、yiについて、xiが顔画像である場合に、yiに“1”、非顔画像である場合にyiに“−1”、どちらか不明である場合にyiに“nil”という記号が、それぞれ付与されても良い。
また、wiについて、顔向きの角度(yaw(Y軸の回転角度)、roll(Z軸の回転角度)、pitch(X軸の回転角度))の情報があれば、その情報が付与され、そうでなければ“nil”という記号が付与されても良い。顔向きの角度の設定基準は、所定の基準で定めれば良いが、画像中の顔が正面を向いている状態を、“yaw=0度、roll=0度、pitch=0度”と設定しても良い。
図3は、学習データ入力部101が入力する学習データの例を示す図である。図3に示すz1は、顔画像情報x1と、画像が顔画像であるという顔情報y1(=1)と、顔向き情報w1(yaw=0度、roll=10度、pitch=0度の情報)とを含む例である。すなわちz1は、顔画像であるということと顔向きが既知なデータである。図3に示すz2は、顔画像情報x2と、画像が顔画像であるという顔情報y2(=1)の情報と、顔向きが分かっていないことを示すw2(=“nil”)を含む例である。すなわちz2は、顔画像であることは既知だが、顔向きは不明なデータである。学習時に入力する学習データ群に含まれる顔画像は、人手によって顔領域を指定して切り出した顔画像を用いても良い。図4は、このような学習データの例を示す図である。図4に示す学習データz3は、撮影画像Aから一部を切り出した顔画像情報x3と、画像が顔画像であるか非顔画像であるかは不明であるという情報y3(=“nil”)と、顔向き情報であるw3=(yaw=0度、roll=0度、pitch=0度の情報)とを含む例である。このような画像は、撮影環境を事前に測定することで正面を向いた顔を撮影したことが分かっている場合に、顔の位置が分からないため、ランダムもしくは機械的に領域を選択して切り出すことで得られる。
学習時に入力する学習データ群に含まれる顔画像情報は、学習の前半においては、例えば非特許文献1に記載の技術によって検出された画像を顔画像として用いた情報でも良い。この場合、学習の後半においては、顔画像か否か未知のデータとして再活用しても良い。
また、近年デジタルカメラ等に搭載されている顔検出技術は、主に正面を向いた顔を検出する。そのため、学習データ群に含まれる顔画像情報は、デジタルカメラ搭載の顔検出処理を用いて処理され、顔検出が行えた顔向きが正面である顔画像の情報でも良い。学習の後半においては、顔向きが未知のデータとして再活用しても良い。
学習データ選択部102は、前記学習データ入力部101で入力された学習データ群中の学習データziから、1つの学習データzj(jはi=1,2,3,・・・,Nの中から任意に選んだ数字)を選択し、選択したデータzjを出力する。学習データ選択部102は、N個の学習データから学習データzjをランダムに選択しても良い。または、学習データ選択部102は、yjとwjの値それぞれに対して、予め異なる選択確率値を設定または保持し、その選択確率値に従って学習データzjを選択しても良い。例えば、学習データ選択部102は、yj=1の学習データzjを優先的に選択しても良い。また学習データ選択部102は、yj=1であり、かつwjが“nil”では無いような学習データを優先的に選択しても良い。また、学習データ選択部102は、学習初期の段階に限って、顔向きが既知であって、顔画像であるか非顔画像であるかが分かっているデータを優先的に選択しても良い。
顔向き情報識別部103は、学習データ選択部102で選択されたデータzjに対して、顔向きが既知か未知かを識別する。具体的には、顔向き情報識別部103は、zjの中の顔向き情報wjを検出して、wjに“nil”が付与されているか否かを識別し、“nil”以外が付与されていれば、顔向きが既知であると判定した情報を出力しても良い。なお、データzjの中の顔情報yjが“−1”の場合、顔向き情報識別部103は、画像情報xjが非顔画像の情報あることを識別し、さらに、wjを参照せずに顔向きが未知であると判定した情報を出力しても良い。
多様***置変換部104は、顔向き情報識別部103で顔向きが既知であると識別されたときに出力される情報に基づいて、顔向き情報wjを、予め定めた顔向きを表現する多様体上の位置の情報に変換し出力する。具体的には例えば非特許文献2に記載のように、多様***置変換部104は、多様体上の位置をpとして、予め定めた顔向き情報wjを位置pに変換する関数Fによって、p=F(wj)と変換しても良い。ここで関数Fは、非特許文献2に記載されているものと同一の関数でも良いが、これに限定されない。
図5は、顔向き情報wjから多様体111上の位置pを求めるイメージを示す図である。図5において、空間112は、多様体111を埋め込んだ空間と定義する。
仮に、顔向きとしてyawのみを考える。この場合、wjを多様体111上の位置に変換するための関数は、非特許文献2に記載のように、式1に示す関数Fで定義しても良い。
θはyawである。この場合、F(w)で表現される顔向きを表す多様体は、3次元空間中に埋め込まれた多様体になる。
また仮に、顔向きとしてyawとrollを考える。この場合、wjを多様体上の位置に変換するための関数は、yawをθ、rollをφとして、式2に示す関数Fで定義しても良い。
この場合、F(w)で表現される顔向きを表す多様体は、9次元空間中に埋め込まれた多様体になる。
また仮に、顔向きとしてyawとrollとpitchを考える。この場合、顔向きを表す多様体は、yawをθ、rollをφ、pitchをψとして、式3に示す関数Fで定義しても良い。
この場合、F(w)で表現される顔向きを表す多様体は、27次元空間中に埋め込まれた多様体になる。
なお、例えば式4で表されるように、多様体の次元数を増やしても良い。
この場合、式3のF(w)で表現される顔向きを表す多様体は、125次元の空間中に埋め込まれた多様体になる。また、式1のF(w)で表現される顔向きを表す多様体は、5次元の、式2のF(w)で表現される顔向きを表す多様体は、25次元の空間中に埋め込まれた多様体になる。
多様***置推定部105は、顔向き情報識別手段103で顔向きが未知であると識別されたときに出力される情報に基づいて、学習データに対応する画像を前述の多様体111が埋め込まれた空間112上の位置に変換する関数を用いて変換された画像情報xjの前記空間112上の位置から、予め定めた顔向きを表現する多様体111上のどの点が相応しい点かを推定する。
具体的には、関数Fとは別に、画像情報xjを多様体111が埋め込まれた空間112上の位置に変換する関数G(xj)を準備する。関数Gは、単数ないし複数のパラメータから構成されている。以下このパラメータをλと定義する。非特許文献2において、G(xj)は、非特許文献3にも記載されているようなたたみ込みニューラルネットワーク(以下、CNN)である。このとき、λは、CNNの重みパラメータである。ここで関数G(xj)は、非特許文献2及び非特許文献3に記載されている関数と同一の関数でも良いが、これに限定されない。
多様***置推定部105は、画像情報xjを関数G(xj)によって別のベクトルvjに対しvj=G(xj)という変換を行う。多様***置推定部105は、顔向きを表現する多様体111上の位置でvjに最も近い位置であるpを式5によって算出する。
図6は、多様***置推定部105が、顔向きが未知である学習データから多様体111上の位置を推定する方法を示した図である。図6に示すように、多様***置推定部105は、式5によって算出した位置pを顔向きの推定結果として出力する。
例えば、顔向きとしてyawのみを考え、式1のFの定義で表現されるような多様体の場合を考える。この場合、多様***置推定部105は、式6によって位置pを算出する。
顔情報識別部106は、学習データ選択部102で選択されたデータzjに対して、顔画像であるか非顔画像であるかが既知か未知かを識別し、その識別結果情報を出力する。
具体的には、顔情報識別部106は、yjの値を検出して、yj=1もしくはyj=−1であれば、顔画像であるか非顔であるかが既知であると判断し、yj=0であれば、顔画像であるか非顔画像であるかが未知であると判断しても良い。
または、例えば学習の初期の段階では、顔情報識別部106は、非特許文献1に記載の顔検出技術を活用し、検出ができたのであればyj=1とし、そうでなければyj=−1と判断することで、顔画像であるか非顔であるかが既知であると判断しても良い。
第1のパラメータ更新量計算部107及び第2のパラメータ更新量計算部108は、いずれも実際に顔検出処理及び顔向き推定処理を行う際に、処理の誤差を最小化するようにパラメータの更新量Δλを計算する。
第1のパラメータ更新量計算部107は、顔情報識別部106により顔画像であるか非顔画像であるかが既知であると識別された結果情報に基づいて、関数Gのパラメータλの更新量Δλを計算する。具体的には第1のパラメータ更新量計算部107は、多様***置変換部104が変換したか、又は多様***置推定部105が推定した多様体111上の位置pと、関数Gによってベクトルvjに変換された画像情報xjの、多様体111が埋め込まれた空間112上の位置との距離を計算する。第1のパラメータ更新量計算部107は、計算した距離に基づき、顔画像であるか非顔画像であるかに応じてパラメータλの更新量Δλを計算する。
例えば、第1のパラメータ更新量計算部107は、非特許文献2にあるように、顔画像であることが既知であるデータに対しては、多様***置変換部104が変換したか、又は多様***置推定部105が推定した多様体111上の位置pを用いて、エネルギー関数Eを、式7のように設定する。
また、例えば、第1のパラメータ更新量計算部107は、非顔画像であることが既知であるデータに対しては、エネルギー関数Eを、式8のように設定する。
第1のパラメータ更新量計算部107は、上記エネルギー関数Eを小さくするような更新量Δλを、式9によって計算する。
αは予め定めた微小な数である。
図7は、顔画像であることが既知である学習データに対する顔向き推定パラメータの更新を示す図である。図8は、非顔画像であることが既知である学習データに対する顔向き推定パラメータの更新を示す図である。
図7に示すように、上記エネルギー関数Eを小さくするということは、顔画像の場合は、関数G(xj)が位置pに近づくように更新量を計算することであると言える。また、図8に示すように上記エネルギー関数Eを小さくするということは、非顔画像の場合は、関数G(xj)が位置pから遠ざかるように更新量を計算することであると言える。
上記エネルギー関数は、顔画像の場合と非顔画像の場合で関数の形状が変わる。したがって、第1のパラメータ更新量計算部107は、上記エネルギー関数の代わりに、式10のようにエネルギー関数Eを設定しても良い。
Tは任意のベクトルである。
第2のパラメータ更新量計算部108は、顔情報識別部106で顔画像であるか非顔画像であるかが未知であると識別された結果情報に基づいて、すなわちyj=0となる場合に、関数Gのパラメータλの更新量を計算する。具体的には、第2のパラメータ更新量計算部108は、多様***置変換部104が変換したか、又は多様***置推定部105が推定した多様体上の位置と、画像xjの多様体111が埋め込まれた空間112上の位置との距離が近い場合はより近づけ、遠い場合はより遠ざけるようにパラメータの更新量を計算する。
例えば、第1のパラメータ更新量計算部107において、顔画像であるか非顔画像であるかが既知である場合に採用している前記エネルギー関数Eを用いて、顔画像であるか非顔画像であるかが未知である学習データ、すなわちyj=0である学習データに対して、式11のようにエネルギー関数Eを設定しても良い。
第2のパラメータ更新量計算部108は、式11で示すエネルギー関数Eを最小化するようにパラメータの更新量Δλを、式9によって計算する。
図9は、顔画像であるか非顔画像であるかが未知の学習データに対する顔向き推定パラメータの更新を示す図である。図9に示すように、式11及び式12によってパラメータ更新量を計算するということは、関数G(xj)が位置pに近い場合はより近づけ、位置pから遠い場合はより遠ざけるように計算することであると言える。図9に示すように、関数G(xj)が位置pに近いか遠いかの判定は、例えば閾値で境界面を定め、顔画像らしい領域と非顔画像らしい領域を定義して判定しても良い。
パラメータ更新部109は、第1のパラメータ更新量計算部107又は第2のパラメータ更新量計算部108で得られた更新量Δλを用いて、パラメータλをλ+Δλへと更新する。
結果出力部110は、パラメータ更新部109で更新したパラメータλをファイルなどに出力する。
次に、図2及び図10を参照して本発明の第1の実施の形態の動作について詳細に説明する。図10は、本発明の第1の実施の形態の動作を示す流れ図である。
まず、ユーザによる操作に基づき、学習データ入力部101は、N個の学習データzi(i=1,,,N)から構成される学習データ群を入力し格納する(ステップA1)。
次に、学習データ選択部102は、学習データ入力部101で入力された学習データ群の中から1つ、以降の処理を行わせる学習データzjを選択する(ステップA2)。
次に、顔向き情報識別部103には、学習データ選択部102で選択された学習データzjの顔向きが既知か未知かを識別する(ステップA3)。
顔向きが既知であることが識別された場合は、顔向き情報識別部103は、学習データzjを多様***置変換部104に出力する。未知であることが識別された場合、顔向き情報識別部103は、学習データzjを多様***置推定部105に出力する(ステップA4)。
次にステップA4において顔向きが既知である、すなわちwjが“nil”では無い適切な値であることが識別された場合、多様***置変換部104は、顔向き情報wjを顔向き多様体111上の位置pに変換する。(ステップA5)。一方、ステップA4において顔向きが未知であることが識別された場合には、多様***置推定部105は、学習データの画像xjを用いて顔向き多様体111上の位置pを推定する(ステップA6)。ステップA5またはステップA6のいずれのステップに移行した場合にも、画像処理学習装置100は、顔向き多様体111上の位置情報pを得る。
次に、顔情報識別部106は、多様***置変換部104又は多様***置推定部105から、学習データzj及び位置情報pの入力を受け、顔画像であるか非顔画像であるかが既知か未知かを識別する(ステップA7)。
顔画像であるか非顔画像であるかが既知であることが識別された場合、顔情報識別部106は、学習データzj及び位置情報pを第1のパラメータ更新量計算部107に出力する。未知であることが識別された場合、顔情報識別部106は、学習データzj及び位置情報pを第2のパラメータ更新量計算部109に出力する(ステップA8)。
次にステップA8において顔画像であるか非顔画像であるかが既知であることが識別された場合、第1のパラメータ更新量計算部107は、画像xjの、多様体111が埋め込まれた空間112上の位置に対応する関数G(xj)と、多様体111上の位置pとの距離を計算し、顔画像であるか非顔画像であるかに応じて更新量を計算する(ステップA9)。一方、前記ステップA8において顔画像であるか非顔画像であるかが未知であることが識別された場合、第2のパラメータ更新量計算部109は、G(xj)がpに近い場合はより近づけ、pから遠い場合はより遠くなるようにパラメータλの更新量を計算する(ステップA10)。
次に、パラメータ更新部109は、パラメータλをλ+Δλへとを更新する(ステップA11)。
さらに、画像処理装置109はパラメータを十分更新したか否かを判断(ステップA12)し、十分更新していないと判断されれば、再度ステップA2にもどり、そうでなければ処理を終了する。具体的には、ステップA12に到達した回数が予め定めた回数を上回れば終了としても良い。または、ステップA11で更新した更新量の大きさを識別し、その大きさが予め定めた値を下回れば終了としても良い。
本実施の形態における画像処理学習プログラムは、コンピュータに図10に示したステップA1〜A12を実行させるプログラムであって、上述した動作を実行されるプログラムであれば良い。
以上説明したように、本発明の第一の実施の形態に係る画像処理学習装置100によれば、予め用意したすべての画像が、顔情報と、顔画像であればどの向きを向いているかという情報を同時に付与されていなくても、多大なコストをかけずに、顔向き推定処理と顔検出処理を同時に、かつ高精度に学習することができる。
なぜならば、画像処理学習装置100は、顔情報の有無と、顔向き情報の有無に応じて、学習のための処理を切り分けているからである。学習処理の切り分けにより、適切な顔検出処理と顔向き推定処理を実現できるパラメータλを学習することができる。
<第2の実施の形態>
本発明の第2の実施の形態は、第1の実施の形態に係る画像処理学習装置100で学習したパラメータλから構成される関数Gを用いて、顔検出処理及び顔向き推定処理を行う画像処理装置200である。
図11は、本発明の第2の実施の形態に係る画像処理装置と画像処理学習装置の機能構成を示すブロック図である。図11に示すように、画像処理装置200は、画像処理学習装置100と結果出力部110を介して接続されている。画像処理学習装置100については、第1の実施の形態と同様の構成であるため説明を省略する。画像処理装置200は、顔向き推定部201と顔画像判定部202とを含む。
顔向き推定部201は、入力画像の多様体を含む空間上の位置と、入力画像の多様体上の位置に基づいて顔向きを推定する。入力される入力画像は、本発明に関連する顔検出技術によって抽出された部分画像であっても良い。
具体的には、顔向き推定部201は、まず結果出力部110からのデータujに基づいて入力画像の顔向きが既知か未知かを識別する。顔向き推定部201は、第1の実施の形態における顔向き情報識別部103のように顔向きを推定しても良い。すなわち、顔向き推定部201は、対象データuj(第1の実施の形態における学習データzjと同様の構成によるデータ)の中の顔向き情報wjを参照して、wjにnilが格納されているか否かを識別し、nil以外が格納されていれば顔向きが既知であると判定しても良い。なお、yj=−1の場合はxjが非顔画像であることが分かるので、顔向き情報識別部103は、wjを参照せずに顔向きが未知であると判定しても良い。
顔向きが既知であると識別された場合、顔向き推定部201は、既知である顔向きを推定結果とする。なお、顔向き推定部201は、顔向き情報を多様体上の位置に変換しておいても良い。多様体上の位置は、例えば式1、式2又は式3などによって変換しても良い。また、顔向き推定部201は、画像処理学習装置100の学習によって更新したパラメータλから構成される関数Gを用いて、入力画像の多様体を含む空間上の位置を算出しておいても良い。
顔向きが未知であると識別された場合、顔向き推定部201は、画像処理学習装置100の学習により更新したパラメータλから構成される関数Gを用いて、入力画像の多様体を含む空間上の位置を算出する。顔向き推定部201は、算出した空間上の位置から多様体上の位置を推定し、該推定した多様体上の位置から算出された顔向きを推定し、その結果を出力する。多様体上の位置は、例えば式5などによって推定しても良い。顔向きは、例えば式1、式2又は式3などによって算出しても良い。
顔画像判定部202は、顔向き推定部201が入力画像の多様体を含む空間上の位置と前記多様体上の位置との距離で顔画像であるか非顔画像であるかを判定する。
具体的には、顔画像判定部202は、まず入力画像が顔又は非顔画像であることが既知か未知かを識別する。顔画像判定部202は、第1の実施の形態における顔情報識別部106のように顔・非顔の判定を行っても良い。すなわち、顔画像判定部202は、対象データujの中の顔情報yjの値を検出して、yj=1もしくはyj=−1であれば、顔画像であるか非顔画像であるかが既知であると判断し、yj=0であれば、顔画像であるか非顔画像であるかが未知であると判断しても良い。
顔又は非顔画像であることが既知であると判定された場合、顔画像判定部202は、既知である情報を推定結果とする。
顔又は非顔画像であることが未知である場合、顔画像判定部202は、画像処理学習装置100の学習により更新したパラメータλから構成される関数Gを用いて、入力画像の多様体を含む空間上の位置を算出する。顔向き推定部201によってすでに空間上の位置が算出されていた場合は、その位置を用いても良い。
また、顔画像判定部202は、入力画像の多様体上の位置を算出する。多様体上の位置は、例えば式1、式2又は式3などによって算出しても良い。顔向き推定部201によってすでに入力画像の多様体上の位置が変換又は推定されていた場合は、その位置を用いても良い。
顔画像判定部202は、入力画像の多様体を含む空間上の位置と、入力画像の多様体上の位置との距離が、閾値より小さければ入力画像は顔画像であると判定する。顔画像判定部202は、入力画像の多様体を含む空間上の位置と、入力画像の多様体上の位置との距離が、閾値より大きければ入力画像は非顔画像であると判定する。
次に、図12を参照して本発明の第2の実施の形態の動作について詳細に説明する。図12は、本発明の第2の実施の形態の動作を示す流れ図である。
まず、ユーザは、対象データを顔向き推定部201に入力する。または、コンピュータが本発明に関連する顔検出技術において抽出された部分画像を入力しても良い(ステップB1)。
次に、顔向き推定部201は、入力された対象データの画像の顔向きが既知か未知かを識別する(ステップB2)。
顔向きが既知であると識別された場合、顔向き推定部201は、既知である顔向きを推定結果とする(ステップB3)。
顔向きが未知であると識別された場合は、顔向き推定部202は、上述した処理によって対象データの画像の多様体上の位置を推定し、顔向きを算出する(ステップB4)。
次に、顔画像判定部202は、対象データの画像が顔又は非顔画像であることが既知か未知かを識別する(ステップB5)。
顔又は非顔画像であることが既知であると識別した場合、顔画像判定部202は、既知である情報を判定結果とする(ステップB6)。
顔又は非顔画像であることが未知であると識別した場合、顔画像判定部202は、対象データの画像の多様体を含む空間上の位置と、多様体上の位置との距離が、閾値より小さければ、対象データの画像は顔画像であると判定する。また、顔画像判定部202は、閾値より大きければ非顔画像であると判定する(ステップB7)。
本実施の形態における画像処理プログラムは、コンピュータに図12に示したステップB1〜B6を実行させるプログラムであって、上述した動作を実行されるプログラムであれば良い。
以上説明したように、本発明に係る画像処理装置200によれば、画像処理学習装置100の学習により更新したパラメータλから構成される関数Gを用いることで、顔検出処理及び顔向き推定処理を同時に、かつ高精度に行うことができる。
図1は、本発明の第1の実施の形態における画像処理学習装置100のハードウェア構成図である。図1に示すように、画像処理学習装置100は、CPU(central processing unit)1と、通信インターフェース(IF)2と、メモリ3と、HDD(ハードディスクドライブ)4とを含む。これらの構成要素は、入力装置5と、出力装置6とを合わせてバス7を通して互いに接続されており、データの入出力を行なう。通信IF2は、外部のネットワークに接続するためのインターフェースである。入力装置5は、例えば、キーボードやマウスである。出力装置6は、例えばディスプレイなどである。画像処理学習装置100は、CPU1が、メモリ3又はHDD4等の記憶媒体に記憶されているプログラムを実行することにより実現される。
図2は、本発明の第1の実施の形態における画像処理学習装置100の機能構成を示すブロック図である。図2に示すように、画像処理学習装置100は、学習データ選択部102と顔向き情報識別部103と多様***置変換部104と多様***置推定部105と顔情報識別部106と第1のパラメータ更新量計算部107と第2のパラメータ更新量計算部108とパラメータ更新部109とを含む。また、画像処理学習装置100は、学習データ入力部101及び結果出力部110と接続されている。
学習データ入力部101は、顔検出処理と顔向き推定処理の学習を行わせるための大量の学習データ群を入力する。また、学習データ入力部101は、入力した学習データ群を、たとえば図1に示すバス7または学習データ選択部102に出力するために一時的に格納する機能を有しても良い。学習データ入力部101は、メモリ3又はHDD4等の記憶媒体に記憶されている学習データ群を読み出して入力しても良い。または学習データ入力手段101は、ユーザが入力装置5を操作して発生した情報に基づいて学習データ群を入力しても良い。または、学習データ入力部101は、図1の通信IF2を通じてインターネットから学習データ群を受信することで入力しても良い。
学習データ群は、以下で説明する情報から構成されるデータの群である。学習データの情報の1つは、1枚の顔画像情報または1枚の非顔画像情報である。また、学習データの情報の1つは、顔情報である。ここで、顔情報とは、画像が顔画像であるか非顔画像であるか、またはどちらか不明であるか、を示す情報である。また、学習データの情報の1つは、顔向き情報である。顔向き情報とは、顔画像であればどの向きを向いているかに関する情報である。学習データは、以上の画像情報と、顔情報と、顔向き情報との組み合わせで構成される。
以降では、入力される学習データ群の中に学習データがN個あったとし、それぞれの学習データをzi(ここで、i=1,2,3,・・・,N)と表現する。ziは、画像情報xiと、顔情報yiと、顔向き情報wiとを含む。
例えば、xiについては、画像が縦32画素で横32画素のモノクロ画像であれば、xは32×32の場所における階調値を並べた32×32次元のベクトルでも良い。
また、yiについて、xiが顔画像である場合に、yiに“1”、非顔画像である場合にyiに“−1”、どちらか不明である場合にyiに“nil”という記号が、それぞれ付与されても良い。
また、wiについて、顔向きの角度(yaw(Y軸の回転角度)、roll(Z軸の回転角度)、pitch(X軸の回転角度))の情報があれば、その情報が付与され、そうでなければ“nil”という記号が付与されても良い。顔向きの角度の設定基準は、所定の基準で定めれば良いが、画像中の顔が正面を向いている状態を、“yaw=0度、roll=0度、pitch=0度”と設定しても良い。
図3は、学習データ入力部101が入力する学習データの例を示す図である。図3に示すz1は、顔画像情報x1と、画像が顔画像であるという顔情報y1(=1)と、顔向き情報w1(yaw=0度、roll=10度、pitch=0度の情報)とを含む例である。すなわちz1は、顔画像であるということと顔向きが既知なデータである。図3に示すz2は、顔画像情報x2と、画像が顔画像であるという顔情報y2(=1)の情報と、顔向きが分かっていないことを示すw2(=“nil”)を含む例である。すなわちz2は、顔画像であることは既知だが、顔向きは不明なデータである。学習時に入力する学習データ群に含まれる顔画像は、人手によって顔領域を指定して切り出した顔画像を用いても良い。図4は、このような学習データの例を示す図である。図4に示す学習データz3は、撮影画像Aから一部を切り出した顔画像情報x3と、画像が顔画像であるか非顔画像であるかは不明であるという情報y3(=“nil”)と、顔向き情報であるw3=(yaw=0度、roll=0度、pitch=0度の情報)とを含む例である。このような画像は、撮影環境を事前に測定することで正面を向いた顔を撮影したことが分かっている場合に、顔の位置が分からないため、ランダムもしくは機械的に領域を選択して切り出すことで得られる。
学習時に入力する学習データ群に含まれる顔画像情報は、学習の前半においては、例えば非特許文献1に記載の技術によって検出された画像を顔画像として用いた情報でも良い。この場合、学習の後半においては、顔画像か否か未知のデータとして再活用しても良い。
また、近年デジタルカメラ等に搭載されている顔検出技術は、主に正面を向いた顔を検出する。そのため、学習データ群に含まれる顔画像情報は、デジタルカメラ搭載の顔検出処理を用いて処理され、顔検出が行えた顔向きが正面である顔画像の情報でも良い。学習の後半においては、顔向きが未知のデータとして再活用しても良い。
学習データ選択部102は、前記学習データ入力部101で入力された学習データ群中の学習データziから、1つの学習データzj(jはi=1,2,3,・・・,Nの中から任意に選んだ数字)を選択し、選択したデータzjを出力する。学習データ選択部102は、N個の学習データから学習データzjをランダムに選択しても良い。または、学習データ選択部102は、yjとwjの値それぞれに対して、予め異なる選択確率値を設定または保持し、その選択確率値に従って学習データzjを選択しても良い。例えば、学習データ選択部102は、yj=1の学習データzjを優先的に選択しても良い。また学習データ選択部102は、yj=1であり、かつwjが“nil”では無いような学習データを優先的に選択しても良い。また、学習データ選択部102は、学習初期の段階に限って、顔向きが既知であって、顔画像であるか非顔画像であるかが分かっているデータを優先的に選択しても良い。
顔向き情報識別部103は、学習データ選択部102で選択されたデータzjに対して、顔向きが既知か未知かを識別する。具体的には、顔向き情報識別部103は、zjの中の顔向き情報wjを検出して、wjに“nil”が付与されているか否かを識別し、“nil”以外が付与されていれば、顔向きが既知であると判定した情報を出力しても良い。なお、データzjの中の顔情報yjが“−1”の場合、顔向き情報識別部103は、画像情報xjが非顔画像の情報あることを識別し、さらに、wjを参照せずに顔向きが未知であると判定した情報を出力しても良い。
多様***置変換部104は、顔向き情報識別部103で顔向きが既知であると識別されたときに出力される情報に基づいて、顔向き情報wjを、予め定めた顔向きを表現する多様体上の位置の情報に変換し出力する。具体的には例えば非特許文献2に記載のように、多様***置変換部104は、多様体上の位置をpとして、予め定めた顔向き情報wjを位置pに変換する関数Fによって、p=F(wj)と変換しても良い。ここで関数Fは、非特許文献2に記載されているものと同一の関数でも良いが、これに限定されない。
図5は、顔向き情報wjから多様体111上の位置pを求めるイメージを示す図である。図5において、空間112は、多様体111を埋め込んだ空間と定義する。
仮に、顔向きとしてyawのみを考える。この場合、wjを多様体111上の位置に変換するための関数は、非特許文献2に記載のように、式1に示す関数Fで定義しても良い。
θはyawである。この場合、F(w)で表現される顔向きを表す多様体は、3次元空間中に埋め込まれた多様体になる。
また仮に、顔向きとしてyawとrollを考える。この場合、wjを多様体上の位置に変換するための関数は、yawをθ、rollをφとして、式2に示す関数Fで定義しても良い。
この場合、F(w)で表現される顔向きを表す多様体は、9次元空間中に埋め込まれた多様体になる。
また仮に、顔向きとしてyawとrollとpitchを考える。この場合、顔向きを表す多様体は、yawをθ、rollをφ、pitchをψとして、式3に示す関数Fで定義しても良い。
この場合、F(w)で表現される顔向きを表す多様体は、27次元空間中に埋め込まれた多様体になる。
なお、例えば式4で表されるように、多様体の次元数を増やしても良い。
この場合、式3のF(w)で表現される顔向きを表す多様体は、125次元の空間中に埋め込まれた多様体になる。また、式1のF(w)で表現される顔向きを表す多様体は、5次元の、式2のF(w)で表現される顔向きを表す多様体は、25次元の空間中に埋め込まれた多様体になる。
多様***置推定部105は、顔向き情報識別手段103で顔向きが未知であると識別されたときに出力される情報に基づいて、学習データに対応する画像を前述の多様体111が埋め込まれた空間112上の位置に変換する関数を用いて変換された画像情報xjの前記空間112上の位置から、予め定めた顔向きを表現する多様体111上のどの点が相応しい点かを推定する。
具体的には、関数Fとは別に、画像情報xjを多様体111が埋め込まれた空間112上の位置に変換する関数G(xj)を準備する。関数Gは、単数ないし複数のパラメータから構成されている。以下このパラメータをλと定義する。非特許文献2において、G(xj)は、非特許文献3にも記載されているようなたたみ込みニューラルネットワーク(以下、CNN)である。このとき、λは、CNNの重みパラメータである。ここで関数G(xj)は、非特許文献2及び非特許文献3に記載されている関数と同一の関数でも良いが、これに限定されない。
多様***置推定部105は、画像情報xjを関数G(xj)によって別のベクトルvjに対しvj=G(xj)という変換を行う。多様***置推定部105は、顔向きを表現する多様体111上の位置でvjに最も近い位置であるpを式5によって算出する。
図6は、多様***置推定部105が、顔向きが未知である学習データから多様体111上の位置を推定する方法を示した図である。図6に示すように、多様***置推定部105は、式5によって算出した位置pを顔向きの推定結果として出力する。
例えば、顔向きとしてyawのみを考え、式1のFの定義で表現されるような多様体の場合を考える。この場合、多様***置推定部105は、式6によって位置pを算出する。
顔情報識別部106は、学習データ選択部102で選択されたデータzjに対して、顔画像であるか非顔画像であるかが既知か未知かを識別し、その識別結果情報を出力する。
具体的には、顔情報識別部106は、yjの値を検出して、yj=1もしくはyj=−1であれば、顔画像であるか非顔であるかが既知であると判断し、yj=0であれば、顔画像であるか非顔画像であるかが未知であると判断しても良い。
または、例えば学習の初期の段階では、顔情報識別部106は、非特許文献1に記載の顔検出技術を活用し、検出ができたのであればyj=1とし、そうでなければyj=−1と判断することで、顔画像であるか非顔であるかが既知であると判断しても良い。
第1のパラメータ更新量計算部107及び第2のパラメータ更新量計算部108は、いずれも実際に顔検出処理及び顔向き推定処理を行う際に、処理の誤差を最小化するようにパラメータの更新量Δλを計算する。
第1のパラメータ更新量計算部107は、顔情報識別部106により顔画像であるか非顔画像であるかが既知であると識別された結果情報に基づいて、関数Gのパラメータλの更新量Δλを計算する。具体的には第1のパラメータ更新量計算部107は、多様***置変換部104が変換したか、又は多様***置推定部105が推定した多様体111上の位置pと、関数Gによってベクトルvjに変換された画像情報xjの、多様体111が埋め込まれた空間112上の位置との距離を計算する。第1のパラメータ更新量計算部107は、計算した距離に基づき、顔画像であるか非顔画像であるかに応じてパラメータλの更新量Δλを計算する。
例えば、第1のパラメータ更新量計算部107は、非特許文献2にあるように、顔画像であることが既知であるデータに対しては、多様***置変換部104が変換したか、又は多様***置推定部105が推定した多様体111上の位置pを用いて、エネルギー関数Eを、式7のように設定する。
また、例えば、第1のパラメータ更新量計算部107は、非顔画像であることが既知であるデータに対しては、エネルギー関数Eを、式8のように設定する。
第1のパラメータ更新量計算部107は、上記エネルギー関数Eを小さくするような更新量Δλを、式9によって計算する。
αは予め定めた微小な数である。
図7は、顔画像であることが既知である学習データに対する顔向き推定パラメータの更新を示す図である。図8は、非顔画像であることが既知である学習データに対する顔向き推定パラメータの更新を示す図である。
図7に示すように、上記エネルギー関数Eを小さくするということは、顔画像の場合は、関数G(xj)が位置pに近づくように更新量を計算することであると言える。また、図8に示すように上記エネルギー関数Eを小さくするということは、非顔画像の場合は、関数G(xj)が位置pから遠ざかるように更新量を計算することであると言える。
上記エネルギー関数は、顔画像の場合と非顔画像の場合で関数の形状が変わる。したがって、第1のパラメータ更新量計算部107は、上記エネルギー関数の代わりに、式10のようにエネルギー関数Eを設定しても良い。
Tは任意のベクトルである。
第2のパラメータ更新量計算部108は、顔情報識別部106で顔画像であるか非顔画像であるかが未知であると識別された結果情報に基づいて、すなわちyj=0となる場合に、関数Gのパラメータλの更新量を計算する。具体的には、第2のパラメータ更新量計算部108は、多様***置変換部104が変換したか、又は多様***置推定部105が推定した多様体上の位置と、画像xjの多様体111が埋め込まれた空間112上の位置との距離が近い場合はより近づけ、遠い場合はより遠ざけるようにパラメータの更新量を計算する。
例えば、第1のパラメータ更新量計算部107において、顔画像であるか非顔画像であるかが既知である場合に採用している前記エネルギー関数Eを用いて、顔画像であるか非顔画像であるかが未知である学習データ、すなわちyj=0である学習データに対して、式11のようにエネルギー関数Eを設定しても良い。
第2のパラメータ更新量計算部108は、式11で示すエネルギー関数Eを最小化するようにパラメータの更新量Δλを、式9によって計算する。
図9は、顔画像であるか非顔画像であるかが未知の学習データに対する顔向き推定パラメータの更新を示す図である。図9に示すように、式11及び式12によってパラメータ更新量を計算するということは、関数G(xj)が位置pに近い場合はより近づけ、位置pから遠い場合はより遠ざけるように計算することであると言える。図9に示すように、関数G(xj)が位置pに近いか遠いかの判定は、例えば閾値で境界面を定め、顔画像らしい領域と非顔画像らしい領域を定義して判定しても良い。
パラメータ更新部109は、第1のパラメータ更新量計算部107又は第2のパラメータ更新量計算部108で得られた更新量Δλを用いて、パラメータλをλ+Δλへと更新する。
結果出力部110は、パラメータ更新部109で更新したパラメータλをファイルなどに出力する。
次に、図2及び図10を参照して本発明の第1の実施の形態の動作について詳細に説明する。図10は、本発明の第1の実施の形態の動作を示す流れ図である。
まず、ユーザによる操作に基づき、学習データ入力部101は、N個の学習データzi(i=1,,,N)から構成される学習データ群を入力し格納する(ステップA1)。
次に、学習データ選択部102は、学習データ入力部101で入力された学習データ群の中から1つ、以降の処理を行わせる学習データzjを選択する(ステップA2)。
次に、顔向き情報識別部103には、学習データ選択部102で選択された学習データzjの顔向きが既知か未知かを識別する(ステップA3)。
顔向きが既知であることが識別された場合は、顔向き情報識別部103は、学習データzjを多様***置変換部104に出力する。未知であることが識別された場合、顔向き情報識別部103は、学習データzjを多様***置推定部105に出力する(ステップA4)。
次にステップA4において顔向きが既知である、すなわちwjが“nil”では無い適切な値であることが識別された場合、多様***置変換部104は、顔向き情報wjを顔向き多様体111上の位置pに変換する。(ステップA5)。一方、ステップA4において顔向きが未知であることが識別された場合には、多様***置推定部105は、学習データの画像xjを用いて顔向き多様体111上の位置pを推定する(ステップA6)。ステップA5またはステップA6のいずれのステップに移行した場合にも、画像処理学習装置100は、顔向き多様体111上の位置情報pを得る。
次に、顔情報識別部106は、多様***置変換部104又は多様***置推定部105から、学習データzj及び位置情報pの入力を受け、顔画像であるか非顔画像であるかが既知か未知かを識別する(ステップA7)。
顔画像であるか非顔画像であるかが既知であることが識別された場合、顔情報識別部106は、学習データzj及び位置情報pを第1のパラメータ更新量計算部107に出力する。未知であることが識別された場合、顔情報識別部106は、学習データzj及び位置情報pを第2のパラメータ更新量計算部109に出力する(ステップA8)。
次にステップA8において顔画像であるか非顔画像であるかが既知であることが識別された場合、第1のパラメータ更新量計算部107は、画像xjの、多様体111が埋め込まれた空間112上の位置に対応する関数G(xj)と、多様体111上の位置pとの距離を計算し、顔画像であるか非顔画像であるかに応じて更新量を計算する(ステップA9)。一方、前記ステップA8において顔画像であるか非顔画像であるかが未知であることが識別された場合、第2のパラメータ更新量計算部109は、G(xj)がpに近い場合はより近づけ、pから遠い場合はより遠くなるようにパラメータλの更新量を計算する(ステップA10)。
次に、パラメータ更新部109は、パラメータλをλ+Δλへとを更新する(ステップA11)。
さらに、画像処理装置109はパラメータを十分更新したか否かを判断(ステップA12)し、十分更新していないと判断されれば、再度ステップA2にもどり、そうでなければ処理を終了する。具体的には、ステップA12に到達した回数が予め定めた回数を上回れば終了としても良い。または、ステップA11で更新した更新量の大きさを識別し、その大きさが予め定めた値を下回れば終了としても良い。
本実施の形態における画像処理学習プログラムは、コンピュータに図10に示したステップA1〜A12を実行させるプログラムであって、上述した動作を実行されるプログラムであれば良い。
以上説明したように、本発明の第一の実施の形態に係る画像処理学習装置100によれば、予め用意したすべての画像が、顔情報と、顔画像であればどの向きを向いているかという情報を同時に付与されていなくても、多大なコストをかけずに、顔向き推定処理と顔検出処理を同時に、かつ高精度に学習することができる。
なぜならば、画像処理学習装置100は、顔情報の有無と、顔向き情報の有無に応じて、学習のための処理を切り分けているからである。学習処理の切り分けにより、適切な顔検出処理と顔向き推定処理を実現できるパラメータλを学習することができる。
<第2の実施の形態>
本発明の第2の実施の形態は、第1の実施の形態に係る画像処理学習装置100で学習したパラメータλから構成される関数Gを用いて、顔検出処理及び顔向き推定処理を行う画像処理装置200である。
図11は、本発明の第2の実施の形態に係る画像処理装置と画像処理学習装置の機能構成を示すブロック図である。図11に示すように、画像処理装置200は、画像処理学習装置100と結果出力部110を介して接続されている。画像処理学習装置100については、第1の実施の形態と同様の構成であるため説明を省略する。画像処理装置200は、顔向き推定部201と顔画像判定部202とを含む。
顔向き推定部201は、入力画像の多様体を含む空間上の位置と、入力画像の多様体上の位置に基づいて顔向きを推定する。入力される入力画像は、本発明に関連する顔検出技術によって抽出された部分画像であっても良い。
具体的には、顔向き推定部201は、まず結果出力部110からのデータujに基づいて入力画像の顔向きが既知か未知かを識別する。顔向き推定部201は、第1の実施の形態における顔向き情報識別部103のように顔向きを推定しても良い。すなわち、顔向き推定部201は、対象データuj(第1の実施の形態における学習データzjと同様の構成によるデータ)の中の顔向き情報wjを参照して、wjにnilが格納されているか否かを識別し、nil以外が格納されていれば顔向きが既知であると判定しても良い。なお、yj=−1の場合はxjが非顔画像であることが分かるので、顔向き情報識別部103は、wjを参照せずに顔向きが未知であると判定しても良い。
顔向きが既知であると識別された場合、顔向き推定部201は、既知である顔向きを推定結果とする。なお、顔向き推定部201は、顔向き情報を多様体上の位置に変換しておいても良い。多様体上の位置は、例えば式1、式2又は式3などによって変換しても良い。また、顔向き推定部201は、画像処理学習装置100の学習によって更新したパラメータλから構成される関数Gを用いて、入力画像の多様体を含む空間上の位置を算出しておいても良い。
顔向きが未知であると識別された場合、顔向き推定部201は、画像処理学習装置100の学習により更新したパラメータλから構成される関数Gを用いて、入力画像の多様体を含む空間上の位置を算出する。顔向き推定部201は、算出した空間上の位置から多様体上の位置を推定し、該推定した多様体上の位置から算出された顔向きを推定し、その結果を出力する。多様体上の位置は、例えば式5などによって推定しても良い。顔向きは、例えば式1、式2又は式3などによって算出しても良い。
顔画像判定部202は、顔向き推定部201が入力画像の多様体を含む空間上の位置と前記多様体上の位置との距離で顔画像であるか非顔画像であるかを判定する。
具体的には、顔画像判定部202は、まず入力画像が顔又は非顔画像であることが既知か未知かを識別する。顔画像判定部202は、第1の実施の形態における顔情報識別部106のように顔・非顔の判定を行っても良い。すなわち、顔画像判定部202は、対象データujの中の顔情報yjの値を検出して、yj=1もしくはyj=−1であれば、顔画像であるか非顔画像であるかが既知であると判断し、yj=0であれば、顔画像であるか非顔画像であるかが未知であると判断しても良い。
顔又は非顔画像であることが既知であると判定された場合、顔画像判定部202は、既知である情報を推定結果とする。
顔又は非顔画像であることが未知である場合、顔画像判定部202は、画像処理学習装置100の学習により更新したパラメータλから構成される関数Gを用いて、入力画像の多様体を含む空間上の位置を算出する。顔向き推定部201によってすでに空間上の位置が算出されていた場合は、その位置を用いても良い。
また、顔画像判定部202は、入力画像の多様体上の位置を算出する。多様体上の位置は、例えば式1、式2又は式3などによって算出しても良い。顔向き推定部201によってすでに入力画像の多様体上の位置が変換又は推定されていた場合は、その位置を用いても良い。
顔画像判定部202は、入力画像の多様体を含む空間上の位置と、入力画像の多様体上の位置との距離が、閾値より小さければ入力画像は顔画像であると判定する。顔画像判定部202は、入力画像の多様体を含む空間上の位置と、入力画像の多様体上の位置との距離が、閾値より大きければ入力画像は非顔画像であると判定する。
次に、図12を参照して本発明の第2の実施の形態の動作について詳細に説明する。図12は、本発明の第2の実施の形態の動作を示す流れ図である。
まず、ユーザは、対象データを顔向き推定部201に入力する。または、コンピュータが本発明に関連する顔検出技術において抽出された部分画像を入力しても良い(ステップB1)。
次に、顔向き推定部201は、入力された対象データの画像の顔向きが既知か未知かを識別する(ステップB2)。
顔向きが既知であると識別された場合、顔向き推定部201は、既知である顔向きを推定結果とする(ステップB3)。
顔向きが未知であると識別された場合は、顔向き推定部202は、上述した処理によって対象データの画像の多様体上の位置を推定し、顔向きを算出する(ステップB4)。
次に、顔画像判定部202は、対象データの画像が顔又は非顔画像であることが既知か未知かを識別する(ステップB5)。
顔又は非顔画像であることが既知であると識別した場合、顔画像判定部202は、既知である情報を判定結果とする(ステップB6)。
顔又は非顔画像であることが未知であると識別した場合、顔画像判定部202は、対象データの画像の多様体を含む空間上の位置と、多様体上の位置との距離が、閾値より小さければ、対象データの画像は顔画像であると判定する。また、顔画像判定部202は、閾値より大きければ非顔画像であると判定する(ステップB7)。
本実施の形態における画像処理プログラムは、コンピュータに図12に示したステップB1〜B6を実行させるプログラムであって、上述した動作を実行されるプログラムであれば良い。
以上説明したように、本発明に係る画像処理装置200によれば、画像処理学習装置100の学習により更新したパラメータλから構成される関数Gを用いることで、顔検出処理及び顔向き推定処理を同時に、かつ高精度に行うことができる。
次に、図10及び図13を参照して、本発明の第1の実施の形態の具体的な実施例を説明する。図13は、画像を多様体に変換するニューラルネットワークの例を示す図である。顔向き推定を実現する関数Gとしては、図13に示すような、32×32の画素から構成される画像を1000個の隠れ層を経て5つの出力層に出力する3層のニューラルネットワークを、非特許文献4も参考にして採用する。
まず、ユーザは、該ニューラルネットワークに対するパラメータλを、はじめはすべて0に設定しておく。また、ユーザは学習用のデータ群を予め用意する。
用意する学習用のデータ群について詳細に説明する。まず、ユーザは、デジタルカメラを用いて、予め顔を含む画像を大量に撮影する。この際に、ユーザは、撮影対象となる人物の立つ位置とカメラの位置を固定することで、顔向きが一定になるようにして撮影を行い、例えば100人の人物の1つの顔向きの画像を計100枚撮影する。
次に、ユーザは、人物の立つ位置とカメラの位置を逐次変更させ、さまざまな顔向きの画像の撮影を繰り返す。ユーザは、全部で例えば10通りの顔向きの画像をそれぞれ100枚ずつ撮影することで、合計1000枚の画像を撮影する。この場合、すでに人物の立つ位置とカメラの位置がわかっているので、ユーザは、これらの画像すべてについて顔向き情報を得ることができる。例えば、ユーザは、顔向き情報として、正面を0度として左右何度方向を向いているか、その角度を撮影状況から計算して得る。本実施例においては、撮影状況から計算して得た角度をwiとし、wiとしてyawのみを考える。
次に、ユーザは、撮影した画像群と顔向き情報をテキスト化したファイルをPCのハードディスクに画像として格納する。そして、該画像群に対し、PCの画像処理ソフトを用いて、人手によって顔以外の領域を削除し、顔が写っている領域部分を切り出す。
この処理は人手の手間がかかるために、例えばユーザは、撮影した1000枚の画像のうちの500枚の画像に対してのみ顔の領域部分を切り出す処理を実施し、500枚の顔画像群を得る。
次にユーザは、顔画像群の大きさをすべて拡大若しくは縮小させて縦32画素、横32画素にそろえ、モノクロ画像に変換して再度PCのハードディスクに格納する。この画像データを学習データ群Aと呼ぶとする。学習データ群Aに属するデータは、顔画像であり、かつ顔向き情報が既知である。すなわち学習データ群Aは、縦32画素、横32画素からなる32×32次元のベクトルxi(i=1...500)と、対応する顔・非顔情報yi=1と、nilでは無い顔向き情報wiを保持する。
次に、ユーザは、撮影した1000枚の画像のうち、顔の領域部分を切り出す処理に利用しなかった残りの500枚の画像に対して、ランダムに画像中の一部矩形領域を切り出す。ユーザは、切り出した画像を縦32画素、横32画素の画像に拡大もしくは縮小し、全部で500枚の画像群を作成する。ユーザは、該画像群をモノクロ画像に変換して再度PCのハードディスクに格納する。この画像データを学習データ群Bと呼ぶとする。学習データ群Bに属するデータは、顔画像であるか否かは不明であるが、仮に顔画像であるとした場合の顔向きは既知である。すなわち学習データ群Bは、縦32画素、横32画素からなる32×32次元のベクトルxi(i=501...1000)と、対応する顔・非顔情報yi=nilと、nilでは無い顔向き情報wiを保持する。
次に、ユーザは、これまでの画像群とは別にあらたに、風景など人物の顔が映らない画像を例えば500枚撮影し、PCのハードディスクに格納する。その後、ユーザは、ランダムに画像中の一部矩形領域を切り出してきて、それを縦32画素、横32画素の画像に拡大もしくは縮小し、全部で500枚の画像群を作成する。ユーザは、該画像群をモノクロ画像に変換して再度PCのハードディスクに格納する。この画像データを学習データ群Cと呼ぶとする。学習データ群Cに属するデータは、非顔画像であることが既知である。すなわち学習データ群Cは、縦32画素、横32画素からなる32×32ベクトルxi(i=1001...1500)と、対応する顔・非顔情報yi=−1と、nilが格納されている顔向き情報wiを保持する。
次に、ユーザは、これまでの画像群とは別にあらたに、インターネットなどから顔を含む画像を例えば1000枚収集し、PCのハードディスクに格納する。そしてユーザは、収集した画像に対し、PCの画像処理ソフトを用いて、人手によって顔の領域部分を切り出す。
この処理は人手の手間がかかるために、例えばユーザは、撮影した1000枚の画像のうちの500枚の画像に対してのみ顔の領域部分を切り出す処理を実施し、500枚の顔画像群を得る。
次に、ユーザは、顔画像群の大きさをすべて拡大若しくは縮小させて縦32画素、横32画素にそろえ、モノクロ画像に変換して再度PCのハードディスクに格納する。この画像データを学習データ群Dと呼ぶとする。学習データ群Dに属するデータは、顔画像であることは既知であるが、顔向き情報は未知である。すなわち学習データ群Dは、縦32画素、横32画素からなる32×32次元のベクトルxi(i=1501...2000)と、対応する顔・非顔情報yi=1と、nilが格納されている顔向き情報wiを保持する。
次に、ユーザは、インターネットなどから収集した1000枚の画像うち、顔の領域部分を切り出す処理に利用しなかった残りの500枚の画像に対して、ランダムに画像中の一部矩形領域を切り出す。ユーザは、切り出した画像を縦32画素、横32画素の画像に拡大もしくは縮小し、全部で500枚の画像群を作成する。ユーザは、該画像群をモノクロ画像に変換して再度PCのハードディスクに格納する。この画像データを学習データ群Eと呼ぶとする。学習データ群Eに属するデータは、顔画像であるか否かは未知であり、かつ仮に顔画像だとした場合でも顔向き情報も未知である。すなわち学習データ群Eは、縦32画素、横32画素からなる32×32次元のベクトルxi(i=2001...2500)と、対応する顔・非顔情報yi=nilと、nilが格納されている顔向き情報wiを保持する。
ユーザによる操作に基づき、学習データ入力部101は、学習データ群AからEまで合計2500個のデータを一括して学習用のデータ群として入力する。すなわち、第1の実施の形態におけるステップA1において、学習データ入力部101は、該2500個(N=2500)の学習データziから構成される学習用のデータ群を入力する。
次にステップA2において、学習データ選択部102は、2500個のデータから構成される学習用のデータ群の中から、ランダムに1つのデータzjを学習データとして選択する。例えば、学習データは、j=120のデータ(2500個のデータのうちの120番目のデータ)であるとする。
次にステップA3において、顔向き情報識別部103は、zjが顔向き情報をもっているか否かを識別する。jが1から1000までの値であればzjは学習データ群AまたはBに属しているため、wjにはnilが格納されておらず、顔向き情報識別部103は、wjにはnil以外の顔向きを示す値が入っていることを検出する。今回はj=120であるために、顔向き情報識別部103は、zjは顔向きが既知のデータであることを識別する。
次にステップA4に移行するが、zjは顔向きが既知であることが識別されたために、ステップA5に移行する。
次にステップA5において、多様***置変換部104は、顔向き情報wjを、顔向き多様体上の位置に変換する。
本実施例においては、顔向き多様体として5次元空間内部の多様体を考える。多様***置変換部104は、式12によって、顔向き情報wjを5次元内部の点p=F(wj)に変換する。
本実施例では、顔向き情報wjとしてyawのみを考えているため、そのyawの大きさをθとする。
次にステップA7において、顔情報識別部106は、zjの顔情報を識別する。
jが1から500(学習データ群Aに対応)まで若しくは1001から2000(学習データ群C及びDに対応)までの値であれば、顔情報識別部106は、顔情報を保持していることを識別する。学習データzjはj=120のデータであるから、顔情報識別部106は、zjは顔情報を保持していることを識別する。また、yi=1であるために、顔情報識別部106は、zjが顔画像であることを識別し、ステップA10に移行する。
ステップA10において、第1のパラメータ更新量計算部107は、点pと点G(xj)が近づくような関数Gのパラメータλの更新量を、式10を用いて、式9のように計算することで決定する。
ステップA11において、パラメータ更新部109は、パラメータλをλ+Δλに更新する。
ステップA12において、パラメータ更新部109は、パラメータの更新を十分に行ったかどうかを判定する。パラメータ更新部109は、例えば10000回パラメータλの更新を行ったら終了するという判定を行う。今回は、まだ1回目であるから、終了とは判定されず、ステップA2にもどる。
以下、同様の処理を繰り返し、10000回パラメータλの更新を行ったところで処理が終了する。
<実施の形態の他の表現>
上記の各実施の形態においては、以下に示すような画像処理学習装置、画像処理学習方法、および画像処理学習プログラムの特徴的構成が示されている。
本発明の実施形態における画像処理学習装置は、学習データ群から選択されたデータに対して、顔向きが既知か未知かを識別する顔向き情報識別部と、顔向き情報識別部で顔向きが既知であると識別された場合に、顔向き情報を、多様体上の位置に変換する多様***置変換部と、顔向き情報識別部で顔向きが未知であると識別された場合に、データに対応する画像を多様体が埋め込まれた空間上の位置に変換する関数を用いて変換された画像の空間上の位置から、多様体上のどの位置が相応しい位置かを推定する多様***置推定部と、データに対して、顔画像であるか非顔画像であるかが既知か未知かを識別する顔情報識別部と、顔情報識別部で顔画像であるか非顔画像であるかが既知であると識別された場合に、多様***置変換部が変換したか、又は多様***置推定部が推定した多様体上の位置と、関数によって変換された画像の空間上の位置との距離を計算し、該距離に基づき、顔画像であるか非顔画像であるかに応じて関数を構成するパラメータの更新量を計算する第1のパラメータ更新量計算部と、顔情報識別部で顔画像であるか非顔画像であるかが未知であると識別された場合に、多様***置変換部が変換したか、又は多様***置推定部が推定した多様体上の位置と、画像の空間上の位置との距離が近い場合はより近づけ、遠い場合はより遠ざけるようにパラメータの更新量を計算する第2のパラメータ更新量計算部と、第1のパラメータ更新量計算部又は第2のパラメータ更新量計算部で計算された更新量を用いてパラメータを更新するパラメータ更新部と、を含む。
また、本発明の他の実施形態における画像処理装置は、画像処理学習装置の学習により更新されたパラメータを有する関数を用いて顔検出処理及び顔向き推定処理を行う画像処理装置であって、顔向きが未知の場合、入力画像の多様体を含む空間上の位置と、入力画像の多様体上の位置に基づいて顔向きを推定する顔向き推定部と、顔又は非顔画像であるか否かが未知の場合、入力画像の空間上の位置と多様体上の位置との距離で顔画像であるか非顔画像であるかを判定する顔画像判定部と、さらにを含む。
本発明の実施形態における画像処理学習方法は、学習データ群から選択されたデータに対して、顔向きが既知か未知かを識別し、顔向きが既知であると識別された場合に、顔向き情報を、多様体上の位置に変換し、顔向きが未知であると識別された場合に、データに対応する画像を多様体が埋め込まれた空間上の位置に変換する関数を用いて変換された画像の空間上の位置から、多様体上のどの位置が相応しい位置かを推定し、データに対して、顔画像であるか非顔画像であるかが既知か未知かを識別し、顔画像であるか非顔画像であるかが既知であると識別された場合に、変換又は推定した多様体上の位置と、関数によって変換された画像の空間上の位置との距離を計算し、該距離に基づき、顔画像であるか非顔画像であるかに応じて関数を構成するパラメータの更新量を計算し、顔画像であるか非顔画像であるかが未知であると識別された場合に、変換又は推定した多様体上の位置と、画像の空間上の位置との距離が近い場合はより近づけ、遠い場合はより遠ざけるようにパラメータの更新量を計算し、計算された更新量を用いてパラメータを更新する。
また、本発明の他の実施形態における画像処理方法は、画像処理学習方法の学習により更新されたパラメータを有する関数を用いて顔検出処理及び顔向き推定処理を行う画像処理方法であって、さらに、顔向きが未知の場合、入力画像の多様体を含む空間上の位置と、入力画像の多様体上の位置に基づいて顔向きを推定し、顔又は非顔画像であるか否かが未知の場合、入力画像の空間上の位置と多様体上の位置との距離で顔画像であるか非顔画像であるかを判定する。
本発明の実施形態における画像処理学習プログラムは、学習データ群から選択されたデータに対して、顔向きが既知か未知かを識別し、顔向きが既知であると識別された場合に、顔向き情報を、多様体上の位置に変換し、顔向きが未知であると識別された場合に、データに対応する画像を多様体が埋め込まれた空間上の位置に変換する関数を用いて変換された画像の空間上の位置から、多様体上のどの位置が相応しい位置かを推定し、データに対して、顔画像であるか非顔画像であるかが既知か未知かを識別し、顔画像であるか非顔画像であるかが既知であると識別された場合に、変換又は推定した多様体上の位置と、関数によって変換された画像の空間上の位置との距離を計算し、該距離に基づき、顔画像であるか非顔画像であるかに応じて関数を構成するパラメータの更新量を計算し、顔画像であるか非顔画像であるかが未知であると識別された場合に、変換又は推定した多様体上の位置と、画像の空間上の位置との距離が近い場合はより近づけ、遠い場合はより遠ざけるようにパラメータの更新量を計算し、計算された更新量を用いてパラメータを更新する、処理をコンピュータに実行させる。
また、本発明の他の実施形態における画像処理プログラムは、画像処理学習プログラムの学習により更新されたパラメータを有する関数を用いて顔検出処理及び顔向き推定処理をコンピュータに実行させるための画像処理プログラムであって、さらに、顔向きが未知の場合、入力画像の多様体を含む空間上の位置と、入力画像の多様体上の位置に基づいて顔向きを推定し、顔又は非顔画像であるか否かが未知の場合、入力画像の空間上の位置と多様体上の位置との距離で顔画像であるか非顔画像であるかを判定する、処理をコンピュータに実行させる。
以上、各実施の形態及び実施例を参照して本願発明を説明したが、本願発明は以上の実施の形態及び実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で同業者が理解し得る様々な変更をすることができる。
この出願は、2010年7月7日に出願された日本出願特願2010−154914を基礎とする優先権を主張し、その開示の全てをここに取り込む。
まず、ユーザは、該ニューラルネットワークに対するパラメータλを、はじめはすべて0に設定しておく。また、ユーザは学習用のデータ群を予め用意する。
用意する学習用のデータ群について詳細に説明する。まず、ユーザは、デジタルカメラを用いて、予め顔を含む画像を大量に撮影する。この際に、ユーザは、撮影対象となる人物の立つ位置とカメラの位置を固定することで、顔向きが一定になるようにして撮影を行い、例えば100人の人物の1つの顔向きの画像を計100枚撮影する。
次に、ユーザは、人物の立つ位置とカメラの位置を逐次変更させ、さまざまな顔向きの画像の撮影を繰り返す。ユーザは、全部で例えば10通りの顔向きの画像をそれぞれ100枚ずつ撮影することで、合計1000枚の画像を撮影する。この場合、すでに人物の立つ位置とカメラの位置がわかっているので、ユーザは、これらの画像すべてについて顔向き情報を得ることができる。例えば、ユーザは、顔向き情報として、正面を0度として左右何度方向を向いているか、その角度を撮影状況から計算して得る。本実施例においては、撮影状況から計算して得た角度をwiとし、wiとしてyawのみを考える。
次に、ユーザは、撮影した画像群と顔向き情報をテキスト化したファイルをPCのハードディスクに画像として格納する。そして、該画像群に対し、PCの画像処理ソフトを用いて、人手によって顔以外の領域を削除し、顔が写っている領域部分を切り出す。
この処理は人手の手間がかかるために、例えばユーザは、撮影した1000枚の画像のうちの500枚の画像に対してのみ顔の領域部分を切り出す処理を実施し、500枚の顔画像群を得る。
次にユーザは、顔画像群の大きさをすべて拡大若しくは縮小させて縦32画素、横32画素にそろえ、モノクロ画像に変換して再度PCのハードディスクに格納する。この画像データを学習データ群Aと呼ぶとする。学習データ群Aに属するデータは、顔画像であり、かつ顔向き情報が既知である。すなわち学習データ群Aは、縦32画素、横32画素からなる32×32次元のベクトルxi(i=1...500)と、対応する顔・非顔情報yi=1と、nilでは無い顔向き情報wiを保持する。
次に、ユーザは、撮影した1000枚の画像のうち、顔の領域部分を切り出す処理に利用しなかった残りの500枚の画像に対して、ランダムに画像中の一部矩形領域を切り出す。ユーザは、切り出した画像を縦32画素、横32画素の画像に拡大もしくは縮小し、全部で500枚の画像群を作成する。ユーザは、該画像群をモノクロ画像に変換して再度PCのハードディスクに格納する。この画像データを学習データ群Bと呼ぶとする。学習データ群Bに属するデータは、顔画像であるか否かは不明であるが、仮に顔画像であるとした場合の顔向きは既知である。すなわち学習データ群Bは、縦32画素、横32画素からなる32×32次元のベクトルxi(i=501...1000)と、対応する顔・非顔情報yi=nilと、nilでは無い顔向き情報wiを保持する。
次に、ユーザは、これまでの画像群とは別にあらたに、風景など人物の顔が映らない画像を例えば500枚撮影し、PCのハードディスクに格納する。その後、ユーザは、ランダムに画像中の一部矩形領域を切り出してきて、それを縦32画素、横32画素の画像に拡大もしくは縮小し、全部で500枚の画像群を作成する。ユーザは、該画像群をモノクロ画像に変換して再度PCのハードディスクに格納する。この画像データを学習データ群Cと呼ぶとする。学習データ群Cに属するデータは、非顔画像であることが既知である。すなわち学習データ群Cは、縦32画素、横32画素からなる32×32ベクトルxi(i=1001...1500)と、対応する顔・非顔情報yi=−1と、nilが格納されている顔向き情報wiを保持する。
次に、ユーザは、これまでの画像群とは別にあらたに、インターネットなどから顔を含む画像を例えば1000枚収集し、PCのハードディスクに格納する。そしてユーザは、収集した画像に対し、PCの画像処理ソフトを用いて、人手によって顔の領域部分を切り出す。
この処理は人手の手間がかかるために、例えばユーザは、撮影した1000枚の画像のうちの500枚の画像に対してのみ顔の領域部分を切り出す処理を実施し、500枚の顔画像群を得る。
次に、ユーザは、顔画像群の大きさをすべて拡大若しくは縮小させて縦32画素、横32画素にそろえ、モノクロ画像に変換して再度PCのハードディスクに格納する。この画像データを学習データ群Dと呼ぶとする。学習データ群Dに属するデータは、顔画像であることは既知であるが、顔向き情報は未知である。すなわち学習データ群Dは、縦32画素、横32画素からなる32×32次元のベクトルxi(i=1501...2000)と、対応する顔・非顔情報yi=1と、nilが格納されている顔向き情報wiを保持する。
次に、ユーザは、インターネットなどから収集した1000枚の画像うち、顔の領域部分を切り出す処理に利用しなかった残りの500枚の画像に対して、ランダムに画像中の一部矩形領域を切り出す。ユーザは、切り出した画像を縦32画素、横32画素の画像に拡大もしくは縮小し、全部で500枚の画像群を作成する。ユーザは、該画像群をモノクロ画像に変換して再度PCのハードディスクに格納する。この画像データを学習データ群Eと呼ぶとする。学習データ群Eに属するデータは、顔画像であるか否かは未知であり、かつ仮に顔画像だとした場合でも顔向き情報も未知である。すなわち学習データ群Eは、縦32画素、横32画素からなる32×32次元のベクトルxi(i=2001...2500)と、対応する顔・非顔情報yi=nilと、nilが格納されている顔向き情報wiを保持する。
ユーザによる操作に基づき、学習データ入力部101は、学習データ群AからEまで合計2500個のデータを一括して学習用のデータ群として入力する。すなわち、第1の実施の形態におけるステップA1において、学習データ入力部101は、該2500個(N=2500)の学習データziから構成される学習用のデータ群を入力する。
次にステップA2において、学習データ選択部102は、2500個のデータから構成される学習用のデータ群の中から、ランダムに1つのデータzjを学習データとして選択する。例えば、学習データは、j=120のデータ(2500個のデータのうちの120番目のデータ)であるとする。
次にステップA3において、顔向き情報識別部103は、zjが顔向き情報をもっているか否かを識別する。jが1から1000までの値であればzjは学習データ群AまたはBに属しているため、wjにはnilが格納されておらず、顔向き情報識別部103は、wjにはnil以外の顔向きを示す値が入っていることを検出する。今回はj=120であるために、顔向き情報識別部103は、zjは顔向きが既知のデータであることを識別する。
次にステップA4に移行するが、zjは顔向きが既知であることが識別されたために、ステップA5に移行する。
次にステップA5において、多様***置変換部104は、顔向き情報wjを、顔向き多様体上の位置に変換する。
本実施例においては、顔向き多様体として5次元空間内部の多様体を考える。多様***置変換部104は、式12によって、顔向き情報wjを5次元内部の点p=F(wj)に変換する。
本実施例では、顔向き情報wjとしてyawのみを考えているため、そのyawの大きさをθとする。
次にステップA7において、顔情報識別部106は、zjの顔情報を識別する。
jが1から500(学習データ群Aに対応)まで若しくは1001から2000(学習データ群C及びDに対応)までの値であれば、顔情報識別部106は、顔情報を保持していることを識別する。学習データzjはj=120のデータであるから、顔情報識別部106は、zjは顔情報を保持していることを識別する。また、yi=1であるために、顔情報識別部106は、zjが顔画像であることを識別し、ステップA10に移行する。
ステップA10において、第1のパラメータ更新量計算部107は、点pと点G(xj)が近づくような関数Gのパラメータλの更新量を、式10を用いて、式9のように計算することで決定する。
ステップA11において、パラメータ更新部109は、パラメータλをλ+Δλに更新する。
ステップA12において、パラメータ更新部109は、パラメータの更新を十分に行ったかどうかを判定する。パラメータ更新部109は、例えば10000回パラメータλの更新を行ったら終了するという判定を行う。今回は、まだ1回目であるから、終了とは判定されず、ステップA2にもどる。
以下、同様の処理を繰り返し、10000回パラメータλの更新を行ったところで処理が終了する。
<実施の形態の他の表現>
上記の各実施の形態においては、以下に示すような画像処理学習装置、画像処理学習方法、および画像処理学習プログラムの特徴的構成が示されている。
本発明の実施形態における画像処理学習装置は、学習データ群から選択されたデータに対して、顔向きが既知か未知かを識別する顔向き情報識別部と、顔向き情報識別部で顔向きが既知であると識別された場合に、顔向き情報を、多様体上の位置に変換する多様***置変換部と、顔向き情報識別部で顔向きが未知であると識別された場合に、データに対応する画像を多様体が埋め込まれた空間上の位置に変換する関数を用いて変換された画像の空間上の位置から、多様体上のどの位置が相応しい位置かを推定する多様***置推定部と、データに対して、顔画像であるか非顔画像であるかが既知か未知かを識別する顔情報識別部と、顔情報識別部で顔画像であるか非顔画像であるかが既知であると識別された場合に、多様***置変換部が変換したか、又は多様***置推定部が推定した多様体上の位置と、関数によって変換された画像の空間上の位置との距離を計算し、該距離に基づき、顔画像であるか非顔画像であるかに応じて関数を構成するパラメータの更新量を計算する第1のパラメータ更新量計算部と、顔情報識別部で顔画像であるか非顔画像であるかが未知であると識別された場合に、多様***置変換部が変換したか、又は多様***置推定部が推定した多様体上の位置と、画像の空間上の位置との距離が近い場合はより近づけ、遠い場合はより遠ざけるようにパラメータの更新量を計算する第2のパラメータ更新量計算部と、第1のパラメータ更新量計算部又は第2のパラメータ更新量計算部で計算された更新量を用いてパラメータを更新するパラメータ更新部と、を含む。
また、本発明の他の実施形態における画像処理装置は、画像処理学習装置の学習により更新されたパラメータを有する関数を用いて顔検出処理及び顔向き推定処理を行う画像処理装置であって、顔向きが未知の場合、入力画像の多様体を含む空間上の位置と、入力画像の多様体上の位置に基づいて顔向きを推定する顔向き推定部と、顔又は非顔画像であるか否かが未知の場合、入力画像の空間上の位置と多様体上の位置との距離で顔画像であるか非顔画像であるかを判定する顔画像判定部と、さらにを含む。
本発明の実施形態における画像処理学習方法は、学習データ群から選択されたデータに対して、顔向きが既知か未知かを識別し、顔向きが既知であると識別された場合に、顔向き情報を、多様体上の位置に変換し、顔向きが未知であると識別された場合に、データに対応する画像を多様体が埋め込まれた空間上の位置に変換する関数を用いて変換された画像の空間上の位置から、多様体上のどの位置が相応しい位置かを推定し、データに対して、顔画像であるか非顔画像であるかが既知か未知かを識別し、顔画像であるか非顔画像であるかが既知であると識別された場合に、変換又は推定した多様体上の位置と、関数によって変換された画像の空間上の位置との距離を計算し、該距離に基づき、顔画像であるか非顔画像であるかに応じて関数を構成するパラメータの更新量を計算し、顔画像であるか非顔画像であるかが未知であると識別された場合に、変換又は推定した多様体上の位置と、画像の空間上の位置との距離が近い場合はより近づけ、遠い場合はより遠ざけるようにパラメータの更新量を計算し、計算された更新量を用いてパラメータを更新する。
また、本発明の他の実施形態における画像処理方法は、画像処理学習方法の学習により更新されたパラメータを有する関数を用いて顔検出処理及び顔向き推定処理を行う画像処理方法であって、さらに、顔向きが未知の場合、入力画像の多様体を含む空間上の位置と、入力画像の多様体上の位置に基づいて顔向きを推定し、顔又は非顔画像であるか否かが未知の場合、入力画像の空間上の位置と多様体上の位置との距離で顔画像であるか非顔画像であるかを判定する。
本発明の実施形態における画像処理学習プログラムは、学習データ群から選択されたデータに対して、顔向きが既知か未知かを識別し、顔向きが既知であると識別された場合に、顔向き情報を、多様体上の位置に変換し、顔向きが未知であると識別された場合に、データに対応する画像を多様体が埋め込まれた空間上の位置に変換する関数を用いて変換された画像の空間上の位置から、多様体上のどの位置が相応しい位置かを推定し、データに対して、顔画像であるか非顔画像であるかが既知か未知かを識別し、顔画像であるか非顔画像であるかが既知であると識別された場合に、変換又は推定した多様体上の位置と、関数によって変換された画像の空間上の位置との距離を計算し、該距離に基づき、顔画像であるか非顔画像であるかに応じて関数を構成するパラメータの更新量を計算し、顔画像であるか非顔画像であるかが未知であると識別された場合に、変換又は推定した多様体上の位置と、画像の空間上の位置との距離が近い場合はより近づけ、遠い場合はより遠ざけるようにパラメータの更新量を計算し、計算された更新量を用いてパラメータを更新する、処理をコンピュータに実行させる。
また、本発明の他の実施形態における画像処理プログラムは、画像処理学習プログラムの学習により更新されたパラメータを有する関数を用いて顔検出処理及び顔向き推定処理をコンピュータに実行させるための画像処理プログラムであって、さらに、顔向きが未知の場合、入力画像の多様体を含む空間上の位置と、入力画像の多様体上の位置に基づいて顔向きを推定し、顔又は非顔画像であるか否かが未知の場合、入力画像の空間上の位置と多様体上の位置との距離で顔画像であるか非顔画像であるかを判定する、処理をコンピュータに実行させる。
以上、各実施の形態及び実施例を参照して本願発明を説明したが、本願発明は以上の実施の形態及び実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で同業者が理解し得る様々な変更をすることができる。
この出願は、2010年7月7日に出願された日本出願特願2010−154914を基礎とする優先権を主張し、その開示の全てをここに取り込む。
100 画像処理学習装置
101 学習データ入力部
102 学習データ選択部
103 顔向き情報識別部
104 多様***置変換部
105 多様***置推定部
106 顔情報識別部
107 第1のパラメータ更新量計算部
108 第2のパラメータ更新量計算部
109 パラメータ更新部
110 結果出力部
111 多様体
112 空間
200 画像処理装置
201 顔向き推定部
202 顔画像判定部
A 撮影画像
101 学習データ入力部
102 学習データ選択部
103 顔向き情報識別部
104 多様***置変換部
105 多様***置推定部
106 顔情報識別部
107 第1のパラメータ更新量計算部
108 第2のパラメータ更新量計算部
109 パラメータ更新部
110 結果出力部
111 多様体
112 空間
200 画像処理装置
201 顔向き推定部
202 顔画像判定部
A 撮影画像
Claims (10)
- 学習データ群から選択されたデータに対して、顔向きが既知か未知かを識別する顔向き情報識別手段と、
前記顔向き情報識別手段で顔向きが既知であると識別された場合に、顔向きに関する情報を、多様体上の位置に変換する多様***置変換手段と、
前記顔向き情報識別手段で顔向きが未知であると識別された場合に、前記データに対応する画像を前記多様体が埋め込まれた空間上の位置に変換する関数を用いて変換された前記画像の前記空間上の位置から、前記多様体上のどの位置が相応しい位置かを推定する多様***置推定手段と、
前記データに対して、顔画像であるか非顔画像であるかが既知か未知かを識別する顔情報識別手段と、
前記顔情報識別手段で顔画像であるか非顔画像であるかが既知であると識別された場合に、前記多様***置変換手段が変換したか、又は前記多様***置推定手段が推定した多様体上の位置と、前記関数によって変換された前記画像の前記空間上の位置との距離を計算し、該距離に基づき、顔画像であるか非顔画像であるかに応じて前記関数を構成するパラメータの更新量を計算する第1のパラメータ更新量計算手段と、
前記顔情報識別手段で顔画像であるか非顔画像であるかが未知であると識別された場合に、前記多様***置変換手段が変換したか、又は前記多様***置推定手段が推定した多様体上の位置と、前記画像の前記空間上の位置との距離が近い場合はより近づけ、遠い場合はより遠ざけるように前記パラメータの更新量を計算する第2のパラメータ更新量計算手段と、
前記第1のパラメータ更新量計算手段又は前記第2のパラメータ更新量計算手段で計算された更新量を用いて前記パラメータを更新するパラメータ更新手段と、
を含む画像処理学習装置。 - 前記多様体は、特にニューラルネットワークによって得られる空間上に埋め込まれている
請求項1に記載の画像処理学習装置。 - 学習データ群から1つのデータを選択する学習データ選択手段をさらに含み、
前記学習データ選択手段は、学習初期の段階には、顔向きが既知であって、顔画像であるか非顔画像であるかが分かっているデータを優先的に選択する
請求項1又は2に記載の画像処理学習装置。 - 請求項1〜3のいずれかに記載の画像処理学習装置の学習により更新されたパラメータを有する前記関数を用いて顔検出処理及び顔向き推定処理を行う画像処理装置であって、
顔向きが未知の場合、入力画像の多様体を含む空間上の位置と、入力画像の前記多様体上の位置に基づいて顔向きを推定する顔向き推定手段と、
顔又は非顔画像であるか否かが未知の場合、前記入力画像の前記空間上の位置と前記多様体上の位置との距離で顔画像であるか非顔画像であるかを判定する顔画像判定手段と、
を含む画像処理装置。 - 前記顔向き推定手段は、
前記入力画像の顔向きが既知か未知かを識別し、既知であると識別された場合は該顔向きを推定結果とし、未知であると識別された場合は、前記関数を用いて算出された前記入力画像の前記空間上の位置から前記多様体上の位置を推定し、該推定した多様体上の位置から算出された顔向きを推定結果とし、
前記顔画像判定手段は、
顔又は非顔画像であるかが既知か未知かを識別し、既知であると識別された場合は、既知の情報を判定結果とし、未知であると識別された場合は、前記入力画像の前記空間上の位置と前記多様体上の位置との距離が、閾値より小さければ前記入力画像は顔画像であると判定し、閾値より大きければ前記入力画像は非顔画像であると判定する、
請求項4に記載の画像処理装置。 - 前記顔向き推定手段の顔向きの推定の結果及び前記顔画像判定手段の画像の判定の結果を出力する、
請求項5に記載の画像処理装置。 - 学習データ群から選択されたデータに対して、顔向きが既知か未知かを識別し、
前記顔向きが既知であると識別された場合に、顔向きに関する情報を、多様体上の位置に変換し、
前記顔向きが未知であると識別された場合に、前記データに対応する画像を前記多様体が埋め込まれた空間上の位置に変換する関数を用いて変換された前記画像の前記空間上の位置から、前記多様体上のどの位置が相応しい位置かを推定し、
前記データに対して、顔画像であるか非顔画像であるかが既知か未知かを識別し、
前記顔画像であるか非顔画像であるかが既知であると識別された場合に、前記変換又は前記推定した多様体上の位置と、前記関数によって変換された前記画像の前記空間上の位置との距離を計算し、該距離に基づき、顔画像であるか非顔画像であるかに応じて前記関数を構成するパラメータの更新量を計算し、
前記顔画像であるか非顔画像であるかが未知であると識別された場合に、前記変換又は前記推定した多様体上の位置と、前記画像の前記空間上の位置との距離が近い場合はより近づけ、遠い場合はより遠ざけるように前記パラメータの更新量を計算し、
前記計算された更新量を用いて前記パラメータを更新する、
画像処理学習方法。 - 請求項7に記載の画像処理学習方法の学習により更新されたパラメータを有する前記関数を用いて顔検出処理及び顔向き推定処理を行う画像処理方法であって、
顔向きが未知の場合、入力画像の多様体を含む空間上の位置と、入力画像の前記多様体上の位置に基づいて顔向きを推定し、
顔又は非顔画像であるか否かが未知の場合、前記入力画像の前記空間上の位置と前記多様体上の位置との距離で顔画像であるか非顔画像であるかを判定する、
画像処理方法。 - 学習データ群から選択されたデータに対して、顔向きが既知か未知かを識別し、
前記顔向きが既知であると識別された場合に、顔向きに関する情報を、多様体上の位置に変換し、
前記顔向きが未知であると識別された場合に、前記データに対応する画像を前記多様体が埋め込まれた空間上の位置に変換する関数を用いて変換された前記画像の前記空間上の位置から、前記多様体上のどの位置が相応しい位置かを推定し、
前記データに対して、顔画像であるか非顔画像であるかが既知か未知かを識別し、
前記顔画像であるか非顔画像であるかが既知であると識別された場合に、前記変換又は前記推定した多様体上の位置と、前記関数によって変換された前記画像の前記空間上の位置との距離を計算し、該距離に基づき、顔画像であるか非顔画像であるかに応じて前記関数を構成するパラメータの更新量を計算し、
前記顔画像であるか非顔画像であるかが未知であると識別された場合に、前記変換又は前記推定した多様体上の位置と、前記画像の前記空間上の位置との距離が近い場合はより近づけ、遠い場合はより遠ざけるように前記パラメータの更新量を計算し、
前記計算された更新量を用いて前記パラメータを更新する、
処理をコンピュータに実行させるための画像処理学習プログラム。 - 請求項9に記載の画像処理学習プログラムの学習により更新されたパラメータを有する前記関数を用いて顔検出処理及び顔向き推定処理をコンピュータに実行させるための画像処理プログラムであって、
顔向きが未知の場合、入力画像の多様体を含む空間上の位置と、入力画像の前記多様体上の位置に基づいて顔向きを推定し、
顔又は非顔画像であるか否かが未知の場合、前記入力画像の前記空間上の位置と前記多様体上の位置との距離で顔画像であるか非顔画像であるかを判定する、
処理をコンピュータに実行させるための画像処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012523797A JP5772825B2 (ja) | 2010-07-07 | 2011-05-24 | 画像処理学習装置、画像処理学習方法、および画像処理学習プログラム |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010154914 | 2010-07-07 | ||
JP2010154914 | 2010-07-07 | ||
JP2012523797A JP5772825B2 (ja) | 2010-07-07 | 2011-05-24 | 画像処理学習装置、画像処理学習方法、および画像処理学習プログラム |
PCT/JP2011/062310 WO2012005066A1 (ja) | 2010-07-07 | 2011-05-24 | 画像処理学習装置、画像処理学習方法、および画像処理学習プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2012005066A1 JPWO2012005066A1 (ja) | 2013-09-02 |
JP5772825B2 true JP5772825B2 (ja) | 2015-09-02 |
Family
ID=45441052
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012523797A Active JP5772825B2 (ja) | 2010-07-07 | 2011-05-24 | 画像処理学習装置、画像処理学習方法、および画像処理学習プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US8971613B2 (ja) |
JP (1) | JP5772825B2 (ja) |
WO (1) | WO2012005066A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10878657B2 (en) | 2018-07-25 | 2020-12-29 | Konami Gaming, Inc. | Casino management system with a patron facial recognition system and methods of operating same |
US11521460B2 (en) | 2018-07-25 | 2022-12-06 | Konami Gaming, Inc. | Casino management system with a patron facial recognition system and methods of operating same |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103620621B (zh) * | 2011-06-30 | 2017-10-24 | 诺基亚技术有限公司 | 用于利用积分梯度投影的面部跟踪的方法和装置 |
KR102601848B1 (ko) | 2015-11-25 | 2023-11-13 | 삼성전자주식회사 | 데이터 인식 모델 구축 장치 및 방법과 데이터 인식 장치 |
CN106056138A (zh) * | 2016-05-25 | 2016-10-26 | 努比亚技术有限公司 | 照片处理装置及方法 |
CN105894046B (zh) * | 2016-06-16 | 2019-07-02 | 北京市商汤科技开发有限公司 | 卷积神经网络训练及图像处理的方法和***、计算机设备 |
JP6462787B2 (ja) * | 2016-10-22 | 2019-01-30 | 俊之 坂本 | 画像処理装置及びプログラム |
CN106599833B (zh) * | 2016-12-12 | 2019-06-25 | 武汉科技大学 | 一种基于领域适应和流形距离度量的人脸识别方法 |
WO2020010620A1 (zh) * | 2018-07-13 | 2020-01-16 | 深圳市大疆创新科技有限公司 | 波浪识别方法、装置、计算机可读存储介质和无人飞行器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005285035A (ja) * | 2004-03-31 | 2005-10-13 | Fuji Photo Film Co Ltd | 画像表示制御装置および方法ならびに画像表示制御装置を制御するプログラム |
JP2006018706A (ja) * | 2004-07-05 | 2006-01-19 | Nippon Telegr & Teleph Corp <Ntt> | 被写体識別器設定装置、その設定方法とその設定プログラム、および被写体識別装置、その識別方法とその識別プログラム |
JP2007226512A (ja) * | 2006-02-23 | 2007-09-06 | Fujifilm Corp | 特定向き顔判定方法および装置並びにプログラム |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4526639B2 (ja) * | 2000-03-02 | 2010-08-18 | 本田技研工業株式会社 | 顔認識装置およびその方法 |
JP4476424B2 (ja) | 2000-04-05 | 2010-06-09 | 本田技研工業株式会社 | 画像処理装置およびその方法ならびにプログラム記録媒体 |
JP4238542B2 (ja) | 2002-08-30 | 2009-03-18 | 日本電気株式会社 | 顔向き推定装置および顔向き推定方法ならびに顔向き推定プログラム |
US8219438B1 (en) * | 2008-06-30 | 2012-07-10 | Videomining Corporation | Method and system for measuring shopper response to products based on behavior and facial expression |
JP5239625B2 (ja) * | 2008-08-22 | 2013-07-17 | セイコーエプソン株式会社 | 画像処理装置、画像処理方法および画像処理プログラム |
KR101184097B1 (ko) * | 2009-12-07 | 2012-09-18 | 삼성전자주식회사 | 얼굴 정면포즈 판단 방법 |
-
2011
- 2011-05-24 JP JP2012523797A patent/JP5772825B2/ja active Active
- 2011-05-24 WO PCT/JP2011/062310 patent/WO2012005066A1/ja active Application Filing
- 2011-05-24 US US13/808,511 patent/US8971613B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005285035A (ja) * | 2004-03-31 | 2005-10-13 | Fuji Photo Film Co Ltd | 画像表示制御装置および方法ならびに画像表示制御装置を制御するプログラム |
JP2006018706A (ja) * | 2004-07-05 | 2006-01-19 | Nippon Telegr & Teleph Corp <Ntt> | 被写体識別器設定装置、その設定方法とその設定プログラム、および被写体識別装置、その識別方法とその識別プログラム |
JP2007226512A (ja) * | 2006-02-23 | 2007-09-06 | Fujifilm Corp | 特定向き顔判定方法および装置並びにプログラム |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10878657B2 (en) | 2018-07-25 | 2020-12-29 | Konami Gaming, Inc. | Casino management system with a patron facial recognition system and methods of operating same |
US11455864B2 (en) | 2018-07-25 | 2022-09-27 | Konami Gaming, Inc. | Casino management system with a patron facial recognition system and methods of operating same |
US11521460B2 (en) | 2018-07-25 | 2022-12-06 | Konami Gaming, Inc. | Casino management system with a patron facial recognition system and methods of operating same |
Also Published As
Publication number | Publication date |
---|---|
US20130108154A1 (en) | 2013-05-02 |
JPWO2012005066A1 (ja) | 2013-09-02 |
WO2012005066A1 (ja) | 2012-01-12 |
US8971613B2 (en) | 2015-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5772825B2 (ja) | 画像処理学習装置、画像処理学習方法、および画像処理学習プログラム | |
JP4950787B2 (ja) | 画像処理装置及びその方法 | |
JP5812599B2 (ja) | 情報処理方法及びその装置 | |
JP4556873B2 (ja) | 画像照合システム及び画像照合方法 | |
JP4829141B2 (ja) | 視線検出装置及びその方法 | |
JP2019028843A (ja) | 人物の視線方向を推定するための情報処理装置及び推定方法、並びに学習装置及び学習方法 | |
JP4951498B2 (ja) | 顔画像認識装置、顔画像認識方法、顔画像認識プログラムおよびそのプログラムを記録した記録媒体 | |
JP5894426B2 (ja) | 計測対象抽出装置、顔形状推定装置、計測対象抽出方法および顔形状推定方法 | |
JP2010176380A (ja) | 情報処理装置および方法、プログラム、並びに記録媒体 | |
WO2010137157A1 (ja) | 画像処理装置、方法、プログラム | |
JP2016099982A (ja) | 行動認識装置、行動学習装置、方法、及びプログラム | |
JP2007072620A (ja) | 画像認識装置及びその方法 | |
JP5526465B2 (ja) | 爪位置データ検出装置及び爪位置データ検出方法、並びに爪位置データ検出プログラム | |
JP5833507B2 (ja) | 画像処理装置 | |
JP6387831B2 (ja) | 特徴点位置検出装置、特徴点位置検出方法および特徴点位置検出プログラム | |
JP4906683B2 (ja) | カメラパラメータ推定装置およびカメラパラメータ推定プログラム | |
JP2012212373A (ja) | 画像処理装置、画像処理方法及びプログラム | |
JP2007257088A (ja) | ロボット装置及びそのコミュニケーション方法 | |
KR100933957B1 (ko) | 단일 카메라를 이용한 삼차원 인체 포즈 인식 방법 | |
JP2010211732A (ja) | 物体認識装置および方法 | |
JP2015121524A (ja) | 画像処理装置およびその制御方法、撮像装置、プログラム | |
JP2010231350A (ja) | 人物識別装置、そのプログラム、及び、その方法 | |
JP6086491B2 (ja) | 画像処理装置およびそのデータベース構築装置 | |
JP6118976B2 (ja) | 頭部姿勢の推定装置、頭部姿勢の推定方法およびコンピュータに頭部姿勢の推定方法を実行させるためのプログラム | |
JP2010072910A (ja) | 顔の3次元モデル生成装置、顔の3次元モデル生成方法および顔の3次元モデル生成プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140417 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20150602 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150615 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5772825 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |