Descubra como a estimativa de profundidade cria mapas de profundidade a partir de imagens - estéreo, ToF, LiDAR e aprendizagem profunda monocular - para alimentar a robótica, a AR/VR e a perceção 3D.
A estimativa da profundidade é uma tarefa fundamental na visão por computador (CV) que envolve a determinação a distância dos objectos numa cena em relação à câmara. Ao calcular o valor da profundidade para cada pixel numa imagem, Este processo transforma dados bidimensionais padrão numa representação 3D rica, frequentemente designada por mapa de profundidade. Esta capacidade é essencial para as máquinas perceberem as relações espaciais, permitindo-lhes navegar em ambientes, manipular objectos e compreender a geometria do mundo, tal como acontece com o sistema visual humano.
A estimativa da profundidade pode ser obtida através de vários métodos, desde a deteção ativa intensiva por hardware até abordagens de aprendizagem profunda (DL) orientadas para o software.
A capacidade de perceber a terceira dimensão desbloqueia funcionalidades críticas em vários sectores.
No domínio dos veículos autónomos, a estimativa da profundidade é vital para a segurança e a navegação. Os automóveis autónomos combinam dados da câmara com LiDAR para detect obstáculos, estimar a distância a outros veículos e construir um mapa da estrada em tempo real. Do mesmo modo, na robótica, a perceção de profundidade permite aos braços automatizados realizar operações de "recolha e colocação", avaliando com exatidão a posição e a forma dos artigos em fluxos de trabalho de automatização do fabrico.
Para realidade aumentada sejam imersivas, os objectos virtuais devem interagir de forma realista com o mundo físico. A estimativa da profundidade permite que os dispositivos móveis compreendam a geometria de uma divisão, permitindo que móveis ou personagens virtuais sejam colocados no no chão ou escondidos atrás de objectos do mundo real (oclusão), melhorando consideravelmente a experiência do utilizador.
Embora existam modelos de profundidade dedicados, os programadores utilizam frequentemente modelos 2D
deteção de objectos juntamente com os dados de calibração para
aproximar a distância. O ultralytics simplifica isto através do seu módulo de soluções, permitindo aos utilizadores
estimar a distância dos objectos localizados com base nas posições das suas caixas delimitadoras.
O código a seguir demonstra como usar o YOLO11 para track objectos e calcular a sua distância aproximada distância aproximada da câmara.
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()
É importante distinguir a estimativa de profundidade de termos semelhantes no ecossistema da IA:
Os recentes avanços na IA generativa e nos modelos estão a fazer a ponte entre o 2D e o 3D. Técnicas como Neural Radiance Fields (NeRF) utilizam imagens 2D esparsas para reconstruir reconstruir cenas 3D complexas, baseando-se fortemente em princípios de profundidade subjacentes. À medida que a a otimização dos modelos melhora, a estimativa de profundidade altamente precisa está a tornar-se viável em dispositivos de ponta, alimentando a próxima geração de drones inteligentes, robôs de serviço e dispositivos de computação espacial.