Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

Feature Pyramid Network (FPN)

Una rete piramidale di feature (FPN) combina feature semantiche profonde con feature dettagliate ad alta risoluzione, consentendo ai rilevatori di individuare oggetti grandi e piccoli.

Una rete piramidale di caratteristiche (FPN) è un'architettura neck che trasforma le mappe delle caratteristiche a più risoluzioni del backbone in una piramide in cui ogni livello contiene solide informazioni semantiche ed è abbinato a una gamma di dimensioni degli oggetti. Introdotta da Facebook AI Research in Feature Pyramid Networks for Object Detection (CVPR 2017), aggiunge un percorso dall'alto verso il basso e connessioni laterali a una rete neurale convoluzionale (CNN) standard, così da poter rilevare gli oggetti piccoli ai livelli ad alta risoluzione, che conservano comunque le conoscenze dei livelli profondi sull'aspetto degli oggetti. Le FPN e le loro evoluzioni si collocano tra il backbone e la testa di rilevamento nella maggior parte delle moderne architetture di rilevamento degli oggetti e dei modelli di segmentazione di istanze.

Perché i rilevatori hanno bisogno di caratteristiche a più scale#

Un backbone CNN esegue il downsampling man mano che procede in profondità, quindi la sua ultima mappa delle caratteristiche ha semantica forte e risoluzione grossolana: con stride 32, un oggetto di 20 pixel copre meno di una cella della griglia. Le mappe delle caratteristiche iniziali conservano i dettagli spaziali fini e rispondono soprattutto a bordi e texture. Prima dell'FPN, i rilevatori avevano tre opzioni, ognuna con un costo. Eseguire la rete su una piramide di immagini a più scale è accurato, ma rallenta l'esecuzione di diverse volte. Prevedere solo dall'ultima mappa, come faceva l'originale Faster R-CNN, è veloce ma poco efficace sugli oggetti piccoli. Prevedere da più stadi del backbone, come fa SSD, significa iniziare da un livello alto della rete per evitare le caratteristiche deboli di basso livello e, di conseguenza, perdere le mappe ad alta risoluzione necessarie per gli oggetti piccoli. L'FPN offre la copertura multi-scala di una piramide di immagini con un singolo passaggio forward; Faster R-CNN con FPN ha stabilito un nuovo stato dell'arte per un singolo modello nel rilevamento su COCO, raggiungendo 5 fotogrammi al secondo su una GPU.

Come funziona un'FPN#

Un'FPN costruisce la propria piramide in tre passaggi:

  1. Percorso dal basso verso l'alto: il normale passaggio forward del backbone. L'FPN prende l'ultima mappa delle caratteristiche di ciascuno stadio, etichettate da C2 a C5 con stride 4, 8, 16 e 32 in una ResNet.
  2. Percorso dall'alto verso il basso: a partire dal livello più grossolano, ogni mappa viene sovracampionata di un fattore 2 con interpolazione nearest-neighbor, trasferendo la semantica di alto livello verso i livelli più fini.
  3. Connessioni laterali: una convoluzione 1×1 porta ogni mappa del backbone a un'ampiezza comune di 256 canali; il risultato viene sommato elemento per elemento alla mappa sovracampionata del livello superiore e una convoluzione 3×3 rende più uniforme la somma, riducendo gli artefatti del sovracampionamento. Le uscite, da P2 a P5, hanno tutte 256 canali, quindi una testa di previsione con pesi condivisi viene eseguita su ogni livello.

Torchvision include un modulo FeaturePyramidNetwork già pronto che prende le mappe del backbone come dizionario ordinato.

from collections import OrderedDict

import torch
from torchvision.ops import FeaturePyramidNetwork

# Uscite del backbone per un'immagine 640x640 con stride 8, 16 e 32 (numero di canali di ResNet-50)
features = OrderedDict(
    c3=torch.randn(1, 512, 80, 80),
    c4=torch.randn(1, 1024, 40, 40),
    c5=torch.randn(1, 2048, 20, 20),
)

# Le convoluzioni laterali 1x1 e il percorso dall'alto verso il basso assegnano a ogni livello gli stessi 256 canali
fpn = FeaturePyramidNetwork(in_channels_list=[512, 1024, 2048], out_channels=256)
pyramid = fpn(features)

for name, level in pyramid.items():
    print(name, tuple(level.shape))

Stampa c3 (1, 256, 80, 80), c4 (1, 256, 40, 40) e c5 (1, 256, 20, 20): ogni livello mantiene le proprie dimensioni spaziali e tutti e tre ora condividono la stessa ampiezza di canale, il che consente a un'unica testa di operare a ogni scala.

Applicazioni#

  • Immagini aeree e satellitari: Veicoli, persone ed edifici nell'analisi di immagini satellitari e nelle riprese effettuate con droni spesso occupano solo pochi pixel, perciò i rilevatori si affidano ai livelli della piramide con stride 4 e 8.
  • Segmentazione di istanze: Mask R-CNN, disponibile in Detectron2, assegna ogni regione a un livello della piramide in base alle sue dimensioni prima di prevederne il riquadro e la maschera.
  • Segmentazione panottica: Panoptic FPN aggiunge alla stessa piramide un ramo di segmentazione semantica, etichettando elementi come strade e cielo insieme agli oggetti conteggiabili.
  • Veicoli autonomi: Un singolo fotogramma della telecamera contiene camion vicini che occupano metà dell'immagine e pedoni e semafori lontani alti pochi pixel.

FPN a confronto con PANet, BiFPN e altri neck#

Il percorso dall'alto verso il basso dell'FPN ha dato origine a una famiglia di neck che modificano il flusso delle informazioni tra i livelli:

  • PANet: aggiunge un percorso dal basso verso l'alto dopo quello dall'alto verso il basso dell'FPN, accorciando il percorso dalle caratteristiche fini e ben localizzate ai livelli superiori. PANet si è classificata al primo posto nella sfida di segmentazione di istanze COCO 2017.
  • BiFPN: il neck di EfficientDet ripete più volte la fusione dall'alto verso il basso e dal basso verso l'alto, rimuove i nodi che hanno un solo input e apprende un peso per ogni input che fonde.
  • NAS-FPN: una disposizione piramidale individuata tramite ricerca di architetture neurali e impilata più volte.
  • U-Net: fonde anch'essa caratteristiche grossolane e fini tramite connessioni skip, quindi esegue una sola previsione alla risoluzione completa; questo la rende più adatta alla segmentazione pixel per pixel che al rilevamento multi-scala.

YOLO26 usa un neck FPN-plus-PAN che fonde i livelli tramite concatenazione: due passaggi di sovracampionamento trasferiscono il contesto con stride 32 al livello con stride 8, due convoluzioni con stride riportano i dettagli verso l'alto e la testa esegue previsioni da P3, P4 e P5 con stride 8, 16 e 32. La sua variante yolo26-p2.yaml estende la piramide con un livello P2 con stride 4 per gli oggetti molto piccoli, aumentando il costo computazionale non fuso di YOLO26n da 6.1 a 9.5 GFLOPs.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning