Traffic Sign Recognition with TensorFlow
medium.com
medium.com
Meanwhile the rail industry wants to delay, spend hundreds of millions of dollars to move to state-of-the-art new signalling systems. Fine, sure, do that, but in the meantime you can save a truckload of cash (and improve safety, and reduce lateness) by replacing each driver with an iPhone and a suction cup.
Then you can let drivers just not be replaced when they retire. If the drivers union kicks up a fuss and they strike, well, great -- ask them to take the next day off too.
However, in my opinion there are several aspects why this is developing much slower than self driving cars:
* There are incredibly many regulations for every single piece of hardware that can be used on a train. They have such strict regulations that computing hardware that is certified for use on trains is usually 2 generations behind current hardware.
* There are not that many test tracks and you can't just roll your own track without fronting huge sums to build a test track. A self driving car can at least be driven on a private land if you don't have access to a test track and in the minimal case it does not have much more requirements than basically a paved parking area.
* If you want to do the testing on a real track (we were lucky and had a partner company that enabled us to use a public track) you have to slot into the regular transit schedule. Which means a lot of planning to do a single test and then a very tight schedule to get the test system up and running. If you miss the allotted time you have to wait or scrap the test completely for that day.
* An obvious issue is passenger safety. Even in a small train you can have several dozens of passengers which is a huge regulatory hurdle.
* And the last and in my opinion very important thing is that you can get a testing vehicle for self driving cars up and running for a reasonable amount of money, sure they are more expensive than regular cars if you count all the sensors and hardware you need but it is nothing compared to a train car which is at least one order of magnitude more expensive.
Also a huge issue is weather. In good weather conditions, self-driving <cars/trains/...> can handle themselves rather well but as soon as the weather gets bad or during the night it gets quite tricky.
For example: We had situations where snow was completely covering the track for huge parts of the way. What should the algorithm that checks for obstacles on the track do if the whole track has vanished?
The human driver has to rely on his gut feeling to decide if he can continue or not. We also had situations where quite a bit of vegetation was covering the tracks. The question is: Does this count as an obstacle that requires breaking or can you drive over it. As far as I know this was also an issue in the DARPA driving challenge where a car was driving over some grass which popped up after the car passed over it causing the sensors in the back to report an obstacle and which prevented it from backing out of the situation.
One series of accidents, particularly in conditions which would be easy to avoid by a human, and the whole market for the self driving car will pop like soap bubble.
Learning to map discrete snapshots of objects to labels won't yield a system that can deal with e.g., the reality of lighting conditions that a car will experience.
My comment is about the approach of using supervised learning to map directly from images to category labels.
Another shortcoming of feedforward nets is they cannot change how they interpret local features based on integrated global aspects of a scene, like ambient lighting or backlighting.
As a result the network will fail to classify on new real world images.
If instead you use recurrence to learn features that take the dynamical and global effects into account, you'll have a better chance of success. One example of how we did his is here [1].
[1] http://blog.piekniewski.info/2016/11/04/predictive-vision-in...
It seems that your system is supervised for the initial training. Once the system is somewhat trained, is it possible to let it free with unsupervised training, say if the confidence is in some higher range, between some frames? For example, say there was a period of frames with very high confidence, some slightly occlusion or shadow that lowered the confidence, and then another period of high confidence. With something like motion prediction, and some confidence in where the sign was, could you use that period of lower confidence to help train, maybe with some verification from a knows, complicated, supervised data set?
tldr; Are there methods to allow these systems to keep learning once they're deployed?
It seems that your system is supervised for the initial training. Once the system is somewhat trained, is it possible to let it free with unsupervised training, say if the confidence is in some higher range, between some frames? For example, say there was a period of frames with very high confidence, some slightly occlusion or shadow that lowered the confidence, and then another period of high confidence. With something like motion prediction, and some confidence in where the sign was, could you use that period of lower confidence to help train, maybe with some verification from a knows, complicated, supervised data set?
tldr; Are there methods to allow these systems to keep learning once they're deployed?
edit: And this may interest you, the brain appears to predict motion: https://whitneylab.berkeley.edu/people/gerrit/MausNijhawan.P...
PS: yes, there is a strong literature suggesting that the brain is predicting a bunch of things. Check this long review paper http://www.fil.ion.ucl.ac.uk/~karl/Whatever%20next.pdf for plenty ideas and details.
If I understand correctly, in context of that visual example, if it were trained with a moving camera and a static scene, then its prediction would only be able to predict scene transformations caused by that moving camera. Maybe this explains how the tracking somewhat fails when the ball is moving along the grass towards the end the scene. It doesn't "know" much about moving objects, just moving cameras? So then training with moving objects, would let it predict those, as well?
In what the video is showing, if it can predict perspective transforms from camera movement, like it seems to be doing, does that means it's making something like a 3d model, or something like a depth map used for its motion prediction, somewhere in there?
I would love to see the error video of some sort of rotating 3d wireframe that it was trained to.
This whole approach of a general "predictor" seems extremely incredible.
One way to do this is to link PVM'a prediction error output to an "instinct" that directs it towards lower confidence events that you mentioned. This could be just orienting the camera towards those events, or in a robot producing actions that led to those events again.
Note this is not necessarily reinforcement learning but it relates to some ideas there, like the idea of novelty being rewarding.