Twórz własne „obrazy neuronowe” dzięki DeepStyle i Ubuntu

  • Joseph Goodman
  • 0
  • 1831
  • 137
Reklama

Sieci neuronowe mogą robić wiele rzeczy. Potrafią interpretować obrazy, rozumieć nasze głosy 6 funkcji Google Now, które zmienią sposób wyszukiwania 6 funkcji Google Now, które zmienią sposób wyszukiwania Być może korzystasz już z Google Now na swoim urządzeniu z Androidem, ale czy masz wszystko, co możesz to? Wiedza o tych małych funkcjach może mieć duże znaczenie. i tłumacz konwersacje Jak działa Skype Star Trek Translator Jak działa Skype Star Trek Translator Nowa funkcja tłumaczeń Skype oferuje coś, o czym marzy się od czasu Star Trek - bezproblemowy sposób komunikowania się w różnych językach. . Ale czy wiesz, że oni też mogą malować?

Ostatni artykuł badawczy (zatytułowany “Neuronowy algorytm stylu artystycznego“) wywołało lawinę dyskusji online z kilkoma uderzającymi przykładami wizualnymi. Zasadniczo w artykule omówiono technikę trenowania głębokiej sieci neuronowej Microsoft vs Google - Kto prowadzi wyścig sztucznej inteligencji? Microsoft vs Google - Kto prowadzi wyścig sztucznej inteligencji? Badacze sztucznej inteligencji robią namacalne postępy, a ludzie znów zaczynają poważnie mówić o sztucznej inteligencji. Dwaj tytani prowadzący wyścig sztucznej inteligencji to Google i Microsoft. aby oddzielić styl artystyczny od struktury obrazu i połączyć styl jednego obrazu ze strukturą drugiego. Rezultatem tego wszystkiego jest to, że możesz trenować ogromną sieć neuronową, aby przekształcać zdjęcia “obrazy neuronowe” wyglądają tak, jakby zostały namalowane przez znanych artystów - “cyfrowe podróbki,” że tak powiem.

Oto kilka przykładów z tego artykułu. Pierwszy obraz to oryginał. Późniejsze obrazy to wygenerowane wyniki, a obraz, z którego próbkowano styl, pokazano w miniaturze.

Pierwotni badacze niestety nie wydali swojego kodu. Jednak niektórzy nieustraszeni programiści replikowali swoje wyniki w ciągu ostatnich kilku dni, a ich kod jest dostępny, open source w Internecie. Wszystko, czego potrzebujesz, aby go uruchomić, to maszyna z systemem Linux i odrobina cierpliwości.

Dzisiaj przedstawię wam, jak to zrobić, i pokażę niektóre z moich wyników. Możesz to potraktować jako luźną kontynuację naszego samouczka DeepDream. Stwórz własne marzenia o sztucznej gorączce dzięki „Google DeepDream”. Stwórz własne marzenia o sztucznej gorączce dzięki „DeepDream” Google. Czy widziałeś potworne obrazy z DeepDream? Chcesz zrobić własne? Nie szukaj dalej! . Jest to trochę skomplikowane, ale każdy z maszyną z Linuksem może podążać za nim - nie wymaga doświadczenia w programowaniu.

Za pomocą #DeepStyle zamieniłem lekki obraz Picassa w obraz w stylu Picassa! pic.twitter.com/cjkEoIhVcF

- James Blaha (@jamesblaha) 5 września 2015 r

Konfiguracja oprogramowania

Po pierwsze, jeśli nie spieszysz się zbytnio lub nie masz komputera z systemem Linux, możesz nadal grać z DeepStyle za pomocą bota DeepForger na Twitterze (wyślij mu obraz i styl, a ostatecznie odpowie ci wynikami chcieć). Jeśli chcesz szybko przetwarzać więcej zdjęć (i mieć większą kontrolę nad wynikami), przeczytaj samouczek.

Po pierwsze, upewnij się, że masz aktualną kopię Ubuntu (Użyłem 14.04). Powinieneś mieć co najmniej kilka dodatkowych koncertów na twardym dysku. Aby uzyskać więcej informacji, zapoznaj się z naszym samouczkiem na temat podwójnego uruchamiania Ubuntu obok systemu Windows Tired Of Windows 8? Jak uruchomić dwa systemy Windows i Ubuntu Tired Of Windows 8? Jak podwójny rozruch systemu Windows i Ubuntu Jeśli odkryjesz, że Windows 8 nie jest do końca twoją filiżanką herbaty i nie masz żadnej możliwej ścieżki do obniżenia wersji, dobrym pomysłem może być podwójne uruchomienie systemu Linux, aby mieć alternatywę…. Będziesz także potrzebować uprawnień roota, więc upewnij się, że to zrobisz, zanim przejdziesz dalej.

Podstawowe narzędzia

Zaraz po nietoperzu, jest to projekt typu open source, więc będziemy chcieli go mieć Git zainstalowany. Git to złoty standard oprogramowania do kontroli wersji Co to jest Git i dlaczego warto używać kontroli wersji, jeśli jesteś programistą Co to jest Git i dlaczego powinieneś używać kontroli wersji, jeśli jesteś programistą Jako twórcy stron internetowych, przez większość czasu zazwyczaj pracujemy na lokalnych stronach programistycznych, a następnie po prostu przesyłamy wszystko, gdy skończymy. To dobrze, gdy jesteś tylko ty, a zmiany są niewielkie,… Prawie każdy projekt open source, o którym warto wiedzieć, jest hostowany na Github.

Aby pobrać i zainstalować Git, po prostu otwórz terminal i wpisz “sudo apt-get install git” i zgadzam się z wymaganiami instalatora.

Dalej: idziemy skonfiguruj podstawowe narzędzia potrzebne, aby oprogramowanie działało.

Najpierw zainstaluj Lua. To jest język, w którym narzędzie jest napisane. To całkiem proste. Po prostu wpisz “sudo apt-get install lua5.2” i śledź proces instalacji.

Po drugie, zdobędziemy Luarocks. To narzędzie ułatwia instalację innych narzędzi (nie kochasz Linuksa?). W tym celu wpisz “sudo apt-get install luarocks” i postępuj zgodnie z instrukcjami instalacji.

Po trzecie, zainstalujemy Luajit. Jest to kompilator just-in-time dla Lua, który uprości nasze życie. Po prostu wpisz “sudo apt-get install luajit.”

Jak na razie dobrze.

Jestem botem, który tworzy fałszerstwa z twoich zdjęć w stylu znanych malarzy. Kliknij, aby wyświetlić instrukcje poniżej! pic.twitter.com/3MpThDNwRE

- The Deep Forger (@DeepForger) 5 września 2015 r

Ramy

Następnie zainstalujemy Torch, naukową platformę obliczeniową i uczenie maszynowe, która stanowi trzon aplikacji. Niestety tego nie można zainstalować za pomocą apt-get (standardowy menedżer pakietów Ubuntu).

Na szczęście mają one instalator w jednym wierszu, który używa magii wiersza poleceń. Wróć do terminala i wejdź “curl -s https://raw.githubusercontent.com/torch/ezinstall/master/install-all | grzmotnąć“.

Po zakończeniu wpisz “luajit -ltorch“. Spowoduje to wyświetlenie interfejsu latarki i sprawdzenie, czy wszystko zostało poprawnie zainstalowane.

Wyjdź z tego.

Teraz mamy zamiar zainstalować loadcaffe - pakiet specyficzny dla sieci neuronowej. Zainstaluj jedyną zależność, pisząc “sudo apt-get install libprotobuf-dev protobuf-compiler“. Następnie możesz zainstalować sam pakiet za pomocą “sudo luarocks zainstaluj loadcaffe ".

@Johnicholas Twój podział na fałszerstwa według stylu School of Rembrandt van Rijn. #DigitalArt #StyleNet pic.twitter.com/pf0sZxWkaT

- The Deep Forger (@DeepForger) 7 września 2015 r

Podwójne sprawdzanie zależności

Wreszcie, wstępnie zapobiegawczo zaktualizujemy niektóre rzeczy, aby upewnić się, że wszystko pójdzie gładko.

Rodzaj “obraz instalacyjny sudo luarocks” aby upewnić się, że Twój pakiet obrazów jest aktualny. Następnie wprowadź “luarocks install nn” który zrobi to samo dla pakietu „nn”.

Instalowanie stylu głębokiego

W porządku! W tym momencie jesteśmy gotowi do zainstalowania samego oprogramowania. Ze względów czystości utwórz nowy folder w katalogu domowym („mkdir DeepStyle”). Następnie wprowadź go za pomocą “cd Deepstyle“. Teraz wpisz “sudo git clone https://github.com/jcjohnson/neural-style.git ".

Następnie musimy pobrać model. Zrób filiżankę kawy lub coś takiego, zajmie to chwilę. Wróć do terminala i wpisz “sudo sh modele / download_models.sh“. Rozpocznie się długi, skomplikowany proces pobierania. Jeśli to się nie powiedzie z powodu błędów uprawnień, spróbuj dać sobie uprawnienia do odczytu i zapisu w odpowiednich folderach, używając chmod.

@ 44thats44oars zlecił to #ProceduralArt #NeuralArt. pic.twitter.com/tbMH7gsvc8

- The Deep Forger (@DeepForger) 6 września 2015 r

Korzystanie z głębokiego stylu

Dobra, jesteśmy gotowi do wyjścia. Korzystanie z oprogramowania jest dość proste.

Upewnij się, że jesteś w Katalog DeepStyle / neural-style w terminalu. Teraz będziesz potrzebować zdjęć do pracy. Pobierz je z Internetu (lub cokolwiek), a następnie skopiuj je do DeepStyle / folder w stylu neuronowym za pomocą przeglądarki plików.

Teraz możesz używać wiersza polecenia do przetwarzania pojedynczych zdjęć. Format jest dość prosty:

th neural_style.lua -style_image YOURPAINTINGHERE.jpg - content_image YOURPHOTOHERE.jpg -gpu -1

(Oczywiście trzeba zastąpić fragmenty WSZYSTKICH KAPITÓW nazwami plików).

To uruchomi sieć neuronową. Będzie działał przez około godzinę, wyrzucając nowe częściowo skonwertowane obrazy co kilka minut, aż się skończy. The -GPU -1 Flaga powstrzymuje próbę uzyskania dostępu do twojego GPU.

Po kilku godzinach próbowania (i kilkakrotnym zmarnowaniu systemu operacyjnego) nie mogłem zmusić Ubuntu i CUDA do dobrej zabawy z moim GPU (NVIDIA GTX 970). Jeśli masz więcej szczęścia, będziesz chciał zainstalować CUDA i cudann.torch (więcej informacji znajdziesz w repozytorium github). Jeśli nie, to w porządku - nadal będzie działać na twoim CPU; będzie trochę wolniej.

Jeśli masz jakieś problemy z uruchomieniem tego wszystkiego, po prostu zapytaj mnie w komentarzach, a ja zrobię co w mojej mocy, aby ci pomóc.

Wyniki

Oto kilka obrazów, które wygenerowałem w ciągu ostatnich kilku dni. Wyniki są mieszane, ale wiele z nich jest imponujących.

Kliknij tutaj, aby zobaczyć pełną rozdzielczość.

To jest mój przyjaciel Zack podczas pieszej wycieczki do Yellowstone. Styl pochodzi z malarstwa abstrakcyjnego, stworzonego przez Theresę Paden. Byłem ciekawy, jak system poradziłby sobie z obrazem bez żadnej struktury. Rezultaty są całkiem fajne i na pewno widać podobieństwa do obrazu stylu.

