تعرف على الاشياء ضمن 10 اسطر من البرمجة

تعرف على الاشياء ضمن 10 اسطر من البرمجة
5 (100%) 3 votes

 

واحدة من المجالات الهامة للذكاء الاصطناعي هو رؤية الكمبيوتر. 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 موجودًا وسوف تعثر على صورة جديدة محفوظة. ألق نظرة على عيّنة من الصورتين أدناه ، وحفظ الصور الجديدة بعد الكشف.

قبل الكشف عن:

901-460x276 تعرف على الاشياء ضمن 10 اسطر من البرمجة

 

هذا الصورة بعد اجراء التحليل والتعرف على مكونات الصورة وتحديدة ما هية

901-460x276 تعرف على الاشياء ضمن 10 اسطر من البرمجة

 

نتائج وحدة التحكم للصورة أعلاه:

الشخص: 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 كما هو موضح أدناه ، ستقوم فئة اكتشاف الكائن بإنشاء مجلد لكائنات الصور ، واستخراج كل صورة ، وحفظ كل منها إلى المجلد الجديد الذي تم إنشاؤه وإرجاع صفيف إضافي يحتوي على المسار لكل من الصور.

 

 

دعونا نطبقها على الصورة الأولى ونرى بعض الصور من النتيجة أدناه:

901-460x276 تعرف على الاشياء ضمن 10 اسطر من البرمجة 901-460x276 تعرف على الاشياء ضمن 10 اسطر من البرمجة 901-460x276 تعرف على الاشياء ضمن 10 اسطر من البرمجة 901-460x276 تعرف على الاشياء ضمن 10 اسطر من البرمجة

 

تم استخراج جميع الصور من المشاة بشكل جيد. لم أقم بتضمين كل منهم أنهم سيأخذون مساحة غير ضرورية.

يوفر ImageAI العديد من الميزات المفيدة لعمليات التخصيص والإنتاج القادرة على النشر لمهام اكتشاف الكائن. بعض الميزات المدعومة هي:

– تعديل الحد الأدنى من الاحتمال: بشكل افتراضي ، لن يتم عرض أو الكشف عن الأشياء المكتشفة بنسبة احتمالية أقل من 50. يمكنك زيادة هذه القيمة لحالات اليقين العالية أو تقليل القيمة للحالات التي يلزم فيها اكتشاف جميع الكائنات المحتملة.

– اكتشاف الكائنات المخصصة: باستخدام فئة CustomObject المقدمة ، يمكنك إخبار فئة الكشف بالإبلاغ عن عمليات الكشف على رقم واحد أو عدد قليل من الكائنات الفريدة.

– سرعات الكشف: يمكنك تقليل الوقت المستغرق لاكتشاف صورة عن طريق تعيين سرعة سرعة الكشف إلى “سريع” و “أسرع” و “أسرع”.

– أنواع الإدخال: يمكنك تحديد مسار الملف وتعديله إلى صورة أو مجموعة Numpy أو دفق ملف لصورة كصورة إدخال

– أنواع المخرجات: يمكنك تحديد أن تقوم وظيفة detectObjectsFromImage بإرجاع الصورة في شكل ملف أو مجموعة Numpy

يمكنك العثور على جميع التفاصيل والتوثيق حول كيفية الاستفادة من الميزات المذكورة أعلاه ، بالإضافة إلى ميزات رؤية الكمبيوتر الأخرى الموجودة في ImageAI في مستودع GitHub الرسمي.

https://github.com/OlafenwaMoses/ImageAI

0 responses on "تعرف على الاشياء ضمن 10 اسطر من البرمجة"

Leave a Message

X