
واحدة من المجالات الهامة للذكاء الاصطناعي هو رؤية الكمبيوتر. Computer Vision هو علم أجهزة الكمبيوتر وأنظمة البرامج التي يمكنها التعرف على الصور والمشاهد وفهمها. تتكون رؤية الكمبيوتر أيضا من جوانب مختلفة مثل التعرف على الصور ، وكشف الكائن ، وتوليد الصور ، ودقة فائقة للصورة وأكثر من ذلك. من المحتمل أن يكون اكتشاف الكائنات هو الجانب الأكثر أهمية في رؤية الكمبيوتر نظرًا لعدد حالات الاستخدام العملي. في هذا البرنامج التعليمي ، سأقدم باختصار مفهوم الكشف عن الأشياء الحديثة ، والتحديات التي يواجهها مطورو البرامج ، والحل الذي قدمه فريقي ، بالإضافة إلى البرامج التعليمية للتعليمات البرمجية لإجراء الكشف عن الكائنات عالية الأداء.
يشير اكتشاف الكائنات إلى قدرة الكمبيوتر وأنظمة البرامج على تحديد موقع الكائنات في صورة / مشهد وتحديد كل كائن. تم استخدام اكتشاف الكائنات على نطاق واسع في الكشف عن الوجه ، وكشف المركبات ، وإحصاء المشاة ، وصور الويب ، وأنظمة الأمان ، والسيارات التي تعمل بدون سائق. هناك العديد من الطرق التي يمكن من خلالها استخدام اكتشاف الكائنات في العديد من مجالات الممارسة. مثل أي تقنية كمبيوتر أخرى ، فإن مجموعة واسعة من الاستخدامات الإبداعية والمدهشة لكشف الكائن ستأتي بالتأكيد من جهود مبرمجي الكمبيوتر ومطوري البرامج.
لا يعد استخدام أساليب الكشف عن الكائنات الحديثة في التطبيقات والأنظمة ، فضلاً عن إنشاء تطبيقات جديدة تعتمد على هذه الأساليب مهمةً مستقيمةً. تضمنت التطبيقات المبكرة لكشف الأشياء استخدام الخوارزميات الكلاسيكية ، مثل تلك المعتمدة في OpenCV ، مكتبة رؤية الكمبيوتر الشعبية. ومع ذلك ، لم تتمكن هذه الخوارزميات الكلاسيكية من تحقيق الأداء الكافي للعمل تحت ظروف مختلفة.
وقد أدى الاختراق والاعتماد السريع للتعلم العميق في عام 2012 إلى إنشاء خوارزميات وأساليب حديثة للكشف عن الكائنات الدقيقة مثل R-CNN ، و Fast-RCNN ، و Fast-RCNN ، و RetinaNet ، وبسرعة ودقة عالية مثل SSD و YOLO. إن استخدام هذه الطرق والخوارزميات ، بناءً على التعلم العميق الذي يعتمد أيضًا على التعلم الآلي ، يتطلب الكثير من أطر التعلم الرياضية والعميقة. هناك الملايين من مبرمجي الكمبيوتر الخبراء ومطوري البرامج الذين يرغبون في دمج وإنشاء منتجات جديدة تستخدم اكتشاف الكائنات. لكن هذه التكنولوجيا تبقى بعيدة عن متناول أيديهم بسبب الطريق الإضافي والمعقد لفهمها واستخدامها العملي.
لقد أدرك فريقي هذه المشكلة منذ عدة أشهر ، وهذا هو السبب الذي جعلني أنا وجون أولافينوا قد أنشأوا ImageAI ، وهي مكتبة ثعبان تتيح للمبرمجين ومطوري البرامج دمج تقنيات الرؤية الحديثة للكمبيوتر في تطبيقاتهم الحالية والجديدة باستخدام خطوط قليلة فقط. من الكود.
https://github.com/OlafenwaMoses/ImageAI
لتنفيذ كشف الكائن باستخدام ImageAI ، كل ما عليك القيام به هو
تثبيت Python على نظام الكمبيوتر الخاص بك
تثبيت ImageAI واعتمادياتها
3. قم بتنزيل ملف نموذج اكتشاف الكائن
4. قم بتشغيل أكواد العينة (التي لا تزيد عن 10 أسطر)
الآن دعونا نبدأ.
1) قم بتنزيل وتثبيت Python 3 من موقع Python Language الرسمي
https://python.org
2) تثبيت الاعتمادات التالية عبر النقطة:
أنا. Tensorflow
تثبيت نقطة tensorflow
ثانيا. نمباي
نقطة تثبيت numpy
ثالثا. SciPy
تثبيت نقطة scipy
د. مكتبة برمجية مفتوحة للرؤية الحاسوبية
نقطة تثبيت opencv-python
سادة
نقطة تثبيت وسادة
السادس. Matplotlib
pip تثبيت matplotlib
السابع. H5py
نقطة تثبيت h5py
الثامن. Keras
نقطة تثبيت keras
التاسع. ImageAI
pip3 تثبيت https://github.com/OlafenwaMoses/ImageAI/releases/download/2.0.2/imageai-2.0.2-py3-none-any.whl
3) قم بتنزيل ملف نموذج RetinaNet الذي سيتم استخدامه لكشف الكائن عبر هذا الرابط.
عظيم. الآن بعد أن قمت بتثبيت التبعيات ، فأنت على استعداد لكتابة أول كود لكشف الكائن. قم بإنشاء ملف بايثون واعطيه اسما (على سبيل المثال ، FirstDetection.py) ، ثم اكتب الكود أدناه. انسخ ملف نموذج RetinaNet والصورة التي تريد اكتشافها في المجلد الذي يحتوي على ملف python.
FirstDetection.py
ثم قم بتشغيل التعليمات البرمجية وانتظر أثناء طباعة النتائج في وحدة التحكم. بمجرد أن تتم طباعة النتيجة إلى وحدة التحكم ، انتقل إلى المجلد الذي يكون فيه FirstDetection.py موجودًا وسوف تعثر على صورة جديدة محفوظة. ألق نظرة على عيّنة من الصورتين أدناه ، وحفظ الصور الجديدة بعد الكشف.
قبل الكشف عن:
هذا الصورة بعد اجراء التحليل والتعرف على مكونات الصورة وتحديدة ما هية
نتائج وحدة التحكم للصورة أعلاه:
الشخص: 55.8402955532074
الشخص: 53.21805477142334
الشخص: 69.25139427185059
الشخص: 76.41745209693909
دراجة هوائية: 80.30363917350769
الشخص: 83.58567953109741
الشخص: 89.06581997871399
شاحنة: 63.10953497886658
الشخص: 69.82483863830566
الشخص: 77.11606621742249
الحافلة: 98.00949096679688
شاحنة: 84.02870297431946
السيارة: 71.98476791381836
الآن دعونا نشرح كيفية عمل الرمز ضمن 10 اسطر.
في الأسطر الثلاثة المذكورة أعلاه ، استوردنا فئة اكتشاف كائنات ImageAI في السطر الأول ، واستوردنا فئة python os في السطر الثاني وحددنا متغيرًا للاحتفاظ بالمسار إلى المجلد حيث يوجد ملف python ، ملف وصور نموذج RetinaNet السطر الثالث.
في 5 أسطر من الكود أعلاه ، قمنا بتعريف فئة اكتشاف الكائنات في السطر الأول ، قم بتعيين نوع الطراز إلى RetinaNet في السطر الثاني ، قم بتعيين مسار النموذج إلى مسار نموذج شبكتنا في السطر الثالث ، وقم بتحميل النموذج إلى فئة كشف الكائن في السطر الرابع ، ثم قمنا باستدعاء وظيفة الكشف وتحليلها في مسار صورة المدخلات ومسار صورة الخرج في السطر الخامس.
في سطرين من الكود أعلاه ، نقوم بالتكرار على جميع النتائج التي ترجعها الدالة detector.detectObjectsFromImage في السطر الأول ، ثم نطبع اسم ونسبة احتمال النموذج على كل كائن يتم اكتشافه في الصورة في السطر الثاني.
يدعم ImageAI العديد من التخصيص القوي لعملية اكتشاف الكائن. واحد منها هو القدرة على استخراج صورة كل كائن تم اكتشافه في الصورة. ببساطة عن طريق تحليل المعلمة الإضافية extract_detected_objects = True في وظيفة detectObjectsFromImage كما هو موضح أدناه ، ستقوم فئة اكتشاف الكائن بإنشاء مجلد لكائنات الصور ، واستخراج كل صورة ، وحفظ كل منها إلى المجلد الجديد الذي تم إنشاؤه وإرجاع صفيف إضافي يحتوي على المسار لكل من الصور.
دعونا نطبقها على الصورة الأولى ونرى بعض الصور من النتيجة أدناه:
تم استخراج جميع الصور من المشاة بشكل جيد. لم أقم بتضمين كل منهم أنهم سيأخذون مساحة غير ضرورية.
يوفر ImageAI العديد من الميزات المفيدة لعمليات التخصيص والإنتاج القادرة على النشر لمهام اكتشاف الكائن. بعض الميزات المدعومة هي:
– تعديل الحد الأدنى من الاحتمال: بشكل افتراضي ، لن يتم عرض أو الكشف عن الأشياء المكتشفة بنسبة احتمالية أقل من 50. يمكنك زيادة هذه القيمة لحالات اليقين العالية أو تقليل القيمة للحالات التي يلزم فيها اكتشاف جميع الكائنات المحتملة.
– اكتشاف الكائنات المخصصة: باستخدام فئة CustomObject المقدمة ، يمكنك إخبار فئة الكشف بالإبلاغ عن عمليات الكشف على رقم واحد أو عدد قليل من الكائنات الفريدة.
– سرعات الكشف: يمكنك تقليل الوقت المستغرق لاكتشاف صورة عن طريق تعيين سرعة سرعة الكشف إلى “سريع” و “أسرع” و “أسرع”.
– أنواع الإدخال: يمكنك تحديد مسار الملف وتعديله إلى صورة أو مجموعة Numpy أو دفق ملف لصورة كصورة إدخال
– أنواع المخرجات: يمكنك تحديد أن تقوم وظيفة detectObjectsFromImage بإرجاع الصورة في شكل ملف أو مجموعة Numpy
يمكنك العثور على جميع التفاصيل والتوثيق حول كيفية الاستفادة من الميزات المذكورة أعلاه ، بالإضافة إلى ميزات رؤية الكمبيوتر الأخرى الموجودة في ImageAI في مستودع GitHub الرسمي.
https://github.com/OlafenwaMoses/ImageAI
0 responses on "تعرف على الاشياء ضمن 10 اسطر من البرمجة"