Midterm Documentation | Logo Generator by Kefan Xu

Project Name

Logo Generator 

Intro

In this project, I proposed a new way of designing logos using Generative Adversarial Network (GAN). 

The traditional way of logo design involves a lot of human effort. One has to sketch the draft and use professional software such as the Photoshop and the Illustrator to carry it out. This job might be difficult for amateurs and involves a lot of training. As a result, there are a lot logos which totally make no sense and even terrible in the market. 

By adopting the power of the Generative Adversarial Network (GAN), I hope to help amateurs design decent logos with a single click. The GANs are combinations of two neural networks which keep competing with each other. The generator will keep generating fake content and the discriminator will try to distinguish whether those content is real or not. Once the discriminators can’t tell which one is real or fake, it means that the generator has generate content with a high quality. To achieve my goal, I found a large image set called LLD, it contains 66k logos in both the png format. Based on this dataset, I selected a smaller one with 10000 logos to train my model. 

What I did 

First I resize the image into a 64*64 size. Then used numpy to turn them into arrays. Then I tested a model I found online with this dataset. Here shows the detailed information of the generator and the discriminator of this model:

However, the result, after 1000 iteration, does not make any sense. Though in the documentation the writer said this network had quite good outcome in generating flog images, it seems it failed to generate logos.  One of the possible reason is that the generator has beaten the discriminator. That’s to say, though the quality of image generated by the generator is very low, they were good enough to fool the discriminator. So I switched to other GAN models.

Then I used the DCGAN, this model used CNN (Convolutional Neural Network), here showed the result with the batch size of 32, learning rate 0.0001, 1280 epoch and 20000 iterations.

It showed that the model really did something. In the result of the last few iterations, there are some very vogue shapes of logos. Here shows the generator and the discriminator of this model. 

Further manipulation of parameters of this model didn’t bring any obvious improvements. Then one of my friends, who major in CS, suggested me to try WGAN. Since this network is more stable, and, in this case, might get the ideal result faster than just using DCGAN. As he suggested, the training way of this model has been switched to the WGAN. Here shows the result:

We can see that it got the ideal result much faster than use only the DCGAN. After 3500 iterations, there were already some quite good results. And some text on the logo has been extracted and generated. 

Conclusion 

In my midterm project logo generator, we can see that the GAN has the potential to generate logos in a fast way. By combine the WGAN and the DCGAN, it can get the result much faster and more accurate. However, compared to other subjects, the logo is more difficult to generator since it sometimes a combination of image and text. The GAN can be confused by this combination and the training can take a longer time.

Future Work

To generate high quality logos, more iteration is needed for sure. Other than that, changing the image size and the learning rate might also influence the result. The dissertation Logo Synthesis and Manipulation with Clustered Generative Adversarial Network proposed a new approach of generating logos using a model called iWGAN, and I will try implement this new model in my future work. 

My code can be found here.

Leave a Reply