What it does

OpenPose is a widely known system that detects multiple human bodies in RGB images. By using GPUs, it is able to generate very fast results.

I wanted to port its capabilities to nuclio. The goal was to demonstrate that it is possible to create a simple serverless function that can provide on-demand human pose detection for images.

How I built it

First, I forked nuclio, so that I could extend it to create a simple CUDA-based processor.

After that, I created an OpenPose image function. The nuclio function itself is simple. The base image used by the function, however, is heavy, as it needs:

  • OpenCV 3

  • OpenPose

  • PyOpenPose

And they all need to be built from source.

Challenges I ran into

  • nuclio has no CUDA support yet. This led me to fork the main project. Once either support is added, or custom images may be used by functions, the fork becomes obsolete.

What I learned

I learned a bit about how nuclio works, and how it uses Docker to create its processors.

Built With

  • nuclio
  • openpose
  • pyopenpose
  • python
Share this project: