Hello. What EXIF tags should be present in the uploaded images so that Mapillary correctly recognizes/calculates the image’s FOV and removes distortion, for example your typical fisheye from action cameras? Or, more generally, what information does Mapillary use for image lens correction? I am manually processing my photos from videos and writing the EXIF data “myself”, so I cannot use what would normally be camera output photos.
Thanks for the answer!
Interesting… I actually wrote both those tags with make GoPro
and model HERO8 Black
, exactly like they would appear set by the camera (spaces and all). For example, this photo. It does say “captured with GoPro HERO8 Black” and I can see there is correction applied, so it identified the camera. But the correction is not correct.
I guess I’m confused because the camera has multiple FOV settings. It sounds like there’s no way to tell Mapillary exactly (or even approximately) which setting the camera used.
I looked through the repository a bit, but I am not sure where the data for each camera model is stored. (Searching doesn’t really turn anything up.)
Is it possible that this particular make/model entry is wrong (even before we consider multiple FOV options)? I feel like someone would have noticed. I see other people with GoPro 7 and 9 and 10 and they seem correct. I found someone with HERO8 Black and their photo has the same incorrect-ish correction applied.
Thanks, I skimmed over those before, but they didn’t have all other GoPro models I could compare to, like the 7, 9, or 10 (so I assumed there must be more data). So does that mean cameras like HERO9 are using default values, which happen to be “more correct” than the explicit values for my model?
I guess if I can confirm that these values do not produce the right correction for my model, I can file that as a bug for the repo.
I tried to highlight this problem some time ago in the topic:
but it died without effect. I guess its more mapillary problem than mine. With bad correction all triangulation and 3d poind cloud gets lots of bad data…
Im also using gopro 8 black. The correction went bad some time ago, probably with some kind of update. I see some recent sequences from gopro 8 that are still OK now. I dont know why mine are bad. So I just delete camera exif tags and now mapillary is determining the correctiom itself.
Ah, interesting. My question was not really related to the exact camera, I just wanted to know how I can set the FOV for photos. It turned out that Mapillary uses the camera model for this and hard-coded values. And it also just so happens that this specific HERO8 Black seems to have the wrong values.
I guess I will comment on that thread for the camera issue.
I would still like to be able to set a custom FOV though because GoPro has multiple FOV settings. I guess if the default correction is close enough, then it’s probably good enough. But it will still be slightly wrong. For now, it’s Mapillary’s problem then. I guess they can eventually apply some AI and figure out the correct FOV of a sequence that way.
In my experience mapillary automatically detects photo distortion.
This photo was taken with a muson action camera. Note the white pipe on the left. Pictures taken with this inexpensive camera are greatly distorted.
However, three pictures later in the same sequence the distortion is corrected. Drag the photo and note the border with the black background. The border is wavy and distorted because the lens distortion has been corrected.
I have not added any special EXIF to these photos.
Yes. In my observations also the algorithm tries to determine lens correction and camera maker is not always respected. As we can see the recognition is far from perfect. It depends on the surroudings. If there are straight lines like street pooles or buildings it tends to apply correction, but in the wilderness it leaves default correction from the maker or do nothing.