Обмануть автомобиль спуфинг дорожных знаков и Deep Learning


Оглавление (нажмите, чтобы открыть):

Навигация 2.0: как обманывают GPS и восстанавливают истину

14 августа 2013

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

Исследователи из Университета штата Техас под руководством специалиста по системам глобального позиционирования Тодда Хамфриса (Todd E. Humphreys) провели эксперимент, в рамках которого смогли обмануть навигационное оборудование яхты стоимостью $80 млн. При этом самодельное устройство для атаки (спуфер) было собрано из доступных компонентов, и его цена составила около $2 тыс.

Яхта, выбранная для атаки по типу GPS-спуфинга (фото: University of Texas)/

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

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

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

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

Капитан яхты убедился в действенности методики, когда отклонение превысило три градуса. После чего Тодд сыграл завершающий аккорд. Изменив данные для определения высоты над уровнем моря, руководитель группы смог заставить навигационный компьютер яхты “считать”, что судно находится под водой.

Данный эксперимент не был единственным в своём роде. Ранее публиковались и другие работы в области безопасности, обращавшие внимание на то, что предназначенные для использования в гражданских целях системы GPS не имеют никакой защиты. “Все данные передаются в открытом виде и совершенно предсказуемы. Предсказуемость – враг безопасности”, – писал Роджер Джонстон (Roger Johnston), руководитель группы по оценке уязвимостей (VAT) Аргоннской национальной лаборатории ещё десять лет назад. Сегодня Тодд повторяет его слова, поскольку за прошедшее время ситуация не стала лучше.

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

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

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

Схема обмана навигационной системы автомобиля (изображение: Ali Jafarnia Jahromi et al.).

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

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

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

“Система GPS для гражданского сектора лишена всяческой защиты, – комментирует ситуацию Тодд Хамфрис на конференции, проводимой фондом TED. – Нет шифрования, нет процедур надёжной идентификации. Атакующему достаточно точно синхронизировать ложный сигнал с сделать его немного мощнее настоящего”.

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

Не случайно Хамфри упоминает об экспериментах с перехватом самодельных беспилотников и кустарных спуферах с эффективным радиусом действия до тридцати километров.

Бывший наставник Тодда, профессор Корнеллского университета Марк Псиаки (Mark Psiaki), предложил схему защиты от GPS-спуфинга в прошлом году. Сейчас вместе с аспирантами он уже реализовал описанную идею. Его группа создала модифицированный GPS-приёмник с антенной, меняющей своё положение с определённой частотой. Поскольку спутники находятся на значительном удалении друг от друга, а ложные сигналы приходят из одного близкого места, фаза несущего колебания в для такого приёмника будет меняться по-разному, что и позволит распознать обман.

Смарт-автомобиль способен «обмануть» систему управления дорожным движением

Используемая в США система управления дорожным движением уязвима к спуфингу.

Ученые Мичиганского университета продемонстрировали , как всего лишь один смарт-автомобиль способен обхитрить используемые в США «умные» системы управления дорожным движением. По словам исследователей, автомобиль может заставить систему «думать», будто на перекрестке образовался затор, и изменить алгоритм управления движением. Таким образом, злоумышленники способны косвенно замедлить скорость дорожного движения и даже заблокировать перекрестки.


В своих исследованиях ученые использовали технологию «подключенного автомобиля» (CV), набирающую популярность у автопроизводителей по всему миру. Понятие CV включает множество протоколов, однако в большинстве выпущенных в последние годы машин используются протоколы V2V, обеспечивающий взаимодействие автомобилей между собой, и V2I, ответственный за взаимодействие автомобиля с транспортной инфраструктурой.

Исследователи обнаружили уязвимости в реализации V2I под названием I-SIG – системы, используемой в Нью-Йорке, Тампе, Пало-Альто и других городах США. По их словам, в I-SIG отсутствует защита от спуфинга. Транспортное средство может отправлять системам управления движением на перекрестках повторяющиеся сообщения, выдавая себя за последнее прибывшее туда транспортное средствой.

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

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

Подписывайтесь на каналы «SecurityLab» в Telegram и Яндекс.Дзен, чтобы первыми узнавать о новостях и эксклюзивных материалах по информационной безопасности.

Вредные советы: Как обмануть нейронную сеть

Создатели продвинутых интеллектуальных систем часто продвигают свои разработки как эффективную замену «живым» сотрудникам. Умные камеры никогда не отвлекаются и мгновенно распознают сотни лиц в кадре. Онлайн-помощники могут перерыть Интернет, чтобы найти ответ на поставленный вопрос. Неужели сбылись предсказания из «Приключений Электроника», и человек может окончательно доверить скучные задачи нейронным сетям? Разумеется, нет — иначе зачем бы мы начинали этот разговор.

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

Не верь глазам своим

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

Разумеется, компьютер не знает, кто такие панды, а только определяет на картинке группы пикселей, которые с высокой долей вероятности соответствуют бамбуковым медведям. Именно здесь и кроется уязвимость — если знать, какие пиксели определяют положительное решение, можно заставить искусственный интеллект ошибиться. Такая обманная картинка будет называться «конкурирующим образцом» (adversarial example).

Примечательно, что подобное вмешательство может быть незаметным человеческому глазу. Ниже можно увидеть реальный пример из исследования Explaining and Harnessing Adversarial Examples, откуда мы и позаимствовали пример с пандами. На первом кадре исходное фото, где нейросеть правильно определяет животное. На втором вы видите специальный шум, который выполняет роль маски. Накладываем его на первоначальную картинку — и вот программа называет панду гиббоном (кадр №3), хотя для человека разницы между этими картинками практически нет.

Почему лгут роботы

Чтобы понять механику явления, вспомним, как программа определяет положительные и отрицательные результаты. Когда в процессе обучения наша нейросеть запоминала фото по принципу «панда — не панда», какие-то объекты оказывались ближе к границе принятия решений, чем другие. Ниже представлено схематическое распределение результатов — зеленые точки соответствуют «пандам», красным отмечены «не панды».

Обратите внимание на первую красную точку в нижнем ряду — на этом кадре нейросеть почти увидела медведя. Если мы его чуть доработаем, нам удастся сдвинуть точку выше и добиться сложноположительного решения. Главная хитрость метода в том, чтобы определить влияющие на результат параметры. Для этого мы будем раз за разом предлагать искусственному интеллекту чуть измененную картинку и проверять, в какую сторону двигается точка. Тысячи итераций спустя мы получим сумму пикселей, которая с точки зрения нейросети соответствует «панде». Это и есть шум из первого примера.

Обратите внимание, что система определила ложного гиббона с гораздо большей уверенностью, чем реальную панду (99,3% против 57,7%). Дело в том, что для искусственного интеллекта наложенный на кадр шум — то же самое, что для человека надпись «ЭТО ПАНДА» поперек экрана.

Поскольку даже небольшая картинка состоит из десятков тысяч пикселей, злоумышленник легко может распределить измененные точки по всей площади изображения. Тогда деформированные области не бросятся в глаза. Более того, можно на программном уровне ограничить масштаб изменений на один пиксель — например, не более 0,01%. Пользователь не заметит разницу, а нейросеть, которая воспринимает фото целиком, увидит абсолютно новую иллюстрацию.

К чему приводит ложь

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

Умные автомобили тоже в зоне риска. Их автопилот можно обмануть, наклеив специальные метки на дорожные знаки или разметку. В результате машина проигнорирует «СТОП» перед оживленным перекрестком, подвергнув риску жизнь своего водителя и других участников движения. Как и в случае с пандой-гиббоном, человеческий глаз не заметит в таком знаке ничего необычного.

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

Советы разработчикам

Скажем прямо — при сегодняшнем развитии технологий метод конкурирующих образцов позволяет обмануть любую нейросеть. Можно ли как-то защитить свою систему от подобных атак, снизить вероятность ложноположительных результатов? Да, для этого есть две технологии.

Конкурентное обучение (Adversarial training)

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


Защитная дистилляция (Defensive distillation)

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

Мастер Йода рекомендует:  Опишите алгоритм для нахождения миллиона наименьших чисел в наборе из миллиарда чисел. Память

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

Ищем свободное парковочное место с Python и глубоким обучением

Рассказывает Адам Гейтджи, разработчик в LinkedIn Learning

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

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

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

Поэтому давайте немного развлечёмся и напишем точную систему уведомлений о свободной парковке с помощью Python и глубокого обучения!

Декомпозируем задачу

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

Fifth View, Москва, от 120 000 ₽

Вот как я разбил свою задачу:

На вход конвейера поступает видеопоток с веб-камеры, направленной в окно:

Через конвейер мы будем передавать каждый кадр видео, по одному за раз.

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

Затем на каждом кадре нужно найти все машины. Это позволит нам отслеживать движение каждой машины от кадра к кадру.

Третьим шагом нужно определить, какие места заняты машинами, а какие — нет. Для этого нужно совместить результаты первых двух шагов.

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

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

Распознаём парковочные места

Вот что видит наша камера:

Нам нужно как-то просканировать это изображение и получить список мест, где можно припарковаться. Как-то так:

Реальные парковочные места на моей улице

Решением «в лоб» было бы просто захардкодить местоположения всех парковочных мест вручную вместо автоматического распознавания. Но в таком случае, если мы переместим камеру или захотим искать парковочные места на другой улице, нам придётся проделывать всю процедуру заново. Звучит так себе, поэтому поищем автоматический способ распознавания парковочных мест.


Как вариант, можно искать на изображении паркометры и предположить, что рядом с каждым из них есть парковочное место:

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

Другая идея заключается в создании модели распознавания объектов, которая ищет метки парковочного места, нарисованные на дороге:

Вот эти маленькие жёлтые полоски — границы парковочных мест

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

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

Другими словами, парковочные места расположены там, где подолгу стоят машины:

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

Распознаём машины

Распознавание машин на кадре видео является классической задачей распознавания объектов. Существует множество подходов на основе машинного обучения, которые мы могли бы использовать для распознавания. Вот некоторые из них в порядке от «старой школы» к «новой школе»:

  • Можно обучить детектор на основе HOG (Histogram of Oriented Gradients, гистограммы направленных градиентов) и пройтись им по всему изображению, чтобы найти все машины. Этот старый подход, не использующий глубокое обучение, работает относительно быстро, но не очень хорошо справляется с машинами, расположенными по-разному.
  • Можно обучить детектор на основе CNN (Convolutional Neural Network, свёрточная нейронная сеть) и пройтись им по всему изображению, пока не найдём все машины. Этот подход работает точно, но не так эффективно, так как нам нужно просканировать изображение несколько раз с помощью CNN, чтобы найти все машины. И хотя так мы сможем найти машины, расположенные по-разному, нам потребуется гораздо больше обучающих данных, чем для HOG-детектора.
  • Можно использовать новый подход с глубоким обучением вроде Mask R-CNN, Faster R-CNN или YOLO, который совмещает в себе точность CNN и набор технических хитростей, сильно повышающих скорость распознавания. Такие модели будут работать относительно быстро (на GPU), если у нас есть много данных для обучения модели.

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

Архитектура Mask R-CNN разработана таким образом, что она распознаёт объекты на всём изображении, эффективно тратя ресурсы, и при этом не использует подход скользящего окна. Другими словами, она работает довольно быстро. С современным GPU мы сможем распознавать объекты на видео в высоком разрешении на скорости в несколько кадров в секунду. Для нашего проекта этого должно быть достаточно.

Кроме того, Mask R-CNN даёт много информации о каждом распознанном объекте. Большинство алгоритмов распознавания возвращают только ограничивающую рамку для каждого объекта. Однако Mask R-CNN не только даст нам местоположение каждого объекта, но и его контур (маску):

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

Один из них — популярный датасет COCO (сокращение для Common Objects In Context), в котором есть изображения, аннотированные масками объектов. В этом датасете находится более 12 000 изображений с уже размеченными машинами. Вот пример изображения из датасета:

Такие данные отлично подходят для обучения модели на основе Mask R-CNN.

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

Если дать на вход этой модели изображение с камеры, вот что мы получим уже «из коробки»:

Модель распознала не только машины, но и такие объекты, как светофоры и люди. Забавно, что дерево она распознала как комнатное растение.

Для каждого распознанного объекта модель Mask R-CNN возвращает 4 вещи:

  1. Тип обнаруженного объекта (целое число). Предобученная модель COCO умеет распознавать 80 разных часто встречающихся объектов вроде машин и грузовиков. С их полным списком можно ознакомиться здесь.
  2. Степень уверенности в результатах распознавания. Чем выше число, тем сильнее модель уверена в правильности распознавания объекта.
  3. Ограничивающая рамка для объекта в форме XY-координат пикселей на изображении.
  4. «Маска», которая показывает, какие пиксели внутри ограничивающей рамки являются частью объекта. С помощью данных маски можно найти контур объекта.


Ниже показан код на Python для обнаружения ограничивающей рамки для машин с помощью предобученной модели Mask R-CNN и OpenCV:

После запуска этого скрипта на экране появится изображение с рамкой вокруг каждой обнаруженной машины:

Также в консоль будут выведены координаты каждой машины:

Вот мы и научились распознавать машины на изображении.

Распознаём пустые парковочные места

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

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

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

Мы воспользуемся мерой под названием Intersection Over Union (отношение площади пересечения к сумме площадей) или IoU. IoU можно найти, посчитав количество пикселей, где пересекаются два объекта, и разделить на количество пикселей, занимаемых этими объектами:

Так мы сможем понять, как сильно ограничивающая рамка машины пересекается с рамкой парковочного места. Это позволит легко определить, свободна ли парковка. Если значение IoU низкое, вроде 0.15, значит, машина занимает малую часть парковочного места. А если оно высокое, вроде 0.6, то это значит, что машина занимает большую часть места и там нельзя припарковаться.

Поскольку IoU используется довольно часто в компьютерном зрении, в соответствующих библиотеках с большой вероятностью есть реализация этой меры. В нашей библиотеке Mask R-CNN она реализована в виде функции mrcnn.utils.compute_overlaps() .

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

Результат должен выглядеть примерно так:

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

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

Однако имейте в виду, что распознавание объектов не всегда работает идеально с видео в реальном времени. Хоть модель на основе Mask R-CNN довольно точна, время от времени она может пропустить машину-другую в одном кадре видео. Поэтому прежде чем утверждать, что место свободно, нужно убедиться, что оно остаётся таким ещё на протяжении 5–10 следующих кадров видео. Таким образом мы сможем избежать ситуаций, когда система ошибочно помечает место пустым из-за глюка на одном кадре видео. Как только мы убедимся, что место остаётся свободным в течение нескольких кадров, можно отсылать сообщение!

Отправляем SMS

Последняя часть нашего конвейера — отправка SMS-уведомления при появлении свободного парковочного места.

Отправить сообщение из Python очень легко, если использовать Twilio. Twilio — это популярный API, который позволяет отправлять SMS из практически любого языка программирования с помощью всего нескольких строк кода. Конечно, если вы предпочитаете другой сервис, то можете использовать и его. Я никак не связан с Twilio, просто это первое, что приходит на ум.

Чтобы использовать Twilio, зарегистрируйте пробный аккаунт, создайте номер телефона Twilio и получите аутентификационные данные аккаунта. Затем установите клиентскую библиотеку:

После этого используйте следующий код для отправки сообщения:

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

Складываем всё воедино

Для запуска того кода сначала нужно установить Python 3.6+, Matterport Mask R-CNN и OpenCV.

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


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

Смерть от автопилота: Голованов про Uber, сбитую в Аризоне наркоманку и будущее робомобилизма

От дей. то есть от бездействия беспилотных машин уже погибло как минимум три человека: двое водителей и — только что — один пешеход. А ведь мы на пороге массовой робомобилизации. Можно ли сделать беспилотный транспорт абсолютно безопасным — и не наступит ли вслед за этим конец света?

В американском городе Финиксе, что в штате Аризона, живут две неудачницы: 49-летняя трижды разведенная бездомная наркоманка Элен Херцберг и 44-летний трансгендер Рафаэла Васкес, дважды судимая еще в бытность мужчиной Рафаэлем ­Васкесом — в том числе за инсценировку вооруженного ограбления видеомагазина при помощи игрушечного пистолета (!) в сговоре с кассиршей.

В воскресенье в десять вечера судьба сводит их на одной из тихих улиц Финикса: Элен Херцберг бредет с нагруженным сумками велосипедом через неосвещенную многополосную дорогу, а Рафаэль/Рафаэла Васкес сидит на водительском кресле приближающегося Volvo XC90 и смотрит на экран смартфона. Вот и встретились два одиночества, как пелось в лирической советской песне совсем по другому поводу.

Тот самый экспериментальный беспилотник компании Uber после столкновения, сбитый велосипед отброшен на тротуар

Трансгендер насмерть сбил наркоманку — прямо как в фильме Тарантино. Однако Рафаэль/Рафаэла Васкес сидел/а в Volvo не держась за руль не просто так — он/а был/а safety driver на испытаниях роботакси компании Uber. И Volvo был не обычным кроссовером XC90, а экспериментальным беспилотником. И такой сценарий достоин уже бра. то есть, простите, сестер Вачовски!

Мастер Йода рекомендует:  Лучшие книги для старта карьеры разработчика

Вехи славного пути

Россия, как известно, родина слонов, а США — колыбель робомобилизма. В 2004—2005 годах государственное военное агентство DARPA проводило конкурсы экспериментальных робомобилей Grand Challenge, в 2012-м общество автоинженеров SAE формализовало пять уровней автоматизации вождения, а Tesla два года спустя первой в мире внедрила на серийных машинах Autopilot — который по этой самой классификации относится ко второму уровню. Ведь Tesla умеет вести себя по дороге только в определенных условиях вроде хайвеев, а водителю предписано по возможности не убирать руки с руля и следить за дорожной обстановкой.

Уровни автоматизации SAE условны, но главный водораздел проходит по границе второго и третьего уровней: водитель освобожден от контроля за обстановкой, но должен быть готов перехватить управление в любой момент. Четвертый уровень позволяет расслабиться полностью и садиться за руль лишь в самых сложных условиях — и только пятый предполагает полную автономность

Экспериментальные прототипы робомобилей более высоких уровней автоматизации уже ездят по дорогам Америки, Европы, Японии, КНР и даже России, однако машину класса L3 анонсировали только в Audi — причем уже выпускающаяся новая «восьмерка» оснащена всем необходимым «железом» вроде дорогого и сложного лазерного сканера-лидара, но автопилот немцы пока не активируют, ссылаясь на неготовность дорожного законодательства. По нашим тестовым впечатлениям, лучше всех с настройкой водительских ассистентов второго уровня справляется Tesla, на втором месте — Mercedes, а остальные лишь пытаются к ним подобраться: это Audi, Volvo, Ford и другие. И очень интересно то, что многие гиганты заняли выжидательную позицию — например, Toyota или Hyundai.

А наиболее активны компании-выскочки из ­IT-бизнеса. Компьютерный гигант Apple ведет эксперименты с несколькими десятками гибридов Lexus RX 450h, таксомоторный монстр Uber закупает для переделки в робомобили уже десятки тысяч Volvo XC90 — один из которых и сбил несчастную Херцберг. А отпочковавшийся от всемогущей корпорации Google стартап Waymo начал опытную эксплуатацию робоминивэнов Chrysler Pacifica Hybrid, в которых не сидит safety driver: водительское место пустует! Причем только что, уже после гибели Херцберг, Waymo и Jaguar Land Rover анонсировали совместный проект ценой более миллиарда долларов с 20 тысячами роботакси I-Pace. Речь о начале полномасштабной коммерческой эксплуатации беспилотников топового, пятого уровня — уже в 2020 году!

Меж тем Uber после инцидента в Финиксе приостановил тесты робомобилей, а Toyota и вовсе публично открестилась от дорожных испытаний беспилотников в США: дескать, не начинали и не будем, безопасность для нас на первом месте.

Но постойте, на дорогах мира ежегодно гибнет около 1,3 миллиона человек. Так почему смерть одной-единственной суицидальной наркоманки, которая сомнамбулически бродит поперек дорог, должна остановить разработку автопилота — призванного сократить число таких случаев в сотни, тысячи раз?

И здесь человечество приходит к развилке. Вернее, к нескольким.

Легко ли обмануть беспилотный автомобиль?

Обычно главным недостатком беспилотных автомобилей принято считать потенциальную уязвимость перед несанкционированным вмешательством хакеров в систему управления машиной, но команда американских учёных из Мичиганского, Вашингтонского и Калифорнийского университетов, а также Университета в Стоуни-Брук придумала куда более простой способ навредить автопилотам. Если система использует машинное зрение, так почему бы не попытаться обмануть его?

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

Исследователи решили запутать классификаторы нейронных сетей такой банальной и распространённой в мегаполисах штукой, как вандализм. Как выяснилось , обмануть машинное зрение довольно-таки просто. К примеру, стоит наклеить на знак «Движение без остановки запрещено» несколько маленьких бумажных стикеров, как автомобиль в 100% случаев принимает его совсем за другой знак — ограничение скорости в 45 миль в час.

Обмануть беспилотный автомобиль можно и путём нанесения на знак небольших надписей сверху и снизу от слова STOP, а также слегка затемнив его поверхность. А вот слегка замаскированный серыми стикерами знак «Движение только направо» автопилот стабильно опознавал как знак «Движение без остановки запрещено» или вовсе как указатель направления движения по полосе. Тревожный факт!

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

Сообщества › DRIVE2 Дальнобой › Блог › Как обманывают GPS для угона грузовика.

