TensorFlow fornisce una serie di strumenti di visione artificiale (CV) e di classificazione delle immagini. Questo documento introduce alcuni di questi strumenti e fornisce una panoramica delle risorse per aiutarti a iniziare con le attività CV più comuni.
Librerie e strumenti di visione
TensorFlow fornisce strumenti CV attraverso le librerie Keras di livello superiore e il modulo tf.image
di livello inferiore. Per la maggior parte dei casi d'uso, le librerie Keras saranno più convenienti delle alternative TensorFlow integrate. Ma se le opzioni Keras non si adattano al tuo caso d'uso o desideri un controllo di livello inferiore sulla preelaborazione delle immagini, potresti aver bisogno degli strumenti TensorFlow di livello inferiore.
Keras CV
Se hai appena iniziato con un progetto CV e non sei sicuro di quali librerie e strumenti avrai bisogno, KerasCV è un buon punto di partenza. KerasCV è una libreria di componenti CV modulari costruita su Keras Core. KerasCV include modelli, livelli, metriche, callback e altri strumenti che estendono l'API Keras di alto livello per le attività CV. Le API KerasCV possono aiutare con l'aumento dei dati, la classificazione, il rilevamento di oggetti, la segmentazione, la generazione di immagini e altri flussi di lavoro CV comuni. Puoi utilizzare KerasCV per assemblare rapidamente pipeline di formazione e inferenza all'avanguardia e di livello produttivo.
Utilità Keras
tf.keras.utils
fornisce diverse utilità di preelaborazione delle immagini di alto livello. Ad esempio, tf.keras.utils.image_dataset_from_directory
genera un tf.data.Dataset
da una directory di immagini su disco.
tf.image
Se KerasCV non si adatta al tuo caso d'uso, puoi utilizzare tf.image
e tf.data
per scrivere le tue pipeline o livelli di aumento dei dati.
Il modulo tf.image
contiene varie funzioni per l'elaborazione delle immagini, come tf.image.flip_left_right
, tf.image.rgb_to_grayscale
, tf.image.adjust_brightness
, tf.image.central_crop
e tf.image.stateless_random*
.
L'API tf.data
ti consente di creare pipeline di input complesse da parti semplici e riutilizzabili.
Set di dati TensorFlow
TensorFlow Datasets è una raccolta di set di dati pronti per l'uso con TensorFlow. Molti dei set di dati (ad esempio, MNIST , Fashion-MNIST e TF Flowers ) possono essere utilizzati per sviluppare e testare algoritmi di visione artificiale.
Dove iniziare
Le seguenti risorse ti aiuteranno a iniziare a utilizzare gli strumenti CV di TensorFlow e Keras.
- KerasCV : documentazione e risorse per KerasCV.
- Guide per sviluppatori KerasCV : guide per eseguire attività CV comuni utilizzando KerasCV. Se non conosci KerasCV, la classificazione con KerasCV è un buon punto di partenza.
Tutorial di TensorFlow : la documentazione principale di TensorFlow (questa guida) include una serie di tutorial sull'elaborazione di CV e immagini.
- Classificazione di base: classificare immagini di abbigliamento : addestra un modello di rete neurale per classificare immagini di abbigliamento, come scarpe da ginnastica e camicie.
Carica e preelabora immagini : carica e preelabora un set di dati di immagine in tre modi:
- Utilizzare le utilità di preelaborazione Keras di alto livello per leggere una directory di immagini sul disco.
- Scrivi la tua pipeline di input da zero utilizzando
tf.data
. - Scarica un set di dati dall'ampio catalogo disponibile in TensorFlow Datasets .
Carica dati video : carica e preelabora dati video AVI utilizzando il set di dati sull'azione umana UCF101 .
Rete neurale convoluzionale (CNN) : addestra una semplice rete neurale convoluzionale (CNN) per classificare le immagini CIFAR utilizzando l' API Keras .
Classificazione delle immagini : classifica le immagini dei fiori utilizzando un modello
tf.keras.Sequential
e carica i dati utilizzandotf.keras.utils.image_dataset_from_directory
.Trasferimento di apprendimento e messa a punto : classificare immagini di cani e gatti utilizzando l'apprendimento di trasferimento da una rete preaddestrata.
Aumento dei dati : aumenta la diversità del tuo set di allenamento applicando trasformazioni casuali (ma realistiche), come la rotazione delle immagini.
Segmentazione delle immagini : eseguire la segmentazione delle immagini utilizzando un U-Net modificato.
Classificazione video con una rete neurale convoluzionale 3D : addestra una rete neurale convoluzionale 3D (CNN) per la classificazione video utilizzando il set di dati di riconoscimento delle azioni UCF101 .
Trasferisci l'apprendimento per la classificazione dei video con MoViNet : utilizza un modello MoViNet pre-addestrato e il set di dati UCF101 per classificare i video per un'attività di riconoscimento delle azioni.