郭 海,趙晶瑩,2,劉向東,魏曉丹
(1. 大連民族大學 計算機科學與工程學院,遼寧 大連 116600;2. 大連理工大學 電子信息與電氣工程學部,遼寧 大連 116024)
模式識別實驗課程要求學生掌握模式識別的基本理論與方法,并通過程序語言實現預處理、特征提取、分類器的實現等功能[1]。近年來,Python已在機器學習、數據挖掘、模式識別領域廣泛應用,并取得良好效果[2-4]。
近來,國內外專家學者對模式識別課程不斷進行探索及優化。張懿璞等[5]研究人工智能背景下的模式識別課程教學改革與實踐,利用教學分層和實例教學方法對智慧交通和人工智能控制的模式識別進行課程改革。付榮榮等[6]研究工程教育背景下模式識別課程的教學改革問題,從模式識別課程的教材現狀、教學組織方式及教學持續改進等方面進行深入的研究。侯志強等[7]從創新模式角度進行研究,取得良好效果。楊勃等[8]分析Matlab的優勢并將其應用到模式識別課程教學中,針對遇到的問題提出解決方法。蔣俊鋒[9]針對模式識別課程涉及較多數學理論的困難,提出一種淡化理論而使課程教學與實驗教學交替進行的教學方式。楊志紅[10]開發出一個模式識別虛擬教學平臺,旨在提高教師教學效率。高貴等[11]借鑒國外大學模式識別課程經驗并結合國內研究生教學現狀,從教學內容和教學模式兩方面對模式識別課程進行改革。蔡宣平等[12]從教學理念、教學內容、實踐環節和網絡課程資源共享等4個方面進行改革嘗試。
上述研究對于教學效果的提升有很好的促進作用,但更多側重于課程內容、教學方法及課程資源建設等,對實驗環節的研究較少。我校作為民族高校,將少數民族文字識別引入模式識別課程實驗教學,開發了基于Python的模式識別綜合設計性實驗,并將教師的科研成果融入其中,有利于增強學生對模式識別理論的理解,鍛煉學生的動手能力,激發學生從事少數民族信息處理的熱情。
現有的模式識別課程實驗開發工具主要采用Matlab、C、C++等[14-15]。Matlab語言雖然簡潔、強效,但是其分類器、圖像處理工具包等為非開源,不利于學生深入學習。C和C++功能強大,但是其代碼編寫難度大,開發時間較長,在模式識別方面的開源項目遠遠少于Python。多年的教學實踐發現,很多模式識別課程實驗缺少趣味性,實驗內容與學生生活聯系不緊密,難以引起學生興趣。結合民族類高校少數民族學生多的特點,將少數民族文字識別引入模式識別實踐教學,大大提高了學生對實驗的關注度和興趣。以下以納西圖形文的文字識別為例進行介紹。
2.1.1 預處理
文字識別的預處理主要包括版面分析、文檔切分、灰度變換、二值化、輪廓提取、平滑、細化等。對于灰度變換、二值化、輪廓提取、平滑、細化等基本圖像處理可以調用Python的scikit-image包。納西圖形文的行切分采用投影法,單字切分采用投影回溯法。圖1為納西圖形文的切分效果[16]。

圖1 納西圖形文切分效果圖
2.1.2 特征提取
特征提取是模式識別的主要內容,這里主要采用網絡特征法、穿透數法、方向線素法等。
網絡特征法是假設二值圖像大小為N×N,在圖像里打M×M個網格,如2所示。取每個網格里黑色點的個數,形成一個 M×M的特征向量。穿透數特征法與此類似。
方向線素特征法是網格特征法的升級。先對圖像進行網格處理,再用滑動窗口對每個網格進行平滑移動,求出各滑動窗口內黑色像素個數,從而形成特征值,如圖3所示[17]。

圖2 納西圖形文粗網格特征法

圖3 納西圖形文方向線素特征法
特征提取還可使用 scikit-image包內置的特征提取工具,但是否適合于納西圖形文有待實驗者自行驗證。
2.1.3 分類器設計
模式識別分類器種類很多,概括起來包括距離分類器、神經元網絡及類神經元網絡、決策樹、集成學習、深度學習等,詳見表1所示。

表1 常見分類器
深度學習在大訓練樣本下的分類精度優于其他模型,但在訓練樣本不足情況下,反而不如其他模型。在實驗過程中,學生可根據實際情況自行確定分類方法。
納西圖形文字符識別是對模式識別實驗教學內容的創新[18],具體要求如下。
2.2.1 預處理
符合臨近水源,遺址點分布較為密集且出土實物文本較多較全,代表性較強,可以作為昂昂溪文化突出代表的是五福及滕家崗等處遺址。
教師提供納西圖形文樣本圖片,學生利用Python的scikit-image包編寫程序完成對圖像二值化、降噪版面分析、字符切分、輪廓提取,將切分好的圖像歸一化到64×64大小,并對每幅圖像給予相應的類標簽。納西文共有2120個字符,學生可以根據情況選擇部分字符來構建樣本,但一般不能少于100類,每類不能少于80張圖片。
2.2.2 特征提取
利用Python編寫程序,實現用網格特征法、穿透數特征法或方向線素特征法對特征的提取,有余力的學生還可采用小波紋理特征法、卷積特征法、彈性網格特征法等方法。將完成特征提取的圖片按照指定格式進行存儲。對于方向線素特征法、卷積特征法、彈性網格特征法這些維度較高的特征法,還可采用PCA、LDA或流形等來降低維度,以便加快分類器的訓練速度并提升分類精度。
2.2.3 分類器設計
實驗指導書中提供了最簡單的距離分類器的方法樣例,學生可根據實際情況利用表1設計自己的分類器。分類器可采用Python的scikit-learn、mlxtend包,或利用Python調用Caffe、TensorFlow、Keras等框架來編寫程序。
一般說來不建議學生選用Stacking方法和深度學習方法,因為其模型訓練時間過長,無法在課上完成,建議有余力的學生課后利用學校開放的多路 CPU服務器和K80計算卡來實現。
實驗硬件平臺采用HP Intel Xeon E3-1285 v4工作站,內存 8 G。預處理、特征提取、訓練和分類采用Anaconda Python2.7集成環境,在實驗的機器中已經安裝Caffe、TensorFlow、Keras等框架,可用Python調用。
字符的切分準確率是決定納西圖形文識別的一個主要影響因素。對于相同字體大小的切分精度很高,但是不符合實際情況。為了更真實地接近實際應用,本實驗采用不同字體大小的文檔進行切分實驗。表 2是納西圖形文字符切分情況,不同的預處理方法會導致切分的精度略有不同。

表2 納西圖形文切分情況
完成切分后,需要對納西圖形文單字進行分類識別。為了比較不同特征對于識別精度的影響,構建了210000個樣本的單字圖像,共2100類,采用歐式距離的識別精度如表3所示。在具體實驗中,學生需設計并實現性能更好的分類器來完成該實驗,同時可根據實際情況縮減樣本集大小,但納西圖形文單字識別的準確率應高于表3。

表3 歐式距離的識別精度
后續的實驗研究表明,當使用 LDA和流形對特征降維后,方向線素特征法識別精度好于其他兩種特征識別法。隨著機器學習技術的發展,深度學習分類器在納西圖形文的識別上表現更好,如采用VGG-16、膠囊網絡、深度支持向量機等,其識別準確率可達99.9999%以上。
除了對識別精度進行分析,還需對單字識別模型的混淆矩陣、召回率、宏平均等進行分析,以便更好地評價分類方法。因篇幅所限,在此不予詳述。
綜上所述,本文通過納西圖形文字符識別的綜合性設計實驗,將模式識別中的知識點融入其中,旨在激發學生的學習熱情,使其更深入地理解模式識別理論及應用。
本文基于Python語言,結合民族高校特點,以納西圖形文識別為例,提出了一個模式識別綜合性設計實驗項目,將教師的科研成果融入實驗教學中去。通過該綜合性設計實驗,培養了學生分析問題、解決問題及綜合應用知識的能力,教學效果良好。該實驗的設置還激發了少數民族學生投入民族文字信息處理工作的熱情,促進了對保護和傳承民族文化的信息人才的培養。