عملکرد
پشتیبانی مرورگرها و عملکرد حذف پسزمینه سمت کاربر
ابزاری که مدل را روی دستگاه شما اجرا میکند، محدودیتهای دستگاه شما را هم به ارث میبرد. اینجا APIهای مرورگر که لازم دارد، مسیرهای اجرایی در دسترسش و متغیرهایی که زمان پردازش یک ویدیو را تعیین میکنند آمده است. خود bgremover.ai مدلش را روی سرورهای GPU ما اجرا میکند؛ مرورگر شما همچنان اندازه ویدیو را تغییر میدهد، ترکیب و انکود میکند.
4بایت
برای هر پیکسل رمزگشاییشده
8.3MB
یک فریم 1080p
33MB
یک فریم 4K
3
مسیر اجرایی
1280px
آپلود ما، ضلع بلند
مرورگر باید چه چیزهایی فراهم کند
ابزار حذف پسزمینه سمت کاربر داخل یک صفحه وب اجرا میشود، پس هر قابلیتی که لازم دارد باید توسط مرورگر ارائه شود، نه نصب. چهار مورد مهم است و دستگاهی که حتی یکی را نداشته باشد نمیتواند ابزار را اجرا کند.
WebAssembly مدل را در محیط ایزوله خود مرورگر اجرا میکند و به همین دلیل فیلم یک ابزار سمت کاربر روی دستگاه شما میماند؛ اما bgremover.ai، همانطور که حذف پسزمینه چطور کار میکند توضیح میدهد، آن را روی سرورهای GPU ما آپلود میکند. استنتاج عمدتاً ضرب ماتریس است، پس به GPU نیاز دارد: WebGL آن را از طریق یک API گرافیکی در دسترس میگذارد و WebGPU از طریق یک API محاسباتی.
بدون هیچکدام، استنتاج به CPU برمیگردد. چیزی هم باید فریمهای نهایی را به فایل انکود کند: MediaRecorder که پشتیبانی گستردهتری دارد، یا WebCodecs که کنترل دقیقتری میدهد. نیاز چهارم، یعنی حافظه برای فریمهای رمزگشاییشده، از همه بیشتر دستکم گرفته میشود.
سه مسیر اجرایی
| مسیر | اجرا روی | سرعت | در دسترس بودن |
|---|---|---|---|
| WASM با SIMD | CPU، چند مقدار در هر عملیات | کندترین | تقریباً همهجا |
| WebGL | GPU، از طریق شیدرهای گرافیکی | متوسط | هر GPU |
| WebGPU | GPU، از طریق یک API محاسباتی | سریعترین | کمتر از همه رایج |
WebGL یک راهحل موقت است تا یک طراحی اصولی: این API برای کشیدن مثلث ساخته شده و جابهجایی داده از طریق تکسچرها زمان میبرد. با این حال گزینه پیشفرض عملی باقی میماند. WASM برای رشته اصلی رقابت میکند مگر اینکه کار به یک worker منتقل شود، و BEN2 به WebGPU با FP16 نیاز دارد، یعنی فقط GPUهای دسکتاپ جدید.
اینجا در دسترس بودن تعیینکننده است، نه سلیقه: ابزاری که فقط WebGPU را پیادهسازی کند، هر جا اجرا شود سریع است و در بقیه جاها اصلاً وجود ندارد.
چرا اجرای اول کندتر است
-
مدل یکبار دانلود میشود
پیش از پردازش هر فریمی.
-
راهاندازی و آماده میشود
سپس فریم اول پردازش میشود.
-
ویدیوهای بعدی از هر دو مرحله رد میشوند
از حافظه نهان (cache) بارگذاری میشود، پس فقط راهاندازی باقی میماند.
بنابراین ابزار سمت کاربر باید مدل را با اقدام کاربر بارگذاری کند، نه هنگام باز شدن صفحه: چند مگابایت WebAssembly که همان لحظه ورود دانلود شود، صفحه را برای کسی که فقط برای خواندن آمده خراب نشان میدهد.
حساب فریمهای رمزگشاییشده
فریم رمزگشاییشده ویدیو پیکسلهای فشردهنشده است، پس وضوح، مصرف حافظه را تعیین میکند.
4بایت
برای هر پیکسل
8.3MB
یک فریم 1080p
33MB
یک فریم 4K
5
فریمها در مجموعه کاری
این اعداد حساباند، نه اندازهگیری، و حجم فایل فشرده راهنمای خوبی نیست. لازم نیست همه فریمها همزمان رمزگشایی شوند، اما روند پردازش یک مجموعه کاری را نگه میدارد: فریمی که رمزگشایی میشود، فریمی که تفکیک میشود، ماسک آن، تصویر ترکیبی و بافر انکودر.
چند فریم را در 33 MB برای 4K ضرب کنید تا بودجه حافظه تب اهمیت پیدا کند، بهخصوص روی گوشی. اگر یک ویدیوی طولانی با وضوح بالا شکست خورد یا تب دوباره بارگذاری شد، وضوح را کم کنید نه طول را: نصف کردن هر بُعد، حافظه را یکچهارم میکند.
چه چیزی زمان پردازش را تعیین میکند
اینها رابطهاند، نه عدد: زمانی که روی یک لپتاپ اندازهگیری شده، چیزی درباره گوشی به شما نمیگوید.
- تعداد فریممدت ضرب در نرخ فریم؛ 60 fps دو برابر 30 fps است.
- وضوحرمزگشایی، ترکیب و انکود را تعیین میکند؛ استنتاج ثابت میماند.
- مسیر اجراییWebGPU، WebGL و WASM-SIMD روی یک دستگاه با هم فرق دارند.
- نوع دستگاهGPU دسکتاپ، لپتاپ و گوشی سه دستگاه متفاوتاند.
- انتخاب مدلمدل matting در هر فریم پرهزینهتر از MediaPipe است.
- وضعیت حرارتیکار طولانی GPU روی گوشی داغ، با کاهش سرعت همراه است.
هنوز جدول زمانبندی نداریم. این کار آزمایش واقعی میخواهد: 60 ثانیه 1080p با 30 fps روی دسکتاپ و لپتاپ، و 30 ثانیه روی Android و iPhone. یک بنچمارک ساختگی تنها عدد غیرقابلتأیید این صفحه میشد.
جدول پشتیبانی مرورگرها
| نیازمندی | Chrome، Edge | Firefox | Safari | موبایل |
|---|---|---|---|---|
| WebAssembly | ✓ | ✓ | ✓ | ✓ |
| WebAssembly SIMD | ✓ | ✓ | ✓ | آزمایش نشده |
| WebGL | ✓ | ✓ | ✓ | آزمایش نشده |
| WebGPU | ✓ | آزمایش نشده | آزمایش نشده | آزمایش نشده |
| MediaRecorder | ✓ | ✓ | آزمایش نشده | آزمایش نشده |
پیش از اینکه سایت ادعای پشتیبانی همگانی کند، بررسی جداگانه هر مرورگر باید اینجا بیاید. ادعایی که بدون آزمایش میتوانیم بکنیم، معماری است: ابزار سمت کاربر به WebAssembly و یک مسیر GPU نیاز دارد، نه لزوماً WebGPU. bgremover.ai به WebCodecs نیاز دارد و از آن برای آمادهسازی آپلود و ساخت خروجی استفاده میکند.
تصویر صادقانه موبایل
برای یک ابزار سمت کاربر، حجم کم MediaPipe selfie segmentation چیزی است که اصلاً اجرا در مرورگر موبایل را ممکن میکند. چند مگابایت با نیاز حافظه متوسط در بودجه تب گوشی جا میشود؛ مدلی که برای GPU دسکتاپ ساخته شده نه. bgremover.ai با اجرای مدل روی سرورهای GPU این مشکل را دور میزند؛ گوشی همچنان ویدیو را رمزگشایی و انکود میکند.
| روی گوشی | bgremover.ai | FuzzPuppy |
|---|---|---|
| اجرا در مرورگر موبایل | بله | فقط دسکتاپ |
| مدل | مدل هوش مصنوعی ما، روی سرورهای GPU | MODNet و BEN2 |
| خروجی آلفا | ✗ | MOV با آلفا، MP4 با پرده سبز |
| نیاز به WebGPU | ✗ | بله |
| قیمت | رایگان | رایگان |
پیش از آزمایش جداگانه هر مرورگر، ادعای پشتیبانی همگانی موبایل نمیکنیم. موبایل سختتر است: حافظه کمتر برای هر تب، بستن تهاجمی تبها، کاهش سرعت حرارتی. ویدیوهای کوتاهتر با وضوح پایینتر مسیر مطمئنتری است و عکسها از طریق حذف پسزمینه عکس فقط هزینه یک فریم را دارند.
سؤالات متداول
کدام مرورگرها و دستگاهها پشتیبانی میشوند؟
bgremover.ai به یک مرورگر بهروز با WebCodecs نیاز دارد که از آن برای آمادهسازی آپلود و ساخت خروجی استفاده میکند: نسخههای فعلی Chrome، Edge، Firefox و Safari دسکتاپ این شرایط را دارند. مرورگرهای موبایل هم در اصل همین نیازمندیها را برآورده میکنند و جدول بالا در حال بررسی است.
روی موبایل کار میکند؟
بله. مدل روی سرورهای GPU ما اجرا میشود، پس گوشی فقط آپلود را آماده و خروجی را میسازد. ویدیوهای کوتاهتر آنجا مطمئنترند، چون حافظه تب محدودتر است.
چرا حذف پسزمینه کمی زمان میبرد؟
ویدیو کوچک و آپلود میشود، روی سرورهای GPU ما پردازش میشود، سپس در مرورگر شما ترکیب و انکود میشود. پردازش به محض رسیدن چند ثانیه اول شروع میشود و در ساعات شلوغ ممکن است کار کمی منتظر یک GPU آزاد بماند. زمان با تعداد فریمها افزایش مییابد.
چرا اجرای اول از اجرای دوم کندتر است؟
در یک ابزار سمت کاربر، مدل در اولین استفاده دانلود و سپس در حافظه نهان مرورگر ذخیره میشود، پس اولین ویدیو هزینه دانلود و راهاندازی را میپردازد. در bgremover.ai مدل روی سرورهای ما اجرا میشود؛ اولین ویدیو فقط کتابخانه ویدیویی صفحه را دریافت میکند که مرورگر بعد در حافظه نهان نگه میدارد.
چرا باید تب مرورگر را باز نگه دارم؟
تب ویدیو را آپلود میکند، ماسکها را از سرورهای ما میگیرد و خروجی را میسازد. بستن آن کار را لغو میکند و خروجی را نمیتوان از تب دیگری ادامه داد؛ صفحه حریم خصوصی توضیح میدهد چه چیزی سمت ما نگه داشته میشود.
آیا ویدیوی طولانیتر به همان نسبت بیشتر طول میکشد؟
تقریباً بله، چون زمان به تعداد فریم بستگی دارد و دو برابر کردن مدت، فریمها را دو برابر میکند. بالا بردن نرخ فریم هم همین اثر را دارد. بالا بردن وضوح هزینه رمزگشایی، ترکیب و انکود را بیشتر میکند، اما هزینه تفکیک سوژه را نه.
ابزار حذف پسزمینه را امتحان کنید
بدون ثبتنام امتحان کنید. فایل شما روی سرورهای GPU ما پردازش میشود و هرگز ذخیره نمیشود.