We are currently developing a Deep Convolutional Neural Network to extract road surfaces from aerial orthophoto's. Our current workflow involves using an existing road centreline to mask a large enough area to determine which of the pixels are road surface. The probability binary raster output are reasonably accurate. The final step within our workflow is that we use the original road centreline and average pixel width to determine the road width to buffer the road centreline as the output the road surface area. The problem with the following approach is that collector and arterial roads are not uniform in road width as well as the road bellmouth is lost at road intersections. Currently the team that has developed the following model is using Matlab, which I'm not familiar with, hence the following question to find out what morphological operations could be used to extract a better representation of the road surface by approximating road edges (straight lines), varying road widths and bellmouths at road intersections from the probability raster output from the CNN model.
CNN: Current Workflow
CNN: Red (Manually Derived Road Surface \ Training Dataset) Yellow (Vectorised Road Surface Output)