onnx Image Segmentation Semantic Segmentation Computer Vision Cityscapes HRNet ONNX Int8 quantization RyzenAI image-segmentation en dataset:Chris1/cityscapes arxiv:1909.11065 license:apache-2.0 region:us
---
license: apache-2.0
datasets:
- Chris1/cityscapes
language:
- en
metrics:
- mean_iou
pipeline_tag: image-segmentation
tags:
- Image Segmentation
- Semantic Segmentation
- Computer Vision
- Cityscapes
- HRNet
- ONNX
- Int8 quantization
- RyzenAI
---

# HRNet model trained on Cityscapes

HRNet trained on Cityscapes dataset at resolution 512x1024 for semantic segmentation on images. 
It was introduced in the paper [Segmentation Transformer: Object-Contextual Representations for Semantic Segmentation](https://arxiv.org/pdf/1909.11065.pdf) by Yuhui Yuan et al. 
The code version we use from [this repository](https://github.com/HRNet/HRNet-Semantic-Segmentation).

We develop a modified version that could be supported by [AMD Ryzen AI](https://ryzenai.docs.amd.com/en/latest/inst.html).


## Model description

HRNet is an advanced algorithm used for image segmentation. It is based on deep learning techniques and is capable of providing accurate semantic segmentation in images.


## Intended uses & limitations

You can use the raw model for semantic segmentation. See the [model hub](https://huggingface.co/models?sort=trending&search=amd%2Fhrnet) to look for all available HRNet models.


## How to use

### Installation

   Follow [Ryzen AI Installation](https://ryzenai.docs.amd.com/en/latest/inst.html) to prepare the environment for Ryzen AI.
   Run the following script to install pre-requisites for this model.
   ```bash
   pip install -r requirements.txt 
   ```


### Data Preparation (optional: for accuracy evaluation)
1. Download the [Cityscapes](https://www.cityscapes-dataset.com/) dataset, which includes images and annotations. Download gtFine_trainvaltest.zip (241MB) and leftImg8bit_trainvaltest.zip (11GB).
2. Organise the dataset directory as follows:
```Shell
  ./data/cityscapes/
    gtFine
    leftImg8bit
    train.lst
    val.lst
    test.lst
```

### Test & Evaluation
 - Run inference on a single image
  ```python
  python hrnet_quantized_onnx_inference.py -m HighResolutionNet_int.onnx -idir PATH_TO_IMAGES(like .\data\cityscapes\leftImg8bit\val\frankfurt) --ipu --provider_config Path\To\vaip_config.json
  #return segmentaion logits and can visualize the result.
  ```
*Note: __vaip_config.json__ is located at the setup package of Ryzen AI (refer to [Installation](#installation))*

 - Test accuracy of the quantized model on Cityscapes.
  ```Shell
  python hrnet_quantized_onnx_eval.py -m .\HighResolutionNet_int.onnx -r .\data\cityscapes -l .\val.lst --ipu --provider_config .\vaip_config.json
  ```

### Performance
| Model | miou|
|:-|:-:|
| HRNet_int8_onnx_model (512x1024) | 72.31% |


```bibtex
@article{YuanCW19,
  title={Object-Contextual Representations for Semantic Segmentation},
  author={Yuhui Yuan and Xilin Chen and Jingdong Wang},
  booktitle={ECCV},
  year={2020}
}
```

