Стажировка по проекту
Компания: Интернет-магазин очков ООО «НетОптик»
Система определения параметров очков по номенклатуре
Суть проекта
Задача
Для чего
Вводные данные
Выходные данные
Создание модели нейронной сети, способной классифицировать очки на металл/пластик, а также на ободковые/безободковые/леска. Также модель должна была читать атрибуты с дужки очков
У 1 команды: Для решения задачи было создано 2 телеграм бота:
  1. Подаём изображение и указываем в параметре действие (определить оправу/Распознать артикул);
  2. Подаём изображение с лицом (анфас), передаём изображение с моделью очков, для наложения

У 2 команды: Получены модели нейронных сетей, решающих задачи классификации изображений очков по материалам и по видам дужек, с точностью до 100%. Разработана модель обнаружения и распознавания атрибутов очков с дужки. Также разработан телеграм-бот
Набор изображений очков, разделенный по папкам, названия которых соответствуют названиям классов для двух решаемых задач классификации по материалам и видам оправ. База изображений: втулки 200 шт, леска 250 шт, металл 418 шт, ободки 250 шт, пластик 500 шт и 200 шт с атрибутами очков
Для разработки системы, которая способна классифицировать очки, читать атрибуты - модель, ширину линзы, переносицы и ширину оправы. Предоставлять визуальное представление их ношения
Участники
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 распознавать маркировку очков на изображениях, то есть определять ее положение и содержание с помощью нейронной сети, способной работать в режиме реального времени;
    • Создание модели по наложению очков на лицо человека;
    • Решение проблемы с искаженным затемнением стекол
  • Шухтуев Аркадий
    • Использование таких методов и техник обработки изображений, как эрозия, расширение и поворот, для улучшения качества фотографий очков и увеличения точности распознавания текста;
    • Извлечение и классифиция атрибутов очков, такие как форма, цвет, размер и бренд. Создание модели машинного обучения, которые могут определить эти атрибуты с высокой точностью и скоростью;
    • Работа с табличными данными, скачивание и анализ информации о продажах и популярности разных моделей очков
    • Работа с улучшением качества распознавания моделей. Аугментация данных
Участники
2 команды проекта
  • Рубцов Антон
    Тимлид проекта
    Антон- руководитель группы разработчиков, отвечал за полную разработку проекта
  • Поляков Александр
    Lead Developer в IT
    • Разметка данных в cvat и тренировка алгоритма YOLOv8 для задачи обнаружения атрибутов очков на дужке;
    • Использование pytesseract для распознавания символов и расстояния Левенштейна для поиска модели очков в базе данных;
    • Обработка данных с помощью самописных классов и функций Python;
    • Подбор CNN-архитектуры для решения задач классификации изображений;
    • Использование фреймворка AutoKeras и сетей VGG16, NASNetMobile, EfficientNet для решения задач классификации;
    • Разработка telegram-бота с интегрированными моделями разработанных нейросетей (FlaskAPI, Docker), создание модели автокодировщика для классификации;
    • Запись обучающих видео и помощь коллегам в группе с малым опытом
  • Лыткин Владимир
    консультант в сфере информационных технологий
    • Обработка изображений – PIL, Image, и их аугментация – ImageDataGenerator,
    • Обработка табличных данных – Pandas;
    • Использование Callbacks и подбор гиперпараметров при обучении CNN-модели;
    • Применение VGG16 для решения задачи классификации изображений;
    • Тренировка YOLOv8n для решения задачи обнаружения атрибутов, распознавание оптических символов (OCR) – pytesseract;
    • Визуализация результатов обучения модели с помощью Matplotlib, ConfusionMatrix;
    • Разработка telegram-бота с интегрированными моделями разработанных нейросетей;
    • Презентация и видео обзор работы tg-бота
  • Широнин Игорь
    • Аугментация (ImageDataGenerator) изображений и сохранение в среде разработки;
    • Использование Callbacks, и подбора гиперпараметров при обучении CNN-модели для классификации изображений;
    • Обработка изображений – PIL, Image; обработка табличных данных – Pandas;
    • Тренировка алгоритма YOLOv8n для решения задачи обнаружения атрибутов очков на дужке;
    • Добавление в архитектуру модели OCR (pytesseract);
    • Визуализация результатов обучения модели с помощью Matplotlib, ConfusionMatrix
  • Мингараев Ильсур
    Программист
    • Анализ данных и поиск путей решения задачи классификации изображений;
    • Работа с файлами изображений в среде Gooogle Colab – os, drive, zipfile;
    • Подбор гиперпараметров CNN-модели - tensorflow.keras, подготовка данных - Numpy;
    • Использование предобученной модели VGG16 для классификации изображений;
    • Визуализация результатов обучения модели с помощью Matplotlib, ConfusionMatrix
  • Зайцева Мария
    Музыкант / Концертмейстер Уральской Государственной Консерватории и Уральского Государственного Педагогического Института
    • Чтение и редактирование кода на Python;
    • Аугментация (AUTOTUNE) изображений и сохранение в среде разработки;
    • Подбор предобученных моделей CNN (NASNetMobile, EfficientNet) для решения задач классификации изображений;
    • Использование Numpy для подготовки данных и tensorflow.keras для построения моделей нейросети;
    • Визуализация результатов обучения с помощью Matplotlib, Seaborn, ConfusionMatrix
  • Брутян Рубен
    Инженер / Специалист по Госзакупкам
    • Аугментация (ImageDataGenerator) изображений и сохранение расширенной БД;
    • Операции с файлами в среде программирования и обработка данных: os, pickle, Numpy, Sklearn;
    • Подбор предобученных моделей VGG16, Resnet50 и CNN-модели для решения задач классификации изображений;
    • Использование Callbacks, и подбора гиперпараметров с помощью Keras Tuner при обучении моделей;
    • Визуализация результатов обучения с помощью Matplotlib, Seaborn, ConfusionMatrix
  • Соболева Валерия
    Консультант по вопросам в сфере информационной безопасности
    • Чтение и редактирование кода на Python;
    • Подготовка данных с помощью PIL, os, Numpy;
    • Аугментация изображений с помощью ImageDataGenerator;
    • Подбор гиперпараметров для модели сверточной нейросети при решении задачи;
    • Классификации изображений - tensorflow.keras;
    • Визуализация результатов обучения с помощью Matplotlib
  • Погожев Денис
    • Работа с файлами изображений в среде Gooogle Colab – os, gdown, shutil;
    • Аугментация изображений – ImageDataGenerator, подготовка данных - Numpy;
    • Подбор гиперпараметров для модели сверточной нейросети при решении задачи классификации изображений - tensorflow.keras;
    • Визуализация результатов обучения модели с помощью Matplotlib, ConfusionMatrix
Демонстрация
проекта от 1 команды
Распознование и чтение атрибутов очков с дужки
Виртуальная примерочная
Демонстрация
проекта от 2 команды
Благодарность университетУ