Scopri U-Net, la potente architettura CNN per la segmentazione semantica. Scopri le sue applicazioni in campo medico, satellitare e di imaging autonomo.
U-Net è un'architettura specializzata di rete neurale convoluzionale (CNN) originariamente sviluppata per compiti di segmentazione di immagini biomediche. La sua caratteristica struttura a forma di U consente una localizzazione e una segmentazione precisa degli oggetti all'interno delle immagini, anche con dati di addestramento limitati. Introdotta da Olaf Ronneberger, Philipp Fischer e Thomas Brox nel 2015, U-Net è diventata rapidamente influente al di là del suo ambito iniziale grazie alla sua efficacia in diverse applicazioni di computer vision (CV) che richiedono una classificazione a livello di pixel.
L'architettura della U-Net è composta da due percorsi principali: un percorso di contrazione (encoder) e un percorso di espansione (decoder), che formano la caratteristica forma a "U".
Il design di U-Net offre diversi vantaggi, in particolare per le attività di segmentazione:
Anche se inizialmente è stata progettata per l'imaging biomedico, l'architettura di U-Net è versatile:
U-Net si concentra principalmente sulla segmentazione semantica, assegnando un'etichetta di classe a ogni pixel. Questa differisce dalla segmentazione delle istanze, che distingue le singole istanze di oggetti appartenenti alla stessa classe. Mentre U-Net può essere adattata per la segmentazione delle istanze, modelli come Mask R-CNN sono spesso più adatti a questo compito. Modelli moderni come Ultralytics YOLOv8 offrono anch'essi potenti capacità di segmentazione, spesso ottimizzate per la velocità e le prestazioni in tempo reale, potenzialmente utilizzando approcci architetturali diversi influenzati dai progressi del deep learning.
L'addestramento di una U-Net richiede dati annotati a livello di pixel, dove ogni pixel delle immagini di addestramento viene etichettato con la classe corrispondente. Questo processo, noto come annotazione dei dati, spesso richiede molto lavoro. I modelli U-Net sono in genere implementati e addestrati con i più diffusi framework di deep learning, come ad esempio PyTorch e TensorFlow.