This repository estimates the running speed of a human from a video using OpenPose to detect skeleton joints.
Due to the complexity of installing OpenPose from source, we provide three video examples to run the estimator without OpenPose. If you want to use it with your own data check the instructions below. Currently the estimator only works in a video with a lonely runner, this may be upgraded in a future when OpenPose will allow multiple people tracking.
Tested using python 3.9
In order to run the estimator you have to install the following dependencies:
pip3 install numpy==1.19.3
pip3 install scipy
pip3 install opencv-python==4.4.0.46
Clone this repository:
git clone https://github.com/DaniGarciaLopez/running-speed-estimator/
Run the estimator:
cd running-speed-estimator
python3 main.py
You can modify test videos changing path_to json= 'runner/' in import_json.py and cap=cv2.VidoCapture('runner.mp4') in main.py. You also need to modify athlete_height in main.py and camera_fps in case of a slow motion video
If you want to use the estimator using your own videos you must have OpenPose installed to run:
python3 generate_keypoints.py --tracking --number_people_max 1 --write_json --video makau.mp4
The following steps were perform to sucessfully install OpenPose 1.7 in a fresh Ubuntu 18.04 system using CUDA. In order to install it in a different environment you may need another configuration. Please refer to the official installation instructions to proceed.
Purge existing CUDA first:
sudo apt --purge remove "cublas*" "cuda*"
sudo apt --purge remove "nvidia*"
Install CUDA Toolkit 10:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.0.130-1_amd64.deb
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub && sudo apt update
sudo dpkg -i cuda-repo-ubuntu1804_10.0.130-1_amd64.deb
sudo apt update
sudo apt install -y cuda=10.0.130-1
Install CuDNN 7 and NCCL 2:
wget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
sudo dpkg -i nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
sudo apt update
sudo apt install -y libcudnn7 libcudnn7-dev libnccl2 libc-ares-dev
sudo apt autoremove
echo 'export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}}' >> ~/.bashrc
Reboot computer
reboot
Type nvidia-smi
and nvcc --version
to verify your installation.
sudo apt install nvidia-driver-430
Reboot computer
reboot
cd
git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose
Anaconda includes a Protobuf version that is incompatible with Caffe. Either you uninstall anaconda and install protobuf via apt-get, or you compile your own Caffe and link it to OpenPose.
rm -rf anaconda3/
Note: simple remove is good enough, although purge can work fine too.
sudo apt-get install autoconf automake libtool curl make g++ unzip -y
git clone https://github.com/google/protobuf.git
cd protobuf
git submodule update --init --recursive
./autogen.sh
./configure
make
make check
sudo make install
sudo ldconfig
Important: CMake 3.16 has issues with OpenSSL, use 3.15 instead. Required CMake version > = 3.12.
sudo apt purge cmake-qt-gui
sudo apt-get install qtbase5-dev
Download CMake from the website, move it to home, unzip it and go inside that folder. In my case, I picked cmake-3.15.6.tar.gz.
./configure --qt-gui
./bootstrap && make -j`nproc` && sudo make install -j`nproc`
cd openpose
sudo bash ./scripts/ubuntu/install_deps.sh ## Prerequisites
sudo apt install caffe-cuda
sudo apt-get install libopencv-dev
$ pkg-config --modversion opencv ## current latest version is 3.2
Install OpenCV for Python 3:
pip3 install opencv-python==3.2.0.8
cd openpose/3rdparty
git clone https://github.com/CMU-Perceptual-Computing-Lab/caffe.git
Create an empty subcategory “build” folder inside Openpose folder:
cd openpose
mkdir build
- Open CMake GUI you just installed.
cmake-gui
- Select Openpose source code directory path and build directory path.
- Select Configure to compile the files. A dialog box appears CMakeSetup. Select "Unix Makefiles" and "Use default native compilers". Click finish.
- It takes some time to download models and compiling it. If any error happens it may be of CUDA or cuDNN installation. After successful configuration, check the “BUILD_PYTHON” inside the red box.
- Click "Generate". It will show "Generating done" if no errors.
- Close the CMake and proceed with these commands in your terminal to build OpenPose:
cd openpose/build/
make -j`nproc`
Compile OpenPose source:
cd openpose/build/
sudo make install
Compile and build python OpenPose:
cd openpose/build/python/openpose
sudo make install
cd openpose
./build/examples/openpose/openpose.bin --video examples/media/video.avi
Test Python API
cd openpose/build/examples/tutorial_api_python
python3 openpose_python.py