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

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

▶ キヤノン株式会社の特許一覧

特開2022-188554情報処理装置、学習方法、プログラム、記憶媒体、および検出装置
<>
  • 特開-情報処理装置、学習方法、プログラム、記憶媒体、および検出装置 図1
  • 特開-情報処理装置、学習方法、プログラム、記憶媒体、および検出装置 図2
  • 特開-情報処理装置、学習方法、プログラム、記憶媒体、および検出装置 図3
  • 特開-情報処理装置、学習方法、プログラム、記憶媒体、および検出装置 図4
  • 特開-情報処理装置、学習方法、プログラム、記憶媒体、および検出装置 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022188554
(43)【公開日】2022-12-21
(54)【発明の名称】情報処理装置、学習方法、プログラム、記憶媒体、および検出装置
(51)【国際特許分類】
   G06T 7/00 20170101AFI20221214BHJP
【FI】
G06T7/00 350C
G06T7/00 660A
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2021096684
(22)【出願日】2021-06-09
(71)【出願人】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100114775
【弁理士】
【氏名又は名称】高岡 亮一
(74)【代理人】
【識別番号】100121511
【弁理士】
【氏名又は名称】小田 直
(74)【代理人】
【識別番号】100208580
【弁理士】
【氏名又は名称】三好 玲奈
(72)【発明者】
【氏名】空門 日出来
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096CA02
5L096DA01
5L096DA02
5L096EA39
5L096FA39
5L096FA69
5L096GA51
5L096HA11
5L096KA04
(57)【要約】      (修正有)
【課題】画像からキーポイントを検出する際の位置誤差の改善を効率的に行う情報処理装置、検出装置、学習方法、プログラム及び記憶媒体を提供する。
【解決手段】画像に含まれる被写体のキーポイントの検出に使用する学習モデルの学習を行う情報処理装置1であって、学習モデルを用いてキーポイントの推定に使用する推定スコアマップを画像から求めるスコアマップ推定部と、推定スコアマップと正解スコアマップとのスコアマップ値の差である損失を、部分領域毎に計算する部分領域損失算出部と、正解スコアマップ及び推定スコアマップの少なくとも一方に基づいて、寄与領域を求める寄与領域推定部と、寄与領域に基づき部分領域毎の重みを設定する重み設定部と、部分領域毎の重みと部分領域毎の損失に基づき、推定スコアマップの損失を求めるスコアマップ損失算出部と、推定スコアマップの損失に基づき学習モデルを更新する更新部と、を備える。
【選択図】図1
【特許請求の範囲】
【請求項1】
画像に含まれる被写体のキーポイントの検出に使用する学習モデルの学習を行う情報処理装置であって、
前記学習モデルを用いて前記キーポイントの推定に使用する推定スコアマップを前記画像から求めるスコアマップ推定手段と、
前記推定スコアマップの、正解スコアマップとのスコアマップ値の差である損失を、部分領域ごとに計算する第1損失算出手段と、
前記正解スコアマップおよび前記推定スコアマップの少なくとも一方に基づいて、寄与領域を求める寄与領域推定手段と、
前記寄与領域に基づき前記部分領域ごとの重みを設定する重み設定手段と、
前記部分領域ごとの重みと前記部分領域ごとの損失に基づき前記推定スコアマップの損失を求める第2損失算出手段と、
前記推定スコアマップの損失に基づき前記学習モデルを更新する更新手段と、を備えることを特徴とする情報処理装置。
【請求項2】
前記寄与領域推定手段は、前記スコアマップ値のピーク点を含む領域を寄与領域とすることを特徴とする請求項1記載の情報処理装置。
【請求項3】
前記寄与領域推定手段は、前記寄与領域として、前記ピーク点を含む領域から前記スコアマップ値の大きい順に所定の数の領域を選択することを特徴とする請求項2記載の情報処理装置。
【請求項4】
前記寄与領域推定手段は、所定の閾値以上の前記スコアマップ値を有する領域を寄与領域とすることを特徴とする請求項1から3のいずれか一項記載の情報処理装置
【請求項5】
前記重み設定手段は、前記寄与領域以外の部分領域の重みを、前記寄与領域よりも小さく設定することを特徴とする請求項1から4のいずれか一項に記載の情報処理装置。
【請求項6】
前記重み設定手段は、前記寄与領域以外の部分領域の重みを前記推定スコアマップの前記スコアマップ値に基づき設定することを特徴とする請求項1から5のいずれか一項に記載の情報処理装置。
【請求項7】
前記重み設定手段は、前記部分領域の重みの総和が1になるように正規化を行うことを特徴とする請求項1から6のいずれか一項に記載の情報処理装置。
【請求項8】
前記学習モデルは、ニューラルネットワークを含むことを特徴とする請求項1から7のいずれか一項に記載の情報処理装置。
【請求項9】
前記更新手段は、前記推定スコアマップの損失が小さくなるように、前記学習モデルを更新することを特徴とする請求項1から8のいずれか一項に記載の情報処理装置。
【請求項10】
前記キーポイントは人体の所定の部位であることを特徴とする請求項1から9のいずれか一項に記載の情報処理装置。
【請求項11】
画像に含まれる被写体のキーポイントの検出に使用する学習モデルの学習方法であって、
前記学習モデルを用いて前記キーポイントの推定に使用する推定スコアマップを前記画像から求め、
前記推定スコアマップの、正解スコアマップとのスコアマップ値の差である損失を、部分領域ごとに計算し、
前記正解スコアマップおよび前記推定スコアマップの少なくとも一方に基づいて、寄与領域を求め、
前記寄与領域に基づき前記部分領域ごとの重みを設定し、
前記部分領域ごとの重みと前記部分領域ごとの損失に基づき前記推定スコアマップの損失を求め、
前記推定スコアマップの損失に基づき前記学習モデルを更新することを特徴とする学習方法。
【請求項12】
画像に含まれる被写体のキーポイントの検出に使用する学習モデルの学習方法をコンピュータに実行させるプログラムであって、
前記学習方法は、
前記学習モデルを用いて前記キーポイントの推定に使用する推定スコアマップを前記画像から求め、
前記推定スコアマップの、正解スコアマップとのスコアマップ値の差である損失を、部分領域ごとに計算し、
前記正解スコアマップおよび前記推定スコアマップの少なくとも一方に基づいて、寄与領域を求め、
前記寄与領域に基づき前記部分領域ごとの重みを設定し、
前記部分領域ごとの重みと前記部分領域ごとの損失に基づき前記推定スコアマップの損失を求め、
前記推定スコアマップの損失に基づき前記学習モデルを更新することを特徴とするプログラム。
【請求項13】
請求項12に記載のプログラムを記憶した、コンピュータで読み取り可能な記憶媒体。
【請求項14】
画像に含まれる被写体のキーポイントを検出する検出装置であって、
学習モデルを用いて前記キーポイントの推定に使用する推定スコアマップを前記画像から求めるスコアマップ推定手段と、
前記推定スコアマップからピーク点を検出して、前記キーポイントを検出する検出手段と、を備え、
前記学習モデルは、
前記学習モデルを用いて前記キーポイントの推定に使用する推定スコアマップを前記画像から求め、
前記推定スコアマップの、正解スコアマップとのスコアマップ値の差である損失を、部分領域ごとに計算し、
前記正解スコアマップおよび前記推定スコアマップの少なくとも一方に基づいて、寄与領域を求め、
前記寄与領域に基づき前記部分領域ごとの重みを設定し、
前記部分領域ごとの重みと前記部分領域ごとの損失に基づき前記推定スコアマップの損失を求め、
前記推定スコアマップの損失に基づき更新された前記学習モデルであることを特徴とする検出装置。


