開放街圖標誌 OpenStreetMap 開放街圖

OSM and Mapillary - How I do it now - March 2025

於 2025年三月10日 由 bob3bob3English發表。

A few minor changes, so this is more an update, but with close to full details.

The tools;

  • Forward looking 8.3MP/4K dashcam 2FPS.
  • Left facing (270 degrees) old Samsung 8MP phone 1FPS. (Out passenger window)
  • Left rear facing (225 degs) old Samsung 3.6MP phone 0.6FPS. (Out passenger window)
  • The dashcam records audio (my voice) in one minute chunks.
  • All photos and audio are geo-referenced to their current location.
  • The Garmin navigation GPS has a current OSM based (mkgmap) map, a POI set of OSM FixMe’s.
  • I am a permanent road dweller, retired and wandering Australia. For 10 years now.

The methods - Start of day;

  • Start a GPS/NMEA (USB via laptop) UBLOX recording function that also flags movement >3kph and <40kph.
  • Start an APRS beacon for those that like to track me. (msg me for details)
  • Mount/power up the side facing phones and launch their (laptop) 3>40kph recording scripts.
  • Power up the dashcam and let its own GPS settle for 2-3 mins. This is also the voice notes recording device.

The methods - Basic drive;

  • Open high speed road 70*100kph. Just let it capture doing voice as below.
  • Can’t really play music as it can trigger voice events.

The methods - Voiced items;

  • Every road surface change paved vs unpaved on route. (incl concrete bridges)
  • Any road calming objects (humps and chicanes) and gates on existing roads.
  • Any one*way road situations and associated signage.
  • Road surface left and right of track (surprising how many are not currently valid)
  • Verify road names signs vs Garmin GPS and voice differences. (including missings)
  • Verify waterway names signs vs Garmin GPS and voice differences. (including missings)
  • Voice any obvious missing public cross etc roads or major private ones. (eg sealed mine roads)
  • Voice all bridge names. (if they exist)
  • Respond to FixMe’s. (many an unknown water crossing!)
  • Voice any obvious informal parking areas (like stockpile/gravel pit areas) plus any formal not showing on GPS.
  • Voice any farm/property names/type and if possible address numbers.
  • Voice as many town/other objects as possible, priority to Fire, Police, Ambulance, Church, Govt Offices, Post Office & Telstra phones/exchanges, but try to get all shops, parks, recreation grounds, playgrounds, toilets, camp areas, dump points, water points/tanks, fuel stops, rest areas, touristy things, information boards, welcome signs, comms towers, windpumps, large dams etc as possible.

The methods - High density shopping etc areas;

  • It’s impossible (and distracting) to voice such detail, so I rely on the side cameras to (say) take 2-4 images per shop front. This is usually done between 20 and 30kph. Especially high detail I’ll go to 5kph for, and less to 40kph. More than 30kph though there is a higher blurring risk, so really only useful for more distant scenes.
  • I open and close the powered windows as I drop below 40kph. Yes I could automate that via a ECM/VCU connection along with capturing some interesting data. Have to be able to override on a wet/cold day though!

The methods - End of day;

  • The side cameras save their jpgs direct to laptop, so I stop the capture process and launch a single script that processes every image, including EXIF GPS and other data.
  • The dashcam has a WiFi connection, so I download the entire days movie capture. I leave the SD card in the camera. Later in that script I extract out jpgs also with GPS EXIF plus the road speed. The road speed (0) is then used to remove all stationary only videos.
  • Processing (before upload) takes roughly twice the time of the actual captures. I have to throttle the i5 laptop in hot weather, but generally it runs flat out for 4*5hrs per drive day. The entire system is actually solar powered (with a charge boost when driving) and more efficient if run this way.

The methods - OSM and Mapillary upload;

  • I have 2 laptops, so some concurrency of the workflow happens quite regularly. What I do has been mostly covered by previous diary entries so these are only a few extra.
  • The stream of side facing camera views are visually checked for any private dwellings or blurs. These won’t be uploaded, but some are used for house numbers entry before being discarded.
  • The dashcam images are not uploaded as the Mapillary server will direct process mp4 videos. They and the (non private) side camera images can be uploaded async with any OSM entry. I upload between 8 and 20 GBytes per days travel. This can overheat the cell modem despite a cooling fan, so I may delay uploads for a location with better signal that keeps the mode cooler. The record was a backlog of 150 GBytes in one 12 hr period.
  • I mix the side camera views in the one directory, so I can scroll back and forth over the same scene to read around objects in front of information I need for OSM. I would usually remove them from the directory afterwards, but may need to correlate them with dashcam and voice notes. Images removed means work complete, so I can also keep an OSM backlog, sometimes a week old.
  • Although I upload the images to Mapillary I rarely if ever use them for OSM (through ID). I try to do OSM entry when the detail is still fresh in mind and it can take a week for them to appear on server. It’s also far easier/faster to enlarge and track them locally.

