Esporta nel formato modello TF.js da un formato modello YOLO26#
A partire da Ultralytics 8.4.83, il formato di esportazione tfjs (TensorFlow.js) è stato rimosso e sostituito dal formato unificato Google LiteRT. LiteRT viene eseguito nel browser tramite LiteRT.js (con accelerazione WebGPU), coprendo i casi d'uso nel browser e con Node.js gestiti da TF.js, oltre agli scenari mobile, embedded ed edge, tramite un unico modello .tflite.
format="tfjs" continua a funzionare, ma emette un avviso di deprecazione ed esporta invece un modello LiteRT. Usa format="litert" d'ora in avanti; per le istruzioni di esportazione aggiornate e il percorso di deployment nel browser, consulta la guida all'esportazione di LiteRT.
Eseguire modelli di machine learning direttamente nel browser o su Node.js può essere complesso. Devi assicurarti che il formato del modello sia ottimizzato per ottenere prestazioni più elevate, così da poter utilizzare il modello per eseguire applicazioni interattive localmente sul dispositivo dell'utente. Il formato modello TensorFlow.js, o TF.js, è progettato per usare una quantità minima di energia offrendo al contempo prestazioni elevate.
La funzionalità «esporta nel formato modello TF.js» consente di ottimizzare i tuoi modelli Ultralytics YOLO26 per l'inferenza ad alta velocità e locale di rilevamento degli oggetti. In questa guida ti mostreremo come convertire i tuoi modelli nel formato TF.js, facilitandone le buone prestazioni in vari browser locali e applicazioni Node.js.
Perché esportare in TF.js?#
L'esportazione dei tuoi modelli di machine learning in TensorFlow.js, sviluppato dal team TensorFlow nell'ambito dell'ecosistema TensorFlow più ampio, offre numerosi vantaggi per il deployment di applicazioni di machine learning. Aiuta a migliorare la privacy e la sicurezza degli utenti mantenendo i dati sensibili sul dispositivo. L'immagine seguente mostra l'architettura di TensorFlow.js e illustra come i modelli di machine learning vengono convertiti e distribuiti sia nei browser web sia su Node.js.
L'esecuzione locale dei modelli riduce anche la latenza e offre un'esperienza utente più reattiva. TensorFlow.js offre anche funzionalità offline, consentendo agli utenti di utilizzare la tua applicazione persino senza connessione Internet. TF.js è progettato per eseguire in modo efficiente modelli complessi su dispositivi con risorse limitate, poiché è realizzato per la scalabilità e supporta l'accelerazione GPU.
Funzionalità principali di TF.js#
Ecco le funzionalità principali che rendono TF.js uno strumento potente per gli sviluppatori:
-
Supporto multipiattaforma: TensorFlow.js può essere utilizzato sia negli ambienti browser sia in quelli Node.js, offrendo flessibilità nel deployment su piattaforme diverse. Consente agli sviluppatori di creare e distribuire applicazioni più facilmente.
-
Supporto per più backend: TensorFlow.js supporta vari backend per i calcoli, tra cui CPU, WebGL per l'accelerazione GPU, WebAssembly (WASM) per una velocità di esecuzione quasi nativa e WebGPU per funzionalità avanzate di machine learning basate sul browser.
-
Funzionalità offline: con TensorFlow.js, i modelli possono essere eseguiti nel browser senza bisogno di una connessione Internet, rendendo possibile sviluppare applicazioni funzionali offline.
Opzioni di deployment con TensorFlow.js#
Prima di esaminare il processo di esportazione dei modelli YOLO26 nel formato TF.js, analizziamo alcuni scenari di deployment tipici in cui questo formato viene utilizzato.
TF.js offre diverse opzioni per distribuire i tuoi modelli di machine learning:
-
Applicazioni ML nel browser: puoi creare applicazioni web che eseguono modelli di machine learning direttamente nel browser. In questo modo si elimina la necessità di calcoli lato server e si riduce il carico sul server.
-
Applicazioni Node.js: TensorFlow.js supporta anche il deployment in ambienti Node.js, consentendo lo sviluppo di applicazioni di machine learning lato server. È particolarmente utile per le applicazioni che richiedono la potenza di calcolo di un server o l'accesso a dati lato server.
-
Estensioni Chrome: uno scenario di deployment interessante consiste nella creazione di estensioni Chrome con TensorFlow.js. Ad esempio, puoi sviluppare un'estensione che consenta agli utenti di fare clic con il pulsante destro del mouse su un'immagine all'interno di qualsiasi pagina web per classificarla utilizzando un modello ML preaddestrato. TensorFlow.js può essere integrato nelle esperienze quotidiane di navigazione web per fornire informazioni immediate o potenziamenti basati sul machine learning.
Esportazione dei modelli YOLO26 in TensorFlow.js#
Puoi ampliare la compatibilità dei modelli e la flessibilità di deployment convertendo i modelli YOLO26 in TF.js.
Installazione#
Per installare il pacchetto richiesto, esegui:
# Install the required package for YOLO26
pip install ultralyticsPer istruzioni dettagliate e best practice relative al processo di installazione, consulta la nostra guida all'installazione di Ultralytics. Se durante l'installazione dei pacchetti necessari per YOLO26 riscontri difficoltà, consulta la nostra guida ai problemi comuni per trovare soluzioni e suggerimenti.
Utilizzo#
Tutti i modelli Ultralytics YOLO26 sono progettati per supportare l'esportazione senza configurazioni aggiuntive, semplificando l'integrazione nel flusso di distribuzione che preferisci. Puoi consultare l'elenco completo dei formati di esportazione supportati e delle opzioni di configurazione per scegliere la configurazione migliore per la tua applicazione.
L'argomento tfjs ora esporta un modello .tflite LiteRT, che supporta localmente le modalità Export, Predict e Validate e viene eseguito nel browser tramite LiteRT.js. Consulta la guida all'esportazione di LiteRT per il percorso aggiornato di deployment nel browser e sul dispositivo.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TF.js format
model.export(format="litert", imgsz=640) # use imgsz=224 for classificationIl modello .tflite LiteRT esportato viene caricato direttamente con yolo predict e yolo val e viene eseguito nel browser tramite LiteRT.js. Consulta la guida all'esportazione di LiteRT.
Argomenti di esportazione#
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
format | str | 'tfjs' | Formato di destinazione del modello esportato, che definisce la compatibilità con diversi ambienti di distribuzione. |
imgsz | int o tuple | 640 | Dimensione desiderata dell'immagine per l'input del modello. Può essere un numero intero per immagini quadrate o una tupla (height, width) per dimensioni specifiche. |
quantize | int o str | None | Precisione della quantizzazione: 8 (INT8 statico, pesi int8 + attivazioni int8; richiede la calibrazione data/fraction), 'w8a16' (statico, pesi int8 + attivazioni int16; richiede la calibrazione data/fraction), 'w8a32' (INT8 dinamico, pesi int8 + attivazioni FP32; non richiede calibrazione) oppure 32/non impostato (FP32). FP16 non viene esportato separatamente: un modello FP32 viene eseguito automaticamente in FP16 sui delegate GPU. Sostituisce i flag deprecati half/int8. |
batch | int | 1 | Specifica la dimensione del batch di inferenza del modello esportato o il numero massimo di immagini che il modello esportato elaborerà simultaneamente in modalità predict. |
data | str | None | Percorso del file YAML del dataset, essenziale per la quantizzazione; la classificazione richiede invece una directory del dataset o il nome di un dataset integrato. Se omesso con quantize=8 o 'w8a16', Ultralytics seleziona il dataset di calibrazione predefinito per l'attività del modello. |
fraction | float, int o list | 1.0 | Sottoinsieme di calibrazione espresso come rapporto, numero di immagini oppure rapporti/conteggi [train, val, test]. Gli elenchi di due elementi lasciano completo test, mentre 0 lo salta. |
device | str | None | Specifica il dispositivo per l'esportazione: CPU (device=cpu), MPS per Apple silicon (device=mps). |
Per ulteriori dettagli sul processo di esportazione, visita la pagina della documentazione Ultralytics sull'esportazione.
Deployment dei modelli YOLO26 TensorFlow.js esportati#
Ora che hai esportato il tuo modello YOLO26, il passaggio successivo è distribuirlo. L'esportazione produce un modello .tflite LiteRT che viene eseguito sul dispositivo e nel browser tramite LiteRT.js; consulta la guida all'esportazione di LiteRT per il percorso aggiornato.
Per riferimento, di seguito sono riportate le risorse del runtime TensorFlow.js legacy:
-
Estensione Chrome: ecco la documentazione per sviluppatori che spiega come distribuire i tuoi modelli TF.js in un'estensione Chrome.
-
Eseguire TensorFlow.js in Node.js: un post del blog TensorFlow sull'esecuzione diretta di TensorFlow.js in Node.js.
-
Deployment di TensorFlow.js - progetto Node su una piattaforma cloud: un post del blog TensorFlow sul deployment di un modello TensorFlow.js su una piattaforma cloud.
Riepilogo#
In questa guida abbiamo illustrato come esportare i modelli Ultralytics YOLO26 nel formato TensorFlow.js. Esportando in TF.js, ottieni la flessibilità necessaria per ottimizzare, distribuire e scalare i tuoi modelli YOLO26 su un'ampia gamma di piattaforme.
Per ulteriori dettagli sull'utilizzo, visita la documentazione ufficiale di TensorFlow.js.
Per maggiori informazioni sull'integrazione di Ultralytics YOLO26 con altre piattaforme e framework, non dimenticare di consultare la nostra pagina della guida alle integrazioni. Contiene numerose risorse utili per aiutarti a sfruttare al meglio YOLO26 nei tuoi progetti.
FAQ#
Esportare i modelli Ultralytics YOLO26 nel formato TensorFlow.js (TF.js) è semplice. Puoi seguire questi passaggi:
Utilizzofrom ultralytics import YOLO # Load a YOLO26 model model = YOLO("yolo26n.pt") # Export the model to TF.js format model.export(format="litert", imgsz=640) # use imgsz=224 for classification # The exported '.tflite' model runs in the browser via LiteRT.js or locally with yolo predict/val.Per maggiori dettagli sulle opzioni di esportazione supportate, visita la pagina della documentazione Ultralytics sulle opzioni di deployment.
L'esportazione dei modelli YOLO26 in TensorFlow.js offre diversi vantaggi, tra cui:
- Esecuzione locale: i modelli possono essere eseguiti direttamente nel browser o su Node.js, riducendo la latenza e migliorando l'esperienza utente.
- Supporto multipiattaforma: TF.js supporta diversi ambienti, offrendo flessibilità nel deployment.
- Funzionalità offline: consente alle applicazioni di funzionare senza connessione Internet, garantendo affidabilità e privacy.
- Accelerazione GPU: sfrutta WebGL per l'accelerazione GPU, ottimizzando le prestazioni sui dispositivi con risorse limitate.
TensorFlow.js è progettato specificamente per l'esecuzione efficiente di modelli ML nei browser e negli ambienti Node.js. Ecco come favorisce le applicazioni basate sul browser:
- Riduce la latenza: esegue i modelli di machine learning localmente, fornendo risultati immediati senza dipendere dai calcoli lato server.
- Migliora la privacy: mantiene i dati sensibili sul dispositivo dell'utente, riducendo al minimo i rischi per la sicurezza.
- Consente l'utilizzo offline: i modelli possono funzionare senza connessione Internet, garantendo funzionalità uniformi.
- Supporta più backend: offre flessibilità con backend come CPU, WebGL, WebAssembly (WASM) e WebGPU per esigenze di calcolo diverse.
Vuoi saperne di più su TF.js? Consulta la guida ufficiale di TensorFlow.js.
Le funzionalità principali di TensorFlow.js includono:
- Supporto multipiattaforma: TF.js può essere utilizzato sia nei browser web sia in Node.js, offrendo un'ampia flessibilità di deployment.
- Più backend: supporta CPU, WebGL per l'accelerazione GPU, WebAssembly (WASM) e WebGPU per operazioni avanzate.
- Funzionalità offline: i modelli possono essere eseguiti direttamente nel browser senza connessione Internet, rendendolo ideale per sviluppare applicazioni web reattive.
Per gli scenari di deployment e informazioni più approfondite, consulta la sezione Opzioni di deployment con TensorFlow.js.
Sì, TensorFlow.js consente di distribuire modelli YOLO26 in ambienti Node.js. Questo abilita applicazioni di machine learning lato server che sfruttano la potenza di calcolo di un server e l'accesso ai dati lato server. I casi d'uso tipici includono l'elaborazione dei dati in tempo reale e le pipeline di machine learning sui server backend.
Per iniziare con il deployment su Node.js, consulta la guida Eseguire TensorFlow.js in Node.js di TensorFlow.