NumesSanguis / FACSvatar

An Open Source Modular Framework From Face to FACS Based Avatar Animation (Unity3D / Blender)
GNU Lesser General Public License v3.0
430 stars 97 forks source link

Is this cpu based or gpu? #17

Closed delebash closed 4 years ago

delebash commented 4 years ago

As far as I understand docker does not use your native gpu. With the exception of nvidia docker. Would there be a big difference in performance and accuracy using GPU?

NumesSanguis commented 4 years ago

The Docker environment needs to support GPU indeed, but many of the Deep Learning frameworks have such docker images. For example, you can add the line FROM tensorflow/tensorflow:2.0.0-gpu-py3 at the top of your Docker file. Once you've build a container with GPU support, you can run a command such as docker run --gpus all -it some_name, and this container can then use a GPU like normal.

I wonder for what part you would like to use a GPU though? Only the module process_facsdnnfacs could benefit from GPU, but there is no Docker image for that (yet). That module is only used if you want AI/ML to generate facial configurations. All other modules of FACSvatar only use the CPU. OpenFace seems to only use the CPU as well. So there is no speeding-up or benefit of enabling a GPU in Docker.

OpenFace could probably benefit from a GPU implementation, but I'm not involved in the development of that software. FACSvatar itself (except process_facsdnnfacs) only does light data processing, so there is little benefit to write special code that would run on the GPU.

FACSvatar transfers the data to Blender or Unity, but the actual character animation is done by those programs (and thus not related to Docker).

delebash commented 4 years ago

Thanks for the response. I am new to this not really a programmer just someone who wants to use this for mocap to Unity/Blender. I thought these types of programs would benefit from gpu use. I was looking at openpose and part of the installation requirements or for Nvidia CUDA. Nividia created a docker container nvidia-docker for use with it's graphics cards. Thanks for the explanation. I appreciate you work!! openpose does face, hands, and body that would be awesome if we could use full mocap for animations in Unity/Blender, just a thought.

Thanks again!