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), которое часто требует ручного извлечения характеристик, свертка позволяет сетям построить иерархическое понимание визуальных данных, начиная с простых линий и продвигаясь к сложным объектам, таким как лица или транспортные средства.
Операция работает путем пропускания фильтра через входные данные, выполнения элементарного умножения и суммирования результатов для получения одного значения для каждой позиции. Этот выходной сигнал известен как карта признаков.
Чтобы полностью понять суть свертки, полезно отличать ее от похожих терминов, которые часто встречаются в литературе по нейронным сетям (NN):
The efficiency of convolution has enabled AI to revolutionize various industries by powering robust perception systems:
Вы можете просматривать слои свертки в современных моделях с помощью 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 в условиях ограниченных вычислительных ресурсов . Поскольку одно и то же ядро используется для всего изображения (совместное использование параметров), модель требует значительно меньше памяти, чем более старые архитектуры с полной связью. Такая эффективность позволяет запускать передовые модели на смартфонах и устройствах IoT.
Для команд, которые хотят использовать эти операции для настраиваемых наборов данных, Ultralytics предоставляет удобную среду для аннотирования изображений и обучения моделей на основе свертки без необходимости управления сложной инфраструктурой. Используя перенос обучения, вы можете точно настроить предварительно обученные веса свертки для распознавания новых объектов с минимальным объемо м обучающих данных.