DOU Labs: як у SoftServe створили систему розумного шлагбаума й паркування
У рубриці DOU Labs ми запрошуємо IT-компанії ділитись досвідом власних цікавих розробок та внутрішніх технологічних ініціатив. Питання і заявки на участь надсилайте на Данный адрес e-mail защищен от спам-ботов, Вам необходимо включить Javascript для его просмотра. .
Усім привіт, я — Саша Гурбич, Senior Data Scientist у SoftServe. У цьому матеріалі розкажу вам про систему розумного шлагбаума й паркування, яку ми запустили в листопаді 2018 року на території нашого офісу Lviv Headquarters.
Ідея
В офісі Lviv HQ працює близько п’ятисот людей. У дворі є великий паркінг, однак уранці, коли всі з’їжджаються на роботу, часто потрібно було витрачати багато часу на пошук вільного місця. До цього періодично додавалася черга на в’їзді, тому що хтось забував, куди поклав перепустку, і намагався її знайти. Витрачати стільки часу лише на те, щоб потрапити на своє робоче місце, — некомфортно. Тож керівництву компанії запропонували спростити й автоматизувати цей процес, вони погодилися та виділили бюджет, щоб зреалізувати проект.
Перед розробниками стояло завдання створити розумну систему паркування, яка б організувала весь процес від того часу, коли працівник під’їжджає до території офісу, й до миті, коли його автомобіль уже стоїть припаркований. Важлива умова — швидкість роботи. Система має відстежувати будь-які зміни на паркінгу й ідентифікувати автомобілі не довше ніж за одну секунду.
У світовій практиці розумні системи передбачають, коли планують паркування. Під дорожнє покриття кожного місця для паркування встановлюють сенсорні давачі й під’єднують до єдиної системи, яка одержує та обробляє їхні сигнали. Це дорого, довго та складно. Тож ми прагнули знайти просте й універсальне вирішення.
MVP створила команда з трьох інженерів — Machine Learning Engineer, Python Developer і Front-End Developer за підтримкою керівництва компанії. Як консультант залучався Solution Architect. Пізніше точність класифікування прототипу ітеративно поліпшували, змінюючи архітектуру
Реалізування системи розумного шлагбаума
До старту проекту в нас діяла пропускна карткова система для в’їзду на територію. Нині Smart Gate розпізнає й пропускає автомобілі автоматично. Робочий прототип написали за три місяці.
В основі цієї системи — принцип машинного навчання та машинного зору. На в’їзді й виїзді шлагбауми обладнані IP-камерами, розміщеними так, щоб у кадр потрапляли номерні знаки автомобіля.
Алгоритм YOLO знаходить на зображенні з камери номерні знаки, потім їх вирізає й розвертає (perspective transform), Tesseract їх зацифровує; на виході одержуємо символи. Постобробляння результатів зацифрування охоплює перевіряння відповідності патерну українських номерних знаків, відсіювання результатів розпізнавання з низькою точністю.
Сьогодні вже налаштовано систему автоматичного синхронізування з внутрішньокорпоративною системою обліку працівників, отож, якщо туди додано номер автомобіля конкретного працівника, ґейт йому відчиниться автоматично. На початкових етапах запуску проекту ми це робили через додавання номера до спеціального списку вручну, потім — commit, push, redeploy.
Після того як номер розпізнано й установлено його відповідність працівникові компанії, мікрокомп’ютер Raspberry Pi, який керує сухими контактами ґейта, відкриває в’їзд/виїзд. Увесь цей процес займає одну-дві секунди.
Детальна схема роботи системи має такий вигляд:
Усі зображення з камер зберігаються в кешах системи. Тож, якщо треба, можна перевірити, коли приїхав і поїхав конкретний працівник.
Загалом система працює добре, однак є кілька аспектів роботи системи в темну пору доби, над поліпшенням яких ми працюємо. По-перше, уночі система розпізнає знаки в кілька разів гірше, ніж удень, й інфрачервоне підсвічування камери не допомагає, тож наразі ми шукаємо інше вирішення. По-друге, інколи ввімкнені фари машини сліплять камеру, і номерні знаки не розпізнаються взагалі.
Реалізування розумної системи паркування
Тепер в’їзд до офісу оснащено
Територію паркінгу умовно поділено на слоти — окремі місця для паркування, які зберігаються в системі розмічання під відповідним порядковим номером. Установлена на даху офісу IP-камера безперервно знімає, охоплюючи всю територію паркінгу.
Знімок з камери
Далі кожен зі слотів подають на згорткову нейронну мережу, яка виконує бінарне класифікування кожного місця й визначає, є на ньому автомобіль чи немає (місце вільне). У часі це займає до 500 мс.
На екрані, який стоїть біля в’їзду на паркінг, 24 години на добу показують мапу паркінгу. Екран синхронізується з веб-застосунком, який доступний для переглядання також зі смартфона або планшета. Тобто можна дізнатися, чи є вільні місця й де саме, ще перебуваючи вдома або дорогою на роботу.
Ліворуч — екран, коли всі місця зайняті, праворуч — вільні
Smart Parking дає змогу віддалено резервувати місця, на зображенні вони позначені сірим кольором. Також є місця для людей з інвалідністю.
Загальна схема роботи розумної системи паркування має такий вигляд:
Щоб навчити систему працювати безперебійно, ми натренували алгоритм на більш як 300 000 зображень. Ми передбачили все, що могли на ту мить, — пору доби (день, сутінки й ніч), погодні умови (яскраве сонце, хмарність і дощ). Система працювала чудово. Це було влітку. Щойно настала зима й випав перший сніг, система дала збій, оскільки нейромережа не розпізнавала вкриті снігом автомобілі на снігу. Тому нам довелося тимчасово зупинити її роботу на кілька днів, щоб перетренувати алгоритм на зимових зображеннях.
Тільки після цього змогли відновити роботу системи. Тепер вона справно працює в будь-яку пору року.
Подальші кроки
У Львові, особливо в історичному центрі, велика проблема з місцями для паркування, тож ми хочемо використати наш досвід, щоб хоч трохи поліпшити цю ситуацію. Наприкінці 2018 року ми підписали договір про співпрацю з Львівською міською радою та вже працюємо разом над масштабуванням проекту на рівні міста. Нині триває дослідження завантаженості трьох паркувальних майданчиків у центрі міста, під час якого ми зберемо дані й проаналізуємо трафік та ефективність використання місць для паркування. Після цього перейдемо до адаптування системи розумного паркування під потреби міста.
Переглянути принцип дії нашої системи ще раз можна на відео: