Mapillary

@Sander
Die orientation tag ontbreekt ook op mijn Garmin Monterra. Geen ervaring met de scripts, maar orientation kan je toevoegen met exiftool

exiftool.exe -Orientation=1 -*.jpg

Javawa’s geotag kan de direction toevoegen (=kijkrichting). Dat is iets anders dan orientation (deze tag ziet of je de camera in portret mode houdt, in landschap of op de kop). Javawa is nog bezig met de Engelse vertaling van geotag en zou tzt met die nieuwe versie komen.

Ligfietser bedankt.
Ik ga die exiftool eens uitproberen vanavond.

Ik zou graag een vergelijk zien tussen timelapse functie op de kortst mogelijk stand en de video functie, bij dezelfde situatie.
En dan met betrekking tot de leesbaarheid van de onder bordjes.

Om in de auto te gebruiken.
Ik vraag me dan ook af wat de optimale timelapse tijd is bij het rijden van 80 km/h om geen onderbordjes te missen.

Er is niks irritanter als terug te moeten gaan omdat je het net niet goed hebt vastgelegd.
Je hebt al gauw twee camera’s nodig voor en achter shot. Hobby moet wel betaalbaar blijven.

Kan iemand iets vertellen over 4k video.

november 2014

Ik heb ook een virb elite aangeschaft, maar ik had geen probleem met het upload script. Mijn foto’s hebben ook een Orientation in de exif metadata. Ik weet niet of dat met instellingen of de firmware versie te maken heeft? Ik heb bewust geen firmware update gedaan. Een probleem dat ik wel had, was dat GPSImgDirection soms helemaal verkeerd was. Dat heb ik kunnen oplossen door in die gevallen met exiftool 4294966936 van de waarde af te halen (0xFFFFFE98). Maar zelfs met een verkeerde waarde werkt de upload prima.

Kan iemand uitleggen hoe dat uploadscript werkt, of hoe je het moet instellen?

Lees eerst eens http://blog.mapillary.com/technology/2014/07/21/upload-scripts.html
Laat maar horen hoever je daarmee komt.

Dit had ik reeds doorgelezen, maar commando’s invoeren doe ik niet zo vaak.
Kan dit via de opdrachtprompt?

Of is het linux gebasseerd?

Op windows gewoon python 2.7 installeren (voor python 3 moet je zelf het script verbouwen).
Je moet tenminste de files upload.py en upload_with_authentication.py in een directory zetten. Upload.py is enkel voor foto’s genomen met de app, en dan kun je net zo goed de app laten uploaden, maar die andere gebruikt wat functies uit de upload.py waardoor je 'm toch nodig hebt.
Ook moet je in python de exifread module installeren.

Vervolgens is het gewoon een kwestie van: c:> python upload_with_authentication.py c:\hierstaanze
Via de commandprompt.
En dan hopen dat je geen foutmelding krijgt :slight_smile:

Inmiddels met de exiftool aan de slag geweest en daar staat gewoon dat de Orientation in de foto’s zit al zoals Wimmel ook aangeeft. Probeer ik Orientatin op 1 te zetten (waar ie dan al eigenlijk op staat), dan geeft Windows al aan dat de foto 180 graden gedraaid is en een fotoprogramma laat daarna ook de foto op z’n kop zien. Orientation op 3 zetten lukt niet, want dan geeft exiftool aan dat 3 geen geldige waarde is…
Beetje vaag allemaal. Nog maar eens verder uitzoeken waar nou het echte probleem zit.

edit:
Niet werkende link onder uploadscript verwijdert.

Je moet tussendoor ook nog 3 environmentvariabelen zetten. De correcte waardes zijn persoonlijk en kun je op http://api.mapillary.com/v1/u/uploadhashes vinden.
In windows kun je daarvoor een batch file maken die er ongeveer zo uitziet;


@echo off
cd /d %~dp0

echo type de directory met de te uploaden bestanden, bijvoorbeeld: E:\DCIM\100_VIRB\ 
set /p input=

