-1

Pythonを使用して顔認識用のコードを作成しようとしています。これで、すべてのデータベース イメージを 1 つの 2 次元配列に配置して、それらに主成分分析 (PCA) を適用できるようになりました。matplotlib に PCA というクラスを見つけたのですが、顔認識にどう使うか迷っています。

上記のクラスの説明は次のとおりです。

class matplotlib.mlab.PCA(a)
compute the SVD of a and store data for PCA. Use project to project the data onto a reduced set of dimensions

Inputs:

a: a numobservations x numdims array
Attrs:

a a centered unit sigma version of input a

numrows, numcols: the dimensions of a

mu : a numdims array of means of a

sigma : a numdims array of atandard deviation of a

fracs : the proportion of variance of each of the principal components

Wt : the weight vector for projecting a numdims point or array into PCA space

Y : a projected into PCA space

The factor loadings are in the Wt factor, ie the factor loadings for the 1st principal component are given by Wt[0] 
4

1 に答える 1

1

それらの重要な概念は、面をより高次元の空間に投影し、その空間でそれらの間の距離を測定することです。

私はこのドキュメントから引用しています(クラスの課題のように見えます):

http://www.umiacs.umd.edu/~knkim/KG_VISA/PCA/FaceRecog_PCA_Kim.pdf

「PCA は、トレーニング ベクトルによって表される空間の基底を計算します。PCA によって計算されるこれらの基底ベクトル (実際には固有ベクトル) は、トレーニング ベクトルの最大の分散の方向にあります。以前に述べたように、それらを固有面と呼びます。 .

各固有面は特徴として表示できます。特定の顔が顔空間に投影されると、顔空間へのそのベクトルは、顔の各特徴の重要性を表します。顔は、その固有顔係数 (または重み) によって顔空間で表現されます。大きな入力ベクトルである顔画像を、顔空間で小さな重みベクトルを取るだけで処理できます。これは、画像空間の次元が顔空間の次元よりもはるかに大きいため、元の顔をいくらかの誤差で再構築できることを意味します。

このレポートでは、顔の識別のみを考えてみましょう。トレーニング セットの各顔は顔空間に変換され、その構成要素がメモリに格納されます。顔空間には、これらの既知の顔を設定する必要があります。入力面がシステムに与えられ、面空間に投影されます。システムは、保存されているすべての面から距離を計算します。」

利用可能なチュートリアルがいくつかあります。ここに私のお気に入りがあります:

于 2013-05-22T15:32:13.207 に答える