Ballet y robots

Video floreciente bajo el capó



Sigo hablando de mi inusual afición. Mi pasatiempo es la transformación algorítmica de videos antiguos en blanco y negro en material que parece moderno. Mi primer trabajo se describe en este artículo . Ha pasado el tiempo, mis habilidades han mejorado y ahora no me estoy riendo del meme "Zoom y mejora" .





El pasatiempo puede parecer extraño, pero es cierto que se disfruta. Tal vez sea la habilidad de ser un mago que convierte las cenizas del pasado en fuego con la ayuda de tecnomagic, o tal vez la razón esté en muchos acertijos intelectuales que no tienen una solución preparada, tal vez sea una compensación por un falta de autoexpresión creativa, tal vez todos juntos. Con cada nuevo video, el proceso se llena de detalles, la cantidad de herramientas y scripts de terceros involucrados está creciendo.



Es necesario aclarar que no estamos hablando de restauración y coloración manual, que requieren toneladas de indios y kilogramos de dinero, sino del uso de algoritmos de autoajuste (a menudo denominados "IA", "redes neuronales").



Una vez mis trabajos fueron ligeramente mejores en claridad y color que trabajos similares de otros aficionados, pero ahora el arsenal de herramientas utilizadas se ha expandido tanto que la calidad del resultado final depende solo del tiempo invertido.



▍Pequeña historia



Desde el exterior, el proceso de desvanecimiento automático del color del video no se percibe como algo abstruso, porque es obvio que basta con descargar un determinado programa y lanzarle una grabación de video, y todo el trabajo complejo ya está hecho. por el que diseñó el algoritmo de desvanecimiento del color y gastó electricidad en el entrenamiento.



Permítanme contarles cómo surgió el revolucionario algoritmo de desvanecimiento del color Deoldify . Incluso si le gusta el aprendizaje automático, no es un hecho que sepa quién es Jeremy Howard . Su carrera profesional comenzó como consultor contratado, hace 20 años se dedicó a lo que ahora se llama Data Science, es decir, extraer ganancias de los datos utilizando las matemáticas.



La venta de un par de startups le permitió pensar en hacer deliberadamente una contribución positiva al desarrollo de la humanidad. Después de mudarse a Dolina, se unió a la multitud de los mejores especialistas en aprendizaje automático, y en 2011 se convirtió en el mejor participante en la competencia Kaggle.



Un importante punto de inflexión se produjo en 2014, cuando su proyecto para detectar automáticamente anomalías médicas en las radiografías mostró resultados que superaron la calidad del trabajo de médicos experimentados. Al mismo tiempo, el proyecto no representó nada grandioso en cuanto a los recursos intelectuales y materiales invertidos, y la formación final se llevó a cabo la noche anterior a la presentación. Un típico proyecto de trabajo, que por su existencia simbolizaba un punto de transición en el progreso técnico.



imagen


Jeremy tiene claro que una herramienta tan poderosa puede ser una fuente de crecimiento en cualquier área. El principal problema era (y es) que el número de especialistas en sistemas de autoaprendizaje es incomparable con el número de proyectos en los que se podrían utilizar sus habilidades. Desde su punto de vista, sería mucho más efectivo dar esta herramienta a todo el mundo. Así surgió el proyecto Fast.Ai , que es una simbiosis de un código y un curso de formación. El código, por un lado, hace que Pytorch sea ​​mucho más fácil de usar. (una herramienta para construir algoritmos de aprendizaje automático) y, por otro lado, contiene muchas técnicas listas para usar que los profesionales utilizan para aumentar la velocidad y la calidad del aprendizaje. El plan de estudios está estructurado de arriba a abajo, primero los estudiantes aprenden a usar pipelines estándar, luego Jeremy muestra cómo cada elemento del pipeline se puede escribir desde cero, comenzando con una demostración en vivo en una hoja de Excel del algoritmo clave detrás todo el aprendizaje profundo. El objetivo del proyecto Fast.Ai es enseñar a un especialista de cualquier campo a resolver problemas típicos en arquitecturas típicas (por supuesto, si tiene habilidades de programación). Los milagros no suceden, el nivel de habilidades después de tal entrenamiento no excede el nivel de "kati redondo - vert cuadrado", pero incluso esto es suficiente para resolver problemas laborales en un nuevo nivel, inaccesible para los colegas.



