Intellipaat Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in AI and Deep Learning by (50.2k points)

Algorithm for a drawing and painting robot -

Hello

I want to write a piece of software that analyses an image, and then produces an image that captures what a human eye perceives in the original image, using a minimum of bezier path objects of varying color and opacity.

As an example, if the original image shows a red balloon in the top left corner, and the reproduction has something that looks like a red balloon in the top left corner then I will have achieved my goal, even if the balloon in the reproduction is not quite in the same position and not quite the same size or color.

When I say "as perceived by a human", I mean this in a very limited sense. I am not attempting to analyze the meaning of an image, I don't need to know what an image is of, I am only interested in the key visual features a human eye would notice, to the extent that this can be automated by an algorithm which has no capacity to conceptualize what it is actually observing.

Why this unusual criterion of human perception over photographic accuracy?

This software would be used to drive a drawing and painting robot, which will be collaborating with a human artist (see: video.google.com/videosearch?q=mr%20squiggle).

Rather than treating marks made by the human which are not photographically perfect as necessarily being mistakes, The algorithm should seek to incorporate what is already on the canvas into the final image.

So relative brightness, hue, saturation, size, and position are much more important than being photographically identical to the original. The maintaining the topology of the features, the block of color, gradients, the convex and concave curve will be more important the exact size shape and color of those features

Still with me?

My problem is that I suffering a little from the "when you have a hammer everything looks like a nail" syndrome. To me it seems the way to do this is using a genetic algorithm with something like the comparison of wavelet transforms (see: grail.cs.washington.edu/projects/query/) used by retriever (see: labs.systemone.at/retrievr/) to select fit solutions.

But the main reason I see this as the answer is that these are the techniques I know, there are probably much more elegant solutions using techniques I don't know anything about.

It would be especially interesting to take into account the ways the human vision system analyses an image, so perhaps special attention needs to be paid to straight lines, and angles, high contrast borders and large blocks of similar colors.

Do you have any suggestions for things I should read on vision, image algorithms, genetic algorithms or similar projects?

Thank you

1 Answer

0 votes
by (107k points)

There is a Brushstroke Rendering Algorithm for a Painting Robot based on A painting robot ARTCYBE is a machine developed to imitate the ability of a human painter to create realistic images with acrylic paints and a brush. You can refer to the following link:

https://www.researchgate.net/publication/320751359_Brushstroke_rendering_algorithm_for_a_painting_robot

There is a model that can be implemented as an algorithm to calculate a saliency map for an image, determining which parts of the image would get the most attention from a human.

The model is called the itti Koch model.

You can find a here and it’s related resources and c++ source code herestartin paper

You can also refer to the following link, which tells you the mechanism of the painting robot:

https://hackernoon.com/i-cant-paint-but-meet-my-robot-f167a60b2635

If you wish to learn more about Koch Model then visit this Artificial Intelligence Course.

31k questions

32.8k answers

501 comments

693 users

Browse Categories

...