Modelli e piattaforme di IA
BrushNet: Inpainting di Immagini con Diffusione a Doppio Ramo
L’inpainting di immagini è uno dei problemi classici nel campo della visione artificiale, e si propone di ripristinare le aree mascherate di un’immagine con contenuti plausibili e naturali. I lavori esistenti che utilizzano tecniche di inpainting tradizionali come le Reti Adversarie Generative (GAN) e gli Autoencoder Variazionali (VAE) spesso richiedono funzionalità ausiliarie progettate manualmente, ma allo stesso tempo non forniscono risultati soddisfacenti. Negli ultimi anni, i metodi basati sulla diffusione hanno guadagnato popolarità all’interno della comunità di visione artificiale grazie alle loro capacità di generazione di immagini di alta qualità, alla diversità di output e al controllo fine-granulare. I primi tentativi di utilizzare modelli di diffusione per l’inpainting di immagini guidate da testo hanno modificato la strategia di denoising standard campionando le aree mascherate da un modello di diffusione pre-addestrato e le aree non mascherate dall’immagine data. Sebbene questi metodi abbiano fornito prestazioni soddisfacenti in compiti di inpainting di immagini semplici, hanno avuto difficoltà con forme di maschera complesse, prompt di testo e contenuti di immagini che hanno portato a una mancanza generale di coerenza.
Nonostante i progressi, la ricerca e lo sviluppo di questi modelli negli ultimi anni, l’inpainting di immagini è ancora un ostacolo significativo per gli sviluppatori di visione artificiale. Le attuali adattamenti dei modelli di diffusione per i compiti di inpainting di immagini coinvolgono la modifica della strategia di campionamento o lo sviluppo di modelli di inpainting specifici, che spesso soffrono di una riduzione della qualità dell’immagine e di una semantica inconsistente. Per affrontare queste sfide e aprire la strada ai modelli di inpainting di immagini, in questo articolo parleremo di BrushNet, un framework innovativo plug-and-play a doppio ramo progettato per incorporare funzionalità di immagini mascherate a livello di pixel in qualsiasi modello di diffusione pre-addestrato, garantendo coerenza e risultati migliorati nei compiti di inpainting di immagini. Il framework BrushNet introduce un nuovo paradigma in cui il framework divide le funzionalità dell’immagine e i latenti rumorosi in rami separati. La divisione delle funzionalità dell’immagine e dei latenti rumorosi riduce notevolmente il carico di apprendimento per il modello e facilita un’incorporazione sfumata delle informazioni essenziali dell’immagine mascherata in modo gerarchico. In aggiunta al framework BrushNet, parleremo anche di BrushBench e BrushData, che facilitano la valutazione delle prestazioni basata sulla segmentazione e l’addestramento dell’inpainting di immagini, rispettivamente.

