Como expliquei em detalhes neste tutorial do blog sobre como criar este projeto com explicações e amostras de código.
| Diretório de arquivos de vídeo | Diretório de imagens extraído |
|---|---|
![]() | ![]() |
| Itera sobre todos os vídeos dentro de um diretório | Extrair quadros (após a personalização (intervalo desejado (em segundos) entre os quadros extraídos, comece depois (segundos desejados) etc. |
O extrator de quadro de vídeo é um script python que permite extrair quadros que iterarem todos os arquivos de vídeo de um diretório e salve -os como arquivos de imagem individuais em dois diretórios diferentes: um para os quadros de tamanho original e outro para os quadros redimensionados. O script usa pacotes OpenCV e Imutils Python para processamento de imagens e pacote Python para uma interface simplificada da linha de comando.
Este script permite extrair quadros de vídeos a uma taxa especificada. Ao especificar o intervalo desejado (em segundos) entre os quadros extraídos, você pode gerar rapidamente um grande conjunto de dados de imagens para detecção de objetos, classificação de imagens ou outras tarefas de visão computacional.
Para anotação de imagem, geralmente é necessário extrair quadros de vídeos. Este aplicativo facilita a geração de um grande conjunto de dados de imagens para treinamento de detecção de objetos ou modelos de classificação de imagens, mesmo que seus dados estejam inicialmente na forma de vídeos.
Ao automatizar o processo de extração de quadros para iterar todos os arquivos de vídeo dentro de um diretório, este aplicativo economiza tempo e esforço em comparação com a extração manual de quadros de cada arquivo de vídeo.
Espero que você ache o extrator de quadro de vídeo útil para seus projetos de visão computacional!
Para usar o extrator de quadro de vídeo, você precisa executar o script python frame_extractor.py com os seguintes argumentos:
vid_dir : O caminho para o diretório que contém os arquivos de vídeo da qual você deseja extrair quadros.out_dir : o caminho para o diretório onde você deseja salvar os quadros extraídos.img_frmt (opcional): o formato da imagem para salvar os quadros extraídos em. O padrão é jpg .required_frame_rate (opcional): o número de quadros para extrair por segundo. O padrão é 1 .start_from_seconds (opcional): o número de segundos para começar a extrair quadros. O padrão é 0 .O aplicativo extrairá quadros de todos os vídeos no diretório especificado e os salvará no diretório de saída.
Em vez de passar os argumentos toda vez que você executar este aplicativo, você pode adicionar esses argumentos dentro do arquivo Settings.py. configurações
python frame_extractor_multithread.py Para usar o extrator de quadro de vídeo, você precisa ter o Python 3 e os seguintes pacotes Python instalados:
Você pode instalar esses pacotes usando o PIP, executando o seguinte comando em seu terminal:
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 ] O processo de extração para todos os vídeos no vid_dir começará e os quadros extraídos serão salvos no out_dir
Suponha que você tenha um arquivo de vídeo chamado my_video.mp4 localizado no diretório/path/to/video, e deseja extrair quadros dele e salvá -los no diretório/path/to/de saída, com uma taxa de quadros de 2 quadros por segundo e começando de 10 segundos no vídeo. Você pode executar o seguinte comando:
python frame_extractor . py - - vid_dir = / path / to / video - - out_dir = / path / to / output - - required_frame_rate = 2 - - start_from_seconds = 10O script extrairá os quadros de my_video.mp4, salve os quadros de tamanho original em/path/para/output/orig_size_frames diretório e os quadros redimensionados em/path/to/output/re_size_frames. Os quadros extraídos serão salvos no formato JPEG, com um nome de arquivo do formulário my_video_1.jpg, my_video_2.jpg e assim por diante.
Como alternativa, você pode editar o arquivo Settings.py e o frame_extractor.py aceitará os argumentos daqui.
Por exemplo:
Edite as configurações necessárias nas 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) Se você achar útil meu código Python, considere dar -lhe uma estrela.
Para qualquer problema com o aplicativo ou tenha feedback ou sugestões de melhoria. Por favor, levante um problema
O extrator de quadro de vídeo está licenciado sob a licença do MIT. Consulte o arquivo de licença para obter detalhes.