[PYTHON] XavierNX accélère le traitement d'image OpenCV avec GPU (CUDA)

introduction

Accélérer le traitement des images OpenCV avec GPU (CUDA) En regardant le Post, j'ai confirmé que Xavier NX utilise également GPU MAT pour accélérer.

procédure

--Construisez OpenCV4 avec Jetpack 4.4 de XavierNX pour pouvoir utiliser GPUMAT (CUDA). -Jetpack 4.4 contient à l'origine OpenCV 4.1.1, mais il a été construit sans GPU MAT activé. -Exécuter le script dans Accélérer le traitement d'image OpenCV avec GPU (CUDA).

Construisez OpenCV4 avec Jetpack 4.4 de XavierNX pour utiliser GPUMAT (CUDA).

Lorsque vous essayez d'utiliser GPUMAT (CUDA) avec XavierNX

cv2.error: OpenCV(4.1.1) /home/nvidia/host/build_opencv/nv_opencv/modules/core/include/opencv2/core/private.cuda.hpp:107: error: (-216:No CUDA support) The library is compiled without CUDA support in function 'throw_no_cuda'  

On dit que GPU MAT ne peut pas être utilisé. Créez une image compatible GPUMAT (CUDA) d'OpenCV 4.3 avec Docker Build OpenCV 4.3 avec DNN_BACKEND_CUDA sur Jetson Xavier NX (https://qiita.com/sowd0726/items/57a4e867d358283bdf20).

Exécutez le script dans Accélération du traitement d'image OpenCV avec GPU (CUDA).

Exécutez l'image créée # Ici, l'image créée est étiquetée comme opencv 430: 100.

sudo docker run -it --rm --net=host --runtime nvidia  -e DISPLAY=$DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix opencv430:100

Puis sur Docker https://github.com/iwatake2222/OpenCV_CUDA Exécutez le script dans.

python3 opencv_cuda.py

résultat

Je ne l'exécute qu'une fois chacun, donc il y a des variations, mais le processeur est plus rapide que le Jetson Nano, mais le GPU semble plutôt lent. Lors de la mesure du GPU 1, copie côté GPU, 2, redimensionnement, 3, retournez du côté du processeur Donc, en réalité, seuls 2 bénéficient du GPU, donc je pense que la valeur elle-même est comme ça, mais [Accélérer le traitement d'image OpenCV avec GPU (CUDA)](Traitement d'image OpenCV avec GPU (CUDA)] Pourquoi est-il plus lent que Jetson Nano par rapport au résultat de (plus rapide)? .. .. Si quelqu'un a des connaissances

nvpmodel -m 0
CPU = 0.8271254301071167[msec]
GPU = 0.9963115930557251[msec]
1
nvpmodel -m 1
CPU = 1.1097469329833984[msec]
GPU = 0.8339884281158447[msec]
1
nvpmodel -m 2
CPU = 1.107427430152893[msec]
GPU = 1.0129541397094726[msec]
1
nvpmodel -m 3
CPU = 1.0416812896728516[msec]
GPU = 0.9837974786758423[msec]
1
nvpmodel -m 4
CPU = 1.3258913993835448[msec]
GPU = 1.004795241355896[msec]
1

5/27 postscript

Soudain, lancez jetson_clocks et mesurez CPU = 1.1041647672653199[msec] GPU = 0.3990261316299438[msec] 1 est devenu. /etc/nvpmodel.conf Pour autant que je puisse voir, l'horloge maximale ne change pas, mais lorsque jetson_clocks est exécuté, le gouverneur est arrêté et fixé à l'horloge maximale. Bien que je ne l'ai pas vérifié, il est possible que le fonctionnement de Governmentor ne soit pas à temps car le transfert est fréquemment commuté par le traitement du processeur et le redimensionnement est fréquemment commuté par le traitement GPU. Je le vérifierai quand j'en aurai envie.

Recommended Posts

XavierNX accélère le traitement d'image OpenCV avec GPU (CUDA)
Principes de base du traitement d'image en temps réel avec opencv
Traitement d'image avec Python et OpenCV [Tone Curve]
Traitement d'image léger avec Python x OpenCV
Traitement d'image avec Lambda + OpenCV (création d'image grise)
Traitement d'image avec MyHDL
Traitement d'image avec Python
Traitement d'image avec PIL
Capture d'image / comparaison de la vitesse OpenCV avec et sans GPU
Traitement d'image avec PIL (Pillow)
"Traitement Apple" avec OpenCV3 + Python3
Édition d'image avec python OpenCV
Traitement d'image avec Python (partie 1)
Traitement d'image avec Python (3)
Obtenez des fonctionnalités d'image avec OpenCV
Reconnaissance d'image avec Keras + OpenCV
[Python] Traitement d'image avec scicit-image
[Python] Utilisation d'OpenCV avec Python (filtrage d'image)
[Python] Utilisation d'OpenCV avec Python (transformation d'image)
Traitement d'image avec la binarisation Python 100 knocks # 3
Trouver la similitude d'image avec Python + OpenCV
Essayez de brouiller l'image avec opencv2
100 traitement d'image par Python Knock # 2 Échelle de gris
Bases du traitement d'images binarisées par Python
Traitement d'image par Python 100 knock # 10 filtre médian
Créer une visionneuse de traitement d'image avec PySimpleGUI
100 traitement d'image avec Python Knock # 8 Max Pooling
Traitement d'image par Python 100 knock # 12 motion filter
Acquisition d'images depuis une caméra avec Python + OpenCV
Dessin avec Matrix-Reinventor of Python Image Processing-
Traitez facilement des images en Python avec Pillow
Traitement d'image avec Python 100 knocks # 7 pooling moyen
Traitement d'image par Python 100 knock # 9 Filtre Gaussien
J'ai essayé de "lisser" l'image avec Python + OpenCV
J'ai essayé de "différencier" l'image avec Python + OpenCV
Traitement d'image à partir de zéro avec python (5) Transformation de Fourier
Comment recadrer une image avec Python + OpenCV
Traitement d'image à partir de zéro avec python (4) Extraction de contour
Traitement d'image avec la configuration de l'environnement Python pour Windows
J'ai essayé de "binariser" l'image avec Python + OpenCV
[Petite histoire] Tester la génération d'images avec Python / OpenCV
[Traitement d'image] Postérisation
traitement d'image python
Traitement d'image 100 coups ①
Remarques sur le traitement d'images HDR et RAW avec Python
[OpenCV / Python] J'ai essayé l'analyse d'image de cellules avec OpenCV
Génération d'images JPEG en spécifiant la qualité avec Python + OpenCV
Créez diverses vidéos Photoshop avec Python + OpenCV ② Créez une image fixe Photoshop