Cómo entrenar usted mismo a un escalador en Real-ESRGAN Compact y cómo restaurar adecuadamente animaciones antiguas con redes neuronales

❯ Ya estoy de vuelta

Soy el creador del artículo sobre restauración de Tom y Jerry 1440p. Y ahora, más de seis meses después, estoy nuevamente ansioso por compartir con ustedes mis nuevos conocimientos. El artículo se divide en dos partes: interesante para la mayoría y puramente técnica, aunque muy masticada, justo en el tema del título del artículo.

Contenido:

❯ Realidades modernas de las redes neuronales para la ampliación de imágenes y vídeos.

Por el momento, solo existen 3 utilidades populares con una variedad de modelos. escalamiento. Estos son productos de la empresa. Laboratorios TopacioVídeo AI de topacio y Topacio Gigapixel. Y un proyecto de código abierto separado: Cadena. Con productos Laboratorios Topacioestoy seguro de que muchos lo conocen. Presentan las herramientas más populares entre la mayoría de usuarios y profesionales. Este Artemisaque puede trabajar con vídeos muy dañados, en el campo de la eliminación de artefactos de codificación y baja resolución. Irisdestinado a hacer un excelente trabajo de reconstrucción de rostros en videos. Gaiaque trabaja en el campo de mejorar la calidad de la animación. Proteo — mejora general de la calidad del vídeo. Topacio Gigapixel simplemente funciona bien en el sentido general. Sin embargo, todo esto tiene desventajas importantes, o más bien, una gran desventaja común: ni siquiera todas ellas se consideran lo último en materia de restauración de videos, sino más bien herramientas individuales, como las llamé antes. Para uno, la claridad es pobre, pero se agregan detalles en la imagen, para otro, se forman “escaleras” en un video original imperfecto, mientras que el tercero funciona bien para aumentar la claridad de las personas, pero el fondo es un tipo separado. de tortura. bueno en general Vídeo AI de topacio prácticamente inadecuado para material 2D.

Pasemos al elefante en la habitación, desconocido para la mayoría, Cadena. No es un producto independiente en sí mismo. No tiene redes neuronales integradas de alto nivel, sino solo una interfaz para interactuar con ellas. Es una interfaz gráfica de procesamiento de imágenes basada en nodos (o mosaicos) diseñada para simplificar y personalizar la cadena de tareas de procesamiento de imágenes, con un programa de código completamente abierto. Todos los modelos de ampliación que nos interesan están en el sitio web. openmodeldb.info. En otras palabras, el proyecto Cadena asumió la tarea de integrar en una interfaz sin línea de comando todo el zoológico de modelos escalables de libre acceso. También tiene una enorme funcionalidad para cambiar videos en todos los aspectos. Pero no profundizaremos en la parte técnica de cómo funciona, e inmediatamente después del ejemplo del enlace pasaremos a cuáles son estos modelos de escalamiento gratuitos.

Un ejemplo de enlace en ChaiNNer

Un ejemplo de enlace en ChaiNNer

desangrarse
Obviamente el modelo fue creado en el conjunto de datos. VHS rasgaduras en comparación con Blu-ray publicaciones. Ella se las arregla bien con un tema muy doloroso: halos en la imagen. Pero también puede predecir con gran precisión la saturación necesaria de áreas individuales de la imagen.

Transmitir a Studio Lite
“Corrige directamente defectos como lavado de croma, puntos corridos y artefactos de arcoíris. Se recomienda encarecidamente eliminar primero el efecto fantasma en su editor de vídeo favorito, ya que el modelo no corrige este defecto y puede hacer que el efecto fantasma existente sea más notorio”.
Es aquí donde ya se vislumbra una relación directa con lo que es. Cadena. Después de todo, no puedes hacer trabajo manual, sino usar el modelo que mostré antes y luego transferir la información a este escalador. Esto es especialmente cierto si hay demasiado material.

