[Big Data, Машинное обучение, Hadoop, Видеокарты] Стриминг Edge2AI на NVIDIA JETSON Nano 2Гб с использованием агентов MiNiFi в приложениях FLaNK (перевод)
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Мне некогда было снимать своё видео распаковки - не терпелось запустить это превосходное устройство. NVIDIA Jetson Nano 2GB теперь можно купитьвсего за 59 долларов!!!
Я провел пробный запуск, у него есть все функции, которые вам нравятся для Jetson, всего на 2 Гб оперативной памяти и 2 USB порта меньше. Это очень доступное устройство для создания классных кейсов.Распаковка: https://www.youtube.com/watch?v=dVGEtWYkP2c&feature=youtu.beПодключение к приложениям ИИ-сообщества: https://youtu.be/2T8CG7lDkcUОбразовательные проекты: https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-nano/education-projects/Технические характеристики:
Графический процессор: NVIDIA Maxwell™ со 128 ядрами CUDA
Процессор: Четырехъядерный ARM® A57 с частотой 1,43 ГГц
Память: 2 Гб LPDDR4, 64-bit 25,6 Гбит/с
Накопитель: microSD (не входит в комплект)
Кодирование видео: 4K с частотой 30 Гц | 4 потока в разрешении 1080p с частотой 30 Гц | 9 потоков в разрешении 720p с частотой 30 Гц (H.264/H.265)
Декодирование видео: 4K с частотой 60 Гц | 2 потока в разрешении 4K с частотой 30 Гц | 8 потоков в разрешении 1080p с частотой 30 Гц | 18 потоков в разрешении 720р с частотой 30 Гц (H.264/H.265)
Соединение: Беспроводное подключение Gigabit Ethernet, 802.11ac*
Камера: 1 разъем MIPI CSI-2
Разъемы дисплея: Разъем HDMI
USB: 1x USB 3.0 Type A, 2x USB 2.0 Type A, 1x USB 2.0 Micro-B
Прочие разъемы: Разъем 40-пин (GPIO, I2C, I2S, SPI, UART)
Разъем: 12-пин (питание и связанные сигналы, UART)
Разъем вентилятора: 40-пин *
Размеры: 100 x 80 x 29 ммВ зависимости от того, где или как вы покупаете устройство, вам, возможно, придется купить блок питания и USB WiFi.Все мои существующие рабочие нагрузки отлично работают в версии на 2 ГБ, но с очень хорошей экономией средств. Настройка проста, система быстрая, я настоятельно рекомендую всем, кто ищет быстрый способ поэкспериментировать с ИИ на периферии и другими пограничными рабочими нагрузками. Это может быть отличный вариант для самостоятельного обучения. Я также подключил свой Jetson к монитору, клавиатуре и мыши, и я могу использовать его сразу же как для вычислений на периферии, так и в качестве основного рабочего ПК. С большим количеством таких устройств можно будет легко запустить MiNiFi агентов, модель классификации на Python и модели Deep Learning.NVIDIA не остановилась на самом дешевом пограничном устройстве, у них также есть несколько серьезных корпоративных обновлений: Cloudera превозносит на новый уровень корпоративное озеро данных благодаря сотрудничеству с NVIDIA!Пример запуска модели глубокого обученияИсходники и настройки: https://github.com/tspannhw/SettingUpAJetsonNano2GB/blob/main/README.mdУстройство NVIDIA Jetson Nano 2GB великолепно - ничего лишнего. Я скопировал своего агента MiNiFi и код из других Jetson Nanos, Xavier NX и TX1, и все работает нормально. Скорость вполне подходит для большинства потребностей, особенно для задач разработки и прототипирования. Я предпочитаю Xavier, но за эту цену выбор достойный. Для большинства сценариев использования IoT/ИИ на периферии я собираюсь задействовать несколько Jetson Nano. Я уже использовал NVidia Jetson 2GB для демонстрации на некоторых мероприятиях, включая ApacheCon, BeamSummit, Open Source Summit и AI Dev World:
https://www.linkedin.com/pulse/2020-streaming-edge-ai-events-tim-spann/Для захвата неподвижных изображений и создания их каталога для обработки я установил fswebcam.Обычно я использую этот гайд: https://github.com/dusty-nv/jetson-inference.
Вы получите отличные библиотеки, руководства, документацию и примеры. Обычно я создаю свои приложения, пользуясь одним из этих примеров, а также использую одну из превосходных готовых моделей NVIDIA. Это значительно ускоряет разработку и развертывание Edge2AI-приложений, будь то задачи IoT или другие цели. Это все работает со стандартными подключаемыми камерами Raspberry Pi и отличными USB веб-камерами Logitech, которые я использовал со всеми другими устройствами NVIDIA.При такой цене, кажется, нет причин, по которым любому разработчику в любой компании не стоило бы иметь такое устройство. Это отличное решение для тестирования приложений Edge AI и классификации с очень приличной скоростью. Во время проведения презентации на NetHope Global Summit, и подумал, что эти устройства за 59 долларов вполне способны стать отличным вариантом для некоммерческих организаций, которые могут использовать их для сбора и анализа данных ‘в поле’. https://www.nethopeglobalsummit.org/agenda-2020#sz-tab-44134 Я исследую некоторые сценарии использования, чтобы посмотреть, можно ли заранее создать несколько простых приложений, которые такая организация могла бы просто взять и запустить. Посмотрим, что получится. Периферийное устройство с графическим процессором за 59 долларов позволяет использовать некоторые новые приложения по очень доступной цене. За 59 долларов я не получу много ресурсов облака, но смогу получить небольшое и мощное устройство для сбора данных, которое справится с нагрузками МО, DL, обработкой видео с камеры, работой с агентами MiNiFi, Python и Java. Воображение здесь ограничивается только 2-мя гигабайтами быстрой оперативной памяти и одним графическим процессором.Пример приложения
Пример выходных данных:{"uuid": "nano_uuid_cmq_20201026202757", "ipaddress": "192.168.1.169",
"networktime": 47.7275505065918, "detectleft": 1.96746826171875,
"detectconfidence": 52.8866550521850pidence ": 52.8866550521850pidence":
52.8866550521850p , "gputemp": "30.0", "gputempf": "86", "cputempf": "93",
"runtime": "169", "host": "nano5",
"filename": "/ opt / demo /images/out_iue_20201026202757.jpg ",
" host_name ":" nano5 "," macaddress ":" 00: e0: 4c: 49: d8: b7 ",
" end ":" 1603744246.924455 "," te ":" 169.4200084209442 ",
«systemtime»: «26.10.2020 16:30:46», «cpu»: 9,9, «diskusage»: «37100,4 МB»,
«Memory»: 91,5, «id»: «20201026202757_64d69a82-88d8-45f8-be06 -1b836cb6cc84 "}Ниже приведен пример вывода при запуске скрипта на Python для классификации изображения с веб-камеры (это Logi веб-камера низкого уровня, но вы можете использовать камеру Raspberry Pi). Еще лучше, если бы мы запустили этот непрерывный вывод сообщений журнала и изображений для агентов MiNiFi. Их можно было бы собрать и отправить на сервер для маршрутизации, преобразования и обработки. root@nano5:/opt/demo/minifi-jetson-nano# jetson_clocks root@nano5:/opt/demo/minifi-jetson-nano# python3 detect.py [gstreamer] initialized gstreamer, version 1.14.5.0[gstreamer] gstCamera -- attempting to create device v4l2:///dev/video0[gstreamer] gstCamera -- found v4l2 device: HD Webcam C615[gstreamer] v4l2-proplist, device.path=(string)/dev/video0, udev-probed=(boolean)false, device.api=(string)v4l2, v4l2.device.driver=(string)uvcvideo, v4l2.device.card=(string)"HD\ Webcam\ C615", v4l2.device.bus_info=(string)usb-70090000.xusb-3.2, v4l2.device.version=(uint)264588, v4l2.device.capabilities=(uint)2216689665, v4l2.device.device_caps=(uint)69206017;[gstreamer] gstCamera -- found 30 caps for v4l2 device /dev/video0[gstreamer] [0] video/x-raw, format=(string)YUY2, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)5/1;[gstreamer] [1] video/x-raw, format=(string)YUY2, width=(int)1600, height=(int)896, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 15/2, 5/1 };[gstreamer] [2] video/x-raw, format=(string)YUY2, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 10/1, 15/2, 5/1 };[gstreamer] [3] video/x-raw, format=(string)YUY2, width=(int)960, height=(int)720, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 15/1, 10/1, 15/2, 5/1 };[gstreamer] [4] video/x-raw, format=(string)YUY2, width=(int)1024, height=(int)576, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 15/1, 10/1, 15/2, 5/1 };[gstreamer] [5] video/x-raw, format=(string)YUY2, width=(int)800, height=(int)600, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [6] video/x-raw, format=(string)YUY2, width=(int)864, height=(int)480, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [7] video/x-raw, format=(string)YUY2, width=(int)800, height=(int)448, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [8] video/x-raw, format=(string)YUY2, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [9] video/x-raw, format=(string)YUY2, width=(int)640, height=(int)360, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [10] video/x-raw, format=(string)YUY2, width=(int)432, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [11] video/x-raw, format=(string)YUY2, width=(int)352, height=(int)288, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [12] video/x-raw, format=(string)YUY2, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [13] video/x-raw, format=(string)YUY2, width=(int)176, height=(int)144, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [14] video/x-raw, format=(string)YUY2, width=(int)160, height=(int)120, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [15] image/jpeg, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [16] image/jpeg, width=(int)1600, height=(int)896, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [17] image/jpeg, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [18] image/jpeg, width=(int)960, height=(int)720, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [19] image/jpeg, width=(int)1024, height=(int)576, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [20] image/jpeg, width=(int)800, height=(int)600, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [21] image/jpeg, width=(int)864, height=(int)480, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [22] image/jpeg, width=(int)800, height=(int)448, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [23] image/jpeg, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [24] image/jpeg, width=(int)640, height=(int)360, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [25] image/jpeg, width=(int)432, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [26] image/jpeg, width=(int)352, height=(int)288, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [27] image/jpeg, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [28] image/jpeg, width=(int)176, height=(int)144, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [29] image/jpeg, width=(int)160, height=(int)120, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] gstCamera -- selected device profile: codec=mjpeg format=unknown width=1280 height=720[gstreamer] gstCamera pipeline string:[gstreamer] v4l2src device=/dev/video0 ! image/jpeg, width=(int)1280, height=(int)720 ! jpegdec ! video/x-raw ! appsink name=mysink[gstreamer] gstCamera successfully created device v4l2:///dev/video0[gstreamer] opening gstCamera for streaming, transitioning pipeline to GST_STATE_PLAYING[gstreamer] gstreamer changed state from NULL to READY ==> mysink[gstreamer] gstreamer changed state from NULL to READY ==> capsfilter1[gstreamer] gstreamer changed state from NULL to READY ==> jpegdec0[gstreamer] gstreamer changed state from NULL to READY ==> capsfilter0[gstreamer] gstreamer changed state from NULL to READY ==> v4l2src0[gstreamer] gstreamer changed state from NULL to READY ==> pipeline0[gstreamer] gstreamer changed state from READY to PAUSED ==> capsfilter1[gstreamer] gstreamer changed state from READY to PAUSED ==> jpegdec0[gstreamer] gstreamer changed state from READY to PAUSED ==> capsfilter0[gstreamer] gstreamer stream status CREATE ==> src[gstreamer] gstreamer changed state from READY to PAUSED ==> v4l2src0[gstreamer] gstreamer changed state from READY to PAUSED ==> pipeline0[gstreamer] gstreamer stream status ENTER ==> src[gstreamer] gstreamer message new-clock ==> pipeline0[gstreamer] gstreamer message stream-start ==> pipeline0[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> capsfilter1[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> jpegdec0[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> capsfilter0[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> v4l2src0[gstreamer] gstCamera -- onPreroll[gstreamer] gstCamera -- map buffer size was less than max size (1382400 vs 1382407)[gstreamer] gstCamera recieve caps: video/x-raw, format=(string)I420, width=(int)1280, height=(int)720, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)1:4:0:0, framerate=(fraction)30/1[gstreamer] gstCamera -- recieved first frame, codec=mjpeg format=i420 width=1280 height=720 size=1382407RingBuffer -- allocated 4 buffers (1382407 bytes each, 5529628 bytes total)[gstreamer] gstreamer changed state from READY to PAUSED ==> mysink[gstreamer] gstreamer message async-done ==> pipeline0[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> mysink[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> pipeline0RingBuffer -- allocated 4 buffers (14745600 bytes each, 58982400 bytes total)jetson.inference -- detectNet loading build-in network 'ssd-mobilenet-v2'detectNet -- loading detection network model from: -- model networks/SSD-Mobilenet-v2/ssd_mobilenet_v2_coco.uff -- input_blob 'Input' -- output_blob 'NMS' -- output_count 'NMS_1' -- class_labels networks/SSD-Mobilenet-v2/ssd_coco_labels.txt -- threshold 0.500000 -- batch_size 1[TRT] TensorRT version 7.1.3[TRT] loading NVIDIA plugins…[TRT] Registered plugin creator - ::GridAnchor_TRT version 1[TRT] Registered plugin creator - ::NMS_TRT version 1[TRT] Registered plugin creator - ::Reorg_TRT version 1[TRT] Registered plugin creator - ::Region_TRT version 1[TRT] Registered plugin creator - ::Clip_TRT version 1[TRT] Registered plugin creator - ::LReLU_TRT version 1[TRT] Registered plugin creator - ::PriorBox_TRT version 1[TRT] Registered plugin creator - ::Normalize_TRT version 1[TRT] Registered plugin creator - ::RPROI_TRT version 1[TRT] Registered plugin creator - ::BatchedNMS_TRT version 1[TRT] Could not register plugin creator - ::FlattenConcat_TRT version 1[TRT] Registered plugin creator - ::CropAndResize version 1[TRT] Registered plugin creator - ::DetectionLayer_TRT version 1[TRT] Registered plugin creator - ::Proposal version 1[TRT] Registered plugin creator - ::ProposalLayer_TRT version 1[TRT] Registered plugin creator - ::PyramidROIAlign_TRT version 1[TRT] Registered plugin creator - ::ResizeNearest_TRT version 1[TRT] Registered plugin creator - ::Split version 1[TRT] Registered plugin creator - ::SpecialSlice_TRT version 1[TRT] Registered plugin creator - ::InstanceNormalization_TRT version 1[TRT] detected model format - UFF (extension '.uff')[TRT] desired precision specified for GPU: FASTEST[TRT] requested fasted precision for device GPU without providing valid calibrator, disabling INT8[TRT] native precisions detected for GPU: FP32, FP16[TRT] selecting fastest native precision for GPU: FP16[TRT] attempting to open engine cache file /usr/local/bin/networks/SSD-Mobilenet-v2/ssd_mobilenet_v2_coco.uff.1.1.7103.GPU.FP16.engine[TRT] loading network plan from engine cache… /usr/local/bin/networks/SSD-Mobilenet-v2/ssd_mobilenet_v2_coco.uff.1.1.7103.GPU.FP16.engine[TRT] device GPU, loaded /usr/local/bin/networks/SSD-Mobilenet-v2/ssd_mobilenet_v2_coco.uff[TRT] Deserialize required 2384046 microseconds.[TRT] [TRT] CUDA engine context initialized on device GPU:[TRT] -- layers 117[TRT] -- maxBatchSize 1[TRT] -- workspace 0[TRT] -- deviceMemory 35449344[TRT] -- bindings 3[TRT] binding 0 -- index 0 -- name 'Input' -- type FP32 -- in/out INPUT -- # dims 3 -- dim #0 3 (SPATIAL) -- dim #1 300 (SPATIAL) -- dim #2 300 (SPATIAL)[TRT] binding 1 -- index 1 -- name 'NMS' -- type FP32 -- in/out OUTPUT -- # dims 3 -- dim #0 1 (SPATIAL) -- dim #1 100 (SPATIAL) -- dim #2 7 (SPATIAL)[TRT] binding 2 -- index 2 -- name 'NMS_1' -- type FP32 -- in/out OUTPUT -- # dims 3 -- dim #0 1 (SPATIAL) -- dim #1 1 (SPATIAL) -- dim #2 1 (SPATIAL)[TRT] [TRT] binding to input 0 Input binding index: 0[TRT] binding to input 0 Input dims (b=1 c=3 h=300 w=300) size=1080000[TRT] binding to output 0 NMS binding index: 1[TRT] binding to output 0 NMS dims (b=1 c=1 h=100 w=7) size=2800[TRT] binding to output 1 NMS_1 binding index: 2[TRT] binding to output 1 NMS_1 dims (b=1 c=1 h=1 w=1) size=4[TRT] [TRT] device GPU, /usr/local/bin/networks/SSD-Mobilenet-v2/ssd_mobilenet_v2_coco.uff initialized.[TRT] W = 7 H = 100 C = 1[TRT] detectNet -- maximum bounding boxes: 100[TRT] detectNet -- loaded 91 class info entries[TRT] detectNet -- number of object classes: 91detected 0 objects in image[TRT] ------------------------------------------------[TRT] Timing Report /usr/local/bin/networks/SSD-Mobilenet-v2/ssd_mobilenet_v2_coco.uff[TRT] ------------------------------------------------[TRT] Pre-Process CPU 0.07802ms CUDA 0.48875ms[TRT] Network CPU 45.52254ms CUDA 44.93750ms[TRT] Post-Process CPU 0.03193ms CUDA 0.03177ms[TRT] Total CPU 45.63248ms CUDA 45.45802ms[TRT] ------------------------------------------------[TRT] note -- when processing a single image, run 'sudo jetson_clocks' before to disable DVFS for more accurate profiling/timing measurements[image] saved '/opt/demo/images/out_kfy_20201030195943.jpg' (1280x720, 4 channels)[TRT] ------------------------------------------------[TRT] Timing Report /usr/local/bin/networks/SSD-Mobilenet-v2/ssd_mobilenet_v2_coco.uff[TRT] ------------------------------------------------[TRT] Pre-Process CPU 0.07802ms CUDA 0.48875ms[TRT] Network CPU 45.52254ms CUDA 44.93750ms[TRT] Post-Process CPU 0.03193ms CUDA 0.03177ms[TRT] Total CPU 45.63248ms CUDA 45.45802ms[TRT] ------------------------------------------------[gstreamer] gstCamera -- stopping pipeline, transitioning to GST_STATE_NULL[gstreamer] gstCamera -- pipeline stoppedМы используем расширенный пример сценария, скрипт detect.py. Чтобы сделать снимок веб-камеры и классифицировать его: camera = jetson.utils.gstCamera(width, height, camera)Модель работает достаточно быстро и дает нам те результаты и данные, которые нужно.
классификация изображения моделью на Jetson Nano 2GBСсылки:· https://github.com/tspannhw/minifi-jetson-nano· https://youtu.be/fIESu365Sb0· https://developer.nvidia.com/blog/ultimate-starter-ai-computer-jetson-nano-2gb-developer-kit/
===========
Источник:
habr.com
===========
===========
Автор оригинала: Timothy Spann
===========Похожие новости:
- [Big Data, Веб-аналитика, Growth Hacking, Интернет-маркетинг, Поисковая оптимизация] Как аналитика помогает нашей IT компании получать крупные контракты из SEO
- [Алгоритмы, Обработка изображений, Машинное обучение] Генетический алгоритм для сегментаций строк в рукописном документе
- [Python, Программирование, Big Data, Визуализация данных, Звук] Популярность BPM в разных жанрах музыки. Анализ скорости исполнения 500 лучших песен
- [Программирование, Машинное обучение] Искусственный интеллект обновит устаревшее программное обеспечение за вас (перевод)
- [Python, Машинное обучение, Искусственный интеллект, TensorFlow] Нейродайджест: главное из области машинного обучения за февраль 2021
- [Машинное обучение] Как главная страница ivi оптимизируется под пользователей и их устройства?
- [Машинное обучение, Искусственный интеллект, IT-компании, Natural Language Processing] DeepPavlov 3 года: обзор и итоги 2020 года
- [Машинное обучение, Искусственный интеллект, Natural Language Processing] NLP (Natural Language Processing) для обращений граждан. Эксперимент на реальных данных
- [Data Mining, Машинное обучение, Искусственный интеллект, Финансы в IT, Data Engineering] Специфические задачи Data Science в Банке
- [Big Data, Математика, Карьера в IT-индустрии] За что IT-компании платят экономистам и сколько стоит человеческая жизнь?
Теги для поиска: #_big_data, #_mashinnoe_obuchenie (Машинное обучение), #_hadoop, #_videokarty (Видеокарты), #_nvidia_jetson_nano, #_periferija (периферия), #_potokovaja_peredacha_dannyh (потоковая передача данных), #_mashinnoe+obuchenie (машинное+обучение), #_blog_kompanii_cloudera (
Блог компании Cloudera
), #_big_data, #_mashinnoe_obuchenie (
Машинное обучение
), #_hadoop, #_videokarty (
Видеокарты
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 13:18
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Мне некогда было снимать своё видео распаковки - не терпелось запустить это превосходное устройство. NVIDIA Jetson Nano 2GB теперь можно купитьвсего за 59 долларов!!! Я провел пробный запуск, у него есть все функции, которые вам нравятся для Jetson, всего на 2 Гб оперативной памяти и 2 USB порта меньше. Это очень доступное устройство для создания классных кейсов.Распаковка: https://www.youtube.com/watch?v=dVGEtWYkP2c&feature=youtu.beПодключение к приложениям ИИ-сообщества: https://youtu.be/2T8CG7lDkcUОбразовательные проекты: https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-nano/education-projects/Технические характеристики: Графический процессор: NVIDIA Maxwell™ со 128 ядрами CUDA Процессор: Четырехъядерный ARM® A57 с частотой 1,43 ГГц Память: 2 Гб LPDDR4, 64-bit 25,6 Гбит/с Накопитель: microSD (не входит в комплект) Кодирование видео: 4K с частотой 30 Гц | 4 потока в разрешении 1080p с частотой 30 Гц | 9 потоков в разрешении 720p с частотой 30 Гц (H.264/H.265) Декодирование видео: 4K с частотой 60 Гц | 2 потока в разрешении 4K с частотой 30 Гц | 8 потоков в разрешении 1080p с частотой 30 Гц | 18 потоков в разрешении 720р с частотой 30 Гц (H.264/H.265) Соединение: Беспроводное подключение Gigabit Ethernet, 802.11ac* Камера: 1 разъем MIPI CSI-2 Разъемы дисплея: Разъем HDMI USB: 1x USB 3.0 Type A, 2x USB 2.0 Type A, 1x USB 2.0 Micro-B Прочие разъемы: Разъем 40-пин (GPIO, I2C, I2S, SPI, UART) Разъем: 12-пин (питание и связанные сигналы, UART) Разъем вентилятора: 40-пин * Размеры: 100 x 80 x 29 ммВ зависимости от того, где или как вы покупаете устройство, вам, возможно, придется купить блок питания и USB WiFi.Все мои существующие рабочие нагрузки отлично работают в версии на 2 ГБ, но с очень хорошей экономией средств. Настройка проста, система быстрая, я настоятельно рекомендую всем, кто ищет быстрый способ поэкспериментировать с ИИ на периферии и другими пограничными рабочими нагрузками. Это может быть отличный вариант для самостоятельного обучения. Я также подключил свой Jetson к монитору, клавиатуре и мыши, и я могу использовать его сразу же как для вычислений на периферии, так и в качестве основного рабочего ПК. С большим количеством таких устройств можно будет легко запустить MiNiFi агентов, модель классификации на Python и модели Deep Learning.NVIDIA не остановилась на самом дешевом пограничном устройстве, у них также есть несколько серьезных корпоративных обновлений: Cloudera превозносит на новый уровень корпоративное озеро данных благодаря сотрудничеству с NVIDIA!Пример запуска модели глубокого обученияИсходники и настройки: https://github.com/tspannhw/SettingUpAJetsonNano2GB/blob/main/README.mdУстройство NVIDIA Jetson Nano 2GB великолепно - ничего лишнего. Я скопировал своего агента MiNiFi и код из других Jetson Nanos, Xavier NX и TX1, и все работает нормально. Скорость вполне подходит для большинства потребностей, особенно для задач разработки и прототипирования. Я предпочитаю Xavier, но за эту цену выбор достойный. Для большинства сценариев использования IoT/ИИ на периферии я собираюсь задействовать несколько Jetson Nano. Я уже использовал NVidia Jetson 2GB для демонстрации на некоторых мероприятиях, включая ApacheCon, BeamSummit, Open Source Summit и AI Dev World: https://www.linkedin.com/pulse/2020-streaming-edge-ai-events-tim-spann/Для захвата неподвижных изображений и создания их каталога для обработки я установил fswebcam.Обычно я использую этот гайд: https://github.com/dusty-nv/jetson-inference. Вы получите отличные библиотеки, руководства, документацию и примеры. Обычно я создаю свои приложения, пользуясь одним из этих примеров, а также использую одну из превосходных готовых моделей NVIDIA. Это значительно ускоряет разработку и развертывание Edge2AI-приложений, будь то задачи IoT или другие цели. Это все работает со стандартными подключаемыми камерами Raspberry Pi и отличными USB веб-камерами Logitech, которые я использовал со всеми другими устройствами NVIDIA.При такой цене, кажется, нет причин, по которым любому разработчику в любой компании не стоило бы иметь такое устройство. Это отличное решение для тестирования приложений Edge AI и классификации с очень приличной скоростью. Во время проведения презентации на NetHope Global Summit, и подумал, что эти устройства за 59 долларов вполне способны стать отличным вариантом для некоммерческих организаций, которые могут использовать их для сбора и анализа данных ‘в поле’. https://www.nethopeglobalsummit.org/agenda-2020#sz-tab-44134 Я исследую некоторые сценарии использования, чтобы посмотреть, можно ли заранее создать несколько простых приложений, которые такая организация могла бы просто взять и запустить. Посмотрим, что получится. Периферийное устройство с графическим процессором за 59 долларов позволяет использовать некоторые новые приложения по очень доступной цене. За 59 долларов я не получу много ресурсов облака, но смогу получить небольшое и мощное устройство для сбора данных, которое справится с нагрузками МО, DL, обработкой видео с камеры, работой с агентами MiNiFi, Python и Java. Воображение здесь ограничивается только 2-мя гигабайтами быстрой оперативной памяти и одним графическим процессором.Пример приложения Пример выходных данных:{"uuid": "nano_uuid_cmq_20201026202757", "ipaddress": "192.168.1.169", "networktime": 47.7275505065918, "detectleft": 1.96746826171875, "detectconfidence": 52.8866550521850pidence ": 52.8866550521850pidence": 52.8866550521850p , "gputemp": "30.0", "gputempf": "86", "cputempf": "93", "runtime": "169", "host": "nano5", "filename": "/ opt / demo /images/out_iue_20201026202757.jpg ", " host_name ":" nano5 "," macaddress ":" 00: e0: 4c: 49: d8: b7 ", " end ":" 1603744246.924455 "," te ":" 169.4200084209442 ", «systemtime»: «26.10.2020 16:30:46», «cpu»: 9,9, «diskusage»: «37100,4 МB», «Memory»: 91,5, «id»: «20201026202757_64d69a82-88d8-45f8-be06 -1b836cb6cc84 "}Ниже приведен пример вывода при запуске скрипта на Python для классификации изображения с веб-камеры (это Logi веб-камера низкого уровня, но вы можете использовать камеру Raspberry Pi). Еще лучше, если бы мы запустили этот непрерывный вывод сообщений журнала и изображений для агентов MiNiFi. Их можно было бы собрать и отправить на сервер для маршрутизации, преобразования и обработки. root@nano5:/opt/demo/minifi-jetson-nano# jetson_clocks root@nano5:/opt/demo/minifi-jetson-nano# python3 detect.py [gstreamer] initialized gstreamer, version 1.14.5.0[gstreamer] gstCamera -- attempting to create device v4l2:///dev/video0[gstreamer] gstCamera -- found v4l2 device: HD Webcam C615[gstreamer] v4l2-proplist, device.path=(string)/dev/video0, udev-probed=(boolean)false, device.api=(string)v4l2, v4l2.device.driver=(string)uvcvideo, v4l2.device.card=(string)"HD\ Webcam\ C615", v4l2.device.bus_info=(string)usb-70090000.xusb-3.2, v4l2.device.version=(uint)264588, v4l2.device.capabilities=(uint)2216689665, v4l2.device.device_caps=(uint)69206017;[gstreamer] gstCamera -- found 30 caps for v4l2 device /dev/video0[gstreamer] [0] video/x-raw, format=(string)YUY2, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)5/1;[gstreamer] [1] video/x-raw, format=(string)YUY2, width=(int)1600, height=(int)896, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 15/2, 5/1 };[gstreamer] [2] video/x-raw, format=(string)YUY2, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 10/1, 15/2, 5/1 };[gstreamer] [3] video/x-raw, format=(string)YUY2, width=(int)960, height=(int)720, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 15/1, 10/1, 15/2, 5/1 };[gstreamer] [4] video/x-raw, format=(string)YUY2, width=(int)1024, height=(int)576, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 15/1, 10/1, 15/2, 5/1 };[gstreamer] [5] video/x-raw, format=(string)YUY2, width=(int)800, height=(int)600, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [6] video/x-raw, format=(string)YUY2, width=(int)864, height=(int)480, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [7] video/x-raw, format=(string)YUY2, width=(int)800, height=(int)448, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [8] video/x-raw, format=(string)YUY2, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [9] video/x-raw, format=(string)YUY2, width=(int)640, height=(int)360, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [10] video/x-raw, format=(string)YUY2, width=(int)432, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [11] video/x-raw, format=(string)YUY2, width=(int)352, height=(int)288, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [12] video/x-raw, format=(string)YUY2, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [13] video/x-raw, format=(string)YUY2, width=(int)176, height=(int)144, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [14] video/x-raw, format=(string)YUY2, width=(int)160, height=(int)120, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [15] image/jpeg, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [16] image/jpeg, width=(int)1600, height=(int)896, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [17] image/jpeg, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [18] image/jpeg, width=(int)960, height=(int)720, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [19] image/jpeg, width=(int)1024, height=(int)576, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [20] image/jpeg, width=(int)800, height=(int)600, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [21] image/jpeg, width=(int)864, height=(int)480, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [22] image/jpeg, width=(int)800, height=(int)448, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [23] image/jpeg, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [24] image/jpeg, width=(int)640, height=(int)360, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [25] image/jpeg, width=(int)432, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [26] image/jpeg, width=(int)352, height=(int)288, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [27] image/jpeg, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [28] image/jpeg, width=(int)176, height=(int)144, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] [29] image/jpeg, width=(int)160, height=(int)120, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 24/1, 20/1, 15/1, 10/1, 15/2, 5/1 };[gstreamer] gstCamera -- selected device profile: codec=mjpeg format=unknown width=1280 height=720[gstreamer] gstCamera pipeline string:[gstreamer] v4l2src device=/dev/video0 ! image/jpeg, width=(int)1280, height=(int)720 ! jpegdec ! video/x-raw ! appsink name=mysink[gstreamer] gstCamera successfully created device v4l2:///dev/video0[gstreamer] opening gstCamera for streaming, transitioning pipeline to GST_STATE_PLAYING[gstreamer] gstreamer changed state from NULL to READY ==> mysink[gstreamer] gstreamer changed state from NULL to READY ==> capsfilter1[gstreamer] gstreamer changed state from NULL to READY ==> jpegdec0[gstreamer] gstreamer changed state from NULL to READY ==> capsfilter0[gstreamer] gstreamer changed state from NULL to READY ==> v4l2src0[gstreamer] gstreamer changed state from NULL to READY ==> pipeline0[gstreamer] gstreamer changed state from READY to PAUSED ==> capsfilter1[gstreamer] gstreamer changed state from READY to PAUSED ==> jpegdec0[gstreamer] gstreamer changed state from READY to PAUSED ==> capsfilter0[gstreamer] gstreamer stream status CREATE ==> src[gstreamer] gstreamer changed state from READY to PAUSED ==> v4l2src0[gstreamer] gstreamer changed state from READY to PAUSED ==> pipeline0[gstreamer] gstreamer stream status ENTER ==> src[gstreamer] gstreamer message new-clock ==> pipeline0[gstreamer] gstreamer message stream-start ==> pipeline0[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> capsfilter1[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> jpegdec0[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> capsfilter0[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> v4l2src0[gstreamer] gstCamera -- onPreroll[gstreamer] gstCamera -- map buffer size was less than max size (1382400 vs 1382407)[gstreamer] gstCamera recieve caps: video/x-raw, format=(string)I420, width=(int)1280, height=(int)720, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)1:4:0:0, framerate=(fraction)30/1[gstreamer] gstCamera -- recieved first frame, codec=mjpeg format=i420 width=1280 height=720 size=1382407RingBuffer -- allocated 4 buffers (1382407 bytes each, 5529628 bytes total)[gstreamer] gstreamer changed state from READY to PAUSED ==> mysink[gstreamer] gstreamer message async-done ==> pipeline0[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> mysink[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> pipeline0RingBuffer -- allocated 4 buffers (14745600 bytes each, 58982400 bytes total)jetson.inference -- detectNet loading build-in network 'ssd-mobilenet-v2'detectNet -- loading detection network model from: -- model networks/SSD-Mobilenet-v2/ssd_mobilenet_v2_coco.uff -- input_blob 'Input' -- output_blob 'NMS' -- output_count 'NMS_1' -- class_labels networks/SSD-Mobilenet-v2/ssd_coco_labels.txt -- threshold 0.500000 -- batch_size 1[TRT] TensorRT version 7.1.3[TRT] loading NVIDIA plugins…[TRT] Registered plugin creator - ::GridAnchor_TRT version 1[TRT] Registered plugin creator - ::NMS_TRT version 1[TRT] Registered plugin creator - ::Reorg_TRT version 1[TRT] Registered plugin creator - ::Region_TRT version 1[TRT] Registered plugin creator - ::Clip_TRT version 1[TRT] Registered plugin creator - ::LReLU_TRT version 1[TRT] Registered plugin creator - ::PriorBox_TRT version 1[TRT] Registered plugin creator - ::Normalize_TRT version 1[TRT] Registered plugin creator - ::RPROI_TRT version 1[TRT] Registered plugin creator - ::BatchedNMS_TRT version 1[TRT] Could not register plugin creator - ::FlattenConcat_TRT version 1[TRT] Registered plugin creator - ::CropAndResize version 1[TRT] Registered plugin creator - ::DetectionLayer_TRT version 1[TRT] Registered plugin creator - ::Proposal version 1[TRT] Registered plugin creator - ::ProposalLayer_TRT version 1[TRT] Registered plugin creator - ::PyramidROIAlign_TRT version 1[TRT] Registered plugin creator - ::ResizeNearest_TRT version 1[TRT] Registered plugin creator - ::Split version 1[TRT] Registered plugin creator - ::SpecialSlice_TRT version 1[TRT] Registered plugin creator - ::InstanceNormalization_TRT version 1[TRT] detected model format - UFF (extension '.uff')[TRT] desired precision specified for GPU: FASTEST[TRT] requested fasted precision for device GPU without providing valid calibrator, disabling INT8[TRT] native precisions detected for GPU: FP32, FP16[TRT] selecting fastest native precision for GPU: FP16[TRT] attempting to open engine cache file /usr/local/bin/networks/SSD-Mobilenet-v2/ssd_mobilenet_v2_coco.uff.1.1.7103.GPU.FP16.engine[TRT] loading network plan from engine cache… /usr/local/bin/networks/SSD-Mobilenet-v2/ssd_mobilenet_v2_coco.uff.1.1.7103.GPU.FP16.engine[TRT] device GPU, loaded /usr/local/bin/networks/SSD-Mobilenet-v2/ssd_mobilenet_v2_coco.uff[TRT] Deserialize required 2384046 microseconds.[TRT] [TRT] CUDA engine context initialized on device GPU:[TRT] -- layers 117[TRT] -- maxBatchSize 1[TRT] -- workspace 0[TRT] -- deviceMemory 35449344[TRT] -- bindings 3[TRT] binding 0 -- index 0 -- name 'Input' -- type FP32 -- in/out INPUT -- # dims 3 -- dim #0 3 (SPATIAL) -- dim #1 300 (SPATIAL) -- dim #2 300 (SPATIAL)[TRT] binding 1 -- index 1 -- name 'NMS' -- type FP32 -- in/out OUTPUT -- # dims 3 -- dim #0 1 (SPATIAL) -- dim #1 100 (SPATIAL) -- dim #2 7 (SPATIAL)[TRT] binding 2 -- index 2 -- name 'NMS_1' -- type FP32 -- in/out OUTPUT -- # dims 3 -- dim #0 1 (SPATIAL) -- dim #1 1 (SPATIAL) -- dim #2 1 (SPATIAL)[TRT] [TRT] binding to input 0 Input binding index: 0[TRT] binding to input 0 Input dims (b=1 c=3 h=300 w=300) size=1080000[TRT] binding to output 0 NMS binding index: 1[TRT] binding to output 0 NMS dims (b=1 c=1 h=100 w=7) size=2800[TRT] binding to output 1 NMS_1 binding index: 2[TRT] binding to output 1 NMS_1 dims (b=1 c=1 h=1 w=1) size=4[TRT] [TRT] device GPU, /usr/local/bin/networks/SSD-Mobilenet-v2/ssd_mobilenet_v2_coco.uff initialized.[TRT] W = 7 H = 100 C = 1[TRT] detectNet -- maximum bounding boxes: 100[TRT] detectNet -- loaded 91 class info entries[TRT] detectNet -- number of object classes: 91detected 0 objects in image[TRT] ------------------------------------------------[TRT] Timing Report /usr/local/bin/networks/SSD-Mobilenet-v2/ssd_mobilenet_v2_coco.uff[TRT] ------------------------------------------------[TRT] Pre-Process CPU 0.07802ms CUDA 0.48875ms[TRT] Network CPU 45.52254ms CUDA 44.93750ms[TRT] Post-Process CPU 0.03193ms CUDA 0.03177ms[TRT] Total CPU 45.63248ms CUDA 45.45802ms[TRT] ------------------------------------------------[TRT] note -- when processing a single image, run 'sudo jetson_clocks' before to disable DVFS for more accurate profiling/timing measurements[image] saved '/opt/demo/images/out_kfy_20201030195943.jpg' (1280x720, 4 channels)[TRT] ------------------------------------------------[TRT] Timing Report /usr/local/bin/networks/SSD-Mobilenet-v2/ssd_mobilenet_v2_coco.uff[TRT] ------------------------------------------------[TRT] Pre-Process CPU 0.07802ms CUDA 0.48875ms[TRT] Network CPU 45.52254ms CUDA 44.93750ms[TRT] Post-Process CPU 0.03193ms CUDA 0.03177ms[TRT] Total CPU 45.63248ms CUDA 45.45802ms[TRT] ------------------------------------------------[gstreamer] gstCamera -- stopping pipeline, transitioning to GST_STATE_NULL[gstreamer] gstCamera -- pipeline stoppedМы используем расширенный пример сценария, скрипт detect.py. Чтобы сделать снимок веб-камеры и классифицировать его: camera = jetson.utils.gstCamera(width, height, camera)Модель работает достаточно быстро и дает нам те результаты и данные, которые нужно. классификация изображения моделью на Jetson Nano 2GBСсылки:· https://github.com/tspannhw/minifi-jetson-nano· https://youtu.be/fIESu365Sb0· https://developer.nvidia.com/blog/ultimate-starter-ai-computer-jetson-nano-2gb-developer-kit/ =========== Источник: habr.com =========== =========== Автор оригинала: Timothy Spann ===========Похожие новости:
Блог компании Cloudera ), #_big_data, #_mashinnoe_obuchenie ( Машинное обучение ), #_hadoop, #_videokarty ( Видеокарты ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 13:18
Часовой пояс: UTC + 5