Kliknij tutaj, aby zobaczyć pełną rozdzielczość.

Ten jest udostępniony dzięki uprzejmości jednego z moich ulubionych artystów, Charlesa Demuth (patrz: Kadzidło nowego kościoła i rysunek 5 w złocie). Co ciekawe, Demuth jest jedną z głównych inspiracji wizualnych dla sztuki Team Fortress 2 Team Fortress 2: Darmowa gra Steam, w którą musisz zagrać Team Fortress 2: Darmowa gra Steam, w którą musisz zagrać, to Team Fortress 2 szybka gra do testowania grafiki i wydajności, czy jest to gra, w którą warto grać wielokrotnie? , jak widać na obrazie stylu.

Nakarmiłem go obrazem Jersey City, który znalazłem na Wikimedia. Rezultaty są… całkiem dobre. Nie wychwycił kanciastości stylu Demuth, ale z pewnością nabrał miękkiego, teksturowanego wyglądu i palety kolorów.

Kliknij tutaj, aby zobaczyć pełną rozdzielczość.

Ten jest próbą wygenerowania syntetycznego O'Keeffe, przy użyciu dość przyziemnego zdjęcia niektórych kwiatów, które znalazłem. Wyniki są, szczerze mówiąc, spektakularne. Estetycznie jest to jeden z moich ulubionych wyników. Bogactwo kolorów i kształtów O'Keeffe jest wyraźnie widoczne. Warstwowe krawędzie płatków kwiatów stają się krawędziami liści w tle. Same kwiaty rozpuszczają się w kolory, stając się niemal abstrakcyjne.

Byłby to dobry obraz, gdyby zrobił to człowiek. Bardzo kusi mnie, aby poświęcić kilka dni na renderowanie tej wersji w wyższej rozdzielczości i oprawienie jej w ramkę.

Kliknij tutaj, aby zobaczyć pełną rozdzielczość.

Oto moja przyjaciółka Shannon w swoim kostiumie na Halloween, z nadrukiem Picassa. Co ciekawe, urządzenie zdecydowało się pomalować dolną część twarzy na biało (podobnie do układu kolorów kawałka Picassa). Nie jestem pewien, czy to był przypadek, czy nie, ale wyniki są uderzające. Wygląda również na to, że prawidłowo zidentyfikował włosy Shannon po lewej stronie i ponownie je narysował, używając koloru i podszewki z włosów na zdjęciu stylu. To samo dotyczy jej kapelusza.

Jest to jeden z elementów, w którym ograniczenia techniki stają się jasne. Gdyby Picasso malował Shannon, odrzuciłby strukturę jej twarzy i przekrzywił rysy, aby osiągnąć pożądany efekt. Ten system nie rozumie tego rodzaju koncepcji na wysokim poziomie i jest w stanie naśladować tylko powierzchowne aspekty stylu, takie jak ciemne, kanciaste linie i paleta kolorów.

Kliknij tutaj, aby zobaczyć pełną rozdzielczość.

Dość proste: zdjęcie Wieży Eiffla i Van Gogha inny Gwieździsta noc. Wykonuje dobrą robotę, renderując chmurę w stylu Van Gogha, pomimo braku chmur na oryginalnym obrazie. Doskonale sprawdza się także w tłumaczeniu sceny z dnia na noc.

Nie byłem pewien, dlaczego postanowił uczynić wierzchołek wieży Fiffel słupem ognia. Wygląda fajnie, ale tak naprawdę nie jest to uzasadnione na podstawie danych wejściowych. Potem zdałem sobie sprawę, że obraz stylu ma trzynaście długich, pionowych żółtych pasków, w postaci odbić w wodzie. To dość masywny klaster, biorąc pod uwagę tak mało danych treningowych. Biedactwo prawdopodobnie nauczyło się, że każda pionowa krawędź o wysokim kontraście musi być jednym z tych odbić. W chmurach widać słabo widoczne pionowe pasy.

