اكتشاف الكائن وتجزئة المثيلات في Python باستخدام ذكاء بيانات Detectron2 PlatoBlockchain. البحث العمودي. عاي.

كشف الكائن وتجزئة المثيلات في Python باستخدام Detectron2

المُقدّمة

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

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

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

Meta AI's Detectron2 - تجزئة المثيلات واكتشاف الكائنات

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

من المفترض أن تستخدم كمكتبة يمكنك على رأسها بناء مشاريع بحثية. يقدم نموذج حديقة الحيوان مع اعتماد معظم التطبيقات على Mask R-CNN و R-CNNs بشكل عام ، جنبًا إلى جنب مع RetinaNet. لديهم أيضا لائقة جدا توثيق. لنقم بتشغيل سيناريو استدلال نموذجي!

أولاً ، دعنا نثبت التبعيات:

$ pip install pyyaml==5.1
$ pip install 'git+https://github.com/facebookresearch/detectron2.git'

بعد ذلك ، سنقوم باستيراد أدوات Detectron2 المساعدة - وهنا يأتي دور معرفة مجال العمل. يمكنك إنشاء كاشف باستخدام DefaultPredictor class ، عن طريق تمرير كائن التكوين الذي يقوم بإعداده. ال Visualizer يقدم الدعم لتصور النتائج. MetadataCatalog و DatasetCatalog تنتمي إلى واجهة برمجة تطبيقات البيانات الخاصة بـ Detectron2 وتقدم معلومات حول مجموعات البيانات المضمنة بالإضافة إلى البيانات الوصفية الخاصة بها.

دعنا نستورد الفئات والوظائف التي سنستخدمها:

import torch, detectron2
from detectron2.utils.logger import setup_logger
setup_logger()

from detectron2 import model_zoo
from detectron2.engine import DefaultPredictor
from detectron2.config import get_cfg
from detectron2.utils.visualizer import Visualizer
from detectron2.data import MetadataCatalog, DatasetCatalog

باستخدام requests، سنقوم بتنزيل صورة وحفظها في محرك الأقراص المحلي الخاص بنا:

import matplotlib.pyplot as plt
import requests
response = requests.get('http://images.cocodataset.org/val2017/000000439715.jpg')
open("input.jpg", "wb").write(response.content)
    
im = cv2.imread("./input.jpg")
fig, ax = plt.subplots(figsize=(18, 8))
ax.imshow(cv2.cvtColor(im, cv2.COLOR_BGR2RGB))

وينتج عنه:

اكتشاف الكائن وتجزئة المثيلات في Python باستخدام ذكاء بيانات Detectron2 PlatoBlockchain. البحث العمودي. عاي.

الآن ، نقوم بتحميل التكوين ، وسنقوم بإجراء التغييرات إذا لزم الأمر (يتم تشغيل النماذج على وحدة معالجة الرسومات افتراضيًا ، لذلك إذا لم يكن لديك وحدة معالجة الرسومات ، فستحتاج إلى ضبط الجهاز على "وحدة المعالجة المركزية" في التكوين):

cfg = get_cfg()

cfg.merge_from_file(model_zoo.get_config_file("COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml"))
cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = 0.5
cfg.MODEL.WEIGHTS = model_zoo.get_checkpoint_url("COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml")


هنا ، نحدد النموذج الذي نرغب في تشغيله من model_zoo. لقد قمنا باستيراد نموذج تجزئة المثيل ، استنادًا إلى بنية Mask R-CNN ، ومع العمود الفقري ResNet50. اعتمادًا على ما ترغب في تحقيقه (اكتشاف نقطة المفاتيح ، أو تجزئة المثيل ، أو التجزئة الشاملة أو اكتشاف الكائن) ، ستتم تحميل النموذج المناسب.

أخيرًا ، يمكننا بناء متنبئ بهذا cfg وتشغيله على المدخلات! ال Visualizer تُستخدم الفئة لرسم تنبؤات على الصورة (في هذه الحالة ، الحالات المقسمة والفئات والمربعات المحيطة:

predictor = DefaultPredictor(cfg)
outputs = predictor(im)

v = Visualizer(im[:, :, ::-1], MetadataCatalog.get(cfg.DATASETS.TRAIN[0]), scale=1.2)
out = v.draw_instance_predictions(outputs["instances"].to("cpu"))
fig, ax = plt.subplots(figsize=(18, 8))
ax.imshow(out.get_image()[:, :, ::-1])

أخيرًا ، ينتج عن هذا:

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

اكتشاف الكائن وتجزئة المثيلات في Python باستخدام ذكاء بيانات Detectron2 PlatoBlockchain. البحث العمودي. عاي.

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

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

اكتشاف الكائن وتجزئة المثيلات في Python باستخدام ذكاء بيانات Detectron2 PlatoBlockchain. البحث العمودي. عاي.

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

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

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

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

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

وفي الختام

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

في هذا الدليل المختصر ، ألقينا نظرة سريعة على كيفية قيام Detectron2 بجعل تجزئة المثيلات واكتشاف الكائنات أمرًا سهلاً ويمكن الوصول إليه من خلال واجهة برمجة التطبيقات الخاصة بهم ، باستخدام Mask R-CNN.

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

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