Mapillary

Heel mooi. Ga je nu naast de wekelijkse OFM ook een mapillary overlay kaart BNL uitleveren? :wink:

Dat kan de gemiddelde Mapillary gebruiker zelf wel doen :wink:
Ik ontdekte nog wat bugs in de python script, maar als die zijn opgelost kan je eenvoudig een kaartje maken met Javawa’s imgfromgpx.

Jammer. Je weet dat ik lui ben dus ik dacht… :wink: Ik zal tzt eens kijken als de bugs eruit zijn. Ik vind het wel een mooie ontwikkeling want af en toe viel het niet mee te bepalen waar je nog kon fotograferen zonder overlap. Zeker niet bij mij in de buurt.

Voor forumleden die overwegen te gaan fotograferen is de Xiaomi Yi misschien een optie. Hieronder wat info.

Ik was al een tijdje aan het kijken naar een action cam en had mijn oog laten vallen op de Garmin Virb XE (rond 400 euro). De specificaties waren goed maar bij Garmin weet je nooit of je dan een probleemloos apparaat hebt of niet. Kan heel goed zijn dat je dan nog flink aantal maanden moet wachten op een goede firmware update. Ik hield de gebruikerservaringen op het net in de gaten maar was nog niet overtuigd dat dit de beste optie voor mij was. Op de RWS meeting hoorde ik Stefan heel enthousiast praten over de Xiaomi yi (60 euro) en toen ben ik maar eens gaan kijken wat deze cam kan. Qua specs is ie niet echt vergelijkbaar met de Virb XE (kan ook niet voor zo’n prijsverschil) maar toch… misschien zou ik er wel mee uit de voeten kunnen. Inmiddels heb ik deze een tijdje uit kunnen proberen. Hij werkt prima voor mapillary doeleinden (en meer). Ik gebruik timelapse op 2 seconden en dat gaat goed.
Een snelle overview van de specs

-Geen GPS
-Geen schermpje
-Niet waterdicht
-Geen IS (Image Stabilisation)
-Rond 60 euro (banggood) (exclusief micro SD kaartje)
-Goede kwaliteit foto’s
-Nog niet vast gelopen
-Eenvoudig te bedienen app (bij mij op Android)
-Eenvoudig te bedienen zonder app.
-Reservebatterijen eenvoudig te wisselen en kosten niet veel
-Veel gopro accessoires beschikbaar.
-Diverse waterdichte cases beschikbaar voor weinig
-Opladen en filmen kan tegelijk (dus bv powerbank eraan hangen als je uren wilt filmen)
-Er zijn al diverse (gehackte) firmware versies die deze cam nog meer mogelijkheden geeft (niet geprobeerd)

Ik gebruik mijn telefoon om de app te bedienen en om met OSM-tracker de track op te nemen.
Met bv javawa Fotogeotag is het daarna eenvoudig alle foto’s van de benodigde geo tags te voorzien. Mijn ervaring is dat je de tijd niet hoeft te corrigeren. Ik vermoed dat de camera (als ie bediend wordt met de app) gewoon de tijd van de telefoon overneemt.

Als je meer wilt weten over deze cam kijk dan even naar deze uitgebreide review.

Overlap is ook niet altijd erg. Sommige wegen veranderen nogal vaak, dus daar ga je wat vaker langs als er wat is aangepast. En in andere gevallen zijn extra sequences handig wegens de ongelukkige interval: net te ver weg of er net voorbij. Of gewoon obstakels in die in de weg staan.
Lijkt me verder wel een handige tool om te zien waar nog onontgonnen gebieden zijn.

Nu nog iets om aan te geven welke sequences recent zijn of al zo oud dat een nieuwe ronde onderhand op z’n plaats zou zijn.
Ook iets dat de richting van de foto’s aangeeft zou handig zijn om de ontbrekende retourritjes te kunnen vastleggen is iets hetgeen ik erg handig zou vinden.
Beide lastig te realiseren in een GPX denk ik, al zou je de ouderdom van de sequences kunnen opsplitsen in een oude en recente GPX en die met verschillende kleuren weer te geven.

@Sander
De tracks zijn gesorteerd op datum. Je zou een deel (bv de oudere) dus eruit kunnen gooien of van een ander kleurtje voorzien voor je gps. Dit kaartje is ook handig om de historie van sequences te analyseren: http://tangrams.github.io/mapillary-explorer

@Peewee Je hebt geluk dat je in de buurt woont, als ik weer een update maak voor mezelf kan je een kopietje krijgen. Dan fotograferen we tenminste niet exact dezelfde weg op bijna hetzelfde tijdstip. :wink:
Was wel aardig overigens, want zo kunnen we de kwaliteit van de Xiaomi Yi (boven) vergelijken met de Drift HD Ghost (onder)

http://www.mapillary.com/map/im/dPMMEe_ljHVappDGP5a59w/photo

