Nvidia nano jetson windows

Jetson Nano Developer Kit

The power of modern AI is now available for makers, learners, and embedded developers everywhere.

NVIDIA ® Jetson Nano ™ Developer Kit is a small, powerful computer that lets you run multiple neural networks in parallel for applications like image classification, object detection, segmentation, and speech processing. All in an easy-to-use platform that runs in as little as 5 watts.

It’s simpler than ever to get started! Just insert a microSD card with the system image, boot the developer kit, and begin using the same NVIDIA JetPack SDK used across the entire NVIDIA Jetson™ family of products. JetPack is compatible with NVIDIA’s world-leading AI platform for training and deploying AI software, reducing complexity and effort for developers.

Get started today with the Jetson Nano Developer Kit. We look forward to seeing what you create!

View Technical Specifications >

GPU 128-core Maxwell
CPU Quad-core ARM A57 @ 1.43 GHz
Memory 4 GB 64-bit LPDDR4 25.6 GB/s
Storage microSD (not included)
Video Encode 4K @ 30 | 4x 1080p @ 30 | 9x 720p @ 30 (H.264/H.265)
Video Decode 4K @ 60 | 2x 4K @ 30 | 8x 1080p @ 30 | 18x 720p @ 30 (H.264/H.265)
Camera 2x MIPI CSI-2 DPHY lanes
Connectivity Gigabit Ethernet, M.2 Key E
Display HDMI and display port
USB 4x USB 3.0, USB 2.0 Micro-B
Others GPIO, I 2 C, I 2 S, SPI, UART
Mechanical 69 mm x 45 mm, 260-pin edge connector

Please refer to NVIDIA documentation for what is currently supported, and the Jetson Hardware page for a comparison of all Jetson modules.

Начало работы с NVIDIA Jetson Nano

Из этого руководства вы узнаете, как начать работу с NVIDIA Jetson Nano (Рис. 1) Ниже будут рассмотрены следующие вопросы:

  • Первая загрузка
  • Инсталляция системных пакетов и необходимых компонентов
  • Конфигурирование среды разработки Python
  • Инсталляция библиотек Keras и TensorFlow на Jetson Nano
  • Изменение параметров камеры по умолчанию
  • Классификация и обнаружение объектов с помощью Jetson Nano

По ходу описания будет представлен ряд комментариев, в том числе будет описано, что автора этих строк сбило с толку, когда он настраивал свой Jetson Nano. Это позволит пользователям избежать аналогичных ошибок.

В конце этого урока ваш NVIDIA Jetson Nano будет настроен и готов к глубокому обучению!

Рис. 1. Общий вид высокопроизводительного (до 473 Gflops) AI компьютера Jetson Nano Developer Kit

В первой части будет показано, как загрузить и записать образ файла NVIDIA Jetso Nano.img на micro-SD карту, а затем, как инсталлировать необходимые системные пакеты и компоненты.

Далее вы сможете настроить свою библиотеку разработки Python и узнаете, как установить на Jetson Nano оптимизированную версию Keras и TensorFlow.

Затем будет показано, как получить доступ к камере на Jetson Nano и даже выполнить классификацию изображений и обнаружение объектов на Nano.

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

Прежде чем начать работу с Jetson Nano

Для начала работы понадобятся:

  1. MicroSD карта объемом не менее 16 ГБ
  2. Источник питания 5 В/2.5 А с разъемом microUSB
  3. Кабель Ethernet

Хочу подчеркнуть, что 16 ГБ – это минимум. В первый раз при конфигурации Jetson Nano я использовал карту 16 ГБ, но весь этот объем был быстро занят, особенно после установки интерфейсной библиотеки Jetson, в которой предварительно обученные модели занимают несколько гигабайт.

Поэтому я рекомендую для вашего Nano 32 ГБ microSD карту.

Наконец, для работы с Jetson Nano понадобится Ethernet кабель. Это обстоятельство сильно разочаровало меня.

NVIDIA Jetson Nano позиционируется как мощное IoT и современное вычислительное устройство для искусственного интеллекта (AI)… А если это так, то почему в составе устройства нет Wi-Fi модуля?

Я не понимаю этого решения NVIDIA и не считаю, что конечный пользователь должен использовать свой собственный Wi-Fi адаптер. Если целью является доведение AI до IoT и выполнение граничных вычислений (edge computing), тогда обязательно должен быть Wi-Fi.

Загрузка и запись файла .img на microSD карту

