Detox: uma estrutura de teste ponta a ponta da caixa cinza para aplicativos móveis
Detox é uma estrutura de teste ponta a ponta de código aberto projetada especificamente para aplicativos React Native. Ele oferece uma solução robusta e confiável para automatizar os testes de aplicativos móveis, garantindo experiências de usuário de alta qualidade.
Qual é a aparência de um teste de desintoxicação?
`javascript
descreva('Fluxo de login', () => {
beforeEach(async() => {
aguarde device.reloadReactNative();
});
it('deve fazer login com sucesso', async () => {
aguarde elemento(by.id('email')).typeText('[email protected]');
aguarde elemento(by.id('senha')).typeText('123456');
const loginButton = elemento(by.text('Login'));
aguarde loginButton.tap();
aguarde expect(loginButton).not.toExist();
aguarde expect(element(by.label('Bem-vindo'))).toBeVisible();
});
});
`
Este trecho de código demonstra um teste simples de desintoxicação para uma tela de login. O teste interage com o aplicativo em um dispositivo ou simulador real, imitando as ações de um usuário real.
Comece agora com Detox!
Sobre desintoxicação
O Detox capacita as equipes de desenvolvimento móvel a atingir alta velocidade, adotando fluxos de trabalho de integração contínua. Ele elimina a necessidade de extensos testes manuais de controle de qualidade, fornecendo uma solução poderosa para automatizar testes de ponta a ponta.
Principais recursos:
1. Interação real entre dispositivo/simulador: o Detox testa seu aplicativo móvel enquanto ele é executado em um dispositivo ou simulador real, interagindo com ele como um usuário real.
2. Teste de caixa cinza: O Detox adota uma abordagem de teste de caixa cinza, fornecendo um ambiente de teste mais robusto e confiável do que os testes de caixa preta tradicionais.
3. Mitigação de instabilidade: Ao mudar para testes de caixa cinza, o Detox aborda diretamente a instabilidade inerente frequentemente associada a testes de ponta a ponta.
Versões nativas do React suportadas
Detox fornece suporte oficial para as versões 0.71.x, 0.72.x e 0.73.x do React Native sem a "Nova Arquitetura" do React Native. Embora as versões mais recentes e a “Nova Arquitetura” possam funcionar com o Detox, elas ainda não foram totalmente testadas pela equipe do Detox.
Embora o Detox não ofereça suporte oficial a versões mais antigas do React Native, a equipe se esforça para manter a compatibilidade. Se você encontrar algum problema com uma versão não suportada, abra um problema ou entre em contato com o servidor Detox Discord para obter assistência.
Problemas conhecidos com React Native
O Detox monitora e aborda continuamente quaisquer problemas conhecidos que possam surgir com o React Native. Você pode encontrar informações detalhadas sobre esses problemas e suas soluções alternativas na documentação oficial do Detox.
Comece com a desintoxicação
Para começar a usar o Detox em seu aplicativo React Native, siga o abrangente Guia de primeiros passos no site do Detox. Este guia orientará você no processo de configuração, garantindo que o Detox seja executado em minutos.
Site de Documentos
Explore a documentação completa do Detox, incluindo guias detalhados, referências de API e dicas de solução de problemas, no site oficial do Detox.
Princípios Básicos de Desintoxicação
A Detox desafia os princípios tradicionais de testes ponta a ponta, adotando uma nova perspectiva para enfrentar as dificuldades inerentes aos testes móveis. Aprenda sobre esses princípios únicos no site Detox.
Contribuindo para a desintoxicação
Detox é um projeto de código aberto e suas contribuições são altamente valorizadas. Explore os problemas marcados com o rótulo “procura-se ajuda” no repositório Detox para encontrar áreas onde suas habilidades podem fazer a diferença.
Se você encontrar um bug ou tiver uma sugestão de novo recurso, abra um problema no repositório Detox. Para mergulhar no núcleo do Detox e contribuir para o seu desenvolvimento, consulte o Guia de Contribuição Detox.
Licença
Detox é lançado sob a licença Apache-2.0.
Estrutura de detecção de objetos Darknet e YOLO
Downcodes小编 traz para você uma exploração perspicaz da poderosa estrutura de detecção de objetos Darknet e seu aclamado algoritmo YOLO (You Only Look Once). Este guia abrangente investiga os principais aspectos deste sistema amplamente adotado, capacitando você a aproveitar seus recursos para diversas tarefas de detecção de objetos.
Vamos começar!
Darknet: a estrutura
Darknet é uma estrutura de rede neural de código aberto escrita em C, C++ e CUDA. Ele oferece alto desempenho e flexibilidade, tornando-o uma escolha popular para pesquisadores e desenvolvedores que trabalham com detecção de objetos e outras tarefas de visão computacional.
YOLO: O Algoritmo
YOLO (You Only Look Once) é um algoritmo de detecção de objetos em tempo real que opera dentro da estrutura Darknet. Sua abordagem inovadora permite processar imagens em uma única passagem, possibilitando a detecção rápida e precisa de objetos.
Suporte de Hank.ai para Darknet/YOLO
Hank.ai, uma empresa líder em IA, desempenha um papel significativo no apoio à comunidade Darknet/YOLO, garantindo seu desenvolvimento e acessibilidade contínuos.
Anunciando Darknet V3 "Jazz"
A versão mais recente do Darknet, versão 3.x, apropriadamente chamada de “Jazz”, apresenta uma série de aprimoramentos e melhorias, incluindo:
Desempenho aprimorado: Darknet V3 apresenta ganhos de desempenho impressionantes, permitindo processar imagens e vídeos em uma taxa ainda mais rápida.
Nova API: A introdução de uma nova API C e C++ simplifica ainda mais a integração do Darknet em seus aplicativos.
Exemplos expandidos: a inclusão de novos códigos de amostra e aplicativos no diretório src-examples oferece mais oportunidades de aprendizado prático.
Recursos Darknet/YOLO
Site oficial: https://darknetcv.ai
FAQ: Encontre respostas para perguntas comuns e saiba mais sobre Darknet/YOLO.
Servidor Discord: Junte-se à comunidade ativa Darknet/YOLO no Discord para discussões, suporte e colaboração.
Artigos
YOLOv7: https://arxiv.org/abs/2207.02662
Escalado-YOLOv4: https://arxiv.org/abs/2102.05909
YOLOv4: https://arxiv.org/abs/2004.10934
YOLOv3: https://pjreddie.com/media/files/papers/YOLOv3.pdf
Informações gerais
Velocidade e precisão: Darknet/YOLO supera consistentemente outras estruturas de detecção de objetos em termos de velocidade e precisão.
Código Aberto: O framework e seus algoritmos associados são totalmente de código aberto, permitindo uso e customização gratuitos.
Suporte multiplataforma: Darknet/YOLO funciona perfeitamente em várias plataformas, incluindo Linux, Windows e macOS.
Versão Darknet
O projeto Darknet passou por múltiplas iterações, com cada versão introduzindo novos recursos e refinamentos.
Versão 0.x: A ferramenta Darknet original desenvolvida por Joseph Redmon.
Versão 1.x: Mantida por Alexey Bochkovskiy.
Versão 2.x "OAK": Patrocinado por Hank.ai e mantido por Stéphane Charette.
Versão 3.x "JAZZ": A versão mais recente, introduzindo uma API abrangente e melhorias de desempenho.
Pesos pré-treinados MSCOCO
Para começar rapidamente, Darknet/YOLO oferece pesos pré-treinados para várias versões do YOLO treinadas no popular conjunto de dados MSCOCO, que inclui 80 classes de objetos comuns.
Pesos pré-treinados para:
1. YOLOv2
2. YOLOv3
3. YOLOv4
4. YOLOv7
Esses pesos pré-treinados estão disponíveis para download no repositório Darknet.
Exemplo de uso:
`bash
Baixe pesos pré-treinados (YOLOv4-tiny)
wget --no-clobber https://github.com/hank-ai/darknet/releases/download/v2.0/yolov4-tiny.weights
Execute a detecção de objetos em uma imagem
darknet02displayannotatedimages coco.names yolov4-tiny.cfg yolov4-tiny.weights image1.jpg
Execute a detecção de objetos em um vídeo
darknet03display_videos coco.names yolov4-tiny.cfg yolov4-tiny.weights video1.avi
`
Construindo Darknet
Darknet requer C++17 ou mais recente, OpenCV, e usa CMake para construção.
Opções de construção:
1. Google Colab: Use as mesmas instruções do Linux.
2. Método Linux CMake:
* Pré-requisitos:
* build-essential, git, libopencv-dev, cmake (instale usando o gerenciador de pacotes da sua distribuição)
* CUDA (opcional): Para aceleração de GPU. Baixe e instale em https://developer.nvidia.com/cuda-downloads.
* cuDNN (opcional): Baixe e instale em https://developer.nvidia.com/rdp/cudnn-download ou https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#cudnn- visão geral da instalação do gerenciador de pacotes.
* Etapas de construção:
`bash
mkdir ~/srccd ~/src
clone do git https://github.com/hank-ai/darknet
cd rede escura
compilação mkdir
compilação de CD
cmake -DCMAKEBUILDTYPE=Liberar ..
faça o pacote -j4
sudo dpkg -i darknet-VERSION.deb
`
3. Método CMake do Windows:
* Pré-requisitos:
* Comunidade Git, CMake, NSIS, Visual Studio 2022: Instale usando winget.
* Microsoft VCPKG: Instale para construir o OpenCV.
* Etapas de construção:
`bash
CDC:
mkdir c:src
cd c:src
clone do git https://github.com/microsoft/vcpkg
CD vcpkg
bootstrap-vcpkg.bat
.vcpkg.exe integrar instalação
.vcpkg.exe integrar powershell
.vcpkg.exe instalar opencv[contrib,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
cd ..
clone do git https://github.com/hank-ai/darknet.git
cd rede escura
compilação mkdir
compilação de CD
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
`
Usando Darknet
CLI: Darknet fornece uma interface de linha de comando para várias tarefas, incluindo:
* Detecção de objetos: detecte objetos em imagens e vídeos.
* Treinamento: treine modelos de detecção de objetos personalizados.
* Avaliação de desempenho: meça a precisão de seus modelos.
DarkHelp: DarkHelp é uma CLI alternativa e robusta com recursos adicionais como rastreamento de objetos e ladrilhos.
Comandos CLI de exemplo:
`bash
Verifique a versão Darknet
versão darknet
Execute a detecção de objetos em uma imagem
teste de detector darknet cars.data cars.cfg cars_best.weights image1.jpg
Treine uma nova rede
detector darknet -map -dont_show trem animais.data animais.cfg
`
Treinamento
DarkMark: Uma ferramenta para anotar imagens, gerar dados de treinamento e gerenciar seus projetos Darknet/YOLO.
Configuração manual: para obter mais controle, você pode criar manualmente os arquivos necessários para o treinamento, incluindo:
* Arquivo de configuração (.cfg): Define a arquitetura e hiperparâmetros da rede.
* Arquivo de nomes (.names): Lista as classes de objetos que você deseja detectar.
* Arquivo de dados (.data): especifica os conjuntos de dados de treinamento e validação.
* Arquivos de anotação (.txt): contêm coordenadas da caixa delimitadora para suas imagens de treinamento.
Etapas para treinamento manual:
1. Prepare dados de treinamento: anote suas imagens usando DarkMark ou outra ferramenta de anotação.
2. Criar arquivo de configuração: copie um arquivo de configuração existente (por exemplo, yolov4-tiny.cfg) e modifique-o para seu conjunto de dados específico.
3. Crie um arquivo de nomes: liste suas classes de objetos em um arquivo de texto.
4. Criar arquivo de dados: especifique caminhos para seus conjuntos de dados de treinamento e validação.
5. Treine o modelo:
`bash
detector darknet -map -dont_show trem animais.data animais.cfg
`
Outras ferramentas e links
DarkHelp: https://github.com/hank-ai/darkhelp
Perguntas frequentes sobre Darknet/YOLO: https://darknetcv.ai/faq
Canal de Stéphane no YouTube: https://www.youtube.com/channel/UC3c1x727824J8oV8YfH57A
Servidor Discord Darknet/YOLO: https://discord.gg/zSq8rtW
Roteiro
Metas de curto prazo:
Melhore a análise da linha de comando para melhorar a experiência do usuário.
Otimize o código para melhorar o desempenho.
Melhore a consistência e a legibilidade do código.
Metas de médio prazo:
Substitua char por std::string para maior segurança do código.
Otimize o uso de cv::Mat para processamento eficiente de imagens.
Expanda o suporte para formatos e canais de imagem.
Metas de longo prazo:
Adicione suporte para GPUs não NVIDIA.
Introduza caixas delimitadoras giradas e suporte de ângulo.
Implemente pontos-chave/esqueletos e mapas de calor para detecção de objetos mais complexos.
Explore os recursos de segmentação.
Conclusão
Darknet e YOLO revolucionaram o campo da detecção de objetos, oferecendo uma estrutura poderosa e flexível para pesquisadores, desenvolvedores e entusiastas. Ao abraçar sua natureza de código aberto, explorar os recursos disponíveis e participar da comunidade ativa, você pode aproveitar o Darknet/YOLO para uma ampla gama de aplicações inovadoras.
Downcodes小编 espera que este guia completo tenha equipado você com um conhecimento sólido de Darknet e YOLO, permitindo que você embarque em sua jornada de detecção de objetos com confiança!