Введение
No Сколько раз с вами случалось, что в поисках места для парковки вы ездили круг за кругом по парковке. Как было бы удобно, если бы ваш телефон мог точно указать вам, где находится ближайшее место для парковки! Оказывается, что эту проблему относительно легко решить с помощью глубокого обучения и OpenCV. OpenCV-Python — это библиотека привязок Python, разработанная для решения проблем компьютерного зрения. Высокая цель эксперимента с OpenCV состоит в том, чтобы получить любое статическое изображение или видео парковки и иметь возможность автоматически определять, когда парковочное место доступно или занято.
Рис. 1. Определение места парковки в режиме реального времени
Обзор шагов для создания интеллектуальной системы
В построении этой модели обнаружения парковки есть два основных шага: определение местоположения всех доступных парковочных мест; определение того, свободно ли парковочное место или занято.
Основная идея, которая использовалась для определения мест парковки, заключалась в том, что все разделители парковочных мест здесь представляют собой горизонтальные линии, а парковочные места в столбце расположены примерно на равном расстоянии друг от друга. Используя Canny Edge Detection от OpenCV, получили изображения границ, а после преобразования Hough Line Transform идентифицировали парковочные места.
Рис. 2. Определение границ с помощью Canny Edge Detection
Рис. 3. Определение линий с помощью HoughLines
Если карта парковочных мест идентифицирована, то можно приступать к определению статуса парковки с помощью CNN и сделать прогноз, занято место или свободно. Для создания CNN нам нужны изображения парковочных мест с автомобилями и без них. Сначала извлекается изображение каждого места и сохраняется в папке, а затем эти изображения группируются по занятым или нет. Поскольку на примере около 550 парковочных мест, размер каждого парковочного места составляет всего около 15х60 пикселей [2].
Рис. 4. Пример занятого места и пустого места
Однако, поскольку занятые места и пустые места выглядят совершенно по-разному, это не должно быть сложной проблемой для CNN. Однако у меня было всего около ~ 550 изображений для обоих классов, поэтому я решил использовать transfer learning, взяв первые 10 слоев VGG и добавив один слой softmax к выходным данным модели VGG.
Рис. 5. CNN тестирует модели
Выводы
Данная интеллектуальная система является востребованной, ведь анализ и отображение свободных парковочных мест водителю уменьшает его личное время, уменьшается шум машин, уменьшается время работы бензиновых двигателей, что влечет к уменьшению вреда природе. Также прогресс данной системы будет заключаться в подключении веб-камеры к Raspberry Pi и отслеживанию парковок в режиме реального времени у себя дома.