Простые в использовании и настраиваемые модели семантической сегментации SOTA с обильными наборами данных в Pytorch

Многое было изменено с 2022 года, в настоящее время существуют даже модели сегментации открытого мира (сегмент что угодно). Тем не менее, традиционные модели сегментации по -прежнему востребованы для высокой точности и пользовательских вариантов использования. Этот репо будет обновлен в соответствии с новой версией Pytorch, обновленными моделями и документациями для использования с пользовательским набором данных и т. Д.
Ожидаемая дата выпуска -> май 2024 г.
Запланированные функции:
Текущие функции будут отброшены:
Поддерживаемые основы:
Поддерживаемые головы/методы:
Поддерживаемые автономные модели:
Поддерживаемые модули:
Обратитесь к моделям для критериев и доступных предварительно обученных моделей.
И проверьте магистральные кости на основы поддержки.
Примечания: Большинство методов не имеют предварительно обученных моделей. Очень сложно объединить различные модели с предварительно обученными весами в одном хранилище и ограниченным ресурсом для повторного обучения.
Распокация сцены:
Человеческий анализ:
Расположение лица:
Другие:
Обратитесь к наборам данных для получения более подробной информации и подготовки наборов данных.
Проверьте записную книжку здесь, чтобы проверить эффекты увеличения.
Преобразования на уровне пикселей:
Преобразования пространственного уровня:
Затем клонируйте репо и установите проект с помощью:
$ git clone https://github.com/sithu31296/semantic-segmentation
$ cd semantic-segmentation
$ pip install -e . Создайте файл конфигурации в configs . Пример конфигурации для набора данных ADE20K можно найти здесь. Затем отредактируйте поля, которые, по вашему мнению, если это необходимо. Этот файл конфигурации необходим для всех сценариев обучения, оценки и прогнозирования.
Тренироваться с одним графическим процессором:
$ python tools/train.py --cfg configs/CONFIG_FILE.yaml Чтобы тренироваться с несколькими графическими процессорами, установите поле DDP в файле config в true и запустите следующее:
$ python -m torch.distributed.launch --nproc_per_node=2 --use_env tools/train.py --cfg configs/ < CONFIG_FILE_NAME > .yaml Обязательно установите MODEL_PATH файла конфигурации в свой учебный каталог модели.
$ python tools/val.py --cfg configs/ < CONFIG_FILE_NAME > .yaml Чтобы оценить с помощью многомасштабного и FLIP, изменение ENABLE поля в MSF в true и запустите ту же команду, что и выше.
Чтобы сделать вывод, отредактируйте параметры файла конфигурации снизу.
MODEL >> NAME и BACKBONE на желаемую предварительную модель.DATASET >> NAME на имя набора данных в зависимости от предварительно проведенной модели.TEST >> MODEL_PATH для предварительно подготовленных весов модели тестирования.TEST >> FILE на путь папки с файлом или изображением, который вы хотите проверить.SAVE_DIR . # # example using ade20k pretrained models
$ python tools/infer.py --cfg configs/ade20k.yamlПример результатов теста (Segformer-B2):

Чтобы преобразовать в Onnx и Coreml, запустите:
$ python tools/export.py --cfg configs/ < CONFIG_FILE_NAME > .yamlЧтобы преобразовать в OpenVino и Tflite, см. TORCH_OPTIMIZE.
# # ONNX Inference
$ python scripts/onnx_infer.py --model < ONNX_MODEL_PATH > --img-path < TEST_IMAGE_PATH >
# # OpenVINO Inference
$ python scripts/openvino_infer.py --model < OpenVINO_MODEL_PATH > --img-path < TEST_IMAGE_PATH >
# # TFLite Inference
$ python scripts/tflite_infer.py --model < TFLite_MODEL_PATH > --img-path < TEST_IMAGE_PATH > @article{xie2021segformer,
title={SegFormer: Simple and Efficient Design for Semantic Segmentation with Transformers},
author={Xie, Enze and Wang, Wenhai and Yu, Zhiding and Anandkumar, Anima and Alvarez, Jose M and Luo, Ping},
journal={arXiv preprint arXiv:2105.15203},
year={2021}
}
@misc{xiao2018unified,
title={Unified Perceptual Parsing for Scene Understanding},
author={Tete Xiao and Yingcheng Liu and Bolei Zhou and Yuning Jiang and Jian Sun},
year={2018},
eprint={1807.10221},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
@article{hong2021deep,
title={Deep Dual-resolution Networks for Real-time and Accurate Semantic Segmentation of Road Scenes},
author={Hong, Yuanduo and Pan, Huihui and Sun, Weichao and Jia, Yisong},
journal={arXiv preprint arXiv:2101.06085},
year={2021}
}
@misc{zhang2021rest,
title={ResT: An Efficient Transformer for Visual Recognition},
author={Qinglong Zhang and Yubin Yang},
year={2021},
eprint={2105.13677},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
@misc{huang2021fapn,
title={FaPN: Feature-aligned Pyramid Network for Dense Image Prediction},
author={Shihua Huang and Zhichao Lu and Ran Cheng and Cheng He},
year={2021},
eprint={2108.07058},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
@misc{wang2021pvtv2,
title={PVTv2: Improved Baselines with Pyramid Vision Transformer},
author={Wenhai Wang and Enze Xie and Xiang Li and Deng-Ping Fan and Kaitao Song and Ding Liang and Tong Lu and Ping Luo and Ling Shao},
year={2021},
eprint={2106.13797},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
@article{Liu2021PSA,
title={Polarized Self-Attention: Towards High-quality Pixel-wise Regression},
author={Huajun Liu and Fuqiang Liu and Xinyi Fan and Dong Huang},
journal={Arxiv Pre-Print arXiv:2107.00782 },
year={2021}
}
@misc{chao2019hardnet,
title={HarDNet: A Low Memory Traffic Network},
author={Ping Chao and Chao-Yang Kao and Yu-Shan Ruan and Chien-Hsiang Huang and Youn-Long Lin},
year={2019},
eprint={1909.00948},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
@inproceedings{sfnet,
title={Semantic Flow for Fast and Accurate Scene Parsing},
author={Li, Xiangtai and You, Ansheng and Zhu, Zhen and Zhao, Houlong and Yang, Maoke and Yang, Kuiyuan and Tong, Yunhai},
booktitle={ECCV},
year={2020}
}
@article{Li2020SRNet,
title={Towards Efficient Scene Understanding via Squeeze Reasoning},
author={Xiangtai Li and Xia Li and Ansheng You and Li Zhang and Guang-Liang Cheng and Kuiyuan Yang and Y. Tong and Zhouchen Lin},
journal={ArXiv},
year={2020},
volume={abs/2011.03308}
}
@ARTICLE{Yucondnet21,
author={Yu, Changqian and Shao, Yuanjie and Gao, Changxin and Sang, Nong},
journal={IEEE Signal Processing Letters},
title={CondNet: Conditional Classifier for Scene Segmentation},
year={2021},
volume={28},
number={},
pages={758-762},
doi={10.1109/LSP.2021.3070472}
}
@misc{yan2022lawin,
title={Lawin Transformer: Improving Semantic Segmentation Transformer with Multi-Scale Representations via Large Window Attention},
author={Haotian Yan and Chuang Zhang and Ming Wu},
year={2022},
eprint={2201.01615},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
@misc{yu2021metaformer,
title={MetaFormer is Actually What You Need for Vision},
author={Weihao Yu and Mi Luo and Pan Zhou and Chenyang Si and Yichen Zhou and Xinchao Wang and Jiashi Feng and Shuicheng Yan},
year={2021},
eprint={2111.11418},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
@misc{wightman2021resnet,
title={ResNet strikes back: An improved training procedure in timm},
author={Ross Wightman and Hugo Touvron and Hervé Jégou},
year={2021},
eprint={2110.00476},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
@misc{liu2022convnet,
title={A ConvNet for the 2020s},
author={Zhuang Liu and Hanzi Mao and Chao-Yuan Wu and Christoph Feichtenhofer and Trevor Darrell and Saining Xie},
year={2022},
eprint={2201.03545},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
@misc{li2022uniformer,
title={UniFormer: Unifying Convolution and Self-attention for Visual Recognition},
author={Kunchang Li and Yali Wang and Junhao Zhang and Peng Gao and Guanglu Song and Yu Liu and Hongsheng Li and Yu Qiao},
year={2022},
eprint={2201.09450},
archivePrefix={arXiv},
primaryClass={cs.CV}
}