[論文速覽] Design and Development of a Framework For Stroke-Based Handwritten Gujarati Font Generation

NoNoe發表於2024-06-01

1. Pre

title: Design and Development of a Framework For Stroke-Based Handwritten Gujarati Font Generation
source: arXiv2024
paper: https://arxiv.org/abs/2404.03277
code: None

關鍵詞: font generation, handwritten, gujarati, stroke
閱讀理由: 重新整理鮮論文ing

2. Motivation

針對古吉拉特語(印度22種官方語言與14種地區性語言之一)的字型生成研究相對較少,而且古吉拉特語的獨特和複雜結構,現有的針對其他語言的方法不能直接應用。

3. Idea

透過分割字元的筆畫並組合得到相同風格的其餘文字,手工成分很大。

4. Background

建立能夠體現使用者寫作風格關鍵元素的手寫字型是一項艱鉅的任務,特別是在字符集較小的語言,如英語(僅包含26個字母)中。有許多字型開發工具可用,如FontForge[2]、Calligrapher、Font Creator[3]、FontLab[4]等。這些工具只需要輸入26個字母,就能迅速生成符合使用者要求的完整字型。

這段很迷,字符集較小的語言不是更容易生成嗎

當前字型生成領域的研究主要集中在阿拉伯語[2-11]、中文[12-27]、拉丁語(英語和西班牙語)[28-37]、孟加拉語[38-40]、日語[41-43]、韓語[44-46]和印度語(Indian)[39,47-49]等語言。

手寫合成有多種應用,如實時線上修正的可編輯手寫檔案、文件數字化、修復歷史文件、字型圖形、驗證碼生成(Editable handwritten files with real-time inline correction, document digitization, historical documents repairing, font graphics, captcha generation)等[1]。此外,它對法醫鑑定人員、殘疾人和致力於手寫識別系統研究的人員也有幫助[19]。

手寫合成方法主要分為運動模擬(movement simulation)和形狀模擬(shape simulation)兩種。運動模擬方法利用神經肌肉手部運動來模擬書寫,考慮了書寫技巧、手部運動和筆壓作為特徵,最終用於描述筆跡的彎曲度[26]。相比之下,形狀模擬方法則使用形狀和彎曲度來模擬書寫,具有生成和連線兩個階段。在生成階段,需要從足夠樣本中提取統計資訊,最終建立新的模型[8,9,45,50-52,28-33,38,41];連線是一種基於融合的技術,透過混合兩筆或更多筆畫來生成新的筆畫[13,20-27]。

寫的什麼勾八,一會phrase一會approach。後面引用也引錯了,講的中文生成引了篇阿拉伯語的,感覺文章質量很低。

5. Method(Model)

5.1. Overview

[論文速覽] Design and Development of a Framework For Stroke-Based Handwritten Gujarati Font Generation

圖1 古吉拉特手寫體生成框架

學習階段分析古吉拉特語文字,為每個字元設計規則,以基於筆劃的方式連線筆劃,確保生成的字形的視覺一致性。
生成階段需要使用者在紙上寫好一小部分字元(約佔8%),手寫字元樣本匯入系統進行字元分割,對每個分割的字元進行筆畫提取和標註,系統根據提取的筆劃和學習的規則自動生成剩餘的字形。
最後使用FontForge工具將生成的字形轉換為開放式字型(open-type)。

5.2. LEARNING PHASE

[論文速覽] Design and Development of a Framework For Stroke-Based Handwritten Gujarati Font Generation

圖2 用於生成目標字元的帶有類標籤的筆畫

為輸入字元和目標字符集所有必要的資訊進行標註,如大小、位置、斷開元件之間的距離、高度、寬度、連線點和端點數量。圖2展示了用到的筆畫,每個筆畫具有兩個關鍵參考點,標記為A和B,它們用於確定所需的筆畫。

[論文速覽] Design and Development of a Framework For Stroke-Based Handwritten Gujarati Font Generation

表1 用於確定規則集的特徵及其描述

特徵 型別 簡稱 描述
位置 標準 POS 字元中筆畫的位置
出現次數 標準 OCC. 字元中筆畫出現的次數
大小 標準 S 筆畫大小:相同或需要改進
連線點 標準 JP. 兩筆相交的點
兩筆間距離 可變 DS. 兩筆間的距離
筆畫呈現 可變 AP. 筆畫的呈現方式:相同或需要翻轉或旋轉

