Libre nga extension sa Chrome — mga cutout sa aparato

Mga sukaranan sa pagproseso sa imahe sa Web Worker

Ang Web Worker usa ka bulag nga konteksto sa pagpatuman sa JavaScript nga makahimo sa mga mahal nga kalkulasyon nga wala’y paghimo sa panguna nga hilo sa editor nga buhaton ang tanan nga trabaho. Para sa pagproseso sa imahe sa browser, nagpasabot kana nga ang pag-setup sa modelo ug ang inference mahimong modagan gikan sa thread nga responsable sa mga buton, mga mensahe sa pag-uswag, input sa brush, ug mga update sa screen.

Ang resulta dili “libre nga pagproseso sa background.” Ang parehas nga aparato naghimo gihapon sa pagkalkula ug naggamit sa memorya. Ang kaayohan sa arkitektura mao ang panagbulag: ang usa ka bug-at nga operasyon sa modelo dili kaayo makababag sa matag tubag sa interface samtang kini nagdagan.

Ang nag-unang thread adunay usa ka user-interface nga trabaho

Ang usa ka panid sa browser kasagarang nagpadagan sa JavaScript sa usa ka punoan nga hilo. Kana nga thread nag-coordinate usab sa layout, painting, ug input. Kung ang usa ka taas nga kalkulasyon mag-okupar niini, ang mga pag-klik mahimong mobati nga nalangan, ang animation mahimong mohunong, ug ang browser mahimong magpasidaan nga ang panid dili mosanong.

Ang usa ka editor sa imahe adunay daghang mga responsibilidad sa panguna nga thread sa wala pa magsugod ang inference:

Ang pagbutang ug numerical nga buhat sa modelo sa pagbahin sa parehas nga hilo makahimo sa mga buluhaton nga direktang makigkompetensya. Ang usa ka trabahante nagmugna og mas klaro nga utlanan.

Ang utlanan nga gibase sa mensahe

Ang editor ug trabahante wala mag-ambit sa ordinaryo nga mga variable. Nagkomunikar sila pinaagi sa pagpadala og mga mensahe. Ang usa ka gipasimple nga dagan ingon niini:

  1. Ang editor nagmugna o naggamit pag-usab sa usa ka trabahante.
  2. Kini naghangyo sa trabahante sa pagsugod sa inference runtime ug modelo.
  3. Nag-andam kini sa datos sa hulagway ug nagpadala og hangyo sa inference.
  4. Ang trabahante nag-convert sa datos ngadto sa gipaabot nga input sa modelo.
  5. Ang trabahante nagpadagan sa modelo ug nagpatunghag mga kantidad sa maskara.
  6. Kini nagpadala sa maskara o resulta data balik.
  7. Ang editor nag-composite sa preview ug makahimo sa pagpino o pag-eksport.

Ang mga mensahe kinahanglan adunay igong konteksto aron ipares ang tubag sa husto nga hangyo. Importante kini kung ang usa ka user mopili og laing hulagway sa dili pa mahuman ang miaging trabaho. Ang interface kinahanglan nga maglikay sa pagpakita sa usa ka daan nga resulta sa usa ka bag-ong tinubdan.

Pagkopya ug pagbalhin sa datos sa imahe

Ang pagpadala ug gamay nga text message mura ra. Ang pagpadala sa milyon-milyon nga mga kantidad sa pixel mahimong mahal kung kinahanglan nga kopyahon sa browser ang tibuuk nga buffer. Ang mga Web API mahimong magbalhin sa pagpanag-iya sa pipila ka binary buffer. Ang gibalhin nga buffer mahimong magamit sa tigdawat nga wala magtipig usa ka magamit nga duplicate sa bahin sa nagpadala.

Kana nga pag-optimize moabut uban ang usa ka pagpugong sa disenyo: pagkahuman sa pagbalhin, ang nagpadala dili makapadayon sa paggamit sa parehas nga buffer ingon nga kini tag-iya gihapon ang datos. Ang usa ka editor mahimong maghupot ug bulag nga representasyon sa display, maghimo ug dedikadong inference buffer, o magtukod pag-usab sa gikinahanglan niini sa ulahi.

Dili tanan nga pagpatuman naggamit sa pagbalhin sa parehas nga mga lugar. Ang kinatibuk-ang leksyon mao nga ang pagbulag sa hilo dili makapawala sa paglihok sa datos. Ang mga sukat sa imahe, gidak-on sa buffer, ug ang gidaghanon sa mga pagkakabig makaapekto gihapon sa latency ug memorya.

Unsa ang gibutang sa Easy Background Remover sa trabahante

Ang Easy Background Remover naggamit sa usa ka Web Worker nga adunay usa ka browser inference runtime para sa on-device segmentation. Ang bug-at nga automatic cutout nga lakang nagpatunghag maskara. Gipakita dayon sa editor ang composited nga resulta ug gisuportahan ang pagpino sa brush sa CPU-canvas.

Kini nga panagbulag naghatag sa mga kapakyasan ug mas mapuslanong utlanan. Kung ang trabahante dili makasugod o mag-crash sa panahon sa inference, ang interface mahimong magreport sa usa ka sayup nga may kalabotan sa trabahante imbis nga magsalig sa usa ka permanente nga nagyelo nga tab ingon ang bugtong signal.

Gipadayon usab niini nga masabtan ang pag-angkon sa lokal nga pagproseso. Ang pagpadala sa mga pixel gikan sa usa ka extension nga panid ngadto sa iyang kaugalingong trabahante mao ang komunikasyon sulod sa palibot sa browser, dili usa ka pag-upload sa usa ka remote cutout API. Ang unang sesyon mahimong bulag nga mag-download sa magamit nga modelo nga asset; tan-awa Nganong nag-download ang una nga pagdagan sa usa ka modelo.

Ang usa ka trabahante dili mohimo dayon sa pagkuwenta

Gipauswag sa mga trabahante ang pagtubag, dili ang katakus sa hilaw nga aparato. Ang modelo naggamit gihapon sa CPU, GPU, o uban pang mga kapanguhaan sa runtime sumala sa kung unsa ang mahatag sa browser. Ang usa ka dako nga input mahimo pa nga magdugay ug magkinahanglan og dugang nga memorya kaysa usa ka gamay.

Pipila ka mga limitasyon nagpabilin:

Ang pagsugod sa lima ka mga inference worker alang sa lima ka mga imahe dili awtomatiko nga lima ka beses nga mas paspas. Ang mga trabahante adunay parehas nga makina. Ang mga parallel nga trabaho mahimong makigkompetensya alang sa bandwidth sa memorya ug mga kapanguhaan sa pagpatuman, samtang ang matag modelo nga pananglitan mahimong magdala sa kaugalingon nga gasto sa panumduman.

Ang pagreport sa pag-uswag kay kooperatiba

Ang usa ka trabahante mahimong magpadala sa mga mensahe sa status, apan dili kini awtomatik nga mahibal-an kung unsa nga porsyento sa pag-uswag ang bation nga tukma. Pag-download sa modelo, pagsugod sa runtime, pag-andam sa input, inference, pagkakabig sa maskara, ug pag-render sa preview lahi nga mga hugna nga adunay lainlaing oras.

Ang ubang mga hugna adunay masukod nga gidaghanon sa byte. Ang usa ka modelo nga pagpatuman mahimo lamang nga ibutyag ang “nagsugod” ug “nahuman.” Ang usa ka hapsay nga porsyento nga nag-uswag nga parehas mahimo nga kosmetiko kaysa usa ka tukma nga pagsukod.

Mapuslanon nga pag-uswag UI nagngalan sa yugto kung mahimo: pag-andam sa modelo, pagproseso sa imahe, o resulta sa pagtukod. Nagdumala usab kini sa kapakyasan ug pagkansela imbes nga magbilin usa ka spinner nga wala’y katin-awan.

Ang pagkansela labaw pa sa pagtago sa usa ka spinner

Kung ang tiggamit magsira sa usa ka imahe o magsugod pag-usab, ang interface mahimong ibaliwala ang katapusan nga tubag gikan sa karaan nga hangyo. Ang pagpahunong dayon sa nagpahiping pagkalkula mahimong magkinahanglan ug dugang nga suporta gikan sa runtime o pagtapos ug paghimo pag-usab sa trabahante.

Ang pagtapos sa usa ka trabahante mahukmanon, apan gisalikway niini ang nasugdan nga kahimtang. Ang sunod nga trabaho mahimong kinahanglan nga i-load ug i-initial pag-usab ang modelo. Alang sa usa ka mubo nga operasyon, ang pagmarka sa resulta nga stale mahimong mas barato kaysa sa pagguba sa tanan.

Ang husto nga pagpili nagdepende sa presyur sa memorya, gidugayon sa operasyon, ug mga kapabilidad sa runtime. Gikan sa panan-aw sa tiggamit, ang importante nga lagda mao nga ang guba nga trabaho kinahanglang dili mag-overwrite sa kasamtangang pag-edit.

Ang mga kasaypanan kinahanglan usab nga molapas sa utlanan

Ang usa ka eksepsiyon sa sulod sa usa ka trabahante dili mahimong normal nga main-thread exception. Kinahanglang i-report sa trabahante ang magamit nga mga sayup, ug ang editor kinahanglan mamati sa mga kapakyasan sa lebel sa trabahante.

Ang maayo nga pagdumala sa sayup nagpalahi sa labing menos:

Mas maaksyonan kini kaysa usa ka generic nga “may nahitabo nga sayup,” labi na kung ang una nga pag-setup ug normal nga pagproseso sa imahe adunay lainlaing mga tambal.

Ang output sa trabahante usa lang gihapon ka una nga maskara

Ang arkitektura sa thread dili makapauswag sa usa ka dili klaro nga sulud sa iyang kaugalingon. Mahimong ibalik sa trabahante ang usa ka teknikal nga balido nga maskara nga wala gihapon balhibo, transparent nga materyal, pig-ot nga mga strap, o gusto nga anino. Mao kana ang mga pangutana sa pagbahinbahin ug katuyoan.

Ang trabaho sa editor magpadayon human sa inference: i-scale ang mask ngadto sa working coordinate system, pag-composite og preview, pasagdi ang user nga magpino niini, ug i-export ang kasamtangan nga kahimtang. Resolusyon sa maskara kumpara sa gidak-on sa preview nagpatin-aw kung ngano nga ang mga sistema sa koordinasyon kinahanglan dili maglibog.

Usa ka mubo nga modelo sa panghunahuna

Hunahunaa ang trabahante isip usa ka lokal nga espesyalista luyo sa bintana sa mensahe:

Alang sa pagtan-aw sa modelo sa mga pixel mismo, ipadayon ang Unsa ang nakita sa modelo sa cutout sa device. Para sa usa ka end-to-end praktikal nga overview, tan-awa ang Unsaon sa lokal nga pagtangtang sa background.

Padayon sa pagsuhid

Makapainteres