本申請涉及數據處理技術領域,尤其涉及一種圖像相似性的度量方法和裝置。
背景技術
目前,主流的圖像相似性度量方法有基于顏色和紋理特征的相似性度量、基于峰值信噪比(psnr)的相似性度量方法、結構相似性(ssim)度量方法、感知哈希算法(p-hash)、計算特征點(fast、surf、sift、orb等)度量方法。
在所述現有的圖像相似性度量方法中,基于psnr的相似性度量方法是最普遍和使用最為廣泛的一種圖像客觀評價方法,然而該方法是基于對應像素點間的誤差,即基于誤差敏感的圖像質量進行相似性度量。由于并未考慮到人眼的視覺特性,例如人眼對空間頻率較低的對比差異敏感度較高,人眼對亮度對比差異的敏感度較色度高,人眼對一個區域的感知結果會受到其周圍鄰近區域的影響等。由于人眼的這種視覺特性,則經常出現所述基于psnr的相似性度量方法的度量結果與人的主觀感覺不一致的情況。
所述現有的基于ssim的度量方法能取得優于psnr度量方法的結果,但ssim度量方法不能完全解決上述psnr度量方法存在的問題。
所述現有的p-hash算法由于將圖像壓縮并灰度化,丟失了大部分圖像信息,因此其精確度不高。
因此,現有技術整體上存在如下缺點:圖像相似性的度量精度不高,計算量都比較大。
技術實現要素:
有鑒于此,本發明的主要目的是提供一種圖像相似性的度量方法和裝置,以提高度量精度、降低計算量。
本發明的技術方案是這樣實現的:
一種圖像相似性的度量方法,包括:
a、提取待對比圖像的邊界,確定圖像邊界的相似性,選出邊界相同或邊界在指定范圍內相似的待對比圖像;
b、針對所選出的待對比圖像,采用結構相似性和感知哈希算法計算所述圖像之間的相似性。
在本發明所述方法的一種優選實施例中,所述步驟a具體包括:
對待對比圖像的圖像邊緣進行邊緣檢測,提取圖像邊界,并得到邊界灰度圖;
根據圖像大小將圖像劃分為網絡結構;
取得所述圖像中每一個網格的灰度值,得到邊界灰度圖的指紋字符串;
統計每兩個待對比的圖像的指紋字符串中,所述網格灰度值不相同的數據位數;如果不相同的數據位數與指紋字符串中的總數據位數的比值低于指定比值,則判定待對比的兩張圖像相似,對該兩張圖像執行步驟b;如果不相同的數據位數與指紋字符串中的總數據位數的比值等于或高于所述指定比值,則判定待對比的兩張圖像是不同的圖像,對該兩張圖像不執行步驟b。
在本發明所述方法的一種優選實施例中,所述對圖像邊緣進行邊緣檢測具體包括:利用canny邊緣檢測器進行邊緣檢測。
在本發明所述方法的一種優選實施例中,所述步驟b具體包括:
將所選出的待對比圖像縮小到n×n的尺寸;
將所述縮小后的圖像轉為n2級灰度;
根據所述兩個待對比圖像的n2級灰度,計算兩個圖像各自的像素均值和標準差,以及計算兩個圖像之間的像素均方差和協方差;
根據所述兩個圖像各自的均值和標準差,以及計算兩個圖像之間的均方差和協方差,計算所述兩個圖像的亮度比較函數,對比度比較函數,結構比較函數、和峰值信噪比psnr值;
根據以下公式計算所述兩個待對比圖像之間的相似性ssim(x,y):
ssim(x,y)=[l(x,y)]α·[c(x,y)]β·[s(x,y)]γ·[psnr]λ
其中,所述x,y分別代表所述兩個待對比的圖像,l(x,y)為所述兩個圖像的亮度比較函數,α為l(x,y)的權值;c(x,y)為所述兩個圖像的對比度比較函數,β為c(x,y)的權值;s(x,y)為所述兩個圖像的結構比較函數,γ為s(x,y)的權值;psnr為峰值信噪比psnr值,λ為psnr的權值;α,β,γ,λ>0。
在本發明所述方法的一種優選實施例中,根據下述公式計算所述兩個圖像各自的像素均值和標準差,以及計算兩個圖像之間的像素均方差和協方差,其中x,y分別代表所述兩個待對比的圖像;
兩個圖像各自的像素均值計算公式為:
其中,μx為圖像x的像素均值,μy為圖像y的像素均值;xi,j為圖像x的n2級灰度圖像中,第i行第j列的像素值;yi,j為圖像y的n2級灰度圖像中,第i行第j列的像素值;
兩個圖像各自的像素標準差計算公式為:
其中,
兩個圖像之間的像素均方差mse的計算公式為:
兩個圖像之間的協方差σxy計算公式為:
在本發明所述方法的一種優選實施例中,根據下述公式計算所述兩個圖像的亮度比較函數,對比度比較函數,結構比較函數、和峰值信噪比psnr值,其中x,y分別代表所述兩個待對比的圖像;
兩個圖像的亮度比較函數l(x,y)的計算公式為:
兩個圖像的對比度比較函數c(x,y)的計算公式為:
兩個圖像的結構比較函數s(x,y)的計算公式為:
兩個圖像的psnr值的計算公式為:
其中,所述c1c2c3是為了避免分母為零而設的相對小的常數;amax=2k-1,k是表示一個像素點用的二進制位數,l為像素的動態范圍,k1,k2為常數,k1<<1,k2<<1。
在本發明所述方法的一種優選實施例中,該方法進一步包括:
利用滑動窗將所述待對比的圖像分塊,令分塊總數為m,采用高斯加權計算每一窗口的均值、方差以及協方差,然后計算對應塊的結構相似性,最后將兩個圖像的各個塊的結構相似性的平均值作為兩圖像的結構相似性。
在本發明所述方法的一種優選實施例中,所述n=8。
一種圖像相似性的度量裝置,包括:
圖像分類模塊,用于提取待對比圖像的邊界,確定圖像邊界的相似性,選出邊界相同或邊界在指定范圍內相似的待對比圖像。
相似性計算模塊,用于針對所選出的待對比圖像,采用結構相似性和感知哈希算法計算所述圖像之間的相似性。
與現有技術相比,本發明針對待對比的圖像,先提取待對比圖像的邊界,確定圖像邊界的相似性,選出邊界相同或邊界在指定范圍內相似的待對比圖像;這一步驟相當于將圖像進行了分類,在面對大量圖像的相似性比較時,采用這一步驟可以將那些明顯不相似的圖像對排除掉,篩選出相似性較高的圖像對,然后再針對選出的待對比圖像,利用峰值信噪比和結構相似性計算所述圖像之間的相似性。本發明最大限度地利用了圖像信息、邊界信息、結構信息等,其中雖然增加了圖像分類步驟,看似增加了計算量,但由于首先對圖像進行分類,反而減小了需要計算相似性的圖片數量,因此在整體上降低了計算量。同時,本發明又利用峰值信噪比和結構相似性挖掘圖像結構、對比信息后計算所述圖像之間的相似性,提高了圖像相似性的度量精度。
附圖說明
圖1為本發明一種實施例中所述圖像相似性的度量方法的流程圖;
圖2為本發明一種實施例中進行圖像分類的流程圖;
圖3為本發明一種實施例中針對所選出的待對比圖像,采用結構相似性和感知哈希算法計算所述圖像之間的相似性的流程圖;
圖4為本發明一種實施例中所述圖像相似性的度量裝置的組成示意圖。
具體實施方式
下面結合附圖及具體實施例對本發明再作進一步詳細的說明。
圖1為本發明一種實施例中所述圖像相似性的度量方法的流程圖。參見圖1,本發明所述方法主要分為兩大步驟,即步驟10和步驟20。
步驟10、提取待對比圖像的邊界,確定圖像邊界的相似性,選出邊界相同或邊界在指定范圍內相似的待對比圖像。
本步驟10相當于將待對比的圖像(即圖像對)進行了分類,只選出邊界相同或邊界在指定范圍內相似的圖像對來執行下一步驟20,而其它圖像對則不必再執行下一步驟20。
步驟20、針對所選出的待對比圖像,采用結構相似性(ssim)和感知哈希算法(p-hash)計算所述圖像之間的相似性。
本步驟20具體是結合ssim和p-hash算法計算圖像相似性,具體是利用psnr和ssim挖掘圖像結構、對比等信息最后計算相似性。
本發明上述步驟10和步驟20的優點在于最大限度的利用圖像信息,邊界信息、結構信息等,看似增加了計算量,但由于首先對圖像進行分類,反而減小了需要計算相似性的圖片數量。
圖2為本發明一種實施例中進行圖像分類的流程圖;即所述步驟10的一種具體執行流程圖。參見圖2,在一種優選實施例中,所述步驟10具體包括:
步驟101、邊緣檢測:對待對比圖像的圖像邊緣進行邊緣檢測,例如具體可以是利用canny邊緣檢測算法進行邊緣檢測,提取圖像邊界,并得到邊界灰度圖;所述灰度圖只有黑白兩種色彩。
所述對圖像邊緣進行邊緣檢測具體包括:利用canny邊緣檢測器進行邊緣檢測。所述canny邊緣檢測器基于一個多階邊緣算子的邊緣檢測算法,canny邊緣檢測器使用一個基于高斯模型派生的檢測模型,因為未處理圖像可能含有噪聲,所以開始在原始圖像上應用一個高斯濾波器,其輸出結果是一個輕度平滑的圖像,從而可以不至于被單個噪聲像素干擾全局重要參數。
步驟102、圖像劃分:根據圖像大小將圖像劃分為網絡結構;原始圖像大的話,劃分的網格數就多,原則上圖像的網格劃分得越精細越好。
步驟103、獲取灰度值:取得所述圖像中每一個網格的灰度值,即0或1,得到邊界灰度圖的指紋字符串;因為圖像的網格劃分得很精細,帶有邊界的網格灰度值為1,沒有邊界的網格灰度值為0。
步驟104、邊界相似性度量:統計每兩個待對比的圖像的指紋字符串中,所述網格灰度值不相同的數據位數;如果不相同的數據位數與指紋字符串中的總數據位數的比值低于指定比值(例如低于1/10),則判定待對比的兩張圖像相似,對該兩張圖像執行步驟20;如果不相同的數據位數與指紋字符串中的總數據位數的比值等于或高于所述指定比值(如等于或高于1/10),則判定待對比的兩張圖像是不同的圖像,對該兩張圖像不執行步驟20。
圖3為本發明一種實施例中針對所選出的待對比圖像,采用結構相似性和感知哈希算法計算所述圖像之間的相似性的流程圖;即步驟20的一種具體執行流程。參見圖3,所述步驟20具體包括:
步驟201、縮小尺寸:將所選出的待對比圖像縮小到n×n的尺寸,總共n2個像素。這一步的作用是去除圖像的細節,只保留結構/明暗等基本信息,摒棄不同尺寸/比例帶來的圖像差異。
在本發明的一種優選實施例中,所述n=8,當然所述n也可以取其它數值。下面在舉例的實施例中,取n=8來舉例說明。例如本步驟201中,將所選出的待對比圖像縮小到8×8的尺寸,總共64個像素。
步驟202、簡化色彩:將所述縮小后的圖像轉為n2級灰度,即所有像素點總共只有n2種顏色。例如n為8的話,將所述縮小后的圖像轉為64級灰度;即所有像素點總共只有64種顏色。
步驟203、根據所述兩個待對比圖像的n2級灰度,計算兩個圖像各自的像素均值和標準差,以及計算兩個圖像之間的像素均方差和協方差。
步驟204、根據所述兩個圖像各自的均值和標準差,以及計算兩個圖像之間的均方差和協方差,計算所述兩個圖像的亮度比較函數,對比度比較函數,結構比較函數、和峰值信噪比psnr值。
步驟205、計算相似度:根據以下公式計算所述兩個待對比圖像之間的相似性ssim(x,y):
ssim(x,y)=[l(x,y)]α·[c(x,y)]β·[s(x,y)]γ·[psnr]λ
其中,所述x,y分別代表所述兩個待對比的圖像,l(x,y)為所述兩個圖像的亮度比較函數,α為l(x,y)的權值;c(x,y)為所述兩個圖像的對比度比較函數,β為c(x,y)的權值;s(x,y)為所述兩個圖像的結構比較函數,γ為s(x,y)的權值;psnr為峰值信噪比psnr值,λ為psnr的權值;α,β,γ,λ>0。
所述ssim(x,y)的取值范圍[0,1],值越大,表示所述兩個圖像的相似性越大。在進一步的優選實施例中,可以利用滑動窗將所述待對比的圖像分塊,令分塊總數為m,考慮到窗口形狀對分塊的影響,采用高斯加權計算每一窗口的均值、方差以及協方差,然后計算對應塊的結構相似性ssim(x,y),最后將平均值作為兩圖像的結構相似性,即平均結構相似性mssim(x,y)。
進一步的,在所述步驟203中,根據下述公式計算所述兩個圖像各自的像素均值和標準差,以及計算兩個圖像之間的像素均方差和協方差,其中x,y分別代表所述兩個待對比的圖像;
兩個圖像各自的像素均值計算公式為:
如果n=8則該公式為:
其中,μx為圖像x的像素均值,μy為圖像y的像素均值;xi,j為圖像x的n2級灰度圖像中,第i行第j列的像素值;yi,j為圖像y的n2級灰度圖像中,第i行第j列的像素值;
兩個圖像各自的像素標準差計算公式為:
如果n=8則該公式為:
其中,
兩個圖像之間的像素均方差mse的計算公式為:
如果n=8則該公式為:
兩個圖像之間的協方差σxy計算公式為:
如果n=8則該公式為:
進一步的,在所述步驟204中,根據下述公式計算所述兩個圖像的亮度比較函數,對比度比較函數,結構比較函數、和峰值信噪比psnr值,其中x,y分別代表所述兩個待對比的圖像;
兩個圖像的亮度比較函數l(x,y)的計算公式為:
兩個圖像的對比度比較函數c(x,y)的計算公式為:
兩個圖像的結構比較函數s(x,y)的計算公式為:
兩個圖像的psnr值的計算公式為:
其中,所述c1c2c3是為了避免分母為零而設的相對小的常數;amax=2k-1,k是表示一個像素點用的二進制位數,l為像素的動態范圍(若是8位灰度圖像則l=255),k1,k2為常數,k1<<1,k2<<1;在一種優選實施例中,這里取k1=0.01,k2=0.03,l=255。
本發明所述的圖像相似性的度量方法的特點在于:
(1)圖像分類:在進行相似性計算之前,首先進行圖像分類。一方面面對大量圖像相似性比較時,盡可能將圖像分類可以減小計算量,同時避免邊界不同但統計信息相同時,給相似性計算帶來的不便。
(2)分類方法:與傳統的基于圖像內容的分類方法不同,本方案提出了基于圖像邊界的分類方法。分類方法充分利用邊界提取后精細劃分的邊界灰度圖的布爾特性,簡化了計算。
(3)相似性參數計算方法:p-hash方法框架下,使用壓縮后的圖像的亮度比較函數,對比度比較函數,結構比較函數、psnr值進行相似性參數計算。
如上所述,本發明是一種基于ssim和p-hash算法的圖像相似性的度量方法。本發明首先使用圖像邊界對圖像進行簡單的分類篩選,是邊界相似或相同的圖像才進行步驟20所述的相似性計算,并充分利用邊界的黑白對照,簡化了圖像色彩處理;然后利用psnr和ssim挖掘圖像結構、對比等信息最后計算相似性,基于p-hash方法框架,充分利用圖像亮度、對比度、結構、整體差異,進行相似性計算。所述p-hash算法的作用是對每張圖像生成一個指紋(fingerprint)字符串,然后比較不同圖像的指紋。結果越接近,就說明圖像越相似。
本發明最大限度地利用了圖像信息、邊界信息、結構信息等,其中雖然增加了圖像分類步驟,看似增加了計算量,但由于首先對圖像進行分類,反而減小了需要計算相似性的圖片數量,因此在整體上降低了計算量。同時,本發明又利用峰值信噪比和結構相似性挖掘圖像結構、對比信息后計算所述圖像之間的相似性,提高了圖像相似性的度量精度。
與上述方法對應的,本發明還公開了一種圖像相似性的度量裝置,圖4為本發明一種實施例中所述圖像相似性的度量裝置的組成示意圖,參見圖4,改裝置包括:
圖像分類模塊,用于執行上述步驟10,即用于提取待對比圖像的邊界,確定圖像邊界的相似性,選出邊界相同或邊界在指定范圍內相似的待對比圖像。
相似性計算模塊,用于執行上述步驟20,即用于針對所選出的待對比圖像,采用結構相似性和感知哈希算法計算所述圖像之間的相似性。
至于圖像分類模塊的具體執行過程請參見上述步驟10的描述。
至于相似性計算模塊的具體執行過程請參見上述步驟20的描述。
另外,在本發明各個實施例中的各功能模塊可以集成在一個處理單元中,也可以是各個模塊單獨物理存在,也可以兩個或兩個以上模塊集成在一個單元中。上述集成的單元既可以采用硬件的形式實現,也可以采用軟件功能單元的形式實現。所述各實施例的功能模塊可以位于一個終端或網絡節點,或者也可以分布到多個終端或網絡節點上。
另外,本發明的每一個實施例可以通過由數據處理設備如計算機執行的數據處理程序來實現。顯然,數據處理程序構成了本發明。此外,通常存儲在一個存儲介質中的數據處理程序通過直接將程序讀取出存儲介質或者通過將程序安裝或復制到數據處理設備的存儲設備(如硬盤和或內存)中執行。因此,這樣的存儲介質也構成了本發明。存儲介質可以使用任何類型的記錄方式,例如紙張存儲介質(如紙帶等)、磁存儲介質(如軟盤、硬盤、閃存等)、光存儲介質(如cd-rom等)、磁光存儲介質(如mo等)等。
因此本發明還公開了一種存儲介質,其中存儲有數據處理程序,該數據處理程序用于執行本發明上述方法的任何一種實施例。
另外,本發明所述的方法步驟除了可以用數據處理程序來實現,還可以由硬件來實現,例如,可以由邏輯門、開關、專用集成電路(asic)、可編程邏輯控制器和嵌入微控制器等來實現。因此這種可以實現本發明所述方法的硬件也可以構成本發明。
以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明保護的范圍之內。