I am working with Object Detection ( training with YOLOv3) on Jetson Orin with OpenCV
My Objective: get the CUDA working for the object detection.
**OpenCV = 4.5.4** **Operating System / Platform => NVIDIA JETSON Orin (Tegra)** **Compiler => Visual Studio 2019* **CUDNN 8.6 and CUDA 11.4.**
I have configured the opencv with cmake-gui, enabling,
WITH_CUDNN=ON OPENCV_DNN_CUDA=ON ENABLE_FAST_MATH=1 CUDA_FAST_MATH=1 CUDA_ARCH_BIN=8.7 WITH_CUBLAS=1 WITH_CUDA=ON BUILD_OPENCV_DNN=ON BUILD_OPENCV_WORLD=ON OPENCV_EXTRA_MODULES=/path/opencv_contrib/modules PYTHON3_EXECUTABLES=/path/ PYTHON3_INCLUDE_DIR=/path/ PYTHON3_LIB=/path/ PYTHON3_PATH=/path/ PYTHON3_NUMPY=/path/ CUDNN_VERSION=8.6.0
i also linked ln -s /usr/local/lib/python3/dist-packages/cv2/python-3.8/cv2.cpython-38-aarch64-linux-gnu.so cv2.so
The opencv test : import cv2 also works.
And I use this segment in my code.
cout << “Using GPU device” << endl;
And i use, my own tested,
test.png (these work perfectly in around 72 milliseconds from the direct command line)
When run, i do get the image output with the objects detected, But the problem is
: it switches to CPU and compiles giving the result in 400 milliseconds.
The issue is displayed as below:
[ WARN:0] global /home/ubuntu/build_opencv/opencv/modules/dnn/src/dnn.cpp (1447) setUpNet DNN module was not built with CUDA backend; switching to CPU
But, the dnn.cpp is in the path: tk_ws/opencv-4.5.4/modules/dnn/src/dnn.cpp
My directory structure is ( i cloned the opencv into my tk_ws workspace)
while as per the instructions on GSoC 2019 | OpenCV | Adding a CUDA backend to the DNN module · GitHub
I can see the opencv_test_dnn in green.
I could not figure out why I am repeatedly failing. with the backend switching automatically to CPU instead of CUDA every time
I would be immensely grateful if you could help me, please.