Web Worker basas del tractament d’imatges
Un Web Worker es un contèxte d’execucion JavaScript separat que pòt realizar de calculs cars sens far tot lo trabalh al fial principal de l’editor. Per lo tractament d’imatges del navigador, aquò significa que la configuracion e l’inferéncia del modèl pòdon s’escapar del fial responsable dels botons, dels messatges de progrès, de l’entrada del pincèl e de las mesas a jorn de l’ecran.
Lo resultat es pas “un tractament de rèire plan gratuit”. Lo meteis periferic realiza encara lo calcul e utiliza la memòria. Lo benefici arquitectural es la separacion: una operacion de modèl pesuga es mens susceptibla de blocar cada responsa d’interfàcia del temps qu’executa.
Lo fial principal a un trabalh d’interfàcia d’utilizaire
Una pagina de navigador executa normalament JavaScript sus un fial principal. Aquel fial coordena tanben la disposicion, la pintura e l’entrada. Se un long calcul l’ocupa, los clics pòdon se sentir retardats, l’animacion pòt s’arrestar, e lo navigador pòt avertir que la pagina respond pas.
Un editor d’imatges a fòrça responsabilitats del fial principal abans que l’inferéncia comence quitament :
- recebre una seleccion de fichièr, pegar o daissar tombar ;
- decodar e afichar una imatge ;
- metre a jorn los estats de progrès e d’error ;
- dessenhar la tela d’apercebut;
- manejar lo movement de pincèl Apondre e Esfaçar ;
- preparar d’accions de telecargament o de quichapapièrs.
Metre lo trabalh numeric d’un modèl de segmentacion sul meteis fial fariá qu’aquelas tòcas concurren dirèctament. Un trabalhador crea una frontièra mai clara.
La frontièra basada sul messatge
L’editor e lo trabalhador partejan pas de variablas ordinàrias. Comunican en mandant de messatges. Un flux simplificat sembla a aquò:
- L’editor crea o reutiliza un trabalhador.
- Demanda al trabalhador d’inicializar lo temps d’execucion e lo modèl d’inferéncia.
- Prepara de donadas d’imatge e manda una demanda d’inferéncia.
- Lo trabalhador convertís las donadas dins l’intrada esperada del modèl.
- Lo trabalhador executa lo modèl e produtz de valors de masca.
- Envia la masca o las donadas de resultat enrè.
- L’editor compausa l’apercebut e permet l’afinament o l’exportacion.
Los messatges deurián inclure pro de contèxte per far correspondre una responsa a la demanda corrècta. Aquò es important se un utilizaire causís un autre imatge abans que lo trabalh precedent s’acabe. L’interfàcia deu evitar d’afichar un resultat ancian sus una font novèla.
Copiar e transferir de donadas d’imatge
Mandar un pichon messatge de tèxte es economic. Enviar de milions de valors de pixèls pòt èsser car se lo navigador deu copiar lo tampon entièr. Las API Web pòdon transferir la proprietat de certans tampons binaris a la plaça. Un tampon transferit ven disponible pel receptor sens conservar un duplicat utilizable del costat de l’expeditor.
Aquela optimizacion ven amb una contrainte de concepcion: après lo transferiment, l’expeditor pòt pas contunhar d’utilizar lo meteis tampon coma se possedissiá encara las donadas. Un editor pòt conservar una representacion d’afichatge separada, crear un tampon d’inferéncia dedicat, o reconstruire çò que li cal mai tard.
Pas totas las implementacions utilizan lo transferiment dins exactament los meteisses luòcs. La leiçon generala es que la separacion dels fials fa pas desaparéisser lo movement de donadas. Las dimensions de l’imatge, la talha del tampon, e lo nombre de conversions afectan encara la latència e la memòria.
Çò que Easy Background Remover met dins lo trabalhador
Easy Background Remover utiliza un Web Worker amb un temps d’execucion d’inferéncia del navigador per la segmentacion sul periferic. L’estapa de talh automatic pesuc produtz una masca. L’editor aficha alara lo resultat compausat e pren en carga lo rafinament de pincèl CPU-tela.
Aquesta separacion dona als fracasses una frontièra mai utila. Se lo trabalhador pòt pas inicializar o s’arrèsta pendent l’inferéncia, l’interfàcia pòt raportar una error ligada al trabalhador en luòc de s’apiejar sus un onglet congelat permanentament coma lo sol senhal.
Manten tanben comprensibla la reclamacion de tractament local. Enviar de pixèls d’una pagina d’extension a son pròpri trabalhador es una comunicacion dins l’environament del navigador, pas un enviament cap a una API de talh a distància. La primièra sesilha pòt telecargar separadament l’actiu modèl reutilizable; veire Perqué la primièra execucion telecarga un modèl.
Un trabalhador fa pas lo calcul instantani
Los trabalhadors melhoran la responsa, pas la capacitat del periferic brut. Lo modèl consoma encara CPU, GPU, o d’autras ressorsas de temps d’execucion segon çò que lo navigador pòt provesir. Una entrada granda pòt encara prene mai de temps e demandar mai de memòria qu’una pichona.
Divèrses limits demòran:
- l’inicializacion del modèl a un còst real;
- los tampons pixèls ocupan la memòria dels dos costats se son copiats;
- la redimensionament e la conversion de format prenon de temps ;
- los periferics de bassa memòria pòdon aver de dificultats amb d’imatges grands;
- mai d’obrièrs pòdon aumentar la contencion en luòc de la reduire;
- las mesas a jorn d’exportacion e de tela pòdon encara implicar lo fial principal.
Aviar cinc trabalhadors d’inferéncia per cinc imatges es pas automaticament cinc còps mai rapid. Los obrièrs partejan la meteissa maquina. Los trabalhs parallèls pòdon concurrençar per la largor de banda de memòria e las ressorsas d’execucion, del temps que cada instància de modèl pòt portar son pròpri còst de memòria.
L’informacion de progrès es cooperativa
Un trabalhador pòt mandar de messatges d’estat, mas sap pas automaticament quin percentatge de progrès serà exacte. Lo telecargament del modèl, l’inicializacion del temps d’execucion, la preparacion de l’entrada, l’inferéncia, la conversion de la masca e lo rendut d’apercebut son de fasas separadas amb de moments diferents.
Qualques fasas an de comptes d’octets mesurables. Una execucion de modèl unic pòt pas qu’expausar “començat” e “acabat”. Un percentatge doç qu’avança uniformament pòt doncas èsser cosmetic puslèu qu’una mesura precisa.
L’IU de progrès util nomena la fasa quand es possible: preparacion de modèl, tractament de l’imatge, o construccion de resultat. Gestiona tanben lo fracàs e l’anullacion en luòc de daissar un filaire sens explicacion.
L’anullacion es mai qu’amagar un spinner
Se l’utilizaire tampa un imatge o comença de nòu, l’interfàcia pòt ignorar la responsa eventuala de la demanda despassada. Arrestar lo calcul sosjacent immediatament pòt demandar un supòrt suplementari del temps d’execucion o la fin e la recreacion del trabalhador.
La fin d’un trabalhador es decisiu, mas rebuta son estat inicializat. Lo trabalh seguent pòt aver besonh de tornar cargar e inicializar lo modèl. Per una operacion corta, marcar lo resultat ranci pòt èsser mai economic que de demolir tot.
La causida corrècta depend de la pression de la memòria, de la durada de l’operacion e de las capacitats de temps d’execucion. Del punt de vista de l’utilizaire, la règla importanta es que lo trabalh obsolet deu pas subrescriure l’edicion actuala.
Las errors an de besonh de traversar la frontièra tanben
Una excepcion dins un trabalhador ven pas una excepcion normala del fial principal. Lo trabalhador deu raportar d’errors utilizablas, e l’editor deuriá escotar los fracasses al nivèl del trabalhador.
Una bona gestion de las errors destria al mens:
- actiu modèl indisponible;
- l’inicializacion del modèl a fracassat ;
- lo descodatge de l’imatge o la preparacion de l’entrada a fracassat ;
- l’inferéncia fracassèt;
- obrièr s’arrestèt inesperadament;
- lo resultat aparten pas pus a la requèsta actuala.
Aquò es mai accionable qu’un generic “quicòm s’es mal anat”, mai que mai quand la configuracion de primièra execucion e lo tractament normal de l’imatge an de remèdis diferents.
La sortida del trabalhador es encara pas qu’una primièra masca
L’arquitectura de fial melhora pas un bòrd ambigú per ela meteissa. L’obrièr pòt tornar una masca tecnicament valida que manca encara de pel, de material transparent, de correjas estrechas, o una ombra desirada. Aquò’s de questions de segmentacion e d’intencion.
Lo trabalh de l’editor repren après l’inferéncia : escalar la masca dins lo sistèma de coordenadas de foncionament, compausar una apercebut, daissar l’utilizaire l’afinar, e exportar l’estat actual. Resolucion de masca vs talha d’apercebut explica perqué aqueles sistèmas de coordenadas deurián pas èsser confonduts.
Un modèl mental concís
Pensatz al trabalhador coma un especialista local darrièr una fenèstra de messatge :
- l’editor possedís l’interaccion ;
- lo trabalhador possedís la gròssa tòca d’inferéncia ;
- las donadas d’imatge binari travèrsan una frontièra definida;
- l’obrièr torna una masca, pas un jutjament acabat a prepaus de cada bòrd;
- l’editor demòra responsable de l’estat actual, de la revision, del rafinament, e de l’exportacion.
Per la vista del modèl dels pixèls eles-meteisses, contunhatz amb Çò que vei un modèl de talh sus periferic. Per una vista generala practica de punta a punta, consultatz Cossí fonciona la supression de rèireplan local.