Узнайте, как карты признаков действуют как «глаза» CNN. Узнайте, как Ultralytics использует эти внутренние представления для detect и обеспечения работы компьютерного зрения.
Карта характеристик — это основной результат, получаемый при обработке входного изображения или предыдущего слоя в нейронной сети с помощью сверточного фильтра. В контексте компьютерного зрения (CV) эти карты служат внутренним представлением данных, выделяя определенные паттерны, такие как края, текстуры или сложные геометрические формы, которые модель научилась распознавать. По сути, карты особенностей действуют как «глаза» сверточной нейронной сети (CNN), преобразуя исходные значения пикселей в значимые абстракции, которые облегчают такие задачи, как обнаружение и классификация объектов.
Создание карты признаков основано на математической операции, известной как свертка. В ходе этого процесса небольшая матрица обучаемых параметров, называемая ядром или фильтром, скользит по входным данным. В каждой позиции ядро выполняет элементное умножение и суммирование, в результате чего в выходной сетке получается одно значение.
Карты признаков являются «машинным отделением» современных приложений искусственного интеллекта, позволяя системам интерпретировать визуальные данные с пониманием, подобным человеческому .
Хотя карты признаков являются внутренними структурами, понимание их измерений имеет решающее значение при проектировании архитектур. Следующее PyTorch демонстрирует, как один сверточный слой преобразует входное изображение в карту признаков.
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}")
Полезно отличать карты признаков от похожих терминов, чтобы избежать путаницы во время обучения модели:
В передовых архитектурах, таких как YOLO26, карты признаков играют ключевую роль в «основе» и «головке» модели. Основа извлекает признаки в разных масштабах (пирамида признаков), обеспечивая эффективное detect модели detect мелких, detect и крупных объектов. Пользователи, использующие Ultralytics для обучения, могут визуализировать работу этих моделей, косвенно наблюдая за эффективностью базовых карт признаков с помощью таких метрик, как точность и полнота. Для оптимизации этих карт требуется обширное обучение на аннотированных наборах данных, часто с использованием таких методов, как извлечение признаков, для переноса знаний из предварительно обученных моделей на новые задачи.