Как я подробно объяснил в этом учебном пособии о том, как создать этот проект с объяснениями и образцами кода.
| Справочник видеофайлов | Извлеченный каталог изображений |
|---|---|
![]() | ![]() |
| Итерация над всеми видео в каталоге | Извлечение кадров (после настройки (желаемый интервал (в секундах) между извлеченными кадрами, начало после (желаемых секунд) и т. Д.) |
Video Frame Extractor - это скрипт Python, который позволяет вам извлекать кадры, итерационные по всем видеофайлам из каталога, и сохранять их в виде отдельных файлов изображений в двух разных каталогах: один для рамки исходного размера и один для кадров соответствующего размера. Сценарий использует пакеты OpenCV и Imutils Python для обработки изображений и Fire Python для упрощенного интерфейса командной строки.
Этот скрипт позволяет извлекать кадры из видео с указанной скоростью. Указав желаемый интервал (в секундах) между извлеченными кадрами, вы можете быстро генерировать большой набор данных изображений для обнаружения объектов, классификации изображений или других задач компьютерного зрения.
Для аннотации изображения часто необходимо извлечь кадры из видео. Это приложение позволяет легко генерировать большой набор данных изображений для моделей обнаружения объектов или классификации изображений, даже если ваши данные изначально находятся в форме видео.
Автоматизируя процесс извлечения кадров для итерации по всем видеофайлам внутри каталога, это приложение сохраняет ваше время и усилия по сравнению с вручную извлечения кадров из каждого видеофайла.
Надеюсь, вы найдете экстрактор видео кадры полезным для проектов компьютерного зрения!
Чтобы использовать экстрактор видео кадра, вам необходимо запустить сценарий Python frame_extractor.py со следующими аргументами:
vid_dir : путь к каталогу, содержащий видеофайл (ы), из которого вы хотите извлечь кадры.out_dir : путь к каталогу, где вы хотите сохранить извлеченные кадры.img_frmt (необязательно): формат изображения для сохранения извлеченных кадров в. По умолчанию JPG .required_frame_rate (необязательно): количество кадров для извлечения в секунду. По умолчанию 1 .start_from_seconds (необязательно): количество секунд, с которых можно начать извлечение кадров. По умолчанию 0 .Приложение будет извлекать кадры из всех видео в указанном каталоге и сохранить их в выходной каталог.
Вместо того, чтобы передавать аргументы каждый раз, когда вы запускаете это приложение, вы можете добавлять эти аргументы в файл sturts.py. настройки
python frame_extractor_multithread.py Чтобы использовать экстрактор видео кадра, вам необходимо установить Python 3 и следующие пакеты Python:
Вы можете установить эти пакеты с помощью PIP, выполнив следующую команду в вашем терминале:
pip install opencv-python imutils fire python frame_extractor . py - - help python frame_extractor . py - - vid_dir = [ vid_dir ] - - out_dir = [ out_dir ] - - img_frmt = [ img_frmt ] - - required_frame_rate = [ required_frame_rate ] - - start_from_seconds = [ start_from_seconds ] Процесс извлечения для всех видео в vid_dir запустит и извлеченные рамки будут сохранены на out_dir
Предположим, что у вас есть видеофайл с именем my_video.mp4, расположенный в каталоге/path/to/video, и вы хотите извлечь из него кадры и сохранить их в каталоге/to/output, с частотой кадров 2 кадров на один Второе и начиная с 10 секунд в видео. Вы можете запустить следующую команду:
python frame_extractor . py - - vid_dir = / path / to / video - - out_dir = / path / to / output - - required_frame_rate = 2 - - start_from_seconds = 10Скрипт извлекает кадры из my_video.mp4, сохранить исходные рамки размера в каталоге/path/to/output/ourig_size_frames и в каталоге изменений в изменении размера/path/to/output/re_size_frames. Извлеченные кадры будут сохранены в формате JPEG с именем файла формы my_video_1.jpg, my_video_2.jpg и так далее.
В качестве альтернативы вы можете отредактировать файл sturts.py, и frame_extractor.py примет аргументы отсюда.
Например:
Редактировать необходимые настройки в settings.py
# If you don't want to pass too many arguments every time you can modify the settings here.
# And the script will accept the setting from this file every time you run
# 'python extract_frames.py'
# Video file
VIDEO_DIRPATH = ROOT / 'videos' # EDIT: 1 (Required)
# Frame settings
REQUIRED_FRAME_RATE = 2 # EDIT: 2
# Number of seconds for a frame. For example: 0.5 means, 1 frame after 0.5 seconds pass
START_FROM_SECOND = 1 # EDIT: 3
# For example: 2 means, start extraction of the frames after 2 seconds of the video is passed.
REQUIRED_IMAGE_FORMAT = 'jpg' # EDIT: 4
REQUIRED_IMAGE_WIDTH = 720 # EDIT: 5
# Output frames dirpath
OUTDIR = BASE_ROOT / 'skyscraper' # EDIT: 6 (Required) Если вы обнаружите, что мой код Python полезны, подумайте о том, чтобы дать ему звезду.
Для любых проблем с приложением или иметь какие -либо отзывы или предложения для улучшения. Пожалуйста, поднимите проблему
Экстрактор видео кадров лицензирован по лицензии MIT. Смотрите файл лицензии для получения подробной информации.