App Android Ultralytics: Rilevamento di oggetti in tempo reale con modelli YOLO
L'app Android Ultralytics è un potente strumento che consente di eseguire modelli YOLO direttamente sul tuo dispositivo Android per il rilevamento di oggetti in tempo reale. Questa app utilizza TensorFlow Lite per l'ottimizzazione del modello e vari delegati hardware per l'accelerazione, consentendo un rilevamento di oggetti rapido ed efficiente.
Guarda: Guida introduttiva all'app Ultralytics HUB (IOS e Android)
Quantizzazione e accelerazione
Per ottenere prestazioni in tempo reale sul tuo dispositivo Android, i modelli YOLO vengono quantizzati in precisione FP16 o INT8 precisione. La quantizzazione è un processo che riduce la precisione numerica dei pesi e dei bias del modello, riducendo così le dimensioni del modello e la quantità di calcoli necessari. Ciò si traduce in tempi di inferenza più rapidi senza influire in modo significativo sulla precisione del modello.
Quantizzazione FP16
La quantizzazione FP16 (o a mezza precisione) converte i numeri in virgola mobile a 32 bit del modello in numeri in virgola mobile a 16 bit. Ciò riduce le dimensioni del modello della metà e accelera il processo di inferenza, mantenendo un buon equilibrio tra accuratezza e prestazioni.
Quantizzazione INT8
La quantizzazione INT8 (o intera a 8 bit) riduce ulteriormente le dimensioni del modello e i requisiti di calcolo convertendo i suoi numeri in virgola mobile a 32 bit in interi a 8 bit. Questo metodo di quantizzazione può comportare un significativo aumento della velocità, ma può portare a una leggera riduzione della precisione media media (mAP) a causa della minore precisione numerica.
Riduzione mAP nei modelli INT8
La precisione numerica ridotta nei modelli INT8 può portare a una certa perdita di informazioni durante il processo di quantizzazione, il che può comportare una leggera diminuzione del mAP. Tuttavia, questo compromesso è spesso accettabile considerando i sostanziali guadagni di performance offerti dalla quantizzazione INT8.
Delegati e variabilità delle prestazioni
Sono disponibili diversi delegate sui dispositivi Android per accelerare l'inferenza del modello. Questi delegate includono CPU, GPU, Hexagon e NNAPI. Le prestazioni di questi delegate variano a seconda del fornitore hardware del dispositivo, della linea di prodotti e dei chipset specifici utilizzati nel dispositivo.
- CPU: L'opzione predefinita, con prestazioni ragionevoli sulla maggior parte dei dispositivi.
- GPU: Utilizza la GPU del dispositivo per un'inferenza più rapida. Può fornire un significativo aumento delle prestazioni su dispositivi con GPU potenti.
- Hexagon: Sfrutta l'Hexagon DSP di Qualcomm per un'elaborazione più rapida ed efficiente. Questa opzione è disponibile sui dispositivi con processori Qualcomm Snapdragon.
- NNAPI: L'API Neural Networks di Android (NNAPI) funge da livello di astrazione per l'esecuzione di modelli ML su dispositivi Android. NNAPI può utilizzare vari acceleratori hardware, come CPU, GPU e chip AI dedicati (ad esempio, Edge TPU di Google 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:
Fornitore | 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 | Dimensity (ad esempio, Dimensity 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 |
Si prega di notare che l'elenco dei dispositivi menzionati non è esaustivo e può variare a seconda dei chipset specifici e dei modelli di dispositivo. Testare sempre i propri modelli sui dispositivi di destinazione per garantire la compatibilità e le prestazioni ottimali.
Tieni presente che la scelta del delegato può influire sulle prestazioni e sulla compatibilità del modello. Ad esempio, alcuni modelli potrebbero non funzionare con determinati delegati, oppure un delegato potrebbe non essere disponibile su un dispositivo specifico. Pertanto, è essenziale testare il modello e il delegato scelto sui dispositivi di destinazione per ottenere i risultati migliori.
Guida introduttiva all'app Android Ultralytics
Per iniziare con l'app Ultralytics Android, segui questi passaggi:
-
Scarica l'app Ultralytics dal Google Play Store.
-
Avvia l'app sul tuo dispositivo Android e accedi con il tuo account Ultralytics. Se non hai ancora un account, creane uno su https://hub.ultralytics.com/.
-
Una volta effettuato l'accesso, vedrai un elenco dei tuoi modelli YOLO addestrati. Seleziona un modello da utilizzare per il rilevamento degli oggetti.
-
Concedi all'app l'autorizzazione per accedere alla fotocamera del tuo dispositivo.
-
Punta la fotocamera del tuo dispositivo verso gli oggetti che vuoi rilevare. L'app visualizzerà i riquadri di delimitazione e le etichette di classe in tempo reale mentre rileva gli oggetti.
-
Esplora le impostazioni dell'app per regolare la soglia di rilevamento, abilitare o disabilitare classi di oggetti specifiche e altro ancora.
Con l'app Ultralytics Android, ora hai la potenza del rilevamento di oggetti in tempo reale utilizzando i modelli YOLO a portata di mano. Divertiti a esplorare le funzionalità dell'app e a ottimizzarne le impostazioni per adattarle ai tuoi casi d'uso specifici.