IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ シャープ株式会社の特許一覧

特許7691877画像処理装置、推定装置、画像処理方法、及び画像処理プログラム
<>
  • 特許-画像処理装置、推定装置、画像処理方法、及び画像処理プログラム 図1
  • 特許-画像処理装置、推定装置、画像処理方法、及び画像処理プログラム 図2
  • 特許-画像処理装置、推定装置、画像処理方法、及び画像処理プログラム 図3
  • 特許-画像処理装置、推定装置、画像処理方法、及び画像処理プログラム 図4
  • 特許-画像処理装置、推定装置、画像処理方法、及び画像処理プログラム 図5
  • 特許-画像処理装置、推定装置、画像処理方法、及び画像処理プログラム 図6
  • 特許-画像処理装置、推定装置、画像処理方法、及び画像処理プログラム 図7
  • 特許-画像処理装置、推定装置、画像処理方法、及び画像処理プログラム 図8
  • 特許-画像処理装置、推定装置、画像処理方法、及び画像処理プログラム 図9A
  • 特許-画像処理装置、推定装置、画像処理方法、及び画像処理プログラム 図9B
  • 特許-画像処理装置、推定装置、画像処理方法、及び画像処理プログラム 図10
  • 特許-画像処理装置、推定装置、画像処理方法、及び画像処理プログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-06-04
(45)【発行日】2025-06-12
(54)【発明の名称】画像処理装置、推定装置、画像処理方法、及び画像処理プログラム
(51)【国際特許分類】
   G06T 7/00 20170101AFI20250605BHJP
【FI】
G06T7/00 Q
【請求項の数】 8
(21)【出願番号】P 2021120343
(22)【出願日】2021-07-21
(65)【公開番号】P2023016191
(43)【公開日】2023-02-02
【審査請求日】2024-03-21
【前置審査】
(73)【特許権者】
【識別番号】000005049
【氏名又は名称】シャープ株式会社
(74)【代理人】
【識別番号】100167302
【弁理士】
【氏名又は名称】種村 一幸
(72)【発明者】
【氏名】早崎 真
【審査官】佐田 宏史
(56)【参考文献】
【文献】国際公開第2019/078310(WO,A1)
【文献】特開2019-164422(JP,A)
【文献】特開2020-107216(JP,A)
【文献】特開2020-188449(JP,A)
【文献】特表2020-522807(JP,A)
【文献】中国特許出願公開第107944458(CN,A)
【文献】中国特許出願公開第107330374(CN,A)
【文献】中国特許出願公開第112733722(CN,A)
【文献】徳田 篤明、外3名,“画像識別・認識技術を活用したVCAソリューションへの取り組み”,NEC技報,日本,日本電気株式会社,2015年09月15日,Vol.68, No.1,pp.114-116
(58)【調査した分野】(Int.Cl.,DB名)
G06T 1/00,7/00-7/90
G06V 10/00-10/98
(57)【特許請求の範囲】
【請求項1】
入力画像に基づいて推定対象の属性を推定する推定装置に前記入力画像を入力する画像処理装置であって、
前記推定対象の撮像画像を取得する第1取得処理部と、
前記第1取得処理部により取得される前記撮像画像に対してフィルタ処理を実行して前記推定対象の特定部位の特徴量を算出し、前記特徴量に基づいて前記撮像画像の評価値を算出する評価処理部と、
前記評価処理部により算出される前記撮像画像の評価値に基づいて、前記撮像画像を前記入力画像として出力する出力処理部と、
を備え
前記評価処理部は、ハイパスフィルタによるフィルタ処理の結果の最大値及び最小値の差分を前記撮像画像におけるエッジの第1評価値として算出し、ローパスフィルタによるフィルタ処理の結果の最大値及び最小値の差分を前記撮像画像におけるコントラストの第2評価値として算出し、前記第1評価値及び前記第2評価値に基づいて前記撮像画像の評価値を算出する、画像処理装置。
【請求項2】
前記第1取得処理部は、前記推定対象の複数の前記撮像画像を取得し、
前記評価処理部は、複数の前記撮像画像のそれぞれについて前記評価値を算出し、
前記出力処理部は、複数の前記撮像画像のうち前記評価値が高い上位所定枚数の前記撮像画像を前記入力画像として出力する、
請求項1に記載の画像処理装置。
【請求項3】
前記第1取得処理部は、前記推定対象の複数の前記撮像画像を取得し、
前記評価処理部は、複数の前記撮像画像のそれぞれについて前記評価値を算出し、
前記出力処理部は、複数の前記撮像画像のうち前記評価値が所定評価値を超える一又は複数の前記撮像画像を前記入力画像として出力する、
請求項1に記載の画像処理装置。
【請求項4】
請求項1から請求項のいずれか1項に記載の画像処理装置から出力される前記撮像画像を前記入力画像として、前記推定対象の属性を推定する推定装置であって、
前記画像処理装置から前記撮像画像を前記入力画像として取得する第2取得処理部と、
前記第2取得処理部により取得される前記入力画像について、所定の学習済みモデルを用いて、前記属性の複数の分類のそれぞれについて出力値を算出し、算出した各分類の出力値に基づいて前記属性の判定値を算出し、算出した前記判定値に基づいて前記推定対象の属性を推定する推定処理部と、
ハイパスフィルタによるフィルタ処理の結果の最大値及び最小値の差分である前記撮像画像におけるエッジの評価値が閾値以下の場合に、前記推定処理部により推定された前記属性の推定結果を補正する補正処理部と、
を備える推定装置。
【請求項5】
前記補正処理部は、前記撮像画像に含まれる前記推定対象に関する特徴量が所定値以下の場合に、前記推定処理部により推定された前記属性の推定結果を補正する、
請求項に記載の推定装置。
【請求項6】
前記推定処理部は、前記入力画像について、算出した前記各分類の出力値が所定出力値以下の場合、又は、算出した前記各分類の出力値のうち最大出力値が所定出力値以下の場合に、当該入力画像に対する前記属性の推定をエラーと判定する、
請求項に記載の推定装置。
【請求項7】
入力画像に基づいて推定対象の属性を推定する推定装置に前記入力画像を入力する画像処理方法であって、
一又は複数のプロセッサーが、
前記推定対象の撮像画像を取得する取得ステップと、
前記取得ステップにおいて取得される前記撮像画像に対してフィルタ処理を実行して前記推定対象の特定部位の特徴量を算出し、前記特徴量に基づいて前記撮像画像の評価値を算出する評価ステップと、
前記評価ステップにおいて算出される前記撮像画像の評価値に基づいて、前記撮像画像を前記入力画像として出力する出力ステップと、
を実行し、
前記評価ステップにおいて、ハイパスフィルタによるフィルタ処理の結果の最大値及び最小値の差分を前記撮像画像におけるエッジの第1評価値として算出し、ローパスフィルタによるフィルタ処理の結果の最大値及び最小値の差分を前記撮像画像におけるコントラストの第2評価値として算出し、前記第1評価値及び前記第2評価値に基づいて前記撮像画像の評価値を算出する、画像処理方法。
【請求項8】
入力画像に基づいて推定対象の属性を推定する推定装置に前記入力画像を入力する画像処理プログラムであって、
前記推定対象の撮像画像を取得する取得ステップと、
前記取得ステップにおいて取得される前記撮像画像に対してフィルタ処理を実行して前記推定対象の特定部位の特徴量を算出し、前記特徴量に基づいて前記撮像画像の評価値を算出する評価ステップと、
前記評価ステップにおいて算出される前記撮像画像の評価値に基づいて、前記撮像画像を前記入力画像として出力する出力ステップと、
を一又は複数のプロセッサーに実行させ
前記評価ステップにおいて、ハイパスフィルタによるフィルタ処理の結果の最大値及び最小値の差分を前記撮像画像におけるエッジの第1評価値として算出し、ローパスフィルタによるフィルタ処理の結果の最大値及び最小値の差分を前記撮像画像におけるコントラストの第2評価値として算出し、前記第1評価値及び前記第2評価値に基づいて前記撮像画像の評価値を算出する、画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、推定装置、画像処理方法、及び画像処理プログラムに関する。
【背景技術】
【0002】
従来、人物の顔画像から当該人物の年齢、性別などの属性を推定する技術が知られている。例えば、特許文献1には、所定の年齢以上又は未満に大きく分類する判定機と、各判定機の判定結果を統合することにより顔画像の人物の年齢を推定する技術が開示されている。
【0003】
また、特許文献2には、カメラにより撮像した撮像画像を、メモリに記憶した順番に人物の属性を推定するとともに、その人数を属性別に計数する技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2009-271885号公報
【文献】特開2010-033474号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ここで、人物の画像から当該人物の属性を推定する手法として、一般的に、ディープラーニングの手法の1つである畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)が用いられる。前記畳み込みニューラルネットワークでは、入力画像を読み込み、前半で畳み込み及びプーリングを繰り返して入力画像における重要かつ複数の特徴を抽出し、後半でそれらの特徴に基づいて、全結合層及び出力層による識別(分類)を行う。
【0006】
従来の前記推定方法は、機械学習などにより学習した学習済みモデルを用いて、入力画像に基づいて推定対象の属性を推定するため、推定結果が入力画像の品質(画質)の影響を受け易い。例えば入力画像の画質が低い場合、推定対象の属性の推定精度が低下する問題が生じる。
【0007】
本発明の目的は、推定対象の属性の推定精度を向上させることが可能な画像処理装置、推定装置、画像処理方法、及び画像処理プログラムを提供することにある。
【課題を解決するための手段】
【0008】
本発明の一の態様に係る画像処理装置は、入力画像に基づいて推定対象の属性を推定する推定装置に前記入力画像を入力する画像処理装置であって、前記推定対象の撮像画像を取得する第1取得処理部と、前記第1取得処理部により取得される前記撮像画像の画質を評価する評価処理部と、前記評価処理部により、前記撮像画像の画質が所定の画質を有すると判定された場合に、前記撮像画像を前記入力画像として出力する出力処理部と、を備える。
【0009】
本発明の他の態様に係る推定装置は、前記画像処理装置から出力される前記撮像画像を前記入力画像として、前記推定対象の属性を推定する推定装置であって、前記画像処理装置から前記撮像画像を前記入力画像として取得する第2取得処理部と、前記第2取得処理部により取得される前記入力画像について、所定の学習済みモデルを用いて、前記属性の複数の分類のそれぞれについて出力値を算出し、算出した各分類の出力値に基づいて前記属性の判定値を算出し、算出した前記判定値に基づいて前記推定対象の属性を推定する推定処理部と、を備える。
【0010】
本発明の他の態様に係る画像処理方法は、入力画像に基づいて推定対象の属性を推定する推定装置に前記入力画像を入力する画像処理方法であって、一又は複数のプロセッサーが、前記推定対象の撮像画像を取得する取得ステップと、前記取得ステップにおいて取得される前記撮像画像の画質を評価する評価ステップと、前記評価ステップにおいて前記撮像画像の画質が所定の画質を有すると判定された場合に、前記撮像画像を前記入力画像として出力する出力ステップと、を実行する方法である。
【0011】
本発明の他の態様に係る画像処理プログラムは、入力画像に基づいて推定対象の属性を推定する推定装置に前記入力画像を入力する画像処理プログラムであって、前記推定対象の撮像画像を取得する取得ステップと、前記取得ステップにおいて取得される前記撮像画像の画質を評価する評価ステップと、前記評価ステップにおいて前記撮像画像の画質が所定の画質を有すると判定された場合に、前記撮像画像を前記入力画像として出力する出力ステップと、を一又は複数のプロセッサーに実行させるためのプログラムである。
【発明の効果】
【0012】
本発明によれば、推定対象の属性の推定精度を向上させることが可能な画像処理装置、推定装置、画像処理方法、及び画像処理プログラムを提供することができる。
【図面の簡単な説明】
【0013】
図1図1は、本発明の実施形態に係る推定システムの構成を示すブロック図である。
図2図2は、本発明の実施形態に係る畳み込みニューラルネットワークの基本構造の一例を示す図である。
図3図3は、本発明の実施形態に係る畳み込みニューラルネットワークに含まれる全結合層と出力層との結合状態を模式的に示す図である。
図4図4は、本発明の実施形態に係る年齢の推定方法の一例を模式的に示す図である。
図5図5は、本発明の実施形態に係る学習用データの一例を示す図である。
図6図6は、本発明の実施形態に係る画像データの一例を示す図である。
図7図7は、本発明の実施形態に係る顔画像の一例を示す図である。
図8図8は、本発明の実施形態に係るフィルタ処理の一例を示す図である。
図9A図9Aは、本発明の実施形態に係る画像処理装置において算出される各年齢クラスのスコア値一例を示す図である。
図9B図9Bは、本発明の実施形態に係る画像処理装置において補正される各年齢クラスのスコア値一例を示す図である。
図10図10は、本発明の実施形態に係る画像処理装置において実行される画像処理の手順の一例を説明するためのフローチャートである。
図11図11は、本発明の実施形態に係る推定装置において実行される推定処理の手順の一例を説明するためのフローチャートである。
【発明を実施するための形態】
【0014】
以下、添付図面を参照しながら、本発明の実施形態について説明する。なお、以下の実施形態は、本発明を具体化した一例であって、本発明の技術的範囲を限定する性格を有さない。
【0015】
本実施形態に係る推定システム100は、推定対象の画像に基づいて、当該推定対象の属性を推定するシステムである。例えば前記推定対象は、人物の顔、車両、動物、物品などである。前記推定対象が人物の場合、前記属性は、例えば人物の年齢である。また、前記属性は、人物の性別、眼鏡の有無、マスクの有無、民族種別などであってもよい。また、前記推定対象が車両の場合、前記属性は、車両のナンバー、メーカー、国産車/外車、色などである。推定システム100は、一つの属性を推定してもよいし、複数の属性を推定してもよい。推定システム100は、例えばデジタルサイネージに適用されることにより、街頭、店頭などの通行人の年齢を推定して、人流解析、マーケティングなどを行うことが可能になる。また、推定システム100は、例えば店舗のPOS端末に適用されることにより、顧客の年齢を推定して、マーケティングなどを行うことが可能になる。
【0016】
本実施形態では、前記推定対象の一例として人物の顔を挙げ、前記属性の一例として人物の年齢を挙げて説明する。すなわち、人物の顔は本発明の推定対象の一例であり、人物の年齢は本発明の属性の一例である。
【0017】
[推定システム100]
図1は、本発明の実施形態に係る推定システム100の概略構成を示す図である。図1に示すように、推定システム100は、画像処理装置1と推定装置2とを含む。画像処理装置1及び推定装置2は、LAN、インターネット、WAN、又は公衆電話回線などの通信網N1を介して通信可能である。なお、画像処理装置1及び推定装置2は、一体の機器(情報処理装置)で構成されてもよい。
【0018】
推定装置2は、入力画像に基づいて推定対象の属性を推定する。例えば、推定装置2は、人物の顔画像に基づいて当該人物の年齢を推定する。画像処理装置1は、推定装置2に対して入力画像を入力する。例えば、画像処理装置1は、カメラ15により撮像された人物の顔画像を前記入力画像として推定装置2に入力する。
【0019】
[画像処理装置1]
図1に示すように、画像処理装置1は、制御部11、記憶部12、操作表示部13、通信部14、カメラ15などを備える。画像処理装置1は、例えばパーソナルコンピュータのような情報処理装置であってもよい。
【0020】
カメラ15は、被写体の画像を撮像してデジタル画像データとして出力するデジタルカメラである。例えば、カメラ15は、人物の顔を含む所定エリアを所定のフレームレートで撮像し、撮像した画像データを制御部11に送信する。なお、カメラ15は、画像処理装置1の外部に設置されてもよい。この場合、カメラ15は、画像データを、通信網N1を介して画像処理装置1に送信する。
【0021】
通信部14は、画像処理装置1を有線又は無線で通信網N1に接続し、通信網N1を介して他の機器(推定装置2など)との間で所定の通信プロトコルに従ったデータ通信を実行するための通信インターフェースである。
【0022】
操作表示部13は、各種の情報を表示する液晶ディスプレイ又は有機ELディスプレイのような表示部と、操作を受け付けるマウス、キーボード、又はタッチパネルなどの操作部とを備えるユーザーインターフェースである。
【0023】
記憶部12は、各種の情報を記憶するHDD(Hard Disk Drive)又はSSD(Solid State Drive)等の不揮発性のストレージデバイスを含む。記憶部12には、制御部11に後述の画像処理(図10参照)を実行させるための画像処理プログラム121等の制御プログラムが格納(記憶)されている。画像処理プログラム121等の制御プログラムは、例えば、コンピュータ読取可能な非一時的記録媒体に記録されて提供され、画像処理装置1の読取装置で非一時的記録媒体から読み取られて、記憶部12に記憶される。前記制御プログラムは、画像処理装置1以外の外部サーバ等からネットワークを介して画像処理装置1に提供(ダウンロード)されて、記憶部12に記憶されてもよい。また、記憶部12は、カメラ15から送信される画像データに応じた撮像画像を記憶する。
【0024】
制御部11は、CPU、ROM、及びRAMなどの制御機器を有する。前記CPUは、各種の演算処理を実行するプロセッサーである。前記ROMは、前記CPUに各種の処理を実行させるためのBIOS及びOSなどの制御プログラムが予め記憶された不揮発性の記憶部である。前記RAMは、各種の情報を記憶する揮発性又は不揮発性の記憶部であり、前記CPUが実行する各種の処理の一時記憶メモリ(作業領域)として使用される。そして、制御部11は、前記ROM又は記憶部12に予め記憶された各種の制御プログラムを前記CPUで実行することにより画像処理装置1を制御する。
【0025】
ここで、人物の画像から当該人物の属性を推定する手法として、一般的に、ディープラーニングの手法の1つである畳み込みニューラルネットワーク(CNN)が用いられる。前記畳み込みニューラルネットワークでは、入力画像を読み込み、前半で畳み込み及びプーリングを繰り返して入力画像における重要かつ複数の特徴を抽出し、後半でそれらの特徴に基づいて、全結合層及び出力層による識別(分類)を行う。
【0026】
図2には、畳み込みニューラルネットワークの基本構造を示している。畳み込みニューラルネットワークは、学習用データを読み込み、前半で畳み込み及びプーリングを繰り返すことで、学習用データにおける重要かつ複数の特徴を抽出し、後半においてそれらの特徴に基づいて、全結合層及び出力層により識別を行う。
【0027】
具体的には、前半処理の入力層において、学習用データである入力画像を、多次元(画像の2次元と色成分RGBの1次元とを併せ持つ3次元データ)から1次元ベクトルに変換する。次の畳み込み層では、入力画像の濃淡パターンを検出することでエッジ抽出等の特徴を抽出する。次のプーリング層では、抽出したそれらの重要な特徴量だけに間引くことで、物体の位置が変動しても同一の物体であるとみなすように、位置ずれの許容をするとともに画像サイズ(情報)を圧縮する。畳み込み層及びプーリング層を複数段つなげることで、より多くの重要な特徴を抽出する。ここで、畳み込み層及びプーリング層の段数が多くなると特徴量の大きさ(勾配)が消失してしまうため、活性化関数を畳み込み層の後に挿入することにより、特徴量を強調させ、勾配の消失を抑制する。後半処理では、前半処理で抽出された特徴量に基づいた分類を行う。
【0028】
図3には、全結合層と出力層との結合状態を模式的に表している。丸印の1つ1つが個々のノードであり、ノード間の結合線のそれぞれに対し、結合重み係数が乗算される。結合数は全結合層のノード数(m)×出力層の出力数(n)により算出され、結合数が多くなるほど、分類分け能力が向上するが、その分、演算量が多くなり、パフォーマンスが低下してしまう。また、学習時には最適な結合重み係数の算出に時間がかかるという課題がある。全結合層(図2参照)では、前半で抽出された特徴をそれぞれ1つのノードに集約し、分類するために各ノード間の結合重み係数を調整して、特徴変数に変換する。そして、最後の出力層(図2参照)では、その特徴変数を正しく分類される確率を最大化するようなスコア値として出力する。なお、出力層の出力値(スコア値)を出力数分足し合わせると、1.0(100%)になる。
【0029】
顔画像における人物の属性(例えば年齢)を推定する場合、前記畳み込みニューラルネットワークをベースにした推定方法を用いるのが一般的である。学習用データ(複数の顔画像)を入力画像とし、その学習用データにおける様々な特徴量を抽出し、出力層の出力値が入力画像の学習用データに対する正解値(年齢、年齢が該当するその範囲(クラス))に総合平均的に近づくように、前半処理の構成を変えたり、各種パラメータ(全結合層の結合重み係数)を調整(学習)したりする。そして、機械学習により最適化された構成と推定パラメータとをまとめたものが「学習済みモデル」(図2参照)となる。
【0030】
このような学習方法により機械学習されて生成された学習済みモデルに対して、推定対象の人物の顔画像を入力することにより、その出力値(スコア値)から当該人物の年齢を推定することが可能となる。
【0031】
次に、人物の画像から属性を推定する推定方法の一例を挙げる。図4には年齢の推定方法を模式的に示している。
【0032】
推定年齢は、各年齢クラスID(出力層のノード番号)と、各年齢クラスIDに対応するスコア値との積和演算により算出される。なお、年齢クラスとは、年齢を特定の年齢で区切った範囲を表す。この場合、その積和演算の結果が3.70となり、小数点を切り捨てると年齢クラスIDが「3」となるため、該当する年齢クラスは「13~18歳」と推定される。さらに、小数点「0.70」を加味して、同年齢クラス内を線形補間することにより、年齢が13+0.70×(18-13)=16.5歳と推定することもできる。
【0033】
なお、これらのスコア値は変動するため、複数の入力画像(顔画像)の平均値により年齢を推定することが望ましい。
【0034】
ここで、学習済みモデルを生成する際の機械学習に用いる学習用データの一例を図5に示す。顔画像1~10のそれぞれは、各年齢範囲の人物の顔画像を表す。各学習用データフォルダには、例えば、フォルダ名として「連番号#年齢下限-年齢上限」が付与される。各学習用データフォルダに、その年齢範囲に該当する顔画像データが複数格納され、それらをまとめて学習用データ(学習用データセット)とする。「年齢クラス数」は、区分けされた年齢の区分の数であり、この例の場合、年齢クラス数は「10クラス」となる。
【0035】
なお、前記学習用データ自体を学習済みモデルに記憶するわけではなく、それらの特徴を畳み込みニューラルネットワークを用いて抽出し、学習用データに合う推定値が出力されるような最適な構成とパラメータとを求めたものが学習済みモデルとなる。
【0036】
ところで、従来の推定方法では、機械学習などにより学習した学習済みモデルを用いて、入力画像に基づいて推定対象の属性を推定するため、推定結果が入力画像の品質(画質)の影響を受け易い。例えば入力画像の画質が低い場合、推定対象の属性の推定精度が低下する問題が生じる。以下、この問題の具体例を説明する。
【0037】
図6には、所定期間(約10秒)に撮像された画像データ(動画像データ)において、抽出した顔画像のエッジ、コントラスト、目鼻縦横比の各スコア値と、これらの指標の総合スコア値との遷移を示している。顔画像P1~P4は、向き、画質などが異なる同一人物の顔画像を示している。図6に示すように、顔画像P1は総合スコア値が高く画像の品質(画質)が高いことを示している。これに対して、顔画像P2は、例えば顔が下を向いている画像であり、コントラストのスコア値が低くなっている。また、顔画像P3は、例えば顔が横を向いている画像であり、目鼻縦横比のスコア値が低くなっている。また、顔画像P4は、全体的にぼやけた画像であり、エッジのスコア値が低くなっている。すなわち、顔画像P2~P4は、画質が低いことを示している。
【0038】
ここで、顔画像P1を入力画像として人物の年齢を推定した場合、正確な年齢を推定することが可能である一方、顔画像P2~P4を入力画像として人物の年齢を推定した場合、正確な年齢を推定することができなくなる。このように、入力画像の画質が低い場合、推定対象の属性の推定精度が低下する問題が生じる。これに対して、本実施形態に係る画像処理装置1によれば、以下に示すように、推定対象の属性の推定精度を向上させることが可能である。
【0039】
具体的に、画像処理装置1の制御部11は、図1に示すように、取得処理部111、評価処理部112、出力処理部113などの各種の処理部を含む。なお、制御部11は、前記CPUで画像処理プログラム121に従った各種の処理を実行することによって前記各種の処理部として機能する。また、制御部11に含まれる一部又は全部の処理部が電子回路で構成されていてもよい。なお、画像処理プログラム121は、複数のプロセッサーを前記各種の処理部として機能させるためのプログラムであってもよい。
【0040】
取得処理部111は、カメラ15から推定対象の撮像画像を取得する。具体的には、取得処理部111は、カメラ15から所定のフレームレートで撮像される人物の撮像画像を順次取得する。また、取得処理部111は、推定対象の人物の複数(所定枚数)の撮像画像を取得する。取得処理部111は、取得した撮像画像を記憶部12に格納する。取得処理部111は、本発明の第1取得処理部の一例である。
【0041】
評価処理部112は、取得処理部111により取得される前記撮像画像の画質を評価する。具体的には、評価処理部112は、前記撮像画像から顔画像を抽出し、抽出した顔画像に関する特徴量を算出し、算出した特徴量に基づいて顔画像の評価値を算出する。例えば、評価処理部112は、抽出した顔画像におけるエッジ、コントラスト、及び画像サイズのそれぞれの特徴量に基づいて顔画像の評価値を算出する。
【0042】
また、評価処理部112は、推定対象の人物に関する複数の撮像画像(顔画像)のそれぞれについて評価値を算出する。評価処理部112は、本発明の評価処理部の一例である。
【0043】
以下、具体例を説明する。図7には、推定対象の人物の撮像画像から抽出した顔画像を示している。なお、撮像画像から顔を検出して顔画像を切り出す技術は、MTCNN(multi-task cascaded convolutional neural networks)など周知の技術を適用することができる。例えば、評価処理部112は、撮像画像中の顔の位置、目、鼻、口などの主要な器官の位置を検出して、所定範囲の画像を切り出して顔画像を生成する。また、評価処理部112は、生成した顔画像に対して、元の画像におけるサイズ、目の周辺(図7の矩形枠領域)の特徴量を算出する。
【0044】
目の周辺の特徴量として、ノイズフィルタ、ハイパスフィルタ、ローパスフィルタを適用し、それらの最大値及び最小値の差分を用いることが考えられる。例えば図8に示すように、評価処理部112は、顔画像に対して、ノイズフィルタFd、ハイパスフィルタFh、ローパスフィルタFlによるフィルタ処理を実行する。評価処理部112は、ハイパスフィルタFhによるフィルタ処理の結果の最大値及び最小値の差分(エッジの評価値dd)を求め、ローパスフィルタFlによるフィルタ処理の結果の最大値及び最小値の差分(コントラストの評価値dr)を求める。画像サイズを「dw」、調整値を「mag」とした場合、顔画像の評価値Fは以下の式で求められる。
F=(dd×dr×dw×mag/128.0);
【0045】
取得処理部111が複数の撮像画像を取得した場合、評価処理部112は、複数の顔画像を生成し、顔画像ごとに評価値Fを算出する。例えば、取得処理部111が5枚の撮像画像を取得した場合、評価処理部112は、5枚の顔画像を生成し、顔画像ごとの5つの評価値Fを算出する。
【0046】
出力処理部113は、評価処理部112により、前記撮像画像の画質が所定の画質を有すると判定された場合に、前記撮像画像を入力画像として推定装置2に出力する。具体的には、出力処理部113は、評価処理部112により算出される顔画像の評価値Fに基づいて、顔画像を入力画像として出力する。
【0047】
例えば、出力処理部113は、複数の顔画像のうち評価値Fが高い上位所定枚数の顔画像を入力画像として出力する。例えば、評価処理部112が推定対象の人物の顔画像を5枚生成し、5枚の顔画像のそれぞれに対する評価値Fを算出した場合に、出力処理部113は、5枚の顔画像のうち評価値Fが高い上位3枚の顔画像を抽出し、抽出した5枚の顔画像を入力画像として出力する。出力処理部113は、本発明の出力処理部の一例である。
【0048】
他の実施形態として、評価処理部112は、顔画像の評価値Fが所定評価値(閾値)を超えるか否かを判定してもよい。また、評価処理部112は、複数の顔画像のそれぞれに対応する評価値Fごとに、所定評価値を超えるか否かを判定してもよい。この場合、出力処理部113は、評価処理部112により顔画像の評価値Fが前記所定評価値を超えると判定された場合に、当該顔画像を入力画像として出力する。また、出力処理部113は、複数の顔画像のうち評価値Fが所定評価値を超える一又は複数の顔画像を入力画像として出力する。
【0049】
また他の実施形態として、顔画像の評価値Fが前記所定評価値を超える顔画像が所定枚数(例えば3枚)に到達するまで、カメラ15が人物を撮像する処理、又は、取得処理部111が撮像画像を取得する処理を実行してもよい。
【0050】
上記の構成によれば、推定対象の人物の顔画像について、画質が良好な顔画像を推定装置2の入力画像として抽出することができる。例えば、推定対象の人物の複数の顔画像のうち画質が所定の画質(高画質)を有する一又は複数の顔画像を、推定装置2の入力画像として抽出することができる。
【0051】
[推定装置2]
図1に示すように、推定装置2は、制御部21、記憶部22、操作表示部23、通信部24などを備える。画像処理装置1は、例えばパーソナルコンピュータのような情報処理装置であってもよい。
【0052】
通信部24は、推定装置2を有線又は無線で通信網N1に接続し、通信網N1を介して他の機器(画像処理装置1など)との間で所定の通信プロトコルに従ったデータ通信を実行するための通信インターフェースである。
【0053】
操作表示部23は、各種の情報を表示する液晶ディスプレイ又は有機ELディスプレイのような表示部と、操作を受け付けるマウス、キーボード、又はタッチパネルなどの操作部とを備えるユーザーインターフェースである。
【0054】
記憶部22は、各種の情報を記憶するHDD又はSSD等の不揮発性のストレージデバイスを含む。記憶部22には、制御部21に後述の推定処理(図11参照)を実行させるための推定プログラム221等の制御プログラムが格納(記憶)されている。推定プログラム221等の制御プログラムは、例えば、コンピュータ読取可能な非一時的記録媒体に記録されて提供され、推定装置2の読取装置で非一時的記録媒体から読み取られて、記憶部22に記憶される。前記制御プログラムは、推定装置2以外の外部サーバ等からネットワークを介して推定装置2に提供(ダウンロード)されて、記憶部22に記憶されてもよい。また、記憶部22は、所定の学習方法により機械学習された学習済みモデル222、推定装置2により推定される推定結果等の情報も記憶する。
【0055】
制御部21は、CPU、ROM、及びRAMなどの制御機器を有する。前記CPUは、各種の演算処理を実行するプロセッサーである。前記ROMは、前記CPUに各種の処理を実行させるためのBIOS及びOSなどの制御プログラムが予め記憶された不揮発性の記憶部である。前記RAMは、各種の情報を記憶する揮発性又は不揮発性の記憶部であり、前記CPUが実行する各種の処理の一時記憶メモリ(作業領域)として使用される。そして、制御部21は、前記ROM又は記憶部22に予め記憶された各種の制御プログラムを前記CPUで実行することにより推定装置2を制御する。
【0056】
具体的に、本実施形態に係る推定装置2の制御部21は、取得処理部211、推定処理部212、補正処理部213、出力処理部214などの各種の処理部を含む。なお、制御部21は、前記CPUで推定プログラム221に従った各種の処理を実行することによって前記各種の処理部として機能する。また、制御部21に含まれる一部又は全部の処理部が電子回路で構成されていてもよい。なお、推定プログラム221は、複数のプロセッサーを前記各種の処理部として機能させるためのプログラムであってもよい。
【0057】
なお、制御部21は、学習済みモデル222を用いて推定プログラム221に従った各種の処理を実行することによって前記各種の処理部として機能する。また、制御部21に含まれる一部又は全部の処理部が電子回路で構成されていてもよい。なお、推定プログラム221は、複数のプロセッサーを前記各種の処理部として機能させるためのプログラムであってもよい。
【0058】
ここで、学習済みモデル222は、推定対象(例えば人物)の画像(例えば顔画像)と前記推定対象の属性(例えば年齢)とが互いに関連付けられた学習用データに基づいて生成された単一の学習済みモデルである。
【0059】
取得処理部211は、画像処理装置1から推定対象の撮像画像を取得する。ここでは、取得処理部211は、画像処理装置1から、推定対象である人物の複数の顔画像を取得する。取得処理部211は、本発明の第2取得処理部の一例である。
【0060】
推定処理部212は、学習済みモデル222を用いて、取得処理部211により取得される前記顔画像を入力画像として、属性(例えば年齢)に対応する出力層の出力値から属性を推定する。具体的には、推定処理部212は、取得処理部211により取得される前記入力画像について、学習済みモデル222を用いて、属性の複数の分類(年齢クラス)のそれぞれについて出力値を算出し、算出した各分類の出力値に基づいて属性(年齢)の判定値を算出し、算出した前記判定値に基づいて前記顔画像の属性を推定する。推定処理部212は、本発明の推定処理部の一例である。
【0061】
例えば図4に示すように、推定処理部212は、年齢用の出力層のID(i)=0~(N-1)(Nは年齢クラス数)と、それぞれのスコア値(出力値)の積和演算によって、顔画像の年齢を推定する。ここでは、年齢クラス数が「10」であり、出力層のID(i)=0~9とそれぞれのスコア値との積和演算を行った結果、判定値が「3.70」となるため、推定処理部212は、顔画像の年齢を「13~18歳」の年齢クラスに属すると推定する。なお、推定処理部212は、推定した年齢クラスに含まれる複数の年齢のうち最小年齢及び最大年齢を用いて線形補間することにより、出力値に対応する年齢を算出してもよい。図4に示す例では、推定した年齢クラス「13~18歳」において、最小年齢は「13歳」となり、最大年齢は「18歳」となる。このため、推定処理部212は、推定年齢を16.5歳(=13+0.70×(18-13))と算出する。
【0062】
また、推定処理部212は、複数の顔画像のそれぞれについて年齢を推定し、各推定結果の平均値を、当該人物の推定年齢に決定する。
【0063】
出力処理部214は、推定結果を出力する。例えば、出力処理部214は、入力された顔画像に対して推定した推定結果(「13~18歳」又は「16.5歳」)を、操作表示部23に表示させる。また、出力処理部214は、前記推定結果を、通信網N1を介して他の機器(画像処理装置1など)に送信してもよい。
【0064】
ここで、画像処理装置1から入力された顔画像の画質が低い場合、年齢の判定精度が低下するおそれがある。例えば、画像処理装置1が抽出した顔画像のピントが十分に合っておらずぼやけている場合、推定した年齢が実際の年齢よりも低く(若く)なるおそれがある。これは、画質が高い顔画像の場合、しわ等の細かなテクスチャによる要素を考慮して適切に年齢を推定することが可能である一方、画質が低い顔画像の場合、当該要素が考慮され難くなる結果、年齢が低めに推定される傾向にあるためである。
【0065】
そこで、年齢の推定精度をより向上させるために、補正処理部213は、推定処理部212により推定された年齢の推定結果を補正してもよい。具体的には、補正処理部213は、撮像画像に含まれる推定対象に関する特徴量が所定値以下の場合に、推定処理部212により推定された属性の推定結果を補正する。例えば、補正処理部213は、エッジの評価値ddが所定評価値(閾値)以下の場合に、推定処理部212が推定した年齢クラスを1つ上のクラスに補正する。例えば、顔画像のエッジの評価値ddが前記所定評価値以下の場合であって、推定処理部212が顔画像の年齢を「13~18歳」の年齢クラスに属すると推定した場合、補正処理部213は、顔画像の年齢を「19~29歳」の年齢クラスに属すると推定する。なお、画像処理装置1は、抽出した顔画像とともに評価値ddの情報を推定装置2に入力し、補正処理部213は、画像処理装置1から取得する評価値ddに基づいて補正処理を実行する。補正処理部213は、本発明の補正処理部の一例である。
【0066】
他の実施形態として、推定処理部212は、入力画像(顔画像)に対する年齢の推定結果が適切でない場合、推定エラーと判定してもよい。具体的には、推定処理部212は、顔画像について、算出した各年齢クラスのスコア値(出力値)が所定スコア値以下の場合、又は、算出した各年齢クラスのスコア値のうち最大スコア値(本発明の最大出力値)が所定スコア値(本発明の所定出力値)以下の場合に、当該顔画像に対する年齢の推定をエラーと判定する。また、各年齢クラスのスコア値の分散値がある数値(閾値)より大きい場合には、ピークが存在しないことになる。そこで、他の実施形態として、推定処理部212は、各年齢クラスのスコア値の分散値を算出し、当該分散値が閾値より大きい場合に推定エラーと判定してもよい。
【0067】
なお、推定エラーとなる場合、各年齢クラスのスコア値が一様に低くなり、判定値が中央の年齢クラスになり易い。例えば画質が良好な場合、図9Aのスコア値Aに示すように、各年齢クラスのスコア値が正規的に分布する。一方、画質が良好でない場合、図9Aのスコア値Bに示すように、各年齢クラスのスコア値が一様(均一的)に低くなり、判定値は中央のクラスになり易い(ここでは「4.75」)。
【0068】
そこで、スコア値Bに対応する画像の推定をエラーと判定するために、推定処理部212は、例えば各年齢クラスのスコア値から補正値(例えば「0.3」)を減算する。これにより、図9Bに示すように、スコア値Bは各年齢クラスにおいて「0.00」となるため判定値は算出不能となる。このため、推定処理部212は、スコア値Bに対応する顔画像の年齢の推定をエラーと判定する。また図9Bに示すように、推定処理部212は、スコア値Aに対応する顔画像の年齢を適切に推定することができる。
【0069】
また他の実施形態として、推定処理部212は、各年齢クラスのスコア値が所定値(例えば「0.5」)未満の場合に、当該スコア値をエラーと判定して、「0.00」に変換してもよい。この方法でも、スコア値Aに対応する顔画像の年齢を適切に推定しつつ、スコア値Bに対応する顔画像の年齢の推定をエラーと判定することができる。
【0070】
本実施形態に係る推定システム100によれば、カメラ15が撮像した推定対象の画像の中から画質が良好な画像を抽出して推定装置2に入力することができるため、推定対象の属性を正確に推定することが可能になる。
【0071】
[画像処理]
以下、図10を参照しつつ、画像処理装置1の制御部11によって実行される画像処理の手順の一例について説明する。
【0072】
なお、本発明は、前記画像処理に含まれる一又は複数のステップを実行する画像処理方法の発明として捉えることができる。また、ここで説明する前記画像処理に含まれる一又は複数のステップが適宜省略されてもよい。また、前記画像処理における各ステップは、同様の作用効果を生じる範囲で実行順序が異なってもよい。さらに、ここでは制御部11が前記画像処理における各ステップを実行する場合を例に挙げて説明するが、他の実施形態では、一又は複数のプロセッサーが前記画像処理における各ステップを分散して実行してもよい。
【0073】
画像処理装置1の制御部11は、推定装置2による推定処理の対象となる画像を抽出して推定装置2に出力する処理を実行する。
【0074】
先ずステップS1において、制御部11は、所定枚数の撮像画像を取得したか否かを判定する。前記所定枚数は、例えば「5枚」に設定される。例えば、制御部11がカメラ15から特定人物の5枚の撮像画像を取得すると(S1:Yes)、処理はステップS2に移行する。ステップS1は、本発明の取得ステップの一例である。
【0075】
ステップS2において、制御部11は、取得した各撮像画像から顔画像を生成する。具体的には、制御部11は、各撮像画像において、顔の位置、目、鼻、口などの主要な器官の位置を検出して、所定範囲の画像を切り出して顔画像(図7参照)を生成する。
【0076】
次にステップS3において、制御部11は、生成した各顔画像を評価する。具体的には、制御部11は、各顔画像に対して、元の画像におけるサイズ、目の周辺(図7の矩形枠領域)の特徴量を算出する。
【0077】
例えば図8に示すように、制御部11は、各顔画像に対して、ノイズフィルタFd、ハイパスフィルタFh、ローパスフィルタFlによるフィルタ処理を実行して、各顔画像の評価値Fを以下の式により算出する。ステップS3は、本発明の評価ステップの一例である。
F=(dd×dr×dw×mag/128.0);
【0078】
次にステップS4において、制御部11は、算出した評価値Fが高い上位複数枚の顔画像を抽出する。例えば、制御部11は、5枚の顔画像のうち評価値Fが高い順に上位3枚の顔画像を抽出する。
【0079】
次にステップS5において、制御部11は、抽出した顔画像を推定装置2に出力する。ここでは、制御部11は、抽出した3枚の顔画像を推定装置2に出力する。なお制御部11は、顔画像とともに、評価値Fに関する情報(例えば、エッジの評価値dd、コントラストの評価値dr、画像サイズdwなど)を推定装置2に出力してもよい。画像処理装置1が出力した顔画像は、推定装置2における推定対象の入力画像として用いられる。ステップS5は、本発明の出力ステップの一例である。
【0080】
[推定処理]
以下、図11を参照しつつ、推定装置2の制御部21によって実行される推定処理の手順の一例について説明する。
【0081】
なお、本発明は、前記推定処理に含まれる一又は複数のステップを実行する推定方法の発明として捉えることができる。また、ここで説明する前記推定処理に含まれる一又は複数のステップが適宜省略されてもよい。また、前記推定処理における各ステップは、同様の作用効果を生じる範囲で実行順序が異なってもよい。さらに、ここでは制御部21が前記推定処理における各ステップを実行する場合を例に挙げて説明するが、他の実施形態では、一又は複数のプロセッサーが前記推定処理における各ステップを分散して実行してもよい。
【0082】
推定装置2は、画像処理装置1から入力される人物の顔画像に基づいて、当該人物の年齢を推定する学習済みモデル222を用いて推定プログラム221に従って推定処理を実行する。
【0083】
先ずステップS11において、制御部21は、推定対象の顔画像を取得したか否かを判定する。制御部11が画像処理装置1から前記顔画像を取得すると(S11:Yes)、処理はステップS12に移行する。ここでは、制御部21は、画像処理装置1から特定人物の3枚の顔画像を取得する。
【0084】
ステップS12において、制御部21は、取得した3枚の顔画像のそれぞれについて、学習済みモデル222を用いて、複数の年齢クラスのそれぞれについてスコア値(出力値)を算出する。
【0085】
次にステップS13において、制御部21は、算出した各年齢クラスのスコア値を補正する。例えば、制御部21は、算出した各年齢クラスのスコア値から補正値「0.3」を減算する(図9B参照)。なお、本発明の推定処理では、ステップS13の処理が省略されてもよい。
【0086】
次にステップS14において、制御部21は、補正した各スコア値に基づいて年齢の判定値を算出する。制御部21は、3枚の顔画像のそれぞれについて、年齢の判定値を算出する。
【0087】
次にステップS15において、制御部21は、判定値の算出処理においてエラーとなったか否かを判定する。算出エラーにならない場合(図9Bのスコア値A参照)、処理はステップS16に移行する。一方、算出エラーになった場合(図9Bのスコア値B参照)、処理はステップS151に移行する。なお、制御部21は、顔画像ごとに、算出エラーとなったか否かを判定してもよい。
【0088】
ステップS151では、制御部21は、推定エラーを出力する。例えば、3枚の顔画像について算出エラーとなった場合に、制御部21は、推定エラーを出力する。
【0089】
ステップS16では、制御部21は、判定値に基づいて年齢を推定する。例えば、制御部21は、3枚の顔画像のそれぞれについて年齢を推定し、各推定結果の平均値を、推定対象の人物の推定年齢に決定する。
【0090】
最後にステップS17において、制御部21は、推計結果を出力する。例えば、制御部21は、入力された顔画像に対して推定した推定結果(「13~18歳」又は「16.5歳」)を、操作表示部23に表示させる。また、制御部21は、前記推定結果を、通信網N1を介して他の機器(画像処理装置1など)に送信してもよい。
【0091】
なお、他の実施形態として、画像処理装置1から取得した顔画像のエッジの評価値ddが所定評価値(閾値)以下の場合に、制御部21は、ステップS16において推定した年齢クラスを1つ上のクラスに補正してもよい。例えば、制御部21は、顔画像のエッジの評価値ddが前記所定評価値以下の場合であって、ステップS16において顔画像の年齢を「13~18歳」の年齢クラスに属すると推定した場合、年齢クラスを「19~29歳」に補正する。
【0092】
以上のように、本実施形態に係る画像処理装置1は、入力画像に基づいて推定対象の属性を推定する推定装置2に前記入力画像を入力する装置である。また画像処理装置1は、推定対象の撮像画像を取得し、取得した前記撮像画像の画質を評価し、前記撮像画像の画質が所定の画質を有すると判定した場合に、前記撮像画像を前記入力画像として出力する。
【0093】
また、本実施形態に係る推定装置2は、前記撮像画像を前記入力画像として取得し、取得した前記入力画像について、所定の学習済みモデルを用いて、前記属性の複数の分類のそれぞれについて出力値を算出し、算出した各分類の出力値に基づいて前記属性の判定値を算出し、算出した前記判定値に基づいて前記推定対象の属性を推定する。
【0094】
これにより、推定対象の画像のうち画質が良好な画像により推定対象の属性を推定することができる。よって、推定対象の属性の推定精度を向上させることが可能になる。
【0095】
なお、画像処理装置1及び推定装置2は、一体の機器で構成されてもよい。また前記機器は、デジタルサイネージであってもよいし、店舗端末(POS端末)であってもよい。また、カメラ15は、デジタルサイネージに設置されてもよいし、店舗端末に設置されてもよいし、店舗内に設置されてもよい。
【0096】
上述の実施形態では、顔画像から一つの属性(年齢)を推定する構成を例に挙げたが、本発明は、撮像画像から複数の属性を推定する構成であってもよい。
【符号の説明】
【0097】
1 :画像処理装置
2 :推定装置
100 :推定システム
111 :取得処理部
112 :評価処理部
113 :出力処理部
211 :取得処理部
212 :推定処理部
213 :補正処理部
214 :出力処理部
図1
図2
図3
図4
図5
図6
図7
図8
図9A
図9B
図10
図11