論文雜記 | ||
---|---|---|
上一篇 | 主目錄 | 下一篇 |
文章結構
-
- 1 預備知識
-
- 1.1 關于LBP
-
- 1.1.1 簡介
- 1.1.2 LBP直方圖
- 1.1.3 圓形LBP算法
- 1.1.4 旋轉不變LBP
- 1.2 雙線性插值法
- 1.3 Harris角點檢測
- 1.4 歐氏距離
- 2 基于 ELBPri的圖像檢索系統
-
- 2.1 ELBPri的算法步驟
- 2.2 Harris采樣模式
- 2.3 ELBPri算法描述符的建構
- 2.4 相似度對比
- 2.5 ELBPri描述符優點
【 前言】
本論文是傳統方法進行圖像檢索的論文之一,是基于内容的圖像檢索(Content-Based Image Retrieval,CBIR)。從關鍵詞中可以看到本文使用到的主要算法。
關鍵詞:經典LBP算法、LBP直方圖、LBP旋轉不變編碼、ELBPri描述符,Harris算法,LBP僞灰階圖,歐氏距離
論文《增強旋轉不變LBP算法及其在圖像檢索中的應用》下載下傳位址
或者聯系部落客擷取,郵箱:[email protected]
1 預備知識
1.1 關于LBP
1.1.1 簡介
局部二值模 式(Local Binary Pattern,LBP)是一 種 描 述紋理特征的經典方法,該方法通過計算目标像素與其鄰域内的像素之間的灰階差異來描述圖像的局部紋理特征。
原始的LBP算子定義在3*3的視窗内,以視窗中心像素為門檻值,将相鄰的8個像素的灰階值與其進行比較,若周圍像素值大于中心像素值,則該像素點的位置被标記為1,否則為0。3X3 鄰域内的8個點可以産生8Bit的無符号數,轉化為十進制數即得到該視窗的LBP值,并用這個值來反映該區域的紋理資訊。
紋理特征在圖像資訊提取中的地位:
紋理特征是圖像或圖像局部區域所描述的景物的表面性質。與其他特征相比,紋 理 特 征 包 含 更 多 的圖像資訊。
1.1.2 LBP直方圖
直方圖有兩種:
統計直方圖
其中,
- n是總的個數
- nk是某一個取值的個數 累積直方圖 LBP直方圖就是用LBP的值建構城的直方圖
1.1.3 圓形LBP算法
為了 使 經 典 LBP特征适于描述不同尺度和不同頻率的紋理資訊,Ojala等[12]将3×3鄰域擴充到任意鄰域,并用 圓形視窗代替正 方 形 窗 口。改 進 後 的 LBP描述 符 在 半 徑 為 R的圓形鄰域内擁有多個采樣像素點。
左一LBP的右上标1代表半徑是2,右下标8表示采樣點的個數是8個
左一LBP的右上标2代表半徑是2,右下标16表示采樣點的個數是16個(網格交點處有采樣點。。)
其他同理
采樣點位置(xp,yp)的計算:
對于給定的中心點(xc,yc),其鄰域像素位置為(xp,yp),p∈P,(xp,yp)用如下公式[12]計算:
其中,R 是視窗半徑,p是采集的中心像素點周圍的第p 個像素,P 是采集的中心像素點周圍的像素點個數。
【采樣的點P(xp,yp)是落在圓圈上的?】
以(Xc,Yc)為坐标原點,Xp2+Yp2=R2
求每個采樣點的過程:
由于式子計算出的坐标不一定在圖像上,是以采用 雙線性插值 (建議學習,見1.2)來計算采樣點。也就是說,當采樣點的P(xp,yp)坐标剛好與原圖中的某點X(x,y)重合時,P點的灰階值或RGB的值就是原圖中點X的值;如果采樣點的x,y坐标沒有與原圖中的x,y重合時,就需要用到雙線性插值法求P點的灰階值或RGB值。注:圖像的像素點是離散型變量,當由上式計算出的P(xp,yp)有一個不是整形數字,那麼P點就沒與原圖中某像素重合,此時使用雙線性插值法求P點的灰階值或RGB值
1.1.4 旋轉不變LBP
為滿足旋轉不變性,不斷旋轉圓形鄰域的起始像素點,可以得到一系列 LBP 值,取其中的最小值作為該鄰域的 LBP值。
白色為1,黑色為0
共有8位二進制數
LBP值的集合={240,120,60,30,15,135,195}
該鄰域的LBP值為15
起始點:
240中順時針方向第一個白色的點,二進制編碼為11110000,即128+64+32+16+0+0+0+0=240
…
195中順時針方向第三個白色的點,二進制編碼為11000011,即128+64+0+0+0+0+2+1=195
【思考】
-
這些點是從哪得來的,0和1如何得到???
從1.1.3可知,這些點實際就是在某像素點作為中心點,通過公式采樣得到的點,這些點的坐标可能是小數,也就是說,這些點的可能沒有與在原圖像的坐标系下與原圖像的某像素點重合。但是,經過雙線性插值已經求得了即使沒有在源圖像上有對應點的新圖上的某像素點的灰階值的大小。
通過比較這些采樣到的點的灰階值與采樣的中心原點的值的大小,灰階值比采樣中心點大的采樣點的值設為1,反之,小的設為0.
-
為什麼通過這種方式可以表示旋轉不變的特性???
當圖像發生旋轉時,圓形鄰域内的灰階值gi是在以gc為中心R為半徑的圓周上運動的。
我們可以發現,隻要我們取上述枚舉出來的值的最小值,就可以消除旋轉帶來的影響。
在該鄰域内,取采樣點LBP中最小值作為該鄰域的LBP值。在這個鄰域内的某種像素分布,例如紋理特征,是某種0、1分布的,當圖相中紋理旋轉時,因為紋理是一樣的,是以對應的0、1序列隻是整體上旋轉了某個度數。而由于旋轉LBP算法是将0、1序列依次旋轉後化為二進制再轉為十進制取最小值,是以紋理旋轉後經過旋轉LBP算法仍然能夠得到相同的LBP值。是以具有旋轉不變性。
注:使用LBP最大值也可以表示旋轉不變特性
-
參數P=8,R=2時,Q=36?
百思不得其解,啟發得源于:https://blog.csdn.net/qq_20823641/article/details/51456448 (中的四、旋轉不變性LBP)
當參數P=8,R=2時:
先看一個例子:
我們得到一個二進制的LBP值10000011,然後不斷對這個二進制進行向右循環移位(加上它本身,總共有8種取值可能),之後取最小結果就是該視窗的LBP值。結果分析看下圖:
當參數P=8,R=2時,共36種取值結果,取值結果如下圖:(圖中黑色是0,白色是1;這個圖跟前面的起始點一緻,但是從高位到低位是逆時針
例如
第二行第二列的二進制編碼為:00001001
第三行第三列的二進制編碼為:00011101。(注意00011101跟00010111是不一樣的))
這是因為在這8個點的0、1序列的排列組合裡面:
以下向右循環移位
1.全部是0隻有一種情況00000000,LBPmin=0
2.有1個1的情況:
10000000、 01000000、 00100000、 00010000
00001000、 00000100、 00000010、 00000001
LBPmin=1
3.有2個相鄰1的情況:
10000001、 11000000、 01100000、 00110000
00011000、 00001100、 00000110、 00000011
LBPmin=1+2=3
4.有3個相鄰1的情況:
10000011、 11000001、 11100000、 01110000
00111000、 00011100、 00001100、 00000111
LBPmin=1+2+4=7
…
…
…
9.有8個相鄰1的情況:
11111111
LBPmin=1+2+4+8+16+32+64+128=255
10.有2個不相鄰1且這兩個1間隔為1的情況:
10000010、 01000001、 10100000、 01010000
00101000、 00010100、 00001010、 00000101
LBPmin=1+ 4=5
11.有2個不相鄰1且這兩個1間隔為2的情況:
10000100、 01000010、 00100001、10010000
01001000、 00100100、 00010010、 00001001
LBPmin=1+ 8=9
12.有2個不相鄰1且這兩個1間隔為3的情況:
00010001
LBPmin=1+ 16=17
【有2個不相鄰1且這兩個1間隔為4的情況跟有2個不相鄰1且這兩個1間隔為的情況是一樣的】
13.有3個不相鄰1的情況:
00001011: LBPmin=1+ 2+8=11
00001101: LBPmin=1+ 2+8=11(跟上式是不同情況,因為排成圓後按照順時針或者逆時針方向周遊這些點,有一個不能取得1101的子序列)
00010011: LBPmin=1+ 2+16=19
00010101: LBPmin=1+ 4+16=21
…
…
…
就這麼數,一共有36種不同的LBP取值。。。
1.2 雙線性插值法
參考博文: 雙線性插值 (建議學習)
主要思想總結如下:
我們知道,圖像的像素點是離散型變量,當要對圖像進行放大或縮小時,使用到了如下公式:
srcX=dstX * (srcWidth / dstWidth)
srcY=dstY * (srcHeight / dstHeight)
#src原圖,dst目标圖
【舉個例子】
原圖5X5,縮小成3X3。以圖坐上角為坐标原點(0,0),往右是x軸正向,往下是y軸正向。
-
新圖3X3中點(0,0)在原圖中對應的點是:
srcX=0 * (5/3)
srcY=0 * (5/3)
那麼
srcX=0,srcY=0,即(0,0)
新圖中P(0,0)與原圖中Q(0,0)兩點完全重合,那麼直接複制灰階值
-
新圖3X3中點(2,1)在原圖中對應的點是:
srcX=2 * (5/3)
srcY=1 * (5/3)
那麼
srcX=10/3,srcY=5/3,即(10/3,5/3)
新圖中(10/3,5/3)N點x,y都不是整數,在原圖中找不到一點與之對應
用雙線性插值求灰階值:
(1)先确定這個新點N落在哪4個像素點之間:10/3=3.33~,x軸落在3和4之間;5/3=1.66 ~,y軸落在1和2之間。是以可以知道,這個新點N落在這4個點之間:
Q11(3,1),Q12(3,2),Q21(4,1),Q22(4,2)
(2)在X方向上進行兩次線性插值計算,然後在Y方向上進行一次插值計算
在X方向上進行第一次線性插值計算得到R1: 在X方向上進行第二次線性插值計算得到R2: 然後在Y方向上進行一次插值計算得到P: 注:以上式子中,f(Q)代表Q點的灰階值。是以f(x,y1)是R1的灰階值,f(x,y2)是R2的灰階值,f(x,y)是P的灰階值
以上是縮小的例子,放大圖像類似
1.3 Harris角點檢測
相關知識在上文《基于KNN有向複雜網絡的圖像輪廓識别》1.4節 中已有涉及,不再贅述。
1.4 歐氏距離
略
2 基于 ELBPri的圖像檢索系統
2.1 ELBPri的算法步驟
增強 LBP紋理描述符即ELBPri的算法步驟如下:
總體思想,重要
1.在灰階圖像中提取 Harris角點
2.以角點 為 采 樣 中 心,在 角 點 周 圍n 像 素 範 圍 内采樣(n=5)
3.計算采樣範圍内圖像區域的旋轉不變 LBP 值(對每個像素點),采樣範圍外圖像區域的像素點的 LBP值置為0
4.統計圖像的ELBPri直方圖,并将其作為 ELBPri描述符的特征矢量
5.比 較 圖 片 間 LBP 直方圖的相似性并排序
流程圖:
2.2 Harris采樣模式
原始的 LBP算法中并沒有采樣的過程,而是直接采取周遊圖像的方式。周遊圖像雖然可以得到完整的紋理特征,但需要周遊圖像中的每個像素點,并計算每個像素點的 LBP值,耗時巨大,并且這将使得整個 CBIR 圖像特征資料庫的資料急劇增多。為減少資料庫的資料量,本 文 采 用 Harris角點提取算法對原圖檔進行采樣。圖像像素點中距離角點小于或等于n像素的所有像素點為有效區域,大于n像素的為無效區域。如圖5所示,以n=5為例,黑色圓點為角點,斜線覆寫的像素點構成有效區域,其他像素點為無效區域。将 無 效 區域在 LBP僞灰階圖像中 的 LBP值置 為0,保 留 有 效 區 域,即完成了采樣過程。采樣過程定義如下:
其中,Ae 表示有效 區 域,Ai 表示 無 效 區 域,D 表示 像 素 點 與最近角點的距離。
對原圖像進行采樣,可以極大地降低下一步用旋轉不變LBP算法描述圖像時的工作 量,并剔除無效區域對圖像檢索的影響,增強了圖像檢索的魯棒性。
2.3 ELBPri算法描述符的建構
利用 旋 轉 不 變 LBP描述符的編碼方法對采樣後的圖檔進行編碼,獲得原圖像的 ELBPri僞灰階圖像
ELBPri僞灰階圖像的形式化定義為:
其中,(x,y)∈Ae,(x,y)是有效區域像素點坐标。Gx,y∈{0,1,…,Q}是圖像所有 微 模 式 的 LBP值集 合,Q 是圖 像 最 大 的LBP值(參數P=8,R=2時,Q=36)。
【僞灰階圖像和編碼】
在用Harris采取特征樣點後(此時得到的圖像上好多個點Xi),與這些點距離小于D(=5)的為有效區域,其他無效區域的所有像素點的LBP值為0。對在有效區域内的所有點:使用1.1.3圓形LBP算法在有效區域所有像素點的鄰域内得到多個采樣像素點(不一定在圖像上,則使用1.2雙線性插值法),求這些點的灰階值,跟鄰域中心點比較,大的為1,小的為0。使用1.1.4旋轉不變LBP求得的最小LBP值作為以該像素點為中心鄰域的LBP值(有效區域内每個像素點都有以該像素點為中心的鄰域,對應有一個鄰域LBP值)。在原圖像上用求得的每個像素鄰域的LBP值作為該像素新的灰階值,即獲得原圖像的 ELBPri僞灰階圖像 。這幅僞灰階圖像的LBP值的某種集合方式作為這個圖像的編碼。
【參數P=8,R=2時,Q=36?】
為啥???見1.1.4-3
2.4 相似度對比
- 基于 ELBPri算法對圖像進行紋理特征提取後,還 需 要将計算出的 LBP值轉化成特征向量,進而依據特征向量來對比圖像的 相 似 度。
- 本文在圖像轉化成 LBP 值後,通 過 LBP直方圖展現圖像 的 紋 理。
- 利用鄰域旋轉不變 LBP算子 可 得到 LBP的取值範圍為[0,36]。将這個區間平均分成36個小區間段[0,1,…,36],- - 通過 統 計 圖 像 LBP值落到每個區間的個數,最終形成36維 LBP直方圖。
- 采用下式計算待比對圖像的 ELBPri直方圖間的歐氏距離 Dk[14],Dk 越小,則 查 詢 圖像與圖像庫中第k個圖像 越 相 似。按 照 Dk 從小到大排序輸出查詢結果,實作檢索功能。
2.5 ELBPri描述符優點
1)保 留 LBP描述符的部分微模式,并使 LBP具有 了 旋轉不變性。ELBPri算法沒有從壓縮微模式數量的角度改進算法,而是在提取描述子之前加了采樣過程,這樣既保留了部分微模式和描述符的旋轉不變性,又提高了算法的效率。
2)計 算 量 小,效 率 高。ELBPri算法 借 助 于 Harris角點提取算法标定出紋理資訊豐富的區域,在提取描述子前添加了采樣過程,降低了生成 LBP僞灰階圖時的計算量和需要存儲的資料量,提高了算法的效率。
3)突出紋理資訊豐富區域的紋理資訊,去除部分噪聲,魯棒性高。紋理資訊豐富區域的角點數量多,ELBPri算法的采樣過程突出了紋理資訊豐富的區域。同時,紋理資訊簡單、噪聲點等區域在采樣過程中被濾去。