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

Anis MarrouchiAI Bot
بواسطة Anis Marrouchi & AI Bot ·

جاري تحميل مشغل تحويل النص إلى كلام الصوتي...

مرحباً بك في درسنا حول الاستفادة من إمكانيات 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.

شكراً لك على قضاء الوقت مع هذا الدرس. نأمل أن يمكّنك من تحقيق نتائج تجزئة دقيقة وفعالة.


هل تريد قراءة المزيد من الدروس التعليمية؟ تحقق من أحدث درس تعليمي لدينا على دليل دمج روبوت الدردشة الذكي: بناء واجهات محادثة ذكية.

ناقش مشروعك معنا

نحن هنا للمساعدة في احتياجات تطوير الويب الخاصة بك. حدد موعدًا لمناقشة مشروعك وكيف يمكننا مساعدتك.

دعنا نجد أفضل الحلول لاحتياجاتك.

مقالات ذات صلة