|
2 лет назад | |
---|---|---|
.. | ||
video | 4 лет назад | |
README.md | 2 лет назад | |
demo.cpp | 4 лет назад | |
demo.py | 4 лет назад |
This repository contains code for Getting Started with OpenCV CUDA Module blogpost.
Our code is tested using Python 3.7.5, but it should also work with any other python3.x. If you'd like to check your version run:
python3 -V
Let's create a new virtual environment. You'll need to install virtualenv package if you don't have it:
pip install virtualenv
Now we can create a new virtualenv variable and call it env
:
python3 -m venv env
The last thing we have to do is to activate it:
source env/bin/activate
Install numpy package by running:
pip install numpy
The code was tested using CUDA Toolkit 10.2. Please follow the official instruction to download CUDA Toolkit 10.2 or higher.
In this blog post, we're using OpenCV with CUDA support to accelerate OpenCV algorithms. That is why we will need to customize the OpenCV library build and make it from scratch. To do so:
sudo apt-get update
sudo apt-get install build-essential cmake unzip pkg-config
sudo apt-get install libjpeg-dev libpng-dev libtiff-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt-get install libgtk-3-dev
sudo apt-get install libatlas-base-dev gfortran
sudo apt-get install python3-dev
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.4.0.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.4.0.zip
unzip opencv.zip
unzip opencv_contrib.zip
mv opencv-4.4.0 opencv
mv opencv_contrib-4.4.0 opencv_contrib
Create and enter a build directory:
cd opencv
mkdir build
cd build
Run CMake to configure the OpenCV build. Don't forget to set the right pass to the PYTHON_EXECUTABLE
. If you are using the CUDA version different from 10.2
, please change the last 3 arguments accordingly.
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D INSTALL_C_EXAMPLES=OFF \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
-D PYTHON_EXECUTABLE=env/bin/python3 \
-D BUILD_EXAMPLES=ON \
-D WITH_CUDA=ON \
-D CUDA_FAST_MATH=ON \
-D WITH_CUBLAS=ON \
-D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.2 \
-D OpenCL_LIBRARY=/usr/local/cuda-10.2/lib64/libOpenCL.so \
-DOpenCL_INCLUDE_DIR=/usr/local/cuda-10.2/include/ \
..
Check the output and make sure that everything is set correctly. After that we're ready to build it with:
make -j4
Make sure, you didn't get any errors. Then run the following command:
sudo ldconfig
which creates the necessary links and cache to our freshly built shared library.
Rename the created Python3 bindings for OpenCV to cv2.so
:
mv lib/python3/cv2.cpython-37m-x86_64-linux-gnu.so cv2.so
The last step is to create a symlink of our OpenCV cv2.so
into the virtual environment installed packages:
cd env/lib/python3.7/site-packages/
ln -s ~/opencv/build/cv2.so cv2.so
C++
You first need to compile .cpp file with the following command:
g++ `pkg-config --cflags --libs opencv4` demo.cpp -o demo.out -lopencv_core -lopencv_highgui -lopencv_imgcodecs -lopencv_imgproc -lopencv_videoio -lopencv_video -lopencv_cudaarithm -lopencv_cudaoptflow -lopencv_cudaimgproc -lopencv_cudawarping -std=c++11
After that to run the demo, you will need to pass:
For example:
./demo.out video/boat.mp4 gpu
Python
To run the demo, you will need to pass:
--video
argument to set the path to the video file,--device
to choose between CPU and GPU inference. By default, the device is set to "cpu".For example:
python3 demo.py --video video/boat.mp4 --device "cpu"
Want to become an expert in AI? AI Courses by OpenCV is a great place to start.