Skip to content

GeoTag Detection

Class: GeoTagDetectionBlockV1

Source: inference.core.workflows.core_steps.transformations.geotag_detection.v1.GeoTagDetectionBlockV1

Convert object detection bounding boxes to real-world GPS coordinates using camera position metadata.

How This Block Works

This block takes object detection predictions and camera GPS metadata (latitude, longitude, altitude) and projects each detection's pixel position to a real-world ground coordinate. The projection uses the camera's field of view and altitude to compute a ground footprint, then maps pixel offsets from image center to geographic offsets from the camera position.

  1. Receives detection predictions from an upstream object detection block (any model that outputs bounding boxes)
  2. Takes camera GPS metadata as inputs: latitude, longitude, altitude above ground, and optionally horizontal field of view
  3. Computes ground footprint from altitude and FOV using basic trigonometry
  4. Projects each detection center from pixel coordinates to lat/lon offset from camera position
  5. Outputs GeoJSON-ready records with class, confidence, and geographic coordinates for each detection

The projection assumes a nadir (straight-down) camera orientation, which is accurate for most drone survey flights. For oblique angles, accuracy decreases with distance from image center.

Common Use Cases

  • Drone Survey Analysis: Process drone footage to map detected objects (vehicles, people, animals, structures) at their real-world locations for survey, inspection, or monitoring applications
  • Agricultural Monitoring: Map crop damage, equipment, or livestock positions from aerial imagery for precision agriculture workflows
  • Security and Surveillance: Create geospatial awareness from aerial camera feeds, mapping detected activity to real-world coordinates for situational awareness
  • Wildlife Conservation: Track and map animal detections from drone surveys to monitor populations, migration patterns, or habitat usage
  • Construction Site Monitoring: Map equipment, materials, and personnel positions from aerial imagery for site management and safety compliance
  • Search and Rescue: Rapidly map detected persons or objects across large areas from drone footage to coordinate response efforts

Connecting to Other Blocks

This block receives detections and produces geospatial data:

  • After object detection blocks (YOLO, RF-DETR, etc.) to geotag their predictions with real-world coordinates
  • After tracking blocks (ByteTrack, OC-SORT) to produce geotagged tracks with movement paths
  • Before data sink blocks (CSV, JSON, Webhook) to export detection locations for GIS analysis
  • Before visualization blocks to annotate frames with GPS coordinate labels
  • In video processing pipelines where each frame's GPS comes from drone telemetry or EXIF metadata

Type identifier

Use the following identifier in step "type" field: roboflow_core/geotag_detection@v1to add the block as as step in your workflow.

Properties

Name Type Description Refs
name str Enter a unique identifier for this step..
latitude float GPS latitude of the camera position in decimal degrees. For drone imagery, this comes from the flight controller GPS. Positive values are North, negative are South..
longitude float GPS longitude of the camera position in decimal degrees. For drone imagery, this comes from the flight controller GPS. Positive values are East, negative are West..
altitude float Camera altitude above ground level in meters. Used with field of view to compute the ground footprint. For drones, this is the relative altitude reported by the flight controller, not absolute altitude..
horizontal_fov float Horizontal field of view of the camera in degrees. Default 73.7 covers most DJI consumer drones (Mini, Air, Mavic series). Adjust for other cameras. Wider FOV = larger ground footprint per frame..
heading float Compass bearing that the top of the image points toward, in degrees clockwise from true north. 0 means image-up is North (the default). When the gimbal does not report yaw, derive this from the flight course (bearing between successive GPS fixes) for nose-forward flight. Rotates the ground footprint so detections land on the correct real-world bearing instead of being pinned to North..

The Refs column marks possibility to parametrise the property with dynamic values available in workflow runtime. See Bindings for more info.

Available Connections

Compatible Blocks

Check what blocks you can connect to GeoTag Detection in version v1.

Input and Output Bindings

The available connections depend on its binding kinds. Check what binding kinds GeoTag Detection in version v1 has.

Bindings
  • input

    • image (image): The image that detections were generated from. Used to determine image dimensions for coordinate projection..
    • predictions (Union[instance_segmentation_prediction, object_detection_prediction]): Object detection predictions to geotag. Each detection's bounding box center will be projected to a GPS coordinate..
    • latitude (float): GPS latitude of the camera position in decimal degrees. For drone imagery, this comes from the flight controller GPS. Positive values are North, negative are South..
    • longitude (float): GPS longitude of the camera position in decimal degrees. For drone imagery, this comes from the flight controller GPS. Positive values are East, negative are West..
    • altitude (float): Camera altitude above ground level in meters. Used with field of view to compute the ground footprint. For drones, this is the relative altitude reported by the flight controller, not absolute altitude..
    • horizontal_fov (float): Horizontal field of view of the camera in degrees. Default 73.7 covers most DJI consumer drones (Mini, Air, Mavic series). Adjust for other cameras. Wider FOV = larger ground footprint per frame..
    • heading (float): Compass bearing that the top of the image points toward, in degrees clockwise from true north. 0 means image-up is North (the default). When the gimbal does not report yaw, derive this from the flight course (bearing between successive GPS fixes) for nose-forward flight. Rotates the ground footprint so detections land on the correct real-world bearing instead of being pinned to North..
  • output

Example JSON definition of step GeoTag Detection in version v1
{
    "name": "<your_step_name_here>",
    "type": "roboflow_core/geotag_detection@v1",
    "image": "$inputs.image",
    "predictions": "$steps.detection.predictions",
    "latitude": 47.428681,
    "longitude": -105.279125,
    "altitude": 69.0,
    "horizontal_fov": 73.7,
    "heading": 0.0
}