① 圖像視頻相似度演算法
前段時間公司項目用到了語音識別,圖像識別,視頻識別等,其實不能說是識別,應該說是相似度對比吧,畢竟相似度對比還上升不了到識別哈,等以後有了更深的理解再來討論修改下!這次就當做一個總結吧!
其實它的原理就是一個把需要的特徵總結在一個指紋碼裡面,進行降維成指紋碼,假如個指紋碼一模一樣,那兩張圖片就想似了.下面有寫怎麼編譯成唯一標識,再用漢明距離計算兩個指紋碼的相似度.
圖片是採用phash演算法,一共分為四步吧.
1.將圖片縮放到16*16大小,這是我們選擇的合適的大小,假如寬高不一樣,直接將其壓到16*16,去掉細節,只保留宏觀;
2.圖片一共是16*16的,共256個像素,我們將圖片進行灰度化,灰度化就是只有黑白灰三種,從白到黑,一共分了255層;
3.灰度化之後將圖片進行DCT轉換(離散餘弦變化),因為為了識別有的圖片旋轉,這個DCT轉換是將圖片進行了一種壓縮演算法;
4.我們對這個演算法進行了優化,因為之前是計算像素的均值,我們為了更准確,我們取RGB,rgb一共分為255個像素,我們將255個像素分為16段,如果像素大於0-16記為0,17到32記為1,直到255,這樣就得到255位的二進制,這就是這張圖片的指紋碼.
得到唯一標識的指紋碼之後怎麼去計算像素度呢?
通過漢明距離比較兩個二進制距離,如果距離小於<10的話,我們就判定兩張圖片相似.如果兩個指紋碼(二進制)一模一樣,我們就判定兩個是一張圖片,或者類似;
視頻的話我們是通過ffmpeg(ff am pig),它是一個專門處理視頻的框架,可以從視頻中按針提取圖片.然後就按照圖片的相似度取對比了...
② 計算圖像相似度的演算法有哪些
SIM = Structural SIMilarity(結構相似性),這是一種用來評測圖像質量的一種方法。由於人類視覺很容易從圖像中抽取出結構信息,因此計算兩幅圖像結構信息的相似性就可以用來作為一種檢測圖像質量的好壞.
首先結構信息不應該受到照明的影響,因此在計算結構信息時需要去掉亮度信息,即需要減掉圖像的均值;其次結構信息不應該受到圖像對比度的影響,因此計算結構信息時需要歸一化圖像的方差;最後我們就可以對圖像求取結構信息了,通常我們可以簡單地計算一下這兩幅處理後的圖像的相關系數.
然而圖像質量的好壞也受到亮度信息和對比度信息的制約,因此在計算圖像質量好壞時,在考慮結構信息的同時也需要考慮這兩者的影響.通常使用的計算方法如下,其中C1,C2,C3用來增加計算結果的穩定性:
2u(x)u(y) + C1
L(X,Y) = ------------------------ ,u(x), u(y)為圖像的均值
u(x)^2 + u(y)^2 + C1
2d(x)d(y) + C2
C(X,Y) = ------------------------,d(x),d(y)為圖像的方差
d(x)^2 + d(y)^2 + C2
d(x,y) + C3
S(X,Y) = ----------------------,d(x,y)為圖像x,y的協方差
d(x)d(y) + C3
而圖像質量Q = [L(X,Y)^a] x [C(X,Y)^b] x [S(X,Y)^c],其中a,b,c分別用來控制三個要素的重要性,為了計算方便可以均選擇為1,C1,C2,C3為比較小的數值,通常C1=(K1 x L)^2, C2=(K2 xL)^2, C3 = C2/2, K1 << 1, K2 << 1, L為像素的最大值(通常為255).
希望對你能有所幫助。
③ 關於視頻質量評價演算法的
你好,在視頻質量評價領域,所謂的結構相似度SSIM是一種全參考(Full-Rerence)視頻質量評價演算法。而全參考評價演算法必須同時知道原始視頻和失真視頻。也就是說你想計算結構相似度,就得先找到兩個視頻,一個原始的,一個受損的,(要是僅僅為了測試演算法也可以隨便找倆),然後逐幀計算原始視頻各幀同受損視頻相應幀的SSIM,最後加權平均。
同學如果你需要計算視頻的「結構相似度」指標,一般就是我上面說的那樣,如果你只是想找到一種不需要原始視頻的質量評價方法,推薦你網路LIVE VIDEO DATABASE或者LIVE IMAGE DATABSE,那裡面好多演算法,你隨便下一個試試就好了。
雖然晚了一年多,還是希望能幫到你,如果你還有其他問題可以聯系我,不要私信,我的日常郵箱[email protected],我目前就是研究這方面的。