Искусство:Цзян Хао
В середине сентября мне посчастливилось принять участие в офлайн-тренинге по вождению беспилотников, организованном совместно Udacity, pix и Autoware, и я многому научился. Цель данной статьи, с одной стороны, подытожить мой обзор этого офлайн-тренинга, а с другой стороны, заинтересованные студенты также могут узнать о конкретном содержании тренинга.
Студенты, принявшие участие в обучении, очень хороши, в том числе инженеры из OEM-производителей, таких как SAIC и NEVS, инженеры-программисты из Didi, руководители начинающих компаний и известных университетов, таких как Шанхайский университет Цзяотун, Тунцзи и Северо-восточный университет. . Наставники представлены тремя спонсорами: Udacity, pix и Autoware.
Содержание обучения
Конечная цель обучения - реализовать запуск и остановку светофора. В частности, после входа в режим без водителя автомобиль автоматически едет по записанной траектории и распознает ее при движении перед светофором. Если горит зеленый свет, продолжайте движение, если красный, остановитесь в пределах указанного диапазона. Когда загорается зеленый свет, автомобиль снова заводится.
Легче сказать, чем сделать.Беспилотное вождение – это систематический проект.Чтобы реализовать эту, казалось бы, простую функцию, требуется много знаний. Поговорим о том, как это сделала наша команда. Кстати, наша команда называется "Красный амур и зеленый амур и осел". Учитывая, что я южанин, я действительно не могу отличить "л" от "н", что называется "Команда карпов" для короткая.
Сначала под руководством профессора Нагойского университета Алекса и инструктора Udacity Аарона мы изучили основы Autoware и завершили установку GPU-версии Tensorflow, ROS и Autoware. Autoware — это программное обеспечение, которое связывает код и оборудование, аналогично Apollo от Baidu.
Автопрограммный интерфейс
Затем лидар и камера подключаются к Autoware, и камера собирает данные об окружающей среде испытательного полигона для обучения детектора светофора.
Следующим шагом будет создание карты высокого разрешения. Объезжайте испытательный полигон, создавайте облака точек с помощью бортового лидара (предоставляется Velodyne), а затем создавайте карты высокой четкости с помощью Autoware.
После создания карты высокой четкости может быть реализована функция слежения за транспортным средством, то есть через Autoware транспортное средство может двигаться по заданному пути (без ручного управления), подобно поезду, идущему по пути, за исключением того, что транспортное средство движется по дорожке, а не по металлическим дорожкам, а по «путевым точкам» в Autoware.
Для достижения конечной цели также необходимо написать детектор светофора. Детектор распознает изображение, снятое камерой, и выводит результат распознавания в Autoware, которое затем управляет транспортным средством, чтобы оно двигалось или останавливалось.
Изначально мы планировали использовать алгоритм глубокого обучения для обучения детектора светофора, но эффект обнаружения не был хорошим, позже мы перешли на традиционное компьютерное зрение, и показатель точности распознавания изображений может достигать 87%. , точность близка к 95%.
Как только все это настроено, транспортное средство может быть обнаружено и оптимизировано. Из-за медленного прогресса на ранней стадии мы не успели выйти на полигон до 8 или 9 вечера. Эффект обнаружения хороший.После оптимизации параметров транспортное средство может точно распознавать светофоры и начинать и останавливаться в заданном диапазоне.
Хотя эффект обнаружения ночью хороший, это не значит, что он такой же и днем. На следующий день, в день игры, наша команда тоже выступила не лучшим образом. Причина на самом деле очень проста: фон снимков, снятых днём, слишком сложен, например, красная земля, зелёные деревья и даже цветная одежда (сестричка фотографа, уйди, откуда у тебя может быть красное, зеленое и желтое). на вашей одежде!), все они будут влиять на обнаружение светофора. Ночью, когда фон черный, обнаружить светофор намного проще.
Что меня озадачивает, так это то, что код, который я написал для распознавания светофоров, используя изображения, сделанные в течение дня, был верен почти на 95%, но два дня спустя он не распознал его на испытательном полигоне. Должно быть много влияющих факторов, которые не были учтены.В области автономного вождения мне все еще нужно проводить дополнительные исследования и совершенствоваться.
Учебный урожай
Хотя окончательный результат не был идеальным, мы многое набрали за 5 дней тренировок.
1 Реальный автомобильный тест
Как студенты Udacity «Инженер без водителя», мы все обладаем определенными соответствующими знаниями, но мы почти никогда не проводили тесты на реальных автомобилях и не запускали свой собственный код. Этот тренинг позволил нам добиться скачка от 0 до 1 всего за 5 дней. Мы не только освоили базовые операции Autoware, написали соответствующие коды, овладели знаниями проводного управления, но и сами создали облака точек и высокоточные карты. и испытал весь испытательный автомобиль.процесс...
2 Практикуйте то, что выучили
Знания нужно не изучать, а практиковать. Только практическое знание может показать его ценность. В процессе выполнения проекта «Усовершенствованное распознавание линий разметки» для устранения искажения изображения требуется калибровка камеры. Калибровка проста и требует всего несколько строк кода. Тем не менее, я немного рад возможности применить эти несколько строк кода на практике.
3 Осознайте разрыв между моделированием и экспериментированием
Я являюсь ассистентом преподавателя курса "Введение в беспилотное вождение" и учусь на курсе "Инженер беспилотного вождения". Я выполнил такие проекты, как обнаружение сигналов светофора, распознавание линий полосы движения и распознавание дорожных знаков, но они сильно отличаются от практических учебных проектов. .
Прежде всего, в предыдущих проектах использовались наборы данных, предоставленные в курсе, а данные, использованные в обучении, были собраны нами. Последнее требует гораздо большего внимания, чем первое. Например, когда камера используется для сбора данных о светофорах, камера должна быть сфокусирована, иначе полученное изображение будет размытым и его вообще нельзя будет использовать. Наша команда допустила такие ошибки из-за отсутствия опыта. Другой пример: проект «Распознавание дорожных знаков» использует глубокое обучение для распознавания 43 типов дорожных знаков, и набор данных предоставляется в курсе. На практике нам нужно самим маркировать собранные изображения, чтобы различать светофоры.
Во-вторых, допустимое решение в моделировании может оказаться непригодным для реального автомобиля. Наша конечная цель — запускать и останавливать светофоры на реальном автомобиле, поэтому напишите детектор светофора. Сделал проект по распознаванию светофоров, точность 95%. Такая точность вполне может удовлетворить требования проекта. Хотел использовать прямо здесь, но оказалось нецелесообразно. Зачем? Поскольку набор данных, используемый в проекте, содержит только светофоры и никаких других отвлекающих факторов, его относительно легко идентифицировать.
Но изображение, снятое камерой, не такое. Изображение также содержит много фоновой информации, такой как зеленые деревья, голубое небо, красная земля, ослепительный солнечный свет и даже фотограф в красном, зеленом и желтом свитере. (кошмар, а мне интересно, как будет распознаваться код?), это повлияет на результаты распознавания. Необходимо также рассмотреть вопрос о том, как устранить эти помехи.
Наконец, в процессе завершения учебного проекта у меня появилось более глубокое понимание того, чему я научился. Например, однажды я сделал небольшое упражнение, позвольте мне использовать данные скорости рыскания, чтобы найти угол автомобиля при движении. Математически это очень простая задача, достаточно интегрировать скорость рыскания, однако я не знаю, как получаются эти данные. В ходе этого обучения я обнаружил, что данные о путевых точках, экспортируемые автоматическим программным обеспечением, включают эти данные. Хотя все они получают данные, самостоятельное измерение данных полностью отличается от использования данных, предоставленных другими.Разница между ними заключается в том, что один наблюдает, как другие играют в игру, а другой участвует в игре сам.
4 столкнулся со многими трудностями
Во время обучения мы также столкнулись со многими трудностями. Например, ошибка развертывания машины, сбой операционной системы, сгорел блок питания промышленного компьютера, сгорел лидар... Благодаря помощи Udacity Аарона, пикса Зенг Гонга и профессора Нагойского университета Алекса, давайте Впервые решил эти вопросы. Встреча с трудностями — это не обязательно плохо, ничто не проходит гладко, а если и есть, то не стоит этого делать.
Наконец, я хотел бы поблагодарить Udacity, pix и Autoware за совместную организацию этого автономного обучения, а также поблагодарить трех наставников Аарона, Зенг Гонга и Алекса за их помощь. Я также должен поблагодарить административный персонал pix, в каждом блюде есть кухня Гуйян, каждый день есть сытный ужин, и нет тяжелой пищи! Вернувшись в Чунцин, я взвесился и весил 5 фунтов.
Если вы хотите узнать подробнее об офлайн-тренировках, вы можете прочитать статью инструктора Аарона:
TBA