2011-10-04 25 views
11

Me gustaría saber si hay algún código o alguna buena documentación disponible para implementar las características de HOG. Traté de leer la documentación here pero es bastante difícil de entender y necesita SVM ..HOG para "detectar objetos" opencv

Lo que necesito es sólo para implementar un detector de HOG para los objetos .... Al igual que lo que sí SIFT o navegar

Por cierto, no soy interesante en el trabajo this.

Gracias ..

+0

Estoy un poco tarde, pero para un ejemplo simple y directo VEA: http://stackoverflow.com/questions/6090399/get-hog-image-features-from-opencv-python – jmunsch

Respuesta

4

se puede echar un vistazo a http://szproxy.blogspot.com/2010/12/testtest.html

también publicó "Tutorial" para HOG en Source Forge aquí: http://sourceforge.net/projects/hogtrainingtuto/?_test=beta

sé que esto ya que soy teniendo el mismo problema que tú. Sin embargo, el tutorial no es lo que llamaría un tutorial, es un montón de códigos fuente, no hay documentación, pero supongo que funciona y al menos puede llegar a algún lado.

+0

Gracias por su respuesta , pero para detectar a las personas, ya se implementó un tutorial en las muestras en opencv open source, pero no conozco los parámetros necesarios para detectar los objetos. – Mario

1

Hay una función extractHOGFeatures en la Caja de herramientas del sistema de visión por ordenador para MATLAB.

1

Al final y simplificando un poco, todo lo que necesita para detectar objetos específicos en la imagen es:

"puntos de interés"
  • Localizar para extraer los parches:

Con el fin de obtener puntos de interés, puede utilizar algunos algoritmos como el detector de esquina de Harris, al azar o algo así como ventanas deslizantes.

  • A partir de estos puntos de obtener parches:

que tendrá que tomar el decission del tamaño del parche.

  • De estos parches calcule el descriptor de la característica. (como HOG).

En lugar de HOG puede utilizar otro descriptor SIFT como característica, SURF ...
aplicación del HOG no es demasiado difícil. Debe calcular los gradientes del parche extraído aplicando los núcleos Sobel X e Y, luego debe dividir el parche en celdas NxM, 8x8 por ejemplo, y calcular un histograma de gradientes, ángulos y magnitudes. En el siguiente enlace se puede ver que la explicación más detallada: HOG Person Detector Tutorial

  • Compruebe su vector de características en el clasificador entrenado previamente

Una vez que tienes este vector, comprobar si es el objeto deseado o no con un clasificador entrenado previamente como SMV. En cambio, SVM podría usar NeuralNetworks, por ejemplo.

La implementación de SVM es más difícil, pero hay algunas bibliotecas como opencv que puede usar.

Cuestiones relacionadas