Vai al contenuto

Ultralytics Android App: Rilevamento di oggetti in tempo reale con i modelli di YOLO

Ultralytics Immagine di anteprima dell'HUB

Ultralytics GitHub spazio Ultralytics LinkedIn spazio Ultralytics Twitter spazio Ultralytics YouTube spazio Ultralytics TikTok spazio Ultralytics BiliBili spazio Ultralytics Discordia

Google Play store 

L'applicazione Ultralytics Android è un potente strumento che ti permette di eseguire i modelli YOLO direttamente sul tuo dispositivo Android per il rilevamento degli oggetti in tempo reale. Questa applicazione utilizza TensorFlow Lite per l'ottimizzazione dei modelli e vari delegati hardware per l'accelerazione, consentendo un rilevamento degli oggetti rapido ed efficiente.



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

Quantizzazione e accelerazione

Per ottenere prestazioni in tempo reale sul tuo dispositivo Android , i modelli YOLO sono quantizzati con precisione FP16 o INT8. La quantizzazione è un processo che riduce la precisione numerica del modello weights and biases, riducendo così le dimensioni del modello e la quantità di calcoli richiesti. In questo modo si ottengono tempi di inferenza più rapidi senza influire in modo significativo sull'accuratezza del modello.

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

La quantizzazione INT8 (o intero a 8 bit) riduce ulteriormente le dimensioni del modello e i requisiti di calcolo convertendo i numeri a virgola mobile a 32 bit in interi a 8 bit. Questo metodo di quantizzazione può portare a una notevole accelerazione, ma può comportare una leggera riduzione della precisione media (mAP) a causa della minore precisione numerica.

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: La Android Neural Networks API (NNAPI) funge da livello di astrazione per l'esecuzione di modelli ML sui dispositivi Android . NNAPI può utilizzare diversi acceleratori hardware, come CPU, GPU, e chip AI dedicati (ad esempio Google's Edge TPU, o Pixel Neural Core).

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

Venditore Linee di prodotti Dispositivi popolari Delegati supportati
Qualcomm Snapdragon (ad esempio, serie 800) Samsung Galaxy S21, OnePlus 9, Google Pixel 6 CPU, GPU, Hexagon, NNAPI
Samsung Exynos (ad esempio, Exynos 2100) Samsung Galaxy S21 (versione globale) CPU, GPU, NNAPI
MediaTek DimensitĂ  (ad esempio, DimensitĂ  1200) Realme GT, Xiaomi Redmi Note CPU, GPU, NNAPI
HiSilicon Kirin (ad esempio, Kirin 990) Huawei P40 Pro, Huawei Mate 30 Pro CPU, GPU, NNAPI
NVIDIA Tegra (ad esempio, Tegra X1) NVIDIA Shield TV, Nintendo Switch CPU, 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.



Creato 2023-11-12, Aggiornato 2024-06-22
Autori: glenn-jocher (8), sergiuwaxmann (2), RizwanMunawar (1)

Commenti