En el tutorial Fast.Ai, uno de los temas está dedicado al uso de la arquitectura UNet , que se centra en la reinterpretación de imágenes. Por ejemplo, esta arquitectura se puede entrenar para generar fotografías realistas a partir de imágenes capturadas con una cámara termográfica o para contrastar anomalías en las imágenes. En términos generales, dicha arquitectura, por su forma y propiedades conocidas, permite predecir la presencia de propiedades en la forma, cuya identificación era el objetivo del entrenamiento.



imagen


Como tarea, se animó a los alumnos del curso a utilizar UNet para resolver cualquier problema interesante. Un tal Jason Antic se interesó en convertir fotografías en blanco y negro a color. Sus experimentos demostraron que dicha arquitectura produce resultados adecuados y existe un potencial significativo para un mayor desarrollo. Así nació el proyecto Deoldify, que, con la ayuda del propio Jeremy Howard, se convirtió en un producto terminado y finalmente hizo estallar Internet. El autor puso la primera versión a disposición de todos, y él mismo comenzó a desarrollar una versión comercial cerrada, que de forma limitada se puede utilizar en el proyecto genealógico MyHeritage.com (requiere registro, varias fotos son gratis).



imagen


▍ « »



El principal problema con los proyectos de aprendizaje automático de código abierto de vanguardia es que la facilidad de uso suele estar a la izquierda de cero. El autor del proyecto se centra en la canalización de aprendizaje, necesita los resultados del algoritmo únicamente para su presentación a la comunidad, lo cual es normal, ya que el objetivo de tales proyectos es la autopromoción y la contribución a la investigación. La autocompletación de proyectos por parte del usuario es la norma. Para no ir muy lejos: antes de procesar el video, debe decodificarse, procesarse cada cuadro y la compresión resultante en un archivo de video, si un video se procesa con varias herramientas, luego de la compresión sucesiva puede olvidarse de la calidad. Cada nueva herramienta debe rehacerse para que funcione con una pila de imágenes.Pero, ¿qué pasa si en la herramienta a nivel de canalización se integra el uso de no más de 8 fotogramas por ejecución? El algoritmo es suficiente para la demostración, pero no para fines prácticos. Tendrá que escribir una envoltura externa para ejecutarlo varias veces, porque es poco probable que pueda cambiar la tubería de otra persona sin perder la compatibilidad con el estado preentrenado del algoritmo. Y, por supuesto, a los escritores académicos realmente no les importa la optimización. Hay un proyecto que se negó a trabajar con imágenes más grandes que una caja de cerillas, luego de la optimización comenzó a requerir 5 veces menos memoria de video y ahora puede manejar FullHd.que será posible cambiar la canalización de otra persona sin perder la compatibilidad con el estado preentrenado del algoritmo. Y, por supuesto, a los escritores académicos realmente no les importa la optimización. Hay un proyecto que se negó a trabajar con imágenes más grandes que una caja de cerillas, luego de la optimización comenzó a requerir 5 veces menos memoria de video y ahora puede manejar FullHd.que será posible cambiar la canalización de otra persona sin perder la compatibilidad con el estado preentrenado del algoritmo. Y, por supuesto, a los escritores académicos realmente no les importa la optimización. Hay un proyecto que se negó a trabajar con imágenes más grandes que una caja de cerillas, luego de la optimización comenzó a requerir 5 veces menos memoria de video y ahora puede manejar FullHd.



Puede enumerar las jambas que se han encontrado durante mucho tiempo, es suficiente insistir en el hecho de que la instalación de bibliotecas instrumentales es necesaria para que cualquier algoritmo funcione, a veces pueden pasar de 2 a 3 días de experimentos antes de que las bibliotecas se detengan. en conflicto entre sí (incluso si hay una lista de versiones exactas, hay muchas razones por las que tendrá que buscar en Google durante mucho tiempo).



▍Un minuto de belleza



Elegir un material para colorear no es tan fácil. Por un lado, el contenido debería ser interesante para mí, por otro lado, es poco probable que la larga película publicitaria de la empresa Diesel, saturada de detalles técnicos, interese a una amplia audiencia, por otro lado, hay restricciones en el elección debido a los derechos de autor. Las nuevas opciones provienen de la memoria o de la búsqueda de registros específicos. Mis últimos trabajos están dedicados a la bailarina rusa Anna Pavlova. De ella se ha escrito y dicho bastante, han sobrevivido muchas fotografías, pero como su actividad profesional está asociada al movimiento en el tiempo y el espacio, el testimonio más interesante es la película. Desafortunadamente, algunos de los registros sobrevivientes son desconocidos para el público en general, y lo que se está buscando ahora es de una calidad absolutamente repugnante. Lo interesante de la figura de Anna Pavlova,por lo que es literalmente una figura. Ella puede ser considerada el prototipo del estándar de la bailarina moderna, tal vez no sea un descubrimiento para ti que, a fines del siglo XIX, la delgadez todavía se percibía colectivamente como un signo de enfermedad o pobreza, por supuesto, entre En las personas adineradas había diferentes figuras, pero en general, la gordura se percibía como un indicador de una vida exitosa. Mujeres rebosantes de salud a menudo actuaban en el escenario del teatro, aquí hay fotos de tres estrellas de esa época.Mujeres rebosantes de salud a menudo actuaban en el escenario del teatro, aquí hay fotos de tres estrellas de esa época.Mujeres rebosantes de salud a menudo actuaban en el escenario del teatro, aquí hay fotos de tres estrellas de esa época.



imagen


En una de mis obras, incluso puedes ver cómo se veía. Los espectadores que no tienen un buen conocimiento de la historia difícilmente se toman en serio una imagen así, aunque los habitantes más avanzados de nuestro planeta seguramente encontrarán algo positivo aquí.





Volviendo a Anna Pavlova: hay varias películas que representan a una bailarina en danza. Existen de buena calidad, pero no están disponibles públicamente. Pero en el transcurso de la búsqueda, para mi sorpresa, encontré un largometraje completo en el que nuestra bailarina interpretó el papel principal. Al comienzo de la película se inserta un número con un baile que nada tiene que ver con la trama, por lo que es bastante apropiado considerarlo un video aparte, en el que he estado trabajando.



▍Problemas al inicio



Decodifica el video original en una serie de archivos PNG. Miramos las imágenes resultantes y notamos que hay cuadros que repiten los anteriores.



imagen


Esta es una historia estándar, porque en los albores de la cinematografía, se utilizó una velocidad de disparo de 12-19 fotogramas por segundo (en lo sucesivo, fps) para guardar la película. En la era analógica posterior, cuando el 99% del metraje era de 24-25 fps, las cintas antiguas se copiaban fotograma a fotograma, lo que resultaba en una reproducción más rápida. Por lo tanto, en la mente de la mayoría, la vieja crónica está firmemente asociada con hombres pequeños apresurados e indistintos. Lo cierto es que las películas originales en blanco y negro se conservan muy bien, incluso mejor que las de color, y tienen una resolución entre DVD y FullHD. Todo lo que se podía ver en la mayoría de los casos eran copias de mala calidad, re-filmadas desde la proyección a la pantalla. Aunque muchas películas han sobrevivido solo con tales copias (las pérdidas se deben al factor humano), el número de originales que han sobrevivido sigue siendo significativo.Solo unos pocos tienen acceso a los originales, afortunadamente, en estos días el procesamiento de imágenes por computadora permite la replicación ilimitada de copias escaneadas de alta calidad de originales, limpiar defectos y reproducir material a una velocidad de cuadro normal.



Hay dos problemas separados con velocidades de cuadro bajas. En primer lugar, no es estándar, si se puede usar cualquier velocidad de reproducción en una computadora personal, entonces hay muchos casos en los que es necesario adherirse al rango de 24-30 fps. La forma más sencilla de corregir la velocidad de fotogramas es repetir el último cada 3-4 fotogramas. Al mismo tiempo, la velocidad de movimiento de los objetos se vuelve natural, pero la imagen se percibe como nerviosa, este es en realidad el segundo problema. En 2021, las tecnologías le permitirán crear una imagen fluida interpolando fotogramas. La tecnología de interpolación de cuadros en televisores y reproductores de video de software comenzó a encontrarse alrededor de 2005. Debido a algoritmos matemáticos, se mezclan dos imágenes adyacentes para que durante la reproducción haya una sensación de movimiento suave en el cuadro. Funciona bien para 24 fps,ya que la diferencia entre fotogramas rara vez es significativa. Pero para 12-19 fps, tales algoritmos no son adecuados: dibujan una imagen doble borrosa o artefactos locos. Este problema se resuelve con más éxito mediante algoritmos de autoaprendizaje que son capaces de recordar exactamente cómo dibujar una imagen intermedia para diferentes movimientos de diferentes tipos de objetos.