http://www.mapillary.com/map/im/mCkupcggVvDKBeOmf83DZw/photo

Zoiets bedoelde ik inderdaad, al hoeven het niet zoveel kleurgradaties te zijn.

Voor de Garmin: met imgfromgpx is dat niet zo moeilijk, je groepeert ze gewoon in verschillende gpx tracks die je een apart kleurtje geeft.

Voor Osmand moet er helaas iets anders verzonnen worden, die houdt niet zo van enorme gpx bestanden. Ik zou 'm moeten omzetten naar obf formaat denk ik.

Workflow voor het omzetten naar Osmand:

  1. open gpx file in Josm
  2. GPX selecteren en naar gegevenslaag omzetten
  3. Alle tracks selecteren (ctrl-A)
  4. geef ze een bestaande OSM tag die mooi wordt gerenderd en niet in de weg zit, bijv voor Nederland piste:type=downhill
  5. Sla de kaartlaag op in osm formaat, bijv. map.osm
  6. Converteer map.osm naar obf osmand kaart mbv OsmandMapcreator, http://wiki.openstreetmap.org/wiki/OsmAndMapCreator
  7. Kopieer de map.obf naar de osmand map op je device

Resultaat ziet er dan in de Wintersport kaartstijl zo uit:

wat mij een redelijk resultaat geeft:

  1. open gpx file in Josm
  2. GPX selecteren en naar gegevenslaag omzetten
  3. Alle tracks selecteren (ctrl-A)
  4. Alle nodes deselecteren (shift-U)
  5. wegen vereenvoudigen (shift-Y)
  6. gegevenslaag naar GPX omzetten.

Op deze manier raak ik 90% van de nodes kwijt en is het gpx-bestand klein genoeg dat het redelijk snel renderd.

Bedankt voor de tip, de omvang van de gpx file wordt 20% kleiner hiermee. Kost nog steeds tijd om 'm te laden maar het is te doen.

Heb je hier nog wat tips hoe ik dat kan gebruiken? Stel ik wil alle tracks in GPX formaar in een Bounding Box hoe ga ik dan te werk? Ik heb geen verstand van Python maar ik gebruik het al wel voor het uploaden van de foto’s naar Mapillary.

Het garmin kaartje van de mapillary tracks is wel handig voor op de GPS zelf maar als ik van te voren een route wil plannen dan zie ik liever die tracks als GPX in basecamp.

Kopieer het script van https://github.com/dalacost/mapillary_tools/blob/master/python/download_gpx_from_sequences.py
Voer daarna de opdracht uit (bvk in een batch file)

python download_gpx_from_sequences.py min_lat max_lat min_lon max_lon [max_results] [filter_by_user_name[/code]
Plak daarna de gpx files aan elkaar met join_gpx_mapillary_files.py en voer ook dit script uit.

Dus bijvoorbeeld

python download_gpx_from_sequences.py 49 51 5 6 10000
python join_gpx_mapillary_files.py gpx_from_sequences map.gpx
pause


Bedankt. Het werkt. Ik had Python blijkbaar elders staan maar gelukkig zag ik dat nog in het andere mapillary .bat bestand.

C:\Python27\python download_gpx_from_sequences.py 51 52.5 5 6 10000 
C:\Python27\python join_gpx_mapillary_files.py gpx_from_sequences map.gpx
pause

Dit script draaide (voor mijn gevoel althans) zo’n 45 minuten en leverde een 97MB groot GPX bestand op met 3400 tracks (=afhankelijk van Boundingbox en hoeveelheid tracks in dat gebied). Dat is prima in te lezen met basecamp. Nu nog een route plannen en mooi weer :wink:

Je zou ook nog de tracks < 25 m kunnen verwijderen, en zie verder de methode van de Vries om de gpx tracks te filteren mbv JOSM. Dit levert dan weer een veel kleiner gpx bestand die werkbaar is in Osmand.

Afgelopen week heb ik ook mijn eerste Mapillary stappen gezet. Dit is mijn camera en setup:

Een Garmin Virb Elite.
Voornaamste argument vóór deze camera is dat GPS gegevens al volledig bij de beelden zijn opgeslagen en dat ik de videomodus ook nog voor andere doeleinden kan gebruiken. Bovendien heb ik geen smartphone dus die Mapillary app kan ik niet gebruiken.
De Virb is simpel te bedienen en laat zich makkelijk instellen. De houder is in alle richtingen verstelbaar.

Ik heb op twee manieren gewerkt:

  1. Video opnemen in time-lapse modus
  2. Foto’s opnemen in time-lapse modus (instelbaar van 2 sec tot 120 sec)

Hier kun je zien dat die video modus slechte beelden opneemt, want de resolutie is nogal laag. Bijzonder is wel dat je met de VIRB editor allerlei ritgegevens aan het beeld kunt toevoegen.

Mogelijk moet ik nog experimenteren met de verschillende andere resolutiemogelijkheden van die video-modus, maar de foto-modus doet het stukken beter. Gisteren een tocht van 3 uur gemaakt, (met een 8mp 4:3 fotoresolutie zoals wordt aangeraden. 12mp en 16mp is ook beschikbaar).

http://www.mapillary.com/map/im/09WROAgP9lj8ZvRliJsBfg/photo
Omdat de_vries hier ook veel in de buurt heeft gedaan, kun je soms overstappen naar zijn foto’s!
Je kunt overigens goed merken dat de camera bij minder licht (zeg vanaf 3 kwartier voor zonsondergang) duidelijk problemen heeft met de scherpte.

Batterij houdt het prima vol en geheugen kaartje van 32 Gb was ruim voldoende. Na afloop had ik dus bijna 4000 foto’s.
Via de manual upload van Mapillary naar de server gestuurd. Ging redelijk snel.

De VIRB slaat steeds 1000 fotos op (in een aparte folder) met de naam virb0001.jpg t/m virb1000.jpg en begint daarna een volgende folder met hetzelfde naamschema. Er was hier al eerder opgemerkt dat de uploader niet 2 keer dezelfde naam voor een foto accepteert, die wordt dan gewoon overgeslagen. Sander had hier al een python script laten zien om dat op te lossen, maar ik had inmiddels zelf ook al een (unix) script gemaakt dat de tijd waarop de foto is gemaakt (uu:mm:ss) voor de naam plakt, en dat geeft ook een goed resultaat.

Ik vind de beeldkwaliteit die Mapillary uiteindelijk toont op zijn hoogst matig en vooral: zeer wisselend - zeker als het gaat om die bewegende beelden als je een hele sequens afspeelt. Ook die quasi vloeiende overgangen zijn behoorlijk slecht. Wat is het nut daarvan?
Wat zich natuurlijk ook wreekt is dat al die gebruikers allemaal verschillende camera’s en technieken gebruiken (die ook nog allemaal - daar hoor ik dus ook bij - aan het experimenteren zijn), en dat komt het eindresultaat niet ten goede vind ik.

We zullen maar zeggen: “work in progress”.

Goed bezig Marc.

Mijn Xiaomi Yi doet iets vergelijkbaars en ik heb een nog andere werkwijze dan jij en Sander. Wellicht voor andere Mapillaristen goed te weten. Ik gebruik een eenvoudig windows programma om de bestanden een andere naam te geven. Je kunt bv de naam van de folder waar ze in staan toevoegen aan de bestandsnaam. De folder namen zijn bij de Xiaomi ook opvolgend (001Media, 002Media etc.) Met het rename progje komen de foto’s ook qua naam in de goede volgorde te staan. Hier staat uitgelegd hoe je dat doet.

Als je de mapillary sequence afspeelt laat ie de lage resolutie foto’s zien. Ik neem aan dat dit uit performance overwegingen gedaan is. Als je em stopt verschijnt even later de hogere resolutie foto.

\o/ jeej, meer map(illary)ers in de omgeving den bosch, wekom bij de club!

Ik snapte er eerst ook niks van maar ik kan je aanraden je in de upload scripts te verdiepen.

Mijn camera doet precies het zelfde. ik los dit op met de ‘masaal hernoemen’ functie in Thunar bestandbeheerder (linux)

Ik weet niet wat voor mount de Virb precies heeft, maar je zou de bewegingsonscherpte iets kunnen verbeteren door de actioncam niet op het stuur te monteren maar mbv een mount strak op je frame boven de voorvork. Eea is natuurlijk wel afhankelijk van hoe je rem/versnellingskabels lopen. Ik gebruik een zgn roll bar Gopro mount (goedkope kloon uit china) met tripod adapter. Hoe meer tussenstukjes je gebruikt, des te meer trillingen dus zo min en kort mogelijk is wel aan te bevelen.

De mogelijkheid om een periode op te geven waarin je de tracks wilt downloaden heeft “Dalacost” nu ook toegevoegd, heb het nog niet uitgeprobeerd.
Zie https://github.com/dalacost/mapillary_tools/blob/gpx_downloader/python/download_gpx_from_sequences.py


usage: download_gpx_from_sequences.py [-h]
                                      [-r min_lat max_lat min_lon max_long]
                                      [-m MAXRESULTS] [-u USERNAME]
                                      [-d1 STARTDATE] [-d2 ENDDATE]
ranges:
========
min_lat = -90 to 90
max_lat = -90 to 90
min_lon = -180 to 180
max_lon = -180 to 180
maxresults = numeric >= 0
filter_by_user_name = string
Limit_Start_Date = a date informat YYYMMDD ex:20150101 default hour: 00:00
Limit_End_Date = a date informat YYYMMDD ex:20151231 default hour: 23:59