【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像から物体の位置を検出する技術に関するものである。
【背景技術】
【0002】
従来、目などの顔の器官点を検出する方法として器官検出技術がある(特許文献1)。特許文献1では、入力された顔画像をもとに、器官点が存在する位置で高い値をとるスコアマップを推定して、スコアマップのピークを検出することにより器官点の座標を決定する。
【0003】
入力顔画像からスコアマップを推定する方法は、入力画像と正解のスコアマップを用意してニューラルネットワーク等の機械学習技術を用いて獲得できる。例えば、入力画像をニューラルネットワークのフォワード処理によりスコアマップを求め、正解のスコアマップと比較し、双方の誤差が小さくなるように誤差逆伝搬処理によりニューラルネットワークを更新する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009-223459号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、入力画像から推定したスコアマップと正解のスコアマップの誤差が小さくなるように器官検出のスコアマップ推定方法の学習を行っても、器官座標の位置誤差が改善しないことがある。なぜなら、器官検出では入力画像から推定したスコアマップのピークを検出して器官座標を求めている。一方で、スコアマップの学習では全体の誤差を小さくするように学習が行われるため、ピーク以外の領域の誤差も小さくなるように学習する。つまり、ピーク以外の領域の誤差だけを小さくしても、スコアマップ全体の学習は進む。しかし、ピーク検出で求まる器官座標の位置誤差は変わらないことが起こる。このように、ピーク検出結果に影響を与えない領域でスコアマップの誤差を小さくしても、器官座標の位置誤差は改善しないという課題があった。
【0006】
本発明は、画像からキーポイントを検出する際の位置誤差の改善を効率的に行うことを例示的目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明は、画像に含まれる被写体のキーポイントの検出に使用する学習モデルの学習を行う情報処理装置であって、前記学習モデルを用いて前記キーポイントの推定に使用する推定スコアマップを前記画像から求めるスコアマップ推定手段と、前記推定スコアマップの、正解スコアマップとのスコアマップ値の差である損失を、部分領域ごとに計算する第1損失算出手段と、前記正解スコアマップおよび前記推定スコアマップの少なくとも一方に基づいて、寄与領域を求める寄与領域推定手段と、前記寄与領域に基づき前記部分領域ごとの重みを設定する重み設定手段と、前記部分領域ごとの重みと前記部分領域ごとの損失に基づき前記推定スコアマップの損失を求める第2損失算出手段と、前記推定スコアマップの損失に基づき前記学習モデルを更新する更新手段と、を備えることを特徴とする。
【発明の効果】
【0008】
本発明によれば、画像からキーポイントを検出する際の位置誤差の改善を効率的に行うことができる。
【図面の簡単な説明】
【0009】
図1】第1実施形態に係る装置を説明する図である。
図2】第1実施形態係る処理を示すフローチャートである。
図3】γを変えたときのスコアマップ値と重みの関係を示す図である。
図4】第1実施形態の寄与領域推定処理を説明する図である。
図5】第2実施形態の寄与領域推定処理を説明する図である。
【発明を実施するための形態】
【0010】
以下、図を用いて、本発明の実施形態について説明する。その際、図において同一の機能を有するものは同一の数字を付け、その繰り返しの説明は省略する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は、図示された構成に限定されるものではない。
【0011】
(第1実施形態)
図1は、第1実施形態に係る装置を説明する図である。まず、第1実施形態のコンピュータ装置(情報処理装置)の構成について、図1(A)を参照して説明する。図1(A)は、第1実施形態に係る情報処理装置のハードウェア構成の一例を示すブロック図である。
【0012】
CPU101aはコンピュータ装置100a全体を制御するCentral Processing Unitである。ROM102aは変更を必要としないプログラムやパラメータを格納するRead Only Memoryである。RAM103aは外部装置などから供給されるコンピュータプログラムやデータを一時記憶するRandom Access Memoryである。外部記憶装置104aはコンピュータ装置100aに固定して設置されたハードディスクやメモリカードなどの記憶装置である。なお、外部記憶装置104aは、コンピュータ装置100aから着脱可能なフレキシブルディスク(FD)やCompact Disk(CD)等の光ディスク、磁気や光カード、ICカード、メモリカードなどを含んでもよい。入力デバイスインターフェイス105aはユーザの操作を受け、データを入力するポインティングデバイスやキーボードなどの入力デバイス109aとのインターフェイスである。出力デバイスインターフェイス106aはコンピュータ装置100aの保持するデータや供給されたデータを表示するためのモニタ110aとのインターフェイスである。通信インターフェイス107aはインターネットなどのネットワーク回線111aに接続するための通信インターフェイスである。システムバス108aは101a~107aの各ユニットを通信可能に接続する伝送路である。後述する各処理は、ROM102a等のコンピュータ読み取り可能な記憶媒体に格納されたコンピュータプログラムをCPU101aが実行することにより処理として機能する。
【0013】
[器官検出装置の構成図]
第1実施形態の器官検出装置1の構成について、図1(B)を用いて説明する。図1(B)は、第1実施形態に係る器官検出装置1の機能構成の一例を示すブロック図である。器官検出装置1は、汎用又は専用の情報処理装置(例えば、上述のコンピュータ装置100a)に、器官検出に関するコンピュータプログラムを組み込むことによって構成されうる。器官検出装置1は、学習モデルを用いて、画像に含まれる被写体から(ここでは人体)所定の部位を検出する装置である。本実施形態の器官検出装置1は、一例として、左目を検出できるように学習を行う。器官検出装置1は学習部100bと推論部120bとを備える。なお、ここでは、学習部100bと推論部120bを1つの器官検出装置1として説明するが、学習部100bと推論部120bは別体の情報処理装置に組み込まれてもよい。すなわち、学習部100bと推論部120bはそれぞれ独立した装置であってもよい。
【0014】
学習部100bは画像と正解スコアマップをもとに、画像からスコアマップを推定する方法を学習する。推論部120bは、学習部100bで獲得(取得)したスコアマップ推定方法を用いて、画像から器官点を検出する。なおここで、器官点とは、検出対象である器官が位置する点であり、本明細書においてキーポイントとは検出対象が位置する点である。
【0015】
まずは学習部100bの構成要素について説明する。画像保持部101bは、器官検出の学習に用いる画像を保持する。具体的には、外部記憶装置104aに保持する。すべての画像には少なくとも1つの顔が含まれているか、まったく顔が含まれていない画像である。すべての画像の縦横サイズは予め所定のサイズにリサイズされている。
【0016】
正解スコアマップ保持部102bは、画像保持部101bで保持している画像に対応する正解スコアマップを保持する。ここで、正解スコアマップとは、検出する器官の正しい位置情報を含むスコアマップであり、教師データである。
【0017】
スコアマップの各ピクセル(部分領域)は0~1の値をとる。この値をスコアマップ値という。0のとき器官点は存在しないことを示す。スコアマップは画像保持部101bが保持している画像と同じ縦横サイズでありうる。本実施形態では左目の1つを検出するため、画像保持部101bが保持している画像の左目に対応する位置でスコアマップ値がより高い値をとる。スコアマップでは、左目の位置だけでなくその周辺領域でも0より大きい値をとるようにしてもよい。例えば、左目を中心としてガウス分布に従う値をとるようにしてもよい。もし、顔が含まれない画像の場合は、スコアマップ各部分領域はゼロの値をとる。
【0018】
なお、スコアマップは画像保持部101bが保持している画像と異なるサイズであってもよい。その場合は、画像上の器官点の座標を、スコアマップ上の器官点の座標に変換して、その位置のスコアが大きいスコアマップになる。
【0019】
スコアマップ推定部103bは、学習モデルを用いて画像を処理してスコアマップを推定する。本明細書において、スコアマップ推定部103bによって生成されたスコアマップを推定スコアマップという。具体的には、スコアマップ推定部103bは、ニューラルネットワークの一種であるConvolutional Neural Networks(CNN)を用いて処理を行う。CNNとは、入力画像に対して畳み込み処理と非線形処理とプーリング処理とから構成される処理を何度も繰り返し行うことによって、入力画像から抽象化された情報を抽出するというものである。このとき、畳み込み処理と非線形処理とプーリング処理とから構成される処理単位を階層と呼ぶことが多い。この時に使用される非線形処理としては、いくつもの公知な手法が知られているが、例えばRectified Linear Unit(ReLU)と呼ばれる手法を使ってもよい。また、プーリング処理も、いくつもの公知な手法が知られているが、例えば最大値プーリング(Max pooling)と呼ばれる手法を使ってもよい。本実施形態では、CNNにより入力画像から0~1のスコアマップ値を有するスコアマップを生成するため、最終層でSigmoid関数により非線形処理する。
【0020】
ネットワーク保持部104bでは、スコアマップ推定部103bで使用するCNNのネットワーク構造や重みパラメータを保持する。具体的には、外部記憶装置104aに保持する。
【0021】
検出部105bでは、スコアマップからスコアマップ値のピーク点を検出する。スコアマップ推定部103bで得た推定スコアマップを処理して、ピーク値だけを残し他をゼロとしたピーク検出結果を生成する。なお、検出部105bは、正解スコアマップ保持部102bの正解スコアマップに対して適用してもよい。
【0022】
ピーク検出の処理は、例えば、3x3サイズのウィンドウをスライドさせてウィンドウの中心点のスコアが最大値をとる場合、該スコアを格納し、それ以外の場合はゼロを格納することで、スコアマップからピーク値以外をゼロに変更したマップを得る。なお、ウィンドウサイズは5x5等の異なるサイズであってもよい。ピーク検出の方法はこれらに限定されない。
【0023】
寄与領域推定部106bでは、推定スコアマップと正解スコアマップのスコアマップ値の誤差のうち、誤差を減らすことが器官座標の位置誤差の改善に寄与する領域を推定する。具体的には、正解スコアマップに対しては、器官の存在する領域を寄与領域とする。これは器官の存在する領域を十分に推定スコアマップで再現できれば、位置誤差は軽減するためである。本実施形態では、器官が存在する領域では正解スコアマップのスコアマップ値が0より大きい値を有するため、0より大きい値の領域を寄与領域とする。一方で、推定スコアマップに対しては、ピーク検出に影響を与える領域を寄与領域とする。例えば、検出部105bによるピーク検出で得たピーク座標(ピーク点)とその周辺領域(以降、ピーク点とその周辺領域を合わせて「ピーク領域」という)を寄与領域とする。これは器官座標を求めるとき、推定スコアマップのピーク検出するため、ピーク領域は最終的な器官座標の決定に寄与する領域である。ゆえに、この領域の正解スコアマップとの誤差を改善することは器官座標の位置誤差を改善する。
【0024】
正解スコアマップと推定スコアマップから得た寄与領域を統合して1つの寄与領域を得る。寄与領域推定処理の詳細はフローチャート図2(B)の説明にて後述する。なお、正解スコアマップにおいてもピーク座標の周辺領域を寄与領域としてもよい。
【0025】
部分領域損失算出部107bでは、推定スコアマップと正解スコアマップのスコアマップ値の誤差(損失)をスコアマップのピクセル(部分領域)ごとに求める。具体的には、以下式(1)に示すL2損失関数や、式(2)に示すクロスエントロピー損失関数などを用いて、スコアマップのピクセルごとの損失を求める。
【数1】
式(1)と式(2)の(i,j)はスコアマップの座標を表す。pixel loss(i,j)はスコアマップのピクセルごとの損失を表す。smapgt (i,j)は正解スコアマップの座標(i,j)の値を表し、smappred (i,j)は推定スコアマップの座標(i,j)の値を表す。
【0026】
重み設定部108bでは、スコアマップのピクセル(部分領域)ごとに重みを設定する。具体的には、寄与領域推定部106bで求めた寄与領域を用いて、以下の式(3)と式(4)に従い重みを設定する。

