Idein / chainer-pose-proposal-net

Chainer implementation of Pose Proposal Networks

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Performance issue with Raspberry PI3B

angenieux opened this issue · comments

Dear all,
I encountered a performance issue on my Raspberry PI3B (not a PI3B+).
I'm already using python (3.5.3) and Opencv (3.4.4) for computer vision purposes .
I've downloaded and deployed your code video.py from your release page and pre-trained model (from result.zip).
When i launch from my PI "python video.py /home/pi/Pose_Proposal_Networks/result/mobilenetv2_224x224_1.0_coco" i only reach a poor 0.45 FPS (see inference time :2.08). Same thing with other pre-trained models.

My configuration is probably bad, your help is welcome

Capture

I have the same question (only difference is I use a RPi3B+).

The demo is incredible at 10fps https://www.youtube.com/watch?v=L_kAUnAgkfg

Would be great to get this. I think it's because we are not using the Raspberry's GPU VideoCore IV be default. But how can we?

Would very much appreciate a solution. This project is incredibly good. @terasakisatoshi

Hi, everyone. Sorry for the late reply.

I'm glad to hear many people is trying to run our software on you Raspberry Pi.

i only reach a poor 0.45
My configuration is probably bad, your help is welcome

@angenieux are NOT wrong. You encounter the limitation of Performance of Raspberry Pi.

When I tried to run our software on RaspberryPi (3B+), I got performance (about 0.5 FPS) as same as you reported.

Out software is implemented with Chainer. If you check out its repository, you'll find many code(algorithm e.g. CNN) for CPU is written in Python. It makes code intuitive and easy to debug.
As we know, Python is an interpreted language and therefore by default substantially slower than compiled languages such as Fortran or C++.

If you try to implement pose estimation with TensorFlow, you will get better performance.

@mgei

Sorry for the late reply.

I think it's because we are not using the Raspberry's GPU VideoCore IV be default

Yes, Our demo https://www.youtube.com/watch?v=L_kAUnAgkfg is using the Raspberry's GPU VideoCore IV.

But how can we?

  1. The most easiest way to utilize VC4 is use Actcast. You can enjoy our application e.g. (1000 class object classification or face detection) other than pose estimation.
  2. Wait for Official Release of Actcast
    We are going to develop SDK for enabling users can create custom applications using custom models, make performance improvements, and add some features See our official blog. This means you can convert model to utilize VC4 by yourself.
  3. Create Software Tool Chain from scratch...
    py-videocore provides Python library for GPGPU on Raspberry Pi. You can kick VC4 to start SGEMM algorithm using this repository see example.

Hope it helps.

the issue will be closed

@terasakisatoshi I would like to run GPU accelerated pose estimation on Raspberry Pi Zero like in this demo. I looked on both Actcast and py-videocore but didn't get how exactly can I make it using any of them. Are there any articles or tutorials?

Hi, @feymartynov

There is a step-by-step tutorial that shows how to run Image Classification demo using your Raspberry Pi. Once you've read through it you will be able to run app of Pose Estimation.

Also checkout https://actcast.io/docs/tutorial/Contacts/ If you find a bug or have a question of Actcast. 😃