Questo articolo si propone di coprire il framework BrushNet in profondità e di esplorare il meccanismo, la metodologia, l’architettura del framework insieme al suo confronto con framework di stato dell’arte. Quindi, iniziamo.
BrushNet: Inpainting di Immagini con Diffusione a Doppio Ramo
L’inpainting di immagini, un metodo che tenta di ripristinare le aree mancanti di un’immagine mantenendo la coerenza generale, è stato un problema di lunga data nel campo della visione artificiale e ha disturbato gli sviluppatori e i ricercatori per alcuni anni. L’inpainting di immagini trova le sue applicazioni in una vasta gamma di compiti di visione artificiale, tra cui la modifica di immagini e le prove virtuali. Di recente, i modelli di diffusione come Stable Diffusion e Stable Diffusion 1.5 hanno dimostrato una notevole capacità di generare immagini di alta qualità e forniscono agli utenti la flessibilità di controllare i controlli semantici e strutturali. La notevole potenzialità dei modelli di diffusione è ciò che ha spinto i ricercatori a utilizzare i modelli di diffusione per compiti di inpainting di immagini di alta qualità che si allineano con i prompt di testo.
I metodi utilizzati dai framework di inpainting di immagini guidate da testo basati sulla diffusione tradizionale possono essere suddivisi in due categorie, Modifica della Strategia di Campionamento e Modelli di Inpainting Dedicati. Il metodo di modifica della strategia di campionamento modifica il processo di denoising standard campionando le aree mascherate da un modello di diffusione pre-addestrato e copiando le aree non mascherate dall’immagine data in ogni passo di denoising. Sebbene gli approcci di modifica della strategia di campionamento possano essere implementati in modelli di diffusione arbitrari, spesso producono risultati di inpainting incoerenti poiché hanno una conoscenza percettiva limitata dei confini della maschera e del contesto dell’immagine non mascherata. D’altra parte, i modelli di inpainting dedicati addestrano un modello di inpainting di immagini progettato specificamente espandendo le dimensioni del canale di input del modello di diffusione di base per incorporare l’immagine corrotta e le maschere. Sebbene i modelli di inpainting dedicati consentano al modello di diffusione di generare risultati più soddisfacenti con modelli consapevoli di forma e contenuto specializzati, potrebbe non essere il miglior design architettonico per i modelli di inpainting di immagini.
Come dimostrato nell’immagine seguente, i modelli di inpainting dedicati fondono il latente dell’immagine mascherata, il rumore latente, il testo e la maschera in una fase precoce. Il design architettonico di tali modelli di inpainting dedicati influenza facilmente le funzionalità dell’immagine mascherata e impedisce ai livelli successivi nell’architettura UNet di ottenere funzionalità di immagini mascherate pure a causa dell’influenza del testo. Inoltre, gestire la generazione e la condizione in un unico ramo impone un ulteriore onere all’architettura UNet, e poiché questi approcci richiedono anche un addestramento in diverse varianti del modello di diffusione di base, questi approcci sono spesso esaurienti in termini di tempo e hanno una limitata trasferibilità.

Potrebbe sembrare che aggiungere un ramo dedicato all’estrazione delle funzionalità dell’immagine mascherata possa essere una soluzione adeguata ai problemi menzionati sopra, tuttavia, i framework esistenti spesso producono risultati insoddisfacenti quando applicati direttamente all’inpainting. Di conseguenza, framework come ControlNet producono risultati insoddisfacenti quando confrontati con modelli di inpainting dedicati. Per affrontare questo problema nel modo più efficace possibile, il framework BrushNet introduce un ramo aggiuntivo alla rete di diffusione originale, creando così un’architettura più adatta per i compiti di inpainting di immagini. Il design e l’architettura del framework BrushNet possono essere riassunti in tre punti.
- Invece di inizializzare i layer di convoluzione in modo casuale, il framework BrushNet implementa un encoder VAE per elaborare l’immagine mascherata. Di conseguenza, il framework BrushNet è in grado di estrarre le funzionalità dell’immagine per l’adattamento alla distribuzione UNet in modo più efficace.
- Il framework BrushNet incorpora gradualmente il layer di funzionalità UNet completo, livello dopo livello, nell’architettura UNet pre-addestrata, un approccio gerarchico che consente un controllo denso per pixel.
- Il framework BrushNet rimuove l’attenzione incrociata del testo dal componente UNet per garantire che vengano considerate solo informazioni di immagine pure nel ramo aggiuntivo. Inoltre, il modello BrushNet propone di implementare una strategia di fusione sfumata per ottenere una maggiore coerenza e un controllo più ampio nelle aree non mascherate dell’immagine.
BrushNet: Metodo e Architettura
La figura seguente fornisce una breve panoramica del framework BrushNet.

