Upload
keith-curtis
View
2.166
Download
4
Embed Size (px)
DESCRIPTION
Citation preview
OpenRacing
Is this a video game, or an AI research platform?
Cars driving themselves (Note: this code already
exists)
About me
Keith Curtis, [email protected] Programmer at Microsoft for 11 years on
Windows, Office, MSN, Research and mobility
Randomly discovered Linux after I left Wrote a book describing why it is
superior, and remaining steps for World Domination
My book gives fuller contextNEW YORK TIMES:
Keith Curtis, an 11-year veteran of Microsoft, believes deeply that open source is the future of software.
He takes a programmer’s approach in Software Wars, attempting to systematically build a case that software can help pave the way for a 21st-century renaissance in many fields ranging from artificial intelligence (cars that drive themselves) to the human journey into space (space elevators). For Mr. Curtis, free software is all about leveraging our collective intelligence.
Book in 1 slide
After thinking about it for 10 years And seeing the code inside and outside
Microsoft
Free software wins in the end The lessons of Wikipedia, Linux et al can
be applied to many places FOSS movement should change how you
think about R&D in the 21st century
The payoff is AI, cancer research
Free software
If the code isn't out there, a community of scientists can't work together on it
As subtle a concept as free market Science is about making results available
Better for the free market Cheaper hardware, richer services business
Many problems too big for one company Coming goldrush of free software
Google's Knol will lose to Wikipedia
Book explains this
Just add water
Create the conditions Create a vision that inspires Create a process that doesn't suck Codebase -> community -> success
It isn't that hard Lots of things succeed by accident in the
Internet era
Free software quietly taking an increasing part
Cheaper: share dev costs with others
State of free software
Successful in many areas Esp. Servers, web and embedded Apple uses free software (Kernel, Safari,
Printing) Linux on the desktop is coming (Google
Chrome, Ubuntu on Dell) The desktop is the center of the IT universe Lucene is a free search engine used in many
enterprises
Much left remaining, like AI
Driverless Cars
Cars are the most widely used robot today Billions of $$ from industry and government
Optionally having a chaffeur is the coolest feature ever
Once we have cars that can see, we can have personal butlers as well
Has several Green applications Route around traffic to save gas
Why don't we have driverless cars today? Airplanes land themselves Cars drive around in video games and
shoot and swear at you Video game cars aren't super smart yet
because crashing is part of the fun Code is custom and proprietary anyway
The software doesn't exist Because there is no community
This is a social, not a technical problem
Darpa Grand Challenge
Entrants were all proprietary A few produced papers, but no source The code is just being tinkered with or
abandoned Anyone who wants to work on this problem
today must mostly start from scratch Therefore, the contest was a failure
Importance of a simulator
A driving simulator allows you to simulate full loop
Create sensors in the video game, and feed them to vision engine
Can compare results to what video game says
Create test scenarios and monitor it all You can cameras up to RC cars, but we
need to focus on the software now!
Importance of a simulator
In an hour you can run 1,000s of incredibly complicated tests
A simulator is required to build confidence in a system The idea of cars driving themselves down the
road at 150mph can involve death
Researchers can test and improve this code without access to a car
You need the real world mostly to learn how to make the simulator tests better
Rigs of Rods is best free sim
●Internally, simulator will generate virtual sensor input like Lidar
Rigs of Rods
Created by just 3 people, but leverages a lot of free software
Community of 10 developers But young, codebase made free in early-2009
Extensible with new cars and maps Can simulate dynamic objects like stoplights
Soft-body physics engine Engine simulation needs work
C++, with some Lua scripts We are trying to get Python
Driving is the Killer App of vision Visicalc and Lotus 1-2-3 are the apps that built
the PC
E-mail is what built the Internet Lots of specialized uses of computer vision
today such as in NFL TV's first down marker & Project Natal.
Researchers have been working for decades but don't know why their code is still in academia
No other reason to dramatically improve
No point building robot butlers w/o vision
Community needs kickstart
Putting vision and driving researchers together in one codebase can generate lots of excitement Vision and driving logic can be built and
tested separately PhDs around the world can get to work on a
real problem
Each new advancement will put new requirements on the other subsystem When the vision system can recognize soft
curbs, the driving system must also treat them as such
Vision code
Vision sounds hard, but is the same number of lines of code as a web browser
Many vision PhDs write proprietary code Adopted Microsoft model Head of Oxford Vision lab told me all his
code is proprietary
What free code out there is very fragmented (http://www.cs.cmu.edu/~cil/v-source.html) 204 codebases Everyone rolls their own
Vision code
1000s of PhDs worldwide are working Image processing portion well understood Detecting shapes and motion becoming
mature Need to build an internal 3-d model, no
consensus on these details
We have more than enough people, but they are not working together yet
OpenCV
Most popular free computer vision codebase is OpenCV, created by Intel Intel created and abandoned, now sponsored
by Willow Garage
But only a few full-time people working on it E-mail traffic is low
Codebase is C++ and big Intel cares more about perf than ease of use Hard to use bits and pieces of Vast majority of researchers don't use
OpenCV (2)
Can't easily work with larger scientific community Has lots of code that is not really vision
specific including machine learning, low-level graphics code
Should really move to Python and join SciPy community Estimated < 1 man-year of work
Much vision research uses random images found on Internet or webcam
Driving
In principle, not a hard problem Parking a car is easy Pathfinding is discussed in every AI
textbook, but not much progress in last decades Simple proprietary code in industrial
scenarios Free code is fragmented and immature Without real scenarios, no reason to improve
Driving (2)
Safety is the big challenge I'll bet a parallel parking car would run
over a foot today which is not acceptable The dynamic world is tricky Will require a number of different kinds
of AI But less than 1M lines of Python
Google's OCR 100k lines of C++
The code isn't big, but it has to be clever in spots
Driving Logic
Primitive automatic driving code in RoR today, but several people working on it
There is other free code out there to leverage as well Torcs/SpeedDreams OpenSteer
Strategy 1: VDGC
The Darpa Grand Challenge failed Efforts died out after contest over Code is locked up so may as well not exist Contestants didn't work together on any
code Lots of time spent writing device drivers for
all of the custom hardware before even getting to the vision / driving code
Create a smarter contest
One way to spend $100,000
Goal of a contest should be to get the maximum number of people working as efficiently as possible.
A contest around a simulator will create a community and assets long after the contest is over.
We'd like to create a Virtual Darpa Grand Challenge
Raise money from investors or sponsors
Contest details
Free software should be encouraged If you want the assets to live on.
We sidestep driver junk But you can easily simulate hardware We have other ideas to have the
contestants work together for efficiency
Contests are complicated
Many details to consider What are the test cases? They have to be
created What are the legal rules? How to hand out money in little chunks
based on quality of contributions (code, art, test cases, infrastructure work)
Timeline
What do we want?
$300,000? $100,000 for a contest plus infrastructure Assume $100K is enough to generate
excitement If we get 100 people working together we
can claim a breakthrough The time is right
Team today is just me + one part-time programmer, plus FOSS people out there
I want someone else to lead this
Future
It could get on the cover of Wired magazine!
Can turn this into an engineering services company
There are enough people today working on these problems They are not working together They need a codebase and a task to organize
them