НИСИДОМА
Платформа, где объект находят и проверяют по метке, QR-коду или фото маркировки: лендинг, кабинет организаций и модерация. Работаю в небольшой команде: на мне фронтенд, сервис распознавания по фото и обучение моделей.
- Заказчик
- НИСИДОМА
- Срок
- с октября 2025, в разработке
- 154 тестапроверяют сайт и кабинет в трёх браузерах
- 2 моделираспознают маркировку: если основная не справилась, отвечает запасная
- фото → объектпоиск по снимку маркировки — от разметки данных до кнопки в кабинете
Задача
Объект нужно найти и проверить по метке, QR-коду или фотографии маркировки. Для этого нужны быстрый лендинг с поиском, кабинет для организаций и распознавание маркировки по фото.
Проект в разработке с октября 2025 года. Основной API и мобильное приложение пишут коллеги, на мне фронтенд, сервис распознавания и обучение моделей.
Что сделал
- Лендинг с серверным рендерингом и кэшем: страницы открываются сразу и видны поисковикам
- Кабинет организаций: дашборд, пользователи, журнал действий, модерация объектов
- Поиск объекта по QR-коду и по фото маркировки
- Сервис распознавания на FastAPI: находит маркировку на фото, вырезает её и отдаёт контур
- Датасет и обучение моделей детекции и сегментации на YOLO и Detectron2
- 154 e2e-теста, сравнение снимков экрана и проверка доступности
- Видеоинструкции по интерфейсу с синтезированной озвучкой
Как это выглядит
Кейсы внутри проекта
Поиск по фото маркировки
Распознавание в два шага: сначала модель находит маркировку на снимке, потом выделяет её контур только внутри найденной области. Так быстрее и точнее, чем разбирать весь кадр. Результат сразу подключён в кабинете.
Модели, которые не подводят
Основная модель — Detectron2, запасная — YOLO: если первая не справилась, отвечает вторая, а если не справились обе, сервис возвращает причину от каждой. На машине со старой видеокартой сервис сам переходит на процессор при запуске, а не падает на первом запросе.
Свой датасет
Собрал датасет: вырезки вокруг маркировки с запасом по краям, проверка битых файлов и поворота снимков, деление на обучающую и проверочную части. Обучение — 15 000 итераций.
Быстрый лендинг
Перевёл сайт с SPA на серверный рендеринг с кэшем: секции главной становятся интерактивными, только когда до них доходят, картинки в WebP нужного размера, шрифты первого экрана грузятся заранее, а метрика — после загрузки страницы.
Что стало
- Объект находится по фото маркировки — функция прошла путь от разметки данных до кнопки в кабинете
- Если основная модель не справилась, запрос обрабатывает запасная, и сервис не падает
- Лендинг отдаётся из кэша, а контент остаётся свежим и виден поисковикам
- Сайт и кабинет проверяются автотестами в Chromium, WebKit и Firefox
Отзыв заказчика
В НИСИДОМА всё началось с довольно практичной задачи: человек должен иметь возможность найти объект по метке, QR-коду или даже фотографии маркировки. Организациям при этом нужно было дать возможность самостоятельно добавлять и обновлять свои объекты, а за нами оставить проверку данных.
На словах всё выглядело просто. Но готовые инструменты не подошли. Некоторые декодеры неправильно читают русский текст в QR-кодах, а наши метки вообще выглядят как рисунки из пятен спрея. Обычное распознавание здесь не работает, поэтому пришлось разрабатывать собственную модель.
За год получилась довольно большая система. Есть публичные карточки объектов, кабинеты организаций, административная панель с ИИ-модерацией и мобильная версия. QR-коды удаётся считывать, даже если они маленькие или немного размыты. Для распознавания фотографий обучили модель на собственных данных.
Больше всего мне нравится, что обратная связь не теряется в длинном списке задач. Обсудили что-то в чате, и уже через несколько дней можно увидеть результат. При этом один разработчик занимается и интерфейсом, и распознаванием, и обучением моделей. Поэтому особенно ценно, когда идея быстро превращается в работающую функцию.
Теперь хотим добавить видеомодерацию и приложение для iOS.