(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-25
(45)【発行日】2024-11-05
(54)【発明の名称】画像処理装置、画像処理方法、及びプログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20241028BHJP
【FI】
G06T7/00 350C
(21)【出願番号】P 2020207376
(22)【出願日】2020-12-15
【審査請求日】2023-12-11
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100090273
【氏名又は名称】國分 孝悦
(72)【発明者】
【氏名】清水 智之
【審査官】伊知地 和之
(56)【参考文献】
【文献】特開2020-140236(JP,A)
【文献】国際公開第2020/194111(WO,A1)
【文献】特開2020-091543(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 18/00 - 18/40
G06N 3/00 - 99/00
G06T 7/00 - 7/90
G06V 10/00 - 20/90
G06V 30/418
G06V 40/16
G06V 40/20
CSDB(日本国特許庁)
(57)【特許請求の範囲】
【請求項1】
画像から対象物の位置を推定するための推定処理を実行する推定手段と、
前記推定手段により推定された前記対象物の位置と、前記対象物の位置に関する正解情報とに基づいて特定される誤差が小さくなるように、前記推定処理に用いられるパラメータを更新する学習手段と、を有し、
前記学習手段は、前記推定手段により推定された前記対象物の位置が前記画像内の所定範囲外であった場合、前記所定範囲内であった場合よりも前記誤差が大きくなるように重みづけを行って前記パラメータを更新することを特徴とする画像処理装置。
【請求項2】
前記所定範囲は前記正解情報において規定されることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記所定範囲を推定する範囲推定手段を有し、
前記学習手段は、前記範囲推定手段により推定された前記所定範囲に基づいて前記重みづけを行うことを特徴とする請求項1に記載の画像処理装置。
【請求項4】
前記所定範囲は人物の顔領域に対応し、
前記対象物は人物の顔器官であることを特徴とする請求項
1乃至3のいずれか1項に記載の画像処理装置。
【請求項5】
前記所定範囲は車両のナンバープレートの領域に対応し、
前記対象物はナンバープレート内の文字列であることを特徴とする請求項1乃至
3のいずれか1項に記載の画像処理装置。
【請求項6】
前記学習手段は、前記所定範囲を推定するための推定処理に用いられるパラメータと、前記対象物の位置を推定するための推定処理に用いられるパラメータとの両方を、前記重みづけが行われた誤差を用いて更新することを特徴とする請求項1乃至5のいずれか1項に記載の画像処理装置。
【請求項7】
前記推定手段は、前記推定処理により前記画像中の対象物の位置を表す尤度マップを生成し、
前記学習手段は、前記正解情報に基づいて正解尤度マップを生成し、前記正解尤度マップと前記尤度マップとの誤差に対し、前記所定範囲外により大きな重みを持たせた重みマップをかけ合わせることで、前記重みづけを行うことを特徴とする請求項1乃至6のいずれか1項に記載の画像処理装置。
【請求項8】
前記学習手段は、前記推定手段により推定された前記対象物の位置と前記所定範囲との距離が第1の距離であった場合、前記第1の距離より短い第2の距離であった場合よりも大きな重みが設定されるように重みづけを行うことを特徴とする請求項
1乃至7のいずれか1項に記載の画像処理装置。
【請求項9】
前記学習手段は、前記重みを、前記学習の進行に応じて大きく設定することを特徴とする請求項
1乃至7のいずれか1項に記載の画像処理装置。
【請求項10】
画像処理装置が実行する画像処理方法であって、
画像から対象物の位置を推定するための推定処理を実行する推定工程と、
前記推定工程により推定された前記対象物の位置と、前記対象物の位置に関する正解情報とに基づいて特定される誤差が小さくなるように、前記推定処理に用いられるパラメータを更新する学習工程と、を有し、
前記学習工程は、前記推定工程により推定された前記対象物の位置が前記画像内の所定範囲外であった場合、前記所定範囲内であった場合よりも前記誤差が大きくなるように重みづけを行って前記パラメータを更新することを特徴とする画像処理方法。
【請求項11】
コンピュータを、請求項1乃至9のいずれか1項に記載の画像処理装置
として動作させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像を処理する技術に関する。
【背景技術】
【0002】
近年、画像中の特定の物体を検出するタスクにおいて、大量の正解データを利用して多層のCNN(Convolutional Neural Network)のパラメータを学習(最適化)することで、高精度な物体検出が可能になっている。また、非特許文献1には、物体検出において誤検出される負例を集めて学習を行うことで、誤検出を抑制する方法が開示されている。
【先行技術文献】
【非特許文献】
【0003】
【文献】Abhinav Shrivastava, Abhinav Gupta, Ross Girshick, "Training Region-Based Object Detectors with Online Hard Example Mining", in CVPR, 2016.
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、負例が正例とよく類似しているような場合は、学習だけで負例を正確に除去することは難しく、誤検出が発生することがある。
【0005】
そこで、本発明は、誤検出の発生を抑制可能にすることを目的とする。
【課題を解決するための手段】
【0006】
本発明の画像処理装置は、画像から対象物の位置を推定するための推定処理を実行する推定手段と、前記推定手段により推定された前記対象物の位置と、前記対象物の位置に関する正解情報とに基づいて特定される誤差が小さくなるように、前記推定処理に用いられるパラメータを更新する学習手段と、を有し、前記学習手段は、前記推定手段により推定された前記対象物の位置が前記画像内の所定範囲外であった場合、前記所定範囲内であった場合よりも前記誤差が大きくなるように重みづけを行って前記パラメータを更新することを特徴とする。
【発明の効果】
【0007】
本発明によれば、誤検出の発生を抑制可能となる。
【図面の簡単な説明】
【0008】
【
図1】画像処理装置のハードウェア構成例を示す図である。
【
図2】第1の実施形態の画像処理装置の機能構成例を示す図である。
【
図3】本実施形態に係る処理のフローチャートである。
【
図4】顔枠正解情報を基に顔器官の損失を算出する処理のフローチャートである。
【
図5】顔器官位置の推定マップ、正解マップ、重みマップの例を示す図である。
【
図6】第2の実施形態の画像処理装置の機能構成例を示す図である。
【
図7】第3の実施形態の画像処理装置の機能構成例を示す図である。
【発明を実施するための形態】
【0009】
以下、本発明に係る実施形態について、図面を参照しながら説明する。
<第1の実施形態>
図1は、第1の実施形態に係る画像処理装置の一適用例であるコンピュータ装置100の概略的なハードウェア構成を示した図である。本実施形態の画像処理装置は、単一のコンピュータ装置によって実現されてもよいし、必要に応じて複数のコンピュータ装置が各機能を分散することで実現されてもよい。画像処理装置が複数のコンピュータ装置によって構成される場合、それら複数のコンピュータ装置は、互いに通信可能なようにLAN(Local Area Network)などで接続されている。
【0010】
図1において、CPU(Central Processing Unit)101は、コンピュータ装置100全体を制御する。またCPU101は、プログラムを実行することにより、後述する本実施形態に係る画像処理等を行う。ROM(Read Only Memory)102は、変更を必要としないプログラムやパラメータ等を格納する。RAM(Random Access Memory)103は、外部装置などから供給されるプログラムやデータを一時記憶する。外部記憶装置104は、コンピュータ装置100に固定された記憶媒体、あるいは着脱可能な記憶媒体に対してデータ等の読み書きを行う。コンピュータ装置100に固定された記憶媒体はハードディスクやメモリカード等、着脱可能な記憶媒体はフレキシブルディスク(FD)、CD(Compact Disk)等の光ディスク、磁気カード、光カード、ICカード、メモリカードなどが挙げられる。本実施形態の場合、外部記憶装置104は、後述するデータ保管部208で保管する大規模な学習データ等を記憶する。入力IF105は、ユーザの操作を受けて数値などのデータを入力するポインティングデバイスやキーボードなどの入力デバイス108とのインタフェースである。出力IF106は、コンピュータ装置100の保持するデータやプログラムの実行結果等を出力するためのモニタなどの出力デバイス109とのインタフェースである。システムバス107は、前述したCPU101~出力IF106の各ユニットを通信可能に接続する。なお、CPUとは異なる1又は複数の専用のハードウェアを有し、CPUによる処理の少なくとも一部を専用のハードウェアが実行してもよい。専用のハードウェアの例としては、GPU(グラフィックスプロセッシングユニット)、ASIC(特定用途向け集積回路)、FPGA(フィールドプログラマブルゲートアレイ)、及びDSP(デジタルシグナルプロセッサ)などがある。
【0011】
図2は、第1の実施形態に係る画像処理装置の機能構成例を示した図である。
データ保管部208は、予め用意された学習データ209を保管している。学習データ209は、少なくとも、推定対象である第1の対象領域および第2の対象領域を含む学習画像のデータと、それら対象領域の位置やサイズ等の正解情報とが紐づけられて管理されているデータである。本実施形態の場合、例えば、第1の対象領域は顔の領域であり、第2の対象領域は顔内の目、鼻、口(口角)といった顔器官の領域であるとする。正解情報は、それら顔および顔器官のそれぞれの位置座標およびサイズ(例えば縦横のピクセル数)等の情報である。例えば、顔の位置座標としては画像中における顔の中心座標や顔を囲う枠(顔枠)の位置座標が保管され、顔のサイズとしては顔枠のサイズの情報が保管されているとする。
【0012】
画像取得部201は、本実施形態に係る学習に使用する画像を、データ保管部208に保管されている学習データ209から取得する。
【0013】
特徴抽出部202は、画像取得部201で取得した画像が入力され、その入力画像から、後述する顔枠推定や器官推定の処理に有効な情報を含む特徴量を抽出する。本実施形態において、特徴抽出部202は、多層のCNN(Convolutional Neural Network)で構成されており、後述する顔枠推定部203および器官推定部205に接続されている。また本実施形態において、顔枠推定部203および器官推定部205は、それぞれCNNを含む多層のニューラルネットワーク(neural network、以下、NNとする)であり、全体として多層のNNを構成している。本実施形態の画像処理装置は、このように構成されていることにより、後述する顔枠推定と器官推定の二つのタスクによる学習結果が、特徴抽出部202までフィードバックされ、特徴抽出部202が両タスクに好適な特徴量を抽出するようになる。
【0014】
顔枠推定部203は、第1の対象領域である顔の範囲を推定する範囲推定処理を行う。本実施形態の場合、顔枠推定部203は、特徴抽出部202で抽出した特徴量を入力とし、少なくとも、画像中の顔の位置・サイズに関する情報を推定する。本実施形態では、上述した通り、顔枠推定部203は多層のCNNを含むNNで構成されているものとする。なお、顔枠推定部203における推定処理は、顔の位置・サイズを推定できるのであれば、どのような方式が用いられてもよい。本実施形態において、顔枠推定部203は、画像中の顔中心に相当する位置で顔の出現尤度が高く、一方、顔中心以外の位置で低くなるような尤度マップを出力する。また顔枠推定部203は、その尤度マップと、当該顔中心の近傍が顔の横幅の数値となるようにしたマップと、同様に顔の縦幅の数値となるようにしたマップとを合わせた、3つのマップを出力するものとする。
【0015】
ここで、画像中に顔が複数出現する場合には、顔中心の尤度マップにも複数の点(周辺に比べて十分に高い値を示すピクセル)が出現するが、当該顔中心位置のピクセルと同位置のピクセルを参照することで、当該顔中心に対応する顔の横・縦の数値を取得できる。このため本実施形態では、前述のような3つのマップの構成をとっている。ただし、これに限るものではなく、例えば、顔が一つであるとの制約がある場合などは、当該顔の横・縦のサイズはマップではなくそれぞれ数値として推定するようにしてもよい。
【0016】
顔枠損失算出部204は、顔枠推定部203が出力した推定結果と、後述する正解データ生成部207で生成した、同画像に対する顔枠の正解データとを比べて、その誤差から学習に必要な損失を算出する。本実施形態の場合、顔位置および顔枠のサイズ(縦、横)の3つのマップを推定結果として出力するため、正解データ生成部207は、学習データ209から当該3つのマップに対応した正解マップを正解データとして生成する。したがって、顔枠損失算出部204は、これら推定結果の各マップと、各々に対応した正解データの各マップとで画素毎の値の誤差を求めて、全体の損失を算出する。なお、画素値毎の誤差は一般的に使われている2乗誤差でよく、また全体の損失は当該全画素の2乗誤差の平均、一般的にはMSE(Mean Square Error)として知られる値を求める等すればよい。
【0017】
器官推定部205は、画像中の第1の対象領域内に現れる第2の対象領域の位置を推定する。本実施形態の場合、器官推定部205は、特徴抽出部202で抽出した特徴量を入力として、顔器官点の位置をいわゆるランドマーク位置として推定する。ここで、検出する顔器官点は、顔枠推定部203で推定対象とした顔の枠内にあるものを対象とする。また本実施形態の場合、器官推定部205は、上述した通り、多層のCNNを含むNNで構成されているものとする。推定方式は限定するものではないが、器官推定部205は、顔枠推定部203と同様の方式によって、各器官点位置の尤度マップをそれぞれ出力するものとする。例えば、左右の目の中心、鼻、口の両端(口角)の5か所の器官点を推定する場合、器官推定部205は、それら5か所の器官点のそれぞれの位置を推定した5つの尤度マップを出力する。
【0018】
器官損失算出部206は、顔枠損失算出部204と同様にして、器官推定部205の推定結果と正解データ生成部207で生成された器官位置に関する正解データとを比べた誤差から器官損失を算出する。またこの時、器官損失算出部206は、正解データ生成部207を介して、学習データ209の顔枠位置・サイズの正解情報をも取得する。器官損失算出部206は、こうして得た顔枠位置・サイズの正解情報を参照し、当該顔枠の外側に出現する器官点の推定結果の誤差が大きくなるように補正する。本実施形態のようなマップ出力であれば、器官損失算出部206は、算出した誤差値に、正解の顔枠外である場合に誤差に対する重みを大きくする(重みを与える)などして、顔枠外の誤差値が大きくなるようにする。なお、誤差の算出方法は、顔枠損失算出部204で述べたのと同様にMSE等で構わない。また、マップを用いた場合の処理の流れについては、後ほど
図4と
図5を参照して説明する。
【0019】
正解データ生成部207は、画像取得部201が取得した画像に紐づく顔枠・顔器官に関する、位置座標やサイズといった正解情報を、データ保管部208の学習データ209から取得し、各推定部の推定結果と比較して誤差を算出可能な正解データを生成する。前述した通り、顔枠推定部203および器官推定部205は、それぞれ対応した各推定結果としてマップを出力するため、正解データ生成部207は、取得した正解情報から当該各出力に対応する正解データとしての正解尤度マップを生成する。本実施形態では、前述した通り、顔枠推定部203は、顔中心位置の尤度マップと、顔中心位置の近傍が顔枠の縦、横それぞれのサイズの数値となるようにした、3つのマップを推定する。サイズを示すマップとは、例えば、顔の中心位置から所定の範囲内(例えば、2ピクセル)にある座標に顔の縦または横のサイズを示す数値を有し、それ以外の顔枠がない座標に対しては例えば0という画素値を与えたマップである。所定の範囲はターゲットの重なり具合にも依る。中心位置に対してサイズを示す数値を示すマップにしてもよいが、ターゲットの中心位置が多少ずれても推定できるように近傍に設定する。このとき、正解データ生成部207は、顔中心位置の尤度マップの正解データとしては、取得した学習データ209から顔中心の位置座標を参照する。そして、正解データ生成部207は、当該位置座標に近いほど1に近く、それ以外が0であるような、推定マップと同サイズの尤度マップを正解尤度マップとして生成する。また正解データ生成部207は、顔枠の縦・横のサイズについても、顔中心の位置座標を中心にあらかじめ定めた範囲が当該サイズの値となるようにしたマップをそれぞれ正解マップとして生成する。器官推定部205の各器官位置の推定についても上述した顔中心位置の推定と同様であり、正解データ生成部207は、学習データ209から各器官の座標値を参照して、各器官の正解の尤度マップをそれぞれ生成する。
【0020】
学習部210は、顔枠損失算出部204と器官損失算出部206とでそれぞれ算出された損失が小さくなる(本実施形態の例のようにMSE Lossを利用する場合は0に近づける)ように、特徴抽出部202、顔枠推定部203、および器官推定部205の各NNのパラメータをそれぞれ更新する。ここで、全体の損失を下げるようにパラメータを更新できるのであれば、パラメータの最適化の方法は特に限定するものではない。例えばSGD(Stochastic Gradient Descent)などの汎用的な最適化処理によるパラメータの更新が行われればよい。
【0021】
前述したように、本実施形態の画像処理装置では、器官損失算出部206および学習部210によって、学習画像と正解情報とを用い、推定処理による顔器官点の位置の推定結果と正解情報との誤差が少なくなるようにする学習処理が行われる。また本実施形態では、器官損失算出部206が、学習画像から顔枠の範囲を取得し、顔器官点の位置の推定処理による推定結果と、顔枠の範囲とに基づいて、正解情報との誤差に対する重みを設定している。
【0022】
次に、本実施形態の画像処理装置における処理の手順について、
図3のフローチャートを参照して説明する。なお、以降の各フローチャートにおいて、参照符号の「S」は処理ステップを表しているとする。
まずS301において、画像取得部201は、データ保管部208の学習データ209から学習に用いる画像データを取得する。本実施形態では、一般的なNNの学習と同様、大規模な学習データ209から未選択の複数の画像データをランダムにサンプリングしながら学習が行われるとする。こうして学習データ209の全ての画像データを取得した後は、再度すべての学習データの中からランダムに画像データをサンプリングする処理が繰り返されるものとする。
【0023】
次にS302において、特徴抽出部202は、画像データから特徴を抽出する。つまり、S301で取得した画像データを入力として、前述した構成済みの多層CNNの出力を得る。当該出力は、全体の学習が十分に進むと、画像中の顔枠推定、器官推定それぞれの推定に好適な特徴情報を含むようになる。
【0024】
次に303において、顔枠推定部203は、特徴抽出部202によって抽出された特徴を入力として、顔の位置・サイズに関する推定結果を出力する。本実施形態では、先に述べた通り、顔枠推定部203は、顔中心の尤度マップと、顔の横幅、縦幅の各サイズの値のマップとによる3つのマップを出力する。
【0025】
さらにS304において、器官推定部205は、特徴抽出部202によって抽出された特徴を入力として、顔器官位置に関する推定結果を出力する。本実施形態では、先に述べた通り、器官推定部205は、5つの顔器官の位置のそれぞれの尤度マップを出力する。
【0026】
次にS305において、顔枠損失算出部204は、顔枠推定部203の推定結果と、正解データ生成部207が学習データ209の正解情報を基に生成した正解データとを取得して、両者の誤差を算出する。なお、ここでの正解情報は、前述したように、顔枠に関する情報であり、顔の中心座標および顔の横・縦のサイズを示す情報である。また、正解データは、顔枠損失算出部204で誤差を算出するため、本実施形態ではS303での推定結果に対応する3つの正解マップである。
【0027】
次にS306において、器官損失算出部206は、器官推定部205の推定結果と、正解データ生成部207が学習データ209の正解情報を基に生成した正解データとを取得して、両者の誤差を算出する。なお、ここでの正解情報は、前述したように、顔器官の位置座標の情報である。また、正解データは、器官損失算出部206で誤差を算出するため、本実施形態ではS304での推定結果に対応する5つの正解マップである。
【0028】
次にS307において、器官損失算出部206は、正解データ生成部207を介して、学習データ209の顔枠位置・サイズの正解情報をも取得し、S306の誤差の値の重み大きくする処理を行う。なお、当該処理の詳細については、
図4に示すフローチャートを用いて後ほど説明する。
【0029】
次にS308において、学習部210は、S307までの処理で得た誤差から得られた損失が下がるように、特徴抽出部202、顔枠推定部203、器官推定部205の各NNのパラメータを更新する。
次にS309において、学習部210は、学習データ209のうち、未処理のデータがあるか否かを判定する。そして学習部210は、未処理のデータがある場合にはS301に処理を戻して、当該未処理のデータを取得して上記の処理を繰り返し、一方、未処理のデータがない場合にはS310に処理を移行する。
【0030】
S310に移行すると、学習部210は、学習データ209の全データを学習した回数が、予め設定された回数を超えていないか判定する。そして学習部210は、予め設定された回数を超えていない場合にはS311に処理を移行させ、一方、設定された回数を超えて学習を実施した場合には本フローの処理を終了する。なお、学習の終了判定は回数でなくてもよい。例えば、学習データを含まないvalidationのデータセットを用意して、その精度が更新されなくなった場合に学習を終了してもよい。あるいは処理対象とする映像の期間を決めて継続学習し、所定期間の学習が終了した段階において推定精度がピーク値のモデルを採用するようにしてもよい。
その後、S311において、画像処理装置は、学習データ209の全データが未取得である状態にリセットしてS301に処理を戻し、前述した処理を繰り返す。
【0031】
以下、
図4のフローチャートを参照して、S307における処理について説明する。なお、
図4のフローチャートの処理の開始時には、
図3におけるS306までの処理が実施済みであるものとする。
まずS401において、器官損失算出部206は、正解データ生成部207を介して、学習データ209の顔枠位置・サイズの正解情報を取得する。
さらにS402において、器官損失算出部206は、推定された顔の位置とサイズに基づいて、所定の範囲に対して重み付けを行う。すなわち、顔枠外の誤差の重みを設定する。
【0032】
次にS403において、器官損失算出部206は、器官推定部205が推定した器官点位置が、S401で取得した顔枠の範囲外であるかを判定する。そして、器官損失算出部206は、顔枠が範囲外であった場合にはS404へ処理を移行し、一方、顔枠の範囲内である場合には、既にS306で算出してある誤差をそのまま利用することとし、S405へ移行する。
【0033】
S404に移行すると、器官損失算出部206は、顔枠の外にある器官点の推定結果に対して、正解との誤差値がさらに大きくなるような処理を行う。本実施形態では、器官損失算出部206は、予め設定した重みをかけ合わせる(乗算する)。これにより、特徴抽出部202の出力に含まれる顔枠内か外かを区別する特徴を利用することができ、顔枠外に顔器官に類似した画像があったとしても、枠の内か外かの情報から検出尤度を切り替えるように学習が進み、全体の損失が下がるようになる。なお、本実施形態では顔器官位置の推定結果として尤度マップを出力するようにしたが、このような場合の処理については、後ほど
図5を用いて説明する。
【0034】
S405へ移行すると、器官損失算出部206は、ここまでで算出した誤差と設定した誤差の重みとから、損失を算出する。本実施形態の場合、器官損失算出部206は、上述したように全画素毎の2乗誤差の平均を損失として算出する。この処理は、S308における顔器官に関する損失の計算部分にあたる。
【0035】
以下、
図5(a)~
図5(c)を用いて、S401からS404の一連の処理を説明する。
図5(a)は、器官推定部205による推定結果のマップの例を示した図である。実際には各器官点分のマップが出力されるが、この例では例えば左目中心の推定結果のマップであるものとする。図中の黒い部分は値が0であり、尤度推定値の値が高いほど白い色になっている。ここでは、検出対象の顔が一つの場合を考える。
図5(a)の例では、尤度推定値が高い部分が2か所あるが、このうち左上のものは顔枠のサイズの外に現れてしまった誤検出の部分であるとする。
【0036】
図5(b)は、正解データ生成部207が学習データ209の正解情報から生成した正解データである、
図5(a)に対する正解マップの例を示した図である。一般的な学習では、推定したマップと正解マップとが一致するような推定ができるようになる(つまり誤差による損失が0になる)ことを目指す。
【0037】
ここで、器官損失算出部206は、正解データ生成部207を介して取得した顔枠位置・サイズの正解情報を参照し、器官推定の誤差に重みを与える同サイズ(画素数)のマップをさらに生成する。
図5(c)はその例を示す図であり、矩形部分501が、この例における画像中の顔位置・サイズの範囲である。本実施形態の場合、器官損失算出部206は、
図5(a)と
図5(b)の画素毎の2乗誤差に、同画素位置の
図5(c)の重みをかけ合わせたものを損失として算出する。この時、矩形部分501の外側は、顔枠の外に器官推定をした場合に誤差が大きくなるように、予め決めてある重みの値が設定される。重みの値は、同じ画素位置の誤差にかけ合わせる値であり、顔枠の外では1よりも大きい値が設定される。一方、矩形部分501の内側は顔枠内であることから、
図5(a)と
図5(b)の2乗誤差にかけても補正が働かないように重みの値として1を設定しておく。
【0038】
なお、設定しておく重みの値は、学習による検出精度の評価の推移を見ながら、より良い精度が出るような値を決めればよい。また、重みの値は固定値である必要はなく、学習の過程で切り替えてもよい。例えば、顔枠の推定が安定して行えるようになれば、特徴抽出部202に顔枠に関する特徴も安定して現れるようになるため、顔枠推定部203の学習の進行に応じて、つまり学習が十分に進んでから、徐々に顔枠外の誤差の重みを大きくするなどしてもよい。また、枠外の重みを同一にする必要もなく、例えば、枠からの距離に応じて重みを大きくするようにしても構わない。
【0039】
例えば、顔枠の内外で一律の損失を設定して学習を行うと、顔枠から外れた誤検出を抑制することは困難であるが、本実施形態では、顔枠外の損失に大きく重み付けて学習することにより、顔枠から外れた誤検出を抑制するようにしている。すなわち本実施形態によれば、例えば、顔枠外に現れるテクスチャが検出対象に類似した誤検出が抑制できるようになる。
【0040】
また前述の説明では、器官推定部205の出力が入力画像に対応した尤度マップであり、重み付きの2乗誤差を算出する方法として、
図5(c)のようなマップを使う例を述べたが、枠の範囲外の推定値の誤差が大きくなるようにできればその方法は問わない。
【0041】
以上説明したように、本実施形態によれば、顔器官の誤検出を抑制できるようになることで、顔の器官検出を利用した後段のタスクの精度向上が期待できる。例えば、顔の器官位置で正規化した画像を利用するような顔認証の精度が向上する特有の効果が期待できる。また、本実施形態によれば、顔器官の誤検出を学習の過程で除去できるため、顔枠外の器官点を除去するような後処理が不要になる。これにより、器官検出から後段の顔認証までend-to-endのNNを構成することができるようになり、器官点の誤検出抑制と認証に好適な検出器の学習を両立できるようになる効果も期待できる。
【0042】
前述したように、本実施形態では、第1の対象領域としての物体の範囲を取得して、検出した第2の対象領域が当該物体範囲の内か否かによって誤差の重み(つまり学習の重み)を切り替えるようにしている。これにより、本実施形態によれば、第1の対象領域の範囲外に出現する第2の対象領域(ランドマーク)の位置の誤検出を強く抑制することができる。したがって、本実施形態によれば、その検出結果を利用する後続処理を精度よく行うことができる。なお、後続処理とは、例えば当該検出結果を利用したクラス分類や、照合処理、追尾処理等であり、検出結果を利用するいずれの処理であっても構わない。
【0043】
<第2の実施形態>
第1の実施形態では、顔器官推定と顔枠推定とのマルチタスクで学習を実施する例を述べた。このようにマルチタスクの構成にすることで、顔枠推定に必要な特徴情報を特徴抽出部202の出力として高精度に獲得することも同時に学習するため、器官推定部205が当該情報を使うことで安定して枠外の誤検出を抑制するように学習を進めることができる。
一方、顔枠推定のタスクを行わない場合でも、正解情報による顔枠サイズの範囲内か否かで誤差の重みを切り替えることで、学習が十分に進めば、顔枠サイズに関する情報を特徴抽出部202で抽出すれば全体の損失を下げるように学習が進むと期待できる。
【0044】
図6は、第2の実施形態の画像処理装置として、顔枠の推定および顔枠に関する学習を行わない構成、つまり前述した顔枠推定部203と顔枠損失算出部204を含まない構成の例を示した図である。なお、
図6において、画像取得部201から学習データ209までは前述同様であるため、それらの説明は省略する。第2の実施形態の画像処理装置は、
図6のようなシンプルな構成で実現でき、学習・推論時の処理コストを抑制することができる。
【0045】
<第3の実施形態>
第1の実施形態では、顔枠サイズの正解情報を取得して、当該情報をもとに、誤差の重みを決めるようにしたが、顔枠推定部203が出力した顔の位置・サイズの推定結果から当該重みを決めるようにしてもよい。
図7は、顔枠推定部203が出力した顔の位置・サイズの推定結果から当該重みを決める第3の実施形態の画像処理装置の構成例を示した図である。なお
図7における各構成要素における処理は基本的には前述した
図2の各構成要素における処理と同様であるため、それらの説明は省略する。
【0046】
第3の実施形態の場合、
図7に示すように、顔枠推定部203の出力を器官損失算出部206が利用する構成となされ、器官損失算出部206は、顔枠の正解情報を受け取らないようになされている。こうすることで、器官推定の学習データに顔枠の正解情報が必要なくなるため、別々のデータセットを利用することができる。正解情報が付与された大量の学習データを用意することは、機械学習においては、非常に重要な課題であり、データセットの選択肢が広がることの意義は大きい。ただし、推定結果を利用するため、顔枠がある程度学習できていないうちは、器官推定の学習が収束しない可能性がある。よって、第3の実施形態の場合、はじめは顔枠推定部203と器官推定部205をそれぞれ別々に学習した上で、顔枠推定部203の精度が一定水準を超えた後に、顔枠推定結果を利用した学習を行うなどしてもよい。
【0047】
<第4の実施形態>
第1の実施形態では、学習時に重みマップ(
図5(c))を生成したが、学習データ209には顔枠に関する正解情報が既に付与されているため、第4の実施形態では、予め
図5(c)のような重みマップを作っておく。これにより、第4の実施形態によれば、学習時の処理コストが抑制でき、効率的に学習を行うことができるようになる。
【0048】
<第5の実施形態>
第1の実施形態では、顔の範囲を、中心位置と縦横サイズで決まる矩形の顔枠として取得する場合について述べたが、これに限るものではない。顔器官を含む領域を取得できるのであれば、枠である必要はない。第5の実施形態では、例えば、正解情報として顔の輪郭を取得する。またこのとき、誤差の重みのマップを作るのであれば、当該輪郭矩形内部に重みをもたせる等する。なお、輪郭を使う場合は、顔枠推定のタスクとの同時学習ではなく、輪郭の情報を利用する、輪郭推定や顔領域のセグメンテーションなどのタスクとの同時学習等を行うようにすればよい。
【0049】
<第6の実施形態>
第1の実施形態では、画像中の第1の対象領域は人物の顔の領域であり、第2の対象領域として推定するランドマークは当該顔に含まれる器官である例を述べたが、これに限るものではない。少なくともある方向から撮影した場合に、画像中で第1の対象領域の範囲内に常に出現するようなものであれば、特に限定するものではない。第6の実施形態は、第1の対象領域が例えば車やナンバープレートである場合を挙げる。
例えば、駐車場の入口ゲートに設置された固定カメラで、入庫する車を正面から撮影した場合、その撮影画像は、正面からみた車体の領域とその内部にナンバープレートがあるような画像となる。この場合、第1の対象領域は車体であり、第2の対象領域として推定するランドマークはナンバープレートにあたる。あるいは、同じ画像であっても、ナンバープレートに着目すれば、第1の対象領域はナンバープレートであり、ナンバープレートに書かれた数字や文字が第2の対象領域(ランドマーク)であるとみなせる。第6の実施形態の場合、学習データとして、これらの画像および正解情報を取得できれば、前述した第1の実施形態の構成を適用可能である。
このように本発明は、画像中の第1の対象領域内に第2の対象領域であるランドマークが出現するはずであろう場合において、広く適用することができる。
【0050】
<その他の実施形態>
本発明に係る制御処理における1以上の機能を実現するプログラムは、ネットワーク又は記憶媒体を介してシステム又は装置に供給可能であり、そのシステム又は装置のコンピュータの1つ以上のプロセッサにより読み出され実行されることで実現可能である。
前述の各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【0051】
101:CPU、102:ROM、103:RAM、104:外部記憶装置、201:画像取得部、202:特徴抽出部、203:顔枠推定部、204:顔枠損失算出部、205:器官推定部、206:器官損失算出部、207:正解データ生成部、208:データ保管部、209:学習データ、210:学習部