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

Convolutional Neural Network (CNN)

Сверточная нейронная сеть (CNN) обучается извлекать признаки изображений с помощью общих фильтров, перемещаемых по входным данным. Разбираем её слои, свойства, ключевые модели и сравнение CNN с ViT.

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

Как работает CNN#

CNN повторяет несколько типов слоёв в этапах, каждый из которых работает с более низким разрешением, чем предыдущий:

  • Слои свёртки: каждый слой перемещает набор обучаемых фильтров, обычно размером 3×3, по высоте и ширине входных данных. Каждый фильтр формирует один канал выходной карты признаков, поэтому слой с 64 фильтрами выдаёт 64 канала.
  • Нормализация и активация: Пакетная нормализация поддерживает выходные значения каждого слоя в стабильном диапазоне во время обучения, а нелинейная функция активации, например ReLU или SiLU, позволяет последовательности слоёв представлять не только одно линейное преобразование.
  • Уменьшение разрешения: Максимальный пулинг или свёртка с шагом 2 уменьшают высоту и ширину вдвое, увеличивая рецептивное поле последующих слоёв и сокращая вычисления. Во многих современных архитектурах разрешение уменьшается преимущественно с помощью свёрток с шагом.
  • Голова: при классификации изображений глобальный средний пулинг сводит каждый конечный канал к одному числу, а полносвязный слой преобразует эти числа в оценки классов. В моделях обнаружения и сегментации вместо этой головы используются слои, предсказывающие рамки или попиксельные маски.

Ключевые свойства CNN#

Три свойства объясняют, почему свёртки подходят для изображений. Локальная связность означает, что каждый выход зависит только от небольшой окрестности входных данных, что соответствует сильной корреляции соседних пикселей. Благодаря разделению весов один фильтр обрабатывает всё изображение, поэтому количество параметров не зависит от размера входных данных. Эквивариантность относительно сдвига означает, что при сдвиге входных данных карта признаков сдвигается на такое же расстояние. Поэтому шаблон, изученный в одном углу, распознаётся повсюду, а слои пулинга дополнительно обеспечивают некоторую устойчивость к небольшим сдвигам. Вместе эти свойства формируют индуктивное смещение CNN — встроенные предположения, которые позволяют ей обучаться на меньшем количестве изображений, чем требуется трансформеру.

Приведённый ниже фрагмент кода на PyTorch сравнивает свёрточный слой и полносвязный слой, применённые к одному RGB-изображению размером 224×224.

import torch
from torch import nn

image = torch.randn(1, 3, 224, 224)

# 64 learnable 3x3 filters, each reused at every position of the RGB image
conv = nn.Conv2d(in_channels=3, out_channels=64, kernel_size=3, padding=1)

# A fully connected layer mapping the same flattened image to only 64 numbers
dense = nn.Linear(3 * 224 * 224, 64)

conv_params = sum(p.numel() for p in conv.parameters())
dense_params = sum(p.numel() for p in dense.parameters())
print(f"Conv2d: output {tuple(conv(image).shape)}, {conv_params:,} parameters")
print(f"Linear: output {tuple(dense(image.flatten(1)).shape)}, {dense_params:,} parameters")

Он выводит Conv2d: output (1, 64, 224, 224), 1,792 parameters и Linear: output (1, 64), 9,633,856 parameters. Благодаря разделению весов свёртка формирует 64 карты признаков полного разрешения всего из 1,792 параметров, а полносвязному слою нужно в 5,376 раз больше параметров, чтобы выдать лишь 64 числа.

Знаковые архитектуры CNN#

  • LeNet-5 (1998): сеть Янна Лекуна для распознавания рукописных цифр задала структуру из чередующихся свёрточных слоёв и слоёв пулинга с последующими полносвязными слоями; её использовали в коммерческих системах для чтения банковских чеков.
  • AlexNet (2012): обученная на двух GPU с активациями ReLU и дропаутом, она победила в соревновании ILSVRC 2012 с ошибкой тестирования top-5 15.3%, тогда как у занявшей второе место модели она составила 26.2%.
  • VGG (2014): показала, что последовательное объединение небольших свёрток 3×3 в сеть глубиной от 16 до 19 слоёв с весами значительно повышает точность на ImageNet.
  • ResNet (2015): остаточные соединения позволили обучать сети глубиной до 152 слоёв, а ансамбль ResNet победил в ILSVRC 2015.
  • U-Net (2015): CNN типа энкодер-декодер с пропускающими соединениями, ставшая стандартной архитектурой для сегментации биомедицинских изображений.
  • ConvNeXt (2022): модернизированная ResNet с элементами дизайна эпохи трансформеров, достигающая точности top-1 на ImageNet 87.8% и превосходящая Swin Transformer в обнаружении объектов на COCO.

Где применяются CNN#

  • Обнаружение объектов: одностадийные детекторы на основе CNN находят и классифицируют объекты за один прямой проход — достаточно быстро для обработки видео с камер, телефонов и встроенных плат.
  • Анализ медицинских изображений: CNN типа U-Net сегментируют органы, опухоли и поражения на снимках КТ и МРТ, где важна метка каждого пикселя.
  • Оценка позы: CNN предсказывают ключевые точки тела для анализа спортивных результатов, эргономики и фитнес-приложений.
  • Сигналы, отличные от изображений: свёртки одномерного типа обрабатывают звуковые волны и временные ряды с датчиков, а двумерные CNN классифицируют спектрограммы при распознавании речи.

CNN и визуальные трансформеры#

Визуальный трансформер (ViT) разбивает изображение на фрагменты и связывает каждый фрагмент со всеми остальными с помощью самовнимания, поэтому глобальный контекст доступен уже с первого слоя. За более слабое индуктивное смещение приходится платить: исходная ViT уступала ResNet сравнимого размера при обучении только на ImageNet и сравнялась с ними или превзошла их лишь после предварительного обучения на 14–300 миллионах изображений. Вычислительная стоимость механизма внимания растёт пропорционально квадрату количества фрагментов, из-за чего обработка изображений высокого разрешения обходится дорого; стоимость свёртки растёт лишь линейно с количеством пикселей. Поэтому во многих современных моделях используются оба подхода: свёрточные этапы работают с высоким разрешением, а внимание добавляется там, где карта признаков имеет небольшой размер. YOLO26 использует именно такой подход: блоки Conv (свёртка, пакетная нормализация и SiLU) и блоки C3k2 выполняют основную работу, а многоголовое самовнимание применяется только к карте признаков с шагом 32 — сетке 20×20 для изображения 640×640.

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

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

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

Узнай, как 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. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

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

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