Modele și platforme AI

TinySAM: Extinderea limitelor pentru modelul Segment Anything

mm
Adaugă Unite.AI la sursele tale preferate pe Google

Segmentarea obiectelor este un domeniu fundamental și extrem de important în viziunea computerizată modernă. Joacă un rol vital în aplicații care necesită componente vizuale extinse, cum ar fi localizarea și identificarea obiectelor, și necesită segmentare rapidă, precisă și în timp real. Această importanță a făcut ca segmentarea obiectelor să fie un subiect de cercetare constant, cu lucrări semnificative efectuate în domenii precum segmentarea instanțelor, segmentarea semantică și segmentarea panoptică.

În evoluția segmentării obiectelor, modelul Segment Anything (SAM) a apărut ca un instrument remarcabil, demonstrând capacități de segmentare deosebite și fiind adoptat rapid în diverse aplicații de viziune computerizată. Framework-urile care utilizează arhitectura SAM pre-antrenată au obținut performanțe impresionante în sarcinile de viziune downstream. Cu toate acestea, în ciuda capacităților sale și a preciziei ridicate în sarcinile de segmentare, arhitectura complexă și grea a SAM necesită putere de calcul substanțială, împiedicând implementarea sa pe dispozitive cu resurse limitate.

Pentru a aborda provocările de calcul ale SAM, cercetătorii au dezvoltat Tiny Segment Anything Model (TinySAM), care păstrează performanța zero-shot a framework-ului original, fiind în același timp mai ușor. TinySAM utilizează o metodă de distilare a cunoștințelor pe tot parcursul etapei, cu prompturi online dificile pentru a crea un model de student mai eficient. Cuantificarea post-antrenament adaptată la sarcinile de segmentare promptabile reduce și mai mult necesitățile de calcul. În plus, proiectarea TinySAM vizează segmentarea ierarhică, care aproape dublează viteza de inferență fără a compromite performanța.

Acest articol explorează framework-ul TinySAM, examinând principiile sale fundamentale, arhitectura și performanța în comparație cu alte framework-uri de segmentare de ultimă generație. Să explorăm aceste aspecte în detaliu.

TinySAM: Model Eficient de Segmentare a Orice

Modelul Segment Anything a contribuit la progresul rapid al mai multor aplicații de viziune computerizată, datorită capacităților sale remarcabile de segmentare, asociate cu un set de date de segmentare masiv, care conține peste 11 milioane de imagini și peste un miliard de măști de imagine. Datorită performanței sale excepționale în sarcinile de segmentare a obiectelor cu categorii și forme arbitrare, servește ca fundament pentru framework-urile care efectuează sarcini downstream, cum ar fi îmbunătățirea imaginilor, urmărirea obiectelor, viziunea 3D și multe altele. În plus, Modelul Segment Anything oferă și o performanță remarcabilă de segmentare zero-shot, care a beneficiat industrii sensibile care lucrează cu cantități limitate de date, inclusiv cercetarea medicală și imagistica medicală.

Deși nu se poate pune la îndoială capacitățile remarcabile de segmentare oferite de Modelul Segment Anything pentru o gamă largă de sarcini de viziune downstream, are și un dezavantaj în ceea ce privește arhitectura complexă, necesitățile de calcul ridicate și costurile operaționale semnificative. Pentru un sistem care rulează pe un GPU modern, timpul de inferență al unui model SAM poate fi de până la 2 secunde pentru o imagine de 1024×1024. Ca urmare, este o sarcină foarte dificilă de a implementa aplicații SAM pe dispozitive cu capacități de calcul limitate. Pentru a depăși acest obstacol, lucrări recente, cum ar fi MobileSAM și FastSAM, au încercat să dezvolte un model SAM cu mai multă eficiență de calcul. Framework-ul MobileSAM încearcă să înlocuiască componenta grea din encoderul de imagine cu arhitectura TinyViT, în timp ce modelul FastSAM transferă sarcina de segmentare la o sarcină de segmentare a instanțelor cu o singură categorie, utilizând modelul YoloV8. Deși aceste metode au reușit să obțină un anumit nivel de succes în ceea ce privește reducerea necesităților de calcul, nu au putut menține performanța, în special în sarcinile zero-shot downstream.

TinySAM sau Tiny Segment Anything Model este o încercare de a reduce necesitățile de calcul ale modelului SAM actual, fără a compromite performanța în sarcinile zero-shot downstream. În plus, framework-ul TinySAM propune implementarea unei metode de distilare a cunoștințelor pe tot parcursul etapei, cu scopul de a îmbunătăți capacitatea rețelei compacte de student. Framework-ul TinySAM distilează rețeaua de student într-un mod de la capăt la coadă, sub supravegherea rețelei de profesor, din diferite etape. Pentru a îmbunătăți și mai mult performanța, framework-ul permite procesului de distilare să se concentreze mai mult asupra exemplelor dificile, implementând o strategie suplimentară de eșantionare a prompturilor online dificile. În plus, pentru a reduce și mai mult costurile de calcul, framework-ul TinySAM expune sarcinile de segmentare promptabile la componente de cuantificare post-antrenament.

Cea mai mare parte a necesităților de calcul ale Modelului Segment Anything se datorează faptului că modelul generează măști masive din punctele de grilă pentru a segmenta totul în imagine. Pentru a depăși necesitățile de calcul ale acestei strategii de segmentare, framework-ul TinySAM utilizează o strategie ierarhică de segmentare a totului, care aproape dublează viteza de inferență, fără a compromite performanța. Cu aceste metode implementate în arhitectura sa, framework-ul TinySAM oferă o reducere semnificativă a necesităților de calcul și stabilește noi limite pentru sarcinile de segmentare eficientă.

TinySAM: Arhitectură și Metodologie

Înainte de a discuta despre arhitectura și metodologia framework-ului TinySAM, este important să examinăm mai întâi predecesorul său, framework-ul SAM. De la introducerea sa, Modelul Segment Anything a demonstrat performanțe remarcabile, versatilitate și capacități de generalizare pe o gamă largă de sarcini de viziune și segmentare a obiectelor.

La nivelul său fundamental, modelul SAM constă din trei sub-rețele: encoderul de prompt, encoderul de imagine și decoderul de mască. Scopul principal al encoderului de prompt este de a codifica măști cu forme arbitrare, puncte de intrare și cutii, precum și textul liber cu informații poziționale. Encoderul de imagine este o rețea grea bazată pe transformatorul de viziune, care extrage imaginea de intrare în încorporări. Modelul utilizează rețele diferite pentru a procesa prompturile geometrice și textuale. În final, decoderul de mască conține un transformator bidirecțional care primește ieșirea encoderului de prompt și a encoderului de imagine pentru a genera predicția finală a măștii. Cu setul de date, framework-ul SAM demonstrează capacități de segmentare de înaltă calitate pentru obiecte, indiferent de forma și categoria lor. În plus, Modelul Segment Anything demonstrează performanțe remarcabile și eficiență pe sarcini de viziune zero-shot downstream, incluzând propunerea de obiecte, detectarea marginilor, predicția măștii de la text și segmentarea instanțelor. Datorită capacităților sale de segmentare de înaltă calitate și a ofertelor de prompt flexibile, framework-urile SAM formează baza pentru aplicațiile de viziune. Cu toate acestea, nu se poate ignora necesitatea de calcul ridicată a arhitecturii SAM tradiționale, cu un număr mare de parametri, ceea ce face aproape imposibil pentru dezvoltatori să implementeze aplicații bazate pe SAM pe dispozitive cu resurse limitate.

Distilarea Cunoștințelor

Distilarea cunoștințelor este o abordare importantă pentru a îmbunătăți performanța rețelelor compacte în timpul fazei de antrenament. Metoda de distilare a cunoștințelor utilizează ieșirea rețelei de profesor pentru a supraveghea antrenamentul rețelei de student ușoare. Metoda de distilare a cunoștințelor poate fi împărțită în două subcategorii: distilare pentru caracteristici intermediare și distilare pentru ieșiri de rețea, cu majoritatea lucrărilor de cercetare despre distilarea cunoștințelor axate pe sarcinile de clasificare a imaginilor.

Cu toate acestea, figura de mai jos demonstrează arhitectura generică a framework-ului TinySAM, împreună cu o prezentare a performanței pe sarcinile de segmentare a instanțelor zero-shot.

În prima etapă, framework-ul TinySAM implementează distilarea cunoștințelor, proiectată special pentru framework-ul SAM, și pentru a activa procesul de distilare și mai mult, modelul utilizează un eșantionaj online de prompturi dificile pentru a extrage cunoștințele dificile către rețeaua de student de la rețeaua de profesor. În a doua etapă, framework-ul TinySAM adaptează metoda de cuantificare post-antrenament la sarcinile de segmentare promptabile și o implementează pe rețeaua de student ușoară. În final, modelul implementează modul de inferență ierarhică de segmentare a totului, proiectat pentru sarcinile de segmentare, care dublează viteza de inferență, cu o pierdere de precizie neglijabilă.

Distilarea Cunoștințelor pe Tot Parcursul Etapei

Așa cum s-a menționat anterior, Modelul Segment Anything constă din trei sub-rețele la nivelul său fundamental: encoderul de prompt, encoderul de imagine și decoderul de mască, cu componenta encoderului de imagine construită pe un transformator de viziune și având necesități de calcul ridicate. Pentru a aborda această problemă, framework-ul MobileSAM a înlocuit transformatorul de viziune cu un TinyViT sau un transformator de viziune mic, deși înlocuirea nu a fost eficientă, având în vedere decăderea semnificativă a performanței. Pentru a asigura că nu există nicio decădere a performanței, framework-ul TinySAM implementează o metodă de distilare a cunoștințelor pe tot parcursul etapei, care ghidă encoderul de imagine ușor de la nivelul de învățare la nivelul de cunoștințe multiple. În plus față de pierderea convențională dintre etichetele reale și rezultatele prezise, framework-ul TinySAM introduce pierderi de distilare multiple în timpul diferitelor etape, așa cum se arată în figura de mai jos.

Cuantificarea

Cuantificarea modelului este o abordare populară în framework-urile de viziune computerizată și este utilizată pentru a comprima modelul prin cuantificarea greutăților sau a activărilor de la o lățime de bandă mai mare la una mai mică, în încercarea de a reduce complexitatea computațională și necesitățile de stocare, fără a compromite calitatea ieșirii în mod semnificativ.

Scopul principal al cuantificării în TinySAM este de a proiecta tensorul cu puncte flotante pe tensorul de numere întregi, utilizând un factor de scalare, cu metrica pentru măsurarea distanței dintre înmulțirea matricelor și matricea cuantificată, jucând un rol vital pentru optimizarea factorului de scalare.

Segmentarea Ierarhică a Totului

Modelul Segment Anything propune utilizarea unui generator de măști automat, care eșantionează puncte sub formă de grilă pentru a segmenta totul în imagine. Cu toate acestea, s-a indicat că utilizarea unei grile de puncte dense conduce la ieșiri de segmentare prea fine și procesul necesită necesități de calcul masive și implică costuri operaționale ridicate. În plus, pe de o parte, prea multe puncte de eșantionare pentru un obiect complet pot duce la segmentarea greșită a diferitelor secțiuni ale obiectului ca măști separate, în timp ce pe de altă parte, costul în timp al modului de inferență a totului este în primul rând datorită faptului că encoderul de imagine a fost micșorat semnificativ. Pentru a reduce costul operațional al modului de inferență a totului, framework-ul TinySAM utilizează o abordare ierarhică de generare a măștilor, cu diferența de strategie față de framework-ul SAM original, demonstrată în imaginea de mai jos.

Diferit de abordarea implementată în framework-ul SAM original, modelul TinySAM utilizează doar 25% din puncte pe fiecare parte, utilizând astfel doar 1/16 din punctele disponibile în setarea originală. Modelul inferă apoi decoderul de mască și encoderul de prompt cu aceste prompturi și obține ieșirea. Modelul filtrează apoi unele măști cu o încredere care depășește un anumit prag și maschează locațiile corespunzătoare ca zone pentru predicții finale potențiale. Deoarece modelul tratează aceste regiuni ca rezultat al segmentării instanțelor cu încredere ridicată, nu are nevoie să genereze prompturi de puncte. Strategia nu numai că ajută la prevenirea segmentării prea fine a obiectului, dar ajută și la reducerea semnificativă a costurilor operaționale și a necesităților de calcul. Framework-ul combină și prelucrează apoi rezultatele acestor două runde pentru a obține măștile finale.

TinySAM: Experimente și Rezultate

Pentru a accelera procesul de distilare, framework-ul TinySAM calculează și stochează încorporările de imagine de la rețeaua de profesor în avans, datorită faptului că nu este necesar ca modelul să recalculeze encoderul de imagine greu al rețelei de profesor în mod repetat în timpul fazei de antrenament. Pentru cuantificarea post-antrenament, framework-ul TinySAM cuantifică toate straturile de înmulțire a matricelor, straturile de convoluție, straturile de deconvoluție și straturile liniare, cu modelul utilizând factori de scalare canal-wise atât pentru straturile de convoluție, cât și pentru cele de deconvoluție. Pentru straturile de înmulțire a matricelor, modelul implementează factori de scalare head-wise, în timp ce pentru straturile liniare, modelul implementează factori de scalare liniari. Modelul efectuează, de asemenea, o evaluare a sarcinilor downstream zero-shot.

Pentru sarcinile de segmentare a instanțelor într-un mediu zero-shot, framework-ul TinySAM urmează setările experimentale ale predecesorului său, Modelul Segment Anything, și utilizează rezultatele detectării obiectelor de la framework-ul Vision Transformer Det-H sau VitDet-H pentru segmentarea instanțelor. Așa cum se demonstrează în imaginea de mai jos, framework-ul TinySAM depășește metodele existente în ceea ce privește precizia segmentării instanțelor și scorul FLOPs.

În plus, performanța calitativă a modelului TinySAM este demonstrată în imaginea de mai jos pentru segmentarea instanțelor zero-shot, cu cutia verde reprezentând prompturile de cutii.

În ceea ce privește evaluarea măștilor valide zero-shot, modelul TinySAM depășește framework-ul MobileSAM în mod semnificativ pe diferite seturi de date și oferă rezultate substanțial mai bune atunci când se utilizează un număr mai mic de puncte ca prompturi de către framework.

În plus, tabela de mai jos rezumă rezultatele accelerării și reducerii necesităților de calcul, obținute ca urmare a strategiei de segmentare ierarhică a totului. Modelul aplică același scor de stabilitate și valoare de prag, cu diferite strategii pentru o comparație corectă, și rezultatele sunt prezentate mai jos.

Gânduri Finale

În acest articol, am discutat despre TinySAM, un framework propus care împinge limitele pentru segmentarea oricărei sarcini și obține o arhitectură de model eficientă, cu necesități de calcul mai mici și precizie la fel de bună ca și framework-ul SAM original. TinySAM sau Tiny Segment Anything Model păstrează și livrează performanța zero-shot a framework-ului original. Framework-ul TinySAM implementează mai întâi o metodă de distilare a cunoștințelor pe tot parcursul etapei, care utilizează prompturi online dificile pentru a distila un model de student ușor. Framework-ul TinySAM adaptează apoi cuantificarea post-antrenament la sarcinile de segmentare promptabile, ceea ce ajută și mai mult la reducerea necesităților de calcul. În plus, framework-ul vizează segmentarea ierarhică a totului, care aproape dublează viteza de inferență, fără a afecta performanța.

"Un inginer de profesie, un scriitor din inimă". Kunal este un scriitor tehnic cu o dragoste și o înțelegere profundă a inteligenței artificiale și a învățării automate, dedicat simplificării conceptelor complexe din aceste domenii prin documentația sa captivantă și informativă.