|
|
|
@ -770,13 +770,10 @@ def load_predictor(model_dir,
|
|
|
|
|
precision_mode=precision_map[run_mode],
|
|
|
|
|
use_static=False,
|
|
|
|
|
use_calib_mode=trt_calib_mode)
|
|
|
|
|
if FLAGS.collect_trt_shape_info:
|
|
|
|
|
config.collect_shape_range_info(FLAGS.tuned_trt_shape_file)
|
|
|
|
|
elif os.path.exists(FLAGS.tuned_trt_shape_file):
|
|
|
|
|
print(f'Use dynamic shape file: '
|
|
|
|
|
f'{FLAGS.tuned_trt_shape_file} for TRT...')
|
|
|
|
|
config.enable_tuned_tensorrt_dynamic_shape(
|
|
|
|
|
FLAGS.tuned_trt_shape_file, True)
|
|
|
|
|
if os.path.exists('shape_range_info.pbtxt'):
|
|
|
|
|
print('Use dynamic shape file: shape_range_info.pbtxt for TRT...')
|
|
|
|
|
config.enable_tuned_tensorrt_dynamic_shape(
|
|
|
|
|
'shape_range_info.pbtxt', True)
|
|
|
|
|
|
|
|
|
|
if use_dynamic_shape:
|
|
|
|
|
min_input_shape = {
|
|
|
|
@ -849,20 +846,10 @@ def visualize(image_list, result, labels, output_dir='output/', threshold=0.5):
|
|
|
|
|
print("save result to: " + out_path)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def print_arguments(args):
|
|
|
|
|
print('----------- Running Arguments -----------')
|
|
|
|
|
for arg, value in sorted(vars(args).items()):
|
|
|
|
|
print('%s: %s' % (arg, value))
|
|
|
|
|
print('------------------------------------------')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Pipeline(object):
|
|
|
|
|
|
|
|
|
|
def __init__(self, model_dir):
|
|
|
|
|
if FLAGS.use_fd_format:
|
|
|
|
|
deploy_file = os.path.join(model_dir, 'inference.yml')
|
|
|
|
|
else:
|
|
|
|
|
deploy_file = os.path.join(model_dir, 'infer_cfg.yml')
|
|
|
|
|
deploy_file = os.path.join(model_dir, 'infer_cfg.yml')
|
|
|
|
|
with open(deploy_file) as f:
|
|
|
|
|
yml_conf = yaml.safe_load(f)
|
|
|
|
|
arch = yml_conf['arch']
|
|
|
|
@ -876,40 +863,27 @@ class Pipeline(object):
|
|
|
|
|
|
|
|
|
|
self.detector = eval(detector_func)(
|
|
|
|
|
model_dir,
|
|
|
|
|
device=FLAGS.device,
|
|
|
|
|
run_mode=FLAGS.run_mode,
|
|
|
|
|
batch_size=FLAGS.batch_size,
|
|
|
|
|
trt_min_shape=FLAGS.trt_min_shape,
|
|
|
|
|
trt_max_shape=FLAGS.trt_max_shape,
|
|
|
|
|
trt_opt_shape=FLAGS.trt_opt_shape,
|
|
|
|
|
trt_calib_mode=FLAGS.trt_calib_mode,
|
|
|
|
|
cpu_threads=FLAGS.cpu_threads,
|
|
|
|
|
enable_mkldnn=FLAGS.enable_mkldnn,
|
|
|
|
|
enable_mkldnn_bfloat16=FLAGS.enable_mkldnn_bfloat16,
|
|
|
|
|
threshold=FLAGS.threshold,
|
|
|
|
|
output_dir=FLAGS.output_dir,
|
|
|
|
|
use_fd_format=FLAGS.use_fd_format)
|
|
|
|
|
device='GPU',
|
|
|
|
|
run_mode='paddle',
|
|
|
|
|
batch_size=1,
|
|
|
|
|
trt_min_shape=1,
|
|
|
|
|
trt_max_shape=1280,
|
|
|
|
|
trt_opt_shape=640,
|
|
|
|
|
trt_calib_mode=False,
|
|
|
|
|
cpu_threads=1,
|
|
|
|
|
enable_mkldnn=False,
|
|
|
|
|
enable_mkldnn_bfloat16=False,
|
|
|
|
|
threshold=0.5,
|
|
|
|
|
output_dir='output',
|
|
|
|
|
use_fd_format=False)
|
|
|
|
|
|
|
|
|
|
def __call__(self, image):
|
|
|
|
|
if isinstance(image, np.ndarray):
|
|
|
|
|
image = [image]
|
|
|
|
|
results = self.detector.predict_image(
|
|
|
|
|
image,
|
|
|
|
|
visual=FLAGS.save_images)
|
|
|
|
|
visual=False)
|
|
|
|
|
return results
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
paddle.enable_static()
|
|
|
|
|
parser = argsparser()
|
|
|
|
|
FLAGS = parser.parse_args()
|
|
|
|
|
# print_arguments(FLAGS)
|
|
|
|
|
FLAGS.device = 'GPU'
|
|
|
|
|
FLAGS.save_images = False
|
|
|
|
|
FLAGS.device = FLAGS.device.upper()
|
|
|
|
|
assert FLAGS.device in ['CPU', 'GPU', 'XPU', 'NPU', 'MLU', 'GCU'
|
|
|
|
|
], "device should be CPU, GPU, XPU, MLU, NPU or GCU"
|
|
|
|
|
assert not FLAGS.use_gpu, "use_gpu has been deprecated, please use --device"
|
|
|
|
|
|
|
|
|
|
assert not (
|
|
|
|
|
FLAGS.enable_mkldnn == False and FLAGS.enable_mkldnn_bfloat16 == True
|
|
|
|
|
), 'To enable mkldnn bfloat, please turn on both enable_mkldnn and enable_mkldnn_bfloat16'
|
|
|
|
|