nyh 2accea49e1 高速公路违停检测代码交接 | pirms 6 mēnešiem | |
---|---|---|
__pycache__ | pirms 6 mēnešiem | |
checkpoints2 | pirms 6 mēnešiem | |
data | pirms 6 mēnešiem | |
demo | pirms 6 mēnešiem | |
latency | pirms 6 mēnešiem | |
loss | pirms 6 mēnešiem | |
model_save/pths | pirms 6 mēnešiem | |
models | pirms 6 mēnešiem | |
models666 | pirms 6 mēnešiem | |
models_711 | pirms 6 mēnešiem | |
modules | pirms 6 mēnešiem | |
nets | pirms 6 mēnešiem | |
predict_city | pirms 6 mēnešiem | |
scripts | pirms 6 mēnešiem | |
utils | pirms 6 mēnešiem | |
LICENSE | pirms 6 mēnešiem | |
README.md | pirms 6 mēnešiem | |
cityscapes.py | pirms 6 mēnešiem | |
cityscapes_info.json | pirms 6 mēnešiem | |
class_dict.csv | pirms 6 mēnešiem | |
complexIllegalParking.py | pirms 6 mēnešiem | |
complexIllegalParkingUtilsNewest.py | pirms 6 mēnešiem | |
evaluation.py | pirms 6 mēnešiem | |
evaluation_process.py | pirms 6 mēnešiem | |
heliushuju.py | pirms 6 mēnešiem | |
heliushuju_info.json | pirms 6 mēnešiem | |
heliushuju_process.py | pirms 6 mēnešiem | |
logger.py | pirms 6 mēnešiem | |
logger.pyc | pirms 6 mēnešiem | |
model_predict.py | pirms 6 mēnešiem | |
optimizer_loss.py | pirms 6 mēnešiem | |
predict_img.py | pirms 6 mēnešiem | |
predict_img_buildings.py | pirms 6 mēnešiem | |
predict_iou.py | pirms 6 mēnešiem | |
predict_lunkuo.py | pirms 6 mēnešiem | |
requirements666.txt | pirms 6 mēnešiem | |
train.py | pirms 6 mēnešiem | |
transform.py | pirms 6 mēnešiem |
Mingyuan Fan, Shenqi Lai, Junshi Huang, Xiaoming Wei, Zhenhua Chai, Junfeng Luo, Xiaolin Wei
In CVPR 2021.
Speed-Accuracy performance comparison on the Cityscapes test set
Overview of the STDC Segmentation network
This repository has been trained on Tesla V100. Configurations (e.g batch size, image patch size) may need to be changed on different platforms. Also, for fair competition, we test the inference speed on NVIDIA GTX 1080Ti.
git clone https://github.com/MichaelFan01/STDC-Seg.git
cd STDC-Seg
pip install -r requirements.txt
data
dir. ln -s /path_to_data/cityscapes/gtFine data/gtFine
ln -s /path_to_data/leftImg8bit data/leftImg8bit
Note: Backbone STDCNet813 denotes STDC1, STDCNet1446 denotes STDC2.
export CUDA_VISIBLE_DEVICES=0,1,2
python -m torch.distributed.launch \
--nproc_per_node=3 train.py \
--respath checkpoints/train_STDC1-Seg/ \
--backbone STDCNet813 \
--mode train \
--n_workers_train 12 \
--n_workers_val 1 \
--max_iter 60000 \
--use_boundary_8 True \
--pretrain_path checkpoints/STDCNet813M_73.91.tar
export CUDA_VISIBLE_DEVICES=0,1,2
python -m torch.distributed.launch \
--nproc_per_node=3 train.py \
--respath checkpoints/train_STDC2-Seg/ \
--backbone STDCNet1446 \
--mode train \
--n_workers_train 12 \
--n_workers_val 1 \
--max_iter 60000 \
--use_boundary_8 True \
--pretrain_path checkpoints/STDCNet1446_76.47.tar
We will save the model’s params in model_maxmIOU50.pth for input resolution 512x1024,and model_maxmIOU75.pth for input resolution 768 x 1536.
ImageNet Pretrained STDCNet Weights for training and Cityscapes trained STDC-Seg weights for evaluation:
BaiduYun Link: https://pan.baidu.com/s/1OdMsuQSSiK1EyNs6_KiFIw Password: q7dt
GoogleDrive Link:https://drive.google.com/drive/folders/1wROFwRt8qWHD4jSo8Zu1gp1d6oYJ3ns1?usp=sharing
Here we use our pretrained STDCSeg as an example for the evaluation.
#STDC1-Seg50 mIoU 0.7222
evaluatev0('./checkpoints/STDC1-Seg/model_maxmIOU50.pth', dspth='./data', backbone='STDCNet813', scale=0.5,
use_boundary_2=False, use_boundary_4=False, use_boundary_8=True, use_boundary_16=False)
#STDC1-Seg75 mIoU 0.7450
evaluatev0('./checkpoints/STDC1-Seg/model_maxmIOU75.pth', dspth='./data', backbone='STDCNet813', scale=0.75,
use_boundary_2=False, use_boundary_4=False, use_boundary_8=True, use_boundary_16=False)
#STDC2-Seg50 mIoU 0.7424
evaluatev0('./checkpoints/STDC2-Seg/model_maxmIOU50.pth', dspth='./data', backbone='STDCNet1446', scale=0.5,
use_boundary_2=False, use_boundary_4=False, use_boundary_8=True, use_boundary_16=False)
#STDC2-Seg75 mIoU 0.7704
evaluatev0('./checkpoints/STDC2-Seg/model_maxmIOU75.pth', dspth='./data', backbone='STDCNet1446', scale=0.75,
use_boundary_2=False, use_boundary_4=False, use_boundary_8=True, use_boundary_16=False)
CUDA_VISIBLE_DEVICES=0 python evaluation.py
# STDC1Seg-50 250.4FPS on NVIDIA GTX 1080Ti
backbone = 'STDCNet813'
methodName = 'STDC1-Seg'
inputSize = 512
inputScale = 50
inputDimension = (1, 3, 512, 1024)
# STDC1Seg-75 126.7FPS on NVIDIA GTX 1080Ti
backbone = 'STDCNet813'
methodName = 'STDC1-Seg'
inputSize = 768
inputScale = 75
inputDimension = (1, 3, 768, 1536)
# STDC2Seg-50 188.6FPS on NVIDIA GTX 1080Ti
backbone = 'STDCNet1446'
methodName = 'STDC2-Seg'
inputSize = 512
inputScale = 50
inputDimension = (1, 3, 512, 1024)
# STDC2Seg-75 97.0FPS on NVIDIA GTX 1080Ti
backbone = 'STDCNet1446'
methodName = 'STDC2-Seg'
inputSize = 768
inputScale = 75
inputDimension = (1, 3, 768, 1536)
CUDA_VISIBLE_DEVICES=0 python run_latency.py
@InProceedings{Fan_2021_CVPR,
author = {Fan, Mingyuan and Lai, Shenqi and Huang, Junshi and Wei, Xiaoming and Chai, Zhenhua and Luo, Junfeng and Wei, Xiaolin},
title = {Rethinking BiSeNet for Real-Time Semantic Segmentation},
booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2021},
pages = {9716-9725}
}