Kliknij tutaj, aby zobaczyć pełną rozdzielczość.

Ten sam obraz Van Gogha, ale tym razem dałem mu kilka faktycznych gwiazd do pomalowania. W tym przypadku część filarów mgławicy Orzeł. Lubię wyniki - choć po raz kolejny widać obsesję na punkcie żółtych pasków. Każda pionowa część filaru staje się jasną, chwiejną żółtą linią. Jest również wyraźnie zaniepokojony zielenią, która nie pojawiła się w danych treningowych, i stara się go pozbyć na korzyść niebieskiego i czarnego.

Technologia

Niektóre wyniki tego są niezwykle przekonujące, chociaż technika ma wyraźne ograniczenia. Niektóre obrazy mają kiepską kompozycję, a system ma trudności z bardziej abstrakcyjnymi artystami, takimi jak Picasso - który lubił zniekształcać swój temat, rozpraszając jego cechy. Algorytm wychwytuje jego linie kątowe i koliduje kolory, ale nadal jest niewolnikiem wartości pikseli obrazu. Nie ma zrozumienia, że ​​trzeba by zbytnio oddalać się od materiału źródłowego.

To, co mnie podnieca, to fakt, że te ograniczenia nie są fundamentalne.

Podejście zastosowane tutaj - wyszkolenie sieci na jednym obrazie i wykorzystanie jej do budowy innego - jest zasadniczo rodzajem włamania. Daje sieci bardzo mało danych do pracy. Bardziej zaawansowana wersja tej aplikacji korzystałaby z sieci zawierającej informacje o wielu obrazach, a być może nawet prawdziwych obrazach, aby dać jej pełny kontekst na temat obrazu, który próbuje “farba.”

Głębokie zrozumienie stylu może istnieć tylko w szerszym kontekście. Nie można wyprowadzić go z pojedynczego obrazu. Zaprojektowanie architektury zapewniającej systemowi dostęp do szerszych danych może pozwolić mu uzyskać więcej “jak człowiek” zrozumienie obrazu i sposób, w jaki artyści reprezentują różne elementy świata rzeczywistego. Taka sieć może być w stanie wytwarzać obrazy, które są bardziej abstrakcyjne i mają lepszy skład. Takie algorytmy przestałyby być fajną zabawką (jak ta) i stałyby się sposobem na wytwarzanie prawdziwej, oryginalnej sztuki.

Co jest pod pewnymi względami bardzo osobliwą myślą.

Tworzenie własnych zdjęć

Jeśli otrzymasz rozczarowujący wynik, możesz trochę pobawić się opcjami, aby uzyskać bardziej przekonujące wyniki. Pełna lista znajduje się na Github. Najważniejsze z nich to

  • -content_weight -value Ile waży termin rekonstrukcji treści. Domyślnie jest to 5e0.
  • -style_weight -value: Jak duży nacisk na zdjęcie stylu. Domyślnie jest to 1e2.
  • -style_scale - wartość: Jak duże łaty graficzne powinien analizować system (Większy staje się bardziej abstrakcyjny). Domyślnie jest to 1.0.

Gdy wszystko będzie działać zgodnie z twoją satysfakcją, zamieść swoje najciekawsze zdjęcia w komentarzach. Bardzo mnie interesuje, co wymyślicie.

Kredyty obrazkowe: malarz ludzkiego mózgu za pośrednictwem Shutterstock




Jeszcze bez komentarzy

O nowoczesnej technologii, prostej i niedrogiej.
Twój przewodnik w świecie nowoczesnych technologii. Dowiedz się, jak korzystać z technologii i gadżetów, które nas otaczają każdego dnia i dowiedz się, jak odkrywać ciekawe rzeczy w Internecie.