Virtual Vision Tools—1 : Early Days of Autonomous Vehicles at CMU
Watch on YouTubeVideo summary
The video discusses the early limitations of autonomous vehicle systems developed at Carnegie Mellon University, specifically focusing on Alvin, a neural network-based road follower capable of driving single-lane highways at speed but unable to perform complex tactical maneuvers like changing lanes or navigating intersections. At that time, this capability was considered cutting-edge technology with very few successful demonstrations worldwide. The core challenge identified was how to extend the system's functionality beyond its original design without making the underlying neural network significantly more complicated or retraining it for every new scenario.
To solve this problem, the speaker introduced a concept known as a "virtual active camera," which allowed the software to manipulate visual data in real-time rather than altering the core driving algorithm itself. By assuming a flat world model, the system could resample images from arbitrary vantage points and present them to Alvin under different conditions; for instance, at an intersection, the software would virtually rotate or shift the camera view so that Alvin perceived a continuous road where there was previously only a perpendicular street corner. This approach enabled the vehicle to successfully navigate turns and intersections by feeding it data that made logical sense within its existing training parameters, effectively tricking the system into recognizing new paths without explicit retraining for those specific geometries.
The same principle of virtual camera manipulation was applied seamlessly to lane-changing tasks on interstate highways. Although Alvin was originally trained only to stay in a single right-hand lane, the software could shift the virtual camera view laterally within its wide field of vision to reveal an adjacent left lane as if it were the current driving path. By simultaneously using two such shifted views—one for each desired lane position—the system could determine the center point between them and smoothly transition the steering wheel from one trajectory to another while maintaining vehicle stability, effectively allowing the car to change lanes through a gradual blending of these virtual perspectives.
Ultimately, this innovative method proved that advanced autonomous driving capabilities could be expanded into entirely new domains without overhauling the foundational technology or requiring massive amounts of additional training data for every specific situation. The speaker emphasizes that this approach was not only technically novel but also strategically sound enough to serve as a solid basis for their thesis work, demonstrating how clever software manipulation of visual inputs could bridge the gap between simple road-following and complex tactical driving behaviors like navigating intersections and executing lane changes in ways that were previously thought impossible with existing neural networks.
Read the full video transcript
At that time,
um, Alvin, the neural network based road
follower Dean had built, did a great job
driving on highway single lane roads at,
you know, highway speeds. Uh, it could
do that.
But it was sort of a one-trick pony. Uh,
couldn't change lanes, couldn't avoid
obstacles, or couldn't control the
vehicle to avoid obstacles, take exit
ramps, drive through intersections. Um,
and and really that whole area of what
I'd call tactical driving,
that was
literally on the frontier, right? There
was maybe maybe five papers in the whole
world that looked at one part of it. And
nobody really anywhere was doing actual
demonstrations of any of it
consistently.
So, the big idea was, okay,
let's use this technology, which really
is great at finding roads, which was
Alvin,
and let's use it for these tactical
tasks. But, the way let's do it in a way
that we don't have to make Alvin more
complicated. Alvin was very good at
seeing an image of a road and saying the
road was there and where to turn the
steering wheel to stay on it, or to say
the road wasn't there.
So, what I ended up doing was I created
what I called a virtual active
camera.
Uh, our virtual camera. And all it did
was take the image from the camera
and just resample it from arbitrary
vantage points,
assuming a flat world, uh, and then give
that new image to Alvin. So, think of it
this way.
If you trained Alvin to drive on a city
street, okay?
And there's a four-way intersection, and
the streets are all the same, which
they generally are.
If you showed Alvin the picture of the
street you're on, it could drive on it,
right? It looked normal. Now, if you
took the same camera and looked over at
the other the the perpendicular street,
it would couldn't tell. It would look
weird and say, "Oh, there's nothing
there." But then, just think that you
could in software turn the image 90° and
then show it to Alvin. It'd say, "Oh, I
now see the road. Here's how you can
drive there."
So, what I ended up doing in that
example was I would come up to an
intersection.
Um
I would place cameras
in software at different orientations in
front of the vehicle.
I would basically have the software look
to see where Alvin responded saying
there's a road there,
fine-tune it until I was, you know, the
system was positive there was the road
there, and drive through the
intersection using this
virtual camera feeding Alvin the data.
So, even though I never had trained
Alvin to look at the road whichever way
it was, I could change the data so it
made sense to Alvin.
Um
the other big example is changing lanes.
And this is this is almost
easier example. Imagine you're in the
right lane on an interstate highway you
want to change into the left lane. Uh
Okay. Well, what I in the camera view is
generally wide enough field of view you
can see both lanes in it, but you just
trained Alvin to stay in the right lane.
What I ended up doing was I would just
in software shift the camera over to the
left lane and basically use Alvin's
output to determine where the center was
and at the same time keep it driving.
So, I'd be driving down the road, one
camera looking at the driving lane, one
camera over here.
Both Alvin networks saying, "Okay, go
here." And this is so easy, but then you
just slowly transition where you're
telling the steering wheel to go between
those two dots and move the camera views
in the opposite direction and you can
change lanes.
Um so
I don't know how great an explanation
that was, but essentially
the whole idea and I think the reason it
was and I say this in the in in the
book, the reason it was a solid B
thesis was that
was that
it truly was a novel way
to not only use
the core technology and extend it, but
also expand self-driving into completely
new domains that really no one else was
using.