Tipos de relleno en la capa de convolución

Analicemos el relleno y sus tipos en capas de convolución. En la capa de convolución tenemos kernels y para hacer que el filtro final sea más informativo usamos relleno en array de imagen o cualquier tipo de array de entrada. Tenemos tres tipos de acolchado que son los siguientes.

  1. Relleno completo:

    Supongamos un núcleo como una ventana deslizante. Tenemos que llegar a la solución de rellenar ceros en la array de entrada. Esta es una implementación muy famosa y será más fácil mostrar cómo funciona con un ejemplo simple, considere x como un filtro y h como una array de entrada.

    x[i] = [6, 2]
    h[i] = [1, 2, 5, 4]

    Usando el relleno cero, podemos calcular la convolución.

    Tienes que invertir el filtro x, de lo contrario la operación sería una correlación cruzada. Primer paso, (ahora con cero relleno):

    = 2 * 0 + 6 * 1 = 6

    Segundo paso:

    = 2 * 1 + 6 * 2 = 14

    Tercer paso:

    = 2 * 2 + 6 * 5 = 34

    Cuarto paso:

    = 2 * 5 + 6 * 4 = 34

    Quinto paso:

    = 2 * 4 + 6 * 0 = 8

    El resultado de la convolución para este caso, enumerando todos los pasos anteriores, sería: Y = [6 14 34 34 8]

    # importing numpy
    import numpy as np
      
    x = [6, 2]
    h = [1, 2, 5, 4]
      
    y = np.convolve(x, h, "full")
    print(y)  
    Producción:

    [ 6 14 34 34  8]
    
  2. Relleno mismo:

    En este tipo de relleno, solo agregamos cero a la izquierda de la array y en la parte superior de la array de entrada 2D.

    # importing numpy
    import numpy as np
      
    x = [6, 2]
    h = [1, 2, 5, 4]
      
    y = np.convolve(x, h, "same")
    print(y)
    Producción:

    [ 6 14 34 34]
    
  3. Relleno válido:

    En este tipo de relleno, obtuvimos la array de salida reducida a medida que se reduce el tamaño de la array de salida. Solo aplicamos el núcleo cuando teníamos una posición compatible en la array h, en algunos casos desea una reducción de dimensionalidad.

    # importing numpy
    import numpy as np
      
    x = [6, 2]
    h = [1, 2, 5, 4]
      
    y = np.convolve(x, h, "valid")
    print(y)
    Producción:

    [14 34 34]
    

Publicación traducida automáticamente

Artículo escrito por Jitender_1998 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *