Конвейер для сегментации мультимодальных телешоу
Привет, с возвращением! Если вы еще не читали вступительную статью, основанную на периоде общения с сообществом, я настоятельно рекомендую вам сделать это, прежде чем продолжить.
На прошлой неделе я завершил первый этап конвейера мультимодальной сегментации телешоу (mtvss). На этом этапе создается CSV-файл с классификационной меткой (последовательность рекламы/заголовка), временем начала, временем окончания и достоверностью прогноза. Теперь, переходя ко второму этапу, я буду хранить функции, извлеченные из этих изображений ключевых кадров последовательности заголовков, используя существующую модель ResNet50V2. Затем я сгруппирую эти функции с помощью RNN-DBSCAN.
Цели на неделю
- Продолжайте выполнять конвейер stage-1 для извлечения последовательностей заголовков.
- Сконфигурируйте и настройте новую изолированную базу кода для этапа 2.
- Извлеките функции изображения и сохраните их в виде файла .npy.
Работа выполнена
Продолжая работать над этапом 2 пайплайна, я постарался изолировать существующую рабочую версию пайплайна, чтобы изменения, которые я продолжаю вносить, не конфликтовали с рабочей версией. Эта изоляция необходима не только для того, чтобы избежать ошибок, но и помогает сделать базу кода более модульной. Это открывает много возможностей для дальнейших улучшений в будущем.
Текущая древовидная структура моего проекта выглядит так:
├── mtvss │ ├── annotation │ ├── constants.py │ ├── data │ ├── data_raw.py │ ├── __init__.py │ ├── pipeline_stage1 │ ├── pipeline_stage2 │ └── __pycache__
Где pipe_stage1 и 2 — это каталоги, в которых есть скрипты Python, которые работают независимо друг от друга.
│ ├── pipeline_stage1 │ │ ├── data.py │ │ ├── __init__.py │ │ ├── model.py │ │ ├── PretrainedResNet50V2.py │ │ ├── __pycache__ │ │ └── run_pipeline_stage1.py │ ├── pipeline_stage2 │ │ ├── data.py │ │ ├── __init__.py │ │ ├── model.py │ │ └── run_pipeline_stage2.py
Хотя я использую одни и те же соглашения об именах для файлов, что может немного сбивать с толку, это показывает, насколько похожи две стадии в том, как они структурированы.
Двигаясь дальше, входные данные для этапа 2 пайплайна — это объекты изображения размером (#imgs, 2048).
. Чтобы быстро напомнить, эти выходные данные извлекаются из слоя глобального среднего пула. Архитектура модели еще раз показана ниже.
Заключение
В целом прогресс был довольно медленным на этой неделе из-за чрезвычайной ситуации в семье. Тем не менее, я смог составить осуществимый план на вторую половину GSoC. Разрешив существующий код этапа 1 в фоновом режиме, я смог увеличить количество обрабатываемых файлов категории 1 до чуть менее 50% (~ 5000 файлов). В то же время я работал над извлечением и сохранением изображений последовательности заголовков в двоичном формате.
На следующей неделе я надеюсь заняться реализацией RNN-DBSCAN и хотел бы изучить и проанализировать результаты, полученные на этапе 1, чтобы увидеть, как они повлияют на производительность этапа кластеризации.