Free Chrome ntrɛwmu — on-device cutouts

Web Worker mfonini dwumadie mfitiaseɛ

Web Worker yɛ JavaScript execution context a ɛyɛ soronko a ɛtumi yɛ akontabuo a ne boɔ yɛ den a ɛmma editor no thread titire no nyɛ adwuma no nyinaa. Wɔ browser mfonini dwumadie ho no, ɛno kyerɛ sɛ model nhyehyeɛ ne inference betumi aguan afiri thread a ɛhwɛ buttons, nkɔsoɔ nkrasɛm, brush input, ne screen updates so.

Nea afi mu aba no nyɛ “akyi a wodi ho dwuma a wontua hwee.” Afiri koro no ara da so ara yɛ akontaabu no na ɛde memory di dwuma. Mfasoɔ a ɛwɔ adansiɛ mu ne mpaepaemu: model dwumadie a emu yɛ duru ntaa nsiw interface mmuaeɛ biara kwan berɛ a ɛretu mmirika.

Thread titiriw no wɔ user-interface adwuma

Browser krataafa taa de JavaScript di dwuma wɔ thread titiriw bi so. Saa asaawa no nso yɛ nhyehyɛe, mfonini, ne nsɛm a wɔde hyɛ mu no ho nhyehyɛe. Sɛ akontaabu tenten biako gye mu a, ebia wobɛte nka sɛ kliki no akyɛ, animation betumi agyae, na browser no betumi abɔ kɔkɔ sɛ kratafa no ntumi nyɛ adwuma.

Mfonini editor wɔ main-thread asɛyɛde pii ansa na inference mpo afi ase:

Sɛ wɔde segmentation model bi akontaabu adwuma no to asaawa koro no ara so a, ɛbɛma saa nnwuma no asi akan tẽẽ. Odwumayɛni de ɔhye a emu da hɔ ba.

Ɔhye a egyina nkrasɛm so

Ɔkyerɛwfo ne odwumayɛni no nkyɛ nsakrae a ɛyɛ mpapahwekwa. Wɔnam nkrasɛm a wɔde mena so na wodi nkitaho. Nsu a ɛsen a wɔayɛ no mmerɛw no te sɛ eyi:

  1. Ɔkyerɛwfo no bɔ anaasɛ ɔsan de odwumayɛni bi di dwuma.
  2. Ɛbisa odwumayɛni no sɛ ɔmfa inference runtime ne model no mfi ase.
  3. Ɛsiesie mfonini data na ɛde inference request kɔ.
  4. Odwumayɛni no dannan data no kɔ model no input a wɔhwɛ kwan no mu.
  5. Odwumayɛni no na ɔyɛ model no na ɔyɛ mask values.
  6. Ɛde mask anaa nea efi mu ba data no san kɔ.
  7. Editor no boaboa preview no ano na ɛma wotumi yɛ refinement anaasɛ export.

Ɛsɛ sɛ nkrasɛm no de nsɛm a ɛfa ho a ɛdɔɔso ka ho ma ɛne mmuae a wɔde ma wɔ abisade a ɛteɛ no ho hyia. Eyi ho hia sɛ obi a ɔde di dwuma paw mfonini foforo ansa na adwuma a atwam no awie a. Ɛsɛ sɛ interface no kwati sɛ ɛbɛda aba dedaw bi adi wɔ fibea foforo so.

Mfonini data a wɔde kɔpi na wɔde kɔ baabi foforo

Sɛ wode text message ketewaa bi mena a, ne bo nyɛ den. Pixel value ɔpepem pii a wode bɛmena no betumi ayɛ nea ne bo yɛ den sɛ ɛsɛ sɛ browser no yɛ buffer no nyinaa kɔpi a. Web APIs betumi de binary buffers binom wurayɛ akɔ baabi foforo mmom. Buffer a wɔde akɔ baabi foforo no bɛyɛ nea ɛwɔ hɔ ma nea ogye no a ɛnkora duplicate a wobetumi de adi dwuma wɔ nea ɔde kɔma no no fã.

Saa optimization no de design constraint ba: wɔ transfer akyi no, nea ɔde kɔma no ntumi nkɔ so mfa buffer koro no ara nni dwuma te sɛ nea ɔda so ara wɔ data no. Ɔkyerɛwfo betumi akora ɔyɛkyerɛ gyinabea a ɛyɛ soronko so, ayɛ nsusuwii buffer a wɔatu ho ama, anaasɛ asan ayɛ nea ohia akyiri yi.

Ɛnyɛ dwumadie biara na ɛde transfer di dwuma wɔ mmeaeɛ korɔ no ara pɛpɛɛpɛ. Asuade a ɛwɔ hɔ nyinaa ne sɛ thread mpaapaemu mma data a ɛkɔ baabiara no yera. Mfonini no nsusuwii, buffer kɛse, ne nsakrae dodow da so ara nya latency ne memory so nkɛntɛnso.

Nea Easy Background Remover de hyɛ odwumayɛni no mu

Easy Background Remover de Wɛb Adwumayɛfoɔ a ɔwɔ browser inference runtime di dwuma ma on-device nkyekyɛmu. Anamɔn a emu yɛ duru a wɔde twa ade a ɛyɛ adwuma ankasa no ma wonya akataso. Afei editor no kyerɛ nea wɔaboaboa ano no na ɛboa CPU-canvas brush refinement.

Saa mpaapaemu yi ma huammɔdi nya ɔhye a mfaso wɔ so kɛse. Sɛ odwumayɛni no ntumi mfi ase anaasɛ ɛbɔ bere a wɔresusuw nsɛm ho a, interface no betumi abɔ mfomso a ɛfa odwumayɛni ho amanneɛ sen sɛ ɛde ne ho bɛto tab a wɔahyɛ no nwini daa so sɛ sɛnkyerɛnne koro pɛ.

Ɛsan nso ma wɔte mpɔtam hɔ-dwumadi ho asɛm no ase. Pixels a wɔde fi ntrɛwmu krataafa bi so kɔ n’ankasa adwumayɛfo nkyɛn no yɛ nkitahodi wɔ browser no mu, ɛnyɛ upload a ɛkɔ akyirikyiri cutout API. Nhyiam a edi kan no betumi atwe model agyapade a wotumi de di dwuma bio no wɔ ɔkwan soronko so; hwɛ Dɛn nti na di kan tu mmirika twe model bi.

Odwumayɛni nnyɛ computation instant

Adwumayɛfo ma sɛnea wɔyɛ ade no tu mpɔn, na ɛnyɛ mfiri a wɔmfa nhyehyɛ mu no tumi. Model no da so ara di CPU, GPU, anaa runtime nneɛma afoforo sɛnea nea browser no betumi de ama no te. Input kɛse bi da so ara tumi gye bere tenten na egye memory pii sen ketewaa bi.

Anohyeto ahorow pii da so ara wɔ hɔ:

Inference adwumayɛfo anum a wobefi ase ama mfonini anum no nyɛ nea ɛyɛ ntɛm mmɔho anum ara kwa. Adwumayɛfo no wɔ afiri koro. Nnwuma a ɛne ne ho di nsɛ betumi asi akan wɔ memory bandwidth ne execution resources ho, bere a model instance biara betumi asoa n’ankasa memory ka.

Nkɔso ho amanneɛbɔ yɛ biakoyɛ

Odwumayɛni betumi de tebea ho nkrasɛm amena, nanso onnim nkɔso ɔha biara mu nkyem a ɛbɛte nka sɛ ɛyɛ nokware ankasa. Model download, runtime initialization, input ahosiesie, inference, mask conversion, ne preview rendering yɛ nsɛm a ɛtetew mu a ɛsono bere.

Fase ahorow bi wɔ byte dodow a wotumi susuw. Ebia model execution biako bɛda “wɔafi ase” ne “awie” nkutoo adi. Enti ɔha biara mu nkyem a ɛyɛ mmerɛw a ɛkɔ n’anim pɛpɛɛpɛ no betumi ayɛ nea wɔde yɛ ahosiesie mmom sen sɛ ɛbɛyɛ nea wɔde susuw pɛpɛɛpɛ.

Nkɔsoɔ UI a mfasoɔ wɔ so to ɔfa no din berɛ a ɛbɛyɛ yie: model a wɔresiesie, mfonini a wɔreyɛ, anaa nea ɛfiri mu ba a wɔsi. Ɛsan nso di huammɔdi ne nea wɔtwa mu ho dwuma sen sɛ ebegyaw spinner bi a onni nkyerɛkyerɛmu biara.

Cancellation yɛ nea ɛsen spinner a wode besie

Sɛ nea ɔde di dwuma no to mfonini bi mu anaasɛ ofi ase bio a, interface no betumi abu n’ani agu mmuae a awiei koraa no efi adesrɛ a ne bere atwam no mu no so. Sɛ wobɛgyae akontabuo a ɛwɔ aseɛ no ntɛm ara a, ɛbɛhia mmoa foforɔ afiri runtime no hɔ anaasɛ wobɛgyae na woasan abɔ odwumayɛni no.

Odwumayɛni bi a wobegyae no yɛ nea ɛyɛ gyinaesi, nanso ɛtow ne tebea a wofii ase no gu. Ebia ɛho behia sɛ adwuma a edi hɔ no load na ɛhyɛ model no ase bio. Wɔ oprehyɛn tiawa mu no, nea efi mu ba a wɔbɛhyɛ no agyirae sɛ ɛyɛ dedaw no betumi ayɛ nea ne bo nyɛ den sen sɛ wobebubu biribiara agu.

Paw a ɛteɛ no gyina memory pressure, bere tenten a wɔde yɛ adwuma, ne runtime tumi so. Sɛ yɛhwɛ nea ɔde di dwuma no a, mmara a ɛho hia ne sɛ ɛnsɛ sɛ adwuma a ayɛ dedaw no kyerɛw mprempren nsakrae no so.

Mfomso hia sɛ ɛtwa ɔhye no nso

Exception a ɛwɔ odwumayɛni mu no nnyɛ main-thread exception a ɛyɛ daa. Ɛsɛ sɛ odwumayɛni no bɔ mfomso a wotumi de di dwuma ho amanneɛ, na ɛsɛ sɛ samufo no tie sɛ ebia adwumayɛfo no di nkogu.

Mfomso ho dwuma a wodi yiye no ma anyɛ yiye koraa no, ɛda nsow:

Eyi yɛ nea wotumi yɛ ho adwuma sen “biribi ankɔ yiye” a wɔde di dwuma wɔ ɔkwan a ɛkɔ akyiri so, titiriw bere a nhyehyɛe a edi kan a wɔde di dwuma ne mfonini a wɔyɛ no daa no wɔ ano aduru ahorow no.

Adwumayɛfoɔ output da so ara yɛ mask a ɛdi kan nko ara

Thread architecture mma edge a emu nna hɔ no ntu mpɔn wɔ n’ankasa mu. Odwumayɛni no betumi asan de akataso a ɛfata wɔ mfiridwuma mu a ɛda so ara nni aboa nhoma, nneɛma a ɛyɛ mmerɛw, ahama teateaa, anaa sunsuma a ɔpɛ asan aba. Ɛnonom yɛ nsɛmmisa a ɛfa mpaapaemu ne adwene a wɔde di dwuma ho.

Editor no adwuma san fi ase wɔ inference akyi: scale mask no kɔ adwumayɛ coordinate system no mu, hyehyɛ preview, ma ɔdefo no nsiesie, na fa mprempren tebea no kɔ amannɔne. Mask resolution vs preview size kyerɛkyerɛ nea enti a ɛnsɛ sɛ wɔma saa coordinate nhyehyɛe ahorow no yɛ basaa.

Adwene mu nhwɛso tiawa

Fa odwumayɛni no sɛ mpɔtam hɔ oduruyɛfo titiriw bi a ɔwɔ nkrasɛm mfɛnsere bi akyi:

Sɛ wopɛ sɛ model no hwɛ piksel no ankasa a, kɔ so de Nea on-device cutout model hu. Sɛ wopɛ nsusuwii a mfaso wɔ so a efi awiei kosi awiei a, hwɛ Sɛnea mpɔtam hɔ akyi yiyi yɛ adwuma.

Kɔ so hwehwɛ nneɛma mu

Anika