丁一 無錫城市職業技術學院
隨著改革開放的深入和社會的發展,高等教育得到的迅速的擴張,以往的教學體系往往已經不能適應社會進步和發展,基于過程的考核方式通過對具體操作流程進行量化考核,通過實踐應用中總結的項目具體化,將考核的量化等級具體到課程的各個實踐環節中,從而改變了以往一張卷決定成績的方式。從而探索出以分布式的實踐考核方式,從而達到激發學生積極性的目的,與傳統的考核方式相比具有很強的實踐意義。但在具體實踐教學中往往會出現教師人工工作量過大的情況,在計算機、互聯網、特別是人工智能技術發展的今天,手工批改方式已經有被新的技術取代的趨勢,建立過程性考核系統就勢在必行。這些系統雖然可以達到完成度考核的目的,但缺乏對于真實性的篡改檢測特別是圖像的篡改檢測。本文提出了將PHash 算法應用于基于過程性課程考核系統中,并通過人工智能的圖像算法對于圖片客觀相似性對比進行量化,從而可以大大減輕教師負擔。
PHash 算法最早其實來自數字的水印,這個算法從傳統的哈希算法以及圖像對比等領域的概念中總結了一些理論,并且通過基于圖像感知信息的簡短摘要進行匹配,通過這個匹配來獲得圖像的相似度。按照目前的說法,這個算法大致分為量化壓縮以及特征提取兩個階段。首先,特征提取階段是將特征從圖像中提取出來,在不改變圖像的感知內容的基礎上,提取出來的特征量要過濾符合在圖片上做的惡意篡改。這就要求算法可以在圖像經過惡意篡改之后,仍然可以提取出來這樣的特征。而量化壓縮是為了算法的有效性,將提取出來的特征以二進制的向量的形式進行壓縮成哈希值。
張慧等在基于人類視覺系統的圖像感知哈希算法中,將PHash算法和其他算法進行比較,結果中PHash 算法明顯在在魯棒性和區分性效果更好而且更符合人類的主觀感受。
馬偉鵬等在基于SIFT 和感知哈希的圖像復制粘貼篡改檢測方法中,提出提出基于圖像特征子的圖像復制粘貼篡改檢測方法,利用PHash 降維,從而實現篡改檢測的算法,但該算法僅從復制粘貼角度考慮,未考慮圖像的篡改中冗余性。宋博在快速特征提取與感知哈希結合的圖像配準算法一文中利用感知哈希算法對匹配的特征進行清洗,并在增加約束條件的基礎上提高了精準度。
本文提出了一個基于PHash 的過程性課程考核系統中圖像的客觀相似性對比算法,該算法實現了學生電子版作業、實驗實訓報告的完成程度和真實性考核中的圖像相似度對比以及篡改檢測,圖像轉化成浮點型的灰度值,在獲取到灰度值的DCT 集合基礎上得到均值并計算哈希值,通過遍歷DCT 整個集合對比進行對比獲得8*8這樣的矩陣以獲取圖片的指紋信息,通過對比兩張圖片的指紋并且得到漢明距離,從而確定圖片的相似程度。通過對基于目標原圖和其他更改縱橫比、增加水印以及其他差異較大的結果圖的對比,實現了對圖片之間相似度的量化,從而達到用人工智能的方法量化識別圖片相似度的目的。
圖像的相似度檢測算法中,數學上最關鍵的梯度,梯度也就是物體的邊緣,算法最本質的也就是這里,計算梯度需要利用灰度圖像,也就是需要圖像的強度這個變量。而顏色等信息,容易受到光照等條件的影響,所以通過計算灰度有利于提高計算速度,重要的是有利于過濾噪音并提供關鍵信息。
常用的圖像相似性檢測算法中,比較有名的就是SIFT。SIFT 即尺度不變特征變換算法,這個算法本質上是在相異的尺度空間上查找特征關鍵點,而且需要得到特征點的向量,SIFT 查找一些特殊的而且是并不會因為光照和其他變化以及噪音等因素變化的特征點,如角上以及邊緣上的出現的特征點還有就是比較陰暗的區域的明亮點以及相反情況的點等等。SIFT 對圖片的局部特征對比很占優勢,它相對于其他算法來說在大小變化、角度變化以及灰度等變化都不受影響,對于視點、甚至噪點等變化也會取得不錯的結果。這個算法不足的地方也有,有時獲取到的特征點相對來說稍有不足以及對邊緣平整的參照物無法準確提取到特征點,并且對象的平行變動等容易受到光照、雜物、噪聲、目標遮擋等影響。
HOG 算法將圖片中的一部分區間的梯度進行計算統計,特征值由梯度方向直方圖進行表達。HOG 結合SVM 已經在人臉檢測中得到了很廣泛的應用。該算法對于畫像處理中幾何特征以及光學特征方面保持了不變性并且由于它的操作是在圖像的局部矩陣單元上完成,所以它不變性對幾何特征和光學的特征形變都能保持很好。在三維空間角度的識別上,圖片的光照上微小的變化也不會有太大的影響,HOG 算法適用于視頻或者圖片的人臉檢測。HOG 的特點是準確率可能不如前者高,但人臉識別這個領域的效果可能會更好。
ORB 算法的檢測速度快,適用于實時性的特征方面的檢測。該算法最大的特點是快速角度的特征檢測,基于這一方法的特征具有任何維度的幾何形變上的穩定性,同時在噪點的處理方面也有比較好的優勢。計算速度非常快即該算法的最大優點,快速檢測它的特征點的應用很好的保證了這一點。它的核心思想就是找出和其他點不一樣的“不平凡”的點,也就是說我們可以用哪個一個點跟它周邊的點比,如果該點與周圍大部分的點在特征上都具有很大的不同即可以認為該點就是要候選的所謂特征點。在不同的旋轉角度下的圖片相似性對比的應用也十分的廣泛。
任何一個出色的算法都有它的應用范圍,在目前過程性課程考核系統中,大多數學生的報告或者作業截圖都是以計算機界面為主,界面有很大的相似性,特別是計算機及相關專業中,圖片和具體特征點的相似度更高。比如編程代碼中相同的變量,或者網絡專業中相同的命令。所以基于這一點考慮的話,至少單純用SIFT 或者ORB 算法都不適用于目前的系統,當然HOG 等算法也不合適。
PHash 算法通過一個有可比較的哈希函數,圖像獲取特征主要來自獨特的指紋,通過比較這些指紋獲得圖片的相似度,其中,獨特的指紋的獲取方式與上文中特征點的獲取方式類似,特征點都是選取一些特殊的而且是并不會因為物理光線灰度以及其他幾何變化以及噪點等因素改變的點。與散列函數即用于加密的哈希所不同的是加密散列函數的值隨機的結果產生的隨機的散列。這種數據采用相同的值就會產生相同的結果,不同的數據產生不同的結果。SHA1 算法中,hash 值不同,數據也會不同。另外,hash 值相同,數據也會相似,因為可能存在著hash 沖突的可能,所以在相同hash 值也產生不同的數據。相對來說,感知哈希是可以比較的,這個與上面的加密算法不同,是兩個數據集之間的相似的比較。PHash 函數就是建立一個圖片與指紋字符串之間的映射,通過對不同的圖片產生的指紋所匹配得到的結果來衡量說明圖片相似度,即相似度所得到的數值結果高或者結果一致這說明圖片高度相似或者同質即為同一副圖。
本文采用的PHash 算法的基本步驟是:
1.壓縮圖片的尺寸。一般來說會將圖片壓縮成8*8 大小的矩陣,這里面總共是64 個像素點。這個步驟的重點在于圖片細節的去除,將圖片的基本結構保留的即保留物理光照明暗灰度信息,通過去除不同尺寸和比例的圖片所帶來的影響,來盡量減少這種對圖片對比產生的圖片差異。
2.簡化圖片色彩信息。將壓縮后的圖像矩陣轉化為64 級的灰度值,也就是將傳統的256 級灰度進一步縮小。即通俗的講,所有的像素點一共之后64 中黑白顏色。
3.計算平均值。為了進一步弱化灰度所帶來的噪音上的差異,經過離散余弦變換并縮小縮小之后計算8*8 大小的矩陣中,也就是全部64 個像素的灰度平均值。
4.比較像素的灰度值。將上一步所得到的平均值與圖片中每個像素的灰度值匹配對比,比較得到結果相對的平均值小的數字記為0,大于或者等于的結果中數字記為1,。通過這一步的比較結果會得到64 個0 或者1。
5.計算圖像的哈希值。將上一步所得到結果進行整理,將這個比較結果組合成64 位的二進制整數,為了表示方便或者可以轉化成一個16 位的十六進制數,這就是圖像的指紋。
6.通過漢明距離進行指紋對比。這個組合的順序對于64 位二進制數并非是必要條件,必要條件是相對圖片中的所有產生的組合順序都需要保持一致性。得到幾幅圖像的指紋之后,就可以通過指紋進行不同圖像的對比。對比方法就是看64 位中有多少位是不一樣的。這與漢明距離的計算方法是一致的。需要說明的情況是漢明距離的概念是信息論中的,在我們這個算法就是長度相等的幾個二進制串之間的漢明距離就是相對對應不同二進制數的個數。也就是說,我們可以做一個規定,只要其中結果不一樣的個數不超過某個值X,就說明兩幅圖像相似度滿足規定的預期。或者設定一個閾值比如Y只要數值超過Y 的閾值就可以斷定圖片客觀相似度不符合預期。
PHash 算法計算中常用DCT 即離散余弦變換來獲取低頻成分結果為32*32 大小的矩陣,而計算矩陣離散余弦變換之后灰度平均值的計算最為復雜,需要用到四層的循環來計算,所以本文將矩陣優化為8*8 大小,并且在計算上采用矩陣的乘法替代原有的四層循環,進一步將效率提高。
本文選取了實踐應用中常見的拓撲圖來展示實驗結果,圖1(a)為對象圖的原圖、圖1(b)為將原圖更改了縱橫比之后得到的結果、圖1(c)為縮小原圖之后的圖、圖1(d)為在原圖中加入了其他文字改變原圖之后的結果。

