Skip to content

Этот проект представляет собой микросервис для автоматического обнаружения дубликатов видео на платформе Yappy. Он использует мощные алгоритмы анализа контента на основе эмбеддингов, KNN, а также комбинацию моделей (ResNet, Inception, U-Net, MoviNet) и методов обработки аудио и видео, что позволяет эффективно выявлять схожие видео

License

Notifications You must be signed in to change notification settings

KirillKlem/CU_in_ML

Repository files navigation

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

Введение

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

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

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

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

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

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

  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

Этот проект представляет собой микросервис для автоматического обнаружения дубликатов видео на платформе Yappy. Он использует мощные алгоритмы анализа контента на основе эмбеддингов, KNN, а также комбинацию моделей (ResNet, Inception, U-Net, MoviNet) и методов обработки аудио и видео, что позволяет эффективно выявлять схожие видео

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published