استدلال اكتشاف الكائن في Python باستخدام ذكاء بيانات YOLOv5 و PyTorch PlatoBlockchain. البحث العمودي. عاي.

استدلال اكتشاف الكائن في Python باستخدام YOLOv5 و PyTorch

المُقدّمة

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

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

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

لحسن الحظ للجماهير - طورت Ultralytics واجهة برمجة تطبيقات بسيطة وقوية جدًا ورائعة لاكتشاف الكائنات حول تنفيذ YOLOv5.

في هذا الدليل المختصر ، سنقوم بتنفيذ اكتشاف الكائنات في Python ، مع YOLOv5 الذي تم إنشاؤه بواسطة Ultralytics في PyTorch ، باستخدام مجموعة من الأوزان المدربة مسبقًا والمدربة على MS COCO.

يولوف 5

YOLO (أنت تنظر مرة واحدة فقط) هي منهجية ، بالإضافة إلى مجموعة من النماذج المصممة لاكتشاف الكائنات. منذ البداية في عام 2015 ، تم اقتراح YOLOv1 و YOLOv2 (YOLO9000) و YOLOv3 من قبل نفس المؤلف (المؤلفين) - واستمر مجتمع التعلم العميق في التقدم مفتوح المصدر في السنوات المستمرة.

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

يوفر المشروع أوزانًا مُدرَّبة مسبقًا على MS COCO ، وهي مجموعة بيانات أساسية حول الكائنات في السياق ، والتي يمكن استخدامها لقياس وبناء أنظمة الكشف عن الأشياء العامة - ولكن الأهم من ذلك ، يمكن استخدامها لنقل المعرفة العامة للكائنات في سياق إلى مخصص مجموعات البيانات.

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

قبل المضي قدمًا ، تأكد من أنك قمت بذلك torch و torchvision المثبتة:

! python -m pip install torch torchvision

حصلت YOLOv5 على وثائق مفصلة لا معنى لها وواجهة برمجة تطبيقات بسيطة بشكل جميل ، كما هو موضح في الريبو نفسه ، وفي المثال التالي:

import torch

model = torch.hub.load('ultralytics/yolov5', 'yolov5s')
img = 'https://i.ytimg.com/vi/q71MCWAEfL8/maxresdefault.jpg'  
results = model(img)
fig, ax = plt.subplots(figsize=(16, 12))
ax.imshow(results.render()[0])
plt.show()

الحجة الثانية من hub.load() تحدد الطريقة الأوزان التي نرغب في استخدامها. بالاختيار بين أي مكان yolov5n إلى yolov5l6 - نقوم بالتحميل في أوزان MS COCO مسبقة التدريب. للنماذج المخصصة:

model = torch.hub.load('ultralytics/yolov5', 'custom', path='path_to_weights.pt')

على أي حال - بمجرد تمرير المدخلات من خلال النموذج ، فإن الكائن المرتجع يتضمن طرقًا مفيدة لتفسير النتائج ، وقد اخترنا ذلك render() لهم ، مما يعيد مصفوفة NumPy يمكننا تحويلها إلى ملف imshow() مكالمة. ينتج عن هذا تنسيق جيد:

حفظ النتائج كملفات

يمكنك حفظ نتائج الاستدلال كملف ، باستخدام امتداد results.save() الأسلوب:

results.save(save_dir='results')

سيؤدي هذا إلى إنشاء دليل جديد إذا لم يكن موجودًا بالفعل ، وحفظ نفس الصورة التي رسمناها للتو كملف.

اقتصاص الكائنات

يمكنك أيضًا أن تقرر اقتصاص الكائنات المكتشفة كملفات فردية. في حالتنا ، لكل ملصق يتم اكتشافه ، يمكن استخراج عدد من الصور. يتم تحقيق ذلك بسهولة عبر results.crop() الطريقة التي تخلق أ runs/detect/ الدليل ، مع expN/crops (حيث يزيد N لكل تشغيل) ، حيث يتم إنشاء دليل به صور مقصوصة لكل تسمية:

results.crop()
Saved 1 image to runs/detect/exp2
Saved results to runs/detect/exp2

[{'box': [tensor(295.09409),
   tensor(277.03699),
   tensor(514.16113),
   tensor(494.83691)],
  'conf': tensor(0.25112),
  'cls': tensor(0.),
  'label': 'person 0.25',
  'im': array([[[167, 186, 165],
          [174, 184, 167],
          [173, 184, 164],

يمكنك أيضًا التحقق من بنية ملف الإخراج باستخدام:

تحقق من دليلنا العملي العملي لتعلم Git ، مع أفضل الممارسات ، والمعايير المقبولة في الصناعة ، وورقة الغش المضمنة. توقف عن أوامر Googling Git وفي الواقع تعلم ذلك!

! ls runs/detect/exp2/crops


! ls runs/detect/exp2/crops

عد الكائن

بشكل افتراضي ، عند إجراء الكشف أو طباعة ملف results كائن - ستحصل على عدد الصور التي تم إجراء الاستنتاج عليها لذلك results كائن (YOLOv5 يعمل مع مجموعات من الصور أيضًا) ، ودقته وعدد كل تسمية تم اكتشافها:

print(results)

وينتج عنه:

image 1/1: 720x1280 14 persons, 1 car, 3 buss, 6 traffic lights, 1 backpack, 1 umbrella, 1 handbag
Speed: 35.0ms pre-process, 256.2ms inference, 0.7ms NMS per image at shape (1, 3, 384, 640)

الاستدلال بالنصوص

بدلاً من ذلك ، يمكنك تشغيل البرنامج النصي للكشف ، detect.py، عن طريق استنساخ مستودع YOLOv5:

$ git clone https://github.com/ultralytics/yolov5 
$ cd yolov5
$ pip install -r requirements.txt

ثم الجري:

$ python detect.py --source img.jpg

بدلاً من ذلك ، يمكنك توفير عنوان URL أو ملف فيديو أو مسار إلى دليل بملفات متعددة أو كرة أرضية في مسار لمطابقة ملفات معينة فقط أو رابط YouTube أو أي دفق HTTP آخر. يتم حفظ النتائج في ملف runs/detect الدليل.

المضي قدمًا - التعلم العميق العملي لرؤية الكمبيوتر

طبيعتك الفضولية تجعلك ترغب في الذهاب إلى أبعد من ذلك؟ نوصي بالتحقق من الدورة: "التعلم العميق العملي لرؤية الكمبيوتر باستخدام Python".

استدلال اكتشاف الكائن في Python باستخدام ذكاء بيانات YOLOv5 و PyTorch PlatoBlockchain. البحث العمودي. عاي.

دورة أخرى في الرؤية الحاسوبية؟

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

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

ماذا يوجد في الداخل؟

  • المبادئ الأولى للرؤية وكيف يمكن تعليم أجهزة الكمبيوتر "الرؤية"
  • مهام وتطبيقات مختلفة للرؤية الحاسوبية
  • أدوات التجارة التي ستجعل عملك أسهل
  • البحث عن مجموعات البيانات وإنشائها واستخدامها للرؤية الحاسوبية
  • نظرية وتطبيق الشبكات العصبية التلافيفية
  • التعامل مع تحول المجال والتواجد المشترك والتحيزات الأخرى في مجموعات البيانات
  • نقل التعلم والاستفادة من وقت تدريب الآخرين والموارد الحسابية لصالحك
  • بناء وتدريب مصنف حديث لسرطان الثدي
  • كيفية تطبيق جرعة صحية من الشك على الأفكار السائدة وفهم الآثار المترتبة على التقنيات المعتمدة على نطاق واسع
  • تصور "الفضاء المفهوم" لـ ConvNet باستخدام t-SNE و PCA
  • دراسات حالة عن كيفية استخدام الشركات لتقنيات الرؤية الحاسوبية لتحقيق نتائج أفضل
  • تقييم النموذج المناسب ، تصور الفضاء الكامن وتحديد انتباه النموذج
  • إجراء بحث في المجال ومعالجة مجموعات البيانات الخاصة بك وإنشاء اختبارات نموذجية
  • أحدث البنيات ، تطور الأفكار ، ما الذي يجعلها فريدة من نوعها وكيفية تنفيذها
  • KerasCV - مكتبة العمل قيد التقدم لإنشاء خطوط الأنابيب والنماذج الحديثة
  • كيف تحلل وتقرأ الأوراق وتنفذها بنفسك
  • اختيار النماذج حسب التطبيق الخاص بك
  • إنشاء خط أنابيب تعلم آلي شامل
  • المناظر الطبيعية والحدس في اكتشاف الكائنات باستخدام شبكات R-CNN و RetinaNets و SSDs و YOLO أسرع
  • المثيل والتجزئة الدلالية
  • التعرف على الكائنات في الوقت الفعلي باستخدام YOLOv5
  • تدريب كاشفات الأجسام YOLOv5
  • العمل مع المحولات باستخدام KerasNLP (مكتبة WIP ذات قوة الصناعة)
  • دمج المحولات مع ConvNets لإنشاء تسميات توضيحية للصور
  • ديب دريم

وفي الختام

في هذا الدليل المختصر ، ألقينا نظرة على كيفية إجراء اكتشاف الكائنات باستخدام YOLOv5 المصمم باستخدام PyTorch.

الطابع الزمني:

اكثر من ستاكابوز