Yolo 비전 선전
선전
지금 참여하기
용어집

깊이 추정

스테레오, ToF, LiDAR, 단안 딥러닝 등 이미지에서 깊이 추정으로 깊이 맵을 생성하여 로봇 공학, AR/VR 및 3D 인식을 지원하는 방법을 알아보세요.

깊이 추정은 컴퓨터 비전(CV)의 기본 작업으로 컴퓨터 비전(CV)의 기본 작업입니다. 카메라에 대한 장면 내 물체의 거리를 결정하는 작업입니다. 이미지의 각 픽셀에 대한 깊이 값을 계산합니다, 이 프로세스는 표준 2차원 데이터를 풍부한 3D 표현(흔히 뎁스 맵이라고도 함)으로 변환합니다. 이 기능은 기계가 공간 관계를 인식하여 환경을 탐색하고 물체를 조작하고 이해할 수 있도록 하는 데 필수적입니다, 사물을 조작하고, 인간의 시각 시스템과 마찬가지로 세상의 기하학적 구조를 이해할 수 있습니다.

깊이 추정 메커니즘

깊이 추정은 하드웨어 집약적인 액티브 센싱부터 소프트웨어 기반 딥러닝(DL) 접근 방식에 이르기까지 다양합니다.

  • 스테레오 비전: 인간의 양안 시력에서 영감을 얻었습니다, 스테레오 비전 시스템은 두 대의 카메라를 를 사용합니다. 좌우 이미지 사이의 물체의 수평적 위치 차이인 디스패리티를 분석하여 거리를 분석하여 알고리즘이 수학적으로 삼각 측량할 수 있습니다. 이 방법은 신뢰할 수 있는 특징 매칭에 크게 의존합니다.
  • 단안 깊이 추정: 이 기술은 단일 2D 이미지에서 깊이를 추정하는 기술로, 단일 이미지에는 명시적인 깊이 정보가 없기 때문에 단일 이미지에는 명시적인 깊이 정보가 부족하기 때문에 어려운 작업입니다. 최신 컨볼루션 신경망(CNN) 은 물체의 크기, 원근감, 폐색과 같은 단안 단서를 인식하기 위해 방대한 데이터 세트를 학습합니다. 단안 깊이 예측에 대한 연구가 크게 발전했습니다, 표준 카메라가 3D 구조를 유추할 수 있게 되었습니다.
  • 액티브 센서(LiDAR 및 ToF): 패시브 카메라 시스템과 달리 액티브 센서는 다음과 같은 신호를 방출합니다. 거리를 측정합니다. LiDAR(빛 감지 및 거리 측정)은 레이저 펄스를 사용하여 를 사용하여 정밀한 3D 포인트 클라우드를 생성합니다. 비행 시간 거리 측정(ToF) 카메라 는 빛이 센서로 돌아오는 데 걸리는 시간을 측정합니다. 이러한 기술은 학습에 자주 사용되는 정확도 높은 실측 데이터를 제공하며 머신 러닝(ML) 모델을 훈련하는 데 자주 사용되는 고정밀 실측 데이터를 제공합니다.

실제 애플리케이션

3차원을 인식하는 능력은 다양한 산업 분야에서 중요한 기능을 제공합니다.

자율 시스템 및 로보틱스

자율주행차 분야에서 깊이 추정은 안전과 내비게이션에 필수적입니다. 자율주행차는 카메라 데이터와 LiDAR를 결합하여 장애물을 detect , 다른 차량과의 거리를 추정하고 도로의 실시간 지도를 구축합니다. 마찬가지로 로봇 공학에서는 깊이 인식 기능을 통해 자동화된 팔이 물품의 위치와 모양을 정확하게 판단하여 "픽 앤 플레이스" 작업을 수행할 수 있습니다. 제조 자동화 워크플로우

증강 현실(AR)

증강 현실 경험이 몰입감을 주려면 가상 객체가 실제 세계와 사실적으로 상호작용해야 합니다. 깊이 추정 은 모바일 디바이스가 공간의 형상을 파악하여 가상의 가구나 캐릭터를 바닥에 배치하거나 실제 오브젝트 뒤에 숨길 수 있게 함으로써 바닥에 배치하거나 실제 오브젝트 뒤에 숨길 수 있어(오클루전) 사용자 경험을 크게 개선할 수 있습니다.

Python 예제: YOLO11 사용한 거리 근사치

전용 뎁스 모델이 존재하지만 개발자는 종종 2D를 사용합니다. 물체 감지 보정 데이터와 함께 대략적인 거리. 그리고 ultralytics 라이브러리는 솔루션 모듈을 통해 이를 간소화하여 사용자가 다음을 수행할 수 있도록 합니다. 바운딩 박스 위치를 기반으로 추적된 오브젝트의 거리를 추정할 수 있습니다.

다음 코드는 사용 방법을 보여줍니다. YOLO11 을 사용하여 객체를 track 카메라로부터 대략적인 거리를 계산하는 방법을 보여줍니다.

import cv2
from ultralytics import YOLO, solutions

# Load the YOLO11 model for object detection
model = YOLO("yolo11n.pt")

# Initialize the DistanceCalculation solution
# This estimates distance based on bounding box centroids
dist_obj = solutions.DistanceCalculation(names=model.names, view_img=True)

# Open a video file or camera stream
cap = cv2.VideoCapture("path/to/video.mp4")

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break

    # Track objects and calculate distance
    tracks = model.track(im0, persist=True, show=False)
    im0 = dist_obj.start_process(im0, tracks)

    # Display result (or save/process further)
    cv2.imshow("Distance Estimation", im0)
    if cv2.waitKey(1) == ord("q"):
        break

cap.release()
cv2.destroyAllWindows()

깊이 추정과 관련 개념 비교

AI 생태계에서 깊이 추정을 유사한 용어와 구별하는 것이 중요합니다:

  • 3D 물체 감지: 깊이 추정 깊이 추정이 모든 픽셀에 거리 값을 할당하는 반면, 3D 물체 감지는 특정 물체를 식별하는 데 중점을 둡니다. 특정 물체를 식별하고 그 주위에 3D 경계 상자 (직육면체)를 를 배치하는 데 중점을 둡니다. 3D 감지는 "자동차의 위치와 크기"를 알려주는 반면, 깊이 추정은 전체 장면의 도로와 배경을 포함한 전체 장면의 지오메트리를 제공합니다.
  • 거리 계산: 이 는 일반적으로 두 특정 지점 사이 또는 카메라에서 특정 물체까지의 선형 공간을 측정하는 것을 말합니다. (종종 2D 휴리스틱을 사용)까지의 선형 공간을 측정하는 것을 말합니다(위의 코드 예시에서 볼 수 있듯이). 깊이 추정은 완전한 지형을 생성하는 조밀한 픽셀 단위의 예측 작업으로 뷰의 완전한 지형도를 생성합니다.
  • 광학 흐름: 프레임 사이의 물체의 프레임 사이의 물체의 겉으로 보이는 움직임을 측정합니다. 광학 흐름은 깊이(모션에서 구조)를 추론하는 데 사용할 수 있지만, 기본 출력은 정적 거리 맵이 아닌 모션 벡터 필드입니다.

공간 AI의 발전

최근 제너레이티브 AI와 기초 모델의 발전으로 모델은 2D와 3D 사이의 간극을 더욱 좁히고 있습니다. 다음과 같은 기술 신경 방사 필드(NeRF) 는 희박한 2D 이미지를 사용하여 복잡한 3D 장면을 재구성합니다. 복잡한 3D 장면을 재구성하는 데 사용되며, 기본 깊이 원칙에 크게 의존합니다. 모델 최적화가 모델 최적화가 개선됨에 따라 엣지 디바이스에서 매우 정확한 깊이 추정이 가능해지면서 차세대 스마트 드론의 원동력이 되고 있습니다, 서비스 로봇, 공간 컴퓨팅 디바이스 등을 지원합니다.

Ultralytics 커뮤니티 가입

AI의 미래에 동참하세요. 글로벌 혁신가들과 연결하고, 협력하고, 성장하세요.

지금 참여하기