Как выполнить шаблон соответствия в Emgu CV - PullRequest
3 голосов
/ 22 февраля 2012

Сэр,

Я новичок в Emgu CV. Я делаю программное обеспечение для распознавания лиц. Я смог обнаружить лица с помощью классификаторов HaarCascade xml. Но я застрял на следующем шаге относительно того, как распознать лицо. использовать функцию MatchTemplate ...

Я нашел этот код в интернете

Image<Gray, Byte> templateImage = new Image<Gray, Byte>(bmpSnip);
Image<Gray, float> resultImage = sourceImage.MatchTemplate(templateImage,Emgu.CV.CvEnum.TM_TYPE.CV_TM_CCOEFF_NORMED);

float[,,] matches = resultImage.Data;
for (int x = 0; x < matches.GetLength(1); x++)
{
for (int y = 0; y < matches.GetLength(0); y++)
{
double matchScore = matches[y, x, 0];
if (matchScore > 0.75)
{
Rectangle rect = new Rectangle(new Point(x,y), new Size(1, 1));
imgSource.Draw(rect, new Bgr(Color.Blue), 1);
}
}

Я не понял этот код ... Во-первых, этот код не работает .... Во-вторых, если кто-нибудь знает, как это сделать правильно ... Пожалуйста, отправьте код .....

1 Ответ

3 голосов
/ 22 февраля 2012

Метод MatchTemplate предназначен для предварительного сопоставления объектов с определяемыми объектами.Лицо, в то время как у нас с вами могут быть определяющие элементы для метода FFT, используемого в MatchTemplate, определяющие элементы просто недостаточно велики для распознавания лиц.Сурья прав, поскольку сравнение было бы интересным, и я бы предложил, чтобы наилучшим подходом было сопоставление областей изображения лица шаблона с распознанным лицом с камеры.Так, например, вы бы взяли положение глаз и применили MatchTemplate к тому же местоположению и взяли среднее значение соответствия этих функций для оценки общей точности.

Однако существенная проблема, с которой вы столкнетесь по своей сути, - это время выполнения.С большой базой данных граней MatchTemplate значительно не уменьшает набор данных, чтобы обеспечить обработку в реальном времени.

Eigen Recogniser - гораздо более безопасный и эффективный метод.Это будет надежнее, чем создание собственного алгоритма, и значительно быстрее.Пожалуйста, смотрите мою статью здесь о том, как это реализовать:

http://www.codeproject.com/Articles/261550/EMGU-Multiple-Face-Recognition-using-PCA-and-Paral

Надеюсь, это поможет,

Приветствия,

Крис

...