Bażi tal-ipproċessar tal-immaġini tal-Web Worker
Ħaddiem tal-Web huwa kuntest ta’ eżekuzzjoni JavaScript separat li jista’ jwettaq kalkoli għaljin mingħajr ma jagħmel il-ħajt prinċipali tal-editur jagħmel ix-xogħol kollu. Għall-ipproċessar tal-immaġni tal-browser, dan ifisser li s-setup u l-inferenza tal-mudell jistgħu jaħarbu mill-ħajt responsabbli għall-buttuni, il-messaġġi tal-progress, l-input tal-pinzell u l-aġġornamenti tal-iskrin.
Ir-riżultat mhuwiex “ipproċessar b’xejn fl-isfond.” L-istess apparat għadu jwettaq il-komputazzjoni u juża l-memorja. Il-benefiċċju arkitettoniku huwa s-separazzjoni: operazzjoni ta ‘mudell tqil hija inqas probabbli li timblokka kull rispons ta’ l-interface waqt li taħdem.
Il-ħajt prinċipali għandu xogħol ta’ interface għall-utent
Paġna tal-browser normalment taħdem JavaScript fuq ħajta prinċipali. Dak il-ħajta tikkoordina wkoll it-tqassim, il-pittura u l-input. Jekk kalkolu twil wieħed jokkupaha, il-klikks jistgħu jħossuhom ittardjati, l-animazzjoni tista ‘tieqaf, u l-browser jista’ jwissi li l-paġna ma tirrispondix.
Editur ta’ l-immaġini għandu ħafna responsabbiltajiet tal-ħajt prinċipali qabel ma tibda l-inferenza:
- tirċievi għażla ta’ fajls, pejst, jew qatra;
- jiddekowdja u juri immaġini;
- taġġorna l-istat ta’ progress u żball;
- iġbed il-kanvas tal-preview;
- jimmaniġġa Żid u Ħassar moviment tal-pinzell;
- ipprepara azzjonijiet ta’ download jew clipboard.
It-tqegħid tax-xogħol numeriku ta ‘mudell ta’ segmentazzjoni fuq l-istess ħajta tagħmel dawk il-kompiti jikkompetu direttament. Ħaddiem joħloq fruntiera aktar ċara.
Il-konfini bbażata fuq il-messaġġ
L-editur u l-ħaddiem ma jaqsmux varjabbli ordinarji. Huma jikkomunikaw billi jibagħtu messaġġi. Fluss simplifikat jidher bħal dan:
- L-editur joħloq jew juża mill-ġdid ħaddiem.
- Jitlob lill-ħaddiem biex jinizjalizza l-runtime u l-mudell tal-inferenza.
- Jipprepara dejta tal-immaġni u jibgħat talba għall-inferenza.
- Il-ħaddiem jikkonverti d-dejta fl-input mistenni tal-mudell.
- Il-ħaddiem imexxi l-mudell u jipproduċi valuri tal-maskra.
- Jibgħat lura d-data tal-maskra jew tar-riżultat.
- L-editur jikkomponi l-previżjoni u jippermetti l-irfinar jew l-esportazzjoni.
Il-messaġġi għandhom jinkludu biżżejjed kuntest biex iqabblu tweġiba mat-talba korretta. Dan huwa importanti jekk utent jagħżel immaġni oħra qabel ma jintemm ix-xogħol preċedenti. L-interface għandu jevita li juri riżultat antik fuq sors ġdid.
L-ikkupjar u t-trasferiment tad-dejta tal-immaġni
Tibgħat messaġġ żgħir huwa irħis. It-trażmissjoni ta’ miljuni ta’ valuri tal-pixel tista’ tkun għalja jekk il-browser ikollu jikkopja l-buffer kollu. L-APIs tal-Web jistgħu jittrasferixxu s-sjieda ta’ ċerti buffers binarji minflok. Buffer trasferit isir disponibbli għar-riċevitur mingħajr ma jżomm duplikat użabbli fuq in-naħa tal-mittent.
Dik l-ottimizzazzjoni tiġi b’restrizzjoni tad-disinn: wara t-trasferiment, il-mittent ma jistax ikompli juża l-istess buffer daqslikieku għadu jippossjedi d-dejta. Editur jista’ jżomm rappreżentazzjoni separata tal-wiri, joħloq buffer dedikat għall-inferenza, jew jibni mill-ġdid dak li jeħtieġ aktar tard.
Mhux kull implimentazzjoni tuża t-trasferiment eżattament fl-istess postijiet. Il-lezzjoni ġenerali hija li s-separazzjoni tal-ħajt ma tagħmilx il-moviment tad-dejta jisparixxi. Id-dimensjonijiet tal-immaġni, id-daqs tal-buffer, u n-numru ta 'konverżjonijiet għadhom jaffettwaw il-latenza u l-memorja.
Dak li Easy Background Remover ipoġġi fil-ħaddiem
Easy Background Remover juża Web Worker b’runtime ta’ inferenza tal-browser għas-segmentazzjoni fuq it-tagħmir. Il-pass tal-qtugħ awtomatiku tqil jipproduċi maskra. L-editur imbagħad juri r-riżultat kompost u jappoġġja r-raffinament tal-pinzell tal-kanvas CPU.
Din is-separazzjoni tagħti lill-fallimenti limitu aktar utli. Jekk il-ħaddiem ma jistax jinizjalizza jew jiġġarraf waqt l-inferenza, l-interface tista’ tirrapporta żball relatat mal-ħaddiem minflok ma sserraħ fuq tab iffriżat b’mod permanenti bħala l-uniku sinjal.
Iżomm ukoll it-talba tal-ipproċessar lokali tinftiehem. Li tibgħat pixels minn paġna ta’ estensjoni lill-ħaddiem tagħha stess hija komunikazzjoni fl-ambjent tal-browser, mhux upload għal API ta’ qtugħ mill-bogħod. L-ewwel sessjoni tista’ tniżżel separatament l-assi tal-mudell li jista’ jerġa’ jintuża; ara Why first run downloads a model.
Ħaddiem ma jagħmilx komputazzjoni immedjata
Il-ħaddiema jtejbu r-rispons, mhux il-kapaċità tal-apparat mhux maħdum. Il-mudell għadu jikkonsma CPU, GPU, jew riżorsi runtime oħra skond dak li l-browser jista ‘jipprovdi. Input kbir xorta jista’ jieħu aktar żmien u jeħtieġ aktar memorja minn wieħed żgħir.
Għad fadal diversi limiti:
- l-inizjalizzazzjoni tal-mudell għandha spiża reali;
- il-pixel buffers jokkupaw memorja fuq iż-żewġ naħat jekk ikunu kkupjati;
- il-bidla tad-daqs u l-konverżjoni tal-format jieħdu ż-żmien;
- apparati b’memorja baxxa jistgħu jitħabtu ma 'immaġini kbar;
- aktar ħaddiema jistgħu jżidu l-kontenzjoni minflok inaqqsuha;
- l-esportazzjoni u l-aġġornamenti tal-kanvas xorta jistgħu jinvolvu l-ħajt prinċipali.
Il-bidu ta ‘ħames ħaddiema ta’ inferenza għal ħames immaġini mhuwiex awtomatikament ħames darbiet aktar mgħaġġel. Il-ħaddiema jaqsmu l-istess magna. Impjiegi paralleli jistgħu jikkompetu għall-bandwidth tal-memorja u r-riżorsi ta ‘eżekuzzjoni, filwaqt li kull istanza mudell tista’ ġġorr l-ispiża tal-memorja tagħha stess.
Ir-rappurtar tal-progress huwa kooperattiv
Ħaddiem jista ‘jibgħat messaġġi dwar l-istatus, iżda ma jafx awtomatikament liema perċentwal ta’ progress se jħossu preċiż. It-tniżżil tal-mudell, l-inizjalizzazzjoni tal-ħin tar-runtime, il-preparazzjoni tal-input, l-inferenza, il-konverżjoni tal-maskra, u l-għoti tal-preview huma fażijiet separati b’ħin differenti.
Xi fażijiet għandhom għadd ta’ byte li jista’ jitkejjel. Eżekuzzjoni ta’ mudell wieħed tista’ tesponi biss “mibdija” u “lesta”. Persentaġġ bla xkiel li javvanza b’mod uniformi jista’ għalhekk ikun kożmetiku aktar milli kejl preċiż.
Progress utli UI ismijiet il-fażi meta possibbli: mudell ta 'preparazzjoni, immaġni tal-ipproċessar, jew riżultat tal-bini. Jittratta wkoll il-falliment u l-kanċellazzjoni minflok ma jħalli spinner mingħajr spjegazzjoni.
Il-kanċellazzjoni hija aktar milli taħbi spinner
Jekk l-utent jagħlaq immaġni jew jibda mill-ġdid, l-interface jista 'jinjora r-rispons eventwali mit-talba skaduta. It-twaqqif tal-komputazzjoni sottostanti immedjatament jista 'jeħtieġ appoġġ addizzjonali mill-runtime jew it-terminazzjoni u l-ħolqien mill-ġdid tal-ħaddiem.
It-tmiem ta’ ħaddiem huwa deċiżiv, iżda jarmi l-istat inizjalizzat tiegħu. Ix-xogħol li jmiss jista 'jkollu bżonn jgħabbi u initialize l-mudell mill-ġdid. Għal operazzjoni qasira, l-immarkar tar-riżultat frisk jista ‘jkun irħas milli jitwaqqa’ kollox.
L-għażla korretta tiddependi fuq il-pressjoni tal-memorja, it-tul tal-operat, u l-kapaċitajiet tar-runtime. Mill-perspettiva tal-utent, ir-regola importanti hija li x-xogħol qadim m’għandux jissostitwixxi l-editjar attwali.
L-iżbalji jeħtieġ li jaqsmu l-konfini wkoll
Eċċezzjoni ġewwa ħaddiem ma ssirx eċċezzjoni prinċipali normali. Il-ħaddiem għandu jirrapporta żbalji li jistgħu jintużaw, u l-editur għandu jisma’ għal fallimenti fil-livell tal-ħaddiem.
Immaniġġjar tajjeb tal-iżbalji jiddistingwi mill-inqas:
- l-assi tal-mudell mhux disponibbli;
- l-inizjalizzazzjoni tal-mudell falliet;
- id-dekowd tal-immaġni jew il-preparazzjoni tal-input fallew;
- l-inferenza falliet;
- ħaddiem waqaf bla mistenni;
- ir-riżultat m’għadux jappartjeni għat-talba attwali.
Dan huwa aktar azzjonabbli minn “xi ħaġa li marret ħażin” ġenerika, speċjalment meta s-setup tal-ewwel tmexxija u l-ipproċessar normali tal-immaġni jkollhom rimedji differenti.
L-output tal-ħaddiema għadu biss l-ewwel maskra
L-arkitettura tal-ħajta ma ttejjebx tarf ambigwu waħedha. Il-ħaddiem jista 'jirritorna maskra teknikament valida li għadha jonqosha pil, materjal trasparenti, ċineg dojoq, jew dell mixtieq. Dawk huma mistoqsijiet dwar is-segmentazzjoni u l-intenzjoni.
Ix-xogħol tal-editur jerġa ‘jibda wara l-inferenza: skala l-maskra fis-sistema tal-koordinati tax-xogħol, kompost preview, ħalli l-utent jirfinaha, u jesporta l-istat attwali. Riżoluzzjoni tal-maskra vs daqs tal-preview jispjega għaliex dawk is-sistemi ta’ koordinati m’għandhomx jiġu konfużi.
Mudell mentali konċiż
Aħseb fil-ħaddiem bħala speċjalista lokali wara tieqa tal-messaġġ:
- l-editur għandu l-interazzjoni;
- il-ħaddiem għandu l-kompitu tqil ta’ inferenza;
- data ta’ immaġini binarja taqsam fruntiera definita;
- il-ħaddiem jirritorna maskra, mhux ġudizzju lest dwar kull tarf;
- l-editur jibqa’ responsabbli għall-istat attwali, ir-reviżjoni, ir-raffinament, u l-esportazzjoni.
Għall-veduta tal-mudell tal-pixels infushom, kompli b’Xi jara mudell ta’ qtugħ fuq it-tagħmir. Għal ħarsa ġenerali prattika minn tarf sa tarf, ara Kif taħdem it-tneħħija tal-isfond lokali.