Vai al contenuto

Ultralytics Android App: Real-time Object Detection with YOLO Models

Ultralytics Immagine di anteprima dell'HUB

Ultralytics GitHubspazioUltralytics LinkedInspazioUltralytics TwitterspazioUltralytics YouTubespazioUltralytics TikTokspazioUltralytics BiliBilispazioUltralytics Discordia

Google Play store 

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.



Guarda: Come iniziare con l'applicazione Ultralytics HUB (IOS e Android)

Quantizzazione e accelerazione

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.

Quantizzazione FP16

La quantizzazione FP16 (o mezza precisione) converte i numeri in virgola mobile a 32 bit del modello in numeri in virgola mobile a 16 bit. In questo modo si dimezzano le dimensioni del modello e si accelera il processo di inferenza, mantenendo un buon equilibrio tra precisione e prestazioni.

INT8 Quantizzazione

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.

Riduzione della mAP nei modelli INT8

La ridotta precisione numerica dei modelli INT8 può comportare una certa perdita di informazioni durante il processo di quantizzazione, il che può comportare una leggera diminuzione di mAP. Tuttavia, questo compromesso è spesso accettabile se si considerano i notevoli guadagni di prestazioni offerti dalla quantizzazione INT8.

Delegati e variabilità delle prestazioni

Sui dispositivi Android sono disponibili diversi delegati per accelerare l'inferenza del modello. Questi delegati includono CPU, GPU, Hexagon e NNAPI. Le prestazioni di questi delegati variano a seconda del fornitore di hardware del dispositivo, della linea di prodotti e dei chipset specifici utilizzati nel dispositivo.

  1. CPU: L'opzione predefinita, con prestazioni ragionevoli sulla maggior parte dei dispositivi.
  2. GPU: Utilizza l'indirizzo GPU del dispositivo per velocizzare l'inferenza. Può fornire un notevole incremento delle prestazioni sui dispositivi con GPU potenti.
  3. Hexagon: Sfrutta l'Hexagon DSP di Qualcomm per un'elaborazione più veloce ed efficiente. Questa opzione è disponibile sui dispositivi con processori 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).

Ecco una tabella che mostra i principali fornitori, le loro linee di prodotti, i dispositivi più diffusi e i delegati supportati:

VenditoreLinee di prodottiDispositivi popolariDelegati supportati
QualcommSnapdragon (ad esempio, serie 800)Samsung Galaxy S21, OnePlus 9, Google Pixel 6CPU, GPU, Hexagon, NNAPI
SamsungExynos (ad esempio, Exynos 2100)Samsung Galaxy S21 (versione globale)CPU, GPU, NNAPI
MediaTekDimensità (ad esempio, Dimensità 1200)Realme GT, Xiaomi Redmi NoteCPU, GPU, NNAPI
HiSiliconKirin (ad esempio, Kirin 990)Huawei P40 Pro, Huawei Mate 30 ProCPU, GPU, NNAPI
NVIDIATegra (ad esempio, Tegra X1)NVIDIA Shield TV, Nintendo SwitchCPU, GPU, NNAPI

Tieni presente che l'elenco dei dispositivi citati non è esaustivo e può variare a seconda dei chipset e dei modelli di dispositivi specifici. Prova sempre i tuoi modelli sui dispositivi di destinazione per assicurarti la compatibilità e le prestazioni ottimali.

Tieni presente che la scelta del delegato può influire sulle prestazioni e sulla compatibilità dei modelli. Ad esempio, alcuni modelli potrebbero non funzionare con determinati delegati, oppure un delegato potrebbe non essere disponibile su un dispositivo specifico. Per questo è fondamentale testare il tuo modello e il delegato scelto sui dispositivi di destinazione per ottenere i migliori risultati.

Come iniziare con l'applicazione Ultralytics Android

Per iniziare a utilizzare l'app Ultralytics Android , segui i seguenti passaggi:

  1. Scarica l'applicazione Ultralytics dal Play StoreGoogle .

  2. Avvia l'applicazione sul tuo dispositivo Android e accedi con il tuo account Ultralytics . Se non hai ancora un account, creane uno qui.

  3. Una volta effettuato l'accesso, vedrai un elenco dei tuoi modelli addestrati di YOLO . Seleziona un modello da utilizzare per il rilevamento degli oggetti.

  4. Concedi all'app il permesso di accedere alla fotocamera del tuo dispositivo.

  5. Punta la fotocamera del tuo dispositivo sugli oggetti che vuoi rilevare. L'applicazione visualizzerà i riquadri di delimitazione e le etichette delle classi in tempo reale mentre rileva gli oggetti.

  6. Esplora le impostazioni dell'applicazione per regolare la soglia di rilevamento, attivare o disattivare classi di oggetti specifiche e altro ancora.

Con l'app Ultralytics Android ora hai a portata di mano la potenza del rilevamento di oggetti in tempo reale utilizzando i modelli di YOLO . Divertiti a esplorare le funzioni dell'app e a ottimizzare le sue impostazioni per adattarle ai tuoi casi d'uso specifici.

📅 Created 11 months ago ✏️ Updated 18 days ago

Commenti