Salta para o conte√ļdo

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

Ultralytics HUB pré-visualiza a imagem

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.

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 2023-11-27
Autores: glenn-jocher (3)

Coment√°rios