[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