В этой статье объясняется, как установить 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 на основе искусственного интеллекта. По любым вопросам обращайтесь к нам.