В этом выпуске, посвященном передовому сообществу ИИ, мы очень рады пригласить Мао Цзимина из отдела автономного вождения Baidu.«Распределенная платформа моделирования для автономного вождения»галантереи поделиться.
Прежде всего, позвольте представить вам сегодняшнего лектора:Мао Цзиминь, старший архитектор подразделения автономного вождения Baidu, технический руководитель группы моделирования подразделения автономного вождения.В настоящее время основное внимание уделяется созданию распределенной платформы моделирования автономного вождения, а также исследованиям и разработкам технологии моделирования беспилотных транспортных средств Baidu. Большой опыт в архитектуре распределенных систем.
Этот обмен в основном фокусируется на следующих пяти аспектах:
1. Коммерческая ценность продуктов моделирования
2. Как добиться подлинности
3. Как завершить более полное обнаружение аномалий
В-четвертых, разница между интеллектуальным вспомогательным вождением и полностью автоматическим беспилотным вождением.
V. Комплексная оценка возможностей беспилотных транспортных средств
Эмуляторы, как следует из названия, используют программное обеспечение для имитации реальности. Но в Apollo позиционирование симуляционной платформы не только реальное, но и возможность пойти дальше: иметь возможность находить проблемы в алгоритме беспилотных автомобилей. Поскольку в итерационном замкнутом цикле всего алгоритма одного моделирования недостаточно, необходимо также уметь обнаруживать проблему, и только после того, как проблема будет найдена, ее можно устранить, то есть вернуться к процессу разработки. .
Таким образом, от разработки к моделированию и обратно к разработке платформа моделирования образует замкнутый цикл с нашим процессом разработки. Только то, что является замкнутым циклом, может представлять собой состояние непрерывной итерации и непрерывной оптимизации. Поэтому статус платформы моделирования во всей итерации алгоритма беспилотного транспортного средства очень важен.
Как упоминалось выше, эмулируйте функциональность платформы.
Если проблема найдена и функция разобрана, то ее можно разделить на две части с причинно-следственной связью:
Сначала он должен быть реальным, а затем он должен быть в состоянии выполнять комплексное обнаружение аномалий. Реальность означает способность математически моделировать мир, всестороннее обнаружение аномалий, самым сложным из которых является слово «всеобъемлющая», что зависит от нашего определения «всеобъемлющей аномалии».
Аутентичность выражения объективного мира зависит от трех частей: аутентичности статической среды, аутентичности динамической среды и аутентичности поведения транспортного средства (то есть основного транспортного средства).
Если быть точным, реальное моделирование статических сред не представляет сложности, например, на игровых экранах мы часто можем видеть рендеринг «фотографического качества», который выглядит очень реалистично. сложнейший"Стоимость"В двух словах, эта стоимость относится к:Стоимость времени для моделирования всей среды на километр.Реконструкция сцены беспилотного автомобиля отличается от игры. В игре сцена создается художником, она не учитывает реальность. Сцена в реальном симуляторе должна отличаться от реального мира, и она должна быть точно такой же.
(1) Подлинность статической среды
Статическая среда относится к динамическим препятствиям, таким как дороги (включая различные наземные элементы), заборы, светофоры, придорожные фонари и высокие здания, окруженные зеленью. Для автономного вождения они являются фоновыми элементами. Конечно, каждый может понять, что это отличается от динамических препятствий, таких как пешеходы и транспортные средства.
У всех был такой опыт, мы получаем результат сами, что очень просто, но если вы хотите получить результат, который точно такой же, как у кого-то еще, цена слишком высока. У Baidu есть зрелая линия по производству высокоточных карт Baidu.Основываясь на способности описывать мир с точностью до сантиметра, стоимость очень низкая.
Тогда все спросят, я говорил о стольких генерациях карт, какое это имеет отношение к симуляции? Фактически, выражение статического мира симулятора Аполлона напрямую использует данные высокоточной карты Аполлона. Так что это реально, и это достаточно низкая стоимость.
(2) Подлинность динамической среды
Затем идет динамическая среда, то есть достоверность поведения различных препятствий. Динамические препятствия вводят человеческий фактор, который труднее реконструировать, чем статические сцены, потому что человеческое поведение «неуловимо». Для Аполлона самый быстрый и прямой подход — это не симуляция, а прямое «настоящее».
Используя массивные реальные данные, собранные на реальной дороге, алгоритм восприятия Аполлона используется для реконструкции динамической сцены. С одной стороны, за счет экологии данных Аполлона мы получим больше данных для дополнения сцены, с другой стороны, мы сможем более точно восстановить мир, используя собственный алгоритм непрерывного итеративного восприятия. И количество, и качество постоянно улучшались.
(3) Подлинность поведения транспортного средства
В основном имитация субсенсора и имитация динамики автомобиля. Поскольку традиционное коммерческое программное обеспечение для моделирования в этих двух областях разрабатывалось десятилетиями, результаты были признаны крупными автопроизводителями. Apollo выступает за открытость и взаимовыгодное сотрудничество, которое не должно и не может повторяться для создания нового набора вещей, который уже есть у других. Таким образом, платформа моделирования Apollo для этих двух функций реализует эти две функции, напрямую используя коммерческое программное обеспечение для моделирования. Об этом будет сказано позже, когда мы будем говорить об открытости.
Удовлетворив реализм, давайте посмотрим, как выполнить следующее требование: более полное обнаружение аномалий.
На самом деле это знают все, особенно те, кто занимается ИТ, возможно, знают лучше. Так называемое обнаружение аномалий заключается в том, чтобы сначала задать условие, а затем выдать ожидаемый результат. Это распространенная версия UnitTest, написанная всеми. Методика та же. Итак, каковы условия обнаружения аномалий беспилотных транспортных средств? Это сцена движения автомобиля. Каков ожидаемый результат? Он должен иметь набор критериев суждения или алгоритмов суждения.
Очевидно, что для комплексного обнаружения аномалий ключевым моментом или трудностью здесь являются точно не последние четыре слова, а первые два слова."всесторонний". Сцена должна быть всеобъемлющей, суждение должно быть всеобъемлющим суждением.
Комплексная сцена. Слово всеобъемлющее очень пустое, а «100% всеобъемлющее» не может быть достигнуто в теории. Так что очевидно, единственное, что работает: приближается к 100% в ограниченных сценариях. Этот «ограниченный сценарий», другими словами, является проблемным определением домена нашего беспилотного алгоритма автомобиля, то есть, который ограниченный сценарий является этим алгоритмом для решения. Конструкция эмулятора может быть сильно отличаться для разных сценариев приложений. В настоящее время, согласно моему пониманию, есть только один способ разделить проблемный домен, который может революционировать дизайн симулятора, то есть интеллектуальное вождение против беспилотных вождений. Конкретные революционные изменения будут обсуждаться позже.
всеобъемлющее суждение. Это зависит от дизайна области возможностей алгоритма. Что такое область возможностей алгоритма? Это относится к верхнему пределу, которого может достичь алгоритм, то есть работает ли он просто или работает хорошо. Что касается алгоритма суждения, то нетрудно судить только об уровне «просто работает», но сложно судить об уровне «хорошо работает». Таким образом, здесь также существует способ разделения области способностей, который оказывает значительное влияние на алгоритм симулятора, а именно: определение «управление роботом» (просто работа) и определение «управление гуманоидом» (работает хорошо).
Если быть точным, беспилотное вождение — это ветвь интеллектуального вождения. Может не правильно так писать. Однако хочу подчеркнуть, что между беспилотным и автономным вождением очень большая разница: есть человек или нет.
Вопрос «есть ли кто-то» имеет большое влияние на все интеллектуальное вождение, будь то алгоритм, аппаратная часть или конструкция тренажера. «Никто не может гарантировать чистую прибыль» определяет пропорцию, с которой должен работать алгоритм, от 80% до 99,9999%. Всем известно правило 28. От 80% до 99,9999%, будь то алгоритмы, железо или симуляция, решаемые проблемы или трудности, с которыми приходится сталкиваться, на несколько порядков выше.
99,9999% — это требование, характерное для автономного вождения. И что нужно 99,9999%, так это алгоритм, который «информирован». Чтобы решить проблему длинного хвоста, то есть иметь дело с 99,9999% возможностей обработки сцены полностью автоматического беспилотного вождения, необходимо накапливать [массивные сцены].
Может быть, всем не очень нравится эта массовая сцена. В реальной производственной сфере нетрудно иметь большое количество сценариев, но сложность заключается в эффективности использования массивных сценариев. Как я уже говорил ранее, алгоритм требует высокой скорости итерации, наши пользовательские требования: 30 минут, что может сказать мне платформа моделирования. 30 минут, все считают, средняя скорость 30 км/ч, а пробежать он может только километров 15. Если это такая способность, то о массовых сценах и говорить не приходится.
Поэтому, когда Baidu приступила к проекту беспилотного автомобиля, она начала учитывать эффективность работы платформы моделирования. Платформа моделирования Apollo значительно оптимизирована благодаря двум различным уровням реализации. С макро точки зрения оно осуществляется посредством крупномасштабного распределения, поэтому с самого начала моделирования Аполлона направлением является распределенное моделирование. С микроскопической точки зрения это осуществляется посредством моделирования динамической переменной скорости.
Это упрощенная схема распределенной среды моделирования. Студенты, которые разбираются в распределенных вычислительных средах, должны прочитать это знакомое. В целом архитектуру распределенного моделирования можно описать с точки зрения уровней и функций следующим образом:
Потому что вычислительная модель платформы распределенного моделирования очень похожа на традиционную MapReduce. Таким образом, все распределенное планирование соответствует традиционной архитектуре MR.
Нижний уровень — планировщик аппаратных ресурсов. Поскольку при работе узла моделирования будет использоваться несколько аппаратных комбинаций GPU+CPU/только CPU/CPU+FPGA, а также потому, что запуск моделирования является своего рода гибким использованием ресурсов. Таким образом, мы выделяем уровень планировщика аппаратных ресурсов. Этот уровень планировщика поддерживает замену. Например, внутри Baidu мы используем существующий планировщик ресурсов Matrix внутри Baidu.Если он находится в системе с открытым исходным кодом, мы поддерживаем использование K8S.Например, в Apollo Simulation Global, который мы сотрудничаем с Microsoft azure, мы используем MS космос. В будущем, если будет выполнена настройка крупных клиентов, мы также можем поддерживать специальный планировщик ресурсов в рамках крупных клиентов.
Верхний уровень — планировщик пакетных заданий. Поскольку режимом работы распределенного моделирования является пакетное задание, мы убрали отдельный слой планировщика пакетных заданий. Он отвечает за продвижение рабочего состояния всего жизненного цикла задания, например, различные развертывания, запуск, проверки текущего состояния, повторение, приоритет, эластичное масштабирование и т. д. логика. Точно так же причина, по которой мы разделяем уровень, заключается в том, что мы отделяем стандартизированную модель распределенных вычислений этого уровня, а также допускаем замену в соответствии с особыми потребностями пользователей. Внутри мы используем структуру планирования Baidu Normandy, а снаружи мы поддерживаем замену ее на основной в отрасли K8S.
Средний уровень — это ядро моделирования. Он работает в контейнере Docker. Ядро моделирования запускает алгоритм заказчика + логику моделирования: включая реконструкцию сцены + динамическую модель + уточненные метрики. Из-за сложности работающей модели мы абстрагировали верхний и нижний уровни в Контейнере: верхний уровень, который мы внутри называем Task Engine, отвечает за планирование процесса выполнения сложной симуляции. Нижний уровень — это Sim-Core, который используется для размещения собственных алгоритмов пользователя.
На внешнем уровне есть два компонента хранилища: хранилище сцен, хранилище результатов. Вокруг вычислений унифицированное управление данными. Платформа моделирования в основном предоставляет интерфейс отправки, анализ данных, интерфейс панели инструментов и взаимодействует с полным процессом моделирования для использования пользователями.
Проведем сравнение.В реальных дорожных условиях бортовой алгоритм работает на бортовом компьютере.В это время требования к реальному времени очень высоки,поэтому часто необходимо резервировать больше системных ресурсов избыточности(для справляться с неровной ситуацией системы, которая приходит в любое время), в случае неровной ситуации система реального времени будет пропускать кадры, чтобы обеспечить низкую задержку обработки сообщений во время выполнения.
В системе моделирования это выполняется в автономном режиме. Если ничего не делать, нам нужно использовать более мощный сервер, зарезервировать больше системных ресурсов или уменьшить скорость работы, чтобы избежать потери кадров. Очевидно, что такой подход, с одной стороны, приводит к большому количеству простаивающих рабочих ресурсов, а с другой стороны, снижает нашу скорость работы. Поэтому мы внедрили технологию моделирования динамического переключения передач.
Технология моделирования динамического изменения скорости, по сути, представляет собой процесс управления сложным потоком данных беспилотного транспортного средства. С точки зрения разложения:
1) Для кадров с коротким временем обработки интервал обработки данных сжимается;
2) Для кадров с длительным временем обработки дождитесь завершения обработки, прежде чем продолжить обработку последующих кадров. Вся система планирования представляет собой гибкое изменение, основанное на текущем времени обработки кадра.
Благодаря этим двум преобразованиям этого можно добиться: без ожидания и без потери кадров, чтобы вы могли в полной мере использовать аппаратные ресурсы и работать с максимальной скоростью. Согласно фактическим испытаниям, используется технология динамического моделирования с переменной скоростью, и эффективность моделирования на одной машине может быть улучшена в несколько раз, не влияя на результаты моделирования.
С точки зрения возможности автономного вождения способность делится на два уровня: низкая способность (может работать) и высокая способность (работает хорошо, как человек), поэтому в алгоритме способности будут большие различия. определение. Последнее (определение высокого уровня способностей), очевидно, очень сложно.
Давайте сначала рассмотрим метод суждения о способностях низшего уровня, который включает в себя два уровня суждения:
Уровень 1: Оценка надежности работы модуля. Аналогично дампу модулей, нелегальному выходу, ненормальной частоте кадров и т. д.
Уровень 2: Определение основных возможностей беспилотных транспортных средств. В том числе: достижение пункта назначения, столкновение, нарушение и т.д.
Очевидно, что такое двухуровневое решение может быть достигнуто по «общим правилам». Но прохождение в это время означает лишь то, что достигнут нижний предел возможностей беспилотных автомобилей. На данный момент беспилотный автомобиль может двигаться только как робот.
Поскольку есть возможности низкого уровня, должны быть соответствующие возможности высокого класса. Что такое высокие возможности? - Водите как обычное лицо и пройдите тест Тьюринга. Он по-прежнему включает в себя два уровня суждения:
Уровень 3: Соматосенсорное суждение. Соматосенсорная оценка включает такие системы оценки, как угол рыскания и фрустрация.
Уровень 4: Психологические чувства. К психологическим ощущениям относятся психологическая безопасность и притупленность.
Высшее суждение о способностях. Это может быть своего рода проверка теста Тьюринга, которая зависит от сцены. Он представляет собой верхний предел возможностей автономных транспортных средств.
Фактически суть алгоритма измерения можно рассматривать как: f (описание сцены, траектория движения автомобиля), то есть бинарная функция определенной сцены и траектории. Когда у нас есть большое количество положительных и отрицательных примеров, мы можем получить способность измерения, которая имеет достаточную способность к обобщению, и может достичь способности суждения по тесту Тьюринга с помощью методов машинного обучения, основанных на большом количестве данных.
На самом деле, долгосрочные дорожные испытания беспилотных транспортных средств, проведенные Baidu, позволили моделировать большое количество реальных данных о работе/движении по дорогам. достичь довольно точных результатов Ненормальная способность к суждениям. Мы предоставим такие возможности всем в Apollo.
Из-за ограниченного времени этот обмен контентом заканчивается здесь. Чтобы получить дополнительные учебные материалы и контент, связанный с автономным вождением, вы можете подписаться на общедоступную учетную запись сообщества разработчиков Apollo.Добро пожаловать, чтобы общаться здесь!
А1:Общее правило здесь относится к «общему правилу». Проще говоря, столкновения, прибытие в пункт назначения и нарушения ПДД можно рассматривать как суждения о «самых основных возможностях беспилотного автомобиля». 1) Они универсальны и должны существовать и применяться в различных сценариях; 2) Их можно описать простыми правилами, чтобы судить об аномальности алгоритма автономного транспортного средства. Поэтому он называется основанным на правилах.
A2: Этот вопрос очень хороший. На самом деле, цель платформы моделирования Baidu — предоставить более продвинутые гарантии стабильности/безопасности для автономных систем вождения коммерческого уровня. Поэтому мы опираемся на реальные данные реальных дорожных условий и подаем их в алгоритм для тестирования.
Тогда этот тип воспроизведения на самом деле является статической «реконструкцией окружающей среды». В настоящее время «реконструируемая среда» и «алгоритм беспилотного автомобиля» не могут обеспечить «игру с людьми». В настоящее время, насколько я знаю, в мире существует только понятие «игра с людьми» в алгоритме вождения беспилотного автомобиля компании waymo.
В настоящее время существует схема реализации для поддержки симуляционного сценария «игры с людьми», которую мы внутри называем «многохостовая транспортная платформа», то есть виртуальный мир, полный виртуальных препятствий (людей и транспортных средств). Поместите наш алгоритм в «виртуальный мир» и запустите игру против других транспортных средств.
Но здесь есть главная предпосылка: для достижения желаемого «игрового эффекта» транспортное средство, на котором вы играете, должно быть «достаточно похоже на человека». В противном случае вы будете играть в игру с «ботом». Алгоритм беспилотного автомобиля, сгенерированный этой «игрой с ошибками», будет более опасен на дороге. В настоящее время предположение о том, что «быть достаточно похожим на человека», все еще очень трудно доказать. Мы выбрали более консервативный подход, основанный на воспроизведении.
Поэтому внутри Baidu есть такие продукты, как «виртуальный мир», которые находятся только на стадии пробной версии. В будущем мы также откроем такие продукты-эмуляторы для всех.
A3: Собранные данные представляют собой данные слияния всех данных, таких как «лидар, камера, радар, GPS».
Поэтому он включает в себя части данных, такие как облака точек (потоки) и изображения (потоки).
Входными данными для алгоритма восприятия являются «необработанные данные датчиков», а выходными данными — логическое представление мира. Таким образом, мощный алгоритм восприятия Baidu позволяет выполнять малозатратное (потому что оно выполняется алгоритмом автоматически) высокоточное восстановление и реконструкцию мира.
A4: Это проблема метода планирования аппаратных ресурсов в автономном режиме. На самом деле, на этапе исследований и разработок алгоритмы беспилотных транспортных средств часто сильно задействуют ЦП и мало используют FGPA. (Конечно, после серийного производства он должен быть реверсирован, и велика вероятность того, что fpga будет переведена на asic-чип). Следовательно, если все алгоритмы просто сформировать в полный пакет и развернуть на машине ЦП + ФПГА, это вызовет большую нагрузку на ЦП и низкую нагрузку на ФПГА, тем самым тратя впустую вычислительную мощность ФПГА.
Поэтому мы разделим «интегрированный алгоритм» на стороне транспортного средства на две части: алгоритм части процессора + fpga и алгоритм части только процессора. За счет планировки модулей на машинах с разной конфигурацией (cpu+fpga, only-cpu) более полно используется вычислительная мощность fpga-карты и увеличивается пропускная способность всего кластера.
Для получения дополнительной информации, пожалуйста, обратите внимание на общедоступную учетную запись WeChat «AI Frontline» (идентификатор: ai-front) и ответьте на «Открытый класс», чтобы получить живой курс истории AI Frontline.