Ultralytics Android App: Rilevamento di oggetti in tempo reale con i modelli di YOLO
L'applicazione Ultralytics Android è un potente strumento che consente di eseguire i modelli YOLO direttamente sul 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 rapido ed efficiente degli oggetti.
Guarda: Come iniziare con l'applicazione HUB Ultralytics (IOS e Android)
Quantizzazione e accelerazione
Per ottenere prestazioni in tempo reale sul 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 calcolo richiesta. 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, che può comportare una leggera diminuzione di mAP. Tuttavia, questo compromesso è spesso accettabile se si considera il sostanziale guadagno di prestazioni offerto 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.
- CPU: L'opzione predefinita, con prestazioni ragionevoli sulla maggior parte dei dispositivi.
- GPU: Utilizza l'indirizzo GPU del dispositivo per velocizzare l'inferenza. Può fornire un significativo aumento delle prestazioni sui 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: 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 prodotto | Dispositivi popolari | Delegati supportati |
---|---|---|---|
Qualcomm | Snapdragon (ad esempio, serie 800) | Samsung Galaxy S21, OnePlus 9, Google Pixel 6 | CPU, GPU, Esagono, 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 |
Si noti che l'elenco dei dispositivi menzionati non è esaustivo e può variare a seconda dei chipset e dei modelli di dispositivi specifici. Testate sempre i vostri modelli sui dispositivi di destinazione per garantire la compatibilità e le prestazioni ottimali.
Tenete 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. Per questo motivo, è essenziale testare il 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 , procedere come segue:
-
Scaricate l'App Ultralytics dal Play StoreGoogle .
-
Lanciate l'applicazione sul vostro dispositivo Android e accedete con il vostro account Ultralytics . Se non avete ancora un account, createlo qui.
-
Una volta effettuato l'accesso, verrà visualizzato un elenco dei modelli addestrati di YOLO . Selezionare un modello da utilizzare per il rilevamento degli oggetti.
-
Concedere all'applicazione l'autorizzazione ad accedere alla fotocamera del dispositivo.
-
Puntare la fotocamera del dispositivo sugli oggetti da rilevare. L'applicazione visualizzerà in tempo reale i riquadri di delimitazione e le etichette delle classi mentre rileva gli oggetti.
-
Esplorate 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 avete a portata di mano la potenza del rilevamento di oggetti in tempo reale utilizzando i modelli YOLO . Esplorate le funzioni dell'applicazione e ottimizzate le impostazioni per adattarle ai vostri casi d'uso specifici.