En los relanzamientos modernos de películas de la era del cine mudo, el uso de la interpolación aún no se usa, respectivamente, hay cuadros repetidos en nuestro video, y si no se eliminan, entonces cuando se trata de interpolación de cuadros, se convertirá por ser una tontería, lo que significa que es necesario eliminar los innecesarios.



▍ Giro inesperado



Quítese esto con bolígrafos: lo torturarán, nadarán, lo sabemos. Ejecutamos el script para detectar fotogramas idénticos, el script falla con el error "Muchas coincidencias en una fila". Y, bueno, por supuesto: los marcos son demasiado oscuros, la búsqueda rastrilla los mismos y diferentes marcos en un solo montón. Ejecute el script de normalización de rango dinámico, que automáticamente crea bordes contrastantes, el negro conduce al negro, el blanco al blanco y luego devuelve al lugar los tonos de gris que se pierden durante tales manipulaciones.



imagen


Comenzamos la búsqueda de duplicados nuevamente, el proceso ahora es más seguro, pero después de eliminar los marcos innecesarios, se encuentra algo nuevo. Con cierta periodicidad, hay una repetición de fotogramas en orden inverso. Lanzamos el video original y lo miramos con cuidado, guau, realmente usaron un truco que usa la inercia de la visión, y la imagen se percibe menos nerviosa que con los fotogramas duplicados ordinarios.



imagen


imagen


Cambiamos el script de buscar fotogramas idénticos en una fila a buscar fotogramas idénticos a través de uno intermedio . Comprobamos los resultados, de nuevo una sorpresa: hay una repetición en dos fotogramas. Tras comprobar la tercera versión del guión, se acaban las sorpresas.



El problema de eliminar marcos adicionales de repente se volvió muy serio. En lugares tan oscuros y no saturados de detalles, no se puede confiar en la búsqueda automática de duplicados, cometerá errores repetidamente, saltando lo innecesario y eliminando lo necesario. Realizamos la búsqueda de todo tipo de tomas sobre otro episodio de la película, en el que el número de errores será mínimo. En el caso de una repetición simple, al resaltar las tomas en el administrador de archivos, puede comprender el esquema de repetición y eliminar los archivos innecesarios mediante programación.



imagen


En este caso, el patrón se veía aleatoriamente periódico, se repiten pequeñas piezas, pero en general la esencia no está clara. Entonces, ¿qué es ahora? O abandone toda la idea o invierta el algoritmo de repetición.



Al cambiar el script de búsqueda duplicado, ahora se agregarán etiquetas a los nombres de los archivos según el tipo de duplicación. Transferimos la lista completa de archivos a Excel y dejamos solo las etiquetas, convertimos la columna en una fila y salimos volando del número permitido de columnas, ahora tenemos que dividirlo en dos hojas. Destacamos fotogramas duplicados del mismo tipo en un color, lo que nos permitirá utilizar el analizador de plantillas biológicas.



imagen


Se agrupan las repeticiones cortas. Comprobamos la precisión con la que se repite un grupo largo. Los grupos son similares, pero hay ligeras diferencias. Esto es un fiasco. Hay varias razones posibles para esta imagen: se hicieron cambios aleatorios deliberadamente, o se usaron varios algoritmos para completar cuadros, o se tuvo en cuenta el contenido de los cuadros, o el método usa una función no intuitiva. Escribir una secuencia mucho más larga de repeticiones para cálculo se sintió como una exageración.



imagen


Tendrás que eliminar el ruido con las manos utilizando una muestra. Ejecutamos el script de búsqueda duplicado en el episodio que nos interesa y cargamos la secuencia de fotogramas en Excel, pintamos e insertamos una plantilla de una secuencia larga a su lado. Dejamos la marca donde parece inequívoca, eliminamos la marca incorrecta. Luego adivinamos dónde deberían estar los marcos, y ahora se restaura la mayor parte de la imagen. Quedan algunos lugares poco claros. Ponemos marcas exactamente de acuerdo con la plantilla o por intuición. Por supuesto, en algún lugar habrá errores, pero en algún lugar nos encontraremos con que, en el contexto general de la secuencia correcta, ya no es fundamental, especialmente porque en la crónica antigua casi siempre se pierden algunos fotogramas, y en este caso no se hace nada. sentido para exprimir el ideal absoluto.



imagen


Usando la lista final, eliminamos lo innecesario, lo verificamos y listo, el problema parece que está resuelto por 9 de cada 10.



imagen




A esto le siguen 17 operaciones de magia negra, durante las cuales se forman 17 carpetas en el disco que contienen cuadros de video después de cada manipulación. Además de la decoloración en sí, se realiza la corrección automática de los marcos decolorados sin éxito, un aumento significativo en la claridad de la imagen, la imagen restaurada vuelve a la "analogía" (para deshacerse de la sensación de Photoshop), por todo esto, 5 Se utilizan diferentes herramientas de mejora de la imagen, interconectadas por scripts, que se vierten hacia adelante y hacia atrás en los canales de luminancia y color. Los nombres de las herramientas seguirán siendo mi secreto profesional, lo siento, demasiado trabajo y tiempo dedicado a recolectar este zoológico y modificarlo. Cuando vi los resultados de Deoldify 2, me quedó claro que mi deseo de ser el mejor en esta área no tiene sentido,No importa lo bien que apriete los porcentajes de calidad, cada nuevo algoritmo similar supera al anterior a veces. Dejé de desvanecerme y me sumergí en el aprendizaje automático con el objetivo de armar mi Deoldify, pero luego sucedieron una serie de eventos que me distrajeron de este objetivo. Como resultado, combiné varios proyectos listos para usar en un proceso común, cuyos resultados de alguna manera reemplazan mi algoritmo de coloración fallido. Quizás en el próximo artículo te diré cómo usar el colorante de Google, si puedes frenar su apetito por la memoria, habrá un código y detalles.Como resultado, combiné varios proyectos listos para usar en un proceso común, cuyos resultados de alguna manera reemplazan mi algoritmo de coloración fallido. Quizás en el próximo artículo te diré cómo usar el colorante de Google, si puedes frenar su apetito por la memoria, habrá un código y detalles.Como resultado, combiné varios proyectos listos para usar en un proceso común, cuyos resultados de alguna manera reemplazan mi algoritmo de coloración fallido. Quizás en el próximo artículo te diré cómo usar el colorante de Google, si puedes frenar su apetito por la memoria, habrá un código y detalles.



Para completar el trabajo en el video, debe intentar quitar las jambas, para esto, el recolector de video profesional Davinci Resolve es el más adecuado . Si abre la siguiente imagen por separado, puede ver la cantidad de elementos en la cadena de retoque. Este diseño hace que el fondo sea negro, acerca los colores a lo natural, lucha con colores innecesarios, crea una imitación del haz de luz (oculta rastros menores del uso de la corrección).



imagen


Queda por hacer interpolación de cuadros, escalado cosmético a 2K, y ahora nuestro video está listo. La imagen original es demasiado oscura y no hay necesidad de esperar milagros, pero ahora es posible considerar los movimientos suaves de la clara figura del bailarín.



La película en sí contiene muchas escenas con una imagen relativamente buena, lo que permite evaluar cuánto procesamiento algorítmico puede mejorar la imagen. Los fotogramas de resolución 2K son demasiado grandes para el artículo, por lo tanto, los fotogramas finales reducidos en 2 veces se insertan junto al fotograma completo de la imagen original.



imagen


devuelve la foto


imagen


imagen


imagen


▍Resultados



La trama de la danza contiene 1251 cuadros (antes de la interpolación), el trabajo tomó 5 días .

Música añadida de la biblioteca de música gratuita de Youtube.



La película contiene 19660 fotogramas (antes de la interpolación), se procesaron 14 días (solo algoritmos, no se aplicaron retoques manuales). Con la música aquí fue más difícil, al principio había una versión ensamblada a partir de piezas de la ópera, que forma la base del guión de la película, pero debido a los derechos de autor no fue posible publicar esta versión, tuve que usar composiciones adecuadas de la primera biblioteca encontrada, dicen que resultó mejor que la primera vez.



Características de la computadora: Amd Ryzen 3 1200, 4 GB de RAM, GTX 1060 de 3 GB



▍- Enlaces a mis trabajos:



Youtube Not.



Rutube Not.



Instagram

Ps no pude resistir, me coloreé.





All Articles