Автономный квадрокоптер

Ваши интересы, хобби.
adiagnost
Автор темы
Сообщения: 873
Зарегистрирован: 04 май 2015, 15:46
Пол: мужской
Благодарил (а): 2 раза
Поблагодарили: 189 раз

Автономный квадрокоптер

#76

Непрочитанное сообщение adiagnost » 15 дек 2019, 18:51

Jetson Nano уже на сортировке в Ростове. Думаю, на след. неделе получим.
Вот тут и стоит задача максимально эффективного использования двух систем с НС - джетсон и малина с ускорителем. Это все установлено на одном дроне и связано по UDP друг с другом.
Это - исходные данные.
Теперь далее - как минимум, одна система занимается первичной детекцией объектов.
Далее - начинаются варианты. Насколько я понял, джетсон можно нагрузить парой таких же по мощности сетей. Заманчиво задействовать три нейросети всего. Но что они будут делать?
С одной понятно. Если и вторая будет заниматься детекцией, - ну, конечно, данных лишних не бывает, тем более камеры разнесены на 0,3 м друг от друга. Безусловно две сетки будут дополнять друг друга. Вопрос - насколько эта система эффективна? Что-то кажется, это будет "выстрел из пушки по воробьям :) "
Как уже писал ранее, хорошо бы "поместить" одну (ну, или две, если джетсон действительно позволяет) сетку на более высокий уровень абстракции - то есть, полностью всю логику "посадить на сети". Это было бы по-настоящему "круто" 8)
Однако, ещё раз скажу, - пока не вижу, каким образом вообще это можно сделать.
Смысл в том, что сети способны работать с данными коррелирующими в каком-то достаточно "узком" и "конечном" коридоре.
Например, для распознавания образов (неважно - фото или звуков, или, например, для выявления зависимостей математических кривых при анализе спектра) - должны быть общие, более-менее четкие признаки. Для обучения играм (неважно - с открытой или закрытой / частично информацией, то есть, в шашки-шахматы или покер, например), это также корреляция признаков по однотипным игровым ситуациям.
Вопрос - что делать, когда нужно работать с разнотипными данными, где типы друг с другом имеют слабую связь и корреляцию, но, в конечном итоге все "скопом" сильно влияют на исходы?
Нет, конечно, в идеале можно увеличить обучаемые данные (и эпох обучения) до немыслимого количества, главный вопрос - где их взять?
Известно, что легко обучить одну сеть, если её обучает другая (или играет другая) сеть. Замкнутый круг получается - чтобы обучить сеть на высшую логику, нужно сначала "разложить" эту логику на "составляющие", что опять же без "высшей" логики с помощью "других" сетей невозможно... :D

adiagnost
Автор темы
Сообщения: 873
Зарегистрирован: 04 май 2015, 15:46
Пол: мужской
Благодарил (а): 2 раза
Поблагодарили: 189 раз

Автономный квадрокоптер

#77

Непрочитанное сообщение adiagnost » 15 дек 2019, 21:19

Издержки "недообучения":
111.jpg


Хотя явно получше с перекрытием объектов (с высоты полета):

222.jpg

Аватара пользователя
Дионис
Сообщения: 30692
Зарегистрирован: 15 сен 2013, 16:04
Пол: мужской
Езжу на: двустоповый опорно-двигательный аппарат
Благодарил (а): 14334 раза
Поблагодарили: 2449 раз
Контактная информация:

Автономный квадрокоптер

#78

Непрочитанное сообщение Дионис » 15 дек 2019, 21:26

adiagnost писал(а):Источник цитаты
Дионис писал(а):
adiagnost писал(а):Источник цитаты о сути, сети изначально абсолютно все равно с какими задачами, и, соответственно, типами данных работать. Ту же мобайлнет, что будем использовать для object detection, мы могли бы, к примеру, использовать и для распознавания речи, для игры в те же игры и проч. Все дело в обучении..

надо использовать это для испытаний систем обучения, до того как давать детям. Например ЕГЭ на нейросетях испытать


Не.. Тут придется сначала "скармливать" сети всю школьную программу :)
А, если серьезно - даже, такая, казалось бы точная дисциплина как математика для начальной школы - далеко не тривиальная задача для ИИ, так как помимо счета уже предполагает, хоть и начальную, но логику, что пока недостижимо даже для самой, казалось бы, примитивной "бытовой логики".

Речь же не о решении самого теста ЕГЭ, а использование принципа. Но всё одно, то была шутка. :D
У меня нет принципов — приспособляемость ко всему вот мой принцип.
У меня нет закона — самосохранение мой закон.
У меня нет ни жизни, ни смерти — вечность для меня жизнь и смерть.

adiagnost
Автор темы
Сообщения: 873
Зарегистрирован: 04 май 2015, 15:46
Пол: мужской
Благодарил (а): 2 раза
Поблагодарили: 189 раз

Автономный квадрокоптер

#79

Непрочитанное сообщение adiagnost » 15 дек 2019, 21:50

Фото ярмарки на Платовском с этого сайта (вроде, неплохо - ошибка минимизирована):
out6.jpg


Отправлено спустя 24 минуты 22 секунды:
Меж тем произошло ещё одно знаковое событие - нейронные сети обыграли матпакеты в символьном интегрировании и решении диффуров (на датасете авторов нейронка берет 99.6% интегралов, 97% ОДУ первого порядка и 81% второго, а Mathematica - 84%, 77.2% и 61.6% соответственно):
https://arxiv.org/abs/1912.01412

adiagnost
Автор темы
Сообщения: 873
Зарегистрирован: 04 май 2015, 15:46
Пол: мужской
Благодарил (а): 2 раза
Поблагодарили: 189 раз

Автономный квадрокоптер

#80

Непрочитанное сообщение adiagnost » 16 дек 2019, 08:14

В Израиле для джетсон нано на БПЛА разработали систему с одной камерой для определения положения в пространстве и ориентации в условиях невозможности работы с GPS. Работает под ROS - robotics operation system - операционная система для роботов, (на самом деле фреймворк для разработки под линуксоидные ОС).
И выложили на гитхабе. Обязательно потестим. Интересно, что используется одна камера. Насколько понял из беглого просмотра исходников, эффект стереозрения достигается в динамике, когда дрон (и, соответственно, камера) меняет свое местоположение (летит):

https://www.youtube.com/watch?v=nSu7ru0SKbI

adiagnost
Автор темы
Сообщения: 873
Зарегистрирован: 04 май 2015, 15:46
Пол: мужской
Благодарил (а): 2 раза
Поблагодарили: 189 раз

Автономный квадрокоптер

#81

Непрочитанное сообщение adiagnost » 16 дек 2019, 09:19

У этих же ребят с Тель-Авивского университета есть решение для БПЛА для отслеживания, как они пишут "вражеских дронов" (что-то все-таки объединяет Россию и Израиль :D ).
Но оно реализовано на Jetson TX, которая в общем помощнее раза в 4 чем Jetson Nano, что позволяет им работать на скорости до 28 fps. Используется сеть YOLO для первичной детекции объектов, для трекинга объектов
используется оупенсивишная приблуда GOTURN. Заманчиво было бы адаптировать данное решение на джетсон нано...
https://www.youtube.com/watch?v=kLVupa1nkZs

Отправлено спустя 42 минуты 56 секунд:
Интересно описание GOTURN - тоже сеть глубокого обучения для трекинга объектов. Уже само по себе прогнозирование траектории на основе обучения как-то вызывает сомнения. Ну да ладно, по-крайней мере на видео это работает.
Однако, могут быть коллизии, примеры которых описывают разработчики - когда система следила за его рукой все было хорошо, пока он не подвел руку к лицу. Тут трекер "перекинулся" на лицо. Как он сам пишет - видимо, в обучающем датасете было больше лиц чем рук :) ...
https://www.learnopencv.com/goturn-deep-learning-based-object-tracking/

adiagnost
Автор темы
Сообщения: 873
Зарегистрирован: 04 май 2015, 15:46
Пол: мужской
Благодарил (а): 2 раза
Поблагодарили: 189 раз

Автономный квадрокоптер

#82

Непрочитанное сообщение adiagnost » 16 дек 2019, 22:38

NVidia каждый месяц награждает проекты выполненные на каком-либо их продукте. Хочется поучаствовать. Вроде, зарегились. Осталось только зав. номер Jetson Nano им выслать, когда получим. Собственно, из условий - описание, видео, исходные коды в открытый доступ.
А дарят за проекты ни много ни мало самый их продвинутый встраиваемый модуль для ИИ - Jetson AGX Xavier на 512 ядрах Вольта (32 Tops).
Вернее, девелопер кит, собранный на нем, который с доставкой где-то от $800 (зависит от комплектации):
https://developer.nvidia.com/embedded/jetson-agx-xavier-developer-kit

adiagnost
Автор темы
Сообщения: 873
Зарегистрирован: 04 май 2015, 15:46
Пол: мужской
Благодарил (а): 2 раза
Поблагодарили: 189 раз

Автономный квадрокоптер

#83

Непрочитанное сообщение adiagnost » 17 дек 2019, 21:17

Всё.. Все "мозги" в сборе. :)
Китайцы одной посылкой прислали и джетсон и свою ИИ-флэшку...
Теперь начнем потихоньку (в смысле продуктивно поработать удается только по выходным - на основной работе аврал предновогодний).
А со своим основным "компаньоном" - учеником 9-го класса работаем сейчас удаленно - он уехал и в Москве в физ-мат лицей поступил :)
А вот и "мозги":
IMG_20191217_210658.jpg

adiagnost
Автор темы
Сообщения: 873
Зарегистрирован: 04 май 2015, 15:46
Пол: мужской
Благодарил (а): 2 раза
Поблагодарили: 189 раз

Автономный квадрокоптер

#84

Непрочитанное сообщение adiagnost » 21 дек 2019, 12:03

китайская ИИ флэшка стоит около $70, однако, специализированная среда разработки для неё до недавнего времени стоила $149.
Сейчас - бесплатно, но, как это часто у китайцев бывает, - просто с сайта скачать нельзя, а ссылку на скачивание дают после покупки. Скорее всего, "стыдно перед теми, кто купил среду разработки ранее" :D
Но, тут ещё у них засада - для её работы нужно не менее 2 ГБ оперативы. О чем они, конечно же нигде не пишут, а наоборот, - говорят о совместимости ядер Allwiner, на которых построены их миникомпы Orange Pi. Однако, из всей линейки только последний (оллвайнер 6, кажется) также поддерживает память более 2 ГБ. Миникомп у них такой есть, только на нем нет USB3 :ROFL: . Все это "узнается" уже после покупки девайса и скачивания документации.
То есть, у нас есть 4 разных Orange Pi, но, максимум, на 1 ГБ оперативки. Работать не будет.
По неволе пришлось думать, как использовать. Выбрали вариант - прицепить на Jetson Nano ещё и китайскую флэшку. 4 ГБ оперативки должно хватить и на собственную работу джетсона и на работу флэшки. Так как собираемся использовать джетсон исключительно для работы нейросетей, основные ресурсы для чего потребляет не оперативка, а графический процессор...

adiagnost
Автор темы
Сообщения: 873
Зарегистрирован: 04 май 2015, 15:46
Пол: мужской
Благодарил (а): 2 раза
Поблагодарили: 189 раз

Автономный квадрокоптер

#85

Непрочитанное сообщение adiagnost » 22 дек 2019, 08:09

Интересны результаты, полученные в Цюрихском университете - обучение полету дрона в лесу (вернее, "по" лесным тропинкам, а ещё вернее, "над" лесными тропинками). Чтобы набрать обучающих данных, чувачек с тремя камерами на голове ходил по тропинкам и крутил головой влево-вправо. Затем их пометили - и обучать...
Надо сказать, что обучение полету в лесу, видимо, является относительно простой задачей (из-за "однообразия декораций" :) ), раз им хватило всего 1/10 пройти этого лесочка для набор обуч. данных, и, после обучения, летали успешно по всем тропинкам..
Тут интересно, как повлияет, например, если полет делать в хвойном лесу (а до этого - обучать на "лиственном"), или - обучение летом, полет - зимой, в снег и т.д.
Хотя - сами условия "сужены" изначально - некое относительно однообразное пространство впереди по курсу (что-то типа тропинки) и по бокам - структуры гораздо сложнее (ветки деревьев), неизвестно как там в своих 10-ти слоях сеть раскладывает по уровням абстракции.
У нас тоже одна из таких частных задач стоит в более общем плане - движение с огибанием препятствий.
Однако, - с использованием "кучи" датчиков, построением онлайн-3Д модели окружающего пространства с препятствиями и проч. "лабудой"..
А тут - оказывается гораздо проще - обученная сеть и 1 камера..
Понятно, что сеть, обученная на лесных тропинках, нельзя запускать среди "других" препятствий, скажем, по обычным улицам города.
То есть, у нас решение (с датчиками и построением пространства препятствий) - более "универсальное и честное". Зато у них общие затраты несоизмеримо малые - вполне пойдет для "узких" задач :) .
https://www.youtube.com/watch?v=umRdt3zGgpU

adiagnost
Автор темы
Сообщения: 873
Зарегистрирован: 04 май 2015, 15:46
Пол: мужской
Благодарил (а): 2 раза
Поблагодарили: 189 раз

Автономный квадрокоптер

#86

Непрочитанное сообщение adiagnost » 22 дек 2019, 10:13

Более наглядно - видно как в итоге происходит сегментация (зеленая область - наиболее вероятное направление правильного движения):
https://www.youtube.com/watch?v=H7Ym3DMSGms

adiagnost
Автор темы
Сообщения: 873
Зарегистрирован: 04 май 2015, 15:46
Пол: мужской
Благодарил (а): 2 раза
Поблагодарили: 189 раз

Автономный квадрокоптер

#87

Непрочитанное сообщение adiagnost » 23 дек 2019, 10:19

В общей сложности за выходные на установку и развертывание всего необходимого на Jetson Nano потрачено часов 12. Из них половина – танцы с бубнами вокруг «кучи» пакетов, которые не бьют по версии с поддерживающими пакетами, ошибок компиляции, которые, в основном, куда-то пропадают при второй-третьей попытке, отсутствием прав на необходимые папки-файлы и проч. Остальное время – штатное разворачивание (скачивание, сборка – установка и проч.). По ощущениям, на те же самые процедуры с Raspberry необходимо времени раза в полтора-два меньше. Явно заметно, что у NVidia проект пока несколько «сыроват». Ну, например, разработчики OpenCV пока только обещают поддержку их модулем для глубокого обучения (dnn) технологии GPU/CUDA. Странно, что он у них до сих пор по-старинке – на CPU, хотя быстродействие при работе с изображениями их фишка, и они любят сравнивать свои решения именно на CPU с решениями на GPU, показывая на сколько эффективно справляются их чисто программные алгоритмы с объемными расчетами, но, как говорится "против лома не попрешь" :) - аппаратные решения всегда будут быстрее. А тут, к тому же, возможен высокоэффективный синтез. Поэтому - ждем с нетерпением, что же получится?.. А в некоторых случаях пришлось брать не последние версии, а откатывать на предыдущие все «дерево» взаимозависимых пакетов.
Но, в итоге, - заработало. :)

adiagnost
Автор темы
Сообщения: 873
Зарегистрирован: 04 май 2015, 15:46
Пол: мужской
Благодарил (а): 2 раза
Поблагодарили: 189 раз

Автономный квадрокоптер

#88

Непрочитанное сообщение adiagnost » 25 дек 2019, 10:30

Провели сравнительные тесты на сети ResNet-50 (здесь из названия понятно, что используется 50 слоев глубокого обучения).
В «испытуемых» были Raspberry PI3 B + NCS (Movidius), Raspberry Pi4 B + NCS2 и Jetson Nano.
У первых двух, как говорил ранее, операции с матрицами выполняются на ядрах специального векторного процессора Myriad (12 и 16 векторов соответственно) ускорителей НС от Intel.
У Jetson – на графическом процессоре со 128 ядрами Maxwell с поддержкой параллельных вычислений CUDA.
Результаты на нормированных кадрах 224 х 224 (три цветовых канала последовательности BGR):
Raspberry PI3 B + NCS (Movidius) – 6 fps
Raspberry Pi4 B + NCS2 – 19 fps
Jetson Nano – 34 fps
Вот, о чем и говорил – Jetson справляется гораздо увереннее Rpi4+NCS2 (34 кадра в секунду против 19 – почти в 2 раза быстрее!). При том, что по характеристикам (0,5 ТФлопс у Jetson против 0,8 у NCS2), джетсон уступает.
Не понятно, «куда девается производительность» у интеловского девайса. USB вроде, в данном случае не должно быть «бутылочным горлышком», так как USB3.0 и на распи и ускорителе.. Вобщем – чудеса..
Кстати, если кто надумает приобретать продукты nVidia для нейросетей (и Jetson Nano не исключение в этом смысле), имейте ввиду, что для загрузки и развертывания пакетов для работы с НС, необходим также хост-компьютер с убунтой на борту (причем, виртуальные машины не прокатывают, пока, по-крайней мере) с не менее 8 гигами опертивки (а лучше 16 и более) для установки тяжеловесного SDK manager и, с его уже помощью, других пакетов для работ по созданию и обучению сетей…

adiagnost
Автор темы
Сообщения: 873
Зарегистрирован: 04 май 2015, 15:46
Пол: мужской
Благодарил (а): 2 раза
Поблагодарили: 189 раз

Автономный квадрокоптер

#89

Непрочитанное сообщение adiagnost » 26 дек 2019, 09:38

Понравилось, как обеспечивается питанием Jetson Nano (ничего подобного на других миникомпах не встречал).
Есть несколько вариантов, которые позволяют варьировать в зависимости от необходимой производительности и (или) подключенного периферийного оборудования. Всего есть 5 режимов, - 4 аппаратных, 1 программный:
- питание от micro USB – стандартный вариант ( 5В х 2 А = 10 Вт);
- питание от разъема «бочонок» ( 5В х 4 А = 20 Вт);
- два пина питания на контактной гребенке (GPIO) ( 5В х 3 А * 2 = 30 Вт);
- соответственно, один пин ( 5В х 3 А = 15 Вт);
- программно - конфигурируемый режим пониженного потребления (5 Вт) – независимо, какой аппаратный режим реализуется.
Хорошо продумано, - «на все случаи жизни».
На максимуме не гонял, но от бочонка на 4 А есть даже прирост производительности, получается такой себе некий штатный «подразгон»…
На большой мощности, несмотря на солидный радиатор, требуется активное охлаждение - минут через 10 на мощи 20 Вт - отрубается из-за перегрева граф. процессора (не знаю, видимо, у них нет понятия троттлинга? :shock: ).
На дроне-то будет "активное охлаждение" по понятным причинам, а вот при наладке на "столе" придется использовать мини-кулер от Распберри...

Аватара пользователя
Дионис
Сообщения: 30692
Зарегистрирован: 15 сен 2013, 16:04
Пол: мужской
Езжу на: двустоповый опорно-двигательный аппарат
Благодарил (а): 14334 раза
Поблагодарили: 2449 раз
Контактная информация:

Автономный квадрокоптер

#90

Непрочитанное сообщение Дионис » 27 дек 2019, 22:56

adiagnost писал(а):Источник цитаты Не понятно, «куда девается производительность» у интеловского девайса.

Строчит отчёты в офис мелкомягкого+копия в ЦРУ, о том, чем вы там занимаетесь. :lol:
У меня нет принципов — приспособляемость ко всему вот мой принцип.
У меня нет закона — самосохранение мой закон.
У меня нет ни жизни, ни смерти — вечность для меня жизнь и смерть.


Вернуться в «Увлечения»