Ultralytics Android App: Real-time Object Detection with YOLO Models
The Ultralytics Android App is a powerful tool that allows you to run YOLO models directly on your Android device for real-time object detection. This app utilizes TensorFlow Lite for model optimization and various hardware delegates for acceleration, enabling fast and efficient object detection.
Observa: Começa a utilizar a aplicação Ultralytics HUB (IOS & Android)
Quantização e aceleração
To achieve real-time performance on your Android device, YOLO models are quantized to either FP16 or INT8 precision. Quantization is a process that reduces the numerical precision of the model's weights and biases, thus reducing the model's size and the amount of computation required. This results in faster inference times without significantly affecting the model's accuracy.
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
INT8 (or 8-bit integer) quantization further reduces the model's size and computation requirements by converting its 32-bit floating-point numbers to 8-bit integers. This quantization method can result in a significant speedup, but it may lead to a slight reduction in mean average precision (mAP) due to the lower numerical precision.
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.
- CPU: A opção predefinida, com um desempenho razoável na maioria dos dispositivos.
- GPU: Utiliza o GPU do dispositivo para uma inferência mais rápida. Pode proporcionar um aumento significativo do desempenho em dispositivos com GPUs potentes.
- 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.
- 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, Hexágono, 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:
-
Transfere a aplicação Ultralytics a partir da Google Play Store.
-
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.
-
Depois de iniciar sessão, verás uma lista dos teus modelos YOLO treinados. Selecciona um modelo para utilizar na deteção de objectos.
-
Concede permissão à aplicação para aceder à câmara do teu dispositivo.
-
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.
-
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.