このブログのチュートリアルで詳細に説明したように、説明とコードサンプルを使用してこのプロジェクトを構築する方法について説明しました。
| ビデオファイルディレクトリ | 抽出された画像ディレクトリ |
|---|---|
![]() | ![]() |
| ディレクトリ内のすべてのビデオを反復します | 抽出フレーム(抽出されたフレーム間のカスタマイズ後(秒単位)、開始(望ましい秒)など) |
ビデオフレーム抽出器は、ディレクトリからすべてのビデオファイルを反復するフレームを抽出し、2つの異なるディレクトリの個々の画像ファイルとして保存できるPythonスクリプトです。スクリプトは、画像処理にPythonパッケージとImutils Pythonパッケージを使用し、単純化されたコマンドラインインターフェイスにFire Pythonパッケージを使用します。
このスクリプトを使用すると、指定されたレートでビデオからフレームを抽出できます。抽出されたフレーム間で目的の間隔(秒単位)を指定することにより、オブジェクト検出、画像分類、またはその他のコンピュータービジョンタスクのために、画像の大きなデータセットをすばやく生成できます。
画像アノテーションの場合、ビデオからフレームを抽出する必要があることがよくあります。このアプリケーションにより、データが最初にビデオの形式であっても、オブジェクトの検出または画像分類モデルをトレーニングするための画像の大きなデータセットを簡単に生成できます。
ディレクトリ内のすべてのビデオファイルを反復するためのフレーム抽出プロセスを自動化することにより、このアプリは、各ビデオファイルからフレームを手動で抽出するのと比較して時間と労力を節約します。
ビデオフレーム抽出器がコンピュータービジョンプロジェクトに役立つと思うことを願っています!
ビデオフレーム抽出器を使用するには、次の引数を使用してframe_extractor.py pythonスクリプトを実行する必要があります。
vid_dir :フレームを抽出するビデオファイルを含むディレクトリへのパス。out_dir :抽出されたフレームを保存するディレクトリへのパス。img_frmt (オプション):抽出されたフレームを保存するための画像形式。デフォルトはJPGです。required_frame_rate (オプション):1秒あたり抽出するフレームの数。デフォルトは1です。start_from_seconds (オプション):フレームの抽出を開始するための秒数。デフォルトは0です。アプリは、指定されたディレクトリ内のすべてのビデオからフレームを抽出し、それらを出力ディレクトリに保存します。
このアプリを実行するたびに引数を渡す代わりに、settings.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に保存されます
/path/to/videoディレクトリにあるmy_video.mp4というビデオファイルがあり、それからフレームを抽出して/path/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/orig_size_framesディレクトリに保存し、/path/to/output/re_size_framesディレクトリでサイズ変更されたフレームを保存します。抽出されたフレームは、jpeg形式で保存され、my_video_1.jpg、my_video_2.jpgなどのファイル名があります。
または、settings.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ライセンスの下でライセンスされています。詳細については、ライセンスファイルを参照してください。