caffesegnet
Implementation of SegNet: A Deep Convolutional EncoderDecoder Architecture for Semantic PixelWise Labelling
view repo
We present a deep learning framework for probabilistic pixelwise semantic segmentation, which we term Bayesian SegNet. Semantic segmentation is an important tool for visual scene understanding and a meaningful measure of uncertainty is essential for decision making. Our contribution is a practical system which is able to predict pixelwise class labels with a measure of model uncertainty. We achieve this by Monte Carlo sampling with dropout at test time to generate a posterior distribution of pixel class labels. In addition, we show that modelling uncertainty improves segmentation performance by 23 across a number of state of the art architectures such as SegNet, FCN and Dilation Network, with no additional parametrisation. We also observe a significant improvement in performance for smaller datasets where modelling uncertainty is more effective. We benchmark Bayesian SegNet on the indoor SUN Scene Understanding and outdoor CamVid driving scenes datasets.
READ FULL TEXT VIEW PDFImplementation of SegNet: A Deep Convolutional EncoderDecoder Architecture for Semantic PixelWise Labelling
Files for a tutorial to train SegNet for road scenes using the CamVid dataset
This repository was a fork of BVLC/caffe and includes the upsample, bn, dense_image_data and softmax_with_loss (with class weighting) layers of caffesegnet (https://github.com/alexgkendall/caffesegnet) to run SegNet with cuDNN version 5.
neon implementation of SegNet
None
Semantic segmentation requires an understanding of an image at a pixel level and is an important tool for scene understanding. It is a difficult problem as scenes often vary significantly in pose and appearance. However it is an important problem as it can be used to infer scene geometry and object support relationships. This has wide ranging applications from robotic interaction to autonomous driving.
Previous approaches to scene understanding used low level visual features [32]
. We are now seeing the emergence of machine learning techniques for this problem
[31, 25]. In particular deep learning [25] has set the benchmark on many popular datasets [11, 8]. However none of these deep learning methods produce a probabilistic segmentation with a measure of model uncertainty.Uncertainty should be a natural part of any predictive system’s output. Knowing the confidence with which we can trust the semantic segmentation output is important for decision making. For instance, a system on an autonomous vehicle may segment an object as a pedestrian. But it is desirable to know the model uncertainty with respect to other classes such as street sign or cyclist as this can have a strong effect on behavioural decisions. Uncertainty is also immediately useful for other applications such as active learning
[7], semisupervised learning, or label propagation
[1].The main contribution of this paper is extending deep convolutional encoderdecoder neural network architectures
[3]to Bayesian convolutional neural networks which can produce a probabilistic segmentation output
[13]. In Section 4we propose Bayesian SegNet, a probabilistic deep convolutional neural network framework for pixelwise semantic segmentation. We use dropout at test time which allows us to approximate the posterior distribution by sampling from the Bernoulli distribution across the network’s weights. This is achieved with no additional parameterisation.
In Section 5, we demonstrate that Bayesian SegNet sets the best performing benchmark on prominent scene understanding datasets, CamVid Road Scenes [4] and SUN RGBD Indoor Scene Understanding [35]. In particular, we find a larger performance improvement on smaller datasets such as CamVid where the Bayesian Neural Network is able to cope with the additional uncertainty from a smaller amount of data.
Moreover, we show in section 5.4 that this technique is broadly applicable across a number of state of the art architectures and achieves a 23% improvement in segmenation accuracy when applied to SegNet [3], FCN [25] and Dilation Network [40].
Finally in Section 5.5 we demonstrate the effectiveness of model uncertainty. We show this measure can be used to understand with what confidence we can trust image segmentations. We also explore what factors contribute to Bayesian SegNet making an uncertain prediction.
Semantic pixel labelling was initially approached with TextonBoost [32], TextonForest [30]
and Random Forest Based Classifiers
[31]. We are now seeing the emergence of deep learning architectures for pixel wise segmentation, following its success in object recognition for a whole image [21]. Architectures such as SegNet [3] Fully Convolutional Networks (FCN) [25] and Dilation Network [40] have been proposed, which we refer to as the core segmentation engine. FCN is trained using stochastic gradient descent with a stagewise training scheme. SegNet was the first architecture proposed that can be trained endtoend in one step, due to its lower parameterisation.
We have also seen methods which improve on these core segmentation engine architectures by adding post processing tools. HyperColumn [16] and DeConvNet [27] use region proposals to bootstrap their core segmentation engine. DeepLab [6] postprocesses with conditional random fields (CRFs) and CRFRNN [42]
use recurrent neural networks. These methods improve performance by smoothing the output and ensuring label consistency. However none of these proposed segmentation methods generate a probabilistic output with a measure of model uncertainty.
Neural networks which model uncertainty are known as Bayesian neural networks [9, 26]. They offer a probabilistic interpretation of deep learning models by inferring distributions over the networks’ weights. They are often computationally very expensive, increasing the number of model parameters without increasing model capacity significantly. Performing inference in Bayesian neural networks is a difficult task, and approximations to the model posterior are often used, such as variational inference [14].
On the other hand, the already significant parameterization of convolutional network architectures leaves them particularly susceptible to overfitting without large amounts of training data. A technique known as dropout is commonly used as a regularizer in convolutional neural networks to prevent overfitting and coadaption of features [36]. During training with stochastic gradient descent, dropout randomly removes units within a network. By doing this it samples from a number of thinned networks with reduced width. At test time, standard dropout approximates the effect of averaging the predictions of all these thinnned networks by using the weights of the unthinned network. This is referred to as weight averaging.
Gal and Ghahramani [13]
have cast dropout as approximate Bayesian inference over the network’s weights.
[12] shows that dropout can be used at test time to impose a Bernoulli distribution over the convolutional net filter’s weights, without requiring any additional model parameters. This is achieved by sampling the network with randomly dropped out units at test time. We can consider these as Monte Carlo samples obtained from the posterior distribution over models. This technique has seen success in modelling uncertainty for camera relocalisation [19]. Here we apply it to pixelwise semantic segmentation.We note that the probability distribution from Monte Carlo sampling is significantly different to the
‘probabilities’ obtained from a softmax classifier. The softmax function approximates relative probabilities between the class labels, but not an overall measure of the model’s uncertainty [13]. Figure 3 illustrates these differences.We briefly review the SegNet architecture [3]
which we modify to produce Bayesian SegNet. SegNet is a deep convolutional encoder decoder architecture which consists of a sequence of nonlinear processing layers (encoders) and a corresponding set of decoders followed by a pixelwise classifier. Typically, each encoder consists of one or more convolutional layers with batch normalisation and a ReLU nonlinearity, followed by nonoverlapping maxpooling and subsampling. The sparse encoding due to the pooling process is upsampled in the decoder using the maxpooling indices in the encoding sequence. This has the important advantage of retaining class boundary details in the segmented images and also reducing the total number of model parameters. The model is trained end to end using stochastic gradient descent.
We take both SegNet [3] and a smaller variant termed SegNetBasic [2] as our base models. SegNet’s encoder is based on the 13 convolutional layers of the VGG16 network [34] followed by 13 corresponding decoders. SegNetBasic is a much smaller network with only four layers each for the encoder and decoder with a constant feature size of 64. We use SegNetBasic as a smaller model for our analysis since it conceptually mimics the larger architecture.
The technique we use to form a probabilistic encoderdecoder architecture is dropout [36], which we use as approximate inference in a Bayesian neural network [12]. We can therefore consider using dropout as a way of getting samples from the posterior distribution of models. Gal and Ghahramani [12] link this technique to variational inference in Bayesian convolutional neural networks with Bernoulli distributions over the network’s weights. We leverage this method to perform probabilistic inference over our segmentation model, giving rise to Bayesian SegNet.
For Bayesian SegNet we are interested in finding the posterior distribution over the convolutional weights, , given our observed training data and labels .
(1) 
In general, this posterior distribution is not tractable, therefore we need to approximate the distribution of these weights [9]. Here we use variational inference to approximate it [14]. This technique allows us to learn the distribution over the network’s weights, , by minimising the KullbackLeibler (KL) divergence between this approximating distribution and the full posterior;
(2) 
Here, the approximating variational distribution for every dimensional convolutional layer , with units , is defined as:
(3) 
with vectors of Bernoulli distributed random variables and variational parameters we obtain the approximate model of the Gaussian process in [12]. The dropout probabilities, , could be optimised. However we fix them to the standard probability of dropping a connection as 50%, i.e. [36].
In [12]
it was shown that minimising the cross entropy loss objective function has the effect of minimising the KullbackLeibler divergence term. Therefore training the network with stochastic gradient descent will encourage the model to learn a distribution of weights which explains the data well while preventing overfitting.
We train the model with dropout and sample the posterior distribution over the weights at test time using dropout to obtain the posterior distribution of softmax class probabilities. We take the mean of these samples for our segmentation prediction and use the variance to output model uncertainty for each class. We take the mean of the per class variance measurements as an overall measure of model uncertainty. We also explored using the variation ratio as a measure of uncertainty (i.e. the percentage of samples which agree with the class prediction) however we found this to qualitatively produce a more binary measure of model uncertainty. Fig. 2 shows a schematic of the segmentation prediction and model uncertainty estimate process.
Weight  Monte Carlo  Training  

Averaging  Sampling  Fit  
Probabilistic Variants  G  C  I/U  G  C  I/U  G  C  I/U 
No Dropout  82.9  62.4  46.4  n/a  n/a  n/a  94.7  96.2  92.7 
Dropout Encoder  80.6  68.9  53.4  81.6  69.4  54.0  90.6  92.5  86.3 
Dropout Decoder  82.4  64.5  48.8  82.6  62.4  46.1  94.6  96.0  92.4 
Dropout EncDec  79.9  69.0  54.2  79.8  68.8  54.0  88.9  89.0  80.6 
Dropout Central EncDec  81.1  70.6  55.7  81.6  70.6  55.8  90.4  92.3  85.9 
Dropout Center  82.9  68.9  53.1  82.7  68.9  53.2  93.3  95.4  91.2 
Dropout Classifier  84.2  62.6  46.9  84.2  62.6  46.8  94.9  96.0  92.3 
A fully Bayesian network should be trained with dropout after every convolutional layer. However we found in practice that this was too strong a regulariser, causing the network to learn very slowly. We therefore explored a number of variants that have different configurations of Bayesian or deterministic encoder and decoder units. We note that an encoder unit contains one or more convolutional layers followed by a max pooling layer. A decoder unit contains one or more convolutional layers followed by an upsampling layer. The variants are as follows:
[noitemsep]
Bayesian Encoder. In this variant we insert dropout after each encoder unit.
Bayesian Decoder. In this variant we insert dropout after each decoder unit.
Bayesian EncoderDecoder. In this variant we insert dropout after each encoder and decoder unit.
Bayesian Center. In this variant we insert dropout after the deepest encoder, between the encoder and decoder stage.
Bayesian Central Four EncoderDecoder. In this variant we insert dropout after the central four encoder and decoder units.
Bayesian Classifier. In this variant we insert dropout after the last decoder unit, before the classifier.
For analysis we use the smaller eight layer SegNetBasic architecture [3] and test these Bayesian variants on the CamVid dataset [4]. We observe qualitatively that all four variants produce similar looking model uncertainty output. That is, they are uncertain near the border of segmentations and with visually ambiguous objects, such as cyclist and pedestrian classes. However, Table 1 shows a difference in quantitative segmentation performance.
We observe using dropout after all the encoder and decoder units results in a lower training fit and poorer test performance as it is too strong a regulariser on the model. We find that dropping out half of the encoder or decoder units is the optimal configuration. The best configuration is dropping out the deepest half of the encoder and decoder units. We therefore benchmark our Bayesian SegNet results on the Central EncDec variant. For the full 26 layer Bayesian SegNet, we add dropout to the central six encoders and decoders. This is illustrated in Fig. 2.
In the lower layers of convolutional networks basic features are extracted, such as edges and corners [41]. These results show that applying Bayesian weights to these layers does not result in a better performance. We believe this is because these low level features are consistent across the distribution of models because they are better modelled with deterministic weights. However, the higher level features that are formed in the deeper layers, such as shape and contextual relationships, are more effectively modelled with Bayesian weights.
Results averaged over 5 trials, with two standard deviation error bars, are shown for the CamVid dataset. This shows that Monte Carlo sampling outperforms the weight averaging technique after approximately 6 samples. Monte Carlo sampling converges after around 40 samples with no further significant improvement beyond this point.
Method 
Building 
Tree 
Sky 
Car 
SignSymbol 
Road 
Pedestrian 
Fence 
ColumnPole 
Sidewalk 
Bicyclist 
Class avg. 
Global avg. 
Mean I/U 
SfM+Appearance [5]  46.2  61.9  89.7  68.6  42.9  89.5  53.6  46.6  0.7  60.5  22.5  53.0  69.1  n/a 
Boosting [37]  61.9  67.3  91.1  71.1  58.5  92.9  49.5  37.6  25.8  77.8  24.7  59.8  76.4  n/a 
Structured Random Forests [20]  n/a  51.4  72.5  n/a  
Neural Decision Forests [29]  n/a  56.1  82.1  n/a  
Local Label Descriptors [39]  80.7  61.5  88.8  16.4  n/a  98.0  1.09  0.05  4.13  12.4  0.07  36.3  73.6  n/a 
Super Parsing [38]  87.0  67.1  96.9  62.7  30.1  95.9  14.7  17.9  1.7  70.0  19.4  51.2  83.3  n/a 
Boosting+Detectors+CRF [22]  81.5  76.6  96.2  78.7  40.2  93.9  43.0  47.6  14.3  81.5  33.9  62.5  83.8  n/a 
SegNetBasic (layerwise training [2])  75.0  84.6  91.2  82.7  36.9  93.3  55.0  37.5  44.8  74.1  16.0  62.9  84.3  n/a 
SegNetBasic [3]  80.6  72.0  93.0  78.5  21.0  94.0  62.5  31.4  36.6  74.0  42.5  62.3  82.8  46.3 
SegNet [3]  88.0  87.3  92.3  80.0  29.5  97.6  57.2  49.4  27.8  84.8  30.7  65.9  88.6  50.2 
FCN 8 [25]  n/a  64.2  83.1  52.0  
DeconvNet [27]  n/a  62.1  85.9  48.9  
DeepLabLargeFOVDenseCRF [6]  n/a  60.7  89.7  54.7  
Bayesian SegNet Models in this work:  
Bayesian SegNetBasic  75.1  68.8  91.4  77.7  52.0  92.5  71.5  44.9  52.9  79.1  69.6  70.5  81.6  55.8 
Bayesian SegNet  80.4  85.5  90.1  86.4  67.9  93.8  73.8  64.5  50.8  91.7  54.6  76.3  86.9  63.1 
Monte Carlo dropout sampling qualitatively allows us to understand the model uncertainty of the result. However, for segmentation, we also want to understand the quantitative difference between sampling with dropout and using the weight averaging technique proposed by [36]. Weight averaging proposes to remove dropout at test time and scale the weights proportionally to the dropout percentage. Fig. 4 shows that Monte Carlo sampling with dropout performs better than weight averaging after approximately 6 samples. We also observe no additional performance improvement beyond approximately 40 samples. Therefore the weight averaging technique produces poorer segmentation results, in terms of global accuracy, in addition to being unable to provide a measure of model uncertainty. However, sampling comes at the expense of inference time, but when computed in parallel on a GPU this cost can be reduced for practical applications.
Following [3] we train SegNet with median frequency class balancing using the formula proposed by Eigen and Fergus [10]. We use batch normalisation layers after every convolutional layer [17]. We compute batch normalisation statistics across the training dataset and use these at test time. We experimented with computing these statistics while using dropout sampling. However we experimentally found that computing them with weight averaging produced better results.
We implement Bayesian SegNet using the Caffe library
[18] and release the source code and trained models for public evaluation ^{1}^{1}1An online demo and source code can be found on our project webpage mi.eng.cam.ac.uk/projects/segnet/. We train the whole system endtoend using stochastic gradient descent with a base learning rate of 0.001 and weight decay parameter equal to 0.0005. We train the network until convergence when we observe no further reduction in training loss.We quantify the performance of Bayesian SegNet on three different benchmarks using our Caffe implementation. Through this process we demonstrate the efficacy of Bayesian SegNet for a wide variety of scene segmentation tasks which have practical applications. CamVid [4] is a road scene understanding dataset which has applications for autonomous driving. SUN RGBD [35] is a very challenging and large dataset of indoor scenes which is important for domestic robotics. Finally, Pascal VOC 2012 [11] is a RGB dataset for object segmentation.
CamVid is a road scene understanding dataset with 367 training images and 233 testing images of day and dusk scenes [4]. The challenge is to segment classes such as road, building, cars, pedestrians, signs, poles, sidewalk etc. We resize images to 360x480 pixels for training and testing of our system.
Table 2 shows our results and compares them to previous benchmarks. We compare to methods which utilise depth and motion cues. Additionally we compare to other prominent deep learning architectures. Bayesian SegNet obtains the highest overall class average and mean intersection over union score by a significant margin. We set a new benchmark on 7 out of the 11 classes. Qualitative results can be viewed in Fig. 6.
Method  G  C  I/U 

RGB  
Liu et al. [24]  n/a  9.3  n/a 
FCN 8 [25]  68.2  38.4  27.4 
DeconvNet [27]  66.1  32.3  22.6 
DeepLabLargeFOVDenseCRF [6]  67.0  33.0  24.1 
SegNet [3]  70.3  35.6  22.1 
Bayesian SegNet (this work)  71.2  45.9  30.7 
RGBD  
Liu et al. [24]  n/a  10.0  n/a 
Ren et. al [28]  n/a  36.3  n/a 
Method  G  C  I/U 

RGB  
FCN32s RGB [25]  60.0  42.2  29.2 
SegNet [3]  66.1  36.0  23.6 
Bayesian SegNet (this work)  68.0  45.8  32.4 
RGBD  
Gupta et al. [15]  60.3    28.6 
FCN32s RGBD [25]  61.5  42.4  30.5 
Eigen et al. [10]  65.6  45.1   
RGBHHA  
FCN16s RGBHHA [25]  65.4  46.1  34.0 
SUN RGBD [35] is a very challenging and large dataset of indoor scenes with training and testing images. The images are captured by different sensors and hence come in various resolutions. The task is to segment indoor scene classes including wall, floor, ceiling, table, chair, sofa etc. This task is difficult because object classes come in various shapes, sizes and in different poses with frequent partial occlusions. These factors make this one of the hardest segmentation challenges. For our model, we resize the input images for training and testing to 224x224 pixels. Note that we only use RGB input to our system. Using the depth modality would necessitate architectural modifications and careful postprocessing to fillin missing depth measurements. This is beyond the scope of this paper.
Table 3 shows our results on this dataset compared to other methods. Bayesian SegNet outperforms all previous benchmarks, including those which use depth modality. We also note that an earlier benchmark dataset, NYUv2 [33], is included as part of this dataset, and Table 4 shows our evaluation on this subset. Qualitative results can be viewed in Fig. 6.
Parameters  Pascal VOC Test IoU  
Method  (Millions)  NonBayesian  Bayesian 
Dilation Network [40]  140.8  71.3  73.1 
FCN8 [25]  134.5  62.2  65.4 
SegNet [3]  29.45  59.1  60.5 
The Pascal VOC12 segmentation challenge [11] consists of segmenting a 20 salient object classes from a widely varying background class. For our model, we resize the input images for training and testing to 224x224 pixels. We train on the 12031 training images and 1456 testing images, with scores computed remotely on a test server. Table 5 shows our results compared to other methods, with qualitative results in Fig. 9.
This dataset is unlike the segmentation for scene understanding benchmarks described earlier which require learning both classes and their spatial context. A number of techniques have been proposed based on this challenge which are increasingly more accurate and complex ^{2}^{2}2See the full leader board at http://host.robots.ox.ac.uk:8080/leaderboard. Our efforts in this benchmarking experiment have not been diverted towards attaining the top rank by either using multistage training [25], other datasets for pretraining such as MSCOCO [23], training and inference aids such as object proposals [27] or postprocessing using CRF based methods [6, 42]. Although these supporting techniques clearly have value towards increasing the performance it unfortunately does not reveal the true performance of the deep architecture which is the core segmentation engine. It however does indicate that some of the large deep networks are difficult to train endtoend on this task even with pretrained encoder weights. Therefore, to encourage more controlled benchmarking, we trained Bayesian SegNet endtoend without other aids and report this performance.
To demonstrate the general applicability of this method, we also apply it to other deep learning architectures trained with dropout; FCN [25] and Dilation Network [40]. We select these stateoftheart methods as they are already trained by their respective authors using dropout. We take their trained open source models off the shelf, and evaluate them using 50 Monte Carlo dropout samples. Table 5 shows the mean IoU result of these methods evaluated as Bayesian Neural Networks, as computed by the online evaluation server.
This shows the general applicability of our method. By leveraging this underlying Bayesian framework our method obtains 23% improvement across this range of architectures.
Percentile  PixelWise Classification Accuracy  

Confidence  CamVid  SUN RGBD 
90  99.7  97.6 
50  98.5  92.3 
10  89.5  79.0 
0  86.7  75.4 
Qualitative observations. Fig. 6 shows segmentations and model uncertainty results from Bayesian SegNet on CamVid Road Scenes [4]. Fig. 6 shows SUN RGBD Indoor Scene Understanding [35] results and Fig. 9 has Pascal VOC [11] results. These figures show the qualitative performance of Bayesian SegNet. We observe that segmentation predictions are smooth, with a sharp segmentation around object boundaries. These results also show that when the model predicts an incorrect label, the model uncertainty is generally very high. More generally, we observe that a high model uncertainty is predominantly caused by three situations.
Firstly, at class boundaries the model often displays a high level of uncertainty. This reflects the ambiguity surrounding the definition of defining where these labels transition. The Pascal results clearly illustrated this in Fig. 9.
Secondly, objects which are visually difficult to identify often appear uncertain to the model. This is often the case when objects are occluded or at a distance from the camera.
The third situation causing model uncertainty is when the object appears visually ambiguous to the model. As an example, cyclists in the CamVid results (Fig. 6) are visually similar to pedestrians, and the model often displays uncertainty around them. We observe similar results with visually similar classes in SUN (Fig. 6) such as chair and sofa, or bench and table. In Pascal this is often observed between cat and dog, or train and bus classes.
Wall 
Floor 
Cabinet 
Bed 
Chair 
Sofa 
Table 
Door 
Window 
Bookshelf 
Picture 
Counter 
Blinds 
Desk 
Shelves 
Curtain 
Dresser 
Pillow 
Mirror 
Floor Mat 
Clothes 
Ceiling 
Books 
Fridge 
TV 
Paper 
Towel 
Shower curtain 
Box 
Whiteboard 
Person 
Night stand 
Toilet 
Sink 
Lamp 
Bathtub 
Bag 


SegNet [3] 
86.6 
92.0 
52.4 
68.4 
76.0 
54.3 
59.3 
37.4 
53.8 
29.2 
49.7 
32.5 
31.2 
17.8 
5.3 
53.2 
28.8 
36.5 
29.6 
0.0 
14.4 
67.7 
32.4 
10.2 
18.3 
19.2 
11.5 
0.0 
8.9 
38.7 
4.9 
22.6 
55.6 
52.7 
27.9 
29.9 
8.1 
Bayesian SegNet 
80.2 
90.9 
58.9 
64.8 
76.0 
58.6 
62.6 
47.7 
66.4 
31.2 
63.6 
33.8 
46.7 
19.7 
16.2 
67.0 
42.3 
57.1 
39.1 
0.1 
24.4 
84.0 
48.7 
21.3 
49.5 
30.6 
18.8 
0.1 
24.1 
56.8 
17.9 
42.9 
73.0 
66.2 
48.8 
45.1 
24.1 
Quantitative observations. To understand what causes the model to be uncertain, we have plotted the relationship between uncertainty and accuracy in Fig. 7 and between uncertainty and the frequency of each class in the dataset in Fig. 8. Uncertainty is calculated as the mean uncertainty value for each pixel of that class in a test dataset. We observe an inverse relationship between uncertainty and class accuracy or class frequency. This shows that the model is more confident about classes which are easier or occur more often, and less certain about rare and challenging classes.
Additionally, Table 6 shows segmentation accuracies for varying levels of confidence. We observe very high levels of accuracy for values of model uncertainty above the 90th percentile across each dataset. This demonstrates that the model’s uncertainty is an effective measure of confidence in prediction.
Table 5 shows that SegNet and Bayesian SegNet maintains a far lower parameterisation than its competitors. Monte Carlo sampling requires additional inference time, however if model uncertainty is not required, then the weight averaging technique can be used to remove the need for sampling (Fig. 4 shows the performance drop is modest). Our implementation can run SegNet at 35ms per frame and Bayesian SegNet with 10 Monte Carlo samples at 90ms per frame on Titan X GPU. However inference time will depend on the implementation.
We have presented Bayesian SegNet, the first probabilistic framework for semantic segmentation using deep learning, which outputs a measure of model uncertainty for each class. We show that the model is uncertain at object boundaries and with difficult and visually ambiguous objects. We quantitatively show Bayesian SegNet produces a reliable measure of model uncertainty and is very effective when modelling smaller datasets. Bayesian SegNet outperforms shallow architectures which use motion and depth cues, and other deep architectures. We obtain the highest performing result on CamVid road scenes and SUN RGBD indoor scene understanding datasets. We show that the segmentation model can be run in real time on a GPU. For future work we intend to explore how video data can improve our model’s scene understanding performance.
Journal of artificial intelligence research
, 1996.A practical bayesian framework for backpropagation networks.
Neural computation, 4(3):448–472, 1992.