Меня всегда забавляла идея автономных транспортных средств. Пока однажды я, наконец, не начал углубляться в это. Я начал исследовать, как он работает и что он может делать.
Я просто обдумывал эту идею, пока не нашел способ разработать свой собственный самоуправляемый автомобиль (разумеется, без большого количества функций). Идея заключалась в том, чтобы создать модель и обучить ее таким образом, чтобы она предсказывала требуемый угол поворота рулевого колеса в зависимости от сценария.
Спасибо моему наставнику г-ну Васу Гупта из Всеиндийского сообщества мастеров AI/ML, который провел меня через этот проект и без которого этот проект был бы невозможен.
Я начал искать открытый и надежный набор данных для того же самого. После долгих гуглений и серфинга я обнаружил этот удивительный набор данных, в котором есть угол для данного изображения в градусах.
Наконец-то пришло время запачкать руки кодом!
Я предпочел использовать Google Colab из-за высокой вычислительной мощности, которую он обеспечивает!
Загрузите свой набор данных и начните его изучать!
Набор данных имел текстовый файл, который содержал имя, время, угол (в градусах) и дату захвата этого набора данных. Время и дата были для меня бесполезны, поэтому я их выкинул. Я сохранил имя изображения и ракурс и искал все недостающие значения, к счастью, их не было. Это был действительно хороший набор данных!
Двигаясь вперед, я масштабировал изображения в 255 раз (пакетная нормализация) и передал их модели.
Наступает самая сложная часть — построение модели.
Я построил модель с нуля, используя Keras API и Tensorflow в качестве бэкенда.
В моей модели было 5 сверточных слоев, за каждым из которых следовал слой MaxPooling. Затем я сгладил эти слои с помощью tf.keras.layers.Flatten(). Я использовал 4 слоя Dense и 3 слоя Dropout, чтобы избежать чрезмерной подгонки.
Я не собирал эту модель с первой попытки, до этого я обучил как минимум 6–7 моделей. Я перестал исследовать другие модели в CNN после этой модели, потому что я получил удовлетворительные результаты в самой этой модели!
Вот несколько ключевых выводов из моего опыта:
1.Всегда распаковывайте набор данных в Google Colab! Это сэкономит вам много времени во время обучения, поверьте мне!
Используйте этот код для распаковки внутри Google Colab:
2. Проведите некоторое время со своим набором данных. Попытайтесь понять его взлеты и падения
3. Тщательно обработайте свой набор данных!
Я провел много времени, пробуя различные способы обработки своих данных. Сначала я использовал пакетную нормализацию 255. Чтобы повысить точность, я попытался читать изображения в «оттенках серого». Это действительно улучшило мои результаты, но не до уровня моего удовлетворения. Затем я попытался использовать функцию контрастности при обработке изображений, и результаты были потрясающими!!
Взгляните на мою функцию ImageLoad:
4. Всегда пробуйте разные модели, прежде чем окончательно остановить свой выбор на одной!
Я попробовал не менее 6–7 разных моделей, прежде чем остановился на этой!
Посмотрите на мою окончательную модель. :
5. Визуализируйте свою модель!
Используйте этот код для визуализации своей модели!
6. Следите за точностью тренировки и потерями!
Вам не нужно тренироваться в течение 200 эпох, если точность вашей модели не улучшится после 120 эпох! Это так просто!
7. Посмотрите на свои результаты и гордитесь собой!
Вы проделали большую работу! Теперь пришло время увидеть ваши результаты! Визуализируйте их и убедитесь сами в точности вашей модели!
Посмотрите на мои результаты:
Ну это было с моей стороны!
PS: В этом проекте мне тоже очень помог мой напарник Sumit!
Я выложил свой проект в открытый доступ на моем профиле GitHub, вы можете найти его здесь!
Свяжитесь со мной в LinkedIn!
Кушагра Вадхва