Libre nga ekstension ti Chrome — on-device cutouts

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:

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:

  1. Ti editor ket mangparnuay wenno mangusar manen iti maysa a trabahador.
  2. Kiddawenna iti trabahador nga irugi ti inference runtime ken model.
  3. Daytoy ket mangisagana ti datos ti ladawan ken mangipatulod ti kiddaw ti inference.
  4. Ti trabahador ket pagbalinenna ti datos iti manamnama nga input ti modelo.
  5. Ti trabahador ti mangpataray iti modelo ken mangpataud kadagiti pateg ti maskara.
  6. Ipatulodna manen ti maskara wenno resulta a datos.
  7. 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 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:

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:

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.

Itultuloymo ti agsukisok

Nadagem