Прежде чем мы сможем начать установку каких-либо пакетов или запускать любые демоверсии на Jetson Nano, необходимо загрузить с веб-сайта NVIDIA образ для SD-карты Jetson Nano Developer Kit.

NVIDIA обеспечивает документацией для записи файла .img на SD-карту для Windows, macOS, Linux. Необходимо воспользоваться инструкцией для записи, которая соответствует вашей операционной системе.

Читайте также:  Pxe e32 tftp open timeout linux

Первая загрузка NVIDIA Jetson Nano

После того, как вы загрузили и записали файл .img на microSD карту, установите карту в слот для microSD.

У меня возникли затруднения при поиске на плате этого слота . Поэтому место его расположения показано на Рис. 2 (обведено красным цветом):

Рис. 2. Расположение слота для microSD карты на Jetson Nano

После установки microSD карты в слот, подключите источник питания. После загрузки вы сможете увидеть на мониторе изображение, показанное на Рис. 3 или подобное ему. Предполагается, что HDMI выход вашего Jetson Nano подключен к монитору.

Рис. 3. Начало работы с устройством NVIDIA Jetson Nano AI

Чтобы начать работу с устройством NVIDIA Jetson Nano AI, просто запишите .img (предварительно настроенный с помощью Jetpack) и загрузите его. Отсюда мы будем устанавливать TensorFlow и Keras в виртуальной среде.

Затем необходимо будет пройти через процесс установки с Jetson Nano, включая настройку имени пользователя /пароля, часового пояса, раскладки клавиатуры и т. д.

Установка системных пакетов и необходимых компонентов

В оставшейся части этого описания я покажу, как настроить NVIDIA Jetson Nano для глубокого обучения, в том числе будут рассмотрены:

  • Установка необходимых компонентов системного пакета
  • Установка Keras и TensorFlow на Jetson Nano
  • Установка механизма вывода (Inference engine) Jetson

Начнем с установки необходимых системных пакетов:

1 $ sudo apt- get install git cmake
2 $ sudo apt- get install libatlas-base- dev gfortran
3 $ sudo apt- get install libhdf5-serial- dev hdf5-tools
4 $ sudo apt- get install python3-dev

Настройка среды Python

Следующий шаг – настраиваем среду разработки Python.

Давайте сначала установим pip, менеджер пакетов Python:

1 $ wge t https : / / bootstrap .pypa .io / get — pip . py
2 $ sudo python3 get — pip .py
3 $ rm get — pip .py

В данном случае мы будем использовать виртуальные среды Python. Это позволит нашим средам разработки Python быть независимыми и отделенными друг от друга.

Использование виртуальных сред Python — это лучшая практика, которая поможет избежать необходимости иметь микроSD для каждой среды разработки, которую вы хотите использовать в своем Jetson Nano.

Для управления нашими виртуальными средами Python мы будем использовать virtualenv и virtualenvwrapper, которые можно установить с помощью следующей команды:

1 $ sudo pip install virtualenv virtualenvwrapper

После того, как мы установили virtualenv и virtualenvwrapper, нам нужно обновить наш файл

/ .bashrc . Я использую редактор nano , но вы можете использовать любой другой редактор, который вам удобнее:

Прокрутите вниз до конца файла

/ .bashrc и добавьте следующие строки:

1 # virtualenv and virtualenvwrapper
2 export WORKON_HOME = $HOME / . virtualenvs
3 export VIRTUALENVWRAPPER_PYTHON = / usr / bin / python3
4 source / usr / local / bin / virtualenvwrapper .sh

После добавления вышеуказанных строк сохраните файл и выйдите из редактора.

Далее необходимо перезагрузить содержимое файла

/ .bashrc , используя команду source :

Теперь мы можем создать виртуальную среду Python с помощью команды mkvirtualenv — я назвал свою виртуальную среду deep_learning , но вы можете назвать ее как угодно:

1 $ mkvirtualenv deep_learning — p python3

Установка TensorFlow и Keras на NVIDIA Jetson Nano

Прежде, чем мы сможем установить TensorFlow и Keras на Jetson Nano, необходимо установить NumPy.

Во-первых, убедитесь, что вы находитесь в виртуальной среде deep_learning с помощью команды workon :

1 $ workon deep_learning

Из нее вы можете установить NumPy:

1 $ pip install numpy

Инсталляция NumPy на моем Jetson Nano заняла около 10-15 минут, поскольку ее нужно было скомпилировать в системе (в настоящее время нет предварительно собранных версий NumPy для Jetson Nano).

