Этот пост является частью 12-месячного проекта ускоренного обучения Month to Master. На май: Моя цель - построить программную часть беспилотного автомобиля.

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

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

В поисках кода

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

Итак, отсюда…

К этому…

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

Приступаем к настройке

Прежде чем я смог запустить какой-либо код, мне нужно было убедиться, что мой компьютер настроен с соответствующими библиотеками программного обеспечения. В частности, мне нужно было установить библиотеки numpy, matplotlib и OpenCV для Python.

После того, как я сориентировался в Терминале (командная строка на Mac) и нашел некоторые инструкции в Интернете, я столкнулся с моей первой ошибкой ...

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

Я перешел по третьей ссылке и нашел такой ответ:

После выполнения этих нескольких команд (путем копирования и вставки их в Терминал и нажатия «Enter») все, казалось, работало правильно.

Я был официально настроен (по крайней мере, на данный момент).

Запуск кода

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

Я получил этот вывод…

Прохладный! Итак, эти числа, по сути, являются математическим представлением двух полос движения.

Все идет нормально. Но где визуальные эффекты?

В проекте Github, который я пытался воспроизвести, код также выводил эти красивые графики ...

А также изображение с красными накладками…

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

Итак, я снова вернулся к Google и поискал «save image python» в надежде выяснить, как сохранить изображение на выходе.

Google любезно посоветовал мне использовать функцию cv2.imwrite (), что я и сделал, и это сработало. И под словом «работал» я имею в виду… Я смог сохранить изображение фотографии в оттенках серого с линиями полос, визуализированными в белом цвете.

А вот еще ...

И еще один…

Что теперь?

Это хорошее начало.

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

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

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

Конечно, у меня еще нет четкого концептуального понимания, но теперь у меня есть функциональный пример, который я могу использовать в качестве отправной точки.

Прочтите следующий пост. Прочтите предыдущий пост.

Макс Дойч - навязчивый ученик, создатель продукта, подопытный кролик в Месяце до мастера и основатель Openmind.

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