Stereo Vision
Узнай, как стереозрение определяет глубину сцены в 3D для ИИ. Разберись, как оно работает, где применяется и как интегрировать его с новейшей Ultralytics YOLO26.
Стереозрение, также известное как стереоскопическое зрение, — это метод компьютерного зрения, позволяющий извлекать информацию о глубине в трёхмерном пространстве из цифровых изображений. Сравнивая два или более двумерных изображения одной сцены, снятых под немного разными углами, — подобно человеческому бинокулярному зрению, — системы ИИ могут точно вычислять расстояние до объектов. Эта возможность лежит в основе пространственного интеллекта, позволяя машинам ориентироваться в окружающей среде и безопасно взаимодействовать с физическими объектами.
Как работает стереозрение#
Процесс основан на поиске различий между изображениями с левой и правой камер. Главная сложность — задача соответствия, то есть поиск одних и тех же пикселей или признаков на обоих изображениях. Найдя соответствующие точки, система вычисляет горизонтальное смещение и строит карту диспаратности.
На карте диспаратности большие смещения указывают на близкие объекты, а меньшие — на далёкие. Затем с помощью триангуляции эта карта преобразуется в плотное трёхмерное облако точек. Если раньше для этих вычислений использовались преимущественно традиционные математические алгоритмы, то современные подходы всё чаще опираются на свёрточные нейронные сети (CNN) и глубокое обучение, чтобы повысить точность сопоставления признаков при сложном освещении или в областях без текстуры, как подробно описано в недавних исследованиях IEEE по компьютерному зрению.
Стереозрение и монокулярная оценка глубины#
Важно отличать стереозрение от методов оценки глубины, использующих только одну камеру. Монокулярная оценка глубины применяет модели глубокого обучения для прогнозирования трёхмерной структуры по одному двумерному изображению на основе таких визуальных признаков, как перспектива и затенение. Стереосистемы, напротив, измеряют глубину напрямую, используя геометрическую связь между двумя объективами. Хотя монокулярные методы требуют меньше вычислений, стереозрение обычно обеспечивает более точные измерения глубины в реальном времени, необходимые для критически важных систем безопасности.
Практическое применение ИИ#
Стереосистемы необходимы во многих отраслях, где требуется обнаружение трёхмерных объектов в реальном мире и понимание пространственной обстановки.
- Навигация автономных автомобилей: Беспилотные технологии компаний, таких как Waymo, используют стереокамеры для точной оценки расстояния до пешеходов, других автомобилей и препятствий в реальном времени. Эти точные данные о глубине передаются в системы прогнозного моделирования для планирования безопасных маршрутов.
- Автоматизация промышленной робототехники: Производственные роботы используют стереозрение для сложных задач захвата объектов из контейнеров. Точно вычисляя глубину и ориентацию разбросанных на конвейере деталей, роботизированные системы могут идеально расположить захваты, повышая эффективность процессов интеллектуального производства.
- Передовая медицинская визуализация: Хирургические роботы и диагностические системы используют стереоскопические камеры, чтобы предоставлять хирургам точное трёхмерное изображение анатомии пациента во время малоинвазивных процедур; эту тенденцию часто отмечают в недавних препринтах arXiv по медицинскому ИИ.
Интеграция ИИ со стереоданными#
Разработчики часто сочетают стереозрение с обнаружением объектов, чтобы определять и что находится в кадре, и как далеко это расположено. Для построения карт диспаратности обычно используют фреймворк OpenCV, часто в составе более широких конвейеров на базе PyTorch или TensorFlow, а модели ИИ выполняют восприятие. Ниже приведён концептуальный пример обнаружения объектов с помощью Ultralytics YOLO26 и получения их ограничивающих рамок, которые затем можно использовать для извлечения средних значений расстояния из соответствующей карты диспаратности OpenCV.
import cv2
from ultralytics import YOLO
# Load the recommended Ultralytics YOLO26 model for high-speed edge inference
model = YOLO("yolo26n.pt")
# Read the left camera frame (typically used as the primary frame for detection)
left_frame = cv2.imread("left_camera_frame.jpg")
# Run inference to detect objects in the scene
results = model(left_frame)
# Extract bounding boxes to later combine with a stereo disparity map
for result in results:
for box in result.boxes.xyxy:
x1, y1, x2, y2 = map(int, box[:4])
print(f"Detected object bounding box: [{x1}, {y1}, {x2}, {y2}]")
# Depth values can now be extracted from the disparity map within this specific regionДостижения и будущие тенденции#
Обучение и развёртывание современных моделей восприятия стало намного проще. С помощью таких инструментов, как платформа Ultralytics, команды могут безопасно аннотировать стереопары, обучать надёжные модели и экспортировать их в оптимизированные форматы, например TensorRT, для инференса с низкой задержкой на периферийных устройствах ИИ.
Последние достижения таких организаций, как Стэнфордская лаборатория компьютерного зрения и обучения, указывают на растущую тенденцию сочетать стереозрение с Vision Transformers (ViT) и базовыми моделями Google DeepMind, чтобы быстрее решать задачу соответствия. Кроме того, по мере развития мультимодальных моделей ИИ таких лидеров, как Anthropic и OpenAI, интеграция надёжных пространственных данных в 3D продолжит расширять возможности воплощённых ИИ-агентов воспринимать и понимать окружающий мир.










