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月29日 星期四

Graveyard Keeper遊戲心得與啟發

Graveyard Keeper,中文翻譯為《守墓人》,是一款像素風格的經營管理類遊戲,類似牧場物與或者前陣子爆紅的《星露谷物語》(Stardew Valley),只是這款遊戲要經營的是墓園(牧場變墳場)。其宣傳標語相當逗趣:

The most inaccurate medieval cemetery management sim of the year.

Graveyard-keeper
這款遊戲我陸陸續續花了一兩個月才破關,遊戲時數不多,時間會拖這麼長其實對我來說也是家常便飯了,畢竟都是利用下班以及哄小孩入睡之餘的空檔來玩遊戲的。
但遊玩之後,對於遊戲開發所需要的知識以及經驗,有幾項特別的心得(以前沒想到的),特別整理一下:

2018年11月22日 星期四

從Google圖書到可攜式epub

前語

很多買了電子閱讀器的人,可能會發現從《Google圖書》花錢買下來的電子書籍,下載之後,居然無法在電子閱讀器底下開啟。這其實是因為這些電子書商對於保護著作財產權的一種防範措施,避免單一消費者任意散布檔案給其他未付費的讀者。目前(2018)較慣用的做法多半是為這些下載下來的檔案附加上DRM(Digital Restrictions Management)屬性,而循規蹈矩的電子閱讀器基本上就無法任意開啟受DRM保護的電子書籍檔案(即便那是你花錢買來的)。可是這可能對於以購買的消費者帶來一定程度的不便,畢竟買這類eReader有很大一部分原因就是不想看較為刺眼的電腦/手機螢幕,但購書管道又不想侷限於單一平台。畢竟貨比三家不吃虧,電子書購買平台本來就不應侷限於電子閱讀器上面的那款。以下文章提供一些簡單的做法來移除這些惱人的DRM屬性。

2018年11月11日 星期日

新增更多Anaconda Prompt字型

More Fonts for Your Anaconda Prompt

使用Windows+Anaconda套件的中文語系使用者,多半都會發現anaconda prompt的字型實在是有點糟糕,但更換字型的時候絕大多數會看到下列畫面:
windows prompt fonts in BIG-5

2018年11月9日 星期五

第一篇利用StackEdit編輯的文章

Motivation

最近一陣子回鍋開始使用blogger,發現blogger文字編輯器真的不是那麼好用。尤其在工作場所,接觸過hiwiki/wiki/redmine套件之後,真的是覺得blogger這一類的文字編輯器實在有點抱歉。尤其hiwiki更是越來越神,對於工程背景的人來說,利用這些工具整理邏輯性很強的文章相當重要,必較讓作者可以更專注於內容而非排版。因此我開始搜尋是否有更容易的方式在blogger發表文章。

Markdown

有編寫過wiki/redmine文章就會略微知道其實他用一些簡單的標記就可以輕鬆做一些文字標籤或者表格,不過到今天我才知道這一類語法多半是有standard的,其中比較多人使用的標準叫做markdown。
維基百科: https://zh.wikipedia.org/wiki/Markdown
Markdown中文文件: https://markdown.tw/

Does Blogger Support Markdown?

2018的當下,答案顯然是不支援,Google了一下可行作法:大多數都還是在別的地方編輯markdown文檔,利用其他工具轉成html之後,直接用blogger html edit mode將內容貼上。不過找著找著,突然發現了StackEdit (https://stackedit.io/) 這個網站提供的服務相當特別,StackEdit基本上是讓你編輯markdown檔案,每篇文章以獨立檔案儲存在類似GoogleDrive的workspace裡面做備份,同時,透過StackEdit提供的publish按鈕就可以直接將markdown文章發表到Blogger/GitHubPages/因此來試用看看!

Who Else Support Markdown?

最明顯的應該是GitHub Pages,不過這樣就等於要從blogger跳槽,暫時還沒這個打算。

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),應該就有機會能夠大量生產眾多中文字符,省去冗長的琢磨時間,藉此解決字數不足的困處

遊戲專輯-小型(獨立)遊戲營利管道

除了販賣遊戲本身之外, 是否也可以在遊戲內置入性行銷呢?

綜觀遊戲市場,特別是獨立團隊(泛指30人以內小型團隊)遊戲市場,由於售價本身不能拉攏太高,導致銷售量如果沒有到達【超級歡迎】的程度,整體來說根本無法維持營運,也很難有持續性成長。所以,最近我就在想,如果直接製作的時候就拉贊助,在遊戲裡面來埋廣告呢?畢竟,遊戲的玩家基本上都是眼睛緊盯著畫面不放,如果能夠廣告的出現,有辦法不讓人只想點下﹝跳過廣告﹞那個連結的話,廣告效果應該會比較明顯,同時也對廠商有利。

舉個例子,假如遊戲裡面本來就有會出現很多顯眼招牌的街道場景,是不是就真的在一些虛擬世界裡面的招牌,擺上現實世界的廣告呢?這種作法眼球滯留時間可能遠超過電視廣告吧。

就拿OverCook來說,如果出現的食材或餐館場景,直接是某些品牌,好比說生魚片就直接tag成○○水產的生魚片。拉麵就冠上××拉麵店的商標,是不是就讓人腦子裡主動對這些品牌或商品跟實際產品直接產生連結,這種行銷手法也許才有辦法在不提高遊戲本身價格的前提下,為這款遊戲本身帶來更多附加價值。

以上,只是前幾天腦海裡突然浮現的想法,總覺得小團隊在遊戲開發如果不想想其他營利管道,把一切都賭在【這款遊戲真的有做好應該可以大賣N套】的作法,似乎很難長久經(燒)營(錢)下去。

2018年10月15日 星期一

網路資源蒐集 [出版發行] EP1

五個平臺出版體驗

http://www.sigono.com/ (如何靠ASO讓App商店轉換激增, 遊戲開發/發行公司)

Blogger 插入表格的最佳流程 + 自適應寬度


人工智慧好文大集合 EP1

https://free.com.tw/google-cloud-platform-free/

Cartoonify 利用 Google 神經網路將上傳的圖片轉為塗鴉手繪風格

GitHub: zi2zi project (字符到字符, Learning Chinese Character style with conditional GAN)

Knowledge Graphs and Deep Learning 102 Topics Covered in the video
1. Graph Convolutional Networks
2. Semi-supervised Learning
3. Knowledge Graphs and Ontology
4. Embedding in Knowledge Graphs
5. Adversarial Learning in Knowledge Graphs (KBGANs)


New Perspective on the Central Limit Theorem and Statistical Testing

Recurrent Net Dreams Up Fake Chinese Characters in Vector Format with TensorFlow

TensorFlow Installation Guide (Official)

好物分享-達文西動力模型

達文西動力模型

Medium好文: 工具2018 兩岸讀書軟體功能整理

「工具」2018 兩岸讀書軟體 功能整理

王爺信仰的專業學者-康豹

人們為何在神明面前發誓? 專訪研究員康豹

遊戲專題集合 EP1

因應Google+即將關站, 歷年來蒐集整理的轉貼文章將分類整合至此。
開發者談故事情節在遊戲中發揮的積極作用 - 遊戲大爆炸

Jotun: Valhalla Edition

信任的演化

銀河歷險記 Samorost 3 用白日夢融化你心,攻略也美得像繪本

[IndieCade 2017] 解謎遊戲大解密 Understanding the magic in good puzzle games

IFTTT 當 Steam 有新的免費遊戲時自動以 Email 寄回信箱通知

Flipping Death: Bringing unique 2D puzzlers to Nintendo Switch with Unity

Beat 'Em Up - Game Template

Developing 2D & 3D Games with Unity

[GDC 2018] 敘事設計——如何創造一個好的角色 Narrative Design: How to create great characters

任天堂新人研修教導的「玩心設計」

以台灣為原型!《荒漠樂園 DESERTOPIA》獨立開發者 如何藉養成遊戲體現社會議題?

遊戲策劃:為什麼我的兒子不沉迷遊戲?

武林志 (Steam平台獨立製作遊戲)

從創作到遊戲,聊《迷霧國度:傳承》是款怎樣的遊戲【2】:回合制戰棋遊戲

FontForge 字型編輯軟體

GitHub: Font Development Best Practices

太吾繪卷 (Steam平台獨立製作遊戲神作)

網路資源蒐集 [字型] EP1

因應Google+即將關站, 歷年來蒐集整理的轉貼文章將分類整合至此。

日星初號楷體:臺灣本土中文鉛字字型數位化免費下載



解決 Win10 無法安裝舊字型的問題

源樣、源流、源雲明體:三款改造自思源宋體免費繁體中文字型下載


Designing with light and shadow: 10 highly effective tips you should try [with case studies]

GitHub: zi2zi project (字符到字符, Learning Chinese Character style with conditional GAN)

全字庫正宋體、正楷體:可商業用途中文免費字型下載


GitHib: Ruby-font-creator  (Generate rich Unicode open fonts with custom annotations, transliterations, pronunciations)


網路資源蒐集 [音樂素材] EP1

因應Google+即將關站, 歷年來蒐集整理的轉貼文章將分類整合至此。

GameSounds.xyz 免費遊戲音樂音效 Mp3 下載!公眾領域釋出可自由使用

甘茶の音楽工房:適用於影片、遊戲或專案開發的免費日本音樂素材下載








網路資源蒐集 [圖片美工] EP1

因應Google+即將關站, 歷年來蒐集整理的轉貼文章將分類整合至此。

Malabi 免費線上去背工具推薦,全自動移除背景超簡單


CC0photo 韓國免費圖庫推薦,數千張 CC0 授權高畫質相片素材下載



AI 鋼筆工具練習網站

Create Seamless Watercolor Patterns in Photoshop


美國國會圖書館開放 2600 幅浮世繪畫作 JPEG、GIF 和 TIFF 格式免費下載

Cartoonify 利用 Google 神經網路將上傳的圖片轉為塗鴉手繪風格

PNG Crusher, compress your PNG files for optimize your gamedev graphics




2018年1月25日 星期四

惡之華

秉持自信活下去吧,萬物生命皆載罪而生
太宰治《晚年》