DevLog
17.09.2025
Определены основные микросервисы, на которых будет работать проект:
- Labeler (Разметка камер)
- Detector (Распознавание автомобилей)
- Occupancy (Определение занятых и свободных мест)
- Core API + DB (Агрегатор)
- 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
Защитили проект на очной питч-сессии, сделали свой стенд, рассказывали о проекте всем, кто подходил. Презентация вызвала у аудитории положительную реакцию.