Project Introduction

Deep Slope Estimation with Formal Verification

In order to drive safely, autonomous vehicles need to estimate the slope of the terrain on which the vehicle intends to drive. This is necessary to determine which parts of the terrain are drivable and to avoid obstacles. For example, when driving on a rough outdoor terrain, the vehicle will need to determine which parts of the terrain are drivable and which parts are not. In an urban setting, the vehicle might encounter small obstacles in the road such as a soda can (which it can drive over) or larger obstacles such as a tree trunk, which it cannot; the vehicle will need to determine whether it can drive over each obstacle or whether it needs to drive around it or possibly stop and call for help if the road seems to be blocked. Thus, estimating the slope and drivability of the terrain is crucial for safe autonomous driving.

Current methods for slope estimation have an unacceptable tradeoff. One approach is to fit a mesh to a set of points and then to use geometric methods to analytically compute the normal at each point; however, such exact methods are too slow for real-time use, especially when they are used as part of a complex autonomous driving pipeline which includes object detection, segmentation, tracking, and motion planning. For such a system, ground-slope estimation should be completed as quickly as possible to leave time for the other components of the system. Further, geometric methods are usually not robust to sensor noise, leading to noisy slope estimates. Thus, accurate geometric methods are usually not used for real-time autonomous driving. Most real systems today use fast but approximate methods to estimate the slope at each point; however, such approximate approaches can make mistakes leading to a dangerous collision with an obstacle or causing the vehicle to get stuck.

Our solution is to use deep slope estimation with formal verification. We will train a neural network to quickly estimate the slope at all points of a large terrain. We will then compress the model to make it analyzable for formal verification methods. This combination of deep learning with formal verification will allow our method to be both fast and provably accurate.

Cloth Parts Detection

We’d like to detect some interesting and important parts of the cloth. For example, for the towels, we’d like to detect the edges and corners. For the T-shirts, we’d like to detect the edges and corners, and also distinguish between the collars, shoulders, and sleeves. The motivation of the project is that the elders and the disabilities usually have some trouble folding the towers, folding the clothes, and making the bed. By putting these detection algorithms on some robots, the robots can help them with these kinds of things.

We implemented supervised and unsupervised methods to solve the problem. For supervised learning, we collected RGB and depth images using Kinect and trained SegNet and U-Net to predict the edges and corners. For unsupervised learning, we tried SuperPoint, 2D & 3D optical flow networks.