There is an older topic Edit sequence order that is similar but it seems like the platform has changed a lot since the time of that thread in 2017-18 so I’ll start a new one.
I’ve only recently started contributing seriously so apologies if this is a well known issue, but I’m noticing frequent of out of order images in the sequences I’ve uploaded. I’m using Android mobile app. Here is an example: this image should be first, and this image should be second. But their order has been swapped in the sequence. This is visible from the line between them jumping back and forth on the map:
When clicking through the sequence in the direction of travel you see the view make a large jump forward to point 2, then a smaller jump backward to point 1, then a larger jump forward to continue the sequence. It looks like the problem is that the timestamp of point 1 is 6:19:59.450 PM and for point 2 it is 6:19:59.222 PM. So point two is seen as first based on timestamps, even though from the GPS coordinates it should be second.
Is there any way to re-order these, or is it too late after they’ve been uploaded? If it’s not possible, does anyone know why the Android app would be setting the time stamps out of order like this? Any way to fix that behavior?
No. Sequences have to be feature complete prior to upload.
It is difficult to say for sure without examining the original image files but due to the fact that both timestamps are within 1 second range the most probable cause for this particular incident may have been the phone syncing the internal real time clock to the time source you have configured. If your time source was GPS and the camera samples the GPS clock signal with every image then it is also possible that the GPS clock signal may have been briefly distorted or deflected, so that it read or computed an incorrect timestamp.
Generally speaking, there is not much an app can do because usually photos are timestamped by the system and/or camera driver, not the app. The Android Camera Service provides basically complete image files with metadata and everything to the app. Some phones let you choose a time source for the phone or the camera. Feel free to explore and experiment to find out what works best and most reliable for you.
Thanks for the detailed reply, @GITNE. My phone is a Google Pixel and I’m not finding any settings where I can specify a certain time source. There is one called Automatic date and time which is enabled, though. Its description text says “Set [time] automatically using your network and wireless signals”. I’ll try toggling that off before my next capture and see if it makes any difference.
The Mapillary Android app doesn’t seem to offer any way to edit photo location, compass angle, or timestamp before upload, so I guess if I want to do any of this stuff I’ll have to transfer the photos off the phone and use the Desktop Uploader or mapillary_tools. Not as convenient, but perhaps will lead to better results. At some point I’d like to get a 360 camera so I’ll need to get used to this workflow anyway.
Do not forget to set it back to “Automatic date and time” after you are done. Otherwise, you may miss a daylight saving shift or timezone adjustment should you travel. Most smartphone clocks usually do not drift much though, so you should be safe in this regard.
The Android Camera Service on your phone (although I am no Google Pixel expert, I do know how Android works) may use the GPS clock signal for timestamping images by default or by design anyway. Then there is not really much you can do because for Mapillary the GPS timestamp (if available) takes precedence over other timestamp metadata, which is generally the smartest thing to do. Anyhow, you do not need to worry too much about it because Mapillary’s reconstruction step is going to rectify the images’ spatial position internally anyway. The sequence just looks a bit messed up. That’s all.
Android’s deliberate inexact (event) scheduling behavior (by design for power management reasons) and the Android Camera Service’s multi‑threaded implementation may also pose other possible explanations (though less likely) for these messed up timestamps. It would take too much explaining to convey why these things may result in messed up timestamps. Either way, both possible reasons are beyond the Mapillary app’s control.
This feels like a potential bug with the Mapillary Android app. Thanks for reporting! I think we should be able to account for cases like this. There isn’t an easy way to fix after the upload, but we will take a look at fixing this in future versions of the Android app.
Glad it is helpful, @boris. Since my last post here I’ve switched my workflow to capturing images with the Android app but then then copying them off my phone and uploading them with the desktop uploader instead. So far I haven’t run into this issue with any of the sequences uploaded in that way. So that does seem to suggest a bug that happens when uploading from the Android app.