Skip to content

Repository files navigation

Микросервис для обнаружения дубликатов видео: Описание проекта

Введение

На платформе коротких видео Yappy одной из ключевых проблем является определение дубликатов видео, которые могут нарушать авторские права, снижать охват оригинальных роликов и ухудшать пользовательский опыт. С учетом огромного количества ежедневно загружаемых видео, ручная проверка на дубли становится непосильной задачей. Сложность проблемы увеличивается из-за большого разнообразия способов, с помощью которых контент может быть модифицирован.

Задача данного проекта — разработать AI-микросервис, который автоматически будет определять дубликаты загружаемых видео. Основная цель — создать систему, которая анализирует новые видео, сравнивает их с базой уже загруженных видеороликов и эффективно находит дубли, даже если они были слегка изменены.

Этот микросервис включает базу данных для хранения обработанных видео, API для проверки новых роликов и алгоритмы глубокого анализа видеоконтента и аудио.

Навигация по проекту

  • preparatory.py: Здесь выполняются подготовительные этапы проекта: обзор данныз, построение базовых моделей для последующего использования и составления данных для обучения одной из моделей
  • process_test.py: Модуль с функциями для загрузки моделей, извлечения признаков и выполнения преобразований видео и аудио, предсказание тестовых данных.
  • requirements.txt: Список всех необходимых библиотек и зависимостей, необходимых для работы проекта.

Краткое руководство по проекту:

  1. Установка зависимостей:
    pip install -r requirements.txt

Основные особенности решения

Масштабируемая система построения эмбеддингов:

  • Для каждого видео в базе данных извлекаются эмбеддинги с помощью модели InceptionV3. Это создает уникальное векторное представление каждого видео, отражающее его ключевые визуальные характеристики.

  • Эмбеддинги усредняются по кадрам, формируя представительный вектор для видео, который сохраняется в базе данных. Эффективный поиск ближайших соседей с KNN:

  • Для сравнения новых видео используется алгоритм KNN (метод k ближайших соседей). Он быстро находит наиболее похожие видео (обычно 3-5) на основе эмбеддингов.

Мультимодальное сравнение признаков:

  • Для каждого найденного похожего видео используются дополнительные модели, такие как ResNet, U-Net, MoViNet, а также хеширование изображений и преобразование Фурье для аудио.

  • Эти модели усиливают точность сравнения, позволяя учитывать не только общие визуальные признаки, но и мелкие детали изображения и звуковые характеристики. Логистическая регрессия для мультимодальных признаков:

  • Система использует логистическую регрессию для комбинирования выходных данных нескольких моделей для каждой пары видео (новое видео и его "соседи").

  • Признаки, полученные из 6 разных моделей (включая преобразованное аудио), объединяются в единый вектор, и регрессия возвращает вероятность того, что видео является дубликатом.

Предобработка и извлечение эмбеддингов:

  • Видео последовательно поступают в процесс предобработки.

  • Извлекаются ключевые признаки с помощью различных моделей, таких как InceptionV3, и преобразуются в вектор фиксированного размера для дальнейшего сравнения. Обнаружение дубликатов:

  • После извлечения эмбеддингов система применяет KNN для поиска 3-5 наиболее похожих видео в базе данных. Эти видео подвергаются дополнительной проверке.

  • Логистическая регрессия определяет финальный результат, является ли видео дубликатом.

Принятие решения:

  • Если видео классифицируется как дубликат, оно отбрасывается. В противном случае оно помечается как оригинальное и сохраняется в базу данных для дальнейших сравнений.

Описание этапов

  1. Построение эмбеддингов: С помощью модели InceptionV3 извлекаются признаки из каждого кадра видео. Эти эмбеддинги усредняются, формируя вектор, представляющий все видео.
  2. Поиск ближайших соседей (KNN): Алгоритм KNN находит самые похожие видео в базе данных по вектору эмбеддингов.
  3. Мультимодальное сравнение: Модели, такие как ResNet, U-Net, MoViNet, а также методы хеширования изображений и преобразования Фурье для аудио, помогают глубже анализировать видео. Это позволяет находить дубликаты даже при значительных модификациях оригинального контента.
  4. Логистическая регрессия: Вектор признаков, полученный от различных моделей, объединяется в один. Логистическая регрессия предсказывает вероятность того, что видео является дубликатом.

Заключение

В условиях стремительно растущего потока видео на платформе Yappy, автоматизация поиска дубликатов становится жизненно важной. Разработанное решение предоставляет эффективный, надежный и гибкий инструмент для выявления копий, интегрируя сразу несколько подходов к анализу видео- и аудиоконтента. Благодаря использованию таких моделей, как ResNet, Inception, U-Net и MoviNet, а также методов обработки звука и хеширования изображений, наш микросервис не просто находит схожие видео — он делает это с высокой степенью точности и гибкости.

Построенный процесс, начиная от извлечения эмбеддингов и сравнения с ближайшими соседями, до окончательной логистической регрессии на основе многоуровневого анализа, позволяет системе работать эффективно даже в условиях большого объема данных и сложности проверяемого контента. За счет комбинирования различных методов и моделей наше решение способно распознать дубликаты, которые могут отличаться визуально или содержать модифицированные элементы.

Ключевое преимущество этого подхода — его универсальность и масштабируемость. Это решение не только справляется с актуальными задачами поиска дубликатов, но и способно адаптироваться к будущим вызовам, будь то новые форматы видео или изменения в пользовательских паттернах создания контента.

Данный сервис — это шаг к упрощению процесса модерации и защите оригинального контента на платформе, что, в конечном итоге, улучшает пользовательский опыт и поддерживает здоровую экосистему контента.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages