ما هو اكتشاف الاعتراض باستخدام Tensorflow؟ وكيف يعمل [أمثلة]

نشرت: 2021-06-18

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

كشف الأشياء - ماذا يعني ذلك؟

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

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

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

لماذا كشف الاشياء؟

نظرًا للقدرات الفريدة الخاصة باكتشاف الكائنات ، يمكن تطبيق العملية في الكثير من المهام المهمة ، مثل:

  • عد الناس في حشد من الناس.
  • السياقة في حالة السيارات ذاتية القيادة.
  • المراقبة بالفيديو.
  • كشف الوجه.
  • إكتشاف عيب خلقي

مناهج الكشف عن الأجسام

قد يتم تدريب الخوارزميات المستخدمة في طريقة اكتشاف الكائن قبل استخدامها أو بدون إشراف.

يتم استخدام طريقتين ، أي النهج القائم على التعلم الآلي والتعلم العميق للكشف عن الأشياء.

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

العمل على طريقة الكشف عن الكائن

يمكن تنفيذ مهمة الكشف عن الكائن من خلال الخطوات التالية:

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

الكشف عن الكائن باستخدام TensorFlow

يمكن تعريف TensorFlow على أنها مكتبة مفتوحة المصدر للتعلم الآلي وقد تم استخدامها على نطاق واسع في العديد من التطبيقات مثل التعرف على الصور والبحث الصوتي والتعرف على الكائنات وما إلى ذلك. يتم توفير كل من واجهات برمجة تطبيقات Python و C ++ بواسطة TensorFlow.

  • كل من خوارزميات التعلم العميق وخوارزميات التعلم الآلي موجودة في TensorFlow.
  • يتم استخدام Python كلغة أمامية وتعمل أيضًا بكفاءة في C ++.
  • يتم إنشاء رسم بياني حسابي بواسطة المطورين باستخدام TensorFlow.
  • يتم تمثيل العمليات الحسابية بواسطة العقد في الرسم البياني ويتم تمثيل البيانات من خلال التوصيلات.

تم تطوير TensorFlow لإجراء بحث حول التعلم الآلي والشبكات العصبية العميقة بواسطة فريق Google Brain داخل مؤسسة أبحاث الذكاء الآلي في Google.

تمنع واجهة برمجة التطبيقات (API) المطورين من كتابة الأكواد من البداية من خلال توفير مجموعة من العمليات المشتركة. يتم تطبيق TensorFlow للكشف عن كائن API لتدريب النماذج على اكتشاف الكائنات. تم بناء إطار العمل فوق TensorFlow. الميزات التي تنتمي إلى TensorFlow لاكتشاف الكائنات هي:

  • تسمى النماذج التي تم تدريبها بالفعل "نموذج حديقة الحيوان" وهي متوفرة في إطار العمل.
  • مجموعات البيانات المستخدمة لتدريب النماذج المختلفة المدربة هي:
  • مجموعة بيانات COCO.
  • مجموعة بيانات KITTI.
  • مجموعة بيانات للصور المفتوحة

يتكون إطار TensorFlow لاكتشاف الكائنات من نماذج مختلفة لها بنية متنوعة وبالتالي درجات دقة مختلفة للتنبؤ. أنواع الهندسة المعمارية للنماذج المدربة بالفعل هي:

1. MobileNet-SSD

تحدد شبكة الالتواء الفردي موقع الصندوق المحيط في مسار واحد. تتكون البنية من طبقة أساسية (MobileNet) مع عدة طبقات من الالتواء. يتم توقع مواقع المربعات المحيطة من خلال العملية على خرائط المعالم. المعلومات الموجودة مع كل مربع محيط مذكورة أدناه:

  • مواضع الإزاحة للمربع المحيط في الزوايا الأربع (cx ، cy ، w ، h).
  • احتمالات الفئة C (c1 ، c2 ، ... cp)

لا يتنبأ SSD بشكل الصندوق بل يتم توقع مواقع الصندوق. يتم تحديد عدد K للمربعات المحيطة لكل موقع في خريطة المعالم. تم بالفعل تعيين شكل المربع المحيط k قبل التدريب الفعلي.

المعادلة التالية تحسب الخسارة.

L = 1 / N (فئة L + صندوق L)

حيث ، N: رقم الصناديق المتطابقة ، الفئة L: فقد softmax ، المربع L: الخطأ المرتبط بالمربعات المتطابقة.

2. MobileNet

يتم تضمين الالتواء القياسي في التفاف و التفاف هو نقطة أي 1 * 1 تلافيف. يتم تقليل الحساب مع تقليل حجم النموذج من خلال التحليل إلى عوامل.

3. التأسيس- SSD

لدى Inception-SSD نفس بنية MobileNet-SSD ، ومع ذلك ، فإن قاعدة البنية في حالة MobileNet-SSD كانت MobileNet ، وهنا هو نموذج التأسيس.

4. أسرع RCNN

يعتمد التنبؤ بموقع الكائن على خوارزميات اقتراح المنطقة. قللت شبكات الكشف من وقت تشغيلها من خلال التقدم في SSPnet و Fast R-CNN. يتم إنشاء خريطة ميزات تلافيفية عند إدخال صورة إدخال في الشبكة العصبية في حالة Faster RCNN.

يتم بعد ذلك تحديد اقتراح المنطقة من خلال خريطة الميزات التلافيفية وتشويهها في مربعات. يتم بعد ذلك إعادة تشكيل المربعات إلى حجم يتم إصلاحه من خلال طبقة تجميع ROL (طبقة المنطقة ذات الاهتمام). ثم يتم استخدامه كمدخل لطبقة متصلة بالكامل.

تُستخدم طبقة softmax للتنبؤ بفئة اقتراح المنطقة من متجه ميزة ROL. كما يتم توقع قيم إزاحة المربع المحيط.

اختيار نموذج TensorFlow لكشف الكائن

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

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

مثال على TensorFlow لاكتشاف الكائنات

لا يتطلب استخدام TensorFlow API للكشف عن الكائنات معرفة مسبقة بالتعلم الآلي أو الشبكات العصبية. سيتم استخدام الملفات التي توفرها واجهة برمجة التطبيقات في الغالب. الشرط الوحيد هو معرفة أساسيات الثعبان.

1. تنزيل TensorFlow

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

في هذه الحالة ، تسمى البيئة الافتراضية obj_detection

conda create -n obj_detection -> لإعداد البيئة تقريبًا

conda تفعيل obj_detection -> لتنشيط البيئة الافتراضية

2. تثبيت التبعيات

  • يجب تثبيت التبعيات التي تتطلبها واجهة برمجة التطبيقات على جهاز الكمبيوتر المحلي.
  • يمكن تثبيت التبعيات بعد تنشيط البيئة الافتراضية.
  • يجب كتابة الأمر التالي

نقطة تثبيت Tensorflow

  • في حالة وجود GPU ، يلزم الأمر التالي

نقطة تثبيت tensorflow-gpu

  • سيتم تثبيت التبعيات الأخرى من خلال الأمر التالي

نقطة تثبيت وسادة Cython lxml jupyter matplotlib Contextlib2 tf_slim

3. تنزيل مخازن البروتوكول المؤقتة (Protobuff)

  • مخازن البروتوكول هي آليات معينة لهيكلة البيانات بشكل تسلسلي مثل XML.
  • يجب تنزيل "Protobuff" من الرابط .
  • استخرج الملفات وانسخ الملفات إلى المجلد الفرعي المسمى "Research" في مجلد "الطرازات" الذي تم تنزيله بالفعل.
  • يجب الانتقال إلى المجلد الذي يحتوي على ملفات protobuf وتشغيل الأمر التالي

protoc object_detection / protos / *. proto –python_out =.

  • سيؤدي التنفيذ الناجح للأمر إلى إنشاء ملف بيثون مقابل كل ملف من الملفات الأولية في مجلد البروتوس تحت اكتشاف الكائن في مجلد النماذج.

خاتمة

يعد اكتشاف الكائن تقنية مطبقة على نطاق واسع في العديد من تطبيقات الوقت الفعلي. لقد تعلمنا أنه يمكن تحقيق هذه التقنية من خلال تطبيق التعلم الآلي أو خوارزميات التعلم العميق.

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

إذا كنت محترفًا من المستوى المتوسط ​​وترغب في تعلم برمجة لغة الثعبان ونشر نماذج ML جنبًا إلى جنب مع الحوسبة السحابية ، فيمكنك الاطلاع على الدورة التدريبية " ماجستير العلوم في التعلم الآلي والذكاء الاصطناعي " التي تقدمها upGrad . ستعمل الدورة المعتمدة بشكل مشترك من IIIT Bangalore & LJMU على مواءمة أهدافك مع تدريب الخبراء وتتيح لك الاستعداد لدخولك في الشركات التي تحلم بها. كل ما تحتاجه هو الحصول على درجة البكالوريوس. يتوفر فريق المساعدة لدينا للرد عليك في حالة وجود أي استفسارات تتعلق بالدورة التدريبية بواسطة upGrad.

قيادة الثورة التكنولوجية التي يقودها الذكاء الاصطناعي

برنامج PG التنفيذي في التعلم الآلي والذكاء الاصطناعي
قدم الآن