Hacker News new | past | comments | ask | show | jobs | submit login
Zi2zi: Master Chinese Calligraphy with Conditional Adversarial Networks (kaonashi-tyc.github.io)
156 points by jiayijeccili on April 7, 2017 | hide | past | favorite | 18 comments



The animated interpolations between fonts are wonderful to look at, and really demonstrate the flexibility and legibility of the generated characters.

I've heard that the font selection for Chinese/Japanese is limited due to the sheer number of characters, and this kind of smart style-transfer could be a solution for expanding the range of fonts. Amazing work, thank you for sharing!


Could this be used to generate simple missing characters in Western fonts too? For example many nice fonts are missing Greek letters (useful for science), punctuation or diacritics.


Should have no problem since this model works end-2-end, so only images are required. However, one worry is that the number of glphys for western language is significant smaller than eastern Asian languages, the styles to model might be a lot more than the demonstrated case here which will lead to an explosive size of discriminator, so some structure change might need to take place before applying to western alphabet


Funny, I had the exact same question, and spent the last hour or so looking into it before I saw your question.

In something I've been writing lately, I've wanted to be able to use certain typefaces, but they lack mathematical symbols or characters. It's something I run into repeatedly. Earlier today, before I saw this post, I was thinking maybe I should just add them, because they're open source, but then when I saw this I wondered "could you just do this with an autoencoder or AN or whatever?" It seems very doable. There are typefaces with them; the issue is creating the missing characters for the typefaces that don't have them, but have other characters.


For some reason the generated Korean characters look adorably old-fashioned. Maybe the model is generated from old-fashioned Chinese fonts, or maybe the slight mismatch of strokes evokes the air of old days when everything was done by hand.

Also it's impressive that the model mostly does a good job of handling circles (which must be totally absent in Chinese characters).


This is not actually calligraphy (yet). It's just typeface style transfer, which is an probably an important step towards calligraphy.

To be really calligraphy, you would need to train a NN that controls a robotic arm holding a brush.

But to be fair, this work is still Pretty. Fucking. Awesome.


Nice. Thank you for sharing. I'm using OpenAI for something related to recognizing handwriting.

As someone learning Mandarin, I would love to know where you found these characters and their meanings. I love to study old characters.


Are you familiar with "Uncle Hanzi"? (http://www.chineseetymology.org/CharacterEtymology.aspx?char...)

I study ShoDo, if you can be a bit more specific about what you are looking for I can maybe provide some more pointers.


it is neat to see the ML struggle with the circle glyph component from hangeul; which doesn't exist in kanji (although it seems to handle hiragana, which it's trained on) fairly well.


Just a heads-up because some other people might tell you: In my locale, Zizi means penis (fr-CA)


Well, that is just rate R. Let's hail the wonderful ambiguity of languages, and leave the day as it is :)


Great job for Chinese culture lovers.


can this help people who are trying to learn Hanzi of any kind, not just calligraphy?


Hi, author here. This project might not really help people that just get to know Chinese characters. Quite on the contrary, it aims to help typographic designers who can design a small subset of characters(like 2k out of 40k), then automatically, if the model works well, get the rest of it.


hey awesome work! in row 8, leftmost column, we see the "food" radical being laid out using different radical conventions on the ground truth versus the generated (IIRC, the lhs is simplified and the rhs is traditional?). Elsewhere we see the "thread" radical being rendered in simplified vs chinese traditional (but not japanese shinjitai). Have you done any deeper examination of the activation network to see if there's any sort of correspondence for some of these characters?


The source font I am using might have not 100% consistent with some of the target font, that leads to minor mode collapse. I think that is the reason here.


it would be cool if there was an activation that consistently flipped between traditional and simplified!


Nicely done!




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: