Na koniec i upraszczając nieco, wszystko, co potrzebne do wykrycia określonych obiektów w obrazie jest:
„interesujące”
- Zlokalizuj wyodrębnić poprawki:
W celu uzyskać punkty zainteresowania, możesz użyć niektórych algorytmów, takich jak wykrywacz narożny Harris, losowo lub po prostu jak przesuwane okna.
- Z tych punktów dostać łatki:
trzeba będzie podjąć decission wielkości plastra.
- Z tych łat oblicza deskryptor funkcji. (jak HOG).
Zamiast HOG można użyć innego deskryptor funkcji jak Sift, surf ...
realizacja HOG nie jest zbyt trudne. Musisz obliczyć gradienty wyekstrahowanej łatki stosując przy tym jądra Sobel X i Y, po czym musisz podzielić plaster w komórkach NxM, na przykład 8x8 i obliczyć histogram gradientów, kątów i wielkości. W poniższym linku można go zobaczyć bardziej szczegółowe wyjaśnienie: HOG Person Detector Tutorial
- Sprawdź wektora cech w uprzednio przeszkolony klasyfikatora
Gdy masz ten wektor, sprawdź, czy jest to pożądany przedmiot lub nie z wcześniej przeszkolonym klasyfikatorem takim jak SMV. Zamiast SVM można na przykład użyć NeuralNetworks.
Implementacja SVM jest trudniejsza, ale istnieje kilka bibliotek takich jak opencv, z których można korzystać.
Trochę się spóźniłem, ale dla prostego i prostego przykładu ZOBACZ: http://stackoverflow.com/questions/6090399/get-hog-image-features-from-opencv-python – jmunsch