OpenStreetMap

I have been following Mapillary with a good deal of interest, because they provide an open ‘street view’ platform that is explicitly aimed at improving OpenStreetMap.

Here’s an example of a Mapillary image and map context:

example

I have created an account and did some test shooting from my car, using the iPhone app Mapillary provides. This is OK, but I want better quality images. So I am looking at an action camera I can mount in my car and on my bike.

After doing some research, I narrowed the field down to two contenders: the Garmin VIRB / VIRB Elite and the GoPro Hero 3.

The Garmin VIRB (Elite edition shown): VIRB

The GoPro Hero3 (White shown): GoPro Hero3

Some observations:

  • The VIRB seems to have better battery life (important! but could not find any side by side comparisons)
  • The basic GoPro Hero3 is less expensive than the basic VIRB
  • The Elite edition of the Garmin VIRB has lots of built in sensors: GPS, altimeter, accelerometer - nice, but I am already carrying a GPS wherever I go anyway.
  • Both can do automatic time lapse photos at set intervals, which is crucial.
  • The VIRB can do 16MP stills, the most expensive Hero3 can do 12MP. This does not necessarily mean better pictures, of course.
  • The most expensive Hero3 comes with a remote, which can be convenient if you don’t want to time-lapse. For example on long freeway drives where you just want to capture the signs. The VIRB can be remote controlled by certain Garmin devices like the Fenix 2 watch. Both come with smartphone apps that can control the camera as well. Convenience factor is much less though.
  • The VIRB has a built in screen. Not sure if that is actually an advantage. What would you use it for?
  • Both have wide angle lenses which is important to capture as much in one shot as possible. Specs are sketchy but it looks like the GoPros have a slightly wider angle.
  • GoPro has been at this for a lot longer than Garmin.

Here’s a comparison of the video side by side. I wouldn’t use video mode as much so this is of limited value, but anyway:

(The iframe embedding does not seem to work - is there a way?)

From what I can see the GoPro wins out by a small margin: sharper and better colors.

What do you use? Any other cameras to consider?

Discussion

Comment from Vclaw on 4 July 2014 at 21:23

For using on a bike, I think the GoPro is a bit smaller and a better shape. Plus there is a wide range of mounts available. I think the Virb has some sort of adapter to attach to GoPro mounts, not sure how well that works.

For GoPro battery life, it seems to depend on the model. I think the more basic models (white or silver), have longer battery life than the black. The GoPros can be powered from a USB supply, so for in car you could plug it in. Or you can get a battery bacpac, to double the battery life.

The built in GPS on the Virb could be very useful for geotagging photos. Yes, you could use a GoPro plus a separate GPS recorder, but you have to make sure the time is set correctly to make it accurate.

Comment from dudone on 5 July 2014 at 06:57

I’ve used an HD Drift http://driftinnovation.com/ for a couple of years in the context of mapping. (It seems to have been discontinued and is relatively cheap at the moment!) This is used in time lapse mode with the images being imported into JOSM. I use a separate GPS logger. It is relatively easy to adjust for any time difference in JOSM. There seems to be a photo_geotagging plugin in JOSM that would allow you to write the GPS position to the image header if you then wanted to upload the images to Mapillary.

All these “action” cameras seem to be designed and optimised for video. I would therefore be wary of comparing video performance as this may not be reflected in the static performance. Their capacity to resolve small text (i.e. number plates) very much depends on lighting conditions and the relative speed and you may not get much better image quality that your iphone.

One advantage of the Drift is that it has a standard camera mount so you can use a much wider range of mounts, such as those available from companies like Ram Mounts. I generally use the camera mounted to the car windscreen but have also used it mounted to the handle bars of my bike and on a cycle helmet. The lens rotates so you can mount it on the side or top of a helmet for example.

The HD drift comes with a wireless remote which is useful. The latest models seem to use wifi remotes.

Depending on what you intend to do, I would suggest investing in some spare batteries. Battery life is between 1 and 2 hours but I don’t use it with the screen off for example.

Another manufacturer to consider is Contour. http://contour.com/

If you are only going to use this in a car and are not to worried about the size and weight I would all take a look at using a “standard” Cannon camera and using chdk with a suitable script to provide the time lapse mode. You should may well be able to get a better camera, with regard to static picture performance than your iphone and these action cameras, for much less money.

Comment from vincent_95 on 6 July 2014 at 21:49

Two years ago I spent a week in Clermont-Ferrand (FR) with my bike and a GoPro H2 on my bicycle helmet to take pictures of every street in town and around. I can not recall other products benchmarked at this time but from my point of view the GoPRo dit the job.

I combined the camera with GPS loggers (3 in my backpack to prevent battery or signal issues) and geotagged every 11M pix picture with a post process in house. The GoPro was powered by 4 batteries per day trip, which means that each had between 2h and 3h of power. Fast SD cards are another key point since I was shooting in time lapse mode (2 photos/s.)

The quality of pictures was good enough for my needs : I wanted to be able to read every kind of signs in the streets, including street names set on buildings (house numbers were out of scope). Mounted on the top of my helmet and shooting frontside, the camera had basicaly the same point of view as I had. I was most of the time looking at the street in front of me and not turning left or right but the wide angle (170°) of each pict with a quite good autofocus allow to zoom in the picture and read the signs anyway.

More details in this [blog post] (http://openstreetmap.fr/blogs/vincent-de-ch%C3%A2teau-thierry/openstreetmap-la-base-dun-nouveau-plan-michelin) (only in french).

vincent

Comment from mvexel on 10 July 2014 at 00:09

Thank you for your contributions! Drift and Contour seem like great candidates. I opted for the GoPro because of the form factor and accessories available, and the reportedly good image quality.

When I got it, I turned off sharpening, auto-white-balancing, and other pre-processing I could find to get the purest possible reading from the sensor. Here is a result from a test shoot. This is - obviously - taken with the camera mounted inside the cabin. I am getting a suction mount (and some fishing line as backup :) so I can mount the camera on the hood instead.

Here is detail at 100%:

detail

I don’t think this is all that impressive. Perhaps it’s the image compression. Perhaps I need to tweak the settings a little more.

The post-processing was a little more tedious than I had hoped. I recorded a GPS track using my Garmin Dakota 20. This delivers a standard GPX format track. My first thought was to use the JOSM geotagging plugin to write the location information to the images. This works great, but it does not write the GPSImgDirection tag, which is required by Mapillary. (This should not strictly be necessary, as they can calculate the direction based on the GPS track, given user input of the relative heading of the camera to the driving direction. I am talking to them to get that resolved.)

The tool I settled on for now is a pretty smart Ruby script called gpx2exif. It does calculate and write the GPX location and heading, so the images are ready for upload to Mapillary straight after processing them through this tool. I still use the JOSM plugin to determine the offset between GPS time and camera time.

The main issue with gpx2exif is that it wraps the great but excruciatingly slow exiftool. Processing a few thousand images - which is a pretty typical use case - takes hours. This could be improved a lot if they would switch to exiv2. I filed a ticket with them and got a prompt response from one of the maintainers, Craig Taverner - who incidentally also wrote a great blog post about this very process. I also looked at doing it myself but my limited Ruby skills and the lack of a decent exiv2 ruby wrapper made me give up for now.

Then, when I finally had my first sequence ready for uploading, Mapillary’s web uploader did not like my 700+ image sequence very much - at least not on Firefox. After a lengthy wait and a lot of ‘Unresponsive Script’ alerts I finally decided to force quit the browser, but it seems that the process had magically completed in the background.

So, to make a long comment short, it all works, but I need to play with the image preprocessing and quality dials in the camera, it takes forever, and it would be cool if Mapillary would just let me upload GPS + image sequence in a robust web uploading environment. Or better still, offer a bulk upload API that developers could go to town with.

Comment from malenki on 11 July 2014 at 18:51

For by-hand-geotagged photos:
You and other mappers with a fix mounted camera know that it points all the time straight forward.
But I would not assume that per default all pictures without EXIF heading flag show what lies directly in the course of the gpx track since I know my photographing behaviour when mapping house numbers, street names and alike. I point the camera where the information is I want to have. Example: Gjirokastra which I walked for three days to get all street names of the old town

I would welcome a GUI which shows the image on the one side, on the other side a map with some OSM layers and also Bing Imagery and the location of the image. Then the user would only need to klick on the map to mark the direction the image points to.
Alas my coding skills are not anywhere close to be able to write such a thing so I can just stick with begging for such a GUI…

If you think it is cumbersome to work on a load of images like this: On OpenStreetView I myself have nearly 29.000 images which I and two others reviewed and anonymized by hand – and there are some more users like me there.

For uploading to mapillary I’d like to have a easy method (FTP or a script) which I could use on a headless computer. I’d hate to have my big computer running all day just for uploading images where the NAS with a full linux could do this job as well.

I will point the mapillarians to this blog post as well so that we don’t just lament but keep them informed. ;)

Comment from jesolem on 11 July 2014 at 21:37

Nice post Martijn

I have both a Garmin VIRB and a GoPro Hero3. The GoPro wins on image quality. The color balance is not great on the Garmin when riding against the sun (I know I shouldn’t do that btw).

When it comes to mapping for Mapillary, the VIRB wins for me. Not requiring an extra GPS to sync against, and all EXIF tags in place straight off the camera. I wrote up my process here: http://blog.mapillary.com/update/2014/06/16/actioncam-workflow.html

I use a GoPro mount when biking. alt mount This works great as the little display on the VIRB points upward so I have a nice preview that helps me align the horizon.

The web uploader, although recently improved, is a little sketchy with long sequences. We are working on scrips and API for upload.

I’m one of the “Mapillarians” mentioned above, you can give us feedback at hello@mapillary or GitHub.

Comment from Skippern on 6 April 2015 at 22:09

Just got my VIRB Elite a few days ago, and are trying to upload with the video upload on Mapillary, but either there is some form of size restrictions I cannot figure out, or my internet connection isn’t good enough. I am therefor looking for a good way of transforming the videos to georeferenced photos I can upload with the upload_with_authentication.py

Comment from simonmikkelsen-dk on 24 April 2015 at 15:05

Any good suggestions for ways to mount a camera without too much shaking?

I have not tried with an action camera yet, but my phone on a phone mount gave a lot of rolling shutter blur for mappilary. I also tried a full size video camera once, using heavy duty Manfrotto mounts, but even that gave a lot of shaking.

I would prefer to be able to use a phone and still get an image quality like I held it in my hand.

A helmet mount would probably do, but it does not give a consistent image, like mounted directly on the bike.

Comment from simonmikkelsen-dk on 25 April 2015 at 16:22

Just tried my action cam - a Sony AS-100V - which create nice images mounted on my bike. You will get the fish eye view as those cameras gives. But! The camera takes nice stills in 13 mega pixels, but when you set it on interval it will only do HD resolution (about 2 mega pixels). There is no way of doing full resolution. The cameras GPS works fine, get both direction and altitude - but the resolution. Come on, Sony. That is just lousy (so don’t get this camera for mappilary).

Log in to leave a comment