Modelos de segmentación semántica SOTA fácil de usar y personalizables con abundantes conjuntos de datos en Pytorch

Se ha cambiado mucho desde 2022, hoy en día hay incluso modelos de segmentación del mundo abierto (segmento de cualquier cosa). Sin embargo, los modelos de segmentación tradicionales todavía tienen la demanda de casos de alta precisión y uso personalizado. Este repositorio se actualizará de acuerdo con la nueva versión de Pytorch, modelos actualizados y documentos sobre cómo usar con un conjunto de datos personalizado, etc.
Fecha de lanzamiento esperada -> mayo de 2024
Características planificadas:
Las características actuales se descartarán:
Columna vertebral soportada:
Cabezas/métodos compatibles:
Modelos independientes compatibles:
Módulos compatibles:
Consulte los modelos para puntos de referencia y modelos previamente capacitados disponibles.
Y verifique las columnas de los bocanes de apoyo.
Notas: La mayoría de los métodos no tienen modelos previamente capacitados. Es muy difícil combinar diferentes modelos con pesos previamente capacitados en un repositorio y un recurso limitado para volver a entrenarme.
Analización de la escena:
Analizador humano:
Analización de la cara:
Otros:
Consulte los conjuntos de datos para obtener más detalles y preparación de conjuntos de datos.
Consulte el cuaderno aquí para probar los efectos de aumento.
Transformaciones de nivel de píxel:
Transformaciones de nivel espacial:
Luego, clone el repositorio e instale el proyecto con:
$ git clone https://github.com/sithu31296/semantic-segmentation
$ cd semantic-segmentation
$ pip install -e . Cree un archivo de configuración en configs . La configuración de muestra para el conjunto de datos ADE20K se puede encontrar aquí. Luego edite los campos que piense si es necesario. Este archivo de configuración es necesario para todos los scripts de capacitación, evaluación y predicción.
Para entrenar con una sola GPU:
$ python tools/train.py --cfg configs/CONFIG_FILE.yaml Para entrenar con múltiples GPU, configure el campo DDP en el archivo de configuración en true y ejecute lo siguiente:
$ python -m torch.distributed.launch --nproc_per_node=2 --use_env tools/train.py --cfg configs/ < CONFIG_FILE_NAME > .yaml Asegúrese de establecer MODEL_PATH del archivo de configuración en su directorio de modelos capacitado.
$ python tools/val.py --cfg configs/ < CONFIG_FILE_NAME > .yaml Para evaluar con múltiples escala y FLIP, cambie el campo ENABLE en MSF a true y ejecute el mismo comando que el anterior.
Para hacer una inferencia, edite los parámetros del archivo de configuración desde abajo.
MODEL >> NAME y BACKBONE a su modelo de pretrado deseado.DATASET >> NAME al nombre del conjunto de datos dependiendo del modelo previamente petrano.TEST >> MODEL_PATH a los pesos previos al año del modelo de prueba.TEST >> FILE a la ruta de la carpeta de archivo o imagen que desea probar.SAVE_DIR . # # example using ade20k pretrained models
$ python tools/infer.py --cfg configs/ade20k.yamlResultados de prueba de ejemplo (Segformer-B2):

Para convertir a ONNX y Coreml, ejecute:
$ python tools/export.py --cfg configs/ < CONFIG_FILE_NAME > .yamlPara convertir a OpenVino y Tflite, vea 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}
}