Cos'è la Computer Vision
La Computer Vision (CV) è il campo dell'intelligenza artificiale che permette alle macchine di "vedere" e interpretare il contenuto di immagini e video. Per un computer, un'immagine è una matrice di numeri (pixel): la CV trasforma questi numeri in comprensione semantica — riconoscere oggetti, leggere testo, misurare distanze, identificare volti.
Punti chiave
- La Computer Vision converte i pixel di immagini e video in comprensione semantica utile a decisioni automatiche.
- Le reti neurali convoluzionali (CNN) sono il fondamento tecnico, oggi affiancate dai Vision Transformer.
- I task principali sono classificazione, object detection, segmentazione, OCR e face recognition.
- Il transfer learning consente risultati eccellenti con poche immagini, partendo da modelli pre-addestrati.
- Le applicazioni etiche (volti, privacy) richiedono conformità a GDPR e AI Act.
La disciplina ha subito una rivoluzione dal 2012, quando AlexNet — una rete neurale convoluzionale — ha superato drasticamente tutti i metodi tradizionali nella competizione ImageNet. Da allora, il deep learning è diventato l'approccio dominante per qualsiasi task di CV.
CNN: il fondamento
Le Convolutional Neural Networks (CNN) sono l'architettura su cui si fonda la Computer Vision moderna. Il principio chiave è la convoluzione: filtri (kernel) di piccole dimensioni (es. 3x3) scorrono sull'immagine, rilevando pattern locali.
Architettura CNN tipica
Input (immagine) → Conv + ReLU (estrazione feature) → Pooling (riduzione dimensionale) → [ripeti N volte] → Flatten → Fully Connected → Output (classificazione)
I primi layer convoluzionali catturano feature di basso livello (bordi, angoli, texture), mentre i layer più profondi combinano queste feature in concetti di alto livello (occhi, ruote, edifici). Questa gerarchia appresa automaticamente è ciò che rende le CNN così potenti: la rete impara da sola quali caratteristiche siano rilevanti, senza che un esperto debba programmarle a mano.
Le architetture CNN si sono evolute rapidamente:
- LeNet (1998): pioniera, usata per il riconoscimento di cifre scritte a mano.
- AlexNet (2012): ha reso il deep learning dominante nella CV.
- VGG (2014): dimostrò che la profondità (16-19 layer) migliora le prestazioni.
- ResNet (2015): connessioni residuali (skip connections) permettono reti con 100+ layer.
- EfficientNet (2019): scaling ottimale di profondità, larghezza e risoluzione.
Image classification
La classificazione di immagini è il task fondamentale: assegnare una o più etichette a un'immagine. Il dataset ImageNet (14 milioni di immagini, 1000 classi) è stato il benchmark di riferimento per anni.
Oggi la classificazione è un problema largamente risolto per i domini comuni (accuracy >95% su ImageNet). Le sfide si sono spostate su domini specialistici (medico, industriale) e su condizioni difficili (poca luce, occlusione, angolazioni inusuali). In ambito aziendale la classificazione abilita usi molto concreti: controllo qualità su linee di produzione, moderazione automatica dei contenuti, ordinamento di archivi fotografici e tagging di cataloghi e-commerce.
Per la valutazione si usano le stesse metriche degli algoritmi di classificazione tradizionali: accuracy, precision, recall, F1-score, calcolate attraverso la matrice di confusione.
Object detection e YOLO
L'object detection va oltre la classificazione: non solo identifica cosa c'è nell'immagine, ma anche dove, disegnando bounding box attorno a ogni oggetto rilevato.
Le architetture si dividono in due famiglie:
| Approccio | Modelli | Caratteristiche |
|---|---|---|
| Two-stage | R-CNN, Faster R-CNN | Alta accuracy, più lento. Prima propone regioni, poi classifica. |
| One-stage | YOLO, SSD, RetinaNet | Veloce (real-time), predice box e classi in un solo passo. |
YOLO (You Only Look Once) è il modello più popolare per il rilevamento in tempo reale. La versione attuale (YOLOv8/v9 di Ultralytics) raggiunge prestazioni eccellenti su GPU consumer e può essere fine-tunato su dataset personalizzati con poche centinaia di immagini annotate. Questo lo rende ideale per progetti applicati: conteggio di persone o veicoli, rilevamento di difetti, monitoraggio di scaffali nel retail o sicurezza sul lavoro, spesso eseguibili anche su dispositivi edge a basso costo.
Segmentazione
La segmentazione classifica ogni singolo pixel dell'immagine, offrendo un livello di dettaglio superiore ai bounding box:
- Semantic segmentation: assegna una classe a ogni pixel (es. "strada", "edificio", "cielo"). Non distingue le istanze individuali.
- Instance segmentation: distingue le singole istanze dello stesso oggetto (es. "persona 1", "persona 2"). Mask R-CNN e il modello di riferimento.
- Panoptic segmentation: combina i due approcci, coprendo sia "stuff" (cielo, strada) che "things" (auto, persone).
Modelli recenti come SAM (Segment Anything Model di Meta) hanno reso la segmentazione quasi universale: dati un punto o un box come prompt, SAM segmenta qualsiasi oggetto in qualsiasi immagine senza addestramento specifico.
OCR e face recognition
L'OCR (Optical Character Recognition) converte testo presente nelle immagini in testo digitale editabile. Le applicazioni spaziano dalla digitalizzazione di documenti storici alla lettura automatica di targhe, ricevute e moduli compilati a mano. Strumenti moderni come Tesseract (open source) e i servizi cloud (Google Vision, AWS Textract) combinano CNN per il rilevamento del testo e RNN/Transformer per il riconoscimento dei caratteri. Per le aziende è una leva concreta di automazione: estrarre dati da fatture e contratti, alimentare gestionali e ridurre l'inserimento manuale.
Il face recognition identifica o verifica l'identità di una persona dal volto. La pipeline tipica prevede: (1) face detection (localizzare il volto), (2) alignment (normalizzare la posa), (3) feature extraction (generare un embedding facciale), (4) matching (confrontare con un database). Le implicazioni etiche e di privacy sono significative e richiedono attenzione normativa (GDPR, AI Act): prima di adottare questi sistemi è essenziale valutare la base giuridica, la minimizzazione dei dati e la trasparenza verso le persone coinvolte.
Transfer learning nella CV
Il transfer learning è una pratica fondamentale nella CV: si parte da un modello pre-addestrato su un grande dataset (tipicamente ImageNet) e lo si adatta al proprio dominio specifico tramite fine-tuning.
Nella pratica, quasi nessuno addestra una CNN da zero. Il transfer learning permette di ottenere risultati eccellenti con poche centinaia di immagini, sfruttando le feature generiche apprese su milioni di immagini.
La strategia tipica è congelare i layer iniziali (che hanno appreso feature generiche come bordi e texture) e ri-addestrare solo gli ultimi layer sulla propria task. Più il dominio è diverso da ImageNet, più layer si ri-addestrano.
I Vision Transformer (ViT) stanno progressivamente sostituendo le CNN pure, applicando il meccanismo di self-attention delle reti neurali Transformer direttamente a patch di immagini. Modelli come CLIP (OpenAI) e DINO (Meta) abilitano comprensione visiva zero-shot, avvicinando la CV al NLP in un paradigma multimodale unificato.
Vuoi imparare ad applicarlo davvero?
Scopri i corsi e la formazione di Federico Boggia su AI, dati e digitale.