Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас
Глоссарий

Свёрточная операция

Explore the fundamentals of convolution in computer vision. Learn how kernels and feature maps power [YOLO26](https://docs.ultralytics.com/models/yolo26/) for real-time AI.

Свертка — это фундаментальная математическая операция, которая служит основным строительным блоком современных систем компьютерного зрения (CV) и глубокого обучения (DL). В контексте обработки изображений свертка включает в себя перемещение небольшого фильтра, часто называемого ядром, по входному изображению для создания карты значимых характеристик. Этот процесс позволяет моделям искусственного интеллекта (ИИ) автоматически изучать и идентифицировать такие шаблоны, как края, текстуры и формы, без вмешательства человека. В отличие от традиционного машинного обучения (ML), которое часто требует ручного извлечения характеристик, свертка позволяет сетям построить иерархическое понимание визуальных данных, начиная с простых линий и продвигаясь к сложным объектам, таким как лица или транспортные средства.

Как работает свертка (Convolution)

Операция работает путем пропускания фильтра через входные данные, выполнения элементарного умножения и суммирования результатов для получения одного значения для каждой позиции. Этот выходной сигнал известен как карта признаков.

  • Ядро: это небольшая матрица чисел (весов), которая обнаруживает определенные особенности. Например , оператор Собела — это особый тип ядра, используемый для detect или горизонтальных краев.
  • Скользящее окно: ядро перемещается по изображению с определенным шагом, называемым «шагом». Этот процесс пространственнойфильтрации сохраняет взаимосвязь между пикселями, что имеет решающее значение для понимания изображений.
  • Иерархия слоев: в глубоких архитектурах, таких как сверточные нейронные сети (CNN), начальные слои захватывают низкоуровневые детали, а более глубокие слои объединяют их в высокоуровневые концепции.

Свертка и связанные концепции

Чтобы полностью понять суть свертки, полезно отличать ее от похожих терминов, которые часто встречаются в литературе по нейронным сетям (NN):

  • Кросс-корреляция и свертка: с математической точки зрения, истинная свертка предполагает переворот ядра перед его применением. Однако большинство фреймворков глубокого обучения, включая PyTorch , реализуют кросс-корреляцию (скольжение без переворота), но называют ее «сверткой», поскольку веса обучаются во время тренировки, что делает различие между переворот и не переворот несущественным для производительности.
  • Свертка против внимания: в то время как свертка обрабатывает информацию локально (соседние пиксели), механизм внимания позволяет модели одновременно соотносить удаленные части изображения. Современные архитектуры, такие как YOLO26, часто используют высокооптимизированные сверточные слои для поддержания скорости вывода в реальном времени, поскольку слои внимания могут быть более вычислительно сложными.

Применение в реальном мире

The efficiency of convolution has enabled AI to revolutionize various industries by powering robust perception systems:

  1. Медицинская диагностика: в области искусственного интеллекта в здравоохранении свертка помогает анализировать высокоразрешающие МРТ-сканы. Используя специальные ядра, предназначенные для выделения аномалий, модели могут detect признаки опухолей или переломов с точностью, сопоставимой с точностью человеческих экспертов.
  2. Автономная навигация: самоуправляемые автомобили используют свертку для обнаружения объектов в реальном времени. По мере движения автомобиля сверточные слои обрабатывают видеопоток, мгновенно идентифицируя пешеходов, разделительные линии и дорожные знаки, что является важнейшим компонентом ИИ в автомобильной безопасности.

Python с Ultralytics

Вы можете просматривать слои свертки в современных моделях с помощью Python. В следующем примере загружается файл YOLO26 модель и проверяет, что ее начальный слой использует стандартную сверточную операцию, которая реализуется с помощью torch.nn.

import torch.nn as nn
from ultralytics import YOLO

# Load the latest YOLO26 model
model = YOLO("yolo26n.pt")

# Access the first layer of the model's backbone
first_layer = model.model.model[0]

# Verify it is a Convolutional layer
if isinstance(first_layer.conv, nn.Conv2d):
    print("Success: The first layer is a standard convolution.")
    print(f"Kernel size: {first_layer.conv.kernel_size}")

Почему свертка важна для Edge AI

Сверточные операции легко поддаются оптимизации, что делает их идеальным решением для развертывания Edge AI в условиях ограниченных вычислительных ресурсов . Поскольку одно и то же ядро используется для всего изображения (совместное использование параметров), модель требует значительно меньше памяти, чем более старые архитектуры с полной связью. Такая эффективность позволяет запускать передовые модели на смартфонах и устройствах IoT.

Для команд, которые хотят использовать эти операции для настраиваемых наборов данных, Ultralytics предоставляет удобную среду для аннотирования изображений и обучения моделей на основе свертки без необходимости управления сложной инфраструктурой. Используя перенос обучения, вы можете точно настроить предварительно обученные веса свертки для распознавания новых объектов с минимальным объемо м обучающих данных.

Присоединяйтесь к сообществу Ultralytics

Присоединяйтесь к будущему ИИ. Общайтесь, сотрудничайте и развивайтесь вместе с мировыми новаторами

Присоединиться сейчас