□ 邢淑敏 □ 梁冬泰 □ 梁 丹 □ 魏玉鋒
寧波大學機械工程與力學學院 浙江寧波 315211
加強毛筆書法的教育,有助于提升青少年的傳統文化素養,然而具有相應教學能力教師的稀缺,是目前書法教育亟待解決的問題。工業機器人作為一種能夠進行編程且在自動控制下完成特定任務的機械裝置,能模仿人做各種動作,在近十幾年中已大量應用于生產和生活中[1],如在危險環境中實現復雜雕刻、噴涂與焊接等工作,具有廣泛的應用前景,完全有潛力應用于毛筆書法的教學。通過對書法的書寫技巧進行適當的數字化處理,便可以將傳統的書法藝術與機器人結合,利用機器人控制毛筆的空間運動來實現機器人書法臨摹。
目前,機器人寫字技術已有諸多研究。徐揚生等[2]通過記錄書寫演示過程中的節點位置,用機器人演示書寫動作,達到重復書寫過程。滿永奎等[3]采用插值算法,通過控制伺服電機的參數實現了毛筆字的書寫動作。Matsui Ayaka等[4]推出了一款書法機器人,利用機器人在直角坐標系平面內方便、迅速定位的原理成功臨摹了書法。何薇等[5]用六自由度工業機器人,通過標準接口ORiN2進行控制,并使用工業攝像頭獲取文字信息,設計了一種基于機器視覺的機器人寫字平臺。宮曉博[6]分別使用普通插補算法和結合三維坐標系旋轉變化的插補算法在給定平面和曲面上實現漢字繪制。薛環振[7]設計了機械臂夾持毛筆的方法,并提出了回筆的方法,獲得了較好的書寫效果。楊廣卿等[8]將力反饋技術引入虛擬繪制過程,提出一種基于力反饋技術的筆道仿真方法。
已有的研究都是基于現有的書法風格字體進行模仿,并且對還原書法字體的風格及準確性也達不到理想效果。
風格遷移作為深度學習領域一個新的研究方向,近年來在機器視覺應用中取得了突破性進展[9-11],可將普通的漢字遷移成具有書法風格的字體。
筆者提出一種基于風格遷移與圖像處理技術的機器人書寫方法,這一方法不僅有效規劃了機器人臨摹新風格字體的軌跡,而且提高了機器人書寫毛筆字的準確性。同時,這一技術在工業機器人拋光、打磨、焊接、噴涂及雕刻等軌跡規劃中有廣泛的應用前景。
筆者設計的機器人書法系統由七部分組成:機器人操作系統 ROS[12-14]平臺、ABB 控制器、ABB 機械臂、風格遷移模塊[15]、OpenCV 圖像處理模塊[16]、毛筆及三維打印圓柱形夾具。根據提供的源字體與目標風格,在Ubuntu操作系統環境下將源字體遷移成具有目標風格特征的書法漢字。基于C++,使用OpenCV庫對漢字圖像進行處理,獲取漢字筆畫的描述參數,并對漢字筆畫的描述參數與機器人的控制參數建立聯系。對機器人的目標軌跡進行運動學分析,通過ROS平臺編寫機械臂的控制程序進行仿真,并將參數傳輸給實體機械臂控制器。機械臂末端由夾具夾持毛筆按照參數設置進行移動,在平臺上臨摹出風格遷移后得到的新字體。與此同時,可以將實際書寫的漢字與參考圖像進行相似度對比。機器人書法系統結構如圖1所示。

▲圖1 機器人書法系統結構
創建漢字字體需要較大的工作量,要做一個兼容GBK的漢字字體,需要為超過26 000個不同的漢字設計外形,可能需要多年時間才能完成。但是,漢字都是由偏旁構成的,不同的漢字中相同的偏旁也都相似。筆者根據kaonashi-tyc[17]提出的生成式對抗網絡進行漢字風格遷移,將標準樣式字體轉換為目標風格字體。這一方法將兩種不同風格的字體作為數據源來對生成式對抗網絡進行訓練,再通過生成式對抗網絡對輸入的漢字風格進行轉換,所采用的生成式對抗網絡模型可表示為:

式中:G為生成器生成結果;D為判別器生成結果;x為真實樣本;z 為噪聲;G(z)為假樣本;D(x)為判別器對真實樣本的判斷結果;D[G(z)]為判別器對假樣本的判斷結果;E為樣本x或z服從某一分布p的數學期望值;pdata(x)為真實樣本 x 服從某一分布 p;pz(z)為噪聲z服從某一分布p。
在生成式對抗網絡中,同時訓練生成器和判別器,式(1)等號左側代表對G和D優化的結果,等號右側為判別器D對真實樣本x的預測結果和對假樣本G(z)的預測結果。生成器主要用來模仿真實樣本生成數據,判別器負責區分出真實樣本和生成器生成的數據,在訓練過程中,兩個模型的分類能力越來越強,最終達到穩態。
筆者搜集了漢字的多種書寫風格,通過向生成式對抗網絡提供一對樣本的子集來訓練該生成式對抗網絡學會兩種字體間的相互轉換,圖2所示為生成式對抗網絡在訓練5 000對漢字樣本從宋體遷移到行楷時的200次迭代部分結果。
由圖2可以看出,迭代次數較少時,生成器生成的模仿樣本與真實樣本的效果相差很大,隨著訓練次數的增加,生成的樣本越來越接近真實樣本。訓練完成后,就可以推理其它未被訓練漢字的字符外形,圖3所示為生成式對抗網絡的結構模型,其中a~e展示了利用一個已訓練完成的從粗體到楷體風格學習的模型對未訓練字體“永”字進行測試的過程,風格特征權重比依次為 0、0.25、0.5、0.75、1。

▲圖2 訓練結果
通過深度學習生成式對抗網絡的方法,可以獲得各種風格化的漢字。為了將圖像中的漢字轉換為現實中具有藝術氣息的書法,筆者通過控制機器人來實現這一過程。
為了使機器人更好地還原風格遷移得到的圖像中的新風格漢字,需要對圖像中的漢字進行特征分析與提取,主要包括軌跡特征與風格特征。文字是由筆畫組合而成的,文字的基本筆畫有“橫”“豎”“撇”“捺”“點”“折”等,如圖4所示。通過筆畫的形狀參數和相應筆畫的位置信息可以確定一個文字,基于筆畫參數的描述也能夠更多地保留漢字的細節內容,因此對漢字的特征提取可以轉換為對筆畫的特征提取。

▲圖3 生成式對抗網格結構模型

▲圖4 漢字基本筆畫
漢字筆畫的特征描述參數不是唯一的,主要包括筆畫的骨架、起始點、長度、寬度、關鍵點等。

式中:Fi為一個漢字中第i個筆畫的特征集合;N為一個漢字中總的筆畫數目;pi為第i個筆畫每個骨架點的特征集合;si、ei分別為第i個筆畫的骨架起點和終點;li為第i個筆畫的骨架長度;θi為第i個筆畫的傾斜角度;wi為第i個筆畫的平均寬度。


通常評價兩個書法字體的相似度都是憑個人感知,結果會因為感知不同而有差異。筆者提出一種對評估書法字體相似度進行量化的方法,主要包括兩方面。
(1)傾斜度。書法的筆畫不像打印字體那樣橫平豎直,為了整體的風格效果,書法中的筆畫往往會有一

式中:li′為參考圖像中漢字第i個筆畫的骨架長度;li為實際書寫漢字第i個筆畫的骨架長度。
平衡度的范圍也是0~1,實際書寫筆畫與參考筆畫平衡度越接近,平衡度指標就越接近1。
漢字筆畫一般由很多像素點組成,需要對圖像進行細化處理,得到漢字的骨架特征。筆尖沿著筆畫路徑進行移動,也即沿著骨架點坐標進行移動,用骨架點處筆畫的寬度表示筆畫的粗細。圖像處理流程如圖5所示。
由于風格遷移獲些傾斜,如“一”字,筆畫會略微向右上方傾斜。筆畫的傾斜度在書法的整體風格效果中有重要影響,傾斜度過大或過小都會影響書法的整體效果。傾斜度指標可以表示為:

式中:θi′為參考圖像中筆畫的傾斜度;θi為實際書寫字體中筆畫的傾斜度。
傾斜度指標的變化范圍為0~1,實際書寫的漢字筆畫與參考筆畫的傾斜度越接近,傾斜度指標就越接近1。

▲圖5 圖像處理流程
(2)平衡度。書法字體放大或縮小都不會影響書法的整體風格效果,但字體內部筆畫間的相對大小對書法的整體效果會有很大影響。平衡度指標可以表示為:得的圖像受到一些條件的影響,如模型大小和設備的性能等,獲得的圖像通常會存在噪聲等缺點,因此在提取筆畫骨架之前需要對圖像進行預處理。在試驗中,使用歸一化法將風格遷移后的每個字體尺寸大小改為200像素×200像素的圖像。由于風格遷移后獲得的漢字字體邊緣可能會有輕微模糊,圖像不是完全的黑白圖像,因此筆者對漢字圖像采用二值化處理和結構元素為3像素×3像素的先開后閉運算去噪處理。圖像處理效果如圖6所示。

▲圖6 圖像處理效果
骨架描述了圖像的幾何形狀與拓撲結構,漢字骨架的提取可通過細化法實現。圖像的細化可將原本臃腫的筆畫縮減為單像素連接的二值圖像。
對于無筆畫交叉的字體,如上下結構的 “二”字,采取先從上到下,再從左到右的順序提取并保存筆畫的像素坐標。如左右結構的 “川”字,采取先從左到右,再從上到下的順序提取并保存筆畫的像系坐標。
對于有筆畫交叉的字體,如圖 7所示“機”字,先對字體進行連通區域的劃分,分為“木”與 “幾”兩部分。對于“木”,遍歷1處的八鄰域像素來判斷下一點的走勢,當遇到第一個交叉點P時,分為三個路線, 分別為 P→2、P→3、P→5,提取每個路線的10個像素點并計算該路線的平均走勢,與路線1→P走勢最相似的即為下一筆畫的路線,也就是P→2。

▲圖7 “機”字筆畫順序
筆畫的關鍵點主要包括筆畫的端點與筆畫的拐點。筆畫的端點即骨架的端點,可以根據八鄰域查找法進行判斷。當某一個骨架點的八鄰域中只有一個點是黑色時,則認為該點是骨架端點,否則為非端點,兩個端點之間骨架點的個數即為該筆畫的長度。
拐點是筆畫中曲率最大的點。可以根據計算曲率法提取筆畫的拐點,即依次計算相鄰骨架點的曲率,當曲率突然變化較大時,認為該點是筆畫的拐點。
在書寫時,毛筆下壓力度的大小是書法風格的重要特征。在線書寫的字符可以通過特殊筆實時記錄筆壓的大小,離線書法字體雖然沒有筆壓記錄,但可以用筆畫的寬度特征間接表示筆壓的大小。在書寫時,對毛筆下壓力度越大,筆畫就越粗。筆畫的寬度特征是書法的重要特征,寬度的變化即筆畫粗細的變化,代表了筆刷沿Z軸的上下運動,同時也是書寫時垂直于紙面方向的提筆、頓筆等動作。細化處理后的筆畫骨架只顯示了筆畫的方向信息,對于筆畫的粗細則需要通過寬度特征來表示。計算筆畫寬度特征信息時,沿著骨架線計算每個骨架點處筆畫的寬度。以初始骨架點像素坐標為圓心,初始半徑為R畫圓,檢測圓內各像素點是否在筆畫范圍內。由于在二值圖像中筆畫像素值為0,背景像素值為255,因此只需檢測圓內是否有白色點,無白色點則R+1繼續判斷,直到圓內有白色點,則證明圓已超過筆畫范圍,結束判斷進行下一步。取R-1為當前骨架點處筆畫半徑,即當前骨架點處筆畫的寬度為2R,然后以下一骨架點為圓心重復上述步驟。圖8所示為對橫筆畫寬度信息進行提取。

▲圖8 筆畫寬度信息提取
機器人運動學分為正運動學與逆運動學,正運動學主要解決機器人運動方程的建立與末端位姿的求解問題,它將關節坐標系內的角度轉化為笛卡爾坐標系中的末端位姿矩陣。在控制機器人寫字的過程中,需要根據寫字的位置和姿態計算機器人各關節的位置與姿態,即在已知機械臂末端在笛卡爾坐標系要到達的目標位姿的情況下求出關節變量,來驅動各關節的電機,使末端位姿得到滿足,這就是反向運動學問題,也稱為求運動學逆解。
對機器人的每一個連桿建立一個坐標系,用齊次變換來描述坐標系之間的相對關系,將描述一個連桿坐標系與下一個連桿坐標系間相對關系的齊次變換矩陣稱為A矩陣。用0A1矩陣表示第一連桿坐標系相對于固定坐標系的齊次變換,依次類推。對于筆者試驗中使用的ABB 120型六連桿機器人,機械臂末端執行器相對于固定坐標系的位姿為:


式(8)中,矩陣前三列表示末端的姿態,第四列表示機械臂末端的位姿。式(7)、式(8)是運動學求正解的過程,即根據各個關節變量來求末端執行器的位姿。機器人運動學逆解為已知0T6矩陣的參數,將A矩陣分別左乘,求得各關節變量值的過程,然后根據各關節變量值對機械臂進行控制,其中m為機械臂的關節值:

位姿中兩個重要的參數為位置和四元數,分別代表末端執行器在三維空間中沿X、Y、Z軸的移動和旋轉。在機械臂關節空間位姿的描述中,常用的旋轉表示法是歐拉角,而在笛卡爾坐標系內常用四元數來表示。在ROS平臺控制機械臂的位姿時,需要將歐拉角轉換為四元數,歐拉角到四元數的轉換q為[18]:

式中:ψ、θ、φ 依次為繞 Z、Y、X 軸的旋轉角度。
漢字的外形主要由筆畫的寬度與筆畫的軌跡決定,為了控制機器人書寫出目標文字,需要控制機器人從這兩方面對目標文字進行重現。筆畫的寬度信息可由機器人的運筆深度來代替,將圖像處理中獲取的筆畫寬度信息與機器人坐標互相轉換,當筆畫寬度為時的機器人Z軸坐標為:

式中:Zmax為毛筆剛接觸紙面時機械臂的Z軸坐標;Zmin為毛筆完全接觸紙面時的Z軸坐標;W為毛筆與紙面完全接觸時的寬度。
筆者所使用的ABB機械臂中,Zmax=220 mm,Zmin=214 mm,W=13 mm。通過控制機械臂在Z軸方向上下運動來實現對毛筆字筆畫寬度的控制。
機器人書法系統操作平臺如圖9所示,試驗流程如下:①利用生成式對抗網絡對源字體進行風格遷移,產生新風格字體;②對生成的新字體進行圖像處理,得到筆畫的描述參數,即筆畫的骨架坐標與寬度信息等;③將筆畫的描述參數轉換為機器人的控制參數,骨架坐標轉換為ABB機械臂的XOY平面軌跡坐標,寬度信息轉換為機器人的運筆深度,即機械臂末端的Z軸坐標;④ 通過C++編寫程序,在ROS平臺中發送指令,控制實體機器人沿著筆畫軌跡運動,同時包括筆畫的提筆與頓筆。
以往機器人書寫毛筆字大多數都在二維平面內進行,丟失了筆畫的寬度等信息,缺少了書法的藝術風格。加入筆畫寬度等信息之后,機器人書寫的毛筆字具有了書法的風格美。為了全面評估不同結構漢字的書寫效果,對左右結構、上下結構、半包圍結構和全包圍結構的典型字體進行書寫試驗,試驗結果見表1。可見,利用筆者提出的方法書寫漢字,顯示出較好的風格遷移效果。

▲圖9 機器人書法系統操作平臺

表1 書寫效果
為了對筆者方法的臨摹效果進行定量分析,采用包含傾斜度與平衡度兩個指標的評價方法進行相似度評估。由于“永”字是書法的代表性字體,因此選用“永”字。利用筆者提出的漢字相似度評估的方法,將實際書寫效果與參考圖像進行對比,結果見表2。可見,傾斜度和平衡度兩個指標基本都達到了0.9,筆者所述方法對漢字臨摹效果較佳。
由實際書寫效果和傾斜度與平衡度的評估結果可知,筆者提出的將書法風格特征與機器人運筆深度相結合的方法對于風格遷移而言效果良好。
生成式對抗網絡作為典型的深度學習模型,在圖像識別中的應用中已取得了突破性進展。筆者基于生成式對抗網絡與圖像處理技術,提出一種將漢字特征參數與機器人控制參數相結合的機器人臨摹書法的方法。為了實現以上目的,首先將源字體進行風格遷移,生成新風格字體;然后提出一系列漢字特征描述參數,以及將漢字相似度評估量化的方法,將漢字特征描述參數轉換為機器人控制參數;在對機器人進行運動學分析的基礎上,利用ROS平臺實現機器人繪制書法的功能,將實際書寫的字體與源字體進行傾斜度與平衡度兩方面的相似度對比評估;最后用試驗驗證了這一方法的準確性與可行性。這一方法能較好地還原字體形狀與書寫風格,而且書法機器人還適用于其它復雜環境的應用,如在危險環境中可較好地實現雕刻、噴涂及焊接等工作。另外,在醫療方面也可控制機械臂在較小的空間中進行精確定位及運動,具有較為廣泛的應用前景。

表2 “永”字相似度評估