Cambio de tamaño y relleno de imágenes para CNN

14

Quiero entrenar a una CNN para el reconocimiento de imágenes. Las imágenes para entrenamiento no tienen un tamaño fijo. Quiero que el tamaño de entrada para el CNN sea 50x100 (alto x ancho), por ejemplo. Cuando cambio el tamaño de algunas imágenes de tamaño pequeño (por ejemplo, 32x32) al tamaño de entrada, el contenido de la imagen se estira demasiado horizontalmente, pero para algunas imágenes de tamaño mediano se ve bien.

¿Cuál es el método adecuado para cambiar el tamaño de las imágenes y evitar que se destruya el contenido?

(Estoy pensando en rellenar imágenes con ceros para completar el tamaño después de cambiarles el tamaño en cierto grado manteniendo la relación de ancho y alto. ¿Estaría bien con este método?)

Odgiiv
fuente

Respuestas:

10

Esta pregunta sobre stackoverflow podría ayudarte. En resumen, algunos investigadores de aprendizaje profundo piensan que rellenar una gran parte de la imagen no es una buena práctica, ya que la red neuronal tiene que aprender que el área acolchada no es relevante para la clasificación, y no tiene que aprender eso si usted use la interpolación, por ejemplo.

David Masip
fuente
5

Tienes pocas opciones:

Para imágenes pequeñas:

  • upsample a través de la interpolación
  • rellena la imagen usando ceros

Si no puede mantener la relación de aspecto mediante el muestreo ascendente, puede realizar un muestreo ascendente y también recortar el exceso de píxeles en la dimensión más grande. Por supuesto, esto daría como resultado la pérdida de datos, pero puede cambiar repetidamente el centro de su cultivo. Esto ayudaría a que su modelo sea más robusto.


Para imágenes grandes:

  • disminución de la muestra
  • recortar a su tamaño de entrada

Por último, si está utilizando una red totalmente convolucional (FCN), no necesita cambiar el tamaño de sus imágenes.

TL; DR:

Sí, el relleno con ceros es una opción válida.

Benji Albert
fuente
si he entrenado pesos para una red totalmente convolucional que acepta 3 cuadros de video concatenados, ¿cómo puedo usar estos pesos para una red con la misma arquitectura, excepto que el tamaño de entrada se aumenta a 11 cuadros concatenados? Solo estoy haciendo predicciones, no entrenando más. Mi pregunta está aquí: datascience.stackexchange.com/questions/55737/…
mLstudent33
3

Puede hacer lo siguiente Primero cambiar el tamaño de las imágenes hasta cierto punto y luego rellenar la imagen desde todos los lados, lo que podría ayudar a mantener las características de la imagen.

Rohit Jere
fuente