¿Eligiendo / normalizando los parámetros HoG para la detección de objetos?

Estoy usando las funciones HoG para la detección de objetos a través de la clasificación.

Estoy confundido acerca de cómo tratar con los vectores de características HoG de diferentes longitudes.

He entrenado a mi clasificador usando imágenes de entrenamiento que tienen el mismo tamaño.

Ahora, estoy extrayendo regiones de mi imagen en las que se ejecuta el clasificador, por ejemplo, utilizando el enfoque de ventanas deslizantes. Algunas de las ventanas que extraigo son mucho más grandes que el tamaño de las imágenes en las que se entrenó el clasificador. (Se entrenó en el tamaño más pequeño posible del objeto que podría esperarse en las imágenes de prueba).

El problema es que cuando las ventanas que necesito clasificar son más grandes que los tamaños de imagen de entrenamiento, el vector de características HoG también es mucho más grande que el vector de características del modelo entrenado.

    Entonces, ¿cómo puedo usar el vector de características del modelo para clasificar la ventana de extracción?

    Por ejemplo, tomemos las dimensiones de una ventana extraída, que es 360×240, y llamémosla ventana extractedwindow . Luego tomemos una de mis imágenes de entrenamiento, que es solo 20×30, y llamémosla muestra de trainingsample .

    Si tomo los vectores de características HoG, como este:

     fd1, hog_image1 = hog(extractedwindow, orientations=8, pixels_per_cell=(16, 16), cells_per_block=(1, 1), visualise=True, normalise=True) fd2, hog_image2 = hog(trainingsample, orientations=8, pixels_per_cell=(16, 16), cells_per_block=(1, 1), visualise=True, normalise=True) print len(fd1) print len(fd2) 

    Entonces esta es la diferencia de longitud entre los vectores de características:

     2640 616 

    Entonces, ¿cómo se trata esto? ¿Se supone que las ventanas extraídas deben reducirse al tamaño de las muestras en las que se entrenó el clasificador? ¿O deberían modificarse / normalizarse los parámetros para las características de HoG de acuerdo con cada ventana extraída? ¿O hay otra manera de hacer esto?

    Personalmente estoy trabajando en python, usando scikit-image, pero creo que el problema es independiente de la plataforma que estoy usando.

    Como usted dice, HOG básicamente usa un parámetro que establece el tamaño de celda en píxeles. Entonces, si el tamaño de la imagen cambia, entonces el número de celdas es diferente y el descriptor es diferente en tamaño.

    El enfoque principal es usar HOG es usar ventanas con el mismo tamaño en píxeles (el mismo tamaño durante el entrenamiento y también durante la prueba). La extracted window debe ser del mismo tamaño que la muestra de trainingsample .

    En esa referencia, un usuario dice:

    HOG no es invariante de escala. Obtener el mismo vector de longitud para cada imagen no garantiza la invariancia de la escala.

    Así que debes usar el mismo tamaño de ventana …