مشاريع الرؤية الحاسوبية

مستودع GitHub للمشروع

حول

يعرض هذا المستودع جميع مشاريع البرمجة (المختبرات) Mehmet و Jean التي عملوا عليها أثناء التسجيل في CSCI437 خلال فصل الخريف 2020 في Colorado School of Mines، تغطي الفترة من 28 أغسطس 2020 إلى 14 ديسمبر 2020. هذه المختبرات، التي وفرت منصة شاملة لتعلم بايثون وOpenCV ومفاهيم الرؤية الحاسوبية الأساسية.

حول الصف

حضرت مقدمة في الرؤية الحاسوبية (CSCI437) خلال فصل الخريف 2020. خلال هذا الوقت، قام الدكتور ويليام هوف والدكتور توم ويليامز بتدريس الصف. CSCI437. إليكم الوصف الرسمي للصف لـ CSCI437:

(I) Computer vision is the process of using computers to acquire images, transform images, and extract symbolic descriptions from images. This course provides an introduction to this field, covering topics in image formation, feature extraction, location estimation, and object recognition. Design ability and hands-on projects will be emphasized, using popular software tools. The course will be of interest both to those who want to learn more about the subject and to those who just want to use computer imaging techniques. Must be Senior level standing. 3 hours lecture; 3 semester hours. Prerequisite: (MATH201 or MATH334 or EENG311),and,MATH332,and,(CSCI200 or CSCI261).

الاعتمادات

هناك سكريبتات بايثون و/أو أجزاء من الكود تم توفيرها من قبل صف CSCI437 خلال المحاضرة، في الشرائح، أو عبر Canvas. يتم تقديم صف CSCI437 في Colorado School of Mines. تم تنفيذ هذه المختبرات مع الشركاء التاليين:

  • Jean Duong
  • Mehmet Yilmaz

وصف المختبرات

المختبر 1

المختبر 1 يركز على أساسيات استخدام OpenCV مع بايثون. من المتوقع أن يكتب المشاركون برنامج بايثون يقرأ ملف فيديو، يرسم أربعة نقاط تشكل مربعًا على كل إطار من الفيديو، ويُحاكي تراجع المربع إلى الخلف عن طريق تعديل إحداثي Z لكل نقطة تدريجيًا. بالإضافة إلى ذلك، يجب عرض رقم الإطار على كل إطار، ويجب رفع الفيديو النهائي مع الرسومات التوضيحية للتقييم.

المختبر 2

المختبر 2 يتعامل مع تحويلات الصور، مع التركيز بشكل خاص على الدورانات حول محاور X و Y و Z باستخدام اتفاقية “زوايا XYZ الثابتة”. يُكلف الطلاب بحساب مصفوفات الدوران، حساب مصفوفات التحويل المتجانسة لأوضاع الكاميرا، إنشاء مصفوفة المعايرة، وإسقاط النقاط على صورة لتكوين جسم مألوف باستخدام دالة الخط في OpenCV. يركز المختبر على فهم هندسة الكاميرا ومصفوفات التحويل في الرؤية الحاسوبية.

المختبر 3

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

المختبر 4

المختبر 4 يركز على تجزئة اللون باستخدام مساحة اللون HSV، وهي تقنية نوقشت في المحاضرات لفعاليتها في معالجة الصور الملونة. يُكلف الطلاب بتطبيق عمليات العتبة لتجزئة بكسلات علامة التوقف من الصور المقدمة، باستخدام برنامج بايثون/OpenCV. تتطلب المهمة العثور على قيم العتبة التي تكشف بكسلات علامة التوقف بأفضل شكل، إجراء عمليات شكلية لتنظيف النتيجة، وتقديم الصور المجزأة مع برنامج بايثون ومعلمات العتبة والعمليات الشكلية المستخدمة.

المختبر 5

المختبر 5 يتضمن مهمة إدراج نسيج صورة جديد في منطقة محددة من صورة موجودة بطريقة تجعل الإسقاط يبدو صحيحًا. هذه العملية، المعروفة باسم استبدال السطح، تتطلب من الطلاب استخدام تقنيات التحويل الإسقاطي (الهوموغرافيا) لتعيين صورة جديدة على منطقة مستوية من الصورة الموجودة. يركز المختبر على التطبيق العملي للهوموغرافيا لتعديل محتوى الصورة مع الحفاظ على صحة المنظور. من المتوقع أن يقدم الطلاب الصورة الأصلية، الصورة مع النسيج المستبدل، الصورة المدمجة، وبرنامج بايثون كجزء من تقديم المختبر.

المختبر 6

المختبر 6 يوجه الطلاب لاكتشاف وحساب وضعية هدف مكوّن من خمس دوائر متحدة المركز متباينة (CCCs) في صورة. تتضمن المهمة استخدام OpenCV لاكتشاف أهداف CCC، ترتيبها بشكل صحيح، حساب الوضعية باستخدام دالة solvePnP() في OpenCV، ورسم محاور الإحداثيات والوضعية على الصورة. يركز المختبر على تطبيق مفاهيم مثل اكتشاف الهدف، تقدير الوضعية، وتنسيق المخرجات البصرية في الرؤية الحاسوبية.

المختبر 7

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

المختبر 8

المختبر 8 يركز على اكتشاف الكائن باستخدام مطابقة الميزات وتطبيق تحويل إقليلي للكشف عن الكائنات وإدراجها من صورة تدريب إلى صورة استعلام. يتضمن المختبر اكتشاف الكائن في سيناريوهات مختلفة، تعديل عتبة عدد التطابقات الداخلية لتقليل الإيجابيات الكاذبة، وحساب مقاييس الدقة والاستدعاء والدقة لتقييم أداء نظام اكتشاف الكائن. من المتوقع أن يقوم الطلاب بتعديل وتشغيل كود بايثون المقدم، تحليل أداء النظام تحت ظروف مختلفة، وتقديم نتائجهم والكود المعدل.

المختبر 9

المختبر 9 يتضمن وضع نقاط توضيحية على كائن داخل صورة تدريب وعرض تلك النقاط تلقائيًا بشكل صحيح على الكائن في صور الاستعلام اللاحقة. يركز هذا المختبر على استخراج الميزات، المطابقة باستخدام اختبار النسبة لإزالة التطابقات الغامضة، تطبيق تحويل إقليلي ثنائي الأبعاد باستخدام RANSAC لإزالة القيم المتطرفة، وتطبيق التحويل لنقل نقاط التوضيح من التدريب إلى صور الاستعلام. المهمة الحرجة هي تعديل عدد عتبة التطابقات الداخلية لتحقيق توازن بين الإيجابيات الكاذبة والسلبية، بهدف تحقيق أعلى دقة في تصنيف الصور بشكل صحيح.

المختبر 10

المختبر 10 مخصص لاستخدام تحويل هوغ للعثور على مقاطع الخط وتحديد مجموعات الخطوط المتوازية داخل صورة. يستخدم التحويل الاحتمالي لهوغ عبر دالة cv2.HoughLinesP() في OpenCV لاكتشاف مقاطع الخط الممثلة بنقاط نهايتها. يتضمن المختبر أيضًا تحديد نقاط الاختفاء من خلال تحليل متجهات اتجاه هذه مقاطع الخط، بهدف فهم اتجاه الخطوط المتوازية في الفضاء ثلاثي الأبعاد كما تظهر في مستوى الصورة ثنائي الأبعاد. يُكلف الطلاب بمعالجة صور اختبار للعثور على مقاطع الخط المتوازية، تجربة المعلمات لتحسين الاكتشاف، وتقديم نتائجهم مع برنامج بايثون.

ملاحظات

  • ستحتاج إلى حزم بايثون الطرف الثالث التالية لتشغيل هذه السكريبتات/المختبرات: cv2 و numpy.
  • قد تتطلب بعض هذه المختبرات استخدام نسخة محددة من cv2. للأسف، لم يتم توثيق المتطلبات، لذا سيتعين عليك اكتشاف ذلك بنفسك. إذا اكتشفت ذلك أو واجهت صعوبة، يرجى الإبلاغ عنه عبر نموذج المشكلات.