Перейти к основному содержимому

DevLog

17.09.2025​

Определены основные микросервисы, на которых будет работать проект:

  1. Labeler (Разметка камер)
  2. Detector (Распознавание автомобилей)
  3. Occupancy (Определение занятых и свободных мест)
  4. Core API + DB (Агрегатор)
  5. Frontend / Map UI

07.10.2025​

Путем голосования основные задачи проекта были распределены между участниками команды. Провели встречу команды, обсудили кто что будет делать, немного порассуждали о возможных трудностях и проблемах, которые предстоит решать, подумали над путями решения этих проблем.

На данный момент каждый из членов команды должен попробовать различные технологии, необходимые для решения его задачи, определиться со стеком своего микросервиса и научиться работать с выбранными технологиями. Нужно также определить примерный набор исходных и производных данных для каждого микросервиса, на основе чего будет сформировано общее API.

19.10.2025​

Разработано общее API, охватывающее взаимодействие между всеми микросервисами, написана документация к нему. Создан прототип сайта-карты, отображающего свободные парковки.

25.10.2025​

Разработана первая версия labeler (сайта для разметки картинки с камер на парковочные зоны, изменения метаданных парковок). Продолжается поиск подходящих публичных камер для использования их данных в проекте, а также сбор датасетов для обучения модели распознаванию автомобилей. Были предприняты первые попытки обучения модели на выбранных датасетах с использованием онлайн-инструмента, результат удовлетворительный. Планируется разработка кодовой базы для тренировки модели и распознавания автомобилей в режиме реального времени.

В связи с переводом 2 участников команды на другие образовательные программы, требуется согласовать получение ими баллов за наш проект по физике у их новых лекторов.

01.10.2025​

Настроили CD для API сервера, карты парковок и сервиса разметки камер. С помощью кронджобы собрали 236 изображений с тестовой камеры с интервалом в 1 час в целях создания своего датасета для обучения модели, начали аннотацию данных в CVAT. Былы написаны программы для дообучения модели YOLOv12_S на датасетах, экспорта модели, и распознавания автомобилей на видеопотоке с камеры с визуализацией, а также несколько вспомогательных скриптов для работы с датасетами. Пробовали несколько раз обучать модель на разных данных. Пока результат сложно назвать достаточным для достижения целей нашего проекта, потребуется более глубокая работа с исходными данными, дополнительное обучение на ракурсах используемых нами камер.

08.10.2025​

Закончили разметку 236 изображений, собранных нашей первой камерой в течение почти 10 суток, получили полноценный датасет. Обучили модель на нашем датасете и фрагментах других актуальных датасетов из открытых источников. У модели получились неплохие метрики: mAP@50: 0.978, mAP@50–95: 0.799, Precision (точность): 0.956, Recall (полнота): 0.925. Мы также проводили детекцию автомобилей на изображении с нашей камеры, используя нашу модель. В светлое время суток модель верно распознает все автомобили на картинке с confidence выше 90% для всех машин и не отображает "лишних" машин при пороге confidence в 15%. В темное время суток модель также прекрасно справляется с распознаванием всех транспортных средств, confidence по детекциям при этом выше 80%. При том же пороге confidence в 15% заметно, что модель распознала 1 "лишнюю" машину, которой в действительности не было. Однако этот бокс попадает на дальнюю часть парковки, где машины более мелкие и менее различимые, в этом случае и человек не сразу мог бы сказать, что машины нет. Confidence у этой детекции был около 30%, поэтому такие детекции легко отфильтровываются. В целом считаю результаты обучения модели удовлетворительными, поэтому будем работать над программой для определения свободных мест по распознанным машинам, тестируя это на нашей первой камере. В будущем добавим несколько других камер, как только сможем получить к ним доступ, и будем дообучать модель и на них, если текущая модель справляться не будет.

15.10.2025​

Написали программу для определения свободных мест по распознанным машинам. Поскольку на используемой камере стоит широкоугольный объектив, то пришлось также сделать отдельный скрипт для определения кривизны изображения, выпрямления изображения, а потом применить коррекцию к границам размеченных парковочных зон с учетом кривизны этого изображения. Для определения попадания авто в зону парковки применяли комбинацию 2х подходов: 1) попадания центра бокса машины в зону парковки на изображении; 2) сравнение по площади бокса распознанного авто, пересекающейся с зоной парковки. Программа со своей задачей справляется хорошо, в том числе в темное время суток. Параллельно подняли postgres сервер для хранения данных, с ним теперь взаимодействует API. Начали писать эндпоинты API. Настроили CD в репозиториях, чтобы автоматизировать деплой сервисов, добавили workflow для проверки работоспособности сервисов и доступности сайтов после совершения коммитов, настроили отображение ошибок в GitHub Actions. Зарегистрировали для проекта отдельный домен parktrack.live. Поскольку сегодня выпал первый снег, детекции машин стали ожидаемо работать хуже, поэтому придется снова собирать и размечать данные в новых погодных условиях, проводить дообучение.

23.10.2025​

Дообучили модель на дополнительно подготовленном нами датасете для распознавания машин со снегом. Доделали основные необходимые для работы эндпоинты API, подключили к базе данных. Переписали онлайн-карту под работу с API, настроили отображение параллельных парковок в дополнение к стандартным, настроили цветовую гамму и автообновление. Сегодня у нас наконец получилось добиться полной работоспособности всего нашего проекта для 1 камеры, все работает как надо, качество распознавания превзошло наши ожидания. Радуемся и празднуем.

25.10.2025​

Провели предварительную демонстрацию работы нашего проекта. Фидбек получили преимущественно положительный. Обсудили возможность коллаборации в следующем семестре с другими командами, работающими над предсказанием заполненности парковок.

28.10.2025​

Предприняли попытку договориться о получении доступа к наружным камерам ИТМО на Кронве и Ломо с целью использовать их для работы с парковками вблизи зданий университета. На этапе рассмотрения письменной заявки проект был принят с большим интересом и была запланирована личная встреча для согласования доступов. К сожалению, по итогам личной встречи с начальством службы безопасности, в предоставлении доступа к камерам для проекта было всё же отказано. Однако нам предложили вернуться к этому вопросу летом, когда может стать возможной установка дополнительных камер во дворе ИТМО и будет востребованной функция определения занятости парковки во дворе ИТМО.

30.10.2025​

Нашли в открытом доступе несколько новых статичных камер, подходящих для наших целей. Они находятся в других городах, но позволят нам поработать с различными ракурсами, натренировать нашу модель распознавать машины разного масштаба и с разных сторон, в различных погодных условиях и при низкой освещенности. Также есть возможность отработать сценарии переменной видимости парковки. Собрали некоторое количество материала для обучения, начинаем размечать.

06.10.2025​

Добавили функционал обрезания кадра с камеры, чтобы упростить разметку кадров и улучшить распознавание. Добавили вторую камеру, данные с камер теперь обрабатываются попеременно, среднее время между обновлениями данных для 1 камеры составляет 1 минуту. Михаил реализовал часть функционала labeler: теперь можно просматривать список всех имеющихся камер в веб-панели, видеть и менять их расположение на карте, редактировать информацию о камере и парковочных зонах, видимых на ней, расположении этих зон на карте. Сейчас некоторые из этих функций работают с багами или неполноценно, стараемся это исправить и добиться полной согласованности с API. Также исправили некоторые ошибки в отображении информации о парковках на веб-карте, добавили/исправили некоторый функционал API. Продолжается разметка новых камер

10.12.2025​

Исправили баги в API, из-за которых не работали некоторые функции в labeler.

11.12.2025​

Закончили разработку labeler, все работает как ожидалось.

13.12.2025​

Сайт parktrack.live в первых строчках поисковой выдачи Google и Яндекс по запросу "parktrack" в России.

14.12.2025​

Чтобы подключить камеры Петрозаводска с сайта Мой Дом Ситилинка, открывающиеся только с российских ip-адресов, подняли вспомогательный сервер на Raspberry Pi в Санкт-Петербурге, который по запросу возвращает кадр с нужной камеры, вовремя обновляя сессию доступа к сайту Мой Дом.

17.12.2025​

Сделали небольшую веб-страничку для просмотра распознавания авто с камер в реальном времени. Добавили графики заполненности парковок по отдельным камерам на Grafana-дашборд. Подготовили PowerPoint-презентацию проекта для завтрашней предзащиты.

18.12.2025​

Провели предзащиту проекта, получили максимальные 15 баллов за нее. Обсудили возможность дальнейшего развития проекта во втором семестре: помимо подключения камер ИТМО имеет смысл поискать движок навигатора, чтобы стало возможным построение маршрута до ближайшего к месту назначения парковочного места. Планируется объединение функционала с командой, занимающейся предсказанием занятости парковочных мест, что позволит предсказывать наличие свободных мест в момент прибытия. Дополнительно можно сделать из labeler платформу с авторизацией, позволяющую другим пользователям подключать к системе свои камеры.

24.12.2025​

Подготовились к финальной защите проекта: поменяли местами несколько слайдов в презентации, подготовили текст выступления и аннотации к слайдам, распечатали плакат для своего стенда.

25.12.2025​

Защитили проект на очной питч-сессии, сделали свой стенд, рассказывали о проекте всем, кто подходил. Презентация вызвала у аудитории положительную реакцию.