L’analisi delle immagini è una delle competenze centrali di AI-102: devi saper scegliere quale servizio e quali visual feature attivare in un dato scenario, distinguendo ciò che i modelli prebuilt coprono da ciò che richiede un modello custom. Il servizio di riferimento è Azure AI Vision, e in particolare l’API Image Analysis 4.0, costruita sul foundation model Florence e in grado di restituire più feature con una singola chiamata.

Image Analysis 4.0 e le visual features

Con Image Analysis 4.0 richiedi le capability tramite il parametro visualFeatures, combinando solo quelle che servono per ridurre latenza e costo. Le principali sono:

  • Caption — una singola frase descrittiva dell’intera immagine (human-readable).
  • DenseCaptions — fino a 10 didascalie, una per regione rilevante, ciascuna con bounding box.
  • Tags — etichette di contenuto (oggetti, azioni, scene) con confidence.
  • Objects — object detection con bounding box per ciascun oggetto.
  • People — rilevamento delle persone con bounding box (utile per conteggio o blur).
  • SmartCrops — ritagli suggeriti che preservano il soggetto principale.
  • Read — OCR integrato per il testo presente nell’immagine.

Caption e dense captions

La differenza chiave: Caption descrive tutta l’immagine, DenseCaptions descrive le singole regioni. Se lo scenario richiede accessibilità (alt-text globale) usi Caption; se serve indicizzare o annotare parti diverse della stessa foto, usi DenseCaptions. Attenzione: entrambe usano il modello Florence e non sono disponibili in tutte le region (vedi trappole).

Tagging, object detection e people detection

Tags risponde a “cosa c’è” senza posizione; Objects aggiunge la localizzazione con bounding box. Quando lo scenario parla di “dove si trova” o “quanti”, punta a Objects o People, non a Tags. People detection è il modo corretto per contare persone o anonimizzare volti/figure, mentre il riconoscimento di identità è un servizio diverso (Face) con accesso limitato.

Smart crop

SmartCrops genera thumbnail mantenendo il soggetto centrale; puoi specificare uno o più aspect ratio. È la risposta giusta quando serve generare anteprime automatiche per cataloghi o feed, evitando ritagli fissi che taglierebbero il soggetto.

Multimodal embeddings e Vision retrieval

Per la ricerca semantica sulle immagini, Image Analysis 4.0 espone le operazioni di multimodal embedding: vectorizeImage e vectorizeText proiettano immagini e testo nello stesso spazio vettoriale. Puoi così indicizzare vettori di immagini e cercarli con una query in linguaggio naturale (es. “cane che corre sulla spiaggia”) calcolando la cosine similarity, senza alcun training. È il pattern del Vision retrieval, spesso integrato in un indice di Azure AI Search con campi vettoriali. Anche questa capability è region-limited.

Prebuilt vs custom

I modelli prebuilt (tagging, object detection generici, caption) coprono soggetti comuni e non richiedono dati né training. Quando il dominio è specifico — classi non riconosciute dai prebuilt (componenti industriali, difetti di produzione, specie particolari) — servono modelli custom:

  • Custom Vision per image classification e object detection su categorie tue, con etichettatura e training gestiti (anche esportabili come modelli edge).
  • Image Analysis 4.0 model customization, che addestra un modello custom su Florence con poche immagini (few-shot) sfruttando il foundation model.

La regola d’esame: se i prebuilt non riconoscono le tue classi, non alzare la soglia di confidence né sperare in tag generici — devi addestrare un modello custom.

visualFeatures=Caption,DenseCaptions,Tags,Objects,People,SmartCrops,Read

Trappole tipiche d’esame

  • Caption/DenseCaptions/SmartCrops/multimodal embeddings restituiscono errore o non sono disponibili → la risorsa è in una region non supportata: crea la risorsa Azure AI Vision in una delle region abilitate (es. East US, West US, West Europe, France Central, North Europe, Korea Central, Southeast Asia). Non è un problema di codice.
  • Serve riconoscere categorie di dominio (es. tipi di prodotto) che i prebuilt non identificanoCustom Vision (o model customization 4.0), non Image Analysis prebuilt.
  • Serve la posizione degli elementi, non solo l’elencoObjects/People/DenseCaptions (bounding box), non Tags.
  • Serve ricerca di immagini con query testuali senza trainingmultimodal embeddings (vectorizeImage/vectorizeText) + ricerca per similarità, non object detection.
  • Serve generare thumbnail mantenendo il soggettoSmartCrops con aspect ratio, non un ridimensionamento fisso lato applicazione.