شناسایی چهره افراد در فایل ویدیویی با پایتون
در این مقاله فرض بر این است که شما عکس یک شخص را دارید و می خواهید بررسی کنید که آیا این فرد در یک فیلم وجود دارد یا خیر . برای انجام چنین کاری، میتوان از....
شناسایی چهره افراد در فایل ویدیویی با پایتون
در این مقاله فرض بر این است که شما عکس یک شخص را دارید و می خواهید بررسی کنید که آیا این فرد در یک فیلم وجود دارد یا خیر . برای انجام چنین کاری، میتوان از کتابخانههای پایتون مانند OpenCV برای پردازش ویدیو و کتابخانههای تشخیص چهره مانند face_recognition
استفاده کرد. این کد پایتون زیر یک نمونه اساسی است که چهره یک فرد را در یک ویدیو تشخیص میدهد:
- ابتدا تصویر چهرهای را که میخواهیم در ویدیو پیدا کنیم بارگذاری میکنیم.
- سپس ویدیو را فریم به فریم بررسی میکنیم.
- در هر فریم، چهرههای موجود را تشخیص میدهیم.
- چهرههای تشخیص داده شده را با تصویر چهره اولیه مقایسه میکنیم.
- اگر مطابقتی پیدا شود، آن فریم را نشان میدهیم یا ذخیره میکنیم.
این کد نیاز به نصب کتابخانههای 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()
این کد فرضی و ساده است و در شرایط واقعی ممکن است نیاز به بهینهسازیهای بیشتری داشته باشد. همچنین، دقت کنید که کیفیت تشخیص چهره به کیفیت ویدیو و تصاویر مربوطه بستگی دارد.
دیدگاه های مربوط به این مقاله (برای ارسال دیدگاه در سایت حتما باید عضو باشید و پروفایل کاربری شما تکمیل شده باشد)