Języki

You are here

Sztuczny malarz kolorowy

Program prezentuje przykładowe, ewolucyjne podejście w komputerowym generowaniu obrazów. Rolą użytkownika jest ocenianie automatycznie tworzonych obrazów. Dzięki temu program dostaje informacje zwrotne o tym jak należy je modyfikować aby użytkownik był jak najbardziej zadowolony z efektów.

W przeciwieństwie jednak do innych, podobnych mu programów, ten programik umożliwia osobie poza wskazywaniem najlepszego rozwiązania również wybieranie najlepszych fragmentów obrazów. Dzięki temu program zdobywa pełniejszą informację o preferencjach użytkownika.

Wybierz język programu:


Schemat działania

Program w swoim działaniu wykorzystuje ewolucję kierowaną przez człowieka. Tylko dzięki interakcji użytkownika program jest w stanie generować „lepsze” obrazy.

Ogólny schemat działania Sztucznego Malarza Kolorowego przedstawia się następująco:

  1. Wygeneruj zestaw losowych obrazów.
  2. Niech użytkownik oceni stworzone obrazy i wybierze najlepszy z nich.
  3. Wygeneruj kolejny zestaw obrazów uwzględniając informacje z poprzedniego kroku.
  4. Wróć do punktu 2.

Początkowo zostaje wygenerowanych 16 zupełnie losowych obrazów. Rolą użytkownika jest ocenianie przedstawionych rysunków. Użytkownik może wskazywać fragmenty obrazów które mu się szczególnie podobają. Części te będą pozytywnie ocenione oraz zapamiętane jako kolejne wzorce. Następnie użytkownik powinien wybrać jeden, jego zdaniem najładniejszy, obraz. To spowoduje wygenerowanie kolejnego zestawu obrazów. Cały proces można powtarzać aż do uzyskania wystarczająco dobrego rezultatu.

Nowy obraz powstaje poprzez zastąpienie jego najgorszego fragmentu dobrym fragmentem z obrazu wskazanego przez użytkownika. Następnie z pewnym prawdopodobieństwem następuje analogiczna podmiana z losowo wybranym wzorcem. Ostatecznie następuje pewna losowa modyfikacja (mutacja) tak powstałego obrazu.

Kodowanie obrazów

Opis obrazu jest symboliczny, a jego genotyp ma postać drzewa. W liściach zakodowana jest informacja o każdej malowanej plamie – jej kolorze, rozmiarze i kierunku. Natomiast w węzłach przechowywana jest informacja o przekształceniach (zmianie koloru, rozmiaru, kierunku oraz przesunięciu) dokonywanych na fragmentach obrazów zakodowanych w jego poddrzewach. Występują trzy rodzaje węzłów:
  • para – posiadający dokładnie dwa poddrzewa które wyświetla przekształcając je indywidualnymi transformacjami
  • sekwencja prosta – posiadający jedno poddrzewo które jest rysowane kilkukrotnie po przekształceniu będącym kolejnym złożeniem tej samej transformacji
  • sekwencja złożona – posiadający dwa poddrzewa – pierwsze jest rysowane jak w sekwencji prostej, natomiast na końcu sekwencji rysowane jest drugie poddrzewo

Każdy element drzewa posiada dodatkowy parametr mówiący o jakości odpowiedniego fragmentu obrazu. Jest on modyfikowany na podstawie ocen udzielanych przez użytkownika.

Tło obrazu jest kodowane niezależnie. Jest ono opisane za pomocą zmiennych określających kolor tła w narożnikach, po bokach oraz w środku obrazu.

Obsługa programu

Okno programu składa się z kilku części: z suwakami służącymi do ustawiania podstawowych parametrów, listą wzorców oraz główną częścią z prezentowanymi obrazami.

Podwójne kliknięcie na wskazany obraz powoduje, że jest on uznawany za najlepszy i następuje wygenerowanie kolejnego pokolenia obrazów. Naciskając i przytrzymując lewy klawisz myszki można zaznaczyć wybrany fragment obrazu który będzie pozytywnie oceniony. Przytrzymując lewy klawisz i poruszając myszką w górę/dół regulujemy wielkość wskazywanego obszaru, natomiast poruszając w lewo/prawo ustalamy jak bardzo podoba nam się wskazywany fragment. Po naciśnięciu prawego klawisza myszki pokazuje się menu kontekstowe umożliwiające wykonanie dodatkowych operacji na wskazanym obrazie.

Parametry:

  • Liczba – liczba prezentowanych obrazów
  • Rozmiar – reguluje złożoność generowanych początkowo obrazów
  • P <–> S – wyznacza proporcje pomiędzy węzłami typu sekwencja złożona a sekwencja prosta
  • Wzrost – ustala tendencję do zmniejszania lub zwiększania obrazów w kolejnych pokoleniach
  • Mutacja – reguluje natężenie zjawiska mutacji
  • Pędzel – rodzaj pędzla jaki jest używany przy malowaniu obrazów

Przycisk Od nowa powoduje wygenerowanie losowych obrazów i rozpoczęcie ewolucji od początku.

Przykładowe obrazy które namalował nasz malarz:


Program i tekst: Bartosz Wieloch
Przetłumaczenie na javascript: Bartosz Radliński
Prowadzący: Maciej Komosiński