顯示具有 AI 標籤的文章。 顯示所有文章
顯示具有 AI 標籤的文章。 顯示所有文章

2019年12月13日 星期五

字型的深度學習(5)

 太震驚了! 我去年突發奇想要做的<字型的深度學習>居然也是Google Brain內部的project之一, 已經發表在2019/4月份!

相關介紹報導
https://neurohive.io/en/news/new-method-for-generating-svg-fonts-by-google-brain/

2019 Google Brain發表論文標題/網址
A Learned Representation for Scalable Vector Graphics
https://arxiv.org/pdf/1904.02632.pdf

同時, 我也另外搜尋到MIT在2018有位碩士生拿這個當作畢業碩士論文, 連結如下:
https://dspace.mit.edu/bitstream/handle/1721.1/119692/1078149677-MIT.pdf?sequence=1&isAllowed=y


2018年12月4日 星期二

字型的深度學習(4)

字型的深度學習里程碑

《字型的深度學習》專案,目前設定下列重要目標跟里程碑:

  1. 先學會基本tensorflow操作
  2. 跑zi2zi project範例
  3. 以自訂內容完成zi2zi project: training
  4. 以自訂內容完成zi2zi project: inference
  5. 將inference output image進行向量化
  6. 將向量化之後的文字集成字型檔

目前設定的終極目標是要能夠利用各種程式透過deep learning的方式來生成字數要有一定程度以上的中文字集字型檔案。

2018年11月5日 星期一

字型的深度學習(3)

Tensorflow平台選擇


跑tensorflow平台大致研究了一下, 除了用自己的PC來跑之外, 也可以使用Google Cloud Platform(GCP)或者Amazon的AWS服務, 但發現GCP收費約 USD $300/month跑不掉, 即使是可以使用小時計費的TPU感覺還是不便宜, 自己畢竟還是初學者, 先用PC研究看看吧

zi2zi project will migrate to python 3


zi2zi project似乎還在使用比較舊的python2, 但目前大多數tensorflow app/tutorial都已經轉向python3, 有人在github上面提問後, 作者也已經回應將會將zi2zi migrate到python3

使用local desktop PC來跑Tensorflow

2018年10月24日 星期三

字型的深度學習(2)

發現一個有趣的東西:
zi2zi: Master Chinese Calligraphy with Conditional Adversarial Networks
這個github上面的zi2zi(字到字)專案,跟我之前想到的人工智慧字型學習的概念相當雷同!

稍加研究之後,簡單而言,style transfer的一種AI應用方式,就我初步的理解,這一類的應用主要是在training的時候,給定一組已知input stream,以及他相對應型別轉換後的output stream。講白話一點,如果我的style transfer叫做『灰階化』,那麼這一對已知的input就可以是彩色圖片,而對應的output便是灰階處理過的圖片。下圖是一個風格化的例子
https://www.techleer.com/articles/466-insight-into-fast-style-transfer-in-tensorflow/
如果對style transfer有興趣,可以搜尋prisma這個app看看他們的厲害之處
https://prisma-ai.com/


以下是目前對zi2zi初步理解:


zi2zi利用這個style transfer的基本做法(之一),大致如下:

training的時候…


先用字型A產生特定中文字的圖像當作training input stream,接著找另外一個字型B產生同樣的相同中文字的圖像來當作training output stream。

inference的時候…


當deep learning model已經學習完畢,如果它訓練效果很好,表示它大致上已經摸熟了字型A到字型B的微調原則,所以我們可以刻意給定另外一組不同中文字所組成的圖像當作inference input stream,讓它產生inference output stream。到這邊為止,還是zi2zi的本質。

但我想到的應用是:


倘若字型B是一個字數有短缺的字型,也許因為人力資源有限導致開發中斷或緩慢等等。透過這種作法我們其實可以要求這位虛擬字型學徒,透過inference的方式產生其他原先它並沒有看過的中文字。用這個特點,假設字型A是類似全字庫字型的full set,那我們可以這種做法來補足字型B的字數!

但有幾個潛在的問題:


A. 虛擬字型學徒可能學習效果很差
B. 虛擬字型學徒只能做圖到圖的轉換,但數位字型檔是OTF格式,中間還有一番轉換功夫

2018年10月18日 星期四

字型的深度學習(1)

之前看到日星初號楷體的時候,對這種字型相當著迷,無奈我得知這款字型的當下,日星鉛華網站已經停止服務,我甚至連這個網站原本長啥款都還不知道。
然後,我找到這家鉛字行的粉絲專業
似乎嗅出了那麼一點字型為何停止開放下載的理由,似乎是部分鉛字師父認為部分字型透過數位呈現出來的效果跟他們想的不一樣。

不過,我個人看到這款字型的問題,跟鉛字師傅在意的點完全不一樣,我認為缺字率太高的字型很難被接受,更甭論廣泛使用,畢竟字型這種東西要有人使用,才會被看到才會有人記住。但要克服缺字率這一點似乎就又回到了﹝人力短缺﹞這個很根本的老問題,畢竟鉛字行也算是夕陽產業沒錯吧?願意投入這一行,要能長期執行甚至以此養家活口的人,相對來說應該會很少。所以才冒出了『保留傳統工藝 發揮漢字文化價值』這樣豪邁的標語,打著文化價值的觀點來提倡這項技藝。

感覺這套字型如果還有下一步(也許已經完全停止開發),可能會是刻字老師傅要徹底教會製造數位字型的年輕字型設計師,然後這位還要這數位相對年輕的數位字型設計師還有辦法持續養活自己,持續造字(因為常用字數應該3k-5k可能跑不掉, 全字庫可能也要40k up才算),我們才有可能看到下一代字數足夠的「日星貳號楷體」

但,我有個不同的想法!


如果學會鉛字符號造型精隨的那個傢伙,不是人類,而是一台電腦呢?

如果我們讓人工智慧學會這個字型的外貌(如同老師傅訓練新手學徒造字),接著再讓這個二位元世界的學徒,自動去產生其他字符,是不是就比較有機會產生一個字數足夠的數位字型呢?

一般而言,人工智慧分成training/inference兩個步驟,前者是學習階段,後者算是應用階段。

舉例來說,支付寶電子支付廠商,如果想透過人工智慧的方式來辨識人臉,並加以自動扣除消費者的電子錢包,在他推出這項服務之前,他得先透過一系列複雜的學習跟計算過程,訓練出一的程式模型,而這一段程式碼專精於讀取圖片來進行人臉辨識,最後對應到某特定帳號,那這一段訓練過程叫做training;

而當支付寶公司推出這項服務之後,用戶手機裡面或者結帳櫃台上的電腦裡面,在適當的場合(結帳)來執行這段程式碼進行辨識,叫做inference。

如果有一套方法能夠讓某特定人工智慧程式能夠學會某特定字型的眉眉角角(training),那麼之後要產生數位字型的時候(inference),應該就有機會能夠大量生產眾多中文字符,省去冗長的琢磨時間,藉此解決字數不足的困處