ruleset preparation 規則集用於生成相應字元的字形。在構建規則集時,我們為所有目標字元固定了一些標準特徵,同時也根據字元需求考慮了一些可變特徵。標準特徵包括筆畫的位置、筆畫的出現次數、筆畫的大小以及連線點。可變特徵則涉及筆畫間的距離和筆畫的呈現方式。詳細特徵描述見表1。

作者似乎想透過組合筆畫的方式來構建字形,這麼看古吉拉特語有點韓語的那種組裝的感覺,為此對於輸入字元和目標字元都需要一個規則集。每個規則集記錄了其中每個字形的構建規則。作者舉例 ક, ટ, ડ 這種字元它們的筆畫連線點就是筆畫的端點,很好識別;而 ય, વ, ઘ, ધ 等字元的連線點則必須透過統計分析得到,例如 ય 由兩個筆畫: 'ta-shape' (ટ) 和 'line' (ા ) 構成,連線點需要根據各個 'ય' 樣本抽取的結果來決定。

研究發現,大多數字符只需要一條規則,但對於字元 ઝ, ચ, ઠ, ઢ, સ 需要兩條規則。

5.3. GENERATION PHASE

5.3.1. selecting input character set

關鍵問題在於確定使用者要書寫的字元數量。研究中使用 ક, ખ, ગ 構成的字符集,用到6個基礎筆畫。

5.3.2. stroke extraction

[論文速覽] Design and Development of a Framework For Stroke-Based Handwritten Gujarati Font Generation

圖3 在少量字元上筆畫分割形式的結果

透過識別端點和交點,從細瘦(thinned,估計是關鍵,後面要用於形態學操作)二值化影像中提取字元筆畫。交點發生在一個畫素連線超過兩個鄰居時,據此作者用hit-or-miss操作搭配4個T-連線、7個Y-連線和7個十字連線(3x3結構模板, +, x)來找出端點。將找出的端點從影像裡去掉,得到不相連的影像。再使用連通元件方法從這些不相連的影像中提取筆畫,直到每個筆畫只有兩個端點。提取的筆畫如圖3所示,展示了筆畫提取過程的結果。

5.3.3. stroke preprocessing

[論文速覽] Design and Development of a Framework For Stroke-Based Handwritten Gujarati Font Generation

圖4 用於細化過程的12種不同方向的3x3模板

每個分割的筆畫被調整為 28x28 大小,然後進行二值化、灰度處理、腐蝕和膨脹。使用Otsu閾值法進行二值化。使用Zhang Suen演算法進行細化,生成一畫素寬的細化影像。最後,影像在每個方向上填充一畫素,得到 30x30 的影像。

但也提到Zhang Suen演算法並不能保證細化結果是一畫素的影像,為此提出了個 adaptive thinning,依然是利用3x3的模板進行處理,如圖4所示。

5.3.4. feature extraction and feature vector generation

[論文速覽] Design and Development of a Framework For Stroke-Based Handwritten Gujarati Font Generation

圖5 1)檢測端點的模板及其特徵程式碼;2)線性元素的 模板及其特徵程式碼:a)水平線,b)垂直線,c)右斜線,d)左斜線;3)曲線元素的模板及其特徵程式碼。

考慮九種特徵,包括端點、4種線性元素(垂直、水平、正斜線和負斜線 (vertical, horizontal, slant line with positive and negative slope))以及4種曲線元素(左平、左深、右平、右深 (left flat, left deep, right flat, right flat))。大概講用模板繼續匹配筆畫圖片,根據匹配結果為每個畫素分配一個獨特的特徵碼(feature code, fcode),如圖5所示。然後將特徵碼矩陣按6x6分成25塊(30x30的圖片怎麼tm能分成25塊的6x6?),每塊進行歸一化,然後分配一個數字(跟其中的特徵碼取值有關),這25個值就是筆畫特徵。

5.3.5. strokes classification

[論文速覽] Design and Development of a Framework For Stroke-Based Handwritten Gujarati Font Generation

表2 使用不同分類器的筆畫分類測試和驗證準確率

[論文速覽] Design and Development of a Framework For Stroke-Based Handwritten Gujarati Font Generation

表3 不同分類器在各類別上的平均準確率

[論文速覽] Design and Development of a Framework For Stroke-Based Handwritten Gujarati Font Generation

圖6 不同分類器上的筆畫分類準確率

作者實施了多種分類器,如決策樹(Decision Tree)、支援向量機(Support Vector Machine)、K近鄰(KNN)、梯度提升(Gradient Boost)、邏輯迴歸(LogisticRegression)、樸素貝葉斯(Naive Bayes)和隨機森林(Random Forest),來評估特徵向量的效能。

