11.3 Method: Salient-object-visualization

One of the machine learning applications which has high public attention is self-driving cars. All big car manufactures, suppliers and tech companies are working feverish on this topic. But there are also great concerns about safety and ethics which need to be addressed.

Safety of a machine learning algorithm can be increased if the understanding of how the algorithm reaches its decisions. For computer vision this can be done with techniques like keras-salient-object-visualization described in chapter 11.3.1.

Utilizing this technique on the RC-Robocar framework Donkeycar yields to a movie like the following movie in which the pixels which the algorithm pays attention to are colorized. The green line gives the steering command at the time of recording, the colored pixels indicates the regions in input images by which the algorithm makes its steering decisions, i. e., the salient objects.

Salient-object-visualization:

  • Indicates the regions in input images by which the algorithm makes its steering decisions
  • Helps to find sources of distractions
    - reflections
    - windows
  • Helps to identify solutions
    - crop top of image

11.3.1 Tool: keras-salient-object-visualization

Keras implementation of Nvidia paper ‘Explaining How a Deep Neural Network Trained with End-to-End Learning Steers a Car’. The goal of the visualization is to explain what DonkeyCar (https://github.com/wroscoe/donkey) learns and how it makes its decisions. The central idea in discerning the salient objects is finding parts of the image that correspond to locations where the feature maps of CNN layers have the greatest activations.

The code can be found at GitHub

11.3.2 Explaining How a Deep Neural Network Trained with End-to-End Learning Steers a Car

  • Enable further system improvement
  • Create trust that the system is paying attention to the essential cues

The conclusion of the paper is

We describe a method for finding the regions in input images by which PilotNet makes its steering decisions, i. e., the salient objects. We further provide evidence that the salient objects identified by this method are correct. The results substantially contribute to our understanding of what PilotNet learns. Examination of the salient objects shows that PilotNet learns features that “make sense” to a human, while ignoring structures in the camera images that are not relevant to driving. This capability is derived from data without the need of hand-crafted rules. In fact, PilotNet learns to recognize subtle features which would be hard to anticipate and program by human engineers, such as bushes lining the edge of the road and atypical vehicle classes. (Bojarski et al. 2017)

References

Bojarski, Mariusz, Philip Yeres, Anna Choromanska, Krzysztof Choromanski, Bernhard Firner, Lawrence Jackel, and Urs Muller. 2017. “Explaining How a Deep Neural Network Trained with End-to-End Learning Steers a Car.” arXiv Preprint arXiv:1704.07911.