Я работаю над системой распознавания лиц, где я сталкиваюсь с проблемой при обнаружении неизвестных лиц.
Проблема в том, что система всегда возвращает ближайшую совпадающую грань из базы данных для неизвестной грани.
Я использовал комбинацию three algorithms(EIGEN, FISHER & LBPH)
, чтобы повысить точность распознавания лиц.
Он дает точность 80-90% для лиц, которые уже присутствуют в базе данных, но для неизвестного лица, которого нет в базе данных, он всегда возвращает лицо с наилучшим соответствием из базы данных.
eigenFaceRecognizer = new EigenFaceRecognizer(4,5000);
FisheigenFaceRecognizer = new FisherFaceRecognizer(4, 5000);
LBPeigenFaceRecognizer = new LBPHFaceRecognizer(4, 8, 8, 8, 5000)
var result = eigenFaceRecognizer.Predict(_grayFrame);
var resultFish = FisheigenFaceRecognizer.Predict(_grayFrame);
var LBPresult = LBPeigenFaceRecognizer.Predict(_grayFrame);
if (result.Label != -1 && resultFish.Label != -1 && LBPresult.Label != -1)
{
if ( result.Label == resultFish.Label == LBPresult.Label)
{
return Label;
}
}
else
{
return "Unknown"
}