Skip to content

Скачивает список видео из облака или использует локальные. Извлекает из видео кадры на которых присутствуют транспортные средства и их автомобильные номера (с использованием YOLO v8).

Notifications You must be signed in to change notification settings

AleksandrVechtomov/video-image-processor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Как пользоваться

Если необходимо скачать видеофайлы из облака, выполнить извлечение кадров и удалить в последствии скаченные видеофайлы:

Необходимо в список urls внести ссылки на видеофайлы mp4.
Настроить атрибуты экземпляра класса VideoProcessor:

  • указать is_show_bboxes=False, если не надо отрисовывать bbox-ы на извлекаемых кадрах.
  • указать шаг извлечения кадров из видео в stride_frame.
  • указать is_download_videos=True для получения видеофайлов по ссылкам из облака.
  • указать is_processing=True для активации извлечения кадров.
  • указать is_delete_video=True для последующего удаления скачанных ранее видеофайлов.

Метод process.run() запускает процесс скачивания, обработки и извлечения кадров, удаления скачанного видео.

urls = ['https://cloud.com/videofile-1.mp4', 'https://cloud.com/videofile-2.mp4']

process = VideoProcessor(urls_list=urls,
                         polygons_dict=polygons,
                         confidence=0.4,
                         is_show_bboxes=False,
                         stride_frame=2,
                         is_download_videos=True,
                         is_processing=True,
                         is_delete_video=True)

process.run()

Если необходимо использовать локальные видеофайлы и выполнить извлечение кадров:

Необходимо положить видеофайлы mp4 в папку проекта Source_video. Настроить атрибуты экземпляра класса VideoProcessor:

  • указать is_show_bboxes=False, если не надо отрисовывать bbox-ы на извлекаемых кадрах.
  • указать шаг извлечения кадров из видео в stride_frame.
  • указать is_download_videos=False для получения видеофайлов из локальной папки Source_video.
  • указать is_processing=True для активации извлечения кадров.
  • указать is_delete_video=False для запрета удаления видеофайлов из папки Source_video.

Метод process.run() запускает процесс обработки и извлечения кадров из локальной папки Source_video.

process = VideoProcessor(urls_list=urls,
                         polygons_dict=polygons,
                         confidence=0.4,
                         is_show_bboxes=False,
                         stride_frame=2,
                         is_download_videos=False,
                         is_processing=True,
                         is_delete_video=False)

process.run()

Алгоритм работы программы:

  1. Пользователь указывает список ссылок в переменной urls по которым необходимо выполнить скачивание видеофайлов mp4 из облака или складывает свои видеофайлы в папку Source_video.
  2. Настраивает атрибуты экземпляра класса VideoProcessor в зависимости от необходимых задач.
  3. Запускает код программы main.py.
  4. Скачивается первое видео в папку Sourse_video или используется первое видео из папки Sourse_video в зависимости от настройки.
  5. Из названия файла определяется номер камеры.
  6. В зависимости от номера камеры применяется нужная зона интереса для данного видео.
  7. Происходит извлечение необходимых кадров (на которых присутствует транспорт в зоне интереса, а также присутствует автомобильный номер в зоне интереса) в папку Out_frames в формате jpg. Если движения автомобиля не происходит по сравнению с предыдущим кадром, то такие кадры не извлекаются.
  8. Скачанное ранее видео удаляется из папки Sourse_video.
  9. Происходит скачивание следующего видео из списка urls или использование следующего видео из папки Sourse_video.
  10. Цикл продолжается до последнего видео из списка urls или из папки Sourse_video.

Результат работы программы (в терминале):

Результат работы программы (выходные файлы):

Результат работы программы (пример кадра с автомобилем и его номером в зоне интереса):

Программа работает с камерами:

  • 10.121.15.247
  • 10.121.15.248
  • 10.121.15.249
  • 10.121.15.252

Вид с камер:

Вид с камер с зонами интереса (полигоны):

Установка:

  1. Клонируйте репозиторий себе на компьютер
  2. Откройте папку проекта в любой IDE. Убедитесь, что в терминале вы находитесь в папке проекта
  3. Создайте виртуальное окружение
python -m venv venv
  1. Перейдите в виртуальное окружение и активируйте его
venv\Scripts\activate
  1. Установите все необходимые библиотеки
pip install -r requirements.txt
  1. Запустите код на выполнение
python main.py

About

Скачивает список видео из облака или использует локальные. Извлекает из видео кадры на которых присутствуют транспортные средства и их автомобильные номера (с использованием YOLO v8).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages