Ultralytics YOLO27:
Get Started

Guida introduttiva a Ultralytics YOLOv5 🚀 su AzureML#

Benvenuto nella guida introduttiva di Ultralytics YOLOv5 per Microsoft Azure Machine Learning (AzureML)! Questa guida ti accompagnerà nella configurazione di YOLOv5 su un'istanza di calcolo AzureML, dalla creazione di un ambiente virtuale fino al training e all'esecuzione dell'inferenza con il modello.

Che cos'è Azure?#

Azure è la piattaforma completa di cloud computing di Microsoft. Offre un'ampia gamma di servizi, tra cui potenza di calcolo, database, strumenti di analisi, funzionalità di machine learning e soluzioni di rete. Azure consente alle organizzazioni di creare, distribuire e gestire applicazioni e servizi tramite data center gestiti da Microsoft, facilitando la migrazione dei carichi di lavoro dall'infrastruttura locale al cloud.

Che cos'è Azure Machine Learning (AzureML)?#

Azure Machine Learning (AzureML) è un servizio cloud specializzato per lo sviluppo, il training e il deployment di modelli di machine learning. Offre un ambiente collaborativo con strumenti adatti a data scientist e sviluppatori di qualsiasi livello. Le funzionalità principali includono il machine learning automatizzato (AutoML), un'interfaccia drag-and-drop per la creazione di modelli e un potente SDK Python per un controllo più dettagliato del ciclo di vita del ML. AzureML semplifica l'integrazione della modellazione predittiva nelle applicazioni.

Prerequisiti#

Per seguire questa guida, ti servono un'iscrizione Azure attiva e l'accesso a un'area di lavoro AzureML. Se non hai ancora configurato un'area di lavoro, consulta la documentazione ufficiale di Azure per crearne una.

Creare un'istanza di calcolo#

Un'istanza di calcolo in AzureML offre ai data scientist una workstation gestita basata sul cloud.

  1. Vai all'area di lavoro AzureML.
  2. Nel riquadro a sinistra, seleziona Calcolo.
  3. Vai alla scheda Istanze di calcolo e fai clic su Nuovo.
  4. Configura l'istanza selezionando le risorse CPU o GPU adatte alle tue esigenze di training o inferenza.
Azure ML create compute instance interface

Apri un terminale#

Quando l'istanza di calcolo è in esecuzione, puoi accedere direttamente al suo terminale da AzureML Studio.

  1. Vai alla sezione Notebook nel riquadro a sinistra.
  2. Trova la tua istanza di calcolo nel menu a discesa in alto.
  3. Fai clic sull'opzione Terminale sotto il browser dei file per aprire un'interfaccia a riga di comando per la tua istanza.

Posizione del pulsante per aprire il terminale in Azure ML

Configurare ed eseguire YOLOv5#

Ora configuriamo l'ambiente ed eseguiamo Ultralytics YOLOv5.

1. Crea un ambiente virtuale#

È consigliabile usare un ambiente virtuale per gestire le dipendenze. Useremo Conda, preinstallato nelle istanze di calcolo AzureML. Per una guida dettagliata alla configurazione di Conda, consulta la guida introduttiva a Conda di Ultralytics.

Crea un ambiente Conda (ad esempio, yolov5env) con una versione specifica di Python e attivalo:

conda create --name yolov5env -y python=3.10 # Create a new Conda environment
conda activate yolov5env                     # Activate the environment
conda install pip -y                         # Ensure pip is installed

2. Clona il repository YOLOv5#

Clona il repository ufficiale Ultralytics YOLOv5 da GitHub usando Git:

git clone https://github.com/ultralytics/yolov5 # Clone the repository
cd yolov5                                       # Navigate into the directory

3. Installa le dipendenze#

Installa i pacchetti Python necessari elencati nel file requirements.txt. Installiamo anche ONNX per poter esportare i modelli.

pip install -r requirements.txt # Install core dependencies
pip install "onnx>=1.12.0"      # Install ONNX for exporting

4. Esegui le attività con YOLOv5#

Una volta completata la configurazione, puoi eseguire il training, la validazione, l'inferenza e l'esportazione del tuo modello YOLOv5.

  • Esegui il training del modello su un dataset come COCO128. Per maggiori dettagli, consulta il tutorial Esegui il training su dati personalizzati.

    # Start training using yolov5s pretrained weights on the COCO128 dataset
    python train.py --data coco128.yaml --weights yolov5s.pt --img 640 --epochs 10 --batch 16
  • Valida le prestazioni del modello sottoposto a training usando metriche come precisione, richiamo e mAP. Esegui python val.py --help per visualizzare tutte le opzioni.

    # Validate the yolov5s model on the COCO128 validation set
    python val.py --weights yolov5s.pt --data coco128.yaml --img 640
  • Esegui l'inferenza su nuove immagini o video. Consulta la guida introduttiva a YOLOv5 per conoscere le origini dati supportate.

    # Run inference with yolov5s on sample images
    python detect.py --weights yolov5s.pt --source data/images --img 640
  • Esporta il modello in formati diversi, come ONNX, TensorRT o CoreML, per il deployment. Consulta il tutorial Esportazione del modello e la pagina Integrazione ONNX.

    # Export yolov5s to ONNX format
    python export.py --weights yolov5s.pt --include onnx --img 640

Usare un notebook#

Se preferisci un'esperienza interattiva, puoi eseguire questi comandi all'interno di un notebook AzureML. Dovrai creare un kernel IPython personalizzato collegato al tuo ambiente Conda.

Creare un nuovo kernel IPython#

Esegui i seguenti comandi nel terminale dell'istanza di calcolo:

# Ensure your Conda environment is active
# conda activate yolov5env

# Install ipykernel if not already present
conda install ipykernel -y

# Create a new kernel linked to your environment
python -m ipykernel install --user --name yolov5env --display-name "Python (yolov5env)"

Dopo aver creato il kernel, aggiorna il browser. Quando apri o crei un file notebook .ipynb, seleziona il nuovo kernel ("Python (yolov5env)") dal menu a discesa dei kernel in alto a destra.

Eseguire comandi nelle celle del notebook#

  • Celle Python: Il codice nelle celle Python verrà eseguito automaticamente usando il kernel yolov5env selezionato.

  • Celle Bash: Per eseguire comandi shell, usa il comando magico %%bash all'inizio della cella. Ricordati di attivare l'ambiente Conda in ogni cella bash, perché queste celle non ereditano automaticamente il contesto dell'ambiente del kernel del notebook.

    %%bash
    source activate yolov5env # Activate environment within the cell
    
    # Example: Run validation using the activated environment
    python val.py --weights yolov5s.pt --data coco128.yaml --img 640

Congratulazioni! Hai configurato ed eseguito correttamente Ultralytics YOLOv5 su AzureML. Per approfondire, dai un'occhiata alle altre integrazioni Ultralytics o alla documentazione dettagliata di YOLOv5. Potresti trovare utile anche la documentazione di AzureML per scenari avanzati come il training distribuito o il deployment di un modello come endpoint.

Domande frequenti#

  • Un'istanza CPU è sufficiente per l'inferenza e brevi test su COCO128, ma per il training vero e proprio serve una dimensione GPU. Seleziona una macchina virtuale GPU quando crei l'istanza di calcolo e verifica che PyTorch la rilevi con python -c "import torch; print(torch.cuda.is_available())".

  • Le celle Bash non ereditano l'ambiente del kernel del notebook. Inizia ogni cella %%bash con source activate yolov5env oppure esegui le celle Python con il kernel Python (yolov5env) che hai creato.

  • I file nella condivisione dei file dell'area di lavoro montata in ~/cloudfiles rimangono disponibili dopo l'arresto e sono visibili da altre istanze di calcolo. Tutto ciò che si trova altrove sul disco dell'istanza viene conservato finché l'istanza esiste, ma va perso se l'istanza viene eliminata.

  • Sì. pip install ultralytics ti offre il training, la validazione e l'esportazione di YOLO26 tramite la CLI yolo nello stesso ambiente Conda. Consulta la guida introduttiva ad AzureML per la procedura basata sul pacchetto.

Commenti