Skip to content

Commit 3848196

Browse files
authored
[Other] Update detection example codes using download_model api (PaddlePaddle#613)
update detection example
1 parent 143506b commit 3848196

File tree

15 files changed

+181
-69
lines changed

15 files changed

+181
-69
lines changed

examples/vision/detection/nanodet_plus/python/infer.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ def parse_arguments():
77
import ast
88
parser = argparse.ArgumentParser()
99
parser.add_argument(
10-
"--model", required=True, help="Path of nanodet_plus onnx model.")
10+
"--model", default=None, help="Path of nanodet_plus onnx model.")
1111
parser.add_argument(
12-
"--image", required=True, help="Path of test image file.")
12+
"--image", default=None, help="Path of test image file.")
1313
parser.add_argument(
1414
"--device",
1515
type=str,
@@ -37,13 +37,21 @@ def build_option(args):
3737

3838
args = parse_arguments()
3939

40+
if args.model is None:
41+
model = fd.download_model(name='NanoDetPlus_320')
42+
else:
43+
model = args.model
44+
4045
# 配置runtime,加载模型
4146
runtime_option = build_option(args)
42-
model = fd.vision.detection.NanoDetPlus(
43-
args.model, runtime_option=runtime_option)
47+
model = fd.vision.detection.NanoDetPlus(model, runtime_option=runtime_option)
4448

4549
# 预测图片检测结果
46-
im = cv2.imread(args.image)
50+
if args.image is None:
51+
image = fd.utils.get_detection_test_image()
52+
else:
53+
image = args.image
54+
im = cv2.imread(image)
4755
result = model.predict(im.copy())
4856
print(result)
4957

examples/vision/detection/paddledetection/python/infer_faster_rcnn.py

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ def parse_arguments():
99
parser = argparse.ArgumentParser()
1010
parser.add_argument(
1111
"--model_dir",
12-
required=True,
12+
default=None,
1313
help="Path of PaddleDetection model directory")
1414
parser.add_argument(
15-
"--image", required=True, help="Path of test image file.")
15+
"--image", default=None, help="Path of test image file.")
1616
parser.add_argument(
1717
"--device",
1818
type=str,
@@ -41,17 +41,26 @@ def build_option(args):
4141

4242
args = parse_arguments()
4343

44-
model_file = os.path.join(args.model_dir, "model.pdmodel")
45-
params_file = os.path.join(args.model_dir, "model.pdiparams")
46-
config_file = os.path.join(args.model_dir, "infer_cfg.yml")
44+
if args.model_dir is None:
45+
model_dir = fd.download_model(name='faster_rcnn_r50_vd_fpn_2x_coco')
46+
else:
47+
model_dir = args.model_dir
48+
49+
model_file = os.path.join(model_dir, "model.pdmodel")
50+
params_file = os.path.join(model_dir, "model.pdiparams")
51+
config_file = os.path.join(model_dir, "infer_cfg.yml")
4752

4853
# 配置runtime,加载模型
4954
runtime_option = build_option(args)
5055
model = fd.vision.detection.FasterRCNN(
5156
model_file, params_file, config_file, runtime_option=runtime_option)
5257

5358
# 预测图片检测结果
54-
im = cv2.imread(args.image)
59+
if args.image is None:
60+
image = fd.utils.get_detection_test_image()
61+
else:
62+
image = args.image
63+
im = cv2.imread(image)
5564
result = model.predict(im.copy())
5665
print(result)
5766

examples/vision/detection/paddledetection/python/infer_mask_rcnn.py

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ def parse_arguments():
99
parser = argparse.ArgumentParser()
1010
parser.add_argument(
1111
"--model_dir",
12-
required=True,
12+
default=None,
1313
help="Path of PaddleDetection model directory")
1414
parser.add_argument(
15-
"--image", required=True, help="Path of test image file.")
15+
"--image", default=None, help="Path of test image file.")
1616
parser.add_argument(
1717
"--device",
1818
type=str,
@@ -48,17 +48,26 @@ def build_option(args):
4848

4949
args = parse_arguments()
5050

51-
model_file = os.path.join(args.model_dir, "model.pdmodel")
52-
params_file = os.path.join(args.model_dir, "model.pdiparams")
53-
config_file = os.path.join(args.model_dir, "infer_cfg.yml")
51+
if args.model_dir is None:
52+
model_dir = fd.download_model(name='mask_rcnn_r50_1x_coco')
53+
else:
54+
model_dir = args.model_dir
55+
56+
model_file = os.path.join(model_dir, "model.pdmodel")
57+
params_file = os.path.join(model_dir, "model.pdiparams")
58+
config_file = os.path.join(model_dir, "infer_cfg.yml")
5459

5560
# 配置runtime,加载模型
5661
runtime_option = build_option(args)
5762
model = fd.vision.detection.MaskRCNN(
5863
model_file, params_file, config_file, runtime_option=runtime_option)
5964

6065
# 预测图片检测结果
61-
im = cv2.imread(args.image)
66+
if args.image is None:
67+
image = fd.utils.get_detection_test_image()
68+
else:
69+
image = args.image
70+
im = cv2.imread(image)
6271
result = model.predict(im.copy())
6372
print(result)
6473

examples/vision/detection/paddledetection/python/infer_picodet.py

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ def parse_arguments():
99
parser = argparse.ArgumentParser()
1010
parser.add_argument(
1111
"--model_dir",
12-
required=True,
12+
default=None,
1313
help="Path of PaddleDetection model directory")
1414
parser.add_argument(
15-
"--image", required=True, help="Path of test image file.")
15+
"--image", default=None, help="Path of test image file.")
1616
parser.add_argument(
1717
"--device",
1818
type=str,
@@ -39,17 +39,26 @@ def build_option(args):
3939

4040
args = parse_arguments()
4141

42-
model_file = os.path.join(args.model_dir, "model.pdmodel")
43-
params_file = os.path.join(args.model_dir, "model.pdiparams")
44-
config_file = os.path.join(args.model_dir, "infer_cfg.yml")
42+
if args.model_dir is None:
43+
model_dir = fd.download_model(name='picodet_l_320_coco_lcnet')
44+
else:
45+
model_dir = args.model_dir
46+
47+
model_file = os.path.join(model_dir, "model.pdmodel")
48+
params_file = os.path.join(model_dir, "model.pdiparams")
49+
config_file = os.path.join(model_dir, "infer_cfg.yml")
4550

4651
# 配置runtime,加载模型
4752
runtime_option = build_option(args)
4853
model = fd.vision.detection.PicoDet(
4954
model_file, params_file, config_file, runtime_option=runtime_option)
5055

5156
# 预测图片检测结果
52-
im = cv2.imread(args.image)
57+
if args.image is None:
58+
image = fd.utils.get_detection_test_image()
59+
else:
60+
image = args.image
61+
im = cv2.imread(image)
5362
result = model.predict(im.copy())
5463
print(result)
5564

examples/vision/detection/paddledetection/python/infer_ppyolo.py

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ def parse_arguments():
99
parser = argparse.ArgumentParser()
1010
parser.add_argument(
1111
"--model_dir",
12-
required=True,
12+
default=None,
1313
help="Path of PaddleDetection model directory")
1414
parser.add_argument(
15-
"--image", required=True, help="Path of test image file.")
15+
"--image", default=None, help="Path of test image file.")
1616
parser.add_argument(
1717
"--device",
1818
type=str,
@@ -41,17 +41,26 @@ def build_option(args):
4141

4242
args = parse_arguments()
4343

44-
model_file = os.path.join(args.model_dir, "model.pdmodel")
45-
params_file = os.path.join(args.model_dir, "model.pdiparams")
46-
config_file = os.path.join(args.model_dir, "infer_cfg.yml")
44+
if args.model_dir is None:
45+
model_dir = fd.download_model(name='ppyolo_r50vd_dcn_1x_coco')
46+
else:
47+
model_dir = args.model_dir
48+
49+
model_file = os.path.join(model_dir, "model.pdmodel")
50+
params_file = os.path.join(model_dir, "model.pdiparams")
51+
config_file = os.path.join(model_dir, "infer_cfg.yml")
4752

4853
# 配置runtime,加载模型
4954
runtime_option = build_option(args)
5055
model = fd.vision.detection.PPYOLO(
5156
model_file, params_file, config_file, runtime_option=runtime_option)
5257

5358
# 预测图片检测结果
54-
im = cv2.imread(args.image)
59+
if args.image is None:
60+
image = fd.utils.get_detection_test_image()
61+
else:
62+
image = args.image
63+
im = cv2.imread(image)
5564
result = model.predict(im.copy())
5665
print(result)
5766

examples/vision/detection/paddledetection/python/infer_ppyoloe.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
import os
33

44
import fastdeploy as fd
5-
import fastdeploy.utils
65

76

87
def parse_arguments():

examples/vision/detection/paddledetection/python/infer_yolov3.py

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ def parse_arguments():
99
parser = argparse.ArgumentParser()
1010
parser.add_argument(
1111
"--model_dir",
12-
required=True,
12+
default=None,
1313
help="Path of PaddleDetection model directory")
1414
parser.add_argument(
15-
"--image", required=True, help="Path of test image file.")
15+
"--image", default=None, help="Path of test image file.")
1616
parser.add_argument(
1717
"--device",
1818
type=str,
@@ -39,17 +39,26 @@ def build_option(args):
3939

4040
args = parse_arguments()
4141

42-
model_file = os.path.join(args.model_dir, "model.pdmodel")
43-
params_file = os.path.join(args.model_dir, "model.pdiparams")
44-
config_file = os.path.join(args.model_dir, "infer_cfg.yml")
42+
if args.model_dir is None:
43+
model_dir = fd.download_model(name='yolov3_darknet53_270e_coco')
44+
else:
45+
model_dir = args.model_dir
46+
47+
model_file = os.path.join(model_dir, "model.pdmodel")
48+
params_file = os.path.join(model_dir, "model.pdiparams")
49+
config_file = os.path.join(model_dir, "infer_cfg.yml")
4550

4651
# 配置runtime,加载模型
4752
runtime_option = build_option(args)
4853
model = fd.vision.detection.YOLOv3(
4954
model_file, params_file, config_file, runtime_option=runtime_option)
5055

5156
# 预测图片检测结果
52-
im = cv2.imread(args.image)
57+
if args.image is None:
58+
image = fd.utils.get_detection_test_image()
59+
else:
60+
image = args.image
61+
im = cv2.imread(image)
5362
result = model.predict(im.copy())
5463
print(result)
5564

examples/vision/detection/paddledetection/python/infer_yolox.py

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ def parse_arguments():
99
parser = argparse.ArgumentParser()
1010
parser.add_argument(
1111
"--model_dir",
12-
required=True,
12+
default=None,
1313
help="Path of PaddleDetection model directory")
1414
parser.add_argument(
15-
"--image", required=True, help="Path of test image file.")
15+
"--image", default=None, help="Path of test image file.")
1616
parser.add_argument(
1717
"--device",
1818
type=str,
@@ -39,17 +39,26 @@ def build_option(args):
3939

4040
args = parse_arguments()
4141

42-
model_file = os.path.join(args.model_dir, "model.pdmodel")
43-
params_file = os.path.join(args.model_dir, "model.pdiparams")
44-
config_file = os.path.join(args.model_dir, "infer_cfg.yml")
42+
if args.model_dir is None:
43+
model_dir = fd.download_model(name='yolox_s_300e_coco')
44+
else:
45+
model_dir = args.model_dir
46+
47+
model_file = os.path.join(model_dir, "model.pdmodel")
48+
params_file = os.path.join(model_dir, "model.pdiparams")
49+
config_file = os.path.join(model_dir, "infer_cfg.yml")
4550

4651
# 配置runtime,加载模型
4752
runtime_option = build_option(args)
4853
model = fd.vision.detection.PaddleYOLOX(
4954
model_file, params_file, config_file, runtime_option=runtime_option)
5055

5156
# 预测图片检测结果
52-
im = cv2.imread(args.image)
57+
if args.image is None:
58+
image = fd.utils.get_detection_test_image()
59+
else:
60+
image = args.image
61+
im = cv2.imread(image)
5362
result = model.predict(im.copy())
5463
print(result)
5564

examples/vision/detection/scaledyolov4/python/infer.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ def parse_arguments():
77
import ast
88
parser = argparse.ArgumentParser()
99
parser.add_argument(
10-
"--model", required=True, help="Path of scaledyolov4 onnx model.")
10+
"--model", default=None, help="Path of scaledyolov4 onnx model.")
1111
parser.add_argument(
12-
"--image", required=True, help="Path of test image file.")
12+
"--image", default=None, help="Path of test image file.")
1313
parser.add_argument(
1414
"--device",
1515
type=str,
@@ -37,13 +37,21 @@ def build_option(args):
3737

3838
args = parse_arguments()
3939

40+
if args.model is None:
41+
model = fd.download_model(name='ScaledYOLOv4-P5')
42+
else:
43+
model = args.model
44+
4045
# 配置runtime,加载模型
4146
runtime_option = build_option(args)
42-
model = fd.vision.detection.ScaledYOLOv4(
43-
args.model, runtime_option=runtime_option)
47+
model = fd.vision.detection.ScaledYOLOv4(model, runtime_option=runtime_option)
4448

4549
# 预测图片检测结果
46-
im = cv2.imread(args.image)
50+
if args.image is None:
51+
image = fd.utils.get_detection_test_image()
52+
else:
53+
image = args.image
54+
im = cv2.imread(image)
4755
result = model.predict(im.copy())
4856
print(result)
4957

examples/vision/detection/yolor/python/infer.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import cv2
22

33
import fastdeploy as fd
4-
import fastdeploy.utils
54

65

76
def parse_arguments():

0 commit comments

Comments
 (0)