Week 11 – Deepdream – Katie

I wanted to try out Deepdream for this assignment to get more familiar with it. I’m thinking more about the concept of perception for my final project, specifically where human and computer perception don’t intersect. These are usually considered to be failures in terms of training, but are they actually failures or do they simply not align with human perception?

Anyway, I tried out changing different parameters but ultimately came up with this video through Deepdream of Magritte’s Golconda.

https://drive.google.com/file/d/16UhPfu7oLG9we59W-rJ68ZURRs6yEOWO/view?usp=sharing

I still would like to see more from Deep Dream in a video output (these are too many dogs), so I’d like to continue to work on this and update later as I find new results.

Midterm Writing Assignment

In my Week 07 documentation, I rewrote background and inspiration to clarify, so I’ve posted my Week 07 version of these along with the social impact, artistic influence and future plans.


Is it possible to teach an AI design? This is a problem at the forefront of Machine Learning exploration and a fascinating topic that could change how designers work and how companies operate. For my midterm project, I wanted to examine ways to create an algorithm that could design posters based on a specific style and user inputs. In the end, I believe that my proposed idea is  likely possible, but would require time, extensive data and skills beyond my range.

Background

I wanted to do this project because of my interest in design, as well as the Swiss Minimalist style, which I chose to focus on. Swiss minimalism, particularly the poster style I chose to focus on, was developed in Switzerland during WWII and made famous by designer and author Josef Muller-Brockmann, editor of magazine Neue Grafik. Brockmann’s posters used bold colors, a grid layout and simple, clean typography to create aesthetic posters. Brockmann’s style changed graphic design, ushering in an appreciation for layout and typography. His style is time-tested and still favored today by artists and institutions.

Another source of inspiration is the class Programming Design Systems, which I’m taking this semester with Cici Liu. Before this class, I mostly used Adobe Illustrator, Photoshop and InDesign to create designs, which often involves a lot of manual work, i.e. physically moving things around the canvas and placing them myself to see what looks good. I love making posters, whether it’s for a party I’m throwing, part of my freelance work or just for fun, but I often find myself saving countless versions of the same poster with slightly different positioning and elements. Through the class, particularly the poster-designing assignment, I found it fascinating to see how code could be used to simplify the design process, and how an aesthetic poster could be broken down into coding data. We work in P5, which can also be used to randomize posters by setting limits and creating arrays with sets of data to allow the code itself to generate many different versions of posters within set ranges.

I used P5 to recreate a few Brockmann posters and realized the Swiss Minimalist style poster could be entirely recreated with P5, as the posters usually involve a few headings of text (sometimes rotated or overlapping), use of simple shapes, curves and lines and a grid layout, all elements that can be translated into code to reproduce the posters.

Inspiration

As mentioned in my project proposal, I was inspired by Alibaba’s LuBan AI software, which is used to generate banners and ads for products on Taobao and Tmall. Most of the pop-up ads in the app are now generated by the software, which can generate 8,000 banners per second. This AI was trained with a more complex process involving teaching it design elements separately, and then having teams of designers use reinforcement training to steer the AI towards “good” designs. The AI was trained on copy, product shot, background, logo and decorating artifacts, all the elements needed in a simple ad, from a huge dataset of these individual features. This project took years and likely thousands of programmers and designers, but it shows that a Machine Learning algorithm can be taught design elements and produce designs indistinguishable with those from a designer.

Process

After bringing Aven my idea of teaching a Machine Learning algorithm poster design, we brainstormed possible ways of doing the project. Inspired by the Programming Design Systems class, I was interested in using P5 as the way the algorithm could “design” the posters as that way the posters would be represented as data. This means that I could use P5 “data” to teach the program, and it could create an algorithm based on the data to design original posters with Swiss Minimalist design principles. My goal by then for the midterm was to find an effective way of creating and gathering this data.

Aven said I would need at least 1,000 posters, so I started my research, saving posters that could be turned into data (eliminating those with images and design elements that couldn’t easily be recreated with code) and saved several hundred minimalist posters.

I began to notice that many of the posters had 3 main types of text, which I began to call Heading1, Heading2 and Heading3. Heading1 was usually bold and almost decorative, often very large and distinctive on the poster. Heading2 and 3 usually had smaller font and creative placement, containing the actual information for the poster. The posters often used one or two types of shapes, repeated and in various colors. After observing these posters, I created an Excel spreadsheet for the data I wanted to gather and broke it down into a few different categories that I thought could represent most of the posters:

Heading1 text placement (location on the canvas, text size, text color, text rotation, and the same data points for Heading2 and Heading3, then Shape1 placement, size, fill, rotation and stroke, continued for the rest of the shapes present on the poster, and background fill. I was planning to input the data as P5 code.

I then brainstormed the user interface, which I wanted to be simple but allow users to create their own personalized posters. While my original idea involved different “styles,” I decided to simplify that to “black and white” or “color.” I wanted to allow users to input the three headings themselves, perhaps with a guideline indicating that Heading1 should involve little text and Heading3 should contain the main data for the poster.

Potential solutions and challenges

The first major challenge I encountered was gathering the data. While I knew what data I wanted to pull from the posters and I had the posters to use for this, I quickly realized that placement, rotation and fill weren’t that intuitive. In order to get this data, I would have to “redesign” each poster in P5. Some of the posters didn’t share the same dimensions, so I would have to reformat the posters to one dimension to create consistent data. I would also have to use color pickers online to find the colors inside the posters, and then pick a consistent color system, such as HSB in P5, to represent the colors. Rotation also presented a challenge as it would take time to find the rotation and placement, which I would have to do by essentially “eyeballing” the poster and trying to match the coded version to the real one. Also, recreating curved lines with Bezier curves would prove a major challenge, as well as any irregular shapes that would involve more coded data than I could easily input. I quickly realized that turning 1,000 posters into P5 data was a huge task that would take many hours and could produce imperfect results.

The second major challenge was how to input this data into the Machine Learning algorithm. I met with Aven again to discuss this challenge, and he suggested JSON, as I would be able to upload my Excel spreadsheet of data into the platform and then import JSON into the model to train it.

Also, since I wouldn’t be using a simple pre-trained model, I would need to find a program that could read and learn Swiss Minimalist principles from the data, and then be able to generate new P5 data and create a sketch for a new poster. This seemed very challenging as we discussed how we didn’t know whether such a program already existed, so I may get through all the steps of data gathering to realize that I wouldn’t be able to train it at all.

In order to create the user interface, I would also have to find a way to input the user’s headings into the P5 sketch while allowing the algorithm to generate the rest of the design based on the data, and then display that sketch. This also posed a challenge as while I have experience in P5, linking all the systems together to create the project I wanted would involve many steps I wasn’t familiar with.

After reaching the conclusion that turning thousands of posters into data would be beyond my ability this semester, I started looking into other ways of finishing the project, such as human in the loop. I knew from my experience with P5 that I could use several different sketches to produce infinite posters in the Swiss Minimalist style by randomizing certain elements within ranges. With this in mind, I was curious whether I could have feed an algorithm these sketches and have it produce its own random designs, which I could then evaluate in order to essentially teach it to produce more of the “good” designs. This is very similar to LuBan’s reinforcement process, where teams of designers evaluated the AI’s designs in order to teach it the finer points of design. While Swiss Minimalism famously uses grid systems, which generally follow “rules,” many of the posters also “break” these grid system rules in order to create interesting and unexpected designs. This would be one aspect I could teach the algorithm through human in the loop: when to “break” these rules and when to follow them in a design to create aesthetic results. One challenge however is that most of the resources on human in the loop that I came across start with a high quality training dataset, and I couldn’t find references on whether I could have the algorithm randomize posters from different ranges of data and elements to create its own dataset. I briefly considered somehow gathering the data from different iterations of P5 sketches to create a database, but if all the sketches use the same code to create different posters, this would also prove to be a huge challenge.

With this is mind, I conclude that while this project may be possible if a team can turn thousands of Swiss Minimalist posters into P5 data and then teach an algorithm to use that data to generate its own posters in P5, it would take time, resources and knowledge out of my reach in order to do so. Also, at any step of the way if something went wrong or if the actual algorithm needed doesn’t exist, this could easily fail to produce the results I was looking for. This project was a fascinating exploration for me into the world of building databases and training models, and while in the end I’m not able to create the project I wanted to, I have a much better grasp on the realistic challenges of data, training and algorithms, which I can take with me for my next, more achievable, project.

Social impact

I think this project could have a large social impact as AI is currently changing how designers work in many companies, and the future of design almost certainly includes collaborating with AI to streamline the design process. In terms of poster design specifically, I could see online design services like Canva incorporating AI programs that allow users with limited design experiences to simply input their poster’s headers and style and immediately generate a well-designed, unique poster. This would change the accessibility of well-designed materials, as well as the speed, since anyone would be able to enter text and generate simple posters immediately.

Artistic influence

If an AI can learn layout and basic design principles, this could have many artistic uses as many pieces of visual art rely on certain visual principles such as the golden ratio and placement. Using the program I want to create, the algorithm could be trained to produce abstract visual art by learning P5 sketches with abstract shapes, patterns and colors and producing its own. It would be fascinating to see how AI produces art in different abstract styles and how different styles can be boiled down into algorithms. For example, many of Wassily Kandinsky’s abstract paintings can be broken down into shapes in P5, making it possible to turn them into data and train an algorithm on the paintings themselves. While the hurdle may be that there are not enough paintings by one particular artist to create a reliable dataset, perhaps a dataset could be created on a particular style of painting to train the AI.

Future plans

In the future I would love to expand the styles from Swiss Minimalism into Bauhaus, Vaporwave and more artistic styles with sets of design principles. In order to do this, I would also want to find a different way of turning posters into data besides P5 code, as it would allow for a lot more flexibility for visual elements. An interesting addition would be allowing photos and training the algorithm on photo placement and scale, so that users could upload photos into the interface and have them placed on the poster by the AI.

Sources

https://www.figure-eight.com/resources/human-in-the-loop/

Swiss (International) Style Of Design: The Guiding Principles That Influence Flat Design

https://medium.com/@rexrothX/ai-visual-design-is-already-here-and-it-wont-hesitate-to-take-over-your-petty-design-job-934d756db82e

https://medium.com/@deepsystems/human-in-the-loop-for-object-detection-with-supervisely-and-yolo-v3-fa205ff07c1f

AI ARTS- Week 12- Final Proposal- Eszter Vigh

AI
How Users Think of AI

I went back to the drawing board with this idea SO many times. It took visiting McaM to really get an idea solidified. I’ve been working towards that idea since that field trip last Saturday. 

So what’s the big idea? 

It’s an AI Chat Bot. But what I want to do with it… is kind of cool. I want to ask users afterwards to provide feedback on it. So, the core of my project is to have a chat bot that is as human as I can make it (using a Google API).

NOW… here is my big issue. I don’t want to collect the chat history or any data really from the users. Rather, I just want user-tester feedback. The google API unfortunately, “By default, bots can only read the basic identity of users that invoke them. This information includes the user’s display name, user ID, email address, and avatar image.” I don’t even want that. 

So, I may end up using a slightly different API. I found this tutorial, and I think it will honestly be better.

This tutorial requires my own data. I’m going to do some experimentation and research on what other AI conversation bots use as their training data and then maybe include some of my own Eszter-isms. What I still really need to narrow down based on this blog post I found, is what the purpose of my AI chat bot is. Do I just want to make it an all-around bot and have users find out what doesn’t work? Like… try to see the limit of knowledge the bot has? 

Survey
This is a potential hypothesis

That would be cool. (At least, I think it would be). For the User Test survey I want to ask the following questions:

  1. How human is this Chat Bot ? (Scale 0-5, Five = Practically Human, Zero= Obviously Coded Computer)
  2. What did you find most human about the chat bot?
  3. How un-human is this Chat Bot ? (Scale 0-5, Five = Undeniably a Computer, Zero= Human)
  4. What did you find most un-human about the chat bot?
  5. Would you feel comfortable using this Chat Bot again? Why or why not?

I want to set up a computer in the IMA lab with my experiment with a little survey collection box. I plan on shredding all of the survey results after to maintain privacy of the users. The goal is make this fully anonymous and voluntary. 

My hypothesis for this project is that most users will feel uncomfortable using the chat bot because of the same logic they use to reason through not signing up for the face-scanner to get into the building. I think they will view this user testing session will reveal some conflicts between human and machine. 

The design of the chatbot will be super simple, very basic chat room-esque is what I am going for. 

Week 11 Assignment: Deepdream Experiment (EB)

For this week’s assignment, I decided to experiment further with Deepdream. The concept itself reminded me of a psychedelic-induced trip from contemporary media. Media such as Harold and Kumar, Rick and Morty, as well as others show moments where characters see their world distorted by drugs. In those scenes, the character is usually looking out towards nature, therefore, I chose to use a picture of the rainforest as my initial input.

I thought that the output would result in something interesting and similar to what I have seen in popular media.

I started to play around with the layers first without playing with the other variables. The product of this was actually very interesting. It seemed to me like it produced different styles of the initial image. This image used the mixed 3a layer.

This image used the mixed3b layer.

This image used the mixed4a layer.

This layer used the mixed4c layer. 

This layer used the mixed5a layer.

In terms of exploration, this experiment allowed me to replicate the forms of psychedelic trips that can be seen. Each layer altered the image in a different way, giving them unique styles. It seems as if the different layers chose the same locations on the image to alter, but the way in which they did was interesting to see. 

After this experimentation, I wanted to know what it would look like to produce a video similar to the one we saw in class. Then I came up with this.

https://youtu.be/mVasZounarc

Overall, I think that this experiment gave an interesting insight into what the Deepdream can do. I wonder whether it would be possible to maintain the style of the different layers by using style transfer and training a model based on the layer, and how different it would be compared to just using deep dream.

I also see myself using this as a way to produce interesting images of my cyberpunk cityscapes. The results should be pretty interesting I imagine. 

AI ARTS Week 11- Deep Dream Experiments – Eszter Vigh

Jennifer Lawrence
My starting Image

Aven’s Deep Dream example with his face was scary. I was wondering if maybe it was just that specific filter he has chosen to use for the example that yielded such a terrifying output.

Deep Dream
Deep Dream Attempt 1

So the first thing I learned with the example is YOU MUST USE CHROME. I am a safari user, and I couldn’t get my own image uploaded into the sample. I restarted my computer several times before giving in and switching browsers. This was my first attempt using Aven’s presets to see if I could get a result (as the in-class example videos just would not work for me, despite Aven’s continued efforts to help me).

another experiment
Slightly Different Filter (3A vs 4A)

I picked the most aesthetically pleasing option, in this case option 3A over 4A. I liked it slightly better, so I thought maybe the output wouldn’t gross me out as much as the previous example. (I was wrong, but I didn’t know that yet).

3A
Continued 3A filter Experimentation

So I worked through the example, changing all of the subsequent parts of the process to reflect my 3A filter preference. I felt like the 3A filter gave the whole image this more “comic-like” design, at least from a distance. 

Iterations
Further 3A Iteration

Then I decided to do the zoom example, and this is where I stopped liking 3A and Deep Dream altogether. It starts looking as if my favorite actress has horrible scarring from a distance.

3a zoom
Zoom Attempt

Zoom 1 didn’t help. I am happy that this isn’t the “eye” example that Aven did because that was creepy, these squares were nicer, but this zoom still showed her mouth, and it made the now striped patten look odd. 

Zoom zoom
Further Zooming

The zoom feature worked well! Further zooming yielded actual results. It’s a relief that at least SOMETHING works in terms of examples. I still haven’t been able to get Style Transfer stuff downloaded, but at least this worked. 

Not cute
This isn’t cute

UPDATE! Hi! I got the video to work with my old LinkedIn photo! Enjoy! 

It is a total of eighty frames. The actual information on how I inputed the variables is here:

ai inputs
Inputs!