Dagiti batayan ti panagproseso ti ladawan ti Web Worker
Ti Web Worker ket maysa a naisina a konteksto ti panagipatungpal ti JavaScript a makaaramid kadagiti nangina a panagkalkula a saan a mangaramid ti kangrunaan a thread ti editor nga agaramid amin ti trabaho. Para iti panagproseso ti ladawan ti browser, kayatna a sawen a ti panagisaad ti modelo ken ti inperensia ket mabalin nga agtaray manipud iti thread a responsable kadagiti buton, mensahe ti panagrang-ay, panagserrek ti brush, ken dagiti panagpabaro ti iskrin.
Ti resultana ket saan a “nawaya a panangproseso iti background.” Ti isu met laeng nga alikamen ti mangaramid pay laeng iti panagkuenta ken agus-usar iti memoria. Ti pagimbagan ti arkitektura ket ti panagsisina: ti nadagsen a modelo nga operasion ket basbassit ti posibilidadna a manglapped ti tunggal maysa a sungbat ti interface bayat nga agtartaray daytoy.
Ti kangrunaan a thread ket addaan iti trabaho ti user-interface
Ti panid ti browser ket gagangay a mangpataray ti JavaScript iti maysa a kangrunaan a thread. Dayta a thread ti mangkoordinar met iti layout, painting, ken input. No ti maysa nga atiddog a kalkulasion ti mangsakup iti dayta, mabalin a marikna a nataktak dagiti panag-click, mabalin nga agsardeng ti animation, ken mabalin a pakdaaran ti browser a saan a makasungbat ti panid.
Ti maysa nga editor ti ladawan ket addaan kadagiti adu a pagrebbengan ti kangrunaan-a-thread sakbay pay a mangrugi ti inperensia:
- umawat ti panagpili ti file, i-paste, wenno i-drop;
- decode ken ipakita ti maysa nga imahe;
- i-update ti panagrang-ay ken estado ti biddut;
- idrowing ti preview canvas;
- iggaman Add ken Buraken ti panaggaraw ti brush;
- mangisagana kadagiti tignay ti panag-download wenno clipboard.
Ti panangikabil ti numeriko nga obra ti modelo ti panagbingbingay iti isu met laeng a thread ket mangaramid kadagita nga aramid a direkta a makisalisal. Mangparnuay ti trabahador iti nalawag a beddeng.
Ti beddeng a naibatay iti mensahe
Ti editor ken trabahador ket saan a makibingbingay kadagiti gagangay a variable. Makikomunikarda babaen ti panangipatulodda kadagiti mensahe. Kastoy ti langa ti napalaka nga ayus:
- Ti editor ket mangparnuay wenno mangusar manen iti maysa a trabahador.
- Kiddawenna iti trabahador nga irugi ti inference runtime ken model.
- Daytoy ket mangisagana ti datos ti ladawan ken mangipatulod ti kiddaw ti inference.
- Ti trabahador ket pagbalinenna ti datos iti manamnama nga input ti modelo.
- Ti trabahador ti mangpataray iti modelo ken mangpataud kadagiti pateg ti maskara.
- Ipatulodna manen ti maskara wenno resulta a datos.
- Ti editor ket mangbukel ti preview ken mangpabalin ti panagpino wenno panag-export.
Rumbeng nga iraman dagiti mensahe ti umdas a konteksto tapno maipada ti sungbat iti umno a kiddaw. Napateg daytoy no ti agar-aramat ket agpili ti sabali a ladawan sakbay a malpas ti napalabas a trabaho. Ti interface ket masapul a mangliklik ti panangiparang ti daan a resulta iti rabaw ti baro a taudan.
Panagkopia ken panagyakar ti datos ti ladawan
Nalaka ti mangipatulod iti bassit a text message. Ti panangipatulod kadagiti minilion a pateg ti pixel ket mabalin a nangina no ti browser ket masapul a mangkopia ti sibubukel a buffer. Dagiti Web API ket mabalinda nga iyakar ti panagtagikua kadagiti sumagmamano a binaryo a buffer imbes ketdi. Ti nayakar a buffer ket agbalin a magun-od iti umawat a saan a mangtengngel ti mausar a duplikado iti dasig ti nangipatulod.
Dayta nga optimisasion ket umay nga addaan iti disenio a limitasion: kalpasan ti panagiyakar, ti nangipatulod ket saan a makatultuloy nga agusar ti isu met laeng a buffer a kasla daytoy ket tagikua pay laeng ti datos. Ti maysa nga editor ket mabalin a mangtengngel ti naisina a pannakabagi ti panagiparang, mangpartuat ti naipangpangruna a buffer ti panagipapan, wenno mangbangon manen no ania ti kasapulanna inton agangay.
Saan a tunggal implementasion ket agus-usar ti panagiyakar kadagiti eksakto nga agpapada a lugar. Ti sapasap a leksion ket ti panagsisina ti thread ket saan a mangaramid ti panaggaraw ti datos a mapukaw. Dagiti dimension ti ladawan, kadakkel ti buffer, ken ti bilang dagiti panagbalbaliw ket mangapektar pay laeng ti latency ken memoria.
Ania ti ikabil ni Easy Background Remover iti trabahador
Ti Easy Background Remover ket agus-usar ti Web Worker nga addaan iti browser inference runtime para iti on-device segmentation. Ti nadagsen nga automatic cutout step ket mangpataud iti maskara. Kalpasanna ti editor ket mangiparang ti nabukel a resulta ken mangsuporta ti CPU-canvas brush refinement.
Daytoy a panagsina ket mangted kadagiti pannakapaay iti ad-adda a makagunggona a beddeng. No ti trabahador ket saan a makarugi wenno ag-crash bayat ti panagipapan, ti interface ket mabalinna nga ireport ti biddut a mainaig iti trabahador imbes nga agpannuray iti permanente a nagyelo a tab a kas ti kakaisuna a senial.
Pagtalinaedenna met a maawatan ti local-processing claim. Ti panangipatulod kadagiti pixel manipud iti panid ti ekstension iti bukodna a trabahador ket komunikasion iti uneg ti aglawlaw ti browser, saan a ti panagikarga iti adayo a cutout API. Ti umuna a sesion ket mabalin a naisina nga i-download ti mausar manen a modelo nga asset; kitaen ti Apay nga umuna a panagtaray ket mangi-download ti maysa a modelo.
Saan nga aramiden ti maysa a trabahador ti computation instant
Pasayaaten dagiti trabahador ti panagsungbat, saan a ti kabaelan ti raw device. Ti modelo ket agkonsumo pay laeng ti CPU, GPU, wenno dagiti dadduma pay a rekurso ti oras ti panagtaray segun ti mabalin nga ipaay ti browser. Ti dakkel nga input ket mabalin pay laeng nga alaenna ti napapaut ken kasapulan ti ad-adu a memoria ngem ti bassit.
Sumagmamano a limitasion ti agtalinaed:
- ti panangrugi ti modelo ket addaan iti pudno a gastos;
- dagiti pixel buffer ket mangsakup ti memoria iti agsumbangir a sikigan no nakopia;
- ti panagbalbaliw ti kadakkel ken panagbalbaliw ti pormat ket mangala ti panawen;
- dagiti nababa ti memoria nga alikamen ket mabalin a makiranget kadagiti dadakkel a ladawan;
- ad-adu a trabahador ti mabalin a mangpaadu iti panagsusupiat imbes a mangkissay iti dayta;
- dagiti panag-export ken dagiti panagpabaro ti canvas ket mabalin pay laeng a mairaman ti kangrunaan a thread.
Ti panangrugi iti lima nga inference worker para iti lima a ladawan ket saan nga automatiko a maminlima a naparpartak. Maymaysa a makina ti pagbibingayan dagiti trabahador. Dagiti agpapada a trabaho ket mabalin a makisalip para iti kalawa ti memoria ken dagiti rekurso ti panagipatungpal, bayat a ti tunggal maysa a modelo nga instansia ket mabalin nga awit ti bukodna a gastos ti memoria.
Agtitinnulong ti panagireport ti panagrang-ay
Mabalin nga ipatulod ti maysa a trabahador dagiti mensahe ti kasasaad, ngem dina automatiko nga ammo no ania a porsiento ti panagrang-ay ti marikna nga umiso. Ti panagi-download ti modelo, panagrugi ti oras ti panagtaray, panagsagana ti input, inperensia, panagbalbaliw ti maskara, ken panagiparang ti preview ket agsina a paset nga addaan kadagiti nadumaduma a panagoras.
Dadduma a paset ket addaan kadagiti masukatan a bilang ti byte. Ti maymaysa a model execution ket mabalin laeng nga ibutaktakna ti “narugian” ken “nalpas.” Ti naannayas a porsiento nga agpapada ti panagrang-ay ket mabalin ngarud a kosmetiko imbes nga eksakto a rukod.
Ti makatulong a panagrang-ay UI ket manginaganan ti paset no mabalin: panagisagana ti modelo, panagproseso ti ladawan, wenno panagbangon ti resulta. Daytoy met ti mangasikaso iti pannakapaay ken pannakakansela imbes a baybay-anna ti maysa nga spinner nga awan ti panangilawlawagna.
Ti pannakakansela ket ad-adu ngem ti panangilemmeng iti spinner
No ti agar-aramat ket mangiserra ti maysa a ladawan wenno mangrugi manen, ti interface ket mabalinna a di ikankano ti kamaudianan a sungbat manipud iti daanen a kiddaw. Ti panangpasardeng a dagus ti naibatay a panagkuenta ket mabalin a kasapulan ti kanayonan a suporta manipud iti oras ti panagtaray wenno panangpasardeng ken panangparnuay manen ti trabahador.
Ti panangikkat iti maysa a trabahador ket makaikeddeng, ngem ibellengna ti nairugi a kasasaadna. Ti sumaganad a trabaho ket mabalin a kasapulan a mangikarga ken mangirugi manen ti modelo. Para iti ababa nga operasion, ti panangmarka iti resulta a stale ket mabalin a nalaklaka ngem ti panangrebba iti amin.
Ti umno a panagpili ket agpannuray iti presion ti memoria, kapaut ti panagpataray, ken dagiti kabaelan ti oras ti panagtaray. Manipud iti panirigan ti agar-aramat, ti napateg a pagannurotan ket ti stale nga obra ket masapul a saan a mangsukog ti agdama a panagurnos.
Masapul met a bumallasiw dagiti biddut iti beddeng
Ti maysa nga eksepsion iti uneg ti maysa a trabahador ket saan nga agbalin a normal a main-thread nga eksepsion. Masapul nga ireport ti trabahador dagiti mausar a biddut, ken rumbeng a dumngeg ti editor para kadagiti pannakapaay iti lebel ti trabahador.
Ti nasayaat a panangtaming iti biddut ket mangilasin iti uray sangkabassit laeng:
- modelo nga asset a saan a magun-od;
- napaay ti panangrugi ti modelo;
- napaay ti panag-decode ti ladawan wenno panagsagana ti input;
- napaay ti inference;
- trabahador nagsardeng a di ninamnama;
- resulta ket saanen a kukua ti agdama a kiddaw.
Daytoy ket ad-adda a maaramid ngem ti generic nga “adda nagbiddut,” nangruna no ti umuna a panagisagana ken ti normal a panagproseso ti ladawan ket addaan kadagiti nagduduma a remedyo.
Umuna laeng a maskara pay laeng ti worker output
Ti arkitektura ti sinulid ket saan a mangpasayaat ti maysa a di masinunuo nga igid a bukodna. Mabalin nga isubli ti trabahador ti teknikal a balido a maskara a kurang pay laeng ti dutdot, transparent a material, akikid a tali, wenno tarigagayan nga anniniwan. Dagita ket saludsod iti segmentation ken intent.
Ti trabaho ti editor ket agsubli kalpasan ti panagipapan: i-scale ti maskara iti agtartrabaho a sistema ti koordinado, mangbukel ti maysa a preview, bay-an ti agar-aramat a mangpapintas daytoy, ken mangiruar ti agdama a kasasaad. Mask resolution vs preview size ket mangilawlawag no apay a dagitoy a sistema ti koordinado ket saan koma a mariro.
Maysa nga ababa a modelo ti isip
Panunotem ti trabahador kas lokal nga espesialista iti likudan ti tawa ti mensahe:
- ti editor ti makinkukua iti pannakilangen;
- ti trabahador ti makinkukua iti nadagsen nga inference task;
- ti binary image data ket bumallasiw iti naikeddeng a beddeng;
- ti trabahador ket mangisubli iti maskara, saan a nalpas a panangukom maipapan iti tunggal igid;
- ti editor ket agtalinaed a responsable iti agdama a kasasaad, panagrepaso, panagpino, ken panageksport.
Para iti panagkita ti modelo kadagiti pixel a mismo, ituloy ti No ania ti makita ti maysa nga on-device cutout model. Para iti maysa a praktikal a pakabuklan manipud iti ngudo agingga iti ngudo, kitaen ti Kasano nga agtrabaho ti lokal a panangikkat iti likudan.