About the phones as cameras;

  • Android phones with USB tethering enabled is much faster than using its WiFi through an AP. Problem is that the device IP is fixed, so only 1 phone per laptop USB. The 2nd phone is via the slower WiFi. Am thinking of combining USB ports (bridging) to the one network interface, but it’s probably not worth the hassle.
  • I use the Android App “ipwebcam”. Basically it presents a web server like functionality, so I just “wget” an image as fast as it will respond. I don’t enable or use the phone GPS. The rate does vary somewhat with light level and WiFi congestion. Telstra also has their cell modem/AP firmware configured to power down if there is no cell signal for more than some time (like maybe an hour), so that can break capture.
  • The loss of 3G made these phones very useful as web cameras. No SIM installed, but emergency calls might still work. The USB attached phone is in “airplane mode” so no WiFi/cell RF.
  • I have an ordinary cell smartphone. It’s boring though.

About the Garmin GPS navigation device;

  • I have a custom mkgmap script to update maps whenever I have the need. Minimally every month.
  • Using overpass with some text processing and gpsbabel I can add all manner of special POIs as needed for whatever project I may be working on.
  • The default POI is all Fix-Me’s with all the associated point or way fields (minus lat/lon) concatenated with spaces removed, so it can best fit on the Garmin screen. They show up as red blobs on the Garmin screen along with an audible alert at 800m.
  • Anything is possible with the OSM data and POI’s. One recent set was of roadside parking sites that were missing some required info, ignoring others that were complete.

About the UBLOX GPS unit;

  • This is one of the USB dongle things that I have glued to the inside of the upper left windscreen and connected to the laptop via a USB A*A M/F cable.
  • At day start I configure it to act as if mobile (the default being to assume it is sitting still and has position dampening applied) and run at 5 positions/sec rather than 1. I have on occasion wanted the best accuracy for road/way alignment, so upload to OSM the combined UBLOX and dashcam GPX’s in both directions as a private trace. All 4 track lines are then very obvious and easy to centre on. I can also look at any image (they are all georeferenced) to check for a reason for an unusual track deviation. (Like giving a truck the entire road!)

About the laptops;

  • The capture laptop is quite an old Toshiba i5 with a (replaced) SSD running Debian Bookworm. The 2nd one (used for OSM entry) is the same, but an i7.
  • It helps that I was a systems manager in my employment life, so do a lot of coding.
  • The scripting and processing has evolved over the years and kind of complex. Well beyond the scope of this diary items entry. It is worth noting though that I also optimise the image contrast and gamma prior to uploading the side cameras, as none of this processing is done on the Mapillary server. It is well worth doing.

About the vehicle;

  • A camping fitted out AWD VW Transporter. Grunty diesel.
  • Enough antenanas that I am asked if I work for ASIO quite often.
  • 480W solar panels and 300AH LifePO4 battery.
  • There is a bed, fridge and cooking gear in there somewhere.
  • QRG 40m, 30m, 2m APRS only, no voice. (for those that know what that means)

Please feel free to suggest or ask opinions! As I type this I am camped at Captains Flat, not far south of Canberra (Australia’s capital). The entire Mapillary and OSM backlog is cleared so more driving coming up!

Cheers Bob

電子郵件圖示 藍天圖示 Facebook 圖示 LinkedIn 圖示 乳齒象圖示 Telegram 圖示 X 圖示

討論

Fizzie-DWG2025年03月17日 00時56分 發表的評論

That’s amazing!

Thanks, Bob :-)

aharvey2025年03月17日 01時37分 發表的評論

Nice write up and thanks for the details!

radiotrefoil2025年03月17日 01時51分 發表的評論

Amazing, thanks for all your work and the writeup. Your photos have helped my mapping in rural areas many times.

asturksever2025年04月 6日 20時36分 發表的評論

Thank you, Bob, for the write-up, particularly the detailed items that utilized voice notes.

bob3bob32025年04月18日 20時06分 發表的評論

@asturksever

Just a review on the voice notes techniques.

Most of these notes are at higher road speed as all three cameras capture a lot of detail <40kph. I almost stopped voicing high information density areras as I cant talk fast enough! Road noise then has always been a problem, both as s/n and false positives. The BlackVue unit had a few shortcomings in this area, so I recently mounted a (laptop connected) lapel microphone closer to my mouth and pointing at me. I also have in mind to use the vehicle’s inbuilt phone/bluetooth microphone as it probably already has good filtering and/or preprocessing.

The BlackVue being windscreen mounted received a lot of conducted wind noise. Its rotating mount also rattles, thus conducting noise. It has a violent AGC action to sharp/loud noises, that are often interpreted by sox as VAD events. The audio capture will also stop if any object comes close to the proximity detector. I have even been able to trigger that by cleaning the outside window, thus losing the days voice notes.

The system now is a sox 1 minute trim 32bit float recording as a UTC date/time file format that is the same as the ffmpeg extracted photo frames.. There is no AGC effect. I just set the record volume for no clipping, the idea being not to add distortion from lower frequencies. In postprocesing I use the sox sinc filter to almost brick wall the low frequencies out, eg

sox in.wav out1.wav sinc -n 255 250-2500 gain +12

I am still adjusting the 250Hz low pass number to get best balance for my voice vs road noise.

I still run sox VAD afterwards selecting wavs with peaks more than a particular value, then normalise the audio.

sox out1.wav out2.wav vad -t 7 -l 1000 -L 1000 -h 300 -H 300 -T 1 sox –norm=-0.5 out2.wav out3.wav

It works a whole lot better than the BlackVue audio capture, maybe 30% fewer false positives and adding 10-20% more information.

登入 來留下評論