[Big Data, Машинное обучение, Hadoop, Видеокарты] Стриминг Edge2AI на NVIDIA JETSON Nano 2Гб с использованием агентов MiNiFi в приложениях FLaNK (перевод)

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
03-Мар-2021 12:30


Мне некогда было снимать своё видео распаковки - не терпелось запустить это превосходное устройство. 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, #_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