|
--- |
|
library_name: keras-hub |
|
license: apache-2.0 |
|
tags: |
|
- image-segmentation |
|
--- |
|
## Model Overview |
|
DeepLabv3+ model is developed by Google for semantic segmentation. This guide demonstrates how to finetune and use DeepLabv3+ model for image semantic segmentaion with KerasCV. Its architecture that combines atrous convolutions, contextual information aggregation, and powerful backbones to achieve accurate and detailed semantic segmentation. The DeepLabv3+ model has been shown to achieve state-of-the-art results on a variety of image segmentation benchmarks. This model is supported in both KerasCV and KerasHub. KerasCV will no longer be actively developed, so please try to use KerasHub. |
|
` |
|
Weights are released under the [Apache 2 License](https://apache.org/licenses/LICENSE-2.0). Keras model code is released under the [Apache 2 License](https://github.com/keras-team/keras-hub/blob/master/LICENSE). |
|
|
|
## Links |
|
|
|
* [DeepLabV3Plus Quickstart Notebook](https://www.kaggle.com/code/prasadsachin/deeplabv3plus-quickstart) |
|
* [DeepLabV3Plus Finetune Notebook](https://www.kaggle.com/code/prasadsachin/deeplabv3plus-finetune-notebook/) |
|
* [DeepLabV3Plus API Documentation](https://keras.io/api/keras_hub/models/deeplab_v3/) |
|
|
|
|
|
## Installation |
|
|
|
Keras and KerasHub can be installed with: |
|
|
|
``` |
|
pip install -U -q keras-hub |
|
pip install -U -q keras |
|
``` |
|
|
|
Jax, TensorFlow, and Torch come preinstalled in Kaggle Notebooks. For instructions on installing them in another environment see the [Keras Getting Started](https://keras.io/getting_started/) page. |
|
|
|
## Presets |
|
|
|
The following model checkpoints are provided by the Keras team. Full code examples for each are available below. |
|
|
|
| Preset name | Parameters | Description | |
|
|------------------------------------|------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |
|
| deeplab_v3_plus_resnet50_pascalvoc | 39.1M | DeeplabV3Plus with a ResNet50 v2 backbone. Trained on PascalVOC 2012 Semantic segmentation task, which consists of 20 classes and one background class. This model achieves a final categorical accuracy of 89.34% and mIoU of 0.6391 on evaluation dataset. This preset is only comptabile with Keras 3. | |
|
|
|
## Model card |
|
https://arxiv.org/abs/1802.02611 |
|
|
|
## Example Usage |
|
Load DeepLabv3+ presets a extension of DeepLabv3 by adding a simple yet |
|
effective decoder module to refine the segmentation results especially |
|
along object boundaries. |
|
|
|
```python |
|
images = np.ones(shape=(1, 96, 96, 3)) |
|
labels = np.zeros(shape=(1, 96, 96, 2)) |
|
segmenter = keras_hub.models.DeepLabV3ImageSegmenter.from_preset( |
|
"deeplab_v3_plus_resnet50_pascalvoc", |
|
) |
|
segmenter.predict(images) |
|
``` |
|
Specify `num_classes` to load randomly initialized segmentation head. |
|
|
|
```python |
|
segmenter = keras_hub.models.DeepLabV3ImageSegmenter.from_preset( |
|
"deeplab_v3_plus_resnet50_pascalvoc", |
|
num_classes=2, |
|
) |
|
segmenter.preprocessor.image_size = (96, 96) |
|
segmenter.fit(images, labels, epochs=3) |
|
segmenter.predict(images) # Trained 2 class segmentation. |
|
``` |
|
|
|
## Example Usage with Hugging Face URI |
|
|
|
Load DeepLabv3+ presets a extension of DeepLabv3 by adding a simple yet |
|
effective decoder module to refine the segmentation results especially |
|
along object boundaries. |
|
|
|
```python |
|
images = np.ones(shape=(1, 96, 96, 3)) |
|
labels = np.zeros(shape=(1, 96, 96, 2)) |
|
segmenter = keras_hub.models.DeepLabV3ImageSegmenter.from_preset( |
|
"hf://keras/deeplab_v3_plus_resnet50_pascalvoc", |
|
) |
|
segmenter.predict(images) |
|
``` |
|
Specify `num_classes` to load randomly initialized segmentation head. |
|
|
|
```python |
|
segmenter = keras_hub.models.DeepLabV3ImageSegmenter.from_preset( |
|
"hf://keras/deeplab_v3_plus_resnet50_pascalvoc", |
|
num_classes=2, |
|
) |
|
segmenter.preprocessor.image_size = (96, 96) |
|
segmenter.fit(images, labels, epochs=3) |
|
segmenter.predict(images) # Trained 2 class segmentation. |
|
``` |