Цели и задачи проекта
Один из ведущих частных гольф-клубов поставил цель модернизировать парковочную систему с помощью мобильного приложения на базе искусственного интеллекта.
Основные задачи, которые необходимо было решить в рамках разработки, включали следующее:
- Автоматическое распознавание номеров: Приложение должно было самостоятельно определять приезжающих членов клуба по номерным знакам автомобилей без участия пользователя.
- ИИ-прогнозирование времени визита: Система должна была использовать машинное обучение для оценки предполагаемой продолжительности визита, даже при минимальном объеме исходных данных.
- Мгновенные обновления: Чтобы обеспечить эффективное распределение парковочных мест, приложение должно было оперативно передавать данные персоналу.
- Работа на всех устройствах: Решение должно было одинаково стабильно работать на Android и iOS без необходимости глубокой доработки под каждую платформу.
Подход к разработке и стек технологий
В качестве основы для мобильного приложения мы выбрали React Native — благодаря его кроссплатформенности и возможности быстро вносить изменения. Серверная часть была реализована на Node.js, с использованием MongoDB для хранения данных о членах клуба и истории посещений. Весь процесс разработки мы разделили на пять ключевых этапов:
- Интеграция с существующей базой данных: Мы подключили приложение к уже работающей системе клуба через REST API, чтобы получать данные о номерах автомобилей и визитах.
- Создание модели ИИ: Мы разработали алгоритм машинного обучения, способный предсказывать продолжительность визитов, и встроили его в приложение через TensorFlow Lite для работы в офлайн-режиме.
- Реализация онлайн-обновлений: Для оперативного обмена данными между приложением и персоналом клуба мы использовали WebSocket и Firebase.
- Распознавание автомобильных номеров: Мы добавили возможность сканирования номеров с помощью OCR-технологии на базе react-native-vision-camera, а также предусмотрели ручной ввод на случай нестандартных ситуаций.
- Разработка интерфейса для персонала: Мы создали простой и интуитивный интерфейс на компонентах React Native, чтобы сотрудники могли легко пользоваться приложением в ежедневной работе.
Как работает решение на практике
Когда участник клуба приезжает на территорию, приложение автоматически выполняет ряд действий:
- Распознаёт автомобиль по номеру и загружает соответствующий профиль из базы данных.
- Применяет алгоритмы ИИ, чтобы предсказать, сколько времени займёт визит, опираясь на историю посещений.
- Предлагает оптимальное парковочное место, учитывая предполагаемую продолжительность пребывания и текущую загрузку парковки.
- Оповещает персонал о тех, кто, вероятно, уедет в ближайшие 30 минут, чтобы оперативно освободить или перераспределить парковочные места.
Например, если система предполагает короткий визит, она предлагает парковку поближе ко входу. Для более длительных посещений — рекомендует места подальше, освобождая зоны для тех, кто приедет позже.
Скриншоты
Проблемы проекта и их решения
Во время разработки мы столкнулись с рядом технических сложностей:
- Плохое распознавание номеров в темноте или при повреждениях.
→ Мы добавили возможность ручного ввода номера, чтобы персонал мог идентифицировать машину в нестандартных ситуациях. - Низкая точность ИИ на начальных этапах.
→ Вначале мы использовали базовую логику и постепенно обучали модель на реальных данных, что значительно повысило её точность со временем. - Медленная передача обновлений о парковке.
→ Мы перешли на связку WebSocket и Firebase для обеспечения мгновенной синхронизации между приложением и персоналом. - Сложность пользовательского интерфейса.
→ Мы переработали UI, упростив навигацию и добавив понятные рекомендации по парковке. Интерфейс дорабатывался на основе отзывов сотрудников клуба.
Результаты проекта
По итогам разработки мы достигли впечатляющих результатов:
- Приложение было создано и запущено всего за 3 месяца усилиями небольшой команды из трёх специалистов: фронтенд-разработчика (React Native), разработчика бэкенда и ИИ, а также UI/UX-дизайнера.
- Приложение обеспечило: распознавание автомобильных номеров, ИИ-прогнозирование времени визита, интеллектуальные рекомендации, кроссплатформенность, обновления в реальном времени
- Решение успешно развернуто на iOS и Android, при этом точность прогнозирования длительности визита составила 85%.
- Время, требуемое для распределения парковочных мест, сократилось на 50%.
- Персонал дал положительную оценку: средний рейтинг приложения составил 4.7 из 5.
- Общие расходы на разработку удалось снизить примерно на 40% благодаря кроссплатформенному подходу и оптимизированному процессу.
В результате клуб получил удобный инструмент для управления парковкой, который повысил качество обслуживания и заложил основу для будущих доработок — таких как учёт погодных условий и расширенные ИИ-возможности.