# Part-Based Obstacle Detection Using a Multiple Output Neural Network
## 1 Introduction  
Artificial intelligence-based image processing has become popular in recent years and has improved the development of solutions in multiple fields, most notably in those that rely on computer-based vision. Deep learning systems feature in various real-life applications, making use of large publicly available datasets and of the increased processing power now available. Most notably, deep learning-based computer vision has been used to predict relevant information, with potential uses in various fields, such as medical imaging, piloting autonomous vehicles, robots or platforms, surveillance, and so on. For the prediction task, much of the work has been focused on developing convolutional neural networks (CNNs) that usually outperform the traditional image-processing algorithms. Of all the possible uses for CNN-based computer vision, the field of automotive applications, which not only includes autonomous vehicles but also other advanced driving assistance systems, has benefited from special attention in recent years. This field is significant from the computer vision point of view because the environment to be perceived is dynamic, unpredictable, and complex, and the image perception must be performed in real time using limited computer architectures. While there is a vast range of sensor systems available for autonomous vehicles, including laser scanners, radar, sonar, or stereo camera setups, a system that uses a single camera is much easier to set up and calibrate, but it can still extract a vast amount of information. By analyzing the image provided by a single camera, a computer system can extract generic area information, such as the free-space areas in front of the vehicle that can be traversed or the obstacle areas that must be avoided, or it can extract information about individual objects. This generic area information can be used for basic collision avoidance or even for limited autonomy, such as lane-keeping or platooning, and the identification of individual objects helps in tracking them and predicting their intentions, or in classifying them, to better estimate the risks and vulnerabilities. Both area perception and individual object perception functions can be achieved by CNNs. Identifying free space and obstacle areas can be achieved by using CNNs for semantic segmentation, which labels each pixel of the image with a class-based label; identifying individual objects can be achieved using instance segmentation CNNs. In the past few years, much research has been proposed to improve semantic segmentation network architectures and to achieve accurate instance segmentation. The instance segmentation methods are a step ahead of the semantic methods. Semantic segmentation neural networks are faster but less complex. Semantic segmentation produces a label image with pixel-level information regarding the object's class, whereas instance segmentation takes the semantic segmentation one step further to provide identifiers for individual object instances. To produce individual object instances, instance segmentation methods usually predict the object's bounding box and then perform segmentation for each predicted bounding box. This introduces dependency in the network regarding the quality of the bounding box prediction. In addition, instance segmentation methods have proven to be time-consuming, and most solutions based on CNNs focus on performance, rather than prediction speed. Real-time capability is usually limited to object detection neural networks, which are mostly limited to predicting two-dimensional (2D) bounding boxes. The work presented in this paper addresses the need for real-time instance segmentation with a reduced demand for resources. The core of our solution is a multiple output semantic segmentation network, which, while not able to identify individual objects, will produce object part information that is easily exploited by a low-complexity geometry-based algorithm.