Author Topic: Aligning a set of georeferenced images with a set of un-referenced images  (Read 531 times)


  • Newbie
  • *
  • Posts: 25
    • View Profile
Hey guys and gals,

I am working on a project where we have two cameras attached to a UAV platform. These are meant to trigger simultaneously, so that for each triggering event we have 1 GPS location, and 2 images (one from each sensor).
[GPS1, GPS2, GPS3]

However, one of the cameras has trouble triggering and so for some triggers we only get the GPS and one image. We cannot efficiently determine which triggering events are associated with missed images, and so for the faulty camera we end up with a list of images that is less than the number of GPS positions.
[GPS1, GPS2, GPS3, GPS4, GPS5, GPS6]
[SONY1, SONY2, Sony3, Sony4]

So we don't know which GPS triggers the Sony images match with anymore once that a few images are missed, and so we cannot assign GPS coordinates to the Sony imagery, and we end up with an orthomosiac for the Sony without any georeferencing information and are forced to manually georeference. I know that Metashape allows for markers, but we want to automate the entire process in Python, so this is something we want to avoid.

Is there some other way that Metashape can help me to get GPS information into my images that don't have proper reference data? I have tried to load the two image sets into different chunks. So for the GPS chunk I add the images and matching reference data and give the proper CRS. For the non-GPS chunk I just add the images and leave the CRS in Local (m).

When I align the two chunks, is there maybe a way that I can check which images are the closest aligned with one another? For example, if images Sony5 and MCAW8 were aligned ontop of eachother, or shared some high amount of overlap (e.g. 95%) then I could take the GPS point from MCAW8 and assign it to Sony5

Code: [Select]
# MCAW chunk
loc = chunk1.cameras[8].reference.location

# Sony chunk
chunk2.cameras[5].reference.location = loc

I don't know if there is anything in Metashape that could help me perform something like this, but maybe someone here can give some advice?