Skip to content

playa69/video_indexer

Repository files navigation

Сервис текстового поиска по медиаконтенту Yappy

Пример реализации текстового поиска по медиаконтенту в рамках ЛЦТ2024, задача 15.

REST API / Usage

Сервис не всегда онлайн. Перед тестированием просьба связаться через организаторов, для поднятия сервиса. Заранее спасибо. Фронт

Поиск видео по текстовому запросу

GET http://176.123.161.67/api/search

Python3

import requests
payload = {'query': 'dogs'}
response = requests.get('http://176.123.161.67/api/search', params=payload)

Bash

curl "http://176.123.161.67/api/search?query=dogs"

Индексация видео

POST http://176.123.161.67/api/index

Python3

import requests
payload = {'link': url, 'description': description}
response = requests.post('http://176.123.161.67/api/index', json=payload)

Bash

curl --header "Content-Type: application/json" \
  --request POST \
  --data '{"link":"url","description":"description"}' \
  "http://176.123.161.67/api/index"

Статус индексации

GET http://176.123.161.67/workers

Description

Описание задачи и доступные вводные

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

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

Input:

  • Набор видеофрагментов. Около 400к видео с описанием.

Ouput:

  • ML алгоритм позволяющий индексировать и осуществлять поиск по медиаконтенту.
  • Backend часть, позволяющая ускорить, дополнить и сделать алгоритм доступным.

Как мы решали эту задачу

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

Более подробное описание нашего решения можно найти в документации и презентации проекта.

Project structure

.
.
├── Dockerfile                 # Конфигурация для контейнера Docker
├── README.md                  # Описание проекта
├── app.py                     # Основной файл приложения
├── backend.py                 # Логика backend части приложения
├── docker-compose.yml         # Конфигурация для Docker Compose
├── models_loader.py           # Загрузка и инициализация моделей
├── requirements.txt           # Список зависимостей
├── setup.py                   # Настройки проекта
├── test.py                    # Тесты для функционала
├── text_summary.py            # Скрипт для суммаризации текста
├── conf                       # Конфигурации для Celery, Nginx, Flower
├── core                       # Основная логика проекта
│   ├── ocr                    # Модуль для распознавания текста на кадрах
│   ├── text_cleanup           # Модуль для суммаризации текста
├── junk                       # Вспомогательные файлы, наработки
├── storage                    # Модуль для работы с векторной базой данных
├── tasks                      # Логика обработчиков запросов, обработка ruCLIP
├── upload_video               # Пример индексации видео
└── Документация               # Документация и презентации проекта

Installation

docker compose up

Roadmap

Смотреть предложения по доработке в документации и презентации проекта.

Authors

  • Александр Валясин tg - Data Engineer, Data Scientist
  • Кирилл Богатырёв tg - Backend developer
  • Богдан Онищенко tg - Data Scientist
  • Никита Молчанов tg - Data Scientist
  • Денис Самаркин tg - Data Engineer, Data Scientist

About

Веб-сервис поиска видео по его содержимому

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors