Ground Control Point Interface (other options?)



I’m testing out WebODM and I’m struggling a little bit with creating the ground control point file that I would upload along with the images. I’ve been using Reality Capture by CapturingReality and the interface for marking ground control points to the images they reside in is quite quick. I understand how the ground control point interface in WebODM works and I am able to load my control point file and select the points in each photo.

I have about 650 images which I drag onto the “Choose Images / drag here” box. It takes a very long time for the images to appear. They remain white boxes for several minutes before the actual photo is rendered. I’m guessing my browser is loading all the images? I have 10 control points and it’s a very painstakingly slow process to find all of the photos that have my control points in them and then go and mark them with this interface.

I have also used Agisoft’s Metashape as a trial and marked control points with their interface. Their interface is more similar to WebODM’s ground control point interface than RC’s.

I’m curious to see what everybody’s methods are for marking ground control points. Is using the web based interface the only way to mark the points? The web interface just takes me far too long to mark all of the points and I’m hoping there is some other method that I haven’t discovered yet.

GCPi for projected images + auto location

I know your pain. I ended up building my own. For mine, you choose a marker on a map that’s pre-loaded from the photo’s GCP EXIF tags and stored in the database. I pull this data out automatically when users upload the photos into the system. To add GCPs, they choose a photo marker on the map which brings up that specific photo and another map of the general location. Then, the user adds a GCP point on the photo and moves a marker on the map to its location. Lat/Longs and WGS84 coordinates are calculated automatically and on the fly, or the user can manually type these (and it converts both ways also). The altitude is also pre-loaded but customisable based on the photo’s GPS data.

When they save, it’s stored into the database. After they’ve added all GCPs, they start the job processing and the GCP file is generated and fed into ODM automatically - users don’t even know it exists.

Here’s an example (you can’t add or edit without logging in):
Survey (see the tabs at the top):

GCP Example:


Is there any way you could share the code with the community?
It is fantastic what you have done and I am really struggling with gcp’s as well.
Thanks in advance


It’s all javascript, so if you’d like a copy just lift it straight off the site :slight_smile:

1 Like

@ITWarrior thanks a lot! I am not very familiar with JavaScript but I will certainly have a go on this!


Hi @ITWarrior thanks for sharing your workflow for dealing with ground control points. It looks like quite a project to implement something like that.

Have you ever used Autodesk’s Recap Photo? It uses a cloud processing engine, but they have an interface for ground control points that sort of reminds me of what you’ve implemented.


I haven’t seen that. I built an interface that was easy for people to use with the given inputs, produced the required outputs, and fit in with the rest of the workflow (and automate as much as possible in between, like the EXIF extraction and photo/map overlay). I do this for a living (system integration) so it was something that I immediately identified as a usability issue with the current system and set out to improve it.

I’m currently working on a way for people to add their own branding and automatically produce PDF reports from results so that people can provide these to their own customers as a PaaS. I’m hoping to have that piece done by mid-next week.


I noticed one thing about your dashboard. When viewing a 3D model, applying the texture doesn’t change the height of the model viewed, something that happens on my webodm installed viewer (since I installed it for the 1st time).
Is there something wrong with the way I capture my photos? Or do you have more software down your aquire to presentation path?

Thanks, Carlos


I haven’t modified ODM in any way other than adding some minor CSS changes (applied to the theme via the Administration menu) to strip some things that I’d replicated elsewhere to make it clearer - e.g. the download popup when clicking the orthophoto is gone and replaced by the green button to the left, the little 3D button in the corner is also gone and replaced by a tabbed view; share button and other control buttons are gone to tidy up the UI, etc.

If you start customising other people’s code that serves as a core function to your own, it becomes difficult to keep up to date with changes in the original application. Most open source licenses also insist that modifications to the code are made available to the public, so I’d need to run an additional repository for that too.

I’m not sure what you mean by changing the height. Maybe post a screenshot to a new topic about it? Could be a bug.


Well it’s good to know that it’s possible to change the UI via THEME (CSS) as I would like to have a showcase of the 3dmodels using the potree js app. I was gonna do it on a separate apache server where the showcase would have a copy of the 3dmodels and viewed with potree downloaded … (this was cleary a DUHH moment).

On the subject of bugs, what bugs me lately is that I have to restart webdom after each heavy dataset (>100 images) or else i’ll get a node wen’t offline due to not enough memory.

About the shifting/skewing of the viewer when changing from Cloud to Textured, here goes: