tabletennis 不能输出叠加预测的gif图片
作者您好,按照这个 readme https://github.com/PaddlePaddle/PaddleVideo/tree/develop/applications/TableTennis/ActionRecognition,
使用
python3.7 tools/predict.py --input_file data/example_tennis_7.pkl \ --config applications/TableTennis/ActionRecognition/configs/videoswin_tabletennis.yaml \ --model_file inference/VideoSwin_TableTennis/VideoSwin_TableTennis.pdmodel \ --params_file inference/VideoSwin_TableTennis/VideoSwin_TableTennis.pdiparams \ --use_gpu=True \ --use_tensorrt=False
执行以上命令会产出一个原视频叠加预测结果文本(Top1类别+概率)的gif图片,保存在本目录的results文件夹下,gif文件名与输入的pkl文件名相同。
我使用了以上命令,输出了Top1类别+概率 ,但是 没有生成叠加预测的结果文本图片,使用的是https://github.com/PaddlePaddle/PaddleVideo/tree/develop/tools/predict.py
以下是我的命令行内容:
(tabletennis) :~/paddleT/PaddleVideo$ python3.7 tools/predict.py --input_file /data/7fscq_1_0002.avi --config /configs//timesformer_T8_videos.yaml
--model_file /model/TimeimeSformer.pdmodel
--params_file /model/TimeimeSformer.pdiparams
--use_gpu=True
--use_tensorrt=False
Inference model(TimeimeSformer)...
W0716 22:14:05.691928 65950 analysis_predictor.cc:798] The one-time configuration of analysis predictor failed, which may be due to native predictor called first and its configurations taken effect.
--- Running analysis [ir_graph_build_pass]
--- Running analysis [ir_graph_clean_pass]
--- Running analysis [ir_analysis_pass]
--- Running IR pass [is_test_pass]
--- Running IR pass [simplify_with_basic_ops_pass]
--- Running IR pass [conv_affine_channel_fuse_pass]
--- Running IR pass [conv_eltwiseadd_affine_channel_fuse_pass]
--- Running IR pass [conv_bn_fuse_pass]
--- Running IR pass [conv_eltwiseadd_bn_fuse_pass]
--- Running IR pass [embedding_eltwise_layernorm_fuse_pass]
--- Running IR pass [multihead_matmul_fuse_pass_v2]
--- Running IR pass [squeeze2_matmul_fuse_pass]
--- Running IR pass [reshape2_matmul_fuse_pass]
--- Running IR pass [flatten2_matmul_fuse_pass]
--- Running IR pass [map_matmul_v2_to_mul_pass]
--- Running IR pass [map_matmul_v2_to_matmul_pass]
I0716 22:14:06.982990 65950 fuse_pass_base.cc:57] --- detected 144 subgraphs
--- Running IR pass [map_matmul_to_mul_pass]
I0716 22:14:07.355590 65950 fuse_pass_base.cc:57] --- detected 255 subgraphs
--- Running IR pass [fc_fuse_pass]
I0716 22:14:08.044821 65950 fuse_pass_base.cc:57] --- detected 255 subgraphs
--- Running IR pass [fc_elementwise_layernorm_fuse_pass]
I0716 22:14:08.181227 65950 fuse_pass_base.cc:57] --- detected 3 subgraphs
--- Running IR pass [conv_elementwise_add_act_fuse_pass]
--- Running IR pass [conv_elementwise_add2_act_fuse_pass]
--- Running IR pass [conv_elementwise_add_fuse_pass]
--- Running IR pass [transpose_flatten_concat_fuse_pass]
--- Running IR pass [runtime_context_cache_pass]
--- Running analysis [ir_params_sync_among_devices_pass]
I0716 22:14:08.690426 65950 ir_params_sync_among_devices_pass.cc:45] Sync params from CPU to GPU
--- Running analysis [adjust_cudnn_workspace_size_pass]
--- Running analysis [inference_op_replace_pass]
--- Running analysis [memory_optimize_pass]
I0716 22:14:08.946349 65950 memory_optimize_pass.cc:214] Cluster name : unsqueeze2_61.tmp_0 size: 3072
I0716 22:14:08.946383 65950 memory_optimize_pass.cc:214] Cluster name : transpose_106.tmp_0_slice_0 size: 605184
I0716 22:14:08.946386 65950 memory_optimize_pass.cc:214] Cluster name : layer_norm_110.tmp_2_slice_0 size: 3072
I0716 22:14:08.946388 65950 memory_optimize_pass.cc:214] Cluster name : tmp_54_slice_1 size: 4816896
I0716 22:14:08.946390 65950 memory_optimize_pass.cc:214] Cluster name : data_batch_0 size: 14450688
I0716 22:14:08.946393 65950 memory_optimize_pass.cc:214] Cluster name : layer_norm_73.tmp_2_slice_0 size: 3072
I0716 22:14:08.946394 65950 memory_optimize_pass.cc:214] Cluster name : linear_154.tmp_1 size: 4819968
I0716 22:14:08.946396 65950 memory_optimize_pass.cc:214] Cluster name : gelu_46.tmp_0 size: 19279872
I0716 22:14:08.946399 65950 memory_optimize_pass.cc:214] Cluster name : tmp_98 size: 4819968
I0716 22:14:08.946401 65950 memory_optimize_pass.cc:214] Cluster name : linear_238.tmp_1 size: 19279872
--- Running analysis [ir_graph_to_program_pass]
I0716 22:14:09.814836 65950 analysis_predictor.cc:717] ======= optimize end =======
I0716 22:14:09.894640 65950 naive_executor.cc:98] --- skip [feed], feed -> data_batch_0
I0716 22:14:09.925549 65950 naive_executor.cc:98] --- skip [gelu_46.tmp_0], fetch -> fetch
WARNING:libav.swscaler:deprecated pixel format used, make sure you did set range correctly
W0716 22:14:10.363554 65950 device_context.cc:447] Please NOTE: device: 0, GPU Compute Capability: 7.0, Driver API Version: 11.6, Runtime API Version: 11.2
W0716 22:14:10.365485 65950 device_context.cc:465] device: 0, cuDNN Version: 8.1.
Current video file: /data/7fscq_1_0002.avi
top-1 class: 7
top-1 score: 0.47607752680778503
(tabletennis) :~/paddleT/PaddleVideo$
Videotabbletenis中添加文本到输入视频的理逻辑在这里: https://github.com/PaddlePaddle/PaddleVideo/blob/develop/tools/utils.py#L549
目前应该只支持pkl文件,如果你要使用其它文件的话,需要做对应修改。