أهم 10 أفكار مثيرة لمشروع OpenCV وموضوعات للطلاب الجدد وذوي الخبرة [2022]

نشرت: 2021-05-27

OpenCV أو Open Source Computer Vision Library عبارة عن تعلم آلي قوي ، ومكتبة قائمة على الذكاء الاصطناعي تستخدم لتطوير وحل مشاكل رؤية الكمبيوتر. تتضمن رؤية الكمبيوتر تدريب الكمبيوتر على فهم وفهم العالم المرئي وتحديد العناصر والاستجابة لها باستخدام نماذج التعلم العميق. تستفيد الشركات اليوم في جميع أنحاء العالم من معالجة الصور ومعالجتها واكتشاف الوجه والتعرف على الصوت وتتبع الحركة واكتشاف الأشياء.

قامت شركات مثل Google و Facebook و Microsoft و Intel بنشر OpenCV بالفعل لتطوير تطبيقات الرؤية الحاسوبية. لاحظ مارك زوكربيرج ، في مقابلة عام 2015 ، "إذا كنا قادرين على بناء أجهزة كمبيوتر يمكنها فهم ما في الصورة وإخبار شخص أعمى لا يمكنه رؤية تلك الصورة بطريقة أخرى ، فسيكون ذلك رائعًا أيضًا."

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

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

جدول المحتويات

أفضل 10 مشاريع سيرة ذاتية مفتوحة للتسجيل في عام 2022

المشروع 1: الكشف عن الالتهاب الرئوي باستخدام EdgeML

يهدف مشروع OpenCV هذا إلى نشر برنامج الكشف عن الالتهاب الرئوي المستند إلى الذكاء الاصطناعي على Raspberry Pi الخاص بك. يستخدم نظام Edge Machine Learning لتحويل Raspberry Pi بكاميرا إلى مصنف الالتهاب الرئوي باستخدام حاويات Balena المتعددة.

تتم إضافة حاوية ثانية إلى Balena تقوم بتشغيل محرك الاستدلال Edge Impulse WebAssembly داخل خادم Node.js. تتواصل كلتا الحاويات من خلال WebSockets لتمكين BalenaCam من البث المباشر لكل ثانية من الخلاصة من الكاميرا على صفحة الويب.

تشمل البرامج والأدوات المستخدمة في المشروع OpenCV و Edge Impulse Studio و TensorFlow Lite و GitHub Desktop و balenaCloud و Microsoft VS Code و Docker. متصفحات الويب التي تدعم Balena Cam هي Chrome و Safari و Firefox و Edge.

يمكنك التحقق من المشروع هنا .

المشروع 2: مستشعر الحركة الذي يعمل بنظام OpenCV لأجهزة SmartThings من سامسونج

أولاً ، تحتاج إلى Raspberry Pi 3 مع PiCam عاملة مثبت عليها OpenCV مسبقًا. يهدف هذا المشروع إلى إنشاء مستشعر حركة مخصص لـ SmartThings مدعوم برؤية الكمبيوتر واكتشاف الوجوه. يتم إرسال البيانات التي تم جمعها إلى SmartThings عبر LAN - UPnP.

للقيام بذلك ، نقوم بإنشاء معالج جهاز لـ SmartThings وبرمجته. ثم نستخدم برنامج نصي بلغة Python للوصول إلى صور الكاميرا واكتشاف الوجوه وإقران Raspberry Pi ليتم اكتشافه بواسطة SmartThings. تحتاج أيضًا إلى تثبيت imutils التي يمكنك الحصول عليها من GitHub.

تحقق من الكود المصدري للمشروع هنا .

المشروع 3: التصوير الحسابي

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

المشروع 4: إنشاء علامة مائية على الصور باستخدام OpenCV

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

يمكنك البحث عن المشروع هنا .

المشروع 5: إيجاد والدو

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

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

يمكنك التحقق من المشروع هنا .

المشروع السادس: سيارات ذاتية القيادة

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

فيما يلي رمز المصدر لتحديد منطقة الاهتمام:

استيراد numpy كـ np

من matplotlib استيراد pyplot كـ plt

image = cv2.imread ('../../ images / input.jpg')

في [8]:

صورة

خارج [8]:

(830 ، 1245 ، 3)

في [11]:

x ، y = image.shape [: 2]

في 3]:

الارتفاع ، العرض = شكل الصورة [: 2]

# للحصول على إحداثيات بكسل البداية (أعلى يسار مستطيل الاقتصاص)

start_row، start_col = int (height * .25)، int (width * .25)

# للحصول على إحداثيات بكسل النهاية (أسفل اليمين)

end_row ، end_col = int (الارتفاع * .75) ، int (العرض * .75)

# استخدام الفهرسة لاقتطاع جزء الصورة الذي نرغب فيه

اقتصاص = صورة [start_row: end_row، start_col: end_col]

في [6]:

صف ، عمود = 1 ، 2

شكل ، محاور = plt.subplots (صف ، عمود ، حجم التين = (15 ، 10))

fig.tight_layout ()

محاور [0] .imshow (cv2.cvtColor (صورة ، cv2.COLOR_BGR2RGB))

محاور [0] .set_title ('الصورة الأصلية')

cv2.imwrite ('original_image.png'، صورة)

محاور [1] .imshow (cv2.cvtColor (اقتصاص ، cv2.COLOR_BGR2RGB))

محاور [1] .set_title ("صورة مقصوصة")

cv2.imwrite ('cropped_image.png' ، اقتصاص)

plt.show ()

تحقق من المشروع هنا .

المشروع 7: التعرف على الوجه والصوت للمكفوفين

يهدف هذا المشروع إلى مساعدة الأشخاص المعاقين بصريًا عن طريق تحويل إدخال الوجه إلى إخراج صوتي باستخدام Raspberry Pi 2 Model B و Raspberry Pi Camera Module. إنه أحد أكثر مشاريع السيرة الذاتية المفتوحة شيوعًا في عام 2022. يسمح البرنامج للمكفوفين أو المعاقين بصريًا باكتشاف الإشارات أو النصوص أو الأشخاص في بيئة غير مألوفة ، والتنقل في طريقهم دون مساعدة. من بين المتطلبات الأخرى للمشروع OpenCV و Python لإجراء التعرف على الوجوه ، ويتم التعرف على الصوت باستخدام GNU Octave.

يمكنك التحقق من الرمز هنا .

المشروع 8: نموذج الحضور الذكي

نظام الحضور الذكي هو أداة مفيدة لنماذج التعليم عبر الإنترنت مثل ZoomApp. يساعدك على تتبع الطلاب الذين يحضرون فصل Zoom من خلال مراقبة حضورهم في الوقت الفعلي. كل ما يجب القيام به هو الحصول على لقطة شاشة من الطالب مع تضمين التاريخ وتحميلها إلى ملف Excel.

يمكنك العثور على برنامج تعليمي لمشروع السيرة الذاتية المفتوح هذا هنا .

المشروع 9: تبديل الوجه باستخدام OpenCV

تتجه تطبيقات وفلاتر تبديل الوجه على وسائل التواصل الاجتماعي لبعض الوقت الآن. من الظهور صغيرًا وكبيرًا إلى تحويل الصور الثابتة إلى صور متحركة ، قفزت أمثال Instagram و Snapchat و FaceApp جميعًا في عربة التسوق. من السهل نسبيًا إنشاء تطبيقات مبادلة الوجه باستخدام OpenCV و Python.

تتضمن الخطوات وضع صورة مصدر على صورة الوجهة بمساعدة مثلث تم تشكيله باستخدام كاشف المعالم dlib.

تحقق من المشروع هنا .

المشروع 10: كشف الكفاف وأشكال العد

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

إليك الكود المصدري للقيام بذلك:

استيراد numpy كـ np

من matplotlib استيراد pyplot كـ plt

في 2]:

image = cv2.imread ('../../ images / bottlecaps.jpg')

رمادي = cv2.cvtColor (صورة ، cv2.COLOR_BGR2GRAY)

plt.imshow (cv2.cvtColor (رمادي ، cv2.COLOR_BGR2RGB))

plt.title ('bottlecaps') ؛ plt.show ()

cv2.imwrite ('bottlecaps_input.jpg' ، رمادي)

خارج [2]:

صحيح

في 3]:

طمس = cv2.medianBlur (رمادي ، 5)

الدوائر = cv2.HoughCircles (طمس ، cv2.HOUGH_GRADIENT ، 1.5 ، 10)

لأني في الدوائر [0 ،:]:

# ارسم الدائرة الخارجية

cv2.circle (صورة، (i [0]، i [1])، i [2]، (255، 0، 0)، 2)

# ارسم مركز الدائرة

cv2.circle (صورة، (i [0]، i [1])، 2، (0، 255، 0)، 5)

plt.imshow (cv2.cvtColor (صورة ، cv2.COLOR_BGR2RGB))

plt.title ("الدوائر المكتشفة") ؛ plt.show ()

cv2.imwrite ('detect_circles.jpg' ، صورة)

خارج [3]:

صحيح

في [ ]:

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

يمكنك التحقق من مشروع السيرة الذاتية المفتوح هذا هنا .

افكار اخيرة

تتيح لك رؤية الكمبيوتر تطوير مجموعة واسعة من التطبيقات المفيدة مثل تحويل الصور ، والترجمة ، واكتشاف المحيط ، وتجزئة الصور ، واكتشاف الأشياء ، وتتبع الكائن ، وتحليل الحركة.

يتم استخدامه أيضًا في الواقع المعزز (AR) من خلال تعلم تحديد الوجوه واكتشاف الأشكال وما إلى ذلك للتعرف على الأشياء والوجوه. يمكنك أيضًا إنشاء مشاريع Open CV مثيرة للاهتمام باستخدام التعلم الآلي البسيط مثل قارئ بطاقات الائتمان أو كاشف الأرقام المكتوبة بخط اليد أو قارئ الوجه.

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

ستساعدك هذه الدورة على أن تصبح على دراية جيدة بمفاهيم الإحصاء ، والانحدار ، وخوارزميات التجميع ، والشبكات العصبية ، واكتشاف الأشياء ، والتعرف على الإيماءات. ليس ذلك فحسب ، بل سيساعدك على بناء الخبرة في OpenCV و Python و TensorFlow و MySQL و Keras و Excel و NumPy ، من بين أدوات البرمجة والمكتبات الأخرى ، ويساعدك على التميز بين الحشود.

ما هو OpenCV؟

OpenCV هي مكتبة مفتوحة المصدر لمعالجة الصور ورؤية الكمبيوتر ، يتم صيانتها بواسطة Intel وتدعمها الآن مجموعة من المطورين. كونه مفتوح المصدر ، يستفيد OpenCV من قوة مجتمع المطورين بأكمله. تم تصميم المكتبة بحيث يتم تحسينها للتطبيقات في الوقت الفعلي ، مثل التعرف على الأشياء والمراقبة بالفيديو والتفاعل بين الإنسان والآلة والمجالات الطبية وغيرها من المجالات ذات الصلة.

ما هو اكتشاف الكائن؟

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

ما هي خوارزمية الكشف عن الأشياء الأكثر دقة؟

هناك العديد من خوارزميات الكشف عن الكائنات وليس أي منها دقيق بنسبة 100٪. تواجه خوارزميات الكشف عن الكائن مشكلة تجهيز البيانات. في الواقع ، يدعي بعض الباحثين في مجال رؤية الكمبيوتر أن خوارزميات اكتشاف الكائنات لا يمكن أن تكون دقيقة بنسبة 100٪. ولكن هناك العديد من الخوارزميات التي تعطي نتائج دقيقة لمجموعة بيانات معينة. إذا كنت تستطيع تحمل تكلفة جهاز GPU ، فإننا نقترح عليك استخدام تطبيق SVM المستند إلى OpenCV للكشف عن الكائنات. إنه دقيق للغاية وسريع ويعمل على مجموعة بيانات كبيرة جدًا. ومع ذلك ، فإنه لا يتعامل مع الانسداد بشكل جيد. إذا كنت تريد إنشاء جهاز كشف للوجه ، فانتقل إلى تطبيق مصنف Haar cascade في OpenCV.