/InteriorDesign

ML Sysyem Design project about Interior Design

Primary LanguageJupyter NotebookGNU General Public License v3.0GPL-3.0

InteriorDesign

Проект по созданию программы-дизайнера интерьера.

Команда проекта: cтуденты ИТМО Лейтес Анна и Пахолков Виктор

В репозитории находятся следующие файлы: ML System Design Doc - документ описывающий предпосылки и разработку ML системы bedroom_labelled_sample.zip - сжатая папка с фотографиями спален labelled_bedrooms_data_sample.txt - аннотация к фотографиям

а также программные файлы и файлы данных которые мы использовали на этапе исследования решений идеи.

Мы присоединились на третьей недели курса (первой учебной неделе в университете), начав описывать наше видение в ML-дизайн-доке.

На четвертой неделе курса мы

  • Проработали идеи прототипа приложения для первых пользователей -Попробовали запустить наиболее близкую по идее к нашему приложению text-to-room - во время её выполнения она заняла более 70 гб места на google colab. Код запуска в файле failed_text2room_test.ipynb
  • Проверили возможности stable diffusion в работе. Код в файле Room_generator_trial_stable_diffusion_ipynb_.ipynb
  • Выбрали результаты stable diffusion как baseline для сравнения в дльнейшей работе по улучшению качества результатов модели. Некоторые из картинок: appartment_plan.png, lvivng_room(2).png, planv1.png.
  • Добавили описание use cases в ML System Doc

На пятой неделе курса было сделано следующее:

  • Разработан UI/UX дизайн прототипа веб сайта и реализован на streamlit. Файл Design.py

  • Проведены проверки style transfer моделей на возможность их использования в поставленной задачес помощью предобученной VGG-19 для Style Transfering. Файлы interior_design_renovation.ipynb и interior_design_renovation.py

  • Добавили описание baseline в ML System Doc, а также уточнили другие разделы в соответствии с изменившимися требованиями к системе

На шестой неделе курса:

  • Разработано видение pipeline работы системы в use case от текстового запроса до вывода результата работы программы. Файл "Предварительная схема решения.jpeg"
  • Добавлено это в ML System Doc
  • Произвели поиск и анализ датасетов на которых могла бы обучать модель. Проверено более 10 потенциальных датасетов различающихся по входным-выходным данным, тематике и формату.
  • Отправлены запросы на доступ к датасетам.

На седьмой неделе курса:

  • После получения обратной связи на семинаре мы заполнили Readme
  • Пересмотрели бизнес-требования в ML- design doc и план MVP решения
  • Подобрали датасет картинок комнат (часть этого датасета загрузили в Bedrooms_labelled_sample.zip)
  • Разметили часть спален из вышеуказанного датасета (файл labelled_bedrooms_data_sample.txt).

На восьмой неделе:

  • разметили больше данных и добавили загрузчик данных dataloader.ipynb

На девятой неделе:

  • написали код поиска похожих векторов с помощью косинусной метрики similarity of vectors.ipynb content_and_elements_jaccard_comparison.ipynb

На десятой неделе курса:

  • Расширен датасет: добавлены данные ванных, а также гостинных
  • Проведен анализ скорости выполнения кода поиска наиболее похожего описания изображения к запросу пользователя, написанного на прошлой неделе
  • Проведен рефакторинг функций, переписаны некоторые методы, добавлено обучение w2v на датасете вместо использования предобученного
  • Вышеперечисленные изменения в разы увеличивают скорость выполнения программы, а также затраты памяти

На 11 неделе курса:

  • составлен прототип работы программы в streamlit Design.py
  • а также расширен датасет: добавлены новые данные - разметку обеденных комнат

На 12 неделе курса:

  • Проверили работу программы при разных запросах. Выяснилось, что кодировка в эмбеддинг предложения у запроса пользователя и в датасете выполняются по-разному (по-словам и по-словосочетаниям)
  • Стали использовать предобученную модель для представления эмбедингов
  • А также добавили словарь синонимов преобразования запроса с использованием синонимов из датасета synonyms_for_user_input.ipynb

На 13 неделе курса:

  • Пременили эмбеденги с помощью трансформерных моделей (Bert), вычислили косинусное расстрояние Sentence_transformers.ipynb
  • Работали над кастомным токенизатором
  • Реорганизовали программный код для удобства запуска разных версий и проведения экспериментов в папке desktop_app_version_0 файлы main.py, data_loader.py, preprocessing.py similarities.py
  • В связи с реорганизацией дизайн дока, пересмотрели, что может быть бейзлайном и что этапом

На четырнадцатой неделе кусра:

  • разработан back-end системы файл app.py
  • разработан front-end системы, соединён с back-end'ом папка desktop_app_version_0