Собствени лица в OpenCV с помощта на C++

Написах код за създаване на собствени лица. Взех 3 изображения на различни хора като вход. Изчислих собствените вектори и собствените стойности. Тъй като са направени само 3 изображения, аз избирам всичките три собствени вектора, всеки с размер 36000x1, като основни компоненти. Когато преформирам собствените вектори, за да видя изображението, получавам собствено лице само за един човек. Останалите изображения са почти празни.

Извличам всеки собствен вектор от covevec (матрица от собствени вектори на ковариационна матрица)

col1=covevec.col(0);
col2=covevec.col(1);
col3=covevec.col(2);

Преоформям ги по следния начин:

if (!col1.isContinuous() && !col2.isContinuous() && !col3.isContinuous())
{
    col1=col1.clone();
    col2=col2.clone();
    col3=col3.clone();
}
Mat final1,final2,final3;
final1=col1.reshape(0,200);
final2=col2.reshape(0,200);
final3=col3.reshape(0,200);

Ето как изглежда final2: Изходно изображение final2

А другите две изглеждат така:Изходно изображение final1

какво правя грешно


person KeenLearner    schedule 10.06.2015    source източник
comment
имате нужда от много повече данни, също така трябва да normalize() вашите изображения преди стъпката pca   -  person berak    schedule 11.06.2015
comment
Да....увеличаването на данните проработи!   -  person KeenLearner    schedule 13.06.2015


Отговори (1)


Вашият код изглежда добре, така че какво не е наред?

DataDataData, това е толкова важно, когато изпълнявате задачи за компютърно зрение като тази. За да си осигурите предимство, използвайте леснодостъпен набор от данни със съответните тестови данни - Това ще свърши работа

Освен това, както berak казва, нормализирането на изображенията ще помогне. В Turk & Pentland (което, ако не сте чели трябва) те заявяват:

Стъпка 6.3: изчислете M най-добрите собствени вектори на AAT: ui = Avi

(важно: нормализирайте ui така, че ||ui|| = 1)

Това ще означава, че всичките ви данни за обучение ще бъдат от един и същ дух и ще дадат на вашия алгоритъм много по-голям шанс за успех

person GPPK    schedule 11.06.2015