كما أوضحت بالتفاصيل في هذا البرنامج التعليمي للمدونة حول كيفية بناء هذا المشروع مع تفسيرات وعينات رمز.
| دليل ملفات الفيديو | دليل الصور المستخرجة |
|---|---|
![]() | ![]() |
| تكرار على جميع مقاطع الفيديو داخل الدليل | إطارات الاستخراج (بعد التخصيص (الفاصل الزمني المطلوب (بالثواني) بين الإطارات المستخرجة ، ابدأ بعد (الثواني المطلوبة) وما إلى ذلك) |
مستخرج إطار الفيديو هو برنامج نصي Python يتيح لك استخراج الإطارات التي تكرر جميع ملفات الفيديو من دليل وحفظها كملفات صور فردية في دليلين مختلفين: واحد للإطارات الأصلية والآخر للإطارات المغيضة. يستخدم البرنامج النصي حزم OpenCV و ImuTils Python لمعالجة الصور وحزمة Python Fire لواجهة سطر أوامر مبسطة.
يتيح لك هذا البرنامج النصي استخراج الإطارات من مقاطع الفيديو بمعدل محدد. من خلال تحديد الفاصل الزمني المطلوب (بالثواني) بين الإطارات المستخرجة ، يمكنك إنشاء مجموعة بيانات كبيرة من الصور للكشف عن الكائنات أو تصنيف الصور أو مهام رؤية الكمبيوتر الأخرى بسرعة.
بالنسبة لشرح الصور ، من الضروري في كثير من الأحيان استخراج الإطارات من مقاطع الفيديو. يجعل هذا التطبيق من السهل إنشاء مجموعة بيانات كبيرة من الصور لتدريب نماذج اكتشاف الكائنات أو تصنيف الصور ، حتى لو كانت بياناتك في البداية في شكل مقاطع فيديو.
من خلال أتمتة عملية استخراج الإطار للتكرار على جميع ملفات الفيديو داخل الدليل ، يوفر لك هذا التطبيق الوقت والجهد مقارنة باستخراج الإطارات يدويًا من كل ملف فيديو.
آمل أن تجد مستخرج إطار الفيديو مفيدًا لمشاريع رؤية الكمبيوتر الخاصة بك!
لاستخدام مستخرج إطار الفيديو ، تحتاج إلى تشغيل البرنامج النصي python frame_extractor.py مع الوسائط التالية:
vid_dir : المسار إلى الدليل الذي يحتوي على ملف (ملفات) الفيديو التي تريد استخراج الإطارات منها.out_dir : المسار إلى الدليل حيث تريد حفظ الإطارات المستخرجة.img_frmt (اختياري): تنسيق الصورة لحفظ الإطارات المستخرجة في. الافتراضي هو JPG .required_frame_rate (اختياري): عدد الإطارات المراد استخلاصها في الثانية. الافتراضي هو 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
افترض أن لديك ملف فيديو يسمى my_video.mp4 الموجود في دليل/to/to/video ، وتريد استخراج الإطارات منه وحفظها في دليل/إلى/الإخراج ، بمعدل إطار لكل إطار لكل ثانياً وبدء من 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 ، وإنقاذ إطارات الحجم الأصلي في/مسار/إلى/output_size_frames الدليل والإطارات المقيدة في/مسار/إلى/الإخراج/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 الخاص بي مفيدًا ، ففكر في إعطائه نجمًا.
لأي مشكلات مع التطبيق أو لديك أي ملاحظات أو اقتراحات للتحسين. يرجى إثارة مشكلة
تم ترخيص مستخرج إطار الفيديو بموجب ترخيص معهد ماساتشوستس للتكنولوجيا. انظر ملف الترخيص للحصول على التفاصيل.