Forum

Author Topic: Automatic GCP identification  (Read 18072 times)

Arko

  • Newbie
  • *
  • Posts: 4
    • View Profile
    • Homepage Arko Lucieer
Automatic GCP identification
« on: October 24, 2012, 01:19:16 PM »
We use Photoscan for orthophoto and DEM generation from UAV imagery. We have established a workflow where we scatter orange targets throughout the study area for which we collect accurate differential GPS coordinates. We then manually identify these targets in PhotoScan for more accurate aerotriangulation. In a previous workflow with Bundler and PMVS2, we were able to automatically identify the orange points in the 3D point cloud and match them with their corresponding GPS points. This saved a lot of manual work. I have been wondering whether such a feature could be implemented in PhotoScan. When I saw the changelog in the latest release I noticed the following:
"Added support for automatic coded target detection (12 bit and 16 bit)"

Unfortunately, I have not been able to find out any more information about it in the wiki, forum, or help pages. I am wondering whether this new feature is related to my 'wish'. If so, could you provide information on how to use it? If not, would you be able to include this as a feature request?
Thanks and kind regards,
Arko
--
Dr Arko Lucieer
Senior lecturer in GIS and Remote Sensing
School of Geography and Environmental Studies
University of Tasmania, Australia
+61 (0)3 6226 2140
http://www.lucieer.net

patcarbon

  • Newbie
  • *
  • Posts: 22
    • View Profile
Re: Automatic GCP identification
« Reply #1 on: October 24, 2012, 03:42:59 PM »
I'm doing exactly the same thing!  I did see somewhere that you could printout targets for automatic ID, but I was under the impression that the pattern match relied on shape and texture.  So they would have needed to be huge for un-ambiguous ID.  But there is a semi-automated approach.  I've figured this out with trial and error so I might not be 100% right:

1-In a spreadsheet, create a 4 column text file.  the first column should be 'point N' and the other 3 the X,Y and Z
2- If possible, give a rough georefecence to your model.  Camera positions from the UAV GPS are perfect for this.
3-Import this into photoscan (version 0.9+) and it should create a set of flags with estimated positions
4- From here I'm less certain but here's my best guess: Click on a GCP in the ground control panel
5-  View photos, and sort by marker. 
6- When you click on each photo and display it in the main window, you'll see at least 1 grey flag with the estimated position.  Hopefully, it'll be close to your GCP.  Drag it into place.  It should go blue or green (Not sure about what the difference between blue or green is)
7- go through all the photos, then choose a new GCP and repeat!

PS actually updates the georeference as you go along.  It's somewhat slow, but I remember the days where photogrammetry projects over 500 images required thousands of man/hours so I'm not coomplaining!

If you're attending the big meeting of the AGU in San Francisco in December, I'll have a session on topography generation and some UAV/photoscan stuff will be present.

Cheers
Patrice Carbonneau
Geography, Durham University, UK

Arko

  • Newbie
  • *
  • Posts: 4
    • View Profile
    • Homepage Arko Lucieer
Re: Automatic GCP identification
« Reply #2 on: October 26, 2012, 01:50:15 AM »
Hi Patrice,
Thanks for your detailed reply. Your suggested approach sounds like a time-saver. You mention that you saw somewhere that printout targets for automatic ID can be used. Can you remember where you read this? We tend to fly quite low (resulting in <1cm resolution imagery), so it might be possible to print patterns on 30 x 30 cm plastic sheets for example.
Thanks again,
Arko
University of Tasmania
School of Geography and Environmental Studies
Hobart, Tasmania, Australia
http://www.terraluma.net
--
Dr Arko Lucieer
Senior lecturer in GIS and Remote Sensing
School of Geography and Environmental Studies
University of Tasmania, Australia
+61 (0)3 6226 2140
http://www.lucieer.net

Arko

  • Newbie
  • *
  • Posts: 4
    • View Profile
    • Homepage Arko Lucieer
Re: Automatic GCP identification
« Reply #3 on: October 26, 2012, 03:05:52 AM »
I just discovered that Photoscan 0.9 allows you to print marker patterns as a PDF (Tools - Print Markers...). I will experiment with these patterns on laminated A4 sheet initially to see if they can be picked up. I am wondering what size they have to be to allow them to be automatically detected (Tools - Detect Markers...). It would be good to get some more information about this function in the Help files and/or manual. Does the detection happen in each photograph or does it happen in the 3D surface?
Thanks and kind regards,
Arko
--
Dr Arko Lucieer
Senior lecturer in GIS and Remote Sensing
School of Geography and Environmental Studies
University of Tasmania, Australia
+61 (0)3 6226 2140
http://www.lucieer.net

sjharwin

  • Newbie
  • *
  • Posts: 9
    • View Profile
Re: Automatic GCP identification
« Reply #4 on: November 22, 2012, 05:23:04 AM »
Hi,

As Arko suggested I tested the printed markers (12bit 20mm markers, 1 per page). I printed 10 different markers (about every 50th page) at 3 different page sizes (ie 30 IDs ranging from 1-2047). I printed the first 10 on A4 as generated and I also printed them as large as I could get them on A4 (135% of generated A4 size) and on A3 (192%).

I placed ten of each size and took photos from 30m, 50m, 80m, 100m and 120m (our common UAV flying heights).  I used a Canon 550D DSLR (18mp) with a 20mm lens. I then imported each set (ie a separate project for each distance) and asked PhotoScan to detect the markers (I left the tolerance at 50)...

  • At 30m: it got most of the A3 markers and a couple of the A4 markers. It falsely detected marker 1 in a number of weird places so I would avoid the really simple patterns. When I increased the tolerance it detected a couple more A3 markers (+2 at 70 and +1 at 90)
  • At 50m: it incorrectly found only 1 marker - Marker 1 in the sky and on a hubcap of a car. Increasing the tolerance made no difference.
  • Needless to say it found nothing in the more distant photography.

So, the conclusion I draw from this initial test is that the 20mm marker pdf generated by photoscan (one marker per A4) is for close range photography (<12-15m) and if the markers are enlarged nearly 200% and printed on A3 you might get a 30-35m range... but I would choose higher ID markers to avoid false detections based on simple marker geometry.  The detection is very sensitive to occlusion so the markers need to be completely visible.

Sadly, as it is now we cannot see any point in pursuing these markers for our workflow as they are only useful when we fly at 30m or less and we often want to fly higher (our ceiling is 120m in Australia). If the detection algorithm could be improved so that such large markers are not needed then they may become viable.

I will now go and trial manually identifying markers in one photo first and seeing if that helps the detection algorithm...

Regards,
Steve Harwin
PhD Candidate
University of Tasmania
School of Geography and Environmental Studies
Hobart, Tasmania, Australia
http://www.terraluma.net

sjharwin

  • Newbie
  • *
  • Posts: 9
    • View Profile
Re: Automatic GCP identification
« Reply #5 on: November 23, 2012, 06:29:31 AM »
Hi again,

I imported a list of all markers and their associated real-world coordinates. I manually identified markers in one photo and did an alignment and then tried to detect markers again... it did not seem to help.

What I was hoping was that the knowledge of marker location in the point cloud (and one photo) would be used in the detection algorithm to try and find other markers in the other photos and also markers that have not been found but have a coordinate in real world space... am I expecting too much do you think?  Should this be a feature request?

If anyone at Agisoft has some explanation of marker detection that might guide me to a viable workflow that would be much appreciated.

Regards,
Steve
« Last Edit: November 23, 2012, 07:39:03 AM by sjharwin »

Alexey Pasumansky

  • Agisoft Technical Support
  • Hero Member
  • *****
  • Posts: 13918
    • View Profile
Re: Automatic GCP identification
« Reply #6 on: November 23, 2012, 04:14:27 PM »
 Hello Steve,

The supported coded targets type are really not quite good for medium and high altitude aerial imagery.
We are considering different type of coded targets for these purposes that could be clearly recognized from the air, but if you also have any thoughts or experience with any type of coded targets for UAVs please feel free to contact us.

Marker coordinates input doesn't influence the coded target detection algorithm.
But there is a workaround you can use for placing markers with the precise coordinates on the georeferenced (by camera positions) model:
- firstly you import markers using Ground Control pane (make sure that model is georeferenced in the same coordinate system the marker coordinates are).
- after import you'll see markers "flying" near the model, if you select marker(s) on the Workspace pane and press  "Filter by markers" button on the Photos pane you'll have there only those photos where "grey" flag for selected marker is situated.

Hopefully it will save some time for manual GCP tracking.
Best regards,
Alexey Pasumansky,
Agisoft LLC

woutermarra

  • Newbie
  • *
  • Posts: 2
    • View Profile
Re: Automatic GCP identification
« Reply #7 on: November 26, 2012, 03:33:41 AM »
I tried to use small automated markers in a laboratory experiment (resolution about 1mm), but it failed as the number printed next to marker was identified as the center of the marker rather than the actual marker center. I tested it now in a large experimental setup (larger targets and the resolution is about 5 mm), and these were correctly identified.

Please make the size of the number proportional with the marker size or at least variable.

deerndlph

  • Newbie
  • *
  • Posts: 1
    • View Profile
Re: Automatic GCP identification
« Reply #8 on: November 30, 2012, 09:51:19 AM »
Hey Guys,

Could you use something as simple as a survey target (iron cross)

It could be easily printed for aerial work ex. stand off (100m) 600x600mm target or in closer range situation stand off 6m 100mmx100mm? These are just examples. I currently use them in kite survey that is why I think they may work if the software could automatically recognize them and potentially (extract ( sub pixel ;) ) the center location of the target?

cheers,
Dee

BTW, Could insert a pic, but I attached an example

sjharwin

  • Newbie
  • *
  • Posts: 9
    • View Profile
Re: Automatic GCP identification
« Reply #9 on: December 03, 2012, 04:36:25 AM »
Thanks for the reply and suggestions.

The iron cross is fine if it is completely different from anything in your imagery (to avoid false detections) but the beauty of the targets currently generated by PhotoScan is that they are unique and result in numbered markers that can be coordinated in an automatic workflow.

If the iron cross style target is potentially better than the circular pattern then perhaps something based on triangles would be more matchable from altitude.  Also, I use between 20 and 80 GCPs and so I would think that if the pattern was say 80-100 unique designs that would be enough. Fewer markers might allow the design to be simpler and therefore more uniquely matchable. Ideally an A3 print is as large as they should be... but I understand that image resolution plays a key role.

Steve

Wishgranter

  • Hero Member
  • *****
  • Posts: 1202
    • View Profile
    • Museum of Historic Buildings
Re: Automatic GCP identification
« Reply #10 on: December 05, 2012, 03:08:06 AM »
Hello all can you send me your test data sets with at least few images with targets to muzeumhb@gmail.com working and even not working. will test it for further clearance on this with external app.... 

----------------
www.mhb.sk