Depth Estimation
Aprende como a estimativa de profundidade acrescenta uma perspetiva 3D à visão computacional. Explora técnicas como profundidade monocular e visão estéreo utilizando modelos Ultralytics YOLO26.
A estimativa de profundidade é um processo essencial na visão computacional que determina a distância dos objetos em relação a uma câmara, adicionando efetivamente uma terceira dimensão às imagens 2D. Ao calcular a distância de cada píxel numa imagem, esta técnica cria um mapa de profundidade, uma representação em que a intensidade do píxel corresponde à distância. Esta capacidade imita a visão binocular humana, permitindo que as máquinas percebam relações espaciais e geometria. É uma tecnologia fundamental para permitir que sistemas autónomos naveguem em segurança, compreendam o ambiente e interajam com objetos físicos.
Mecanismos e técnicas fundamentais#
Existem várias formas de obter estimativas de profundidade, desde soluções baseadas em hardware até abordagens totalmente orientadas por software que utilizam inteligência artificial.
- Sistemas de visão estéreo: À semelhança dos olhos humanos, a visão estéreo utiliza duas câmaras colocadas lado a lado. Os algoritmos analisam as pequenas diferenças, ou disparidade, entre as imagens esquerda e direita para triangular a distância. Isto depende fortemente de uma correspondência precisa de características para identificar os mesmos pontos em ambos os fotogramas.
- Estimativa monocular de profundidade: Este método avançado estima a profundidade a partir de uma única imagem. Como uma única fotografia 2D não contém dados de profundidade inerentes, os modelos de aprendizagem profunda são treinados com vastos conjuntos de dados para reconhecer pistas visuais como perspetiva, tamanho dos objetos e oclusão. As arquiteturas modernas, como as redes neuronais convolucionais (CNNs), destacam-se nesta tarefa, tornando possível derivar uma estrutura 3D a partir de câmaras convencionais.
- LiDAR e tempo de voo (ToF): Sensores ativos, como o LiDAR (deteção e medição da distância através da luz) e as câmaras de tempo de voo, emitem impulsos de luz e medem o tempo que estes demoram a regressar. Estes métodos geram nuvens de pontos altamente precisas e são frequentemente utilizados para recolher dados de referência para treinar modelos de aprendizagem automática.
Aplicações no mundo real#
A capacidade de avaliar distâncias é transformadora em muitos setores, impulsionando aplicações que exigem consciência espacial.
- Condução autónoma: Os carros autónomos dependem da estimativa de profundidade para detetar obstáculos, medir a distância a outros veículos e navegar em segurança por redes rodoviárias complexas. É essencial para a deteção de objetos 3D, permitindo identificar peões e ciclistas.
- Robótica e automação: Os robôs utilizam a perceção de profundidade em tarefas como o planeamento de trajetórias e a manipulação de objetos. Por exemplo, um robô de armazém precisa de saber exatamente a que distância está uma prateleira para recolher uma encomenda sem colidir com ela.
- Realidade aumentada (AR): Para inserir objetos virtuais de forma convincente numa cena do mundo real, os dispositivos de AR têm de compreender a geometria 3D do ambiente. A estimativa de profundidade garante que as personagens virtuais possam esconder-se atrás de mobiliário real, um conceito conhecido como gestão de oclusão.
Exemplo de código: estimativa monocular de profundidade#
Embora existam modelos de profundidade especializados, muitas vezes é possível inferir relações espaciais utilizando caixas delimitadoras da deteção de objetos como aproximação da distância em cenários simples (caixas maiores geralmente significam objetos mais próximos). Eis como carregar um modelo utilizando o pacote ultralytics para detetar objetos, o primeiro passo em muitos pipelines sensíveis à profundidade.
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Run inference on an image
results = model("path/to/image.jpg")
# Process results
for result in results:
# Get bounding boxes (xyxy format)
boxes = result.boxes.xyxy
# Iterate through detections
for box in boxes:
print(f"Detected object at: {box}")Relação com outros conceitos de visão computacional#
É importante distinguir a estimativa de profundidade de termos relacionados. Enquanto a deteção de objetos identifica o que é um objeto e onde ele está no espaço 2D (utilizando uma caixa delimitadora), a estimativa de profundidade identifica a que distância ele está (eixo Z). Da mesma forma, a segmentação semântica classifica os píxeis em categorias (por exemplo, estrada, céu, carro), enquanto a estimativa de profundidade atribui um valor de distância a esses mesmos píxeis.
Avanços na IA espacial#
Os avanços recentes na IA generativa estão a estabelecer uma ligação entre a visão 2D e 3D. Técnicas como os campos de radiação neuronais (NeRF) utilizam várias imagens 2D para reconstruir cenas 3D complexas, dependendo fortemente de princípios de profundidade subjacentes. Além disso, à medida que as técnicas de otimização de modelos melhoram, torna-se viável executar estimativas de profundidade altamente precisas em dispositivos de IA de periferia. Isto permite a computação espacial em tempo real em hardware tão pequeno como drones ou óculos inteligentes, facilitada por plataformas como a Ultralytics Platform para um treino e implementação eficientes de modelos.









