2010-11-07 13 views
7

ja próbuje trenować Haar classificator kaskadowy wykrywania łazienką karty (co nie rotację i nie ma zakłóceń na obraz)OpenCV Haar szkolenia dla obrazu statycznego

Na przykład mam pliku Clubs.png których zawartość kluby obraz na białym tle 20x20 pikseli

Ten poradnik jest tak splątane http://note.sonots.com/SciSoftware/haartraining.html

Mój obraz zmienia się tylko w rozmiarach, bez zniekształceń i wędkarstwa.

Jakie polecenia muszę wprowadzić, aby uzyskać plik Clubs.xml?

Odpowiedz

6

Jak wspomina @ Neon22, świetny samouczek. Z mojego doświadczenia wynika, że ​​jest to dość długotrwały proces (zbieranie próbek pozytywnych i negatywnych, trening, generowanie kaskady haar), ale może znowu robiłem to źle.

Do wykrywania kart warto również przyjrzeć się OpenCV SURF.

OpenCV SURF

Wyjazd toxi „s video.

Funny można wymienić karty, Eugene Zatepyakin nie port ActionScript nazywa ASSURF:

ASSURF cards

1

Spróbuj tego samouczka zamiast tego. http://cgi.cse.unsw.edu.au/~cs4411/wiki/index.php?title=OpenCV_Guide

ale samouczek, który identyfikujesz, jest całkiem niezły. Użyłem go do uporządkowania mojego klasyfikatora haar. Przykładowy kod facedetect zawarty w dystrybucji opencv 2.1 jest dobrym przykładem do sprawdzenia wynikowego pliku xml. (Używam python)

Znalazłem kilka problemów z dostarczonymi aplikacjami pomocy. 1. createsamples nie odczyta pliku opisu zawierającego więcej niż 8 próbek z tego samego obrazu - ręcznie podziel plik relacji na kilka linii z nie więcej niż 8 prostokątami na obraz.

Szkolenie Haar nie będzie kontynuowany, jeśli mój .vec plik został wykonany z obrazami szerokości i wysokość> 24 pikseli

Główny problem z Haar wydaje się, że nie jest niezmienne do skalowania i trzeba tysiące testu images - to jest to, co program createsamples pomoże ci zrobić z pojedynczymi obrazami, ale nie będzie, jeśli masz plik opisu pojedynczych przykładowych obrazów. Stąd tutoriale zawierają dodatkowy kod pozwalający na wywoływanie createamples wiele razy, a powstałe w rezultacie pliki vec mogą być łączone w jeden plik super vec.

-1

Można odwołać:
http://opencv-hub.blogspot.in/2016/03/how-to-train-your-own-opencv-haar-classifier-haar-training-train-cascade.html
do tworzenia własnych Haar-Cascade pliku XML.
Ten tutorial OpenCV jest w języku C++, w którym szczegółowo wymieniono metody treningu Haar. Zwróć też uwagę, że Haar nie jest niezmiennikiem rotacji.
Tak więc po obróceniu obrazu nie zostanie on wykryty.
Do tego celu należy użyć SURF.
Ale wykrywanie obiektów przez Haar jest znacznie szybsze niż w SURF. Jeśli chcesz nauczyć się obsługi wyszkolonego pliku kaskadowego Haar, możesz polecić:
http://opencv-hub.blogspot.in/2016/03/how-to-do-real-time-face-detection-using-haar-cascade.html
Kod wykrywania twarzy w czasie rzeczywistym byłby analogiczny do wykrywania obiektów w czasie rzeczywistym.