Cool Projects from Udacity Students

I have a pretty awesome backlog of blog posts from Udacity Self-Driving Car students, partly because they’re doing awesome things and partly because I fell behind on reviewing them for a bit.

Here are five that look pretty neat.

Visualizing lidar data

Alex Staravoitau

https://navoshta.com/

Alex visualizes lidar data from the canonical KITTI dataset with just a few simple Python commands. This is a great blog post if you’re looking to get started with point cloud files.

“A lidar operates by streaming a laser beam at high frequencies, generating a 3D point cloud as an output in realtime. We are going to use a couple of dependencies to work with the point cloud presented in the KITTI dataset: apart from the familiar toolset of numpy and matplotlib we will use pykitti. In order to make tracklets parsing math easier we will use a couple of methods originally implemented by Christian Herdtweck that I have updated for Python 3, you can find them in source/parseTrackletXML.py in the project repo.”

TensorFlow with GPU on your Mac

Darien Martinez

The most popular laptop among Silicon Valley software developers is the Macbook Pro. The current version of the Macbook Pro, however, does not include an NVIDIA GPU, which restricts its ability to use CUDA and cuDNN, NVIDIA’s tools for accelerating deep learning. However, older Macbook Pro machines do have NVIDIA GPUs. Darien’s tutorial shows you how to take advantage of this, if you do have an older Macbook Pro.

“Nevertheless, I could see great improvements on performance by using GPUs in my experiments. It worth trying to have it done locally if you have the hardware already. This article will describe the process of setting up CUDA and TensorFlow with GPU support on a Conda environment. It doesn’t mean this is the only way to do it, but I just want to let it rest somewhere I could find it if I needed in the future, and also share it to help anybody else with the same objective. And the journey begins!”

(Part 1) Generating Anchor boxes for Yolo-like network for vehicle detection using KITTI dataset.

Vivek Yadav

Vivek is constantly posting super-cool things he’s done with deep neural networks. In this post, he applies YOLOv2 to the KITTI dataset. He does a really nice job going through the process of how he prepares the data and selects his parameters, too.

“In this post, I covered the concept of generating candidate anchor boxes from bounding box data, and then assigning them to the ground truth boxes. The anchor boxes or templates are computed using K-means clustering with intersection over union (IOU) as the distance measure. The anchors thus computed do not ignore smaller boxes, and ensure that the resulting anchors ensure high IOU between ground truth boxes. In generating the target for training, these anchor boxes are assigned or are responsible for predicting one ground truth bounding box. The anchor box that gives highest IOU with the ground truth data when located at its center is responsible for predicting that ground truth label. The location of the anchor box is the center of the grid cell within which the ground truth box falls.”

Building a Bayesian deep learning classifier

Kyle Dorman

“Illustrating the difference between aleatoric and epistemic uncertainty for semantic segmentation. You can notice that aleatoric uncertainty captures object boundaries where labels are noisy. The bottom row shows a failure case of the segmentation model, when the model is unfamiliar with the footpath, and the corresponding increased epistemic uncertainty.” link

This post is kind of a tour de force in investigating the links between probability, deep learning, and epistemology. Kyle is basically replicating and summarizing the work of Cambridge researchers who are trying to merge Bayesian probability with deep learning learning. It’s long, and it will take a few passes through to grasp everything here, but I am interested in Kyle’s assertion that this is a path to merge deep learning and Kalman filters.

“Self driving cars use a powerful technique called Kalman filters to track objects. Kalman filters combine a series of measurement data containing statistical noise and produce estimates that tend to be more accurate than any single measurement. Traditional deep learning models are not able to contribute to Kalman filters because they only predict an outcome and do not include an uncertainty term. In theory, Bayesian deep learning models could contribute to Kalman filter tracking.”

Build your own self driving (toy) car

Bogdan Djukic

Bogdon started off with the now-standard Donkey Car instructions, and actually got ROS running!

“I decided to go for Robotic Operating System (ROS) for the setup as middle-ware between Deep learning based auto-pilot and hardware. It was a steep learning curve, but it totally paid off in the end in terms of size of the complete code base for the project.”

Autonomous Vehicles are Power Hungry

Automotive News highlights a problem that we thought a lot about during my time at Ford: the power consumption of autonomous vehicles.

Some of today’s prototypes for fully autonomous systems consume 2 to 4 kilowatts of electricity — the equivalent of having 50 to 100 laptops continuously running in the trunk, according to BorgWarner Inc.

That has huge implications for fuel economy:

The autonomous features on a Level 4 or 5 vehicle, which can operate without human intervention, devour so much power that it makes meeting fuel economy and carbon emissions targets 5 to 10 percent harder, according to Chris Thomas, BorgWarner’s chief technology officer.
…
“They’re worried about one watt, and now you’re adding a couple thousand,” Thomas said. “It’s not trivial.”

I would bet that a fair bit of what NVIDIA is building with its Pegasus units, and what Tesla is working on with AMD, and what Waymo is working on with Intel, is getting the required computational speed at acceptable power consumption levels.

Automotive News hypothesizes that the solution may lie, at least initially, with plug-in hybrids:

“If you are trying to maximize your utilization” of an autonomous vehicle, a battery-electric car “is really restrictive for your business,” Jim Farley, Ford’s president of global markets, told investors on Oct. 3. He said Ford believes hybrids are “the right tech to start with.”

As the owner and driver of a plug-in hybrid Ford C-MAX Energi, I can say with some authority that the fuel efficiency of an electric vehicle paired with the range of gasoline is great.

Hardware News

NVIDIA CEO Jensen Huang took the stage at GTC Europe, in Munich, to announce many things. One thing he announced is the newest member of the DRIVE PX family.

DRIVE PX is NVIDIA’s automotive computational platform, and the newest member is DRIVE PX Pegasus.

From NVIDIA’s website:

“NVIDIA DRIVE PX Pegasus is powered by four high-performance AI processors. It couples two of NVIDIA’s newest Xavier system-on-a-chip processors — featuring an embedded GPU based on the NVIDIA Volta architecture — with two next-generation discrete GPUs with hardware created for accelerating deep learning and computer vision algorithms. The system will provide the enormous computational capability for fully autonomous vehicles in a computer the size of a license plate, drastically reducing energy consumption and cost.

Pegasus is designed for ASIL D certification — the industry’s highest safety level — with automotive inputs/outputs, including CAN (controller area network), Flexray, 16 dedicated high-speed sensor inputs for camera, radar, lidar and ultrasonics, plus multiple 10Gbit Ethernet connectors. Its combined memory bandwidth exceeds 1 terabyte per second.”

The Voltas have a reputation for being blazing fast, so it’s exciting to see them make their way onto automotive hardware.


In other hardware news, Velodyne is increasing their lidar production capacity by 4x. This is all driven by autonomous vehicle demand.

In practical terms, this means it is now possible to purchase a Velodyne lidar and get it more or less immediately. When we ordered our Velodyne HDL-32E in the spring, we had to wait several months to get our unit.

Small steps toward a much better world.

Automotive Manufacturers and Lidar

GM just purchased a lidar startup called Strobe that I had never heard of before. Strobe has flown well below the radar, but GM Cruise CEO Kyle Vogt says that they have compressed their lidar down to a chip that fits in one hand.

It is interesting that lidar is increasingly becoming a competitive differentiator between self-driving car companies. Lidar, in fact, is the basis for the lawsuit between Waymo and Uber.

Here’s where I think a few top autonomous vehicle companies are with lidar:

Waymo: They appear to be building their own lidar. They’re also suing Uber over theft of lidar documents.

Tesla: Elon Musk famously believes lidar is not necessary for self-driving cars.

Uber: Photos indicate that Uber ATG self-driving cars are mounted with something that looks like a Velodyne HDL-32E.

GM Cruise: They just bought Strobe.

Ford: Invested in Velodyne.

Baidu: Invested in Velodyne.

Toyota: They’re using Luminar units in their recently unveiled prototype vehicles.

TEDx Wilmington

On Tuesday, October 17th, I will be giving a TED talk at TEDx Wilmington’s Transportation Salon! Come by to see me and listen to some other cool speakers.

There will be talks on autonomous vehicle technology, connected cars, transportation regulation and privacy, and big data for transportation, among other topics.

The title of my talk will be “How to Program a Self-Driving Car”, and I will walk through engineers program self-driving cars, through the lens of student projects from the Udacity Self-Driving Car Engineer Nanodegree Program.

Should be fun!

Lyft IPO

Paul Lienert, who occasionally comments here, has a piece up on Reuters about an impending IPO for Lyft.

It seems to be in the earliest of stages, and these things move forward and then get pulled back all the time. So who knows if it will happen in the near future or not.

But the column makes the point that a Lyft IPO is a mechanism for the public to invest in self-driving cars.

Of course, public companies like NVIDIA and Tesla and Alphabet (Google/Waymo) have already provided a channel for public investment in autonomous vehicles. But an investment in Lyft at this point is a more direct investment in the future of autonomous vehicles than most other companies.

Disclaimer: Udacity and Lyft just formed a terrific partnership, and I think highly of the company. But I have minimal interaction with them beyond the bounds of the partnership, and I have no idea what plans, if any, they have for an IPO.

Lufthansa FlyingLab

A few weeks ago I had the opportunity to travel to Frankfurt, Germany, to participate in the me Convention. Mercedes hosted the me Convention as a way to incorporate the spirit of South by Southwest into the enormous International Motor Show.

As part of that trip, I participated in Lufthansa’s FlyingLab, whereby I and several other speakers gave presentations onboard an Airbus A380 from San Francisco to Frankfurt.

I spoke on: “How Self-Driving Cars Will Change the World in Ways We Can’t Even Imagine”:

And you can see the rest of the speakers, too!

Toyota and Luminar

Toyota Research Institute just announced its Platform 2.1 test autonomous vehicle. The first thing that jumps out is that it has two steering wheels.

Somebody told me, “They’re moving in the wrong direction.” It’s easy to tease, but perhaps there are important research goals, particularly human-machine-interaction goals, that will be possible by putting the safety driver in the seat normally reserved (in the US) for a passenger. I assume they thought this through.

More interesting to me is that Toyota will be the first automaker to publicly use Luminar lidars on its self-driving vehicles. Luminar bills itself as a five year-old startup founded by 22 year-old Austin Russell, meaning he started a lidar company when he was 17, which is kind of wild.

Interestingly, Luminar eschewed the normal concern about lidar, which is that they’re too expensive. Instead, it opted to produce a potentially even more expensive lidar that achieves higher performance than competing sensors, including higher resolution and longer range.

Luminar may yet drive down the cost of their individual sensor units as production volumes increase. But, for now, by using Luminar sensors, Toyota seems to be making a bet on performance over price.

Waymo and Intel

Yesterday I wrote a few thoughts on the relationship between Tesla and AMD to develop custom chips for self-driving cars.

Sure enough, I was clearing out my inbox today and I stumbled upon this blog post by Intel CEO Brian Krzanich, about the longstanding relationship between Waymo and Intel.

The Intel blog post is dated September 18, while the CNBC report on Tesla and AMD is dated September 20, so maybe Intel beat AMD to the punch, and I’m just playing catch up.

The Krzanich post is pretty light on detail. It mainly highlights the massive number of annual automotive fatalities, and asserts that Waymo has been using Intel technology in its self-driving vehicles. No real news here.

But the Tesla-AMD announcement did capture something I neglected to mention in my previous blog post, and which I also think it is safe to assume comes into play in the Waymo-Intel relationship: custom silicon.

Off-the-shelf CPUs and GPUs are general-purpose devices that tend to do a lot of things well. GPUs are primarily built to update graphics on computer monitors, and it’s almost coincidental that this type of parallel computing happens to be really good for machine learning.

But you can imagine that building computer chips specifically for autonomous driving might yield even faster performance. The problem, of course, is how expensive it is to build a chip. The fixed costs are enormous, so they have to be amortized over millions of units of silicon.

FPGAs are a kind of intermediate solution to this problem. Not nearly as expensive to work with as custom silicon, but presumably not as fast, either.

Google (not necessarily Waymo, though) seems to be going a step farther, into full-blown chip design, with its TPUs.

That seems to be what we’re seeing both with Waymo-Intel and with Tesla-AMD, and I wouldn’t be shocked to see NVIDIA and other chipmakers go down that road as well.