李 碩,崔 嵐,付 沛
(中國刑事警察學院 刑事科學技術學院,遼寧 沈陽 110035)
數字化的進步和科技的發展促進了噴墨打印機的使用。在文件檢驗領域,噴墨打印文件的鑒定已成為重點內容。目前,噴墨打印文件的鑒定方法已經十分成熟,如薄層色譜法(TLC)[1]和氣相色譜-質譜聯用(GC-MS)[2]等理化檢驗法,以及利用傅里葉紅外光譜[3]和拉曼光譜[4]等儀器進行檢驗的方法。這些方法各有優勢,但理化檢驗具有破壞性,且局限性較大;傅里葉紅外光譜和拉曼光譜雖可實現無損檢驗,但無法實現更精細的墨水型號區分[4]??紤]到法庭科學對物證完整性的要求,理想的檢測方法應具有非破壞性、穩定性以及準確性的特點。
高光譜成像技術(HSI)是一種生成光譜變化空間圖的技術,數據以三維數據立方體的形式表示,包含大量的光譜信息。高光譜成像技術最初用于衛星成像[5],后來廣泛應用于其他領域,如食品質量[6]、醫學成像[7]和材料科學[8]等。目前,高光譜成像技術在刑事科學技術領域中的使用頻率也越來越高。如在痕跡物證檢驗相關研究中,Glomb等[9]使用高光譜成像技術實現了紡織物上潛在槍彈殘留物的自動標識。El-Sharkawy 等[10]使用高光譜相機對三硝基甲苯(TNT)、環三亞甲基三硝胺(RDX)和環四亞甲基四硝胺(HMX)等常見爆炸物進行了遠程識別。在文件物證檢驗相關研究中,王書越等結合高光譜成像技術和深度學習,分別提出了一種快速無損識別黑色簽字筆墨水種類[11]和印臺油墨類型[12]的新方法。劉猛等[13]采用高光譜成像技術實現了激光打印墨粉的種類鑒別。上述研究成果表明,高光譜成像技術在物證種類鑒定方面具有優勢。
不同品牌、型號的噴墨打印墨水的化學成分不同,進而對光源的吸收度不同。本文基于高光譜成像技術對噴墨打印墨水進行種類鑒別。選擇占噴墨打印機市場95%以上份額的3 種品牌(惠普、佳能、愛普生)的噴墨打印機,采用均勻流形逼近與投影技術(UMAP)和T 分布隨機近鄰嵌入技術(t-SNE)兩種降維算法處理采集到的高光譜墨水數據,然后分別使用極致梯度提升(XGBoost)、輕量級梯度提升機器學習(LightGBM)和支持向量機(SVM)3 種算法構建分類模型,通過準確率和精確率評估模型性能,篩選最佳算法組合,實現了對噴墨打印墨水的精確分類。
采用加拿大蒙特利爾Photon etc. 公司生產的GRAND-EOS 高光譜儀器提取高光譜圖像。其由CCD相機、過濾器、濾光輪、環形鹵素燈光源和載物臺組成,可采集的光譜波長范圍為400~1000 nm,光譜分辨率為1 nm。
選擇市面常見的3種品牌(惠普、佳能、愛普生)不同型號的14臺噴墨打印機共計56種原裝墨水進行實驗,打印機型號和原裝墨水型號見表1,并將打印機按1~14依次編號。統一使用亞太森博品牌A4型號75 g復印紙作為承印紙張,采集每臺打印機PGBK/BK、C、M、Y四種純色料的樣品,打印模式選擇打印測試頁;每臺打印機打印5份樣品,共計280份樣品。

表1 噴墨打印機型號和原裝墨水型號Table 1 Inkjet printer models and original ink models
圖像采集時保證室內處于黑暗環境,防止外界光線對實驗的影響。首先,調整載物臺高度,使物鏡下的樣品呈現面積為20 mm×20 mm。然后將樣品置于載物臺上,在樣品下方放置產商提供的黑白方格紙,用于后續的配準矯正。調整相機曝光時間至0.5 s,光譜波長范圍為400~1000 nm,間隔為5 nm,執行采集任務。
采集圖像時,儀器噪聲、暗電流和背景等因素會對圖像產生干擾。為了更好地進行數據分析和解釋,確保數據的可比性和一致性,通過系統提供的控制和分析軟件PHySpec 對高光譜圖像依次進行去暗噪、配準校正、波長矯正和強度歸一化處理。
處理后的圖像包含了樣品的空間和光譜信息,每個高光譜圖像代表一個波長的強度圖,可以查看與像素相關的反射光譜。提取樣品中感興趣區域(ROI)的光譜信息,在每種樣品色料飽滿的區域提取6個ROI點位,每種顏色各420條數據,共1680條高光譜數據。
1.4.1 降維算法原理高光譜數據包含了大量的光譜信息,每個數據點都是一個高維向量。降維算法能夠有效去除數據中的冗余信息、改善可視化、提高分類模型性能[14]。Devassy等[15]分別使用主成分分析(PCA)和t-SNE對高光譜數據進行降維處理,結果表明t-SNE更適用于高光譜中性筆油墨數據的降維。Myasnikov[16]從分類質量的角度比較了UMAP 和PCA、等高線圖、局部線性嵌入等降維方法的效果,結果顯示UMAP 降維的效果最好。綜上,非線性降維算法更適合高光譜數據的降維處理。本研究選擇t-SNE 和UMAP 兩種非線性降維算法對高光譜噴墨打印墨水數據進行降維處理,并選用散點圖實現降維效果的可視化。
(1)t-SNE 是Maaten和Hinton 于2008年提出的算法[17],其主要原理是通過保留數據點之間的相似性關系尤其是在高維空間中較遠的數據點之間的相對距離,將數據點映射到低維空間。首先,需要計算高維數據中每對數據點i和j之間的相似度(通常使用高斯分布的條件概率來度量),計算公式如式(1)所示。
式中,xi和xj分別為數據點i和j的高維表示,σi是根據數據點i到其最近鄰的距離自適應確定的高斯分布方差。
其次,計算低維空間中每對數據點i和j之間的相似度q(i,j),公式如式(2)所示。
式中,yi和yj分別為數據點i和j在低維空間中的表示,yk表示低維空間中的另一個數據點,用于計算與yi和yj之間的相似性。
最后,使用梯度下降等優化方法,最小化兩個相似度分布之間的差異,通過最小化損失函數來實現,函數見式(3)。
(2)UMAP 是McInnes 等于2018年提出的算法[18],其基于拓撲數據分析和流形學習的思想,主要目標是保留數據之間的拓撲結構和流形特性。首先通過計算每對數據點之間的局部相似性度量來構建一個高維空間的鄰接圖,再使用優化技術將高維空間中的數據映射到低維空間。這個相似性度量通常使用高斯核距離或T分布相似性來度量,公式見式(4)和式(5)。對于數據點i和j,相似性度量表示為s(i,j)。
式中,xi和xj分別為數據點i和j的高維表示,k為高斯核帶寬,α為T分布參數。
通過KL散度來實現低維嵌入中點對之間T分布相似性和高維空間中相似性之間差異的最小化,計算公式見式(6)。
式中,p(i,j)為高維空間中的相似性度量,q(i,j)為低維嵌入中的T分布相似性。
1.4.2 分類模型構建為比較不同模型在樣品數據分類精度方面的差異,選擇XGBoost、LightGBM和SVM3種算法構建分類模型。
(1)XGBoost 由Chen 和Guestrin 在2016年首次提出[19],是一種基于梯度提升決策樹的機器學習算法。其基本原理是通過將多個決策樹組合成一個強大的模型,從而提高預測準確性。決策樹是一種用于分類和回歸的樹狀結構,其中每個葉子節點代表一個類別或一個預測值。XGBoost 通過迭代訓練多個決策樹來提高預測準確性。在每次迭代中,算法會訓練一個新的決策樹,以糾正前一輪迭代中產生的誤差。這種迭代過程會一直持續,直到算法達到預定的停止條件。在該過程中,XGBoost通過引入一些特殊的技術來提高梯度,提升決策樹的效率和準確性。例如使用梯度優化算法來最小化損失函數,以確保每個新的決策樹都會貢獻最大化的預測準確性。
(2)LightGBM 是微軟亞洲研究院(MSRA)于2017年提出的提升框架[20],也是一種基于決策樹的梯度提升集成方法。LightGBM 使用基于直方圖的方法,其中使用分布直方圖將數據劃分到圖格中,使用圖格(而不是每個數據點)進行迭代、計算增益和拆分數據,使用基于梯度的一側采樣(GOSS) 對LightGBM中的數據集進行采樣,是一種快速、分布式、高性能的基于決策樹算法的梯度提升框架。
(3)SVM 是Cortes和Vapnik 在1995年提出的分類算法[21],是一種二分類模型。其基本原理是求解能夠正確劃分訓練數據集并且幾何間隔最大的分離超平面,即通過尋找一個能夠將兩類樣本分開的超平面,使得該超平面到兩類樣本的最近點的距離最大化,從而實現分類。在實際應用中,SVM 也可以使用核函數將數據映射到高維空間中,使數據在高維空間中線性可分。其常用的核函數有線性核、多項式核和高斯核等。
使用準確率(Acc)和精確率(Pre)評價上述模型,計算公式如式(7)和式(8)所示。
式中,TP為真正例;FP為假正例;TN為真負例;FN為假負例。
實驗使用Anaconda 虛擬環境的python3.11 解釋器,配置XGBoost、LightGBM、sklearn. SVM、sklearn. model_selection、sklearn. manifold和sklearn. metrics 等Python模塊來進行編碼和數據分析,相關分析均在一臺配置為Intel 8th core i7 CPU、16 GB 內存、NVDIA GEFORCE GTX1050ti顯卡、1T 硬盤的電腦上完成。實驗流程圖如圖1所示。

圖1 實驗流程圖Fig.1 Experimental flowchart
所有噴墨打印墨水樣品的原始譜圖如圖2 所示。譜圖縱坐標代表吸光度,呈負值顯示是由圖像降噪時強度歸一化所導致。歸一化的作用在于使高光譜圖像中不同波長或頻率的信號強度具有相對一致的尺度,以使不同區域或不同時期的光譜圖像更容易進行比較和分析。從圖2A 中可以看出黑色墨水的譜圖走勢基本一致:在400~590 nm波段內呈勻速下降的趨勢,590~600 nm 波段內的吸光度急劇下降,660 nm 波段處曲線開始上升;600~680 nm 波段處出現低反射區,并在640 nm波段附近形成一個波谷。從圖2B 中可以看出:青色墨水的曲線在400~590 nm波段內有一部分呈下降趨勢,而另一部分保持平緩,然后在580~600 nm 波段處急劇下降,并在640 nm 波段處開始上升;其在600~680 nm波段處出現低反射區,并在640 nm 波段附近形成一個波谷。從圖2C 可以看出,品紅色墨水的曲線在400~560 nm 波段分3 部分并均呈下降趨勢,隨后在560~630 nm波段上升,之后逐漸匯聚在一起。其中兩種樣品在590~600 nm處的吸光度呈急劇下降趨勢,然后繼續上升。從圖2D 可以看出,黃色墨水在400~520 nm 波段處開始下降,部分緩慢下降,部分迅速下降;在520 nm波段左右形成波谷后,曲線呈上升趨勢。

圖2 黑色(A)、青色(B)、品紅色(C)和黃色(D)樣品的原始譜圖Fig.2 Original spectra of black(A),cyan(B),magenta(C) and yellow(D) samples
從原始譜圖曲線走勢來看,有兩類黑色墨水的成分差異較大,青色墨水中3 類樣品的成分差異較大,而品紅色和黃色墨水的譜圖較為混亂。由于通過高光譜原始譜圖對噴墨打印墨水種類進行區分的效果不理想,本文借助機器學習對上述高光譜噴墨打印墨水數據進行種類分析。
2.2.1 t-SNE 降維方法由t-SNE 原理可知,影響降維結果的主要參數包括投影維度、困惑度和學習率等。使用網格搜索(GridSearch)尋找最佳超參數配置,并以KL散度作為評估指標。KL值越小表示t-SNE 降維后的數據與原始數據之間的差異越小。最佳參數配置見表2,t-SNE 的降維可視化效果如圖3所示。從散點圖來看,t-SNE算法具有很好的可視化效果。

圖3 t-SNE對黑色(A)、青色(B)、品紅色(C)和黃色(D)樣品數據降維后的散點圖Fig.3 Scatter plots of t-SNE for black(A),cyan(B),magenta(C),and yellow(D) sample data class 1-14 were the sample numbers

表2 不同方法的最優參數Table 2 Optimal parameters of different methods
2.2.2 UMAP 降維方法影響UMAP 降維結果的主要參數包括維度數量、近鄰數量和距離度量等。尋找最佳參數組合的方法與t-SNE 相同,最佳參數配置見表2。UMAP 降維的可視化效果如圖4 所示。從散點圖可見,UMAP算法的可視化效果較好。

圖4 UMAP對黑色(A)、青色(B)、品紅色(C)和黃色(D)樣品數據降維后的散點圖Fig.4 Scatter plots of UMAP for black(A),cyan(B),magenta(C),and yellow(D) sample data class 1-14 were the same as those in Fig.3
使用XGBoost、LightGBM 和SVM 模型分別對原始高光譜數據、t-SNE 降維后數據和UMAP 降維后的數據進行分類,以1∶4 的比例確定測試集和訓練集。為達到最佳分類效果,利用網格搜索來調試3種模型的參數,嘗試不同的參數組合,并使用5折交叉驗證評估每個組合的性能。3種模型對樣品的分類精度結果見表3。最佳參數配置見表2。

表3 XGBoost、LightGBM和SVM模型對樣品分類的精度Table 3 Accuracy of XGBoost,LightGBM,and SVM models for sample classification
2.3.1 XGBoost 模型由XGBoost 模型對噴墨打印墨水樣品的分類精度結果可知,XGBoost 對原始數據進行分類的效果最差,青色墨水的精度值為81.38%,品紅色和黃色墨水的精度值分別為88.31%和84.11%,而黑色墨水的精度值最低,為60.59%;對t-SNE 和UMAP 降維后,分類的精度明顯升高,青色、品紅色和黃色墨水的精度值均在96%以上,而黑色墨水的精度值偏低,僅為88%左右。
2.3.2 LightGBM 模型由LightGBM 模型對噴墨打印墨水樣品的分類精度結果可知,其對原始數據分類的精度最低,黑色墨水的精度值為61.11%,青色墨水的精度值為81.98%,品紅色和黃色墨水的精度值分別為89.35%和86.70%;對經t-SNE 降維的數據的分類效果較好,青色和品紅色墨水的精度值分別為98.95%和99.30%,黃色墨水精度值為96.21%,而黑色墨水的精度值僅有88.36%;對經UMAP 降維的數據分類的效果最好,其中青色、品紅色和黃色墨水的精度值均為100.00%,但黑色墨水的精度值為89.04%,效果較差。
2.3.3 SVM 模型由SVM 模型對噴墨打印墨水樣品的分類精度結果可知,其對原始數據分類的效果最差,青色、品紅色和黃色墨水的精度值均在90%左右,黑色墨水的精度值為62.35%;對t-SNE 降維后的數據的分類效果較好,其中黑色墨水的精度值為88.18%,青色和黃色墨水相近,精度值分別為97.04%和96.38%,品紅色墨水的精度值為99.30%;對UMAP 降維后的數據的分類效果最好,其中青色、品紅色和黃色墨水的精度值均為100.00%,黑色墨水的精度值為88.18%。
2.3.4 分類結果討論綜上所述,UMAP 降維算法結合SVM 分類模型對高光譜墨水數據的分類效果最好,能夠有效區分不同品牌、型號的噴墨打印墨水。究其原因,首先,在降維算法上,t-SNE 在一些情況下可能陷入局部最優,但UMAP 通常在大規模數據和全局結構的保持方面更出色;其次,在分類模型中,XGBoost和LightGBM側重于構建集成的決策樹模型,通過多個弱學習器的組合來提高整體性能,而SVM在高維空間中能夠更好地處理復雜的決策邊界,UMAP的降維過程則有助于提取數據中的關鍵特征,為SVM提供更有價值的信息量的輸入,有助于提高SVM在高光譜墨水數據上的分類性能。
為了探究黑色墨水分類精度偏低的原因,列出了3種模型對經UMAP和t-SNE降維后的黑色墨水數據進行分類的混淆矩陣圖,如圖5 所示。由圖5 可知,對UMAP 降維后的數據進行分類時,XGBoost 模型和LightGBM 模型將9 號墨水的5 個樣品錯分到10 號,將10 號墨水的9 個樣品錯分到9 號;SVM 模型將10 號墨水的所有樣品全部錯分到9 號。對t-SNE 降維后的數據進行分類時,XGBoost 模型和LightGBM 模型把9號墨水的4個樣品錯分到10號,把10號墨水的10個樣品錯分到9號;SVM模型把10號墨水的所有樣品全部錯分到9 號。由此可見9 號和10 號黑色墨水樣品錯分情況嚴重,10 號樣品常常被錯分為9 號,導致分類精度較低。說明9 號和10 號樣品的成分相近,難以區分,而其余型號的黑色墨水的分類準確率較高。

圖5 XGBoost(A)、LightGBM(B)和SVM(C)對黑色墨水數據分類的混淆矩陣圖Fig.5 Confusion matrix plot of XGBoost(A),LightGBM(B),and SVM(C) for black ink data classification
本文以不同品牌、型號的噴墨打印墨水為研究對象,使用高光譜成像技術提取墨水的光譜數據,將數據非線性降維后構建模型,比較分類效果。結果顯示:UMAP 算法結合SVM 模型對高光譜噴墨打印墨水數據的分類效果最好。除黑色樣品因有兩種成分相近導致分類精度在90%左右外,其余顏色樣品的分類精度均達到100%,能夠實現對噴墨打印墨水的精確區分。該研究為噴墨打印文件的檢驗鑒定提供了一種無損、準確的方法。