شناسایی چهره افراد در فایل ویدیویی با پایتون

در این مقاله فرض بر این است که شما عکس یک شخص را دارید و  می خواهید بررسی کنید که آیا این فرد در یک فیلم وجود دارد یا خیر . برای انجام چنین کاری، می‌توان از....

انتشار: , زمان مطالعه: 2 دقیقه
شناسایی چهره افراد در فایل ویدیویی با پایتون
دسته بندی: امنیت سایبری تعداد بازدید: 315

شناسایی چهره افراد در فایل ویدیویی با پایتون

در این مقاله فرض بر این است که شما عکس یک شخص را دارید و  می خواهید بررسی کنید که آیا این فرد در یک فیلم وجود دارد یا خیر . برای انجام چنین کاری، می‌توان از کتابخانه‌های پایتون مانند OpenCV برای پردازش ویدیو و کتابخانه‌های تشخیص چهره مانند face_recognition استفاده کرد. این کد پایتون زیر یک نمونه اساسی است که چهره یک فرد را در یک ویدیو تشخیص می‌دهد:

  1. ابتدا تصویر چهره‌ای را که می‌خواهیم در ویدیو پیدا کنیم بارگذاری می‌کنیم.
  2. سپس ویدیو را فریم به فریم بررسی می‌کنیم.
  3. در هر فریم، چهره‌های موجود را تشخیص می‌دهیم.
  4. چهره‌های تشخیص داده شده را با تصویر چهره اولیه مقایسه می‌کنیم.
  5. اگر مطابقتی پیدا شود، آن فریم را نشان می‌دهیم یا ذخیره می‌کنیم.

این کد نیاز به نصب کتابخانه‌های opencv-python و face_recognition دارد. می‌توانید آن‌ها را با استفاده از pip نصب کنید:

pip install opencv-python face_recognition

سپس کد زیر را می‌توانید برای این منظور استفاده کنید:

import face_recognition
import cv2

# Programmer : Ebrahim Shafiei (EbraSha)
# Load the image of the face we want to search for
face_image = face_recognition.load_image_file("path_to_face_image.jpg")
face_encoding = face_recognition.face_encodings(face_image)[0]

# Open the video
video_capture = cv2.VideoCapture("path_to_video.mp4")

while video_capture.isOpened():
    # Read a frame from the video
    ret, frame = video_capture.read()
    if not ret:
        break

    # Detect faces in the frame
    face_locations = face_recognition.face_locations(frame)
    face_encodings = face_recognition.face_encodings(frame, face_locations)

    for face_encoding_in_frame in face_encodings:
        # Check if the face is a match for the given face
        matches = face_recognition.compare_faces([face_encoding], face_encoding_in_frame)

        if True in matches:
            # Perform the desired action, like showing or saving the frame
            cv2.imshow('Match Found', frame)
            cv2.waitKey(0)

# Close the video window
video_capture.release()
cv2.destroyAllWindows()

این کد فرضی و ساده است و در شرایط واقعی ممکن است نیاز به بهینه‌سازی‌های بیشتری داشته باشد. همچنین، دقت کنید که کیفیت تشخیص چهره به کیفیت ویدیو و تصاویر مربوطه بستگی دارد.


دیدگاه های مربوط به این مقاله (برای ارسال دیدگاه در سایت حتما باید عضو باشید و پروفایل کاربری شما تکمیل شده باشد)