Следующим шагом является установка Keras и TensorFlow на Jetson Nano. У вас может возникнуть соблазн сделать простую установку pip install tensorflow — gpu — не делайте этого!

Вы можете установить официальный Jetson Nano TensorFlow с помощью следующей команды:

1 $ pip install — extra — index — url https : / / developer . download .nvidia .com / compute / redist / jp / v42 tensorflow — gpu == 1.13.1 + nv19 . 3

Установка пакета NVIDIA tensorflow-gpu заняла около 40 минут на моем Jetson Nano.

Финальный шаг здесь — установка SciPy и Keras:

1 $ pip install scipy
2 $ pip install keras

Эти инсталляции заняли около 35 минут.

Компиляция и установка Jetson Inference на Nano

В .img Jetson Nano уже установлен JetPack, поэтому мы можем сразу перейти к сборке Jetson Inference engine.

Первым шагом является клонирование Jetson-Interface :

1 $ git clone https : / / github . com / dusty — nv / jetson — inference
2 $ cd jetson — inference
3 $ git submodule update — init

Затем мы можем сделать сборку, используя cmake

1 $ mkdir build
2 $ cd build
3 $ cmake . . .

При запуске cmake следует отметить две важные вещи:

  1. Команда cmake запросит права доступа root, поэтому не выходите из Nano, пока не предоставите свои учетные данные root.
  2. В процессе настройки cmake также загрузит несколько гигабайт предварительно обученных образцов моделей. Убедитесь, что у вас есть эти несколько ГБ! (Именно поэтому я рекомендую карту microSD 32 ГБ вместо карты 16 ГБ).
Читайте также:  Brother dcp 1510 драйвер windows 10

После того, как cmake завершит настройку сборки, мы можем скомпилировать и инсталлировать Jetson Inference engine (механизм логического вывода):

1 $ make
2 $ sudo make install

Компиляция и инсталляция Jetson Inference engine заняла чуть больше 3 минут.

Запуск демоверсий NVIDIA Jetson Nano

При использовании NVIDIA Jetson Nano у вас есть две опции для устройства ввода с камеры:

  1. Можно подключить модуль камеры CSI, такой как модуль камеры Raspberry Pi (кстати, совместимый с Jetson Nano)
  2. Или USB Веб-камеру

Я использую все свои модули камеры Raspberry Pi для своей будущей книги, Raspberry Pi для компьютерного зрения, поэтому я решил использовать Logitech C920, который совместим с Nano (вы можете также использовать более новый Logitech C960).

Примеры, включенные в библиотеку Jetson Nano Inference, можно найти в разделе jetson-inference :

  • detectnet-camera : Выполняет обнаружение объекта с использованием входного сигнала с камеры.
  • detectnet-console : Также выполняет обнаружение объекта, но с использованием входного изображения, а не камеры.
  • imagenet-camera : Выполняет классификацию изображений с помощью камеры.
  • imagenet-console : Классифицирует входное изображение, используя предварительно обученную на наборе данных ImageNet сеть.
  • segnet-camera : Выполняет семантическую сегментацию с использованием камеры на входе.
  • segnet-console: Также выполняет семантическую сегментацию, но на изображении.
  • Кроме того, включены несколько других примеров, в том числе оценка глубокой гомографии и суперразрешение

Однако для запуска этих примеров, нам необходимо немного изменить исходный код для соответствующих камер.

В каждом примере вы увидите, что значение DEFAULT_CAMERA установлено в — 1 , что подразумевает использование подключенной камеры CSI.

Поскольку мы используем USB-камеру (или любую другую корректную V4L2 камеру), необходимо изменить значение DEFAULT_CAMERA c — 1 на 0 .

К счастью, это изменение очень легко сделать!

Начнем с классификации изображений в качестве примера.

Во-первых, откройте директорию

/ jetson — inference / imagenet — camera

Оттуда откройте imagenet-camera .cpp :

1 $ nano imagenet — camera .cpp

Затем нужно сделать прокрутку вниз примерно до 37 строки, где вы увидите значение DEFAULT_CAMERA :

1 #define DEFAULT_CAMERA -1 // -1 for onboard camera, or change to index of /dev/video V4L2 camera (>=0)

Просто измените это значение с — 1 на 0 :

1 #define DEFAULT_CAMERA 0 // -1 for onboard camera, or change to index of /dev/video V4L2 camera (>=0)

После этого сохраните изменения и выйдите из редактора.

После редактирования файла C++ вам нужно будет перекомпилировать пример:

1 $ cd . . / build
2 $ make
3 $ sudo make install

Имейте в виду, что утилита make достаточно умна, чтобы не перекомпилировать всю библиотеку. Она будет перекомпилировать только файлы, которые изменились (в данном случае, пример классификации ImageNet).

После компиляции перейдите в каталог aarch64/bin и запустите двоичный файл imagenet-camera :

1 $ cd aarch64 / bin /
2 $ . / imagenet — camera
3 imagenet — camera
4 args ( 1 ) : 0 [ . / imagenet — camera ]
5
6 [ gstreamer ] initialized gstreamer , version 1.14.1.0
7 [ gstreamer ] gstCamera attempting to initialize with GST_SOURCE _ NVCAMERA
8 [ gstreamer ] gstCamera pipeline string :
9 v4l2src device = / dev / video0 ! video / x — raw , width = ( int ) 1280 , height = ( int ) 720 , format = YUY2 ! videoconvert ! video / x — raw , format = RGB ! videoconvert ! appsink name = mysink
10 [ gstreamer ] gstCamera successfully initialized with GST_SOURCE_V4L2
11
12 imagenet — camera : successfully initialized video device
13 width : 1280
14 height : 720
15 depth : 24 ( bpp )
16
17
18 imageNet — loading classification network model from :
19 — prototxt networks / googlenet .prototxt
20 — model networks / bvlc_googlenet .caffemodel
21 — class_labels networks / ilsvrc12_synset_words .txt
22 — input _ blob ‘data’
23 — output _ blob ‘prob’
24 — batch _ size 2
25
26 [ TRT ] TensorRT version 5.0.6
27 [ TRT ] detected model format — caffe ( extension ‘.caffemodel’ )
28 [ TRT ] desired precision specified for GPU : FASTEST
29 [ TRT ] requested fasted precision for device GPU without providing valid calibrator , disabling INT8
30 [ TRT ] native precisions detected for GPU : FP32 , FP16
31 [ TRT ] selecting fastest native precision for GPU : FP16
32 [ TRT ] attempting to open engine cache file networks / bvlc_googlenet .caffemodel . 2.1.GPU.FP16.engine
33 [ TRT ] loading network profile from engine cache . . . networks / bvlc_googlenet .caffemodel . 2.1.GPU.FP16.engine
34 [ TRT ] device GPU , networks / bvlc_googlenet . caffemodel loaded

Здесь вы можете видеть, что GoogLeNet загружается в память, после чего начинается вывод.

Классификация изображений выполняется при

10 FPS на Jetson Nano с разрешением 1280×720.

ВАЖНО: Если вы загружаете определенную модель впервые, загрузка может занять 5 — 15 минут.

Внутри библиотека Jetson Nano Inference оптимизирует и подготавливает модель для вывода. Это делается только один раз, чтобы последующие запуски программы были значительно быстрее (с точки зрения времени загрузки модели, а не вывода).

Читайте также:  Start button windows classic shell для windows

Теперь, когда мы попробовали классифицировать изображение, давайте посмотрим на пример обнаружения объектов на Jetson Nano, который находится в

/ jetson-inference / detenet-camera / detectnet-camera . cpp.

Опять же, если вы используете веб-камеру USB, вы захотите отредактировать ориентировочно 39 строку файла detenet-camera .cpp и изменить DEFAULT_CAMERA с -1 на 0 , а затем перекомпилировать с помощью make (это необходимо, только если вы используете веб-камеру USB).

После компиляции вы можете найти бинарный файл detenet-camera в

/ jetson-inference / build/ aarch64/ bin.

Давайте продолжим и запустим демонстрацию обнаружения объектов на Jetson Nano:

1 $ . / detectnet — camera
2 detectnet — camera
3 args ( 1 ) : 0 [ . / detectnet — camera ]
4
5 [ gstreamer ] initialized gstreamer , version 1.14.1.0
6 [ gstreamer ] gstCamera attempting to initialize with GST_SOURCE _ NVCAMERA
7 [ gstreamer ] gstCamera pipeline string :
8 v4l2src device = / dev / video0 ! video / x — raw , width = ( int ) 1280 , height = ( int ) 720 , format = YUY2 ! videoconvert ! video / x — raw , format = RGB ! videoconvert ! appsink name = mysink
10 [ gstreamer ] gstCamera successfully initialized with GST_SOURCE_V4L2
11
12 detectnet — camera : successfully initialized video device
13 width : 1280
14 height : 720
15 depth : 24 ( bpp )
16
17 detectNet — loading detection network model from :
18 — prototxt networks / ped — 100 / deploy .prototxt
19 — model networks / ped — 100 / snapshot_iter_70800 .caffemodel
20 — input _ blob ‘data’
21 — output _ cvg ‘coverage’
22 — output _ bbox ‘bboxes’
23 — mean _ pixel 0.000000
24 — class_labels networks / ped — 100 / class_labels .txt
25 — threshold 0.500000
26 — batch _ size 2
27
28 [ TRT ] TensorRT version 5.0.6
29 [ TRT ] detected model format — caffe ( extension ‘.caffemodel’ )
30 [ TRT ] desired precision specified for GPU : FASTEST
31 [ TRT ] requested fasted precision for device GPU without providing valid calibrator , disabling INT8
32 [ TRT ] native precisions detected for GPU : FP32 , FP16
33 [ TRT ] selecting fastest native precision for GPU : FP16
34 [ TRT ] attempting to open engine cache file networks / ped — 100 / snapshot_iter_70800 .caffemodel . 2.1.GPU.FP16.engine
35 [ TRT ] loading network profile from engine cache . . . networks / ped — 100 / snapshot_iter_70800 .caffemodel . 2.1.GPU.FP16.engine
36 [ TRT ] device GPU , networks / ped — 100 / snapshot_iter_70800 .caffemodel loaded

Здесь вы можете видеть, что мы загружаем модель с именем ped — 100 , используемую для обнаружения пешеходов (на самом деле я не уверен, что конкретно представляет собой архитектура модели, поскольку она не задокументирована на веб-сайте NVIDIA).

Ниже вы можете увидеть пример обнаружения себя с использованием демонстрационной программы обнаружения объектов Jetson Nano:

Согласно выходным данным программы, мы получаем

5 FPS для обнаружения объектов в кадре с разрешением 1280 × 720 при использовании Jetson Nano. Не так уж плохо!

Как развернуть пользовательские модели в Jetson Nano?

Одним из преимуществ Jetson Nano является то, что после компиляции и установки библиотеки с поддержкой GPU (конечно, совместимой с Nano) ваш код автоматически использует графический процессор Nano для вывода.

Например, ранее мы установили Keras + TensorFlow на Nano. Любые скрипты Python, использующие Keras/ TensorFlow, будут автоматически использовать графический процессор (GPU).

И точно так же любые предварительно обученные модели Keras/ TensorFlow, которые мы используем, будут тоже автоматически использовать графический процессор Jetson Nano для вывода.

При условии, что Jetson Nano поддерживает данную библиотеку глубокого обучения (Keras, TensorFlow, Caffe, Torch/ PyTorch и т. д.), мы можем легко развернуть наши модели в Nano.

Проблема здесь – это OpenCV

Модуль Deep Neural Network ( dnn ) OpenCV не поддерживает графические процессоры NVIDIA GPU, включая Jetson Nano.

OpenCV работает над обеспечением поддержки NVIDIA GPU для своего модуля dnn . Надеюсь, результат будет получен в ближайшее время.

Но пока мы не можем использовать простые в использовании функции cv2 .dnn в OpenCV.

Если использование модуля cv2 .dnn сейчас абсолютно необходимо для вас, я бы посоветовал взглянуть на инструментарий Intel OpenVINO, Movidius NCS и другие OpenVINO-совместимые продукты, которые оптимизированы для работы с модулем OpenCV глубокой нейронной сети.

Если вы хотите узнать больше о Movidius NCS и OpenVINO (включая примеры тестов), обратитесь к этому руководству.

В отличие от Raspberry Pi с Movidius NCS или Google Coral, Jetson Nano имеет встроенную систему (без Wi-Fi) для мощного управления компьютерным зрением и глубокого обучения на высоком уровне.

Надеюсь, изложенная выше информация поможет пользователям быстро сделать первие шаги в разработке AI приложений с использованием NVIDIA Jetson Nano.

Производитель: Mean Well
Наименование
Производитель
Описание Корпус/
Изображение
Цена, руб. Наличие
от 1 шт. от 694,85 ₽ Выбрать
условия
поставки
Производитель: Nvidia
Наименование
Производитель
Описание Корпус/
Изображение
Цена, руб. Наличие

Связаться с нами:

Москва, Новохохловская ул. д. 23, стр. 1, БП Ринг Парк
Телефоны: +7 (495) 221-78-04

Оцените статью