Kontakt z nami

Artificial Intelligence

BrushNet: Malowanie obrazu metodą Plug and Play z podwójną dyfuzją

mm
Zaktualizowano on
BrushNet: Malowanie obrazu metodą Plug and Play z podwójną dyfuzją

Malowanie obrazu jest jednym z klasycznych problemów widzenia komputerowego i ma na celu przywrócenie zamaskowanych obszarów obrazu o wiarygodnej i naturalnej treści. Istniejące prace wykorzystujące tradycyjne techniki malowania obrazu, takie jak generatywne sieci przeciwstawne lub GANS oraz wariacyjne automatyczne kodery lub VAE często wymagają dodatkowych, ręcznie zaprojektowanych funkcji, ale jednocześnie nie zapewniają zadowalających wyników. W ciągu ostatnich kilku lat metody oparte na dyfuzji zyskały popularność w społeczności zajmującej się wizją komputerową ze względu na ich niezwykłe możliwości generowania obrazu o wysokiej jakości, różnorodność wyników i precyzyjną kontrolę. Początkowe próby wykorzystania modeli dyfuzji do malowania obrazów sterowanych tekstem zmodyfikowały standardową strategię odszumiania poprzez próbkowanie zamaskowanych obszarów ze wstępnie wytrenowanego modelu dyfuzji oraz niezamaskowanych obszarów z danego obrazu. Chociaż metody te zapewniały zadowalającą wydajność w przypadku prostych zadań związanych z malowaniem obrazów, borykały się ze złożonymi kształtami masek, podpowiedziami tekstowymi i zawartością obrazu, co skutkowało ogólnym brakiem spójności. Brak spójności obserwowany w tych metodach wynika przede wszystkim z ich ograniczonej percepcyjnej wiedzy o granicach maski i kontekście obszaru zdemaskowanego obrazu. 

Pomimo postępów, badań i rozwoju tych modeli w ciągu ostatnich kilku lat, malowanie obrazów nadal stanowi główną przeszkodę dla twórców rozwiązań do przetwarzania obrazu komputerowego. Obecne adaptacje modeli dyfuzji do zadań związanych z malowaniem obrazu obejmują modyfikację strategii próbkowania lub opracowanie modeli dyfuzji specyficznych dla malarstwa często charakteryzuje się obniżoną jakością obrazu i niespójną semantyką. Aby stawić czoła tym wyzwaniom i utorować drogę modelom malowania obrazów, w tym artykule będziemy mówić o BrushNet, nowatorskiej, dwubranżowej strukturze typu plug and play, która osadza funkcje zamaskowanego obrazu na poziomie pikseli w dowolnym wstępnie wytrenowanym rozproszeniu modelu, gwarantując w ten sposób spójność i lepsze wyniki w zadaniach związanych z malowaniem obrazu. Struktura BrushNet wprowadza nowatorski paradygmat, w ramach którego dzieli cechy obrazu i ukryte szumy na osobne gałęzie. Podział cech obrazu i ukrytych szumów drastycznie zmniejsza obciążenie modelu i ułatwia zniuansowane włączenie podstawowych informacji o zamaskowanym obrazie w sposób hierarchiczny. Oprócz frameworku BrushNet będziemy również mówić o BrushBench i BrushData, które ułatwiają odpowiednio ocenę wydajności opartą na segmentacji i szkolenie w zakresie malowania obrazów. 

Celem tego artykułu jest szczegółowe omówienie frameworka BrushNet oraz zbadanie mechanizmu, metodologii, architektury frameworku wraz z jego porównaniem z najnowocześniejszymi frameworkami. Więc zacznijmy. 

BrushNet: Malowanie obrazu za pomocą dwugałęziowego rozproszenia

Malowanie obrazów, metoda mająca na celu przywrócenie obszarów misji obrazu przy jednoczesnym zachowaniu ogólnej spójności, jest od dawna problemem w dziedzinie widzenia komputerowego i od kilku lat niepokoi twórców i badaczy. Malowanie obrazów znajduje zastosowanie w szerokiej gamie zadań związanych z wizją komputerową, w tym w edycji obrazów i wirtualnych próbach. Ostatnio modele dyfuzyjne, takie jak Stabilna dyfuzjai Stable Diffusion 1.5 wykazały niezwykłą zdolność do generowania obrazów o wysokiej jakości i zapewniają użytkownikom elastyczność w kontrolowaniu elementów semantycznych i strukturalnych. Niezwykły potencjał modeli dyfuzyjnych skłonił badaczy do uciekania się do modeli dyfuzyjnych w celu uzyskania wysokiej jakości zadań związanych z malowaniem obrazów, które odpowiadają podpowiedziom tekstu wejściowego. 

