Skip to content

Commit

Permalink
[Other] Update example codes using download_model api (PaddlePaddle#486)
Browse files Browse the repository at this point in the history
* update example codes using download_model api

* add resource files to repo

* add resource files to repo

* fix

* reduce unused lib

* fix
  • Loading branch information
rainyfly authored Nov 11, 2022
1 parent b0a30a7 commit 0d0389f
Show file tree
Hide file tree
Showing 6 changed files with 63 additions and 12 deletions.
25 changes: 18 additions & 7 deletions examples/vision/detection/paddledetection/python/infer_ppyoloe.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
import fastdeploy as fd
import cv2
import os

import fastdeploy as fd
import fastdeploy.utils


def parse_arguments():
import argparse
import ast
parser = argparse.ArgumentParser()
parser.add_argument(
"--model_dir",
required=True,
default=None,
help="Path of PaddleDetection model directory")
parser.add_argument(
"--image", required=True, help="Path of test image file.")
"--image", default=None, help="Path of test image file.")
parser.add_argument(
"--device",
type=str,
Expand All @@ -39,17 +41,26 @@ def build_option(args):

args = parse_arguments()

model_file = os.path.join(args.model_dir, "model.pdmodel")
params_file = os.path.join(args.model_dir, "model.pdiparams")
config_file = os.path.join(args.model_dir, "infer_cfg.yml")
if args.model_dir is None:
model_dir = fd.download_model(name='ppyoloe_crn_l_300e_coco')
else:
model_dir = args.model_dir

model_file = os.path.join(model_dir, "model.pdmodel")
params_file = os.path.join(model_dir, "model.pdiparams")
config_file = os.path.join(model_dir, "infer_cfg.yml")

# 配置runtime,加载模型
runtime_option = build_option(args)
model = fd.vision.detection.PPYOLOE(
model_file, params_file, config_file, runtime_option=runtime_option)

# 预测图片检测结果
im = cv2.imread(args.image)
if args.image is None:
image = fd.utils.get_detection_test_image()
else:
image = args.image
im = cv2.imread(image)
result = model.predict(im.copy())
print(result)

Expand Down
22 changes: 17 additions & 5 deletions examples/vision/detection/yolor/python/infer.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
import fastdeploy as fd
import cv2

import fastdeploy as fd
import fastdeploy.utils


def parse_arguments():
import argparse
import ast
parser = argparse.ArgumentParser()
parser.add_argument(
"--model", required=True, help="Path of yolor onnx model.")
"--model", default=None, help="Path of yolor onnx model.")
parser.add_argument(
"--image", required=True, help="Path of test image file.")
"--image", default=None, help="Path of test image file.")
parser.add_argument(
"--device",
type=str,
Expand Down Expand Up @@ -39,10 +41,20 @@ def build_option(args):

# 配置runtime,加载模型
runtime_option = build_option(args)
model = fd.vision.detection.YOLOR(args.model, runtime_option=runtime_option)
if args.model is None:
model = fd.download_model(name='YOLOR-W6')
else:
model = args.model

model = fd.vision.detection.YOLOR(model, runtime_option=runtime_option)

# 预测图片检测结果
im = cv2.imread(args.image)
if args.image is None:
image = fd.utils.get_detection_test_image()
else:
image = args.image

im = cv2.imread(image)
result = model.predict(im.copy())
print(result)

Expand Down
1 change: 1 addition & 0 deletions python/fastdeploy/download.py
Original file line number Diff line number Diff line change
Expand Up @@ -245,5 +245,6 @@ def download_model(name: str,
except FileExistsError:
pass
print('Successfully download model at path: {}'.format(fullpath))
return fullpath
else:
print('ERROR: Could not find a model named {}'.format(name))
2 changes: 2 additions & 0 deletions python/fastdeploy/utils/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,6 @@
# 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.

from .profile import profile
from .example_resource import get_detection_test_image
24 changes: 24 additions & 0 deletions python/fastdeploy/utils/example_resource.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# 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.download as download
import fastdeploy.utils.hub_env as hubenv


def get_detection_test_image(path=None):
if path is None:
path = hubenv.RESOURCE_HOME
fullpath = download.download(
url='https://bj.bcebos.com/paddlehub/fastdeploy/example/detection_test_image.jpg',
path=path)
return fullpath
1 change: 1 addition & 0 deletions python/fastdeploy/utils/hub_env.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,4 @@ def _get_sub_home(directory):
HUB_HOME = _get_hub_home()
MODEL_HOME = _get_sub_home('models')
CONF_HOME = _get_sub_home('conf')
RESOURCE_HOME = _get_sub_home('resources')

0 comments on commit 0d0389f

Please sign in to comment.