[eu-gene] need advice on a framework design
Mario Klingemann
mario at quasimondo.com
Fri Jan 20 10:13:38 GMT 2012
What you are trying to achive sounds very similar to a project I built several
years ago called "The Blind Sketchmaker" in which I tried to explore the
possibilities of a computer evolving images that look interesting to a human
observer.
I also did a talk about this and the lecture notes are here:
http://lectures.quasimondo.com/the_blind_sketchmaker/index.php
You can step through the pages with the arrow right/left keys and in the second
part I explain the way my system is built.
Here's some output by that project:
http://www.flickr.com/photos/quasimondo/sets/72157600012158091 and here are the
ones I had sent then to China and had painted in oil:
http://www.flickr.com/photos/quasimondo/sets/72157600167730205/
The general idea sounds very much like yours - I have one module that analyzes
target images which are rated by a human into "interesting" and "not
interesting" and which create a multidimensional vector that contains all the
classifier values.
Then I have a generator module which uses a kind of DNA code to randomly
generate images using a multitude of generator and filter modules. Those modules
are working like monkeys that randomly use various functions of photoshop. The
DNA controls which of the modules are being used, which parameters they use and
in which order they work on the image.
The whole tool works by having the generator create an initial set of images
based on a random DNA. Those images are being analyzed with the same analyzer as
the training images, which generates again that multidimensional classifier
vector. Now I calculate the "interestingness" factor at the position of that
vector by summing up the known interestingness of the training set vectors which
is weighted inversely proportional to their distance to the test vector. The
image with the highest interestingness in that generation survives and generates
offspring which are mutated copies of the original DNA. Then the process repeats.
As for your question about the generators: that was somewhat of a "fairness"
issue to me when creating those modules: how much "intelligence" am I allowed to
give to the single modules so I can still say the computer made this and not me?
For example I could just load a random photo from google images as a seed image,
but I would consider that cheating. Would a simple 3D-scene generator which just
adds spheres and cubes be still okay? I decided against it at that time but of
course it would speed up the process to arrive at something interesting very
quickly. So I tried to stay with basic elements: noise, perlin noise, plasma,
random lines, random circles, random rects. This already opens up a lot of
possibilities, for example if you make a very small noise patch, scale that one
up and threshold it, you might get some shapes that look interesting. Mirroring
is another shortcut to create some instant (but if it the only tool used also
boring) interestingness.
Cheers
Mario
Am 20.01.2012 04:44, schrieb Bager Akbay:
> Dear All,
>
> I am writing an MA thesis about a generative art framework at
> Interface Culture department, Linz Art University.
> This is a long email, I tried but could not make it shorter.
>
> I have simply separated the framework into 3 parts.
>
> Analyzers : To analyze images
> Generators : To create images
> Minds : To understand what is analyzed and to guide what is created.
>
> Analyzers take an image as an input and gives a number as an output.
> The system will have many analyzers. Analyzers might vary from
> brightness analysis to face recognition.
>
> Minds are the part in which framework gets useful. Artists will be
> expected to design minds and see other people's designed ones.
> Minds will ask generators to create some images, and ask analyzers to
> analyze them. Then they will force!! (evolutionary or parametric)
> generators to create more desired ones.
>
> I have a problem with generators. (in fact most of them are filters,
> not really generators)
> Generators are basic filters like photoshop filters.
>
> There is a logical error I made here, and I can't solve it.
> Filters does not create images, so that I don't have any images to start with.
> I skipped that step in the beginning and used random photos I have in
> a folder, and built the system.
>
> Now what I need is a random image.
> What is a random image ?
> How can we really create a random image ?
>
> When we go like
> for every pixel {
> r: random(0,255)
> g: random(0,255)
> b: random(0,255)
> }
>
> That is pretty random and covers whole image space but mostly! does
> not make sense for any human. We cant compare or recall any of them.
> When we say get last uploaded flickr image, it might be random for
> uploaded photos but does not cover the whole image space.
>
> So that I started to think about something like "humanoid image space"
> but then that sounded stupid because even an rgb noise is humanoid, we
> even have a name for it.
> Than I changed it to humanly distributed image space.
>
> I need an algorithm which covers all image space but it probably
> produce humanoid images with a right distribution.
>
> With more clear words ;
> A system creates 100 random images, none of them looks like each other
> (for a human not mathematically). They are almost evenly distributed.
> They are all recognizable.
>
> Is not that really hard ?
>
> --
> bager
--
Mario Klingemann / Quasimondo
Computational Artisan
http://www.quasimondo.com
Elvirastr. 11 Rgb.
80636 Munich - Germany
mario at quasimondo.com
Mobile: +49(0)172 860 53 24
Studio: +49(0)89 20 33 07 18
More information about the eu-gene
mailing list