Scopri come le mappe delle caratteristiche fungono da occhi delle CNN. Scopri come Ultralytics utilizza queste rappresentazioni interne per detect e potenziare la visione artificiale.
Una mappa delle caratteristiche è il risultato fondamentale prodotto quando un filtro convoluzionale elabora un'immagine in ingresso o un livello precedente all'interno di una rete neurale. Nel contesto della visione artificiale (CV), queste mappe fungono da rappresentazione interna dei dati, evidenziando modelli specifici come bordi, texture o forme geometriche complesse che il modello ha imparato a riconoscere. Essenzialmente, le mappe delle caratteristiche fungono da "occhi" di una rete neurale convoluzionale (CNN), trasformando i valori grezzi dei pixel in astrazioni significative che facilitano compiti come il rilevamento e la classificazione degli oggetti.
La creazione di una mappa delle caratteristiche è guidata dall'operazione matematica nota come convoluzione. Durante questo processo, una piccola matrice di parametri apprendibili, chiamata kernel o filtro, scorre sui dati di input. In ogni posizione, il kernel esegue la moltiplicazione e la somma elemento per elemento, ottenendo un singolo valore nella griglia di output.
Le mappe delle caratteristiche sono il motore delle moderne applicazioni di intelligenza artificiale, consentendo ai sistemi di interpretare i dati visivi con una comprensione simile a quella umana .
Sebbene le mappe delle caratteristiche siano strutture interne, comprenderne le dimensioni è fondamentale nella progettazione delle architetture. Il seguente PyTorch dimostra come un singolo strato convoluzionale trasforma un'immagine in ingresso in una mappa delle caratteristiche.
import torch
import torch.nn as nn
# Define a convolution layer: 1 input channel, 1 output filter, 3x3 kernel
conv_layer = nn.Conv2d(in_channels=1, out_channels=1, kernel_size=3, bias=False)
# Create a random dummy image (Batch Size=1, Channels=1, Height=5, Width=5)
input_image = torch.randn(1, 1, 5, 5)
# Pass the image through the layer to generate the feature map
feature_map = conv_layer(input_image)
print(f"Input shape: {input_image.shape}")
# The output shape will be smaller (3x3) due to the kernel size and no padding
print(f"Feature Map shape: {feature_map.shape}")
È utile distinguere le mappe delle caratteristiche da termini simili per evitare confusione durante l' addestramento del modello:
In architetture avanzate come YOLO26, le mappe delle caratteristiche svolgono un ruolo fondamentale nella "spina dorsale" e nella "testa" del modello. La spina dorsale estrae caratteristiche a diverse scale (piramide delle caratteristiche), garantendo che il modello sia in grado di detect efficacemente detect oggetti piccoli che grandi. Gli utenti che utilizzano la Ultralytics per l'addestramento possono visualizzare le prestazioni di questi modelli, osservando indirettamente l'efficacia delle mappe delle caratteristiche sottostanti attraverso metriche quali l'accuratezza e il richiamo. L'ottimizzazione di queste mappe comporta un addestramento approfondito su set di dati annotati, spesso utilizzando tecniche come l' estrazione delle caratteristiche per trasferire le conoscenze dai modelli pre-addestrati a nuovi compiti.