Hey guys, in this blog we will see how we can build OpenCV with Cuda and cuDNN support in Windows. This process can be very tricky and tedious if doing it for the very first time. So without any further due, let’s do it.
- These are the versions we will be installing.
- Opencv 4.5.5
- Opencv-contrib 4.5.5
- Visual Studio 2019
Step 0 – Uninstall Python and Anaconda.
- You need to uninstall previous installations of python and Anaconda.
- Reinstall Anaconda from here.
- Install NumPy from the terminal using pip install numpy.
Step 1 – Download Cmake
Step 2 – Download Visual Studio
- We will download Visual Studio 2019.
- Install “Desktop development with C++“.
RESTART YOUR COMPUTER
Step 3 – Download OpenCV
- Download OpenCV – https://opencv.org/releases/
- Download Sources.
Step 4 – Download opencv-contrib
- Download opencv-contrib – https://github.com/opencv/opencv_contrib/tags
- Click on zip.
Step 5 – Extract files.
- Extract the OpenCV zip and OpenCV-contrib zip.
- Create an empty folder named build.
Step 6 – Run Cmake GUI.
- In Where is the source code, Select the main opencv extracted folder.
- In Where to build the binaries, Select the empty build folder we created above.
- Click on Configure button.
- I have Visual Studio 2019 installed, so I selected Visual Studio 16 2019.
- And in the Optional platform for generator, select x64.
- Click on Finish and it will start configuring.
- Once done you will see a screen like this.
Now search the following…
- WITH_CUDA and tick/check it.
- OPENCV_DNN_CUDA and tick/check it.
- ENABLE_FAST_MATH and tick/check it.
- OPENCV_EXTRA_MODULES_PATH and browse to the module folder in opencv-contrib we extracted in step 5.
- And now again hit on Configure button.
- Once you see, Configuring done, check CUDA_FAST_MATH also.
- Now go to this link and check your compute capability against your graphic card.
- Mine is Nvidia GTX 1050Ti, so my arch is 6.1.
- In the CMake window, search for CUDA_ARCH_BIN.
- You will see something like this.
- Delete all values except your Compute Capability.
- Again hit on Configure button for the final time.
- Once done, finally hit the Generate button.
- Now you will see a lot of files in your build folder.
Step 7 – Build OpenCV with CUDA
- We will have a file like this OpenCV.sln.
- Now open the CMD Terminal in Administrator mode from the start menu.
- Change the directory to your build folder using cd command and run OpenCV.sln.
- It will open up Visual Studio.
- Once Visual Studio is opened, change Debug to Release.
- Now in the right sidebar, open the CMake Targets dropdown and you will see ALL_BUILD.
- Right click on it and select build and it will start building our binaries.
- This process will take some time.
- Once done it will prompt this.
- Now right click on INSTALL and build.
Step 8 – Check OpenCV Installation.
- Congratulations, you have successfully installed OpenCV with Cuda support.
- Now let’s check if python is detecting cv2 or not.
- Open cmd and paste the following commands.
python import cv2 cv2.__version__ cv2.cuda.getCudaEnabledDeviceCount()
- Now let’s check if cv2 is detecting CUDA or not.
- Create a test.py file and paste the following code in it and run it.
import numpy as np import cv2 as cv import time npTmp = np.random.random((1024, 1024)).astype(np.float32) npMat1 = np.stack([npTmp,npTmp],axis=2) npMat2 = npMat1 cuMat1 = cv.cuda_GpuMat() cuMat2 = cv.cuda_GpuMat() cuMat1.upload(npMat1) cuMat2.upload(npMat2) start_time = time.time() cv.cuda.gemm(cuMat1, cuMat2,1,None,0,None,1) print("CUDA --- %s seconds ---" % (time.time() - start_time)) start_time = time.time() cv.gemm(npMat1,npMat2,1,None,0,None,1) print("CPU --- %s seconds ---" % (time.time() - start_time))
NOTE – If you are facing the below error while running cv2, follow these steps.
- Download this file, extract it in a folder and copy the path to the folder where zlibwapi.dll file is located.
- I extracted it in the opencv_build folder, you can extract it anywhere else also.
- Now open the start menu and search env, then open “Edit the system Environment Variable”, click on Environment Variables…, then double click on the Path under the System variables Section.
- Click on New and paste the path you copied above.
- And then simply click OK, OK and OK.
And now everything should work like charm!!!
So this is how you will install build OpenCV with CUDA and cuDNN support in windows, thanks for reading it and I hope you are taking something with you after reading this and till the next time ?…