mapbox / robosat

Semantic segmentation on aerial and satellite imagery. Extracts features such as: buildings, parking lots, roads, water, clouds
MIT License
2.02k stars 382 forks source link

Implement EfficientNet backbone #172

Open daniel-j-h opened 5 years ago

daniel-j-h commented 5 years ago

This recently came out

https://arxiv.org/abs/1905.11946

EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks

with incredible practical implications: we can either get a much better backbone than our current resnet50 for the same computational budget or get a highly computationally efficient backbone and roughly keep the resnet50's prediction performance.

Here's why we should look into this

Check out the paper's table 2 (below) for comparisons; we are currently using a resnet50.

I highlighted

efficientnet

efficientnet2

daniel-j-h commented 5 years ago

Took a couple more evenings than I hoped it would but now there is

https://github.com/daniel-j-h/efficientnet

Next actions:

The EfficientNets generally use an order of magnitude fewer parameters and floating point operations per second compared to existing models with similar accuracy. If we can make this work for robosat we can expect either much better segmentation results or much smaller models (or both if we e.g. provide a B0 and a B4 backbone for our users).

cc @ocourtin might be interesting to you :)

daniel-j-h commented 5 years ago

Updating here. Making progress in https://github.com/daniel-j-h/efficientnet There are some open questions re. the implementation and tricks we can use on top of the paper, you can follow e.g.