使用了一個包含600個不同樣本的資料集。每個樣本包含一個大小為26的特徵向量,包含25個特徵資料值和1個類別標籤(在分類上下文中,特徵向量資料由矩陣的前25列表示,而類別標籤由最後一列表示)。為了確保公正的評估,我們為每個類別將資料集劃分為訓練和測試樣本。

根據實驗,選擇的特徵成功捕捉了筆畫模式的獨特特徵,從而實現了準確的分類結果。作者似乎想透過這個實驗證明特徵選擇的有效性。

5.3.6. character generation

[論文速覽] Design and Development of a Framework For Stroke-Based Handwritten Gujarati Font Generation

圖7 根據使用者手寫提取的筆畫生成古吉拉特語文字

[論文速覽] Design and Development of a Framework For Stroke-Based Handwritten Gujarati Font Generation

圖8 從字元 ક, ખ, ગ 抽取的筆畫生成的古吉拉特語字元

字元生成過程首先根據給定字元選擇合適的筆畫,再根據預設規則進行放置和對齊。每個筆畫的位置由其在字元中的特定角色及其與其他筆畫的關係決定。一旦筆畫定位好,就將它們連線起來形成完整的字元。圖7展示了這一階段的筆畫連線和字元生成概念。

作者簡化了古吉拉特語字元的生成流程,使用者僅需書寫三個字元: ક, ખ, ગ ,從這三個字元中,提取六條筆畫。按照預設規則組合這些筆畫,可以生成另外23個子音,如圖8所示。生成演算法從預設的規則集中收集所需筆畫的詳細資訊,如高度、寬度、連線點、位置、大小、外觀和頻率,並透過拼接組合生成所需字元的字形。

5.3.7. font generation

[論文速覽] Design and Development of a Framework For Stroke-Based Handwritten Gujarati Font Generation

圖9 生成的使用者手寫古吉拉特字型的示例

將字元生成為影像後,下一步是將影像轉換為輪廓影像(outline image),實質上是建立計算機字型。這一轉換透過FontForge工具[56]自動化完成,它是一款開源程式,能夠以多種標準格式建立和修改字型。利用特定使用者生成的樣本,成功使用FontForge工具生成了30種不同的字型檔案,如圖9所示。

6. Experiment

6.1. Dataset

TDIL的標準手寫古吉拉特語資料集[25],規則集基於筆畫連線點、方向、大小和出現頻率等特徵設計。

6.2. Results

[論文速覽] Design and Development of a Framework For Stroke-Based Handwritten Gujarati Font Generation

圖10 HGFG系統字元級生成準確性的視覺表示

[論文速覽] Design and Development of a Framework For Stroke-Based Handwritten Gujarati Font Generation

圖11 HGFG系統生成字元的識別率

[論文速覽] Design and Development of a Framework For Stroke-Based Handwritten Gujarati Font Generation

圖12 HGFG模型評價比較:識別系統與使用者參與

手寫古吉拉特語字型生成(handwritten gujarati font generation, HGFG)框架採用了兩種不同的評估方法:主觀評估和客觀評估。

主觀評估透過使用者研究進行,參與者對合成的影像和字型的品質和視覺吸引力提供了反饋。他們的意見有助於評估生成內容的整體效能和使用者對生成內容的感知。對應圖10(大概)

客觀評估則量化了生成字型的特定方面,如筆畫精確度、曲線度和與原始手寫字元的整體相似性。大概就是用OCR方法去識別生成結果然後展示識別準確率,對應圖11(大概)

7. Conclusion

本研究旨在透過HGFG方法建立手寫古吉拉特語字型,該方法分為學習和生成兩個關鍵階段。在學習階段,分析古吉拉特語子音字元的視覺特性,並制定了基於筆畫的生成規則集,包含六個基本筆畫。生成階段包括預處理、分割、分類、字元和字型生成以及驗證。

未來研究應聚焦於最佳化和進一步發展該框架,解決字元中出現的額外噪聲、元件連線錯誤以及不平滑的尖銳曲線等問題。此外,將研究範圍擴充套件到生成完整的古吉拉特語字型,包括母音、數字、變音符號和特殊符號,將是未來研究的有價值方向。

8. Critique

非常粗糙的論文,裡面還拼命引自己之前的一篇工作,觀感很差。圖片解析度太低,表格做得一坨。內容排版也是一坨,字母數字羅馬數字混著用,雙欄卻都很窄,什麼印度NIPS。

實際效能沒有與其他方法比較,總體來看應該算是非機器學習方法吧,只用到了傳統視覺的形態學操作處理圖片,但核心的規則和所需特徵的統計好像是純手工啊?

相關文章