Salta para o conte√ļdo

Ultralytics Android Aplica: 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 BiliBili espaço Ultralytics Discórdia

Google Play store 

A aplicação Ultralytics 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: Getting Started with the Ultralytics HUB App (IOS & 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

Different delegates are available on Android devices to accelerate model inference. These delegates include CPU, GPU, Hexagon and NNAPI. The performance of these delegates varies depending on the device's hardware vendor, product line, and specific chipsets used in the device.

  1. CPU: The default option, with reasonable performance on most devices.
  2. GPU: Utilizes the device's GPU for faster inference. It can provide a significant performance boost on devices with powerful GPUs.
  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: The Android Neural Networks API (NNAPI) serves as an abstraction layer for running ML models on Android devices. NNAPI can utilize various hardware accelerators, such as CPU, GPU, and dedicated AI chips (e.g., Google's Edge TPU, or the 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 Ultralytics Android

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

  1. Download the Ultralytics App from the Google Play Store.

  2. Launch the app on your Android device and sign in with your Ultralytics account. If you don't have an account yet, create one here.

  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 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-06-22
Autores: glenn-jocher (8), sergiuwaxmann (2), RizwanMunawar (1)

Coment√°rios