5

Me gustaría saber si existe alguna implementación del descriptor HOG para objetos como "autos" y NO para humanos en MATLAB?Descriptor HOG para la detección de objetos

Pero en el caso, no es sólo para los humanos, ¿me puede guiar a ese código, y dame por lo CONSEJOS el fin de mejorar el código que se utilizarán para "objetos tales como automóviles o motocicletas"

+0

Hola, me gustaría sugerir que primero intente google .. De todos modos aquí hay un enlace para el código Matlab le da una imagen como de entrada (no sólo los seres humanos de cualquier imagen que lo hará producir un vector de características de cerdo de longitud 81) [HOG] (http://www.mathworks.com/matlabcentral/fileexchange/28689-hog-descriptor-for-matlab) – G453

+0

@Sistu este código sin ninguna descripción más se utiliza para detección humana :( – Mario

+1

Eche un vistazo al documento al que se vincula la descripción. O al menos un extracto de los procedimientos IEEE. Mi comprensión (muy general) es que esta función está diseñada para devolver los descriptores HOG para la imagen proporcionada. luego usa esos descriptores para r su aplicación. Entonces, si le das de comer un "automóvil" obtendrás descriptores que puedes usar para "automóviles". –

Respuesta

0

Aquí es un excelente código de Matlab que implementa completamente el algoritmo de Dalal. He probado y usado este código para muchos proyectos académicos importantes.

http://hi.baidu.com/fpmaldfoamdfmze/item/4f3b3ac881affcb00c0a7b11 Todo el mérito va a la persona que ha publicado esto.

HOG no es específico para la detección de peatones. Puede usarlo con cualquier objeto rígido (o aproximadamente rígido).

Para utilizar este código, debe comprender cómo se calcula HOG en una región. La región está dividida en 'bloques' superpuestos. Los bloques consisten en varias "celdas". Un histograma de orientación espacial se calcula en cada bloque. El vector final se forma concatenando estos histogramas espaciales. Los parámetros que puede ajustar son

cellpw, cellph: ancho y altura de píxeles de la celda, respectivamente.

nblockw, nblockh: tamaño de bloque contado por el número de celdas en las direcciones xey, respectivamente.

nthet: Cantidad de contenedores de ángulo.

issigned: si firmó o gradiente sin signo se toma

solapamiento: cantidad de superposición entre los bloques especificados como una fracción

isglobalinterpolate: si interpolación global o local de histograma 3d

normmethod: tipo de norma utilizada

Puede intentar primero con los parámetros predeterminados -

cellpw = 8; cellph = 8; nblockw = 2; nblockh = 2; nthet = 9; superposición = 0.5; isglobalinterpolate = 'localinterpolate'; issigned = 'unsigned'; normmethod = 'l2hys';

en MATLAB conseguir la característica es algo así como

I = imread('car.png'); 
Ig = rgb2gray(I); 
F = hogcalculator(Ig, 8, 8, 2, 2, 9, 0.5,'localinterpolate', 'unsigned', 'l2hys'); 

La dimensión/longitud de F depende de las paramenters que decide.

Respondiendo a tu comentario, Sí, tienes que construir estas características para tus imágenes positiva (auto) y negativa (no auto) para construir un sistema de detección. SVM se usa generalmente como clasificador.Sugiero usar la biblioteca libsvm -

http://www.csie.ntu.edu.tw/~cjlin/libsvm/

Una vez que construir su conjunto de entrenamiento, entrenar con el conjunto de entrenamiento. Ajustar los parámetros de SVM para obtener la mayor precisión. Los parámetros dados en el ejemplo pueden no ser los mejores, siempre puedes probar un conjunto diferente. Intentaría cambiar nthet, cellpw y cellph primero. ¡Buena suerte!

2

Ahora existe una función extractHOGFeatures en la Caja de herramientas del sistema de visión por computadora.

1

HOG es un tipo de descriptor de características y se puede aplicar al objeto que desee. La implementación no tendría cambios, excepto los parámetros de tamaño de bloque, tamaño de celda, paso de bloque, etc. Para obtener un descriptor para los automóviles, debe proporcionar muestras positivas y negativas de ellos. Opencv proporciona la función para que los usuarios entrenen al clasificador. Debería ser lo mismo para matlab si proporciona el código para entrenar al clasificador.

1

Bueno, puedes usar VLFeat Toolbox, tiene una implicación muy eficaz de HOG, puedes encontrar la característica de cualquier objeto, también puedes visualizar. Si "im.jpg" si su imagen de entrada, puede obtener la característica HOG usando hog = vl_hog("im.jpg",8,'verbose') Aquí 8 es su tamaño de ventana, puede ajustar en consecuencia.

Para la visualización de la función imhog = vl_hog('render',hog,'verbose')

Cuestiones relacionadas