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

Data Preprocessing

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

Предобработка данных — это набор преобразований, которые превращают исходные данные в чистый числовой формат с единообразной структурой, ожидаемый моделью машинного обучения (ML); эти преобразования одинаково применяются при обучении и инференсе. Для табличных данных это означает обработку пропущенных значений, преобразование категорий в числа и масштабирование признаков. Для изображений — декодирование файлов, изменение их размера до входного размера сети, упорядочивание цветовых каналов и масштабирование значений пикселей. Предобработка фактически является частью модели: сеть, обученная на изображениях RGB со значениями в диапазоне 0–1, выдаёт ненадёжные предсказания, получая изображения BGR со значениями от 0 до 255, даже если её веса не изменились.

Основные этапы предобработки#

  • Очистка данных: Удаление дубликатов, повреждённых файлов и недопустимых значений, а также исправление несогласованных меток или единиц измерения.
  • Импутация: Заполнение пропущенных значений статистической величиной, например медианой столбца, оценкой модели или отдельной категорией «пропущено», либо удаление строк со слишком большим количеством пропусков.
  • Кодирование: Преобразование категорий в числа: унитарное кодирование для неупорядоченных категорий, например цветов, порядковые коды для упорядоченных категорий, например размеров, и целочисленные индексы для названий классов.
  • Масштабирование и нормализация: При масштабировании по минимуму и максимуму признак приводится к диапазону 0–1, а при стандартизации из него вычитают среднее и делят результат на стандартное отклонение. Благодаря этому в моделях, основанных на расстояниях, признак, измеренный в миллиметрах, не подавляет признак, измеренный в метрах, а градиентный спуск сходится быстрее. Многие предварительно обученные на ImageNet модели в torchvision ожидают, что каждый RGB-канал стандартизован со средними значениями 0.485, 0.456 и 0.406 и стандартными отклонениями 0.229, 0.224 и 0.225.
  • Изменение размера: Приведение каждого изображения к входному размеру сети: растяжением, центральной обрезкой или размещением в рамке с полями, когда изображение масштабируют, чтобы оно поместилось, а остаток заполняют полями — так объекты сохраняют пропорции.
  • Токенизация: Разбиение текста на токены и сопоставление каждому из них целочисленного идентификатора из фиксированного словаря.

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

Настраивай на обучающих данных, применяй ко всем#

Статистики, используемые при предобработке, например средние значения и стандартные отклонения признаков, значения для импутации и словари категорий, вычисляют только на обучающей выборке, сохраняют, а затем без изменений применяют к валидационным, тестовым данным и данным из рабочей среды. Если вычислить их для всего набора данных до разделения, информация из тестовой выборки повлияет на обучающие входные данные. Это разновидность утечки данных, которая завышает результаты оценки. Конвейер scikit-learn обеспечивает соблюдение этого правила: этапы предобработки настраиваются только на данных, переданных в fit. Разная предобработка во время обслуживания модели — например, другой метод изменения размера или декодер изображений — приводит к несоответствию между обучением и обслуживанием: модель показывает хорошие результаты при офлайн-оценке и хуже работает в рабочей среде.

Предобработка изображений для моделей компьютерного зрения#

Моделям изображений нужен фиксированный формат тензора. OpenCV декодирует изображения в массивы целых чисел размером 8 бит с порядком осей высота × ширина × канал и порядком каналов BGR, а сети PyTorch ожидают пакеты вещественных тензоров в порядке RGB с каналами на первом месте. Предсказание YOLO26 в Ultralytics автоматически выполняет такие шаги: изменяет размер каждого изображения так, чтобы его длинная сторона соответствовала imgsz — по умолчанию 640 пикселям — и при этом не искажает изображение; для моделей с фиксированной формой входа, экспортированных моделей, добавляет серые пиксели со значением 114, чтобы получить квадрат 640 × 640, а для моделей PyTorch дополняет размеры только до ближайшего значения, кратного шагу 32 пикселя; меняет порядок каналов BGR на RGB, переставляет оси массива так, чтобы каналы были на первом месте, и делит значения на 255. Скрипт ниже выполняет квадратное размещение в рамке с полями вручную с помощью OpenCV и NumPy:

import urllib.request

import cv2
import numpy as np

# Download a sample photo and read it as a BGR uint8 array of shape (height, width, 3)
urllib.request.urlretrieve("https://ultralytics.com/images/bus.jpg", "bus.jpg")
image = cv2.imread("bus.jpg")

# Resize so the longer side is 640 pixels, keeping the aspect ratio
scale = 640 / max(image.shape[:2])
resized = cv2.resize(image, None, fx=scale, fy=scale, interpolation=cv2.INTER_LINEAR)

# Letterbox: center the resized image on a 640x640 canvas of gray (114) padding
canvas = np.full((640, 640, 3), 114, dtype=np.uint8)
top, left = (640 - resized.shape[0]) // 2, (640 - resized.shape[1]) // 2
canvas[top : top + resized.shape[0], left : left + resized.shape[1]] = resized

# Reorder BGR to RGB and HWC to CHW, scale pixels to 0-1, and add a batch dimension
tensor = canvas[:, :, ::-1].transpose(2, 0, 1).astype(np.float32) / 255.0
batch = tensor[None]
print(f"{image.shape} uint8 -> {batch.shape} float32 in [{batch.min():.1f}, {batch.max():.1f}]")

Скрипт выводит (1080, 810, 3) uint8 -> (1, 3, 640, 640) float32 in [0.0, 1.0]: фотография размером 1080 × 810 превращается в пакет из одного изображения с форматом и диапазоном значений, ожидаемыми детектором PyTorch; по бокам остаются серые полосы шириной 80 пикселей.

  • Разметка данных: Создание эталонных целевых данных, например классов и рамок, которые предобработка затем преобразует в числовой формат, считываемый при обучении.
  • Конструирование признаков: Создание новых входных переменных на основе знаний о предметной области, например вычисление индекса массы тела по столбцам роста и веса.
  • Пакетная нормализация: Слой внутри сети, который стандартизует промежуточные активации при обучении и инференсе. Входная нормализация при предобработке выполняется один раз до того, как данные поступят в сеть.
  • Аугментация данных: Случайные преобразования, например отражения, сдвиги цветов и мозаики, которые применяются только при обучении для создания разнообразных копий каждого примера. Предобработка детерминирована и одинакова при обучении и инференсе.

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

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

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

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

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

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