#GeoForGood19
#GeoForGood19
Neural Segmentation
For Remote Sensing
Chris Brown / 2019
#GeoForGood19
Convolutional Neural Nets
#GeoForGood19
Convolution
Discrete Convolution in 2D
Discrete 2D Convolution as a Feature Detector
1 | 0 | 0 | 1 | 0 |
0 | 1 | 1 | 1 | 1 |
0 | 1 | 0 | 1 | 1 |
1 | 0 | 1 | 1 | 0 |
1 | 0 | 1 | 1 | 0 |
-1 | 1 | 1 |
-1 | 1 | -1 |
1 | -1 | 1 |
g(x,y)=
f(x,y)=
Discrete 2D Convolution as a Feature Detector
2 | -1 | 0 | 2 | -1 |
1 | -2 | 2 | 0 | 1 |
-1 | 5 | -1 | 1 | 1 |
1 | 1 | 0 | 2 | 0 |
2 | -2 | 2 | 0 | -2 |
g(x,y)*f(x,y)=
Discrete 2D Convolution as a Feature Detector
| | | 1 | |
| | 1 | 1 | 1 |
| 1 | | 1 | 1 |
1 | | 1 | 1 | |
1 | | 1 | 1 | |
| | |
| | |
| | |
g(x,y)=
f(x,y)=
Discrete 3D Convolution
3 x = [M, N, 3]
Hierarchical Feature Detection
g1*(g0(x,y)*f(x,y))=
2 | -1 | 0 | 2 | -1 |
1 | -2 | 2 | 0 | 1 |
-1 | 5 | -1 | 1 | 1 |
1 | 1 | 0 | 2 | 0 |
2 | -2 | 2 | 0 | -2 |
? | ? | ? |
? | ? | ? |
? | ? | ? |
*
Hierarchical Feature Detection
Convolutional Neural Nets
Fully Convolutional Neural Nets
#GeoForGood19
First, a bad idea:
Remember this?
Why don't we do this with a convolution!
CNN
#GeoForGood19
Fully Convolutional Neural Nets
https://people.eecs.berkeley.edu/~jonlong/long_shelhamer_fcn.pdf
Atrous Convolution
Atrous Convolution
We can train a FCNN with tile-level labels!
(no mean collapse!)
Atrous Convolution
Atrous convolution captures features at different scales without loss of information.
Technically we wouldn't even need encoder->decoder residual connections to reintroduce spatial information.
#GeoForGood19
So back here...
CNN's lose spatial information (no residuals, no atrous convolutions)
CNN
Computationally expensive! If you have point samples, transform to FCNN.
#GeoForGood19
Practical Considerations
#GeoForGood19
Per-Pixel Dense Nets Using 1x1 Convolutions
Overtiling
Receptive Field Size
Dealing With Little Training Data
What Am I Missing?
#GeoForGood19