ICNet for Real-Time Semantic Segmentation on High-Resolution Images, ECCV2018

Related tags

Deep Learning ICNet
Overview

ICNet for Real-Time Semantic Segmentation on High-Resolution Images

by Hengshuang Zhao, Xiaojuan Qi, Xiaoyong Shen, Jianping Shi, Jiaya Jia, details are in project page.

Introduction

Based on PSPNet, this repository is build for evaluation in ICNet. For installation, please follow the description in PSPNet repository (support CUDA 7.0/7.5 + cuDNN v4).

Usage

  1. Clone the repository recursively:

    git clone --recursive https://github.com/hszhao/ICNet.git
  2. Build Caffe and matcaffe:

    cd $ICNET_ROOT/PSPNet
    cp Makefile.config.example Makefile.config
    vim Makefile.config
    make -j8 && make matcaffe
    cd ..
  3. Evaluation mIoU:

    • Evaluation code is in folder 'evaluation'.

    • Download trained models and put them in folder 'evaluation/model':

      • icnet_cityscapes_train_30k.caffemodel: GoogleDrive

        (31M, md5: c7038630c4b6c869afaaadd811bdb539; train on trainset for 30k)

      • icnet_cityscapes_trainval_90k.caffemodel: GoogleDrive

        (31M, md5: 4f4dd9eecd465dd8de7e4cf88ba5d5d5; train on trainvalset for 90k)

    • Modify the related paths in 'eval_all.m':

      • Mainly variables 'data_root' and 'eval_list', and your image list for evaluation should be similar to that in folder 'evaluation/samplelist' if you use this evaluation code structure.
    cd evaluation
    vim eval_all.m
    • Run the evaluation scripts:
    ./run.sh
    
  4. Evaluation time:

    • To get inference time as accurate as possible, it's suggested to make sure the GPU card with specified ID in script 'test_time.sh' is empty (without other processes executing)

    • Run the evaluation scripts:

    ./test_time.sh
    
  5. Results:

    • Prediction results will show in folder 'evaluation/mc_result' and the expected scores are:
      • ICNet train on trainset for 30K, evaluated on valset (mIoU/pAcc): 67.7/94.5
      • ICNet train on trainvalset for 90K, evaluated on testset (mIoU): 69.5
    • Log information of inference time will be in file 'time.log', approximately 33~36ms on TitanX.
  6. Demo video:

    • Video processed by ICNet on cityscapes dataset:
      • Alpha blending with value as 0.5: Video

Citation

If ICNet is useful for your research, please consider citing:

@inproceedings{zhao2018icnet,
  title={ICNet for Real-Time Semantic Segmentation on High-Resolution Images},
  author={Zhao, Hengshuang and Qi, Xiaojuan and Shen, Xiaoyong and Shi, Jianping and Jia, Jiaya},
  booktitle={ECCV},
  year={2018}
}

Questions

Please contact '[email protected]'

Comments
  • Can you not avoid using MATLAB ?!

    Can you not avoid using MATLAB ?!

    any way I can use this without having the beloved MATLAB? I love so much closed source that I am really close to buy a licence but hey ... no actually.

    opened by Tetsujinfr 6
  • All predcition are road

    All predcition are road

    Hi, Hengshuang! This is a valid work for practical application. I've run your code. But something may be wrong. The predictions of network are all road, i.e. every element of 'imPred' is one. I can not locate the problem. I tested many images and got same results. What's wrong with that? thx

    opened by JalongMa 6
  • Not able to reproduce the prediction results

    Not able to reproduce the prediction results

    Hi @hszhao , I am evaluating the ICNet, and run eval_all.m on the evaluation/samplelist/cityscapes_val.txt.

    Model using to evaluate:

    model_weights = 'model/icnet_cityscapes_train_30k.caffemodel'; %trainval_90k for testset
    model_deploy = 'prototxt/icnet_cityscapes.prototxt';
    

    Here is my result on ICNet train on trainset for 30K, evaluated on valset (mIoU/pAcc):

    ==== Summary IoU ====
      1             road: 0.0000
      2         sidewalk: 0.0045
      3         building: 0.0109
      4             wall: 0.0025
      5            fence: 0.0438
      6             pole: 0.0101
      7    traffic light: 0.0000
      8     traffic sign: 0.0001
      9       vegetation: 0.0008
     10          terrain: 0.0047
     11              sky: 0.0000
     12           person: 0.0031
     13            rider: 0.0008
     14              car: 0.0012
     15            truck: 0.0000
     16              bus: 0.0000
     17            train: 0.0000
     18       motorcycle: 0.0005
     19          bicycle: 0.0000
     
    Mean IoU over 19 classes: 0.44%
    Pixel-wise Accuracy: 0.51%
    

    Is there anything I am missing to run this model, thanks in advance for anything input.

    By the way, does anybody be able to reproduce the result, and if yes, please let me know, what was missing?

    Thanks Huaqi

    opened by fanghuaqi 1
  • Train architecture

    Train architecture

    Could you provide train architecture? I want to implement your idea at TensorFlow, but I cannot get your idea of network only using information from paper. There are lacking information like:

    1. Number of filters in each layer, especially in pipeline image/4/
    2. I released prototxt I do not see any image/4 as input, where it go?
    3. I see that you are using residuals, are they the same like in PSPNet?

    I was using this visualization as base, but I'm not able to match this architecture with that from pipeline.

    opened by melgor 1
  • Invalid MEX-file, undefined symbol, libQtTest

    Invalid MEX-file, undefined symbol, libQtTest

    If such error occur, try: $ ldd /ICNet/PSPNet/matlab/+caffe/private/caffe_.mexa64 and in matlab:

    ! ldd /ICNet/PSPNet/matlab/+caffe/private/caffe_.mexa64

    You will find libQtOpenGL, libQtGui, libQtCore is point to /bin/glnxa64 but libQtTest is point to sth in /lib64/

    However, all 4 lib should use the one in /lib64/

    solution: delete libQtOpenGL, libQtGui, libQtCore in /bin/glnxa64 create symbolic link of these 3 and point to the one in /lib64/

    opened by chaotaklon 0
  • Evaluaton Issue roott_path and eval_list

    Evaluaton Issue roott_path and eval_list

    Modify the related paths in 'eval_all.m':

    Mainly variables 'data_root' and 'eval_list', and your image list for evaluation should be similar to that in folder 'evaluation/samplelist' if you use this evaluation code structure.

    How I modify the root_path and eval_list??

    I have dataset in my laptop test train and val so how I Put my dataset path on data_root?

    Please guide me what is the issue actually

    opened by zaheer789 0
  • Evaluation with cityscapes

    Evaluation with cityscapes

    Hi As per step 3. evaluation

    downloaded cityscapes dataset from https://drive.google.com/file/d/1z_2yifjYICczhZjBqCEhE1m6GYwJuljn/view

    While running the ./run.sh, I got the below error

    Error using importdata Unable to open file.

    Error in eval_sub (line 3) list = importdata(fullfile(data_root,eval_list));

    Error in eval_all (line 35) eval_sub(data_name,data_root,eval_list,model_weights,model_deploy,fea_cha,crop_size_h,crop_size_w,data_class,data_colormap, ...

    Please help

    opened by zaheer789 0
  • How to train or finetune in caffe?

    How to train or finetune in caffe?

    hello, I want to train ICNet with pascal voc dataset in caffe. I have changed the number of class in .prototxt, and written the solver.pototxt according to the paper. But the loss also around 0.5, and the accuracy is too low. Because my GPU is 8G memory, I can only set mini_batchsize to 8, but by setting iter_size to 2. So the batch size is 16. Can you help me. Looking forward to your reply!

    opened by Alice-kenan 0
  • How to set weights for different classes

    How to set weights for different classes

    How do you set the weights for different classes when calculating loss? I train the model using the weights I give. But the model still learn the detect the background. Can you introduce the method you use?

    opened by ywlng 0
  • About the test time

    About the test time

    Hi, I once used this script to test the speed of ICNet in Matlab :

    tic; score = net.forward({input_data}); temp = toc;

    But I got the result of 15.6fps on 1080ti without other programs running, the result provided by the author is more than 30fps, then I used the scripts provided by the author in Caffe, the result is 31fps on 1080ti, which is lager than the original result, I was confused about it. Can you help me?

    opened by wangq95 0
Official and maintained implementation of the paper "OSS-Net: Memory Efficient High Resolution Semantic Segmentation of 3D Medical Data" [BMVC 2021].

OSS-Net: Memory Efficient High Resolution Semantic Segmentation of 3D Medical Data Christoph Reich, Tim Prangemeier, Özdemir Cetin & Heinz Koeppl | Pr

Christoph Reich 23 Sep 21, 2022
Official Implementation of HRDA: Context-Aware High-Resolution Domain-Adaptive Semantic Segmentation

HRDA: Context-Aware High-Resolution Domain-Adaptive Semantic Segmentation by Lukas Hoyer, Dengxin Dai, and Luc Van Gool [Arxiv] [Paper] Overview Unsup

Lukas Hoyer 149 Dec 28, 2022
Boosting Monocular Depth Estimation Models to High-Resolution via Content-Adaptive Multi-Resolution Merging

Boosting Monocular Depth Estimation Models to High-Resolution via Content-Adaptive Multi-Resolution Merging This repository contains an implementation

Computational Photography Lab @ SFU 1.1k Jan 2, 2023
Real-Time-Student-Attendence-System - Real Time Student Attendence System

Real-Time-Student-Attendence-System The Student Attendance Management System Pro

Rounak Das 1 Feb 15, 2022
HyperSeg: Patch-wise Hypernetwork for Real-time Semantic Segmentation Official PyTorch Implementation

: We present a novel, real-time, semantic segmentation network in which the encoder both encodes and generates the parameters (weights) of the decoder. Furthermore, to allow maximal adaptivity, the weights at each decoder block vary spatially. For this purpose, we design a new type of hypernetwork, composed of a nested U-Net for drawing higher level context features

Yuval Nirkin 182 Dec 14, 2022
FANet - Real-time Semantic Segmentation with Fast Attention

FANet Real-time Semantic Segmentation with Fast Attention Ping Hu, Federico Perazzi, Fabian Caba Heilbron, Oliver Wang, Zhe Lin, Kate Saenko , Stan Sc

Ping Hu 42 Nov 30, 2022
DFFNet: An IoT-perceptive Dual Feature Fusion Network for General Real-time Semantic Segmentation

DFFNet Paper DFFNet: An IoT-perceptive Dual Feature Fusion Network for General Real-time Semantic Segmentation. Xiangyan Tang, Wenxuan Tu, Keqiu Li, J

null 4 Sep 23, 2022
An image base contains 490 images for learning (400 cars and 90 boats), and another 21 images for testingAn image base contains 490 images for learning (400 cars and 90 boats), and another 21 images for testing

SVM Données Une base d’images contient 490 images pour l’apprentissage (400 voitures et 90 bateaux), et encore 21 images pour fait des tests. Prétrait

Achraf Rahouti 3 Nov 30, 2021
Recall Loss for Semantic Segmentation (This repo implements the paper: Recall Loss for Semantic Segmentation)

Recall Loss for Semantic Segmentation (This repo implements the paper: Recall Loss for Semantic Segmentation) Download Synthia dataset The model uses

null 32 Sep 21, 2022
Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data

Real-ESRGAN Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data Ported from https://github.com/xinntao/Real-ESRGAN Depend

Holy Wu 44 Dec 27, 2022
Real-CUGAN - Real Cascade U-Nets for Anime Image Super Resolution

Real Cascade U-Nets for Anime Image Super Resolution 中文 | English ?? Real-CUGAN

tarsin 111 Dec 28, 2022
Official repository for "Restormer: Efficient Transformer for High-Resolution Image Restoration". SOTA for motion deblurring, image deraining, denoising (Gaussian/real data), and defocus deblurring.

Restormer: Efficient Transformer for High-Resolution Image Restoration Syed Waqas Zamir, Aditya Arora, Salman Khan, Munawar Hayat, Fahad Shahbaz Khan,

Syed Waqas Zamir 906 Dec 30, 2022
Official implement of Paper:A deeply supervised image fusion network for change detection in high resolution bi-temporal remote sening images

A deeply supervised image fusion network for change detection in high resolution bi-temporal remote sensing images 深度监督影像融合网络DSIFN用于高分辨率双时相遥感影像变化检测 Of

Chenxiao Zhang 135 Dec 19, 2022
Edge-oriented Convolution Block for Real-time Super Resolution on Mobile Devices, ACM Multimedia 2021

Codes for ECBSR Edge-oriented Convolution Block for Real-time Super Resolution on Mobile Devices Xindong Zhang, Hui Zeng, Lei Zhang ACM Multimedia 202

xindong zhang 236 Dec 26, 2022
Implementation of CVPR 2020 Dual Super-Resolution Learning for Semantic Segmentation

Dual super-resolution learning for semantic segmentation 2021-01-02 Subpixel Update Happy new year! The 2020-12-29 update of SISR with subpixel conv p

Sam 79 Nov 24, 2022
Implementation for the paper 'YOLO-ReT: Towards High Accuracy Real-time Object Detection on Edge GPUs'

YOLO-ReT This is the original implementation of the paper: YOLO-ReT: Towards High Accuracy Real-time Object Detection on Edge GPUs. Prakhar Ganesh, Ya

null 69 Oct 19, 2022
Semantic Segmentation for Real Point Cloud Scenes via Bilateral Augmentation and Adaptive Fusion (CVPR 2021)

Semantic Segmentation for Real Point Cloud Scenes via Bilateral Augmentation and Adaptive Fusion (CVPR 2021) This repository is for BAAF-Net introduce

null 90 Dec 29, 2022
E2EC: An End-to-End Contour-based Method for High-Quality High-Speed Instance Segmentation

E2EC: An End-to-End Contour-based Method for High-Quality High-Speed Instance Segmentation E2EC: An End-to-End Contour-based Method for High-Quality H

zhangtao 146 Dec 29, 2022
code for paper"A High-precision Semantic Segmentation Method Combining Adversarial Learning and Attention Mechanism"

PyTorch implementation of UAGAN(U-net Attention Generative Adversarial Networks) This repository contains the source code for the paper "A High-precis

Tong 8 Apr 25, 2022