La extracción de características visuales para el aprendizaje automático

aprendizaje automático en imágenes funciona porque puede depender de características para comparar imágenes y asociar una imagen con otro (debido a la similitud) o en una etiqueta específica (adivinanzas, por ejemplo, los objetos representados). La gente puede elegir un coche o un árbol cuando lo ven en una imagen. Incluso si es la primera vez que se ve un cierto tipo de árbol o coche, se puede asociar correctamente con el objeto correcto (Etiquetado) o compararlo con objetos similares en la memoria (Recuperación de imágenes).

En el caso de un coche, que tiene ruedas, puertas, un volante, y así sucesivamente, son todos elementos que le ayudan a clasificar un nuevo ejemplo de un coche entre los otros coches. Sucede porque ves las formas y los elementos más allá de la imagen misma- por lo tanto, no importa lo inusual puede ser un árbol o un coche, si posee ciertas características, se puede averiguar lo que es.

Un algoritmo puede inferir elementos (formas, colores particulares, elementos relevantes, etc.) directamente de píxeles sólo cuando se preparan los datos para ello. Aparte de los tipos especiales de redes neuronales, llamadas redes de convolución, que tienen categoría de estado de la técnica en el reconocimiento de imágenes, ya que pueden extraer características útiles de imágenes en bruto por sí mismos, siempre es necesario preparar las características adecuadas cuando se trabaja con imágenes.

Video: Machine Learning, Python y el Titanic

preparación función de las imágenes es como jugar con un rompecabezas - usted tiene que averiguar cualquier relevante en particular, la textura o conjunto de curvas representadas dentro de la imagen con el fin de recrear una imagen de sus detalles. Toda esta información sirve como las características de la imagen y constituye un elemento valioso para cualquier algoritmo de aprendizaje automático para completar su trabajo.

información del filtro convolucional de redes neuronales a través de múltiples capas, la formación de los parámetros de sus circunvoluciones (tipos de filtros de imagen) - por lo que puede filtrar sólo las características relevantes para las imágenes y las tareas que están capacitados para llevar a cabo. Otras capas especiales, llamados capas puesta en común, ayudar a la captura de red neuronal estas características en el caso de la traducción (que aparecen en las piezas inusuales de la imagen) o rotación.

Aplicando el aprendizaje profundo requiere técnicas especiales y máquinas capaces de sostener la carga de trabajo computacional pesada. los biblioteca Caffe, desarrollado por Yangqing Jia de la visión de Berkeley y el Centro de Aprendizaje, permite la construcción de este tipo de redes neuronales, sino también aprovecha pretrained los ya existentes.

Una red neuronal pretrained es una red de convolución entrenados en un gran número de imágenes variadas, aprendiendo así cómo filtrar a cabo una gran variedad de características para los fines de clasificación. La red pretrained le permite ingresar sus imágenes y obtener un gran número de valores que corresponden a un resultado en una cierta clase de función aprendida previamente por la red como una salida. Las características pueden corresponder a una cierta forma o textura.

Video: Visualizing a Decision Tree - Machine Learning Recipes #2

Lo que importa a sus objetivos de aprendizaje de máquina es que los rasgos más reveladores para su propósito se encuentran entre los producidos por la red pretrained, por lo que hay que elegir las características adecuadas al hacer una selección a través de otra red neuronal, una SVM, o un modelo de regresión simple.

Cuando no se puede utilizar una red neuronal de convolución o biblioteca pretrained (debido a las limitaciones de memoria o CPU), OpenCV o algunas funciones Scikit-imagen fija se puede ayudar. Por ejemplo, para enfatizar los bordes de una imagen, se puede aplicar un proceso simple usando Scikit-imagen, como se muestra aquí:

de medida de importación skimage

contornos = measure.find_contours (imagen, 0.55)

Video: Organizadores Visuales

plt.imshow (imagen, CMAP = cm.gray)

para n, el contorno en Enumerar (contornos):

plt.plot (contorno [:, 1], el contorno [:, 0], anchura de línea = 2)

plt.axis ( `imagen`)

plt.show ()

Puede leer más sobre la búsqueda de contornos y otros algoritmos de extracción de características (Histograms- esquina y burbuja de detección) en los tutoriales.

Artículos Relacionados