Automated upload from Tesla cameras

Hello,

I think this is my first post here. Most of my uploads have been using GoPro Max, recording timewarp 10x, and using Dean Zwikel’s UL2GSV software to extract frames and properly set GPS position. There is a 0.7 second offset from GoPro’s GPS to the actual frame, which if the .360 is uploaded straight to Mapillary causes offset error that I don’t like.

Anyway, life got busy, haven’t done much dedicated imagery driving recently. I’ve had a 2024 Tesla Model Y for about 2 years, and recently an update to the car now saves recent imagery for 24 hours (as opposed to 1 hour). That inspired me to see if I can use it’s cameras to upload to Mapillary.

I’ve been all in on this for the past 2 weeks or so. I want to present what I’m doing to the community, and see if there is any input that I should consider before going to far, since this is uploading lots of data.

I’m a bit un happy with with resolution, although compared to GoPro Max, I can read road signs at a further distance generally from the front camera. I’ve settled on using Front camera, Side pillar cameras (Face about 10 & 2 o’clock), and repeater cameras (face about 7 & 5 o’clock). I omitted the rear camera.

I’m using a raspberry PI zero 2 w running TeslaUSB in the car, with a GPS antenna on the GPIO pins.

At home, I have a Raspberry Pi 5 that the TeslaUSB sends videos to, then it runs a bunch of Python scripts to extract image frames, and apply GPS offset (The front camera requires a little bit different offset fromt the pillar and repeater cameras for some reason). It also maintains a database of where I’ve been. It will upload images twice for the same road, then won’t upload again for 60 days. Travelling the opposite direction is counted as a ‘different road’. It also excludes night time and footage taken while raining.

My Github Repository is here: teslamap. The Readme hasn’t been updated to reflect some of the most recent changes.

Full disclosure, All code has been created with Claude Opus 4.8. I can half read python but I sure can’t write it.

Open to any feedback from the community about this!

Edit: some links
Right Pillar
Left Pillar
Right Repeater
Left Repeater
Front

Several GoPro Max coverages of the same place, here is one of them.

1 Like

KartaView has a device called KartaLink already, might be good to take inspiration from that. Karta Link – KartaLink

Just a thought on omitting the rear camera.

I recently started using a very cheap rear facing dashcam to see the “other way - reverse side” of speed limit signs. (To eventually enter into OSM etc) Kind of important if one isn’t covering the route in the other direction as well. (which is very common for me) The sign recognition doesn’t always work, but given the front facing camera does, it is easy to eyeball the rear camera at the same location and figure it out.

I upload 10-20GBytes per day over a cellular network. Often at some distance in remote-ish areas, enough that the modem sometimes overheats at max o/p power.

I realise that the repeater cameras will probably cover these if the rate is high enough.

Like I said, just a thought, Cheers

Very cool, nice work @pmfox97 . One thing is that I noticed the videos (for example the front one) is quite heavily compressed with a lot of macroblocks visible. Is the original video like this as well? If you have control over it, it would be great to reduce the compression level so that the imagery is higher quality.

I also use Dean Zwickel’s software, but I subsequently developed a post-processing workflow for GPX tracks. This workflow involves importing the respective GPX track into an Excel worksheet, where I then edit and supplement it using Excel. I originally developed my workflow for an Insta360 X3 and later adapted it for the Osmo 360. I spontaneously wanted to buy a GoPro Max 2 myself, but the retailer didn’t have it in stock. Since it was a spur-of-the-moment decision, I didn’t want to place an order. My Excel workflow could be applied equally well to GoPro Max GPX tracks; compensating for any time lag would be very easy.

Ref: No more GPS stress thanks to navigation using video frames

Yea, I think the repeater cameras do a better job honestly. i’m still troubleshooting getting my sequences split when they should and such.

If I am not mistaken there had been attempts from contributors to source captures from Tesla cameras couple years ago already. And, the conclusion and general consensus was that it was not worth the effort for Mapillary’s mapping use case, mainly due to the fact that the Tesla cameras have been specifically designed and geared towards FSD rather than for anything else. The front camera has an overly long focal length and thus also a really narrow FOV, which is useful when you want to have enough time at speeds to react to situations on the road but unsuitable for capturing a lot of space. The side cameras have a wider FOV but are rather pointed down towards the road surface to keep curbs, lane markings, and road shoulder in view for auto‑pilot not to veer off the planned trajectory. Furthermore, the effective resolution is quite poor compared to smartphones and actioncams. Additionally, the colors are off by default (for improved nighttime vision), which means that you have to do manual white balance correction before upload. All of these factors make Tesla camera practically rather unsuited to capture useful mapping material and for longtime mapping. Good dashcams and actioncams capture way more space naturally and also enable much simpler and faster workflows compared to what you get with supposedly at hand builtin Tesla cameras. My recommendation is thus to stick with tried and proven equipment and workflows, like with the Mapillary recommended GoPro MAX/2 line of cameras. GoPro HEROs, actioncams with builtin GNSS receivers from other vendors, and other good dashcams work also very well and are much better suited for Mapillary than Tesla cameras.

HW4 has way better cameras then the versions before, quality is also way better but indeed, more washed for better night vision.

For example the cameras of Xpeng are very good and is using the cameras of the 360 modus for recording in the car (without GPS unfortunately), these cameras are located perfectly for Mapillary. The cars are using different cameras for the traffic/Adaptive systems, those cameras are not usable for the consumer.

1 Like