Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

Feature Maps

Карта признаков — это сетка откликов фильтра по всему изображению, которая показывает, где встречается распознаваемый им шаблон. Рассматриваются вычисление, формы и визуализация.

Карта признаков — это выход одного фильтра в слое свёрточной нейронной сети (CNN): двумерная сетка чисел, показывающая, насколько сильно шаблон фильтра проявляется в каждой точке входных данных. Свёрточный слой с 64 фильтрами создаёт 64 карты признаков, объединённые в тензор формы «каналы × высота × ширина», который становится входом следующего слоя. Карты признаков ранних слоёв выделяют границы, цвета и текстуры, а карты глубоких слоёв реагируют на части объектов и целые объекты. Карта активаций — синоним; весь объединённый тензор слоя также часто называют его картой признаков.

Как вычисляется карта признаков#

Фильтр, также называемый ядром, — это небольшая сетка обученных весов модели, обычно размером 3×3 для каждого входного канала. Свёртка перемещает его по входным данным. В каждой позиции значения в области перекрытия перемножаются поэлементно, затем суммируются вместе со смещением, образуя одно выходное число. Высокие значения показывают участки, где входные данные соответствуют шаблону фильтра. Высота и ширина выходных данных зависят от размера входа, размера ядра k, дополнения p и шага s по формуле floor((input + 2p - k) / s) + 1. Поэтому при шаге 1 ядро 3×3 с дополнением 1 сохраняет размер, а при шаге 2 уменьшает его вдвое.

Приведённый ниже фрагмент применяет ядро для обнаружения вертикальных границ к небольшому изображению, у которого левая часть тёмная, а правая — светлая.

import torch
import torch.nn.functional as F

# Чёрно-белое изображение 8x8: левая половина тёмная, правая светлая, поэтому на нём есть одна вертикальная граница
image = torch.zeros(1, 1, 8, 8)
image[..., 4:] = 1.0

# Ядро Собеля 3x3, реагирующее на вертикальные границы
kernel = torch.tensor([[-1.0, 0.0, 1.0], [-2.0, 0.0, 2.0], [-1.0, 0.0, 1.0]]).view(1, 1, 3, 3)

# Перемещаем ядро по изображению, чтобы получить карту признаков
feature_map = F.conv2d(image, kernel)

print(feature_map.shape)
print(feature_map[0, 0, 0])

Выводятся torch.Size([1, 1, 6, 6]) и tensor([0., 0., 4., 4., 0., 0.]). Без дополнения изображение 8×8 даёт карту размером 6×6 (8 − 3 + 1 = 6), ненулевые значения которой находятся только в двух столбцах, где ядро пересекает границу. Обученные CNN усваивают множество фильтров первого слоя, работающих подобно этому ядру Собеля, а также фильтров, настроенных на цвета и текстуры.

Карты признаков в слоях сети#

По мере прохождения данных через CNN карты признаков обычно уменьшаются по высоте и ширине, а число каналов растёт. Каждый шаг уменьшения разрешения вдвое увеличивает рецептивное поле исходного изображения, которое обобщает каждая позиция глубокой карты. Детекторы используют карты с нескольких уровней глубины, поскольку у этого компромисса есть обе стороны: карта с шагом 8 для изображения 640×640 — это сетка 80×80, достаточно подробная для обнаружения маленьких объектов, а карта с шагом 32 — сетка 20×20, ячейки которой охватывают достаточно большую часть изображения для распознавания крупных объектов. Пирамида признаков (FPN) объединяет карты с разных уровней, чтобы каждый масштаб получал и точное положение, и высокоуровневый смысл. Бэкбон, создающий эти карты, — основной этап извлечения признаков модели.

  • Фильтр: содержит обученные веса, а карта признаков — это результат их применения к одному входному изображению. Один фильтр создаёт одну карту признаков для каждого изображения.
  • Функция активации: Функция, например ReLU, применяемая к карте признаков поэлементно после свёртки. Карта существует и до, и после применения функции — в виде значений до активации и после активации.
  • Эмбеддинги: Обычно эмбеддинг — это одномерный вектор, полученный пулингом или разворачиванием карты признаков. Он сохраняет информацию о содержимом изображения, отбрасывая сведения о расположении. Эмбеддинги используются для поиска по сходству и кластеризации, а пространственные карты признаков — для задач, требующих информации о местоположении, таких как семантическая сегментация.
  • Карты значимости: Карта значимости — это отдельная тепловая карта, которая объясняет одно предсказание и часто вычисляется по картам признаков и их градиентам.

Изучение и визуализация карт признаков#

Построение отдельных каналов в виде изображений в оттенках серого показывает, на какие сигналы реагирует каждый фильтр. Карты первых слоёв напоминают копии фотографии, обработанные фильтрами выделения границ, а карты глубоких слоёв выглядят как размытые пятна поверх частей объектов. В PyTorch зарегистрированный с помощью register_forward_hook прямой хук сохраняет карты признаков любого слоя во время инференса. В глубоких слоях сотни каналов, поэтому инструменты объяснимого ИИ обычно сводят их к одной тепловой карте. Grad-CAM взвешивает каждый канал поздней карты признаков по среднему градиенту оценки класса и суммирует каналы, выделяя области изображения, повлиявшие на предсказание. В nano-модели YOLO26 изображение размером 640×640 поступает в голову обнаружения в виде трёх карт признаков размером 64×80×80, 128×40×40 и 256×20×20, а предсказание с помощью visualize=True сохраняет наложение LayerCAM _cam.jpg, в котором каждая позиция этих карт взвешивается по её положительному градиенту относительно каждого предсказанного класса.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ повышает безопасность дорожного движения, улучшает помощь водителю и автоматизацию автомобилей, делая дороги умнее.
Подробнее
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения