Reklama
Sieci neuronowe mogą robić wiele rzeczy. Potrafią interpretować obrazy, rozumiemy nasze głosy 6 Funkcje Google Now, które zmienią sposób wyszukiwania Być może już korzystasz z Google Now na swoim urządzeniu z Androidem, ale czy masz z niego wszystko, co możesz? Wiedza o tych małych funkcjach może mieć duże znaczenie. Czytaj więcej , i tłumaczyć rozmowy Jak działa Tłumacz Star Trek Skype'aNowa funkcja tłumaczeń Skype oferuje coś, o czym marzy się od czasów Star Trek - bezproblemowy sposób komunikowania się w różnych językach. Czytaj więcej . Ale czy wiesz, że oni też mogą malować?
Ostatni artykuł badawczy (zatytułowany „Neuronowy algorytm stylu artystycznego„) Rozpoczął lawinę dyskusji online z kilkoma uderzającymi przykładami wizualnymi. Zasadniczo w artykule omówiono technikę trenowania głęboka sieć neuronowa 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. Dwóch tytanów prowadzących wyścig sztucznej inteligencji to Google i Microsoft.
Czytaj więcej aby oddzielić styl artystyczny od struktury obrazu i połączyć styl jednego obrazu ze strukturą drugiego. Rezultatem tego wszystkiego jest to, że możesz wytrenować ogromną sieć neuronową, aby zamienić zdjęcia w „neuronowe” obrazy ”, które wyglądają tak, jakby zostały namalowane przez znanych artystów -„ cyfrowe podróbki ” mówić.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ę ci, jak to zrobić, i pokażę niektóre z moich wyników. Możesz to potraktować jako luźną kontynuację naszego Samouczek DeepDream Stwórz własne marzenia o sztucznej gorączce dzięki Google „DeepDream”Czy widziałeś trippy obrazy wychodzące z DeepDream? Chcesz zrobić własne? Nie szukaj dalej! Czytaj więcej . Jest to trochę skomplikowane, ale każdy z maszyną z Linuksem może podążać za nim - nie wymaga doświadczenia w programowaniu.
Zamieniłem lekki obraz Picassa w obraz w stylu Picassa #DeepStyle! 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 maszyny z systemem Linux, możesz nadal grać w DeepStyle za pomocą DeepForger Twitter bot (wyślij mu obraz i styl, a ostatecznie odpowie żądanymi wynikami). 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 Ubuntu z podwójnym uruchamianiem wraz z systemem Windows Masz dość systemu Windows 8? Jak podwójnie uruchomić system Windows i UbuntuJeś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ę ... Czytaj więcej . 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 jest złoty standard oprogramowania do kontroli wersji Co to jest Git i dlaczego powinieneś używać kontroli wersji, jeśli jesteś programistąJako programiści stron internetowych często pracujemy nad lokalnymi witrynami programistycznymi, a następnie przesyłamy wszystko po zakończeniu. To dobrze, gdy jesteś tylko ty, a zmiany są niewielkie, ... Czytaj więcej . 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: zamierzamy skonfiguruj podstawowe narzędzia potrzebne do działania oprogramowania.
Najpierw zainstaluj Lua. To jest język, w którym narzędzie jest napisane. To jest dość proste. Po prostu wpisz „sudo apt-get install lua5.2
”I postępuj zgodnie z procesem instalacji.
Po drugie, dostaniemy Luarocks. To narzędzie ułatwia instalowanie innych narzędzi (nie kochasz Linuksa?). W tym przypadku wpisz „sudo apt-get install luarocks
”I postępuj zgodnie z instrukcjami instalacji.
Po trzecie, zamierzamy zainstalować 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 Pochodnia, naukowa platforma obliczeniowa i uczenie maszynowe, która stanowi trzon aplikacji. Niestety nie można go zainstalować przy pomocy 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 wpisz „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 zamierzamy zainstalować loadcaffe - pakiet specyficzny dla sieci neuronowej. Zainstaluj swoją jedyną zależność, wpisując „sudo apt-get install libprotobuf-dev protobuf-compiler
“. Następnie możesz zainstalować sam pakiet, używając „sudo luarocks zainstaluj loadcaffe "
.
@Johnicholas Twój podział na fałszerstwa w stylu avec School of Rembrandt van Rijn. #Sztuka cyfrowa#StyleNetpic.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 wpisz „luarocks install nn
”, Który zrobi to samo dla Twojego 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 swoim katalogu domowym („mkdir DeepStyle”). Następnie wprowadź go, używając „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
“. To rozpocznie 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łem 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 musisz 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 z tym więcej szczęścia, będziesz chciał zainstalować CUDA i cudann.torch (patrz repozytorium github po więcej informacji). Jeśli nie, to dobrze - 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 postaram się 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 robi wrażenie.

Kliknij tutaj, aby zobaczyć pełną rozdzielczość.
To jest mój przyjaciel Zack podczas pieszej wycieczki do Yellowstone. Styl pochodzi z abstrakcyjnego malarstwa, stworzonego przez Theresa Paden. Byłem ciekawy, jak poradziłby sobie system wykorzystując obraz bez absolutnie ż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 dziełem jednego z moich ulubionych artystów, Charlesa Demutha (patrz: Kadzidło nowego kościoła, i Rycina 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ćCzy Team Fortress 2 to tylko szybka gra do testowania grafiki i wydajności, czy jest to gra, w którą warto grać wielokrotnie? Czytaj więcej , 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ą uchwycił miękki, strukturalny wygląd i paletę kolorów.

Kliknij tutaj, aby zobaczyć pełną rozdzielczość.
Ten jest próbą wygenerowania syntetycznego O’Keeffe, wykorzystując dość przyziemny obraz 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 tego w wyższej rozdzielczości i oprawienie go w ramkę.

Kliknij tutaj, aby zobaczyć pełną rozdzielczość.
Oto moja przyjaciółka Shannon w swoim kostiumie na Halloween, na podstawie wydruku 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 zaczynają być 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 styl obrazu ma trzynaście długich, pionowych żółtych pasków, w postaci odbić w wodzie. To całkiem spory 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 wystąpiła 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, którego trzeba by zbytnio oddalić od materiału źródłowego.
To, co mnie podnieca, to to, że nie uważam tych ograniczeń za 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 na wielu tematach obrazy, a może nawet prawdziwe obrazy, aby dać mu duży kontekst na temat obrazu, który próbuje "farba."
Głębokie zrozumienie stylu może istnieć tylko w szerszym kontekście. Nie możesz wyprowadzić go z pojedynczego obrazu. Zaprojektowanie architektury zapewniającej systemowi dostęp do szerszych danych może pozwolić mu uzyskać więcej „Ludzkie” rozumienie obrazu i to, w jaki sposób artyści reprezentują różne elementy rzeczywistości świat. 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
Andre, pisarz i dziennikarz z południowego zachodu, gwarantuje funkcjonalność do 50 stopni Celsjusza i jest wodoodporny do głębokości dwunastu stóp.