From d73053458a6e35772118da03bd8bfb60b601f59b Mon Sep 17 00:00:00 2001 From: gineshidalgo99 Date: Thu, 29 Nov 2018 14:33:17 -0500 Subject: [PATCH] Added runtime analysis in README --- README.md | 7 +++++++ doc/media/openpose_vs_competition.png | Bin 0 -> 31674 bytes src/openpose/pose/poseParameters.cpp | 4 ++-- 3 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 doc/media/openpose_vs_competition.png diff --git a/README.md b/README.md index a3b4c5d6..484dd76f 100644 --- a/README.md +++ b/README.md @@ -76,6 +76,13 @@ For further details, check [all released features](doc/released_features.md) and

+### Runtime Analysis +Inference time comparison between the 3 available pose estimation libraries: OpenPose, Mask R-CNN, and Alpha-Pose (fast Pytorch version): +

+ +

+This analysis was performed using the same images for each algorithm and a batch size of 1. Each analysis was repeated 1000 times and then averaged. This was all performed on a system with a Nvidia 1080 Ti and CUDA 8. Megvii (Face++) and MSRA GitHub repositories were excluded because they only provide pose estimation results given a cropped person. However, they suffer the same problem than Alpha-Pose and Mask R-CNN, their runtimes grow linearly with the number of people. + ## Contents diff --git a/doc/media/openpose_vs_competition.png b/doc/media/openpose_vs_competition.png new file mode 100644 index 0000000000000000000000000000000000000000..e0c4f9374e701628e6bd8846b0e399df9c0b70f4 GIT binary patch literal 31674 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