Metody stosowane w tradycyjnych ramach malarskich opartych na rozpowszechnianiu tekstu można podzielić na dwie kategorie: Modyfikacja strategii próbkowania i Dedykowane modele do malowania. Metoda modyfikacji strategii próbkowania modyfikuje standardowy proces odszumiania poprzez próbkowanie zamaskowanych obszarów ze wstępnie wytrenowanego modelu dyfuzji, a następnie kopiuje i wkleja niezamaskowane obszary z danego obrazu na każdym etapie odszumiania. Chociaż podejścia do modyfikacji strategii próbkowania można wdrożyć w dowolnych modelach dyfuzji, często skutkują one niespójnymi wynikami malowania, ponieważ mają ograniczoną percepcyjną wiedzę o granicach maski i kontekście obszaru zdemaskowanego obrazu. Z drugiej strony, dedykowane modele malowania dostrajają model malowania obrazu zaprojektowany specjalnie poprzez rozszerzenie wymiarów kanału wejściowego podstawowego modelu dyfuzji w celu uwzględnienia zniekształconego obrazu i masek. Chociaż dedykowane modele malowania umożliwiają modelowi dyfuzji generowanie bardziej zadowalających wyników w przypadku wyspecjalizowanych modeli świadomych kształtu i treści, może to być, ale nie musi, najlepszy projekt architektoniczny dla modeli malowania obrazów. 

Jak pokazano na poniższym obrazku, dedykowane modele malarstwa łączą zamaskowany obraz ukryty, zaszumiony ukryty, tekst i maskę na wczesnym etapie. Projekt architektoniczny takich dedykowanych modeli malarskich łatwo wpływa na cechy zamaskowanego obrazu i uniemożliwia kolejnym warstwom architektury UNet uzyskanie czystych cech zamaskowanego obrazu pod wpływem tekstu. Co więcej, obsługa generacji i warunków w jednej gałęzi nakłada dalsze obciążenie na architekturę UNet, a ponieważ podejścia te wymagają również dostrojenia w różnych odmianach szkieletu dyfuzyjnego, podejścia te są często czasochłonne i mają ograniczoną możliwość przenoszenia. 

Może się wydawać, że dodanie dodatkowej gałęzi przeznaczonej do wyodrębniania zamaskowanych cech obrazu może być odpowiednim rozwiązaniem problemów wspomnianych powyżej, jednak istniejące frameworki często powodują wyodrębnianie i wstawianie nieodpowiednich informacji, gdy są stosowane bezpośrednio do malowania. W rezultacie istniejące platformy, takie jak ControlNet, dają niezadowalające wyniki w porównaniu z dedykowanymi modelami malowania. Aby rozwiązać ten problem w najbardziej efektywny sposób, framework BrushNet wprowadza dodatkową gałąź do oryginalnej sieci dyfuzyjnej, tworząc w ten sposób bardziej odpowiednią architekturę do zadań związanych z malowaniem obrazów. Projekt i architekturę frameworka BrushNet można podsumować w trzech punktach. 

  1. Zamiast losowo inicjować warstwy splotu, framework BrushNet implementuje koder VAE do przetwarzania zamaskowanego obrazu. W rezultacie framework BrushNet jest w stanie skuteczniej wyodrębnić cechy obrazu w celu dostosowania do dystrybucji UNet. 
  2. Struktura BrishNet stopniowo włącza pełną funkcję UNet warstwa po warstwie do wstępnie wytrenowanej architektury UNet, co jest podejściem hierarchicznym, które umożliwia gęstą kontrolę per piksel. 
  3. Struktura BrushNet usuwa wzajemne uwagi tekstowe ze składnika UNet, aby zapewnić uwzględnienie czystych informacji o obrazie w dodatkowej gałęzi. Co więcej, model BrushNet proponuje również wdrożenie strategii rozmytego mieszania, aby uzyskać lepszą spójność i większy zakres kontroli w niezamaskowanych obszarach obrazu. 

BrushNet: metoda i architektura

Poniższy rysunek przedstawia krótki przegląd frameworka BrushNet. 

Jak można zaobserwować, framework wykorzystuje strategię dwugałęziową do wstawiania wskazówek zamaskowanego obrazu i wykorzystuje operacje mieszania z rozmytą maską, aby zapewnić lepszą ochronę niezamaskowanych obszarów. Warto zauważyć, że framework BrushNet jest w stanie dostosować dodaną skalę, aby uzyskać elastyczną kontrolę. Dla danego zamaskowanego obrazu wejściowego i maski model BrushNet generuje namalowany obraz. Model najpierw próbkuje maskę w dół, aby dostosować ją do rozmiaru ukrytej przestrzeni, a zamaskowany obraz jest wprowadzany jako sygnał wejściowy do kodera VAE w celu wyrównania rozkładu przestrzeni ukrytej. Następnie model łączy utajony zamaskowany obraz, utajony zaszumiony i maskę o zmniejszonym próbkowaniu i wykorzystuje je jako dane wejściowe. Funkcje wyodrębnione w modelu są następnie dodawane do wstępnie wytrenowanej warstwy UNet po bloku zerowego splotu. Po odszumieniu model łączy zamaskowany obraz z wygenerowanym obrazem z rozmytą maską. 

