Video2X: marco de interpolación de fotogramas y escalado de vídeo de alta calidad
editor de código fuente
Importante
Las versiones 4 y 5 han alcanzado el estado de fin de vida útil (EOL). Debido a los recursos de desarrollo limitados, cualquier problema relacionado con versiones inferiores a 6 ya no se resolverá.
Versión 6.0.0
Descargue el instalador de Windows
En pocas palabras: la versión 6.0.0 es una reescritura completa del proyecto Video2X en C/C++, con una arquitectura más rápida y eficiente, soporte multiplataforma, calidad de salida muy mejorada y nuevas funciones para una fácil configuración en la GUI y el instalador de Windows. .
La versión 6.0.0 es una reescritura completa del proyecto, implementada en C/C++ e incluye las siguientes características:
1. Arquitectura más rápida: al aprovechar los subprocesos múltiples y la aceleración de GPU, Video2X ahora es mucho más rápido que antes.
2. Soporte multiplataforma: Video2X ahora se ejecuta en Windows, Linux y macOS.
3. Calidad de salida mejorada: Video2X ahora ofrece una mayor calidad de escalado, especialmente para videos de alta resolución.
4. Nueva GUI: Video2X ahora presenta una GUI fácil de usar que simplifica el proceso de configuración y uso.
5. Nuevo instalador: Video2X ahora ofrece un instalador fácil de usar que le ayuda a instalar el software rápida y fácilmente en Windows.
Próximamente se admitirá RealCUGAN y la interpolación de cuadros mediante RIFE.
Descargar la versión de Windows
Puede descargar la última versión de Windows desde la página de lanzamientos. Para conocer el uso básico de la GUI, consulte la página wiki de la GUI. Si no puede descargar directamente desde GitHub, intente usar un espejo. La GUI actualmente admite los siguientes idiomas:
1. inglés
2. Chino simplificado
3. Chino tradicional
4. japonés
5. coreano
6. francés
7. alemán
8. italiano
9. español
10. portugués
11. ruso
Instalar en Linux
Puede instalar Video2X en Arch Linux usando el paquete video2x-git o descargar los binarios precompilados desde la página de lanzamientos. Si desea compilar desde el código fuente, consulte el archivo PKGBUILD para obtener una descripción general de los paquetes y comandos necesarios. Si no desea compilar su programa desde el código fuente, considere usar la imagen del contenedor a continuación.
imagen del contenedor
Las imágenes del contenedor Video2X están disponibles en el registro de contenedores de GitHub para una fácil implementación en Linux y macOS. Si tiene instalado Docker/Podman, puede iniciar la amplificación de vídeo con un solo comando. Para obtener más información sobre cómo utilizar la imagen Docker de Video2X, consulte la documentación.
Google Colab (obsoleto: 5.0.0-beta7)
Si no tiene su propia GPU potente, puede usar Video2X de forma gratuita en Google Colab. Puede pedir prestada una potente GPU (NVIDIA T4, L4 o A100) de forma gratuita en los servidores de Google durante hasta 12 horas por sesión. Utilice los recursos gratuitos de manera justa y no cree sesiones continuas ni ejecute Zoom las 24 horas del día, los 7 días de la semana. Esto puede resultar en que te baneen. Si desea utilizar una GPU mejor y obtener tiempos de ejecución más prolongados, obtenga Colab Pro/Pro+. Las instrucciones de uso están integradas en el cuaderno de Colab.
grupo de discusión de telegramas
Únase a nuestro grupo de discusión de Telegram para hacer cualquier pregunta que tenga sobre Video2X, chatear directamente con los desarrolladores o discutir la tecnología de súper resolución y el futuro de Video2X.
documento
La documentación de Video2X está alojada en la página Wiki de este repositorio. Incluye instrucciones completas sobre cómo utilizar la GUI, la CLI, las imágenes de contenedores, las bibliotecas y más. Los wikis están abiertos a la edición por parte de la comunidad, por lo que usted, sí, también puede corregir errores o agregar contenido nuevo a la documentación.
introducir
Video2X es un marco de interpolación de fotogramas y escalado de vídeo basado en aprendizaje automático construido en torno a tres componentes principales:
1. Modelos: Video2X utiliza una variedad de modelos avanzados de aprendizaje profundo para realizar escalado e interpolación de cuadros.
2. Motor: el motor Video2X es responsable de procesar datos de video, realizar inferencia de modelos y generar videos de salida.
3. Interfaz: Video2X proporciona varias interfaces, como GUI, CLI e imágenes de contenedor, para permitirle utilizar el marco fácilmente.
Vídeo de demostración
Ampliar: tráiler de la película El viaje de Chihiro
Fragmento de prueba estándar
El siguiente fragmento se puede utilizar para probar si su configuración funciona correctamente. Este también es un fragmento estándar para ejecutar pruebas comparativas de rendimiento.
El clip original es del anime "The Pet Girl of Sakurasou".
Los derechos de autor de este clip pertenecen a Amino Pulse Co., Ltd.
licencia
Este proyecto se publica bajo la licencia GNU AGPL versión 3.
Copyright (C) 2018-2024 K4YT3X y colaboradores.
Este proyecto incluye o depende de los siguientes proyectos:
1. abiertocv: https://github.com/opencv/opencv
2. waifu2x-caffe: https://github.com/nagadomi/waifu2x-caffe
3. Real-ESRGAN: https://github.com/xinntao/Real-ESRGAN
4. SR básico: https://github.com/xinntao/BasicSR
5. GFPGAN: https://github.com/TencentARC/GFPGAN
6. RIFE: https://github.com/hzwer/arXiv2021-RIFE
7. Anime4K: https://github.com/bloc97/Anime4K
Puede encontrar más información sobre licencias en el archivo NOTICE.
agradecimiento especial
Un agradecimiento especial a las siguientes personas por sus importantes contribuciones a este proyecto, en orden alfabético:
1. K4YT3X: Creador de proyectos
2. Colaboradores: Gracias a todos los que contribuyeron a este proyecto.
Por ejemplo:
Licencia Apache-2.0
Tabla de contenido
Marco de detección de objetos Darknet y YOLO
1. papel
2. Información general
3. Versión de la red oscura
4. Pesas previas al entrenamiento MSCOCO
5. Construir
1. Colaboración de Google
2. Método CMake de Linux
3. Método CMake de Windows
6. Utilice la red oscura
1. CLI
2. Entrenamiento
7. Otras herramientas y enlaces
8. Hoja de ruta
1. Metas a corto plazo
2. Metas a mediano plazo
3. Metas a largo plazo
Marco de detección de objetos Darknet y YOLO
Darknet es un marco de red neuronal de código abierto escrito en C, C++ y CUDA.
YOLO (Solo miras una vez) es un sistema de detección de objetos en tiempo real de última generación que se ejecuta en el marco Darknet.
Lea cómo Hank.ai ayuda a la comunidad Darknet/YOLO
Anuncio de Darknet V3 “Jazz”
Visita el sitio web de Darknet/YOLO
Lea las preguntas frecuentes sobre Darknet/YOLO
Únase al servidor Darknet/YOLO Discord
papel
1. Papel YOLOv7
2. Papel YOLOv4 escalado
3. Papel YOLOv4
4. Papel YOLOv3
información general
El marco Darknet/YOLO sigue siendo más rápido y preciso que otros marcos y versiones de YOLO.
El marco es completamente gratuito y de código abierto. Puede integrar Darknet/YOLO en proyectos y productos existentes (incluidos productos comerciales) sin licencias ni tarifas.
Darknet V3 ("Jazz"), lanzado en octubre de 2024, puede ejecutar con precisión videos del conjunto de datos LEGO a hasta 1000 FPS cuando se usa una GPU NVIDIA RTX 3090, lo que significa que cada cuadro de video toma 1 milisegundo o menos. Leído, redimensionado y procesado internamente por Darknet/ YOLO.
Si necesita ayuda o quiere hablar sobre Darknet/YOLO, únase al servidor Darknet/YOLO Discord: https://discord.gg/zSq8rtW
La versión CPU de Darknet/YOLO puede ejecutarse en dispositivos simples como Raspberry Pi, servidores en la nube y colab, computadoras de escritorio, portátiles y equipos de entrenamiento de alta gama. La versión GPU de Darknet/YOLO requiere la GPU compatible con CUDA de NVIDIA.
Se sabe que Darknet/YOLO se ejecuta en Linux, Windows y Mac. Consulte las instrucciones de construcción a continuación.
Versión de la red oscura
Las herramientas Darknet originales escritas por Joseph Redmon entre 2013 y 2017 no tenían números de versión. Creemos que esta es la versión 0.x.
La próxima biblioteca Darknet popular mantenida por Alexey Bochkovskiy entre 2017 y 2021 tampoco tiene un número de versión. Creemos que esta es la versión 1.x.
La biblioteca Darknet patrocinada por Hank.ai y mantenida por Stéphane Charette a partir de 2023 es la primera biblioteca que tiene un comando de versión. Desde 2023 hasta finales de 2024 vuelve a la versión 2.x “OAK”.
El objetivo es familiarizarse con el código base y, al mismo tiempo, romper la menor cantidad posible de funciones existentes.
1. Reescribimos los pasos de compilación para que ahora podamos compilar en Windows y Linux usando CMake.
2. Convierta el código base para utilizar un compilador de C++.
3. Chart.png mejorado durante el entrenamiento.
4. Corrección de errores y optimizaciones relacionadas con el rendimiento, principalmente relacionadas con la reducción del tiempo necesario para entrenar la red.
La última rama del código base es la versión 2.1 en la rama v2.
La siguiente fase de desarrollo comienza a mediados de 2024 y se lanzará en octubre de 2024. El comando de versión ahora devuelve 3.x "JAZZ".
Si necesita ejecutar uno de estos comandos, siempre puede consultar la rama v2 anterior. Háganos saber para que podamos investigar cómo volver a agregar los comandos que faltan.
1. Se eliminaron muchos comandos antiguos y no mantenidos.
2. Realicé muchas optimizaciones de rendimiento, tanto durante el entrenamiento como durante la inferencia.
3. Se modificó la antigua API C; las aplicaciones que utilizan la API Darknet original deberán realizar modificaciones menores: https://darknetcv.ai/api/api.html
4. Nueva API Darknet V3 C y C++: https://darknetcv.ai/api/api.html
5. Nuevas aplicaciones y código de muestra en src-examples: https://darknetcv.ai/api/files.html
Pesas preentrenadas MSCOCO
Para mayor comodidad, varias versiones populares de YOLO están previamente entrenadas en el conjunto de datos MSCOCO. El conjunto de datos contiene 80 categorías y se puede ver en el archivo de texto cfg/coco.names.
Hay varios otros conjuntos de datos más simples y pesos previamente entrenados disponibles para probar Darknet/YOLO, como LEGO Gears y Rolodex. Para obtener más información, consulte las preguntas frecuentes sobre Darknet/YOLO.
Los pesos previamente entrenados de MSCOCO se pueden descargar desde varias ubicaciones diferentes y también se pueden descargar desde este repositorio:
1. YOLOv2, noviembre de 2016
1. YOLOv2-diminuto
2.YOLOv2-completo
2. YOLOv3, mayo de 2018
1. YOLOv3-diminuto
2.YOLOv3-completo
3. YOLOv4, mayo de 2020
1.YOLOv4-pequeño
2. YOLOv4-completo
4. YOLOv7, agosto de 2022
1. YOLOv7-diminuto
2. YOLOv7-completo
Las pesas previamente entrenadas de MSCOCO tienen fines de demostración únicamente. Los archivos .cfg y .names correspondientes a MSCOCO se encuentran en el directorio cfg. Comando de ejemplo:
`golpear
wget --no-clobber https://github.com/hank-ai/darknet/releases/download/v2.0/yolov4-tiny.weights
darknet02displayannotatedimages coco.names yolov4-tiny.cfg yolov4-tiny.weights image1.jpg
darknet03display_videos coco.names yolov4-tiny.cfg yolov4-tiny.weights video1.avi
DarkHelp coco.nombres yolov4-tiny.cfg yolov4-tiny.weights image1.jpg
DarkHelp coco.nombres yolov4-tiny.cfg yolov4-tiny.pesos video1.avi
`
Tenga en cuenta que uno debe entrenar su propia red. MSCOCO se suele utilizar para confirmar que todo funciona correctamente.
construir
Los diversos métodos de compilación disponibles en el pasado (antes de 2023) se han fusionado en una solución unificada. Darknet requiere C++ 17 o superior, OpenCV y usar CMake para generar los archivos de proyecto necesarios.
No es necesario saber C++ para compilar, instalar o ejecutar Darknet/YOLO, del mismo modo que no es necesario ser mecánico para conducir un automóvil.
colaboración de google
Las instrucciones de Google Colab son las mismas que las de Linux. Hay varios cuadernos de Jupyter disponibles que muestran cómo realizar determinadas tareas, como entrenar una nueva red.
Consulte el cuaderno en el subdirectorio colab o siga las instrucciones de Linux a continuación.
Método CMake de Linux
Tutorial de compilación de Darknet para Linux
Opcional: si tiene una GPU NVIDIA moderna, puede instalar CUDA o CUDA+cuDNN en este momento. Si está instalado, Darknet utilizará su GPU para acelerar el procesamiento de imágenes (y videos).
Debe eliminar el archivo CMakeCache.txt del directorio de compilación de Darknet para obligar a CMake a volver a encontrar todos los archivos necesarios.
Recuerda reconstruir Darknet.
Darknet se puede ejecutar sin él, pero si desea entrenar una red personalizada, necesitará CUDA o CUDA+cuDNN.
Visite https://developer.nvidia.com/cuda-downloads para descargar e instalar CUDA.
Visite https://developer.nvidia.com/rdp/cudnn-download o https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#cudnn-package-manager-installation-overview para descargar e Instale cuDNN.
Después de instalar CUDA, asegúrese de poder ejecutar nvcc y nvidia-smi. Es posible que deba modificar la variable PATH.
Si luego instaló CUDA o CUDA+cuDNN, o si actualizó a una versión más reciente del software NVIDIA:
Estas instrucciones asumen (¡pero no requieren!) que el sistema ejecuta Ubuntu 22.04. Si está utilizando otra distribución, ajuste según sea necesario.
`golpear
sudo apt-get install build-essential git libopencv-dev cmake
mkdir ~/srccd ~/src
clon de git https://github.com/hank-ai/darknet
cd red oscura
compilación mkdir
compilación de cd
cmake -DCMAKEBUILDTYPE=Lanzar ..
hacer el paquete -j4
sudo dpkg -i darknet-VERSIÓN.deb
`
Si está utilizando una versión anterior de CMake, deberá actualizar CMake para ejecutar el comando cmake anterior. La actualización de CMake en Ubuntu se puede realizar con el siguiente comando:
`golpear
sudo apt-get purga cmake
sudo snap instalar cmake --classic
`
Si está utilizando bash como su shell de comandos, deberá reiniciar su shell en este momento. Si está utilizando pescado, debería seguir el nuevo camino inmediatamente.
Usuarios avanzados:
Si desea crear un archivo de instalación RPM en lugar de un archivo DEB, consulte las líneas relevantes en CM_package.cmake. Antes de ejecutar el paquete make -j4 necesitas editar estas dos líneas:
`golpear
ESTABLECER (CPACKGENERATOR "DEB")# ESTABLECER (CPACKGENERATOR "RPM")
`
Para distribuciones como Centos y OpenSUSE, debe cambiar estas dos líneas en CM_package.cmake a:
`golpear
ESTABLECER (CPACK_GENERATOR "DEB")
ESTABLECER (CPACK_GENERATOR "RPM")
`
Para instalar un paquete, utilice el administrador de paquetes habitual de su distribución una vez que haya terminado de compilarse. Por ejemplo, en un sistema basado en Debian como Ubuntu:
`golpear
sudo dpkg -i darknet-2.0.1-Linux.deb
`
La instalación del paquete .deb copiará los siguientes archivos:
1. /usr/bin/darknet es el archivo ejecutable habitual de Darknet. Ejecute la versión de darknet desde la CLI para confirmar que esté instalada correctamente.
2. /usr/include/darknet.h es la API Darknet para desarrolladores de C, C++ y Python.
3. /usr/include/darknet_version.h contiene información de versión para desarrolladores.
4. /usr/lib/libdarknet.so es una biblioteca para que los desarrolladores de C, C++ y Python se vinculen.
5. /opt/darknet/cfg/... es donde se almacenan todas las plantillas .cfg.
¡Ya terminaste! Darknet está construido e instalado en /usr/bin/. Ejecute el siguiente comando para probar: versión darknet.
Si no tienes /usr/bin/darknet, no lo instalaste, ¡simplemente lo compilaste! Asegúrese de instalar el archivo .deb o .rpm como se describe arriba.
Métodos de Windows CMake
Estas instrucciones asumen que tiene una instalación limpia de Windows 11 22H2.
Abra una ventana de símbolo del sistema cmd.exe normal y ejecute el siguiente comando:
`golpear
instalación de alas Git.Git
Instalación de Winget Kitware.CMake
instalación de alas nsis.nsis
Winget instala Microsoft.VisualStudio.2022.Community
`
En este punto, necesitamos modificar la instalación de Visual Studio para incluir soporte para aplicaciones C++:
1. Haga clic en el menú Inicio de Windows y ejecute el instalador de Visual Studio.
2. Haga clic en Editar.
3. Elija desarrollo de escritorio usando C++.
4. Haga clic en Editar en la esquina inferior derecha, luego haga clic en Sí.
Una vez que todo esté descargado e instalado, haga clic nuevamente en el menú Inicio de Windows y seleccione Símbolo del sistema para desarrolladores para Visual Studio 2022. ¡No utilice PowerShell para realizar estos pasos, tendrá problemas!
Usuarios avanzados:
En lugar de ejecutar el símbolo del sistema del desarrollador, puede iniciar sesión en el dispositivo mediante un símbolo del sistema normal o ssh y ejecutar manualmente "Archivos de programaMicrosoft Visual Studio2022CommunityCommon7ToolsVsDevCmd.bat".
Una vez que tenga el símbolo del sistema del desarrollador ejecutándose como se describe anteriormente (¡no PowerShell!), ejecute el siguiente comando para instalar Microsoft VCPKG, que luego se usará para compilar OpenCV:
`golpear
Centros para el Control y la Prevención de Enfermedades:
mkdir c:srccd c:src
clon de git https://github.com/microsoft/vcpkg
cd vcpkg
arranque-vcpkg.bat
.vcpkg.exe instalación integrada
.vcpkg.exe integra powershell.vcpkg.exe instala opencv[contrib,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
`
Tenga paciencia con este último paso, ya que puede tardar mucho en ejecutarse. Requiere descargar y crear muchas cosas.
Usuarios avanzados:
Tenga en cuenta que al crear OpenCV, es posible que necesite agregar muchos otros módulos opcionales. Ejecute .vcpkg.exe y busque opencv para ver la lista completa.
Opcional: si tiene una GPU NVIDIA moderna, puede instalar CUDA o CUDA+cuDNN en este momento. Si está instalado, Darknet utilizará su GPU para acelerar el procesamiento de imágenes (y videos).
Debe eliminar el archivo CMakeCache.txt del directorio de compilación de Darknet para obligar a CMake a volver a encontrar todos los archivos necesarios.
Recuerda reconstruir Darknet.
Darknet se puede ejecutar sin él, pero si desea entrenar una red personalizada, necesitará CUDA o CUDA+cuDNN.
Visite https://developer.nvidia.com/cuda-downloads para descargar e instalar CUDA.
Visite https://developer.nvidia.com/rdp/cudnn-download o https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#download-windows para descargar e instalar cuDNN.
Después de instalar CUDA, asegúrese de poder ejecutar nvcc.exe y nvidia-smi.exe. Es posible que deba modificar la variable PATH.
Después de descargar cuDNN, descomprima y copie los directorios bin, include y lib en C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/[versión]/. Es posible que necesites sobrescribir algunos archivos.
Si luego instaló CUDA o CUDA+cuDNN, o si actualizó a una versión más reciente del software NVIDIA:
CUDA debe instalarse después de Visual Studio. Si actualiza Visual Studio, recuerde reinstalar CUDA.
Una vez que todos los pasos anteriores se hayan completado con éxito, deberá clonar Darknet y compilarlo. En este paso también necesitamos decirle a CMake dónde se encuentra vcpkg para que pueda encontrar OpenCV y otras dependencias:
`golpear
cdc:src
clon de git https://github.com/hank-ai/darknet.git
cd red oscura
compilación mkdir
compilación de cd
cmake -DCMAKEBUILDTYPE=Versión -DCMAKETOOLCHAINFILE=C:/src/vcpkg/scripts/buildsystems/vcpkg.cmake ..
msbuild.exe /property:Platform=x64;Configuration=Release /target:Build -maxCpuCount -verbosity:normal -detailedSummary darknet.sln
msbuild.exe /property:Platform=x64;Configuration=Versión PACKAGE.vcxproj
`
Si recibe un error sobre una DLL CUDA o cuDNN faltante (por ejemplo, cublas64_12.dll), copie manualmente el archivo CUDA .dll en el mismo directorio de salida que Darknet.exe. Por ejemplo:
`golpear
copie "C:Archivos de programaNVIDIA GPU Computing ToolkitCUDAv12.2bin*.dll" src-cliRelease
`
(¡Este es un ejemplo! Verifique que esté ejecutando la versión y ejecute el comando apropiado para la versión que ha instalado).
Después de copiar los archivos, vuelva a ejecutar el último comando msbuild.exe para generar el paquete de instalación de NSIS:
`golpear
msbuild.exe /property:Platform=x64;Configuration=Versión PACKAGE.vcxproj
`
Usuarios avanzados:
Tenga en cuenta que la salida del comando cmake es el archivo de solución normal de Visual Studio Darknet.sln. Si es un desarrollador de software que utiliza con frecuencia la GUI de Visual Studio en lugar de msbuild.exe para crear proyectos, puede ignorar la línea de comando y cargar el proyecto Darknet en Visual Studio.
Ahora debería tener este archivo listo para ejecutar: C:srcDarknetbuildsrc-cliReleasedarknet.exe. Ejecute el siguiente comando para probar: C:srcDarknetbuildsrc-cliReleasedarknet.exe versión.
Para instalar correctamente Darknet, bibliotecas, archivos de inclusión y DLL necesarios, ejecute el asistente de instalación de NSIS integrado en el paso anterior. Verifique el archivo darknet-VERSION.exe en el directorio de compilación. Por ejemplo:
`golpear
darknet-2.0.31-win64.exe
`
La instalación del paquete de instalación de NSIS:
1. Cree un directorio llamado Darknet, por ejemplo C:Program FilesDarknet.
2. Instale la aplicación CLI, darknet.exe y otras aplicaciones de muestra.
3. Instale los archivos .dll de terceros necesarios, como los de OpenCV.
4. Instale los archivos Darknet .dll, .lib y .h necesarios para usar darknet.dll desde otra aplicación.
5. Instale el archivo de plantilla .cfg.
¡Ya terminaste! Una vez completado el asistente de instalación, Darknet se instalará en C:Program FilesDarknet. Ejecute el siguiente comando para probar: C: Archivos de programa Versión Darknetbindarknet.exe.
Si no tiene C:/Program Files/darknet/bin/darknet.exe, no lo instaló, ¡simplemente lo creó! Asegúrese de completar cada panel del Asistente de instalación de NSIS como se describe en el paso anterior.
Usando la red oscura
CLI
La siguiente no es una lista completa de todos los comandos admitidos por Darknet.
Además de la CLI de Darknet, también tenga en cuenta la CLI del proyecto DarkHelp, que proporciona una CLI alternativa a Darknet/YOLO. DarkHelp CLI también tiene algunas mejoras que no se encuentran en Darknet. Puede utilizar Darknet CLI y DarkHelp CLI juntos; no se excluyen mutuamente.
Para la mayoría de los comandos que se muestran a continuación, necesita un archivo .weights con los archivos .names y .cfg correspondientes. Puede entrenar su propia red (¡muy recomendable!) o descargar redes neuronales que otros han entrenado y que están disponibles gratuitamente en Internet. Ejemplos de conjuntos de datos previos al entrenamiento incluyen:
1. LEGO Gears (busca objetos en imágenes)
2. Rolodex (buscar texto en la imagen)
3. MSCOCO (detección de objetivos estándar de categoría 80)
Los comandos para ejecutar incluyen:
Enumere algunos comandos y opciones posibles que se pueden ejecutar:
`golpear
ayuda de la red oscura
`
Verificar versión:
`golpear
versión de la red oscura
`
Utilice imágenes para hacer predicciones:
`golpear
V2
Prueba del detector darknet cars.data cars.cfg cars_best.weights image1.jpg
V3
darknet02displayimágenes anotadas cars.cfg image1.jpg
Ayuda oscura
DarkHelp cars.cfg cars.cfg cars_best.weights imagen1.jpg
`
Coordenadas de salida:
`golpear
V2
prueba del detector darknet animales.datos animales.cfg animalesmejor.pesos -extoutput perro.jpg
V3
darknet01inference_images animales perro.jpg
Ayuda oscura
DarkHelp --json animales.cfg animales.nombres animales_mejores.pesos perro.jpg
`
Vídeo de procesamiento:
`golpear
V2
Demostración del detector darknet animales.datos animales.cfg animalesmejores.pesos -extoutput test.mp4
V3
darknet03display_videos animales.cfg prueba.mp4
Ayuda oscura
DarkHelp animales.cfg animales.nombres animales_mejores.pesos prueba.mp4
`
Leyendo desde la cámara web:
`golpear
V2
Demostración del detector darknet animales.datos animales.cfg animales_best.weights -c 0
V3
darknet08display_webcam animales
`
Guardar resultados en vídeo:
`golpear
V2
demostración del detector darknet animales.datos animales.cfg animalesbest.pesos prueba.mp4 -outfilename res.avi
V3
darknet05procesovideosmultiproceso animales.cfg animales.nombres animales_mejores.pesos prueba.mp4
Ayuda oscura
DarkHelp animales.cfg animales.nombres animales_mejores.pesos prueba.mp4
`
JSON:
`golpear
V2
Demostración del detector darknet animales.datos animales.cfg animalesbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
V3
darknet06imagestojson animales image1.jpg
Ayuda oscura
DarkHelp --json animales.nombres animales.cfg animales_mejor.pesos imagen1.jpg
`
Ejecutar en una GPU específica:
`golpear
V2
Demostración del detector darknet animales.datos animales.cfg animales_mejores.pesos -i 1 prueba.mp4
`
Para comprobar la precisión de la red neuronal:
`golpear
Mapa del detector de darknet conducción.datos conducción.cfg conducción_mejor.pesos...
Id. Nombre AvgPrecision TP FN FP TN Precisión ErrorRate Precisión Recuperación Especificidad FalsePosRate
-- ---- ------------ ------ ------ ------ ------ -------- --------- --------- ------ ---------- ----------
0 vehículo 91,2495 32648 3903 5826 65129 0,9095 0,0905 0,8486 0,8932 0,9179 0,0821
1 motocicleta 80,4499 2936 513 569 5393 0,8850 0,1150 0,8377 0,8513 0,9046 0,0954
2 bicicletas 89,0912 570 124 104 3548 0,9475 0,0525 0,8457 0,8213 0,9715 0,0285
3 personas 76,7937 7072 1727 2574 27523 0,8894 0,1106 0,7332 0,8037 0,9145 0,0855
4 muchos vehículos 64,3089 1068 509 733 11288 0,9087 0,0913 0,5930 0,6772 0,9390 0,0610
5 luz verde 86,8118 1969 239 510 4116 0,8904 0,1096 0,7943 0,8918 0,8898 0,1102
6 luz amarilla 82,0390 126 38 30 1239 0,9525 0,0475 0,8077 0,7683 0,9764 0,0236
7 luz roja 94,1033 3449 217 451 4643 0,9237 0,0763 0,8844 0,9408 0,9115 0,0885
`
Para comprobar la precisión mAP@IoU=75:
`golpear
Mapa del detector de darknet animales.datos animales.cfg animalesbest.weights -iouthresh 0,75
`
Es mejor volver a calcular los puntos de anclaje en DarkMark, ya que se ejecutará 100 veces seguidas y seleccionará el mejor punto de anclaje de todos los puntos de anclaje calculados. Sin embargo, si deseas ejecutar una versión anterior en Darknet:
`golpear
detector de red oscura calcanchors animales.data -numof_clusters 6 -ancho 320 -alto 256
`
Entrene una nueva red:
`golpear
detector de red oscura -mapa -dont_show entrenar animales.datos animales.cfg
`
(Consulte también la sección de capacitación a continuación)
tren
Enlaces rápidos a secciones relevantes de las preguntas frecuentes de Darknet/YOLO:
1. ¿Cómo configuro mis archivos y directorios?
2. ¿Qué perfil debo utilizar?
3. ¿Qué comandos debo usar al entrenar mi propia red?
La forma más sencilla de crear todos los archivos, anotaciones y formación necesarios en Darknet utilizando DarkMark. Esta es definitivamente la forma recomendada de entrenar nuevas redes neuronales.
Si desea configurar manualmente los distintos archivos para entrenar una red personalizada:
1. Cree una nueva carpeta para almacenar los archivos. Para este ejemplo, creará una red neuronal para detectar animales, por lo que se creará el siguiente directorio: ~/nn/animals/.
2. Copie uno de los archivos de configuración de Darknet que desee utilizar como plantilla. Por ejemplo, consulte cfg/yolov4-tiny.cfg. Colóquelo en la carpeta que creó. En este ejemplo, ahora tenemos ~/nn/animals/animals.cfg.
3. Cree un archivo de texto animales.names en la misma carpeta donde colocó el archivo de configuración. En este ejemplo, ahora tenemos ~/nn/animals/animals.names.
4. Utilice su editor de texto para editar el archivo animales.nombres. Enumere las categorías que desea utilizar. Necesita exactamente una entrada por línea y no hay líneas en blanco ni comentarios. En este ejemplo, el archivo .names contendrá exactamente 4 líneas:
`
perro
gato
pájaro
caballo
`
5. Cree un archivo de texto animales.data en la misma carpeta. En este ejemplo, el archivo .data contendrá:
`
clases=4
tren=/home/nombre de usuario/nn/animals/animals_train.txt
valid=/home/nombre de usuario/nn/animals/animals_valid.txt
nombres=/home/nombredeusuario/nn/animals/animals.nombres
copia de seguridad=/home/nombre de usuario/nn/animales
`
6. Cree una carpeta para almacenar sus imágenes y anotaciones. Por ejemplo, esto podría ser ~/nn/animals/dataset. Cada imagen requiere un archivo .txt correspondiente que describe las anotaciones de esa imagen. El formato de los archivos de comentarios .txt es muy específico. No puede crear estos archivos manualmente porque cada anotación debe contener las coordenadas precisas de la anotación. Consulte DarkMark u otro software similar para anotar sus imágenes. El formato de anotación de YOLO se describe en las preguntas frecuentes de Darknet/YOLO.
7. Cree archivos de texto "entrenables" y "válidos" nombrados en el archivo .data. Estos dos archivos de texto deben enumerar todas las imágenes que Darknet debe usar para entrenamiento y validación (al calcular mAP%) respectivamente. Exactamente una imagen por fila. Las rutas y los nombres de archivos pueden ser relativos o absolutos.
8. Utilice un editor de texto para modificar su archivo .cfg.
9. Asegúrese de que el lote sea = 64.
10. Presta atención a las subdivisiones. Dependiendo del tamaño de la red y la cantidad de memoria disponible en la GPU, es posible que necesites aumentar las subdivisiones. El mejor valor para usar es 1, así que comience con 1. Si 1 no funciona para usted, consulte las preguntas frecuentes de Darknet/YOLO.
11. Tenga en cuenta que maxbatches=.... Un buen valor para empezar es 2000 veces el número de categorías. En este ejemplo tenemos 4 animales, entonces 4 * 2000 = 8000. Esto significa que usaremos maxbatches=8000.
12. Tenga en cuenta los pasos =.... Esto debe establecerse en 80 % y 90 % de los lotes máximos. En este ejemplo, dado que maxbatches está configurado en 8000, usaremos pasos = 6400,7200.
13. Tenga en cuenta que ancho=... y alto=.... Estas son dimensiones de red. Las preguntas frecuentes de Darknet/YOLO explican cómo calcular el tamaño óptimo a utilizar.
14. Busque en la sección [convolucional] todas las clases =... líneas antes de la sección [yolo] y modifíquelas con el número de clases del archivo .names. En este ejemplo usaremos clases = 4.
15. Busque todas las líneas filters=... en la sección [convolucional] antes de cada sección [yolo]. El valor a utilizar es (número de categorías + 5) 3. Esto significa que en este ejemplo, (4 + 5) 3 = 27. Por lo tanto, usamos filtros = 27 en las líneas correspondientes.
¡Empieza a entrenar! Ejecute el siguiente comando:
`golpear
cd ~/nn/animales/
detector de red oscura -mapa -dont_show entrenar animales.datos animales.cfg
`
Espere por favor. Los mejores pesos se guardarán como animales_best.weights. Puede observar el progreso del entrenamiento viendo el archivo chart.png. Consulte las preguntas frecuentes de Darknet/YOLO para conocer parámetros adicionales que quizás desee utilizar al entrenar una nueva red.
Si desea ver más detalles durante el entrenamiento, agregue el parámetro --verbose. Por ejemplo:
`golpear
detector de red oscura -map -dont_show --verbose train animales.data animales.cfg
`
Otras herramientas y enlaces
Para administrar su proyecto Darknet/YOLO, anotar imágenes, validar sus anotaciones y generar los archivos necesarios para entrenar con Darknet, consulte DarkMark.
Para obtener una potente CLI alternativa a Darknet, para utilizar mosaicos de imágenes, seguimiento de objetos en sus vídeos o una potente API de C++ que se puede utilizar fácilmente en aplicaciones comerciales, consulte DarkHelp.
Vea si las preguntas frecuentes de Darknet/YOLO pueden ayudar a responder su pregunta.
Consulte los numerosos tutoriales y vídeos de ejemplo en el canal de YouTube de Stéphane.
Si tiene alguna pregunta de soporte o desea chatear con otros usuarios de Darknet/YOLO, únase al servidor Darknet/YOLO Discord.
hoja de ruta
Última actualización: 2024-10-30:
Terminado
1. Reemplace qsort() usado durante el entrenamiento con std::sort()