That level of testing is well beyond what today's software and hardware is capable of. Waymo has to override their cars (disengagement) approximately every 6000 miles [1] which equates to about 200 hours of driving. To reach a confidence level of 1 in a million hours you would need a test fleet of a thousand vehicles operating for a whole year without any incident occurring that requires human intervention. The costs for such testing would run into the hundreds of millions of dollars which makes me feel like only the largest corporations in the world could develop this technology.
[1] https://www.dmv.ca.gov/portal/dmv/detail/vr/autonomous/disen...
Late and a bit rough but here is my idea:
Install redundant self driving units in at least a good number number of the first few thousand cars in each generation.
When planning a release, push to the redundant unit in the cars already running in "production".
Use only primary unit as input to car as usual, but log the diffs between the new version and old version in the same way they now log driver intervention.
I think there is a number of issues this won't catch, off the top of my head what if the new self driving unit attempts to turn slightly faster on slippery road etc.
But it should be able to collect up realistic feedback really fast i.e. in a few months (crazy slow for modern application developers like me but more than fast enough for anything that should be allowed to drive unsupervised I guess :-)
Definitely not : )
> but is there a name for that style of testing and do their exist categories of systems for which it is commonly used
I don't know but I guess parallell deployment, production testing (hehe) or something.
I guess I learned about it here on HN but I've heard similar approaches elsewhere.
Three concrete systems I can think of that has been tested in similar but not identical ways:
- trajectory calculation systems for some space probe (I forgot the details) where two separate vendors where tasked with writing software and their software where then run in parallel in a simulation of possible trajectories to root out any bugs. Mentioned as an example to point out an extreme variant of testing, probably by someone here on HN or in something linked to from HN.
- a vendor running testing of bag sorting equipment on an airport. Probably told me from a colleague of mine at the time who knew them. AFAIK they'd rerun batches and verify the outputs, making sure the new system produced similar or better results.
- an API testing service, probably mentioned here on HN as well, tjat worked by firing three similar requests for each resource and method: two to a deployment of the old system and one to the new. The two that were fired against the old would be used to find parts of the response that changed from request to request (time stamps etc) and the the rest of the response would be used as a template to verify the response from the new system.
more generally capturing and reusing production input or running two sets of services in parallel in a data center, - or across datacenters: the existing system as usual and the system under test with only input data.
Of course they might cheat, but who really knows if their car has an airbag where it is supposed to.
Somehow I doubt the authorities have the foresight.
We don't know how humans work and under what conditions they break down, either.
In constrast to the whole self driving stuff this DL is popular for: User input overrides DL input.
Even if we don't understand deep learning to the degree that we would like, we can observe its safety record and compare it to humans'.
Passive self-driving systems that take over when the human gets distracted/unwell are great because human vision exceeds computers where as computers are always alert. This would capture the case you describe, I think it would also have a massive improvement for when bus/lorry drivers should collapse at the wheel (Elon Musk used this as a valid use case for Tesla auto-pilot in the Tesla Semi unveiling).
However active self-driving systems (e.g. Tesla's auto-pilot) are currently worse because they rely on computer vision and humans to be always alert.
By the way, although the article focuses on deep learning, there are many applications that don't involve deep learning. For example, although you can run the deep neural network based SuperPoint on the intensity data, you can also run any classical feature extraction algorithm such as SIFT, SURF, ORB, BRISK, FAST, AGAST, etc. Doing so provides an elegant solution to the problem of localizing in a geometrically sparse but visually rich environment, such as a smooth but well-illuminated tunnel.
And with the amount of drivers snapchatting behind the wheel, I'd rather take my chances with a self-driving car.
I’d really like to see a demonstration that human behavior is just neural nets. Sadly, I think that’s still an open question.
What would you rather use to interpret sensor data?
A friend of mine was doing that in a new car with some pedestrian detection system that decided to detect the barrier as a human and slam the brakes to the complete stop. From what I've heard it was not exactly pleasant.