Ansible
Ansible é um sistema de automação de TI extremamente simples. Ele lida habilmente com gerenciamento de configuração, implantação de aplicativos, provisionamento de nuvem, execução de tarefas ad-hoc, automação de rede e orquestração de vários nós. O Ansible permite que você execute alterações complexas sem esforço, como atualizações contínuas sem tempo de inatividade com balanceadores de carga. Mergulhe mais fundo nos recursos do Ansible em seu site oficial.
Princípios de Design
1. Utilize Ansible
Você pode instalar perfeitamente uma versão lançada do Ansible usando pip ou seu gerenciador de pacotes preferido. Consulte nosso guia de instalação detalhado para obter instruções abrangentes em diversas plataformas.
2. Capacite usuários avançados e desenvolvedores
Para usuários e desenvolvedores avançados, o branch devel fornece acesso aos recursos e correções mais recentes. Embora geralmente estável, é importante reconhecer o potencial de alterações significativas ao utilizar este branch. É altamente recomendável envolver-se com a comunidade Ansible se você optar por trabalhar com o ramo de desenvolvimento.
Comunicação
Participe do vibrante fórum Ansible para interagir com a comunidade, buscar assistência e fazer perguntas. Para canais de comunicação adicionais, explore nosso guia dedicado sobre Conexão com a comunidade Ansible.
Contribua com o Ansible
Diretrizes de codificação
Documentamos meticulosamente nossas diretrizes de codificação no Guia do desenvolvedor. Recomendamos fortemente que você revise as seguintes seções:
1. Informações da filial
2. Roteiro
Com base no feedback valioso da equipe e da comunidade, um roteiro inicial é publicado para cada versão principal ou secundária (por exemplo, 2.7, 2.8). A página Ansible Roadmap descreve nossos planos e fornece caminhos para influenciar nossa direção.
Autores
O Ansible foi originalmente concebido por Michael DeHaan e se beneficiou das contribuições de mais de 5.000 usuários (e continua aumentando). Obrigado a todos que contribuíram!
Ansible é orgulhosamente patrocinado pela Red Hat, Inc.
Licença
Licença Pública Geral GNU v3.0 ou posterior. Consulte COPIANDO para obter o texto completo da licença.
Estrutura de detecção de objetos Darknet e YOLO
Logotipos !darknet e hank.ai
Darknet é uma estrutura de rede neural de código aberto desenvolvida em C, C++ e CUDA.
YOLO (You Only Look Once) representa um sistema de detecção de objetos em tempo real de última geração que opera dentro da estrutura Darknet.
Descubra como Hank.ai está contribuindo para a comunidade Darknet/YOLO: https://darknetcv.ai/
Explore o site oficial Darknet/YOLO: https://pjreddie.com/darknet/
Consulte as perguntas frequentes abrangentes sobre Darknet/YOLO: https://pjreddie.com/darknet/yolo/
Junte-se ao servidor Darknet/YOLO Discord ativo: https://discord.gg/zSq8rtW
Artigos
1. Artigo YOLOv7: https://arxiv.org/abs/2207.02696
2. Artigo Scaled-YOLOv4: https://arxiv.org/abs/2102.12074
3. Artigo YOLOv4: https://arxiv.org/abs/2004.10934
4. Artigo YOLOv3: https://arxiv.org/abs/1804.02769
Informações gerais
A estrutura Darknet/YOLO continua a superar outras estruturas e versões do YOLO em velocidade e precisão.
Sua total liberdade e natureza de código aberto permitem integrar perfeitamente Darknet/YOLO em projetos e produtos existentes, inclusive comerciais, sem restrições de licenciamento ou taxas.
Darknet V3 ("Jazz"), lançado em outubro de 2024, demonstra sua habilidade ao processar os vídeos do conjunto de dados LEGO a impressionantes 1000 FPS ao utilizar uma GPU NVIDIA RTX 3090. Isto equivale a um tempo de processamento de 1 milissegundo ou menos para cada quadro de vídeo, demonstrando uma eficiência excepcional.
Para qualquer assistência ou discussões relacionadas ao Darknet/YOLO, junte-se ao servidor Discord dedicado: https://discord.gg/zSq8rtW.
A versão CPU do Darknet/YOLO é adaptável a vários dispositivos, incluindo Raspberry Pi, servidores em nuvem e colab, desktops, laptops e equipamentos de treinamento de última geração. A versão GPU do Darknet/YOLO requer uma GPU compatível com CUDA da NVIDIA.
Darknet/YOLO foi validado para funcionar perfeitamente em sistemas operacionais Linux, Windows e Mac. Consulte as instruções de construção descritas abaixo.
Versão Darknet
A ferramenta Darknet original, desenvolvida por Joseph Redmon entre 2013 e 2017, não tinha número de versão. Consideramos que esta é a versão 0.x.
O popular repositório Darknet subsequente, mantido por Alexey Bochkovskiy de 2017 a 2021, também não tinha um número de versão. Nós categorizamos isso como versão 1.x.
O repositório Darknet, patrocinado por Hank.ai e gerenciado por Stéphane Charette a partir de 2023, introduziu pela primeira vez um comando de versão. De 2023 até o final de 2024, retornou a versão 2.x "OAK".
Os objetivos de desenvolvimento centravam-se em minimizar a interrupção das funcionalidades existentes e, ao mesmo tempo, nos familiarizarmos com a base de código.
Principais melhorias na versão 2.x:
1. Processo de construção unificado: reescreveu as etapas de construção para uma abordagem unificada usando CMake no Windows e no Linux.
2. Transição C++: Converteu a base de código para aproveitar o compilador C++.
3. Visualização de treinamento aprimorada: visualização melhorada do chart.png durante o treinamento.
4. Otimizações de desempenho: Resolvidos bugs e implementadas otimizações relacionadas ao desempenho, focadas principalmente na redução do tempo de treinamento.
A versão 2.1 representa o branch final desta base de código, disponível no branch v2.
A próxima etapa de desenvolvimento começou em meados de 2024 e culminou com o lançamento da versão 3.x "JAZZ" em outubro de 2024.
Você mantém a opção de fazer check-out da ramificação v2 anterior se precisar de acesso a comandos específicos dessa versão. Se você encontrar algum comando faltando, avise-nos para investigação e possível reintegração.
Mudanças significativas na versão 3.x:
1. Remoção de comandos: vários comandos desatualizados e sem manutenção foram removidos.
2. Desempenho aprimorado: implementamos amplas otimizações de desempenho, tanto durante o treinamento quanto durante a inferência.
3. Modificações na API: A API C legada sofreu modificações; aplicativos que dependem da API Darknet original precisarão de pequenos ajustes. Consulte a documentação atualizada para orientação: https://darknetcv.ai/api/api.html
4. Introdução à nova API: Introduzida uma nova API Darknet V3 C e C++: https://darknetcv.ai/api/api.html
5. Código de amostra expandido: novos aplicativos e código de amostra adicionados ao diretório src-examples: https://darknetcv.ai/api/files.html
Pesos pré-treinados MSCOCO
Para conveniência do usuário, várias versões populares do YOLO foram pré-treinadas no conjunto de dados MSCOCO. Este conjunto de dados abrange 80 classes, que podem ser encontradas no arquivo de texto cfg/coco.names.
Conjuntos de dados adicionais mais simples e pesos pré-treinados estão prontamente disponíveis para testar Darknet/YOLO, incluindo LEGO Gears e Rolodex. Para obter informações detalhadas, consulte as Perguntas frequentes da Darknet/YOLO.
Você pode obter os pesos pré-treinados do MSCOCO em vários locais, incluindo este repositório:
YOLOv2 (novembro de 2016):
yolov2-tiny
yolov2-completo
YOLOv3 (maio de 2018):
yolov3-tiny
yolov3-completo
YOLOv4 (maio de 2020):
yolov4-tiny
yolov4-completo
YOLOv7 (agosto de 2022):
yolov7-tiny
yolov7-completo
Os pesos pré-treinados da MSCOCO são fornecidos para fins de demonstração. Os arquivos .cfg e .names correspondentes para MSCOCO estão localizados no diretório cfg.
Comandos de exemplo:
`bash
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
`
É altamente recomendável treinar suas próprias redes. O MSCOCO normalmente é usado para garantir que a funcionalidade da estrutura esteja funcionando conforme o esperado.
Prédio
Os métodos de construção anteriores (pré-2023) foram consolidados em uma solução unificada. Darknet requer C++17 ou mais recente, OpenCV, e utiliza CMake para gerar os arquivos de projeto necessários.
Construir Darknet/YOLO não requer conhecimento em C++; análogo a dirigir um carro, você não precisa ser mecânico para utilizá-lo.
Os desenvolvedores de software são incentivados a visitar https://darknetcv.ai/ para obter informações sobre o funcionamento interno da estrutura de detecção de objetos Darknet/YOLO.
Google Colab
As instruções do Google Colab refletem as instruções do Linux. Vários notebooks Jupyter demonstram tarefas específicas, como treinar uma nova rede.
Explore os notebooks no subdiretório colab ou siga as instruções do Linux fornecidas abaixo.
Método Linux CMake
1. Software essencial:
Fundamentos da compilação: sudo apt-get install build-essential git libopencv-dev cmake
2. Clonagem de repositório:
Crie um diretório de origem: mkdir ~/srccd ~/src
Clone o repositório: git clone https://github.com/hank-ai/darknetcd darknet
3. Construir diretório:
Crie um diretório de compilação: mkdir buildcd build
4. Configuração do CMake:
Configure o CMake: cmake -DCMAKEBUILDTYPE=Liberar ..
5. Construir Darknet:
Construir: make -j4
6. Instalação do pacote:
Crie o pacote: pacote
Instale o pacote: sudo dpkg -i darknet-VERSION.deb
Opcional: instalação CUDA ou CUDA+cuDNN
Para processamento acelerado de imagem e vídeo, você pode instalar opcionalmente CUDA ou CUDA+cuDNN.
Instalação CUDA:
Visite https://developer.nvidia.com/cuda-downloads para baixar e instalar o CUDA.
Instalação do cuDNN:
Visite https://developer.nvidia.com/rdp/cudnn-download ou https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#cudnn-package-manager-installation-overview para fazer download e instale o cuDNN.
Instalação pós-CUDA:
Certifique-se de poder executar nvcc e nvidia-smi. Talvez seja necessário modificar sua variável PATH.
Atualizando CUDA ou CUDA+cuDNN:
Exclua o arquivo CMakeCache.txt do diretório de construção Darknet para forçar o CMake a reencontrar os arquivos necessários.
Reconstrua o Darknet.
Atualização da versão do CMake (se necessário):
Limpe o CMake existente: sudo apt-get purge cmake
Instale o CMake mais recente: sudo snap install cmake --classic
Reinicie seu shell (bash) ou certifique-se de que o novo caminho seja reconhecido (fish).
Usuários avançados:
Para construir um arquivo de instalação RPM em vez de DEB, modifique as linhas relevantes em CM_package.cmake. Antes de executar o pacote make -j4, ajuste as seguintes linhas:
`cmake
DEFINIR (CPACK_GENERATOR "DEB")
DEFINIR (CPACK_GENERATOR "RPM")
`
Para distribuições como CentOS e OpenSUSE, modifique estas linhas:
`cmake
DEFINIR (CPACK_GENERATOR "DEB")
DEFINIR (CPACK_GENERATOR "RPM")
`
Depois que o pacote de instalação for compilado, instale-o usando o gerenciador de pacotes da sua distribuição. Por exemplo, em sistemas baseados em Debian como Ubuntu:
`bash
sudo dpkg -i darknet-2.0.1-Linux.deb
`
Pós-instalação:
Os arquivos instalados incluem:
- /usr/bin/darknet: executável Darknet. Execute a versão darknet para confirmar a instalação.
- /usr/include/darknet.h: API Darknet para desenvolvedores C, C++ e Python.
- /usr/include/darknet_version.h: Informações de versão para desenvolvedores.
- /usr/lib/libdarknet.so: Biblioteca para vinculação em desenvolvimento C, C++ e Python.
- /opt/darknet/cfg/...: Localização de todos os modelos .cfg.
Darknet agora foi compilado e instalado com sucesso em /usr/bin/. Para verificar, execute a versão darknet.
Método CMake do Windows
1. Pré-requisitos:
Instale o seguinte usando Winget:
- Git: winget instala Git.Git
- CMake: winget instala Kitware.CMake
- NSIS: winget instalar nsis.nsis
- Comunidade do Visual Studio 2022: instalação winget Microsoft.VisualStudio.2022.Community
2. Configuração do Visual Studio:
Abra o “Visual Studio Installer” no menu Iniciar do Windows.
Clique em "Modificar".
Selecione "Desenvolvimento Desktop com C++".
Clique em “Modificar” no canto inferior direito e depois em “Sim”.
3. Prompt de comando do desenvolvedor:
Abra o menu “Iniciar do Windows” e selecione “Prompt de comando do desenvolvedor para VS 2022”. Não use o PowerShell para estas etapas.
4. Instalação do Microsoft VCPKG (para OpenCV):
Navegue até C::cd c:
Crie um diretório 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 instalação
Instale OpenCV (incluindo dependências): .vcpkg.exe install opencv[contrib,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
5. Opcional: Instalação CUDA ou CUDA+cuDNN (Windows)
Para processamento acelerado de imagem e vídeo, você pode instalar opcionalmente CUDA ou CUDA+cuDNN.
Instalação CUDA:
Visite https://developer.nvidia.com/cuda-downloads para baixar e instalar o CUDA.
Instalação do cuDNN:
Visite https://developer.nvidia.com/rdp/cudnn-download ou https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#download-windows para baixar e instalar o cuDNN.
Instalação pós-CUDA:
Certifique-se de que você pode executar o nvcc.exe. Talvez seja necessário modificar sua variável PATH.
Descompacte o cuDNN baixado e copie os diretórios bin, include e lib em C:/Arquivos de Programas/NVIDIA GPU Computing Toolkit/CUDA/[versão]/. Pode ser necessário substituir alguns arquivos.
Atualizando CUDA ou CUDA+cuDNN:
CUDA deve ser instalado após o Visual Studio. Reinstale o CUDA se você atualizar o Visual Studio.
6. Clonagem e construção de Darknet:
Navegue até o diretório de origem: cd c:src
Clone o repositório: git clone https://github.com/hank-ai/darknet.git
Crie um diretório de compilação: cd darknetmkdir build
Configure o CMake com VCPKG: cd build cmake -DCMAKEBUILDTYPE=Release -DCMAKETOOLCHAINFILE=C:/src/vcpkg/scripts/buildsystems/vcpkg.cmake ..
Crie a solução: msbuild.exe /property:Platform=x64;Configuration=Release /target:Build -maxCpuCount -verbosity:normal -detailedSummary darknet.sln
Gere o pacote de instalação do NSIS: msbuild.exe /property:Platform=x64;Configuration=Release PACKAGE.vcxproj
7. Tratamento de DLLs CUDA/cuDNN ausentes:
Se você encontrar erros sobre DLLs CUDA ou cuDNN ausentes (por exemplo, cublas64_12.dll), copie manualmente os arquivos .dll CUDA relevantes para o mesmo diretório de saída do Darknet.exe. Por exemplo:
`bash
copie "C:Arquivos de programasNVIDIA GPU Computing ToolkitCUDAv12.2bin*.dll" src-cliRelease
`
Ajuste o número da versão no comando para corresponder à sua instalação.
Execute novamente o comando msbuild.exe para gerar o pacote de instalação do NSIS.
Usuários avançados:
O comando cmake gera um arquivo de solução do Visual Studio (Darknet.sln). Se preferir a GUI do Visual Studio, você poderá carregar o projeto Darknet no Visual Studio em vez de usar ferramentas de linha de comando.
Verificação pós-construção:
Verifique se C:srcDarknetbuildsrc-cliReleasedarknet.exe existe. Execute a versão C:srcDarknetbuildsrc-cliReleasedarknet.exe para confirmar.
Instalação:
Execute o assistente de instalação do NSIS (por exemplo, darknet-VERSION.exe no diretório de construção) para instalar o Darknet, bibliotecas, incluir arquivos e DLLs necessárias.
Verificação pós-instalação:
Verifique se C:/Program Files/darknet/bin/darknet.exe existe. Execute a versão C:/Program Files/darknet/bindarknet.exe para confirmar.
Usando Darknet
CLI
Esta lista não abrange todos os comandos Darknet.
Além da CLI Darknet, considere usar a CLI do projeto DarkHelp, que oferece uma interface alternativa e mais avançada. Ambas as CLIs podem ser usadas juntas.
Para a maioria dos comandos, você precisará de um arquivo .weights junto com os arquivos .names e .cfg correspondentes. Você pode treinar sua própria rede ou baixar redes pré-treinadas.
Conjuntos de dados pré-treinados:
LEGO Gears: detecção de objetos em imagens.
Rolodex: Detecção de texto em imagens.
MSCOCO: Detecção de objetos padrão de classe 80.
Comandos CLI comuns:
1. Ajuda: ajuda darknet
2. Versão: versão darknet
3. Previsão de imagem (V2):
teste de detector darknet cars.data cars.cfg cars_best.weights image1.jpg
4. Previsão de imagem (V3):
darknet02displayannotatedimages cars.cfg image1.jpg
5. Previsão de imagem (DarkHelp):
DarkHelp carros.cfg carros.cfg carros_best.weights image1.jpg
6. Coordenadas de Saída (V2):
teste de detector darknet animais.dados animais.cfg animaisbest.weights -extoutput dog.jpg
7. Coordenadas de Saída (V3):
darknet01inference_images animais cachorro.jpg
8. Coordenadas de saída (DarkHelp):
DarkHelp --json animais.cfg animais.nomes animais_best.pesos cachorro.jpg
9. Processamento de Vídeo (V2):
demonstração do detector darknet animais.dados animais.cfg animaisbest.weights -extoutput test.mp4
10. Processamento de Vídeo (V3):
darknet03display_videos animais.cfg teste.mp4
11. Processamento de vídeo (DarkHelp):
DarkHelp animais.cfg animais.nomes animais_best.pesos teste.mp4
12. Processamento de webcam (V2):
Demonstração do detector darknet Animals.data Animals.cfg Animals_best.weights -c 0
13. Processamento de webcam (V3):
darknet08display_webcam animais
14. Salvamento de vídeo (V2):
demonstração do detector darknet animais.dados animais.cfg animaisbest.weights test.mp4 -outfilename res.avi
15. Salvamento de vídeo (V3):
darknet05processvideosanimais multithread.cfg animais.nomes animais_best.teste de pesos.mp4
16. Salvamento de vídeo (DarkHelp):
DarkHelp animais.cfg animais.nomes animais_best.pesos teste.mp4
17. Saída JSON (V2):
demonstração do detector darknet animais.dados animais.cfg animaisbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
18. Saída JSON (V3):
darknet06imagestojson animais imagem1.jpg
19. Saída JSON (DarkHelp):
DarkHelp --json animais.nomes animais.cfg animais_best.pesos image1.jpg
20. Seleção de GPU (V2):
demonstração do detector darknet animais.dados animais.cfg animais_best.weights -i 1 teste.mp4
21. Verificação de precisão da rede:
mapa do detector darknet driving.data driving.cfg driving_best.weights ...
22. Verificação de precisão (mAP@IoU=75):
mapa detector darknet animais.dados animais.cfg animaisbest.weights -iouthresh 0,75
23. Recálculo da âncora (recomendado DarkMark):
detector darknet calcanchors animais.data -numof_clusters 6 -largura 320 -altura 256
24. Treinando uma Nova Rede:
detector darknet -map -dont_show trainanimais.dataanimais.cfg (Veja a seção de treinamento abaixo)
Treinamento
Links rápidos para seções relevantes das perguntas frequentes da Darknet/YOLO:
Configuração: https://pjreddie.com/darknet/yolo/
Seleção de arquivo de configuração: https://pjreddie.com/darknet/yolo/
Comando de treinamento: https://pjreddie.com/darknet/yolo/
A abordagem mais simplificada para anotação e treinamento envolve a utilização do DarkMark. Este é o método recomendado para treinar uma nova rede neural.
Configuração manual de treinamento:
1. Crie uma pasta de projeto: por exemplo, ~/nn/animals/.
2. Copie um modelo de configuração:
Escolha um arquivo de configuração (por exemplo, cfg/yolov4-tiny.cfg).
Coloque-o na pasta do projeto.
Agora você tem ~/nn/animals/animals.cfg.
3. Crie o arquivo pets.names:
Crie um arquivo de texto chamado Animals.names na pasta do projeto.
Edite este arquivo com as classes desejadas.
Certifique-se de que cada aula esteja em uma linha separada, sem linhas em branco ou comentários.
Por exemplo:
`
cachorro
gato
pássaro
cavalo
`
4. Crie o arquivo Animals.data:
Crie um arquivo de texto chamado Animals.data na pasta do projeto.
O conteúdo deve ser semelhante a:
`
aulas = 4
trem = /home/nomedeusuário/nn/animais/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 a pasta do conjunto de dados:
Crie uma pasta para armazenar suas imagens e anotações. Por exemplo, ~/nn/animals/dataset.
Cada imagem requer um arquivo .txt correspondente que defina suas anotações.
Você não pode criar manualmente esses arquivos .txt; DarkMark ou ferramentas similares são necessárias para anotar suas imagens e gerar esses arquivos.
Consulte o FAQ Darknet/YOLO para o formato de anotação YOLO.
6. Crie os arquivos Animalstrain.txt e Animalsvalid.txt:
Crie esses arquivos de texto conforme especificado no arquivo Animals.data.
Esses arquivos listam todas as imagens a serem utilizadas para treinamento e validação, respectivamente.
Uma imagem por linha, usando caminhos relativos ou absolutos.
7. Modifique o arquivo de configuração (animals.cfg):
Lote: Defina lote = 64.
Subdivisões: comece com subdivisões=1. Ajuste conforme necessário com base nas dimensões da rede e na memória da GPU.
Max Batches: Um bom valor inicial é maxbatches=2000 * numberofclasses. Neste exemplo, maxbatches=8000 (4 animais).
Etapas: Defina como 80% e 90% de max_batches. Neste exemplo, etapas=6400,7200.
Largura e Altura: Defina as dimensões da rede. Consulte as perguntas frequentes do Darknet/YOLO para obter orientação.
Classes: Defina classes=... para corresponder ao número de classes em seu arquivo .names (4 neste exemplo).
Filtros: Em cada camada convolucional anterior a uma camada yolo, defina filtros=... como (número de classes + 5) * 3. Neste exemplo, filtros=27.
8. Comece o treinamento:
Navegue até a pasta do seu projeto: cd ~/nn/animals/
Comece o treinamento: detector darknet -map -dont_show train Animals.data Animals.cfg
Ser paciente. Os melhores pesos serão salvos como Animals_best.weights.
Observe o progresso do treinamento visualizando o arquivo chart.png.
Consulte o FAQ Darknet/YOLO para parâmetros de treinamento adicionais.
Para resultados de treinamento mais detalhados, adicione o sinalizador --verbose:
`bash
detector darknet -map -dont_show --verbose trem animais.data animais.cfg
`
Outras ferramentas e links
DarkMark: Para gerenciar projetos Darknet/YOLO, anotar imagens, verificar anotações e gerar arquivos de treinamento. https://darknetcv.ai/darkmark/
DarkHelp: Para uma CLI alternativa robusta ao Darknet, mosaico de imagens, rastreamento de objetos e uma API C++ comercial. https://darknetcv.ai/darkhelp/
Darknet/YOLO FAQ: Para respostas a perguntas comuns. https://pjreddie.com/darknet/yolo/
Canal de Stéphane no YouTube: para tutoriais e vídeos de exemplo. https://www.youtube.com/@stephane-charette
Darknet/YOLO Discord Server: Para perguntas de suporte e discussões da comunidade. https://discord.gg/zSq8rtW
Roteiro
Última atualização: 30/10/2024
Concluído
Substituído qsort() por std::sort() durante o treinamento.
Check_mistakes, getchar() e system() foram removidos.
Migrei Darknet para o compilador C++ (g++ no Linux, VisualStudio no Windows).
Problemas de compilação do Windows resolvidos.
Suporte Python reativado.
Construiu a biblioteca Darknet.
Rótulos de previsão reativados (código "alfabeto").
Código CUDA/GPU reativado.
CUDNN reativado.
Metade CUDNN reativada.
Arquitetura CUDA codificada removida.
Informações aprimoradas sobre a versão CUDA.
AVX reativado.
Removidas soluções antigas e Makefile.
Tornou o OpenCV uma dependência não opcional.
Removida a dependência da antiga biblioteca pthread.
STB removido.
CMakeLists.txt reescrito para usar a nova detecção CUDA.
Removido o antigo código do "alfabeto" e excluído mais de 700 imagens em dados/rótulos.
Construção fora da fonte habilitada.
Saída de número de versão aprimorada.
Implementei otimizações de desempenho relacionadas ao treinamento (em andamento).
Implementadas otimizações de desempenho relacionadas à inferência (em andamento).
Empregado passagem por referência quando aplicável.
Arquivos .hpp limpos.
Darknet.h reescrito.
Evitou lançar cv::Mat para void* e usou-o como um objeto C++ adequado.
Foram solucionadas inconsistências no uso da estrutura interna da imagem.
Compilação corrigida para dispositivos Jetson baseados em ARM.
Os novos dispositivos Jetson Orin estão funcionais.
Problemas resolvidos da API Python na V3.
Metas de curto prazo
Troque printf() por std::cout (em andamento).
Investigue o suporte para câmeras Zed antigas.
Melhore a análise da linha de comando para consistência (em andamento).
Metas de médio prazo
Remova todo o código char* e substitua por std::string.
Elimine avisos ocultos e resolva os avisos do compilador (em andamento).
Aprimore o uso de cv::Mat em vez da estrutura de imagem C personalizada (em andamento).
Substitua a funcionalidade de lista antiga por std::vector ou std::list.
Correção do suporte para imagens em tons de cinza de 1 canal.
Adicionado suporte para imagens de canal N onde N > 3 (por exemplo, imagens com profundidade ou canais térmicos).
Continue a limpeza contínua do código (em andamento).
Metas de longo prazo
Resolva problemas de CUDA/CUDNN em todas as GPUs.
Reescreva o código CUDA + cuDNN.
Explore o suporte para GPUs não NVIDIA.
Implemente caixas delimitadoras giradas ou suporte angular.
Apresente pontos-chave/esqueletos.
Adicionado suporte para mapas de calor (em andamento).
Incorpore segmentação.