gatito
¿Qué es Gatling?
Gatling es una poderosa herramienta de prueba de carga de código abierto diseñada para brindar rendimiento y confiabilidad. Ofrece una solución integral para simular el comportamiento real del usuario y medir el rendimiento de sus aplicaciones bajo estrés.
Motivación
Gatling te permite:
1. Comprenda los límites de su aplicación: identifique cuellos de botella y problemas de rendimiento antes de que afecten a sus usuarios.
2. Mejore la experiencia del usuario: asegúrese de que su aplicación pueda manejar el tráfico máximo y ofrecer un rendimiento fluido para todos los usuarios.
3. Obtenga información valiosa: analice los resultados de las pruebas para optimizar el rendimiento, la escalabilidad y la confiabilidad de su aplicación.
Preguntas, ¿Ayuda?
Para obtener ayuda y soporte, puede:
1. Consulte la documentación oficial: explore tutoriales detallados, guías y referencias de API.
2. Únase al foro de la comunidad Gatling: conéctese con otros usuarios, comparta experiencias y busque consejos.
3. Informar problemas: si encuentra un error, plantéelo en el repositorio oficial de Gatling GitHub.
Fogonadura
Gatling colabora con varios socios para proporcionar soluciones integrales de prueba de carga. Explore el ecosistema de socios para integraciones especializadas y servicios de soporte.
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, reconocido por su velocidad y eficiencia.
YOLO (Solo miras una vez) es un sistema de detección de objetos en tiempo real de última generación que se integra perfectamente con el marco Darknet.
Explore el ecosistema Darknet/YOLO:
1. Contribución de Hank.ai: descubra cómo Hank.ai contribuye activamente a la comunidad Darknet/YOLO.
2. Sitio web oficial: acceda a la información, los recursos y las noticias más recientes en el sitio web Darknet/YOLO.
3. Preguntas frecuentes completas: encuentre respuestas a preguntas frecuentes sobre Darknet/YOLO.
4. Únase al servidor de Discord: conéctese con otros entusiastas de Darknet/YOLO, analice ideas y obtenga ayuda.
Papeles
1. YOLOv7: explora los últimos avances en YOLOv7.
2. Scaled-YOLOv4: Sumérgete en la arquitectura Scaled-YOLOv4 y sus mejoras de rendimiento.
3. YOLOv4: comprenda las características e innovaciones clave de YOLOv4.
4. YOLOv3: conozca los orígenes de YOLO y los principios fundamentales de YOLOv3.
Información general
El marco Darknet/YOLO supera consistentemente a otros marcos y versiones de YOLO en términos de velocidad y precisión.
Es completamente gratuito y de código abierto, lo que le permite integrarlo en sus proyectos y productos sin restricciones de licencia.
Darknet V3 "Jazz", lanzado en octubre de 2024, logra un rendimiento notable al procesar videos de conjuntos de datos LEGO a hasta 1000 FPS utilizando una GPU NVIDIA RTX 3090.
Versión de la red oscura
1. Versión 0.x: la herramienta Darknet original desarrollada por Joseph Redmon entre 2013 y 2017.
2. Versión 1.x: el popular repositorio Darknet mantenido por Alexey Bochkovskiy entre 2017 y 2021.
3. Versión 2.x "OAK": el repositorio Darknet patrocinado por Hank.ai y mantenido por Stéphane Charette a partir de 2023. Introdujo la numeración de versiones y trajo mejoras significativas, que incluyen:
- Proceso de compilación unificado usando CMake para Windows y Linux.
- Conversión de código base a compilador C++.
- Visualización mejorada de chart.png durante el entrenamiento.
- Corrección de errores y optimizaciones de rendimiento.
4. Versión 2.1: la última rama de la versión 2.x, disponible en la rama v2.
5. Versión 3.x "JAZZ": la última versión lanzada en octubre de 2024, que incluye:
- Se eliminaron comandos heredados y no mantenidos.
- Amplias optimizaciones de rendimiento tanto para entrenamiento como para inferencia.
- API C heredada modificada.
- Nueva API Darknet V3 C y C++.
- Código de muestra ampliado y aplicaciones en src-examples.
Pesas preentrenadas MSCOCO
Varias versiones populares de YOLO están previamente entrenadas en el conjunto de datos MSCOCO, proporcionando 80 clases de objetos enumeradas en el archivo cfg/coco.names.
Hay otros conjuntos de datos y pesos previamente entrenados disponibles para pruebas, que incluyen:
Engranajes LEGO
Rolodex
Descargue los pesos previamente entrenados de MSCOCO desde varias ubicaciones, incluido este repositorio:
| Versión | Pequeño | Completo |
|---|---|---|
| YOLOv2 (noviembre de 2016) | yolov2-tiny.pesos | yolov2-pesos.completos |
| YOLOv3 (mayo de 2018) | yolov3-tiny.pesos | yolov3-pesos.completos |
| YOLOv4 (mayo de 2020) | yolov4-tiny.pesos | yolov4-pesos.completos |
| YOLOv7 (agosto de 2022) | yolov7-tiny.pesos | yolov7-pesos.completos |
Ejemplos que utilizan pesas previamente entrenadas con MSCOCO:
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
Recuerde que se anima a los usuarios a entrenar sus propias redes y MSCOCO es principalmente para pruebas.
Edificio
Darknet requiere C++ 17 o posterior, OpenCV y utiliza CMake para la automatización de la compilación.
Nota importante: estas instrucciones se actualizan para compilar Darknet después de agosto de 2023. Si tiene problemas al seguir tutoriales anteriores, consulte este LÉAME para conocer los pasos de compilación más recientes.
colaboración de google
Siga las instrucciones de Linux a continuación. Explore los cuadernos de Jupyter en el subdirectorio colab para tareas específicas como capacitación.
Método CMake de Linux
1. Instale las dependencias necesarias:
- sudo apt-get install build-essential git libopencv-dev cmake
2. Clonar el repositorio Darknet:
- mkdir ~/srccd ~/src git clone https://github.com/hank-ai/darknet
3. Cree un directorio de compilación:
- cd darknet mkdir buildcd construir
4. Configure y cree Darknet:
- cmake -DCMAKEBUILDTYPE=Lanzar ..
- crear el paquete -j4
5. Instale el paquete .deb:
- sudo dpkg -i darknet-VERSION.deb
6. Verifique la instalación:
- versión de la red oscura
Opcional: instale CUDA o CUDA+cuDNN para aceleración de GPU:
1. Descargue e instale CUDA:
- https://developer.nvidia.com/cuda-downloads
2. Descargue e instale cuDNN:
- https://developer.nvidia.com/rdp/cudnn-download
- https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#cudnn-package-manager-installation-overview
3. Verifique la instalación de CUDA:
- nvcc
-nvidia-smi
4. Reconstruir Darknet:
- cmake -DCMAKEBUILDTYPE=Lanzar ..
- crear el paquete -j4
5. Instale el paquete .deb actualizado:
- sudo dpkg -i darknet-VERSION.deb
Método CMake de Windows
1. Instale las dependencias necesarias:
- Winget instala Git.Git
- Instalación de Winget Kitware.CMake
- Winget instala nsis.nsis
- Instale Microsoft.VisualStudio.2022.Community
2. Modifique la instalación de Visual Studio:
- Abra el "Instalador de Visual Studio".
- Seleccione "Modificar".
- Elija "Desarrollo de escritorio con C++".
- Haga clic en "Modificar" y "Sí".
3. Instale Microsoft VCPKG:
- Abra el símbolo del sistema del desarrollador para VS 2022 (no PowerShell).
- cd c:mkdir c:srccd c:src git clone https://github.com/microsoft/vcpkgcd vcpkg bootstrap-vcpkg.bat .vcpkg.exe integrar instalar .vcpkg.exe integrar powershell.vcpkg.exe instalar opencv[contrib ,dnn,freetype,jpeg,openmp,png,webp,mundo]:x64-windows
4. Clona el repositorio Darknet:
- cd c:src git clon https://github.com/hank-ai/darknet.gitcd darknet
5. Cree un directorio de compilación:
- mkdir buildcd construir
6. Configurar y construir Darknet:
- 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=Release PACKAGE.vcxproj
7. Copie las DLL de CUDA si es necesario:
- Si encuentra errores de DLL CUDA que faltan, cópielos al directorio de salida:
- copie "C:Archivos de programaNVIDIA GPU Computing ToolkitCUDAv12.2bin*.dll" src-cliRelease
8. Vuelva a ejecutar msbuild para generar el paquete de instalación de NSIS:
- msbuild.exe /property:Platform=x64;Configuration=Release PACKAGE.vcxproj
9. Ejecute el asistente de instalación de NSIS:
- darknet-VERSIÓN.exe
10. Verificar la instalación:
- C: Archivos de programa Darknetbindarknet.exe versión
Opcional: instale CUDA o CUDA+cuDNN para aceleración de GPU:
1. Descargue e instale CUDA:
- https://developer.nvidia.com/cuda-downloads
2. Descargue e instale cuDNN:
- https://developer.nvidia.com/rdp/cudnn-download
- https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#download-windows
3. Descomprima cuDNN y copie los directorios:
- C:/Archivos de programa/NVIDIA GPU Computing Toolkit/CUDA/[versión]
4. Reconstruir Darknet:
- Repita los pasos 6-8 después de instalar CUDA.
Usando la red oscura
CLI
Comandos:
ayuda de la red oscura
versión de la red oscura
Predicción de imagen:
V2: prueba del detector de red oscura cars.data cars.cfg cars_best.weights image1.jpg
V3: darknet02displayannotatedimages cars.cfg image1.jpg
DarkHelp: DarkHelp cars.cfg cars.cfg cars_best.weights imagen1.jpg
Coordenadas de salida:
V2: prueba del detector de red oscura animales.datos animales.cfg animalesbest.weights -extoutput dog.jpg
V3: darknet01inference_images animales perro.jpg
DarkHelp: DarkHelp --json animales.cfg animales.nombres animales_mejores.pesos perro.jpg
Procesamiento de vídeo:
V2: demostración del detector de red oscura animales.datos animales.cfg animalesbest.weights -extoutput test.mp4
V3: darknet03display_videos animales.cfg prueba.mp4
DarkHelp: DarkHelp animales.cfg animales.nombres animales_mejores.pesos prueba.mp4
Cámara web:
V2: demostración del detector de red oscura animales.data animales.cfg animales_best.weights -c 0
V3: darknet08display_webcam animales
Guardar resultados en vídeo:
V2: demostración del detector de red oscura animales.datos animales.cfg animalesbest.pesos prueba.mp4 -outfilename res.avi
V3: darknet05processvideosmultithreaded animales.cfg animales.nombres animales_mejores.pesos prueba.mp4
DarkHelp: DarkHelp animales.cfg animales.nombres animales_mejores.pesos prueba.mp4
Salida JSON:
V2: demostración del detector de red oscura animales.datos animales.cfg animalesbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
V3: darknet06imagestojson animales image1.jpg
DarkHelp: DarkHelp --json animales.nombres animales.cfg animales_mejor.pesos imagen1.jpg
GPU específica:
V2: demostración del detector de red oscura animales.data animales.cfg animales_best.weights -i 1 test.mp4
Exactitud:
Mapa del detector de darknet conducción.datos conducción.cfg conducción_mejor.pesos...
Mapa del detector de darknet animales.datos animales.cfg animalesbest.weights -iouthresh 0,75
Anclas:
detector de red oscura calcanchors animales.data -numof_clusters 6 -ancho 320 -alto 256
Capacitación
DarkMark: utilice DarkMark para anotaciones y entrenamiento. Es el enfoque recomendado para entrenar nuevas redes neuronales.
Configuración manual:
1. Cree un directorio de proyecto: por ejemplo, ~/nn/animals/.
2. Copie un archivo de configuración: cfg/yolov4-tiny.cfg
3. Cree un archivo animales.names: enumere clases (una por línea) como:
- perro
- gato
- pájaro
- caballo
4. Cree un archivo animales.data:
- 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.names
- copia de seguridad = /home/nombre de usuario/nn/animals
5. Cree una carpeta de conjunto de datos: almacene imágenes y archivos de anotaciones correspondientes (.txt) en formato YOLO.
6. Cree animalestrain.txt y animalesvalid.txt: enumere imágenes para entrenamiento y validación.
7. Modificar animales.cfg:
- lote = 64
- subdivisiones = 1
- max_batches = 8000 (4 clases * 2000)
- pasos = 6400,7200
- ancho =...
- altura =...
- clases = 4
- Actualizar valores de filtros (por ejemplo, (4 + 5) * 3 = 27).
8. Inicie el entrenamiento: cd ~/nn/animals/ darknet detector -map -dont_show train animales.data animales.cfg
Parámetros de entrenamiento:
--verbose para una salida detallada
Otras herramientas y enlaces
DarkMark: Gestión de proyectos, anotación de imágenes y generación de archivos para Darknet.
DarkHelp: CLI alternativa, mosaico de imágenes, seguimiento de objetos y API C++ robusta.
Preguntas frecuentes sobre Darknet/YOLO: recurso extenso para preguntas comunes.
Canal de YouTube de Stéphane: tutoriales y vídeos de ejemplo.
Servidor Darknet/YOLO Discord: soporte y debates de la comunidad.
Hoja de ruta
Terminado:
std::sort() para qsort() durante el entrenamiento
Eliminación de check_mistakes, getchar() y system()
Compatibilidad con el compilador C++ (g++ en Linux, VisualStudio en Windows)
Corrección de compilación de Windows
Corrección de soporte de Python
Construcción de la biblioteca Darknet
Etiquetas en las predicciones (código "alfabeto")
Reactivación del código CUDA/GPU
Reactivar CUDNN
CUDNN medio rehabilitado
Arquitectura CUDA no codificada
Información de versión CUDA mejorada
AVX volver a habilitar
Eliminación de soluciones antiguas y Makefile.
OpenCV como dependencia no opcional
Eliminación de la antigua dependencia de la biblioteca pthread
Eliminación de STB
Reescritura de CMakeLists.txt para nueva detección de CUDA
Eliminación de código "alfabeto" e imágenes de datos/etiquetas
Construcción fuera de fuente
Salida de número de versión mejorada
Optimizaciones de rendimiento para entrenamiento e inferencia.
Pase por referencia cuando sea posible
Archivos .hpp limpios
Darknet.h reescrito
cv::Uso de tapete en lugar de casting void*
Correcciones al uso de la estructura de imagen interna.
Corrección de compilación para dispositivos Jetson basados en ARM
Corrección de la API de Python en V3
Metas a corto plazo:
std::cout para printf()
Soporte de cámara Zed
Análisis de línea de comando mejorado
Metas a mediano plazo:
Eliminación del código char* a favor de std::string
Limpieza de advertencia del compilador
Uso mejorado de cv::Mat
Reemplazo de la funcionalidad de lista anterior con std::vector o std::list
Soporte para imágenes en escala de grises de 1 canal
Soporte para imágenes de canal N (N > 3)
Limpieza de código continua
Metas a largo plazo:
Correcciones CUDA/CUDNN para todas las GPU
Reescritura de código CUDA+cuDNN
Compatibilidad con GPU que no son NVIDIA
Cuadros delimitadores girados y soporte de ángulo
Puntos clave y esqueletos
Mapas de calor
Segmentación