mirror of
https://github.com/PaddlePaddle/FastDeploy.git
synced 2025-10-06 00:57:33 +08:00

* 11-02/14:35 * 新增输入数据format错误判断 * 优化推理过程,减少内存分配次数 * 支持多输入rknn模型 * rknn模型输出shape为三维时,输出将被强制对齐为4纬。现在将直接抹除rknn补充的shape,方便部分对输出shape进行判断的模型进行正确的后处理。 * 11-03/17:25 * 支持导出多输入RKNN模型 * 更新各种文档 * ppseg改用Fastdeploy中的模型进行转换 * 11-03/17:25 * 新增开源头 * 11-03/21:48 * 删除无用debug代码,补充注释
62 lines
1.7 KiB
Python
62 lines
1.7 KiB
Python
# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.
|
||
#
|
||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||
# you may not use this file except in compliance with the License.
|
||
# You may obtain a copy of the License at
|
||
#
|
||
# http://www.apache.org/licenses/LICENSE-2.0
|
||
#
|
||
# Unless required by applicable law or agreed to in writing, software
|
||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
# See the License for the specific language governing permissions and
|
||
# limitations under the License.
|
||
import fastdeploy as fd
|
||
import cv2
|
||
import os
|
||
|
||
|
||
def parse_arguments():
|
||
import argparse
|
||
import ast
|
||
parser = argparse.ArgumentParser()
|
||
parser.add_argument(
|
||
"--model_file", required=True, help="Path of PaddleSeg model.")
|
||
parser.add_argument(
|
||
"--config_file", required=True, help="Path of PaddleSeg config.")
|
||
parser.add_argument(
|
||
"--image", type=str, required=True, help="Path of test image file.")
|
||
return parser.parse_args()
|
||
|
||
|
||
def build_option(args):
|
||
option = fd.RuntimeOption()
|
||
option.use_rknpu2()
|
||
return option
|
||
|
||
|
||
args = parse_arguments()
|
||
|
||
# 配置runtime,加载模型
|
||
runtime_option = build_option(args)
|
||
model_file = args.model_file
|
||
params_file = ""
|
||
config_file = args.config_file
|
||
model = fd.vision.segmentation.PaddleSegModel(
|
||
model_file,
|
||
params_file,
|
||
config_file,
|
||
runtime_option=runtime_option,
|
||
model_format=fd.ModelFormat.RKNN)
|
||
|
||
model.disable_normalize_and_permute()
|
||
|
||
# 预测图片分割结果
|
||
im = cv2.imread(args.image)
|
||
result = model.predict(im.copy())
|
||
print(result)
|
||
|
||
# 可视化结果
|
||
vis_im = fd.vision.vis_segmentation(im, result, weight=0.5)
|
||
cv2.imwrite("vis_img.png", vis_im)
|