GoPro Max + mapillary_tools: Notes, workflow

When I was new to using a GoPro Max for Mapillary, and when I was new to using mapillary_tools, I hit a pretty steep learning curve. It took hours and hours of trial and error, guesswork, and failure to create a system that works well for me. To hopefully save others the trouble, I will present my notes, methods, and workflow, along with my reasoning for everything.

My typical settings:

  • 360 Time Lapse photo
  • Interval 2s (driving) / 5s (hiking)
  • EV +0.5 or +1.0; I’d rather have an over-exposed sky than having signs and addresses hidden in a shadow
  • ISO Min 100, ISO Max 200; an ISO of 200 is still sufficient to avoid motion blur, even 20 minutes after sunset, on a clear evening
  • Color Flat: Hides fewer details in shadows

Additional use notes:

  • About 30 minutes after sunset, there’s no good compromise between ISO and shutter speed. That’s quittin’ time. I’ve tried using higher ISO to capture images later than that. An ISO of 800 or more blots out signs with static. Found that out the hard way. Had to delete a few evenings’ worth of work.
  • I have not seen any problems with quality from using the GoPro with the protective lens covers, except sometimes at sunset–and even then, nothing sequence-ruining.
  • Mapping note: The GoPro Max has never failed me, for getting street signs! But for details further from the street, such as many home addresses, the resolution on the images can often be JUST too small to read. If this is a concern, you may want to dedicate a seperate camera (I use the wide angle lens on my phone, on a phone mount) to capture high resolution images to your right or left.
  • The 2 second interval on time lapse can annoy some folks. Driving at 15 mph or less tends to produce smooth sequences with a good view of most signs. But on roads where slow speeds are impractical, you’ll have to settle with A) a rough sequence, or B) driving down that street a few times to smooth things out over time. You can also hike along the sidewalk with a selfie stick, if that’s an acceptable alternative for you.

I don’t have a “real” computer, so I just run mapillary_tools on my phone. Works astonishingly well!

I process my images twice. The first time is to remove duplicates. If you don’t get rid of duplicates first, it will cause images at stops to face the wrong direction (more important for Hero mode, the non-360 mode), or cause duplicates to be left in, while interpolating directions.

Found that out the hard way. Had to manually delete dozens of duplicates, each pointing in an odd direction.

I have found that a duplicate distance of 1.2 meters is big enough to avoid problems with the GPS wandering while stopped, but small enough to avoid missing details:

mapillary_tools process --import_path Trip1 --duplicate_distance 1.2 --user_name jesseakaraccoon --advanced --move_duplicates

My second command adds direction info to the images, which the GoPro Max will not do for you. I also have “offset angle” in there so I can easily change it to another number for non-front-facing Hero mode images.

Finally, for 360 photos, you must include “–offset_time 1”. Otherwise, your images may end up tens of meters away from their real location, when driving. This is because the camera gives each 360 image a geotag one second too old while stitching it.

Found that out the hard way. Had to delete several sequences on faster roads.

mapillary_tools process --rerun --import_path Trip1 --cutoff_time 10 --interpolate_directions --offset_angle 0 --overwrite_all_EXIF_tags --offset_time 1 --user_name jesseakaraccoon --advanced --skip_subfolders

mapillary_tools upload --import_path Trip1

I hope someone finds this helpful. Many of the notes and methods here are just as helpful for a phone camera or another device as they are for a GoPro.


thank you, describe it very well
I like the GoPro Max, to.
But I do download all pics to my workstation and upload via webpage manually


1 Like

Just wondering if anyone is capturing video and converting to pictures… driving 80 or 100 kph with 2 pictures / second leaves pretty large gaps… also you stop or speed up and slow down you get very random spacing.

I have video converted to jpg 10/second… but the GPS saves to csv / txt and I need to write it back into the exif. for mapillary is my only down fall right now.

1 Like

Someone explored this on the forum previously - the quality was substantially worse. You would expect this as the video compression only encodes change rather than rescanning the whole picture.

I would recommend either driving slower or switching to forward facing either (0.5 second timelapse) if this is an issue.

1 Like

This is a good writeup. How long roughly would you say it takes for you to process a few hours of capture? Do you use Gopro’s cloud service that lets you sync captures?

1 Like

To take the SD card out of my camera, put it in my phone, transfer files, and do all the mapillary_tools process stuff on my phone? About 5 to 10 minutes.

I upload to Mapillary when I have WiFi access. That can take an hour or so, but it can also run in the background.

I don’t use the app at all to transfer images – MUCH slower.