My Mapillary Workflow


Just a short overview:

  1. mapillary on HTC One M9 Android device
  2. 1 pic every 3 sec
    2.a. do not do more htan 200 pictures each sequence
  3. Redo the sequence a few times to get more coverage, if possible
  4. on bicycle, use a bicycle mount and a USB adaptor to feed mobile with more power
  5. ride/walk around the city with no plan, or on needed parts, depends on mood
  6. try to get all important stuff, e.g. while walking, point mobile to anything interesting, but left out the people around
  7. do use mapillary app on all new areas I´ve never been before
  8. do use mapillary on all bicacle trips I do
  9. upload via WiFi after I got home
  10. wait until it is uploaded, do choose sequences from the past and align them to the street grid
    => move single pictures around as GPS signal is not good enough in cities, need to move pictures to the street for better alignment of 3D scenes
    Esp. this point 10 is really really heavy work and really annoying, as not all trips can be load and edited, or most of them are too big to edit in one go (web-edit does loose changes quite easy), or browser does freeze, or or or…
    Also the new map design does not show all sequences in high zoom level or does show the correct one, hard stuff.

But if all is done, it looks quite nice, e.g. Graz


Why do 2a? I often have sequences of several thousand long

Also, I use a M8 One. Do you find your M9 overheats using the app?


try loading a sequence >1000 pictures after it has processed in the edit mode in which you do move the location of the picture to the right place. Too long sequences are not loaded or only every 20th retry.
Also it is really hard to keep track of moved pictures in those monster tracks. Smaller sequences with <500 pictures are far easier to edit/handle. Current limitation of mapillary is also max 100 edits per session.
If you do not care about edit/handling of sequences, go ahead :wink:

The M9 does overheat, because the builtin snapdragon 810 uses too much power and gets very hot. Soon the CPU throttles and mapillary gets slow and mobile gets hot. If you want to shoot in the <3 sec frame or longer sequences >1000 pictures or if you want a mobile with a battery lasting long, the M9 is not for you (at least not without some extra work).


1 Like

My workflow was :

  1. OpenCamera on a Motorola Moto X (picture every second)
  2. Move the pictures on my computer
  3. Checking the pictures to delete bad one
  4. Adjust localization/direction in Josm with the Photoadjust Plugin
  5. Copy the pictures on my Synology NAS
  6. Send the pictures with the python script

Now it’s

  1. Run a script on the Xiaomi Yi to take pictures in loop
  2. Record a gpx trace with the smartphone
  3. Move everything on the computer
  4. Rename the pictures with Advanced Renamer
  5. Sort pictures and gpx to subfolders for all the sequences
  6. Load pictures/gpx in Josm to geolicalize the pictures
  7. Delete bad pictures
  8. Adjust localization in Josm with photoadjust plugins
  9. Run the python script to write the directions in the exif tags
  10. Reopen the pictures in Josm to correct the bad directions
  11. Run the script
  12. Copy the pictures on my Synology NAS
  13. Send the pictures with the python script
1 Like


looks interesting. More work or less work than mapillary app? I assume more work.
But easier to sort bad ones out and adjust the photos to the right place.


Yes, more work, but it’ really easier to manage the picture on the computer than online.
And if I need to upload the pictures elsewhere, everything is already clean.

My workflow is:

  1. Start my action cam and wait for it to get GPS lock.
  2. Take pictures.
  3. After some days - when I got multiple sequences - go home and load everything into a folder named after the current year-month-date.
  4. Run
  5. Browse the duplicates and see if some should be moved into the upload folder again.
  6. Run
  7. Inspect the first and last 5-10 images to see if anything should be deleted.
  8. Run on each sequence. I use Bash as shell, so I use a for loop to automate that. I have hacked my version of to not ask for confirmation for each sequence.

I do not try to correct the GPS. It is usually good enough, but when running multiple trips you can see it is not completely accurate. I hope that Mapillary one day will use the 3D model reconstruction to correct coordinates and direction in areas with enough image material.


I wrote a workflow a few months ago, to take pictures during a trip, but without any computer. (only smartphone/tablet).
It’s in french, but if automatic translation is bad and someone ask, I could try to translate it in english :à-Mapillary-en-voyage
Automatic translation :


I have two, depending on “who is the source”. And always in manual mode as a pedestrian, so far:

OSM as a source:

  • Take pictures in sequences as consistent as possible
  • If the pictures were not taken with the Mapillary app or with the GPS activated (it happens), EXIF their location, even roughly (using
  • Send them after having saved them on my disk.
  • Once the pictures digested by Mapillary,
    • browse each sequence to do the blurring
    • then fix the location and orientation of each image using the edit page, thanks to the embedded OSM map

Mapillary as a source:

  • Wait for the fix to be as good as possible
  • Carefully calibrate the compass
  • Take pictures in sequences as consistent as possible, leaving enough time to the compass to adjust
  • Send the pictures after having saved them on my disk
  • Once the pictures digested by Mapillary,
    • browse each sequence to do the blurring
    • then use these sequences to do some OSM mapping (in edit mode, browsing the pictures, with another browser with OSM open at the same location). This may require to import the GPX into OSM.

Sometimes I mix the two, especially when a few objects are missing on OSM while other objects already mapped help fixing the location/orientation of the pictures.

It also happens that I just take and send sequences without working on the consistency with OSM, but I do that as less as possible. This is mostly due to the time it takes to do that rework.

1 Like

I have a personal website where I can publish pictures on a map as well. In fact I started with that before I started contributing here.
My workflow is therefore based on the workflow on my own website and propably not optimal for Mapillary, but it works.
1 - I mount the GoPRO camera on the car / bicycle / myself and connect it with usb to a power source (batterypack or car battery)
2 - I start the camera with 2 or 5 seconds timelaps (depending on planned travelspeed)
3 - I start my website on my tablet and start logging my GPS there (coordinates saved on webserver)
4a - For my own website it now is enough to upload the pictures to get them online, resized, on the right coordinates in driving direction.
4b - For Mapillary I need some more steps, so the rest of the list only applies to Mapillary uploads. But I’ll try the Python script some day
5 - I download my track from the webserver in CSV format.
6 - I use to convert it to GPX format
7 - I use geoSetter to get the coordinates in the EXIF part of the image
8 - I choose manually upload in Mapillary and upload the pictures in nice sequences of max 500 pictures
9 - I use the online edit function to change the photo direction to the driving direction

1 Like

My workflow:

1- Mount the GoPro and garmin hcx GPS on bike, car or bus.
2- copy photos and gpx to computer
3- check photos to delete bad ones.
4- using mapillary python tools to set exif information on a key images (like a corner or a intersect ways) checking offset with JOSM software or the upload option of mapillary website.
5- after the offset is correct, apply it to all.
6- upload from website or recently from python script.

There may be special reasons where I want to blur parts of my photos (when copied to my PC harddisk) on my own, thus before uploading them to the mapillary server.

Does anyone know a good graphic tool (Windows?) where you can

  1. browse all photos of a folder
  2. inspect each image step-by-step
  3. blur image wit a kind of brush tool
  4. save it when finish this single image
  5. and choose the next image easily?

My Mapillary App workflow …
and where it could be improved on the Mapillary side.

To understand my suggestions I should say hat I do Mapillary mainly for two reasons:

  1. to document cycle routes visibly (if I give the Mapillary sequence address to someone she can virtually ride along my course on the Mapillary site)
  2. use Mapillary pictures to improve OSM along the cycle routes

I have no real problems taking the photos. I use a Sony Z3 compact plus an external 20Ah battery. with the Mapillary app on a rigid smartphone mount from Amazon.
Uploading works fine, also with big sequences.

The work-intensive part comes after the upload:
Each sequence needs to be manually checked

  1. for picture quality (the odd picture needs to be removed, rotated, …)
  2. for blurring (face blurring is often missing, many blurring artefacts that need removing)
  3. for traffic sign recognition (this is a lot of work, as the automatic detection misses many signals and also gets it wrong quite often, mainly with local (Italian) traffic signs that are not yet on the list of Mapillary
    The first two can be done in one go, the second one requires a separate session, as you cannot enable the blur handling and the traffic-sign handling at the same time.

I usually do this work not immediately after uploading, but later, when I find the time (= it rains and I cannot go outdoors)
At present I keep track of which sequences I have checked in an ad-hoc spreadsheet.

It would be nice to have support on the Mapillary side for the status of each sequence. The status table should provide for each sequence the possibility for me as user to put a mark that I have

  • checked for photos that need removing
  • checked blurring
  • checked traffic signs

The table should provide the following information that is available on the Mapillary side:
blur requests for all photos of the sequence have been taken care of and the photos can be modified again
traffic sign operations have been taken care of, and the photos can be modified again

At present the only way to find out if blur request shave been implemented is by trying to create a new request and get it refused. As sometimes the blurs seem to take a lot of time (even weeks) it would be handy to have that information ready in my Uploads page.

My normal workflow,

A. Mount my iPhone 4s to my moped
B. Capture sequences that are usually less than 300 photos
C. Delete bad photos
D. Upload one sequence at a time with Mapillary app. Uploading 90 photos usually takes about 30 minutes.

This is obviously a time intensive process that I would like to shorten.
Looking at the 3.5" screen on my phone really gives me a headache.
I do not have a reliable laptop/desktop.

Does anyone use or know of a quick way to put the Mapillary photos onto my iPad so that I can at least edit them on a larger screen and then upload using my app on my iPad? I would also like to just be able to transfer the photos from my phone so that it will free up space until I can edit and upload them.
I already bought another used iPhone 4s to give me more storage etc…
I am looking at buying a new iPad mini4 to take on trips also.

1 Like


at least latest android app has features to export the pictures, else look for the picture folder on your mobile (showed in preferences) and move that folder (one folder per sequence) to the ipad. You would need to upload them manually afterwards (python script or website).
MAYBE it is possible to move that folder to the mapillary app on the tablet and that mapillary does the upload. I never tested this before.


Thanks for the info. I searched all over my iPhone settings and the Mapillary app for a photo folder of the sequences and came up with nada.
If I did find it, how would I move it to the IPad? Through the cloud? (Not for you to have to answer)
I do not have my photos from the app going to the cloud.
Thanks for the help and I will keep looking into this to see if it is even feasible.

Hi jimwatana.

You can access them from iTunes:

1 Open iTunes
2 Select your phone
3 Select Apps
4 Scroll down to File Sharing
5 Select Mapillary

You should then see folders to the right. Each folder is one sequence and you can drag and drop files from/to here. So in theory you should be able to drag images from here and onto your computer, delete the ones you don’t like, and then use the web uploader or simply put them back on the phone.

I haven’t tried the web uploader myself with iPhone photos, but it should work :slight_smile:

Hi Anders,

I am trying to put photos on an iPad.
Basically I’m trying to figure out a way to go mobile to mobile. iPhone to iPad.
Not sure if this can be done or if it must be mobile to laptop/desktop.

Ah sorry. I don’t think that’s easy to do as it is right now without using say iCloud. I’m going to improve the Review views very soon though, to make it easier and faster to review photos. Looking ahead, perhaps we should think about making an iPad companion app for reviewing/editing if it is something that’s desired for power users, but that’s not planned in the near future.

No problem.
I think I might try to figure out iCloud but I think it would be slow, not sure though because I never use it.
Will probably just have to pick up a laptop and make everything easier.
iPhone to iPad without iCloud is a bridge too far.
Thanks for the help.

Edit: How do I put my Mapillary app photos into the cloud? Did you make this totally unavailable now? If the photos are moved from my iPhone to my iPad will they get uploaded through the app or the website?