Этот пост является частью 12-месячного проекта ускоренного обучения Month to Master. На май: Моя цель - построить программную часть беспилотного автомобиля.
Несколько дней назад мне удалось запустить код и заставить свой беспилотный автомобиль успешно ехать по улицам (по крайней мере, виртуально, на основе видеозаписи NVIDIA).
Сегодня я хотел сделать следующий шаг и посмотреть, смогу ли я использовать модель беспилотного автомобиля на другом наборе данных. В конце концов, беспилотный автомобиль должен уметь ездить по любой дороге, а не только по тем дорогам, по которым он был обучен.
Поэтому я решил посмотреть, сможет ли модель, которую я обучил на прошлой неделе, работать с набором данных Udacity, который включает другой набор дорог.
Первым шагом было отформатировать набор данных Udacity, чтобы он мог обрабатываться моей моделью беспилотного автомобиля.
В отличие от набора данных NVIDIA, который содержит видеоклип, красиво разбитый на последовательно пронумерованные кадры (0.jpg, 1.jpg, 2.jpg, 3.jpg и т. Д.), Набор данных Udacity представляет собой набор изображений с запутанной нумерацией: Между числами есть нечетные промежутки непостоянного размера, и набор данных начинает отсчет с 1479425441182877835.
У Udacity, вероятно, было какое-то обоснование для этой схемы нумерации, но я не могу понять, что это за обоснование.
Поэтому моим первым шагом было переименовать все эти файлы в соответствии со схемой нумерации в стиле NVIDIA (т.е. начать с нуля и считать по единицам).
Сначала я думал надеть наушники, включить аудиокнигу и вручную переименовать каждый файл. Затем я понял, что существует более 5000 файлов и что мне, вероятно, следует придумать, как сделать это автоматически с помощью некоторого кода (в конце концов, в этом месяце я пытаюсь улучшить свои навыки программирования).
Примерно через 12 минут работы я смог написать небольшой скрипт Python для переименования всех файлов Udacity.
import os def rename(directory): i = 0 for file_name in os.listdir(directory): new_file_name = str(i) + '.jpg' old_file_name = file_name os.rename(old_file_name, new_file_name) i += 1 PATH = os.path.abspath('/Users/maxdeutsch/Desktop/nvidia/udacity_data') rename(PATH)
Я запустил сценарий, и через несколько секунд все файлы были переименованы (я рад, что не сделал это вручную).
Затем, когда набор данных был подготовлен, пришло время протестировать модель на новом наборе данных, вывести графику автономно управляемого рулевого колеса, а затем наложить графику поверх исходной видеозаписи, чтобы увидеть, как автомобиль ведет себя.
К сожалению, производительность очень плохая: если бы беспилотный автомобиль действительно выполнял эти инструкции в реальной жизни, он почти сразу же разбился бы.
Завтра я поэкспериментирую с моделью и выясню, как лучше обобщить свой беспилотный автомобиль, чтобы он не разбивался каждый раз, когда его вводят в новую среду вождения.
Прочтите следующий пост. Прочтите предыдущий пост.