Note
This is a community plugin, an external project maintained by its respective author. Community plugins are not part of FiftyOne core and may change independently. Please review each plugin’s documentation and license before use.
Depth Pro Plugin#
A FiftyOne plugin for applying the Apple Depth Pro model to your dataset
Plugin Overview#
Installation#
If you haven’t already, install FiftyOne:
pip install -U fiftyone
Then, install the plugin:
fiftyone plugins download https://github.com/harpreetsahota204/depthpro-plugin
Then, install requirements for the plug-in:
fiftyone plugins requirements @harpreetsahota/depth_pro_plugin --install
Depth Types#
The plugin supports two types of depth outputs:
Regular Depth
Direct physical distance measurement in meters. Preferred for autonomous driving, precise measurements, and safety-critical applications. Better for accurate obstacle detection and motion planning.
Linear depth representation
Better for absolute distance measurements
Creating 3D reconstructions
Common in autonomous driving
Inverse Depth
Reciprocal of depth (1/distance). Better for visualizing near-field details, indoor environments, and SLAM applications. Provides more detail in close ranges where depth changes are significant.
Better visualization of nearby objects
More detail in close range
Doing visual SLAM or Structure from Motion
Visualizing indoor environments
Usage in FiftyOne App#
You can compute the depth map directly through the FiftyOne App:
Launch the FiftyOne App with your dataset
Open the “Operators Browser” by clicking on the Operator Browser icon above the sample grid or by typing backtick (`)
Type “depth_pro_estimator”
Configure the following parameters:
Depth Type: Choose between:
inverse
- Reciprocal of depth (1/distance)regular
- Direct physical distance measurement in meters.
Field Name: Enter the name for the heatmap field (e.g., “depth_map”)
Click “Execute” to compute depth estimation for your dataset
Operators#
depth_pro_estimator
#
Computes a depth math using the Apple Depth Pro model.
Operator usage via SDK#
Once the plugin has been installed, you can instantiate the operator as follows:
import fiftyone.operators as foo
depthpro = foo.get_operator("@harpreetsahota/depth_pro_plugin/depth_pro_estimator")
You can then compute the depth map on your dataset by running the operator with your desired parameters:
# Run the operator on your dataset
depthpro(
dataset,
depth_field="depth_map",
depth_type="inverse",
delegate=True
)
If you’re running in a notebook, it’s recommended to launch a Delegated operation by running fiftyone delegated launch
in terminal, then run as follows:
await depthpro(
dataset,
depth_field="depth_map",
depth_type="inverse",
delegate=True
)
Citation#
You can read the paper here.
@article{Bochkovskii2024:arxiv,
author = {Aleksei Bochkovskii and Ama\"{e}l Delaunoy and Hugo Germain and Marcel Santos and
Yichao Zhou and Stephan R. Richter and Vladlen Koltun}
title = {Depth Pro: Sharp Monocular Metric Depth in Less Than a Second},
journal = {arXiv},
year = {2024},
url = {https://arxiv.org/abs/2410.02073},
}