2011-07-06 13 views
8

Czy istnieje sposób porównania dwóch twarzy (być może z OpenCv) i uzyskania wyniku podobnego? Mam na myśli zastosowanie algorytmu rozpoznawania twarzy, ale tylko między 2 ścianami, a nie na całym zestawie danych.Porównaj dwie twarze (i ich podobieństwo)

Problem polega na tym, że na przykład Eigenfaces wymaga co najmniej 2 obrazów szkoleniowych.

+0

Mówisz "prawdopodobieństwo", kiedy masz na myśli "podobieństwo". Naprawiono to dla ciebie. – ikegami

+0

dziękuję ikegami –

+0

@MarcoL. Czy rozwiązałeś problem? Szukam tego samego. –

Odpowiedz

1

Tak, można bezwzględnie używać eigenfaces. Twarze treningowe nie mają nic wspólnego z dwoma twarzami, które porównujesz do rozpoznawania twarzy. Mieć galerię twarzy z ćwiczeniami powiedzmy 100 twarzy. Następnie, aby porównać dwie twarze (face_1 i face_2), zrób dekompozycję powierzchni własnej każdej twarzy za pomocą 100 twarzy w twojej galerii treningowej. Na przykład face_1 = [2 3 1 5 ...] * [eigFace1 eigface2 eigface3 eigface4 ...] 'i to samo dla drugiej twarzy. Ten wektor, który pokazałem powyżej w przykładzie [2 3 1 5 ...], porównaj go dla każdego z twoich dwóch rozkładów twarzy w jakimś algorytmie odległości (niezależnie od tego, czy jest to odległość euklidesowa, czy jakaś inna metryka odległości). Jeśli odległość w granicach określonego progu, możesz powiedzieć, że są one takie same. Pamiętaj, że jeśli korzystasz z przestrzeni własnych, pozy, warunki oświetlenia, rozmiar i tło wszystkich obrazów treningowych oraz twarze, które próbujesz porównać, muszą być znormalizowane. Oczy, nosy, usta również muszą być tak ustawione, jak to tylko możliwe.

+0

Wykonuję dekompozycję - otrzymuję tablicę liczb dla pierwszego i drugiego zdjęcia - co powinienem zrobić dalej? Jak to porównać? –

+0

Wykorzystaj metrykę odległości między dwoma wektorami - zrobią to euklides, manhattan, coś innego. Następnie sprawdź wartość uzyskanego wektora i sprawdź, czy jest w pewnym progu. – niting

-1

Spróbuj zapomnieć, że porównujesz twarze. Znajdź punkty kluczowe SURF dla obu zdjęć, dopasuj ich deskryptory. Jako wynik podobieństwa zdjęć wykorzystaj stosunek liczby dopasowanych deskryptorów do liczby wszystkich deskryptorów.

+0

To brzmi interesująco. Czy możesz podać kod/funkcje do osiągnięcia tego przy pomocy opencv? – syam

-1
  • Możesz użyć funkcji porównania, która pochodzi z openbr.Its daje dopasowany procent dwóch twarzy.

  • I podaje te wartości na podstawie min, max, mean, stddev zarówno dla prawdziwych, jak i oszustów.