Mapping Drone Photos Corners

Hi,
my mission is the following:
Mapping system is a Windows Desktop application.
A drone, which creates geotagged stills (Photos).
Gimbal orientation and camera info are included in Metadata :-).
Mapping system contains 20,000 square kilometers of DMT at 1m increments. No voids. XYZ accuracy is better than 25cm (about 10 inches).

I would like to get coordinates of the corners of the Photos (stills).
Can OpenDroneMap be used without too much hassle?
I suppose that DMT needs to be converted to MESH with a QuadTree structure.
I would also need a tool to create a MESH. Any suggestions here?

I envisage the following functionality.
All coordinates are in meters.

Input parameters:

  • Gimbal Pitch,
  • Gimbal Jaw,
  • Gimbal Rotation is typically 0,
  • Drone XY,
  • Drone Relative Height
  • DMT / DMT Mesh
  • FOV Pitch
  • FOV Jaw

Output results:

  • 4 corner coordinates of Photo (still).

I wonder if OpenDrone contains the solution to my needs.

1 Like

Welcome, Dusko!

Sorry for the delay. I’ve been trying to think over your post to come up with some good ideas or suggestions for you, and I’m coming up blank, unfortunately!

  1. I’m not sure we have a ready-made tool to get photo corner coordinates from geo-referenced photos quite yet.
    1A) Piero did some work on something you might be able to tweak for that here:
    DroneDB progress updates - #2 by pierotofy
  2. DMT?
  3. Mesh from what? Points? Maybe CloudCompare or MeshLab or Blender.

I’ve done some ill-advised calculations using postgis and sccgal in the past:

Something like this could be mocked up somewhat easily in any 3D environment.

1 Like

DroneDB can do it. It uses a global DEM to calculate the elevation. We’d welcome a PR to allow one to specify a different DEM. GitHub - DroneDB/DroneDB: Effortless aerial data management and sharing

ddb info DJI_0018.JPG --format geojson --geometry polygon | jq

{
  "type": "FeatureCollection",
  "crs": {
    "type": "name",
    "properties": {
      "name": "EPSG:4326"
    }
  },
  "features": [
    {
      "crs": {
        "properties": {
          "name": "EPSG:4326"
        },
        "type": "name"
      },
      "geometry": {
        "coordinates": [
          [
            [
              -91.9946977338554,
              46.842964997231924,
              158.51000076293946
            ],
            [
              -91.9950761686676,
              46.84271189347757,
              158.51000076293946
            ],
            [
              -91.99442040670127,
              46.84225026546232,
              158.51000076293946
            ],
            [
              -91.99404197212225,
              46.84250336706982,
              158.51000076293946
            ],
            [
              -91.9946977338554,
              46.842964997231924,
              158.51000076293946
            ]
          ]
        ],
        "type": "Polygon"
      },
      "properties": {
        "cameraPitch": -89.9000015258789,
        "cameraRoll": 0,
        "cameraYaw": 45,
        "captureTime": 1466717519000,
        "focalLength": 3.4222222222222225,
        "focalLength35": 20,
        "height": 2250,
        "make": "DJI",
        "model": "FC300S",
        "mtime": 1481082134,
        "orientation": 1,
        "path": "file:///data/drone/brighton2/images/DJI_0018.JPG",
        "sensor": "dji fc300s",
        "sensorHeight": 3.4650000000000003,
        "sensorWidth": 6.16,
        "size": 4024770,
        "type": 3,
        "width": 4000
      },
      "type": "Feature"
    }
  ]
}
2 Likes