Git Product home page Git Product logo

itmo_deep_learning_in_practice's Introduction

Распознавание дорожных знаков с помощью компьютерного зрения

Данный проект выполнен в рамках курса "Глубокое обучение на практике" от магистратуры ITMO AI Talent Hub.

Описание используемых данных

Для обучения модели был выбран датасет RTSD. Изображения получены с широкоформатного видеорегистратора, который снимает с частотой 5 кадров в секунду. Разрешения изображений от 1280×720 до 1920×1080. Фотографии были сделаны в разное время года (весна, осень, зима), в разное время суток (утро, день, вечер) и при различных погодных условиях (дождь, снег, яркое солнце). В наборе используется 155 знак дорожного движения, формат разметки - COCO.

Подробный анализ датасета (EDA) находится в файле: "EDA_Russian_traffic_signs.ipynb"

Main page

Также можно увидеть что из себя представляют изображения данного датасета:

Main page

Main page

Подготовка данных для обучения

Данные, использованные для обучения представлены с разметкой COCO. Модели YOLO требуют собственый формат представления, соответственно было выполнено преобразование данных в YOLO-формат. Для преобразования использовался скрипт JSON2YOLO, представленный на Ultralytics. Процесс конвертации - в файле prepare_data.ypinb.

Эксперименты

Были взяты четыре модели, все они представлены в таблице ниже. Модели были запущены в одних условиях и обучены на 20 эпохах.

Metrics YOLOv5su YOLOv8n YOLOv8n640 YOLOv8s640
precision 0.74297 0.81094 0.72414 0.79494
recall 0.74024 0.7301 0.63267 0.75753
mAP50 0.80417 0.81824 0.70368 0.83163
mAP50-95 0.60305 0.62838 0.51832 0.62737

Main page

Inference

  • YOLO8 1280 cpu: 3ms preprocess 72ms inference 1.5 postprocess cuda: 3.5 ms preprocess 4ms inference 0.5 postprocess
  • YOLO8s 640 cpu: 1ms 50ms 1ms cuda 0.5ms 4.5ms 1ms cpu - core i513600 cuda: rtx 4070ti

=======

MVP

Итоговый продукт представляет собой веб-сервис + Android приложение.

Веб-приложение позволяет загрузить видеоряд с локального ПК или с YouTube. Если на видео будет обнаружен знак дорожного движения, то в реальном времени он будет выделен bounding-box'ом с текстовой подписью номера знака из ПДД. Например:

Main page

Внешний вид интерфейса веб-сервиса

Main page

  • Веб-приложение: streamlit
  • Модель: YOLOv8m

Запись функционала для веб-сервиса

Android-приложение

Приложение позволяет в реальном времени получать информацию о знаках дорожного движения в кадре смартфона.

Main pageMain page

Демонстрация работы приложения в реальных условиях:

Watch the video

Как запустить веб-сервис

Requirements python >= 3.10

pip install -r requirements.txt

Запуск из папки проекта

streamlit run app.py

После 1-го запуска установится доп библиотека. Нужно будет перезапустить сервис еще раз.

Как установить и использовать Android-приложение

Приложение опубликовано в RuStore и доступно для загрузки по ссылке или QR-код

qr

itmo_deep_learning_in_practice's People

Contributors

muzafarovdan avatar basil-77 avatar ashimisha avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.