Estensjoni ta' Chrome b'xejn — qtugħ fuq it-tagħmir

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:

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:

  1. L-editur joħloq jew juża mill-ġdid ħaddiem.
  2. Jitlob lill-ħaddiem biex jinizjalizza l-runtime u l-mudell tal-inferenza.
  3. Jipprepara dejta tal-immaġni u jibgħat talba għall-inferenza.
  4. Il-ħaddiem jikkonverti d-dejta fl-input mistenni tal-mudell.
  5. Il-ħaddiem imexxi l-mudell u jipproduċi valuri tal-maskra.
  6. Jibgħat lura d-data tal-maskra jew tar-riżultat.
  7. 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:

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:

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ġġ:

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.

Kompli esplora

Interessanti