【数2】
つまり、重みweight(i,j)に従い、寄与領域にあるときは重みを1に設定する。寄与領域以外では、スコアマップ値をγでべき乗した値を設定する。γは予め設定するパラメータ(ハイパーパラメータ)である。次に式(4)のnormalized weight(i,j)に従い、部分領域の重みの総和が1になるように正規化を行う。
【0027】
スコアマップ損失算出部109bでは、部分領域損失算出部107bと重み設定部108bで求めたピクセルごとの損失と重みから、スコアマップ全体の損失を求める。具体的には以下の式(5)のlossに基づき、ピクセルごとの損失と重みの積の和をとり、スコアマップの面積Sにより除算することにより、全体の損失を求める。
【数3】
【0028】
更新部110bでは、スコアマップ損失算出部109bで求めた損失に基づき、損失を小さくするようにネットワークの重みを更新する。ネットワークの更新は誤差逆伝搬法などの公知の技術により実施すればよい。
【0029】
なお、重み設定部108bでは、式(3)に従い、寄与領域以外の重みをスコアマップ値に応じて決定しているが、1より小さな固定値を設定してもよい。しかし、式(3)に示すように、スコアマップ値に応じて決定したほうが、大きな誤りに大きな重みを設定できるようになるため望ましい。式(3)が大きな誤りに大きな重みを設定し、これをγにより調節できることを、図3を用いて説明する。図3は、γを変えたときのスコアマップ値と重みの関係を示す図である。横軸はスコアマップ値で、縦軸は重みである。γは凡例に示されている。図からγを大きくすると、スコアマップ値が小さいとき、重みは小さくなることが分かる。寄与領域外は正解スコアマップのスコアマップ値がゼロの領域であるため、推定スコアマップのスコアマップ値はゼロに近いほど正しい。そのため、γを大きくすると、小さな誤りが全体の損失に与える影響を小さくできる。結果として、大きな誤りの部分に焦点をあてた学習ができ、大きな誤りを起こしにくい学習が可能になる。
【0030】
なお、寄与領域外の正解スコアマップのスコアマップ値がゼロ以外をとる場合は、以下の式(6)に示すように、正解スコアマップと推定スコアマップの乖離が大きいほど重みを大きくするように設定してもよい。
【数4】
【0031】
また、重み設定部108bでは、式(3)に従い、寄与領域の重みを固定値の1と設定している。しかし、寄与領域の中心、すなわちピーク点に近いほど大きな重みを設定するようにしてもよい。例えば、ガウス分布に従い設定をしてもよい。寄与領域以外よりも大きな重みとするために、ガウス分布で求めた重みに1を加えて求めるなどしてもよい。これによって、器官座標の決定に寄与する中心ほど重視され、中心ほど正解に近いスコアマップ値をとりやすく学習ができる。このように寄与領域に基づく重みの設定方法は、これらに限定されない。
【0032】
また、重み設定部108bでは、式(4)による正規化は実施しなくてもよい。しかし、正規化を実施しないとき、寄与領域が小さくなるに従い、後述のスコアマップ損失算出部109bで求める全体の損失が小さくなりうる。損失が小さくなると、更新部110bによるネットワークの更新量が減り学習が遅くなりうる。例えば、正解スコアマップから決まる寄与領域と推定スコアマップから決まる寄与領域が重なり始めると、寄与領域が小さくなり徐々に学習速度が遅くなるという問題が生じうる。この問題を解消するために正規化を実施することが望ましい。
【0033】
次に、推論部120bが備える121b~124bについて説明する。画像入力部121bは、器官検出を適用する画像の入力を受け付ける。例えば、外部記憶装置104aに保持している画像を、モニタ110aに表示して入力デバイス109aで選択した画像を受け取る。あるいは、通信インターフェイス107aを介して他の装置から受信した画像を受け取るなどしてもよい。また、推論部120b自体が、被写体を撮像するカメラ等の撮像部を備え、該撮像部で撮像した画像を画像入力部121bが受け取ってもよい。
【0034】
スコアマップ推定部122bは学習部100bのスコアマップ推定部103bとほぼ同じであり、検出部123bも学習部100bの検出部105bとほぼ同じである。ネットワーク保持部124bも学習部100bのネットワーク保持部104bとほぼ同じで、学習によって獲得された学習モデルであるネットワークを保持する。器官検出処理に関してはフローチャート図2(C)を用いて後述する。
【0035】
[ネットワーク更新処理]
図2(A)は、第1実施形態のネットワーク更新処理を示すフローチャートである。このフロー図で示す各動作(ステップ)は、CPU101aの各部の制御によって実行されうる。本処理は1つの画像から学習モデルであるネットワークを更新する処理、すなわち、学習モデルの学習処理を示している。そのため、本処理(図中のS201a~S207a)を様々な画像に対して繰り返し適用して、ネットワークを用いて生成された推定スコアマップの全体の損失が小さな値に収束するまで繰り返すことにより、学習処理が実現される。
【0036】
S201aでは、画像保持部101bと正解スコアマップ保持部102bが学習に用いる画像と正解スコアマップを得る(または、格納する)。
【0037】
S202aでは、S201aで得た画像から推定スコアマップを生成する。具体的には、スコアマップ推定部103bに画像を入力して、ネットワーク保持部104bで保持するネットワークに基づいて、ニューラルネットワークのフォワード処理により推定スコアマップを得る。
【0038】
S203aでは、S202aで得た推定スコアマップと、S201aで得た正解スコアマップを比較して、スコアマップのピクセル(部分領域)の損失を計算する。具体的には、部分領域損失算出部107bが、上述の式(1)や式(2)に基づいて、スコアマップのピクセル単位の損失を計算する。
【0039】
S204aでは、寄与領域推定部106bを用いて寄与領域を推定する。寄与領域の推定処理については図2(B)を用いて後述する。
【0040】
S205aでは、寄与領域と推定スコアマップを用いて、スコアマップのピクセル単位の重みを設定する。具体的には、重み設定部108bが、上述の式(3)と式(4)に基づいてスコアマップのピクセル単位の重みを計算する。
【0041】
S206aでは、スコアマップのピクセル単位の損失と重みから、スコアマップ全体の損失を算出する。具体的には、スコアマップ損失算出部109bが、上述の式(5)に基づいて計算する。
【0042】
S207aでは、更新部110bが、S206aで求めた損失を小さくするようにネットワークの重みを更新する。
【0043】
[寄与領域推定処理]
図2(B)は、第1実施形態の寄与領域推定処理を示すフローチャートである。本処理はフローチャート図2(A)のS204aにおいて行われる処理である。本フローチャートの処理は特に記載がなければ寄与領域推定部106bが行う。
【0044】
S201bでは、正解スコアマップから器官領域を抽出する。正解スコアマップは器官点が存在する領域にてゼロより大きい値を持つため、ゼロより大きい値を持つ領域を抽出することにより、器官領域を得る。
【0045】
S202bでは、検出部105bが推定スコアマップからピーク点を検出する。
【0046】
S203bでは、S202bで得たピーク点から所定の数のピーク点を選択する。本実施形態では、選択するピーク点の数は1つである。これは検出する器官点の数が1つであるためである。複数のピーク点があるときは、ピーク点のスコアマップ値が大きい順に選択する。
【0047】
S204bでは、推定スコアマップのピーク点の膨張処理を行う。膨張処理とはピーク点の周囲3x3等の領域に点を広げる処理である。周辺領域の取り方は5x5等でもよい。あるいは、正解スコアマップの器官領域のサイズに合わせて膨張サイズを決定してもよい。膨張処理の方法は、これらに限定されない。
【0048】
S205bでは、推定スコアマップと正解スコアマップの寄与領域を統合する。具体的には、S201bで得た正解スコアマップの寄与領域と、S204bで得た推定スコアマップの寄与領域を用いて、一方の寄与領域に含まれるとき最終的な寄与領域とすることで、統合を行う。
【0049】
[寄与領域推定処理の例]
寄与領域推定処理の具体例について図4を用いて説明する。図4は、第1実施形態の寄与領域推定処理を説明する図である。スコアマップは0~1の値をとるが、ここでは説明を容易にするため、スコアマップ値を10倍した値を図示している。また、スコアマップには分かりやすくするために、入力画像の被写体である顔を破線により描画している。
【0050】
正解スコアマップ401では、顔の左目を中心として高いスコアマップ値が設定されている。S201bではこれを処理して、0より大きな値をとる領域を特定して、正解スコアマップの寄与領域402を生成する。
【0051】
推定スコアマップ403は、入力画像から推定されたスコアマップであり、いくつかの領域で0より大きな値をとっている。S202bではこれを処理して、推定スコアマップのピークを検出して、推定スコアマップのピーク点404を抽出する。ここでは3x3のピーク検出フィルタを適用した結果、3つのピーク点(ピーク点404a~404c)が抽出された。次に、S203bで3つあるピーク点から1つのピーク点を選択する。ここではスコアマップ値が最も大きいスコア9を示すピーク点404aが選択される。そしてS204bでピーク点404aを膨張処理することで推定スコアマップの寄与領域405を得る。
【0052】
最後にS205bで、正解スコアマップの寄与領域402と推定スコアマップの寄与領域405を統合して、統合した寄与領域406を得る。
【0053】
[器官検出処理]
図2(C)は、第1実施形態の器官検出処理を示すフローチャートである。本処理はネットワーク更新処理を繰り返して適用することで得たネットワークを用いて、入力画像から器官検出点を得るための処理である。
【0054】
S201cでは、スコアマップ推定部122bは、画像入力部121bで受け付けた画像を取得する。
【0055】
S202cでは、スコアマップ推定部122bは、S201cで得た画像のスコアマップを推定する。具体的には、ネットワーク保持部124bのネットワークを用いて、スコアマップ推定部122bがスコアマップの推定処理を行う。
【0056】
S203cでは、S202cで得た推定スコアマップに対して、検出部123bがピーク検出処理を適用する。
【0057】
S204cでは、S203cで得たピーク点から所定の数のピーク点を選択する。本実施形態では、これは検出する器官点の数が1つであるため、1つのピーク点を選択する。複数のピークがあるときは、ピーク点のスコアマップ値が大きい順に選択する。
【0058】
S205cでは、ピーク点を入力画像上の座標に変換する。画像の左上を原点としたときの座標値などを得る。得た座標は入力画像上の左目の座標を示しているため、これを外部記憶装置104aなどに入力画像と対応付けて記憶する。あるいは、モニタ110aに入力画像に器官点を重畳した画像を表示するなどしてもよい。器官点の出力方法はこれらに限定されない。
【0059】
[変形例]
なお、本実施形態では、1枚の画像だけを用いて損失を計算していたが、ニューラルネットワークの学習などでは複数枚をミニバッチとして学習することが良く行われる。同様に、複数枚の損失を計算してからニューラルネットワークの更新を行うようにしてもよい。
【0060】
また、本実施形態では、推定スコアマップから1つのピーク点を選択する場合も、ピーク検出を行った。しかし、1つしかピーク点がないときは、推定スコアマップのスコアマップ値のうち最大値をピーク点としてもよい。
【0061】
さらに、本実施形態では、正解スコアマップに対して、閾値処理により寄与領域を求めている。しかし、推定スコアマップと同様にピーク検出等の処理を適用して寄与領域を求めるようにしてもよい。
【0062】
また、本実施形態では、左目だけを検出する例で説明を行ったが、複数の器官点を検出するように構成してもよい。例えば、左右の目・鼻・左右の口角の5つの器官点を検出する場合が考えられる。このとき、図2(A)のS201aでは、正解スコアマップは5つの器官点ごとに存在する。そして、S202aでも、推定スコアマップが5つの器官点ごとに得られることになる。そして、S203a~S206aの処理が、器官点ごとに実施され、器官点のスコアマップごとに全体損失が計算される。そして、5つの器官点の全体損失の和や平均をもとに、S207aのネットワーク更新を行う。このように、複数の器官点を検出するように構成してもよい。
【0063】
[本実施形態の効果]
本実施形態の損失算出方法では、スコアマップ全体の誤差ではなく、推定スコアマップのピーク領域や正解スコアマップの器官領域の誤差を小さくすることを促進するようにした。従って、器官検出の位置誤差の改善を効率的に行える。なぜなら、スコアマップのうち、器官座標を決定づけるピーク検出結果に影響を与える領域は一部であるため、これら一部の領域のスコアマップを効率的に改善することは、器官検出の位置誤差の改善を効率化するためである。
【0064】
また、本実施形態によれば、寄与領域の損失を低減するように学習モデルが更新される。寄与領域の損失の低下は、器官検出の位置誤差の低下につながる。なぜなら、寄与領域は正解スコアマップの器官点が存在する領域であるため、これに近づけることは位置誤差の低減につながる。加えて、寄与領域は推定スコアマップのピーク領域であるため、器官検出の推論時のピーク検出に影響を与える領域であるため、これを正解に近づけることは位置誤差の低減につながる。
【0065】
これによって、位置誤差を低減させるように学習が進むため、効率的に器官検出の精度を高めることができる。
【0066】
また、推定スコアマップに複数のピーク領域があるとき、1つしか器官検出結果として使わないため、1つのピーク領域のみを処理に用いるようにしている。これによって、器官検出結果に影響を与える部分だけを効率的に学習することができる。
【0067】
(第2実施形態)
前記実施形態では、左目だけを検出する例について述べた。また、複数の器官点を検出するときに、検出する器官点ごとにスコアマップを推定する方法について述べた。本実施形態では、複数の器官点を1つのスコアマップから検出する例について説明する。具体的には、本実施形態では、一例として、左右の目を1つのスコアマップから検出する。
【0068】
本実施形態の器官検出装置の構成について、図1(B)を用いて説明する。第1実施形態との主な違いは正解スコアマップ保持部102bである。
【0069】
正解スコアマップ保持部102bは、第1実施形態と同じく正解スコアマップを保持する。ただし、保持する正解スコアマップには、左右の双方の目の位置において高いスコア値をとる。
【0070】
本実施形態のネットワーク更新処理(図2(A))は第1実施形態とほぼ同じであるが、寄与領域推定処理(図2(B))と器官検出処理(図2(C))のS203bとS204cは異なる。
【0071】
S203bとS204cともに、推定スコアマップのピーク検出の結果から、所定の数のピーク点を選択する。このとき、第1実施形態では1つのピーク点だけを選択していたが、本実施形態では2つのピーク点を選択する。複数のピーク点があるときは、スコアの大きい順に所定の数(ここでは2つ)のピークを選択する。
【0072】
次に、寄与領域推定処理の具体例について図5を用いて説明する。図5は、第2実施形態の寄与領域推定処理を説明する図である。スコアマップは0~1の値をとるが、ここでは説明を容易にするため、スコアマップ値を10倍した値を図示している。また、スコアマップには分かりやすくするために、入力画像の被写体である顔を破線により描画している。
【0073】
正解スコアマップ501では、顔の左右の目を中心として高いスコアマップ値が設定されている。S201bではこれを処理して、0より大きな値をとる領域を特定して、正解スコアマップの寄与領域502aおよび502bを生成する。
【0074】
推定スコアマップ503は、入力画像から推定されたスコアマップであり、いくつかの領域で0より大きな値をとっている。S202bではこれを処理して、推定スコアマップのピーク点を検出して、推定スコアマップのピーク点504を生成する。ここでは3x3のピーク検出フィルタを適用した結果、3つのピーク点(ピーク点504a~504c)が抽出された。次に、S203bで3つあるピーク点からスコアの大きい順に2つのピーク点を選択する。ここではスコア9とスコア4を示すピーク点504aおよび504cが選択される。そして、S204bでピーク点504aおよび504cを膨張処理することで推定スコアマップの寄与領域505aおよび505cを得る。最後にS205bで、正解スコアマップの寄与領域502aおよび502cと推定スコアマップの寄与領域505aおよび505cを統合して、統合した寄与領域506を得る。
【0075】
[変形例]
また、本実施形態および第1実施形態では、顔の器官点を検出する例について述べた。しかし、画像からキーポイントを検出する例であれば他にも適用ができる。例えば、人物の関節点など部位を推定するように構成してもよい。具体的には、人物の全身画像が入力されたときに、頭部中心・左右の肩・左右の肘・左右の手・腰中心・左右の膝・左右の足先の12点の位置を検出する。あるいは、人工物のキーポイントを検出してもよい。例えば、プリンタ・デジタルカメラなどの組み立て作業では、筐体が予め決まったネジ穴を持つ。このネジ穴をキーポイントとして検出してもよい。検出するキーポイントはこれらに限定されない。いずれのキーポイントの例においても、1つのスコアマップに1つのキーポイントを割り当ててもよいし、複数のキーポイントを割り当ててもよい。
【0076】
さらに、本実施形態および第1実施形態では、スコアマップから検出するキーポイントの数は決まっていたが、これが決まっていない場合にも適用できる。このときS203bやS204cのピーク点の選択にて、検出されたピーク点すべてを選択することになる。なお、このとき、選択するピーク点について、スコアマップ値の閾値を設け、閾値以上となるピーク点を選択するようにしてもよい。この場合も、推定スコアマップにピーク検出を適用した結果に残るピーク領域が寄与領域とされる。ピーク検出のフィルタサイズが大きいと、大きなピークの近傍にある小さなピークは抑制される。そのため、単純に推定スコアマップを閾値処理した結果とは異なる結果が得られる。こうした小さなピークはピーク検出に影響を与えないため、これらを抑制することは位置誤差の軽減につながりにくい。そのため、スコアマップから任意数のキーポイントを検出する場合も、ピーク領域を寄与領域とすることで、効果的に位置誤差の軽減を行える。
【0077】
[本実施形態の効果]
以上によって、スコアマップから検出するキーポイントが複数の場合にも適用できる。スコアマップに割り当てたキーポイント数に応じて、S203bでのピーク点数が決定され、それに基づき寄与領域が決まる。これら寄与領域は、器官検出の推論時のピーク検出に影響を与える領域であるため、これを正解に近づけることは位置誤差の低減につながる。
【0078】
また、ピーク領域が複数ある場合に、推論時に採用するキーポイント数を絞ることで、キーポイント検出結果に影響を与える部分だけを効率的に学習することができる。
【0079】
(その他の実施形態)
以上、実施形態を詳述したが、本発明は上述の実施形態に限定されるのではなく、本発明の趣旨を逸脱しない限りにおいて適宜変更が可能である。
【0080】
本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【0081】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0082】
1 器官検出装置
100a コンピュータ装置(情報処理装置)
100b 学習部
103b,122b スコアマップ推定部
104b,124b ネットワーク保持部
106b 寄与領域推定部
107b 部分領域損失算出部
108b 重み設定部
109b スコアマップ損失算出部
110b 更新部
120b 推論部


図1
図2
図3
図4
図5