Come si può osservare, il framework utilizza una strategia a doppio ramo per l’inserimento della guida dell’immagine mascherata e utilizza operazioni di fusione con una maschera sfumata per garantire una migliore conservazione delle aree non mascherate. È degno di nota che il framework BrushNet è in grado di regolare la scala aggiunta per ottenere un controllo flessibile. Per un dato input di immagine mascherata e maschera, il modello BrushNet produce un’immagine inpaintata. Il modello ridimensiona prima la maschera per adattarsi alle dimensioni del latente e l’immagine mascherata viene utilizzata come input per l’encoder VAE per allineare la distribuzione dello spazio latente. Il modello quindi concatena il latente dell’immagine mascherata, il rumore latente e la maschera ridimensionata e lo utilizza come input. Le funzionalità che il modello estrae vengono aggiunte al layer UNet pre-addestrato dopo un blocco di convoluzione zero. Dopo il denoising, il modello fonde l’immagine mascherata e l’immagine generata con una maschera sfumata.
Guida dell’Immagine Mascherata
Il framework BrushNet inserisce la funzionalità dell’immagine mascherata nella rete di diffusione pre-addestrata utilizzando un ramo aggiuntivo, che separa esplicitamente l’estrazione delle funzionalità dell’immagine mascherata dal processo di generazione dell’immagine. L’input è formato concatenando il latente dell’immagine mascherata, il rumore latente e la maschera ridimensionata. In particolare, il rumore latente fornisce informazioni per la generazione dell’immagine durante il processo di generazione attuale e aiuta il framework a migliorare la coerenza semantica della funzionalità dell’immagine mascherata. Il framework BrushNet quindi estrae il latente dell’immagine mascherata dall’immagine mascherata utilizzando un Autoencoder Variazionale. Inoltre, il framework utilizza l’interpolazione cubica per ridimensionare la maschera nel tentativo di garantire che le dimensioni della maschera si allineino con il latente dell’immagine mascherata e il rumore latente. Per elaborare le funzionalità dell’immagine mascherata, il framework BrushNet implementa una copia del modello di diffusione pre-addestrato e esclude i layer di attenzione incrociata del modello di diffusione. Il motivo è che i pesi pre-addestrati del modello di diffusione servono come una forte priorità per l’estrazione delle funzionalità dell’immagine mascherata e l’esclusione dei layer di attenzione incrociata garantisce che il modello consideri solo informazioni di immagine pure nel ramo aggiuntivo. Il framework BrushNet inserisce le funzionalità nel modello di diffusione congelato livello dopo livello, abilitando così un controllo denso per pixel gerarchico e utilizza anche layer di convoluzione zero per stabilire una connessione tra il modello BrushNet addestrabile e il modello bloccato, garantendo che il rumore dannoso non abbia influenza sugli stati nascosti nel modello addestrabile durante le fasi di addestramento iniziali.
Operazione di Fusione
Come menzionato in precedenza, eseguire l’operazione di fusione nello spazio latente ridimensiona le maschere che spesso produce diversi errori e il framework BrushNet incontra un problema simile quando ridimensiona la maschera per adattarsi alle dimensioni dello spazio latente. Inoltre, è degno di nota che le operazioni di codifica e decodifica negli Autoencoder Variazionali hanno operazioni limitate innate e potrebbero non garantire la ricostruzione completa dell’immagine. Per garantire che il framework ricostruisca un’immagine coerente e completa dell’area non mascherata, lavori esistenti hanno implementato diverse tecniche come copiare le aree non mascherate dall’immagine originale. Sebbene l’approccio funzioni, spesso produce una mancanza di coerenza semantica nella generazione dei risultati finali. D’altra parte, metodi come l’adozione di operazioni di fusione latente affrontano difficoltà nel preservare le informazioni desiderate nelle aree non mascherate.
Controllo Flessibile
Il design architettonico del framework BrushNet lo rende una scelta adatta per integrazioni plug-and-play innate con diversi modelli di diffusione pre-addestrati e consente una scala di conservazione flessibile. Poiché il framework BrushNet non altera i pesi del modello di diffusione pre-addestrato, gli sviluppatori hanno la flessibilità di integrarlo come componente plug-and-play con un modello di diffusione addestrato, consentendo un’adozione e un’esperimentazione facili con modelli pre-addestrati. Inoltre, gli sviluppatori hanno anche la possibilità di controllare la scala di conservazione delle aree non mascherate incorporando le funzionalità del modello BrushNet nel modello di diffusione congelato con il peso w dato che determina l’influenza del framework BrushNet sulla scala di conservazione, offrendo agli sviluppatori la possibilità di regolare i livelli di conservazione desiderati. Infine, il framework BrushNet consente agli utenti di regolare la scala di sfumatura e decidere se implementare o meno l’operazione di sfumatura, rendendo così facile personalizzare la scala di conservazione delle aree non mascherate e creando spazio per regolazioni flessibili e un controllo fine-granulare sul processo di inpainting di immagini.
BrushNet: Implementazione e Risultati
Per analizzare i suoi risultati, il framework BrushNet propone BrushBench, un dataset di inpainting di immagini basato sulla segmentazione con oltre 600 immagini, con ogni immagine accompagnata da una maschera annotata manualmente e da una didascalia annotata. Le immagini nel dataset di riferimento sono distribuite uniformemente tra immagini naturali e artificiali e garantiscono anche una distribuzione uniforme tra diverse categorie, consentendo una valutazione equa tra diverse categorie. Per migliorare ulteriormente l’analisi dei compiti di inpainting, il framework BrushNet categorizza il dataset in due parti distinte in base ai metodi utilizzati: segmentazione basata su maschere e maschere a pennello.
Confronto Quantitativo
La seguente tabella confronta il framework BrushNet con modelli di inpainting di immagini basati sulla diffusione esistenti sul dataset BrushBench con Stable Diffusion come modello di base.

