🚩 Було створено команду 🇺🇦 розробників - "Neuron Curve Bobr".
🚗 В результаті командної роботи був виконанний груповий проєкт на тему "Автоматизована система паркування".
Дякую 🔥 команді за нашу спільну роботу впродовж напружених 🔨 двох тижнів.
Курсовий проєкт на тему "Автоматизована система паркування".
Згідно з технічним завданням на проєкт: Система автоматично може визначати
номери автомобільних знаків на зображеннях з використанням методів машинного
навчання.
Функції застосунку:
- Управління обліковими записами користувачів
- Візуалізація про кількість вільних та зайнятих паркомісць.
- Приймання зображень від користувача (симуляція роботи відеокамери)
- Виявлення та виділення області з номерним знаком
- Детекція номерного знаку
- Розпізнавання символів для ідентифікації тексту номерного знаку
- Перевірка номера авто у базі зареєстрованих транспортних засобів
- Запис часу в'їзду/виїзду кожного разу, коли визначається номерний знак
- Відстеження тривалості паркування
- Розрахунок загальної тривалості паркування
- Зберігання даних про тривалість паркування в базі даних;
- Розрахунок вартості паркування. Керування тарифами. Чек за QR-кодом;
- Генерація звітів про розрахунки, які можна експортувати у форматі CSV
- Оплата послуги паркування
Проєкт на тему "Автоматизована система паркування". |
Data sciense & Computer vision
Пошук зони знаку використовує алгоритми computer vision модуля OpenCV - Haar Cascades.А розпізнавання кожного номеру реалізовано класифікацією зображення на 36 класів з використанням простої моделі з використанням згорткової нейронної мережі CNN в Keras (Tensorflow).
Модель тренована була на власних додаткових зображеннях для поліпшення
якості розпізнавання і виявлення проблем з подібними знаками такими як
літера О і цифра 0.
В процесі вибору алгоритму були протестовані різні рішення, вибрано цей
метод за умовною простотою і гарними результатами.
CNN модель |
tensorflow-io-gcs-filesystem==0.31.0 ; python_version >= "3.10" and python_version < "3.12"
Front-end
З метою швидкості реалізації візуальної частини у межах посталеного терміну
на проєкт два тижні було вибрано фреймворк
Django. В цьому
проєкті використано версію Django 5.0.4.
Але були заділи та ідеї на використання фреймворку FastAPI для реалізації чистого backend, є початкова гілка у гіт проєктів для цього, але час є час.
Django прекрасно справлявся з задачею побудови та виявлення змін у моделі бази даних створюючи версійність міграцій змін. У ролі бази даних використано Postgress.
Але були заділи та ідеї на використання фреймворку FastAPI для реалізації чистого backend, є початкова гілка у гіт проєктів для цього, але час є час.
Django прекрасно справлявся з задачею побудови та виявлення змін у моделі бази даних створюючи версійність міграцій змін. У ролі бази даних використано Postgress.
Проєкт у
Visual Studio Code |
Структура бази даних |
Sheduler
Для роботи додаткового функціонала для системи сповіщень та роботу Telegram Bot використано власний модуль sheduler.py якій виконується як окремий процес.З навчальною метою та без наявності постійного хостингу модуль Telegram Bot працює використовуючи метод pooling без використання web-hooks.
Для зберігання даних необхідних для роботи бота, використано системний файловий кеш Django, але в ідеалі мав би бути використаний зовнішній сервер Redis або сервер Memcache.
CI/CD
В проєкті реалізовано найпростіше рішення для CI/CD що дозволило повністю
реалізувати автоматичне розгортання на орендованому сервері.
Для неперервної інтеграції (англ. Continuous Integration) - CI використано функціонал GitHub Action для перевірки коду на можливі помилки перед кожним merge у кожному pull-request від розробників команди.
Для безперервного доставлення (англ. Continuous delivery) - CD використано власний bash скрипт котрий перевіряє гілку git за розкладом у cron, та перебудовує docker контейнери у разі виявлення змін.
Для неперервної інтеграції (англ. Continuous Integration) - CI використано функціонал GitHub Action для перевірки коду на можливі помилки перед кожним merge у кожному pull-request від розробників команди.
Для безперервного доставлення (англ. Continuous delivery) - CD використано власний bash скрипт котрий перевіряє гілку git за розкладом у cron, та перебудовує docker контейнери у разі виявлення змін.
Посилання
- GitHub: Проєкт
-
YouTube:
запис презентації при захисті проєкту
- YouTube: встановлення та інтерфейс
- TikTok: встановлення та інтерфейс
- Live Demo: https://fastparking.x-server.net
Склад команди:
- Team Lead: Artem Dorofeev. GitHub
-
Scrum Master:
Rostyslav Bysko. GitHub
- Django expert: Tetiana Chyrkova. GitHub, GitHub
- Full stack devops : Lex Xai. GitHub
- Art director: Евгений Плахотин. GitHub
- Tester: Oleksander Borovyk. GitHub
Youtube
Слайд шоу
#python #datascience #machinelearning #django #tensorflow #opencv
Немає коментарів:
Дописати коментар