吳巍
(中海油能源發展裝備技術有限公司, 天津 300452)
隨著人工智能的興起,計算機視覺迎來了新的關注度[1-3]。隨著機器學習在視覺處理中的應用的不斷深入,圖像生成已經成為計算機視覺和人工智能領域的一個熱門研究課題[4-6]。如何讓計算機自主創作一副圖像。如何讓計算機創作的圖像更接近人類畫作。這些都是圖像創作中的問題。目前現有的方法是通過讓計算機學習大量的樣本,來模擬人類創作。但由于大量樣本的學習勢必會耗費更多運算時間[7]。雖然生成性對抗網絡(Generative Adversarial Networks,GAN)可以從一組樣本中學習,并生成模仿訓練樣本的新圖像[8-9],然而,需要一個大的訓練數據集來訓練穩定的GAN。此外,生成的圖像分辨率通常受到計算資源的限制。為此,本研究探討了如何通過小樣本進行圖像創作,這項工作的重點是通過學習一個非常小的數據集來創建卡通圖像。該方法的核心主要是基于VGG-16網絡以及改進的自組織映射(Self Organizing Maps,SOM)算法——兩層同時自組織映射(Simultaneous Two-Level Self Organizing Maps,S2L-SOM)算法。并且該方法無需進行人工手工標注。
提出的框架如圖1所示。

圖1 提出的框架流程示意圖
該系統以區域邊界清晰的卡通圖像為輸入。
如圖1所示,系統分析輸入圖像的區域,構造了一個區域關系樹來描述每個圖像中區域的拓撲結構。由于在此沒有對訓練圖像進行人工標注,因此系統沒有每個區域的語義信息。例如,系統不知道哪些區域對應于身體區域、頭部區域和腿部區域,因此,對所有訓練圖像進行聚類以將相似區域組合在一起。對于圖2中所示的綿羊示例,希望所有身體區域都分組到一個集群中,所有腿部區域都分組到另一個集群中。聚類的目的是根據所構建的樹來分離不同的構件,并將構件之間的關系聯系起來。該系統利用區域關系樹信息和聚類結果,在不需要人工標注信息的情況下,根據訓練圖像的結構生成新的圖像。
在本節中,將解釋如何分析輸入圖像的區域并學習要生成的卡通人物的結構。
首先利用統計區域合并(Statistical Region Merging,SRM)[10]將輸入的卡通圖像分割成不同的區域。然后,設計了一種非循環圖表示分割區域之間關系的機制。每個區域被視為區域關系樹中的一個節點,如圖2所示。

(a) 區域標記
樹是通過以下步驟自動生成的。根據分割結果,計算每個區域的鄰域個數。選擇相鄰區域數最多的區域作為根節點。從根節點開始,系統將節點的相鄰區域標記為其子節點。廣度優先搜索(Breadth First Search,BFS)用于查找每個節點的所有子節點。例如,在圖2(a)中,區域9具有最大數量的相鄰區域。因此,它被選為根。區域3、4、5、6和8是區域9的相鄰區域,因此被視為區域9子區域。在根的所有子區域中,區域8有3個鄰居,分別是區域0、1和7。最后,區域0將區域2作為其鄰居。通過這種方法,可以構造一棵樹來描述卡通圖像中各個組件的拓撲結構。構造的樹如圖2(b)所示。
系統自動將所有訓練數據集的分割區域分為不同的組。為了進行聚類,從每個區域提取特征。以ImageNet[11]為主要特征向量,從VGG-16卷積神經網絡中提取第一個全連接層。第一全連接層的維數為4 096。采用主成分分析法將維數降到32。除了VGG-16中的32維特征外,還包括來自區域關系樹的以下信息:樹中節點的深度、子節點的數量、區域的大小以及區域中心點的Y坐標。
系統沒有任何有關群集數量的先驗信息。由于不同類型的訓練圖像所需的簇數目不同,因此使用固定的預定義數目是不可行的。因此,系統需要根據輸入的數據自動確定合適的簇數,同時采用S2L-SOM算法估計聚類數。
雖然S2L-SOM算法可以產生聚類結果,但只使用它來估計聚類數。其原因是當特征向量相對復雜,數據量較小時,S2L-SOM聚類結果不夠好。根據估計的聚類數,應用K-means++得到聚類結果。然而,S2L-SOM和K-means++每次都會生成不同的聚類結果。為了利用S2L-SOM和K-menas++中的隨機性,在此引入了一種利用重復采樣的多重嘗試方案來增強聚類結果[12]。先進行了若干次試驗,然后使用Davies-Bouldin指數(DBI)[13]從試驗中選擇最佳結果,DBI是評價聚類結果的一個指標。
聚集區域是要為圖像創建選擇的候選組件。但是,分割的區域通常在輪廓上有凹陷的部分,如圖3所示。

圖3 確定輪廓上需要修補的凹陷部分

系統將首先嘗試執行對稱輪廓補全。凹陷部分的端點根據水平或垂直對稱軸進行鏡像操作。對稱輪廓完成過程旨在找到一個水平或垂直對稱部分,其端點與凹陷部分的鏡像端點大致相同,如圖4所示。

圖4 對稱輪廓填補示例
如果可以找到對稱部分,則將其水平或垂直翻轉。然后,使用翻轉段來修補凹陷部分。翻轉部分的端點將調整到凹陷部分的位置,并對該段執行插值以符合調整。如果無法應用對稱輪廓完成,則系統使用簡單的凸完成來修復輪廓,如圖5所示。

圖5 凸完成修復示例
創建新圖像如圖6所示。

圖6 創造一個新圖像
包括以下步驟。首先,從訓練圖像中隨機選擇區域關系樹作為參考拓撲。對于樹中的每個節點,系統隨機選擇與節點位于同一集群中的一個區域。根據參考拓撲將這些選定區域放在一起,重新組合新圖像,如圖6(a)所示。執行基于文獻[14]的優化以將組件協調到所創建圖像中的優化尺寸和位置。為了在生成的圖像上產生更多的變化,在區域上使用移動最小二乘進行剛性變形,選擇多尺度曲率上具有局部極值的輪廓點作為剛性變形的控制點。用隨機位移放置控制點以創建變形區域,如圖6(b)所示。
在本節中,將演示區域關系樹構建、聚類和圖像創建的結果。不同類型卡通人物構建的區域關系樹示例,如圖7所示。

圖7 區域關鍵樹的構建
系統不需要知道輸入卡通圖像類型的先驗知識。根據輸入圖像的結構自動建立拓撲結構。
以卡通羊為例,描繪了S2L-SOM迭代次數對簇估計數的影響,如圖8所示。

圖8 S2L-SOM迭代次數與簇之間關系
從圖8中可知,當迭代次數大于1 000次時,估計的集群數量為5的百分比達到40%,在隨后的多次試驗方案中,聚類結果將足夠穩定。迭代次數越大,結果變化越小,但計算復雜度越高。因此,S2L-SOM的迭代次數被選擇為1 000,如圖9所示。

(a) 原始輸入圖像
圖9(b)比較了使用不同特征和聚類方法的聚類結果。圖9(b)顯示了使用傳統等高線距離直方圖作為每個區域形狀特征的聚類結果。從這可以看到,一些區域沒有被分組到所需的集群中。并且還可以從圖9(c)中觀察到,與使用重復采樣的S2L-SOM加K-means++相比,使用S2L-SOM聚類算法會導致更多的錯誤。從圖9(d)中,可以看到從CNN和所提出的區域關系樹中提取的特征將產生更好的聚類結果。此外,通過采用多個試驗方案,利用DBI進行試驗選擇,聚類結果更加準確和穩定。
比較了由本研究提出的框架和GAN為每種卡通人物使用50個輸入圖像生成的卡通圖像,如圖10所示。

(b) GAN網絡生成的圖像結果
圖10(a)由提出的框架生成,圖10(b)由GAN生成。可以觀察到,由于訓練集較小,GAN產生的圖像不令人滿意。然而,該方法可以自動學習不同類型卡通人物的拓撲結構,并在訓練數據相同的情況下生成像樣的圖像,同時,該方法生成的圖像分辨率也大大提高,在這里的實驗中,該方法生成500×500大小的圖像,GAN生成128×128大小的圖像。
本研究提出了一種以非常小的數據集自動生成卡通圖像的有效框架,提出了一種無需人工標注的區域關系圖自動學習算法。同時,設計了一種無聚類數先驗知識的改進聚類方法。該框架具有計算時間短、數據集小、硬件資源少等優點。用戶可以收集少量的訓練數據,使用該系統生成質量和種類都不錯的新圖像。與基于生成性對抗網絡的方法相比,該框架能夠在有限的資源下生成更好的卡通圖像。