В этой статье объясняется, как установить Jetpack и Tensorflow на Jetson, бортовой компьютер NVIDIA для машинного обучения.

Что такое Jetpack

Jetpack - это программный пакет для Jetson, который включает CUDA, cuDNN, TensorRT, DeepStream и OpenCV.

Установка реактивного ранца

Чтобы установить Jetpack на Jetson, используйте следующую команду.

sudo apt install nvidia-jetpack


После установки Jetpack 4.3, как описано выше, OpenCV 4.1.1 (включая поддержку Gstreamer и Python) также будет установлен. Вы можете проверить, правильно ли он установлен, используя следующую команду.

import cv2
print(cv2.getBuildInformation())

Если вы получаете сообщение об ошибке Unable to locate package nvidia-jetpack при установке Jetpack, убедитесь, что правильный удаленный путь зарегистрирован в /etc/apt/sources.list.d/nvidia-l4t-apt-source.list.

deb https://repo.download.nvidia.com/jetson/common r32.4 main
deb https://repo.download.nvidia.com/jetson/t194 r32.4 main

t194 указывает тип платы.

t186 для серии Jetson TX2
t194 для серии Jetson AGX Xavier или Jetson Xavier NX
t210 для Jetson Nano или Jetson TX1



Конфликт версий OpenCV / Удаление Jetpack

Возможно, вы были в случае, если OpenCV был установлен на Jetson с использованием apt python3-opencv или apt-get install python3-opencv. Эти команды устанавливают более старую версию OpenCV 3, чем установщик Jetpack.

Если вы установите Jetpack в среде с установленной более старой версией OpenCV 3, OpenCV останется устаревшим. В таком случае удалите Jetpack, а затем переустановите его.

Ниже приводится официальная процедура удаления. Последние команды можно найти на официальном сайте.

Если вы используете JetPack 4.3, используйте следующую команду:

sudo apt autoremove --purge nvidia-container-csv-cuda libopencv-python libvisionworks-sfm-dev libvisionworks-dev libvisionworks-samples libnvparsers6 libcudnn7-doc libcudnn7-dev libnvinfer-samples libnvinfer-bin nvidia-container-csv-cudnn libvisionworks-tracking-dev vpi-samples tensorrt libopencv libnvinfer-doc libnvparsers-dev libcudnn7 libnvidia-container0 cuda-toolkit-10-0 nvidia-container-csv-visionworks graphsurgeon-tf libopencv-samples python-libnvinfer-dev libnvinfer-plugin-dev libnvinfer-plugin6 nvidia-container-toolkit libnvinfer-dev libvisionworks libopencv-dev nvidia-l4t-jetson-multimedia-api vpi-dev vpi python3-libnvinfer python3-libnvinfer-dev opencv-licenses nvidia-container-csv-tensorrt libnvinfer6 libnvonnxparsers-dev libnvonnxparsers6 uff-converter-tf nvidia-docker2 libvisionworks-sfm libnvidia-container-tools nvidia-container-runtime python-libnvinfer libvisionworks-tracking

Если вы используете JetPack 4.4, используйте следующую команду:

sudo apt autoremove --purge nvidia-container-csv-cuda libopencv-python libvisionworks-sfm-dev libvisionworks-dev libvisionworks-samples libnvparsers7 libcudnn8-doc libcudnn8-dev libnvinfer-samples libnvinfer-bin nvidia-container-csv-cudnn libvisionworks-tracking-dev vpi-samples tensorrt libopencv libnvinfer-doc libnvparsers-dev libcudnn8 libnvidia-container0 cuda-toolkit-10-2 nvidia-container-csv-visionworks graphsurgeon-tf libopencv-samples python-libnvinfer-dev libnvinfer-plugin-dev libnvinfer-plugin7 nvidia-container-toolkit libnvinfer-dev libvisionworks libopencv-dev nvidia-l4t-jetson-multimedia-api vpi-dev vpi python3-libnvinfer python3-libnvinfer-dev opencv-licenses nvidia-container-csv-tensorrt libnvinfer7 libnvonnxparsers-dev libnvonnxparsers7 uff-converter-tf nvidia-docker2 libvisionworks-sfm libnvidia-container-tools nvidia-container-runtime python-libnvinfer libvisionworks-tracking

Теперь вы можете перейти с OpenCV 3 на последнюю версию OpenCV 4.

OpenCV i путь установки

Вы можете проверить путь, по которому был установлен OpenCV вместе с Jetpack, с помощью следующей команды.

import cv2
print(cv2)

Результат выглядит следующим образом.

/usr/lib/python3.6/dist-packages/cv2/python-3.6/cv2.cpython-36m-aarch64-linux-gnu.so

TensorRT

Jetpack поставляется с TensorRT, а образцы TensorRT хранятся в usr/src/tensorrt/samples

В этом случае мы будем использовать samples/python/yolov3_onnx

yolov3_onnx необходимо преобразовать веса Darknet в ONNX. Для преобразования требуется установка onnx, но pip3 install onnx выдаст ошибку о protobufs.



Следовательно, перед вызовом pip3 install onnx вам необходимо установить protobuf со следующим сценарием.



После установки protobuf мы можем преобразовать модель yolov3 с помощью следующей команды. yolov3_to_onnx.py работает только с python2.

python2 -m pip install -r requirements.txt
python2 yolov3_to_onnx.py

После успешного преобразования модели вы можете запустить команду вывода.

pip3 install -r requirements.txt
python3 onnx_to_tensorrt.py

Установка Tensorflow

Чтобы установить Tensorflow на Jetson, вы можете использовать двоичный файл, предоставленный NVIDIA. Процедура установки описана на следующем веб-сайте и может быть установлена ​​с помощью pip.



Tensorflow доступен как в версии 1, так и в версии 2. Чтобы установить Tensorflow 1, укажите tensorflow<2, который установит tensorflow 1.15.4

Поскольку версия cuDNN, используемая Tensorflow, может отличаться в зависимости от версии Jetpack, которую вы используете, вам необходимо соответствовать версии, которую вы устанавливаете. В частности, перепишите v44, чтобы он соответствовал версии Jetpack. Для Jetpack 4.3 укажите v43.

sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v44 ‘tensorflow<2’

Установленный Tensorflow поддерживает графический процессор. Keras также можно установить с помощью pip.

pip3 install keras==2.24.0

В текущем статусе вы можете запустить keras-yolo3



Настройки режима питания

Jetson имеет настройки режима питания, которые следует проверять перед измерением производительности.

nvpmodel -q

Когда отображается MAXN, выбран максимальный режим работы.

NV Fan Mode:quiet
NV Power Mode: MAXN

Axe Inc. разработал ailia SDK, который обеспечивает кроссплатформенный быстрый вывод на основе графического процессора.

Axe Inc. предоставляет широкий спектр услуг от консультирования и создания моделей до разработки приложений и SDK на основе искусственного интеллекта. По любым вопросам обращайтесь к нам.