Home

Awesome

mobile_semantic_segmentation

Compare different neural network architecture for semantic segmentation problem on mobiles.

Mobile app

Android application written in Kotlin and using tensorflow-mobile and tensorflow-lite.
With this application you can load image and segmentate it with choosen Deep Neural Network or run benchmarks for compare average working time.

<p align="middle"> <img src="/example_1.jpg" width="200" /> <img src="/example_2.jpg" width="200" /> </p>

Deep Neural Network

There are four networks, in this table you can find information about quality and size:

DNNmIoUSize (mb)
DeepLab V3 CPU [513x513]0.7978.8
DeepLab V3 GPU [257x257]0.6312.8
U-Net CPU [224x224]0.61225.4
IC-Net CPU [256x256]0.63927.1

And here you can find some time measurements:

Snapdragon 625 (4Gb RAM)Snapdragon 845 (6Gb RAM)Snapdragon 430 (4Gb RAM)Exonys 7420 (3Gb RAM)
DeepLab V3 CPU [513x513]2307.75845.355177.052328.35
DeepLab V3 GPU [257x257]391.6139.55630.85180.45
U-Net CPU [224x224]867.35414.681933.13975.0
IC-Net CPU [256x256]375.05127.6656.4248.85

You can find notebooks for each model with pretrained and trained weights, freezed graphs and tflite files. If you want, to run this notebooks, you should install packages from requirements, tensorflow, keras and this repo. You can skip installation of frameworks and use my docker.

TODO

It's important to understand, that this project hasn't completed yet. So feel free to ask quiestions in issues.