Convolutional Neural Network (CNN)
Узнай, как свёрточные нейронные сети (CNNs) лежат в основе современного компьютерного зрения. Изучи слои, применения и запуск Ultralytics YOLO26 для ИИ в реальном времени.
Сверточная нейронная сеть (CNN) — это специализированная архитектура глубокого обучения, предназначенная для обработки данных с топологией, напоминающей сетку, прежде всего цифровых изображений. Вдохновленные биологическим строением зрительной коры, CNN уникальным образом сохраняют пространственные взаимосвязи во входных данных. В отличие от традиционных нейронных сетей, которые преобразуют изображение в длинный список чисел, CNN анализируют небольшие перекрывающиеся области изображения и автоматически обучаются иерархии признаков — от простых границ и текстур до сложных форм и объектов. Благодаря этой способности CNN стали основой современных систем компьютерного зрения (CV).
Как работают сверточные нейронные сети#
Мощь CNN заключается в способности преобразовывать сложное изображение в форму, которую проще обрабатывать, не теряя признаки, критически важные для получения точного предсказания. Это достигается с помощью конвейера отдельных слоев, которые преобразуют входной объем в выходной класс или значение:
- Сверточный слой: Это основной строительный блок. Он использует набор обучаемых фильтров (или ядер), которые скользят по входному изображению подобно лучу фонарика. В каждой позиции фильтр выполняет математическую операцию, называемую сверткой, создавая карту признаков, на которой выделяются определенные шаблоны, например горизонтальные линии или цветовые градиенты.
- Функция активации: После свертки к выходным данным применяется нелинейная функция. Наиболее распространенный вариант — ReLU (выпрямленная линейная единица), которая преобразует отрицательные значения пикселей в ноль. Это добавляет нелинейность и позволяет сети изучать сложные шаблоны, выходящие за рамки простых линейных зависимостей.
- Слой подвыборки: Этот слой, также называемый субдискретизацией, уменьшает размерность карт признаков. Такие методы, как максимальная подвыборка, сохраняют в области только наиболее важные признаки (наибольшие значения), что снижает вычислительную нагрузку и помогает предотвратить переобучение.
- Полносвязный слой: На заключительном этапе обработанные признаки преобразуются в плоский вектор и передаются в стандартную нейронную сеть (NN). Этот слой использует высокоуровневые признаки, выявленные предыдущими слоями, для выполнения окончательной классификации или предсказания, например «кошка» или «собака».
Практические применения#
CNN преобразовали целые отрасли, автоматизировав визуальные задачи с точностью, превосходящей человеческие возможности.
- Медицинская диагностика: В здравоохранении CNN помогают радиологам быстрее человеческого глаза выявлять аномалии на медицинских снимках. Например, модели глубокого обучения анализируют МРТ- и КТ-исследования, чтобы обнаруживать ранние признаки опухолей или переломов. Исследования в области ИИ в радиологии показывают, как эти инструменты повышают единообразие и скорость диагностики.
- Автономные системы: Беспилотные автомобили в значительной степени полагаются на CNN для восприятия окружающей обстановки. Такие модели, как YOLO26, используют эффективные базовые сети CNN для выполнения обнаружения объектов в реальном времени, распознавая пешеходов, дорожные знаки и другие транспортные средства для принятия решений за доли секунды.
CNN и трансформеры для компьютерного зрения (ViT)#
Хотя CNN долгое время были стандартом для задач компьютерного зрения, появилась более новая архитектура — трансформер для компьютерного зрения (ViT).
- CNN обрабатывают изображения с помощью локальных признаков и отличаются высокой эффективностью на небольших наборах данных благодаря «индуктивному смещению» (они предполагают, что соседние пиксели связаны между собой). Они особенно хорошо подходят для сценариев, требующих вывода в реальном времени на периферийных устройствах.
- ViT разбивают изображения на фрагменты и обрабатывают их с помощью механизмов глобального самовнимания. Это позволяет им улавливать дальние зависимости между участками изображения, но для эффективного обучения им обычно требуются огромные наборы данных и большие вычислительные ресурсы.
Пример реализации#
Современные библиотеки упрощают использование моделей на основе CNN. Пакет ultralytics предоставляет доступ к передовым моделям, таким как YOLO26, в которых используются высокооптимизированные архитектуры CNN для быстрого вывода.
В следующем примере показано, как загрузить предварительно обученную модель CNN и выполнить предсказание:
from ultralytics import YOLO
# Load a YOLO26 model, which uses an advanced CNN architecture
model = YOLO("yolo26n.pt")
# Run inference on an image to identify objects
results = model("https://ultralytics.com/images/bus.jpg")
# Display the prediction results
results[0].show()Инструменты для разработки#
Разработка CNN поддерживается надежной экосистемой инструментов с открытым исходным кодом. Инженеры обычно используют такие фреймворки, как PyTorch или TensorFlow, для создания пользовательских архитектур. Эти библиотеки предоставляют низкоуровневые операции с тензорами, необходимые для выполнения свертки и обратного распространения ошибки.
Командам, стремящимся упростить жизненный цикл проектов компьютерного зрения — от сбора данных до развертывания, — Ultralytics Platform предлагает комплексное решение. Платформа упрощает сложные рабочие процессы, позволяя разработчикам сосредоточиться на применении CNN для решения бизнес-задач, а не на управлении инфраструктурой. Кроме того, модели можно экспортировать в такие форматы, как ONNX или TensorRT, для высокопроизводительного развертывания на периферийных устройствах.









