Стажировка по проекту
Компания: Интернет-магазин очков ООО «НетОптик»
Система определения параметров очков по номенклатуре
Суть проекта
Задача
Для чего
Вводные данные
Выходные данные
Создание модели нейронной сети, способной классифицировать очки на металл/пластик, а также на ободковые/безободковые/леска. Так же модель должна была читать атрибуты с дужки очков
Для решения задачи было создано 2 телеграм бота:
  1. Подаём изображение и указываем в параметре действие (определить оправу/Распознать артикул);
  2. Подаём изображение с лицом (анфас), передаём изображение с моделью очков, для наложения
Файлы рентгена с установки «Сибскан-М1»
Для разработки системы, которая способна классифицировать очки, читать атрибуты - модель, ширину линзы, переносицы и ширину оправы. Предоставлять визуальное представление их ношения
Участники
команды проекта
  • Титов Михаил
    Тимлид проекта
    Михаил - руководитель группы разработчиков, отвечал за полную разработку проекта
  • Малицкий Андрей
    АКЦИОНЕР ГРУППЫ КОМПАНИЙ «ГОРОД ДЛЯ ЛЮДЕЙ» - УПРАВЛЕНИЕ ЖИЛЫМ ФОНДОМ В СНГ И РЯДЕ ЕВРОПЕЙСКИХ СТРАН, АКЦИОНЕР КОМПАНИИ AMLAI
    • Проверка, поиск и анализ существующих решений и источников данных по теме проекта;
    • Разработка парсера для скачивания изображений очков с сайта. Были скачены все картинки оправ с сайта и отфильтрованы по трем классам материалов: пластик, металл и комбинированные;
    • Подготовка датасета для обучения модели классификации, используя фреймворк Terra;
    • Обучение модели классификации, используя библиотеку AutoKeras. Было увеличено количество эпох обучения и изменена функция потерь на кросс-энтропию. Тем самым точность модели повысилась до 95%;
    • Эксперименты по дообучению модели, используя сторонний проект по материалам из GitHub. Андрей нашел проект, который использовал нейронную сеть SAM - новый метод оптимизации, основанный на адаптивном градиентном спуске.
    • Провежение экспериментов с различными размерами изображений с AutoKeras, используя гипербэнд;
    • Создание телеграм-бота, который позволяет пользователям классифицировать очки (металл/пластик);
    • Создание телеграм-бота, который позволяет пользователям получать атрибуты очков;
    • Поиск и анализ проектов виртуальной примерочной;
    • Разметка 2000 изображений в дополнение к базе;
    • Создание телеграм-бота, который позволяет пользователям примерять изображения очков загружая свою фотографию и модель очков
  • Остапенко Валерия
    Руководитель отдела финансовой аналитики
    • Использование библиотеки AutoKeras для автоматического поиска оптимальной архитектуры нейронной сети для задачи классификации;
    • Тестирование модели на разных наборах данных, используя библиотеку AutoModel для автоматического подбора гиперпараметров нейронной сети;
    • Аугментация данных и запуск генетического алгоритма для улучшения качества модели;
    • Оценка качества модели на проверочной и тестовой выборках, используя метрики, такие как точность (accuracy), полнота (recall), точность (precision) и F-мера (F1-score). Итог: высокая точность модели 98% на тестовой выборке;
    • Разрабатка онлайн-примерочной для очков, которая позволяла бы пользователю загружать свое фото и примерять разные модели очков виртуально.
    • Разметка изображения очков по типу и по наличию маркировки на очках с помощью онлайн-сервиса Labelbox, который позволяет создавать и управлять наборами данных для машинного обучения. Загрузка фотографии очков в сервис и присвоение им соответстхующие меток
  • Жидовинов Никита
    Инженер-разработчик
    • Распарсил базу данных с изображениями очков, содержащими различные тексты, такие как названия брендов, моделей, размеров и т.д. Написал скрипт на Python, который скачивал фотографии очков с сайта и сохранял их в локальную папку;
    • Написание кода для определения шаблонов моделей очков, то есть повторяющихся элементов текста на изображениях;
    • Проведение более детального анализа паттернов, то есть шаблонов моделей очков;
    • Проведение работы по распознаванию текста на изображениях и его классификации по типу;
    • Работа с библиотекой trdg, которая позволяет генерировать синтетические данные для обучения моделей распознавания текста. Запуск нескольких экспериментов с разными параметрами генерации: шрифт, цвет, фон, шум и т.д.;
    • Генерация текста на рандомном фоне, то есть создание искусственного изображения, на котором был текст на случайном фоне;
    • Подготовка данныех и дообучение модели EasyOCR, то есть улучшение качества модели распознавания текста на изображениях очков
  • Ткачев Георгий
    • Формирование папок с изображениями и запуск обучения модели классификации очков по типу с помощью библиотеки TensorFlow;
    • Обучение модели на два класса (очки с маркировкой и без маркировки) с аугментацией данных, то есть применением различных преобразований к изображениям очков, чтобы увеличить объем и разнообразие обучающей выборки;
    • Сегментация маркировки очков на изображениях с помощью библиотеки OpenCV, которая позволяет выделить область интереса на изображении и получить ее координаты;
    • Обучение модели на YOLO8 распознавать маркировку очков на изображениях, то есть определять ее положение и содержание с помощью нейронной сети, способной работать в режиме реального времени;
    • Создание модели по наложению очков на лицо человека;
    • Решение проблемы с искаженным затемнением стекол
  • Шухтуев Аркадий
    • Использование таких методов и техник обработки изображений, как эрозия, расширение и поворот, для улучшения качества фотографий очков и увеличения точности распознавания текста;
    • Извлечение и классифиция атрибутов очков, такие как форма, цвет, размер и бренд. Создание модели машинного обучения, которые могут определить эти атрибуты с высокой точностью и скоростью;
    • Работа с табличными данными, скачивание и анализ информации о продажах и популярности разных моделей очков
    • Работа с улучшением качества распознавания моделей. Аугментация данных