27 comments

[ 2.9 ms ] story [ 48.0 ms ] thread
The author could also have used 3d simulations to obtain more data, and determine feasibility and proper hyperparameters for the network before training with actual data.
3D simulations can’t create photorealistic images. (Not currently, anyways)
You don't need photorealistic images for these situations. The images are always downsampled to a smaller resolution. So getting "good enough" but not photorealistic is fine.
If you have software to simulate real-world physics for hundreds of independent agents that can be run on a personal computer with close to real world graphic fidelity (including realistic noise), you’re running a multibilion dollar company, not writing thought pieces on Medium.
There were a couple of projects using GTA 5 for training data successfully (one from OpenAI) but they got taken down due to licensing issues
Reread my comment. I didn't suggest to only use the simulations.
As someone who's interested (but not remotely capable yet) in this sort of thing, I think it would have been nice to see some more detail as to how the system worked - this seemed more of an executive summary to me rather than giving any significant technical details; is this true or is it my lack of knowledge showing?
(comment deleted)
Nah, you're right.

It'd be cool to have a codecademy-type course on getting a project like this up and running. I'd sign up for $10 or so.

To me this level of detail is perfect - but I do have some prior knowledge on the subject. I think it is difficult to put such a project in writing in more detail because many choices (framework, NN architecture, data cleanup procedures...) make sense only with data which probably can't be shared. So I think author did a great job selecting those pieces of information which are relevant to general public.

Btw, there are courses, tutorials and challenges online if you ever wish to learn more... It is fairly easy to get good info, but it takes time to grasp concepts. It is fun though and enables you to solve a whole new class of programming challenges. :)

Btw, there are courses, tutorials and challenges online if you ever wish to learn more... It is fairly easy to get good info, but it takes time to grasp concepts. It is fun though and enables you to solve a whole new class of programming challenges. :)

Any tips? Which classes would you recommend?

Well, I myself actually usually prefer text to video, so I just search for tutorials and read the ones that I feel I understand... So I can't really recommend any classes (but if you see Karpathy listed as author then it's probably good :)). Do check out Kaggle - there is nothing better than playing with the best and learning from them.
Can't they just use an accelerometer?
The key factors are 1> reducing BOM and 2> working in cases where you have whatever data are available (perhaps a phone or CCTV footage or whatever).

As it happens most if not all dash cams have accelerometers.

They are not crash-testing automobiles, so an accelerometer won't help. They are looking at dashcam footage from a library of that footage.
It looks like they are detecting crashes of other cars caught on camera, not crashes of the car with the camera.
(comment deleted)
I would like to see how the system generalizes on different videos. The motion pattern seems to be quite general ... this can be used to analyze crashes during racing events for instance (http://www.tldvision.com/tld3.html).
The source, as well as more in-depth description, is available at https://github.com/rwk506/CrashCatcher

This is actually quite neat! Having little data and not enough resources to manually label thousands of examples seems to be a somewhat neglected problem. Maybe we should boycott Google's captchas until they feel the same pain :)

The comments in the code do read like a parody, though:

    count = 0  ### start a counter at zero
No kidding...

    while success: ### while success == True
Aside from the necessity of the comments, I notice they have many comment blocks that are to the right of the code block, but left-aligned to some column number. Is this easy in some editor? I can't imagine doing this in vim without some extra fanciness in the vimrc, for example.
Having little data and not enough resources to manually label thousands of examples seems to be a somewhat neglected problem.

It's not a neglected problem - it is an extremely active area of research, and something people deal with every single day when using ML in industry (do you feel my frustration there?!)

The problem is that there isn't a single generalization method that works well.

For specific problems there are numerous approaches which can help. Distant supervision, adversarial techniques, data augmentation, reinforcement learning etc are all areas to look at - but the specific technique depends on your exact problem.

80% for 4 second clips, so running it on random video feed guarantees false positives in under a minute.

Not to mention this is trying to predict something human expert in the field (lets say a taxi driver) watching same clips couldnt do, its trying to predict future. Most likely triggers on something semi related, like amount of cars in front/roundabouts/red light, more cars = bigger chance of accident = strong correlation. Garbage in garbage out.