استكشف تجزئة الصور والفيديو المحسنة مع SAM 2 لنتائج دقيقة ومدركة للسياق

مرحباً بك في درسنا حول الاستفادة من إمكانيات Segment Anything Model 2 (SAM 2) لتجزئة الصور والفيديو المحسنة. يوفر نهج SAM 2 الموحد دقة محسنة وسرعة ووعياً بالسياق، مما يجعله أداة قوية في مجال الرؤية الحاسوبية. سواء كنت جديداً في الرؤية الحاسوبية أو لديك خبرة كبيرة، تم تصميم هذا الدرس لتعريفك بـ SAM 2 وإرشادك خلال مفاهيمه الأساسية وتقنياته المتقدمة.
تقديم SAM 2
يتعامل SAM 2 مع التحديات المعقدة لتجزئة الفيديو التي تنشأ من حركة الأجسام، والتشوه، والحجب، وظروف الإضاءة المتغيرة. كما أنه بارع في معالجة الصور مع مكاسب كفاءة كبيرة مقارنة بسلفه SAM.
إعداد SAM 2
نموذج SAM 2 متعدد الاستخدامات، مع أحجام نماذج متنوعة لتلبية الاحتياجات الحسابية المختلفة. للبدء، استنسخ المستودع وثبّت التبعيات:
git clone https://github.com/facebookresearch/segment-anything-2.git
cd segment-anything-2
pip install -e .
python setup.py build_ext --inplaceتحضير البيانات لـ SAM 2
لتجزئة الفيديو الفعالة، قم بمعالجة بياناتك بشكل صحيح. أولاً، قم بتنزيل الأوزان لحجم النموذج المناسب:
wget -q https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_large.ptبعد ذلك، قم بتكوين البيئة وتحميل نموذج SAM 2 لمعالجة الفيديو:
import torch
from sam2.build_sam import build_sam2_video_predictor
CHECKPOINT = "checkpoints/sam2_hiera_large.pt"
CONFIG = "sam2_hiera_l.yaml"
sam2_model = build_sam2_video_predictor(CONFIG, CHECKPOINT)تجزئة وتتبع الأجسام
مع SAM 2، يمكنك إجراء التجزئة على الإطارات الفردية وتحسين التنبؤات باستخدام المطالبات الإيجابية والسلبية. ابدأ بتهيئة حالة النموذج وشرح الكائن الأول:
import numpy as np
points = np.array([[703, 303]], dtype=np.float32)
labels = np.array([1])
frame_idx = 0
tracker_id = 1
_, object_ids, mask_logits = sam2_model.add_new_points(
inference_state=inference_state,
frame_idx=frame_idx,
obj_id=tracker_id,
points=points,
labels=labels
)نشر الشروحات
لتوسيع مطالباتك عبر جميع إطارات الفيديو، استخدم طريقة propagate_in_video:
import cv2
import supervision as sv
with sv.VideoSink(output_path, video_info=video_info) as sink:
for frame_idx, object_ids, mask_logits in sam2_model.propagate_in_video(inference_state):
frame = cv2.imread(frames_paths[frame_idx])
masks = (mask_logits > 0.0).cpu().numpy()
# شرح الإطار بأقنعة التجزئة...
sink.write_frame(frame)التقنيات المتقدمة والقيود
يوسع SAM 2 إمكانياته لتتبع أجسام متعددة وعبر مقاطع فيديو متعددة. ومع ذلك، انتبه لقيوده، مثل صعوبة تجزئة الأجسام ذات التفاصيل الدقيقة أو في المشاهد المزدحمة.
الخلاصة
يرفع Segment Anything Model 2 من إمكانيات تطبيقات الرؤية الحاسوبية من خلال توفير تجزئة أسرع وأكثر دقة ومدركة للسياق. يبسط نموذجه الموحد مهام معالجة الصور والفيديو عبر مجموعة متنوعة من الاستخدامات في صناعات مختلفة.
لمزيد من الرؤى حول SAM 2 وتنفيذه، تقدم مدونة Roboflow الرسمية ثروة من المعرفة والتحديثات:
اقرأ دليل SAM 2 المفصل بواسطة Piotr Skalski
يشارك Piotr Skalski، خبير في الرؤية الحاسوبية، ثروته من المعرفة، مما يضمن أن القراء من جميع مستويات المهارة يمكنهم تقدير التطورات التي يقدمها SAM 2.
هل تتطلع إلى تطوير نماذج الرؤية الحاسوبية الخاصة بك؟ استكشف مجموعات البيانات مفتوحة المصدر والنماذج المدربة مسبقاً لمجموعة من الصناعات في Roboflow Universe.
شكراً لك على قضاء الوقت مع هذا الدرس. نأمل أن يمكّنك من تحقيق نتائج تجزئة دقيقة وفعالة.
ناقش مشروعك معنا
نحن هنا للمساعدة في احتياجات تطوير الويب الخاصة بك. حدد موعدًا لمناقشة مشروعك وكيف يمكننا مساعدتك.
دعنا نجد أفضل الحلول لاحتياجاتك.
مقالات ذات صلة

بناء مفسر الأكواد الخاص بك مع توليد الأدوات الديناميكية
تعلم كيفية إنشاء مفسر أكواد مخصص باستخدام التوليد الديناميكي للأدوات والتنفيذ مع o3-mini، مما يتيح حل المشاكل بمرونة وقابلية للتكيف.
الكشف عن أمراض أوراق النبات وتحديدها باستخدام YOLOv4
الكشف عن أمراض أوراق النبات وتحديدها باستخدام YOLOv4: تحقيق دقة 99.99% مع تقنيات الذكاء الاصطناعي المتقدمة

بناء مفسر أكواد مخصص لوكلاء نماذج اللغة الكبيرة
تعلم كيفية إنشاء مفسر أكواد مخصص لوكلاء نماذج اللغة الكبيرة (LLM)، مما يتيح استدعاء الأدوات الديناميكي وتنفيذ الأكواد المعزول لتعزيز المرونة والأمان.