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

Ail Ahmed

الأعضاء
  • المساهمات

    526
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    4

أجوبة بواسطة Ail Ahmed

  1. بتاريخ 1 ساعة قال Chihab Hedidi:

    face_locations و face_encodings هما جزءان من الوظائف التي تستخدم للكشف عن الوجوه في الصور واستخراج معلومات حولها، أهم الفروقات بينهما:

    face_locations:

    •    تستخدم للعثور على مواقع الوجوه في الصورة.
    •    ترجع قائمة من أقسام الصورة حيث تظهر الوجوه.
    •    النتيجة هي تواجد الوجوه في الصورة بدون تفاصيل إضافية.
    •    تساعد هذه الوظيفة في تحديد مواقع الوجوه في الصورة.

    face_encodings:
       - تستخدم لاستخراج ميزات الوجه (face encodings) من الصورة.
       - تعيد قائمة من المتجهات الرقمية التي تمثل الوجوه في الصورة.
       - تحتاج إلى موقع الوجه (الذي يمكن الحصول عليه باستخدام face_locations) لاستخدام هذه الوظيفة.
       - تستخدم هذه الميزات لمقارنة الوجوه والتحقق من الهوية.

    و باستخدام هاتين الوظيفتين معا، يمكنك تحديد موقع الوجوه في الصورة باستخدام face_locations ومن ثم استخراج ميزات الوجه باستخدام face_encodings للقيام بالتحقق من الهوية أو مقارنة الوجوه.

    اول شكراا جدا لرد حضرتك

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

     

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

    اول شكراا جدا لرد حضرتك

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

     

    وكمان لو سمحت face_distance 

  2. بتاريخ 6 دقائق مضت قال Khaled Osama3:

    لا يوجد حل صارم فيمكنك ان تفعل الخياران ولكن حسبما تريد لتطوير كود برنامج سابق:

    تكمل على نفس الملف القديم:

    • هذا الخيار يتيح لك الاستمرار في نفس المشروع وتطويره تدريجيا. 
    • مزاياه أنه يحافظ على استمرارية العمل وتاريخ التعديلات.
    • ولكن قد تؤدي التعديلات إلى إفساد الكود القديم.

    او تبدأ ملف جديد:

    • هذا يتيح إعادة البدء من الصفر بتصميم أفضل.
    • ويضمن عدم إفساد الكود الأصلي أثناء التعديلات. 
    • لكن قد تفقد بعض تاريخ التطوير.

    أنا أوصي بالخيار الثاني خاصة إذا كانت التعديلات ستطرح تغييرات كبيرة في التصميم او لمجرد التجربه.

    ويمكنك تسمية الملف الجديد مثلا recong2.py للحفاظ على تاريخ الإصدارات.

    تمام ,  شكرااا 

    • أعجبني 1
  3. بتاريخ 3 دقائق مضت قال Khaled Osama3:

    الكمبيوتر سيفهم أن 1 يعني True و 0 يعني False

    السبب هو أن بايثون مثل باقي لغات البرمجة تعامل القيم 1 و 0 على أنها قيم منطقية boolean. 

    فمثلاً لو طلبنا من الكمبيوتر أن يطبع قيمة متغير بعد تحديده على 1 سيطبع True لأنه يفهم أن 1 هنا تمثل القيمة المنطقية الحقيقية True.

    وبالمثل لو حددنا المتغير على 0 سيطبع False لأن 0 تمثل القيمة المنطقية الكاذبة False.

    فالكمبيوتر لن يعتبر 1 مجرد رقم وانما سيفسرها على أنها قيمة منطقية boolean.

    ولكن يُفضل استخدام True بدلاً من 1 لتوضيح النية وجعل الكود أكثر وضوحًا وقراءة.

    هناك حالات محددة يمكن فيها اعتبار الرقم true أو false في لغة البرمجة:

    - يعتبر الرقم 1 true دائما. فأي تعبير يساوي 1 سيعتبر true.

    if 1:
      print("True")#سيطبع True

    - أي رقم غير الصفر يعتبر true مثل ، 2، -1، -2

    if 10:
      print("True")#سيطبع True

    - الصفر يعتبر false.

    if 0:
      print("True") 
    else:
      print("False")#سيطبع False

    - الأرقام التالية تعتبر false: 0, 0.0, None, False, "", [], {}, ()

    - أي قيمة موجودة تعتبر true. مثل: if name:

    - يمكن تحويل الأرقام إلى قيم منطقية باستخدام bool(). مثال:

    if bool(1):
      print("True")
    if bool(0):  
      print("False")

    في حالة عدم وجود قيمة أو كانت القيمة مساوية للصفر ستعتبر false، وفي باقي الحالات ستعتبر true.

    تمام اوي , شكراا جدا 

    • أعجبني 1
  4. بتاريخ 2 دقائق مضت قال El Sayed El Tohamy:

    حاول استخدام أدوات اكتشاف الأخطاء،

    مثل نقطة التوقف Break point

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

    حاضر , شكراا جدا لتعب حضرتك معه والله

  5. بتاريخ 4 دقائق مضت قال عمار معلا:

    وعليكم السلام
    في البداية يجب أن يكون لديك معرفة بأساسيات الذكاء الصناعي وتعلم الالة والتعلم العميق، اي لديك فكرة رائعة حول عملية تدريب النماذج لحل مشكلة ما باستخدام شبكات مثل CNN VGG16 وهي شبكات مخصصة للداتا المتعلقة بالصور بشكل عام وكذلك اختبار النماذج والحكم على النموذج هل هو جيد ام سيئ بالاعتماد على ادوات القياس وعمله على داتا جديدة، ثم تستطيع التعرف على هذا العناوين بشكل نظري عبر البحث عن كل عنوان

    • تصنيف الصور Image Classification.
    • تحديد الكائن واكتشافه Object Localization and Detection.
    • تجزئة الصورة Image Segmentation.
    • نقل نمط الصورة Image Style Transfer.
    • تلوين الصورة Image Colorization.
    • إعادة بناء الصورة Image Reconstruction.
    • دقة الصورة العالية Image Super-Resolution.
    • تركيب الصورة Image synthesis.

    لا يوجد framework محدد ولكن الشائع هو pytorch و Tensorflow لبناء النماذج الأولية وسوف تقابل بعض النماذج الجاهزة وتستطيع استخدامها وربطها مع الداتا الخاصة بك

    تمام ,  شكراا جدااا

  6. بتاريخ منذ ساعة مضت قال El Sayed El Tohamy:

    استخدام القيم السالبة في القائمة list في البايثون تعني بداية الترقيم من النهاية،

    على سبيل المثال

    allNames = ['Ahmed', 'Mohamed', 'Ali']
    allNames2 = allNames[::-1] # ['Ali', 'Mohamed', 'Ahmed']

    لاحظ استخدام -1 كقيمة للخطوة معناها نسخ القائمة من النهاية كما هو موضح الاسم الأخير أصبح الأول بالقائمة الجديدة.

    عند التعامل مع مكتبات رؤية الحاسوب، فإنها تتعامل بنظام الألوان BGR أزرق/أخضر/أحمر، لذلك وجب عكس هذا الترتيب ليصبح RGB أحمر/أخضر/أزرق، وهذا هو السبب في استخدام (-1)، هذا الأسلوب قد يسبب انطلاق خطأ إذا كان المتغير الأصلي None، لذلك في أغلب الأحيان نستخدم الشيفرات بالطريقة التالية

    ret, frame = video_capture.read()
    if ret:
        small_frame = cv2.resize(frame, (128, 128))
        rgb_small_frame = small_frame[:, :, ::-1]
        # the rest of your code
    else:
        print("Failed to read frame from camera")

    فإذا ظهرت الرسالة "Failed to read frame from camera" هذا معناه أنه لم يتمكن من التقاط الصورة من الكاميرا، فيجب معرفة الخطأ وتصحيحه، وليس استبدال القيمة السالبة (-1) بالقيمة (1) لأنه قد يسبب مشاكل في ألوان الصورة.

     

    ايو انا عملت زي حضرتك كده وظهرات الرساله فا الخطاء من اي كده

  7. بتاريخ 3 ساعة قال El Sayed El Tohamy:

    ربما تحتاج تغيير السطر التالي وزيادة القيمة 1 إلى قيمة أكبر 10 أو 20 لأنها تعبر عن الوقت المنتظر بالمللي ثانية = 1/1000 ثانية، وبالتالي لا يعطي الفرصة الكافية لمعالجة إطارات الصور والفيديو

    # if cv2.waitKey(1) & 0xFF == ord('q'):
    if cv2.waitKey(10) & 0xFF == ord('q'):

    أرجو التجربة

    هو حضرتك الكامير بتشتغل وبتقفل او ما تشوف وجه لكن غير كده بتفضل شغل

     

    بتاريخ 21 ساعة قال Ail Ahmed:
            rgb_small_frame = small_frame[:, :, ::-1]
    

    حل المشكله الحمد الله المشكله هنا فيه دي المفروض 1 مش -1 بس ممكن اعرف ليا لوسمحت

  8. السلام عليكم

    عندي مشكله عندي فيه الكامير عندي تشغل هد الكود

    import face_recognition
    import cv2
    import numpy as np
    
    video_capture = cv2.VideoCapture(0)
    
    malan_img = face_recognition.load_image_file("Malan.png")
    malan_face_encodeing = face_recognition.face_encodings(malan_img)[0]
    
    rahma_img = face_recognition.load_image_file("Rahma.jpg")
    rahma_face_encodeing = face_recognition.face_encodings(rahma_img)[0]
    
    known_face_encodeings = [malan_face_encodeing , rahma_face_encodeing]
    known_face_names = ["David Malan" , "Rahma Ahmed"]
    
    face_locations = []
    face_encodeings = []
    face_names = []
    process_this_frame = True
    
    while True:
    
        ret , frame = video_capture.read()
    
        if process_this_frame:
    
            samll_frame = cv2.resize(frame, (0,0) , fx=0.25 , fy=0.25)
    
            rgb_small_frame = samll_frame[:, :, ::-1]
    
            # Find all the faces and face encodings in the current frame of video
            face_locations = face_recognition.face_locations(rgb_small_frame)
            face_encodeings = face_recognition.face_encodings(rgb_small_frame , face_locations)
    
            face_names = []
    
            for face_encoding in face_encodeings:
    
                matches = face_recognition.compare_faces(known_face_encodeings , face_encoding)
                name = "Unknown"
    
                face_distances = face_recognition.face_distance(known_face_encodeings , face_encoding)
                best_match_index = np.argmin(face_distances)
    
                if matches[best_match_index]:
                    name = known_face_names[best_match_index]
    
                face_names.append(name)
    
    
        process_this_frame = not process_this_frame
    
    
        for(top , right , bottom , left) , name in zip(face_locations ,face_names):
    
            top *= 4
            right *= 4
            bottom *= 4
            left *= 4
    
    
            cv2.rectangle(frame, (left,top) , (right,bottom) , (0,0,255) , 2)
    
    
            cv2.rectangle(frame , (left , bottom - 35) , (right , bottom) , (0,0,255) , cv2.FILLED)
    
            font = cv2.FONT_HERSHEY_DUPLEX
    
            cv2.putText(frame , name , (left + 6 , bottom - 6) , font, 1.0 , (255, 255 , 255) , 1)
    
    
        cv2.imshow("Video" , frame)
    
    
        if cv2.waitKey(1) & 0XFF == ord('q'):
            break
    
    
    video_capture.release()
    cv2.destroyAllWindows()

    الكامير بتفتح وتقفل علي طول 

  9. بتاريخ الآن قال Mustafa Suleiman:

    تقصد توضيح لكود تريد فهم آلية عمله؟ نعم يمكن ذلك.

    ايوه ,  تمام الكود اهو

    import face_recognition
    import cv2
    import numpy as np
    
    
    
    video_capture = cv2.VideoCapture(0)
    
    
    obama_image = face_recognition.load_image_file("obama.jpg")
    obama_face_encoding = face_recognition.face_encodings(obama_image)[0]
    
    
    biden_image = face_recognition.load_image_file("biden.jpg")
    biden_face_encoding = face_recognition.face_encodings(biden_image)[0]
    
    
    known_face_encodings = [
        obama_face_encoding,
        biden_face_encoding
    ]
    known_face_names = [
        "Barack Obama",
        "Joe Biden"
    ]
    
    
    face_locations = []
    face_encodings = []
    face_names = []
    process_this_frame = True
    
    while True:
        
        ret, frame = video_capture.read()
    
        
        if process_this_frame:
          
            small_frame = cv2.resize(frame, (0, 0), fx=0.25, fy=0.25)
    
            
            rgb_small_frame = small_frame[:, :, ::-1]
            
            
            face_locations = face_recognition.face_locations(rgb_small_frame)
            face_encodings = face_recognition.face_encodings(rgb_small_frame, face_locations)
    
            face_names = []
            for face_encoding in face_encodings:
               
                matches = face_recognition.compare_faces(known_face_encodings, face_encoding)
                name = "Unknown"
    
                
                face_distances = face_recognition.face_distance(known_face_encodings, face_encoding)
                best_match_index = np.argmin(face_distances)
                if matches[best_match_index]:
                    name = known_face_names[best_match_index]
    
                face_names.append(name)
    
        process_this_frame = not process_this_frame
    
    
        
        for (top, right, bottom, left), name in zip(face_locations, face_names):
           
            top *= 4
            right *= 4
            bottom *= 4
            left *= 4
    
            
            cv2.rectangle(frame, (left, top), (right, bottom), (0, 0, 255), 2)
    
            
            cv2.rectangle(frame, (left, bottom - 35), (right, bottom), (0, 0, 255), cv2.FILLED)
            font = cv2.FONT_HERSHEY_DUPLEX
            cv2.putText(frame, name, (left + 6, bottom - 6), font, 1.0, (255, 255, 255), 1)
    
        
        cv2.imshow('Video', frame)
    
       
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    
    
    video_capture.release()
    cv2.destroyAllWindows()

     

    • أعجبني 1
  10. بتاريخ 18 دقائق مضت قال Mustafa Suleiman:

    الخوارزمية الأساسية المستخدمة في تعرف الوجوه تعتمد على ما يُعرف بـ "خوارزمية تصنيف الوجه" (Face Detection Algorithm)، وهناك عدة خوارزميات تستخدم لهذا الغرض، منها Haarcascades و Single Shot Multibox Detector (SSD) وغيرها.

    ومكتبة Face Recognition في بايثون هي مكتبة مفتوحة المصدر مصممة للتعرف على الوجوه، وتعتمد خوارزمية اكتشاف الوجه Haar Cascades، حيث تعمل الخوارزمية على اكتشاف الأشكال الأساسية في الصورة، مثل الخطوط والزوايا، أي تحويل الصور إلى نقاط مميزة يمكن استخدامها لتحديد الأشخاص، وبالطبع تم تدريب تلك الخوارزمية على مجموعة بيانات ضخمة من الصور التي تحتوي على وجوه بشرية.

    • فعند تحميل صورة وجه، تقوم الخوارزمية بفحصها لاستخراج ميزات مميزة من الوجه Face Encoding،  وتلك الميزات تشمل نقاط معينة على الوجه تمثل نقاط العيون والأنف والفم وغيرها.
    • وتُستخدم الميزات المستخرجة لتمثيل الوجه بشكل رقمي (Face Representation)، وهو تمثيل رياضي يمكن استخدامه لمقارنة الوجوه.
    • بعد تمثيل الوجه بشكل رقمي، يمكن مقارنته بتمثيل الوجه لأفراد آخرين، باستخدام مقياس الشبه لتحديد مدى تشابه الوجهين.

    اول شكرا جدا

    ثانيا طيب هو انا ممكن ادريب المكتبه ده علي مجموع من البيانات من الصور والا مش هينفع هي مدرب جاهز

  11. السلام عليكم

    1- هو تعلم الاله مجال والتعلم العميق مجال تاني والا التعلم العميق فرع من مجال تعلم الاله

    2- واي علاقه رويه الحاسوب بمجال تعلم الاله 

    3- وهل عشان اتعلم مجال رويه الحاسوب الازم الاول ان اتعلم مجال تعلم الاله وده طبعان بعد تعلم الرياضيات انا الحمد الله وبفضل الله بتعلم الرياضيات دلوقتي 

     

×
×
  • أضف...