Перейти к содержимому
Compvision.ru
zamir

LDA для распознавания лиц

Recommended Posts

Добрый день.

Я не силён в математике и c++, но сильно заморочился распознаванием лиц.

вроде получилось даже реализовать PCA

очень хочется попробовать как работает LDA, но я никак не могу понять как это реализовать при помощи opencv

прошу помощи в данном вопросе

Так я обучаю

    pca(NOWtrainData, // pass the data
Mat(), // we do not have a pre-computed mean vector, so let the PCA engine to compute it
CV_PCA_DATA_AS_ROW, // indicate that the vectors are stored as matrix rows (use CV_PCA_DATA_AS_COL if the vectors are the matrix columns)
MAX_PC // specify, how many principal components to retain
);

Mat PCAtrainData=CvPCAtrainData;
for( int i = 0; i < (train_samples*classes); i++ )
{
Mat vec = NOWtrainData.row(i), coeffs = PCAtrainData.row(i);
pca.project(vec,coeffs); // PC coordinates of projected vectors
}

Matknn=new CvKNearest( CvPCAtrainData, trainClasses, 0, false, K );
[/codebox]

вот так я ищу классы

[codebox] CvMat* nearest=cvCreateMat(1,K,CV_32FC1);
CvMat* distance=cvCreateMat(1,K,CV_32FC1);
Mat coeffs;
Mat img32f=preprocessing32(img);
pca.project(img32f, coeffs); // вычитаем из вектора общие элементы
CvMat PCA_img = coeffs;
float result=Matknn->find_nearest(&PCA_img,1,0,0,0,0);
float result_more=Matknn->find_nearest(&PCA_img,K,0,0,nearest,distance);

компилирую так:

#!/bin/sh.
if [[ $# > 0 ]] ; then
base=`basename $1 .c`
echo "compiling $base"
gcc -ggdb `pkg-config opencv --cflags --libs` $base.c -o $base.
else
for i in *.cpp; do.
echo "compiling $i".
g++ -ggdb `pkg-config --cflags opencv` -o `basename $i .cpp` $i `pkg-config --libs opencv`;.
done.
fi
[/codebox]

полный код во вложении, может кто подхватит и сделает полезную утилиту для сортировки фотографий например :)

facedetect7.cpp.gz

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×