ما هو Detectron2؟
Detectron2 هو نظام برمجي من الجيل التالي من أبحاث فيسبوك للذكاء الاصطناعي (FAIR) يقوم بتنفيذ أحدث خوارزميات اكتشاف وتجزئة الكائنات. إنه إعادة كتابة كاملة لـ Detectron الأصلي، مبني على إطار التعلم العميق PyTorch. تم تصميم Detectron2 ليكون مرنًا وقابلاً للتوسيع، ويوفر مجموعة غنية من النماذج المدربة مسبقًا (“Model Zoo”) ويمكّن الباحثين والمطورين من تدريب ونشر نماذج رؤية الحاسوب المخصصة الخاصة بهم بسرعة.
الميزات الرئيسية
- مدعوم بـ PyTorch: مبني على PyTorch، مما يوفر تصميمًا أكثر نمطية وبديهية مقارنة بسابقه القائم على Caffe2.
- مجموعة نماذج واسعة (Model Zoo): يتضمن مجموعة واسعة من النماذج المدربة مسبقًا لمهام مختلفة، بما في ذلك اكتشاف المربعات المحيطة، وتجزئة المثيلات، والتجزئة الشاملة، واكتشاف النقاط الرئيسية للأشخاص.
- أحدث الخوارزميات: ينفذ العديد من معماريات اكتشاف الكائنات المتطورة مثل Faster R-CNN و Mask R-CNN و RetinaNet.
- أداء عالٍ وقابلية للتوسع: مُحسَّن لكل من السرعة والدقة، وقادر على العمل على وحدات معالجة رسومات فردية أو متعددة.
- نمطي وقابل للتوسيع: مصمم بهيكل نمطي للغاية، مما يسهل تخصيص أو توسيع أو دمج مكونات بحث جديدة.
- التجزئة الشاملة (Panoptic Segmentation): يدعم التجزئة الشاملة، وهي مهمة توحد تجزئة المثيلات (لـ “الأشياء”) والتجزئة الدلالية (لـ “الخلفية”).
حالات الاستخدام
- القيادة الذاتية: تحديد وتتبع المركبات والمشاة وإشارات المرور.
- التصوير الطبي: تجزئة الأورام أو الخلايا أو الأعضاء في الفحوصات الطبية مثل التصوير بالرنين المغناطيسي أو الأشعة المقطعية.
- تحليلات البيع بالتجزئة: اكتشاف المنتجات على الرفوف لإدارة المخزون أو تحليل سلوك العملاء.
- تحليل صور الأقمار الصناعية: تحديد المباني والطرق والميزات الجغرافية الأخرى من الصور الجوية.
- الروبوتات: تمكين الروبوتات من إدراك الكائنات في بيئتها والتفاعل معها.
البدء
فيما يلي مثال بسيط لكيفية إجراء استدلال على صورة باستخدام نموذج Mask R-CNN مدرب مسبقًا مع Detectron2.
أولاً، تأكد من تثبيت Detectron2 باتباع دليل التثبيت الرسمي.
```python import torch import detectron2 from detectron2.utils.logger import setup_logger setup_logger()
import some common libraries
import numpy as np import os, json, cv2, random
import some common detectron2 utilities
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
Load an image
!wget http://images.cocodataset.org/val2017/000000439715.jpg -q -O input.jpg im = cv2.imread(“./input.jpg”)
Create a detectron2 config and a predictor
cfg = get_cfg()
Add project-specific config (e.g., TensorMask) here if you’re not running a model in detectron2’s core
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 # set threshold for this model
Find a model from detectron2’s model zoo. You can use the URL below
cfg.MODEL.WEIGHTS = model_zoo.get_checkpoint_url(“COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml”) predictor = DefaultPredictor(cfg) outputs = predictor(im)
Look at the outputs.
See https://detectron2.readthedocs.io/tutorials/models.html#model-output-format for details
print(outputs[“instances”].pred_classes) print(outputs[“instances”].pred_boxes)
We can use Visualizer to draw the predictions on the image.
v = Visualizer(im[:, :, ::-1], MetadataCatalog.get(cfg.DATASETS.TRAIN[0]), scale=1.2) out = v.draw_instance_predictions(outputs[“instances”].to(“cpu”))
Display the image
from google.colab.patches import cv2_imshow cv2_imshow(out.get_image()[:, :, ::-1])
التسعير
Detectron2 هو مشروع مفتوح المصدر أصدرته أبحاث فيسبوك للذكاء الاصطناعي وهو مجاني تمامًا للاستخدام بموجب ترخيص Apache 2.0.