Salta para o conteúdo

Ultralytics Aplicação Android: Deteção de objectos em tempo real com YOLO Models

Ultralytics Imagem de pré-visualização do HUB

Ultralytics GitHub espaço Ultralytics LinkedIn espaço Ultralytics Twitter espaço Ultralytics YouTube espaço Ultralytics TikTok espaço Ultralytics Instagram espaço Ultralytics Discórdia

Loja Google Play 

A aplicação Ultralytics para Android é uma ferramenta poderosa que te permite executar modelos YOLO diretamente no teu dispositivo Android para deteção de objectos em tempo real. Esta aplicação utiliza o TensorFlow Lite para otimização de modelos e vários delegados de hardware para aceleração, permitindo uma deteção de objectos rápida e eficiente.



Observa: Começa a utilizar a aplicação Ultralytics HUB (IOS e Android)

Quantização e aceleração

Para obter um desempenho em tempo real no teu dispositivo Android, os modelos YOLO são quantizados para uma precisão FP16 ou INT8. A quantização é um processo que reduz a precisão numérica do modelo weights and biases, reduzindo assim o tamanho do modelo e a quantidade de computação necessária. Isto resulta em tempos de inferência mais rápidos sem afetar significativamente a precisão do modelo.

Quantização FP16

A quantização FP16 (ou meia precisão) converte os números de ponto flutuante de 32 bits do modelo em números de ponto flutuante de 16 bits. Isto reduz o tamanho do modelo para metade e acelera o processo de inferência, mantendo um bom equilíbrio entre precisão e desempenho.

INT8 Quantização

A quantização INT8 (ou inteiro de 8 bits) reduz ainda mais o tamanho do modelo e os requisitos de cálculo, convertendo os seus números de vírgula flutuante de 32 bits em inteiros de 8 bits. Este método de quantização pode resultar num aumento significativo da velocidade, mas pode levar a uma ligeira redução da precisão média (mAP) devido à menor precisão numérica.

Redução de mAP em modelos INT8

A precisão numérica reduzida nos modelos INT8 pode levar a alguma perda de informação durante o processo de quantização, o que pode resultar numa ligeira diminuição do mAP. No entanto, este compromisso é muitas vezes aceitável, tendo em conta os ganhos substanciais de desempenho proporcionados pela quantização INT8.

Delegados e variabilidade de desempenho

Estão disponíveis diferentes delegados nos dispositivos Android para acelerar a inferência de modelos. Estes delegados incluem CPU, GPU, Hexagon e NNAPI. O desempenho destes delegados varia consoante o fornecedor de hardware do dispositivo, a linha de produtos e os chipsets específicos utilizados no dispositivo.

  1. CPU: A opção predefinida, com um desempenho razoável na maioria dos dispositivos.
  2. GPU: Utiliza a GPU do dispositivo para uma inferência mais rápida. Pode proporcionar um aumento significativo do desempenho em dispositivos com GPUs potentes.
  3. Hexagon: Aproveita o DSP Hexagon da Qualcomm para um processamento mais rápido e eficiente. Esta opção está disponível em dispositivos com processadores Qualcomm Snapdragon.
  4. NNAPI: A API de redes neurais do Android (NNAPI) serve como uma camada de abstração para executar modelos de ML em dispositivos Android. A NNAPI pode utilizar vários aceleradores de hardware, como CPU, GPU e chips de IA dedicados (por exemplo, o Edge do Google TPU ou o Pixel Neural Core).

Segue-se uma tabela que mostra os principais fornecedores, as suas linhas de produtos, dispositivos populares e delegados suportados:

Vendedor Linhas de produtos Dispositivos populares Delegados apoiados
Qualcomm Snapdragon (por exemplo, série 800) Samsung Galaxy S21, OnePlus 9, Google Pixel 6 CPU, GPU, Hexagon, NNAPI
Samsung Exynos (por exemplo, Exynos 2100) Samsung Galaxy S21 (versão global) CPU, GPU, NNAPI
MediaTek Dimensidade (por exemplo, Dimensidade 1200) Realme GT, Xiaomi Redmi Note CPU, GPU, NNAPI
HiSilicon Kirin (por exemplo, Kirin 990) Huawei P40 Pro, Huawei Mate 30 Pro CPU, GPU, NNAPI
NVIDIA Tegra (por exemplo, Tegra X1) NVIDIA Shield TV, Nintendo Switch CPU, GPU, NNAPI

Tem em atenção que a lista de dispositivos mencionados não é exaustiva e pode variar consoante os chipsets específicos e os modelos de dispositivos. Testa sempre os teus modelos nos dispositivos de destino para garantir a compatibilidade e o desempenho ideal.

Tem em atenção que a escolha do delegado pode afetar o desempenho e a compatibilidade do modelo. Por exemplo, alguns modelos podem não funcionar com determinados delegados, ou um delegado pode não estar disponível num dispositivo específico. Como tal, é essencial testar o teu modelo e o delegado escolhido nos teus dispositivos alvo para obter os melhores resultados.

Começa a utilizar a aplicação para Android Ultralytics

Para começar a utilizar a aplicação Ultralytics para Android, segue estes passos:

  1. Transfere a aplicação Ultralytics a partir da Google Play Store.

  2. Inicia a aplicação no teu dispositivo Android e inicia sessão com a tua conta Ultralytics . Se ainda não tens uma conta, cria uma aqui.

  3. Depois de iniciar sessão, verás uma lista dos teus modelos YOLO treinados. Selecciona um modelo para utilizar na deteção de objectos.

  4. Concede permissão à aplicação para aceder à câmara do teu dispositivo.

  5. Aponta a câmara do teu dispositivo para os objectos que pretendes detetar. A aplicação apresenta as caixas delimitadoras e as etiquetas de classe em tempo real à medida que detecta os objectos.

  6. Explora as definições da aplicação para ajustar o limite de deteção, ativar ou desativar classes de objectos específicas e muito mais.

Com a aplicação Ultralytics para Android, tens agora o poder da deteção de objectos em tempo real utilizando os modelos YOLO na ponta dos dedos. Aproveita para explorar as funcionalidades da aplicação e otimizar as suas definições para se adequarem aos teus casos de utilização específicos.



Criado em 2023-11-12, Atualizado em 2024-03-01
Autores: RizwanMunawar (1), glenn-jocher (3)

Comentários