Mga panguna sa pagproseso sang laragway sang Web Worker
Ang Web Worker isa ka separado nga konteksto sang pagpatuman sang JavaScript nga makahimo sang mahal nga mga kalkulasyon nga wala ginahimo ang panguna nga thread sang editor nga maghimo sang tanan nga buluhaton. Para sa pagproseso sang laragway sang browser, nagakahulugan ina nga ang pag-setup sang modelo kag ang paghinakop mahimo nga magpalayo sa thread nga responsable sa mga buton, mga mensahe sang pag-uswag, input sang brush, kag mga pag-update sang screen.
Ang resulta indi “hilway nga pagproseso sang background.” Ang amo man nga device nagahimo gihapon sang pagkwenta kag nagagamit sang memorya. Ang benepisyo sa arkitektura amo ang pagbulagay: ang isa ka mabug-at nga operasyon sang modelo indi tanto ka posible nga magbalabag sa tagsa ka sabat sang interface samtang nagalakat ini.
Ang panguna nga hilo may trabaho sa user-interface
Ang isa ka pahina sang browser kinaandan nga nagapadalagan sang JavaScript sa isa ka panguna nga thread. Ina nga thread naga-coordinate man sang layout, painting, kag input. Kon ang isa ka malawig nga kalkulasyon nagaokupar sini, ang mga pag-klik mahimo nga mabatyagan nga na-delay, ang animasyon mahimo nga mag-untat, kag ang browser mahimo nga magpaandam nga ang pahina wala nagasabat.
Ang isa ka editor sang laragway may madamo nga mga responsibilidad sa main-thread antes pa man magsugod ang inference:
- makabaton sang pagpili sang file, i-paste, ukon ihulog;
- mag-decode kag magpakita sang isa ka laragway;
- i-update ang pag-uswag kag mga estado sang sayop;
- idrowing ang preview canvas;
- mag-uyat sang paghulag sang brush sang Add kag Erase;
- maghanda sang mga aksyon sa pag-download ukon clipboard.
Ang pagbutang sang numerical nga trabaho sang isa ka modelo sang segmentation sa pareho nga hilo magahimo sa sina nga mga buluhaton nga mag-indigay sing direkta. Ang isa ka trabahador nagahimo sang mas maathag nga dulunan.
Ang dulunan nga nakabase sa mensahe
Ang editor kag ang trabahador wala nagapaambit sang ordinaryo nga mga variable. Nagakomunikar sila paagi sa pagpadala sing mga mensahe. Ang ginpasimple nga pag-ilig daw pareho sini:
- Ang editor nagahimo ukon nagagamit liwat sang isa ka trabahador.
- Ginapangabay sini ang trabahador nga i-initialize ang inference runtime kag modelo.
- Nagahanda ini sang datos sang laragway kag nagapadala sang isa ka pangabay sa paghinakop.
- Ang trabahador nagabaylo sang datos sa ginapaabot nga input sang modelo.
- Ang trabahador nagapadalagan sang modelo kag nagahimo sang mga bili sang maskara.
- Ginapadala sini ang maskara ukon resulta nga datos pabalik.
- Ang editor nagatingob sang preview kag nagapaposible sang pagpino ukon pag-export.
Ang mga mensahe dapat maglakip sang bastante nga konteksto agud magsanto sa sabat sa husto nga pangabay. Importante ini kon ang isa ka user nagapili sang isa pa ka laragway antes matapos ang nauna nga trabaho. Ang interface dapat maglikaw sa pagpakita sang daan nga resulta sa isa ka bag-o nga ginhalinan.
Pagkopya kag pagbalhin sang datos sang laragway
Ang pagpadala sang gamay nga text message barato. Ang pagpadala sang minilyon ka mga bili sang pixel mahimo nga mahal kon ang browser kinahanglan nga magkopya sang bug-os nga buffer. Ang mga Web API mahimo magsaylo sang pagpanag-iya sang pila ka binary buffers sa baylo. Ang isa ka ginsaylo nga buffer mangin available sa receiver nga wala nagahupot sang isa ka magamit nga duplicate sa sender side.
Ang pag-optimize nagaabot upod ang isa ka pagpugong sa desinyo: pagkatapos sang pagbalhin, ang nagpadala indi makapadayon sa paggamit sang amo man nga buffer nga daw ginapanag-iyahan gihapon sini ang datos. Ang isa ka editor mahimo nga magtipig sang isa ka separado nga representasyon sang pagpakita, maghimo sang isa ka dedikado nga inference buffer, ukon magtukod liwat sang iya kinahanglanon sa ulihi.
Indi tanan nga implementasyon nagagamit sang pagbalhin sa eksakto nga pareho nga mga lugar. Ang pangkabilugan nga leksyon amo nga ang pagbulag sang hilo wala nagahimo sang paghulag sang datos nga madula. Ang mga sukod sang laragway, kadakuon sang buffer, kag ang kadamuon sang mga pagbag-o nagaapektar gihapon sa latency kag memorya.
Ang ginabutang sang Easy Background Remover sa trabahador
Easy Background Remover nagagamit sang Web Worker nga may browser inference runtime para sa on-device segmentation. Ang mabug-at nga awtomatiko nga pag-utod nga tikang nagapatubas sang maskara. Dayon ginapakita sang editor ang gintingob nga resulta kag ginasuportahan ang pagpino sang CPU-canvas brush.
Ini nga pagbulagay nagahatag sa mga kapaslawan sang mas mapuslanon nga dulunan. Kon ang trabahador indi maka-initialize ukon mag-crash sa tion sang inference, ang interface mahimo magreport sang isa ka sayop nga may kaangtanan sa trabahador sa baylo nga magsalig sa isa ka permanente nga nagyelo nga tab bilang ang lamang nga signal.
Ginahuptan man sini nga mahangpan ang pag-angkon sang lokal nga pagproseso. Ang pagpadala sang mga pixel gikan sa isa ka pahina sang extension pakadto sa iya kaugalingon nga trabahador isa ka komunikasyon sa sulod sang palibot sang browser, indi isa ka pag-upload sa isa ka malayo nga cutout API. Ang una nga sesyon mahimo nga mag-download sing separado sang magamit liwat nga modelo nga asset; tan-awa ang Ngaa ang una nga pagdalagan naga-download sang isa ka modelo.
Ang isa ka trabahador wala nagahimo sang pagkwenta nga gilayon
Ang mga mamumugon nagapauswag sang pagkamabinatunon, indi ang ikasarang sang hilaw nga aparato. Ang modelo nagakonsumo gihapon sang CPU, GPU, ukon iban pa nga mga resources sa runtime suno sa kon ano ang mahatag sang browser. Ang isa ka daku nga input mahimo gihapon magdugay kag nagakinahanglan sang mas madamo nga memorya sangsa isa ka gamay.
May pila ka mga limitasyon nga nagapabilin:
- ang pag-umpisa sang modelo may matuod nga gasto;
- ang mga pixel buffer nagaokupar sang memorya sa magtimbang nga bahin kon ginkopya;
- ang pag-resize kag pag-convert sang format nagakinahanglan sang tion;
- ang mga device nga may manubo nga memorya mahimo nga mabudlayan sa dalagku nga mga laragway;
- ang mas madamo nga mga mamumugon makadugang sang pagbinaisay sa baylo nga magbuhin sini;
- ang mga pag-update sa pag-export kag canvas mahimo gihapon maglakip sang panguna nga hilo.
Ang pagsugod sang lima ka inference workers para sa lima ka mga laragway indi awtomatiko nga lima ka pilo nga mas madasig. Ang mga trabahador nag-ambit sa parehas nga makina. Ang mga parallel nga trabaho mahimo mag-indigay para sa bandwidth sang memorya kag mga resources sa pagpatuman, samtang ang tagsa ka modelo nga instance mahimo nga may kaugalingon nga gasto sa memorya.
Ang pagreport sang pag-uswag nagabuligay
Ang isa ka trabahador makapadala sang mga mensahe sang kahimtangan, apang wala ini makahibalo sing awtomatiko kon ano nga porsyento sang pag-uswag ang mabatyagan nga sibu. Ang pag-download sang modelo, pag-umpisa sang runtime, paghanda sang input, pag-inference, pag-convert sang maskara, kag pag-render sang preview mga separado nga hugna nga may lainlain nga timing.
Ang iban nga mga hugna may matakus nga mga pag-isip sang byte. Ang isa ka modelo nga pagpatuman mahimo lamang magbuyagyag sang “ginsugdan” kag “natapos.” Ang isa ka matalunsay nga porsyento nga nagaabante sing uniporme mahimo nga mangin kosmetiko sa baylo nga isa ka sibu nga pagtakus.
Ang mapuslanon nga pag-uswag nga UI nagahingalan sang hugna kon posible: paghanda sang modelo, pagproseso sang laragway, ukon pagtukod sang resulta. Gina-asikaso man sini ang kapaslawan kag pagkanselar sa baylo nga magbilin sang isa ka spinner nga wala sing paathag.
Ang pagkanselar labaw pa sa pagtago sang isa ka spinner
Kon ang user magsira sang isa ka laragway ukon magsugod liwat, ang interface mahimo nga indi pagsapakon ang ulihi nga sabat gikan sa daan nga pangabay. Ang pag-untat gilayon sang nagapaidalom nga pagkwenta mahimo nga nagakinahanglan sang dugang nga suporta gikan sa runtime ukon pagtapos kag paghimo liwat sang trabahador.
Ang pagtapos sa isa ka trabahador isa ka desisibo, apang ginasikway sini ang iya gin-umpisa nga kahimtangan. Ang masunod nga trabaho mahimo nga kinahanglan nga mag-load kag mag-initialize liwat sang modelo. Para sa malip-ot nga operasyon, ang pagmarka sang resulta nga stale mahimo nga mas barato sangsa pagguba sang tanan.
Ang husto nga pagpili nagadepende sa presyon sang memorya, kalawigon sang operasyon, kag mga ikasarang sa runtime. Gikan sa panan-awan sang user, ang importante nga pagsulundan amo nga ang stale work indi dapat mag-overwrite sang karon nga pag-edit.
Ang mga sayop kinahanglan man nga magtabok sa dulunan
Ang isa ka eksepsiyon sa sulod sang isa ka trabahador indi mangin isa ka normal nga eksepsiyon sa main-thread. Ang trabahador dapat magreport sang mga sayop nga magamit, kag ang editor dapat mamati para sa mga kapaslawan sa lebel sang trabahador.
Ang maayo nga pag-uyat sang sayop nagapatuhay sa dimagkubos:
- ang modelo nga asset indi matigayon;
- napaslawan ang pag-umpisa sang modelo;
- napaslawan ang pag-decode sang laragway ukon paghanda sang input;
- napaslawan ang paghinakop;
- wala ginapaabot nga nag-untat ang trabahador;
- ang resulta indi na iya sang karon nga pangabay.
Mas madali ini himuon sangsa isa ka kinaandan nga “may naglain,” ilabi na kon ang una nga pag-setup kag ang normal nga pagproseso sang laragway may lainlain nga mga remedyo.
Ang output sang trabahador isa gihapon ka una nga maskara
Ang arkitektura sang hilo wala nagapauswag sang isa ka indi maathag nga sulab sa iya kaugalingon. Ang trabahador mahimo magbalik sang isa ka teknikal nga balido nga maskara nga wala gihapon sing balahibo, transparent nga materyal, makitid nga mga strap, ukon isa ka luyag nga landong. Mga pamangkot ini sa pag-segment kag intensyon.
Ang trabaho sang editor nagapadayon pagkatapos sang inference: i-scale ang mask sa working coordinate system, i-composite ang isa ka preview, tuguti ang user nga i-refine ini, kag i-export ang karon nga estado. Mask resolution vs preview size nagapaathag kon ngaa ang mga sistema sang koordinasyon indi dapat malibog.
Isa ka malip-ot nga modelo sang hunahuna
Hunahunaa ang trabahador bilang isa ka lokal nga espesyalista sa likod sang bintana sang mensahe:
- ang editor nagapanag-iya sang interaksiyon;
- ang trabahador nagapanag-iya sang mabug-at nga buluhaton sa pag-infer;
- ang binary image data nagatabok sa isa ka gintalana nga dulunan;
- ang trabahador nagabalik sang isa ka maskara, indi isa ka natapos nga paghukom nahanungod sa tagsa ka ukbong;
- ang editor nagapabilin nga responsable sa karon nga estado, pagrepaso, pagpino, kag pag-eksport.
Para sa pagtan-aw sang modelo sa mga piksel mismo, magpadayon sa Ano ang makita sang modelo sang on-device cutout. Para sa isa ka praktikal nga kabilugan, tan-awa ang Paano ang pagkuha sang lokal nga background.