Come si può osservare, il framework BrushNet dimostra un’efficienza notevole nella conservazione delle aree mascherate, nell’allineamento del testo e nella qualità dell’immagine. Inoltre, modelli come Stable Diffusion Inpainting, HD-Painter, PowerPaint e altri dimostrano una forte prestazione in compiti di inpainting di immagini all’interno, sebbene falliscano nel replicare la loro prestazione in compiti di inpainting all’esterno, specialmente in termini di allineamento del testo e qualità dell’immagine. Nel complesso, il framework BrushNet produce i risultati più forti.
Inoltre, la seguente tabella confronta il framework BrushNet con modelli di inpainting di immagini basati sulla diffusione esistenti sul dataset EditBench e la prestazione è paragonabile a quella osservata sul dataset BrushBench. I risultati indicano che il framework BrushNet produce una forte prestazione in una vasta gamma di compiti di inpainting di immagini con diversi tipi di maschere.

Confronto Qualitativo
La seguente figura confronta qualitativamente il framework BrushNet con metodi di inpainting di immagini esistenti, con risultati che coprono immagini artificiali e naturali in diversi compiti di inpainting, tra cui inpainting di maschere casuali, inpainting all’interno di maschere di segmentazione e inpainting all’esterno di maschere di segmentazione.

Come si può osservare, il framework BrushNet produce risultati notevoli nella coerenza dell’area non mascherata e nelle aree coerenti e realizza con successo la consapevolezza delle informazioni di sfondo grazie all’implementazione dell’approccio di decoupling a doppio ramo. Inoltre, il ramo non toccato del modello di diffusione pre-addestrato fornisce anche il vantaggio di coprire diversi domini di dati come anime e pittura, portando a una migliore prestazione in diversi scenari.

Pensieri Finali
In questo articolo abbiamo parlato di BrushNet, un framework innovativo plug-and-play a doppio ramo progettato per incorporare funzionalità di immagini mascherate a livello di pixel in qualsiasi modello di diffusione pre-addestrato, garantendo coerenza e risultati migliorati nei compiti di inpainting di immagini. Il framework BrushNet introduce un nuovo paradigma in cui il framework divide le funzionalità dell’immagine e i latenti rumorosi in rami separati. La divisione delle funzionalità dell’immagine e dei latenti rumorosi riduce notevolmente il carico di apprendimento per il modello e facilita un’incorporazione sfumata delle informazioni essenziali dell’immagine mascherata in modo gerarchico. In aggiunta al framework BrushNet, parleremo anche di BrushBench e BrushData, che facilitano la valutazione delle prestazioni basata sulla segmentazione e l’addestramento dell’inpainting di immagini, rispettivamente.












