Этот репозиторий содержит мои большие домашние работы, выполненные в рамках курсов по Deep Learning, Computer Vision (CV) и Natural Language Processing (NLP) в DS-потоке МФТИ.
Задания по компьютерному зрению были объединены общей темой — автоматический анализ дорожной инфраструктуры. В работе решались две ключевые, но независимые задачи: реконструкция дорожной сети по спутниковым снимкам и детекция объектов на изображениях с дорожных камер.
Цель: Научиться автоматически выделять дорожное полотно на спутниковых снимках и преобразовывать полученный бинарный маск в топологический граф, отражающий структуру дорожной сети.
Решение:
- Для обучения модели сегментации были объединены несколько публичных датасетов, включая DeepGlobe Road Extraction и Massachusetts Roads Dataset.
- Были обучены DeepLabV3 и UNet для задачи плотной семантической сегментации.
- На основе полученной маски дорог был разработан алгоритм построения графа:
- Изображение обрабатывалось для выделения перекрёстков (узлов графа).
- Между узлами проводились рёбра, представляющие собой соединительные участки дорог.
- Итоговая система позволяет по спутниковому снимку получить машинно-интерпретируемую карту в виде графа, пригодную для навигации или анализа транспортной доступности.
Цель: Создать модель, способную обнаруживать и классифицировать ключевые объекты на дороге, и протестировать её на реальных видеоданных.
Решение:
- Для обучения была собрана коллекция из нескольких датасетов, таких как N_O_2, Mapillary Vistas и др.
- Был проведён анализ разметки и выполнен маппинг всех классов в пять целевых категорий:
автомобиль,пешеход,велосипедист/мотоциклист,дорожный знак,светофор.
- Были протестированы различные архитектуры детекторов (включая YOLO-семейство), и выбрана наилучшая по метрикам mAP и скорости инференса.
- В качестве финального этапа модель была применена к собственному видеоролику, снятом в Долгопрудном, для демонстрации её работы в реальных условиях.
Задания по NLP были направлены на решение двух практических задач в области понимания естественного языка.
Цель: Научиться определять тональность (положительную, нейтральную или отрицательную) предложения по отношению к заранее выделенной именованной сущности (например, персоне, организации или профессии).
Решение:
- Использовались данные с соревнования RuSentNE.
- Были протестированы различные стратегии подачи данных в модель: от классического
[CLS] текст [SEP]до введения специальных токенов и постановки целевых вопросов в тексте. - В качестве архитектуры использовались предобученные русскоязычные модели (RuBERT, RuRoBERTa).
- Лучший результат был достигнут с помощью модели RuRoBERTa-large, для которой была разработана специальная схема инпута и обучения.
Цель: Обучить модель классифицировать пользовательские запросы в чат-боте по университетской тематике и затем эффективно расширить её для поддержки новых категорий запросов.
Решение:
- Был использован датасет от Новосибирского государственного университета, содержащий 142 интента.
- Сначала была обучена базовая модель на 122 интентах.
- Далее был реализован сценарий эффективного дообучения:
- Базовая модель (
RuBERT) была заморожена. - Классификатор был заменён на более мощную голову (MLP), и была добавлена поддержка новых 20 интентов.
- Также были исследованы современные методы параметрической эффективной настройки (PEFT), в частности LoRA.
- Базовая модель (
- В результате был предложен гибкий и эффективный пайплайн, позволяющий быстро интегрировать новые сценарии взаимодействия без полного переобучения всей модели.