Pregunta

Vamos a decir que tengo un pequeño mapa de bits que contiene un solo dígito (0..9) en la escritura a mano.

¿Es posible detectar el dígito usando un perceptrón (de doble capa)?

¿Hay otras posibilidades para la detección de un solo dígito de mapas de bits, además de utilizar las redes neuronales?

¿Fue útil?

Solución

La alimentación de cada píxel de un mapa de bits directamente en una red neuronal requiere mucho entrenamiento, y no va a funcionar bien para el manejo de la escala o la rotación de la imagen.

Para ayudar a la red neuronal realizar una buena clasificación, es necesario realizar algunos pasos de preprocesamiento.

  • Normalizar la imagen:
    • Ajuste el contraste y el brillo de forma que el histograma de la imagen coincide con una imagen de referencia.
    • difuminar la imagen, para eliminar el ruido.
    • Convertir a blanco y negro, utilizando un umbral.
    • Encuentra la caja de contorno de la forma, escala a un tamaño predefinido.
  • Calcula diversas características de la imagen que se puede utilizar para diferenciar un dígito de otro:
    • número de Euler de la imagen - cuántos "agujeros" dice que hay están en la forma (por ejemplo, dos orificios para el dígito 8).
    • El número de píxeles blancos (el área del dígito)
    • componentes principales del conjunto de coordenadas de los píxeles blancos - le dice cómo "alargada "la forma es.
    • ... otras características que usted pueda imaginar que tienden a tener valores similares para los dígitos similares.

Los componentes principales también se pueden utilizar para normalizar la rotación de la forma, de modo que el eje más largo es vertical.

Las características son lo que usted alimenta a la red neuronal para la clasificación, no los píxeles.

Otros consejos

Aquí hay un enlace a una enorme base de datos de dígitos escritos a mano. La página principal también tiene datos de rendimiento relativos para muchos métodos diferentes, incluyendo redes neuronales 2 capas. Esto debería darle un buen comienzo: MNIST base de datos de los dígitos y el rendimiento

Es posible que también desee comprobar hacia fuera trabajo de Geoff Hinton en Restringido Boltzmann Máquinas que dice lleva a cabo bastante bien, y hay una buena conferencia explicativa en su sitio (muy visible).

Aquí está una Matlab programa de ejemplo que utiliza una red neuronal entrenada para detectar un solo dígito (tamaño de la imagen fija a 28 * 28).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top