Workspace Digital Awards 2025 — престижнейшая международная премия в сфере диджитал. Принять участие!
Doubletapp
Flygrade: приложение для коллекционеров бейсбольных карточек
Doubletapp
WDA
2024
#Приложение под ключ

Flygrade: приложение для коллекционеров бейсбольных карточек

3075 
Doubletapp
Doubletapp Россия, Екатеринбург
Поделиться:
Клиент

Flygrade

Сфера

Каталоги, рейтинги, поисковые системы

Регион

США

Сдано

Июль 2023

Задача

Замысел Flygrade: в приложении авторизованный юзер наводит камеру на карточку и получает информацию о грейде этой карточки по десятибалльной шкале. Оценка выставляется для каждой из сторон, а затем выводится общий средний балл.

Услуга платная, но можно купить абонемент, чтобы оценка каждой конкретной карточки обошлась дешевле — так в приложении работает монетизация.

Данные оценки сохраняются в личном кабинете, их можно использовать позже.

Решение

1ML

Цель проекта — с помощью нейронной сети определить, какую бы оценку поставила коллекционной карточке профессиональная оценочная комиссия. Шкала оценки состоит из 19 пунктов: от 1 (очень плохое качество) до 10 (идеальной качество) с шагом 0.5. У карточки 2 стороны, их нужно оценить независимо, а после получить итоговую оценку как взвешенное среднее из оценок каждой стороны. Кроме этого, есть 4 критерия, из которых собирается итоговое качество и которые тоже полезно уметь оценивать:

Выцветание карточки;

Потертости, царапины;

Качество углов;

Корректность центровки изображения на карточке.

Каждый из критериев имеет такую же шкалу, как и основная карточка. Их оценка не является обязательной, но способна помочь модели машинного обучения лучше обучиться.

Данные

От клиента нам были переданы порядка 7 тысяч карточек и их оценки: грейд для каждой стороны карточки и, для части карточек, грейды по каждому из четырех критериев.

Качество фотографий было хорошее, но была проблема: в данных был сильный перекос в сторону хороших карточек, т.е. примеров с грейдами в диапазоне 7–10 было гораздо больше, чем в диапазоне 1–6.5. Также перекос был и в критериях.

Чтобы исправить перекос и собрать больше данных, были дополнительно спаршены десятки тысяч изображений с сайта eBay. Они имели грейды и изображения — все как нам нужно.

Однако была проблема: изображения часто были не похожи на те, что мы хотели подавать сети: в них карточка была сильно далеко от камеры, в то время как пользователь в приложении фотографирует карточку почти в упор. Чтобы решить эту проблему, мы сделали сегментационную маску для тысячи карточек. После этого обучили сегментационную нейронную сеть и скормили ей остальные десятки тысяч карточек — таким образом смогли определить местоположение карточки в изображении. Это позволило нам подавать итоговой нейросети фото карточек с eBay в полный размер кадра.

Обучение

Для обучения итоговой модели использовалась сверточная нейронная сеть с основой от сети ResNet-50. По сути основная наша задача состояла из классификации изображения на 19 классов: грейд от 1 до 10 с шагом в 0.5. Обучив сеть на имеющихся данных, мы получили хорошее качество. Однако для нескольких тысяч изображений от клиента у нас также были данные о грейдах конкретных критериев. Они не были нужны для конечного результата, но могли ли они помочь нам увеличивать качество нашего основного классификатора? Мы решили это проверить. Мы взяли обученную на предыдущем этапе сеть и добавили к ней еще 4 классификационных головы под каждый критерий. После дообучили сеть в таком режиме на 5 классификационных голов — под 4 критерия + основной грейд. В итоге мы действительно смогли, хоть и не намного, но увеличить качество работы сети! При использовании в продакшене эти 4 вспомогательных головы были уже не нужны.

В результате у нас получилась сеть, качественно оценивающая грейд, который поставят карточке специализированные агентства по оценке. Даже когда она давала ошибки, погрешность была в ± полгрейда.

2Backend

Backend приложения был полностью написан девелоперами Doubletapp. Использовали фреймворк FastAPI, по сравнению с Django он даёт большую производительность и вариативность.

В приложении создан личный кабинет для идентификации пользователя, в нем он сохраняет данные обработанных карточек. Также подключены стандартные инструменты платежей для GooglePlay и AppStore.

Результат

Мы разработали мобильное приложение на Flutter. С помощью инструментов ML можно узнать грейд карточки, есть возможность сохранить изображение и сопутствующую информацию, чтобы использовать ее позже и не заниматься оценкой повторно.

Клиент остался доволен результатами нашей работы, его стартап получил новый раунд инвестиций, и теперь, помимо техподдержки, мы планируем с помощью ИИ не только оценивать карточку, но и находить аналогичные карточки, которые выставлены на продажу прямо сейчас — цены карточек меняются, нужно подгадать удачный момент для продажи. В ближайших планах — подключить онлайн-аукцион eBay, где идет основная торговля спортивными карточками, и выставлять свежеоцененный раритет на онлайн-витрину.

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

компьютерное зрение (Computer Vision, CV);

обработку текстов (natural language processing, NLP);

распознавание речи, speech recognition, обработку звуков.

https://flygradeit.com/

Стек технологий

  • Python Python Язык программирования
  • Flutter Flutter Фреймворк/библиотека

Выскажите мнение
Авторизуйтесь, чтобы добавить свой комментарий.
оставить заявку

Хотите заказать похожий проект?

Doubletapp с удовольствием обсудит вашу задачу

Оставить заявку