حذف اشیا و افراد از عکس با هوش مصنوعی؛ آموزش کامل Object Removal
در این راهنما یاد میگیرید چگونه افراد، اشیا، سیم، سایه و عناصر مزاحم را با هوش مصنوعی از عکس حذف کنید و یک سرویس فنی Object Removal بسازید.
حذف اشیا از عکس با هوش مصنوعی چیست؟
حذف اشیا از عکس با هوش مصنوعی فرایندی است که در آن یک شخص، وسیله یا عنصر مزاحم انتخاب و با محتوایی متناسب با محیط اطراف جایگزین میشود.
فرض کنید در تصویر ساحل، یک سطل زباله در گوشه عکس قرار دارد. ابزار Object Removal فقط سطل را پاک نمیکند؛ باید شن، سایه، بافت زمین و بخشهایی از پسزمینه را که پشت سطل پنهان بودهاند بازسازی کند.
این فرایند معمولاً با نامهای زیر شناخته میشود:
- Object Removal
- Generative Remove
- Magic Eraser
- Generative Fill
- Cleanup
- Content-Aware Fill
- Image Inpainting
- حذف سوژه از عکس
- پاککردن عناصر مزاحم
کیفیت نتیجه به اندازه و موقعیت سوژه، پیچیدگی پسزمینه، دقت انتخاب یا Mask و توانایی مدل هوش مصنوعی بستگی دارد.
هوش مصنوعی چگونه یک شیء را از عکس حذف میکند؟
سیستمهای حذف اشیا معمولاً سه ورودی دارند:
- تصویر اصلی
- ماسک ناحیهای که باید حذف شود
- پرامپت اختیاری برای توصیف محتوای جایگزین
گردشکار ساده به این صورت است:
تصویر اصلی
↓
تشخیص یا انتخاب شیء
↓
ساخت Mask
↓
تحلیل محیط اطراف ناحیه
↓
حذف پیکسلهای انتخابشده
↓
بازسازی پسزمینه با Inpainting
↓
هماهنگکردن نور، رنگ و بافت
↓
کنترل کیفیت خروجی
مدل باید حدس بزند پشت جسم حذفشده چه چیزی قرار داشته است. این حدس همیشه حقیقت تاریخی تصویر نیست؛ بلکه بازسازی احتمالی براساس بافت اطراف و دانش مدل است.
برای مثال، اگر شخصی جلوی یک ساختمان ایستاده باشد، هوش مصنوعی ممکن است پنجره یا دیوار پشت او را بسازد، اما تضمینی وجود ندارد که طرح واقعی ساختمان دقیقاً همان بوده باشد.
تفاوت حذف ساده با Generative Fill
روشهای حذف اشیا را میتوان در سه گروه قرار داد.
| روش | نحوه بازسازی | کاربرد مناسب |
|---|---|---|
| Clone و Healing | کپیکردن پیکسلهای اطراف | لکه و اشیای کوچک |
| Inpainting کلاسیک | انتشار رنگ و بافت از مرزها | خراش، سیم و ناحیه ساده |
| Generative Inpainting | تولید محتوای جدید با مدل AI | افراد، اشیای بزرگ و پسزمینه پیچیده |
روش Clone Stamp به کاربر اجازه میدهد بخشی از تصویر را روی قسمت دیگری کپی کند. این روش دقیق است، اما به مهارت و زمان نیاز دارد.
Inpainting کلاسیک برای ناحیههای باریک و ساده مناسب است. OpenCV الگوریتمهای کلاسیک Inpainting را برای بازسازی ناحیه ماسکشده براساس پیکسلهای اطراف ارائه میکند. راهنمای رسمی Inpainting در OpenCV
Generative Inpainting از مدلهای مولد استفاده میکند و میتواند محتوایی بسازد که در تصویر اولیه قابل مشاهده نبوده است. این روش برای ناحیههای بزرگ توانمندتر است، اما ممکن است جزئیات نادرست تولید کند.
چه چیزهایی را میتوان از عکس حذف کرد؟
ابزارهای هوش مصنوعی میتوانند برای حذف این موارد استفاده شوند:
- افراد رهگذر
- خودروهای اضافی
- کابل و سیم برق
- تیر برق
- تابلوهای مزاحم
- سطل زباله
- صندلی و وسایل اضافه
- لکه و گردوغبار
- بازتاب ناخواسته
- سایههای مزاحم
- اشیای روی میز
- چین یا لکه پسزمینه
- حیوان یا پرنده ناخواسته
- اجسام اضافه در عکس محصول
- تجهیزات عکاسی
- عناصر کوچک در آسمان
- نوشتهای که خودتان حق ویرایش آن را دارید
حذف یک شیء کوچک روی دیوار ساده بسیار آسانتر از حذف فردی است که جلوی چند نفر دیگر ایستاده و بخش بزرگی از آنها را پوشانده است.
چه مواردی سختتر حذف میشوند؟
موارد زیر به پردازش و اصلاح بیشتری نیاز دارند:
- سوژههای بزرگ در مرکز تصویر
- اشیایی که روی صورت قرار گرفتهاند
- افراد روی پسزمینه شلوغ
- اجسام روی الگوهای منظم
- سوژههای قرارگرفته روی نوشته
- اشیای دارای سایه و بازتاب قوی
- نردهها، مو، شاخه و شبکههای پیچیده
- اشیایی که چند سطح مختلف را پوشاندهاند
- سوژههایی که پشت آنها اطلاعات مهمی وجود داشته است
- عناصر روی آینه، شیشه یا آب
- اجسام نزدیک لبه تصویر
اگر یک شخص جلوی صورت فرد دیگری قرار گرفته باشد، هوش مصنوعی نمیتواند چهره واقعی پنهانشده را بازیابی کند. فقط تصویری احتمالی تولید خواهد کرد.
آموزش حذف اشیا از عکس با هوش مصنوعی
مرحله اول: نسخه اصلی را حفظ کنید
پیش از ویرایش، یک نسخه از فایل اصلی نگه دارید. بهتر است ابزار خروجی را بهصورت Copy ذخیره کند تا امکان مقایسه یا بازگشت وجود داشته باشد.
اگر عکس RAW در اختیار دارید، ابتدا نور، White Balance و اعوجاج لنز را اصلاح کنید و سپس سراغ حذف اشیا بروید.
مرحله دوم: روی سوژه زوم کنید
قبل از انتخاب شیء، تصویر را بزرگ کنید. مرزهای مو، دست، لباس، سیم یا سایه ممکن است در نمای کوچک دیده نشوند.
ماسک ناقص باعث باقیماندن لبههای شیء میشود و ماسک بیشازحد بزرگ نیز بخشی از محیط سالم را بازسازی میکند.
مرحله سوم: سوژه را کمی بزرگتر انتخاب کنید
ماسک باید تمام شیء، حاشیههای آن و در صورت لزوم سایه مرتبط را پوشش دهد.
برای نمونه، هنگام حذف یک صندلی این موارد را بررسی کنید:
- بدنه صندلی
- پایهها
- سایه روی زمین
- بازتاب در سطح براق
- فاصله میان پایهها
- ناحیه تماس پایه با زمین
گاهی بهتر است سایه را در مرحلهای جداگانه حذف کنید تا مدل کنترل بیشتری داشته باشد.
مرحله چهارم: حذف را اجرا کنید
اگر پسزمینه ساده است، ابتدا بدون پرامپت یا با پرامپت کوتاه نتیجه بگیرید. بعضی ابزارها با Mask و بافت اطراف بهتنهایی نتیجه بهتری میسازند.
برای پسزمینه پیچیده، محتوای مورد انتظار را توضیح دهید:
Remove the selected object and continue the plain white wall naturally.
Preserve the original lighting, perspective, texture and shadows.
مرحله پنجم: ناحیه بازسازیشده را بررسی کنید
به این موارد توجه کنید:
- خطوط پرسپکتیو شکسته نشده باشند.
- الگوی کاشی یا آجر ادامه پیدا کند.
- بافت زمین تکراری نباشد.
- سایه شیء باقی نمانده باشد.
- بازتاب جسم حذف شده باشد.
- لبه سوژه قبلی دیده نشود.
- نویز و وضوح ناحیه با بقیه عکس هماهنگ باشد.
- AI شیء جدیدی اضافه نکرده باشد.
مرحله ششم: اصلاح را در چند مرحله انجام دهید
برای حذف چند عنصر، همه آنها را یکجا انتخاب نکنید. از بزرگترین یا مستقلترین سوژه شروع کنید و عناصر دیگر را مرحلهبهمرحله حذف کنید.
این روش عیبیابی و انتخاب بهترین خروجی را سادهتر میکند.
آموزش حذف افراد از عکس
حذف افراد معمولاً پیچیدهتر از حذف اشیا است، زیرا انسان میتواند بخش بزرگی از محیط، زمین و افراد دیگر را بپوشاند.
حذف فرد از پسزمینه
اگر فرد در پسزمینه کوچک است:
- دور بدن او را انتخاب کنید.
- سایه یا انعکاس مرتبط را بررسی کنید.
- Mask را چند پیکسل از مرز بدن بزرگتر بگیرید.
- عملیات حذف را اجرا کنید.
- محیط بازسازیشده را در بزرگنمایی بررسی کنید.
ابزار Magic Eraser در Google Photos میتواند برخی عوامل مزاحم را پیشنهاد دهد و همچنین امکان انتخاب دستی با Brush یا Circle را فراهم میکند. راهنمای رسمی ویرایش عکس در Google Photos
حذف فرد از مرکز تصویر
اگر فرد بخش بزرگی از تصویر را پوشانده است، ابتدا بررسی کنید پشت او چه چیزی قرار دارد.
اگر پسزمینه دیوار، آسمان یا زمین ساده باشد، نتیجه میتواند مناسب باشد. اگر فرد جلوی چهره، نوشته یا معماری پیچیده قرار گرفته باشد، بازسازی دقیق دشوار خواهد بود.
پرامپت پیشنهادی:
فرد انتخابشده را بهطور کامل حذف کن و پسزمینه پشت او را براساس محیط
اطراف بازسازی کن. خطوط زمین، پرسپکتیو، نور، سایهها، رنگ و بافت محیط
باید طبیعی و پیوسته باشند. افراد دیگر، چهرهها و ساختمانها را تغییر نده.
نسخه انگلیسی:
Remove the selected person completely and reconstruct the occluded background
using the surrounding scene. Continue the ground lines, perspective, lighting,
colors and textures naturally. Remove the person's shadow and reflection when
applicable. Do not alter other people, faces, buildings or unrelated areas.
پرامپت عمومی حذف شیء
شیء انتخابشده و تمام آثار مرتبط با آن، شامل سایه و بازتاب، را حذف کن.
پسزمینه را با توجه به محیط اطراف، پرسپکتیو، نور، رنگ، بافت و عمق میدان
بازسازی کن. هیچ عنصر دیگری را تغییر نده و شیء جدیدی اضافه نکن.
پرامپت حذف سیم برق
تمام سیمهای انتخابشده را از آسمان حذف کن. آسمان، ابرها و گرادیان نور
پشت سیمها را بهصورت طبیعی ادامه بده. لبه ساختمان، شاخهها و سایر اجزای
تصویر بدون تغییر باقی بمانند.
برای سیمهای نازک، Brush کوچک و چند مرحله حذف معمولاً نتیجه بهتری از یک ماسک بسیار بزرگ ایجاد میکند.
پرامپت حذف خودرو
خودروی انتخابشده، سایه آن و بازتاب آن روی سطح خیابان را حذف کن. آسفالت،
خطکشی، جدول و نمای ساختمان پشت خودرو را با پرسپکتیو و نور اصلی بازسازی
کن. سایر خودروها، افراد و اجزای تصویر را تغییر نده.
پرامپت حذف وسیله از عکس اتاق
وسیله انتخابشده را از اتاق حذف کن و کف، دیوار و قرنیز پشت آن را بهصورت
طبیعی بازسازی کن. خطوط پرسپکتیو، بافت کف، جهت نور و سایههای محیط حفظ
شوند. چیدمان و سایر وسایل اتاق تغییر نکنند.
پرامپت حذف شیء از عکس محصول
شیء اضافی انتخابشده را حذف کن و پسزمینه استودیویی پشت آن را کاملاً
یکنواخت بازسازی کن. محصول اصلی، شکل، رنگ، نوشته، لوگو، بافت، سایه و
بازتاب آن نباید تغییر کنند. خروجی باید تمیز و مناسب کاتالوگ فروشگاهی باشد.
پرامپت حذف لکه یا خراش
فقط لکهها و خراشهای انتخابشده را ترمیم کن. بافت، دانهبندی، رنگ و نور
سطح اطراف را حفظ کن. جزئیات اصلی تصویر را صاف، تغییر یا بازطراحی نکن.
Negative Prompt پیشنهادی
اگر مدل از Negative Prompt پشتیبانی میکند:
new objects, duplicated objects, altered faces, distorted geometry,
broken perspective, repeated texture, blurry patch, visible seams,
inconsistent lighting, artificial shadows, changed colors, warped lines,
extra people, text, logo, watermark
روش صحیح ساخت Mask
Mask تصویری سیاهوسفید یا دارای Alpha است که ناحیه قابل ویرایش را مشخص میکند. قرارداد رنگ در APIها متفاوت است؛ در بعضی سرویسها سفید به معنای ویرایش و در برخی دیگر به معنای حفظ ناحیه است.
قبل از پیادهسازی، مستندات مدل را بررسی کنید.
ویژگیهای یک Mask مناسب
- تمام شیء را پوشش میدهد.
- کمی حاشیه امن اطراف لبه دارد.
- ناحیه سالم را بیدلیل انتخاب نمیکند.
- سوراخهای داخلی شیء را در نظر میگیرد.
- سایه و انعکاس مرتبط را مشخص میکند.
- رزولوشن و نسبت تصویر آن با عکس برابر است.
Feather در Mask چیست؟
Feather مرز ماسک را نرم میکند. مرز کاملاً سخت ممکن است یک وصله قابل مشاهده ایجاد کند، اما Feather بیشازحد نیز جزئیات اطراف را محو میکند.
مقدار مناسب به رزولوشن و نوع لبه بستگی دارد:
- اشیای دارای لبه سخت: Feather کم
- مو و پارچه: Feather متوسط
- دود، سایه و بازتاب: Feather نرمتر
- خطوط معماری: Feather بسیار محدود
حذف شیء بدون پرامپت یا با پرامپت؟
برای ناحیههای ساده، پرامپت خالی یا دستوری مانند «حذف کن» ممکن است کافی باشد. مدل با استفاده از Context اطراف، فضای خالی را پر میکند.
پرامپت زمانی مفید است که:
- پشت جسم باید دیوار ادامه پیدا کند.
- الگوی کف مشخص است.
- باید آسمان یا منظره بازسازی شود.
- مدل مرتباً شیء دیگری اضافه میکند.
- ناحیه انتخابی بزرگ است.
- نوع سطح پشت جسم مشخص است.
پرامپت نباید داستانی و طولانی باشد. محتوای جایگزین، عناصر ثابت و ویژگیهای بصری مهم را مشخص کنید.
استفاده از Photoshop برای حذف اشیا
Photoshop ابزارهای مختلفی برای حذف عناصر دارد:
- Remove Tool
- Healing Brush
- Spot Healing Brush
- Content-Aware Fill
- Generative Fill
- Clone Stamp
برای نتیجه حرفهای میتوان ابتدا سوژه را با Selection یا Mask مشخص و سپس از Generative Fill استفاده کرد. اگر خروجی مولد بخشی از تصویر را اشتباه ساخت، ابزارهای Clone و Healing برای اصلاح نهایی مفید هستند.
Adobe در نسخههای دسکتاپ، وب و موبایل Photoshop قابلیت اضافهکردن و حذف اشیا و ویرایش هدفمند تصویر را ارائه میکند. صفحه رسمی Adobe Photoshop
چه زمانی Generative Fill بهتر است؟
- سوژه بزرگ است.
- پشت سوژه محتوای جدید لازم دارد.
- بافت محیط پیچیده است.
- حذف کلاسیک فضای کافی برای نمونهبرداری ندارد.
چه زمانی Clone Stamp بهتر است؟
- دقت پیکسلی مهم است.
- الگوی تکرارشونده باید کنترل شود.
- AI جزئیات نامعتبر میسازد.
- تصویر سندی یا حساس است.
- باید مشخصاً از بخش دیگری از همان عکس نمونه برداشته شود.
استفاده از Magic Eraser در Google Photos
در دستگاههای پشتیبانیشده:
- عکس را در Google Photos باز کنید.
- وارد بخش Edit شوید.
- در بخش Actions یا Tools، گزینه Magic Eraser را پیدا کنید.
- پیشنهادهای خودکار را بررسی کنید.
- با Brush یا Circle شیء دیگری را انتخاب کنید.
- نتیجه را تأیید کنید.
- خروجی را با Save Copy ذخیره کنید.
گوگل همچنین گزینه Camouflage را برای کمکردن جلب توجه برخی اشیا ارائه میکند. در مواردی که حذف کامل نتیجه خوبی نمیدهد، کاهش رنگ یا برجستگی شیء میتواند طبیعیتر باشد. راهنمای رسمی Pixel برای Magic Eraser
استفاده از Clean Up در آیفون و مک
در دستگاهها و نسخههای سازگار با Apple Intelligence:
- تصویر را در Photos باز کنید.
- گزینه Edit را انتخاب کنید.
- وارد Clean Up شوید.
- روی عنصر بزنید یا دور آن Brush بکشید.
- در صورت نیاز روی تصویر زوم کنید.
- نتیجه را بررسی و ذخیره کنید.
طبق راهنمای اپل، Clean Up میتواند برخی عناصر مزاحم را بهصورت خودکار مشخص کند. کاربر نیز میتواند با لمس، Brush یا Circle ناحیه را انتخاب کند. اپل همچنین هشدار میدهد که انتخاب روی چهره ممکن است باعث محوشدن پیکسلی آن شود. راهنمای رسمی Clean Up در iPhone
دسترسی به این قابلیت به دستگاه، نسخه سیستمعامل، زبان و منطقه بستگی دارد. شرایط رسمی استفاده از Clean Up
حذف اشیا در عکسهای مختلف
عکس منظره
در عکس منظره معمولاً این موارد حذف میشوند:
- افراد رهگذر
- تابلو
- خودرو
- سیم برق
- زباله
- تجهیزات عکاسی
به خطوط افق، شاخهها، موج آب و الگوی ابرها توجه کنید. تکرار بافت آسمان یا آب سریعاً قابل تشخیص است.
عکس معماری
در تصاویر معماری باید این موارد حفظ شوند:
- خطوط عمودی و افقی
- تقارن
- پرسپکتیو
- الگوی پنجرهها
- آجر، کاشی و نما
- بازتاب شیشه
- نور و سایه
برای بازسازی خطوط معماری، Mask کوچکتر و چند مرحله ویرایش بهتر از انتخاب یک ناحیه بزرگ است.
عکس محصول
در عکس محصول مهمترین اصل، تغییرنکردن خود کالا است:
- شکل محصول
- ابعاد ظاهری
- رنگ
- لوگو
- نوشته
- سطح و متریال
- سایه
- بازتاب
- بستهبندی
در یک عکس فروشگاهی، خروجی زیبا اما نادرست میتواند مشتری را گمراه کند.
عکس پرتره
در پرتره، مدل ممکن است همراه با شیء مزاحم بخشی از صورت، مو یا لباس را تغییر دهد. Mask را بسیار دقیق انتخاب کنید و تصویر اصلی را در بزرگنمایی مقایسه کنید.
عکس قدیمی
برای حذف خراش، لکه و پارگی بهتر است آسیبها در چند مرحله ترمیم شوند. حذف یکجای تمام ناحیه ممکن است چهره یا جزئیات تاریخی را بازسازی و تغییر دهد.
حذف سایه و بازتاب پس از حذف شیء
یکی از نشانههای ویرایش ضعیف، باقیماندن سایه یا بازتاب شیء حذفشده است.
پس از حذف جسم، این مناطق را بررسی کنید:
- سایه روی زمین
- انعکاس روی شیشه
- انعکاس روی آب
- بازتاب روی فلز
- نور رنگی روی دیوار
- فرورفتگی روی مبل یا فرش
- رد تماس روی سطح
- اشیایی که به سمت سوژه نگاه میکنند
گاهی باید شیء، سایه و بازتاب را در سه مرحله جداگانه حذف کرد.
پرامپت پیشنهادی:
Remove the remaining shadow and reflection associated with the deleted object.
Reconstruct the surface using the original lighting direction, material,
texture and perspective. Do not flatten the natural shadows of the scene.
جلوگیری از بافتهای تکراری
مدل ممکن است قسمت کوچکی از زمین، چمن یا دیوار را چند بار تکرار کند. برای تشخیص این مشکل:
- تصویر را افقی Flip کنید.
- روی ناحیه ویرایش زوم کنید.
- الگوهای مشابه را جستوجو کنید.
- تصویر را با نسخه اصلی مقایسه کنید.
- خطوط و دانهبندی را بررسی کنید.
برای اصلاح، بخش تکراری را با Mask کوچک انتخاب و دوباره تولید کنید یا از Clone Stamp با نمونه متفاوت استفاده کنید.
روش کلاسیک Inpainting با Python و OpenCV
برای خراش، سیم، لکه یا ناحیههای کوچک میتوان از OpenCV استفاده کرد.
در این مثال:
input.jpgتصویر اصلی است.mask.pngیک تصویر تککاناله است.- پیکسلهای سفید Mask ناحیه ترمیم را مشخص میکنند.
import cv2
image = cv2.imread("input.jpg")
mask = cv2.imread("mask.png", cv2.IMREAD_GRAYSCALE)
if image is None:
raise ValueError("Input image could not be loaded")
if mask is None:
raise ValueError("Mask could not be loaded")
if image.shape[:2] != mask.shape[:2]:
raise ValueError("Image and mask dimensions must match")
result_telea = cv2.inpaint(
image,
mask,
inpaintRadius=3,
flags=cv2.INPAINT_TELEA
)
result_ns = cv2.inpaint(
image,
mask,
inpaintRadius=3,
flags=cv2.INPAINT_NS
)
cv2.imwrite("result-telea.jpg", result_telea)
cv2.imwrite("result-navier-stokes.jpg", result_ns)
این روش مدل مولد نیست و نمیتواند یک پسزمینه پیچیده را از صفر تخیل کند. مزیت آن اجرای محلی، سرعت و رفتار نسبتاً قابل پیشبینی برای آسیبهای کوچک است.
ساخت Mask با OpenCV
اگر محدوده شیء را بهصورت چندضلعی میدانید:
import cv2
import numpy as np
image = cv2.imread("input.jpg")
height, width = image.shape[:2]
mask = np.zeros((height, width), dtype=np.uint8)
polygon = np.array([
[420, 210],
[560, 220],
[590, 480],
[400, 470]
], dtype=np.int32)
cv2.fillPoly(mask, [polygon], 255)
cv2.imwrite("mask.png", mask)
در یک اپلیکیشن واقعی، کاربر میتواند با Brush روی Canvas ماسک را رسم کند.
معماری فنی سرویس حذف اشیا
کاربر
↓
آپلود تصویر
↓
نمایش در Mask Editor
↓
رسم یا تشخیص خودکار شیء
↓
Backend
↓
اعتبارسنجی تصویر و Mask
↓
ساخت Job
↓
صف پردازش
↓
مدل Inpainting
↓
کنترل کیفیت
↓
ذخیره موقت خروجی
↓
نمایش قبل و بعد
ساختار Job پیشنهادی
{
"id": "edit_b790f2",
"operation": "object_removal",
"status": "queued",
"input_image_key": "private/uploads/input-402.jpg",
"mask_image_key": "private/masks/mask-402.png",
"prompt": "continue the stone wall naturally",
"model": "SELECTED_IMAGE_EDIT_MODEL",
"created_at": "2026-07-17T15:30:00Z",
"expires_at": "2026-07-18T15:30:00Z"
}
اعتبارسنجی Mask در Backend
پیش از ارسال درخواست بررسی کنید:
- ابعاد Mask با عکس یکسان باشد.
- Mask حداقل یک ناحیه قابل ویرایش داشته باشد.
- تمام تصویر بدون دلیل انتخاب نشده باشد.
- فرمت Mask توسط مدل پشتیبانی شود.
- کانال Alpha درست تفسیر شود.
- حجم فایل محدود باشد.
- جهت تصویر براساس EXIF اصلاح شده باشد.
- پس از حذف EXIF، ابعاد تصویر و Mask هماهنگ بمانند.
نمونه بررسی ساده با Node.js:
function validateMask({
imageWidth,
imageHeight,
maskWidth,
maskHeight,
selectedPixelRatio,
}) {
if (
imageWidth !== maskWidth ||
imageHeight !== maskHeight
) {
throw new Error("Image and mask dimensions must match");
}
if (selectedPixelRatio < 0.0001) {
throw new Error("Mask is empty");
}
if (selectedPixelRatio > 0.7) {
throw new Error("Selected area is too large");
}
return true;
}
محدودیت ۷۰ درصد فقط یک نمونه سیاست محصول است و باید متناسب با کاربرد تنظیم شود.
اتصال سرویس ویرایش عکس به API درواره
درواره ابزار آماده ویرایش عکس نیست؛ یک پلتفرم API هوش مصنوعی است که توسعهدهندگان میتوانند از طریق آن به مدلهای مختلف دسترسی داشته باشند.
بسته به مدلهای فعال در کاتالوگ، میتوان قابلیتهایی مانند این موارد را بررسی کرد:
- تولید تصویر
- Image-to-Image
- ویرایش تصویر
- Inpainting
- استفاده از Mask
- تحلیل تصویر
- ساخت پرامپت
- ارزیابی خروجی ویرایششده
هر مدل تولید تصویر الزاماً از Mask یا Inpainting پشتیبانی نمیکند. پیش از پیادهسازی، مستندات مدل انتخابی را بررسی کنید و مطمئن شوید:
- تصویر ورودی را میپذیرد.
- ویرایش تصویر را پشتیبانی میکند.
- Mask را قبول میکند.
- قرارداد سیاه و سفید Mask مشخص است.
- فرمت پاسخ و محدودیت اندازه را میدانید.
- مجوز استفاده تجاری متناسب با پروژه است.
برای شروع میتوانید در درواره ثبتنام کنید، API Key بسازید و مدل مناسب را از کاتالوگ فعلی انتخاب کنید.
Base URL استاندارد درواره:
https://api.darvareh.ir/v1
کلید API باید فقط در Backend نگهداری شود.
تحلیل کیفیت خروجی با مدل Vision
پس از حذف شیء، میتوان تصویر اصلی، Mask و خروجی را به یک مدل بینایی داد و از آن خواست اشکالات قابل مشاهده را گزارش کند.
const response = await fetch(
"https://api.darvareh.ir/v1/chat/completions",
{
method: "POST",
headers: {
Authorization: `Bearer ${process.env.DARVAREH_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: process.env.DARVAREH_VISION_MODEL,
messages: [
{
role: "system",
content: `
Inspect an object-removal edit.
Identify only visible editing defects.
Do not claim to know what was truly behind the removed object.
Return valid JSON only.
`
},
{
role: "user",
content: [
{
type: "text",
text: `
Evaluate:
object_removed,
visible_residue,
shadow_removed,
reflection_removed,
perspective_consistency,
texture_consistency,
lighting_consistency,
repeated_patterns,
changed_unrelated_areas,
review_required.
`
},
{
type: "image_url",
image_url: {
url: "https://example.com/signed-output.jpg"
}
}
]
}
],
temperature: 0.1
})
}
);
if (!response.ok) {
throw new Error(await response.text());
}
const result = await response.json();
console.log(result.choices[0].message.content);
شناسه مدل بالا باید با یک مدل Vision موجود در کاتالوگ فعلی درواره جایگزین شود. ارزیابی مدل نیز قطعی نیست و در کاربردهای حساس به بازبینی انسانی نیاز دارد.
امنیت تصاویر کاربران
برای یک سرویس آنلاین Object Removal:
- فایلها را در فضای عمومی ذخیره نکنید.
- از Signed URL کوتاهعمر استفاده کنید.
- Metadata مکانی را حذف کنید.
- نوع واقعی فایل را بررسی کنید.
- محدودیت حجم و ابعاد تعیین کنید.
- فایلها را با نام تصادفی ذخیره کنید.
- پس از زمان مشخص، ورودی، Mask و خروجی را حذف کنید.
- تصاویر کاربران را بدون رضایت برای آموزش استفاده نکنید.
- امکان حذف فوری تصویر را فراهم کنید.
- دسترسی اپراتورها را محدود و ثبت کنید.
- API Key را در Frontend قرار ندهید.
- روی Endpoint آپلود Rate Limit اعمال کنید.
کنترل هزینه پردازش
هزینه نهایی ممکن است شامل این موارد باشد:
- آپلود و ذخیرهسازی
- تشخیص خودکار شیء
- تولید Mask
- Inpainting
- چند خروجی جایگزین
- Upscale
- ارزیابی کیفیت
- Retry
- پهنای باند
برای کاهش هزینه:
- عکس و Mask را قبل از فراخوانی مدل اعتبارسنجی کنید.
- پیشنمایش را با وضوح متوسط بسازید.
- فقط نتیجه منتخب را با وضوح بیشتر تولید کنید.
- درخواست تکراری را Cache کنید.
- Retry را فقط برای خطاهای موقت انجام دهید.
- برای هر کاربر سهمیه تعیین کنید.
- Jobها را با Idempotency Key کنترل کنید.
- مدل متناسب با اندازه ناحیه انتخاب کنید.
- برای خراشهای ساده از روش کلاسیک ارزانتر استفاده کنید.
- هزینه هر خروجی موفق را جدا از هر درخواست محاسبه کنید.
حذف اشیا از ویدئو
حذف سوژه از ویدئو دشوارتر از عکس است؛ زیرا ناحیه بازسازیشده باید در تمام فریمها سازگار بماند.
گردشکار شامل این مراحل است:
- انتخاب سوژه در یک فریم
- ردیابی سوژه
- ساخت Mask برای تمام فریمها
- حذف سوژه
- بازسازی پسزمینه
- حفظ Temporal Consistency
- بررسی سایه و بازتاب متحرک
- خروجی ویدئو
اگر هر فریم مستقل پردازش شود، بافت بازسازیشده ممکن است دچار Flicker یا پرش شود. مدل ویدئویی باید اطلاعات فریمهای قبل و بعد را نیز در نظر بگیرد.
نکات حقوقی و اخلاقی
- فقط تصاویری را ویرایش کنید که اجازه استفاده از آنها را دارید.
- حذف افراد نباید برای تحریف رویداد یا ساخت سند گمراهکننده استفاده شود.
- عکسهای خبری، حقوقی و مستند را بدون اعلام ویرایش دستکاری نکنید.
- برای تصاویر تبلیغاتی، محصول را متفاوت از واقعیت نمایش ندهید.
- چهره یا هویت افراد را بدون رضایت تغییر ندهید.
- از حذف واترمارک، امضا یا نشانه مالکیت دیگران خودداری کنید.
- اطلاعات یک سند، فاکتور، مدرک یا تصویر رسمی را تغییر ندهید.
- نسخه اصلی را نگه دارید.
- در کاربردهای حساس، مصنوعیبودن یا ویرایششدن تصویر را اعلام کنید.
حذف یک سطل زباله از عکس سفر با حذف فرد یا اطلاعات از یک تصویر مستند یکسان نیست. زمینه استفاده اهمیت دارد.
چکلیست نهایی حذف اشیا
قبل از ویرایش
- نسخه اصلی ذخیره شده است.
- حق ویرایش تصویر وجود دارد.
- شیء و تمام حاشیههای آن مشخص شدهاند.
- سایه و بازتاب بررسی شدهاند.
- Mask با ابعاد تصویر هماهنگ است.
- بهترین روش انتخاب شده است.
پس از ویرایش
- شیء کاملاً حذف شده است.
- لبه یا سایه باقی نمانده است.
- بازتاب مرتبط حذف شده است.
- بافت تکراری وجود ندارد.
- خطوط پرسپکتیو سالماند.
- نور و رنگ ناحیه طبیعی هستند.
- افراد و اشیای دیگر تغییر نکردهاند.
- هیچ شیء جدید ناخواستهای اضافه نشده است.
- تصویر در بزرگنمایی بررسی شده است.
- نسخه اصلی و خروجی کنار هم مقایسه شدهاند.
سؤالات متداول
بهترین هوش مصنوعی برای حذف اشیا از عکس چیست؟
بهترین ابزار به نوع تصویر بستگی دارد. Magic Eraser و Clean Up برای ویرایش سریع موبایلی مناسباند. Photoshop برای انتخاب دقیق، Generative Fill و اصلاح حرفهای کنترل بیشتری ارائه میدهد. برای اپلیکیشن اختصاصی باید یک مدل دارای Inpainting یا Image Editing انتخاب شود.
آیا میتوان یک نفر را کاملاً از عکس حذف کرد؟
بله، اگر محیط پشت او قابل بازسازی باشد. اگر شخص بخش مهمی از چهره، نوشته یا معماری را پوشانده باشد، AI فقط یک نتیجه احتمالی تولید میکند.
آیا حذف اشیا کیفیت عکس را کم میکند؟
اگر ابزار کل تصویر را فشرده یا Resize کند، ممکن است کیفیت کاهش یابد. بهتر است رزولوشن خروجی، فرمت و تنظیمات فشردهسازی را بررسی کنید.
چرا بعد از حذف شیء، سایه باقی میماند؟
مدل ممکن است سایه را بخشی مستقل از صحنه تشخیص دهد. سایه و بازتاب را داخل Mask قرار دهید یا در مرحلهای جداگانه حذف کنید.
چرا بافت پشت شیء تکراری است؟
مدل ممکن است از ناحیه اطراف الگو بگیرد یا آن را تکرار کند. قسمت تکراری را با Mask کوچکتر اصلاح یا با Clone Stamp بازسازی کنید.
آیا میتوان سیم برق را از عکس حذف کرد؟
بله. سیمهای نازک روی آسمان یا دیوار معمولاً با Brush کوچک و Inpainting نتیجه مناسبی میدهند. در محل برخورد سیم با شاخه یا ساختمان، ویرایش دقیقتری لازم است.
آیا میتوان متن را از عکس حذف کرد؟
اگر حق ویرایش تصویر و متن را دارید، امکان حذف وجود دارد. از حذف واترمارک، امضا، اطلاعات اسناد یا نشانه مالکیت دیگران خودداری کنید.
آیا هوش مصنوعی پشت جسم را دقیق بازیابی میکند؟
خیر. اگر پشت جسم در هیچ بخشی از عکس دیده نشده باشد، مدل آن را تخمین میزند. این خروجی بازسازی خلاقانه است، نه بازیابی قطعی واقعیت.
آیا درواره ابزار آماده حذف اشیا دارد؟
خیر. درواره پلتفرم API هوش مصنوعی است. توسعهدهندگان میتوانند مدلهای دارای قابلیت ویرایش تصویر یا Inpainting را، در صورت موجودبودن در کاتالوگ فعلی، در نرمافزار خود به کار بگیرند.
آیا API Key را میتوان در مرورگر قرار داد؟
خیر. API Key باید در Backend نگهداری شود. Frontend فقط باید عکس و Mask را به سرور شما ارسال کند.
جمعبندی
حذف اشیا از عکس با هوش مصنوعی فقط پاککردن چند پیکسل نیست. ابزار باید بخشی از محیط را که پشت سوژه پنهان بوده بازسازی کند و آن را از نظر بافت، نور، سایه، بازتاب و پرسپکتیو با تصویر اصلی هماهنگ نگه دارد.
برای اشیای کوچک، ابزارهای Cleanup و Inpainting کلاسیک میتوانند کافی باشند. برای افراد یا سوژههای بزرگ، Generative Inpainting توانایی بیشتری دارد، اما نتیجه آن لزوماً بازتاب دقیق واقعیت نیست.
مهمترین عوامل برای یک خروجی حرفهای عبارتاند از:
- انتخاب دقیق سوژه
- ساخت Mask مناسب
- حذف سایه و بازتاب
- ویرایش مرحلهای
- بررسی در بزرگنمایی
- حفظ نسخه اصلی
- رعایت حریم خصوصی و مالکیت تصویر
اگر توسعهدهنده هستید و میخواهید تحلیل تصویر، تولید Mask، Inpainting یا کنترل کیفیت خروجی را به سایت و اپلیکیشن خود اضافه کنید، در درواره ثبتنام کنید، مدل مناسب را از کاتالوگ فعلی انتخاب کنید و درخواستها را از Backend به Base URL استاندارد https://api.darvareh.ir/v1 ارسال کنید.