C:\Python27\Scripts\pip install exifread

set MAPILLARY_PERMISSION_HASH=helelangetekstmetcijfersenletters
set MAPILLARY_SIGNATURE_HASH=korteretekst
set MAPILLARY_USERNAME=username

C:\Python27\python upload_with_authentication.py %input%

pause

Als je die opslaat als upload.cmd in dezelfde directory waar upload.py en upload_with_authentication.py staat, moet je dit volgens mij kunnen starten door een dubbelklik op upload.cmd. (maar niet getest).

3 zou een geldige waarde moeten zijn, http://sylvana.net/jpegcrop/exif_orientation.html
Ik gebruik thuis linux, maar zal proberen morgen op het werk onder windows een test te doen.

edit: nog twee kleine aanpassingen aan het script gedaan, maar het werkt bij mij (ook) onder windows.

Ik heb het ook even geprobeerd onder windows en uiteindelijk is het gelukt.

Die vind ik op https://pypi.python.org/pypi/ExifRead
Zip file uitgepakt en in ExifRead-1.4.2 vind ik een setup.py
Vanaf de opdrachtprompt type je dan

python setup.py install

Nadat ik alle omgevingsvariabelen had ingesteld (zie How to set the path and environment variables in Windows) heb ik het uploadscript gedraaid, maar eerst fout gedaan want *.jpg erbij gezet

python upload_with_authentication.py upload_dir\*.JPG

Toen kreeg ik deze foutmeldingen:

Traceback (most recent call last):
  File "upload_with_authentication.py", line 138, in <module>
    if verify_exif(filepath):
  File "upload_with_authentication.py", line 62, in verify_exif
    with open(filename, 'rb') as f:
IOError: [Errno 22] invalid mode ('rb') or filename: '*.JPG'

Je moet dus alleen het upload pad ingeven dus zonder *.jpg

python upload_with_authentication.py upload_dir

Dan gaat het goed, althans met een klein testje.
Zal eens tzt met wat meer bestanden proberen.

Ik kom nu een stukje verder maar loop toch nog tegen een upload fouten aan mbt het certificaat van de Amazon cloud:

URL error: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)> on VIRB0546.JPG
Uploading: VIRB0549.JPG
URL error: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)> on VIRB0545.JPG
Uploading: VIRB0550.JPG
URL error: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)> on VIRB0548.JPGURL error: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)> on VIRB0547.JPG

Werkt het bij jullie nog steeds, of lopen jullie hier sinds gisteravond/vanochtend ook tegenaan? Al was de melding gisteravond iets anders, maar kwam op hetzelfde neer (beide Windows 7).
Als ik de upload URL (https://mapillary.uploads.manual.images.s3-eu-west-1.amazonaws.com) in een browser intik krijg ik dezelfde error in alle browsers (IE, FF, Chrome).

Ik kreeg andere foutmeldingen, bij mij werkt het ook niet meer. Het testje dat gelukt leek blijkt online ook al niet toegankelijk te zijn dus echt lekker werken die scripts niet.

Op de blog een ander interessant item over hoe je een video op kunt knippen in fragmenten en die up te loaden tbv Mapillary:
http://blog.mapillary.com/news/2015/01/08/video-cutting.html

Dat lukte uiteindelijk, maar bij add_fix_dates.py moest ik de datum en tijd tussen dubbele quotes zetten anders kreeg ik een foutmelding.

python add_fix_dates.py ~/glen/pics/  "2014-09-07 11:17:40" 2

Presentatie van een van de ontwikkelaars van Mapillary, Peter Neubauer op de State of the Map 2014 conference:
http://vimeo.com/album/3134207/video/112445476

Thuis krijg ik dus onderstaande foutmeldingen:

Uploading sequence ad2d5dd7-e14d-480e-a659-161fc290845c.
Uploading: VIRB0521.JPG
Exception in thread Thread-1:
Traceback (most recent call last):
  File "C:\Program Files\Python\lib\threading.py", line 810, in __bootstrap_inner
    self.run()
  File "V:\OSM\Mapillary\upload.py", line 177, in run
    upload_file(filepath, **self.params)
  File "V:\OSM\Mapillary\upload.py", line 115, in upload_file
    response = urllib2.urlopen(request)
  File "C:\Program Files\Python\lib\urllib2.py", line 154, in urlopen
    return opener.open(url, data, timeout)
  File "C:\Program Files\Python\lib\urllib2.py", line 431, in open
    response = self._open(req, data)
  File "C:\Program Files\Python\lib\urllib2.py", line 449, in _open
    '_open', req)
  File "C:\Program Files\Python\lib\urllib2.py", line 409, in _call_chain
    result = func(*args)
  File "C:\Program Files\Python\lib\urllib2.py", line 1240, in https_open
    context=self._context)
  File "C:\Program Files\Python\lib\urllib2.py", line 1194, in do_open
    h.request(req.get_method(), req.get_selector(), req.data, headers)
  File "C:\Program Files\Python\lib\httplib.py", line 1001, in request
    self._send_request(method, url, body, headers)
  File "C:\Program Files\Python\lib\httplib.py", line 1035, in _send_request
    self.endheaders(body)
  File "C:\Program Files\Python\lib\httplib.py", line 997, in endheaders
    self._send_output(message_body)
  File "C:\Program Files\Python\lib\httplib.py", line 850, in _send_output
    self.send(msg)
  File "C:\Program Files\Python\lib\httplib.py", line 812, in send
    self.connect()
  File "C:\Program Files\Python\lib\httplib.py", line 1216, in connect
    server_hostname=server_hostname)
  File "C:\Program Files\Python\lib\ssl.py", line 350, in wrap_socket
    _context=self)
  File "C:\Program Files\Python\lib\ssl.py", line 566, in __init__
    self.do_handshake()
  File "C:\Program Files\Python\lib\ssl.py", line 796, in do_handshake
    match_hostname(self.getpeercert(), self.server_hostname)
  File "C:\Program Files\Python\lib\ssl.py", line 269, in match_hostname
    % (hostname, ', '.join(map(repr, dnsnames))))
CertificateError: hostname 'mapillary.uploads.manual.images.s3-eu-west-1.amazonaws.com' doesn't match either of 's3-eu-w
est-1.amazonaws.com', '*.s3-eu-west-1.amazonaws.com'

Ben blijkbaar niet de enige: https://gist.github.com/mvexel/4b1f2804e7218fa06328

Ook werd een vergelijkbaar probleem gemeld op https://github.com/mapillary/mapillary_issues/issues/512
Heb daar in de comments bij vermeld dat het niet enkel voor upload.py mis gaat, maar ook voor upload_with_authentication.py.

Workaround schijnt te zijn om te downgraden naar Python 2.7.8, dus dat probeer ik morgen maar eens.

Die CertificateError zag ik ook. En nu je het zegt, die kreeg ik pas nadat ik python had geupgrade naar 2.7.9.

Volgens mij is die certificaat fout op te lossen door deze regel aan te passen in upload_with_authentication.py:

MAPILLARY_UPLOAD_URL = "https://mapillary.uploads.manual.images.s3-eu-west-1.amazonaws.com"

naar:

MAPILLARY_UPLOAD_URL = "https://s3-eu-west-1.amazonaws.com/mapillary.uploads.manual.images"

Maar ik heb die certificaaterror niet, dus ik kan dat niet testen.

Wimmel, ik heb dit inmiddels getest en het werkt. Heb inmiddels een pull request op github gedaan om dit aan te laten passen.

Die is er nu: http://www.javawa.nl/fotogeotag.html

Bedankt Javawa!
Wb die Engelse vertaling, als ik op download klik zie ik alleen een donate button. Weet niet of dat de bedoeling is? :wink:

PS de NL versie is in het Engels?