返回模型
说明文档
SemanticFPN 模型(在 cityscapes 上训练)
SemanticFPN 是一个概念简单但有效的全景分割基线模型,在 cityscapes 数据集上训练。该方法以带有 FPN 的 Mask R-CNN 为基础,添加了一个轻量级的语义分割分支用于密集像素预测。该方法由 Kirillov, Alexander 等人在 2019 年的论文 Panoptic Feature Pyramid Networks 中提出。
我们开发了一个可由 AMD Ryzen AI 支持的改进版本。
模型描述
SemanticFPN 是一个统一实例分割和语义分割任务的单网络模型。该网络通过在流行的实例分割方法 Mask R-CNN 上添加一个使用共享特征金字塔网络(FPN)骨干的语义分割分支而设计。这个简单的基线不仅在实例分割方面保持有效,而且为语义分割提供了一种轻量级、高性能的方法。它是这两个任务的稳健且准确的基线,可以作为未来全景分割研究的强基线。
预期用途与限制
您可以使用原始模型进行图像分割。请查看 模型中心 以查找所有可用的 SemanticFPN 模型。
如何使用
安装
按照 Ryzen AI 安装指南 为 Ryzen AI 准备环境。 运行以下脚本安装此模型的依赖项。
pip install -r requirements.txt
数据准备(可选:用于精度评估)
- 下载 cityscapes 数据集
- 真值文件夹:gtFine_trainvaltest.zip [241MB]
- 图像文件夹:leftImg8bit_trainvaltest.zip [11GB]
- 按以下方式组织数据集目录:
└── data
└── cityscapes
├── leftImg8bit
| ├── train
| └── val
└── gtFine
├── train
└── val
测试与评估
- 来自
infer_onnx.py的代码片段,展示如何使用
parser = argparse.ArgumentParser(description='SemanticFPN model')
parser.add_argument('--onnx_path', type=str, default='FPN_int_NHWC.onnx')
parser.add_argument('--save_path', type=str, default='./data/demo_results/senmatic_results.png')
parser.add_argument('--input_path', type=str, default='data/cityscapes/cityscapes/leftImg8bit/test/bonn/bonn_000000_000019_leftImg8bit.png')
parser.add_argument('--ipu', action='store_true',
help='use ipu')
parser.add_argument('--provider_config', type=str, default=None,
help='provider config path')
args = parser.parse_args()
if args.ipu:
providers = ["VitisAIExecutionProvider"]
provider_options = [{"config_file": args.provider_config}]
else:
providers = ['CPUExecutionProvider']
provider_options = None
onnx_path = args.onnx_path
input_img = build_img(args)
session = onnxruntime.InferenceSession(onnx_path, providers=providers, provider_options=provider_options)
ort_input = {session.get_inputs()[0].name: input_img.cpu().numpy()}
ort_output = session.run(None, ort_input)[0]
if isinstance(ort_output, (tuple, list)):
ort_output = ort_output[0]
output = ort_output[0].transpose(1, 2, 0)
seg_pred = np.asarray(np.argmax(output, axis=2), dtype=np.uint8)
color_mask = colorize_mask(seg_pred)
color_mask.save(args.save_path)
- 对单张图像运行推理
python infer_onnx.py --onnx_path FPN_int_NHWC.onnx --input_path /Path/To/Your/Image --ipu --provider_config Path/To/vaip_config.json
- 测试量化模型的精度
python test_onnx.py --onnx_path FPN_int_NHWC.onnx --dataset citys --test-folder ./data/cityscapes --crop-size 256 --ipu --provider_config Path/To/vaip_config.json
性能
| 模型 | 输入尺寸 | FLOPs | Cityscapes 验证集 mIoU |
|---|---|---|---|
| SemanticFPN(ResNet18) | 256x512 | 10G | 62.9% |
| 模型 | 输入尺寸 | FLOPs | Cityscapes 验证集 INT8 mIoU |
|---|---|---|---|
| SemanticFPN(ResNet18) | 256x512 | 10G | 62.5% |
@inproceedings{kirillov2019panoptic,
title={Panoptic feature pyramid networks},
author={Kirillov, Alexander and Girshick, Ross and He, Kaiming and Doll{\'a}r, Piotr},
booktitle={Proceedings of the IEEE/CVF conference on computer vision and pattern recognition},
pages={6399--6408},
year={2019}
}
amd/SemanticFPN
作者 amd
↓ 0
♥ 1
创建时间: 2023-12-04 16:30:08+00:00
更新时间: 2024-01-12 03:54:37+00:00
在 Hugging Face 上查看文件 (10)
.gitattributes
FPN_int_NHWC.onnx
ONNX
README.md
datasets/__init__.py
datasets/base.py
datasets/cityscapes.py
datasets/utils.py
infer_onnx.py
requirements.txt
test_onnx.py