Mодуль "Python Data Science" в IT академії GoIT - проєкт на тему "Автоматизована система паркування".
💡 Закінчили навчання за останнім третім модулем “Python
Data Science” вIT академії GoIT - start your career in IT.
🚩 Було створено команду 🇺🇦 розробників - “Neuron Curve Bobr”.
🚗 В
результаті командної роботи був виконанний груповий проєкт на тему
“Автоматизована система паркування”.
Дякую 🔥 команді за нашу спільну роботу впродовж напружених 🔨 двох тижнів.
Курсовий проєкт на тему “Автоматизована система паркування”.
Згідно з технічним завданням на проєкт: Система автоматично може визначати номери автомобільних знаків на зображеннях з використанням методів машинного навчання.
Функції застосунку:
- Управління обліковими записами користувачів
- Візуалізація про кількість вільних та зайнятих паркомісць.
- Приймання зображень від користувача (симуляція роботи відеокамери)
- Виявлення та виділення області з номерним знаком
- Детекція номерного знаку
- Розпізнавання символів для ідентифікації тексту номерного знаку
- Перевірка номера авто у базі зареєстрованих транспортних засобів
- Запис часу в’їзду/виїзду кожного разу, коли визначається номерний знак
- Відстеження тривалості паркування
- Розрахунок загальної тривалості паркування
- Зберігання даних про тривалість паркування в базі даних;
- Розрахунок вартості паркування. Керування тарифами. Чек за QR-кодом;
- Генерація звітів про розрахунки, які можна експортувати у форматі CSV
- Оплата послуги паркування
Проєкт на тему “Автоматизована система паркування”.
Data sciense & Computer vision
Пошук зони знаку використовує алгоритми
computer vision
модуля OpenCV -
Haar Cascades.
А розпізнавання кожного номеру реалізовано класифікацією зображення
на 36 класів з використанням простої моделі з використанням згорткової
нейронної мережі
CNN
в
Keras
(Tensorflow).
Модель тренована була на власних додаткових зображеннях для поліпшення якості розпізнавання і виявлення проблем з подібними знаками такими як літера О і цифра 0.
В процесі вибору алгоритму були протестовані різні рішення, вибрано цей метод за умовною простотою і гарними результатами.
За причини конфліктів версій модулів для Tensoflow було обмежено максимальну версію Python до версії 3.11.
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.
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
контейнери у разі виявлення змін.
Посилання
- 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



















