Машинное обучение повсюду. Распознавание голоса и рукописного ввода, медицинские диагнозы, цифровые помощники (такие как Google Assistant или Siri) и беспилотные автомобили — это лишь малая часть различных средств и методов, с помощью которых машины делают выводы, учатся, растут и, по-видимому, думают самостоятельно. . NVIDIA невероятно инвестирует в технологии машинного обучения и наблюдает взрывной рост своего бизнеса центров обработки данных благодаря огромным достижениям в области искусственного интеллекта . Конечно, центры обработки данных — это только одно место, где живут ИИ и машинное обучение; интеллектуальные устройства на периферии также должны получать информацию из окружающего мира. Вот где на помощь приходят платформы искусственного интеллекта NVIDIA Jetson.
Некоторые высококлассные продукты NVIDIA Jetson немного дороги для любителей и новичков, поэтому компания создала Jetson Nano . Эта платформа существует уже некоторое время как способ для энтузиастов ИИ проникнуть в мир машинного обучения с аппаратным ускорением или для опытных разработчиков, чтобы проверить и быстро развернуть концепции. Самый дешевый комплект Jetson Nano 2 ГБ теперь представляет собой систему на модуле за 59 долларов с множеством подключений ввода-вывода, встроенных в граничные разъемы, где вычислительный ресурс подключается и не намного больше, чем традиционный ноутбук SO-DIMM. Эта маленькая плата оснащена четырехъядерным процессором Arm Cortex A57 и интегрированным 128-ядерным процессором NVIDIA Maxwell . GPU, который ускоряет рабочие нагрузки, ориентированные на CUDA, и имеет достаточно памяти для загрузки и запуска проекта.
Комплект для разработки программного обеспечения NVIDIA JetPack управляет целым рядом приложений, которые полагаются на обученные модели искусственного интеллекта и логические выводы, выполняемые на его архитектурах графических процессоров. Этот графический процессор Maxwell внутри Jetson Nano должен быть способен обрабатывать данные достаточно быстро, чтобы обрабатывать все виды реальных сценариев использования. Обработка изображений включает в себя массу решаемых задач, от идентификации объектов до отслеживания препятствий. Беспилотные автомобили, сельскохозяйственные инструменты и заводское оборудование — это лишь некоторые из приложений, которые в настоящее время работают на технологиях искусственного интеллекта NVIDIA, и Jetson Nano предоставляет вам доступ к тем же API и инструментам разработки программного обеспечения.
Доступный комплект для разработки ИИ
Комплект разработчика Jetson Nano 2 ГБ использует тот же модуль и соединяет его с хост-платой с физическими разъемами USB, HDMI, Ethernet и DisplayPort. Также имеется 40-контактный разъем GPIO и разъем для ленточного кабеля для последовательного интерфейса камеры. Еще в марте 2019 года NVIDIA выпустила первую версию Jetson Nano с 4 ГБ памяти за 99 долларов. Первоначальная версия хост-платы также имела порт micro USB и цилиндрический разъем в качестве двух разных вариантов источника питания.
Чтобы предоставить комплект разработчика Jetson Nano еще большему количеству студентов и разработчиков, новый Jetson Nano объемом 2 ГБ сочетает тот же SoC всего с 2 ГБ памяти, но стоит всего 59 долларов. В нем разъемы micro USB и цилиндрические разъемы заменены на один разъем USB Type-C для питания. Штыри GPIO и разъем для камеры остались, что является отличной новостью для людей, интересующихся робототехникой. Тем не менее, он убирает порт USB и разъем DisplayPort, чтобы снизить затраты.
Начать довольно просто. Комплект, который нам прислала NVIDIA, включал SoM Jetson Nano 2 ГБ, плату разработчика, блок питания USB-C и карту micro SD на 64 ГБ. Для установки операционной системы требуется загрузить образ с портала разработчиков NVIDIA. и запишите его на SD-карту с помощью инструмента для прошивки изображений, такого как balenaEtcher. После того, как изображение будет записано на SD-карту, вставьте его в устройство чтения micro SD на Nano и подключите питание, клавиатуру, мышь, Ethernet и кабель HDMI или DisplayPort. Инструменты разработки уже установлены и готовы к работе как часть процесса прошивки образа.
Прошивка образа на SD-карту — это простой одноэтапный процесс.
Режим бога — теперь можно приступать к созданию искусственного интеллекта
Как только дистрибутив Linux на основе Ubuntu 18.04 будет запущен и запущен, самое время приступить к изучению проектов ИИ. Для начала NVIDIA рекомендует ознакомиться с проектом логического вывода Hello AI World на GitHub. Существует множество функций и множество предварительно обученных моделей, готовых выводить данные на основе изображений, снятых модулем камеры или сохраненных в локальных файлах. В комплект, поставляемый NVIDIA, не входила камера, но мы купили модуль с датчиком Sony IMX219 и полем обзора 160 градусов примерно за 22 доллара на Amazon .
Мы клонировали этот репозиторий Jetson Inference и построил проект, используя документацию NVIDIA, что понятно любому, кто когда-либо запускал make-файл в Linux. Даже если вы не знакомы с процессом, инструкции довольно понятны для новичков. К сожалению, поскольку для компиляции Jetson Nano использует свой четырехъядерный комплекс Cortex A57, этот процесс занял около получаса. Можно встать и выпить чашку кофе, но примерно на полпути нам было предложено ввести пароль нашей учетной записи пользователя, поэтому на следующем этапе можно было установить некоторые дополнительные зависимости.
Простейшим вариантом использования этих предварительно обученных моделей ИИ является классификация изображений. Использовать его просто: перетащите кучу изображений в локальную папку, а затем включите приложение AI. Модель ИИ считывает каждое изображение, вытаскивает объекты, а затем делает все возможное, чтобы идентифицировать объект изображения. Наряду с ответом ИИ также предоставляет процентиль, показывающий, насколько он уверен, что выбрал правильный предмет. Было очень весело пытаться обмануть ИИ, заставив его анализировать «плохие» фотографии, на которых то, что мы считаем объектом, находится не в фокусе или не в центре.
Веселье с распознаванием изображений и получение правильного результата

Когда мы запускали проект, мы в основном беспокоились о том, не будет ли падения производительности из-за того, что более новый и дешевый Jetson Nano имеет вдвое меньше оперативной памяти, чем исходная модель. К счастью, оказалось, что это не так. У NVIDIA есть ряд результатов тестов, опубликованных для исходной модели, с оценками, выраженными в кадрах в секунду и в миллисекундах. Поскольку каждый запуск проекта Hello World AI выдает метрики, показывающие, сколько времени занял процесс, было легко провести сравнение. Каждый раз Jetson Nano объемом 2 Гб просматривал изображения примерно с той же скоростью, что и оригинал. Единственный раз, когда мы когда-либо видели какое-либо предупреждение о памяти, было, когда браузер Chromium работал с парой открытых вкладок, показывающих документацию проекта. Это означает, что можно столкнуться с некоторыми проблемами накладных расходов,
Классификация изображений — это процесс определения того, что является предметом фотографии. Модель ИИ сканирует изображение и добавляет метку, показывающую, что, по ее мнению, представляет собой объект, а также процент уверенности ИИ в том, что это правильно. Различные модели используют фрагменты изображения разного размера, чтобы выяснить, что находится в каждой части, а затем уверенно (или нет) решает, какой обнаруженный объект в каждом фрагменте является субъектом. Затем выясняется в целом, что это за предмет.
Не растерявшись, мы двинулись дальше. Следующим «шагом» в этом процессе является идентификация объекта. Модели ИИ работают с изображением, пытаясь найти различные объекты, которые не являются частью фона. На этот раз модель помещает все объекты на фотографии в разноцветные коробки. Каждая коробка имеет свою собственную метку, которая показывает, что она думает об объекте и какой процент уверенности имеет в своем заключении. На этот раз даже самая простая модель ИИ была способна идентифицировать и бегуна, и машину на заднем плане.
На этот раз модель правильно идентифицировала объекты на фото, несмотря на то, насколько размытым был бегун.
Последним является семантическая сегментация, которая представляет собой процесс для каждого пикселя, который идентифицирует различные объекты на фотографии и раскрашивает их. Изображение ниже снова является нашим образцом с различными объектами, которые, по мнению ИИ, могут быть выделены. Это проливает некоторый свет на наши предыдущие результаты, когда он думал, что объект был мотороллером или парковочным счетчиком, поскольку на самом деле он идентифицировал только автомобили как объекты фотографии. Бегун, вероятно, был объектом, идентифицированным как парковочный счетчик или мотороллер, поскольку единственные объекты, находящиеся в фокусе, которые он мог семантически обнаружить, были в фокусе.
Семантическая сегментация идентифицирует объекты для каждого пикселя.
Все это может показаться забавным или сбоем ИИ, но, возможно, вам знакома фраза «мусор на входе, мусор на выходе». Фотография может иметь художественную ценность, но она не четкая и не в фокусе, и ИИ мог полагаться только на размытое месиво, чтобы попытаться определить, что это было. То, что оно вообще вытащило человека, это, прямо скажем, удивительно. Когда объект находится в фокусе, результаты намного более четкие. Ниже приведен один из таких примеров нейронной сети классификации изображений, использующей самую быструю модель по умолчанию на более четком изображении. Хотя результаты не идеальны, мы можем, по крайней мере, увидеть, откуда они взялись.



Общественные проекты искусственного интеллекта могут быть увлекательными
Как только мы убедились, что все работает как надо, поработав над проектом для начинающих Hello AI World, пришло время перейти на страницу проектов сообщества NVIDIA Jetson . Некоторые из представленных здесь проектов требуют очень мало дополнительного оборудования, например, собственный оценщик позы человека в реальном времени от NVIDIA, но имеют ограниченную полезность. Еще один полезный проект, не требующий тонны аппаратного обеспечения, — термометр с искусственным интеллектом, который использует модуль тепловизионной камеры FLIR для считывания температуры человека и отправки предупреждения, если у человека жар.
Лучший способ, который я нашел, чтобы узнать о теме или структуре разработки программного обеспечения, — это найти существующий образец, использовать его и пройтись по коду, чтобы увидеть, что происходит. Это означало, что мы выбрали один из проектов, для которого у нас было оборудование, и покопались в нем, и превращение потока с камеры в электронную музыку показалось забавным примером. Проект «DeepStream <3 OSC» был идеальным кандидатом: ему нужен только источник видео, а затем он будет преобразовывать обнаруженные объекты в звуковые частоты как своего рода интерактивная музыкальная машина. «Музыка», генерируемая системой, управляется сценарием, который берет объект и выдает музыкальную ноту. У проекта есть хорошая демонстрация на YouTube, которую можно посмотреть. Нажмите кнопку воспроизведения ниже, чтобы ощутить вкус «Матрицы » в воссозданном звуке…
Мы хотели провести сравнительное тестирование Jetson Nano. Проблема в том, что самый большой набор тестов машинного обучения, MLbench, не поддерживает Arm64 в общедоступной версии. Когда мы попытались выполнить сборку с использованием включенных сценариев, это не удалось, потому что SSE не поддерживается, так как это функция x86. Тест также не совсем знает, что делать с ядрами CUDA. Что касается проектов, доступных в сообществе NVIDIA, все выглядело довольно быстро, хотя производительность здесь не в центре внимания. Другие более дорогие платформы Jetson более высокого класса, очевидно, быстрее, и те, кому нужна лучшая производительность, должны сосредоточиться на них. Комплект Jetson Nano 2 ГБ, с другой стороны, является хорошей платформой для разработки и тестирования начального уровня или с низким энергопотреблением.
Jetson Nano 2 ГБ Выводы
Версия NVIDIA Jetson Nano объемом 2 ГБ может справиться практически с любым проектом, что и его более дорогой брат, по цене, которую может себе позволить больше людей. При цене 59 долларов, что примерно сопоставимо с Raspberry Pi 4, Jetson Nano объемом 2 ГБ обладает достаточной вычислительной мощностью для самых разных задач машинного обучения. Вычислительная плата размера SO-DIMM достаточно мала, чтобы ее можно было потерять на захламленном столе (не спрашивайте меня, откуда я это знаю), а основная плата, прилагаемая к комплекту для разработки, только удваивает занимаемую площадь. Несмотря на миниатюрный размер, у него достаточно возможностей подключения, чтобы делать практически все, от обработки изображений ИИ в реальном времени (с дополнительной камерой) до вождения комплектов робототехники.
NVIDIA Jetson Nano 2 Гб… ЮКТЕХКОМ $369.45
Не менее важным для любой образовательной или любительской платформы является доступность образцов и документации. NVIDIA представила это в виде примеров проектов. Сообщество Jetson также предоставило немало материалов с открытым исходным кодом для изучения. Для всех, кто хочет начать работу в мире машинного обучения, Jetson Nano 2 ГБ — отличный инструмент с большим количеством документации и примеров кода для начала работы.