Autodetecting Ground Control Points

Hey all,

I’ve been a bit frustrated with the lack of an auto-detecting ground point feature. I definitely appreciate the flexibility of being able to declare any coordinate a GCP and manually pick it out in a photo, but that’s not quite how I want to use it most of the time.

This is definitely a first pass, and I’d like to see if it’s useful to others and works well before I put more time into it. I’m using AprilTags (GitHub - AprilRobotics/apriltag: AprilTag is a visual fiducial system popular for robotics research.) as my GCP markers, and there’s a great auto-detection library that has Python bindings.

I wrote up a quick README but if anything’s unclear let me know.

@pierotofy – I’m guessing you might be interested in this based on my forum searches.


The biggest issue with auto-detecting markers is that everyone uses different markers, or sometimes not even markers, they just measure street corners or other features on the ground. So a solution needs to be generic enough to be able to detect a large sets of different/common markers. This is a good first step though, thanks for publishing it!


Sure, that all makes sense; however, I don’t think anyone picking out street corners will ever expect an automated detection system for that, so that’s not really the use case that I’m trying to automate.

What are other GCP markers that people use that you are most concerned about leaving behind? For what it’s worth, Photoscan/Metashape has their own proprietary marker system, and I haven’t heard many people being concerned with the fact that they can’t use a different marker when using that software.

As far as uniquely identifiable markers go, I would assume any family of tags has its own detector, so I would expect integrating that to be relatively straightforward. For non-uniquely identifiable markers, perhaps a system of just looking for high contract black/white squares would fit that niche. An interface could say “I found a marker here, do you have coordinates for it?”

Personally, I see a huge amount to gain from uniquely identifiable markers. I think with the open licensing of AprilTags and its wide compatibility make it a great candidate to support. I’m open to supporting a range of markers, I just need to know what the community wants/needs.

1 Like

Mmm, maybe the MapIR targets?

1 Like

Is the point of these georeferencing at all, or is it just reflectance? I’m not saying a similar system wouldn’t be possible and useful for reflectance, just curious.

From a quick few searches, I’m not sure how open their ecosystem is. If they have a library of markers (and ideally a detector) I’d be happy to, but so far I can only find one picture of one of their markers, which is the same as the one you linked.

Building a generalized detector for markers like this is possible, but not as easy as plug and play for different protocols, of course.

It is mainly a reflectance target, but I also used them as at least one of my GCPs.

Looks like they may be using a fork of AprilTAG anyway:

1 Like

Did a real quick test and that target did not show up with the AprilTag detector, so it’s definitely a breaking fork. I’ll poke at their repo and see what I can do.

Thanks for linking those.