Difference between revisions of "Compile opencv with cuda support"

From Simon's Help System
Jump to navigation Jump to search
(Created page with "https://www.youtube.com/watch?v=art0-99fFa8 https://github.com/mdegans/nano_build_opencv/tree/master You want to change line 114 in opencv/modules/dnn/src/cuda4dnn/primitives/normalize_bbox.hpp: from: <pre> if (weight != 1.0)</pre> to: <pre> if (weight != static_cast<T>(1.0))</pre> As well as line 124 in opencv/modules/dnn/src/cuda4dnn/primitives/region.hpp (due to a similar error): from: <pre> if (nms_iou_threshold > 0) {</pre> to: <pre> if (nms_iou_threshold > stat...")
 
Line 1: Line 1:
https://www.youtube.com/watch?v=art0-99fFa8
Install JTOP
<pre>sudo apt install python3-pip</pre>


https://github.com/mdegans/nano_build_opencv/tree/master
After pip installs:


<pre>sudo pip3 install -U jetson-stats</pre>


You want to change line 114 in opencv/modules/dnn/src/cuda4dnn/primitives/normalize_bbox.hpp:
Install jetson containers
from:
<pre>
<pre>
if (weight != 1.0)</pre>
# install the container tools
to:
git clone https://github.com/dusty-nv/jetson-containers
bash jetson-containers/install.sh
</pre>
Then staying in the home directory
<pre>
<pre>
if (weight != static_cast<T>(1.0))</pre>
sudo ./jetson-containers/packages/opencv/opencv_install.sh https://nvidia.box.com/shared/static/ngp26xb9hb7dqbu6pbs7cs9flztmqwg0.gz OpenCV-4.8.1-aarch64.tar.gz</pre>


As well as line 124 in opencv/modules/dnn/src/cuda4dnn/primitives/region.hpp (due to a similar error):
from:
<pre>
if (nms_iou_threshold > 0) {</pre>
to:
<pre>
if (nms_iou_threshold > static_cast<T>(0)) {</pre>


Explanation:
Explanation:
Since both variables, weight and nms_iou_threshold, are templated and finally boil down to a primitive type during compilation, it is meaningful to use a static_cast to convert the respective constant (1.0 (by default double) and 0 (by default int)) to the template type. Based on the operator candidates the required types should all be compatible, i.e., the constant values are safe to be casted to the target template type.
Since both variables, weight and nms_iou_threshold, are templated and finally boil down to a primitive type during compilation, it is meaningful to use a static_cast to convert the respective constant (1.0 (by default double) and 0 (by default int)) to the template type. Based on the operator candidates the required types should all be compatible, i.e., the constant values are safe to be casted to the target template type.

Revision as of 17:44, 19 April 2024

Install JTOP

sudo apt install python3-pip

After pip installs:

sudo pip3 install -U jetson-stats

Install jetson containers

# install the container tools
git clone https://github.com/dusty-nv/jetson-containers
bash jetson-containers/install.sh

Then staying in the home directory

sudo ./jetson-containers/packages/opencv/opencv_install.sh https://nvidia.box.com/shared/static/ngp26xb9hb7dqbu6pbs7cs9flztmqwg0.gz OpenCV-4.8.1-aarch64.tar.gz


Explanation: Since both variables, weight and nms_iou_threshold, are templated and finally boil down to a primitive type during compilation, it is meaningful to use a static_cast to convert the respective constant (1.0 (by default double) and 0 (by default int)) to the template type. Based on the operator candidates the required types should all be compatible, i.e., the constant values are safe to be casted to the target template type.