Русский
Русский
English
Статистика
Реклама

Машинное зрение

Ускоряем нейросеть на уровне железа интервью с разработчиком компиляторов

25.03.2021 18:04:40 | Автор: admin

Обыденное представление о Deep Learning состоит в том, что для достижения успеха нужно хорошо знать математику и уметь программировать на Python. Но все становится немного сложнее, как только мы начинаем говорить о реализации нейросетевых решений в железе, где критична производительность. Мы пообщались с руководителем направления российского Исследовательского центра Samsung Вячеславом Гарбузовым, чтобы понять, как ускоряют работу нейросетей на аппаратном уровне, при чем тут компиляторы и какие знания требуются в этой редкой профессии. И самое интересное - какие вакансии в его подразделении открыты в настоящий момент.

Примеры работы нейросети на смартфоне: оптимизация сцены,классификация изображений, подсказка лучшей композиции кадраПримеры работы нейросети на смартфоне: оптимизация сцены,классификация изображений, подсказка лучшей композиции кадра

Слава, привет! Расскажи о себе, чем занимается твоя команда сейчас.

Привет! Я руковожу управлением разработки ПО для систем на кристалле Исследовательского центра Samsung. Мы занимаемся разработкой SDK для ускорения исполнения моделей глубинного обучения (Deep Learning)на процессорах Exynos.

Кто твои непосредственные заказчики?

Наша работа связана с компонентным бизнесом и нашим заказчиком является Samsung Semiconductor. Мы ближе к земле.

Правильно ли я понимаю, чтомобильныйпроцессор Exynosв основном используется в телефонах Samsung и больше нигде?

Вовсе нет. Exynos используется в смартфонах других производителей. Кроме того, Exynos - это не только мобильные системы на кристалле (SoC). Есть микроконтроллеры, компоненты Интернета вещей. Крупные игроки на автомобильном рынке тоже заинтересованы в наших продуктах.

Расскажи про новый Exynos и AI-ускоритель в нем

Разработкой Exynos SoCи SDK к нему занимается подразделение Samsung System LSI (large-scale integration - высокоинтегрированные чипы). Узнать подробнее про новый Exynos 2100 можно извидеопрезентации. В разделе AI and Camera кратко рассказывается, что такое AI-ускоритель. Это железо для ускорения работы нейросетей. Обучение сети производится заранее, а исполнением (inference) как раз занимается это железо.

Что такое inference, что значит выполнить сеть на устройстве? Есть нейросеть, она уже натренирована. На вход готовой нейросети мы подаем картинку с собачкой или кошечкой, а на выходе это устройство дает 0 или 1. То есть наш сопроцессор не занимается обучением нейросети самостоятельно, его задача просто отработать готовую сеть.

Для работы нейросетевого сопроцессора нужен программный инструментарий. Такой инструмент есть, он называется Samsung Neural SDK.

Для каких задач это всё используется?

Применения в телефоне в основном связаны с камерой: живой фокус, ночная съемка, Bixby Vision, обнаружение лиц, улучшающее картинку.

Здесь забавно, что в этом году в S21 добавили фичу для детектирования домашних животных. Раньше алгоритмы не узнавали собак и кошек и не могли их обработать красиво. И вот эта проблема теперь решена.

Сегментация людей и животных на фотоСегментация людей и животных на фото

Расскажи, как устроен этот AI-ускоритель.

Он состоит из двух частей:

  1. NPU (Neural Processing Unit - обработчик нейросетей). Фактически это ускоритель операций с тензорами. Он умеет быстро делать свертки (convolution), пулинги (pooling) - набор операций, популярных в глубинном обучении.

  2. DSP (digital signal processor - цифровой обработчик сигналов).Это процессор, специализированный под выполнение определенных задач. Его разрабатывают изначально под конкретные алгоритмы. Ребята проектируют этот DSP под распознавание лиц или под более широкий круг задач.

Это единый кластер в составе одной системы на кристалле. Для него мы и разрабатываемSDK. У нас две команды, одна работает над NPU, другая, соответственно, над DSP.

Какие компиляторные задачи у вас с NPU?

Компилятор для NPU - это та штука, которая превращает граф на выходе Deep Learning-фреймворка в последовательность процессорных команд. Отличие от обычного компилятора в том, что мы генерируем код не для CPU, а для нейросетевого ускорителя. Это другой процессор со своим языком. И чтобы вся система работала быстрее, мы оптимизируем ее на уровне компилятора.

В чем суть оптимизации? По большей части это memory allocation (оптимизация работы с памятью) и instruction scheduling (параллелизм на уровне инструкций). Наш процессор может несколько инструкций выполнять одновременно, например, считать ту же самую свертку и загружать данные для свертки. Мы должны сгенерировать код для этого процессора так, чтобы оптимизировать работу с памятью и максимизировать параллелизм.

А что с DSP? Какие задачи там?

Это уже более-менее похоже на традиционный процессор. Если свертку наш NPU умеет делать на уровне железа, то здесь мы должны эту свертку описать на языке C++ и исполнить на DSP. Зачем нужен отдельный сопроцессор, чтобы выполнять ту же самую свертку? Например, NPU занят в какой-то момент, и мы хотим параллельно решать другую задачу. Некоторые операции мы в принципе на NPU выполнить не можем.

У нас достаточно простой DSP, основанный на VLIW-архитектуре (very long instruction word очень длинная машинная команда). Особенность нашего DSP в том, что он аппаратно достаточно простой, и от компилятора требуется серьезная оптимизация.Мы делаем на базе LLVM компилятор для этого DSP.

Поговорим о других вещах. Где ты работал до Samsung?

Непосредственно до Samsung я работал в Topcon Positioning Systems и в Lynx Software Technologies. Занимался разработкой RTOS и инструментов.

Где и на кого ты учился?

Учился в МГУ на физика. Занимался ускорителями элементарных частиц, электронов в частности. Занимался автоматизацией физического эксперимента, системой управления для промышленного ускорителя.

Как помогает образование физика в твоей профессии?

В профессии руководителя это очень сильно помогает, позволяет смотреть на вещи широко.

Работая в твоем отделе, насколько важно хорошо разбираться в железе?

Достаточно важно. Иметь базовые представления нужно. Те, кто хорошо разбираются, хорошо справляются со своими непосредственными задачами, по моим наблюдениям.

А в глубинном обучении?

Базовое представление надо иметь. Я полагаю, что современные выпускники вузов это всё уже знают на определенном уровне. Это всегда хорошо иметь в бэкграунде. Например, курс Нейронные сети и компьютерное зрение Samsung Research Russia на Stepik я добавил в закладки, но пока не прошел. И кстати, вчера в рамках этого курса былалекцияна YouTube про Embedded Inference как раз на эту тему - "Мобильные архитектуры нейросетей и фреймворки для их запуска".

Когда мы начинали этот проект в 2018 году, мне сказали: нужен компилятор для Deep Learning. Нам потребовалось найти людей, которые одновременно умеют и в Deep Learning, и в железо, и в компиляторы. И это сложно, потому что таких людей очень мало. Потом мы поняли, что требование знания Deep Learning не столь критично, всё-таки заказчики от нас просили только компилятор.

С выпускниками каких вузов тебе интересно работать?

Мне приятно работать с выпускниками МФТИ, особенно с теми, которые прошли через базовые кафедры ИСП РАН или Intel. У нас в отделе достаточно много ребят из Intel. По факультетам - ФУПМ, ФРКТ. Если говорить о других вузах, то это и МГУ - забавно, что много моих знакомых компиляторщиков заканчивали физфак. Также это ВШЭ, где есть МИЭМ, там учат проектировать железо, FPGA. А компиляторы можно условно рассматривать как часть железа в принципе.

В нашем Исследовательском центре мы проводили вечернюю школуSamsung Compiler Bootcamp, и , в основном, в ней учились студенты из Бауманки, МГУ и Вышки.

На тему FPGA - полезно ли это изучать?

Как бэкграунд - да, это правильно.

А вообще, много ли таких центров в Москве, где занимаются компиляторами?

Intel, JetBrains, Positive Technologies, Huawei. Из российских - МЦСТ, которые Эльбрус, они тоже компиляторы делают. Например, Роман Русяев, наш коллега из Исследовательского центра Samsung и разработчик компиляторов, как раз оттуда пришел (см. егостатьюна Хабре о Concept-Based Polymorphism), он часто выступает на конференциях и пишет статьи.Он активный участник C++ Community. Например, вот пара его выступлений где затрагивается тема оптимизации при помощи компилятора :"Исключения C++ через призму компиляторных оптимизаций","Настоящее и будущее copy elision".

Но нужно отметить, что разработчики компиляторов - люди очень редкой профессии, на которых сейчас просто колоссальный спрос.

О каких мировых трендах в компиляторов можно сейчас говорить?

Можно выделить такие тренды:

  1. Доминирование проекта LLVM

  2. Обобщение компилятора для различных предметных областей посредством универсального промежуточного представления (MLIR)

  3. Объединение различных инструментов для анализа и преобразования кода (компиляторов, анализаторов, performance estimators, линтеров и пр.) в рамках одного проекта

  4. Активные попытки использования высокой науки в промышленных компиляторах (formal verification, polyhedral optimizations, более подробно встатье)

Какие требования к соискателям, будущим разработчикам компиляторов, ты бы озвучил?

Обязательные требования: знание С/С++ на хорошем уровне. Понимание того, как устроены компиляторы, опыт их разработки. Понимание устройства операционной системы. Умение разбираться в больших объемах чужого кода. Навыки отладки embedded-устройств. Знание практик программной инженерии - непрерывная интеграция, ревизия кода, отслеживание задач. Владение скриптовыми языками - Bash или Python.

Помимо технических требований, важно умение работы в команде, быть адекватным человеком. Нужно иметь широкий кругозор, быть профессионалом. Уметь быстро адаптироваться - мы работаем на крайне конкурентном рынке, требования заказчиков меняютсячасто и неожиданно. Хорошо знать английский язык. Уметьвежливо общаться. Понимать, что мы предоставляем сервис. Кому-то это не нравится, а кому-то вполне нормально. Не нужно быть токсичным.

Работая в международной компании, как складывается коммуникация с иностранными коллегами? Как вы решаете вопросы взаимодействия с коллегами в пандемию?

Мы активно взаимодействуем с командами из других стран Корея, Китай, Индия, Израиль, США. До карантина они частенько приезжали к нам в гости, а мы к ним.

Даже сейчас очень много коммуникации. Каждый день видео-планерки, чтобы люди не теряли фокус. У нас уже давно существует виртуальная лаборатория с удаленным доступом к образцам "железа". В этом смысле мы были готовы к работе извне. Мы уже привыкли работать в распределенной команде, поэтому для нас это стрессом не было.

Какие книжки о компиляторах ты бы посоветовал?

Коллеги рекомендуют начинать с "Modern Compiler Implementation in ML", автор Andrew W. Appel.

Какие твои любимые книги о программировании вообще?

Керниган и Ричи Язык программирования С. Они классные. Еще Керниган и Пайк, Практика программирования. Там настолько все четко сделано.

Что скажешь об онлайн-курсах?

Если говорить о курсах по смежным темам, то по глубинному обучению это курс Samsung о нейронных сетях в компьютерном зрении, и известный курс Эндрю на (Andrew Ng). Полезенкурс по С++от Яндекса.

LLVM или GCC - что полезнее изучать?

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

Какие инструменты командной работы используете?

Используемgit, точнее корпоративный github. Важно сказать, что мы делаем Code Review, и это неотъемлемая часть работы наших инженеров. Здорово, что все друг другу помогают и делятся знаниями. Также мы делимся знаниями с помощью Confluence, у нас есть вики-портал с внутренней документацией по нашим разработкам. Есть Jira для отслеживания задач. И есть свой чат на основе Mattermost, то есть практически Slack - без него на удаленке мы бы вообще не выжили. Исповедуем ContinuousIntegration, а также автоматизируем все, что можно автоматизировать.

А что насчет методов Agile?

Мы не привязаны к какой-то конкретной методологии. Берем полезные практики, которые подходят нашему проекту, из разных методологий. Например, из скрама мы берем Daily Scrum - ежедневные собрания. У нас есть итеративное планирование. И так далее.

Не могу не спросить. А вот во время пандемии, когда все по видео общались, вы все равно Daily Scrum стоя проводили?

Ну нет, всё-таки все сидели.

Сколько у вас длится Daily Scrum?

От 15 минут до часа, потому что иногда он перетекает в технические дискуссии.

Что еще интересного бывает?

Регулярно проходят онлайн-семинары. Коллеги из разных центров компании рассказывают о своих задачах, обсуждаются технические решения. Мы тоже участвуем, конечно. Также проводим внутренние семинары для сотрудников московской команды. Обмениваемся знаниями, изучаем опыт других. Например, в настоящий момент у нас в Исследовательском центре проходит серия семинаров про алгоритмы аллокации памяти.

----

А сейчас самое интересное: ВАКАНСИИ!

У нас открыты две вакансии, соответственно поNPUи поDSP. Если вас заинтересовало, откликайтесь на вакансию прямо на HeadHunter, и возможно, мы с вами встретимся на собеседовании.

Вопросы задавала: Татьяна Волкова, куратор трека по Интернету вещей социально-образовательной программы для вузов IT Академия Samsung

Отвечал: Вячеслав Гарбузов, руководитель направления, российский Исследовательский центр Samsung

Подробнее..

Motion Amplification или диагностика состояния промышленного оборудования и сооружений с помощью видеоаналитики

10.05.2021 12:10:00 | Автор: admin

Motion Amplification (англ.) усиление движения.

Прямых доказательств, связывающих рождение технологии Motion Amplification с силовыми ведомствами США, у нас нет, но косвенных достаточно. Не случайно среди примеров использования есть немало кейсов из аэрокосмической и оборонной отраслей. Измерение уровня вибрации вертолета во время полета важная, но очень непростая задача. С Motion Amplification она решается довольно быстро и просто

Диагностика состояния вертолета во время полета - YouTube

Не менее важно знать и состояние инфраструктурных объектов и промышленных активов - оборудования, резервуаров, трубопроводов и т.д. Как можно оперативно оценить состояние моста, чтобы гарантировать безопасное перемещение техники по нему? Оказалось, что без инноваций решить эту задачу проблематично.

История

В конце 2014 года изобретатель Jeff Hay (основатель компании RDI Technologies) получил два патента под названием Бесконтактный мониторинг состояния мостов и гражданских сооружений и Аппарат и метод визуализации периодических движений механических компонентов. Пытливые умы могут почитать подробные материалы по ссылке, а для остальных кратко расскажем в чем заключается основная идея изобретения.

Если взять дорогую высокочастотную камеру и записать видео (например, тысячу кадров в секунду), то даже за 5 секунд мы получим внушительный массив данных. При движении объекта в объективе камеры происходят изменения пикселей изображений во время записи. Зная частоту съемки (fps), фокусное расстояние объектива и расстояние от камеры до объекта, можно выполнить точные измерения амплитуды движения. Фиксируя даже незначительное движение объекта в кадре, проприетарные алгоритмы при обработке видео усиливают это движение, делая его заметным каждому.

Воплощение идеи потребовало серьезных научных и практических изысканий, и первое решение под названием IRIS M появилось на рынке только в сентябре 2016 года. Функционал программного обеспечения версии 1.0 был прост запись видео и усиление движения. Только в декабре 2016 года (v.1.1) появилась возможность делать измерения. Несмотря на ограниченный функционал, экспертное сообщество и крупные корпоративные заказчики в США встретили новинку с большим энтузиазмом. Решение получило признание American Society of Civil Engineers в 2016г., а также было отмечено вторым призом престижного конкурса Vision Systems Design в 2017г.

Секрет успеха

Получить признание у консервативной и взыскательной аудитории, тем более в короткие сроки, рядовому изобретению явно не по силам. IRIS M объединил в себе плюсы динамично развивающихся технологий видеоаналитики и достоинства традиционной вибродиагностики. Возможность бесконтактным способом оценить состояние объекта, оперативно выполнить измерения и показать реальную картину окружающим оказалась востребованной заказчиками.

Давайте сравним процесс оценки состояния обычного насоса традиционным способом и с помощью IRIS M. Сбор данных традиционным способом осуществляется обычно с помощью виброанализатора по ограниченному набору точек контроля.

Затем специалист по вибродиагностке выгружает данные в специальное ПО для анализа. По результатам анализа специалист формирует отчет и представляет его коллегам, отвечающим за техническое обслуживание и ремонты.

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

Motion Amplification (МА) сочетает в себе преимущества традиционной вибродиагностики, фазового анализа и использования специализированного программного обеспечения ODS (Operational Deflection Shape) для анимации:

  • можно собрать в тысячи раз больше данных, чем традиционным способом;

  • все данные собираются одновременно, а не последовательно

  • данные для анализа фаз собираются за одну съемку, а не отдельно (как при традиционном подходе)

  • каждая точка изображения может быть использована для измерения уровня вибрации

  • обработанное видео является наглядным отчетом, понятным людям даже без специализированных знаний и опыта.

На видео для наглядности показаны обычная и обработанная видеозаписи. Давайте посмотрим на видеоотчет о диагностике состояния насоса с помощью МА

Диагностика насоса - YouTube

Решение IRIS M не только позволило увидеть, то что кажется невидимым человеку, но и помогло определить первопричину проблем с оборудованием трещину в раме. Короткое и наглядное видео выглядит гораздо убедительнее традиционных бумажных отчетов.

Чувствительность системы 0,25 микрона с расстояния 1 метр при использовании объектива с фокусным расстоянием 50 мм. Пара человеческих глаз не выдерживает конкуренцию.

Варианты решений

Помимо первого решения IRIS M, которое закрывает основные потребности заказчиков, на рынок были выпущены решение IRIS MX в 2018г. и IRIS CM в 2019г.

IRIS M делает 120 кадров в секунду в HD-разрешении и до 1300 в сокращенном, что позволяет уверенно диагностировать проблемы в частотном диапазоне от 0 до 520 Гц.

IRIS MX расширяет возможности базового решения и позволяет работать и в более высокочастотной области до 11600 Гц (1400 fps при HD-разрешении и 29000 fps при сокращенном разрешении), что позволило успешно диагностировать турбомашины.

Решение IRIS CM (continuous monitoring) хорошо подходит для мониторинга состояния активов на удаленных объектах, на которых нет специалистов по вибродиагностике. Несколько видеокамер можно объединить в сеть, чтобы получать видеоданные с разных ракурсов. Пользователи могут инициировать запись видео и данных на основе внешних триггеров (например, данных с акселерометров) при достижения пороговых значений вибрации.

Даташиты решений можно найти по ссылке РЕШЕНИЯ VIMS (motionamplification.ru)

Интерфейсы

Пакет приложений решений RDI, установленных на ноутбуке, содержит 4 программы. По ссылкам можно увидеть их интерфейсы:

1. Motion Explorer хранение и менеджмент файлов

Управление контентом Motion Explorer - YouTube

2.RDI Acquisition запись видео

Программа для записи видео RDI Acquisition - YouTube

3. MotionAmplification аналитика и измерения

Аналитическое приложение MotionAmplification - YouTube

4. Motion Studio редактор видео

Редактор видео Motion Studio - YouTube

Как видите, для любого пользователя windows интерфейсы достаточно привычные и удобные. Даже не имея квалификацию вибродиагноста, можно стать сертифицированным оператором системы.

Возможности решения

Подробную информацию о функционале программного обеспечения и его развитии в 2016-2020 гг. можно найти по ссылке

Обзор программного обеспечения MotionAmplification v1.0-3.0 - YouTube

Диагностика насосов это типовая задача для традиционной диагностики. Но что делать, если перед нами большой резервуар, трубопровод или большая конструкция? Motion Amplification открывает специалистам по диагностике новые возможности по решению этих сложных задач.

Диагностика состояния огромных конструкций - YouTube

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

Диагностика резервуаров - YouTube

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

(1) Диагностика мачты буровой установки - YouTube

А вот пример диагностики состояния фрагмента трубопровода на нефтеперерабатывающем заводе. А ведь будешь мимо проходить и даже не подумаешь, что есть столько проблем

Вибрация трубопровода на НПЗ - YouTube

Часто важно измерить показатели вибрации во время изменения нагрузочного или скоростного режима работы оборудования. Посмотрите на изменение состояния прокатного стана на металлургическом предприятии при прокатке металла.

Диагностика состояния прокатного стана - YouTube

Теперь понятны причины быстрой деградации подшипниковых узлов.

Бывает так, что сложное оборудование имеет несколько неисправностей на разных узлах. Чтобы разобраться с этим пригодится функция частотной фильтрации видео.

Диагностика виброгрохота и насоса. Частотная фильтрация видео. - YouTube

Функциональные возможности решения быстро расширялись последние годы. Так в версии 3.0 программного обеспечения в 2020 году появились:

  • усиление движения в режиме реального времени (Live MA), которое отлично подходит для быстрого сканирования состояния активов

  • векторы движения

  • тепловая карта движения (по частотам)

  • измерения движущихся объектов

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

Заключение

Если все так хорошо, то почему эти решения не используются на каждом крупном российском предприятии? Причин тут видится несколько:

  1. запрет в США на продажу решений двойного назначения в Россию, под который до 2021г. попадали и решения Motion Amplification

  2. даже успешным на западных рынках решениям необходимо время, чтобы зарекомендовать себя на новом рынке

  3. длительные циклы принятия решений и выделения бюджетов в корпорациях

  4. в России по-прежнему доминирует планово-предупредительное обслуживание оборудования, диагностику на производствах во многих отраслях недооценивают и недофинансируют.

В последние годы много сказано и написано про цифровизацию на промышленных предприятиях. В романтическом порыве некоторые авторы провозглашают скорое наступление эры полностью автоматизированных и даже безлюдных производств. При этом часто остается без ответа один важный вопрос а кто будет нести ответственность за принятие решений и последствия.

Мне представляется, что спрос на квалифицированных экспертов в узких предметных областях, таких как диагностика, будет по-прежнему высоким в ближайшие годы. Экспертно-ориентированные решения Motion Amplification существенно расширяют возможности по диагностике промышленных активов. Спектр применения и количество отраслей, использующих решения семейства IRIS, постоянно растут. С помощью этих решений процессы диагностики, технического обслуживания и ремонты на предприятиях становятся более эффективными и прозрачными.

Подробнее..

Как устроено компьютерное зрение?

24.03.2021 14:22:50 | Автор: admin
Мы запускаем камеру на смартфоне, наводим на объект и видим маленькую иконку внизу. Смартфон понимает что именно мы снимаем. Вы когда-нибудь задумывались, как это работает?

Беспилотные автомобили спокойно объезжают машины и тормозят перед пешеходами, камеры видеонаблюдения на улицах распознают наши лица, а пылесосы отмечают на карте, где лежат тапочки всё это не чудеса. Это происходит прямо сейчас. И всё благодаря компьютерному зрению.


Поэтому сегодня разберем, как работает компьютерное зрение, чем оно отличается от человеческого и чем может быть полезно нам, людям?

Для того чтобы хорошо ориентироваться в пространстве человеку нужны глаза, чтобы видеть, мозг, чтобы эту информацию обрабатывать, и интеллект, чтобы понимать, что ты видишь.С компьютерным или, даже вернее сказать, машинным зрением, такая же история. Для того, чтобы компьютер понял, что он видит, нужно пройти 3 этапа:

  1. Нам нужно как-то получить изображение
  2. Нам нужно его обработать
  3. И уже только потом проанализировать



Пройдёмся по всем этапам и проверим, как они реализованы. Сегодня мы будем разбираться, как роботы видят этот мир, и поможет нам в этом робот-пылесос, который напичкан современными технологиями компьютерного зрения.

Этап 1. Получение изображения


В начале компьютеру надо что-то увидеть. Для этого нужны разного рода датчики. Насколько много датчиков и насколько они должны быть сложные зависит от задачи. Для простых задач типа детектора движения или распознавания объектов в кадре достаточно простой камеры или даже инфракрасного сенсора.

В нашем пылесосе есть целых две камеры, они находятся спереди.А вот, например, для ориентации в трехмерном пространстве понадобятся дополнительные сенсоры. В частности 3D-сенсор. Тут он тоже есть и расположен сверху. Но что это за сенсор?

LiDAR


Вообще с названиями 3D-сенсоров есть небольшая путаница, одно и тоже часто называют разными словами.

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

Вот только в мире беспилотников такой сенсор принято называть лидаром LIDAR Light Detection and Ranging. Да-да, как в новых iPhone и iPad Pro.





А вот в Android-смартфонах вместо лидаров используется термин ToF-камера: ToF Time-of-flight.

Но, как ни называй, все эти сенсоры работают по одному принципу. Они испускают свет и замеряет сколько ему понадобится времени, чтобы вернуться обратно. То есть прямо как радар, только вместо радиоволн используется свет.

Есть небольшие нюансы в типах таких сенсоров, но смысл технологии от этого не меняется. Поэтому мне, чисто из-за созвучия с радаром, больше всего нравится название LiDAR, так и будем называть этот сенсор.



Кстати, лидары использует не только в задачах навигации. Благодаря лидарам сейчас происходит настоящая революция в археологии. Археологи сканируют территорию с самолета при помощи лидара, после чего очищают данные ландшафта от деревьев. И это позволяет находить древние города, скрытые от глаз человека!





Также помимо статических лидаров, направленных в одну сторону, бывают вращающиеся лидары, которые позволяют сканировать пространство вокруг себя на 360 градусов. Такие лидары используется в беспилотных автомобилях, ну и в этом роботе-пылесосе.



Еще 8 лет назад такие сенсоры стоили каких-то невероятных денег, под 100 тысяч долларов. А теперь у вас по дому может спокойно ездить маленький беспилотник.



Лидар в пылесосе


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

Благодаря лидару и построенной карте, пылесос ездит не рандомно как скринсейвер в Windows, стукаясь об углы, а аккуратно проезжая всю площадь (модели без лидаров обычно катаются странно).

Но внутри пылесоса стоит, на секундочку, восьмиядерный Qualcomm Snapdragon 625 (Qualcomm APQ8053), поэтому у него хватает мозгов не только построить карту, но и ориентироваться по ней.

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



Также каждую из 4 карт можно поделить на 10 специальных зон. Для которых можно настроить свои параметры уборки: мощность всасывания (до 2500 Па), количество проходов и прочее. А куда-то можно вообще запретить ездить. Можно даже выбирать сухую и влажную уборку для разных зон. Правда для этого не нужно подключать/отключать отдельный резервуар с водой. И всё это стало возможно благодаря лидару.

Тем не менее у технологии есть некоторые недостатки очень разреженные данные.Пространство сканируется линиями. В больших автомобильных радарах разрешение от 64 до 128 линий. Плюс ко всему у лидар есть мертвая зона. Если лидар стоит на крыше то он не видит, что творится в достаточно большом радиусе вокруг него.

Также в роботе-пылесосе лидар тут сканирует пространство всего одним лучом. Поэтому, всё что он видит это тонкая линия на высоте где-то 9-10 сантиметров от пола. Это позволяет определять где стены и мебель, но он не видит того, что валяется на полу.

Две камеры




Поэтому, чтобы исправить этот недочет лидаров. как в автомобили, так и в пылесосы ставят дополнительные камеры.Тут камеры сразу две, и они обеспечивают стереоскопическое зрение. Да-да, у пылесоса всё как у людей два глаза.

Две камеры, во-первых, позволяют убрать мертвую зону впереди пылесоса. А во вторых позволяют достаточно точно определять расстояние до валяющихся на полу предметов.

Это позволяет пылесосу обнаруживать предметы размером не менее 5 см в ширину и 3 см в высоту и объезжать их.

Этап 2. Обработка


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

Данные с лидара мы получаем в виде трехмерного облака точек, которые фактически не нуждаются в дополнительной обработке.

Как получить стерео с двух камер тоже понятно высчитывается разница между изображениями снятыми чуть под разным углом и так строится карта глубины. Это несложно.



Но вот совместить данные с разных сенсоров это нетривиальная задача.

Например, пылесос на полу обнаружил какой-то предмет. Дальше ему нужно понять где именно он находится на карте построенной при помощи лидара. А также нужно предположить какие у него габариты по проекции с одной стороны. То есть нам нужно поместить предмет в некий объёмный куб правильного размера.





Эту задачу можно решить разными способами. Один из способов называется усеченная пирамида.Сначала на камере обнаруживаются предметы. Потом эти предметы помещаются в конус, а объем этого конуса вычисляется нейросетью.



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



А раз мы заговорили про нейросети, значит мы уже немного зашли на 3-й этап компьютерного зрения анализ.

Этап 3. Анализ


За распознавание, сегментацию и классификацию объектов на изображении в современном мире в основном отвечают нейросети. Мы даже делали подробный ролик о том как это работает, посмотрите.



Если кратко, нейросеть это такое большое количество уравнений, связанных между собой. Загружая в нейросеть любые данные ты обязательно получишь какий-то ответ.
Но, например, если постоянно загружать в нейросеть фотографии кошечек, и указать ей, что ответ должен быть кошка. В какой-то момент, нейросеть перестает ошибаться на обучающей выборке. И тогда ей начинают показывать новые незнакомые изображения и если на них она тоже безошибочно определяет кошек нейросеть обучена.

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

Что-то похожее происходит с нейронными связями в человеческом мозге. Когда мы чему-то учимся или запоминаем, мы повторяем одно и то же действие несколько раз. Нейронные связи в мозге постепенно укрепляются и потом нам это легко даётся!

Например, в данном пылесосе за работу нейросети отвечает встроенный NPU-модуль. Всё-таки внутри Snapdragon, пылесос может себе такое позволить.

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

Распознавание предметов происходит при помощи гугловской библиотеке Tensorflow. Алгоритм самообучается и умнеет от уборки к уборке.

Практика




В нашем роботе-пылесосе технология распознавания называется Reactive AI. Мы протестировали насколько она хорошо работает на практике.

Кайфовая штука, что все найденные предметы пылесос отмечает не карте. Поэтому теперь, я не обещаю, но такое возможно, вы всё-таки обнаружите логово пропавших носков.

Проследить за тем, что видит пылесос всегда можно через фирменное приложение или Mi Home от Xiaomi. Можно даже просто кататься по дому управляя пылесосом слать на него голосовые сообщения. Управлять пылесосом можно также через Google Ассистента или Алису.Всё на русском языке.

С недавних пор бренд начал официально продаётся в России, поэтому устройства полностью локализованные.

Внутри кстати стоит батарейка на 5200 мАч, которая способна выдержать до 3 часов уборки.

Итоги




Ребят, ну вы сами всё видели. Правда, стоит обратить внимание, что пока корректное распознавание предметов работает только если запускать пылесос через специальное приложение. И это нюанс, поскольку оно пока недоступно в Play Market Россия. Но в течение нескольких месяцев оно появится.
Подробнее..

Перевод Стартап, который помог Microsoft в создании мира Flight Simulator

19.08.2020 16:20:48 | Автор: admin
image

Новый Flight Simulator компании Microsoft это чудо технологий, задающее новую планку стандартов в жанре. Для воссоздания мира, кажущегося реальным и живым, содержащим миллиарды зданий, расположенных в правильных местах, Microsoft и Asobo Studios использовали труд многих партнёров.

Один из них небольшой австрийский стартап Blackshark.ai из города Граца, который силами всего около 50 сотрудников смог воссоздать каждый город мира при помощи искусственного интеллекта и огромных облачных вычислительных ресурсов.

Перед выпуском нового Flight Simulator мы встретились с одним из основателей и генеральным директором Blackshark Майклом Патцем, чтобы обсудить сотрудничество с Microsoft и дальнейшие перспективы развития его компании.


Blackshark является ответвлением игровой студии Bongfish, разработавшей World of Tanks: Frontline, Motocross Madness и серию игр о сноубординге Stoked. По словам Патца, именно благодаря Stoked компания создала Blackshark.

Одной из первых игр, разработанных нами в 2007 году, была игра о сноубординге под названием Stoked и S Stoked Bigger Edition. Она стала одной из первых игр с моделируемыми на 360 градусов горами: игрок мог облетать гору на вертолёте, высаживаться в любом месте и катиться вниз. Сама гора создавалась и описывалась процедурно, так же размещались препятствия в виде растительности, других сноубордистов и мелких животных. Затем мы перешли к жанрам гонок, шутеров и управления автомобилями, но не забывали идею процедурного размещения и описания объектов.

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

Воспользовавшись своим опытом, Bongfish начала создавать собственный отдел разработки ИИ. Этот отдел использовал набор техник машинного обучения для построения системы, способной учиться тому, как строят карты дизайнеры, а спустя какое-то время способной создавать их самостоятельно. Компания уже начала использовать эту систему в нескольких своих проектах, после чего с ней связалась Microsoft.


Совершенно случайно я встретил людей из Microsoft, искавших студию, способную помочь им с новым Flight Simulator. Основная идея Flight Simulator заключалась в использовании в качестве игрового поля, карты и фона Bing Maps, рассказывает Патц.

Но данные фотограмметрии Bing Maps позволяли создать точные реплики всего 400 городов, а для большей части площади планеты таких данных не существовало. Microsoft и Asobo Studios требовалась система для постройки всего остального.

Именно тогда за дело взялась Blackshark. Для Flight Simulator студия воссоздала из спутниковых 2D-изображений 1,5 миллиарда зданий.

Хотя Патц и говорил, что встретился с людьми из Microsoft случайно, стоит добавить, что когда-то в Граце существовал отдел Bing Maps, разработавший первые камеры и 3D-версии Bing Maps. И несмотря на то, что рынок завоевали Google Maps, на самом деле Bing Maps превосходила Google в области 3D-карт. Затем Microsoft открыла исследовательский центр в Граце, а после его закрытия местных талантливых сотрудников переманили Amazon и другие компании.

Поэтому нам очень просто было найти людей на должности с требованиями типа PhD в воссоздании крыш, говорит Патц. Я даже не знал, что такое существует, но это было именно то, что нам нужно, и мы нашли двух таких людей.

Легко понять, почему воссоздание 3D-здания из 2D-карты это сложный процесс. Непросто даже определить точный контур здания.


По сути, мы выполняли в Flight Simulator следующую задачу: изучали 2D-области и искали на них признаки зданий, что является задачей компьютерного зрения, рассказывает Патц. Но если здание закрыто тенью дерева, то нам требуется машинное обучение, потому что из-за наложения тени становится непонятно, что является частью здания Машинное обучение способно восстановить оставшуюся часть здания. И это ещё очень простой пример.

Хотя Blackshark и могла использовать некоторые другие данные, в том числе фотографии, данные датчиков и уже имеющиеся данные карт, ей приходилось определять высоту зданий и другие их характеристики на основании очень ограниченной информации.

Следующей очевидной проблемой является определение высоты здания. Если есть данные GIS, то эту задачу легко решить, но для большинства областей мира таких данных попросту не существовало или их непросто было достать. В таких случаях команда брала 2D-изображение и изучала на ней разные зацепки, например, тени. Однако чтобы определить высоту здания по тени, нужно знать время суток, а изображения в Bing Maps не имели меток времени. В других случаях у Blackshark они имелись, что сильно упрощало работу. И здесь на помощь снова приходит машинное обучение.


Машинное обучение идёт немного иным путём, объясняет Патц. В нём тоже учитываются тени, но поскольку это просто тёмная фигура, мы не знаем, как она себя ведёт. Однако если посмотреть на плоскую крышу, например, сравнить небоскрёб с торговым комплексом, то оборудование на крыше небоскрёба отличается от оборудования на торговом комплексе. Поэтому, помечая здания, мы помогаем ИИ учиться.

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

Blackshark не скрывает, что её система будет совершать ошибки, и если вы купите Flight Simulator, то увидите, что там в игре есть ошибки с размещением зданий. Патц сообщил мне что одной из самых сложных задач этого проекта было убедить партнёров-разработчиков и Microsoft позволить использовать этот подход.

Мы говорим о 1,5 миллиардах зданий. При таком масштабе уже нельзя полагаться на традиционный контроль качества. Традиционный подход игр уровня Halo заключается в том, что ты показываешь пальцем и говоришь этот пиксель плох, исправьте, но не работает, когда ты ведёшь разработку при помощи ИИ на основе статистики. Может оказаться, что 20% зданий созданы ошибочно, и, вероятно, в случае Flight Simulator это так; но мы не смогли бы решить эту задачу иначе, ведь аутсорсинг моделирования 1,5 миллиарда зданий невозможен ни логистически, ни финансово.

Со временем эта система будет совершенствоваться, а благодаря стримингу Microsoft большого объёма данных из Azure, пользователи наверняка увидят изменения.


Однако разметка это просто способ, которым команда студии обучает модель, и в этой сфере Blackshark достигла большого прогресса. Патц не вдаётся в подробности, потому то это часть секретного ноу-хау компании, благодаря которому и удалось выполнить такой объём работы усилиями всего 50 человек.

Метки данных не были приоритетом для наших партнёров, рассказывает он. Поэтому мы использовали свою систему живой разметки, по сути разметив всю планету силами двух-трёх человек. Это предоставляет аналитикам данных очень мощный инструмент и пользовательский интерфейс. Допустим, если аналитик хочет обнаружить корабль, то он сообщает алгоритму обучения, что такое корабль, а затем мгновенно получает на выходе обнаруженные на сэмплируемом изображении корабли.

На основании выходных данных аналитик может обучить алгоритм, чтобы он ещё лучше распознавал конкретные объекты, в нашем примере корабли или торговые комплексы в Flight Simulator. Патц говорит, что другие компании, занимающиеся геопространственным анализом, обычно фокусируются на конкретных нишах, а инструменты Blackshark не зависят от типа анализируемого контента.


И здесь в дело вступает более масштабное видение Blackshark. Поскольку компания сейчас получает одобрительные отзывы о её работе с Microsoft, она также сотрудничает с другими компаниями, реконструирующими модели городов, например, для симуляции автономного вождения.

Наша более масштабная цель создание почти в реальном времени цифрового близнеца нашей планеты, и особенно поверхности планеты. Это позволит использовать данные множеством различных способов в случаях, когда не помогает традиционная фотограмметрия типа Google Earth или Apple Maps, ведь она упрощена до уровня фотографий, наложенных на простые геометрические формы. Для этого у нас есть цикл обработки: мы извлекаем исследовательскую информацию из данных аэрофотосъёмки, которые могут быть 2D-изображениями или даже наборами 3D-точек. А после этого мы визуализируем семантику.

Такая семантика, очень подробно описывающая здание, имеет одно серьёзное преимущество перед фотограмметрией: по сути, информация о тенях и освещении запечена в фотографии, из-за чего реалистичное наложение другого освещения становится непростой задачей. Так как Blackshark знает всё о создаваемом ею здании, она может наложить на эти здания окна и освещение, что создаёт в Flight Simulator на удивление реалистичные ночные сцены.

Облака точек, которые не используются в Flight Simulator, являются ещё одной сферой, которой сейчас активно занимается Blackshark. Облака точек очень сложно считывать людям, особенно если приблизиться к ним вплотную. Blackshark использует свои системы ИИ для анализа облаков точек, определяя по ним количество этажей в здании.

В основе всей нашей компании лежит понимание того, что для выполнения задачи нам нужно огромное технологическое преимущество. Особенно это касается отрасли видеоигр, в которой такие масштабные проекты, как Assassins Creed и GTA столкнулись с пределами возможного: над ними работают тысячи людей, этот труд очень сложно масштабировать и координировать между континентами, во время превращая его в готовый продукт. Нам было очевидно, что для решения такой задачи требуется более автоматизированный или частично автоматизированный процесс.

Хотя Blackshark была основана как игровая компания и сейчас она сотрудничает с Microsoft и Asobo Studios, её основной целью являются не игры, а такие области, как автономное вождение и анализ географических данных. Патц замечает, что ещё одним хорошим примером такого развития стал Unreal Engine, который изначально был только игровым движком, а теперь используется повсюду.

Меня, долгое время проработавшего в игровой отрасли, такая ситуация очень вдохновляет, ведь при разработке игр ты понимаешь, насколько революционными могут стать технологии по сравнению с другими отраслями, говорит Патц. А если взглянуть на симуляторы, от военных от промышленных, то они всегда выглядели отстойно по сравнению с гоночными играми. Настало время игровым технологиям выбираться из игровой отрасли и начинать помогать всем прочим отраслям. Думаю, Blackshark стала одним из примеров того, как это сделать.
Подробнее..

Из песочницы Беспилотный комбайн Ростсельмаш для сбора бутылок?

13.07.2020 16:22:43 | Автор: admin
В конце мая я изучал игры для PlayStation, которые Sony ежемесячно дарит пользователям подписки PS Plus там была игра Farming Simulator 19. Не то чтобы я прям целюсь в фермеры, но всё же решил посмотреть трейлер игры. Довольно забавно: тебе дают поле, по которому ты гоняешь на комбайне или тракторе, сеешь семена или собираешь урожай интересная залипуха для самоизоляции, с весьма недурной графикой. Но сразу почему-то не скачал, а сейчас уже всё, всё: игра перестала быть бесплатной, в июньском предложении теперь другие игры (кстати, тоже неплохие Star Wars Battlefront II и Call of Duty: WWII).


К чему я это всё? Не знаю, в каких отношениях состоят Sony и Google, но недавно YouTube подсунул мне любопытное видео На что способен комбайн-беспилотник TORUM. И я не смог совладать с любопытством очень уж захотелось узнать, что там и как нынче в сельском хозяйстве. Был приятно удивлён, узнав, что на видео речь про новую разработку компании РОСТСЕЛЬМАШ! Посмотрел и если вы думаете, что под катом будет реклама комбайна, то нет. Под катом я призываю коллективный разум поковырять очередное достижение.

Инновации и реализация новых технологий в конечных продуктах чаще всего вызывают у меня восторг. Можно по-всякому относиться к Маску, но лично у меня он не первый год возглавляет рейтинг поставщиков wow-эффекта. От одних только концептов Tesla, SpaceX, Boring и HyperLoop у меня, кхе, привстаёт. Недавний запуск Crew Dragon это просто космос.


Да это же чудо чудесное!

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

Предлагаю к просмотру видео, предложенное Ютубом:



Что меня смутило? Пожалуй, главная претензия мне показалось, что никакого беспилотника там нет. Заранее извиняюсь, если покажусь слишком придирчивым, но это всё робот Фёдор именно он приучил меня относиться максимально критически к нашим ноу-хау.

Начну с самого заметного с внешнего вида, а точнее с кабины. Зачем беспилотному комбайну полноценная кабина? Ведь если я правильно понимаю слово беспилотный, то железяка должна ездить сама, без какого-либо участия пилота, максимум с дистанционным управлением. А если кабина там для того, чтобы комбайнёр мог в случае чего взять управление в свои руки, то это уже максимум какое-то ассистирование, но никак не беспилотник.


Буквально через несколько секунд мои догадки подтверждаются на одном из кадров в кабине можно заметить человека. Это заметили и в комментариях, на что производитель ответил Для некоторых крупных планов в видео действительно могли использоваться отрывки, снятые с участием комбайнера. Ну и в целом делается акцент на том, что это ещё прототип. Хм, нууу окей, хотя слово беспилотный на месте производителя я бы раньше времени не использовал.Ещё, конечно, очень забавно, что машина катается по асфальтированной площадке, а не по полю. Ну, да ладно.


Далее нам показывают, как комбайн ездит по площадке и разворачивается, делает тройные тулупы. А рядом стоит человек с планшетом в руках вероятно, это панель управления комбайном, своего рода ЦУП. На экране видна карта (с наложенной траекторией движения), несколько контролов в целом даже симпатично. Но вдруг человек оказывается перед комбайном и вопросов становится ещё больше.


Во-первых, почему на экране планшета появляется только сообщение Обнаружено препятствие, а не картинка с фронтальной камеры? Было бы не лишним видеть причину остановки техники.


Ведь препятствием может оказаться что угодно: куст, дерево, стог сена, трансформаторная будка.


Фотография из поста про комбайны

Может потому, что фронтальной камеры у комбайна просто нет? Я искал и ничего похожего на камеру не заметил.

Но далее нам всё же показывают изображение препятствия правда, уже на другом устройстве, а не на том планшете. В этот раз некий TFT LCD COLOR DVB/USB READER MONITOR, который почему-то лежит на кресле (комбайна?). Изучаю ракурс картинки на устройстве и пытаюсь найти камеру ещё раз и снова не нахожу. Даже на втором видео из новостного сюжета, где ракурсов чуть больше. Ладно, чёрт с ней, может где-то и спрятана главное ж, что картинка есть и препятствие обнаружено.


Но вернёмся к девайсу на сиденье. Рассмотрим поближе его экран: вероятно, там экран приложения с машинным зрением. Ну или я не знаю, где ещё в комбайне может использоваться раздел Detect objects с вариантами bicycle, bird, boat, bottle, bus, car, cat, chair и cow. Ну да, ведь стулья так часто прячутся в кукурузных полях.

Также чуть выше на рабочем столе можно разглядеть значок с логотипом NVIDIA если присмотреться, то видно надпись, NVIDIA Jetson. Гуглим и оказывается, что Системы NVIDIA Jetson обеспечивают производительность и энергоэффективность, что позволяет ПО для автономных машин работать быстрее и потреблять при этом меньше электроэнергии. Каждое решение представляет собой систему-на-модуле с процессором, графической картой, системой управления питанием PMIC, памятью DRAM и флэш-памятью, что позволяет сэкономить средства и время на разработку. Jetson представляет собой масштабируемое решение. Просто выберите оптимальную для вашего приложения систему-на-модуле и создайте на ее основе настраиваемую систему для конкретных задач. Интереса ради посмотрел рядом демку Hello AI World там как раз речь о том, как создать из гаек и палок Raspberry Pi и мини V2 камеры простенькую нейронную сеть.



Можете тоже посмотреть, но я обратил внимание (в разделе Real-Time Object Detection in 10 Lines of Python Code on Jetson Nano) на то, что в видео те же обои рабочего стола, а помимо распознавания банана как раз присутствуют бутылки и птицы. Дальнейшее изучение репозитория лишь подтвердило мои догадки о том, что вместо собственных разработок в машинном зрении нам подсунули готовую демку. Невольно вспомнилась недавняя демка для трекера мусоровозов, которую взяли для одного нашумевшего приложения.


Если мои догадки верны, то и маршрут передвижения комбайна не более чем движение по заданной GPS-траектории. А значит при пропадании сигнала комбайн или остановится, или, что вероятнее, исполнит тему как в Ну, погоди!.


Изначально вспомнился эпизод с катком через лес, но и с комбайном там тоже неплохо вышло

Всё перечисленное наводит на мысль о том, что высокотехнологичный комбайн уехал не сильно дальше дешёвого робота-пылесоса, так как даже в моделях среднего ценового класса присутствует лазерное сканирование пространства, а движение по алгоритмам видно невооружённым глазом.


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

Но выглядит красиво, так что буду рад ошибаться!

Спасибо за внимание.
Подробнее..

Роботы-игрушки. Топ-10 проектов c Kikstarter для развития ребенка и обучения программированию

06.05.2021 16:19:55 | Автор: admin

Одним из направлений робототехники стали интеллектуальные игрушки для обучения детей творчеству, основам наук и программированию. Порой такие детские роботы уже обладают элементами искусственного интеллекта (ИИ) и способны самообучаться в процессе общения. Воплотить в жизнь самые оригинальные идеи из детской игровой робототехники помогают небольшим стартапам платформы Кикстартер и Индигого. Из представленных на этих краудфандинговых платформах проектов мы сформировали подборку наиболее востребованных идей, получивших финансирование для дальнейшего развития проекта.

Clicbot обучающий робот-игрушка

Clicbot универсальный программируемый робот-игрушкаhttps://youtu.be/sJaa1-Vnz4EClicbot универсальный программируемый робот-игрушкаhttps://youtu.be/sJaa1-Vnz4E

Clicbot универсальный программируемый робот-игрушка. Благодаря модульной конструкции робот можно собрать в виде гуманоида, двух и четырех колесной тележки, манипулятора, напоминающего формой и движениями промышленные роботы-автоматы. Имеется 50 предварительно запрограммированных забавных конструкций и множество других вариантов для самостоятельного творчества.

Интерактивный Clicbot способен слушать собеседника и реагировать на его действия. Хотя, он и не предназначен для использования в качестве полностью автономного робота-компаньона, но его поведение может легко программироваться. У Clicbot более 1000 настроек и каждая имеет свои под варианты. Он может ходить, ползать, танцевать, ездить, участвовать в гонках или даже подавать утренний кофе, увлекая детей занятиями по робототехнике и программированию.

Головной блок управления включает акселерометр, гироскоп, датчик расстояния, микрофон, динамик, модуль Wi-Fi. Видеокамера позволяет распознавать лица и образы, команды управления, поддерживает технологию FPV (First-Person View) для телеприсутствия и удаленного наблюдения. Для программирования Clicbot можно использовать графический редактор Google Blockly или язык Python

На платформе Кикстартер ClicBot собрал $903 248 от 1678 спонсоров.
keyirobot.com

Bittle программируемый роботизированный кот

Bittle это игрушечный аналог роботов от Boston Dynamic. Он чем-то напоминает и другого робота-собаку Sony Aibo. Но при этом Bittle продается по цене роботизированной игрушки в виде конструктора для самостоятельной сборки.

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

Bittle создан на основе доработанной платы Arduino, для сложных движений использует различные датчики и внешние устройства. Плата управления включает процессор Atmega328P/16 МГц, 2 КБ памяти SRAM и 32 КБ флэш-памяти. Кроме того есть инерциальный измерительный модуль, блок ШИМ для 12 сервоприводов, инфракрасный приемник и зуммер. Есть 4 разъема для модулей расширения.

Bittle это открытая платформа, позволяющая объединить гаджеты разных производителей в единую систему. Добавить роботу возможности ИИ можно подключением микрокомпьютера Raspberry Pi. Написанная на Python программа может запускаться на Raspberry Pi и других поддерживаемых процессорах, управляя Bittle через проводное или беспроводное соединение.

Для упрощенного программирования есть фреймворк OpenCat. Он определяет минимальную структуру данных и алгоритмы движений для четвероногих роботов. Вы сможете научить Bittle новым навыкам и трюкам, чтобы выигрывать призы в соревнованиях международного сообщества OpenCat.

На развитие проекта Bittle на Индигого было собрано $709 391 от 2505 спонсоров.
petoi.com

MOSS универсальный инструмент для обучения программированию

Комплекты MOSS от компании Modular Robotics это оригинальный конструктор для создания роботов. Разнообразные по назначению, программируемые кубики (Cubelets) легко комбинируются и позволяют собирать сотни разнообразных роботов.

Подбор кубиков в процессе сборки робота имитирует процесс простейшего программирования. Программирование с помощью графического редактора Blockly и MOSS Scratch задает алгоритмы контроля датчиков и управления исполнительными механизмами для движения, поворотов, подачи световых и звуковых сигналов.

Программировать и управлять роботом можно через Bluetooth с помощью смартфона или планшета с клавиатуры или пульта дистанционного управления.

При первоначальной цели на Кикстартер в $100 000 для финансирования проекта удалось собрать $361 293.

modrobotics.com

Makeblock Neuron платформа электронных строительных блоков

Makeblock Neuron это удобная для сборки программируемая платформа с использованием электронных строительных блоков. Более 30 типов блоков в виде кнопок, джойстиков, сенсоров и датчиков звука, освещенности, температуры, влажности и других параметров позволяют создавать множество оригинальных гаджетов.

Для соединения блоков между собой предусмотрены подпружиненные разъемы с магнитами. Помогает при этом интуитивно понятная система программирования. Каждый блок уже имеет предварительно запрограммированную функцию. Программировать новые функции можно в приложении Neuron или в редакторе mBlock 5. Для беспроводной передачи сигналов управления используются технологии Bluetooth и Wi-Fi.

Проект Neuron от китайской компании Makeblock получил на Кикстартер одобрение 1464 спонсоров, вложивших в развитие этой идеи $367 129.

makeblock.com

Thimble: новая электронная игрушка каждый месяц

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

Среди наборов Thimble представлены комплекты для сборки игровых контроллеров, музыкальных синтезаторов, устройств для Умного дома. Можно заняться сборкой более сложных программируемых роботов на микроконтроллере Arduino с управлением через Wi-Fi.

Для начинающих предназначены более простые наборы: различные световые и музыкальные игрушки, термометры, таймеры, дверные звонки. Приложение Thimble включает пошаговые руководства по сборке и позволяет обмениваться опытом и знаниями с другими сборщиками каждой игрушки.

Для развития проекта Thimble через Кикстартер собрано $295 760 от 1776 заинтересованных заказчиков.

thimble.io

MarsCat домашний робот-кот

Полностью автономный, интерактивный MarsCat идеальный робот-игрушка с программируемыми возможностями. Он может выражать эмоции мяуканьем, движениями тела и глаз. Сделать поведение MarsCat натуральным и выразительным помогают 16 серводвигателей.

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

Моделировать поведение настоящего животного помогают алгоритмы ИИ, реализуемые миникомпьютером Raspberry PI. Приобретенные одним роботом навыки и шаблоны поведения хранятся в отдельном модуле памяти и могут быть легко воспроизведены в другом роботе простой заменой памяти. Программировать поведение робота MarsCat помогает специальный комплект разработчика.

Реализовать проект MarsCat в жизнь помогли 227 спонсоров, вложивших в эту идею через Кикстартер $213 198.

elephantrobotics.com

Робот-автомобиль Zumi

Роботизированный автомобиль Zumi помогает детям изучать основы сложных наук, писать программы с использованием блочного кодирования и языка Python. Более опытные программисты смогут создавать программы для уникальных экспериментов с беспилотными автомобилями, научатся проектировать собственные нейронные сети, чтобы обучить Zumi классифицировать объекты и распознавать лица и жесты людей.

В процессе передвижения по трассе Zumi использует Tensor Flow и Open CV это те же самые программные инструменты, что есть и у настоящих беспилотных автомобилей.

Прототип Zumi был удостоен награды Лучшая инновация в категории Роботы и дроны на выставке CES 2019

Реализовать проект Zumi в жизнь помогли 888 спонсоров, вложивших в эту идею через $150 091

shop.robolink.com

ROYBI портативный робот-компаньон с ИИ

Портативный компаньон на базе ИИ создан для обучения детей иностранным языкам и базовым навыкам точных наук. Интерактивный робот идентифицирует ребенка по лицу, распознает эмоции и демонстрирует дружелюбное поведение для вовлечения детей в процесс обучения. Система распознавания голоса позволяет оценивать точность ответов и произношения.

ROYBI взаимодействует с повсеместно доступной онлайн-платформой для обучения детей и взрослых. Контролировать и оценивать занятия помогают формируемые роботом отчеты с рекомендациями по улучшению процесса обучения.

ROYBI был включен в США по версии CNBC в список 100 наиболее перспективных стартапов в 2019 году.

Запущенный на платформе Индигого проект ROYBI привлек $120 538

roybirobot.com

Заботливый Kiki

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

Высокопроизводительный встроенный процессор позволяет Kiki запускать модели глубокого обучения, чтобы распознавать лицо и адекватно воспринимать реакции собеседника. Несколько сенсорных датчиков в разных частях корпуса помогают воспринимать поглаживания, а всенаправленные микрофоны позволяют искать человека даже вне поля обзора камеры.

Реалистичное поведение этого робота базируется на исследованиях ведущих психологов о личностных особенностях человека. Действия в соответствии с заложенными моделями поведения и обучения обеспечивают некую осмысленность и логичность поступков Kiki.

Самообучающийся робот Kiki собрал на платформе Кикстартер $105 611.

kiki.ai

Smartipresence простой робот телеприсутствия

Конструктор Smartipresence поможет создавать собственных недорогих роботов телеприсутствия на основе любого смартфона.

Запущенное на смартфоне приложение поддерживает режим ИИ и позволяет распознавать образы с помощью облачного сервиса. По команде пользователя Smartipresence в сеансе видеосвязи будет сопровождать человека или даже домашнее животное, чтобы его лучше видел удаленный собеседник. Режим действий Smartipresence задается через приложение на смартфоне. Smartipresence можно визуально программировать в среде Scratch, либо с помощью Espruino на основе языка JavaScript.

Этот проект английского инженера Росса Аткина уже поддержали на Кикстартер 186 спонсоров, собравших для запуска проекта $17329.

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

Напишите в комментарии, а какие на ваш взгляд наиболее перспективные роботы-игрушки есть на рынке или уже у вас дома?

Подробнее..

Как я преподавал курс AIMLDL от Samsung

09.12.2020 20:22:50 | Автор: admin
Всем привет. Расскажу вам про свой взгляд на ИИ, так сказать, изнутри процесса. В смысле образовательного и научного процесса.

Так сложилось что в 1998 я поступил аспирантуру в РГАСХМ и темой своей научной работы выбрал AI/ML. Это были суровые времена очередного ледникового периода нейронных сетей. Как раз в это время Ян Лекун опубликовал свою знаменитую работу Gradient-Based Learning Applied to Document Recognition о принципах организации сверточных сетей, которая, на мой взгляд, как раз и была началом новой оттепели. Забавно, что тогда я работал над некоторыми похожими элементами, верно ведь говорят, что идея, когда приходит её время, носится в воздухе. Однако не всем дано ее воплотить в жизнь. Свою работу я, к сожалению, так и не довел до защиты, но всегда хотел когда-нибудь закончить ее.


Источник: Hitecher

И вот по прошествии 20 лет, когда я стал работать преподавателем в Южном Федеральном Университете и одновременно преподавать в программе дополнительного образования IT Школа Samsung, мне представился второй шанс. Компания Samsung предложила ЮФУ первому запустить учебный трек IT Академии Samsung по искусственному интеллекту для бакалавров и магистров. У меня были некоторые опасения в том, что удастся реализовать всю учебную программу в полном объеме, но я с энтузиазмом откликнулся на предложение читать курс. Я понял, что круг замкнулся, и мне представился таки второй шанс сделать то, что когда-то не удалось. Здесь нужно отметить, что курс Samsung AI/ML это один из лучших на сегодня открытых русскоязычных курсов, доступных бесплатно на платформе Stepik (https://stepik.org/org/srr). Однако в случае ВУЗовской программы, помимо теоретико/практического курса, добавлялась проектная часть. То есть годовая учебная программа IT Академии Samsung считалась освоенной в случае изучения двух модулей Нейронные сети и компьютерное зрение, Нейронные сети и обработка текста с получением соответствующих сертификатов Stepik, а также выполнения индивидуального проекта. Обучение по курсу завершалось защитой проектов студентов, на которую приглашались эксперты, в т.ч. сотрудники московского Центра искусственного интеллекта Samsung.

И вот с сентября 2019 мы стартовали курс в Институте высоких технологий и пьезотехники ЮФУ. Безусловно, довольно большое количество студентов пришло на хайпе и впоследствии был серьезный отсев. Программа была не то чтобы очень сложная, но объемная требовались знания:

  • линейной алгебры,
  • теории вероятности,
  • дифференциального исчисления,
  • языка программирования Python.

Конечно, все требуемые знания и умения не выходят за рамки учебной программы бакалавриата 3-го курса ВУЗа. Приведу пару примеров, из тех что посложнее:

  • Найдите производную функции активации гиперболического тангенса и выразите результат через $th(x)$.
  • Найдите производную функции активации сигмоиды и выразите результат через сигмоиду $(x)$.
  • В графе вычислений приведенном на рис. 1 представлена сложная функция $y$ с параметрами $b1,b2,c1,c2$. Для удобства добавлены промежуточные результаты операций как $z_1z_9$. Необходимо определить, чему будет равна производная $y$ по параметру $b1$




Честно говоря, кое-что, особенно из современных алгоритмов работы с нейронными сетями, я спешно изучал вместе со студентами. Изначально предполагалось, что студенты будут сами изучать видео-лекции онлайн курса Samsung на Stepik, а в аудитории мы будем делать только практикумы. Однако, я принял решение также читать и теорию. Это решение обусловлено тем, что с преподавателем можно разобрать непонятную тему, обсудить возникшие идеи и т.д. Практические же задачи студенты получали в виде домашних заданий. Подход оказался правильным на занятиях получалась живая атмосфера, я видел, что студенты в целом достаточно успешно осваивают материал.

Через месяц мы плавно перешли от модели нейрона к первым простым полносвязным архитектурам, от простой регрессии к многоклассовой классификации, от простого вычисления градиента к алгоритмам оптимизации градиентного спуска SGD, ADAM и т.д. Завершали первую половину курса сверточные сети и современные архитектуры глубоких сетей. Финальным заданием первого модуля по Computer Vision было участие в соревновании на Kaggle "Dirty vs Cleaned" с преодолением порога точности в 80%.

Еще один, на мой взгляд, важный фактор: мы не были замкнуты внутри вуза. Организаторы трека проводили для нас вебинары и мастер-классы с приглашенными экспертами из лабораторий Samsung. Такие мероприятия повышали мотивацию студентов, да и мою, честно говоря :). Например, было интересное профориентационное мероприятие онлайн-мост между аудиториями ЮФУ, МГУ и Samsung, на котором сотрудники московского Центра ИИ Samsung рассказали о современных направлениях развития AI/ML и ответили на вопросы студентов.

Вторая часть курса, посвященная обработке текста, начиналась с общей теории лингвистического анализа. Далее студентам были представлены векторная и TF-IDF модели текста, а потом и дистрибутивная семантика и word2vec. По результатам было проведено несколько интересных практикумов: генерация ембедингов word2wec, генерация имен и лозунгов. Дальше мы перешли к теории и практике по использованию сверточных и рекуррентных сетей для анализа текста.

Пока суть да дело, выпустил статью в ВАКовском журнале и начал готовить следующую, плавно набирая материал на новую диссертацию. Мои студенты тоже не сидели на месте, а стали работать над своими первыми проектами. Студенты выбирали темы самостоятельно, и в итоге получилось 7 выпускных проектов в разных областях применения нейронных сетей:

  1. Мониторинг физической активности человека Благодарный Александр, Крикунов Станислав.
  2. Разработка алгоритмов идентификации усталости человека Соленова Антонина.
  3. Распознавание маски на лице Будаева Екатерина.
  4. Распознавание эмоций по фотографии лица Пандов Вячеслав.
  5. Определение эмоций по речи Тихонов Алексей.
  6. Косметологический консультант Жмайлова Наталья.
  7. Цена слова Ринкон Диас Хаиро Алонсо, Моралес Кастро Хайме Игнасио.



Все проекты прошли защиту, но степень сложности и проработанности была разной, что, вполне справедливо, нашло отражение в оценках за проекты. По результатам защиты четыре проекта были отобраны на ежегодный конкурс IT Академии Samsung. И с гордостью могу сказать, что жюри присудили двум нашим проектам высшие места. Ниже я приведу краткое описание этих проектов, основанное на материалах, предоставленных моими студентами Благодарным Александром, Крикуновым Станиславом и Пандовым Вячеславом, за что им большое спасибо. Считаю, что продемонстрированные ими решения вполне могут быть оценены как серьезная исследовательская работа.

I место в номинации Искусственный интеллект конкурса IT Академии Samsung.
Мониторинг физической активности человека, Благодарный Александр, Крикунов Станислав


Проект состоял в том, чтобы создать мобильное приложение, определяющее и количественно подсчитывающее физическую активность на тренировках при помощи сенсоров мобильного телефона. Сейчас существует множество мобильных приложений, которые могут распознавать физическую активность человека: Google Fit, Nike Training Club, MapMyFitness и другие. Однако, эти приложения не могут распознавать отдельные виды физических упражнений и подсчитывать количество повторений.
Один из авторов проекта Благодарный Александр, мой выпускник по программе IT Школа Samsung 2015 года, и я не без гордости, радовался, что полученные еще в школе знания по мобильной разработке были применены в таком ключе.


Как распознаётся физическая активность? Начнем с того, как определяются временные границы упражнений. Для детектирования начала и конца упражнений студентами было решено использовать модуль ускорения, вычисляемый как корень из суммы квадратов ускорений по осям. Выбирался некоторый порог, с которым сравнивалось текущее значение ускорения. Если произошло превышение порога (производная ускорения положительная), то считаем, что упражнение началось. Если текущее ускорение стало ниже порога (производная ускорения отрицательная), то считаем, что упражнение закончилось. К сожалению, такой подход не позволяет производить обработку в реальном времени. Возможное улучшение применение скользящего окна на данные с вычислением результата на каждом шаге сдвига.

Датасет был собран авторами самостоятельно. При выполнении 7 различных упражнений использовались 3 вида смартфонов (Android версии 4.4 ,9.0, 10.0). Смартфон закреплялся на руке с помощью специального кармана. Суммарно тремя добровольцами было выполнено 1800 повторений. При выполнении могли возникать ошибки в технике по каким-либо причинам, поэтому была проведена процедура очистки выборки. Для этого были построены распределения взаимных корреляций для всех видов упражнений. Затем для каждого упражнения был выбран порог корреляции, ниже которого упражнение считается негодным и исключается из выборки.

Одно и то же упражнение, в зависимости от повторения, имеет различное время выполнения. Для борьбы с этим было решено интерполировать данные фиксированным числом отсчетов вне зависимости от того, сколько поступило с датчиков. Поступило 50 удваиваем частоту дискретизации, вычисляя промежуточные позиции как среднее арифметическое соседних. Поступило 200 выбрасываем каждый 2 отсчет. При этом число отсчётов будет постоянным. Аналогично при любых отношениях входного числа отсчётов к желаемому выходному числу.

Для нейросети было решено применять данные в частотной области. Поскольку масса тела человека достаточно велика, можно ожидать, что на большинстве стандартных упражнений характерные частоты сигнала будут лежать в низкочастотной области спектра. При этом высокие частоты можно считать либо дрожью при выполнении, либо шумами датчиков. Что это значит? Это значит, что мы можем найти спектр сигнала при помощи быстрого преобразования Фурье и использовать только 10-20 % данных для анализа. Почему так мало? Так как 1) спектр симметричен, можно сразу отсечь половину составляющих 2) основная информация лишь 20-40% информативной части спектра. Такие предположения особенно хорошо описывают медленные силовые упражнения.


Нормированный временной ряд для разных упражнений


Нормированный спектр для разных упражнений

Перед обработкой нейросетью происходит нормировка спектра данных на максимальное значение среди трёх осей, чтобы уложить все образцы упражнений в диапазон 0-1 по амплитуде. При этом пропорции между осями сохраняются.

Нейросеть выполняет задачу классификации упражнений. Это значит, что она выдает вектор вероятностей всех упражнений из списка, по которым она была обучена. Индекс максимального элемента в этом векторе номер выполненного упражнения. При этом, если уверенность в выполненном упражнении менее 85%, то считается, что ни одно из упражнений не было выполнено. Сеть состоит из 3 слоев: 4 свёрточных, 3 полносвязных, количество выходных нейронов равно количеству упражнений, которые мы хотим распознавать. В архитектуре для экономии вычислительных ресурсов используются только свёртки с размером ядра 3х3. Сравнительно простая архитектура сети оправдана ограниченными вычислительными ресурсами смартфонов, в нашей задаче необходимо распознавание с минимальной задержкой.


Описание архитектуры нейросети

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

Результаты: при более-менее качественном выполнении упражнений уверенность сети составляет 95-99%. На валидационной выборке точность составила 99.8%.


Ошибка при обучении на валидационной выборке


Матрица ошибок для нейросети

Нейросеть была встроена в мобильное приложение и показала аналогичные результаты, как и при обучении.

В ходе исследования также были опробованы другие модели машинного обучения, используемые в наши дни для решения задач классификации: логистическая регрессия, Random forests, XG Boost. Для этих архитектур были использованы регуляризация Тихонова (L2), перекрёстная проверка и gridsearch для поиска оптимальных параметров. Показатели точности в результате оказались следующими:

  • Логистическая регрессия: 99.4 %
  • Random forests: 99.1 %
  • XG Boost: 97.5%

Знания, полученные в ходе обучения в IT Академии Samsung, помогли авторам проекта расширить горизонты интересов и оказали неоценимый вклад при поступлении в магистратуру Сколковского института науки и технологий. На данный момент мои студенты занимаются там исследованиями в области машинного обучения для систем связи.

Код на GitHub

II место номинации Искусственный интеллект конкурса IT Академии Samsung.
Распознавание эмоций по фотографии лица, Пандов Вячеслав




Работа модели хорошо описана на этом слайде:



Все начинается с фотографии. В представленной реализации оно приходит от Telegram-бота. По нему Dlib frontal_face_detector находит все лица на изображении. Затем с помощью Dlib shape_predictor_68_face_landmarks детектируются 68 ключевых 2D точек каждого лица. Каждый набор нормализуется следующим образом: центрируется (вычитая среднее по X и Y) и масштабируется (деля на абсолютный максимум по X и Y). Каждая координата нормализованной точки принадлежит интервалу [-1, +1].

Затем в дело вступает нейросеть, которая предсказывает глубину каждой ключевой точки лица координату Z, используя нормализованные координаты (X, Y). Данная модель обучалась на датасете AFLW2000.

Далее эти точки соединяются между собой, образуя сеточную маску. Её ещё можно назвать биометрией лица. Длины отрезков такой маски используются как один из способов определения эмоций. Идея в том, что каждый отрезок имеет своё место в векторе отрезков и некоторые из них в зависимости от эмоции. И каждая эмоция, теоретически, имеет ограниченное количество таких векторов. Эта гипотеза подтвердилась в процессе экспериментов. Для обучения такой модели использовались датасеты: Cohn-Kanade+, JAFFE, RAF-DB.

Параллельно ещё одна сеть учится классифицировать эмоции по самому изображению. По найденным с помощью Dlib прямоугольникам вырезаются изображения лиц. Переводятся в одноканальные черно-белые и сжимаются до размеров 48х48. Для обучения этой модели использовались те же датасеты, что и для модели с биометрией. Однако дополнительно использовался датасет FER2013.

В заключение, в работу вступает третья нейросеть, архитектура которой объединяет обучаемым слоем две предыдущие замороженные и предобученные сети. У этих сетей также переопределяются последние полносвязные слои. Вместо ожидаемого вектора вероятностей, по которому можно определить целевой класс, теперь возвращаются более низокоуровневые признаки. А объединяющий слой обучается интерпретировать эту информацию в целевые класс.

Среди аналогичных решений можно выделить следующие: EmoPy, DLP-CNN (RAF-DB), FER2013, EmotioNet. Однако сложно делать сравнения, т.к. обучались они на разных данных.

Код на GitHub

Заключение


В заключение хочется сказать, что пилотный курс показал свою состоятельность, и в этом 2020/21 учебном году программа уже преподается в 23х ВУЗах партнерах IT Академии Samsung в России и Казахстане. Полный список можно увидеть здесь. В это году у нас уже учится группа магистров и бакалавров (в группе есть даже один целый к.э.н.!) и пока в основной массе успешно грызет гранит науки. Идеи на индивидуальный проект пока еще только предстоит найти, но студенты полны оптимизма. Конечно в следующем конкурсе индивидуальных проектов конкуренция возрастет десятикратно, но мы надеемся и в дальнейшем получать высокие оценки достижений наших учеников. И самое главное, я уверен, что полученные знания и опыт будут очень серьезным подспорьем для наших выпускников в их дальнейшем развитии в сфере IT.

2020 г. Ростов-на-Дону. ЮФУ, IT Академия Samsung.


Дмитрий Яценко
Старший преподаватель кафедры информационных и измерительных технологий, факультет высоких технологий, Южного Федерального Университета,
Преподаватель IT Школы Samsung,
Преподаватель трека AI IT Академии Samsung.
Подробнее..

Как распознать промышленные детали по фотографиям с помощью машинного зрения

14.10.2020 12:12:47 | Автор: admin

Привет, Хабр! Сегодня поговорим о том, как нейронные сети могут помочь в распознавании деталей и зачем это вообще нужно. Недавно к нам обратился один из наших клиентов - крупная промышленная компания, производитель грузовых автомобилей и их комплектующих. Детали насчитывали большое количество возможных наименований. Из-за этого при визуальном распознавании сотрудники совершали ошибки. Решили создать приложение на основе компьютерного зрения и нейронных сетей. С его помощью стали проверять правильный ли выбор сделал рабочий (рис 1). Так же дополнительно было необходимо сверять наименование распознанной детали с наименованием, указанным в накладной на заказ.

Рис. 1Рис. 1

Данные

Первыми данными были фотографии деталей и их чертежи. На каждую деталь приходилось в среднем 500-700 фотографий. Они были выполнены сотрудниками завода. При детальном изучении снимков стало понятно, что большое количество фотографий почти не отличалось друг от друга. Схожие фотографии были сделаны в режиме высокоскоростной сьемки с минимальными отклонениями ракурса. Поскольку идентичные фотографии содержат схожую информацию, использовать такие фотографии в качестве данных для обучения нейронных сетей было нецелесообразно. Решили отказаться от использования большей части фотографий и запросить новые. Составили подробные требования к фотографиям.

Выбор модели

Моделей распознавания изображений множество, и все они обладают разными характеристиками по скорости и точности, а также некоторыми нюансами. На выбор модели для нашего проекта оказали влияние особенности расположения деталей на фотографиях. Детали были сфотографированы таким образом, что на одной фотографии находились несколько объектов, которые перекрывали друг друга.

Использовать только ограничивающие рамки (Bounding Box) было бы недостаточно (Object detection). Они могли сильно перекрывать друг друга при разметки, обучении и распознавании, поэтому для обучения решили выбрать одну из моделей, с поддержкой метода сегментации изображения (Image segmentation) . (Рис. 2)

Рис. 2Рис. 2

Поскольку из-за специфики задачи важнее было определять класс объекта, а не его местоположение, была выбрана модель Mask R-CNN. Эта простая и гибкая модель позволяла эффективно обнаруживать объекты на изображении, одновременно генерируя высококачественную маску сегментации для каждого экземпляра. Метод Mask R-CNN расширил Faster R-CNN, добавив ветвь для предсказания маски объекта. Эта ветвь существовала параллельно с ветвью для распознавания ограничивающего прямоугольника. Faster R-CNN позволял детально разметить контур объекта, что решало проблему наложения рамок друг на друга при разметке деталей на фотографиях. Однако такая разметка занимала значительно больше времени.

В нашем случае разметка объектов на изображении выполнялась вручную на стороннем облачном сервисе. Он предоставлял возможность нескольким сотрудникам размечать один и тот же набор данных удаленно и после завершения разметки скачивать весь набор данных. (Рис. 3, 4, 5, 6)

Рис. 3Рис. 3Рис. 4Рис. 4Рис. 5Рис. 5Рис.6Рис.6

После разметки достаточного количества фотографий для экспериментов проводилось обучение первых моделей для распознавания деталей на сервере HPE DL380 c двумя видеокартами NVIDIA Tesla v100. В среднем, на обучение первых моделей было затрачено от 8 до 12 часов.

По результатам обучения, были выявлены проблемы, которые препятствовали распознаванию:

1. На фотографиях некоторых деталей были обнаружены лики, (объекты, не являющиеся частью деталей, но на которые модель обращает внимание при определении класса). Это способствовало неверному обучению сети.

2. Из-за специфики нейронных сетей модель не отличала друг от друга зеркальные детали, распознавая их как две детали одновременно. Это стало значимой проблемой, так как у заказчика было большое количество зеркальных деталей.

Что делать с ликами?

Чтобы решить эту проблему составили подробную инструкцию по сьемке фотографий для машинного обучения. Это позволило сократить количество ошибок и уменьшить число ликов при следующем обучении.

На фотографиях ниже (рис. 7 и 8) приведен пример ликов. На первой серии фотографий изображены детали первого класса при ярком освещении. На второй - детали второго класса при более темном освещении. На таком наборе данных при определении класса модель будет обращать внимание на фон и освещение. Это будет происходить, так как части изображения у первого и второго классов различны. Стоит заметить, что такая работа модели является некорректной: необходимо стремиться, чтобы при классификации модель опиралась на структуру деталей.

Рис.7. Пример фотографий первого классаРис.7. Пример фотографий первого классаРис. 8. Пример фотографий второго класса Рис. 8. Пример фотографий второго класса

Что делать с зеркальными деталями?

Чтобы решить проблему с распознаванием зеркальных деталей, мы решили использовать ансамбль моделей. Первая модель классифицировала детали на зеркальные и незеркальные, причем каждая симметричная деталь распознавалась как два объекта. Далее зеркальные детали отправлялись в следующие модели, которые были обучены для распознавания только зеркальных деталей. То есть под каждую пару зеркальных деталей была создана своя модель, которая классифицировала деталь как левую или правую (рис. 9).

Рис.9Рис.9

Как создать модель для разметки

Для создания моделей, которые классифицируют зеркальные детали, было запрошено около 2000 фотографий на каждый класс. Поскольку модели для распознавания зеркальных деталей имели бинарную классификацию (левая или правая деталь) для каждой модели было использовано 4000 фотографий.

Разметка такого большого количества фотографий потребовала бы много времени. Кроме того, 4000 фотографий использовалось в одной модели, распознающей зеркальные детали, а всего таких моделей было много: для каждой зеркальной детали уникальная. Решили сделать модель, которая выделяет маски и сохраняет их в необходимом виде. Вручную разметили 120 фотографий каждого класса, и на них обучили модель. После того как были размечены детали, неточная разметка была подкорректирована вручную. Такой подход сократил временные затраты и избавил от необходимости размечать большое количество изображений с нуля.

После этого модели для распознавания были обучены и подобраны параметры. (Рис. 10, 11).

Рис..10Рис..10Рис.11Рис.11

Распознавание бирок и накладных

Чтобы решить задачу с сопоставлением детали, выбранной рабочим, с деталью из накладной, было необходимо распознавать информацию о наименовании. Это возможно сделать с помощью штрихкода, который содержал информацию о номере детали. Таким образом, не было необходимости исследовать весь текст в накладной.

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

Для удобного развёртывания моделей весь backend был перенесен на SAP Data Intelligence.

Интерфейс и SAP Data intelligence

SAP Data Intelligence позволяет не только публиковать и встраивать модели, но и создавать на их базе новые собственные операторы (например, от python оператора). Это помогает переиспользовать существующие модели и встраивать их в необходимых форматах (батч-обработка, стриминг, или публикация REST-сервисов). Кроме этого, основанный на flow-based подходе пайплайн может быть быстро адаптирован под меняющиеся условия. Например, если в будущем потребуется интеграция с ERP / MES или любой другой системой, это будет сделать довольно просто. Также все получаемые фотографии можно собирать в используемое Озеро Данных для дообучения модели и улучшения качества распознавания. Если потребуется масштабировать данный сервис, это будет сделать легко. Достаточно настроить уровень параллелизма (параметр multiplicity) и под модель будет поднято соответствующее количество реплик на уровне kubernetes. Есть встроенные инструменты для отладки пайплайна, логирования, трассировки, мониторинга.

Кстати, нужно пару слов сказать о том, на какой платформе собирался данный проект. Так как система в будущем должна пойти в промышленную эксплуатацию, желательно использовать оборудование промышленного класса надежности. Компания Cisco предоставила для пилота гиперконвергентную систему Cisco Hyperflex, про которую ранее на Хабре уже писали здесь, здесь и здесь .

Так как SAP Data Intelligence полностью построен на контейнерах, важно, чтобы были решены задачи отказоустойчивости кластера Kubernetes и его интеграция с сетями центра обработки данных, в котором будет развернуто решение. Фактически, мы полностью повторили в лаборатории типовой валидированный дизайн Cisco&SAP, описанный здесь и голова за инфраструктуру у нас больше не болела.

В SAP Data Intelligence был создан контейнер со всеми необходимыми библиотеками. Для публикации сервиса использовался стандартный оператор OpenAPI. Весь backend работал в контейнере на сервере. Пайплайн можно было так же запускать на любом другом сервере Data Intelligence (рис. 12).

Рис.12. Архитектура, используемая для реализации задачРис.12. Архитектура, используемая для реализации задачРис .13. Пайплайн в Data intelligenceРис .13. Пайплайн в Data intelligence

Интерфейс для заказчика был написан с помощью открытого фреймворка openui5. Приложением можно воспользоваться в браузере с помощью закрепленной ссылки, а также скачать его на смартфон.

Приложение отправляло сохраненные в памяти телефона фотографии на сервер, или позволяло сделать новую с помощью камеры телефона. После распознавания пользователь мог видеть список деталей на отправленной фотографии. А также можно просмотреть чертежи распознанных деталей.

Для сравнения наименования детали с позицией в накладной, пользователю необходимо открыть отдельное меню на главной странице и сфотографировать накладную, а затем деталь, которую он выбрал. Если она не совпала по номерам, приложение оповестит пользователя предупреждением, что деталь неправильная и отгрузка запрещена.

Сегодня мы рассказали вам о создании приложения по распознаванию деталей с помощью нейронных сетей. Остался ли производитель грузовых автомобилей и комплектующих доволен? Думаю, да. Ведь приложение позволило значительно сократить ошибки, которые допускали сотрудники при самостоятельном распознавании деталей. Вообще, за последние несколько лет на основе нейронных сетей было создано большое количество моделей и систем для применения прогнозирования или оценки каких-либо параметров: состояние предприятия, вероятность поломки оборудования, оценка и предсказание доходов и расходов. Но нейронные сети с распознаванием изображений распространены не так сильно, так как не многие предприятия знают, как можно внедрить эту технологию в свои процессы с пользой для компании. И этот пример отлично иллюстрирует, что не зависимо от задачи, зная слабые и сильные стороны нейронных сетей, можно добиться прироста в эффективности, увеличить автоматизацию всего предприятия, а также уменьшить нагрузку на персонал.

Подробнее..

Boston Dynamics от боевых роботов в коммерцию

05.12.2020 20:19:25 | Автор: admin
Оказывается, некоторое время спустя Айзек Азимов придумал 4 закон робототехники

0. Робот не может причинить вред человечеству или своим бездействием допустить, чтобы человечеству был причинен вред.

три предыдущих:
1. Робот не может причинить вред человеку или своим бездействием допустить, чтобы человеку был причинен вред.
2. Робот должен повиноваться всем приказам, которые дает человек, кроме случаев, когда эти приказы противоречат Первому закону.
3. Робот должен заботиться о своей безопасности в той мере, в которой это не противоречит Первому и Второму законам.

P.S. "Мы не знаем, как создать настолько умных и проницательных роботов, чтобы они смогли исполнить эти три закона," и добавляет, что Азимов, возможно, "не понимал, какую перцептивную нагрузку на роботов создают эти законы."
Родни Брукс

Источник Джордан Д. "Роботы"



Boston Dynamics: от боевых роботов в коммерцию


Друзья, мало кто знает как началась история Boston Dynamics, но, в 1992 году основатель компании Marc Raibert с группой исследователей научной лаборатории искусственного интеллекта Массачусетский технологический институт MIT Leg Laboratory проводили работы в области активно сбалансированного передвижения робота на ногах с целью автоматической перенастройки его системы управления, это требовалось чтобы отразить данные механики, ее изменения при моделировании и добиться желаемого поведения в различных искусственно созданных ситуациях.



Команда реализовала алгоритм настройки в виртуальном симуляторе, который повторно перенастраивал существующую систему управления (сегодня в машинном обучении это называется Reinforcement learning, чтобы учесть изменение модели или желаемое поведение. На тот год (1992) автоматическая настройка этих систем управления являлась сложной задачей, поскольку для большинства наборов параметров управления компьютеру трудно было прогнозировать, какие изменения улучшат поведение. Исследователи разметили данные упрощающие предположения робота в пространстве, что есть область, в которой параметры управления приводят к хорошему поведению, и эта область медленно перемещалась по мере изменения моделирования.



Препарированные данные готовились от одной симуляции к другой и повторялись до такой степени, пока роботы не получили разумную механику, используя модифицированный спусковой симплекс, чтобы перенастроить и улучшить работу системы управления. Операции повторялись, пока ученые не получили желаемую окончательную симуляцию.



В примере математически закладывался вес нагрузки четвероногого животного (на видео видно отсылки к mini spot) и изменялся с 5 кг до 200 кг. В каждом видео четвероногие используют один и тот же контроллер, настроенный одинаково. В результате на ранних этапах гонки бегают только четвероногие с маленьким весом. Однако, по мере того, как алгоритм настройки прогрессирует, начинают работать более нагруженные четвероногие.



Данные исследования показались интересными для узкого круга лиц DARPA и компания Boston Dynamics была основана в тот же год.


Для справки

Инженерная компания Boston Dynamics была основана в 1992 году, специализирующаяся в робототехнике, осуществляла заказы для DARPA в военных целях (BigDog), сам Marc доработал в лаборатории MIT Leg Laboratory до 1996 года. В 2013 году Boston Dynamics был продан корпорации Google Inc., в 2017 японской группе компаний SoftBank Group Corp и как стало известно 9 ноября 2020 года новым владельцем может стать корпорация Hyundai Motor Co. Bloomberg, а с учетом лояльности будущего владельца к российскому рынку, вполне вероятно в ближайшее время будет проработана дистрибуция собак на локальный рынок нашей страны.


На мой взгляд, Boston Dynamics еще один яркий феномен коммерческого проекта, который вырос из оборонной отрасли перспективных исследований DARPA, инвестиции министерства обороны США позволили технологические наработки трансформировать на коммерческие рельсы, уже сегодня компания имеет рынки сбыта США, Канады, Европы, Австралии и Японии. С момента старта продаж mini Spot в 2019 году всего за два года стоимость изделия снизилась на 20000$ и составляет 74000$, что позволит такими темпами из промышленного B2B сегмента, спокойно перейти в сегмент B2C при стоимости в 30000$ к 22-23 годам, посмотрим, может к тому времени в сознании техногитов это будет неотъемлемый домашний питомец


Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru