陸曉芳,徐建英,田 越
(1.蘇州市纖維檢驗院,江蘇 蘇州 215004;2.哈爾濱工程大學,黑龍江 哈爾濱 150001)
隨著社會的進步和計算機技術的不斷發展,到 2021年,以機器學習和深度學習為代表的人工智能有了長足的進步,計算機視覺(Computer Version,CV)和數據挖掘技術也蓬勃發展,使用計算機鑒別羊絨羊毛成為可能。本研究采用了貝葉斯網作為機器學習模型,使用python腳本語言,結合statsmodel、sklearn、pandas、Numpy和PyQt等PyPI庫,構建了一個用于鑒別羊絨羊毛的自動化系統。
1.1.1 顯微鏡法
羊絨價格昂貴,而羊絨與羊毛又都為角蛋白纖維,結構相似,黑心商家往往將價格低的羊毛與羊絨混合充數,以降低成本并牟取不合法的利益。所以,鑒別羊絨羊毛成為檢測機構不可缺少的工作,最常使用的是通過電子顯微鏡觀察羊絨羊毛的鱗片紋圖進行區分[1]。山羊絨由鱗片和皮質層組成,沒有髓質層,鱗片邊緣光滑,類似環狀包覆于毛干,覆蓋間距比羊毛大,鱗片較薄且緊抱于毛干,開張角較小,橫截面多為規則圓形;而羊毛的鱗片多呈環狀,每個鱗片形成一個環套,套在毛干周圍,一個鱗片的根部被另一個鱗片的梢部覆蓋,粗毛多呈瓦狀和龜裂狀,橫截面一般為橢圓形[2]。
1.1.2 計算機圖像識別法
計算機圖像識別依賴掃描電鏡設備,然后使用CV技術,通過計算機分析替代人工肉眼觀察的方式,目的是利用計算機更高效、快速的特點解決人工鑒別反復勞動的問題。從目前的水平來說,“替代”人工的程度還達不到,但是“輔助”人工決策有很大成效[3]。本研究設計構建的系統依靠鱗片的直徑、鱗片的高度、鱗片的徑高比和鱗片的密度4個參數來判斷圖像的結果。
目前,主流的識別羊絨羊毛的方法有以下幾種[4]:深度學習范疇的人工神經網絡(Artificial Neural Network,ANN)、機器學習范疇的支持向量機(Support Vector Machine,SVM)以及決策樹(Decision Tree),亦有一些學者使用了聚類算法,例如K均值(K-Means)算法[5]等。
本研究采用的是貝葉斯網模型,是一種采用有向無環圖結構(Directed Acyclic Graph,DAG)刻畫各個特征之間關系的模型。
樸素的貝葉斯網模型采用了“屬性條件獨立”的假設,即假設影響圖像判斷結果為羊絨或者羊毛的各個屬性互不影響,換言之,每個屬性獨立影響結果。貝葉斯網又稱“信念網”(belief network),不同于樸素的貝葉斯網模型,貝葉斯網結構有效地表達了屬性間的條件獨立性。給定父節點集B={G, θ},貝葉斯網假設每個屬性與其非后裔屬性相獨立,于是將屬性(x1, x2,..., xn)聯合概率密度分布定義為下式:

式中:yi是xi的后裔屬性。
用來判斷圖像識別結果的4個屬性(鱗片的直徑、鱗片的高度、鱗片的徑高比和鱗片的密度)很明顯存在這樣的關系,即鱗片的直徑、鱗片的高度是鱗片的徑高比的后裔。從這個角度來講,貝葉斯網模型適用于羊毛羊絨的圖像識別,而且也有不少前人的經驗可供參考[6]。
在檢查時發現,已有數據存在部分數據缺失的問題,所以需要進入數據清洗的步驟,接著通過歸一化處理,找到了其他一些錯誤數據。出現問題的數據主要集中在鱗片的直徑、鱗片的高度、鱗片的徑高比3個參數,使用線性回歸擬合的辦法推測出丟失的數據,而鱗片密度的數據缺失和錯誤出現較少,選擇將這部分錯誤的數據直接丟棄,最后一共還有10 131條數據。
(1)將根據電子顯微鏡觀察到的鱗片的直徑、鱗片的高度、鱗片的徑高比、鱗片的密度等數據錄入excel表格中,并由python的pandas庫讀取數據。
(2)使用train_test_split方法,將數據隨機劃分成兩份。
(3)將60%訓練集傳入貝葉斯網模型。
(4)使用訓練好的模型取預測40%的測試集,計算出正確率。
(5)使用模型預測其他數據的結果。
隨著機器學習和深度學習等技術的發展與成熟,未來人類社會會發生巨大的變化。本研究設計與實現的基于貝葉斯網的羊毛羊絨鑒別系統,使用python語言設計。技術路線使用了Numpy、skleran、statsmodels、pandas和PyQt等庫進行分析和編程,實現了預測圖片的功能,準確率達到了93%,可以輔助工作人員的鑒別工作,極大地減少工作人員的工作量;同時,使用了PyQt構建系統的UI部分,圖形界面更加促使人機友好。