Skip to content

Repository files navigation

Система проверки товаров в видео

Описание

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

Функциональность

  • Анализ видеофайлов с извлечением ключевых кадров
  • Обнаружение объектов на видео с использованием YOLO
  • Сравнение обнаруженных объектов с изображениями товаров
  • Определение таймкодов, на которых найдены товары
  • Поддержка различных категорий товаров с настраиваемыми параметрами
  • Веб-интерфейс для удобного использования

Требования

  • Python 3.8 или выше
  • PyTorch
  • Ultralytics YOLO
  • PyWebIO
  • OpenCV
  • PIL (Pillow)
  • Scikit-learn
  • ffmpeg (для скачивания и обработки видео)

Установка

1. Клонирование репозитория

git clone https://github.com/ваш-репозиторий/система-проверки-товаров.git

2. Установка зависимостей

pip install -r requirements.txt
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126

Также нужно скачать ffmpeg (https://www.ffmpeg.org/) и добавить его в PATH

3. Скачивание моделей

Система автоматически скачивает и использует модели YOLO и EfficientNet. Модель YOLO (yolo11n.pt) должна находиться в корневой директории проекта.

Использование

Запуск через веб-интерфейс

Самый простой способ использования - запустить веб-интерфейс через скрипт start_app.bat (Windows) или вручную запустить:

python app.py

После запуска откроется браузер с веб-интерфейсом:

  1. Выберите папку с данными, содержащую videos.json и подпапки с изображениями
  2. Дождитесь загрузки моделей (индикатор покажет прогресс)
  3. Введите индекс записи для проверки или используйте пакетную проверку

Структура данных

Система ожидает следующую структуру данных:

  • videos.json - содержит информацию о видео и товарах
  • Папки с изображениями товаров:
    • images_1/{id} - основные изображения
    • images_2-3/{id} - дополнительные изображения
    • images_4-5/{id} - дополнительные изображения

Запуск через командную строку

Также можно использовать командную строку для проверки:

python test_comparison.py --index 0 --data path/to/data --debug

Параметры:

  • --index - индекс записи в JSON-файле (по умолчанию 0)
  • --data - путь к папке с данными
  • --debug - включить режим отладки (сохранение промежуточных результатов)
  • --threshold - пользовательский порог сходства (от 0.0 до 1.0)

Принцип работы

  1. Загрузка моделей:

    • YOLO для обнаружения объектов на видео и изображениях
    • EfficientNet для извлечения признаков и сравнения
  2. Обработка видео:

    • Извлечение кадров с заданной частотой
    • Обнаружение объектов на каждом кадре
    • Извлечение признаков для каждого объекта
  3. Обработка изображений товаров:

    • Анализ изображений товаров с помощью YOLO
    • Извлечение признаков товаров
  4. Сравнение:

    • Сравнение признаков товаров с признаками объектов на видео
    • Определение сходства с использованием косинусной меры
    • Фильтрация результатов по порогу сходства
  5. Вывод результатов:

    • Отображение найденных совпадений с таймкодами
    • Визуализация результатов в веб-интерфейсе

Настройка

Пороги сходства по категориям

В файле test_comparison.py можно настраивать порог сходства:

Другие параметры

  • CONFIDENCE_THRESHOLD - порог уверенности для YOLO (по умолчанию 0.25)
  • IOU_THRESHOLD - порог IoU для NMS (по умолчанию 0.45)
  • FRAME_RATE - частота извлечения кадров (кадров в секунду)

Устранение неполадок

Проблемы с GPU

Если у вас возникают проблемы с использованием GPU:

  • Проверьте установку CUDA и PyTorch с поддержкой CUDA
  • Используйте функцию clear_cuda в веб-интерфейсе для очистки кэша CUDA
  • При нехватке памяти GPU уменьшите параметр MAX_IMAGE_SIZE

Ошибки при скачивании видео

Для корректной работы скачивания видео убедитесь, что:

  • ffmpeg установлен и доступен в PATH или в папке проекта
  • Есть доступ к URL видео
  • Достаточно свободного места на диске

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages