[PYTHON] XavierNX beschleunigt die OpenCV-Bildverarbeitung mit GPU (CUDA)

Einführung

Beschleunigen Sie die OpenCV-Bildverarbeitung mit GPU (CUDA) In der Post habe ich bestätigt, dass Xavier NX auch GPU MAT zur Beschleunigung verwendet.

Verfahren

Erstellen Sie OpenCV4 mit Jetpack 4.4 von XavierNX, um GPUMAT (CUDA) zu verwenden.

Beim Versuch, GPUMAT (CUDA) mit XavierNX zu verwenden

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'  

Es wird gesagt, dass GPU MAT nicht verwendet werden kann. Erstellen Sie ein OpenCV 4.3 GPUMAT (CUDA) -fähiges Image mit Docker. Erstellen Sie OpenCV 4.3 mit DNN_BACKEND_CUDA auf Jetson Xavier NX (https://qiita.com/sowd0726/items/57a4e867d358283bdf20).

Führen Sie das Skript unter Beschleunigen der OpenCV-Bildverarbeitung mit GPU (CUDA) aus.

Ausführen des erstellten Bildes # Hier wird das erstellte Bild als opencv 430: 100 gekennzeichnet.

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

Dann auf Docker https://github.com/iwatake2222/OpenCV_CUDA Führen Sie das Skript in aus.

python3 opencv_cuda.py

Ergebnis

Ich führe es jeweils nur einmal aus, daher gibt es Variationen, aber die CPU ist schneller als der Jetson Nano, aber die GPU fühlt sich ziemlich langsam an. Bei der Messung der GPU 1, Kopie auf GPU-Seite, 2, Größenänderung, 3, kehren Sie zur CPU-Seite zurück In Wirklichkeit profitieren also nur 2 von der GPU, daher denke ich, dass der Wert selbst so ist, aber [OpenCV-Bildverarbeitung mit GPU (CUDA) beschleunigen](OpenCV-Bildverarbeitung mit GPU (CUDA)] Warum ist es langsamer als Jetson Nano im Vergleich zum Ergebnis von (schneller)? .. .. Wenn jemand irgendwelche Kenntnisse hat

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 Nachtrag

Führen Sie plötzlich jetson_clocks aus und messen Sie CPU = 1.1041647672653199[msec] GPU = 0.3990261316299438[msec] 1 ist geworden. /etc/nvpmodel.conf Soweit ich sehen kann, ändert sich die maximale Uhr nicht, aber wenn jetson_clocks ausgeführt wird, wird der Regler gestoppt und auf die maximale Uhr festgelegt. Obwohl ich es nicht überprüft habe, besteht die Möglichkeit, dass der Betrieb von Governmentor nicht rechtzeitig erfolgt, da die Übertragung häufig durch CPU-Verarbeitung und die Größenänderung häufig durch GPU-Verarbeitung umgeschaltet wird. Ich werde es überprüfen, wenn ich Lust dazu habe.

Recommended Posts

XavierNX beschleunigt die OpenCV-Bildverarbeitung mit GPU (CUDA)
Grundlagen der Echtzeit-Bildverarbeitung mit opencv
Bildverarbeitung mit Python & OpenCV [Tonkurve]
Leichte Bildverarbeitung mit Python x OpenCV
Bildverarbeitung mit Lambda + OpenCV (graue Bilderzeugung)
Bildverarbeitung mit MyHDL
Bildverarbeitung mit Python
Bildverarbeitung mit PIL
Bildverarbeitung mit PIL (Pillow)
"Apple-Verarbeitung" mit OpenCV3 + Python3
Bildbearbeitung mit Python OpenCV
Bildverarbeitung mit Python (Teil 1)
Bildverarbeitung mit Python (3)
Holen Sie sich Bildfunktionen mit OpenCV
Bilderkennung mit Keras + OpenCV
[Python] Bildverarbeitung mit Scicit-Image
[Python] Verwenden von OpenCV mit Python (Bildfilterung)
[Python] Verwenden von OpenCV mit Python (Bildtransformation)
Die Bildverarbeitung mit Python 100 klopft an die Binärisierung Nr. 3
Finden Sie Bildähnlichkeit mit Python + OpenCV
Versuchen Sie, das Bild mit opencv2 zu verwischen
100 Bildverarbeitung mit Python Knock # 2 Graustufen
Grundlagen der binärisierten Bildverarbeitung durch Python
Bildverarbeitung mit Python 100 Knock # 10 Medianfilter
Erstellen Sie mit PySimpleGUI einen Bildverarbeitungs-Viewer
100 Bildverarbeitung mit Python Knock # 8 Max Pooling
Bildverarbeitung mit Python 100 Knock # 12 Bewegungsfilter
Bildaufnahme von der Kamera mit Python + OpenCV
Zeichnen mit Matrix-Reinventor von Python Image Processing-
Verarbeiten Sie Bilder in Python ganz einfach mit Pillow
Die Bildverarbeitung mit Python 100 führt zu einem durchschnittlichen Pooling von # 7
Bildverarbeitung mit Python 100 Knock # 9 Gauß-Filter
Ich habe versucht, das Bild mit Python + OpenCV zu "glätten"
Ich habe versucht, das Bild mit Python + OpenCV zu "differenzieren"
Bildverarbeitung von Grund auf mit Python (5) Fourier-Transformation
So beschneiden Sie ein Bild mit Python + OpenCV
Bildverarbeitung von Grund auf mit Python (4) Konturextraktion
Bildverarbeitung mit Python Environment Setup für Windows
Ich habe versucht, das Bild mit Python + OpenCV zu "binarisieren"
[Kleine Geschichte] Testen Sie die Bilderzeugung mit Python / OpenCV
[Bildverarbeitung] Posterisierung
Python-Bildverarbeitung
Bildverarbeitung 100 Schläge ①
Hinweise zur HDR- und RAW-Bildverarbeitung mit Python
[OpenCV / Python] Ich habe versucht, Bilder mit OpenCV zu analysieren
JPEG-Bilderzeugung durch Angabe der Qualität mit Python + OpenCV
Erstellen verschiedener Photoshop-Videos mit Python + OpenCV ② Erstellen Sie Photoshop-Standbilder