OmniView - это продвинутое приложение для просмотра и записи видео, которое включает такие функции, как обнаружение объектов в реальном времени и создание скриншотов. Этот проект использует библиотеку OpenCV для подключения камеры и обработки видео, обеспечивая плавные и высококачественные видео потоки. Интеграция Darknet API предлагает продвинутые возможности обнаружения объектов, позволяя в реальном времени идентифицировать и отслеживать различные объекты в видеопотоке.
-
Обнаружение камер 📷: Автоматически определяет и отображает подключенные камеры. Эта функция использует OpenCV для сканирования всех доступных видеоустройств и добавляет обнаруженные камеры в список для выбора пользователем, исключая необходимость ручного поиска устройств.
-
Просмотр потокового видео 📺: Просматривайте видео поток в режиме реального времени с выбранной камеры. Приложение использует Tkinter и OpenCV для отображения видеопотока непосредственно в пользовательском интерфейсе, позволяя пользователям беспрепятственно мониторить видео.
-
Запись видео 🎥: Записывайте видеопотоки в файл одним нажатием кнопки. Запись можно начинать и останавливать в любое время, а результирующий видеофайл сохраняется для последующего просмотра или анализа. Приложение использует кодек XVID для записи с автоматическими настройками частоты кадров и разрешения.
-
Обнаружение объектов 🕵️♂️: Использует модель YOLOv3 для обнаружения объектов в видеопотоке в реальном времени. Эта модель выделяет различные типы объектов (например, людей, машины, животных) и отображает их с соответствующими метками и уровнями уверенности, что облегчает идентификацию и отслеживание объектов в кадре.
-
Создание скриншотов 📸: Делайте высококачественные скриншоты и сохраняйте их в нужной папке. Эта функция идеально подходит для захвата важных моментов или использования кадров для дальнейшего анализа. Приложение автоматически создает папку в домашнем каталоге пользователя для хранения скриншотов, если она еще не существует.
Для начала работы с OmniView выполните следующие шаги:
- Убедитесь, что у вас установлен Python 3.10 или выше.
- Клонируйте репозиторий:
git clone https://github.com/Solrikk/OmniView.git cd OmniView
- Установите зависимости с помощью Poetry:
poetry install
Следуйте этим простым шагам для использования OmniView:
- Запустите приложение:
poetry run python main.py
- Выберите камеру из предоставленного списка и нажмите "View Camera" для начала просмотра видео.
- Используйте доступные кнопки для начала или остановки записи видео, создания скриншотов и включения обнаружения объектов.
OmniView использует следующие библиотеки и инструменты:
-
Python 3.10 и выше: Приложение требует Python 3.10 или выше для использования последних возможностей языка и совместимости с современными библиотеками.
-
tkinter: Для создания пользовательского интерфейса. tkinter - это встроенный GUI-инструментарий для Python, который предоставляет простой способ создания окон, диалогов, кнопок и других элементов интерфейса.
-
OpenCV: Для управления подключениями камеры и обработки видео. OpenCV - это программная библиотека для компьютерного зрения и машинного обучения с открытым исходным кодом, широко используемая для приложений реального времени. Она позволяет захватывать видео с камер, видеофайлов и даже сетевых потоков.
-
NumPy: Необходимо для работы с массивами данных. NumPy - это фундаментальный пакет для научных вычислений на Python, предлагающий мощные возможности обработки массивов. Она широко используется для обработки изображений и выполнения математических операций, требуемых для обнаружения объектов.
-
Pillow: Используется для задач обработки изображений. Pillow - это форк библиотеки Python Imaging Library (PIL), который добавляет простые в использовании возможности обработки изображений в ваш интерпретатор Python. Она позволяет открывать, манипулировать и сохранять файлы изображений многих форматов.
-
Poetry: Эффективно управляет зависимостями проекта. Poetry - это инструмент для управления зависимостями и пакетированием в Python. Он помогает декларировать библиотеки проекта, обеспечивает совместимость зависимостей и упрощает создание и активацию виртуальной среды.