На платформе коротких видео Yappy одной из ключевых проблем является определение дубликатов видео, которые могут нарушать авторские права, снижать охват оригинальных роликов и ухудшать пользовательский опыт. С учетом огромного количества ежедневно загружаемых видео, ручная проверка на дубли становится непосильной задачей. Сложность проблемы увеличивается из-за большого разнообразия способов, с помощью которых контент может быть модифицирован.
Задача данного проекта — разработать AI-микросервис, который автоматически будет определять дубликаты загружаемых видео. Основная цель — создать систему, которая анализирует новые видео, сравнивает их с базой уже загруженных видеороликов и эффективно находит дубли, даже если они были слегка изменены.
Этот микросервис включает базу данных для хранения обработанных видео, API для проверки новых роликов и алгоритмы глубокого анализа видеоконтента и аудио.
- preparatory.py: Здесь выполняются подготовительные этапы проекта: обзор данныз, построение базовых моделей для последующего использования и составления данных для обучения одной из моделей
- process_test.py: Модуль с функциями для загрузки моделей, извлечения признаков и выполнения преобразований видео и аудио, предсказание тестовых данных.
- requirements.txt: Список всех необходимых библиотек и зависимостей, необходимых для работы проекта.
- notebooks: Папка с изначальными ноутбуками, где ещё код по большей части не структурирован
- README.md: Описание проекта и его функционала, включая установку и краткое руководство по использованию.
- Установка зависимостей:
pip install -r requirements.txt
-
Для каждого видео в базе данных извлекаются эмбеддинги с помощью модели InceptionV3. Это создает уникальное векторное представление каждого видео, отражающее его ключевые визуальные характеристики.
-
Эмбеддинги усредняются по кадрам, формируя представительный вектор для видео, который сохраняется в базе данных. Эффективный поиск ближайших соседей с KNN:
-
Для сравнения новых видео используется алгоритм KNN (метод k ближайших соседей). Он быстро находит наиболее похожие видео (обычно 3-5) на основе эмбеддингов.
-
Для каждого найденного похожего видео используются дополнительные модели, такие как ResNet, U-Net, MoViNet, а также хеширование изображений и преобразование Фурье для аудио.
-
Эти модели усиливают точность сравнения, позволяя учитывать не только общие визуальные признаки, но и мелкие детали изображения и звуковые характеристики. Логистическая регрессия для мультимодальных признаков:
-
Система использует логистическую регрессию для комбинирования выходных данных нескольких моделей для каждой пары видео (новое видео и его "соседи").
-
Признаки, полученные из 6 разных моделей (включая преобразованное аудио), объединяются в единый вектор, и регрессия возвращает вероятность того, что видео является дубликатом.
-
Видео последовательно поступают в процесс предобработки.
-
Извлекаются ключевые признаки с помощью различных моделей, таких как InceptionV3, и преобразуются в вектор фиксированного размера для дальнейшего сравнения. Обнаружение дубликатов:
-
После извлечения эмбеддингов система применяет KNN для поиска 3-5 наиболее похожих видео в базе данных. Эти видео подвергаются дополнительной проверке.
-
Логистическая регрессия определяет финальный результат, является ли видео дубликатом.
- Если видео классифицируется как дубликат, оно отбрасывается. В противном случае оно помечается как оригинальное и сохраняется в базу данных для дальнейших сравнений.
- Построение эмбеддингов: С помощью модели InceptionV3 извлекаются признаки из каждого кадра видео. Эти эмбеддинги усредняются, формируя вектор, представляющий все видео.
- Поиск ближайших соседей (KNN): Алгоритм KNN находит самые похожие видео в базе данных по вектору эмбеддингов.
- Мультимодальное сравнение: Модели, такие как ResNet, U-Net, MoViNet, а также методы хеширования изображений и преобразования Фурье для аудио, помогают глубже анализировать видео. Это позволяет находить дубликаты даже при значительных модификациях оригинального контента.
- Логистическая регрессия: Вектор признаков, полученный от различных моделей, объединяется в один. Логистическая регрессия предсказывает вероятность того, что видео является дубликатом.
В условиях стремительно растущего потока видео на платформе Yappy, автоматизация поиска дубликатов становится жизненно важной. Разработанное решение предоставляет эффективный, надежный и гибкий инструмент для выявления копий, интегрируя сразу несколько подходов к анализу видео- и аудиоконтента. Благодаря использованию таких моделей, как ResNet, Inception, U-Net и MoviNet, а также методов обработки звука и хеширования изображений, наш микросервис не просто находит схожие видео — он делает это с высокой степенью точности и гибкости.
Построенный процесс, начиная от извлечения эмбеддингов и сравнения с ближайшими соседями, до окончательной логистической регрессии на основе многоуровневого анализа, позволяет системе работать эффективно даже в условиях большого объема данных и сложности проверяемого контента. За счет комбинирования различных методов и моделей наше решение способно распознать дубликаты, которые могут отличаться визуально или содержать модифицированные элементы.
Ключевое преимущество этого подхода — его универсальность и масштабируемость. Это решение не только справляется с актуальными задачами поиска дубликатов, но и способно адаптироваться к будущим вызовам, будь то новые форматы видео или изменения в пользовательских паттернах создания контента.
Данный сервис — это шаг к упрощению процесса модерации и защите оригинального контента на платформе, что, в конечном итоге, улучшает пользовательский опыт и поддерживает здоровую экосистему контента.