Anuncio

Las redes neuronales pueden hacer muchas cosas. Pueden interpretar imágenes, entiende nuestras voces 6 características de Google Now que cambiarán la forma de buscar Es posible que ya esté utilizando Google Now en su dispositivo Android, pero ¿está obteniendo todo lo que puede? Conocer estas pequeñas características puede marcar una gran diferencia. Lee mas y traducir conversaciones Cómo funciona el traductor de Star Trek de SkypeLa nueva función de traducción de Skype ofrece algo soñado desde Star Trek: una forma sencilla de comunicarse en todos los idiomas. Lee mas . ¿Pero sabías que también pueden pintar?

Un trabajo de investigación reciente (titulado "Un algoritmo neuronal de estilo artístico") Inició una serie de debates en línea con algunos ejemplos visuales sorprendentes. Esencialmente, el documento discute una técnica para entrenar a un red neuronal profunda Microsoft vs Google: ¿quién lidera la carrera de inteligencia artificial?Los investigadores de inteligencia artificial están haciendo progresos tangibles, y las personas están comenzando a hablar en serio nuevamente sobre la IA. Los dos titanes que lideran la carrera de inteligencia artificial son Google y Microsoft.

instagram viewer
Lee mas para separar el estilo artístico de la estructura de la imagen y combinar el estilo de una imagen con la estructura de otra. El resultado de todo esto es que puedes entrenar una gran red neuronal para convertir las fotografías en "neuronales pinturas "que parecen haber sido pintadas por artistas famosos -" falsificaciones digitales " hablar.

Aquí hay algunos ejemplos del artículo. La primera imagen es la original. Las imágenes posteriores son los resultados generados, con la pintura de la cual se muestreó el estilo en miniatura.

PaperImages

Los investigadores originales no han publicado su código, desafortunadamente. Sin embargo, algunos programadores intrépidos han replicado sus resultados en los últimos días, y su código está disponible, de código abierto en Internet. Todo lo que necesitas para ejecutarlo es una máquina Linux y un poco de paciencia.

Hoy, voy a guiarlo a través de cómo hacerlo y mostrarle algunos de mis propios resultados. Puedes pensar en esto como una secuela suelta de nuestro Tutorial de DeepDream Cree sus propios sueños de fiebre artificial con "DeepDream" de Google¿Has visto las imágenes trippy que salen de DeepDream? ¿Quieres hacer el tuyo? ¡No busque más! Lee mas . Es un poco complicado, pero cualquier persona con una máquina Linux puede seguirlo, no se necesita experiencia en codificación.

Convertí una pintura ligera de Picasso en una pintura de estilo Picasso con #DeStyle! pic.twitter.com/cjkEoIhVcF

- James Blaha (@jamesblaha) 5 de septiembre de 2015

Configurar el software

En primer lugar, si no tiene mucha prisa o no tiene una máquina Linux, aún puede jugar con DeepStyle usando el Bot de Twitter de DeepForger (envíele una imagen y un estilo, y eventualmente responderá con los resultados que desee). Si desea procesar más imágenes rápidamente (y con más control sobre los resultados), siga leyendo para ver el tutorial.

En primer lugar, asegúrese de tener una copia actualizada de Ubuntu (14.04 es lo que usé). Debería tener al menos algunos conciertos adicionales de espacio en el disco duro. Para obtener más información, consulte nuestro tutorial sobre Ubuntu de arranque dual junto con Windows ¿Cansado de Windows 8? Cómo iniciar dual Windows y UbuntuSi descubre que Windows 8 no es su taza de té, y no tiene una ruta factible para rebajar, puede ser una buena idea iniciar dual con Linux para tener una alternativa ... Lee mas . También necesitarás privilegios de root, así que asegúrate de hacerlo antes de continuar.

Herramientas básicas

De buenas a primeras, este es un proyecto de código abierto, por lo que vamos a querer tener Git instalado Git es el estándar de oro para el software de control de versiones ¿Qué es Git y por qué debería usar el control de versiones si es desarrollador?Como desarrolladores web, muchas veces tendemos a trabajar en sitios de desarrollo local y luego cargamos todo cuando terminamos. Esto está bien cuando solo eres tú y los cambios son pequeños, ... Lee mas . Casi todos los proyectos de código abierto que vale la pena conocer están alojados en Github.

Para descargar e instalar Git, simplemente abra una terminal y escriba "sudo apt-get install git"Y acepta las demandas del instalador.

Siguiente: vamos a configurar algunas herramientas básicas necesario para que el software funcione.

Primero, instale Lua. Este es el lenguaje en el que está escrita la herramienta. Es bastante simple Sólo tipo "sudo apt-get install lua5.2"Y siga el proceso de instalación.

Segundo, vamos a obtener Luarocks. Esta es la herramienta que facilita la instalación de otras herramientas (¿no te gusta Linux?). Para este, escriba "sudo apt-get install luarocks"Y siga los pasos de instalación.

Tercero, vamos a instalar Luajit. Este es un compilador justo a tiempo para Lua que hará nuestras vidas un poco más simples. Sólo tipo "sudo apt-get install luajit.”

Hasta aquí todo bien.

Soy un bot que crea falsificaciones de tus fotos al estilo de pintores famosos. Haga clic para obtener instrucciones a continuación. pic.twitter.com/3MpThDNwRE

- The Deep Forger (@DeepForger) 5 de septiembre de 2015

Marcos

A continuación, vamos a instalar Antorcha, un marco científico de computación y aprendizaje automático que constituye la columna vertebral de la aplicación. Desafortunadamente, este no se puede instalar usando apt-get (el administrador de paquetes estándar de Ubuntu).

Afortunadamente, tienen un instalador de una línea que usa algo de magia de línea de comandos. Regrese a su terminal e ingrese "curl -s https://raw.githubusercontent.com/torch/ezinstall/master/install-all El | golpetazo“.

Cuando haya terminado, escriba "luajit -ltorch“. Esto abrirá la interfaz de la antorcha y verificará que todo se instaló correctamente.

Salir de eso.

Ahora vamos a instalar carga de cafe - un paquete específico de red neuronal. Instale su única dependencia escribiendo "sudo apt-get install libprotobuf-dev protobuf-compiler“. Luego puede instalar el paquete usando "sudo luarocks instalar loadcaffe ".

@Johnicholas Su desglose de falsificación, al estilo de la Escuela de Rembrandt van Rijn. #Arte digital#StyleNetpic.twitter.com/pf0sZxWkaT

- The Deep Forger (@DeepForger) 7 de septiembre de 2015

Dependencias de verificación doble

Finalmente, vamos a actualizar preventivamente algunas cosas solo para asegurarnos de que todo salga bien.

Tipo "imagen de instalación de sudo luarocks"Para asegurarse de que su paquete de imágenes esté actualizado. Luego, ingrese "luarocks instalar nn"Que hará lo mismo para su paquete" nn ".

Instalación de estilo profundo

¡Bien! En este punto, estamos listos para instalar el software en sí. Por razones de limpieza, cree una nueva carpeta en su directorio de inicio ("mkdir DeepStyle"). Luego, ingrésalo usando "cd Deepstyle“. Ahora escriba "sudo git clone https://github.com/jcjohnson/neural-style.git".

A continuación, tenemos que descargar el modelo. Haga una taza de café o algo, esto llevará un tiempo. Vuelva a la terminal y escriba "sudo sh models / download_models.sh“. Eso comenzará un proceso de descarga largo y elaborado. Si falla debido a errores de permisos, intente otorgarse permisos de lectura y escritura en las carpetas relevantes, utilizando chmod.

@ 44thats44oars encargó esto #ProceduralArt#NeuralArt. pic.twitter.com/tbMH7gsvc8

- The Deep Forger (@DeepForger) 6 de septiembre de 2015

Usando estilo profundo

Bien, estamos listos para irnos. Usar el software es bastante simple.

Asegúrate de estar en el Directorio de estilo profundo / neural en la terminal Ahora, vas a necesitar algunas imágenes para trabajar. Descárguelos de Internet (o lo que sea), luego cópielos en el Carpeta de estilo profundo / neural usando el buscador de archivos.

Ahora puede usar la línea de comando para procesar imágenes individuales. El formato es bastante sencillo:

th neural_style.lua -style_image YOURPAINTINGHERE.jpg - content_image YOURPHOTOHERE.jpg -gpu -1

(Obviamente, deberá reemplazar los fragmentos en TODAS LAS MAYÚSCULAS con los nombres de sus archivos).

Eso hará que se inicie la red neuronal. Se ejecutará durante aproximadamente una hora, escupiendo nuevas imágenes parcialmente convergentes cada pocos minutos hasta que finalice. los -gpu -1 La bandera evita que intente acceder a su GPU.

Después de varias horas de intentarlo (y bloquear el sistema operativo varias veces) no pude hacer que Ubuntu y CUDA jugaran bien con mi GPU (una NVIDIA GTX 970). Si tiene más suerte con eso, querrá instalar CUDA y cudann.torch (consulte el repositorio github para más información). De lo contrario, está bien: seguirá funcionando con su CPU; solo será un poco más lento.

Si tiene algún problema para que todo esto funcione, solo pregúnteme en los comentarios y haré todo lo posible para ayudarlo.

Resultados

Aquí hay algunas imágenes que he generado en los últimos días. Los resultados son mixtos, pero muchos de ellos son bastante impresionantes.

zack-paden-composite

Haga clic aquí para la resolución completa.

Este es de mi amigo Zack en un viaje de senderismo a Yellowstone. El estilo proviene de una pintura abstracta, creada por Theresa Paden. Tenía curiosidad por ver cómo funcionaría el sistema usando una imagen sin absolutamente ninguna estructura. Los resultados son bastante claros, y definitivamente puedes ver las similitudes con la imagen de estilo.

jerseycity-demuth-composite

Haga clic aquí para la resolución completa.

Este viene por cortesía de uno de mis artistas favoritos, Charles Demuth (ver: Incienso de una nueva iglesiay Figura 5 en oro). Curiosamente, Demuth es una de las principales inspiraciones visuales para el arte de Team Fortress 2 Team Fortress 2: el juego de Steam gratuito que debes jugar¿Team Fortress 2 es solo un juego rápido para probar gráficos y rendimiento, o vale la pena jugarlo repetidamente? Lee mas , como puedes ver en la imagen de estilo.

Le di una imagen de Jersey City que encontré en Wikimedia. Los resultados son... bastante buenos. No captaba la angularidad del estilo de Demuth, pero ciertamente captaba el aspecto suave y texturizado y la paleta de colores.

flores-okeefe-composite

Haga clic aquí para la resolución completa.

Este es un intento de generar un O’Keeffe sintético, usando una imagen bastante mundana de algunas flores que encontré. Los resultados son, francamente, espectaculares. Estéticamente, este es uno de mis resultados favoritos. La riqueza de los colores y formas de O’Keeffe se ve claramente. Los bordes en capas de los pétalos de las flores se convierten en los bordes de las hojas en el fondo. Las flores mismas se disuelven en colores, volviéndose casi abstractas.

Sería una buena pintura si un humano lo hiciera. Estoy muy tentado de pasar un par de días presentando una versión de mayor resolución de este y tenerlo enmarcado.

Shannon-Picasso-composite

Haga clic aquí para la resolución completa.

Aquí está mi amiga Shannon con su disfraz de Halloween, a modo de estampado de Picasso. Curiosamente, el dispositivo eligió pintar la parte inferior de su cara de blanco (similar al diseño de color de la pieza de Picasso). No estoy seguro de si fue una coincidencia o no, pero los resultados son sorprendentes. También parece haber identificado correctamente el cabello de Shannon en el lado izquierdo, y volver a dibujarlo usando el color y la línea del cabello en la imagen de estilo. Lo mismo para su sombrero.

Esta es una de las piezas donde las limitaciones de la técnica comienzan a aclararse. Si Picasso en realidad estuviera pintando a Shannon, habría desechado la estructura de su rostro y sesgado los rasgos para lograr el efecto que deseaba. Este sistema no comprende ese tipo de conceptos de alto nivel y solo puede imitar aspectos superficiales del estilo, como las líneas oscuras, angulares y la paleta de colores.

eiffel-vangogh-composite

Haga clic aquí para la resolución completa.

Bastante sencillo: una foto de la Torre Eiffel y la de Van Gogh otro Noche estrellada. Hace un buen trabajo renderizando la nube en un estilo Van Gogh-ey, a pesar de la ausencia de nubes en la imagen original. También hace un buen trabajo al traducir la escena del día a la noche.

No estaba seguro de por qué decidió convertir la punta de la torre Eiffel en una columna de fuego. Parece genial, pero en realidad no es justificable a partir de los datos de entrada. Luego me di cuenta de que la imagen de estilo tiene trece tiras amarillas verticales largas en forma de reflejos en el agua. Es un clúster bastante masivo, con tan pocos datos de entrenamiento. El pobre probablemente ha aprendido que cualquier borde vertical de alto contraste debe ser uno de esos reflejos. Puedes ver más rayas verticales extrañas débilmente en las nubes.

nebula-vangogh-composite

Haga clic aquí para la resolución completa.

La misma pintura de Van Gogh, pero esta vez le di algunas estrellas para pintar. En este caso, la parte de los pilares de la nebulosa del Águila. Me gustan los resultados, aunque, una vez más, puedes ver su obsesión con las rayas amarillas. Cada porción vertical del pilar se convierte en una línea amarilla brillante y tambaleante. También está claramente molesto por el verde, que no ocurrió en los datos de entrenamiento, y hace todo lo posible para deshacerse de él en favor del azul y el negro.

Tecnología

Algunos resultados de esto son extremadamente convincentes, aunque la técnica tiene limitaciones claras. Algunas imágenes tienen una composición pésima, y ​​el sistema tiene dificultades con artistas más abstractos como Picasso, a quien le gustaba distorsionar su tema, dispersando sus características. El algoritmo recoge sus líneas angulares y colores contradictorios, pero sigue siendo esclavo de los valores de píxeles de la imagen. No tiene la comprensión que necesita desviarse demasiado del material de origen.

Lo que me emociona de todo esto es que no creo que esas limitaciones sean fundamentales.

El enfoque que se usa aquí, entrenar una red en una imagen y usarla para construir otra, es fundamentalmente un truco. Le da a la red muy pocos datos para trabajar. Una versión más avanzada de esta aplicación usaría una red que tiene información sobre muchos pinturas, y tal vez incluso imágenes reales, para darle mucho contexto sobre la imagen que está tratando de "pintar."

Un profundo conocimiento del estilo solo puede existir en un contexto más amplio. No puede derivarlo de una sola imagen. Diseñar una arquitectura que brinde al sistema acceso a datos más amplios podría permitirle derivar Comprensión "similar a la humana" de la imagen, y cómo los artistas representan diferentes elementos de lo real mundo. Tal red podría producir imágenes que sean más abstractas y tengan una mejor composición. Tales algoritmos dejarían de ser un juguete genial (como este) y se convertirían en una forma de producir arte real y original.

Lo cual es un pensamiento muy peculiar, de alguna manera.

Hacer tus propias imágenes

Si obtiene un resultado decepcionante, puede jugar un poco con las opciones para tratar de obtener resultados más convincentes. La lista completa está en Github. Los importantes son

  • -content_weight -value Cuánto ponderar el término de reconstrucción de contenido. El valor predeterminado es 5e0.
  • -style_weight -value: Cuánto peso darle a la imagen de estilo. El valor predeterminado es 1e2.
  • -style_scale - valor: ¿Qué tamaño de parches de imagen debe analizar el sistema? (Más grande se vuelve más abstracto). El valor predeterminado es 1.0.

Una vez que tenga todo funcionando a su entera satisfacción, publique sus imágenes más interesantes en los comentarios. Estoy realmente interesado en ver qué piensan ustedes.

Créditos de imagen: pintor del cerebro humano a través de Shutterstock

Escritor y periodista con sede en el suroeste, Andre está garantizado para permanecer funcional hasta 50 grados centígrados, y es resistente al agua hasta una profundidad de doce pies.