JP6137916B2 - 信号処理装置、信号処理方法、及び、信号処理システム - Google Patents

信号処理装置、信号処理方法、及び、信号処理システム Download PDF

Info

Publication number
JP6137916B2
JP6137916B2 JP2013076454A JP2013076454A JP6137916B2 JP 6137916 B2 JP6137916 B2 JP 6137916B2 JP 2013076454 A JP2013076454 A JP 2013076454A JP 2013076454 A JP2013076454 A JP 2013076454A JP 6137916 B2 JP6137916 B2 JP 6137916B2
Authority
JP
Japan
Prior art keywords
result data
encoding
processing
data
function
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
Application number
JP2013076454A
Other languages
English (en)
Other versions
JP2014203135A5 (ja
JP2014203135A (ja
Inventor
大介 中嶋
大介 中嶋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2013076454A priority Critical patent/JP6137916B2/ja
Publication of JP2014203135A publication Critical patent/JP2014203135A/ja
Publication of JP2014203135A5 publication Critical patent/JP2014203135A5/ja
Application granted granted Critical
Publication of JP6137916B2 publication Critical patent/JP6137916B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Analysis (AREA)

Description

本発明は、画像データ等からパターン識別に好適な特徴量を抽出する信号処理技術に関するものである。
画像中に出現する特定の画素パターンを検出したり、他と識別したりする画像処理が知られている。前者は例えば顔検出(画像中から顔らしいパターンを検出する)であり、後者は例えば顔認証処理(検出した顔から個人を特定する)である。例えば、顔認証処理は、あらかじめ顔画像を特徴量データに変換して登録しておき、与えられた顔画像(顔領域の部分画像)を同様の特徴量データに変換し、予め登録してある顔画像の特徴量との類似性を判定し、その結果に応じて個人を識別する処理である。
デジタルカメラ等により撮影したスナップ写真を用いて顔認証処理を実行する場合、顔画像には様々な照明条件下で撮影されたものが含まれる。照明条件が異なる顔画像同士であっても正しく識別するために、パターン識別に用いる特徴量は、画素パターンの照明条件による変動に対して頑健であることが望ましい。そのような特性を備えた特徴量としてLBP(Local Binary Pattern)が提案されている(非特許文献2)。
また、入力画像に対して数十種のGabor Waveletフィルタ処理を施し、各フィルタ処理後データからLBPを抽出することにより得られる特徴量が提案されている。例えば、非特許文献1、6においてLGBP(Local Gabor Binary Pattern)が提案されている。
非特許文献6によれば、顔認証の特徴量として、入力画像から単純にLBPを抽出したものを用いる代わりに、入力画像にGabor Waveletフィルタ処理を適用した結果からLBPを抽出したもの(LGBP)を用いる方が、より顔認証精度が良くなる。
一方、識別対象に適した空間フィルタを学習し、学習により得られた空間フィルタを用いて特徴量を抽出する手法として非特許文献4のCNN(Convolutional Neural Networks)が提案されている。CNNでは入力画像に対して階層的に空間フィルタ処理を施すことにより特徴量を抽出する。空間フィルタの学習には、一般的に誤差逆伝播(Backpropagation)法が用いられる。誤差逆伝播法は教師有り学習手法であり、学習データとその学習データに対するCNN出力の正解データの組を用いて学習する。つまり、学習データに対するCNN出力と正解データとの誤差が小さくなるように空間フィルタの係数を更新する。
先に述べたように、LGBPはパターン識別に有効な特徴量として顔認証等に広く利用されている。しかし、LGBPにおいて使用するGabor Waveletフィルタは、次元数、データ数が多く、処理負荷が大きいという問題がある。また、Gabor Waveletフィルタは、元々特定のパターン識別用として設計されたものではない。そのため、特定のパターン識別(例えば顔画像の識別)を目的とする場合には、Gabor Waveletフィルタより適切な空間フィルタが存在する可能性がある。また、上述したようにCNNは学習により識別対象に適した空間フィルタを設計することができる。そのため、実際の識別対象(例えば顔画像の識別)の学習に基づき設計された空間フィルタをGabor Waveletフィルタの代わりに用いることが考えられる。
W. Zhang,S. Shan,W. Gao,X. Chen,and H. Zhang,"Local Gabor Binary Pattern Histogram Sequence (LGBPHS): A Novel Non-Statistical Model for Face Representation and Recognition",Proc. IEEE International Conference on Computer Vision,pp. 768-791,2005. T. Ojala,M. Pietikainen,and D. Harwood,"A Comparative Study of Texture Measures with Classification Based on Featured Distributions",Pattern Recognition,Vol. 29,pp. 51-59,1996. 村瀬一郎,金子俊一,五十嵐悟,"増分符号相関によるロバスト画像照合",電子情報通信学会論文誌 D-II,Vol. J83-D-II,No. 5,pp. 1323-1331,2000. Y. LeCun,K. Kavukvuoglu, and C. Farabet,"Convolutional Networks and Applications in Vision", Proc. IEEE International Symposium on Circuits and Systems,pp. 253-256,2010. S. Chopra,R. Hadsell,and Y. LeCun,"Learning a similarity metric discriminatively,with application to face verification", Proc. IEEE Conference on Computer Vision and Pattern Recognition,pp. 539-546,2005. Z. Lei,S. Liao,R. He,M. Pietikainen,S. Z. Li,"Gabor Volume Based Local Binary Pattern for Face Representation and Recognition",Proc. IEEE International Conference on Automatic Face & Gesture Recognition,pp. 1-6,2008.
しかしながら、CNNの学習方法である誤差逆伝播法を適用するためには、入力画像に対する一連の画像処理におけるすべての処理要素が連続関数(微分可能)である必要がある。つまり、LBP及び増分符号のような符号化には不連続関数であるステップ関数が含まれるため、誤差逆伝播法では学習することができない。その結果、パターン識別に好適な特徴量を抽出可能とするCNNを学習により最適化することが出来ない。
本発明は上述の問題点に鑑みなされたものであり、画像データ等からパターン識別に好適な特徴量を抽出可能とする技術を提供することを目的とする。
上述の問題点を解決するため、本発明の信号処理装置は以下の構成を備える。すなわち、信号処理装置において、入力されたデータに対して空間フィルタ処理を実行することで処理結果データを生成する生成手段と、前記処理結果データに対して、不連続関数を用いる所定の符号化処理を実行し符号化処理結果データを生成する第1の符号化手段と、前記処理結果データに対して、前記不連続関数を連続関数で近似した近似符号化処理を実行し近似符号化処理結果データを生成する第2の符号化手段と、前記近似符号化処理結果データに基づいて、前記空間フィルタ処理の重み係数を更新する更新手段と、前記更新手段による重み係数の更新を行う場合には前記処理結果データを前記第2の符号化手段に提供し、他の場合には前記処理結果データを前記第1の符号化手段に提供する、ように制御する制御手段と、を有する。
本発明によれば、画像データ等からパターン識別に好適な特徴量を抽出可能とする技術を提供することができる。
第1実施形態における信号処理の概要を説明する図である。 第1実施形態における符号化処理を説明する図である。 第1実施形態における近似符号化処理を説明する図である。 第1実施形態におけるCNN学習器の概念図である。 第1実施形態におけるデータ処理装置の構成を示す図である。 第1実施形態におけるデータ処理装置における各モードの動作を示すフローチャートである。 tanh関数の係数と形状の関係を説明する図である。 入力画素値からLBPを抽出する処理を説明する図である。 入力画素値から増分符号を抽出する処理を説明する図である。 CNNのネットワーク構成のメモリへの格納例を説明する図である。 CNNのフィルタ係数のメモリへの格納例を説明する図である。 CNNのネットワーク構成を例示的に示す図である。 顔認証の結果画像の一例を示す図である。 第2実施形態におけるデータ処理装置の構成を示す図である。 第2実施形態における信号処理部の構成を示すブロック図である。 第3実施形態によるデータ処理システムの構成を示す図である。 第3実施形態におけるクライアント装置の構成を示す図である。 第3実施形態における特徴抽出部の構成を示すブロック図である。 パルス関数と当該パルス関数を近似するガウス関数を示す図である。
以下に、図面を参照して、この発明の好適な実施の形態を詳しく説明する。なお、以下の実施の形態はあくまで例示であり、本発明の範囲を限定する趣旨のものではない。
(第1実施形態)
本発明に係る情報処理装置の第1実施形態として、顔画像から顔認証に適した特徴量を抽出するデータ処理装置を例に挙げて以下に説明する。ここで、顔認証とは、入力された顔画像から抽出された特徴量と、予め作成しておいた登録データとを比較することにより個人を特定する処理を意味する。なお、第1実施形態では顔認証における特徴抽出処理に適用する例について説明するが、本発明は他のパターン識別における特徴抽出処理に対しても適用可能である。
<1.信号処理の概要>
図1は、第1実施形態における信号処理の概要を説明する図である。100は入力画像である。109はCNN(Convolutional Neural Networks)処理であり、入力画像100に対してCNN処理を実行する。110は符号化処理であり、CNN処理結果データに対して所定の符号化処理を実行する。CNN(Convolutional Neural Networks)処理109、符号化処理110(LBP及び増分符号)の詳細について以下に説明する。
<1.1.CNN(Convolutional Neural Networks)処理>
CNNは、入力画像を順方向に伝播させ、複数の異なる空間フィルタを用いたコンボリューション演算を施すことにより特徴量を抽出するニューラルネットワークである。ここでは、コンボリューション演算結果を格納する2次元データを”特徴抽出面”と呼ぶ。
続いて、特徴抽出面を重なりのない局所領域に分割し、各局所領域の平均値算出(統合処理)を実行する。平均化することにより、入力画像中の識別対象の微小な幾何学的変動(平均移動や回転など)に対する頑健性が向上する。ここでは、このような処理により生成された2次元データを”統合面”と呼ぶこととする。そして、統合面に対して再び複数の異なる空間フィルタを用いたコンボリューション演算を施すことにより特徴抽出面を生成する。CNNはこの様に特徴抽出処理と統合処理を階層的に繰り返す事で所望の特徴量を抽出する。
101a〜cは第1階層の特徴抽出面であり、2次元の空間フィルタによるコンボリューション演算結果を格納する2次元データである。105は入力画像100から特徴抽出面101cを算出するための2次元のコンボリューション演算の入力と出力の関係を表す。以下の式(1)は入力画像100から特徴抽出面101cを生成するコンボリューション演算の計算式である。
Figure 0006137916
i(x,y):座標(x,y)での入力画素値
u(x,y):座標(x,y)での演算結果
w(c,r):座標(x+c,y+r)におけるフィルタ係数
width,height:フィルタサイズ
i(x,y)は入力画像100の画素値(輝度値)に相当する。ここで得られたu(x,y)を双曲線正接(tanh)関数等により非線形処理した結果が特徴抽出面101cの画素値となる。101a,bも同様に入力画像100に対するコンボリューション演算により生成する。ここで、101a〜cを生成するために使用する空間フィルタは、それぞれ係数が異なる。
102a〜cは統合面であり、統合処理の結果を格納する2次元データである。106は特徴抽出面101cから統合面102cを算出するための統合処理の入力と出力の関係を表す。107は統合面102cから特徴抽出面103cを算出するための2次元のコンボリューション演算の入力と出力の関係を表す。103a〜cは第3階層の特徴抽出面であり、前階層の統合面102a〜cの全てに対するコンボリューション演算出力結果をtanh関数等により非線形処理した値を足し合わせた結果である。従って、図1に示した例では、統合面102a〜cから特徴抽出面103a〜cを生成するために9種類の異なる空間フィルタを使用する。
学習により決定するパラメータは、特徴抽出面を生成するために使用する空間フィルタの係数である。図1に示した例では、入力画像100から特徴抽出面101a〜cを生成するために使用する空間フィルタ3枚、統合面102a〜cから特徴抽出面103a〜cを生成するために使用する空間フィルタ9枚の計12枚の空間フィルタの係数を学習により決定する。
<1.2.符号化処理>
符号化処理110は、CNN処理結果データ(図1に示した例では、特徴抽出面103a〜c)に対して、注目画素(注目領域)と参照画素(参照領域)との大小関係に基づく符号化を施す処理である。このような符号化処理としては、LBPもしくは増分符号がある。
<1.2.1.LBP>
図8は、入力画素値からLBPを抽出する処理を説明する図である。LBPは、注目画素(x,y)の画素値と、当該注目画素を取り囲む8個の参照画素(x+x,y+y)の画素値とに基づき、式(2)で計算される特徴量に符号化する処理である。
Figure 0006137916
ここで、
i(x,y):座標(x,y)での入力画素値
LBP(x,y):座標(x,y)でのLBP
(x,y):参照画素の注目画素に対する相対位置
={−1,0,1},y={−1,0,1},x +y ≠0
ただし、
Figure 0006137916
である。
図8に示した例では、(x,y)は、注目画素の左隣の画素を起点として、注目画素を反時計まわりに囲うようにとっている。具体的には、
(x,y)=(−1,0)
(x,y)=(−1,1)
(x,y)=(0,1)
・・・
(x,y)=(−1,−1)
としている。
なお、式(3)はステップ関数(階段関数)であり、参照画素値が注目画素値以上である場合は1、その逆の場合は0となる。LBPは、注目画素と参照画素との大小関係のみを表現するため、照明条件の変化により画素値が変動した場合でも、注目位置と参照位置の明るさの大小関係が変化しない限り同一視することができるという特性がある。
<1.2.2.増分符号>
図9は、入力画素値から増分符号を抽出する処理を説明する図である。上述のLBPの代わりに非特許文献3の増分符号を適用してもLBPと同様の効果が得られる。座標(x,y)における増分符号は次式により計算される。
Figure 0006137916
i(x,y):座標(x,y)での入力画素値
IS(x,y):座標(x,y)での増分符号
(x,y):参照画素の注目画素に対する相対位置
={−1,0,1},y={−1,0,1},x +y ≠0
式(2)と式(4)を比較すると、LBPにおいてn=0としたものが増分符号に相当することが分かる。図9に示した例では、注目画素に対する相対位置が(x,y)=(0,−1)である画素を参照画素として使用している。
<1.2.3.符号化処理の例>
図2は、第1実施形態における符号化処理(第1の符号化処理)を説明する図である。なお、図1と同じ構成要素については同じ番号を付与している。ここでは、説明を簡単にするために増分符号を用いる場合の例について説明する。LBPを用いる場合であっても増分符号と同様に適用可能である。
符号化処理結果データ104a〜cはCNNの出力である特徴抽出面103a〜cに対して符号化処理を施した結果を格納する2次元データである。108は特徴抽出面103cから符号化処理結果データ104cを算出するための符号化処理における入力と出力の関係を表す。
202a〜cは画素比較処理であり、特徴抽出面103a〜cにおける注目画素203a〜cの画素値と、参照画素204a〜cの画素値を比較する。ここでは、参照画素204a〜cから注目画素203a〜cの画素値を引いた差を計算する。
201a〜cは比較処理結果データであり、特徴抽出面103a〜cを画素比較処理202a〜cにより処理した結果を格納する2次元データである。比較処理結果データ201a〜cは、比較に使用する参照画素204a〜cの相対位置に応じて、異なる方向特性を備えた特徴量となる。例えば、比較処理結果データ201bを生成する際は、注目画素203bの上隣の画素を参照画素204bとするため、生成された比較処理結果データ201bは縦方向の画素値の変化に対応する方向特性を持つ特徴量となる。ここでは、様々な方向特性を備えた特徴量を生成するために、参照画素204a〜cの相対位置はそれぞれ異なる方向(横、縦、斜め)に設定する。
符号化処理結果データ104a〜cは比較処理結果データ201a〜cをステップ関数処理205により処理した結果を格納する2次元データである。ステップ関数処理205は、比較処理結果データ201a〜cの各画素値を入力として式(3)に示したステップ関数を計算する。式(5)は特徴抽出面103a〜cから、符号化処理結果データ104a〜cを生成する計算式である。
Figure 0006137916
u(x,y):座標(x,y)での前階層の面の画素値
v(x,y):座標(x,y)での演算結果
(x,y):参照画素の注目画素に対する相対位置
図2に示した例では、参照画素の相対位置(x,y)は、204a〜cについてそれぞれ(−1,0)、(0,−1)、(1,−1)である。
符号化処理結果データ104a〜cは、特徴抽出面103a〜cにおける注目画素203a〜cの画素値と、参照画素204a〜cの画素値の大小関係のみを表現する。そのため、照明条件の変化により特徴抽出面103a〜cの画素パターンが変動した場合でも、注目画素203a〜cの画素値と参照画素204a〜cの画素値の大小関係が反転しない限り符号化処理結果データ104a〜cの画素値は変化しない。
<2.学習によるフィルタ係数の決定>
第1実施形態では、図1に示した信号処理の出力結果がパターン識別対象に有効な特徴量となるようにCNNのフィルタ係数を学習により決定する。
<2.1.学習器>
図4は、第1実施形態におけるCNN学習器の概念図である。ここでは、公知のSiamese学習器(非特許文献5)を使用する。Siamese学習器は、入力データのペアと、入力データのペアが同じクラスであるかどうかを示すラベルとを基に学習を行う学習器である。具体的には、同じクラスの入力データに対してはCNN出力間の距離が小さく、逆に異なるクラスの入力データに対してはCNN出力間の距離の大きくなるようにCNNを学習する。
学習データベース406は、学習データを格納するデータベースである。ここで、学習データとは、顔画像と顔画像に対応する人物IDとを含むデータのことである。ここで、人物IDとは、顔画像に対応する人物を識別するためのものであり、例えば整数値で表わされる。例えば、人物IDはデータベースに登録された順に0、1、2という値が設定されるようにする。また、名前やニックネーム等の文字列データを人物IDに関連付けてもよい。顔画像は好ましくは、両目が水平に並び、かつ予め定められたサイズとなるように画像変換されたものを使用する。ここで、信号処理の出力結果が各種変動に対して頑健な特徴量となるために、顔画像はパン・チルト方向への顔向き、表情、照明条件などについて様々な変動を含むことが望ましい。
画像ペア選択407は、学習データベース406から学習に使用する顔画像のペアを選択する。ここで、顔画像のペアは、学習データベース406に格納されているすべての顔画像の中から毎回ランダムに選択するものとする。そして、選択した顔画像401a,bをそれぞれCNN処理109a,bに入力する。また、選択した顔画像のIDが同じである場合は0、異なる場合は1という値をラベル405に設定する。ラベル405は、誤差(Loss)計算404においてLossを計算する際に使用する。
CNN処理109a,bは、図1に示したCNN処理109と同じネットワーク構成のCNN処理を実行する。CNN処理109a,bは、画像ペア選択407により選択された顔画像401a,bに対してCNN処理を実行してCNN処理結果データを生成する。なお、CNN処理109a,bは同じフィルタ係数408を共有する。
符号化処理110a,bは、図1を参照して説明した符号化処理110と同じ処理を実行する。符号化処理110a,bはCNN処理109a,bが生成したCNN処理結果データを符号化して符号化処理結果データを生成する。ここで、CNN処理109a,b及び符号化処理110a,bは同じ構成であり、CNN処理109a,bのフィルタ係数は同一であるため、入力画像が同じであれば符号化処理110a,bが生成する符号化処理結果データは同じものとなる。
距離計算403は、符号化処理110a,bが生成した2つの符号化処理結果データの距離を計算する。ここでは、距離尺度として、符号化処理結果データをベクトルとした場合の間のL1ノルムを使用する。例えば、符号化処理結果データ1面あたりのサイズをW×H、符号化処理結果データの面の数をNとすると、ベクトルの次元はW×H×Nとなる。なお、ユークリッド距離、コサイン距離など、他の距離尺度を使用してもよい。式(6)は、符号化処理110a,bが生成した符号化処理結果データ間のL1ノルムを計算する計算式である。
Figure 0006137916
w:CNNのフィルタ係数
E(w):符号化処理結果データ間のL1ノルム
(w):入力画像nから生成した符号化処理結果データ(n:画像ペア内のインデックス)
wはCNNのフィルタ係数を要素とするベクトルである。
なお、v、EはいずれもCNNのフィルタ係数により値が変化するためwの関数である。v(w)、v(w)はそれぞれ顔画像401a,bから生成された符号化処理結果データである。
Loss計算404では、距離計算403が計算したL1ノルムと、画像ペア選択407が生成したラベル405とに基づきLossを計算する。式(7)は、L1ノルムとラベル405からLossを計算する計算式である。
Figure 0006137916
Y:ラベルの値(0:画像ペアの人物IDが同じ、1:画像ペアの人物IDが異なる)
L(w):誤差(Loss)
Q:E(w)の上限値に設定した定数
である。
顔画像401a,bの人物IDが同じ場合、ラベル405としてY=0が入力される。この場合LossであるL(w)は、E(w)の値が小さければ小さな値に、逆にE(w)の値が大きければ大きな値となる。これは、同じ人物に対しては、符号化処理結果データ間の距離が小さいほどLossの値は小さくなることを意味する。
また、顔画像401a,bの人物IDが異なる場合、Y=1となる。この場合LossであるL(w)は、E(w)の値が小さければ大きな値に、逆にE(w)の値が大きければ小さな値となる。これは、異なる人物に対しては、符号化処理結果データ間の距離が大きいほどLossの値は小さくなることを意味する。
以上説明した処理により、顔画像のペアからLossの値が算出される。続いて、算出されたLossを基に、誤差逆伝播法によりCNNのフィルタ係数408を更新する。誤差逆伝播法によりフィルタ係数408を更新する手順について以下に説明する。
<2.2.誤差逆伝播法による学習>
誤差逆伝播法では、誤差関数を最小化するために勾配降下法を用いてパラメータを更新する。ここでは、誤差関数はL(w)、パラメータはフィルタ係数wである。ここで、wは学習を始める前に初期化する必要がある。そこで、ここでは、wを乱数により初期化する。あるいは、Gabor Waveletフィルタ、Sobelフィルタ等の公知の空間フィルタの係数を設定し初期化してもよい。また、以前の学習により得られたフィルタ係数を設定して追加再学習するようにしてもよい。式(8)は、勾配降下法によりwのi番目の要素を更新する方法を示す式である。
Figure 0006137916
:更新前のwのi番目の要素
’:更新後のwのi番目の要素
ρ:更新係数
式(8)を計算してwを更新するためには、∂L(w)/∂wを求める必要がある。ここで、L(w)はE(w)を通してのみwに依存するため、偏微分の連鎖法則を適用し、∂L(w)/∂wを式(9)に示すように変形する。
Figure 0006137916
ここで、∂L(w)/∂E(w)は、式(7)をE(w)について偏微分することにより得られる。また、∂E(w)/∂wは、∂L(w)/∂wを分解したのと同様に、式(10)に示すように変形することができる。
Figure 0006137916
:v(w)のj番目の要素
ここで、∂E(w)/∂vは、式(6)をvについて偏微分することにより得られる。ここで、∂E(w)/∂vは、v1(w)に含まれるv1,v2(w)に含まれるv2それぞれについて計算する必要がある。
なお、式(10)では符号化処理結果データv(w)の各要素vに対して分解した結果を足し合わせている。これは、E(w)はv(w)のすべての要素vを通してwに依存するためである。
∂v/∂wはさらに式(11)に示すように変形することができる。
Figure 0006137916
∂v/∂uは、式(5)を偏微分することにより得られる。さらに、∂u/∂wは、式(4)をwについて偏微分することにより得られる。
以上のように、誤差逆伝播法では、図4において破線の矢印で示したように、∂L(w)/∂E(w)、∂E(w)/∂v、…といった偏微分を入力顔画像からLossを算出する場合とは逆方向に順次計算していく。これにより、最終的に∂L(w)/∂wを得る。そして、式(8)に従ってフィルタ係数を更新する。
ここで、距離計算403から符号化処理110a,bに逆伝播する際、∂E(w)/∂vは、v(w)に対応するもの、v(w)に対応するものに分かれて逆伝播する。CNNのフィルタ係数408は、まずv(w)に対する逆伝播により更新し、その後v(w)に対する逆伝播により更新するものとする。
<2.3.近似符号化処理>
上述したように、誤差逆伝播法によりCNNのフィルタ係数408を学習するためには、すべての演算は微分可能な関数である必要がある。しかし、符号化処理110a,bにおけるステップ関数処理205では、式(3)に示したステップ関数を用いる。ステップ関数は、t=0で不連続な関数であるため、その近傍で微分不可能である。そのためこのままでは式(11)における∂v/∂uを計算することができない。
そこで、第1実施形態では、ステップ関数処理205におけるステップ関数を、微分可能な連続関数により置き換えて近似する。ここでは、ステップ関数を近似する連続関数としてtanh関数を使用するが、ステップ関数を十分に近似可能な連続関数であれば任意の関数を用いるのであってもよい。例えば、シグモイド関数(sigmoid)を使用するように変形することも可能である。ここでは、ステップ関数を連続関数により近似した符号化処理のことを”近似符号化処理”と呼ぶ。
図3は、第1実施形態における近似符号化処理(第2の符号化処理)を説明する図である。図2の符号化処理に対して、ステップ関数がtanh関数に置き換えられたものに相当する。なお、図2と同じ構成要素については同じ番号を付与し説明を省略する。
近似符号化処理結果データ302a〜cは、比較処理結果データ201a〜cをtanh関数処理301により処理した結果を格納する2次元データである。tanh関数処理301は、比較処理結果データ201a〜cの各画素値を入力としてtanh関数を計算することにより近似符号化処理結果データ302a〜cを生成する。
式(12)は、図3に示した近似符号化処理により、特徴抽出面103a〜cから近似符号化処理結果データ302a〜cを生成する計算式である。
Figure 0006137916
u(x,y):座標(x,y)での前階層の面の画素値
v〜(x,y):座標(x,y)での演算結果
k:tanh関数の傾きを決定する係数
ここで、kはtanh関数の傾きを決定する係数である。
図7は、tanh関数の係数と形状の関係を説明する図である。kの値が大きくなるにつれてtanh関数の傾きは大きくなる。kの値をk>>1と設定することにより、tanh関数はステップ関数と近い特性を持つようになる。
なお、kの値があまりにも大きいと、tanh関数を微分した結果は、t=0付近では非常に大きな値となり、それ以外では0に近い値となる。これは学習処理において、t=0付近ではフィルタ係数は大きく更新され、それ以外ではフィルタ係数はほとんど更新されないことを意味する。その結果、学習が収束しにくくなるという問題が生じる。ただし、kの値を小さく設定すると、tanh関数とステップ関数との誤差が大きくなってしまう。なお、実験から、k=0.5〜4.0でより好適な結果が得られることが分かった。
<3.データ処理装置の構成>
図5は、第1実施形態におけるデータ処理装置の構成を示す図である。以下では、上述したCNNのフィルタ係数の学習および決定したフィルタ係数に基づくパターン識別処理の双方を実行可能なデータ処理装置について説明する。
データ保存部501は、画像データを保持する部分であり、通常はハードディスク、フレキシブルディスク、光学記憶メディア(CD、DVD)、半導体記憶メディア(各種規格のメモリーカード、USBメモリ)等で構成される。データ保存部501には画像データの他にも、プログラムやその他のデータを保存することも可能である。あるいは、後述するRAM505の一部をデータ保存部501として用いるのであってもよい。またあるいは、後述する通信部502により接続した先の機器の記憶装置を、通信部502を介して利用するというように仮想的に構成するのであってもよい。
表示部507は、画像処理前、画像処理後の画像を表示、あるいはGUI等の画像を表示する装置で、一般的にはCRTや液晶ディスプレイなどが用いられる。あるいは、ケーブル等で接続された装置外部のディスプレイ装置であっても構わない。
入力部506は、ユーザからの指示や、データを入力する装置で、キーボードやポインティング装置を含む。なお、ポインティング装置としては、マウス、トラックボール、トラックパッド、タブレット等が挙げられる。あるいは、データ処理装置を例えば公知のデジタルカメラ装置やプリンタなどの機器に適用する場合には、ボタンやダイヤル等で構成されるのであってもよい。また、キーボードをソフトウェアで構成(ソフトウェアキーボード)し、ボタンやダイヤル、あるいは先に挙げたポインティングデバイスを操作して文字を入力するように構成するのであってもよい。
また、あるいは公知のタッチスクリーン装置のように、表示部507と入力部506が同一装置であってもよい。その場合、タッチスクリーンによる入力を入力部506の入力として扱う。
503はCPUであり、上述した各処理を実行すると共にデータ処理装置全体の動作を制御する。ROM504とRAM505は、その処理に必要なプログラム、データ、作業領域などをCPU503に提供する。後述する処理に必要なプログラムがデータ保存部501に格納されている場合や、ROM504に格納されている場合には、一旦RAM505に読み込まれてから実行される。なお、図1においては、CPUが1つ(CPU503)だけである構成だが、これを複数設けるような構成としてもよい。
通信部502は、機器間の通信を行うためのI/Fである。例えば、IEEE802.3シリーズ規格に代表される公知の有線LAN規格、USB(Universal Serial Bus)、IEEE1284、IEEE1394、電話回線などの有線による通信方式であってもよい。あるいは赤外線(IrDA)、IEEE802.11シリーズ規格に代表される公知の無線LAN規格、Bluetooth(登録商標)、UWB(Ultra Wide Band)等の無線通信方式であってもよい。
なお、図5では入力部506、データ保存部501、表示部507が全て1つの装置内に含まれるような図を示しているが、それぞれが別体として構成されるようにしてもよい。その場合、各部は公知の通信方式により相互に通信可能に接続される。また、上記以外の追加の構成要素が存在してもよい。
<4.データ処理装置の処理フロー>
図6は、第1実施形態におけるデータ処理装置における各モードの動作を示すフローチャートである。以下では、CPU503が各種プログラムを実行することにより以下のフローチャートに示す処理を実行する。
ステップS601では、動作モードを判定する。動作モードは、例えばユーザが入力部506を通して指定される。ここでは、動作モードとして、(a)学習モード、(b)識別モード、(c)登録データ作成モードの3種類あるものとする。以下では、各モードでのデータ処理装置の処理フローについて説明する。
<4.1.(a)学習モード>
学習モードは、学習を実行するための動作モードである。なお、学習に使用する顔画像は、学習処理に先立って以下の手順に従って作成され、対応する人物IDと関連付けてデータ保存部501に保存されているものとする。まず、データ保存部501に保存されている画像データをRAM505に読み出す。次に、RAM505にある画像データを8bit符号なし輝度画像に変換する。そして、公知の顔検出手法により顔領域を検出し、予め定めたサイズにリサイズした顔画像をデータ保存部501に保存する。好ましくは、目や鼻、口といった顔の器官位置を検出し、検出した器官位置に基づいて両目が水平に並び、かつ予め定められたサイズとなるように画像変換する。なお、器官位置の検出には、公知のActive Appearance Model、Active Shape Model等を用いることができる。
また、各種変動に対して頑健な特徴量となるように、顔画像は、パン・チルト方向の顔向き、表情、照明条件などについて様々な変動を含むことが望ましい。以上の処理は、CPU503により処理してもよいし、あるいは同様の処理を外部装置により実行した結果を通信部502を介してデータ保存部501に保存してもよい。
ステップS602では、学習回数カウンタpをp=0に初期化する。ここで、学習回数カウンタpは、ステップS603において学習の完了を判定するために使用する。
ステップS603では、予め指定した繰返し回数分の学習が完了したかどうかを判定する。ここでは、繰返し回数を予めM(Mは1以上の整数)回と設定しておく。ステップS603は、p<Mが成立するかどうかを判定する。成立しない場合は、学習が完了したと判定され、図6のフローチャートによる処理を終了する。一方、成立した場合は、学習は完了していないと判定され、ステップS604〜S611に進む。
ステップS604では、学習に使用する1枚目の顔画像をデータ保存部501からランダムに選択し、RAM505に格納する。また、選択した顔画像に関連付けられている人物IDをRAM505に格納する。
ステップS605では、ステップS604において選択した顔画像に対してCNN処理を実行してCNN処理結果データを生成する。ここでは、CNNのネットワーク構成及びフィルタ係数はRAM505に保存されているものとする。もしろん、データ保存部501や、ROM504に格納されていてもよい。この場合、CNNのネットワーク構成及びフィルタ係数をいったんRAM505に読み込んでからCNN処理を実行する。
CNNのネットワーク構成及びフィルタ係数のRAM505への格納形式、CNN処理を実行する際のCPU503動作についての詳細を順に説明する。
図10は、CNNのネットワーク構成のメモリへの格納例を説明する図である。ここでは、3階層のCNNネットワーク構成を示しているが、3階層に限るものではなく、一般的にはL階層(Lは1以上の整数)の構成である。ここでは、各階層の処理内容(”特徴抽出”もしくは”統合”)1001、生成する面の数1002、アドレス1003という3種類のデータを1セットとして第1階層から順にL個並べたものをRAM505に保持する。また、アドレス1003が示す位置において、前階層の各面と現階層の各面のすべての組み合わせについて、接続がある場合は○、接続がない場合は×とした2次元配列1004a〜cを保持する。
図12は、図10に示したCNNのネットワーク構成を視覚化した図である。なお、CNNのネットワーク構成のRAM505への格納方法は図10に示した例に限らない。CPU503が各階層における処理、各階層において生成する面の数、階層間の接続関係を識別可能な形式であれば任意のものであってよい。
図11は、CNNのフィルタ係数のメモリへの格納例を説明する図である。ここでは、空間フィルタの大きさと係数を1次元配列としてRAM505に保持する。また、フィルタ係数の先頭アドレスを順に並べた1次元配列をRAM505に保持する。ここで、RAM505には、すべての特徴抽出面を生成するために必要な空間フィルタを格納する。
例えば、図10に示した例では、入力画像から第1階層の特徴抽出面を生成するために必要な3個の空間フィルタと、第2階層の統合面から第3階層の特徴抽出面を生成するために必要な9個の空間フィルタとを合わせた合計12個の空間フィルタを保持する。なお、ここでは、第1階層の特徴抽出面を生成するために必要な空間フィルタ、第3階層の特徴抽出面を生成するために必要な空間フィルタの順にRAM505に保持するものとする。
なお、フィルタ係数には予め初期値が設定されているものとする。初期値は乱数であってもよいし、あるいは以前の学習により得られたフィルタ係数であってもよい。更に、Gabor Waveletフィルタ、Sobelフィルタ等の公知の空間フィルタの係数であってもよい。CNNのフィルタ係数のRAM505への格納方法は図11に示した例に限らない。CPU503が各空間フィルタの大きさ、係数を識別可能な形式であれば任意のものであってよい。
CPU503は、アドレス1003が示す位置に格納されている階層間の接続を表す2次元配列に従って前階層の各面に対して処理を実行する。ここで、各階層において読み込む接続関係の数は前階層の面の数(前階層が入力画像である場合は1)及び現階層の面の数により定められる。例えば、第3階層において読み込む接続関係の数は、前階層の面の数が3であり、現階層の面の数が4であるため、3×4=12となる。
CPU503は、前階層の各面に対して処理内容1001が示す処理を実行する。処理内容1001が特徴抽出である場合、図11に示した空間フィルタをRAM505読み込んで空間フィルタ処理を実行する。k番目のフィルタ係数を読み込む際は、まず、アドレスk、アドレスk+1の位置にそれぞれ格納されている空間フィルタの幅(width)、高さ(height)を読み込む。次に、width、heightの値を基に、アドレスk+2の位置から順に空間フィルタ係数を読み込むことにより、width×heightの大きさの2次元の空間フィルタを作成する。一方、処理内容1001が”統合”である場合、前述した統合処理を実行する。
ステップS606では、ステップS605において生成したCNN処理結果データに対して、式(12)に示したtanh関数を用いた近似符号化処理を実行して近似符号化処理結果データを生成する。
ステップS607では、学習に使用する2枚目の顔画像をデータ保存部501から選択し、RAM505に格納する。ここで、2枚目の顔画像はステップS604において選択した1枚目の顔画像を除いた中からランダムに選択するものとする。また、選択した顔画像の人物IDをRAM505に格納する。そして、1枚目の顔画像と同様に、ステップS605,S606の順にCNN処理、tanh関数を用いた近似符号化処理を実行して近似符号化処理結果データを生成する。
ステップS608では、ステップS604及びS607において選択した2つの人物IDが一致するかどうかを確認する。もし2つの人物IDが一致すれば”0”、一致しなければ”1”というラベルを生成する。
ステップS609では、2枚の顔画像から生成した近似符号化処理結果データと、ステップS608において生成したラベルを用いてLossを計算する。まず、2つの近似符号化処理結果データを用いて式(6)に従ってL1ノルムを生成する。次に、L1ノルムとラベルを用いて式(7)に従ってLossを計算する。
ステップS610では、ステップS609において計算したLossを用いて、前述した誤差逆伝播法により、RAM505に格納されているCNNのフィルタ係数を更新する。そして、ステップS611では、学習回数カウンタpをインクリメントしてステップS603に戻る。
<4.2.(b)識別モード>
識別モードは、信号処理結果を用いてパターン識別を実行するための動作モードである。パターン識別結果は、例えば、顔認証処理などに利用される。顔認証に使用する顔画像は、以下の手順に従って顔認証処理に先立ち作成され、RAM505に保存されているものとする。まず、データ保存部501に保存されている画像データをRAM505に格納する。次に、RAM505にある画像データを8bit符号なし輝度画像に変換する。そして、公知の顔検出手法により顔領域を検出し、予め定めたサイズにリサイズした顔画像をRAM505に保存する。このとき、顔認証の結果を表示するための情報として、検出された顔領域の元の画像における位置、大きさを顔画像に関連付けてRAM505に保存する。または、同様の処理を外部装置により実行した結果を通信部502を介してRAM505に保存してもよい。
ステップS612では、読み込んだ顔画像に対して前処理を実行する。具体的には、公知のActive Appearance Model、Active Shape Model等を用いて、顔の器官位置を検出し、検出した器官位置に基づいて両目が水平に並び、かつ予め定められたサイズとなるように画像変換する。
ステップS605では、上述の学習モードの場合と同様、前処理した顔画像に対してCNN処理を実行してCNN処理結果データを生成する。
ステップS613では、ステップS605において生成したCNN処理結果データに対して、式(5)に示した増分符号化処理を実行する。すべての注目画素に対する増分符号を並べたベクトルを識別に使用する特徴量とする。
ステップS614では、ステップS613において生成した特徴量の次元を削減する。特徴量から識別に効果的な情報のみを抽出するよう次元を削減することにより、後段の処理における計算量を少なくすることができる。次元削減は、公知のPrincipal Component AnalysisやLocality Preserving Projection等を用い、予め決定しておいた変換行列を用いて変換すれば良い。ここで、変換行列とは次元削減後のベクトル空間を規定する基底ベクトルを並べたものである。変換行列を用いて、特徴量を一列に並べた特徴ベクトルを、元の空間から基底ベクトルが規定する空間へと射影する。変換行列は、ROM504やデータ保存部501にデータあるいはプログラムの一部として格納されており、予めRAM505に読み込んでおく。CPU503はそれを参照しながら次元削減処理を実行する。
ステップS615では、ステップS614で求めた次元削減の後の特徴量を用いて識別処理を実行する。ここでは、次元削減の後の特徴ベクトルのことを”射影ベクトル”と呼ぶ。識別処理では、射影ベクトルと登録データとを照合する。
登録データとは、例えば登録ベクトルと対応する人物IDとから成るデータのことである。なお、好ましくは名前やニックネーム等の文字列データを人物IDに関連付けて記憶する。登録データはデータ保存部501に格納されており、顔認証処理に先立ってRAM505に読み込まれる。登録データの作成方法については後述する。
識別処理では、射影ベクトルと登録ベクトルとの類似度と、予め指定した閾値を基に入力顔画像の人物IDを決定する。ここで、類似度は、次元削減後の特徴空間におけるベクトル間のユークリッド距離として説明する。この場合、距離が小さいほど射影ベクトルと登録ベクトルは似たベクトルであると解釈できるので、距離が小さい登録ベクトル(の基となった画像)ほど入力顔画像に類似しているといえる。
まず、射影ベクトルとすべての登録ベクトルとの距離を計算し、距離が小さい順に登録ベクトルをソートする。次に、射影ベクトルとソート後に先頭にある登録ベクトルとの距離(最小距離)と、予め設定した閾値とを比較する。
最小距離が閾値以下である場合、入力顔画像の人物IDは、ソート後に先頭にある登録ベクトルの人物IDとする。一方、最小距離が閾値よりも大きい場合、入力画像の人物は登録されていないと判定する。この場合、例えば予めシステムで定めておいた非登録人物に対応するID値を入力顔画像の人物IDとする。
ステップS616では、S615により得られた人物IDをRAM505に保存されている顔認証の結果を表示するための情報(顔領域の位置・サイズ)に関連付けて保存する。
以上の処理を元の画像から検出されたすべての顔画像それぞれに対して実行する。すべての顔画像に対する顔認証処理が完了した場合、識別結果を出力する。識別結果出力の一例として、RAM505に保存されている元画像、顔領域の位置・サイズ情報、顔領域の人物IDを基に顔認証結果画像を作成し、表示部507に表示することが考えられる。
図13は、顔認証の結果画像の一例を示す図である。図13の例では、各顔領域を矩形の枠で表示し、さらにその上部にその顔領域の人物IDまたは関連付けた文字列を表示している。他の出力方法として、顔領域の位置・サイズ情報、顔領域の人物IDなどを元画像と関連付けてデータ保存部501に保存する方法も考えられる。また、データ保存部501に保存するのではなく、通信部502を介して外部の機器に同様の情報を送信するよう構成しても良い。
上述の説明では全ての顔画像について処理が終了した時に結果を出力するとしたが、顔画像1枚に対する処理が完了する度に上記出力処理を実行するように構成してもよい。また、ここでは、ステップS612において、顔画像中の両目が水平に並び、かつ予め定められたサイズとなるように画像変換するとした。識別精度を高めるためには、このような画像変換を行うことが好ましいが、速度向上やリソース削減を図る必要がある場合などには当該画像変換処理を省略してもよい。
<4.3.(c)登録データ作成モード>
登録データ作成モードは、信号処理結果を用いて顔認証において使用される基準パターンとなる登録データを作成するための動作モードである。ここで、登録データとは、登録ベクトルと、登録ベクトルに対応する人物IDとから成るデータのことである。
ステップS617では、登録データの作成に使用する顔画像を選択する。まず、データ保存部501に保存されている画像データをRAM505に格納する。次に、RAM505にある画像データから、公知の顔検出手法により顔領域を検出し、検出された顔領域を矩形の枠で示した画像を表示部507に表示する。ユーザは、それらの顔領域の中から登録したい顔領域を入力部506を通して選択する。選択された顔領域の画像は、予め定めたサイズにリサイズし、RAM505に保存する。登録したい顔領域が存在しなければ、次の画像を表示する指示を入力する。
上述の識別モードで説明したステップS612〜S614と同様の処理を通して、選択した顔画像から次元削減後の特徴量を生成する。これを登録ベクトルとしてRAM505に保存する。
ステップS618では、登録ベクトルと人物IDを関連付け、データ保存部501に格納する。登録ベクトルと人物IDを関連付ける手順を以下に説明する。
まず、既にデータ保存部501に格納されている人物IDもしくは人物IDに関連付けられた文字列データを表示部507に表示する。好ましくは、データ保存部501には登録データと合わせて顔画像を保存しておき、人物IDもしくは文字列データとともに顔画像を表示する。
次に、その中でS617において選択した顔画像に該当すると思われる人物IDもしくは文字列データをユーザが入力部506を介して指定する。そして、指定された人物IDを登録ベクトルに関連付けてデータ保存部501に保存する。一方、該当する人物IDもしくは文字列データが存在しなければ、その旨を入力部506を介して入力する。この場合、登録ベクトルに新たな人物IDを関連付け、データ保存部501に保存する。
以上説明したとおり、第1実施形態によれば、不連続関数(微分不可能な関数)を連続関数に近似して学習を行う。これにより、LBPや増分符号などの符号化処理を含む処理系に対し、CNNによる学習を行うことが可能となる。その結果、画像データ等からパターン識別に利用される特徴量をより好適に抽出可能とすることが可能となる。なお、第1実施形態では、3つのモード(学習モード、識別モード、登録データ作成モード)の処理を1つの装置で行うよう説明したが、それぞれを別体の複数の装置により行っても良い。
(第2実施形態)
第2実施形態では、主要な処理をハードウェア回路を用いて構成する例について説明する。すなわち、第2実施形態においては、主要な処理をASICやDSPなどのハードウェア回路である信号処理部1401で実行する点が主に異なる。
<データ処理装置の構成>
図14は、第2実施形態におけるデータ処理装置の構成を示す図である。なお、図5と同じ構成要素については同じ番号を付与し、ここでは説明を省略する。なお、以下では、第1実施形態と異なる部分についてのみ説明する。上述のように、第2実施形態では、主要な処理を信号処理部1401で実行し、CPU503はもっぱら信号処理部1401の制御に用いられる。
CPU503は、まず、ユーザが入力部506を通して入力した動作モードを読み込む。ここで、動作モードとは信号処理部1401の動作を決める情報である。ここでは、動作モードとして”識別モード”と”学習モード”の2種類があるものとする。
上述した第1実施形態と同様に、”識別モード”とは、入力画像に対して図1に示した信号処理を実行することにより、入力画像からパターン識別に使用する特徴量を抽出する動作モードである。一方、”学習モード”とは、図1に示した信号処理におけるCNNのフィルタ係数を学習する動作モードである。
CPU503は、入力された動作モードに応じて信号処理部1401が必要とするデータをRAM505に格納する。動作モードとして”識別モード”が選択されている場合、CPU503は、データ保存部501に保存されている画像データから、第1実施形態と同様に公知の顔検出手法により顔領域を検出する。さらに両目が水平に並びかつ予め定めたサイズに画像変換した顔画像をRAM505に格納する。一方、動作モードとして”学習モード”が選択されている場合、データ保存部501に格納されているすべての学習用の顔画像の中から、選択した2枚の顔画像と顔画像に関連付けられている人物IDをRAM505に格納する。
CPU503は、必要なデータをRAM505に格納した後、選択された動作モードの情報を信号処理部1401に送信する。そして、信号処理部1401から処理が完了したことを示す信号を受信すると、次の動作モードの情報を読み込み、上述した処理を繰り返し実行する。
<信号処理部の構成>
図15は、第2実施形態における信号処理部の構成を示すブロック図である。信号処理部1401は、ユーザから受け付けた動作モードの指定に応じて処理経路を切り替える。これにより、特徴抽出処理と学習を同一の回路で実現する。以下では、信号処理部1401内の各ブロックについて図15を参照して詳細に説明する。
1508は顔画像、CNNのネットワーク構成、CNNのフィルタ係数、tanh符号化処理後の近似符号化処理結果データという4種類のデータを格納するメモリであり、公知のRAM,レジスタなどにより構成する。ここで、顔画像は、第1実施形態と同様に、両目が水平に並び、かつ予め定めたサイズに画像変換したものであるとする。また、CNNのネットワーク構成、CNNのフィルタ係数は、例えば、それぞれ第1実施形態の図10、図11で説明した形式により格納されるものとする。
1501は制御部であり、信号処理部1401内の各ブロックの動作を制御する。制御部1501は、まず、CNN処理部1502が使用するCNNのネットワーク構成及びフィルタ係数をRAM505から読み込み、メモリ1508に格納する。そして、動作モードの指定をCPU503から受信するまで待機し、動作モードの指定を受信することをトリガとして、以下に説明する処理を開始する。
・識別モード
制御部1501は、まず、スイッチ1503に対してCNN処理部1502の出力を増分符号化処理部1504に入力するように指示する信号を送信する。次に、特徴抽出の対象となる顔画像をRAM505から読み込み、メモリ1508に格納する。続いて、制御部1501はCNN処理部1502に、メモリ1508に格納した顔画像に対するCNN処理を実行するように指示する信号を送信する。
増分符号化処理部1504から符号化処理結果データを受信すると、そのデータをRAM505に格納する。ここで、通信部502を介して外部のデータ処理装置に符号化処理結果データを送信するように構成してもよい。さらに、制御部1501は処理が完了したことを示す信号をCPU503に送信し、次の動作モードの指定を受信するまで待機する。
信号処理回路を顔認証に適用する場合、RAM505に格納した符号化処理結果データを特徴量として、CPU503により次元削減処理、識別処理を実行するよう構成する。もちろん、次元削減処理、識別処理を合わせて信号処理部1401などのハードウェア回路として構成しても良い。
・学習モード
制御部1501は、まず、スイッチ1503にCNN処理部1502の出力をtanh符号化処理部1505に入力するように指示する信号を送信する。次に、RAM505に格納されている2枚の学習用の顔画像を読み込み、メモリ1508に格納する。また、これらの顔画像に関連付けられている人物IDも合わせて読み込む。
制御部1501は、続いて、CNN処理部1502に対してメモリ1508に格納した2枚の顔画像のうち、1枚目の顔画像に対するCNN処理を実行するように指示する信号を送信する。tanh符号化処理部1505から近似符号化処理が完了したことを示す信号を受信すると、2枚目の顔画像に対するCNN処理を実行するように指示する信号をCNN処理部1502に送信する。
制御部1501は、tanh符号化処理部1505から2枚目の顔画像に対する近似符号化処理が完了したことを示す信号を受信すると、先だって受信した2つの人物IDを比較する。そして、人物IDが同じであれば”0”、異なるならば”1”というラベルを生成してLoss計算部1506に送信する。
フィルタ係数更新部1507からフィルタ係数の更新が完了したことを示す信号を受信すると、更新後のフィルタ係数をメモリ1508から読み込み、RAM505に格納する。そして、処理が完了したことを示す信号をCPU503に送信し、次の動作モードの指定を受信するまで待機する。
再び、図15に示された各部の説明に戻る。CNN処理部1502は、制御部1501からの指示を受けて、メモリ1508に格納されているCNNのネットワーク構成及びフィルタ係数を読み込む。そして、メモリ1508に格納された顔画像を参照して、ステップS605と同様のCNN処理を実行する。1枚の顔画像に対するCNN処理が完了すると、次の指示を受けるまで待機する。
スイッチ1503は、制御部1501からの指示に応じて、CNN処理部1502が生成したCNN処理結果データを増分符号化処理部1504もしくはtanh符号化処理部1505のいずれかに振り分けるスイッチである。
増分符号化処理部1504は、CNN処理結果データに対して、第1実施形態におけるステップS613と同様の増分符号化処理を実行し、符号化処理結果データを制御部1501に送信する。
ここでは、先に述べたように入力画像は予め定められたサイズに変換された顔画像である。また、CNNのネットワーク構成及び空間フィルタのサイズは予め定めておく。したがって、CNN処理部1502が生成するCNN処理結果データのサイズは予め計算することが可能である。ここでは、増分符号化処理部1504は内部にレジスタ等を保持するよう構成し、制御部1501がそのレジスタにCNN出力結果データサイズに関する情報を予め設定しておくものとする。増分符号化処理部1504は、レジスタ等に保存したCNN処理結果データのサイズ分の画像に対する符号化処理が完了すると、符号化処理が完了したことを示す信号を制御部1501に送信する。
tanh符号化処理部1505は、CNN処理結果データに対して第1実施形態におけるステップS606と同様の近似符号化処理を実行し、近似符号化処理結果データをメモリ1508に格納する。ここでは、tanh符号化処理部1505はレジスタ等を保持しており、制御部1501はそこにCNN出力結果データサイズに関する情報を予め設定しておくものとする。tanh符号化処理部1505は、レジスタ等に保存したCNN処理結果データのサイズ分の画像に対する近似符号化処理が完了すると、近似符号化処理が完了したことを示す信号を制御部1501に送信する。
Loss計算部1506は、制御部1501からラベル情報を受信すると、メモリ1508に格納されている近似符号化処理結果データとラベル情報とを用いて、第1実施形態におけるステップS609と同様のLossを計算する。そして、結果をフィルタ係数更新部1507に送信する。
フィルタ係数更新部1507は、Loss計算部1506からLossを受信すると、第1実施形態におけるステップS610と同様に、メモリ1508に格納されているCNNのフィルタ係数を更新する。フィルタ係数更新部1507は、フィルタ係数の更新が完了すると、更新完了を示す信号を制御部1501に送信する。なお、ここではメモリ1508が信号処理回路内に含まれるような構成を示したが、信号処理回路と接続した外部のRAM等を使用するように構成しても構わない。
以上説明したように、第2実施形態では、図1に示す信号処理の主要部分をハードウェア回路として実現する例について説明した。信号処理の主要部分をハードウェア回路により構成することで一般に処理の高速化が達成される。なお、信号処理部1401の全てをハードウェア回路とする必要は無く、一部の処理についてはソフトウェア処理により実現しても良い。
(第3実施形態)
第3実施形態では、学習処理とパターン識別処理を別体の機器で実行する信号処理システムについて説明する。図16は、第3実施形態によるデータ処理システムの構成を示す図である。図16に示したデータ処理システムでは、サーバ装置1601が学習処理を実行し、クライアント装置1602がパターン識別処理を実行するように構成されている。なお、サーバ装置1601は、好適には公知のクラウドコンピューティングのような分散処理システムにより構成するとよい。また、図16では1台のクライアント装置のみを示しているが、1台のサーバ装置に対し複数のクライアント装置が接続される構成としても良い。
<システム内の各装置の構成>
・サーバ装置
サーバ装置1601は、論理的には、図5に示したデータ処理装置の構成と同一の構成で良く、図6に示した処理を実行する。ただし、第3実施形態ではサーバ装置1601は学習処理のみを実行するため、識別モードや登録データ作成モードの処理を省略するよう構成しても構わない。なお、サーバ装置1601は、学習処理を行うため、CNN処理部(第2の生成手段)を有する。
サーバ装置1601は、自身の持つ通信部502を介してクライアント装置1602から学習処理のリクエスト信号を受信すると、第1実施形態におけるステップS602〜S611に示される学習処理を実行するよう構成する。
ここで、学習処理のリクエスト信号にCNNのフィルタ係数を含めるように構成することも可能である。この場合、受信したフィルタ係数をRAM505に格納し、そのフィルタ係数を初期値として学習処理を実行するように構成する。また、学習処理のリクエスト信号に人物IDを含めるように構成することも可能である。この場合、人物IDはサーバ装置1601とクライアント装置1602で共有しており、サーバ装置1601は受信した人物IDの顔画像に対する識別精度が高くなるような学習処理を実行するように構成する。さらに、学習処理のリクエスト信号に顔画像を含めるように構成することも可能である。この場合、サーバ装置1601は受信した顔画像に対する識別精度が高くなるような学習処理を実行するように構成する。
サーバ装置1601は、学習処理が完了すると学習後(更新後)のフィルタ係数を、通信部502を介してクライアント装置1602に送信する。
なお、ここでは、サーバ装置1601は、クライアント装置1602からのリクエスト信号の受信をトリガに学習処理を行うよう説明したが、サーバ装置1601が自律的に学習処理を行うように構成してもよい。この場合、例えば最後の学習処理から一定の時間が経過したことをトリガとして学習処理を実行するように構成する。そして、学習処理が終了した時点で、サーバ装置1601がクライアント装置1602に対して通信を開始し、学習結果のフィルタ係数を送信するように構成すればよい。あるいは、クライアント装置1602がフィルタ係数を要求してきた場合に、サーバ装置1601が、その時点での最新のフィルタ係数を送信するように構成してもよい。
・クライアント装置
図17は、第3実施形態におけるクライアント装置の構成を示す図である。なお、図5と同じ構成要素については同じ番号を付与し、ここでは説明を省略する。1701は特徴抽出部であり、第1及び第2実施形態において説明した識別モードにおける処理と同様の処理を実行する。なお、クライアント装置1602は、識別処理を行うため、CNN処理部(第1の生成手段)を有する。
図18は、第3実施形態における特徴抽出部の構成を示すブロック図である。図15に示した信号処理部1401の構成に対し、特徴抽出部1701は学習モードにおける処理のために必要な構成要素を除いた構成となる。クライアント装置1602は、RAM505に格納されている顔画像に対して特徴抽出部1701を用いて特徴抽出処理を実行し、生成された符号化処理結果データを用いてCPU503によりパターン識別処理を実行する。
<システムの処理フロー>
CNNのフィルタ係数を更新する場合には、クライアント装置1602は、通信部502を介して、サーバ装置1601に学習処理のリクエスト信号を送信する。あるいは、クライアント装置1602内のRAM505に格納されているCNNのフィルタ係数を送信する。またあるいは登録データに含まれる顔画像もしくは人物IDを送信する。この場合、フィルタ係数もしくは顔画像もしくは人物IDの送信を学習処理のリクエスト信号とするように構成してもよい。
クライアント装置1602は、サーバ装置1601に学習処理のリクエスト信号を送信した後、サーバ装置1601からフィルタ係数を受信するまで待機するように構成すればよい。あるいは、フィルタ係数の受信を待機せず、更新前のCNNのフィルタ係数を用いてパターン識別処理を継続するよう構成することもできる。この場合、例えば、学習処理が完了したタイミングなどで、サーバ装置1601がクライアント装置1602に対し通信を開始するように構成すればよい。あるいは、クライアント装置1602側でのユーザからの指示やタイマ割り込み等をトリガとして、クライアント装置1602がサーバ装置1601に学習処理が完了したかどうか問い合わせ、学習処理が完了していればフィルタ係数を受信するように構成してもよい。
クライアント装置1602は、サーバ装置1601から通信部502を介して更新後のフィルタ係数を受信すると、更新後のフィルタ係数をRAM505に格納する。
以上説明したように、第2実施形態では、クライアント装置における学習処理を省略し、サーバ装置において学習処理を実行することにより、クライアント装置における実装負荷(機器コストなど)を削減することができる。また、サーバ装置1601に複数のクライアント装置1602が接続するように構成した場合、サーバ装置1601で学習されたフィルタ係数を複数のクライアント間で容易に共有できるという利点がある。つまり、より効率的に学習が行われ、適切なフィルタをより速く決定することが可能となる。更に、パターン識別処理を実行する複数のクライアント装置間で同一のフィルタを共有することが出来、複数のクライアント装置間で同一のパターン識別結果を得ることが可能となる。
(変形例)
上述の実施形態では、処理対象のデータとして2次元の画像データ(顔画像)に適用する例を想定して説明した。しかし、音声信号などの1次元のデータに対しても適用可能であり、また、3次元以上のデータに対しても同様に適用可能である。
また、上述の実施形態では、CNN処理結果データ内の注目画素と参照画素の比較結果に対する不連続関数処理としてステップ関数を使用する例について説明したが、ステップ関数に限るわけではなく、パルス関数を利用することも出来る。ステップ関数では、比較対象の2つの値の相対的な大小に応じて2値化(”0”又は”1”)する。それに対し、パルス関数では、比較対象の2つの値の差の絶対値に応じて2値化(”0”又は”1”)する。図19は、不連続関数であるパルス関数と当該パルス関数を近似するガウス関数を示す図である。
更に、上述の実施形態では、CNN処理結果データ内の1つの注目画素と1つの参照画素のそれぞれの画素値を比較する例について説明したが、1つの画素の画素値に限定されない。例えば、1つの画素の画素値の代わりに(m×m)画素の領域内の画素値の平均値を使用するよう構成しても良い。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

Claims (11)

  1. 入力されたデータに対して空間フィルタ処理を実行することで処理結果データを生成する生成手段と、
    前記処理結果データに対して、不連続関数を用いる所定の符号化処理を実行し符号化処理結果データを生成する第1の符号化手段と、
    前記処理結果データに対して、前記不連続関数を連続関数で近似した近似符号化処理を実行し近似符号化処理結果データを生成する第2の符号化手段と、
    前記近似符号化処理結果データに基づいて、前記空間フィルタ処理の重み係数を更新する更新手段と、
    前記更新手段による重み係数の更新を行う場合には前記処理結果データを前記第2の符号化手段に提供し、他の場合には前記処理結果データを前記第1の符号化手段に提供する、ように制御する制御手段と、
    を有することを特徴とする信号処理装置。
  2. 前記他の場合は、パターン識別を行う場合と該パターン識別に使用する基準パターンの登録を行う場合との少なくとも一方を含むことを特徴とする請求項1に記載の信号処理装置。
  3. 前記符号化処理結果データに基づいてパターン識別を行うパターン識別手段を更に有することを特徴とする請求項1又は2に記載の信号処理装置。
  4. 前記所定の符号化処理は、前記処理結果データ内の注目領域における値と該注目領域に対して予め定められた相対位置にある1以上の参照領域における値とを比較して比較処理結果データを生成し、該比較処理結果データに対して前記不連続関数を用いた演算を行う処理であることを特徴とする請求項1乃至3の何れか一項に記載の信号処理装置。
  5. 前記空間フィルタ処理はCNN(Convolutional Neural Networks)処理であり、前記重み係数は該CNN処理におけるフィルタ係数であることを特徴とする請求項1乃至4の何れか一項に記載の信号処理装置。
  6. 前記更新手段は、誤差逆伝播法を用いて前記空間フィルタ処理の重み係数を更新することを特徴とする請求項5に記載の信号処理装置。
  7. 前記不連続関数はステップ関数であり、前記連続関数はtanh関数又はシグモイド関数であることを特徴とする請求項1乃至6の何れか一項に記載の信号処理装置。
  8. 前記不連続関数はパルス関数であり、前記連続関数はガウス関数であることを特徴とする請求項1乃至6の何れか一項に記載の信号処理装置。
  9. 入力されたデータに対して空間フィルタ処理を実行することで処理結果データを生成する生成工程と、
    前記処理結果データに対して、不連続関数を用いる所定の符号化処理を実行し符号化処理結果データを生成する第1の符号化工程と、
    前記処理結果データに対して、前記不連続関数を連続関数で近似した近似符号化処理を実行し近似符号化処理結果データを生成する第2の符号化工程と、
    前記近似符号化処理結果データに基づいて、前記空間フィルタ処理の重み係数を更新する更新工程と、
    重み係数の更新を行う場合には、前記第2の符号化工程を実行し、他の場合には前記第1の符号化工程を実行する、ように制御する制御工程と、
    を有することを特徴とする信号処理方法。
  10. コンピュータを請求項1乃至の何れか1項に記載の信号処理装置の各手段として機能させるためのプログラム。
  11. クライアント装置とサーバ装置とを含む信号処理システムであって、
    前記クライアント装置は、
    入力されたデータに対して空間フィルタ処理を実行することで処理結果データを生成する第1の生成手段と、
    前記第1の生成手段により生成された処理結果データに対して、不連続関数を用いる所定の符号化処理を実行し符号化処理結果データを生成する第1の符号化手段と、
    前記符号化処理結果データに基づいてパターン識別を行うパターン識別手段と、
    を有し、
    前記サーバ装置は、
    入力されたデータに対して前記空間フィルタ処理を実行することで処理結果データを生成する第2の生成手段と、
    前記第2の生成手段により生成された処理結果データに対して、前記不連続関数を連続関数で近似した近似符号化処理を実行し近似符号化処理結果データを生成する第2の符号化手段と、
    前記近似符号化処理結果データに基づいて、前記第2の生成手段の空間フィルタ処理の重み係数を更新する更新手段と、
    を有し、更に、
    前記サーバ装置は、前記更新手段により更新された重み係数を前記クライアント装置に送信する送信手段を有し、前記クライアント装置は、前記サーバ装置から受信した重み係数を前記第1の生成手段の空間フィルタ処理の重み係数として設定する設定手段を有する
    ことを特徴とする信号処理システム。
JP2013076454A 2013-04-01 2013-04-01 信号処理装置、信号処理方法、及び、信号処理システム Active JP6137916B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013076454A JP6137916B2 (ja) 2013-04-01 2013-04-01 信号処理装置、信号処理方法、及び、信号処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013076454A JP6137916B2 (ja) 2013-04-01 2013-04-01 信号処理装置、信号処理方法、及び、信号処理システム

Publications (3)

Publication Number Publication Date
JP2014203135A JP2014203135A (ja) 2014-10-27
JP2014203135A5 JP2014203135A5 (ja) 2016-05-26
JP6137916B2 true JP6137916B2 (ja) 2017-05-31

Family

ID=52353556

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013076454A Active JP6137916B2 (ja) 2013-04-01 2013-04-01 信号処理装置、信号処理方法、及び、信号処理システム

Country Status (1)

Country Link
JP (1) JP6137916B2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016192758A (ja) * 2015-03-31 2016-11-10 京セラドキュメントソリューションズ株式会社 電子機器及び類似顔画像置き換えプログラム
JP2016197389A (ja) * 2015-04-03 2016-11-24 株式会社デンソーアイティーラボラトリ 学習システム、学習プログラムおよび学習方法
US9436895B1 (en) * 2015-04-03 2016-09-06 Mitsubishi Electric Research Laboratories, Inc. Method for determining similarity of objects represented in images
KR102325602B1 (ko) 2015-07-06 2021-11-12 삼성전자주식회사 데이터를 병렬적으로 처리하는 장치 및 방법
JP6158882B2 (ja) * 2015-09-18 2017-07-05 ヤフー株式会社 生成装置、生成方法、及び生成プログラム
JP6798183B2 (ja) * 2016-08-04 2020-12-09 株式会社リコー 画像解析装置、画像解析方法およびプログラム
JP6800656B2 (ja) * 2016-08-24 2020-12-16 キヤノン株式会社 演算回路、その制御方法及びプログラム
US20190370641A1 (en) * 2017-03-06 2019-12-05 Sony Corporation Information processing apparatus
JP6214073B2 (ja) * 2017-03-16 2017-10-18 ヤフー株式会社 生成装置、生成方法、及び生成プログラム
WO2018207334A1 (ja) * 2017-05-12 2018-11-15 日本電気株式会社 画像認識装置、画像認識方法および画像認識プログラム
CN108960001B (zh) * 2017-05-17 2021-12-24 富士通株式会社 训练用于人脸识别的图像处理装置的方法和装置
US11227214B2 (en) * 2017-11-14 2022-01-18 Advanced Micro Devices, Inc. Memory bandwidth reduction techniques for low power convolutional neural network inference applications
JP6873027B2 (ja) * 2017-12-06 2021-05-19 株式会社日立製作所 学習システム及び画像検索システム
US11948073B2 (en) 2018-04-20 2024-04-02 Advanced Micro Devices, Inc. Machine learning inference engine scalability
US11769041B2 (en) 2018-10-31 2023-09-26 Advanced Micro Devices, Inc. Low latency long short-term memory inference with sequence interleaving
CN111353575A (zh) 2018-12-20 2020-06-30 超威半导体公司 用于卷积神经网络的图块化格式
JP6801020B2 (ja) * 2019-01-11 2020-12-16 セコム株式会社 画像認識装置、画像認識方法、及び画像認識プログラム
CN111723918A (zh) 2019-03-18 2020-09-29 超威半导体公司 用于卷积内核的自动生成和调谐工具
WO2021210413A1 (ja) * 2020-04-17 2021-10-21 株式会社Roxy 判別対象の分類方法、これに用いるプログラム、および、判別装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005292018A (ja) * 2004-04-02 2005-10-20 Dainippon Screen Mfg Co Ltd 欠陥検出装置、位置ずれ量取得装置および欠陥検出方法
JP5777367B2 (ja) * 2011-03-29 2015-09-09 キヤノン株式会社 パターン識別装置、パターン識別方法及びプログラム
US20130004028A1 (en) * 2011-06-28 2013-01-03 Jones Michael J Method for Filtering Using Block-Gabor Filters for Determining Descriptors for Images

Also Published As

Publication number Publication date
JP2014203135A (ja) 2014-10-27

Similar Documents

Publication Publication Date Title
JP6137916B2 (ja) 信号処理装置、信号処理方法、及び、信号処理システム
RU2770752C1 (ru) Способ и устройство для обучения модели распознавания лица и устройство для определения ключевой точки лица
CN109196526B (zh) 用于生成多模态数字图像的方法和***
US20180197049A1 (en) Activation layers for deep learning networks
US20170032222A1 (en) Cross-trained convolutional neural networks using multimodal images
KR100730500B1 (ko) 화상 처리 장치와 화상 처리 방법 및 기록 매체
JP6554900B2 (ja) テンプレート作成装置及びテンプレート作成方法
CN111327828B (zh) 拍照方法、装置、电子设备及存储介质
US10325184B2 (en) Depth-value classification using forests
US10026197B2 (en) Signal processing method, signal processing apparatus, and storage medium
CN108573471B (zh) 图像处理装置、图像处理方法以及记录介质
US11210560B2 (en) Multi-modal dense correspondence imaging system
WO2022042120A1 (zh) 目标图像提取方法、神经网络训练方法及装置
US10891740B2 (en) Moving object tracking apparatus, moving object tracking method, and computer program product
CN111382791B (zh) 深度学习任务处理方法、图像识别任务处理方法和装置
US20220164577A1 (en) Object detection method, object detection apparatus, and non-transitory computer-readable storage medium storing computer program
KR20210058882A (ko) 안면 인식 방법 및 디바이스
US20230394871A1 (en) Method for verifying the identity of a user by identifying an object within an image that has a biometric characteristic of the user and separating a portion of the image comprising the biometric characteristic from other portions of the image
JP6202938B2 (ja) 画像認識装置および画像認識方法
CN114329024A (zh) 一种iconfont图标搜索方法和***
KR102027786B1 (ko) 다수의 얼굴 이미지를 동시에 사용하는 얼굴 인식 및 인증 방법 및 시스템
CN114511877A (zh) 一种行为识别方法、装置、存储介质及终端
CN111275183A (zh) 视觉任务的处理方法、装置和电子***
CN109961083A (zh) 用于将卷积神经网络应用于图像的方法和图像处理实体
US11977951B1 (en) Optimal matching of image portion data sets

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160401

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160401

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170323

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: 20170327

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170425

R151 Written notification of patent or utility model registration

Ref document number: 6137916

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151