ansible
Ansible es un sistema de automatización de TI notablemente simple. Maneja hábilmente la gestión de la configuración, la implementación de aplicaciones, el aprovisionamiento de la nube, la ejecución de tareas ad hoc, la automatización de la red y la orquestación de múltiples nodos. Ansible le permite ejecutar cambios complejos sin esfuerzo, como actualizaciones continuas sin tiempo de inactividad con balanceadores de carga. Profundice en las capacidades de Ansible en su sitio web oficial.
Principios de diseño
1. Utilice Ansible
Puede instalar sin problemas una versión publicada de Ansible usando pip o su administrador de paquetes preferido. Consulte nuestra guía de instalación detallada para obtener instrucciones completas en varias plataformas.
2. Empoderar a los desarrolladores y usuarios avanzados
Para usuarios y desarrolladores avanzados, la rama de desarrollo brinda acceso a las funciones y correcciones más recientes. Si bien en general es estable, es importante reconocer la posibilidad de que se produzcan cambios importantes al utilizar esta rama. Recomendamos encarecidamente interactuar con la comunidad de Ansible si elige trabajar con la rama devel.
Comunicación
Únase al vibrante foro de Ansible para interactuar con la comunidad, buscar ayuda y hacer preguntas. Para conocer canales de comunicación adicionales, explore nuestra guía dedicada a Conectarse con la comunidad de Ansible.
Contribuir a Ansible
Directrices de codificación
Documentamos meticulosamente nuestras pautas de codificación en la Guía para desarrolladores. Le recomendamos encarecidamente que revise las siguientes secciones:
1. Información de la sucursal
2. Hoja de ruta
Basado en valiosos comentarios del equipo y la comunidad, se publica una hoja de ruta inicial para cada versión principal o secundaria (por ejemplo, 2.7, 2.8). La página Ansible Roadmap describe nuestros planes y proporciona vías para influir en nuestra dirección.
Autores
Ansible fue concebido originalmente por Michael DeHaan y se ha beneficiado de las contribuciones de más de 5000 usuarios (y contando). ¡Gracias a todos los que han contribuido!
Ansible se enorgullece de estar patrocinado por Red Hat, Inc.
Licencia
Licencia pública general GNU v3.0 o posterior. Consulte COPIAR para obtener el texto completo de la licencia.
Marco de detección de objetos Darknet y YOLO
Logotipos de !darknet y hank.ai
Darknet es un marco de red neuronal de código abierto desarrollado en C, C++ y CUDA.
YOLO (Solo miras una vez) representa un sistema de detección de objetos en tiempo real de vanguardia que opera dentro del marco Darknet.
Descubra cómo Hank.ai contribuye a la comunidad Darknet/YOLO: https://darknetcv.ai/
Explora el sitio web oficial de Darknet/YOLO: https://pjreddie.com/darknet/
Consulte las preguntas frecuentes completas sobre Darknet/YOLO: https://pjreddie.com/darknet/yolo/
Únase al servidor activo Darknet/YOLO Discord: https://discord.gg/zSq8rtW
Papeles
1. Documento YOLOv7: https://arxiv.org/abs/2207.02696
2. Documento YOLOv4 escalado: https://arxiv.org/abs/2102.12074
3. Documento YOLOv4: https://arxiv.org/abs/2004.10934
4. Documento YOLOv3: https://arxiv.org/abs/1804.02769
Información general
El marco Darknet/YOLO continúa superando a otros marcos y versiones de YOLO tanto en velocidad como en precisión.
Su total libertad y naturaleza de código abierto le permiten integrar perfectamente Darknet/YOLO en proyectos y productos existentes, incluidos los comerciales, sin restricciones de licencia ni tarifas.
Darknet V3 ("Jazz"), lanzado en octubre de 2024, demuestra su destreza al procesar los videos del conjunto de datos de LEGO a unos impresionantes 1000 FPS cuando se utiliza una GPU NVIDIA RTX 3090. Esto equivale a un tiempo de procesamiento de 1 milisegundo o menos para cada fotograma de vídeo, lo que demuestra una eficiencia excepcional.
Para cualquier ayuda o discusión relacionada con Darknet/YOLO, únase al servidor dedicado de Discord: https://discord.gg/zSq8rtW.
La versión de CPU de Darknet/YOLO se adapta a varios dispositivos, incluidos Raspberry Pi, servidores en la nube y de colaboración, computadoras de escritorio, portátiles y equipos de capacitación de alta gama. La versión GPU de Darknet/YOLO requiere una GPU compatible con CUDA de NVIDIA.
Darknet/YOLO ha sido validado para funcionar perfectamente en los sistemas operativos Linux, Windows y Mac. Consulte las instrucciones de construcción que se describen a continuación.
Versión de la red oscura
La herramienta Darknet original, desarrollada por Joseph Redmon entre 2013 y 2017, carecía de número de versión. Consideramos que esta es la versión 0.x.
El posterior y popular repositorio Darknet, mantenido por Alexey Bochkovskiy de 2017 a 2021, también carecía de número de versión. Clasificamos esto como versión 1.x.
El repositorio Darknet, patrocinado por Hank.ai y gestionado por Stéphane Charette a partir de 2023, introdujo por primera vez un comando de versión. Desde 2023 hasta finales de 2024, devolvió la versión 2.x "OAK".
Los objetivos de desarrollo se centraron en minimizar la interrupción de la funcionalidad existente y al mismo tiempo familiarizarnos con el código base.
Mejoras clave en la versión 2.x:
1. Proceso de compilación unificado: reescribió los pasos de compilación para un enfoque unificado usando CMake tanto en Windows como en Linux.
2. Transición de C++: se convirtió el código base para aprovechar el compilador de C++.
3. Visualización de entrenamiento mejorada: se mejoró la visualización del chart.png durante el entrenamiento.
4. Optimizaciones de rendimiento: se corrigieron errores e implementaron optimizaciones relacionadas con el rendimiento, principalmente enfocadas en reducir el tiempo de capacitación.
La versión 2.1 representa la rama final de este código base, disponible en la rama v2.
La siguiente etapa de desarrollo comenzó a mediados de 2024 y culminó con el lanzamiento en octubre de 2024 de la versión 3.x "JAZZ".
Conserva la opción de consultar la rama v2 anterior si necesita acceso a comandos específicos de esa versión. Si encuentra algún comando faltante, notifíquenos para una investigación y una posible reintegración.
Cambios significativos en la versión 3.x:
1. Poda de comandos: se eliminaron numerosos comandos obsoletos y sin mantenimiento.
2. Rendimiento mejorado: se implementaron amplias optimizaciones de rendimiento, tanto durante el entrenamiento como durante la inferencia.
3. Modificaciones de la API: la API C heredada sufrió modificaciones; Las aplicaciones que dependen de la API Darknet original necesitarán ajustes menores. Consulte la documentación actualizada para obtener orientación: https://darknetcv.ai/api/api.html
4. Introducción a la nueva API: se presentó una nueva API Darknet V3 C y C++: https://darknetcv.ai/api/api.html
5. Código de muestra ampliado: se agregaron nuevas aplicaciones y código de muestra dentro del directorio src-examples: https://darknetcv.ai/api/files.html
Pesas preentrenadas MSCOCO
Para comodidad del usuario, se entrenaron previamente varias versiones populares de YOLO en el conjunto de datos de MSCOCO. Este conjunto de datos abarca 80 clases, que se pueden encontrar en el archivo de texto cfg/coco.names.
Se encuentran disponibles conjuntos de datos adicionales más simples y pesos previamente entrenados para probar Darknet/YOLO, incluidos LEGO Gears y Rolodex. Para obtener información detallada, consulte las preguntas frecuentes de Darknet/YOLO.
Puede obtener los pesos previamente entrenados de MSCOCO en varios lugares, incluido este repositorio:
YOLOv2 (noviembre de 2016):
yolov2-pequeño
yolov2-completo
YOLOv3 (mayo de 2018):
yolov3-pequeño
yolov3-completo
YOLOv4 (mayo de 2020):
yolov4-pequeño
yolov4-completo
YOLOv7 (agosto de 2022):
yolov7-pequeño
yolov7-completo
Las pesas previamente entrenadas de MSCOCO se proporcionan con fines de demostración. Los archivos .cfg y .names correspondientes a MSCOCO se encuentran en el directorio cfg.
Comandos 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
`
Es muy recomendable entrenar sus propias redes. MSCOCO se utiliza normalmente para garantizar que la funcionalidad del marco funcione según lo esperado.
Edificio
Los métodos de compilación anteriores (anteriores a 2023) se han consolidado en una solución unificada. Darknet requiere C++ 17 o posterior, OpenCV, y utiliza CMake para generar los archivos de proyecto necesarios.
Construir Darknet/YOLO no requiere experiencia en C++; De manera similar a conducir un automóvil, no es necesario ser mecánico para utilizarlo.
Se anima a los desarrolladores de software a visitar https://darknetcv.ai/ para obtener información sobre el funcionamiento interno del marco de detección de objetos Darknet/YOLO.
colaboración de google
Las instrucciones de Google Colab reflejan las instrucciones de Linux. Varios cuadernos de Jupyter demuestran tareas específicas, como entrenar una nueva red.
Explore los cuadernos dentro del subdirectorio colab o siga las instrucciones de Linux que se proporcionan a continuación.
Método CMake de Linux
1. Software esencial:
Conceptos básicos de compilación: sudo apt-get install build-essential git libopencv-dev cmake
2. Clonación de repositorios:
Cree un directorio de origen: mkdir ~/srccd ~/src
Clona el repositorio: git clone https://github.com/hank-ai/darknetcd darknet
3. Directorio de compilación:
Cree un directorio de compilación: mkdir buildcd build
4. Configuración de CMake:
Configurar CMake: cmake -DCMAKEBUILDTYPE=Liberar ..
5. Construya la red oscura:
Construir: hacer -j4
6. Instalación del paquete:
Crear el paquete: paquete
Instale el paquete: sudo dpkg -i darknet-VERSION.deb
Opcional: Instalación CUDA o CUDA+cuDNN
Para un procesamiento acelerado de imágenes y videos, puede instalar opcionalmente CUDA o CUDA+cuDNN.
Instalación CUDA:
Visite https://developer.nvidia.com/cuda-downloads para descargar e instalar CUDA.
Instalación de cuDNN:
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.
Instalación posterior a CUDA:
Asegúrese de poder ejecutar nvcc y nvidia-smi. Es posible que necesites modificar tu variable PATH.
Actualización de CUDA o CUDA+cuDNN:
Elimine el archivo CMakeCache.txt de su directorio de compilación Darknet para obligar a CMake a volver a encontrar los archivos necesarios.
Reconstruir Darknet.
Actualización de la versión de CMake (si es necesario):
Purgar CMake existente: sudo apt-get purge cmake
Instale la última versión de CMake: sudo snap install cmake --classic
Reinicie su shell (bash) o asegúrese de que se reconozca la nueva ruta (fish).
Usuarios avanzados:
Para crear un archivo de instalación RPM en lugar de DEB, modifique las líneas relevantes en CM_package.cmake. Antes de ejecutar el paquete make -j4, ajuste las siguientes líneas:
`cmake
ESTABLECER (CPACK_GENERATOR "DEB")
ESTABLECER (CPACK_GENERATOR "RPM")
`
Para distribuciones como CentOS y OpenSUSE, modifica estas líneas:
`cmake
ESTABLECER (CPACK_GENERATOR "DEB")
ESTABLECER (CPACK_GENERATOR "RPM")
`
Una vez creado el paquete de instalación, instálelo utilizando el administrador de paquetes de su distribución. Por ejemplo, en sistemas basados en Debian como Ubuntu:
`golpear
sudo dpkg -i darknet-2.0.1-Linux.deb
`
Postinstalación:
Los archivos instalados incluyen:
- /usr/bin/darknet: ejecutable de Darknet. Ejecute la versión darknet para confirmar la instalación.
- /usr/include/darknet.h: API Darknet para desarrolladores de C, C++ y Python.
- /usr/include/darknet_version.h: Información de versión para desarrolladores.
- /usr/lib/libdarknet.so: Biblioteca para vinculación en desarrollo en C, C++ y Python.
- /opt/darknet/cfg/...: Ubicación de todas las plantillas .cfg.
Darknet ahora se construyó e instaló exitosamente en /usr/bin/. Para verificar, ejecute la versión darknet.
Método CMake de Windows
1. Requisitos previos:
Instale lo siguiente usando Winget:
- Git: Winget instala Git.Git
- CMake: instalar Kitware.CMake
- NSIS: instalación de alas nsis.nsis
- Comunidad Visual Studio 2022: instale Microsoft.VisualStudio.2022.Community
2. Configuración de Visual Studio:
Abra "Visual Studio Installer" desde el menú Inicio de Windows.
Haga clic en "Modificar".
Seleccione "Desarrollo de escritorio con C++".
Haga clic en "Modificar" en la esquina inferior derecha y luego en "Sí".
3. Símbolo del sistema del desarrollador:
Abra el menú "Inicio de Windows" y seleccione "Símbolo del sistema del desarrollador para VS 2022". No utilice PowerShell para estos pasos.
4. Instalación de Microsoft VCPKG (para OpenCV):
Navegue a C:: cd c:
Cree un directorio src: mkdir c:src
Clonar VCPKG: cd c:src git clone https://github.com/microsoft/vcpkg
Bootstrap VCPKG: cd vcpkg bootstrap-vcpkg.bat
Integrar VCPKG: .vcpkg.exe integrar instalación
Instale OpenCV (incluidas las dependencias): .vcpkg.exe install opencv[contrib,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
5. Opcional: Instalación CUDA o CUDA+cuDNN (Windows)
Para un procesamiento acelerado de imágenes y videos, puede instalar opcionalmente CUDA o CUDA+cuDNN.
Instalación CUDA:
Visite https://developer.nvidia.com/cuda-downloads para descargar e instalar CUDA.
Instalación de cuDNN:
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.
Instalación posterior a CUDA:
Asegúrese de poder ejecutar nvcc.exe. Es posible que necesites modificar tu variable PATH.
Descomprima el cuDNN descargado 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.
Actualización de CUDA o CUDA+cuDNN:
CUDA debe instalarse después de Visual Studio. Vuelva a instalar CUDA si actualiza Visual Studio.
6. Clonación y construcción de Darknet:
Navegue a su directorio de origen: cd c:src
Clona el repositorio: git clone https://github.com/hank-ai/darknet.git
Cree un directorio de compilación: cd darknetmkdir build
Configure CMake con VCPKG: cd build cmake -DCMAKEBUILDTYPE=Release -DCMAKETOOLCHAINFILE=C:/src/vcpkg/scripts/buildsystems/vcpkg.cmake ..
Compile la solución: msbuild.exe /property:Platform=x64;Configuration=Release /target:Build -maxCpuCount -verbosity:normal -detailedSummary darknet.sln
Genere el paquete de instalación de NSIS: msbuild.exe /property:Platform=x64;Configuration=Release PACKAGE.vcxproj
7. Manejo de DLL CUDA/cuDNN faltantes:
Si encuentra errores acerca de la falta de DLL CUDA o cuDNN (por ejemplo, cublas64_12.dll), copie manualmente los archivos CUDA .dll relevantes al mismo directorio de salida que Darknet.exe. Por ejemplo:
`golpear
copie "C:Archivos de programaNVIDIA GPU Computing ToolkitCUDAv12.2bin*.dll" src-cliRelease
`
Ajuste el número de versión en el comando para que coincida con su instalación.
Vuelva a ejecutar el comando msbuild.exe para generar el paquete de instalación de NSIS.
Usuarios avanzados:
El comando cmake genera un archivo de solución de Visual Studio (Darknet.sln). Si prefiere la GUI de Visual Studio, puede cargar el proyecto Darknet en Visual Studio en lugar de utilizar herramientas de línea de comandos.
Verificación posterior a la construcción:
Verifique que exista C:srcDarknetbuildsrc-cliReleasedarknet.exe. Ejecute la versión C:srcDarknetbuildsrc-cliReleasedarknet.exe para confirmar.
Instalación:
Ejecute el asistente de instalación de NSIS (por ejemplo, darknet-VERSION.exe en el directorio de compilación) para instalar Darknet, bibliotecas, archivos de inclusión y DLL necesarios.
Verificación posterior a la instalación:
Verifique que exista C:/Archivos de programa/darknet/bin/darknet.exe. Ejecute la versión C:/Program Files/darknet/bindarknet.exe para confirmar.
Usando la red oscura
CLI
Esta lista no abarca todos los comandos de Darknet.
Además de la CLI de Darknet, considere utilizar la CLI del proyecto DarkHelp, que ofrece una interfaz alternativa y más avanzada. Ambas CLI se pueden utilizar juntas.
Para la mayoría de los comandos, necesitará un archivo .weights junto con los archivos .names y .cfg correspondientes. Puede entrenar su propia red o descargar redes previamente entrenadas.
Conjuntos de datos previamente entrenados:
LEGO Gears: Detección de objetos en imágenes.
Rolodex: Detección de texto en imágenes.
MSCOCO: Detección de objetos estándar de clase 80.
Comandos CLI comunes:
1. Ayuda: ayuda de la red oscura
2. Versión: versión darknet
3. Predicción de imágenes (V2):
Prueba del detector darknet cars.data cars.cfg cars_best.weights image1.jpg
4. Predicción de imágenes (V3):
darknet02displayimágenes anotadas cars.cfg image1.jpg
5. Predicción de imágenes (DarkHelp):
DarkHelp cars.cfg cars.cfg cars_best.weights imagen1.jpg
6. Coordenadas de salida (V2):
prueba del detector darknet animales.datos animales.cfg animalesmejor.pesos -extoutput perro.jpg
7. Coordenadas de salida (V3):
darknet01inference_images animales perro.jpg
8. Coordenadas de salida (DarkHelp):
DarkHelp --json animales.cfg animales.nombres animales_mejores.pesos perro.jpg
9. Procesamiento de vídeo (V2):
Demostración del detector darknet animales.datos animales.cfg animalesmejores.pesos -extoutput test.mp4
10. Procesamiento de vídeo (V3):
darknet03display_videos animales.cfg prueba.mp4
11. Procesamiento de vídeo (DarkHelp):
DarkHelp animales.cfg animales.nombres animales_mejores.pesos prueba.mp4
12. Procesamiento de cámara web (V2):
Demostración del detector darknet animales.datos animales.cfg animales_best.weights -c 0
13. Procesamiento de cámara web (V3):
darknet08display_webcam animales
14. Guardado de vídeo (V2):
demostración del detector darknet animales.datos animales.cfg animalesbest.pesos prueba.mp4 -outfilename res.avi
15. Guardar vídeo (V3):
darknet05procesovideosmultiproceso animales.cfg animales.nombres animales_mejores.pesos prueba.mp4
16. Guardar vídeo (DarkHelp):
DarkHelp animales.cfg animales.nombres animales_mejores.pesos prueba.mp4
17. Salida JSON (V2):
Demostración del detector darknet animales.datos animales.cfg animalesbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
18. Salida JSON (V3):
darknet06imagestojson animales image1.jpg
19. Salida JSON (DarkHelp):
DarkHelp --json animales.nombres animales.cfg animales_mejor.pesos imagen1.jpg
20. Selección de GPU (V2):
Demostración del detector darknet animales.datos animales.cfg animales_mejores.pesos -i 1 prueba.mp4
21. Verificación de la precisión de la red:
Mapa del detector de darknet conducción.datos conducción.cfg conducción_mejor.pesos...
22. Verificación de precisión (mAP@IoU=75):
Mapa del detector de darknet animales.datos animales.cfg animalesbest.weights -iouthresh 0,75
23. Recálculo de anclaje (se recomienda DarkMark):
detector de red oscura calcanchors animales.data -numof_clusters 6 -ancho 320 -alto 256
24. Capacitación de una nueva red:
detector de red oscura -map -dont_show train animales.data animales.cfg (consulte la sección de capacitación a continuación)
Capacitación
Enlaces rápidos a secciones relevantes de las preguntas frecuentes de Darknet/YOLO:
Configuración: https://pjreddie.com/darknet/yolo/
Selección del archivo de configuración: https://pjreddie.com/darknet/yolo/
Comando de entrenamiento: https://pjreddie.com/darknet/yolo/
El enfoque más simplificado para la anotación y la capacitación implica el uso de DarkMark. Este es el método recomendado para entrenar una nueva red neuronal.
Configuración de entrenamiento manual:
1. Cree una carpeta de proyecto: por ejemplo, ~/nn/animals/.
2. Copie una plantilla de configuración:
Elija un archivo de configuración (por ejemplo, cfg/yolov4-tiny.cfg).
Colóquelo en la carpeta del proyecto.
Ahora tienes ~/nn/animals/animals.cfg.
3. Cree el archivo animales.names:
Cree un archivo de texto llamado animales.nombres en la carpeta del proyecto.
Edite este archivo con las clases que desee.
Asegúrese de que cada clase esté en una línea separada, sin líneas en blanco ni comentarios.
Por ejemplo:
`
perro
gato
pájaro
caballo
`
4. Cree el archivo animales.data:
Cree un archivo de texto llamado animales.data en la carpeta del proyecto.
El contenido debe parecerse a:
`
clases = 4
tren = /home/nombre de usuario/nn/animals/animals_train.txt
válido = /home/nombre de usuario/nn/animals/animals_valid.txt
nombres = /home/nombredeusuario/nn/animals/animals.nombres
copia de seguridad = /home/nombre de usuario/nn/animals
`
5. Cree la carpeta del conjunto de datos:
Cree una carpeta para almacenar sus imágenes y anotaciones. Por ejemplo, ~/nn/animals/dataset.
Cada imagen requiere un archivo .txt correspondiente que define sus anotaciones.
No puede crear manualmente estos archivos .txt; Se necesitan DarkMark o herramientas similares para anotar sus imágenes y generar estos archivos.
Consulte las preguntas frecuentes de Darknet/YOLO para conocer el formato de anotación de YOLO.
6. Cree los archivos animalestrain.txt y animalesvalid.txt:
Cree estos archivos de texto como se especifica en el archivo animales.data.
Estos archivos enumeran todas las imágenes que se utilizarán para la capacitación y la validación, respectivamente.
Una imagen por línea, utilizando rutas relativas o absolutas.
7. Modifique el archivo de configuración (animals.cfg):
Lote: establezca el lote = 64.
Subdivisiones: comience con subdivisiones = 1. Ajuste según sea necesario según las dimensiones de la red y la memoria de la GPU.
Lotes máximos: un buen valor inicial es maxbatches=2000 * número de clases. En este ejemplo, maxbatches=8000 (4 animales).
Pasos: configúrelo en 80% y 90% de max_batches. En este ejemplo, pasos=6400,7200.
Ancho y Alto: Define las dimensiones de la red. Consulte las preguntas frecuentes de Darknet/YOLO para obtener orientación.
Clases: establezca clases=... para que coincida con el número de clases en su archivo .names (4 en este ejemplo).
Filtros: en cada capa convolucional anterior a una capa yolo, establezca filtros =... en (número de clases + 5) * 3. En este ejemplo, filtros = 27.
8. Comience a entrenar:
Navegue a la carpeta de su proyecto: cd ~/nn/animals/
Iniciar entrenamiento: detector de red oscura -map -dont_show train animales.data animales.cfg
Ser paciente. Los mejores pesos se guardarán como animales_best.weights.
Observe el progreso del entrenamiento viendo el archivo chart.png.
Consulte las preguntas frecuentes de Darknet/YOLO para conocer parámetros de entrenamiento adicionales.
Para obtener resultados de capacitación más detallados, agregue la marca --verbose:
`golpear
detector de red oscura -map -dont_show --verbose train animales.data animales.cfg
`
Otras herramientas y enlaces
DarkMark: para gestionar proyectos Darknet/YOLO, anotar imágenes, verificar anotaciones y generar archivos de capacitación. https://darknetcv.ai/darkmark/
DarkHelp: para una CLI alternativa sólida a Darknet, mosaico de imágenes, seguimiento de objetos y una API C++ comercial. https://darknetcv.ai/darkhelp/
Preguntas frecuentes sobre Darknet/YOLO: para obtener respuestas a preguntas comunes. https://pjreddie.com/darknet/yolo/
Canal de YouTube de Stéphane: para tutoriales y vídeos de ejemplo. https://www.youtube.com/@stephane-charette
Darknet/YOLO Discord Server: para preguntas de soporte y debates comunitarios. https://discord.gg/zSq8rtW
Hoja de ruta
Última actualización: 2024-10-30
Terminado
Se reemplazó qsort() con std::sort() durante el entrenamiento.
Se eliminaron check_mistakes, getchar() y system().
Migré Darknet al compilador de C++ (g++ en Linux, VisualStudio en Windows).
Problemas de compilación de Windows resueltos.
Se ha vuelto a habilitar la compatibilidad con Python.
Construyó la biblioteca Darknet.
Etiquetas de predicción reactivadas (código "alfabeto").
Código CUDA/GPU rehabilitado.
CUDNN rehabilitado.
Se volvió a habilitar la mitad CUDNN.
Se eliminó la arquitectura CUDA codificada.
Información de versión CUDA mejorada.
AVX rehabilitado.
Se eliminaron soluciones antiguas y Makefile.
Hizo de OpenCV una dependencia no opcional.
Se eliminó la dependencia de la antigua biblioteca pthread.
STB eliminado.
CMakeLists.txt reescrito para utilizar la nueva detección CUDA.
Se eliminó el antiguo código "alfabeto" y se eliminaron más de 700 imágenes en datos/etiquetas.
Habilitación de la construcción fuera de fuente.
Salida de número de versión mejorada.
Implementé optimizaciones de rendimiento relacionadas con la capacitación (continua).
Implementé optimizaciones de rendimiento relacionadas con la inferencia (en curso).
Pasado por referencia empleado cuando corresponda.
Se limpiaron archivos .hpp.
Darknet.h reescrito.
Se evitó convertir cv::Mat a void* y lo usó como un objeto C++ adecuado.
Se solucionaron inconsistencias en el uso de la estructura de imágenes internas.
Compilación fija para dispositivos Jetson basados en ARM.
Los nuevos dispositivos Jetson Orin son funcionales.
Se resolvieron problemas de la API de Python en V3.
Metas a corto plazo
Cambie printf() con std::cout (en progreso).
Investiga el antiguo soporte de la cámara Zed.
Mejorar el análisis de la línea de comandos para lograr coherencia (en progreso).
Metas a mediano plazo
Elimine todo el código char* y reemplácelo con std::string.
Elimine las advertencias ocultas y aborde las advertencias del compilador (en progreso).
Mejorar el uso de cv::Mat en lugar de la estructura de imagen C personalizada (en progreso).
Reemplace la funcionalidad de lista anterior con std::vector o std::list.
Se corrigió la compatibilidad con imágenes en escala de grises de 1 canal.
Agregue soporte para imágenes de canales N donde N > 3 (por ejemplo, imágenes con canales térmicos o de profundidad).
Continuar con la limpieza de código en curso (en progreso).
Metas a largo plazo
Solucione los problemas de CUDA/CUDNN en todas las GPU.
Reescribe el código CUDA+cuDNN.
Explore la compatibilidad con GPU que no sean NVIDIA.
Implemente cuadros delimitadores rotados o soporte en ángulo.
Introduzca puntos clave/esqueletos.
Agregue soporte para mapas de calor (en progreso).
Incorporar la segmentación.