مرحبًا بك في وثائق المشروع الخاصة بتجزئة الكائنات وتغيير موضعها. يحتوي هذا المستودع على التعليمات البرمجية لتقسيم كائن في صورة معينة بناءً على مطالبة نصية ثم نقل الكائن إلى موضع جديد داخل نفس المشهد. إنه يستفيد من نماذج الذكاء الاصطناعي التوليدية المتطورة لإنجاز هذه المهمة بطريقة سهلة الاستخدام.
يتضمن هذا المشروع مهمتين رئيسيتين تهدفان إلى تحرير صور المنتج في مرحلة ما بعد الإنتاج، خاصة لأغراض التجارة الإلكترونية.
المهمة 1: تقسيم كائن في الصورة إلى شرائح بناءً على موجه نصي (على سبيل المثال، "الرف") وتمييزه باستخدام قناع أحمر.
المهمة 2: تحريك الكائن داخل المشهد عن طريق إزاحته في اتجاهي x وy، كما هو محدد من قبل المستخدم.
على سبيل المثال، قد يكون لديك صورة تحتوي على "رف". يمكنك تشغيل التقسيم لتسليط الضوء على جميع الرفوف في الصورة. بعد ذلك، يمكنك نقل الرف المحدد داخل المشهد باستخدام إزاحات البكسل.
تجزئة الكائنات المستندة إلى النص: يحدد الكائنات باستخدام مطالبات الفئة مثل "الرف" ويسلط الضوء عليها.
Position Shift: يحرك الكائن بقيم البكسل في الاتجاهين x (أفقي) وy (عمودي).
النماذج المعدة مسبقًا: تستفيد من النماذج الموجودة مثل SAM (Segment Anything Model) وStable Diffusion Inpainting لمعالجة الكائنات دون الحاجة إلى إعادة التدريب.
لإعداد المشروع محليًا، اتبع الخطوات التالية:
استنساخ المستودع:
git clone https://github.com/your-repo/object-segmentation-shift.git
cd object-segmentation-shift
إنشاء وتفعيل بيئة افتراضية:
python -m venv venv
source venv/bin/activate # On Windows, use `venvScriptsactivate`
تثبيت التبعيات:
pip install -r requirements.txt
لتقسيم كائن في صورة بناءً على موجه فئة:
python run.py --image ./example.jpg --class shelf --output ./generated.png
سيأخذ هذا الأمر example.jpg
، ويقسم كافة مثيلات الكائن المحدد في موجه الفئة (على سبيل المثال، "الرف")، ويخرج صورة بأقنعة حمراء على تلك الكائنات.
لتحويل الكائن المجزأ في الصورة:
python run.py --image ./example.jpg --class shelf --x 80 --y 0
سيؤدي هذا إلى تحريك الرف المحدد بمقدار 80 بكسل إلى اليمين و0 بكسل في الاتجاه الرأسي.
فيما يلي نتائج تطبيق الخوارزمية على عينات الصور:
صورة الإدخال | التقسيم (المهمة 1) | كائن تم نقله (المهمة 2) |
---|---|---|
بيانات | الدقة1 | الدقة2 |
المهمة 1: يتم تمييز الكائن باللون الأحمر.
قبل التجزئة
بعد التجزئة
المهمة 2: يتم إزاحة الكائن وفقًا لقيم x وy المحددة من قبل المستخدم.
حدود الكائنات المعقدة: في الحالات التي تكون فيها الكائنات ذات حدود معقدة أو محجوبة جزئيًا، قد لا يكون التجزئة مثاليًا.
تغيير القطع الأثرية: عند نقل الكائنات ذات الخلفيات المعقدة، فإن ضمان تجديد الخلفية بشكل طبيعي يشكل تحديات.
نماذج الضبط الدقيق: تجربة تقنيات الضبط الدقيق لتحسين دقة التجزئة.
طلاء الخلفية السلس: استخدام تقنيات الطلاء المتقدمة للتعامل مع إعادة بناء الخلفية بعد حركة الكائن.
إذا كنت ترغب في المساهمة في هذا المشروع، يرجى اتباع الخطوات التالية:
هذا المشروع مرخص بموجب ترخيص MIT. راجع ملف الترخيص للحصول على التفاصيل.