RealESR AnimeVideo v3
También hay escaladores que ofrecen una solución integral. Este es uno de los principales modelos para escalar cualquier contenido con resolución. 480–560p. El modelo proporciona mayor naturalidad, menos artefactos, reproducción precisa de los colores originales, restauración de texturas y fondos, etc. Sin embargo, sólo se puede utilizar en contenidos que ya sean de calidad relativamente buena, con un número mínimo de artefactos, especialmente los específicos. La imagen resultante conserva la naturalidad del original, pero al mismo tiempo luce mucho mejor.

Hay escaladores que están más diseñados para estilizar imágenes, como este. Fue entrenado en un conjunto de datos que consta de Blu-ray publicaciones de muy alta calidad. Además de una importante duplicación de la resolución, se añade un ruido característico, que a muchos les puede gustar o no.

¿Ya te das cuenta hacia dónde va esto? En realidad, Cadena ilustra directamente su tarea principal: una construcción sencilla cadena(ligamentos), cuya salida puede ser un resultado completamente diferente, a veces simplemente sorprendente, gracias a este enorme el zoológico modelos de mayor escala en openmodeldb.infotodo en su recurso más de 600. Sólo se necesita tiempo para experimentos con su muestra específica video. Simplemente puede recortar un videoclip de 5 segundos y ejecutarlo a través de diferentes escaladores y sus combinaciones. No sé cómo, pero no encontré el upscaler que necesitaba, que es lo que incitado invitarme a estudiar este tema y escribir un artículo. EN fin del artículo Describí en detalle mi primer escalador, que creado él mismo, y adjuntó una tabla compilada especialmente para el artículo. En esta tabla he recopilado muchos útil escaladores para diferentes situaciones, que uso regularmente. Y si no encuentra algo para usted, puede probar suerte buscando en openmodeldb.infohabiendo seleccionado previamente solo modelos de arquitectura (pronto explicaré qué significan estas designaciones) Compacto, Real-ESRGAN(+) y DURAR. Y cuando quieras escalar solo imágenes, tendrás mucho espacio para recorrer, hacer todo tipo de cosas. específico solo un eje, y no está limitado a un conjunto estándar de modelos livianos, como es el caso con video.

También cabe señalar que si decides hacer este negocio, debes tener una tarjeta de video de NVIDIA con CUDA-núcleoso tienes que descubrir cómo hacer que tu tarjeta de video roja funcione con la capa intermedia ROCm. La forma más fácil de hacer esto es Sistema operativo Linuxpero también en ventanas También es posible, aunque hay pocas guías y el soporte oficial comienza solo con RX 6800 XT. No recomiendo encarecidamente probar esto a nadie que no esté familiarizado con el trabajo con GitHub y no he intentado implementar esto antes. Vagarás por mucho tiempo Reddittratando de descubrir cómo implementar esto para su tarjeta de video, incluso en linuxdonde estan las raices ROCm y hay apoyo incluso para RX 400-ésima serie.

❯ ¿Qué es Real-ESRGAN Compact?

Real-ESRGAN: La Red Adversaria Generativa de Super-Resolución Mejorada o 'Red de Super-Resolución Mejorada' es arquitectura redes neuronales. Tiene varios antepasados: SRGAN y SIN EMBARGO. La propia red neuronal se puede entrenar con datos tanto sintéticos como reales. Real-ESRGAN compactoque se discutirá más adelante, no es una nueva arquitectura completa, sino solo una versión liviana Real-ESRGAN.

❯ Otras arquitecturas mejoradas

Lo último en velocidad de ejecución y efecto en los resultados finales es Real-ESRGAN compactoaunque no es el único en este ámbito. Además, además de competidores directos como DURAR y yo ESRGANtambién los hay que están más orientados a imágenes simples que a vídeos. El problema es que sólo las arquitecturas de mejora identificadas anteriormente tienen altas velocidades de ejecución, alrededor de 0,15 a 0,4 segundos en promedio por cuadro, dependiendo de la resolución del video, y muy raramente alrededor de 1 a 2 segundos por cuadro (cifras relativas a la velocidad de ejecución en el RX 6600). ). Todo lo demás funciona mucho más lento: desde fuera, 3 segundos para mejorar una imagen no parece un período de tiempo tan largo, pero esto da como resultado que durante 1 minuto a 24 fotogramas por segundo necesitarás más de una hora. Aquí compramos 3090 o abandonamos la idea.

ESO

ESO

❯ Cómo capacitar usted mismo a un escalador utilizando el ejemplo de Real-ESRGAN Compact

Debes comenzar con las características técnicas de tu tarjeta de video. Primero, en tarjetas de video. AMD puedes empezar a formar a un escalador, pero no es fácil: necesitas ROCm. También necesitas investigar Redditvídeo en YouTube y utilizar activamente Googlesi no tienes a alguien que pueda ayudarte. En mapas de Nvidia no existen tales problemas. En segundo lugar, ¿cuánta memoria de vídeo tienes? 4GB – esto es, francamente, muy, muy escaso; Un escalador puede resultar extremadamente ineficaz con cualquier complejidad. De 8GB Ya puedes hacer algo, aunque todavía no es suficiente. 12+ ES – este es el ideal. Entrené a mi escalador en el mío. RX 6600 8 GB y tardó aproximadamente 3 dias funcionamiento de la tarjeta de video en media precisiónque suele ser menos común, pero para mí fue suficiente. Si te fascina la idea de crear tu propio escalador, es muy posible capacidad de alquiler servidor virtual con énfasis en GPU. Personalmente, me llevó unos cinco intentos antes de poder crear la versión más eficaz conjunto de datos y obtener un escalador con eso efectoque originalmente quería. tomó 15 dias funcionamiento continuo de la tarjeta de video, y esto también siempre que haya entrenado el modelo sin escala imágenes. Además, más memoria de vídeo no sólo ayuda aumentar la velocidadpero también indirectamente mejora de la calidad capacitación. Cuanto mayor sea el búfer, más estable será el gradiente. Si no hay suficientes imágenes en el búfer, el degradado puede volverse 'ruidoso', lo que complicará el entrenamiento del modelo y puede conducir a 'flotante'al resultado de salida. También cabe mencionar el aumento en el número señales y capas convolucionaleslo que conduce a una mejora significativa en la calidad del modelo, ya que cuanto mayores sean estos valores, mayor mejor se convierte precisión de las predicciones en menos tiempo de entrenamiento.

Representación de la lógica de entrenamiento de escaladores en una forma muy simple.: Las redes neuronales primero muestran una imagen como inicial y luego les dicen que hagan otra imagen a partir de ella: la final. Por ejemplo, la primera imagen puede tener una gran cantidad de borrones y la segunda imagen es exactamente la misma, pero sin las borrones. Y entonces, si tiene un conjunto lo suficientemente grande de tales imágenes y tiempo para entrenar la red neuronal usando una tarjeta de video, eventualmente la red neuronal aprenderá a predecir píxeles y construir relaciones tan bien que ni siquiera entenderá que había borrones en esta imagen antes.

1. Construye el tuyo propio conjunto de datos. En este caso, estamos hablando de imágenes emparejadas en baja y alta resolución, o de un conjunto de imágenes en alta resolución. Veamos primero la segunda opción, ya que es la más sencilla. existe aumento de datos – proceso artificial generando nuevos datos sobre basado en existente. En el contexto de la creación de un escalador de imágenes, esto significa que puede degradar artificialmente la imagen original: reduzca la resolución en 2-4 vecesagregar ruido, desenfocar, etc. Podrías terminar con algo como AnimeVideoV3. Pero si aborda esto de manera integral, puede crear algo especial, como 2xken-v1-eva-01. El método más simple de aumento de datos es utilizar las herramientas internas Cadena.

Herramientas que se pueden utilizar para el aumento de datos.

Herramientas que se pueden utilizar para el aumento de datos.

Pasemos a la primera opción.. Para ello necesitamos tener 2 materiales idénticos en diferentes calidades y con la misma geometría, es decir, absolutamente todos los objetos y sus proporciones deben ser idénticos en ambas imágenes, y la calidad de las imágenes en sí puede ser diferente. En consecuencia, deberá ajustarlos manualmente entre sí. Para lograr esto, necesita tener, condicionalmente, una versión Blu-ray del dibujo animado/película/anime y una versión de peor calidad; esto podría ser VHS-registro, DVD-versión, etc. Y lo quiero de inmediato advertir evitar el uso de escaladores para sus imágenes de alta calidad, como es sabido, si una red neuronal se entrena con datos generados por una red neuronal, la calidad del resultado final está cayendo rápidamenteLo entendí incluso con mi propio ejemplo. En su lugar, es mejor utilizar métodos y algoritmos manuales. Por tipo de reducción de ruido Buen vídeoo corregir el contraste de la imagen, los colores, la claridad… hay muchas herramientas, lo principal son las ganas de buscarlas.

Pero sólo puedes arreglártelas con una mala versión del material. Luego, deberá corregir manualmente cada cuadro de un video roto; por ejemplo, desea crear su propio escalador que borre todos los rayones y puntos de una película escaneada. tu abres Cañutillo o Photoshop y simplemente delinear cada uno de ellos, y realizar un relleno o tratamiento inteligente del área seleccionada. Y sí, con un volumen suficiente del conjunto de datos y iteraciones entrenamiento, realmente funcionará y difícilmente cometerá errores, a pesar, al parecer, de que la ubicación de estos puntos está casi más allá de la lógica. Un ejemplo directo de esto es “Sudo Inpaint PartialConv2D” Qué y con qué utilizarás para hacer tu escalador depende puramente de la tarea que se te asigne.

Resumamos las reglas básicas.:

  • Bajo ninguna circunstancia debe violar la geometría, de lo contrario esto causará una carga innecesaria en el escalador y, en general, también degradará la calidad.

  • No puede facilitar su tarea utilizando otras redes neuronales.

  • Necesitas tomar diferentes tomas. Si no hace esto, el escalador será reentrenado y solo mejorará el material del pozo que esté muy cerca de lo que estaba en el conjunto de datos, sin desviaciones mínimas del mismo.

Número de imágenes en el datast.

La respuesta es bastante sencilla. Cuanto más, mejor. Diversidad de marcos muy necesario, de lo contrario el escalador creará artefactos él mismo. Si su tarea es crear un escalador condicionalmente universal que elimine artefactos, suprima el ruido, etc., entonces la cantidad de datos de entrenamiento puede alcanzar 10.000+ imágenes. Casi siempre se trata puramente de aumento de datos porque la cantidad de datos deseada es muy grande. Si tu tarea es eliminar algo específicocomo “escaleras” en la imagen, iluminación específica de toda la imagen o desea convertir* imagen de los medios disco láser V DVD calidad (al menos), entonces su vuelo está a punto 2000-3000 imágenes para un escalador con un multiplicador de 1, aunque con el procesamiento exclusivamente manual puede arreglárselas con 200 imágenespero aquí nadie da garantías, lo más probable es que esto no funcionará en un escalador integral. solo vi 2 ejemplos exitosos de este enfoque con resultados estables. Dotzilla compacto y Afilar píxeles.

Si también desea aumentar la resolución 2 veces, es recomendable al menos 4000 imágeneso mejor 5000-6000. Por razones razonables, es mejor no crear un escalador que amplíe una imagen 4 veces; es poco probable que alguna vez recopile un conjunto de datos tan grande de imágenes específicas;

Cómo dividir un vídeo en un montón de imágenes.
puedes usar FFmpeg. Un ejemplo de tal comando:
ffmpeg -i input.mp4 -vf "select="not(mod(n,375))",setpts=N/FRAME_RATE/TB" -vsync vfr output_%03d.png
El parámetro “375” se puede cambiar hacia arriba o hacia abajo. Significa que se recuperará un fotograma cada 375 fotogramas.

ffmpeg -i input.mp4 -vf "select="eq(n,0)+eq(n,375)+eq(n,750)+eq(n,1125)+eq(n,1500)+eq(n,1875)+eq(n,2250)+eq(n,2625)+eq(n,3000)+eq(n,3375)+eq(n,3750)+eq(n,4125)+eq(n,4500)+eq(n,4875)+eq(n,5250)+eq(n,5625)+eq(n,6000)+eq(n,6375)+eq(n,6750)+eq(n,7125)+eq(n,7500)+eq(n,7875)+eq(n,8250)+eq(n,8625)",setpts=N/FRAME_RATE/TB" -vsync vfr output_%03d.png
Este comando sólo extraerá ciertos fotogramas de un vídeo. Puede resultar útil si el vídeo contiene transiciones con fondo negro en determinados momentos u otros fotogramas que en la mayoría de los casos no son adecuados para entrenar una red neuronal.

Lo más probable es que pueda encontrar una gran cantidad de software en Internet que haga esto sin una línea de comando y de forma automática para muchos archivos. Bueno, los usuarios linux ellos simplemente pueden aprovechar para bucle para todos los vídeos en el directorio actual.

2. Configurar el archivo de configuración de entrenamiento del modelo. Aquí todo es bastante sencillo. Mi archivo de configuración de ejemplo se encuentra Aquípero sin duda necesita configuraciones adicionales dependiendo de sus tareas y capacidades disponibles. A aquí Todo tipo de explicaciones e incluyendo todos los parámetros. aumento de datos. El aumento de datos también es útil en el modo de imagen emparejada, pero solo si no te excedes, que puede ser lo contrario. dañar tu modelo. Como, por ejemplo, añadir ruido artificial (alrededor del 40 % de forma estándar) además del ruido mecánico que se supone que su modelo debe eliminar. En este caso, existe una alta probabilidad de que el modelo aprenda a no eliminar ruido mecanicoy su combinación con artificial. Pero aún así se podría agregar en tal escenario, literalmente un poco (alrededor del 10%), y así sucesivamente. balanceel modelo, por el contrario, se volvería parejo mejor eliminar ruido mecanico. La situación es exactamente la misma con todos los demás parámetros de aumento de datos. Alguno conveniente utilizar en un escenario específico, y algunos – No. Sería prudente consultar sobre este tema con algunos Chat GPTpara elegir los métodos correctos específicamente para tuyo datos de entrada y resultado deseado.

3. Instalación de Real-ESRGAN. En general, se detallan todos los pasos principales. aquísolo necesitas conducirlos hacia powershell o terminal y haber instalado los programas que se especificaban en el enlace. El comando para iniciar el entrenamiento podría verse así:
python /путь/до/вашего/установленного_репозитория_Real-ESRGAN/realesrgan/train.py -opt путь/до/вашего/конфигурационного_файла.yml --auto_resume
“–auto-resume” significa que cuando lo ejecute nuevamente, el script encontrará el último archivo guardado, si lo hay. Y estará en la carpeta de experimentos.

❯ Mi primer intento de crear un escalador

Eliminación de ruido RGB Lite

Eliminación de ruido RGB Lite

Durante mi reciente proyecto Procesé manualmente 124 episodios de diferentes dibujos animados como Blu-ray utilizando un algoritmo de eliminación de ruido (Buen vídeo). Como resultado creé conjunto de datos Imágenes antes y después de eliminar el ruido mecánico de la imagen en alta calidad. Después de varios intentos de aprender lo logré. obrero opción, y ahora en lugar de tedioso manual proceso de trabajo en progreso automáticamente. Publiqué tres versiones del escalador en mi GitHubrepositorios y en el sitio web openmodeldb.info.

Además, he preparado para ti mesa con escaladores que fueron seleccionados entre más cientos opciones como mucho rápido arquitecturas. Por supuesto, esta no es una lista perfecta, pero aquí se recopila lo mejor. valioso de lo que he usado.

Obtuve tetonaEstaré encantado de cualquier apoyo.

Noticias, reseñas de productos y concursos del equipo de Timeweb.Cloud – en nuestro canal de Telegram

Ir ↩

Publicaciones Similares

Deja una respuesta

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