اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

هل تقصد رفع أي إدراج مجموعة من الصور إلى مكتبة face_recognition، التي هي في الغالب صور مجموعة من الأشخاص؟

إذا كان كذلك، فالأمر بسيط إن شاء الله ويتم ذلك باستخدام الوظيفة load_image_file وتعطيه مسار الملف، وفي أغلب الأحيان تقوم بعمل حلقة تكرارية على ملفات موجودة بمجلد معين

إليك كود مبسط لعمل المطلوب:

# استيراد المكتبات اللازمة
import face_recognition
import cv2
import os

# تحديد مسار المجلد الذي يحتوي على الصور
folder_path = "folder/images"

# إنشاء قائمة فارغة لتخزين ترميزات الوجوه
face_encodings = []

# كتابة حلقة 
# for
# لتحميل كل صورة وترميزها
for file in os.listdir(folder_path):
  # تحميل الصورة وتحويلها إلى تنسيق 
  # RGB
  image = face_recognition.load_image_file(os.path.join(folder_path, file))
  image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

  # استخراج ترميز الوجه من الصورة
  encoding = face_recognition.face_encodings(image_rgb, model="hog")[0]

  # إضافة ترميز الوجه واسم الصورة إلى القائمة
  face_encodings.append((encoding, file))

 

  • 0
نشر
بتاريخ 5 ساعة قال El Sayed El Tohamy:

هل تقصد رفع أي إدراج مجموعة من الصور إلى مكتبة face_recognition، التي هي في الغالب صور مجموعة من الأشخاص؟

إذا كان كذلك، فالأمر بسيط إن شاء الله ويتم ذلك باستخدام الوظيفة load_image_file وتعطيه مسار الملف، وفي أغلب الأحيان تقوم بعمل حلقة تكرارية على ملفات موجودة بمجلد معين

إليك كود مبسط لعمل المطلوب:

# استيراد المكتبات اللازمة
import face_recognition
import cv2
import os

# تحديد مسار المجلد الذي يحتوي على الصور
folder_path = "folder/images"

# إنشاء قائمة فارغة لتخزين ترميزات الوجوه
face_encodings = []

# كتابة حلقة 
# for
# لتحميل كل صورة وترميزها
for file in os.listdir(folder_path):
  # تحميل الصورة وتحويلها إلى تنسيق 
  # RGB
  image = face_recognition.load_image_file(os.path.join(folder_path, file))
  image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

  # استخراج ترميز الوجه من الصورة
  encoding = face_recognition.face_encodings(image_rgb, model="hog")[0]

  # إضافة ترميز الوجه واسم الصورة إلى القائمة
  face_encodings.append((encoding, file))

 

ايوه انا اقصد انا انا معي مجموعة صور فابدل ما اكتب كود زي كده

import face_recognition

img1 = face_recognition.load_image_file("Malan.png")
img2 = face_recognition.load_image_file("ali.png")
img3 = face_recognition.load_image_file("ahmad.png")

فاكانت عاوز اكتب مر واحد بس وارفع الصور كلها

بتاريخ 5 ساعة قال El Sayed El Tohamy:

هل تقصد رفع أي إدراج مجموعة من الصور إلى مكتبة face_recognition، التي هي في الغالب صور مجموعة من الأشخاص؟

إذا كان كذلك، فالأمر بسيط إن شاء الله ويتم ذلك باستخدام الوظيفة load_image_file وتعطيه مسار الملف، وفي أغلب الأحيان تقوم بعمل حلقة تكرارية على ملفات موجودة بمجلد معين

إليك كود مبسط لعمل المطلوب:

# استيراد المكتبات اللازمة
import face_recognition
import cv2
import os

# تحديد مسار المجلد الذي يحتوي على الصور
folder_path = "folder/images"

# إنشاء قائمة فارغة لتخزين ترميزات الوجوه
face_encodings = []

# كتابة حلقة 
# for
# لتحميل كل صورة وترميزها
for file in os.listdir(folder_path):
  # تحميل الصورة وتحويلها إلى تنسيق 
  # RGB
  image = face_recognition.load_image_file(os.path.join(folder_path, file))
  image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

  # استخراج ترميز الوجه من الصورة
  encoding = face_recognition.face_encodings(image_rgb, model="hog")[0]

  # إضافة ترميز الوجه واسم الصورة إلى القائمة
  face_encodings.append((encoding, file))

 

طيب انا عاوز اتاكيد من الكود ده اعمل اي

  • 0
نشر
بتاريخ 5 دقائق مضت قال El Sayed El Tohamy:

لكتابة الكود مرة واحدة، تقصد لو عندك مثلًا ألف صورة بدلًا من كتابة ألف سطر، تريد رفعها بأكواد بسيطة،

استخدم الحلقة التكرارية الموجودة بالأكواد التي أرسلتها لك.

ايوه بظبط , تمام شكراا جدا لحضرتك 

بس انا عاوز اتاكيد بمعني انا فيه file imge معه 3 صوره فا عاوز اتاكيد ال3صور دول اترفعو اعمل اي

  • 0
نشر

للتوضيح حتى لا يلتبس الأمر، الرفع هنا معناه تحميل في الذاكرة وليس رفعه إلى خادم أو ما شابه،

أما للتأكد من تمام رفع كل الملفات:

طالما الأكواد لا تعطي خطأً، هذا دليل على تمام العملية، ويمكنك زيادة التأكد عن طريق وضع نقطة توقف break point عند سطر الرفع وقم بعد مرات التوقف والتي مفترض أن تساوي عدد مرات التنفيذ التي تساوي أيضًا عدد الملفات.

أو استخدام أسلوب آخر مثل حفظ الصور في قائمة وبعد الحلقة التكرارية اسأل عن عدد العناصر، مثل هذا المثال

import face_recognition

image_files = ["image1.jpg", "image2.jpg", "image3.jpg"]
images = []

for file in image_files:
  image = face_recognition.load_image_file(file)
  images.append(image)

print(len(images))

 

  • 0
نشر
بتاريخ 8 دقائق مضت قال El Sayed El Tohamy:

للتوضيح حتى لا يلتبس الأمر، الرفع هنا معناه تحميل في الذاكرة وليس رفعه إلى خادم أو ما شابه،

أما للتأكد من تمام رفع كل الملفات:

طالما الأكواد لا تعطي خطأً، هذا دليل على تمام العملية، ويمكنك زيادة التأكد عن طريق وضع نقطة توقف break point عند سطر الرفع وقم بعد مرات التوقف والتي مفترض أن تساوي عدد مرات التنفيذ التي تساوي أيضًا عدد الملفات.

أو استخدام أسلوب آخر مثل حفظ الصور في قائمة وبعد الحلقة التكرارية اسأل عن عدد العناصر، مثل هذا المثال

import face_recognition

image_files = ["image1.jpg", "image2.jpg", "image3.jpg"]
images = []

for file in image_files:
  image = face_recognition.load_image_file(file)
  images.append(image)

print(len(images))

 

تمام , جدا انا فهمت كده شكرا جدااا 

بتاريخ 22 دقائق مضت قال Ail Ahmed:

تمام , جدا انا فهمت كده شكرا جدااا 

سوال كمان لوسمحت انا لو عاوز استخدم face_locations او face_encodeings استخدمها جو الحلقه ام بر الحلقه

  • 0
نشر

بشكل عامٍ، عندما تريد تطبيق شيء معين على كل الصور فستحتاج بالتأكيد لإنشاء حلقة تكرارية، فيمكنك تطبيق ما تريده مباشرة في نفس الحلقة التي تستخدم لتحميل الملفات، أو يمكنك إنشاء حلقة جديدة بعد هذه الحلقة.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...