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!
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
@Sistu este código sin ninguna descripción más se utiliza para detección humana :( – Mario
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". –