(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-01
(45)【発行日】2024-05-13
(54)【発明の名称】画像処理装置、画像処理方法
(51)【国際特許分類】
G06V 10/82 20220101AFI20240502BHJP
G06T 7/00 20170101ALI20240502BHJP
G06T 7/60 20170101ALI20240502BHJP
【FI】
G06V10/82
G06T7/00 350C
G06T7/60 150S
G06T7/60 150Z
(21)【出願番号】P 2022153997
(22)【出願日】2022-09-27
(62)【分割の表示】P 2017154728の分割
【原出願日】2017-08-09
【審査請求日】2022-10-27
【早期審査対象出願】
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】舘 俊太
【審査官】笠田 和宏
(56)【参考文献】
【文献】中国特許出願公開第106250874(CN,A)
【文献】Tao Kong,外3名,HyperNet: Towards Accurate Region Proposal Generation and Joint Object Detection,2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR),2016年06月27日,pp. 845-853
(58)【調査した分野】(Int.Cl.,DB名)
G06V 10/82
G06T 7/00
G06T 7/60
(57)【特許請求の範囲】
【請求項1】
複数の層を有する階層型ニューラルネットワークへ入力画像を入力する入力手段と、
前記複数の層から出力された、それぞれ解像度が異なる特徴マップが連結された連結特徴マップに基づいて、該連結特徴マップの座標にサイズの異なる物体の所定の位置が存在する尤度を
サイズごとに示すスコアマップを生成するマップ生成手段と、
前記スコアマップに基づいて、前記入力画像における前記物体の検出結果を出力する出力手段と
を有することを特徴とする画像処理装置。
【請求項2】
前記マップ生成手段は、前記連結特徴マップの座標に物体の所定の位置が存在する尤度を示すスコアマップを生成するように予め学習されていることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記所定の位置に存在する物体のサイズを推定する推定手段をさらに有し、
前記出力手段は、前記物体の所定の位置が存在する座標と、前記物体のサイズと、を出力することを特徴とする請求項1または2に記載の画像処理装置。
【請求項4】
前記推定手段は、前記スコアマップに基づいて前記物体のサイズを推定することを特徴とする請求項3に記載の画像処理装置。
【請求項5】
前記マップ生成手段は、複数の属性に対応する複数の判別器への前記連結特徴マップの入力に基づき、該複数の属性のそれぞれについて、前記連結特徴マップの座標に前記属性の物体の所定の位置が存在する尤度を示すスコアマップを生成し、
前記出力手段は、前記マップ生成手段が生成した前記複数の属性に対応し、共通の座標軸を有するスコアマップの座標ごとに統合した統合結果に基づいて、前記入力画像における前記物体の検出結果を出力することを特徴とする請求項1に記載の画像処理装置。
【請求項6】
前記所定の位置は、物体の基準点であることを特徴とする請求項1に記載の画像処理装置。
【請求項7】
前記基準点は、重心であることを特徴とする請求項6に記載の画像処理装置。
【請求項8】
複数の層を有する階層型ニューラルネットワークへ入力画像を入力する入力工程と、
前記複数の層から出力された、それぞれ解像度が異なる特徴マップが連結された連結特徴マップに基づいて、該連結特徴マップの座標にサイズの異なる物体の所定の位置が存在する尤度を
サイズごとに示すスコアマップを生成するマップ生成工程と、
前記スコアマップに基づいて、前記入力画像における前記物体の検出結果を出力する出力工程と
を有することを特徴とする画像処理方法。
【請求項9】
コンピュータを、請求項1ないし7のいずれか1項に記載の画像処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、物体の検出技術に関するものである。
【背景技術】
【0002】
映像データから特徴量を抽出し、判別器を用いて映像データ中の被写体を判定する技術が知られている。このような技術の一つに、ニューラルネットワークの一種であるConvolutional Neural Network(以降、CNN)がある。CNNは、局所的畳み込みの演算処理を複数段階で逐次的に行うという性質を持つ。
【0003】
非特許文献1に記載の技術では、CNNを画像データに適用して物体を検出している。具体的には、(1)画像をCNNで演算処理する。さらに(2)関心領域(Region of Interest)ごとにCNNの最終層の特徴量を集計し、物体か否かを判定する。この処理を全関心領域に対して行う。
【先行技術文献】
【特許文献】
【0004】
【非特許文献】
【0005】
【文献】Shaoqing Ren, Kaiming He, Ross Girshick, Jian Sun, Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks, NIPS 2015
【文献】M.D. Zeiler, R. Fergus, Visualizing and Understanding Convolutional Networks, ECCV 2014
【文献】Hyeonwoo Noh, Seunghoon Hong, Bohyung Han, Learning Deconvolution Network for Semantic Segmentation, ICCV 2015
【文献】A. Krizhevsky et al., ImageNet Classification with Deep Convolutional Neural Networks, NIPS 2012
【文献】Emmanouil Z. Psarakis and Georgios D. Evangelidis, An Enhanced Correlation-Based Method for Stereo Correspondence with Sub-Pixel Accuracy, ICCV 2005
【文献】Wei Luo, XiaogangWang, Xiaoou Tang, Content-Based Photo Quality Assessment, ICCV 2011
【文献】Lazebnik, Schmid, Ponce, Beyond Bags of Features: Spatial Pyramid Matching for Recognizing Natural Scene Categories, CVPR 2006
【発明の概要】
【発明が解決しようとする課題】
【0006】
非特許文献1のような従来の手法では、関心領域ごとに特徴の集計を行う。そのため物体の候補領域が多い場合や、複数の認識タスクを同時に行う場合に演算コストが大きいという課題がある。
【0007】
本発明はこのような問題に鑑みてなされたものであり、ロバストに物体の検出処理を行うための技術を提供する。
【課題を解決するための手段】
【0008】
本発明の一様態は、複数の層を有する階層型ニューラルネットワークへ入力画像を入力する入力手段と、
前記複数の層から出力された、それぞれ解像度が異なる特徴マップが連結された連結特徴マップに基づいて、該連結特徴マップの座標にサイズの異なる物体の所定の位置が存在する尤度をサイズごとに示すスコアマップを生成するマップ生成手段と、
前記スコアマップに基づいて、前記入力画像における前記物体の検出結果を出力する出力手段と
を有することを特徴とする。
【発明の効果】
【0009】
本発明の構成によれば、ロバストに物体の検出処理を行うことができる。
【図面の簡単な説明】
【0010】
【
図1】画像処理装置の機能構成例を示すブロック図。
【
図2】画像処理装置の機能構成例を示すブロック図。
【
図3】画像処理装置が行う認識処理のフローチャート。
【
図4】ステップS1~S4の処理のフローチャート。
【
図8】領域の判定に関する属性の統合手順のフローチャート。
【
図9】物体の検出に関する属性の統合手順のフローチャート。
【
図11】画像処理装置の機能構成例を示すブロック図。
【
図12】人物の検出のための統合手順のフローチャート。
【
図14】画像処理装置の機能構成例を示すブロック図。
【
図16】水平線情報値、合焦情報値、測光情報値を示す図。
【
図18】画像処理装置の機能構成例を示すブロック図。
【
図20】第4の実施形態の派生の形態を説明する図。
【
図21】コンピュータ装置のハードウェア構成例を示すブロック図。
【発明を実施するための形態】
【0011】
以下、添付図面を参照し、本発明の実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の1つである。
【0012】
[第1の実施形態]
先ず、入力画像に対する画像認識を行う画像処理装置の機能構成例について、
図1のブロック図を用いて説明する。画像入力部101は、認識対象(検出対象)としてのオブジェクトを1つ以上含む入力画像を入力する。ニューラルネットワーク102は、第1層~第n層(nは2以上の自然数)を有する階層型ニューラルネットワークであり、画像入力部101が入力した入力画像を処理する。連結特徴生成部104は、ニューラルネットワーク102における規定の層の出力(特徴マップ)を連結することで連結階層特徴103を生成する特徴生成を行う。属性判定部105は第1属性判定部105a~第n属性判定部105cを有し、第1属性判定部105a~第n属性判定部105cのそれぞれは連結階層特徴103を用いて、対応する属性の尤度マップ(属性スコアマップ108)を生成して出力する。属性統合部106は、属性スコアマップ108を統合して、入力画像に対する物体検出やシーン認識など、規定の認識結果を生成する。結果出力部107は、属性統合部106による認識結果を出力する。
【0013】
以下では、このような画像処理装置を用いた具体的な画像認識処理の一例について説明する。以下では、属性スコアマップ108を求める属性として、歩行者、小さい顔、大きい顔、空、地面、建物、主被写体の7種類を用いる。この場合、
図2に示す如く、
図1の属性判定部105は、これらの7種類の属性のそれぞれの属性スコアマップ108のマップ生成を行う属性判定部205として構成する。すなわち、以下では、
図2に示す機能構成例を示す画像処理装置を用いる。
【0014】
図2では、
図1においてn=7とし、第1属性判定部105a~第7属性判定部105cのそれぞれを尤度判定部205a~尤度判定部205gとしている。尤度判定部205aは、属性「歩行者」に対する属性スコアマップ208を生成する。尤度判定部205bは、属性「小さい顔」に対する属性スコアマップ208を生成する。尤度判定部205cは、属性「大きい顔」に対する属性スコアマップ208を生成する。尤度判定部205dは、属性「空」に対する属性スコアマップ208を生成する。尤度判定部205eは、属性「地面」に対する属性スコアマップ208を生成する。尤度判定部205fは、属性「建物」に対する属性スコアマップ208を生成する。尤度判定部205gは、属性「主被写体」に対する属性スコアマップ208を生成する。
【0015】
次に、1枚の入力画像に対して
図2の画像処理装置が行う認識処理について、
図3のフローチャートに従って説明する。
【0016】
ステップS1では、画像入力部101は、入力画像を入力する。ステップS2では、ニューラルネットワーク102は、ステップS1において画像入力部101が入力した入力画像を処理し、連結特徴生成部104は、ニューラルネットワーク102における規定の層の出力(特徴マップ)を抽出する。ステップS3では、連結特徴生成部104は、ステップS3で抽出した規定の層の出力(特徴マップ)を連結することで連結階層特徴103を生成する。ステップS4では、属性判定部205における尤度判定部205a~尤度判定部205gのそれぞれは、連結階層特徴103を用いて歩行者、小さい顔、大きい顔、空、地面、建物、主被写体の属性スコアマップ208を生成する。
【0017】
ステップS5では、属性統合部106は、尤度判定部205a~尤度判定部205gのそれぞれが生成した属性スコアマップ208を統合して、入力画像における空、地面、建物の領域を判定する。ステップS6では、属性統合部106は、尤度判定部205a~尤度判定部205gのそれぞれが生成した属性スコアマップ208を統合して、入力画像における主被写体の領域を判定する。ステップS7では、属性統合部106は、尤度判定部205a~尤度判定部205gのそれぞれが生成した属性スコアマップ208を統合して、入力画像における歩行者及び顔の検出を行う。ステップS8では、結果出力部107は、属性統合部106によるステップS5~7における判定結果及び検出結果を出力する。結果出力部107による出力先は特定の出力先に限らない。
【0018】
次に、上記のステップS1~S3における処理、即ち入力画像を入力してから連結階層特徴103を生成するまでの処理、の詳細について、
図4(A)のフローチャートに従って説明する。
【0019】
ステップS101では、画像入力部101は、入力画像を入力する。ステップS102では、連結特徴生成部104は、ニューラルネットワーク102における規定の層の出力(特徴マップ)を登録するための配列(連結階層特徴の配列)を初期化する(配列の各要素にNULLなどの値を設定することで空の配列を用意する)。そしてステップS103~S108の処理を、ニューラルネットワーク102の第1層~第n層の各層について行う。以下ではニューラルネットワーク102としてCNNを用いる。ここでのCNNは全結合層と呼ばれる層は用いず、畳込み層と呼ばれる種類の層のみを使用してもよい。
【0020】
ステップS104では、ニューラルネットワーク102は、着目層の演算処理を行う。第1回目のステップS104では第1層の演算処理を行い、第2回目のステップS104では第2層の演算処理を行い、第n回目のステップS104では第n層の演算処理を行う。ニューラルネットワーク102はステップS104における演算処理を各層について行うことで、
図5に示すような各層の演算処理を実現する。
【0021】
本実施形態に係るニューラルネットワーク102は、
図5に示すような各層の演算処理を行うものとする。
図5では3層のニューラルネットワーク102を例にとり説明しているが、階層の数は3に限らない。
【0022】
ニューラルネットワーク102は入力画像401に対して複数回の畳込みフィルタ処理を行うべく、畳込みフィルタ処理402a、402b、402cのそれぞれを各階層で行う。さらにニューラルネットワーク102は各階層で、畳込みフィルタ処理のあとに活性化関数処理を行う(
図5では略している)。またニューラルネットワーク102は第1層をのぞく各階層で、プール処理404a、404bのそれぞれを活性化関数処理のあとで行う。L(
図5ではL=1,2,3)番目の層にて行う畳込みフィルタ処理および活性化関数処理は以下の式に従って行われる。
【0023】
【0024】
ここで、f
L(x,y,z)はL番目の層が出力する特徴マップで、z枚のマップからなる。
図5中に単位chとして付した数字は特徴マップの枚数である。例えば
図5の場合は、特徴マップ403aは64枚のマップから成り、特徴マップ403bは128枚のマップから成り、特徴マップ403cは256枚のマップから成る。
【0025】
θ(・)は半波整流よりなる活性化関数である。wL(Δx,Δy,CHIN,CHOUT)(ただしΔx,Δy∈{-K,...,0,...,K})はL番目の層の畳込みの重みパラメータ,BL
CHOUTはL番目の層のバイアス項である。CHINは(L-1)番目の層が出力する特徴マップの番号、CHOUTはL番目の層が出力する特徴マップの番号を表す。なお上記の式ではRGB3チャンネルからなる入力画像I(x,y)は特徴マップf0(x,y,z)として扱うものとする。
【0026】
なおここでは畳込みの前後で特徴マップのx,y方向のサイズが変化しないように、畳込み処理の前に特徴マップfL-1の周囲の画素に0値を充填してから畳込むものとする(パディング処理と呼ばれる)。
【0027】
プール処理404a、404bは、特徴マップを所定の局所領域ごとに代表値で代表させることでマップのサイズを縮小する処理である。プール処理はCNNの認識性能をロバストにする効果がある半面、結果の解像度が落ちるという性質がある。
図5に示す例ではプール処理404a、404bはそれぞれ特徴マップを2×2画素ごとに統合して2分の1の解像度の特徴マップに縮小する処理である。
【0028】
ここまでの演算処理により、CNNの各層の段階でそれぞれ特徴マップ403a、403b、403cが生成される。以上はすべてCNNに関する一般的な技術であり、非特許文献1~3等で広く公知であるため、これ以上の詳細な説明は省略する。
【0029】
なお、CNNは非特許文献4で行っているような大規模データベースを用いた分類タスクで重みパラメータをあらかじめ学習しておくものとする。この結果、CNNの入力画像に近い低層の特徴マップ403aとして、画像中の線分の傾きのような単純な模様によく反応するマップが生成される。そして後段の高層の特徴マップ403cとしては、より広い範囲の画像パターンを集約し、複雑なパターン形状に反応するようなマップが生成される。CNNの上記の性質は非特許文献2等で広く公知である。
【0030】
図4(A)に戻って次にステップS105では、連結特徴生成部104は、着目層が、ニューラルネットワーク102における各層のうち予め定められた規定層(特徴マップを出力する層)であるか否かを判断する。つまり、連結特徴生成部104は、ニューラルネットワーク102が演算処理した結果の特徴マップが規定層の結果かどうかかを判断する。この判断の結果、着目層が規定層であれば、処理はステップS106に進み、着目層が規定層でなければ、次の層を着目層としてステップS103に戻る。
【0031】
ステップS107では、連結特徴生成部104は、着目層の出力である特徴マップを上記の配列に追加登録する。これを繰り返して最終的に特徴マップが複数個連結された高次元の連結階層特徴(配列)が得られる。
図5の例では、特徴マップf
1(x,y),f
2(x,y),f
3(x,y)が連結された448chの連結階層特徴406(F(x,y))が得られる。連結階層特徴は一般に以下の式で表される。
【0032】
【0033】
ここでFは連結階層特徴である。f1,f2,・・・,fnはニューラルネットワーク102から抽出された特徴マップであり、連結階層特徴Fは上記特徴マップをZ次元方向に連結したものである。x,yは特徴マップの画素の座標である。
【0034】
なお、一般的にCNNはプール処理を行うため、特徴マップの解像度は層によって異なっている。そのため連結特徴生成部104はステップS107の前にステップS106において、上記の配列に登録する特徴マップの解像度を規定の解像度に揃える。
図5の例では、特徴マップ403bの縦横の解像度は特徴マップ403a(入力画像401)の縦横の解像度の1/2、特徴マップ403cの縦横の解像度は特徴マップ403bの縦横の解像度の1/2である。この場合、連結特徴生成部104は、特徴マップ403aについては解像度変換を行わず、特徴マップf
1(x、y)とする。また連結特徴生成部104は、特徴マップ403bについては縦横サイズ(解像度)を2倍にするアップサンプル処理405aを行うことで、特徴マップ403bの縦横サイズ(解像度)を特徴マップ403a(入力画像401)の縦横サイズ(解像度)に揃える。この「特徴マップ403bの縦横サイズ(解像度)を特徴マップ403a(入力画像401)の縦横サイズ(解像度)に揃えた」ものが、特徴マップf
2(x、y)である。アップサンプル処理によるサイズ変換(解像度変換)は、画素値のコピーや線形補間といった一般的な方法を採用することで実現することができる。また連結特徴生成部104は、特徴マップ403cについては縦横サイズ(解像度)を4倍にするアップサンプル処理405bを行うことで、特徴マップ403cの縦横サイズ(解像度)を特徴マップ403a(入力画像401)の縦横サイズ(解像度)に揃える。この「特徴マップ403cの縦横サイズ(解像度)を特徴マップ403a(入力画像401)の縦横サイズ(解像度)に揃えた」ものが、特徴マップf
3(x、y)である。
【0035】
なお、揃えるサイズによってはアップサンプル処理の代わりにダウンサンプル処理を行っても良い。このような処理により、特徴マップf1(x,y),f2(x,y),f3(x,y)は入力画像I(x,y)と同じ解像度に揃っている。そしてこのような特徴マップf1(x,y),f2(x,y),f3(x,y)を連結したものが連結階層特徴406(F(x,y))である。
【0036】
なお本実施形態では、入力画像I(x,y)と連結階層特徴F(x,y)の解像度は同一である。しかし仮にアップサンプル(ダウンサンプル)処理の倍率を変更すれば、入力画像I(x,y)よりも粗い・細かい解像度の連結階層特徴F’(x’,y’)を生成することもできる。そこで以下の説明においては連結階層特徴F(x,y)の画素を一般化した名称として「領域ブロック」と呼ぶこととする。
【0037】
このようにして得られた連結階層特徴は、ニューラルネットワーク102の低層から高層まで複数の特徴マップが統合された特徴である。そのため様々な被写体の様々なスケールおよびバリエーションの情報が特徴量の中に含まれる。また各領域ブロック(x,y)ごとに高次元の特徴ベクトルが対応している。以上の二つの性質により、連結階層特徴は様々な認識タスクに有効に用いることができる(どのような認識タスクが可能であるかは各実施形態にて複数のバリエーションを示す)。
【0038】
次に、上記のステップS4における処理の詳細について、
図4(B)のフローチャートに従って説明する。ステップS109~S113の処理が、連結階層特徴におけるそれぞれの領域ブロックについて行われる。ステップS110~S112の処理が、それぞれの属性(本実施形態の場合は上記の7種類の属性のそれぞれ)について行われる。本形態で判定する属性としては、歩行者、小さなサイズの顔、大きなサイズの顔、の3種類の物体の有無、および空領域、地面領域、建物領域、主被写体領域、の4種類の領域についての尤度である(判別器の学習の方法は後述する)。
【0039】
属性判定部205は、予め上記の各属性の尤度が判定できるように学習された判別器としての尤度判定部205a~尤度判定部205gを有する。判別器には例えば線形サポートベクトルマシン(SVM)を用いることができる。ステップS111では属性判定部205は、連結階層特徴におけるi(1≦i≦I:Iは領域ブロックの数)番目の領域ブロックについてj(1≦j≦7)番目の属性について属性スコアマップ208を生成する。例えばj=1の場合は、尤度判定部205aは、i番目の領域ブロックについて属性「歩行者」に対する属性スコアマップ208を生成する。j=2の場合は、尤度判定部205bは、i番目の領域ブロックについて属性「小さい顔」に対する属性スコアマップ208を生成する。j=3の場合は、尤度判定部205cは、i番目の領域ブロックについて属性「大きい顔」に対する属性スコアマップ208を生成する。j=4の場合は、尤度判定部205dは、i番目の領域ブロックについて属性「空」に対する属性スコアマップ208を生成する。j=5の場合は、尤度判定部205eは、i番目の領域ブロックについて属性「地面」に対する属性スコアマップ208を生成する。j=6の場合は、尤度判定部205fは、i番目の領域ブロックについて属性「建物」に対する属性スコアマップ208を生成する。j=7の場合は、尤度判定部205gは、i番目の領域ブロックについて属性「主被写体」に対する属性スコアマップ208を生成する。属性スコアマップ208は以下の式に従って生成される。
【0040】
【0041】
ただしLj(x,y)は座標(x,y)の領域ブロックについてのj番目の属性の尤度スコア、vjkはj番目の属性判別器のk番目のサポートベクトル、αjkは同じくサポートベクトルの重み係数、bjはバイアス項であり、これらはあらかじめ学習で獲得しておく。またF(x,y)は座標(x,y)の領域ブロックの特徴ベクトル、R(・)はSVMの出力を尤度に変換するための規格化関数である。ただし規格化関数R(・)はここでは処理の軽量化のため下式のような関数で近似してSVMのスコアを0~1に規格化するものとする。
【0042】
【0043】
なおτは適当な定数である。属性判定部205は全ての領域ブロックと全ての属性について判定処理を行うために、本形態における線形SVMのように軽い処理の判別器であることが好適である。換言すれば処理が軽ければ決定木や多層パーセプトロン等、どのような判別器でも良い。
【0044】
また本実施形態では属性判定部205の入力特徴として各領域ブロック(x,y)の特徴量F(x,y)を用いて属性判定を行った。ここで別の形態として周囲wの範囲の特徴量F(x+Δx,y+Δy)(ただし、Δx,Δy∈{-w,...-1,0,1,...,w})を全て連結して特徴量として判定するような形態なども考えられる。このように、属性判定部205の判別器、および判定に用いる特徴量の形態は様々に考えられ、いずれかに限定されるものではない。
【0045】
以上のような処理の結果を
図6に示す。
図6に示す如く、入力画像601の連結階層特徴602を用いて属性判定部205の尤度判定部205a~尤度判定部205gによる属性判定を行うことで、各属性の属性スコアマップ604を生成することができる。属性スコアマップ604には、各領域ブロックに対して尤度判定部205aが求めた属性「歩行者」の尤度スコア(歩行者尤度スコア)をマップ化した属性スコアマップが含まれている。また、属性スコアマップ604には、各領域ブロックに対して尤度判定部205bが求めた属性「小さい顔」の尤度スコア(顔(小)尤度スコア)をマップ化した属性スコアマップが含まれている。また、属性スコアマップ604には、各領域ブロックに対して尤度判定部205cが求めた属性「大きい顔」の尤度スコア(顔(大)尤度スコア)をマップ化した属性スコアマップが含まれている。また、属性スコアマップ604には、各領域ブロックに対して尤度判定部205dが求めた属性「空」の尤度スコア(空尤度スコア)をマップ化した属性スコアマップが含まれている。また、属性スコアマップ604には、各領域ブロックに対して尤度判定部205eが求めた属性「地面」の尤度スコア(地面尤度スコア)をマップ化した属性スコアマップが含まれている。また、属性スコアマップ604には、各領域ブロックに対して尤度判定部205fが求めた属性「建物」の尤度スコア(建物尤度スコア)をマップ化した属性スコアマップが含まれている。また、属性スコアマップ604には、各領域ブロックに対して尤度判定部205gが求めた属性「主被写体」の尤度スコア(主被写体尤度スコア)をマップ化した属性スコアマップが含まれている。
図6では、各属性の尤度スコアの高い領域ブロックを黒色、尤度スコアの低い領域ブロックを白色としてグレーの諧調で表している。
【0046】
ここで、
図6で示した属性スコアマップ604のような判定結果を得るためには、以下のように属性判定部205を学習しておく。属性判定部205の学習に用いる学習データの例を
図7に示す。
【0047】
各学習データは、
図7(A)、(B)に示すような画像と、
図7(C)~(F)に示すような教師値と、のセットからなる。教師値は、物体の属性に関する教師値(
図7(C)、(D))と、領域の属性の教師値(
図7(E)、(F))と、の二種類からなる。
【0048】
物体の属性の教師値は、各領域ブロックが歩行者、小さなサイズの顔、大きなサイズの顔、のいずれかの物体を含むか否かを示す値である。具体的には物体の基準点を含む領域ブロックを正事例(1)、それ以外の領域ブロックを負事例(0)として各物体カテゴリごとに人手等で0,1の値を付与したものである(本実施形態では物体領域の重心を物体の基準点とする)。
【0049】
領域の属性の教師値とは、空、地面、建物、および主被写体のカテゴリについて、所定値以上の面積が該カテゴリであるような領域ブロックを正事例(1)、それ以外の領域ブロックを負事例(0)として各領域カテゴリごとに0,1の値を付与したものである。
図7(E)、(F)に具体例を示す。空領域、地面領域、建物領域、および主被写体領域の正事例の領域ブロックにそれぞれ記号S,G,B,Mを付している。なお便宜上、ここでは一つの領域ブロックに一つの領域カテゴリの記号のみを示しているが、建物が主被写体である、といったように一つの領域ブロックに複数の属性が付随することもあり得る。
【0050】
上記で与えられた各属性の教師値の0,1の値を目標変数、対応する領域ブロックの連結階層特徴量F(x,y)を説明変数とし、正事例と負事例が判別できるように多数の学習事例に基づいてSVMを学習する。学習は各属性jごとに行い、属性ごとにSVMのパラメーター([vjk,αjk,bj])を得る。以上が属性判定部205の学習手順になる。
【0051】
次に、属性スコアマップを統合して目的の認識タスクの結果を出力する詳細手順(上記のステップS5~S8の処理の詳細)について説明する。ここでは属性スコアマップの統合とは複数の属性を直接的・間接的な手掛かりとし、目的の認識タスクを判定する処理である。統合にはルールベースで行うものと、識別器や回帰器を用いて機械学習手法で行うもの、それらを組み合わせるもの、があるが、ここではルールベースの手法について説明する。
【0052】
人体検出タスクの場合、人体の属性、顔の属性、(人体として誤検出し易い)建物の属性、等が人体の判定の手掛かりになる属性である。また顔と人体には共起関係が、人体と建物には同一の位置に存在しないという排他的な関係があるため、これらの属性間の関係を考慮した統合を行ってもよい。具体的には以下に説明するような手順で行う。
【0053】
属性スコアマップを統合して目的の認識タスクの結果を出力する詳細手順について、
図8,9を用いて説明する。
図8は、領域の判定に関する属性の統合手順のフローチャートであり、
図9は物体の検出に関する属性の統合手順のフローチャートである。
【0054】
図8(A)は空領域,地面領域,および建物領域に関する統合手順のフローチャートである。ステップS201~S207の処理が、連結階層特徴におけるそれぞれの領域ブロックについて行われる。ステップS202~S206の処理が、それぞれの属性(本実施形態の場合は「空」、「地面」、「建物」のそれぞれ)について行われる。
【0055】
ステップS203では、属性統合部106は、i(1≦i≦I:Iは領域ブロックの数)番目の領域ブロックのj番目の属性の尤度スコアが所定値以上であるか否かを判断する。ここで、1番目の属性(j=1)は「空」、2番目の属性(j=2)は「地面」、3番目の属性(j=3)は「建物」であるものとする。この判断の結果、i番目の領域ブロックのj番目の属性の尤度スコアが所定値以上であれば、処理はステップS204に進む。一方、i番目の領域ブロックのj番目の属性の尤度スコアが所定値未満であれば、ステップS206に進む。j=1~3についてステップS202~S206の処理を行った場合には、(i+1)番目の領域ブロックについてステップS203以降を行う。そしてi=1~IについてステップS201~S207の処理を行った場合には、
図8(A)の処理は完了する。
【0056】
ステップS204では、属性統合部106は、i番目の領域ブロックのその他の属性(主被写体を除く)の尤度スコアが所定値未満であるか否かを判断する。この判断の結果、i番目の領域ブロックのその他の属性(主被写体を除く)の尤度スコアが所定値未満であれば、処理はステップS205に進む。一方、i番目の領域ブロックのその他の属性(主被写体を除く)の尤度スコアが所定値以上であれば、処理はステップS206に進む。
【0057】
ステップS205では、属性統合部106は、i番目の領域ブロックの属性がj番目の属性であると判断する。
【0058】
図8(B)は主被写体領域についての統合手順のフローチャートである。処理内容はほぼ
図8(A)のフローチャートに従った処理の内容と同一である。ただし顔・歩行者・空・地面・建物のいずれも主被写体となる可能性があるため、
図8(A)の手順とは異なり、他の属性の尤度スコアは問題にしない。ステップS210~S213の処理が、連結階層特徴におけるそれぞれの領域ブロックについて行われる。
【0059】
ステップS211では、属性統合部106は、i(1≦i≦I:Iは領域ブロックの数)番目の領域ブロックの属性「主被写体」の尤度スコアが所定値以上であるか否かを判断する。この判断の結果、i番目の領域ブロックの属性「主被写体」の尤度スコアが所定値以上であれば、処理はステップS212に進む。一方、i番目の領域ブロックの属性「主被写体」の尤度スコアが所定値未満であれば、ステップS213に進み、次の領域ブロックについて以降の処理を行う。ステップS212では、属性統合部106は、i番目の領域ブロックの属性が「主被写体」であると判断する。
【0060】
図9は歩行者と顔の検出のための統合手順のフローチャートである。ステップS301では、属性統合部106は、物体の検出数を示す変数nの値を0に初期化する。ステップS302~S310の処理が、連結階層特徴におけるそれぞれの領域ブロックについて行われる。ステップS303~S309の処理が、それぞれの属性(本実施形態の場合は「歩行者」、「小さい顔」、「大きい顔」のそれぞれ)について行われる。
【0061】
ステップS304では、属性統合部106は、i(1≦i≦I:Iは領域ブロックの数)番目の領域ブロックのj番目の属性の尤度スコアが所定値以上であるか否かを判断する。ここで、1番目の属性(j=1)は「歩行者」、2番目の属性(j=2)は「小さい顔」、3番目の属性(j=3)は「大きい顔」であるものとする。この判断の結果、i番目の領域ブロックのj番目の属性の尤度スコアが所定値以上であれば、処理はステップS305に進む。一方、i番目の領域ブロックのj番目の属性の尤度スコアが所定値未満であれば、ステップS309に進む。j=1~3についてステップS303~S309の処理を行った場合には、(i+1)番目の領域ブロックについてステップS304以降を行う。そしてi=1~IについてステップS302~S310の処理を行った場合には、
図9(A)の処理は完了する。
【0062】
ステップS305で属性統合部106は、i番目の領域ブロックのj番目の属性の尤度スコアが、該領域ブロック、該領域ブロックに隣接する8個の領域ブロック、の9個の領域ブロックの全属性(主被写体を除く)の尤度スコアの中で最大か否かを判断する。この判断の結果、i番目の領域ブロックのj番目の属性の尤度スコアが、この9個の領域ブロックの全属性(主被写体を除く)の尤度スコアの中で最大であれば、処理はステップS306に進む。一方、i番目の領域ブロックのj番目の属性の尤度スコアが、この9個の領域ブロックの全属性(主被写体を除く)の尤度スコアの中で最大ではない場合には、処理はステップS309に進む。
【0063】
ステップS306では、属性統合部106は、j番目の属性の物体の基準点(ここでは物体の重心)を検出したと判定し、変数nの値を1つインクリメントする。ステップS307では、属性統合部106は、物体の基準点の位置と、i番目の領域ブロックのj番目の属性の尤度スコアと、を関連づけて画像処理装置内の不図示のメモリに格納する。
【0064】
ステップS308では、属性統合部106は、より詳細に物体の位置を推定するために、サブピクセル推定による位置補正を行う。ここでサブピクセル推定は非特許文献5のような方法を用いる。非特許文献5では物体の位置の周囲のスコアの値に基づいて位置補正を行う。
【0065】
そして処理は、
図9(B)のステップS311に進む。ステップS311~S315の処理は
図9(A)のフローチャートに従った処理によって検出されたそれぞれの物体について行う。
【0066】
ステップS312で属性統合部106は、
図9(A)のフローチャートに従った処理で検出されたそれぞれの物体のうち未選択の物体(k番目の物体(k=1~n))を選択物体として選択する。そして属性統合部106は、選択物体の属性が「小さい顔」若しくは「大きい顔」であるか否かを判断する。この判断の結果、選択物体の属性が「小さい顔」若しくは「大きい顔」であれば、処理はステップS313に進み、選択物体の属性が「小さい顔」でも「大きい顔」でもない場合には、処理はステップS314に進む。
【0067】
ステップS313では、属性統合部106は、サイズの異なる2種類の顔の尤度スコアを用いて下式のような重み付け和で顔のサイズを推定する。
【0068】
【0069】
ただしL小、L大はそれぞれ小サイズと大サイズの顔の尤度スコア、基準サイズ小、基準サイズ大は顔のサイズに関する所定の基準値である。
【0070】
以上ステップS315までの処理により、サイズ別の顔の尤度、歩行者の尤度、背景領域の各カテゴリの尤度、のような各領域ブロックにバラバラに存在していた属性の情報が整理され、位置・サイズの同定された物体検出結果として統合される。なお本実施形態では歩行者と顔をそれぞれ独立に統合した。しかし例えば歩行者の尤度の高い領域ブロックの周辺に、小サイズの顔が存在する可能性が高いといった共起関係を用いることもできる。そのような派生形態として例えば以下のようなやり方が考えられる。(1)まず歩行者のスコアマップをぼかし、小サイズの顔のスコアマップに加算する。(2)得られたマップを新たに小サイズの顔のスコアマップとする。(3)これまでと同様の手順で属性統合の処理(ステップS301~ステップS315)を行う。
【0071】
また、建物を歩行者と誤って検出するのを防ぐことのできる属性統合の形態として例えば以下のようなやり方が考えられる。(1)歩行者のスコアマップから建物領域のスコアマップを差し引く。(2)得られたマップを新たに歩行者のスコアマップとする。(3)これまでと同様の手順で属性統合の処理(ステップS301~ステップS315)を行う。
【0072】
以上の属性統合部106の処理により得られた結果例を
図6に統合結果606として示す。歩行者および顔の検出結果を破線の枠で示し、空領域、地面領域、建物領域、および主被写体領域と判定された領域ブロックにはそれぞれ記号S,G,B,Mを付して示している。
【0073】
ステップS314では、結果出力部107は、検出した顔の位置に対する「推定した大きさの矩形枠」を出力する。歩行者を検出した場合は、該歩行者の位置に対する「所定サイズの矩形枠」を出力する。同様にステップS316では結果出力部107は、空領域、地面領域、および建物領域のそれぞれの領域ブロックに対するラベルを出力する。ステップS317では結果出力部107は、主被写体領域の領域ブロックに対するラベルを出力する。これらを最終の出力結果とする。
図6に結果出力部107による最終出力結果の一例を最終出力結果607として示す。
【0074】
ここで、物体の位置の補正や顔のサイズ推定のように本実施形態に示す属性情報統合方法をとることで、元の属性のスコアマップよりも高い解像度で最終出力結果607が得られていることに留意されたい。詳細な連結階層特徴や詳細な属性スコアマップを生成しようとすると、大きな演算コストがかかる。一方で本実施形態で示したような属性の統合方法であれば、低解像度の属性のスコアマップから比較的少ない演算コストで詳細な結果を得ることも可能である。この点は複数の属性を判定し、それらを統合して対象の認識を行うという本実施形態の特長の一つであるのでここで特に強調するものである。
【0075】
<第1の実施形態の変形例>
第1の実施形態ではニューラルネットワークとしてCNNを用いたが、使用可能なニューラルネットワークはCNNに限らない。複数の階層からなり、中間結果をマップとして生成するニューラルネットワークおよびそれに類する手法であれば、いずれにも適用可能である。そのような手法として、例えば各層の畳込みフィルタを重み共有(Weight Share)しない非CNNタイプのニューラルネットワークなどが考えられる。
【0076】
またさらに別の例として属性判定部205としてSVMでなく、CNNと同じ畳込み処理を採用した形態を用いることも考えられる。この派生の形態においては、属性判定部205の畳込み処理のパラメータと、前段のニューラルネットワーク102のパラメータを同時に誤差逆伝搬法で学習することも可能である。この場合、それぞれを独立に学習した場合よりも認識タスクの精度が向上することが期待できる(これはend-to-end学習と呼ばれ、非特許文献1等で広く公知であるので詳細を略する)。
【0077】
また第1の実施形態では連結階層特徴を生成する際に特徴マップに対してアップサンプル処理を施したが、ここでさらに派生の形態として、非特許文献3で開示されているような逆畳込み(Deconvolution)と呼ばれる方法を用いることも考えられる。形態の例を
図10に示す。逆畳込みフィルタ407a及び407bの処理により、特徴マップ403b、403cからそれぞれ2倍、4倍の解像度の特徴マップを生成している。またこの逆畳込みフィルタ407a及び407bについても属性判定部205およびニューラルネットワーク102と一体的に誤差逆伝搬法で学習することができる。本派生形態であれば、単純なアップサンプルを用いた場合よりも認識タスクの精度が向上することが期待できる。またさらに別の形態として、属性統合部106についてもルールベースではなくCNNと同じ畳込み処理を採用した形態を用いることも考えられる。このように、各モジュールにはさまざまな派生の形態が考えられ、特定の形態に限定されない。
【0078】
[第2の実施形態]
本実施形態を含め、以下の各実施形態や各変形例では、第1の実施形態との差分について重点的に説明し、以下で特に触れない限りは第1の実施形態と同様であるものとする。本実施形態では、人物等の物体の姿勢変動にロバストな認識を行う形態について説明する。
【0079】
非特許文献1のような従来手法では、さまざまなサイズや姿勢の物体に対して検出精度を向上させるために、物体候補領域(以降、関心領域)を設定することがある。しかし従来手法では、画像上に複数個の関心領域を設定し、関心領域ごとにニューラルネットワークの特徴量を集計するため、演算コストが大きい。また、物体の姿勢変動に対応するためにサイズや縦横のアスペクト比を様々に変えた関心領域を多数設定することもよく行われる。本実施形態では上記とは異なる方法で、演算コストの大きな処理を行うことなくサイズや姿勢の変動に対してロバストに物体の検出を行う形態の一つを示す。
【0080】
本実施形態に係る画像処理装置の機能構成例について、
図11のブロック図を用いて説明する。
図11において
図1に示した機能部と同じ機能部には同じ参照番号を付しており、該機能部に係る説明は省略する。
図11の画像処理装置は、人物の検出に特化したものである。
図11に908a~908hを付して例示するように、人物は人物領域の枠のサイズ・傾き・アスペクト比によって8グループの見えのパターンに分類しておく。具体的には
図11では例えば以下のようなパラメータの組み合わせで8つのグループを定義している。
【0081】
グループ1:サイズ小,傾き0°, アスペクト比2
グループ2:サイズ小,傾き+45°,アスペクト比2
グループ3:サイズ小,傾き0°, アスペクト比1
グループ4:サイズ小,傾き-45°,アスペクト比2
グループ5:サイズ大,傾き0°, アスペクト比2
グループ6:サイズ大,傾き+45°,アスペクト比2
グループ7:サイズ大,傾き0°, アスペクト比1
グループ8:サイズ大,傾き-45°,アスペクト比2
本実施形態では、上記の8つのグループそれぞれを人物の8つの属性(人物属性)とする。人物属性判定部905は、各領域ブロックに8種類のいずれの人物が存在するのか、または人物が存在しないのかを判定する。人物属性判定部905a~905hはそれぞれ、担当するグループの人物が入力されたらそれと判定できるようにあらかじめ学習しておく。学習の手順は下記のように行う。
【0082】
(1)学習画像を用意し、予め画像中の人物に検出領域の枠を付与しておく。枠は位置・サイズ・傾きの3つのパラメータを持つ。(2)検出領域枠のサイズ・傾きによって人物の事例を8つのグループに分ける(非教師的な方法でクラスタリングしてもよいし、人手によってグループに分けてもよい)。(3)8つの属性判定器に、それぞれが担当するグループの人物データを正事例、人物以外の領域のデータを負事例として与え、連結階層特徴を説明変数として判別器を学習する。
【0083】
図12は人物の検出のための統合手順のフローチャートである。
図12のフローチャートは、
図9のフローチャートにおいて検出するものを人物としたもので、j番目の属性の代わりにj番目の人物属性としたものであり、処理は
図9のフローチャートと同様である。つまり、ステップS400~S409の各ステップにおける処理は、上記の点を除き、
図9のステップS301~S310と同様である。また、ステップS410~S412の各ステップにおける処理は、
図9のステップS311,S314,S315と同様である。然るに
図12のフローチャートにおける各ステップの説明は省略する。
【0084】
本実施形態の属性判定の例および結果出力例を
図13に示す。ここでは入力画像1201に対し、複数のサイズ・傾き・アスペクト比の検出領域枠の属性判定結果1202が得られる(尤度スコアの大きさを枠の色の濃さで示す)。これらの結果を属性統合部906が統合し、各領域ブロックについて最大尤度の候補枠(枠1203a、1203b)を入力画像1201に重ねたものを出力結果1203として出力する。その結果、
図12に示すように人物の姿勢に適合した傾きとサイズの検出領域枠が出力される。
【0085】
ここでは非特許文献1等とは異なり、物体の検出領域枠ごとに(都度の)特徴集計を行っていないことに留意されたい。また、事例をパターンの見えごとに8グループに分けている。これにより、属性の判定問題を容易にし、軽量な線形判別器でもパターンを判定できるようにしている点に留意されたい。
【0086】
なお本実施形態では検出枠の統合時に最大尤度の枠のみを残したが、派生の形態として第1の実施形態で行ったように重み付け和を利用して、人物の詳細なサイズを推定してもよい。またさらにアスペクト比や傾きの詳細な値を推定してもよい。これは式で表せば下記のようになる。
【0087】
【0088】
ただしここでLiはi番目の属性の尤度スコア、アスペクト比とは枠の縦のサイズを横のサイズで割った値である。なおさらに派生の形態として、人物の属性を8属性でなく、サイズ={大,中,小},傾き={右,中,左},アスペクト比={縦長,正方形,横長}の各3種類にグループ分けし、9種の属性判定を行う形態も考えられる。
【0089】
なおさらに別の派生の形態として、演算量の低減のために二段階の属性判定を行う工夫も考えられる。例えば認識時の手順として下記の例が考えられる。
(1) 第一の属性判定として3種類の人物サイズ={大,中,小}の判定を行う。
(2) (1)で3種類いずれかの尤度スコアが高かった領域ブロックに対してのみ、サイズ・傾き・アスペクト比で8種類に分類した第二の属性判定を行う。
【0090】
またさらに別の派生の形態として、グループ分けをせず、サイズ、傾き、アスペクト比それぞれの値を個別に回帰器で推定する形態も考えられる。ここに挙げた形態以外に判定対象の属性・属性判定の順序・統合の順序、は様々に考えられ、特定の形態に限定されない。
【0091】
[第3の実施形態]
本実施形態は、カメラ情報の利用を中心とした形態であって、本実施形態の認識タスクは空の領域を判定することを目的とする。本実施形態に係る画像処理装置の機能構成例について、
図14のブロック図を用いて説明する。
【0092】
本実施形態に係る画像処理装置は、カメラ情報入力部1308を有することを1つの特徴とする。また、別の一つの特徴は、属性判定部1305が、青空と雲の領域という、空に関しての詳細なサブカテゴリの領域についての尤度判定部1305a、1305bを含むことである。またさらに別の一つの特徴は、属性判定部1305が、水面、白壁のように、空と誤り易いカテゴリについての尤度判定部1305c,1305dを含むことである。
【0093】
このように直接の認識対象の属性(青空、雲)のみならず、認識タスクの手掛かりとなる間接的な対象の属性(水面、白壁)も属性判定部1305に含めることができる。これにより総合的にパターンの判別が行われ、認識タスクの精度が向上することが期待できる。
【0094】
本実施形態に係る画像処理装置の動作について、
図15のフローチャートに従って説明する。ステップS501~S504の各ステップの処理はそれぞれ、
図3のステップS1~S4と同様であるため、これらのステップに係る説明は省略する。また、ステップS505~S508の各ステップにおける処理は何れも、領域ブロックごとに各属性の尤度を判定する処理のため処理であり、第1の実施形態で説明したとおりであるため、これらのステップに係る説明は省略する。
【0095】
ステップS509では、カメラ情報入力部1308が、撮像時の水平線情報値をカメラ情報として入力する。ここでの水平線情報値とは、具体的には
図16(A)に示すようなものである。カメラ情報入力部1308は重力センサを備え、ステップS509aにおいて画像上の水平線の位置1501を推定する。さらにステップS509bにおいてカメラ情報入力部1308は、推定した水平線の位置1501から各領域ブロックが水平線の何ブロック上方あるいは下方にあるかの値を示す水平線情報値1502を生成する。
【0096】
ステップS510ではSVM1306が青空、雲、水面および白壁の4種類の属性スコア、および水平線情報値1502、に基づき各領域ブロックごとに空か否かの最終的な判定を行う。ここでは上記の5種類のマップ(尤度判定部1305a~尤度判定部1305dのそれぞれによる属性の属性スコアマップ1318、水平線情報値1502のマップ)を5次元の入力特徴量として、SVM1306が各領域ブロックごとに空の尤度を算出する。このように水平線に関するカメラ情報を併せて用いることで、例えば画像下方において空を反射している水面を空と誤判別することを抑制することができる。
【0097】
なお、空の尤度判定ができるよう事前に複数の学習画像データ1309、学習画像データに対応するカメラ情報1310、空か否かの教師値である各領域ブロックのカテゴリの教師値1311、を与えてSVMのパラメータを学習しておくものとする。
【0098】
カメラ情報を用いるその他の派生の形態として、
図16(B)に示すように、カメラの合焦情報値1504を用いる形態も考えられる。これは画像中で焦点のあっている焦点面(
図16(B)に記号×で示す)を0とし、該焦点面から各領域ブロックの被写体がどれだけ後ろあるいは前にあるかを数量化したマップである。カメラの合焦情報はカメラ情報入力部1308が別途備える像面位相差AFと呼ばれるような光学的機構から生成されるものとする。上記の合焦情報値1504を併用することで、例えば焦点面から後方に離れてボケている白い人工物を空と誤判定することなどを抑制することができる。
【0099】
さらにカメラ情報を用いるその他の派生の形態として、
図16(C)に示すように、カメラの測光情報値1505を用いる方法も考えられる。これは画像の物理的な光量を表す数値であり、カメラ情報入力部1308が別途備えるカメラの測光センサの結果等から得ることができる。この測光情報値の一形態はBv値と呼ばれるものであり、特許文献1等で公知であるため詳細は略する。測光情報値を併せて用いることで、RGB画像のみを用いるのに比べて、白い壁と曇り空の誤判別等を抑制することができる。
【0100】
また別の派生の形態として、連結階層特徴103を生成する際に、カメラ情報のマップを連結して用いることも考えられる。この場合の画像処理装置の機能構成例を
図17に示す。
図17に示す如く、3種類のカメラ情報(3次元)である「水平線情報値のマップ」、「合焦情報値のマップ」、「測光情報値のマップ」は連結階層特徴の生成時に連結され、尤度判定部1305a~1305dに送られる。尤度判定部1305a~1305dの各判別器は連結階層特徴の特徴量と3次元のカメラ情報を特徴量として用いてそれぞれ属性の判別を行う。尤度判定部1305a~1305dは、事前に複数の学習画像データ1309、学習画像データに対応するカメラ情報1310、各領域ブロックのカテゴリの教師値1311、を用いて各属性の尤度が判定できるように判別器のパラメータを学習してあるものとする。なお
図14のようにカメラ情報を属性統合の際に用いる形態と、
図17のように属性判定の際に用いる形態と、いずれがより好適かは学習データの量と質等に依って変わる。
【0101】
以上、本実施形態ではカメラ情報の追加的な利用の形態について説明した。また本実施形態では、属性判定の対象として詳細なサブカテゴリ、および間接的な属性を用いる効果についても説明した。サブカテゴリや間接的な属性の使用は、他の認識タスクにも適用できる。例えば人物検出時に対象を性別のサブカテゴリで分けて属性判定する、格好の違い(帽子やメガネの有無等)のサブカテゴリで分けて判定する、等の形態なども考えられる。また、人物検出タスクにおいて、誤判別を防ぐために犬の属性判定を設ける、といった形態も考えられる。
【0102】
なお、サブカテゴリは、物体の奥行き回転、物体の面内回転、物体の姿勢、物体の形状、物体の材質、物体の関心領域の形状、物体の関心領域のサイズ、物体の関心領域のアスペクト比、のうち少なくとも一つに関して区別されたサブカテゴリである。
【0103】
[第4の実施形態]
本実施形態では、多種の認識タスクを統合的に処理する形態について説明する。本実施形態に係る画像処理装置が行う認識タスクは領域判定、画像シーン分類、審美性判定、の3種類である。
【0104】
本実施形態に係る画像処理装置の機能構成例を
図18に示す。また、本実施形態に係る画像処理装置の動作について、
図19のフローチャートに従って説明する。ステップS601~S603はこれまでの実施形態と同様の処理を行って連結階層特徴を生成する処理である。ステップS604は属性判定部1708が各領域ブロック(x,y)ごとにシーン属性の判定を行う処理である。ここではシーン属性として屋内シーン、人物ポートレートシーン、スポーツシーン、等のN個のシーン分類を想定している。属性判定部1708は、連結階層特徴F(x,y)を入力特徴とし、当該画像がNシーンのいずれに属する画像であるかを領域ブロック(x,y)ごとに判定する。判定には一般的な決定木を分類器として用いる。階層特徴F(x,y)は領域ブロックx,yについての特徴であるが、ニューラルネットワークの高層の特徴を含んでいる。高層の特徴には広い範囲の画像パターンを集約した情報が含まれるため、このような画像シーン分類判定も可能であることに留意されたい。
【0105】
次にステップS605では属性統合部1709が各領域ブロックのシーン属性の結果を統合して画像全体のシーン判定を行う。ここでは判別器として線形SVMを用いる。各領域ブロックのシーン属性の尤度スコアを連結して特徴量とし、線形SVMで入力画像をいずれのシーンに分類するかの学習・判定を行う。
【0106】
なおシーン属性判定時のシーンのカテゴリと属性統合時のカテゴリが同じである必要はない。例えばシーン属性の判定において「サッカー」「野球」「山岳」「海辺」のように詳細な分類の判定を行い、シーン属性統合時にはより上位の「スポーツシーン」「自然風景シーン」等の分類を判定するような形態も考えられる。目的の認識タスクの手掛かりになるものであれば属性のカテゴリが様々な形態を取り得ることはこれまでの実施形態と共通である。
【0107】
次にステップS606で属性判定部1705が属性スコアマップを求める。これは第1の実施形態等で空領域に対して行った方法と同じであるため説明を省く。次にステップS607では属性統合部1706が前段で求めた画像のシーンの尤度を考慮して、各領域ブロックの種類を判定する。ここで具体的には下式のような式を用いる。
【0108】
【0109】
ここでP(c|f)はある領域ブロックの領域属性がcである事後確率、fは入力特徴、P(c|s)はシーンsにおいて領域属性cが出現する事前分布、P(s)はステップS605で求めたシーン尤度を確率化した値、である。これにより、例えば屋内シーンであれば海領域の出現は少ないといった、事例の事前分布を考慮した領域の種類の判定が可能になる。
【0110】
次にステップS608では属性判定部1710が審美性の属性を領域ブロック(x,y)ごとに判定する。これは非特許文献6などに公知なようにあらかじめ画像と画像の審美性評価値を対応させた学習データを用意しておき、連結階層特徴F(x,y)を入力特徴とし、ロジスティック回帰等の回帰器によって審美性スコア値を学習・推定するものである。またこの際に、属性判定部1710が属性統合部1709からシーンの尤度を受け取り、回帰器の重み辞書をシーンに応じて変更してもよい。これは非特許文献6で公知の方法である。
【0111】
次にステップS609では統合部1711が審美性の属性を統合して審美性判定の結果のスカラ値を得る。統合部1711としてここでは複数層からなるCNNを用いる。当該CNNは各領域ブロック(x,y)の審美性スコアマップを入力とし、画像全体の審美性評価値を出力層が正しく出力できるよう、重みパラメータを回帰学習したネットワークであるとする。このようなCNNを用いた回帰学習の方法については、非特許文献1等に公知のためここでは詳細を省く。上記以外の統合部1711の他の形態として各領域ブロックのアンサンブル平均を用いる形態や線形判別器を用いる形態も考えられる。これらは計算量と精度のバランスに応じて選択することができる。最後にステップS610では結果出力部1712が領域判定結果、シーン判定結果、審美性判定結果、を出力して動作を終了する。
【0112】
以上のように、複数の認識タスクを統合的に実行する方法について述べた。本画像処理装置においてもっとも演算コストのかかる処理はCNNの演算処理である。本形態はこのCNNの演算を一度しか行わない。代わりに後段の軽量な属性判定処理でもって複数の属性情報を推定し、同情報を属性統合部で相互作用させて統合することで、精度の高い認識結果を得ている。このような方法は本実施形態に係る画像処理装置の特長の一つである。
【0113】
ここで派生の形態として属性統合部の一部あるいは全部をニューラルネットワークの全結合層と呼ばれるモジュールで代替するような形態も考えられる。その場合、第1の実施形態でも述べたように各モジュールのパラメータは誤差逆伝搬等の方法で統一的に最適学習することができる。
【0114】
またさらに派生の形態として
図20に示すような形態も考えられる。本派生形態は
図18の構成に対して更に辞書保持部1707をさらに備える。本派生形態の属性統合部1709は、シーン種を判定した後に、シーンの尤度を属性判定部1705に送る。属性判定部1705はシーンの尤度の情報を受け取り、尤度が上位だったシーンで特に出現頻度の高い領域カテゴリのみを属性判定の対象とする。属性判定部1705は辞書保持部1707から属性判定対象の辞書を読み出して属性判定を行う。このように工夫してシーン認識の結果を利用して属性判定を行えば、演算量の削減とノイズに対するロバスト性の向上が期待できる。
【0115】
またさらに他の派生の形態として、シーン分類については属性の判定処理を行わず、連結階層特徴を元に画像シーン分類手法で代表的なBag of Words手法(非特許文献7)などでシーン分類を行う方法も考えられる。
【0116】
またさらに他の派生の形態として、属性判定部1705が「人」「芝生」といった領域属性の判定を行い、領域属性のスコアマップ1714を生成する。これを属性統合部1709が受け取って「スポーツシーン」か否かのシーン判定に用いる、といった形態も考えられる。このように属性判定の結果は認識タスク間で共通して利用することができ、画像処理装置の全体の処理量を軽減できる可能性がある。さらに他の派生の形態としては同じく
図20中に示すようにユーザ指示部1713をさらに備える形態も考えられる。ユーザ指示部1713は領域判定・シーン認識・審美性判定の複数の認識タスクの結果のうち、いずれを出力するのかの選択指示をユーザから受け付けるものである。マルチタスクの認識を行う場合、常に全ての結果を出すと結果が見難くなる。そこでこのような手法でユーザの希望や撮影モードに応じて出力結果を変更することができる。
【0117】
なお、上記の各実施形態や各変形例の一部若しくは全部を適宜組み合わせて使用しても構わないし、上記の各実施形態や各変形例の一部若しくは全部を選択的に使用しても構わない。
【0118】
このように、上記の各実施形態や変形例によれば、ニューラルネットワークの階層的な特徴量と軽量な判別器で複数の属性を判定し、それらを統合することで認識処理を実行する。これにより従来のような演算コストの大きな処理を行うことなくサイズや姿勢にロバストな物体検出を高速に行うことができる。またさらに別の形態においては、物体の検出、領域のカテゴリ判定、画像シーンのカテゴリ分類、画像情報の審美性の判定などを同時に行うことができる。またさらに別の形態においては、サイズ、アスペクト比、もしくは傾きなど、様々に見えの異なる物体を高速に検出することができる。
【0119】
[第5の実施形態]
図1,2,11,14,17,18,20に示した各機能部はハードウェアで実装しても良いが、ソフトウェア(コンピュータプログラム)で実装しても良い。後者の場合、このコンピュータプログラムを実行可能なコンピュータ装置は、上記の各実施形態や変形例において説明した画像処理装置に適用可能である。上記の各実施形態や変形例において説明した画像処理装置に適用可能なコンピュータ装置のハードウェア構成例について、
図21のブロック図を用いて説明する。
【0120】
CPU2101は、RAM2102やROM2103に格納されているコンピュータプログラムやデータを用いて各種の処理を実行する。これによりCPU2101は、コンピュータ装置全体の動作制御を行うと共に、上記の画像処理装置が行うものとして上述した各処理を実行若しくは制御する。
【0121】
RAM2102は、ROM2103や外部記憶装置2106からロードされたコンピュータプログラムやデータ、I/F2107を介して外部から受信したデータ、を格納するためのエリアを有する。更にRAM2102は、CPU2101が各種の処理を実行する際に用いるワークエリアを有する。このようにRAM2102は、各種のエリアを適宜提供することができる。ROM2103には、書換不要のコンピュータプログラムやデータが格納されている。
【0122】
操作部2104は、キーボードやマウスなどのユーザインターフェースにより構成されており、ユーザが操作することで各種の指示をCPU2101に対して入力することができる。
【0123】
表示部2105は、CRTや液晶画面などにより構成されており、CPU2101による処理結果を画像や文字などでもって表示することができる。なお、表示部2105は、プロジェクタ装置等、画像や文字を投影面に投影する投影装置であっても良い。
【0124】
外部記憶装置2106は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。外部記憶装置2106には、OS(オペレーティングシステム)や、上記の画像処理装置が行うものとして上述した各処理をCPU2101に実行若しくは制御させるためのコンピュータプログラムやデータが保存されている。外部記憶装置2106に保存されているコンピュータプログラムには、
図1,2,11,14,17,18,20に示した各機能部の機能をCPU2101に実現させるためのコンピュータプログラムが含まれている。また、外部記憶装置2106に保存されているデータには、上記の説明において既知の情報として説明したものが含まれている。外部記憶装置2106に保存されているコンピュータプログラムやデータは、CPU2101による制御に従って適宜RAM2102にロードされ、CPU2101による処理対象となる。
【0125】
I/F2107は、外部の機器とのデータ通信を行うためのものであり、例えば、I/F2107に撮像装置を接続し、撮像装置から認識対象となる撮像画像を入力するようにしても良い。
【0126】
上記のCPU2101、RAM2102、ROM2103、操作部2104、表示部2105、外部記憶装置2106、I/F2107は何れもバス2108に接続されている。
【0127】
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0128】
101:画像入力部 102:ニューラルネットワーク 104:連結特徴生成部 205:属性判定部 106:属性統合部 107:結果出力部