Сегодня на GPS полагаются во многих ответственных областях. По спутниковым сигналам отслеживаются перемещения прокатных машин, грузовых автомобилей крупных компаний и инкассаторских броневиков. Мощное навигационное оборудование установлено на всех современных яхтах. Казалось бы, за годы практического применения GPS в гражданском секторе зарекомендовала себя как достаточно надёжная и точная система, но всё больше экспертов стремятся доказать, что это не так.
Исследователи из Университета штата Техас под руководством специалиста по системам глобального позиционирования Тодда Хамфриса (Todd E. Humphreys) провели эксперимент, в рамках которого смогли обмануть навигационное оборудование яхты стоимостью $80 млн. При этом самодельное устройство для атаки (спуфер) было собрано из доступных компонентов, и его цена составила около $2 тыс.
Основным компонентом спуфера стал имитатор GPS-сигналов. Эти устройства выпускаются серийно и предназначаются для тестирования навигационных систем. В большинстве стран они продаются свободно и стоят от тысячи долларов.
Сам по себе такой имитатор GPS сигналов — маломощный и действует в радиусе десятка метров. Поэтому вторым компонентом спуфера стали усилители, повышающие мощность ложного сигнала GPS в десятки раз.
Во время эксперимента всё оборудование атакующей стороны находилось на борту яхты, совершавшей плавание в Средиземном море у берегов Италии. Образно говоря, она была погружена в облако ложных сигналов GPS, мощность которых была больше настоящих.
На первом этапе Тодд запустил процесс дублирования настоящих сигналов со спутников, добиваясь их полного соответствия по учитываемым характеристикам. Добившись слияния обоих сигналов, он немного повысил мощность тех, которые отправляет спуфер. Навигационная система стала считать их основными и отфильтровывала настоящие данные со спутников как помехи. Получив контроль, Тодд стал постепенно искажать вычисляемые сведения о местоположении, уводя яхту севернее заданного курса.
Капитан яхты убедился в действенности методики, когда отклонение превысило три градуса. После чего Тодд сыграл завершающий аккорд. Изменив данные для определения высоты над уровнем моря, руководитель группы смог заставить навигационный компьютер яхты «считать», что судно находится под водой.
Данный эксперимент не был единственным в своём роде. Ранее публиковались и другие работы в области безопасности, обращавшие внимание на то, что
предназначенные для использования в гражданских целях системы GPS не имеют никакой защиты.
«Все данные передаются в открытом виде и совершенно предсказуемы. Предсказуемость — враг безопасности», — писал Роджер Джонстон (Roger Johnston), руководитель группы по оценке уязвимостей (VAT) Аргоннской национальной лаборатории ещё десять лет назад. Сегодня Тодд повторяет его слова, поскольку за прошедшее время ситуация не стала лучше.
Тогда многие считали, что угроза носит теоретический характер — и вряд ли злоумышленники смогут воспользоваться уязвимостью в реальной ситуации. Ведь требовалось не самое дешёвое оборудование, квалификация и физическое присутствие поблизости.
До сих пор методом спуфинга удавалось вводить в заблуждение только самые примитивные GPS-трекеры, не имеющие помехозащищённого исполнения и корректирующих программных алгоритмов.
Основными целями стали обычные автомобили из служб проката и грузовой транспорт. Операторы многих транспортных компаний сегодня получают сведения о перемещениях своих автомобилей. В них установлено специализированное устройство, состоящее главным образом из GPS-приёмника и GSM-передатчика. Помимо координат, операторам передаются показания от датчика топлива, спидометра и другого оборудования. Накопленные сведения используются для нужд логистики, снижения риска утраты груза и во избежание использования корпоративных машин в личных целях.
В своё время Джонстон экспериментировал именно с системой контроля перемещений грузовика и задался вопросом, можно ли угнать его так, чтобы оператор ничего не заподозрил. Краткий ответ — да.
Если сами недобросовестные водители старались просто отключить следящий модуль или вывести его из строя (чем немедленно выдавали себя), то Джонстон решил действовать более аккуратно. Он подключил генератор сигналов GPS к ноутбуку, чтобы точно сформировать требуемый набор ложных сигналов.
Поначалу он ввёл GPS-трекер в заблуждение, находясь непосредственно в кабине грузовика. Идеальным моментом для подмены сигналов с кодом стандартной точности был проезд тоннеля. Связь с настоящими спутниками пропала, и даже небольшой мощности имитатора хватило для успешной отрисовки ложного трека.
Джонстон не остановился на достигнутом и в следующем эксперименте увеличил мощность спуфера в несколько раз. Увести грузовик и обмануть оператора удалось, уже находясь в машине, следующей параллельным курсом на расстоянии нескольких десятков метров.
«Система GPS для гражданского сектора лишена всяческой защиты, — комментирует ситуацию Тодд Хамфрис на конференции, проводимой фондом TED. — Нет шифрования, нет процедур надёжной идентификации. Атакующему достаточно точно синхронизировать ложный сигнал с сделать его немного мощнее настоящего».
С обманом военных навигационных систем дела обстоят гораздо сложнее. Сигналы в диапазоне L2 являются помехоустойчивым и обладают криптографической защитой. Помимо большей мощности, в дополнение к основным каналам L1/L2 используется корректирующий М-код, специально разработанный для противодействия методам радиоэлектронной борьбы. Однако технически спуфинг GPS систем для военного применения всё же возможен по тем же базовым принципам.
Не случайно Хамфри упоминает об экспериментах с перехватом самодельных беспилотников и кустарных спуферах с эффективным радиусом действия до тридцати километров.
Бывший наставник Тодда, профессор Корнеллского университета Марк Псиаки (Mark Psiaki), предложил схему защиты от GPS-спуфинга в прошлом году. Сейчас вместе с аспирантами он уже реализовал описанную идею. Его группа создала модифицированный GPS-приёмник с антенной, меняющей своё положение с определённой частотой. Поскольку спутники находятся на значительном удалении друг от друга, а ложные сигналы приходят из одного близкого места, фаза несущего колебания в для такого приёмника будет меняться по-разному, что и позволит распознать обман.

Deep learning & Machine learning: в чем разница?

В чем разница между Deep learning и Machine learning? Насколько они похожи или отличаются друг от друга? Насколько они выгодны для бизнеса? Давайте разберемся!


Machine learning и Deep learning – это 2 подмножества искусственного интеллекта (ИИ), которые активно привлекают к себе внимание уже на протяжении двух лет. Если вы хотите получить простое объяснение их различий, то вы в правильном месте!

Прежде всего, давайте посмотрим на некоторые интересные факты и статистику Deep learning и Machine learning:

  • Оклад AI-специалиста приравнивается к стоимости Roll-Royce Ghost Series II 2020 года (согласно New York Times);
  • Есть ли вероятность потерять работу из-за прогресса AI? Согласно недавнему отчету PwC – возможно. Они предполагают, что примерно к 2030 г. 38% всех рабочих мест в США могут быть заменены искусственным интеллектом и технологиями автоматизации;
  • Первая AI-программа “The Logic Theorist” была создана в 1955 году компанией Newell & Simon (World Information Organization);
  • Исследователи прогнозируют, что к 2020 году 85% взаимодействия с клиентами будет осуществляться без участия человека (Gartner);
  • Рынок искусственного интеллекта или машинного обучения вырастет до 5,05 млрд долларов к 2020 году (Motley Fool);

Любопытно? Теперь попытаемся разобраться, в чем на самом деле разница между Deep learning и Machine learning, и как можно использовать их для новых бизнес-возможностей.

Deep learning & Machine learning

Должно быть, вы имеете элементарное представление о Deep learning и Machine learning. Для чайников представляем несложные определения:

Machine learning для чайников:

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

Deep learning для чайников:

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

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


Deep learning & Machine learning: в каких случаях используется Machine learning

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

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

Deep learning & Machine learning: в каких случаях используется Deep learning

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

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

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

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

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

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

Что мы узнали:

  1. Основное различие между глубоким обучением и машинным обучением обусловлено тем, как данные представляются в систему. Алгоритмы машинного обучения почти всегда требуют структурированных данных, в то время как сети глубокого обучения полагаются на слои ANN (искусственные нейронные сети).
  2. Алгоритмы машинного обучения созданы для того, чтобы «учиться» действовать, понимая помеченные данные, а затем использовать их для получения новых результатов с большим количеством наборов данных. Однако, когда результат получается неверным, возникает необходимость их «доучивать».
  3. Сети глубокого обучения не требуют вмешательства человека, так как многоуровневые слои в нейронных сетях помещают данные в иерархии различных концепций, которые в конечном итоге учатся на собственных ошибках. Тем не менее, даже они могут быть ошибочными, если качество данных недостаточно хорошее.
  4. Данные все решают. Именно качество данных в конечном итоге определяет качество результата.
Мастер Йода рекомендует:  Ленивый, компонуемый и модульный JavaScript

То, чего не было в примере, но стоит отметить:

  1. Поскольку алгоритмы машинного обучения требуют маркированных данных, они не подходят для решения сложных запросов, которые включают в себя огромное количество данных.
  2. Хоть в данном случае мы увидели применение Deep learning для решения незначительного запроса, — реальное применение нейронных сетей глубокого обучения происходит в гораздо большем масштабе. Фактически, учитывая количество слоев, иерархий и концепций, которые обрабатывают эти сети, Deep learning подходит только для выполнения сложных вычислений, а не простых.
  3. Оба эти подмножества ИИ так или иначе связаны с данными, что позволяет представлять собой определенную форму «интеллекта». Однако следует знать, что глубокое обучение требует гораздо больше данных, чем традиционный алгоритм машинного обучения. Причиной этого является то, что сети Deep learning могут идентифицировать различные элементы в слоях нейронных сетей только при взаимодействии более миллиона точек данных. Алгоритмы машинного обучения, с другой стороны, способны обучаться по заранее запрограммированным заданным критериям.

Надеемся, приведенный пример и его объяснение позволили вам понять различия между Machine learning и Deep learning. Т.к. это объяснение для чайников, то здесь не употреблялись профессиональные термины.

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


Когда использовать Deep learning в бизнесе?

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

Когда использовать Machine learning в бизнесе?

  • Если у вас есть данные, которые можно структурировать и использовать для обучения алгоритмов Machine learning;
  • Если вы хотите использовать преимущества ИИ, чтобы обогнать конкурентов;
  • Лучшие решения Machine learning могут помочь автоматизировать различные бизнес-операции, включая проверку личности, рекламу, маркетинг и сбор информации, а также использовать большие возможности в будущем.

Подведем итоги:

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

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

Обмануть автомобиль: спуфинг дорожных знаков и Deep Learning

Что такое deep learning и почему о нем все говорят?

Что такое deep learning и почему о нем все говорят?

3 октября 2015 года мессенджер Telegram оказался недоступен для части пользователей в России и по всему миру. Причины возникших проблем пока неизвестны.

Что такое deep learning и почему о нем все говорят?

О чем речь?

С появления термина «глубокое обучение» прошло уже больше 20 лет, но широко заговорили о нем только недавно. Кратко объясняем, почему так получилось, что такое deep learning, чем оно отличается от машинного обучения и почему вам надо об этом знать.

Что это такое?

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

Сам термин появился еще в 1980-х, но до 2012 года для реализации этой технологии не хватало мощностей и на нее почти никто не обращал внимание. После серии статей известных ученых, публикаций в научных изданиях технология быстро стала популярной и получила внимание крупных медиа, — первым из мировых СМИ об этом написал The New York Times. Одним из поводов для материала стала научная работа специалистов из университетов Торонто Алекса Крижевского, Ильи Сатскевера и Джеффа Хинтона. Они описали и проанализировали результаты конкурса распознавания изображений ImageNet, где с большим отрывом победила их нейросеть, обученная с помощью deep learning, — система определила 85% объектов. С тех пор в конкурсе побеждала только глубокая нейросеть


Погодите, а что такое машинное обучение?

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

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

А глубокое обучение как работает?

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

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

Сергей Николенко, соавтор книги «Глубокое обучение»: «Есть три термина, которые в последнее время часто используют почти взаимозаменяемо: искусственный интеллект, машинное обучение и глубокое обучение. Однако на самом деле это „вложенные“ термины: искусственный интеллект — это всё что угодно, что может помочь компьютеру выполнять человеческие задачи; машинное обучение — это раздел ИИ, в котором программы не просто решают задачи, а обучаются на основе имеющегося у них опыта, а глубокое обучение — это раздел машинного обучения, изучающий глубокие нейронные сети.

Проще говоря: 1. если вы написали программу, играющую в шахматы, — это искусственный интеллект; 2. если она при этом обучается на базе партий гроссмейстеров или играя против самой себя — это машинное обучение; 3. а если обучается у неё при этом не что-нибудь, а глубокая нейронная сеть, — это глубокое обучение».

Как работает глубокое обучение?

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

И что с помощью него уже разработали?

Больше всего проектов с глубоким обучением применяется в распознавании фотографии или аудио, диагностике заболеваний. Например, оно уже используется в переводах Google с изображения: технология Deep Learning позволяет определить, есть ли на картинке буквы, а затем переводит их. Другой проект, который работает с фото, — система распознавания лиц под названием DeepFace. Она умеет распознавать человеческие лица с точностью 97,25% — примерно с той же точностью, что и человек.

В 2020 году Google выпустил WaveNet — систему, которая может имитировать человеческую речь. Для этого компания загрузила в систему миллионы минут записанных голосовых запросов, которые использовались в проекте OK Google, и после изучения, нейросеть смогла сама составить предложения с правильными ударениями, акцентом и без нелогичных пауз.

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

А почему глубинное обучение не начали внедрять раньше?

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

Это прорывная технология, она все поменяет?

Об этом сложно сказать точно, мнения разнятся. С одной стороны, Google, Facebook и другие крупные компании уже вложили миллиарды долларов и настроены оптимистично. По их мнению, нейросети с глубинным обучением способны поменять технологическое устройство мира. Один из главных специалистов по машинному обучению — Эндрю Ынг — говорит: «Если человек может выполнить задачу в уме за секунду, скорее всего, в ближайшее время эта задача будет автоматизирована». Ынг называет машинное обучение «новым электричеством» — это техническая революция, и компании, которые ее проигнорируют, очень быстро обнаружат себя безнадежно отставшими от конкурентов.

С другой стороны, есть и скептики: они считают, что глубокое обучение — это модное слово или ребрендинг нейронных сетей. К примеру, старший преподаватель факультета компьютерных наук ВШЭ Сергей Бартунов считает, что этот алгоритм — лишь один из вариантов (и при этом не лучший) обучения нейросети, который быстро подхватили массовые издания и о которых теперь знают все.

Сергей Николенко, соавтор книги «Глубокое обучение»: «История искусственного интеллекта уже знала две „зимы“, когда за волной хайпа и завышенных ожиданий следовало разочарование. Оба раза, кстати, это было связано с нейронными сетями. Сначала в конце 1950-х решили, что перцептрон Розенблатта тут же приведёт к машинному переводу и осознающим себя компьютерам; но, конечно, не получилось из-за ограниченности железа, данных и отсутствия подходящих моделей.

А в конце 1980-х ту же ошибку совершили, когда разобрались, как обучать любые архитектуры нейронных сетей. Показалось, что вот он, золотой ключик, открывающий любые двери. Это уже был не такой уж наивный вывод: действительно, если взять нейронную сеть из конца 1980-х, механически сделать её больше (увеличить число нейронов) и обучить на современных наборах данных и современном „железе“, она будет очень даже неплохо работать! Но ни данных, ни „железа“ в то время не хватало, и революцию глубокого обучения пришлось отложить до конца нулевых годов.

Сейчас мы живём на третьей волне хайпа искусственного интеллекта. Закончится ли она третьей „зимой“ или созданием сильного ИИ — покажет только время».

Распознавание дорожной сцены

Беспилотные автомобили в числе самых ожидаемых технологий будущего. Вместе с ведущей российской компанией мы распознаем дорожную сцену.

Коротко о главном

Задача

Разработать ПО для распознавания и сегментации объектов дорожной сцены для интеграции в проект беспилотных автомобилей.

Решение

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

Будущее сегодня

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

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

Российские реалии

Тема беспилотных автомобилей не осталась без внимания и в России.

В конце марта 2020 года в Госдуме прошёл круглый стол, где обсудили нормативно-правовое регулирование использования беспилотных транспортных систем (БПТС) в Российской Федерации. Если поправки в законодательные акты будут приняты Государственной думой (что может случиться уже до конца года), Россия станет второй страной в мире после США, где беспилотному транспорту разрешат передвигаться по дорогам общего пользования.

Дано и определение беспилотному автомобилю:

Беспилотное транспортное средство — механическое транспортное средство, оборудованное системой автоматического управления, которое может передвигаться без участия водителя

Преполагается, что в ПДД включат понятия «беспилотное транспортное средство» (БПТС), «водитель БПТС», а в положении ПДД об общих обязанностях водителей добавят обязанности водителя БПТС находиться на водительском месте БПТС в течение всего времени его использования и быть готовым в любой момент перейти на ручной режим управления.

В рамках реализации проекта автономного автомобиля для дорог России для одной из ведущих российской компанией нами разработан программный комплекс для «понимания» машиной окружающего пространства.

Сегментация сцены

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

К примеру, таким образом можно выделить непосредственно дорожное полотно из видео и уже проводить дальнейший анализ только с ним.

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

Важными достойнствами такой сети являются:

  • Скорость работы: за один проход получаются результаты сразу для всех интересующих классов
  • Найденные объекты имеют точные границы, а не просто обрамляющий прямоугольник
  • Нейронная сеть смотрит на все изображение сразу, а не на отдельные участки

Аугментация выборки

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

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

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

Добавить комментарий