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

OpenCV

OpenCV — библиотека с открытым исходным кодом, содержащая более 2 500 алгоритмов для обработки изображений и компьютерного зрения. Что она делает, как сочетается с глубоким обучением, примеры кода.

OpenCV (библиотека компьютерного зрения с открытым исходным кодом) — это библиотека с открытым исходным кодом, включающая более 2 500 оптимизированных алгоритмов для обработки изображений и компьютерного зрения (CV). Она читает и записывает изображения и видео, захватывает потоки с камер, фильтрует и преобразует пиксели, обнаруживает и сопоставляет признаки, калибрует камеры и запускает обученные нейронные сети. OpenCV появилась в Intel Research в 1999 году. Она написана на C++ и имеет привязки для Python и Java; начиная с версии 4.5.0 библиотека распространяется по лицензии Apache 2.0. В Python её можно установить с помощью pip install opencv-python и импортировать как cv2; каждое изображение представлено массивом NumPy.

Для чего нужна OpenCV#

  • Ввод и вывод изображений и видео: чтение и запись распространённых форматов изображений, декодирование видеофайлов и захват кадров с камер и сетевых потоков.
  • Обработка изображений: изменение размера, преобразование цветового пространства, размытие, повышение резкости, пороговая обработка и морфологические операции — стандартные этапы предобработки перед подачей изображения в модель.
  • Обнаружение и сопоставление признаков: детекторы углов и ключевых точек, например SIFT и ORB, находят характерные точки, которые можно сопоставить между изображениями для склейки панорам, локализации объектов и визуальной SLAM. После истечения срока действия патента SIFT вошёл в основную библиотеку в версии 4.4.0.
  • Геометрия камеры: калибровка устраняет искажения объектива, гомографии корректируют перспективу, а стереосопоставление восстанавливает глубину по данным двух камер для робототехники и 3D-реконструкции.
  • Анализ видео: вычитание фона отделяет движущиеся объекты от статичной сцены, а оптический поток измеряет перемещение пикселей между кадрами.
  • Инференс с помощью глубоких нейронных сетей: модуль dnn загружает обученные модели, например в формате ONNX, и запускает их на CPU или GPU без установленного фреймворка глубокого обучения.

Этот классический конвейер находит контуры фигур на изображении без какой-либо обученной модели:

import urllib.request

import cv2
import numpy as np

# Download a sample image and decode it into a BGR NumPy array
data = urllib.request.urlopen("https://ultralytics.com/images/bus.jpg").read()
image = cv2.imdecode(np.frombuffer(data, np.uint8), cv2.IMREAD_COLOR)

# Classical pipeline: grayscale, blur to suppress noise, then Canny edge detection
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
blurred = cv2.GaussianBlur(gray, (5, 5), 0)
edges = cv2.Canny(blurred, 50, 150)

# Trace connected edge pixels into contours, the outlines of shapes in the scene
contours, _ = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
print(f"Image shape: {image.shape}, contours found: {len(contours)}")

Выводится Image shape: (1080, 810, 3), contours found: 1449: изображение размером 1080×810 с тремя цветовыми каналами и 1 449 отдельных контуров, полученных по его краям. OpenCV хранит цветовые каналы в порядке синий-зелёный-красный (BGR), поэтому перед передачей изображений в библиотеки, ожидающие RGB, сначала нужно выполнить преобразование cv2.cvtColor.

OpenCV и фреймворки глубокого обучения#

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

Ultralytics YOLO26 принимает кадры NumPy в формате BGR из OpenCV напрямую, а results[0].plot() возвращает кадр с аннотациями в том же формате. Поэтому модель можно встроить в цикл OpenCV без преобразований. Этот пример выполняет один проход такого цикла на тестовом изображении из пакета ultralytics:

import cv2
from ultralytics import YOLO
from ultralytics.utils import ASSETS

# OpenCV загружает встроенное тестовое изображение как массив NumPy в формате BGR
frame = cv2.imread(str(ASSETS / "bus.jpg"))

# YOLO26 принимает кадр OpenCV напрямую
model = YOLO("yolo26n.pt")
results = model(frame)

# plot() возвращает массив BGR с аннотациями, который OpenCV может отображать или сохранять
annotated = results[0].plot()
cv2.imwrite("bus_annotated.jpg", annotated)

Внутри цикла обработки видео те же три вызова выполняются для каждого кадра из cv2.VideoCapture, а cv2.imshow или cv2.VideoWriter заменяет cv2.imwrite.

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

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

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

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

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

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