圖1 :圖片相似度的應用案例圖(一)
實驗結果中,原圖經過與更改縱橫比之后相似度對比算法計算的結果為0.97265625,而原圖與將本文縮小之后采用相似度對比算法得到的結果0.97265625,在加入文字之后得到的結果為0.984375。需要說明的是結果中越接近1 說明相似程度越高,結果為1 的話可以判定為同一副圖片,結果為0 的話則認為兩幅圖片并無相似之處。通常在應用中我們把大于0.95 的同樣判斷為同一副或者是接近同一副圖。將大于0.85 的而小于0.95 的圖發送人工審核。而小于0.85的圖則可認為是不同的圖。
圖2 中采用了兩幅都是文字的圖,圖中文字類似,但由于代碼細節中還是有基本的差異,經人工判斷可認為是不同的圖。計算的結果也驗證了判斷結果為0.78125。

圖2 :圖片相似度的應用案例圖(二)
本文針對過程性考核系統中的圖片對比效率問題采用了PHash算法,通過在實踐中獲得的圖片作為數據集并且在對數據集圖片加工的基礎上,給出了最優的選擇。感知哈希算法的防篡改檢測能力和隨機可能性判斷中仍具有一定的矛盾,這方面也需要在今后的研究中進行優化。另外,在將來的應用中可以將該算法引入到視頻信號的處理和識別上。