Incoherent orthophoto generation using GCP

Hi Gents,
I am a beginner and I am trying to familiarize with GCP usage to improve the quality of the orthophoto I am producing.
1° I have edited and generated a GCP file based on the drone survey images and google satelitte layer as geographic reference. doing that I suppose I have created geographic correspondance between the survey images and the google layer so I am expecting to be able synchronize the 2 layers (google and orthophoto) in a very first step.
2° When I generate the orthophoto with the GCP file the generated orthophoto is totally incoherent (scale, orientation, …) and cannot be surimposed at all with google satelite layer. (See the uploaded image).
3° When I am generating the orthophoto without GCP file, the result is correct with just a little geographic shift which is normal since it depends on drone GPS precision.
I am probably doing a beginner mistake when I am editing and generating the GCP file. Can you help me to fix that issue?
Thanks a lot !

ScreenCapture103111

1 Like

Google aerial images as in your image (and no doubt their lower resolution satellite images), have significant errors and distortions. For example, the radar elevation data for the top of the hill on my property is about 40 meters off the actual position, placing the high point well down a steep slope.

The Google imagery can’t be used to produce GCPs.

2 Likes

Thanks a lot Gordon, I understand your point google cannot be used to produce GCP. that’s a fact.

However google images are providing a geographic reference which is what it is but it is not so far from other geographic sources that I can use. The elevation data shouldn’t be a problem as well since we are located close to the seaside and the terrain is quite flat and I do not expect large distorsion here. Google resolution shouln’t be a big problem since I am only using the geographic reference and not the image quality to construct the orthophoto.

I was expecting a little distorsion in the 2D orthophoto, very poor planimetric quality but not such kind of inconsistancy (orientation, rotation, scale) which doesn’t make sense to me.
The result is not orthographic at all but looks like a very consistant 3D representation without major distorsion.

So I suspect this cannot explain the full 2D/3D incoherence we see here which probably comes from another big factor that I do not understand.
I am sure I am doing something wrong somewhere else.

2 Likes

Welcome!

  1. Expecft at least 3-10m errors in X/Y using Google as a reference. Rotation errors are also possible.

  2. Sounds like a malformed GCP.

  3. Yep, seems to confirm 2. Also, don’t forget 1 and don’t take Google imagery to be truth data because it isn’t. Your reconstruction is likely closer to ground truth than the Google imagery.

Are you able to post your GCP and your data so we can help review? dronedb.app is my recommendation.

1 Like

Hi Saijin,

Thank you very much for your welcome message and support. Very appreciated !
1° Trusting experts ! i will forget google imagery . I was trying to get experience with GCP management doing that.
2° I will send you the GCP file in a private message if you don’t care
3° I don’t know dronedb.app. I will have a look right now.

I have additional questions:
a) I am not equiped with high precision GPS to capture GCP on site. For the aim of this exercise
Can I capture geographic coordinates (with QGIS for example) on an other orthophoto assuming that this ortho-image has been generated by a public institute and has a 0.5m-1m x-y precision and 0.2m pixel resolution ?
b) should the images captured by the drone survey necessarily be oriented to Nadir to work with GCP or can we use images which have an inclinaison (that was the case here).

Thanks for your help!

1 Like

There is a lot of ground to cover figuratively and literally when you get into sUAS photogrammetry! So, ask questions if you want to!

  1. It can be useful when you don’t have another option, just be cognizant of the limitations.
  2. Absolutely fine.
  3. Please do! I’m a big fan (obviously, since I work for UAV4Geo who operates it :wink: ), but even without that, I think it stands on its own merits as a uniquely designed place to host sUAS data.

A) If you know that the data is of that order of magnitude, then yes, that sounds great. You’re quite fortunate to have such a resource available!
A1) If you have an Android device, you may have luck using GPS Point:

B) Actually, slightly off from nadir has a bunch of benefits for reconstruction! (which I did not know/learn about until I found Stephen Mather on here). If you have a chance, I highly recommend his writing on this subject

C) Give me a bit to sanity-check your GCP! Here are some notes, however:

1. Your .CSV must contain 4 columns
2. The first row (header) must be: GCP Label,Y,X,Z
3. Each subsequent row contains the label and coordinates of your ground control points (in the selected coordinate system units specified by the EPSG code)
4. No cells can be left blank
5. GCP Labels must be unique

I think what you designed was closer to an image geolocation file, not a GCP file:
https://docs.opendronemap.org/geo/

1 Like

Thanks Saijin for your guidance.

Those are valuable inputs that I need to explore one by one. Let me take a couple of days to see if I can progress with your inputs.
If you can go in depth with the GCP file that would be helpful.

for information I followed the following process to generate it

  1. I used the GCP editor and created reference points on the right side of the interface (in google image)
  2. I took 4 different images of drone survey.
  3. For each image I created the mirror points of the reference points and associated the point in the left side with the point in right side of the interface (I got a green status)
  4. when done for each point I pushed on the GCP generation button to get the GCP file
  5. After that I created a new task in the dashboard with drone images and new GCP file

Thanks

1 Like
  1. Yep, my mistake. It is correctly formatted for the PoSM GCP Editor! Looks like a personal property survey (nice pool :wink: ), if everything loaded correctly.
  2. You should try (ideally) for 3-5+ images per GCP
  3. Sounds correct!
  4. Correct
  5. Correct
1 Like

Thanks Saijin,
I guess that is the point that may explain the malformation.

I will follow your advice advice and reprocess accordingly.
I keep you posted

1 Like

After several attempts I finally obtained a correct result which meets the initial goal to synchronize an orthophoto with a background image reference without malformation.

As indicated by Saijin (thanks to him) the inital cause of the incoherent generation was probably due to bad respect of the procedure to have a minimum of 5 GCP and a minimum of 3-5 images per GCP. It is also necessary to have a significant contrast on the objects used as GCP to build the orthophoto. I think it is also important to take reference points on ground without terrain elevation.

Final result has about 0.15m X-Y shift compared to the orthophoto reference which is itself given for 0.2m X-Y. So total X-Y precision shouldn’t exceed 0.5m.
I see 2 possible improvements in my orthophotho generation process. First is to improve the capture of the GCP coordinates on my reference image using very high contrast objects which can be easily associated with survey images having similar contrast. Second is to be very attentioned when you make the appairing of your GCP with the point on survey image because 2-3 pixels uncertainty will cause 0.1-0.2m shift.
Still a long journey to achieve my learning in sUAS photogrametry but it is quite encouraging.

1 Like

Excellent!

Glad you had success!

That all sounds reasonable, and yes, the process can be quite exacting for sure.

It is nice to see you meet your accuracy standards without too much extra work (re-surveying, for instance), so the next time you collect you’ll be even better off!