Wskazówki dotyczące zamaskowanego obrazu

Struktura BrushNet wstawia funkcję zamaskowanego obrazu do wstępnie wytrenowanej sieci dyfuzyjnej za pomocą dodatkowej gałęzi, która wyraźnie oddziela ekstrakcję cech zamaskowanych obrazów od procesu generowania obrazu. Dane wejściowe są tworzone poprzez połączenie ukrytego zamaskowanego obrazu, ukrytego zaszumionego obrazu i maski o zmniejszonej próbce. Mówiąc dokładniej, zaszumiony utajony dostarcza informacji do generowania obrazu podczas bieżącego procesu generowania i pomaga strukturze zwiększyć spójność semantyczną funkcji zamaskowanego obrazu. Następnie framework BrushNet wyodrębnia ukryty obraz zamaskowany z zamaskowanego obrazu za pomocą wariacyjnego autoenkodera. Co więcej, struktura wykorzystuje interpolację sześcienną w celu zmniejszenia próbkowania maski, próbując upewnić się, że rozmiar maski jest zgodny z ukrytym obrazem zamaskowanym i ukrytym szumem. Aby przetworzyć funkcje zamaskowanego obrazu, platforma BrushNet implementuje klon wstępnie wyszkolonego modelu dyfuzji i wyklucza warstwy modelu dyfuzji, które skupiają uwagę. Powodem jest to, że wstępnie wytrenowane wagi modelu dyfuzyjnego służą jako mocny wstęp do wyodrębnienia cech zamaskowanego obrazu, a wykluczenie warstw wzajemnej uwagi gwarantuje, że model uwzględnia wyłącznie informacje o czystym obrazie w dodatkowej gałęzi. Struktura BrushNet wstawia funkcje do zamrożonego modelu dyfuzji warstwa po warstwie, umożliwiając w ten sposób hierarchiczną, gęstą kontrolę na piksel, a także wykorzystuje warstwy zerowego splotu w celu ustanowienia połączenia między wytrenowanym modelem BrushNet a modelem zablokowanym, zapewniając usunięcie szkodliwego szumu nie ma wpływu na ukryte stany w trenowanej kopii podczas początkowych etapów uczenia. 

Operacja mieszania

Jak wspomniano wcześniej, przeprowadzenie operacji mieszania w przestrzeni utajonej zmienia rozmiar masek, co często skutkuje kilkoma niedokładnościami, a środowisko BrushNet napotyka podobny problem, gdy zmienia rozmiar maski, aby dopasować ją do rozmiaru przestrzeni utajonej. Co więcej, warto zauważyć, że operacje kodowania i dekodowania w wariacyjnych autoenkoderach mają z natury ograniczone możliwości i mogą nie zapewniać pełnej rekonstrukcji obrazu. Aby zapewnić, że ramy rekonstruują w pełni spójny obraz zdemaskowanego obszaru, w istniejących pracach wdrożono różne techniki, takie jak kopiowanie zdemaskowanych obszarów z oryginalnego obrazu. Chociaż podejście to działa, często skutkuje brakiem spójności semantycznej w generowaniu wyników końcowych. Z drugiej strony, inne metody, takie jak przyjęcie ukrytych operacji mieszania, napotykają trudności w zachowaniu pożądanych informacji w niezamaskowanych obszarach. 

Elastyczna kontrola

Projekt architektoniczny platformy BrushNet sprawia, że ​​jest to odpowiedni wybór do integracji typu „plug and play” nieodłącznie związanej z różnymi wstępnie wyszkolonymi modelami dyfuzji i umożliwia elastyczną skalę konserwacji. Ponieważ framework BrishNet nie zmienia wag wstępnie wytrenowanego modelu dyfuzji, programiści mają możliwość elastycznego zintegrowania go jako komponentu typu plug and play z precyzyjnie dostrojonym modelem dyfuzji, co pozwala na łatwe przyjęcie i eksperymentowanie z wstępnie wytrenowanymi modelami. Co więcej, programiści mają również możliwość kontrolowania skali zachowania zdemaskowanych regionów poprzez włączenie cech modelu BrushNet do zamrożonego modelu dyfuzji o podanej wadze w, która określa wpływ frameworka BrushNet na skalę konserwacji, oferując programistom możliwość dostosowania żądanego poziomu konserwacji. Wreszcie framework BrushNet umożliwia użytkownikom dostosowanie skali rozmycia i podjęcie decyzji, czy wdrożyć operację rozmycia, czy też nie, w ten sposób łatwo dostosowując skalę zachowania niemaskowanych obszarów, tworząc miejsce na elastyczne dostosowania i precyzyjną kontrolę nad procesem malowania obrazu . 

BrushNet: wdrożenie i wyniki

Do analizy wyników framework BrushNet proponuje BrushBench, a oparte na segmentacji zbiór danych dotyczący malowania obrazów składający się z ponad 600 obrazów, przy czym każdemu obrazowi towarzyszy maska ​​z ludzkimi adnotacjami i adnotacja podpisu. Obrazy w zbiorze danych porównawczych są równomiernie rozmieszczone pomiędzy obrazami naturalnymi i sztucznymi, a także zapewniają równomierną dystrybucję między różnymi kategoriami, umożliwiając sprawiedliwą ocenę w różnych kategoriach. Aby jeszcze bardziej usprawnić analizę zadań związanych z malowaniem, framework BrushNet dzieli zbiór danych na dwie odrębne części na podstawie zastosowanych metod: opartą na segmentacji i maskach pędzla. 

Porównanie ilościowe

W poniższej tabeli porównano strukturę BrushNet z istniejącymi modelami malowania obrazów opartymi na dyfuzji w zestawie danych BrushBench z modelem Stable Diffusion jako modelem podstawowym. 

Jak można zaobserwować, framework BrushNet wykazuje niezwykłą skuteczność w zakresie zachowania zamaskowanych obszarów, wyrównania tekstu i jakości obrazu. Ponadto modele takie jak stabilne malowanie dyfuzyjne, Malarz HD, PowerPaint i inne wykazują dobrą wydajność w przypadku zadań związanych z malowaniem obrazu od wewnątrz, chociaż nie udaje im się powtórzyć swoich wyników w przypadku zadań związanych z malowaniem na zewnątrz, szczególnie pod względem wyrównania tekstu i jakości obrazu. Ogólnie rzecz biorąc, platforma BrushNet zapewnia najlepsze wyniki. 

Co więcej, poniższa tabela porównuje strukturę BrushNet z istniejącymi modelami malowania obrazów opartymi na dyfuzji w zestawie danych EditBench, a wydajność jest porównywalna z wydajnością obserwowaną w zestawie danych BrushBench. Wyniki wskazują, że platforma BrushNet zapewnia wysoką wydajność w szerokim zakresie zadań związanych z malowaniem obrazów przy użyciu różnych typów masek. 

Porównanie jakościowe

Poniższy rysunek jakościowo porównuje framework BrushNet z istniejącymi metodami malowania obrazów, a wyniki obejmują sztuczną inteligencję i naturalne obrazy w różnych zadaniach malowania, w tym malowanie za pomocą maski losowej, malowanie maski segmentacji wewnątrz malowania i malowanie maski segmentacji na zewnątrz. 

Jak można zaobserwować, framework BrushNet zapewnia niezwykłe wyniki w zakresie spójności zdemaskowanego regionu i spójnych regionów oraz skutecznie realizuje świadomość informacji ogólnych dzięki wdrożeniu podejścia oddzielenia dwóch gałęzi. Co więcej, niezmieniona gałąź wstępnie wytrenowanego modelu dyfuzji zapewnia również tę zaletę, że pozwala lepiej uwzględniać różne domeny danych, takie jak anime i malowanie, co skutkuje lepszą wydajnością w różnych scenariuszach. 

Final Thoughts

W tym artykule mówiliśmy o BrushNet, nowatorskim, dwugałęziowym frameworku typu plug and play, który osadza funkcje obrazu maskowanego na poziomie pikseli w dowolnym wstępnie wytrenowanym modelu dyfuzji, gwarantując w ten sposób spójność i lepszy wynik zadań związanych z malowaniem obrazu. Struktura BrushNet wprowadza nowatorski paradygmat, w ramach którego dzieli cechy obrazu i ukryte szumy na osobne gałęzie. Podział cech obrazu i ukrytych szumów drastycznie zmniejsza obciążenie modelu i ułatwia zniuansowane włączenie podstawowych informacji o zamaskowanym obrazie w sposób hierarchiczny. Oprócz frameworku BrushNet będziemy również mówić o BrushBench i BrushData, które ułatwiają odpowiednio ocenę wydajności opartą na segmentacji i szkolenie w zakresie malowania obrazów. 

„Inżynier z zawodu, pisarz z zamiłowania”. Kunal jest pisarzem technicznym, który głęboko kocha i rozumie sztuczną inteligencję i uczenie maszynowe, a którego celem jest upraszczanie złożonych koncepcji w tych dziedzinach poprzez swoją wciągającą i pouczającą dokumentację.