Gatling
O que é Gatling:
Gatling é uma poderosa ferramenta de teste de carga de código aberto projetada para desempenho e confiabilidade. Ele oferece uma solução abrangente para simular o comportamento real do usuário e medir o desempenho de seus aplicativos sob estresse.
Motivação
Gatling permite que você:
1. Entenda os limites do seu aplicativo: identifique gargalos e problemas de desempenho antes que eles afetem seus usuários.
2. Melhore a experiência do usuário: garanta que seu aplicativo possa lidar com picos de tráfego e oferecer desempenho suave para todos os usuários.
3. Obtenha insights valiosos: analise os resultados dos testes para otimizar o desempenho, a escalabilidade e a confiabilidade do seu aplicativo.
Dúvidas, ajuda?
Para obter ajuda e suporte, você pode:
1. Consulte a documentação oficial: Explore tutoriais detalhados, guias e referências de API.
2. Participe do Fórum da Comunidade Gatling: Conecte-se com outros usuários, compartilhe experiências e busque conselhos.
3. Relatar problemas: Se você encontrar um bug, levante um problema no repositório oficial do Gatling GitHub.
Parceiros
Gatling colabora com vários parceiros para fornecer soluções abrangentes de testes de carga. Explore o ecossistema de parceiros para integrações especializadas e serviços de suporte.
Estrutura de detecção de objetos Darknet e YOLO
Darknet é uma estrutura de rede neural de código aberto escrita em C, C++ e CUDA, conhecida por sua velocidade e eficiência.
YOLO (You Only Look Once) é um sistema de detecção de objetos em tempo real de última geração que se integra perfeitamente à estrutura Darknet.
Explore o ecossistema Darknet/YOLO:
1. A contribuição de Hank.ai: Descubra como Hank.ai está contribuindo ativamente para a comunidade Darknet/YOLO.
2. Site oficial: Acesse as informações, recursos e notícias mais recentes no site Darknet/YOLO.
3. Perguntas frequentes abrangentes: Encontre respostas para perguntas frequentes sobre Darknet/YOLO.
4. Junte-se ao servidor Discord: Conecte-se com outros entusiastas do Darknet/YOLO, discuta ideias e obtenha suporte.
Artigos
1. YOLOv7: Explore os avanços mais recentes no YOLOv7.
2. Scaled-YOLOv4: Mergulhe na arquitetura Scaled-YOLOv4 e em suas melhorias de desempenho.
3. YOLOv4: Entenda os principais recursos e inovações do YOLOv4.
4. YOLOv3: Aprenda sobre as origens do YOLO e os princípios fundamentais do YOLOv3.
Informações gerais
A estrutura Darknet/YOLO supera consistentemente outras estruturas e versões YOLO em termos de velocidade e precisão.
É totalmente gratuito e de código aberto, permitindo integrá-lo em seus projetos e produtos sem restrições de licenciamento.
Darknet V3 “Jazz”, lançado em outubro de 2024, atinge desempenho notável, processando vídeos de conjuntos de dados LEGO a até 1000 FPS usando uma GPU NVIDIA RTX 3090.
Versão Darknet
1. Versão 0.x: A ferramenta Darknet original desenvolvida por Joseph Redmon de 2013-2017.
2. Versão 1.x: O popular repositório Darknet mantido por Alexey Bochkovskiy entre 2017-2021.
3. Versão 2.x "OAK": O repositório Darknet patrocinado por Hank.ai e mantido por Stéphane Charette a partir de 2023. Ele introduziu numeração de versão e trouxe melhorias significativas, incluindo:
- Processo de construção unificado usando CMake para Windows e Linux.
- Conversão de codebase para compilador C++.
- Melhor visualização do chart.png durante o treinamento.
- Correções de bugs e otimizações de desempenho.
4. Versão 2.1: A última ramificação da versão 2.x, disponível na ramificação v2.
5. Versão 3.x "JAZZ": A versão mais recente lançada em outubro de 2024, apresentando:
- Removido comandos legados e não mantidos.
- Extensas otimizações de desempenho para treinamento e inferência.
- API C legada modificada.
- Nova API Darknet V3 C e C++.
- Código de amostra expandido e aplicativos em exemplos src.
Pesos pré-treinados MSCOCO
Várias versões populares do YOLO são pré-treinadas no conjunto de dados MSCOCO, fornecendo 80 classes de objetos listadas no arquivo cfg/coco.names.
Outros conjuntos de dados e pesos pré-treinados estão disponíveis para teste, incluindo:
Engrenagens LEGO
Rolodex
Baixe os pesos pré-treinados do MSCOCO de vários locais, incluindo este repositório:
| Versão | Minúsculo | Completo |
|---|---|---|
| YOLOv2 (novembro de 2016) | yolov2-tiny.pesos | yolov2-full.pesos |
| YOLOv3 (maio de 2018) | yolov3-tiny.pesos | yolov3-full.pesos |
| YOLOv4 (maio de 2020) | yolov4-tiny.pesos | yolov4-full.pesos |
| YOLOv7 (agosto de 2022) | yolov7-tiny.pesos | yolov7-full.pesos |
Exemplos usando pesos pré-treinados 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.names yolov4-tiny.cfg yolov4-tiny.weights image1.jpg
DarkHelp coco.names yolov4-tiny.cfg yolov4-tiny.weights video1.avi
Lembre-se de que os usuários são incentivados a treinar suas próprias redes e o MSCOCO serve principalmente para testes.
Prédio
Darknet requer C++17 ou mais recente, OpenCV, e usa CMake para automação de construção.
Nota importante: Estas instruções foram atualizadas para a construção do Darknet após agosto de 2023. Se você encontrar problemas ao seguir tutoriais mais antigos, consulte este README para obter as etapas de construção mais recentes.
Google Colab
Siga as instruções do Linux abaixo. Explore os notebooks Jupyter no subdiretório colab para tarefas específicas, como treinamento.
Método Linux CMake
1. Instale as dependências necessárias:
- sudo apt-get install build-essential git libopencv-dev cmake
2. Clone o repositório Darknet:
- mkdir ~/srccd ~/src git clone https://github.com/hank-ai/darknet
3. Crie um diretório de construção:
-cd darknet mkdir buildcd compilação
4. Configure e construa Darknet:
- cmake -DCMAKEBUILDTYPE=Liberar ..
- pacote make -j4
5. Instale o pacote .deb:
- sudo dpkg -i darknet-VERSION.deb
6. Verifique a instalação:
- versão darknet
Opcional: Instale CUDA ou CUDA+cuDNN para aceleração de GPU:
1. Baixe e instale o CUDA:
- https://developer.nvidia.com/cuda-downloads
2. Baixe e instale o 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 a instalação do CUDA:
-nvcc
- nvidia-smi
4. Reconstrua Darknet:
- cmake -DCMAKEBUILDTYPE=Liberar ..
- pacote make -j4
5. Instale o pacote .deb atualizado:
- sudo dpkg -i darknet-VERSION.deb
Método CMake do Windows
1. Instale as dependências necessárias:
- winget instalar Git.Git
- winget instalar Kitware.CMake
- winget instalar nsis.nsis
- instale o Microsoft.VisualStudio.2022.Community
2. Modifique a instalação do Visual Studio:
- Abra o "Instalador do Visual Studio".
- Selecione "Modificar".
- Escolha "Desenvolvimento de desktop com C++".
- Clique em “Modificar” e “Sim”.
3. Instale o Microsoft VCPKG:
- Abra o prompt de comando do desenvolvedor para VS 2022 (não 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. Clone o repositório Darknet:
-cd c:src git clone https://github.com/hank-ai/darknet.gitcd darknet
5. Crie um diretório de construção:
- compilação mkdir buildcd
6. Configure e construa Darknet:
- cmake -DCMAKEBUILDTYPE=Liberar -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=Liberar PACKAGE.vcxproj
7. Copie DLLs CUDA, se necessário:
- Se você encontrar erros de DLL CUDA ausentes, copie-os para o diretório de saída:
- copie "C:Arquivos de programasNVIDIA GPU Computing ToolkitCUDAv12.2bin*.dll" src-cliRelease
8. Execute novamente o msbuild para gerar o pacote de instalação do NSIS:
- msbuild.exe /property:Platform=x64;Configuration=Liberar PACKAGE.vcxproj
9. Execute o assistente de instalação do NSIS:
- darknet-VERSION.exe
10. Verifique a instalação:
- C:Arquivos de programasDarknetbindarknet.exe versão
Opcional: Instale CUDA ou CUDA+cuDNN para aceleração de GPU:
1. Baixe e instale o CUDA:
- https://developer.nvidia.com/cuda-downloads
2. Baixe e instale o cuDNN:
- https://developer.nvidia.com/rdp/cudnn-download
- https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#download-windows
3. Descompacte cuDNN e copie os diretórios:
- C:/Arquivos de programas/NVIDIA GPU Computing Toolkit/CUDA/[versão]
4. Reconstrua Darknet:
- Repita as etapas 6 a 8 após instalar o CUDA.
Usando Darknet
CLI
Comandos:
ajuda darknet
versão darknet
Previsão de imagem:
V2: teste de detector darknet cars.data cars.cfg cars_best.weights image1.jpg
V3: darknet02displayannotatedimages cars.cfg image1.jpg
DarkHelp: DarkHelp cars.cfg cars.cfg cars_best.weights image1.jpg
Coordenadas de saída:
V2: teste de detector darknet Animals.data Animals.cfg Animalsbest.weights -extoutput dog.jpg
V3: darknet01inference_images animais cachorro.jpg
DarkHelp: DarkHelp --json animais.cfg animais.nomes animais_best.pesos cachorro.jpg
Processamento de vídeo:
V2: demonstração do detector darknet animais.dados animais.cfg animaisbest.weights -extoutput test.mp4
V3: darknet03display_videos animais.cfg teste.mp4
DarkHelp: DarkHelp animais.cfg animais.nomes animais_best.pesos teste.mp4
Webcam:
V2: demonstração do detector darknet Animals.data Animals.cfg Animals_best.weights -c 0
V3: animais darknet08display_webcam
Salvando resultados em vídeo:
V2: demonstração do detector darknet animais.dados animais.cfg animaismelhores.pesos teste.mp4 -outfilename res.avi
V3: darknet05processvideosanimais multithreaded.cfg animais.nomes animais_best.teste de pesos.mp4
DarkHelp: DarkHelp animais.cfg animais.nomes animais_best.pesos teste.mp4
Saída JSON:
V2: demonstração do detector darknet animais.dados animais.cfg animaisbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
V3: darknet06imagestojson animais image1.jpg
DarkHelp: DarkHelp --json animais.nomes animais.cfg animais_best.pesos image1.jpg
GPU específica:
V2: demonstração do detector darknet Animals.data Animals.cfg Animals_best.weights -i 1 test.mp4
Precisão:
mapa do detector darknet driving.data driving.cfg driving_best.weights ...
mapa detector darknet animais.dados animais.cfg animaisbest.weights -iouthresh 0,75
Âncoras:
detector darknet calcanchors animais.data -numof_clusters 6 -largura 320 -altura 256
Treinamento
DarkMark: Utilize o DarkMark para anotação e treinamento. É a abordagem recomendada para treinar novas redes neurais.
Configuração manual:
1. Crie um diretório de projeto: Por exemplo, ~/nn/animals/.
2. Copie um arquivo de configuração: cfg/yolov4-tiny.cfg
3. Crie um arquivo pets.names: Liste as classes (uma por linha) como:
- cachorro
- gato
- pássaro
- cavalo
4. Crie um arquivo pets.data:
- aulas = 4
- trem = /home/nomedeusuário/nn/animals/animals_train.txt
- válido = /home/nomedeusuário/nn/animals/animals_valid.txt
- nomes = /home/nomedeusuário/nn/animais/animais.nomes
- backup = /home/nomedeusuário/nn/animais
5. Crie uma pasta de conjunto de dados: Armazene imagens e arquivos de anotação correspondentes (.txt) no formato YOLO.
6. Crie Animalstrain.txt e Animalsvalid.txt: Liste imagens para treinamento e validação.
7. Modifique animais.cfg:
- lote = 64
- subdivisões = 1
- max_batches = 8.000 (4 classes * 2.000)
- passos = 6400,7200
- largura = ...
- altura = ...
- aulas = 4
- Atualize os valores dos filtros (por exemplo, (4 + 5) * 3 = 27).
8. Comece o treinamento: cd ~/nn/animals/ darknet detector -map -dont_show train Animals.data Animals.cfg
Parâmetros de treinamento:
--verbose para saída detalhada
Outras ferramentas e links
DarkMark: gerenciamento de projetos, anotação de imagens e geração de arquivos para Darknet.
DarkHelp: CLI alternativa, mosaico de imagens, rastreamento de objetos e API C++ robusta.
Darknet/YOLO FAQ: extenso recurso para perguntas comuns.
Canal de Stéphane no YouTube: tutoriais e vídeos de exemplo.
Servidor Darknet/YOLO Discord: Suporte e discussões da comunidade.
Roteiro
Concluído:
std::sort() para qsort() durante o treinamento
Remoção de check_mistakes, getchar() e system()
Suporte ao compilador C++ (g++ no Linux, VisualStudio no Windows)
Correção de compilação do Windows
Correção de suporte Python
Construção da biblioteca Darknet
Rótulos em previsões (código "alfabeto")
Reativação do código CUDA/GPU
CUDNN reativar
CUDNN meio reativado
Arquitetura CUDA não codificada
Informações aprimoradas sobre a versão CUDA
Reativar AVX
Remoção de soluções antigas e Makefile
OpenCV como uma dependência não opcional
Remoção da antiga dependência da biblioteca pthread
Remoção de STB
Reescrita de CMakeLists.txt para nova detecção de CUDA
Remoção de código "alfabeto" e imagens de dados/rótulos
Compilação fora do código-fonte
Saída de número de versão aprimorada
Otimizações de desempenho para treinamento e inferência
Passagem por referência sempre que possível
Arquivos .hpp limpos
Darknet.h reescrito
cv::Mat uso em vez de void* casting
Correções no uso da estrutura interna da imagem
Correção de compilação para dispositivos Jetson baseados em ARM
Correção da API Python na V3
Metas de curto prazo:
std::cout para printf()
Suporte para câmera Zed
Análise de linha de comando aprimorada
Metas de médio prazo:
Remoção do código char* em favor de std::string
Limpeza de aviso do compilador
Uso aprimorado de cv::Mat
Substituição da funcionalidade de lista antiga por std::vector ou std::list
Suporte para imagens em tons de cinza de 1 canal
Suporte para imagens de canal N (N > 3)
Limpeza contínua de código
Metas de longo prazo:
Correções CUDA/CUDNN para todas as GPUs
Reescrita de código CUDA + cuDNN
Suporte para GPU não NVIDIA
Caixas delimitadoras giradas e suporte de ângulo
Pontos-chave e esqueletos
Mapas de calor
Segmentação