Cos'e la Computer Vision
La Computer Vision (CV) e il campo dell'intelligenza artificiale che permette alle macchine di "vedere" e interpretare il contenuto di immagini e video. Per un computer, un'immagine e una matrice di numeri (pixel): la CV trasforma questi numeri in comprensione semantica — riconoscere oggetti, leggere testo, misurare distanze, identificare volti.
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 e 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 e 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 piu profondi combinano queste feature in concetti di alto livello (occhi, ruote, edifici). Questa gerarchia appresa automaticamente e cio che rende le CNN cosi potenti.
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): dimostro che la profondita (16-19 layer) migliora le prestazioni.
- ResNet (2015): connessioni residuali (skip connections) permettono reti con 100+ layer.
- EfficientNet (2019): scaling ottimale di profondita, larghezza e risoluzione.
Image classification
La classificazione di immagini e il task fondamentale: assegnare una o piu etichette a un'immagine. Il dataset ImageNet (14 milioni di immagini, 1000 classi) e stato il benchmark di riferimento per anni.
Oggi la classificazione e 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).
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'e 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, piu 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) e il modello piu popolare per il rilevamento in tempo reale. La versione attuale (YOLOv8/v9 di Ultralytics) raggiunge prestazioni eccellenti su GPU consumer e puo essere fine-tunato su dataset personalizzati con poche centinaia di immagini annotate.
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.
Il face recognition identifica o verifica l'identita 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).
Transfer learning nella CV
Il transfer learning e 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 e congelare i layer iniziali (che hanno appreso feature generiche come bordi e texture) e ri-addestrare solo gli ultimi layer sulla propria task. Piu il dominio e diverso da ImageNet, piu 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.