JP6137916B2 - Signal processing apparatus, signal processing method, and signal processing system - Google Patents
Signal processing apparatus, signal processing method, and signal processing system Download PDFInfo
- 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
Links
Images
Landscapes
- Image Analysis (AREA)
Description
本発明は、画像データ等からパターン識別に好適な特徴量を抽出する信号処理技術に関するものである。 The present invention relates to a signal processing technique for extracting a feature amount suitable for pattern identification from image data or the like.
画像中に出現する特定の画素パターンを検出したり、他と識別したりする画像処理が知られている。前者は例えば顔検出(画像中から顔らしいパターンを検出する)であり、後者は例えば顔認証処理(検出した顔から個人を特定する)である。例えば、顔認証処理は、あらかじめ顔画像を特徴量データに変換して登録しておき、与えられた顔画像(顔領域の部分画像)を同様の特徴量データに変換し、予め登録してある顔画像の特徴量との類似性を判定し、その結果に応じて個人を識別する処理である。 Image processing for detecting a specific pixel pattern appearing in an image or distinguishing it from another is known. The former is, for example, face detection (detects a face-like pattern from the image), and the latter is, for example, face authentication processing (identifies an individual from the detected face). For example, in the face authentication process, a face image is converted into feature amount data and registered in advance, and a given face image (a partial image of a face area) is converted into similar feature amount data and registered in advance. This is a process of determining similarity with the feature amount of the face image and identifying an individual according to the result.
デジタルカメラ等により撮影したスナップ写真を用いて顔認証処理を実行する場合、顔画像には様々な照明条件下で撮影されたものが含まれる。照明条件が異なる顔画像同士であっても正しく識別するために、パターン識別に用いる特徴量は、画素パターンの照明条件による変動に対して頑健であることが望ましい。そのような特性を備えた特徴量としてLBP(Local Binary Pattern)が提案されている(非特許文献2)。 When the face authentication process is executed using a snapshot photographed by a digital camera or the like, the face image includes those photographed under various illumination conditions. In order to correctly identify even face images with different illumination conditions, it is desirable that the feature amount used for pattern identification is robust against fluctuations due to the illumination conditions of the pixel pattern. LBP (Local Binary Pattern) has been proposed as a feature quantity having such characteristics (Non-patent Document 2).
また、入力画像に対して数十種のGabor Waveletフィルタ処理を施し、各フィルタ処理後データからLBPを抽出することにより得られる特徴量が提案されている。例えば、非特許文献1、6においてLGBP(Local Gabor Binary Pattern)が提案されている。
In addition, a feature amount obtained by applying several tens of Gabor Wavelet filter processes to an input image and extracting LBP from each post-filter data has been proposed. For example, Non-Patent
非特許文献6によれば、顔認証の特徴量として、入力画像から単純にLBPを抽出したものを用いる代わりに、入力画像にGabor Waveletフィルタ処理を適用した結果からLBPを抽出したもの(LGBP)を用いる方が、より顔認証精度が良くなる。 According to Non-Patent Document 6, instead of using a feature obtained by simply extracting an LBP from an input image as a feature amount for face authentication, an LBP extracted from the result of applying a Gabor Wavelet filter process to the input image (LGBP) The face authentication accuracy is better when using.
一方、識別対象に適した空間フィルタを学習し、学習により得られた空間フィルタを用いて特徴量を抽出する手法として非特許文献4のCNN(Convolutional Neural Networks)が提案されている。CNNでは入力画像に対して階層的に空間フィルタ処理を施すことにより特徴量を抽出する。空間フィルタの学習には、一般的に誤差逆伝播(Backpropagation)法が用いられる。誤差逆伝播法は教師有り学習手法であり、学習データとその学習データに対するCNN出力の正解データの組を用いて学習する。つまり、学習データに対するCNN出力と正解データとの誤差が小さくなるように空間フィルタの係数を更新する。 On the other hand, CNN (Convolutional Neural Networks) of Non-Patent Document 4 has been proposed as a method of learning a spatial filter suitable for an identification target and extracting a feature amount using the spatial filter obtained by learning. In the CNN, feature quantities are extracted by hierarchically performing spatial filter processing on an input image. For the learning of the spatial filter, an error back propagation method is generally used. The error back propagation method is a supervised learning method, and learning is performed using a set of learning data and correct data of CNN output for the learning data. That is, the coefficient of the spatial filter is updated so that the error between the CNN output for the learning data and the correct answer data becomes small.
先に述べたように、LGBPはパターン識別に有効な特徴量として顔認証等に広く利用されている。しかし、LGBPにおいて使用するGabor Waveletフィルタは、次元数、データ数が多く、処理負荷が大きいという問題がある。また、Gabor Waveletフィルタは、元々特定のパターン識別用として設計されたものではない。そのため、特定のパターン識別(例えば顔画像の識別)を目的とする場合には、Gabor Waveletフィルタより適切な空間フィルタが存在する可能性がある。また、上述したようにCNNは学習により識別対象に適した空間フィルタを設計することができる。そのため、実際の識別対象(例えば顔画像の識別)の学習に基づき設計された空間フィルタをGabor Waveletフィルタの代わりに用いることが考えられる。 As described above, LGBP is widely used in face authentication and the like as an effective feature quantity for pattern identification. However, the Gabor Wavelet filter used in LGBP has a problem that the number of dimensions and the number of data are large and the processing load is large. Further, the Gabor Wavelet filter is not originally designed for identifying a specific pattern. Therefore, there is a possibility that there is a more appropriate spatial filter than the Gabor Wavelet filter for the purpose of specific pattern identification (for example, identification of a face image). Further, as described above, the CNN can design a spatial filter suitable for the identification target by learning. For this reason, it is conceivable to use a spatial filter designed based on learning of an actual identification target (for example, identification of a face image) instead of a Gabor Wavelet filter.
しかしながら、CNNの学習方法である誤差逆伝播法を適用するためには、入力画像に対する一連の画像処理におけるすべての処理要素が連続関数(微分可能)である必要がある。つまり、LBP及び増分符号のような符号化には不連続関数であるステップ関数が含まれるため、誤差逆伝播法では学習することができない。その結果、パターン識別に好適な特徴量を抽出可能とするCNNを学習により最適化することが出来ない。 However, in order to apply the error back-propagation method, which is a CNN learning method, all processing elements in a series of image processing on an input image need to be continuous functions (differentiable). That is, since the step function that is a discontinuous function is included in the encoding such as LBP and the incremental code, it cannot be learned by the error back propagation method. As a result, it is not possible to optimize a CNN that can extract a feature amount suitable for pattern identification by learning.
本発明は上述の問題点に鑑みなされたものであり、画像データ等からパターン識別に好適な特徴量を抽出可能とする技術を提供することを目的とする。 The present invention has been made in view of the above-described problems, and an object of the present invention is to provide a technique capable of extracting a feature amount suitable for pattern identification from image data or the like.
上述の問題点を解決するため、本発明の信号処理装置は以下の構成を備える。すなわち、信号処理装置において、入力されたデータに対して空間フィルタ処理を実行することで処理結果データを生成する生成手段と、前記処理結果データに対して、不連続関数を用いる所定の符号化処理を実行し符号化処理結果データを生成する第1の符号化手段と、前記処理結果データに対して、前記不連続関数を連続関数で近似した近似符号化処理を実行し近似符号化処理結果データを生成する第2の符号化手段と、前記近似符号化処理結果データに基づいて、前記空間フィルタ処理の重み係数を更新する更新手段と、前記更新手段による重み係数の更新を行う場合には前記処理結果データを前記第2の符号化手段に提供し、他の場合には前記処理結果データを前記第1の符号化手段に提供する、ように制御する制御手段と、を有する。 In order to solve the above-described problems, the signal processing device of the present invention has the following configuration. That is, in the signal processing device, generation means for generating processing result data by executing spatial filter processing on input data, and predetermined encoding processing using a discontinuous function for the processing result data First encoding means for generating encoding processing result data and approximate encoding processing result data by executing approximate encoding processing approximating the discontinuous function with a continuous function for the processing result data A second encoding means for generating the updating means, an updating means for updating the weighting coefficient of the spatial filter processing based on the approximate encoding processing result data, and the updating of the weighting coefficient by the updating means Control means for controlling to provide processing result data to the second encoding means, and to provide the processing result data to the first encoding means in other cases. .
本発明によれば、画像データ等からパターン識別に好適な特徴量を抽出可能とする技術を提供することができる。 ADVANTAGE OF THE INVENTION According to this invention, the technique which enables extraction of the feature-value suitable for pattern identification from image data etc. can be provided.
以下に、図面を参照して、この発明の好適な実施の形態を詳しく説明する。なお、以下の実施の形態はあくまで例示であり、本発明の範囲を限定する趣旨のものではない。 Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the drawings. The following embodiments are merely examples, and are not intended to limit the scope of the present invention.
(第1実施形態)
本発明に係る情報処理装置の第1実施形態として、顔画像から顔認証に適した特徴量を抽出するデータ処理装置を例に挙げて以下に説明する。ここで、顔認証とは、入力された顔画像から抽出された特徴量と、予め作成しておいた登録データとを比較することにより個人を特定する処理を意味する。なお、第1実施形態では顔認証における特徴抽出処理に適用する例について説明するが、本発明は他のパターン識別における特徴抽出処理に対しても適用可能である。
(First embodiment)
As a first embodiment of the information processing apparatus according to the present invention, a data processing apparatus that extracts a feature quantity suitable for face authentication from a face image will be described below as an example. Here, the face authentication means a process for identifying an individual by comparing a feature amount extracted from an input face image with registered data created in advance. In the first embodiment, an example applied to feature extraction processing in face authentication will be described, but the present invention can also be applied to feature extraction processing in other pattern identification.
<1.信号処理の概要>
図1は、第1実施形態における信号処理の概要を説明する図である。100は入力画像である。109はCNN(Convolutional Neural Networks)処理であり、入力画像100に対してCNN処理を実行する。110は符号化処理であり、CNN処理結果データに対して所定の符号化処理を実行する。CNN(Convolutional Neural Networks)処理109、符号化処理110(LBP及び増分符号)の詳細について以下に説明する。
<1. Overview of signal processing>
FIG. 1 is a diagram for explaining an outline of signal processing in the first embodiment.
<1.1.CNN(Convolutional Neural Networks)処理>
CNNは、入力画像を順方向に伝播させ、複数の異なる空間フィルタを用いたコンボリューション演算を施すことにより特徴量を抽出するニューラルネットワークである。ここでは、コンボリューション演算結果を格納する2次元データを”特徴抽出面”と呼ぶ。
<1.1. CNN (Convolutional Neural Networks) processing>
The CNN is a neural network that extracts a feature amount by propagating an input image in the forward direction and performing a convolution operation using a plurality of different spatial filters. Here, the two-dimensional data storing the convolution calculation result is referred to as “feature extraction plane”.
続いて、特徴抽出面を重なりのない局所領域に分割し、各局所領域の平均値算出(統合処理)を実行する。平均化することにより、入力画像中の識別対象の微小な幾何学的変動(平均移動や回転など)に対する頑健性が向上する。ここでは、このような処理により生成された2次元データを”統合面”と呼ぶこととする。そして、統合面に対して再び複数の異なる空間フィルタを用いたコンボリューション演算を施すことにより特徴抽出面を生成する。CNNはこの様に特徴抽出処理と統合処理を階層的に繰り返す事で所望の特徴量を抽出する。 Subsequently, the feature extraction plane is divided into non-overlapping local regions, and an average value calculation (integration process) for each local region is executed. By averaging, robustness against minute geometrical variations (average movement, rotation, etc.) of the identification target in the input image is improved. Here, the two-dimensional data generated by such processing is referred to as “integrated plane”. Then, a feature extraction surface is generated by performing convolution operation using a plurality of different spatial filters again on the integrated surface. In this way, the CNN extracts a desired feature amount by hierarchically repeating the feature extraction process and the integration process.
101a〜cは第1階層の特徴抽出面であり、2次元の空間フィルタによるコンボリューション演算結果を格納する2次元データである。105は入力画像100から特徴抽出面101cを算出するための2次元のコンボリューション演算の入力と出力の関係を表す。以下の式(1)は入力画像100から特徴抽出面101cを生成するコンボリューション演算の計算式である。
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を生成するために使用する空間フィルタは、それぞれ係数が異なる。
i (x, y): input pixel value at coordinates (x, y) u (x, y): calculation result at coordinates (x, y) w (c, r): filter at coordinates (x + c, y + r) coefficient
width, height: filter size i (x, y) corresponds to a pixel value (luminance value) of the
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枚の空間フィルタの係数を学習により決定する。
The parameter determined by learning is a coefficient of the spatial filter used for generating the feature extraction surface. In the example shown in FIG. 1, three spatial filters used to generate
<1.2.符号化処理>
符号化処理110は、CNN処理結果データ(図1に示した例では、特徴抽出面103a〜c)に対して、注目画素(注目領域)と参照画素(参照領域)との大小関係に基づく符号化を施す処理である。このような符号化処理としては、LBPもしくは増分符号がある。
<1.2. Encoding process>
The
<1.2.1.LBP>
図8は、入力画素値からLBPを抽出する処理を説明する図である。LBPは、注目画素(x,y)の画素値と、当該注目画素を取り囲む8個の参照画素(x+xn,y+yn)の画素値とに基づき、式(2)で計算される特徴量に符号化する処理である。
<1.2.1. LBP>
FIG. 8 is a diagram for explaining processing for extracting an LBP from an input pixel value. LBP is based on the pixel value of the pixel of interest (x, y) and the pixel values of eight reference pixels (x + x n , y + y n ) surrounding the pixel of interest. This is a process of encoding.
i(x,y):座標(x,y)での入力画素値
LBP(x,y):座標(x,y)でのLBP
(xn,yn):参照画素の注目画素に対する相対位置
xn={−1,0,1},yn={−1,0,1},xn 2+yn 2≠0
ただし、
i (x, y): input pixel value at coordinates (x, y) LBP (x, y): LBP at coordinates (x, y)
(X n , y n ): relative position of the reference pixel with respect to the target pixel x n = {− 1, 0, 1 }, y n = {− 1, 0, 1 }, x n 2 + y n 2 ≠ 0
However,
図8に示した例では、(xn,yn)は、注目画素の左隣の画素を起点として、注目画素を反時計まわりに囲うようにとっている。具体的には、
(x0,y0)=(−1,0)
(x1,y1)=(−1,1)
(x2,y2)=(0,1)
・・・
(x7,y7)=(−1,−1)
としている。
In the example shown in FIG. 8, (x n , y n ) surrounds the target pixel counterclockwise starting from the pixel adjacent to the left of the target pixel. In particular,
(X 0 , y 0 ) = (− 1, 0)
(X 1 , y 1 ) = (− 1, 1)
(X 2 , y 2 ) = (0, 1)
...
(X 7 , y 7 ) = (− 1, −1)
It is said.
なお、式(3)はステップ関数(階段関数)であり、参照画素値が注目画素値以上である場合は1、その逆の場合は0となる。LBPは、注目画素と参照画素との大小関係のみを表現するため、照明条件の変化により画素値が変動した場合でも、注目位置と参照位置の明るさの大小関係が変化しない限り同一視することができるという特性がある。 Equation (3) is a step function (step function), which is 1 when the reference pixel value is greater than or equal to the target pixel value, and 0 when the opposite is true. Since the LBP expresses only the magnitude relationship between the target pixel and the reference pixel, even if the pixel value fluctuates due to a change in the illumination condition, the LBP should be identified as long as the magnitude relationship between the brightness of the target position and the reference position does not change. There is a characteristic that can be.
<1.2.2.増分符号>
図9は、入力画素値から増分符号を抽出する処理を説明する図である。上述のLBPの代わりに非特許文献3の増分符号を適用してもLBPと同様の効果が得られる。座標(x,y)における増分符号は次式により計算される。
<1.2.2. Increment sign>
FIG. 9 is a diagram for explaining processing for extracting an incremental code from an input pixel value. Even if the incremental code of
i(x,y):座標(x,y)での入力画素値
IS(x,y):座標(x,y)での増分符号
(x0,y0):参照画素の注目画素に対する相対位置
x0={−1,0,1},y0={−1,0,1},x0 2+y0 2≠0
式(2)と式(4)を比較すると、LBPにおいてn=0としたものが増分符号に相当することが分かる。図9に示した例では、注目画素に対する相対位置が(x0,y0)=(0,−1)である画素を参照画素として使用している。
i (x, y): Input pixel value at coordinates (x, y) IS (x, y): Incremental sign at coordinates (x, y) (x 0 , y 0 ): Relative to reference pixel of reference pixel Position x 0 = {-1, 0 , 1}, y 0 = {-1, 0 , 1}, x 0 2 + y 0 2 ≠ 0
Comparing equation (2) and equation (4), it can be seen that the LBP with n = 0 corresponds to the incremental sign. In the example shown in FIG. 9, a pixel whose relative position with respect to the target pixel is (x 0 , y 0 ) = (0, −1) is used as a reference pixel.
<1.2.3.符号化処理の例>
図2は、第1実施形態における符号化処理(第1の符号化処理)を説明する図である。なお、図1と同じ構成要素については同じ番号を付与している。ここでは、説明を簡単にするために増分符号を用いる場合の例について説明する。LBPを用いる場合であっても増分符号と同様に適用可能である。
<1.2.3. Example of encoding process>
FIG. 2 is a diagram for explaining the encoding process (first encoding process) in the first embodiment. In addition, the same number is provided about the same component as FIG. Here, in order to simplify the description, an example in the case of using an incremental code will be described. Even when LBP is used, it can be applied in the same manner as the incremental sign.
符号化処理結果データ104a〜cはCNNの出力である特徴抽出面103a〜cに対して符号化処理を施した結果を格納する2次元データである。108は特徴抽出面103cから符号化処理結果データ104cを算出するための符号化処理における入力と出力の関係を表す。
The encoding
202a〜cは画素比較処理であり、特徴抽出面103a〜cにおける注目画素203a〜cの画素値と、参照画素204a〜cの画素値を比較する。ここでは、参照画素204a〜cから注目画素203a〜cの画素値を引いた差を計算する。
202a-c is a pixel comparison process, which compares the pixel values of the
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を生成する計算式である。
The encoding
u(x,y):座標(x,y)での前階層の面の画素値
v(x,y):座標(x,y)での演算結果
(x0,y0):参照画素の注目画素に対する相対位置
図2に示した例では、参照画素の相対位置(x0,y0)は、204a〜cについてそれぞれ(−1,0)、(0,−1)、(1,−1)である。
u (x, y): Pixel value of the previous layer surface at coordinates (x, y) v (x, y): Calculation result at coordinates (x, y) (x 0 , y 0 ): Reference pixel In the example shown in FIG. 2, the relative positions (x 0 , y 0 ) of the reference pixels are (−1, 0), (0, −1), (1, − 1).
符号化処理結果データ104a〜cは、特徴抽出面103a〜cにおける注目画素203a〜cの画素値と、参照画素204a〜cの画素値の大小関係のみを表現する。そのため、照明条件の変化により特徴抽出面103a〜cの画素パターンが変動した場合でも、注目画素203a〜cの画素値と参照画素204a〜cの画素値の大小関係が反転しない限り符号化処理結果データ104a〜cの画素値は変化しない。
The encoding
<2.学習によるフィルタ係数の決定>
第1実施形態では、図1に示した信号処理の出力結果がパターン識別対象に有効な特徴量となるようにCNNのフィルタ係数を学習により決定する。
<2. Determination of filter coefficients by learning>
In the first embodiment, the filter coefficient of CNN is determined by learning so that the output result of the signal processing shown in FIG.
<2.1.学習器>
図4は、第1実施形態におけるCNN学習器の概念図である。ここでは、公知のSiamese学習器(非特許文献5)を使用する。Siamese学習器は、入力データのペアと、入力データのペアが同じクラスであるかどうかを示すラベルとを基に学習を行う学習器である。具体的には、同じクラスの入力データに対してはCNN出力間の距離が小さく、逆に異なるクラスの入力データに対してはCNN出力間の距離の大きくなるようにCNNを学習する。
<2.1. Learning device>
FIG. 4 is a conceptual diagram of the CNN learner in the first embodiment. Here, a known Siasese learning device (Non-Patent Document 5) is used. The Siasese learning device is a learning device that performs learning based on a pair of input data and a label indicating whether the pair of input data is in the same class. Specifically, the CNN is learned so that the distance between CNN outputs is small for input data of the same class, and conversely, the distance between CNN outputs is large for input data of different classes.
学習データベース406は、学習データを格納するデータベースである。ここで、学習データとは、顔画像と顔画像に対応する人物IDとを含むデータのことである。ここで、人物IDとは、顔画像に対応する人物を識別するためのものであり、例えば整数値で表わされる。例えば、人物IDはデータベースに登録された順に0、1、2という値が設定されるようにする。また、名前やニックネーム等の文字列データを人物IDに関連付けてもよい。顔画像は好ましくは、両目が水平に並び、かつ予め定められたサイズとなるように画像変換されたものを使用する。ここで、信号処理の出力結果が各種変動に対して頑健な特徴量となるために、顔画像はパン・チルト方向への顔向き、表情、照明条件などについて様々な変動を含むことが望ましい。
The
画像ペア選択407は、学習データベース406から学習に使用する顔画像のペアを選択する。ここで、顔画像のペアは、学習データベース406に格納されているすべての顔画像の中から毎回ランダムに選択するものとする。そして、選択した顔画像401a,bをそれぞれCNN処理109a,bに入力する。また、選択した顔画像のIDが同じである場合は0、異なる場合は1という値をラベル405に設定する。ラベル405は、誤差(Loss)計算404においてLossを計算する際に使用する。
The
CNN処理109a,bは、図1に示したCNN処理109と同じネットワーク構成のCNN処理を実行する。CNN処理109a,bは、画像ペア選択407により選択された顔画像401a,bに対してCNN処理を実行してCNN処理結果データを生成する。なお、CNN処理109a,bは同じフィルタ係数408を共有する。
The CNN processes 109a and 109b execute a CNN process having the same network configuration as that of the
符号化処理110a,bは、図1を参照して説明した符号化処理110と同じ処理を実行する。符号化処理110a,bはCNN処理109a,bが生成したCNN処理結果データを符号化して符号化処理結果データを生成する。ここで、CNN処理109a,b及び符号化処理110a,bは同じ構成であり、CNN処理109a,bのフィルタ係数は同一であるため、入力画像が同じであれば符号化処理110a,bが生成する符号化処理結果データは同じものとなる。
The encoding processes 110a and 110b execute the same process as the
距離計算403は、符号化処理110a,bが生成した2つの符号化処理結果データの距離を計算する。ここでは、距離尺度として、符号化処理結果データをベクトルとした場合の間のL1ノルムを使用する。例えば、符号化処理結果データ1面あたりのサイズをW×H、符号化処理結果データの面の数をNとすると、ベクトルの次元はW×H×Nとなる。なお、ユークリッド距離、コサイン距離など、他の距離尺度を使用してもよい。式(6)は、符号化処理110a,bが生成した符号化処理結果データ間のL1ノルムを計算する計算式である。
The
w:CNNのフィルタ係数
E(w):符号化処理結果データ間のL1ノルム
vn(w):入力画像nから生成した符号化処理結果データ(n:画像ペア内のインデックス)
wはCNNのフィルタ係数を要素とするベクトルである。
なお、v、EはいずれもCNNのフィルタ係数により値が変化するためwの関数である。v1(w)、v2(w)はそれぞれ顔画像401a,bから生成された符号化処理結果データである。
w: Filter coefficient of CNN E (w): L1 norm between encoding process result data v n (w): Encoding process result data generated from input image n (n: index in image pair)
w is a vector whose elements are CNN filter coefficients.
Note that both v and E are functions of w because their values change depending on the filter coefficient of CNN. v 1 (w) and v 2 (w) are encoding process result data generated from the
Loss計算404では、距離計算403が計算したL1ノルムと、画像ペア選択407が生成したラベル405とに基づきLossを計算する。式(7)は、L1ノルムとラベル405からLossを計算する計算式である。
In the
Y:ラベルの値(0:画像ペアの人物IDが同じ、1:画像ペアの人物IDが異なる)
L(w):誤差(Loss)
Q:E(w)の上限値に設定した定数
である。
Y: Label value (0: Person ID of image pair is the same, 1: Person ID of image pair is different)
L (w): Error (Loss)
Q: A constant set to the upper limit value of E (w).
顔画像401a,bの人物IDが同じ場合、ラベル405としてY=0が入力される。この場合LossであるL(w)は、E(w)の値が小さければ小さな値に、逆にE(w)の値が大きければ大きな値となる。これは、同じ人物に対しては、符号化処理結果データ間の距離が小さいほどLossの値は小さくなることを意味する。
When the person IDs of the
また、顔画像401a,bの人物IDが異なる場合、Y=1となる。この場合LossであるL(w)は、E(w)の値が小さければ大きな値に、逆にE(w)の値が大きければ小さな値となる。これは、異なる人物に対しては、符号化処理結果データ間の距離が大きいほどLossの値は小さくなることを意味する。
Further, when the person IDs of the
以上説明した処理により、顔画像のペアからLossの値が算出される。続いて、算出されたLossを基に、誤差逆伝播法によりCNNのフィルタ係数408を更新する。誤差逆伝播法によりフィルタ係数408を更新する手順について以下に説明する。
Through the processing described above, the value of Loss is calculated from the pair of face images. Subsequently, based on the calculated loss, the
<2.2.誤差逆伝播法による学習>
誤差逆伝播法では、誤差関数を最小化するために勾配降下法を用いてパラメータを更新する。ここでは、誤差関数はL(w)、パラメータはフィルタ係数wである。ここで、wは学習を始める前に初期化する必要がある。そこで、ここでは、wを乱数により初期化する。あるいは、Gabor Waveletフィルタ、Sobelフィルタ等の公知の空間フィルタの係数を設定し初期化してもよい。また、以前の学習により得られたフィルタ係数を設定して追加再学習するようにしてもよい。式(8)は、勾配降下法によりwのi番目の要素を更新する方法を示す式である。
<2.2. Learning by back propagation method>
In the error backpropagation method, parameters are updated using a gradient descent method in order to minimize the error function. Here, the error function is L (w), and the parameter is the filter coefficient w. Here, w needs to be initialized before learning starts. Therefore, here, w is initialized with a random number. Alternatively, a coefficient of a known spatial filter such as a Gabor Wavelet filter or a Sobel filter may be set and initialized. Further, additional re-learning may be performed by setting a filter coefficient obtained by previous learning. Expression (8) is an expression showing a method of updating the i-th element of w by the gradient descent method.
wi:更新前のwのi番目の要素
wi’:更新後のwのi番目の要素
ρ:更新係数
式(8)を計算してwiを更新するためには、∂L(w)/∂wiを求める必要がある。ここで、L(w)はE(w)を通してのみwiに依存するため、偏微分の連鎖法則を適用し、∂L(w)/∂wiを式(9)に示すように変形する。
w i : i-th element of w before update w i ': i-th element of w after update ρ: update coefficient To update w i by calculating equation (8), ∂L (w ) / it is necessary to obtain the ∂w i. Here, since L (w) depends only on w i through E (w), the chain law of partial differentiation is applied to transform ∂L (w) / ∂w i as shown in equation (9). .
ここで、∂L(w)/∂E(w)は、式(7)をE(w)について偏微分することにより得られる。また、∂E(w)/∂wiは、∂L(w)/∂wiを分解したのと同様に、式(10)に示すように変形することができる。 Here, ∂L (w) / ∂E (w) is obtained by partial differentiation of Equation (7) with respect to E (w). Further, ∂E (w) / ∂w i, similar to that decompose ∂L (w) / ∂w i, can be modified as shown in equation (10).
vj:v(w)のj番目の要素
ここで、∂E(w)/∂vjは、式(6)をvjについて偏微分することにより得られる。ここで、∂E(w)/∂vjは、v1(w)に含まれるv1j,v2(w)に含まれるv2jそれぞれについて計算する必要がある。
v j : j-th element of v (w) Here, ∂E (w) / ∂v j is obtained by partial differentiation of equation (6) with respect to v j . Here, ∂E (w) / ∂v j needs to be calculated for each of v1 j included in v1 (w) and v2 j included in v2 (w).
なお、式(10)では符号化処理結果データv(w)の各要素vjに対して分解した結果を足し合わせている。これは、E(w)はv(w)のすべての要素vjを通してwiに依存するためである。 In Equation (10), the result of decomposition for each element v j of the encoding processing result data v (w) is added. This is because E (w) depends on w i through all elements v j of v (w).
∂vj/∂wiはさらに式(11)に示すように変形することができる。 ∂v j / ∂w i can be further modified as shown in equation (11).
以上のように、誤差逆伝播法では、図4において破線の矢印で示したように、∂L(w)/∂E(w)、∂E(w)/∂vj、…といった偏微分を入力顔画像からLossを算出する場合とは逆方向に順次計算していく。これにより、最終的に∂L(w)/∂wiを得る。そして、式(8)に従ってフィルタ係数を更新する。 As described above, in the backpropagation, as indicated by broken line arrow in FIG. 4, ∂L (w) / ∂E (w), ∂E (w) / ∂v j, the partial differential ... such The calculation is sequentially performed in the opposite direction to the case of calculating Loss from the input face image. This gives the final ∂L (w) / ∂w i. Then, the filter coefficient is updated according to Expression (8).
ここで、距離計算403から符号化処理110a,bに逆伝播する際、∂E(w)/∂vjは、v1(w)に対応するもの、v2(w)に対応するものに分かれて逆伝播する。CNNのフィルタ係数408は、まずv1(w)に対する逆伝播により更新し、その後v2(w)に対する逆伝播により更新するものとする。
Here, when the back propagation from the distance calculating 403 the
<2.3.近似符号化処理>
上述したように、誤差逆伝播法によりCNNのフィルタ係数408を学習するためには、すべての演算は微分可能な関数である必要がある。しかし、符号化処理110a,bにおけるステップ関数処理205では、式(3)に示したステップ関数を用いる。ステップ関数は、t=0で不連続な関数であるため、その近傍で微分不可能である。そのためこのままでは式(11)における∂vj/∂ujを計算することができない。
<2.3. Approximate encoding process>
As described above, in order to learn the
そこで、第1実施形態では、ステップ関数処理205におけるステップ関数を、微分可能な連続関数により置き換えて近似する。ここでは、ステップ関数を近似する連続関数としてtanh関数を使用するが、ステップ関数を十分に近似可能な連続関数であれば任意の関数を用いるのであってもよい。例えば、シグモイド関数(sigmoid)を使用するように変形することも可能である。ここでは、ステップ関数を連続関数により近似した符号化処理のことを”近似符号化処理”と呼ぶ。
Therefore, in the first embodiment, the step function in the
図3は、第1実施形態における近似符号化処理(第2の符号化処理)を説明する図である。図2の符号化処理に対して、ステップ関数がtanh関数に置き換えられたものに相当する。なお、図2と同じ構成要素については同じ番号を付与し説明を省略する。 FIG. 3 is a diagram illustrating the approximate encoding process (second encoding process) in the first embodiment. This corresponds to the encoding process of FIG. 2 in which the step function is replaced with a tanh function. Note that the same constituent elements as those in FIG.
近似符号化処理結果データ302a〜cは、比較処理結果データ201a〜cをtanh関数処理301により処理した結果を格納する2次元データである。tanh関数処理301は、比較処理結果データ201a〜cの各画素値を入力としてtanh関数を計算することにより近似符号化処理結果データ302a〜cを生成する。
The approximate encoding
式(12)は、図3に示した近似符号化処理により、特徴抽出面103a〜cから近似符号化処理結果データ302a〜cを生成する計算式である。
Expression (12) is a calculation expression for generating the approximate encoding
u(x,y):座標(x,y)での前階層の面の画素値
v〜(x,y):座標(x,y)での演算結果
k:tanh関数の傾きを決定する係数
ここで、kはtanh関数の傾きを決定する係数である。
u (x, y): pixel value of the previous layer surface at coordinates (x, y) v to (x, y): operation result at coordinates (x, y) k: coefficient for determining the slope of the tanh function Here, k is a coefficient that determines the slope of the tanh function.
図7は、tanh関数の係数と形状の関係を説明する図である。kの値が大きくなるにつれてtanh関数の傾きは大きくなる。kの値をk>>1と設定することにより、tanh関数はステップ関数と近い特性を持つようになる。 FIG. 7 is a diagram illustrating the relationship between the coefficient of the tanh function and the shape. As the value of k increases, the slope of the tanh function increases. By setting the value of k as k >> 1, the tanh function has characteristics close to those of the step function.
なお、kの値があまりにも大きいと、tanh関数を微分した結果は、t=0付近では非常に大きな値となり、それ以外では0に近い値となる。これは学習処理において、t=0付近ではフィルタ係数は大きく更新され、それ以外ではフィルタ係数はほとんど更新されないことを意味する。その結果、学習が収束しにくくなるという問題が生じる。ただし、kの値を小さく設定すると、tanh関数とステップ関数との誤差が大きくなってしまう。なお、実験から、k=0.5〜4.0でより好適な結果が得られることが分かった。 If the value of k is too large, the result of differentiating the tanh function is a very large value near t = 0, and close to 0 otherwise. This means that in the learning process, the filter coefficient is greatly updated near t = 0, and the filter coefficient is hardly updated otherwise. As a result, there arises a problem that learning is difficult to converge. However, if the value of k is set small, the error between the tanh function and the step function increases. In addition, it turned out that a more suitable result is obtained by experiment from k = 0.5-4.0.
<3.データ処理装置の構成>
図5は、第1実施形態におけるデータ処理装置の構成を示す図である。以下では、上述したCNNのフィルタ係数の学習および決定したフィルタ係数に基づくパターン識別処理の双方を実行可能なデータ処理装置について説明する。
<3. Configuration of data processing apparatus>
FIG. 5 is a diagram illustrating a configuration of the data processing device according to the first embodiment. In the following, a data processing apparatus capable of performing both of the above-described learning of CNN filter coefficients and pattern identification processing based on the determined filter coefficients will be described.
データ保存部501は、画像データを保持する部分であり、通常はハードディスク、フレキシブルディスク、光学記憶メディア(CD、DVD)、半導体記憶メディア(各種規格のメモリーカード、USBメモリ)等で構成される。データ保存部501には画像データの他にも、プログラムやその他のデータを保存することも可能である。あるいは、後述するRAM505の一部をデータ保存部501として用いるのであってもよい。またあるいは、後述する通信部502により接続した先の機器の記憶装置を、通信部502を介して利用するというように仮想的に構成するのであってもよい。
The
表示部507は、画像処理前、画像処理後の画像を表示、あるいはGUI等の画像を表示する装置で、一般的にはCRTや液晶ディスプレイなどが用いられる。あるいは、ケーブル等で接続された装置外部のディスプレイ装置であっても構わない。
The
入力部506は、ユーザからの指示や、データを入力する装置で、キーボードやポインティング装置を含む。なお、ポインティング装置としては、マウス、トラックボール、トラックパッド、タブレット等が挙げられる。あるいは、データ処理装置を例えば公知のデジタルカメラ装置やプリンタなどの機器に適用する場合には、ボタンやダイヤル等で構成されるのであってもよい。また、キーボードをソフトウェアで構成(ソフトウェアキーボード)し、ボタンやダイヤル、あるいは先に挙げたポインティングデバイスを操作して文字を入力するように構成するのであってもよい。
The
また、あるいは公知のタッチスクリーン装置のように、表示部507と入力部506が同一装置であってもよい。その場合、タッチスクリーンによる入力を入力部506の入力として扱う。
Alternatively, the
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)等の無線通信方式であってもよい。
A
なお、図5では入力部506、データ保存部501、表示部507が全て1つの装置内に含まれるような図を示しているが、それぞれが別体として構成されるようにしてもよい。その場合、各部は公知の通信方式により相互に通信可能に接続される。また、上記以外の追加の構成要素が存在してもよい。
Although FIG. 5 shows a diagram in which the
<4.データ処理装置の処理フロー>
図6は、第1実施形態におけるデータ処理装置における各モードの動作を示すフローチャートである。以下では、CPU503が各種プログラムを実行することにより以下のフローチャートに示す処理を実行する。
<4. Processing flow of data processing apparatus>
FIG. 6 is a flowchart showing the operation in each mode in the data processing apparatus according to the first embodiment. In the following, the
ステップS601では、動作モードを判定する。動作モードは、例えばユーザが入力部506を通して指定される。ここでは、動作モードとして、(a)学習モード、(b)識別モード、(c)登録データ作成モードの3種類あるものとする。以下では、各モードでのデータ処理装置の処理フローについて説明する。
In step S601, the operation mode is determined. The operation mode is designated by the user through the
<4.1.(a)学習モード>
学習モードは、学習を実行するための動作モードである。なお、学習に使用する顔画像は、学習処理に先立って以下の手順に従って作成され、対応する人物IDと関連付けてデータ保存部501に保存されているものとする。まず、データ保存部501に保存されている画像データをRAM505に読み出す。次に、RAM505にある画像データを8bit符号なし輝度画像に変換する。そして、公知の顔検出手法により顔領域を検出し、予め定めたサイズにリサイズした顔画像をデータ保存部501に保存する。好ましくは、目や鼻、口といった顔の器官位置を検出し、検出した器官位置に基づいて両目が水平に並び、かつ予め定められたサイズとなるように画像変換する。なお、器官位置の検出には、公知のActive Appearance Model、Active Shape Model等を用いることができる。
<4.1. (A) Learning mode>
The learning mode is an operation mode for performing learning. It is assumed that the face image used for learning is created according to the following procedure prior to the learning process, and is stored in the
また、各種変動に対して頑健な特徴量となるように、顔画像は、パン・チルト方向の顔向き、表情、照明条件などについて様々な変動を含むことが望ましい。以上の処理は、CPU503により処理してもよいし、あるいは同様の処理を外部装置により実行した結果を通信部502を介してデータ保存部501に保存してもよい。
Further, it is desirable that the face image includes various variations in the face direction in the pan / tilt direction, facial expressions, illumination conditions, and the like so that the feature amount is robust against various variations. The above processing may be performed by the
ステップS602では、学習回数カウンタpをp=0に初期化する。ここで、学習回数カウンタpは、ステップS603において学習の完了を判定するために使用する。 In step S602, a learning number counter p is initialized to p = 0. Here, the learning number counter p is used to determine completion of learning in step S603.
ステップS603では、予め指定した繰返し回数分の学習が完了したかどうかを判定する。ここでは、繰返し回数を予めM(Mは1以上の整数)回と設定しておく。ステップS603は、p<Mが成立するかどうかを判定する。成立しない場合は、学習が完了したと判定され、図6のフローチャートによる処理を終了する。一方、成立した場合は、学習は完了していないと判定され、ステップS604〜S611に進む。 In step S603, it is determined whether learning for the number of repetitions designated in advance has been completed. Here, the number of repetitions is set in advance as M (M is an integer of 1 or more). In step S603, it is determined whether p <M is satisfied. If not established, it is determined that the learning has been completed, and the processing according to the flowchart of FIG. 6 is terminated. On the other hand, when it is established, it is determined that the learning is not completed, and the process proceeds to steps S604 to S611.
ステップS604では、学習に使用する1枚目の顔画像をデータ保存部501からランダムに選択し、RAM505に格納する。また、選択した顔画像に関連付けられている人物IDをRAM505に格納する。
In step S604, the first face image used for learning is randomly selected from the
ステップS605では、ステップS604において選択した顔画像に対してCNN処理を実行してCNN処理結果データを生成する。ここでは、CNNのネットワーク構成及びフィルタ係数はRAM505に保存されているものとする。もしろん、データ保存部501や、ROM504に格納されていてもよい。この場合、CNNのネットワーク構成及びフィルタ係数をいったんRAM505に読み込んでからCNN処理を実行する。
In step S605, CNN processing is performed on the face image selected in step S604 to generate CNN processing result data. Here, it is assumed that the network configuration and filter coefficient of CNN are stored in
CNNのネットワーク構成及びフィルタ係数のRAM505への格納形式、CNN処理を実行する際のCPU503動作についての詳細を順に説明する。
Details of the network configuration of the CNN, the storage format of the filter coefficient in the
図10は、CNNのネットワーク構成のメモリへの格納例を説明する図である。ここでは、3階層のCNNネットワーク構成を示しているが、3階層に限るものではなく、一般的にはL階層(Lは1以上の整数)の構成である。ここでは、各階層の処理内容(”特徴抽出”もしくは”統合”)1001、生成する面の数1002、アドレス1003という3種類のデータを1セットとして第1階層から順にL個並べたものをRAM505に保持する。また、アドレス1003が示す位置において、前階層の各面と現階層の各面のすべての組み合わせについて、接続がある場合は○、接続がない場合は×とした2次元配列1004a〜cを保持する。
FIG. 10 is a diagram for explaining an example of storage in the memory of the network configuration of the CNN. Here, a three-layer CNN network configuration is shown, but the configuration is not limited to three layers, and is generally a configuration of an L layer (L is an integer of 1 or more). Here, the
図12は、図10に示したCNNのネットワーク構成を視覚化した図である。なお、CNNのネットワーク構成のRAM505への格納方法は図10に示した例に限らない。CPU503が各階層における処理、各階層において生成する面の数、階層間の接続関係を識別可能な形式であれば任意のものであってよい。
FIG. 12 is a diagram visualizing the network configuration of the CNN shown in FIG. The method for storing the CNN network configuration in the
図11は、CNNのフィルタ係数のメモリへの格納例を説明する図である。ここでは、空間フィルタの大きさと係数を1次元配列としてRAM505に保持する。また、フィルタ係数の先頭アドレスを順に並べた1次元配列をRAM505に保持する。ここで、RAM505には、すべての特徴抽出面を生成するために必要な空間フィルタを格納する。
FIG. 11 is a diagram for explaining an example of storing CNN filter coefficients in a memory. Here, the size and coefficients of the spatial filter are held in the
例えば、図10に示した例では、入力画像から第1階層の特徴抽出面を生成するために必要な3個の空間フィルタと、第2階層の統合面から第3階層の特徴抽出面を生成するために必要な9個の空間フィルタとを合わせた合計12個の空間フィルタを保持する。なお、ここでは、第1階層の特徴抽出面を生成するために必要な空間フィルタ、第3階層の特徴抽出面を生成するために必要な空間フィルタの順にRAM505に保持するものとする。
For example, in the example shown in FIG. 10, three spatial filters necessary for generating a first layer feature extraction surface from an input image and a third layer feature extraction surface from a second layer integration surface are generated. A total of 12 spatial filters, including the 9 spatial filters necessary for this, are held. Here, it is assumed that the
なお、フィルタ係数には予め初期値が設定されているものとする。初期値は乱数であってもよいし、あるいは以前の学習により得られたフィルタ係数であってもよい。更に、Gabor Waveletフィルタ、Sobelフィルタ等の公知の空間フィルタの係数であってもよい。CNNのフィルタ係数のRAM505への格納方法は図11に示した例に限らない。CPU503が各空間フィルタの大きさ、係数を識別可能な形式であれば任意のものであってよい。
It is assumed that initial values are set in advance for the filter coefficients. The initial value may be a random number or may be a filter coefficient obtained by previous learning. Furthermore, it may be a coefficient of a known spatial filter such as a Gabor Wavelet filter or a Sobel filter. The method of storing CNN filter coefficients in the
CPU503は、アドレス1003が示す位置に格納されている階層間の接続を表す2次元配列に従って前階層の各面に対して処理を実行する。ここで、各階層において読み込む接続関係の数は前階層の面の数(前階層が入力画像である場合は1)及び現階層の面の数により定められる。例えば、第3階層において読み込む接続関係の数は、前階層の面の数が3であり、現階層の面の数が4であるため、3×4=12となる。
The
CPU503は、前階層の各面に対して処理内容1001が示す処理を実行する。処理内容1001が特徴抽出である場合、図11に示した空間フィルタをRAM505読み込んで空間フィルタ処理を実行する。k番目のフィルタ係数を読み込む際は、まず、アドレスk、アドレスk+1の位置にそれぞれ格納されている空間フィルタの幅(width)、高さ(height)を読み込む。次に、width、heightの値を基に、アドレスk+2の位置から順に空間フィルタ係数を読み込むことにより、width×heightの大きさの2次元の空間フィルタを作成する。一方、処理内容1001が”統合”である場合、前述した統合処理を実行する。
The
ステップS606では、ステップS605において生成したCNN処理結果データに対して、式(12)に示したtanh関数を用いた近似符号化処理を実行して近似符号化処理結果データを生成する。 In step S606, the approximate encoding process result data is generated by executing the approximate encoding process using the tanh function shown in Expression (12) for the CNN process result data generated in step S605.
ステップS607では、学習に使用する2枚目の顔画像をデータ保存部501から選択し、RAM505に格納する。ここで、2枚目の顔画像はステップS604において選択した1枚目の顔画像を除いた中からランダムに選択するものとする。また、選択した顔画像の人物IDをRAM505に格納する。そして、1枚目の顔画像と同様に、ステップS605,S606の順にCNN処理、tanh関数を用いた近似符号化処理を実行して近似符号化処理結果データを生成する。
In step S607, the second face image used for learning is selected from the
ステップS608では、ステップS604及びS607において選択した2つの人物IDが一致するかどうかを確認する。もし2つの人物IDが一致すれば”0”、一致しなければ”1”というラベルを生成する。 In step S608, it is confirmed whether or not the two person IDs selected in steps S604 and S607 match. If the two person IDs match, a label “0” is generated, and if they do not match, a label “1” is generated.
ステップS609では、2枚の顔画像から生成した近似符号化処理結果データと、ステップS608において生成したラベルを用いてLossを計算する。まず、2つの近似符号化処理結果データを用いて式(6)に従ってL1ノルムを生成する。次に、L1ノルムとラベルを用いて式(7)に従ってLossを計算する。 In step S609, Loss is calculated using the approximate encoding processing result data generated from the two face images and the label generated in step S608. First, an L1 norm is generated according to equation (6) using two approximate encoding processing result data. Next, Loss is calculated according to Equation (7) using the L1 norm and the label.
ステップS610では、ステップS609において計算したLossを用いて、前述した誤差逆伝播法により、RAM505に格納されているCNNのフィルタ係数を更新する。そして、ステップS611では、学習回数カウンタpをインクリメントしてステップS603に戻る。
In step S610, the CNN filter coefficient stored in the
<4.2.(b)識別モード>
識別モードは、信号処理結果を用いてパターン識別を実行するための動作モードである。パターン識別結果は、例えば、顔認証処理などに利用される。顔認証に使用する顔画像は、以下の手順に従って顔認証処理に先立ち作成され、RAM505に保存されているものとする。まず、データ保存部501に保存されている画像データをRAM505に格納する。次に、RAM505にある画像データを8bit符号なし輝度画像に変換する。そして、公知の顔検出手法により顔領域を検出し、予め定めたサイズにリサイズした顔画像をRAM505に保存する。このとき、顔認証の結果を表示するための情報として、検出された顔領域の元の画像における位置、大きさを顔画像に関連付けてRAM505に保存する。または、同様の処理を外部装置により実行した結果を通信部502を介してRAM505に保存してもよい。
<4.2. (B) Identification mode>
The identification mode is an operation mode for performing pattern identification using the signal processing result. The pattern identification result is used for face authentication processing, for example. Assume that a face image used for face authentication is created prior to face authentication processing according to the following procedure and stored in the
ステップS612では、読み込んだ顔画像に対して前処理を実行する。具体的には、公知のActive Appearance Model、Active Shape Model等を用いて、顔の器官位置を検出し、検出した器官位置に基づいて両目が水平に並び、かつ予め定められたサイズとなるように画像変換する。 In step S612, preprocessing is performed on the read face image. Specifically, the face organ position is detected using a known Active Appearance Model, Active Shape Model, etc., so that both eyes are aligned horizontally and have a predetermined size based on the detected organ position. Convert image.
ステップS605では、上述の学習モードの場合と同様、前処理した顔画像に対してCNN処理を実行してCNN処理結果データを生成する。 In step S605, CNN processing result data is generated by performing CNN processing on the preprocessed face image, as in the case of the learning mode described above.
ステップS613では、ステップS605において生成したCNN処理結果データに対して、式(5)に示した増分符号化処理を実行する。すべての注目画素に対する増分符号を並べたベクトルを識別に使用する特徴量とする。 In step S613, the incremental encoding process shown in Expression (5) is performed on the CNN process result data generated in step S605. A vector in which increment codes for all pixels of interest are arranged is used as a feature amount used for identification.
ステップS614では、ステップS613において生成した特徴量の次元を削減する。特徴量から識別に効果的な情報のみを抽出するよう次元を削減することにより、後段の処理における計算量を少なくすることができる。次元削減は、公知のPrincipal Component AnalysisやLocality Preserving Projection等を用い、予め決定しておいた変換行列を用いて変換すれば良い。ここで、変換行列とは次元削減後のベクトル空間を規定する基底ベクトルを並べたものである。変換行列を用いて、特徴量を一列に並べた特徴ベクトルを、元の空間から基底ベクトルが規定する空間へと射影する。変換行列は、ROM504やデータ保存部501にデータあるいはプログラムの一部として格納されており、予めRAM505に読み込んでおく。CPU503はそれを参照しながら次元削減処理を実行する。
In step S614, the dimension of the feature amount generated in step S613 is reduced. By reducing the dimension so that only information effective for identification is extracted from the feature amount, the amount of calculation in the subsequent processing can be reduced. The dimension reduction may be performed using a known conversion matrix using a known Principal Component Analysis, Locality Preserving Projection, or the like. Here, the transformation matrix is an array of base vectors that define a vector space after dimension reduction. Using the transformation matrix, the feature vector in which the feature amounts are arranged in a line is projected from the original space to the space defined by the base vector. The conversion matrix is stored in the
ステップS615では、ステップS614で求めた次元削減の後の特徴量を用いて識別処理を実行する。ここでは、次元削減の後の特徴ベクトルのことを”射影ベクトル”と呼ぶ。識別処理では、射影ベクトルと登録データとを照合する。 In step S615, identification processing is executed using the feature amount after dimension reduction obtained in step S614. Here, the feature vector after dimension reduction is called a “projection vector”. In the identification process, the projection vector and registered data are collated.
登録データとは、例えば登録ベクトルと対応する人物IDとから成るデータのことである。なお、好ましくは名前やニックネーム等の文字列データを人物IDに関連付けて記憶する。登録データはデータ保存部501に格納されており、顔認証処理に先立ってRAM505に読み込まれる。登録データの作成方法については後述する。
The registration data is data including, for example, a registration vector and a corresponding person ID. Preferably, character string data such as a name and a nickname is stored in association with the person ID. The registered data is stored in the
識別処理では、射影ベクトルと登録ベクトルとの類似度と、予め指定した閾値を基に入力顔画像の人物IDを決定する。ここで、類似度は、次元削減後の特徴空間におけるベクトル間のユークリッド距離として説明する。この場合、距離が小さいほど射影ベクトルと登録ベクトルは似たベクトルであると解釈できるので、距離が小さい登録ベクトル(の基となった画像)ほど入力顔画像に類似しているといえる。 In the identification process, the person ID of the input face image is determined based on the similarity between the projection vector and the registered vector and a threshold value specified in advance. Here, the similarity is described as the Euclidean distance between vectors in the feature space after dimension reduction. In this case, since the projection vector and the registered vector can be interpreted to be similar vectors as the distance is small, it can be said that the registered vector (the image on which the distance is small) is similar to the input face image.
まず、射影ベクトルとすべての登録ベクトルとの距離を計算し、距離が小さい順に登録ベクトルをソートする。次に、射影ベクトルとソート後に先頭にある登録ベクトルとの距離(最小距離)と、予め設定した閾値とを比較する。 First, the distance between the projection vector and all registered vectors is calculated, and the registered vectors are sorted in ascending order of distance. Next, the distance (minimum distance) between the projection vector and the first registered vector after sorting is compared with a preset threshold value.
最小距離が閾値以下である場合、入力顔画像の人物IDは、ソート後に先頭にある登録ベクトルの人物IDとする。一方、最小距離が閾値よりも大きい場合、入力画像の人物は登録されていないと判定する。この場合、例えば予めシステムで定めておいた非登録人物に対応するID値を入力顔画像の人物IDとする。 When the minimum distance is equal to or smaller than the threshold, the person ID of the input face image is the person ID of the registered vector at the head after sorting. On the other hand, if the minimum distance is greater than the threshold, it is determined that no person in the input image is registered. In this case, for example, an ID value corresponding to a non-registered person determined in advance by the system is set as the person ID of the input face image.
ステップS616では、S615により得られた人物IDをRAM505に保存されている顔認証の結果を表示するための情報(顔領域の位置・サイズ)に関連付けて保存する。
In step S616, the person ID obtained in S615 is stored in association with information (face area position / size) for displaying the result of face authentication stored in the
以上の処理を元の画像から検出されたすべての顔画像それぞれに対して実行する。すべての顔画像に対する顔認証処理が完了した場合、識別結果を出力する。識別結果出力の一例として、RAM505に保存されている元画像、顔領域の位置・サイズ情報、顔領域の人物IDを基に顔認証結果画像を作成し、表示部507に表示することが考えられる。
The above processing is executed for each of all face images detected from the original image. When face authentication processing for all face images is completed, an identification result is output. As an example of the identification result output, it is conceivable that a face authentication result image is created based on the original image stored in the
図13は、顔認証の結果画像の一例を示す図である。図13の例では、各顔領域を矩形の枠で表示し、さらにその上部にその顔領域の人物IDまたは関連付けた文字列を表示している。他の出力方法として、顔領域の位置・サイズ情報、顔領域の人物IDなどを元画像と関連付けてデータ保存部501に保存する方法も考えられる。また、データ保存部501に保存するのではなく、通信部502を介して外部の機器に同様の情報を送信するよう構成しても良い。
FIG. 13 is a diagram illustrating an example of a face authentication result image. In the example of FIG. 13, each face area is displayed as a rectangular frame, and the person ID of the face area or the associated character string is displayed above the face area. As another output method, a method in which the position / size information of the face area, the person ID of the face area, and the like are associated with the original image and stored in the
上述の説明では全ての顔画像について処理が終了した時に結果を出力するとしたが、顔画像1枚に対する処理が完了する度に上記出力処理を実行するように構成してもよい。また、ここでは、ステップS612において、顔画像中の両目が水平に並び、かつ予め定められたサイズとなるように画像変換するとした。識別精度を高めるためには、このような画像変換を行うことが好ましいが、速度向上やリソース削減を図る必要がある場合などには当該画像変換処理を省略してもよい。 In the above description, the results are output when the processing is completed for all the face images. However, the output processing may be executed every time processing for one face image is completed. Here, in step S612, image conversion is performed so that both eyes in the face image are horizontally aligned and have a predetermined size. In order to increase the identification accuracy, it is preferable to perform such image conversion. However, when it is necessary to improve speed or reduce resources, the image conversion process may be omitted.
<4.3.(c)登録データ作成モード>
登録データ作成モードは、信号処理結果を用いて顔認証において使用される基準パターンとなる登録データを作成するための動作モードである。ここで、登録データとは、登録ベクトルと、登録ベクトルに対応する人物IDとから成るデータのことである。
<4.3. (C) Registration data creation mode>
The registration data creation mode is an operation mode for creating registration data to be a reference pattern used in face authentication using a signal processing result. Here, the registration data is data including a registration vector and a person ID corresponding to the registration vector.
ステップS617では、登録データの作成に使用する顔画像を選択する。まず、データ保存部501に保存されている画像データをRAM505に格納する。次に、RAM505にある画像データから、公知の顔検出手法により顔領域を検出し、検出された顔領域を矩形の枠で示した画像を表示部507に表示する。ユーザは、それらの顔領域の中から登録したい顔領域を入力部506を通して選択する。選択された顔領域の画像は、予め定めたサイズにリサイズし、RAM505に保存する。登録したい顔領域が存在しなければ、次の画像を表示する指示を入力する。
In step S617, a face image used to create registration data is selected. First, the image data stored in the
上述の識別モードで説明したステップS612〜S614と同様の処理を通して、選択した顔画像から次元削減後の特徴量を生成する。これを登録ベクトルとしてRAM505に保存する。
A feature amount after dimension reduction is generated from the selected face image through processing similar to steps S612 to S614 described in the identification mode. This is stored in the
ステップS618では、登録ベクトルと人物IDを関連付け、データ保存部501に格納する。登録ベクトルと人物IDを関連付ける手順を以下に説明する。
In step S618, the registered vector and the person ID are associated and stored in the
まず、既にデータ保存部501に格納されている人物IDもしくは人物IDに関連付けられた文字列データを表示部507に表示する。好ましくは、データ保存部501には登録データと合わせて顔画像を保存しておき、人物IDもしくは文字列データとともに顔画像を表示する。
First, the person ID already stored in the
次に、その中でS617において選択した顔画像に該当すると思われる人物IDもしくは文字列データをユーザが入力部506を介して指定する。そして、指定された人物IDを登録ベクトルに関連付けてデータ保存部501に保存する。一方、該当する人物IDもしくは文字列データが存在しなければ、その旨を入力部506を介して入力する。この場合、登録ベクトルに新たな人物IDを関連付け、データ保存部501に保存する。
Next, the user designates a person ID or character string data that is considered to correspond to the face image selected in S617 through the
以上説明したとおり、第1実施形態によれば、不連続関数(微分不可能な関数)を連続関数に近似して学習を行う。これにより、LBPや増分符号などの符号化処理を含む処理系に対し、CNNによる学習を行うことが可能となる。その結果、画像データ等からパターン識別に利用される特徴量をより好適に抽出可能とすることが可能となる。なお、第1実施形態では、3つのモード(学習モード、識別モード、登録データ作成モード)の処理を1つの装置で行うよう説明したが、それぞれを別体の複数の装置により行っても良い。 As described above, according to the first embodiment, learning is performed by approximating a discontinuous function (non-differentiable function) to a continuous function. Thereby, it is possible to perform learning by CNN for a processing system including encoding processing such as LBP and incremental code. As a result, it is possible to more suitably extract a feature amount used for pattern identification from image data or the like. In the first embodiment, the processing in the three modes (learning mode, identification mode, and registration data creation mode) has been described as being performed by one device, but each may be performed by a plurality of separate devices.
(第2実施形態)
第2実施形態では、主要な処理をハードウェア回路を用いて構成する例について説明する。すなわち、第2実施形態においては、主要な処理をASICやDSPなどのハードウェア回路である信号処理部1401で実行する点が主に異なる。
(Second Embodiment)
In the second embodiment, an example in which main processing is configured using a hardware circuit will be described. That is, the second embodiment is mainly different in that main processing is executed by a
<データ処理装置の構成>
図14は、第2実施形態におけるデータ処理装置の構成を示す図である。なお、図5と同じ構成要素については同じ番号を付与し、ここでは説明を省略する。なお、以下では、第1実施形態と異なる部分についてのみ説明する。上述のように、第2実施形態では、主要な処理を信号処理部1401で実行し、CPU503はもっぱら信号処理部1401の制御に用いられる。
<Configuration of data processing apparatus>
FIG. 14 is a diagram illustrating a configuration of a data processing device according to the second embodiment. In addition, the same number is attached | subjected about the same component as FIG. 5, and description is abbreviate | omitted here. In the following, only the parts different from the first embodiment will be described. As described above, in the second embodiment, main processing is executed by the
CPU503は、まず、ユーザが入力部506を通して入力した動作モードを読み込む。ここで、動作モードとは信号処理部1401の動作を決める情報である。ここでは、動作モードとして”識別モード”と”学習モード”の2種類があるものとする。
First, the
上述した第1実施形態と同様に、”識別モード”とは、入力画像に対して図1に示した信号処理を実行することにより、入力画像からパターン識別に使用する特徴量を抽出する動作モードである。一方、”学習モード”とは、図1に示した信号処理におけるCNNのフィルタ係数を学習する動作モードである。 As in the first embodiment described above, the “identification mode” is an operation mode in which the feature value used for pattern identification is extracted from the input image by performing the signal processing shown in FIG. 1 on the input image. It is. On the other hand, the “learning mode” is an operation mode for learning the CNN filter coefficient in the signal processing shown in FIG.
CPU503は、入力された動作モードに応じて信号処理部1401が必要とするデータをRAM505に格納する。動作モードとして”識別モード”が選択されている場合、CPU503は、データ保存部501に保存されている画像データから、第1実施形態と同様に公知の顔検出手法により顔領域を検出する。さらに両目が水平に並びかつ予め定めたサイズに画像変換した顔画像をRAM505に格納する。一方、動作モードとして”学習モード”が選択されている場合、データ保存部501に格納されているすべての学習用の顔画像の中から、選択した2枚の顔画像と顔画像に関連付けられている人物IDをRAM505に格納する。
The
CPU503は、必要なデータをRAM505に格納した後、選択された動作モードの情報を信号処理部1401に送信する。そして、信号処理部1401から処理が完了したことを示す信号を受信すると、次の動作モードの情報を読み込み、上述した処理を繰り返し実行する。
The
<信号処理部の構成>
図15は、第2実施形態における信号処理部の構成を示すブロック図である。信号処理部1401は、ユーザから受け付けた動作モードの指定に応じて処理経路を切り替える。これにより、特徴抽出処理と学習を同一の回路で実現する。以下では、信号処理部1401内の各ブロックについて図15を参照して詳細に説明する。
<Configuration of signal processing unit>
FIG. 15 is a block diagram illustrating a configuration of a signal processing unit in the second embodiment. The
1508は顔画像、CNNのネットワーク構成、CNNのフィルタ係数、tanh符号化処理後の近似符号化処理結果データという4種類のデータを格納するメモリであり、公知のRAM,レジスタなどにより構成する。ここで、顔画像は、第1実施形態と同様に、両目が水平に並び、かつ予め定めたサイズに画像変換したものであるとする。また、CNNのネットワーク構成、CNNのフィルタ係数は、例えば、それぞれ第1実施形態の図10、図11で説明した形式により格納されるものとする。
A
1501は制御部であり、信号処理部1401内の各ブロックの動作を制御する。制御部1501は、まず、CNN処理部1502が使用するCNNのネットワーク構成及びフィルタ係数をRAM505から読み込み、メモリ1508に格納する。そして、動作モードの指定をCPU503から受信するまで待機し、動作モードの指定を受信することをトリガとして、以下に説明する処理を開始する。
・識別モード
制御部1501は、まず、スイッチ1503に対してCNN処理部1502の出力を増分符号化処理部1504に入力するように指示する信号を送信する。次に、特徴抽出の対象となる顔画像をRAM505から読み込み、メモリ1508に格納する。続いて、制御部1501はCNN処理部1502に、メモリ1508に格納した顔画像に対するCNN処理を実行するように指示する信号を送信する。
Identification Mode The
増分符号化処理部1504から符号化処理結果データを受信すると、そのデータをRAM505に格納する。ここで、通信部502を介して外部のデータ処理装置に符号化処理結果データを送信するように構成してもよい。さらに、制御部1501は処理が完了したことを示す信号をCPU503に送信し、次の動作モードの指定を受信するまで待機する。
When encoding process result data is received from the incremental
信号処理回路を顔認証に適用する場合、RAM505に格納した符号化処理結果データを特徴量として、CPU503により次元削減処理、識別処理を実行するよう構成する。もちろん、次元削減処理、識別処理を合わせて信号処理部1401などのハードウェア回路として構成しても良い。
When the signal processing circuit is applied to face authentication, the
・学習モード
制御部1501は、まず、スイッチ1503にCNN処理部1502の出力をtanh符号化処理部1505に入力するように指示する信号を送信する。次に、RAM505に格納されている2枚の学習用の顔画像を読み込み、メモリ1508に格納する。また、これらの顔画像に関連付けられている人物IDも合わせて読み込む。
Learning Mode The
制御部1501は、続いて、CNN処理部1502に対してメモリ1508に格納した2枚の顔画像のうち、1枚目の顔画像に対するCNN処理を実行するように指示する信号を送信する。tanh符号化処理部1505から近似符号化処理が完了したことを示す信号を受信すると、2枚目の顔画像に対するCNN処理を実行するように指示する信号をCNN処理部1502に送信する。
Subsequently, the
制御部1501は、tanh符号化処理部1505から2枚目の顔画像に対する近似符号化処理が完了したことを示す信号を受信すると、先だって受信した2つの人物IDを比較する。そして、人物IDが同じであれば”0”、異なるならば”1”というラベルを生成してLoss計算部1506に送信する。
When receiving a signal indicating that the approximate encoding process for the second face image has been completed from the tanh encoding processing unit 1505, the
フィルタ係数更新部1507からフィルタ係数の更新が完了したことを示す信号を受信すると、更新後のフィルタ係数をメモリ1508から読み込み、RAM505に格納する。そして、処理が完了したことを示す信号をCPU503に送信し、次の動作モードの指定を受信するまで待機する。
When a signal indicating that the filter coefficient update has been completed is received from the filter
再び、図15に示された各部の説明に戻る。CNN処理部1502は、制御部1501からの指示を受けて、メモリ1508に格納されているCNNのネットワーク構成及びフィルタ係数を読み込む。そして、メモリ1508に格納された顔画像を参照して、ステップS605と同様のCNN処理を実行する。1枚の顔画像に対するCNN処理が完了すると、次の指示を受けるまで待機する。
Returning to the description of each part shown in FIG. In response to an instruction from the
スイッチ1503は、制御部1501からの指示に応じて、CNN処理部1502が生成したCNN処理結果データを増分符号化処理部1504もしくはtanh符号化処理部1505のいずれかに振り分けるスイッチである。
The
増分符号化処理部1504は、CNN処理結果データに対して、第1実施形態におけるステップS613と同様の増分符号化処理を実行し、符号化処理結果データを制御部1501に送信する。
The incremental
ここでは、先に述べたように入力画像は予め定められたサイズに変換された顔画像である。また、CNNのネットワーク構成及び空間フィルタのサイズは予め定めておく。したがって、CNN処理部1502が生成するCNN処理結果データのサイズは予め計算することが可能である。ここでは、増分符号化処理部1504は内部にレジスタ等を保持するよう構成し、制御部1501がそのレジスタにCNN出力結果データサイズに関する情報を予め設定しておくものとする。増分符号化処理部1504は、レジスタ等に保存したCNN処理結果データのサイズ分の画像に対する符号化処理が完了すると、符号化処理が完了したことを示す信号を制御部1501に送信する。
Here, as described above, the input image is a face image converted to a predetermined size. The network configuration of the CNN and the size of the spatial filter are determined in advance. Therefore, the size of the CNN processing result data generated by the
tanh符号化処理部1505は、CNN処理結果データに対して第1実施形態におけるステップS606と同様の近似符号化処理を実行し、近似符号化処理結果データをメモリ1508に格納する。ここでは、tanh符号化処理部1505はレジスタ等を保持しており、制御部1501はそこにCNN出力結果データサイズに関する情報を予め設定しておくものとする。tanh符号化処理部1505は、レジスタ等に保存したCNN処理結果データのサイズ分の画像に対する近似符号化処理が完了すると、近似符号化処理が完了したことを示す信号を制御部1501に送信する。
The tanh encoding processing unit 1505 performs the approximate encoding process similar to step S606 in the first embodiment on the CNN process result data, and stores the approximate encoding process result data in the
Loss計算部1506は、制御部1501からラベル情報を受信すると、メモリ1508に格納されている近似符号化処理結果データとラベル情報とを用いて、第1実施形態におけるステップS609と同様のLossを計算する。そして、結果をフィルタ係数更新部1507に送信する。
When the
フィルタ係数更新部1507は、Loss計算部1506からLossを受信すると、第1実施形態におけるステップS610と同様に、メモリ1508に格納されているCNNのフィルタ係数を更新する。フィルタ係数更新部1507は、フィルタ係数の更新が完了すると、更新完了を示す信号を制御部1501に送信する。なお、ここではメモリ1508が信号処理回路内に含まれるような構成を示したが、信号処理回路と接続した外部のRAM等を使用するように構成しても構わない。
When receiving the loss from the
以上説明したように、第2実施形態では、図1に示す信号処理の主要部分をハードウェア回路として実現する例について説明した。信号処理の主要部分をハードウェア回路により構成することで一般に処理の高速化が達成される。なお、信号処理部1401の全てをハードウェア回路とする必要は無く、一部の処理についてはソフトウェア処理により実現しても良い。
As described above, in the second embodiment, the example in which the main part of the signal processing shown in FIG. 1 is realized as a hardware circuit has been described. Generally, high-speed processing is achieved by configuring the main part of signal processing with hardware circuits. Note that it is not necessary for all of the
(第3実施形態)
第3実施形態では、学習処理とパターン識別処理を別体の機器で実行する信号処理システムについて説明する。図16は、第3実施形態によるデータ処理システムの構成を示す図である。図16に示したデータ処理システムでは、サーバ装置1601が学習処理を実行し、クライアント装置1602がパターン識別処理を実行するように構成されている。なお、サーバ装置1601は、好適には公知のクラウドコンピューティングのような分散処理システムにより構成するとよい。また、図16では1台のクライアント装置のみを示しているが、1台のサーバ装置に対し複数のクライアント装置が接続される構成としても良い。
(Third embodiment)
In the third embodiment, a signal processing system in which learning processing and pattern identification processing are executed by separate devices will be described. FIG. 16 is a diagram showing a configuration of a data processing system according to the third embodiment. In the data processing system shown in FIG. 16, the
<システム内の各装置の構成>
・サーバ装置
サーバ装置1601は、論理的には、図5に示したデータ処理装置の構成と同一の構成で良く、図6に示した処理を実行する。ただし、第3実施形態ではサーバ装置1601は学習処理のみを実行するため、識別モードや登録データ作成モードの処理を省略するよう構成しても構わない。なお、サーバ装置1601は、学習処理を行うため、CNN処理部(第2の生成手段)を有する。
<Configuration of each device in the system>
Server Device The
サーバ装置1601は、自身の持つ通信部502を介してクライアント装置1602から学習処理のリクエスト信号を受信すると、第1実施形態におけるステップS602〜S611に示される学習処理を実行するよう構成する。
When the
ここで、学習処理のリクエスト信号にCNNのフィルタ係数を含めるように構成することも可能である。この場合、受信したフィルタ係数をRAM505に格納し、そのフィルタ係数を初期値として学習処理を実行するように構成する。また、学習処理のリクエスト信号に人物IDを含めるように構成することも可能である。この場合、人物IDはサーバ装置1601とクライアント装置1602で共有しており、サーバ装置1601は受信した人物IDの顔画像に対する識別精度が高くなるような学習処理を実行するように構成する。さらに、学習処理のリクエスト信号に顔画像を含めるように構成することも可能である。この場合、サーバ装置1601は受信した顔画像に対する識別精度が高くなるような学習処理を実行するように構成する。
Here, the CNN filter coefficient may be included in the learning process request signal. In this case, the received filter coefficient is stored in the
サーバ装置1601は、学習処理が完了すると学習後(更新後)のフィルタ係数を、通信部502を介してクライアント装置1602に送信する。
When the learning process is completed, the
なお、ここでは、サーバ装置1601は、クライアント装置1602からのリクエスト信号の受信をトリガに学習処理を行うよう説明したが、サーバ装置1601が自律的に学習処理を行うように構成してもよい。この場合、例えば最後の学習処理から一定の時間が経過したことをトリガとして学習処理を実行するように構成する。そして、学習処理が終了した時点で、サーバ装置1601がクライアント装置1602に対して通信を開始し、学習結果のフィルタ係数を送信するように構成すればよい。あるいは、クライアント装置1602がフィルタ係数を要求してきた場合に、サーバ装置1601が、その時点での最新のフィルタ係数を送信するように構成してもよい。
Here, the
・クライアント装置
図17は、第3実施形態におけるクライアント装置の構成を示す図である。なお、図5と同じ構成要素については同じ番号を付与し、ここでは説明を省略する。1701は特徴抽出部であり、第1及び第2実施形態において説明した識別モードにおける処理と同様の処理を実行する。なお、クライアント装置1602は、識別処理を行うため、CNN処理部(第1の生成手段)を有する。
Client Device FIG. 17 is a diagram illustrating a configuration of a client device according to the third embodiment. In addition, the same number is attached | subjected about the same component as FIG. 5, and description is abbreviate | omitted here.
図18は、第3実施形態における特徴抽出部の構成を示すブロック図である。図15に示した信号処理部1401の構成に対し、特徴抽出部1701は学習モードにおける処理のために必要な構成要素を除いた構成となる。クライアント装置1602は、RAM505に格納されている顔画像に対して特徴抽出部1701を用いて特徴抽出処理を実行し、生成された符号化処理結果データを用いてCPU503によりパターン識別処理を実行する。
FIG. 18 is a block diagram illustrating a configuration of a feature extraction unit according to the third embodiment. In contrast to the configuration of the
<システムの処理フロー>
CNNのフィルタ係数を更新する場合には、クライアント装置1602は、通信部502を介して、サーバ装置1601に学習処理のリクエスト信号を送信する。あるいは、クライアント装置1602内のRAM505に格納されているCNNのフィルタ係数を送信する。またあるいは登録データに含まれる顔画像もしくは人物IDを送信する。この場合、フィルタ係数もしくは顔画像もしくは人物IDの送信を学習処理のリクエスト信号とするように構成してもよい。
<System processing flow>
When updating the filter coefficient of the CNN, the
クライアント装置1602は、サーバ装置1601に学習処理のリクエスト信号を送信した後、サーバ装置1601からフィルタ係数を受信するまで待機するように構成すればよい。あるいは、フィルタ係数の受信を待機せず、更新前のCNNのフィルタ係数を用いてパターン識別処理を継続するよう構成することもできる。この場合、例えば、学習処理が完了したタイミングなどで、サーバ装置1601がクライアント装置1602に対し通信を開始するように構成すればよい。あるいは、クライアント装置1602側でのユーザからの指示やタイマ割り込み等をトリガとして、クライアント装置1602がサーバ装置1601に学習処理が完了したかどうか問い合わせ、学習処理が完了していればフィルタ係数を受信するように構成してもよい。
The
クライアント装置1602は、サーバ装置1601から通信部502を介して更新後のフィルタ係数を受信すると、更新後のフィルタ係数をRAM505に格納する。
When the
以上説明したように、第2実施形態では、クライアント装置における学習処理を省略し、サーバ装置において学習処理を実行することにより、クライアント装置における実装負荷(機器コストなど)を削減することができる。また、サーバ装置1601に複数のクライアント装置1602が接続するように構成した場合、サーバ装置1601で学習されたフィルタ係数を複数のクライアント間で容易に共有できるという利点がある。つまり、より効率的に学習が行われ、適切なフィルタをより速く決定することが可能となる。更に、パターン識別処理を実行する複数のクライアント装置間で同一のフィルタを共有することが出来、複数のクライアント装置間で同一のパターン識別結果を得ることが可能となる。
As described above, in the second embodiment, the learning process in the client device is omitted, and the learning process is executed in the server device, whereby the mounting load (equipment cost, etc.) in the client device can be reduced. Further, when a plurality of
(変形例)
上述の実施形態では、処理対象のデータとして2次元の画像データ(顔画像)に適用する例を想定して説明した。しかし、音声信号などの1次元のデータに対しても適用可能であり、また、3次元以上のデータに対しても同様に適用可能である。
(Modification)
In the above-described embodiment, the description is given assuming an example in which the processing target data is applied to two-dimensional image data (face image). However, the present invention can be applied to one-dimensional data such as an audio signal, and can be similarly applied to three-dimensional or more data.
また、上述の実施形態では、CNN処理結果データ内の注目画素と参照画素の比較結果に対する不連続関数処理としてステップ関数を使用する例について説明したが、ステップ関数に限るわけではなく、パルス関数を利用することも出来る。ステップ関数では、比較対象の2つの値の相対的な大小に応じて2値化(”0”又は”1”)する。それに対し、パルス関数では、比較対象の2つの値の差の絶対値に応じて2値化(”0”又は”1”)する。図19は、不連続関数であるパルス関数と当該パルス関数を近似するガウス関数を示す図である。 In the above-described embodiment, the example in which the step function is used as the discontinuous function processing for the comparison result between the target pixel and the reference pixel in the CNN processing result data has been described. However, the step function is not limited to the step function. It can also be used. In the step function, binarization (“0” or “1”) is performed according to the relative magnitude of the two values to be compared. On the other hand, the pulse function binarizes (“0” or “1”) according to the absolute value of the difference between the two values to be compared. FIG. 19 is a diagram illustrating a pulse function that is a discontinuous function and a Gaussian function that approximates the pulse function.
更に、上述の実施形態では、CNN処理結果データ内の1つの注目画素と1つの参照画素のそれぞれの画素値を比較する例について説明したが、1つの画素の画素値に限定されない。例えば、1つの画素の画素値の代わりに(m×m)画素の領域内の画素値の平均値を使用するよう構成しても良い。 Furthermore, in the above-described embodiment, the example in which the pixel values of one target pixel and one reference pixel in the CNN processing result data are compared has been described, but the present invention is not limited to the pixel value of one pixel. For example, instead of the pixel value of one pixel, an average value of pixel values in an area of (m × m) pixels may be used.
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
(Other examples)
The present invention can also be realized by executing the following processing. That is, software (program) that realizes the functions of the above-described embodiments is supplied to a system or apparatus via a network or various storage media, and a computer (or CPU, MPU, or the like) of the system or apparatus reads the program. It is a process to be executed.
Claims (11)
前記処理結果データに対して、不連続関数を用いる所定の符号化処理を実行し符号化処理結果データを生成する第1の符号化手段と、
前記処理結果データに対して、前記不連続関数を連続関数で近似した近似符号化処理を実行し近似符号化処理結果データを生成する第2の符号化手段と、
前記近似符号化処理結果データに基づいて、前記空間フィルタ処理の重み係数を更新する更新手段と、
前記更新手段による重み係数の更新を行う場合には前記処理結果データを前記第2の符号化手段に提供し、他の場合には前記処理結果データを前記第1の符号化手段に提供する、ように制御する制御手段と、
を有することを特徴とする信号処理装置。 Generating means for generating processing result data by executing spatial filtering on the input data;
First encoding means for executing a predetermined encoding process using a discontinuous function on the processing result data to generate encoding process result data;
A second encoding means for executing an approximate encoding process in which the discontinuous function is approximated by a continuous function with respect to the processing result data, and generating approximate encoding process result data;
Updating means for updating a weighting factor of the spatial filter processing based on the approximate encoding processing result data;
Providing the processing result data to the second encoding means when updating the weighting coefficient by the updating means, and providing the processing result data to the first encoding means in other cases; Control means for controlling
A signal processing apparatus comprising:
前記処理結果データに対して、不連続関数を用いる所定の符号化処理を実行し符号化処理結果データを生成する第1の符号化工程と、
前記処理結果データに対して、前記不連続関数を連続関数で近似した近似符号化処理を実行し近似符号化処理結果データを生成する第2の符号化工程と、
前記近似符号化処理結果データに基づいて、前記空間フィルタ処理の重み係数を更新する更新工程と、
重み係数の更新を行う場合には、前記第2の符号化工程を実行し、他の場合には前記第1の符号化工程を実行する、ように制御する制御工程と、
を有することを特徴とする信号処理方法。 A generation step of generating processing result data by executing spatial filtering on the input data;
A first encoding step of executing a predetermined encoding process using a discontinuous function on the processing result data to generate encoding process result data;
A second encoding step of performing an approximate encoding process in which the discontinuous function is approximated by a continuous function on the processing result data to generate approximate encoding process result data;
An update step of updating a weighting coefficient of the spatial filter processing based on the approximate encoding processing result data;
A control step for performing control so that the second encoding step is executed when the weighting factor is updated, and the first encoding step is executed in other cases;
A signal processing method characterized by comprising:
前記クライアント装置は、
入力されたデータに対して空間フィルタ処理を実行することで処理結果データを生成する第1の生成手段と、
前記第1の生成手段により生成された処理結果データに対して、不連続関数を用いる所定の符号化処理を実行し符号化処理結果データを生成する第1の符号化手段と、
前記符号化処理結果データに基づいてパターン識別を行うパターン識別手段と、
を有し、
前記サーバ装置は、
入力されたデータに対して前記空間フィルタ処理を実行することで処理結果データを生成する第2の生成手段と、
前記第2の生成手段により生成された処理結果データに対して、前記不連続関数を連続関数で近似した近似符号化処理を実行し近似符号化処理結果データを生成する第2の符号化手段と、
前記近似符号化処理結果データに基づいて、前記第2の生成手段の空間フィルタ処理の重み係数を更新する更新手段と、
を有し、更に、
前記サーバ装置は、前記更新手段により更新された重み係数を前記クライアント装置に送信する送信手段を有し、前記クライアント装置は、前記サーバ装置から受信した重み係数を前記第1の生成手段の空間フィルタ処理の重み係数として設定する設定手段を有する
ことを特徴とする信号処理システム。 A signal processing system including a client device and a server device,
The client device is
First generation means for generating processing result data by executing spatial filtering on the input data;
First encoding means for executing predetermined encoding processing using a discontinuous function on the processing result data generated by the first generation means to generate encoding processing result data;
Pattern identifying means for performing pattern identification based on the encoding processing result data;
Have
The server device
Second generation means for generating processing result data by executing the spatial filter processing on input data;
Second encoding means for executing approximate encoding processing for approximating the discontinuous function with a continuous function on the processing result data generated by the second generating means to generate approximate encoding processing result data; ,
Updating means for updating a weighting factor of the spatial filter processing of the second generation means based on the approximate encoding processing result data;
In addition,
The server device includes a transmission unit that transmits the weighting factor updated by the updating unit to the client device, and the client device uses the weighting factor received from the server device as a spatial filter of the first generation unit. A signal processing system comprising setting means for setting as a processing weight coefficient.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013076454A JP6137916B2 (en) | 2013-04-01 | 2013-04-01 | Signal processing apparatus, signal processing method, and signal processing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013076454A JP6137916B2 (en) | 2013-04-01 | 2013-04-01 | Signal processing apparatus, signal processing method, and signal processing system |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2014203135A JP2014203135A (en) | 2014-10-27 |
JP2014203135A5 JP2014203135A5 (en) | 2016-05-26 |
JP6137916B2 true JP6137916B2 (en) | 2017-05-31 |
Family
ID=52353556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013076454A Active JP6137916B2 (en) | 2013-04-01 | 2013-04-01 | Signal processing apparatus, signal processing method, and signal processing system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6137916B2 (en) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016192758A (en) * | 2015-03-31 | 2016-11-10 | 京セラドキュメントソリューションズ株式会社 | Electronic apparatus and similar face image replacement program |
US9436895B1 (en) * | 2015-04-03 | 2016-09-06 | Mitsubishi Electric Research Laboratories, Inc. | Method for determining similarity of objects represented in images |
JP2016197389A (en) * | 2015-04-03 | 2016-11-24 | 株式会社デンソーアイティーラボラトリ | Learning system, learning program, and learning method |
KR102325602B1 (en) | 2015-07-06 | 2021-11-12 | 삼성전자주식회사 | Device and method to process data in parallel |
JP6158882B2 (en) * | 2015-09-18 | 2017-07-05 | ヤフー株式会社 | Generating device, generating method, and generating program |
JP6798183B2 (en) * | 2016-08-04 | 2020-12-09 | 株式会社リコー | Image analyzer, image analysis method and program |
JP6800656B2 (en) * | 2016-08-24 | 2020-12-16 | キヤノン株式会社 | Arithmetic circuit, its control method and program |
JP7070541B2 (en) * | 2017-03-06 | 2022-05-18 | ソニーグループ株式会社 | Information processing equipment |
JP6214073B2 (en) * | 2017-03-16 | 2017-10-18 | ヤフー株式会社 | Generating device, generating method, and generating program |
WO2018207334A1 (en) * | 2017-05-12 | 2018-11-15 | 日本電気株式会社 | Image recognition device, image recognition method, and image recognition program |
CN108960001B (en) * | 2017-05-17 | 2021-12-24 | 富士通株式会社 | Method and device for training image processing device for face recognition |
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 (en) * | 2017-12-06 | 2021-05-19 | 株式会社日立製作所 | Learning system and image search system |
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 (en) | 2018-12-20 | 2020-06-30 | 超威半导体公司 | Tiled format for convolutional neural networks |
JP6801020B2 (en) * | 2019-01-11 | 2020-12-16 | セコム株式会社 | Image recognition device, image recognition method, and image recognition program |
CN111723918A (en) | 2019-03-18 | 2020-09-29 | 超威半导体公司 | Automatic generation and tuning tool for convolution kernel |
JP7545228B2 (en) | 2020-04-07 | 2024-09-04 | キヤノン株式会社 | Image processing device and method, and imaging device and control method thereof |
JPWO2021210413A1 (en) * | 2020-04-17 | 2021-10-21 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005292018A (en) * | 2004-04-02 | 2005-10-20 | Dainippon Screen Mfg Co Ltd | Defect detector, apparatus for acquiring amount of position deviation, and defect detection method |
JP5777367B2 (en) * | 2011-03-29 | 2015-09-09 | キヤノン株式会社 | Pattern identification device, pattern identification method and program |
US20130004028A1 (en) * | 2011-06-28 | 2013-01-03 | Jones Michael J | Method for Filtering Using Block-Gabor Filters for Determining Descriptors for Images |
-
2013
- 2013-04-01 JP JP2013076454A patent/JP6137916B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2014203135A (en) | 2014-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6137916B2 (en) | Signal processing apparatus, signal processing method, and signal processing system | |
RU2770752C1 (en) | Method and device for training a face recognition model and a device for determining the key point of the face | |
CN109196526B (en) | Method and system for generating multi-modal digital images | |
US20170032222A1 (en) | Cross-trained convolutional neural networks using multimodal images | |
KR100730500B1 (en) | Image processing apparatus, image processing method, and recording medium | |
JP6554900B2 (en) | Template creation apparatus and template creation method | |
CN111327828B (en) | Photographing method and device, electronic equipment and storage medium | |
US10325184B2 (en) | Depth-value classification using forests | |
US10026197B2 (en) | Signal processing method, signal processing apparatus, and storage medium | |
CN108573471B (en) | Image processing apparatus, image processing method, and recording medium | |
US11210560B2 (en) | Multi-modal dense correspondence imaging system | |
WO2022042120A1 (en) | Target image extracting method, neural network training method, and device | |
US10891740B2 (en) | Moving object tracking apparatus, moving object tracking method, and computer program product | |
CN111382791B (en) | Deep learning task processing method, image recognition task processing method and device | |
US20220164577A1 (en) | Object detection method, object detection apparatus, and non-transitory computer-readable storage medium storing computer program | |
KR20210058882A (en) | Facial recognition method and device | |
US11783625B2 (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 (en) | Image recognition apparatus and image recognition method | |
CN114329024A (en) | Icon searching method and system | |
KR102027786B1 (en) | Method and system for recognizing face of user based on multiple images | |
CN114511877A (en) | Behavior recognition method and device, storage medium and terminal | |
CN111275183A (en) | Visual task processing method and device and electronic system | |
CN109961083A (en) | For convolutional neural networks to be applied to the method and image procossing entity of image | |
US11977951B1 (en) | Optimal matching of image portion data sets | |
US20230162001A1 (en) | Classification device configured to execute classification processing using learning machine model, method, and non-transitory computer-readable storage medium storing computer program |
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 |