日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

尺度空间理论与图像金字塔

發布時間:2023/11/27 生活经验 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 尺度空间理论与图像金字塔 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們之所以決定使用卷積后的特征是因為圖像具有一種“靜態性”的屬性。也就是說使用卷積就是為了提取顯著特征,減少特征維數,減少計算量。

在對圖像進行卷積操作后的只管現象:圖像變得模糊了,可是我們依然能夠分辨出是什么!所以卷積就是提取顯著特征!

1尺度空間理論

每個物體,我們總可以用一些詞語或部件來描述它,比如人臉的特征:兩個眼睛、一個鼻子和一個嘴巴。對于圖像而言,我們需要計算機去理解圖像,描述圖像就需要計算機去取得圖像的特征,對圖像比較全面的描述即一個二維矩陣,矩陣內的每個值代表圖像的亮度。有時候我們需要讓計算機更簡化的來描述一個圖像,抓住一些顯著特征,這些特征要具有一些良好的性質,比如局部不變性。局部不變性一般包括兩個方面:尺度不變性與旋轉不變性。
- 尺度不變性:人類在識別一個物體時,不管這個物體或遠或近,都能對它進行正確的辨認,這就是所謂的尺度不變性。尺度空間理論經常與生物視覺關聯, ? ?有人也稱圖像局部不變性特征為基于生物視覺的不變性方法。
旋轉不變性:當這個物體發生旋轉時,我們照樣可以正確地辨認它,這就是所謂的旋轉不變性。
全局特征:從整個圖像中抽取的特征。較多的運用在圖像檢索領域,如圖像顏色直方圖。

局部特征:從圖像的局部區域中抽取的特征(這個局部區域往往是圖像中的一個像素及它周圍的鄰域)。

一種好的局部特征應該具有下面的特性:

  1. 可重復性:同一個物體在不同時間,不同角度拍到圖像中,檢測到的特征對應的越多越好。
  2. 獨特性:特征在該物體上表現為獨特性,能與場景下其他物體區分。
  3. 局部性:特征往往是物體某個局部的特點,這樣才可以避免遮擋時不能匹配的問題。
  4. 數量性:檢測到的特征數目一定要多,密集度最好能在一定程度上反映圖像的內容。
  5. 準確性:得到的特征應該能被精確定位,能夠精確到像素。
  6. 高效性:特征檢測算法運算要快。

  1. 2 具體實施過程
當用一個機器視覺系統分析未知場景時,計算機沒有辦法預先知識圖像中物體尺度,因此,我們需要同時考慮圖像在多尺度下的描述,獲知感興趣物體的最佳尺度。 所以在很多時候,我們會在將圖像構建為一系列不同尺度的圖像集,在不同的尺度中去檢測我們感興趣的特征。比如:在Harr特征檢測人臉的時候,因為我們并不知道圖像中人臉的尺寸,所以需要生成一個不同大小的圖像組成的金字塔,掃描其中每一幅圖像來尋找可能的人臉。 圖像金字塔化的一般步驟:首先,圖像經過一個低通濾波器進行平滑(這個步驟會使圖像變模糊,好像模仿人的視覺中遠處的物體沒有近處的清晰的原理),然后,對這個平滑后的圖像進行抽樣(一般抽樣比例在水平和豎直方向上都為1/2),從而得到一系列的縮小的圖像。


假設高斯金字塔的第 $l$ 層圖像為$G_l$,則有:
$$G_l(i,j)=\sum^{2}_{m=-2}\sum_{n=-2}^2\omega(m,n)G_{l-1}(2i+m,2j+n)$$
$$(1\le l \le N,0 \le i \le R_l,0 \le j \le C_l)$$
式中,$N$為高斯金字塔頂層 撥動號;$R_l$和$G_l$分別為高斯金字塔第$l$層的行數和列數;$\omega(m,n)$是一個二維可分離的$5 \times 5$窗口函數,表達式為: $$\omega=\frac{1}{256} \begin{bmatrix} 1 & 4 & 6 & 4 & 1\\ 4 & 16 & 24 & 16 & 4\\ 6 & 24 &36 & 24 & 6\\ 4 & 16 & 24 & 16 & 4\\ 1 & 4 & 6 & 4 & 1 \\ \end{bmatrix} =\frac{1}{16}\begin{bmatrix} 1 & 4 & 6 & 4 &1 \end{bmatrix}\times\frac{1}{16}\begin{bmatrix} 1 \\ 4 \\ 6 \\ 4 \\1 \end{bmatrix} $$

寫成上面的形式是為了說明,二維窗口的卷積算子,可以寫成兩個方向上的1維卷積核(二項核)的乘積。上面卷積形式的公式實際上完成了2個步驟:1)高斯模糊;2)降維。按上述步驟生成的$G_0,G_1,\dots ,G_N$就構成了圖像的高斯金字塔,其中$G_0$為金字塔的底層(與原圖像相同),$G_N$為金字塔的頂層???/span>見高斯金字塔的當前層圖像是對其前一層圖像先進行高斯低通濾波,然后做隔行和隔列的降采樣(去除偶數行與偶數列)而生成的。當前層圖像的大小依次為前一層圖像大小的1/4。下面是用OpenCV中的圖像金字塔相關函數寫的一個生成圖像金字塔的示例程序。程序中,不但生成了圖像金字塔,而且生成了圖像的拉普拉斯金字塔(接下來的內容)。enum pyrType { PYR_GUASS, PYR_LAPLACE };
void genPyr(const Mat& imgSrc, vector<Mat>& outPutArray, int TYPE, int level)
{outPutArray.assign(level + 1, Mat());outPutArray[0] = imgSrc.clone(); // the 0 level is the image. for (int i = 0; i != level; i++){pyrDown(outPutArray[i], outPutArray[i + 1]);}if (PYR_GUASS == TYPE){return;}for (int i = 0; i != level; i++){Mat UpSampleImg;pyrUp(outPutArray[i + 1], UpSampleImg, outPutArray[i].size());outPutArray[i] -= UpSampleImg;}
}
將$G_l$進行內插(這里內插用的不是雙線性而是用的與降維時相同的濾波核)得到放大圖像$G_l^{\ast}$,使$G_l^{\ast}$的尺寸與$G_{l-1}$的尺寸相同,表示為:
$$ G_l^{\ast}(i,j)=4\sum_{m=-2}^2\sum_{n=-2}^2\omega(m,n)G_l(\frac{i+m}{2},\frac{j+n}{2}) \\ (0 \le l \le N,0 \le i \le R_l,0 \le j \le G_l) $$
上面的系數4,是因為每次能參與加權的項,的權值和為4/256,這個與我們用的$\omega$的值有關。 式中,
$$ G_l(\frac{i+m}{2},\frac{j+n}{2})=\begin{cases} G_l(\frac{i+m}{2},\frac{j+n}{2}), & 當\frac{i+m}{2},\frac{j+n}{2}為整數時 \\ 0, & 其他 \end{cases} $$
$$ \begin{cases} LP_l=G_l-G_{l+1}^{\ast}, & 當0 \le l \le N時 \\ LP_N=G_N, & 當l=N時 \end{cases} $$

式中,$N$為拉普拉斯金字塔頂層號,$LP_l$是拉普拉斯金字塔分解的第$l$層圖像。

由$LP_0,LP_1, \dots,LP_l,\dots,LP_N$構成的金字塔即為拉普拉斯金字塔。它的每一層圖像是高斯金字塔本層圖像與其高一級的圖像經內插放大后圖像的差,此過程相當于帶通濾波,因此拉普拉斯金字塔又稱為帶通金字塔分解。下圖為小貓圖像的拉普拉斯金字塔圖像:圖像的金字塔化能高效地(計算效率也較高)對圖像進行多尺度的表達,但它缺乏堅實的理論基礎,不能分析圖像中物體的各種尺度(雖然我們有小貓的金字塔圖像,我們還是不知道原圖像內小貓的大小)。 尺度空間理論本質 以及其理論支撐:信號的尺度空間剛提出是就是通過一系列單參數、寬度遞增的高斯濾波器將原始信號濾波得到到組低頻信號。那么一個很明顯的疑問是:除了高斯濾波之外,其他帶有參數t的低通濾波器是否也可以用來生成一個尺度空間。
后來Koenerink、Lindeberg[Scale-space theory in computer vision]、Florack等人用精確的數學形式通過不同的途徑都證明了高斯核是實現尺度變換的唯一變換核。
雖然很多研究者從可分性、旋轉不變性、因果性等特性推出高斯濾波器是建立線性尺度空間的最優濾波器。然后在數字圖像處理中,需要對核函數進行采樣,離散的高斯函數并不滿足連續高斯函數的的一些優良的性質。所以后來出現了一些非線性的濾波器組來建立尺度空間,如B樣條核函數。
使用高斯濾波器對圖像進行尺度空間金塔塔圖的構建,讓這個尺度空間具有下面的性質:
信號在尺度t上的表達可以看成是原信號在空間上的一系列加權平均,權重就是具有不同尺度參數的高斯核。
信號在尺度t上的表達也對應于用一個無方向性的孔徑函數(特征長度為$\sigma=\sqrt{t}$)來觀測信號的結果。這時候信號中特征長度小于$\sigma$的精細結構會被抑制[理解為一維信號上小于$\sigma$的波動會被平滑掉。
也叫高斯核族的半群(Semi-Group)性質:兩個高斯核的卷積等同于另外一個不同核參數的高斯核卷積。
$$g(\mu,\sigma_1)\ast g(\mu,\sigma_2)=g(\mu,\sqrt{\sigma_1^2+\sigma_2^2})$$
這個性質的意思就是說不同的高斯核對圖像的平滑是連續的。
這個特征可以從人眼的視覺原理去理解,人在看一件 物體時,離得越遠,物體的細節看到的越少,細節特征是在減少的。
高斯核對圖像進行濾波具有壓制局部細節的性質。
這里只是一個公式推導的問題,對原來的信號加一個變換函數,對變換后的信號再進行高斯核的尺度空間生成,新的信號的極值點等特征是不變的。
Young對經生理學的研究中發現,哺乳動物的視網膜和視覺皮層的感受區域可以很好地用4階以內的高斯微分來建模

一般我們采集到的圖像中,我們并不知道我們感興趣的目標在圖像中的尺度,在這樣的情況下,我們對圖像進行分析時就無法選擇合適的參數,比如邊緣檢測,可能由于參數不當,而造成過多的局部細節。

3 為什么用高斯核

圖像的金字塔化能高效地(計算效率也較高)對圖像進行多尺度的表達,但它缺乏堅實的理論基礎,不能分析圖像中物體的各種尺度(雖然我們有小貓的金字塔圖像,我們還是不知道原圖像內小貓的大小)。

信號的尺度空間剛提出是就是通過一系列單參數、寬度遞增的高斯濾波器將原始信號濾波得到到組低頻信號。那么一個很明顯的疑問是:除了高斯濾波之外,其他帶有參數t的低通濾波器是否也可以用來生成一個尺度空間。

后來Koenerink、Lindeberg[Scale-space theory in computer vision]、Florack等人用精確的數學形式通過不同的途徑都證明了高斯核是實現尺度變換的唯一變換核。

雖然很多研究者從可分性、旋轉不變性、因果性等特性推出高斯濾波器是建立線性尺度空間的最優濾波器。然后在數字圖像處理中,需要對核函數進行采樣,離散的高斯函數并不滿足連續高斯函數的的一些優良的性質。所以后來出現了一些非線性的濾波器組來建立尺度空間,如B樣條核函數。

使用高斯濾波器對圖像進行尺度空間金塔塔圖的構建,讓這個尺度空間具有下面的性質:

1)加權平均和有限孔徑效應

信號在尺度t上的表達可以看成是原信號在空間上的一系列加權平均,權重就是具有不同尺度參數的高斯核。

信號在尺度t上的表達也對應于用一個無方向性的孔徑函數(特征長度為σ=t)來觀測信號的結果。這時候信號中特征長度小于σ的精細結構會被抑制[理解為一維信號上小于σ的波動會被平滑掉。]。

2)層疊平滑

也叫高斯核族的半群(Semi-Group)性質:兩個高斯核的卷積等同于另外一個不同核參數的高斯核卷積。

g(μ,σ1)?g(μ,σ2)=g(μ,σ21+σ22???????)

這個性質的意思就是說不同的高斯核對圖像的平滑是連續的。

3)局部極值遞性

這個特征可以從人眼的視覺原理去理解,人在看一件物體時,離得越遠,物體的細節看到的越少,細節特征是在減少的。

高斯核對圖像進行濾波具有壓制局部細節的性質。

4)尺度伸縮不變性。

這里只是一個公式推導的問題,對原來的信號加一個變換函數,對變換后的信號再進行高斯核的尺度空間生成,新的信號的極值點等特征是不變的。

Young對經生理學的研究中發現,哺乳動物的視網膜和視覺皮層的感受區域可以很好地用4階以內的高斯微分來建模。

4 尺度的選擇

一般我們采集到的圖像中,我們并不知道我們感興趣的目標在圖像中的尺度,在這樣的情況下,我們對圖像進行分析時就無法選擇合適的參數,比如邊緣檢測,可能由于參數不當,而造成過多的局部細節。

如下圖所示:紅色圓圈內的斑點的大小(直徑)比例對應著兩幅圖像之間尺度比例(scale ratio)。如果對兩幅圖像采用相同的固定尺度的LoG檢測器檢測,很難將這兩個斑點檢測出來。LoG檢測器相當于一個匹配濾波器,只有當LoG的尺度與圖片中斑點結構尺度相當時才會有較強的響應。如果用與左圖中斑點結構相當大小尺度LoG算子,在中的大斑點的對應的LoG響應很小不能被檢測出來,反之亦然。因此固定尺度的LoG斑點檢測器不具有尺度不變性。使用尺度空間進行多尺度檢測可以將兩幅圖像中不同尺度的斑點檢測出來。但是由于斑點結構是在一定尺度范圍之內存在的,比如用5~8尺度的LoG可能都能檢測出來右邊圖像中的斑點結構,所以在尺度空間中進行斑點檢測會有重復檢測的缺點。

?
在實際操作中,我們需要定義一個特征響應函數,在不同的尺度空間上尋找一個極值點。比如小貓的金字塔圖像分析時,我們定義了一個大小為[w,h]的小貓的模板,用這個模板去與金字塔系列圖像匹配,一定有匹配度最佳(即特征響應最強)。

需要注意的是,圖像結構往往是在粗糙的尺度上被檢測到,此時位置信息未必是最準確的,因此通常圖像的尺度分析包含兩個階段:首先在粗尺度上進行特征(結構)檢測,然后再在細尺度上進行精確定位。

5.高斯金字塔

Gaussian Pyramid

  • Imagine the pyramid as a set of layers in which the higher the layer, the smaller the size.

  • Every layer is numbered from bottom to top, so layer??(denoted as??is smaller than layer??().

  • To produce layer??in the Gaussian pyramid, we do the following:

    • Convolve??with a Gaussian kernel:

    • Remove every even-numbered row and column.

  • You can easily notice that the resulting image will be exactly one-quarter the area of its predecessor. Iterating this process on the input image??(original image) produces the entire pyramid.

  • The procedure above was useful to downsample an image. What if we want to make it bigger?:

    • First, upsize the image to twice the original in each dimension, wit the new even rows and columns filled with zeros ()
    • Perform a convolution with the same kernel shown above (multiplied by 4) to approximate the values of the “missing pixels”
  • These two procedures (downsampling and upsampling as explained above) are implemented by the OpenCV functions?pyrUp?and?pyrDown, as we will see in an example with the code below:

Note

?

When we reduce the size of an image, we are actually?losing?information of the image.

Code

This tutorial code’s is shown lines below. You can also download it from?here

#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <math.h>
#include <stdlib.h>
#include <stdio.h>using namespace cv;/// Global variables
Mat src, dst, tmp;
char* window_name = "Pyramids Demo";/**
 * @function main
 */
int main( int argc, char** argv )
{/// General instructionsprintf( "\n Zoom In-Out demo  \n " );printf( "------------------ \n" );printf( " * [u] -> Zoom in  \n" );printf( " * [d] -> Zoom out \n" );printf( " * [ESC] -> Close program \n \n" );/// Test image - Make sure it s divisible by 2^{n}src = imread( "../images/chicky_512.jpg" );if( !src.data ){ printf(" No data! -- Exiting the program \n");return -1; }tmp = src;dst = tmp;/// Create windownamedWindow( window_name, CV_WINDOW_AUTOSIZE );imshow( window_name, dst );/// Loopwhile( true ){int c;c = waitKey(10);if( (char)c == 27 ){ break; }if( (char)c == 'u' ){ pyrUp( tmp, dst, Size( tmp.cols*2, tmp.rows*2 ) );printf( "** Zoom In: Image x 2 \n" );}else if( (char)c == 'd' ){ pyrDown( tmp, dst, Size( tmp.cols/2, tmp.rows/2 ) );printf( "** Zoom Out: Image / 2 \n" );}imshow( window_name, dst );tmp = dst;}return 0;
}

Explanation

  1. Let’s check the general structure of the program:

    • Load an image (in this case it is defined in the program, the user does not have to enter it as an argument)

      /// Test image - Make sure it s divisible by 2^{n}
      src = imread( "../images/chicky_512.jpg" );
      if( !src.data ){ printf(" No data! -- Exiting the program \n");return -1; }
      
    • Create a Mat object to store the result of the operations (dst) and one to save temporal results (tmp).

      Mat src, dst, tmp;
      /* ... */
      tmp = src;
      dst = tmp;
      
    • Create a window to display the result

      namedWindow( window_name, CV_WINDOW_AUTOSIZE );
      imshow( window_name, dst );
      
    • Perform an infinite loop waiting for user input.

      while( true )
      {int c;c = waitKey(10);if( (char)c == 27 ){ break; }if( (char)c == 'u' ){ pyrUp( tmp, dst, Size( tmp.cols*2, tmp.rows*2 ) );printf( "** Zoom In: Image x 2 \n" );}else if( (char)c == 'd' ){ pyrDown( tmp, dst, Size( tmp.cols/2, tmp.rows/2 ) );printf( "** Zoom Out: Image / 2 \n" );}imshow( window_name, dst );tmp = dst;
      }
      

      Our program exits if the user presses?ESC. Besides, it has two options:

      • Perform upsampling (after pressing ‘u’)

        pyrUp( tmp, dst, Size( tmp.cols*2, tmp.rows*2 )
        

        We use the function?pyrUp?with 03 arguments:

        • tmp: The current image, it is initialized with the?src?original image.
        • dst: The destination image (to be shown on screen, supposedly the double of the input image)
        • Size( tmp.cols*2, tmp.rows*2 )?: The destination size. Since we are upsampling,?pyrUp?expects a size double than the input image (in this case?tmp).
      • Perform downsampling (after pressing ‘d’)

        pyrDown( tmp, dst, Size( tmp.cols/2, tmp.rows/2 )
        

        Similarly as with?pyrUp, we use the function?pyrDown?with 03 arguments:

        • tmp: The current image, it is initialized with the?src?original image.
        • dst: The destination image (to be shown on screen, supposedly half the input image)
        • Size( tmp.cols/2, tmp.rows/2 )?: The destination size. Since we are upsampling,?pyrDown?expects half the size the input image (in this case?tmp).
      • Notice that it is important that the input image can be divided by a factor of two (in both dimensions). Otherwise, an error will be shown.

      • Finally, we update the input image?tmp?with the current image displayed, so the subsequent operations are performed on it.

        tmp = dst;
        

Results

  • After compiling the code above we can test it. The program calls an image?chicky_512.jpg?that comes in the?tutorial_code/image?folder. Notice that this image is?, hence a downsample won’t generate any error (). The original image is shown below:

  • First we apply two successive?pyrDown?operations by pressing ‘d’. Our output is:

  • Note that we should have lost some resolution due to the fact that we are diminishing the size of the image. This is evident after we apply?pyrUp?twice (by pressing ‘u’). Our output is now:

六:補充說明【OpenCV】SIFT原理與源碼分析:DoG尺度空間構造

SIFT原理與源碼分析系列文章索引:http://blog.csdn.net/xiaowei_cqu/article/details/8069548

尺度空間理論


自然界中的物體隨著觀測尺度不同有不同的表現形態。例如我們形容建筑物用“米”,觀測分子、原子等用“納米”。更形象的例子比如Google地圖,滑動鼠標輪可以改變觀測地圖的尺度,看到的地圖繪制也不同;還有電影中的拉伸鏡頭等等……尺度空間中各尺度圖像的模糊程度逐漸變大,能夠模擬人在距離目標由近到遠時目標在視網膜上的形成過程。
尺度越大圖像越模糊。

為什么要討論尺度空間?

用機器視覺系統分析未知場景時,計算機并不預先知道圖像中物體的尺度。我們需要同時考慮圖像在多尺度下的描述,獲知感興趣物體的最佳尺度。另外如果不同的尺度下都有同樣的關鍵點,那么在不同的尺度的輸入圖像下就都可以檢測出來關鍵點匹配,也就是尺度不變性。

圖像的尺度空間表達就是圖像在所有尺度下的描述。

尺度空間表達與金字塔多分辨率表達

高斯模糊

高斯核是唯一可以產生多尺度空間的核(《Scale-space theory: A basic tool for analysing structures at different scales》)。一個圖像的尺度空間L(x,y,σ) ,定義為原始圖像I(x,y)與一個可變尺度的2維高斯函數G(x,y,σ)卷積運算。?

二維空間高斯函數:

尺度空間:

尺度是自然客觀存在的,不是主觀創造的。高斯卷積只是表現尺度空間的一種形式。

二維空間高斯函數是等高線從中心成正太分布的同心圓:

分布不為零的點組成卷積陣與原始圖像做變換,即每個像素值是周圍相鄰像素值的高斯平均。一個5*5的高斯模版如下所示:


高斯模版是圓對稱的,且卷積的結果使原始像素值有最大的權重,距離中心越遠的相鄰像素值權重也越小。
在實際應用中,在計算高斯函數的離散近似時,在大概距離之外的像素都可以看作不起作用,這些像素的計算也就可以忽略。所以,通常程序只計算(6σ+1)*(6σ+1)就可以保證相關像素影響。

高斯模糊另一個很厲害的性質就是線性可分使用二維矩陣變換的高斯模糊可以通過在水平和豎直方向各進行一維高斯矩陣變換相加得到。


O(N^2*m*n)次乘法就縮減成了O(N*m*n)+O(N*m*n)次乘法。(N為高斯核大小,m,n為二維圖像高和寬)

其實高斯這一部分只需要簡單了解就可以了,在OpenCV也只需要一句代碼:

[cpp]?view plain?copy
  1. GaussianBlur(dbl,?dbl,?Size(),?sig_diff,?sig_diff);??
這里詳寫了一下是因為這塊兒對分析算法效率比較有用,而且高斯模糊的算法真的很漂亮~

金字塔多分辨率

金字塔是早期圖像多尺度的表示形式。圖像金字塔化一般包括兩個步驟:使用低通濾波器平滑圖像;對平滑圖像進行降采樣(通常是水平,豎直方向1/2),從而得到一系列尺寸縮小的圖像。


上圖中(a)是對原始信號進行低通濾波,(b)是降采樣得到的信號。

而對于二維圖像,一個傳統的金字塔中,每一層圖像由上一層分辨率的長、寬各一半,也就是四分之一的像素組成:


多尺度和多分辨率

尺度空間表達和金字塔多分辨率表達之間最大的不同是:

  • 尺度空間表達是由不同高斯核平滑卷積得到,在所有尺度上有相同的分辨率;
  • 而金字塔多分辨率表達每層分辨率減少固定比率。
所以,金字塔多分辨率生成較快,且占用存儲空間少;而多尺度表達隨著尺度參數的增加冗余信息也變多。多尺度表達的優點在于圖像的局部特征可以用簡單的形式在不同尺度上描述;而金字塔表達沒有理論基礎,難以分析圖像局部特征。

DoG(Difference of Gaussian)

高斯拉普拉斯LoG金字塔

結合尺度空間表達和金字塔多分辨率表達,就是在使用尺度空間時使用金字塔表示,也就是計算機視覺中最有名的拉普拉斯金子塔(《The Laplacian pyramid as a compact image code》)。高斯拉普拉斯LoG(Laplace of Guassian)算子就是對高斯函數進行拉普拉斯變換:
核心思想還是高斯,這個不多敘述。

高斯差分DoG金字塔

DoG(Difference of Gaussian)其實是對高斯拉普拉斯LoG的近似,也就是對的近似。SIFT算法建議,在某一尺度上的特征檢測可以通過對兩個相鄰高斯尺度空間的圖像相減,得到DoG的響應值圖像D(x,y,σ)。然后仿照LoG方法,通過對響應值圖像D(x,y,σ)進行局部最大值搜索,在空間位置和尺度空間定位局部特征點。其中:
k為相鄰兩個尺度空間倍數的常數。
上圖中(a)是DoG的三維圖,(b)是DoG與LoG的對比。

金字塔構建


構建高斯金字塔

為了得到DoG圖像,先要構造高斯金字塔。我們回過頭來繼續說高斯金字塔~高斯金字塔在多分辨率金字塔簡單降采樣基礎上加了高斯濾波,也就是對金字塔每層圖像用不同參數的σ做高斯模糊,使得每層金字塔有多張高斯模糊圖像。金字塔每層多張圖像合稱為一組(Octave),每組有多張(也叫層Interval)圖像。另外,降采樣時,金字塔上邊一組圖像的第一張圖像(最底層的一張)是由前一組(金字塔下面一組)圖像的倒數第三張隔點采樣得到。

以下是OpenCV中構建高斯金字塔的代碼,我加了相應的注釋:[cpp]?view plain?copy
  1. //?構建nOctaves組(每組nOctaves+3層)高斯金字塔??
  2. void?SIFT::buildGaussianPyramid(?const?Mat&?base,?vector<Mat>&?pyr,?int?nOctaves?)?const??
  3. {??
  4. ????vector<double>?sig(nOctaveLayers?+?3);??
  5. ????pyr.resize(nOctaves*(nOctaveLayers?+?3));??
  6. ??
  7. ????//?precompute?Gaussian?sigmas?using?the?following?formula:??
  8. ????//??\sigma_{total}^2?=?\sigma_{i}^2?+?\sigma_{i-1}^2、??
  9. ????//?計算對圖像做不同尺度高斯模糊的尺度因子??
  10. ????sig[0]?=?sigma;??
  11. ????double?k?=?pow(?2.,?1.?/?nOctaveLayers?);??
  12. ????for(?int?i?=?1;?i?<?nOctaveLayers?+?3;?i++?)??
  13. ????{??
  14. ????????double?sig_prev?=?pow(k,?(double)(i-1))*sigma;??
  15. ????????double?sig_total?=?sig_prev*k;??
  16. ????????sig[i]?=?std::sqrt(sig_total*sig_total?-?sig_prev*sig_prev);??
  17. ????}??
  18. ??
  19. ????for(?int?o?=?0;?o?<?nOctaves;?o++?)??
  20. ????{??
  21. ????????//?DoG金子塔需要nOctaveLayers+2層圖像來檢測nOctaves層尺度??
  22. ????????//?所以高斯金字塔需要nOctaveLayers+3層圖像得到nOctaveLayers+2層DoG金字塔??
  23. ????????for(?int?i?=?0;?i?<?nOctaveLayers?+?3;?i++?)??
  24. ????????{??
  25. ????????????//?dst為第o組(Octave)金字塔??
  26. ????????????Mat&?dst?=?pyr[o*(nOctaveLayers?+?3)?+?i];??
  27. ????????????//?第0組第0層為原始圖像??
  28. ????????????if(?o?==?0??&&??i?==?0?)??
  29. ????????????????dst?=?base;??
  30. ??????????????
  31. ????????????//?base?of?new?octave?is?halved?image?from?end?of?previous?octave??
  32. ????????????//?每一組第0副圖像時上一組倒數第三幅圖像隔點采樣得到??
  33. ????????????else?if(?i?==?0?)??
  34. ????????????{??
  35. ????????????????const?Mat&?src?=?pyr[(o-1)*(nOctaveLayers?+?3)?+?nOctaveLayers];??
  36. ????????????????resize(src,?dst,?Size(src.cols/2,?src.rows/2),??
  37. ???????????????????????0,?0,?INTER_NEAREST);??
  38. ????????????}??
  39. ????????????//?每一組第i副圖像是由第i-1副圖像進行sig[i]的高斯模糊得到??
  40. ????????????//?也就是本組圖像在sig[i]的尺度空間下的圖像??
  41. ????????????else??
  42. ????????????{??
  43. ????????????????const?Mat&?src?=?pyr[o*(nOctaveLayers?+?3)?+?i-1];??
  44. ????????????????GaussianBlur(src,?dst,?Size(),?sig[i],?sig[i]);??
  45. ????????????}??
  46. ????????}??
  47. ????}??
  48. }??

高斯金字塔的組數為:
代碼10-17行是計算高斯模糊的系數σ,具體關系如下:
其中,σ為尺度空間坐標,s為每組中層坐標,σ0為初始尺度,S為每組層數(一般為3~5)。根據這個公式,我們可以得到金字塔組內各層尺度以及組間各圖像尺度關系。
組內相鄰圖像尺度關系:
相鄰組間尺度關系:
所以,相鄰兩組的同一層尺度為2倍的關系
最終尺度序列總結為:
o為金字塔組數,n為每組金字塔層數。

構建DoG金字塔

構建高斯金字塔之后,就是用金字塔相鄰圖像相減構造DoG金字塔。


下面為構造DoG的代碼:[cpp]?view plain?copy
  1. //?構建nOctaves組(每組nOctaves+2層)高斯差分金字塔??
  2. void?SIFT::buildDoGPyramid(?const?vector<Mat>&?gpyr,?vector<Mat>&?dogpyr?)?const??
  3. {??
  4. ????int?nOctaves?=?(int)gpyr.size()/(nOctaveLayers?+?3);??
  5. ????dogpyr.resize(?nOctaves*(nOctaveLayers?+?2)?);??
  6. ??
  7. ????for(?int?o?=?0;?o?<?nOctaves;?o++?)??
  8. ????{??
  9. ????????for(?int?i?=?0;?i?<?nOctaveLayers?+?2;?i++?)??
  10. ????????{??
  11. ????????????//?第o組第i副圖像為高斯金字塔中第o組第i+1和i組圖像相減得到??
  12. ????????????const?Mat&?src1?=?gpyr[o*(nOctaveLayers?+?3)?+?i];??
  13. ????????????const?Mat&?src2?=?gpyr[o*(nOctaveLayers?+?3)?+?i?+?1];??
  14. ????????????Mat&?dst?=?dogpyr[o*(nOctaveLayers?+?2)?+?i];??
  15. ????????????subtract(src2,?src1,?dst,?noArray(),?CV_16S);??
  16. ????????}??
  17. ????}??
  18. } ?

SIFT簡介

Scale Invariant Feature Transform,尺度不變特征變換匹配算法,是由David G. Lowe在1999年(《Object Recognition from Local Scale-Invariant Features》)提出的高效區域檢測算法,在2004年(《Distinctive Image Features from Scale-Invariant Keypoints》)得以完善。

SIFT特征對旋轉、尺度縮放、亮度變化等保持不變性,是非常穩定的局部特征,現在應用很廣泛。而SIFT算法是將Blob檢測,特征矢量生成,特征匹配搜索等步驟結合在一起優化。我會更新一系列文章,分析SIFT算法原理及OpenCV 2.4.2實現的SIFT源碼:

  1. DoG尺度空間構造(Scale-space extrema detection)http://blog.csdn.net/xiaowei_cqu/article/details/8067881
  2. 關鍵點搜索與定位(Keypoint localization)http://blog.csdn.net/xiaowei_cqu/article/details/8087239
  3. 方向賦值(Orientation assignment)http://blog.csdn.net/xiaowei_cqu/article/details/8096072
  4. 關鍵點描述(Keypoint descriptor)http://blog.csdn.net/xiaowei_cqu/article/details/8113565
  5. OpenCV實現:特征檢測器FeatureDetectorhttp://blog.csdn.net/xiaowei_cqu/article/details/8652096
  6. SIFT中LoG和DoG的比較http://blog.csdn.net/xiaowei_cqu/article/details/27692123
OpenCV2.3之后實現了SIFT的代碼,2.4改掉了一些bug。本系列文章主要分析OpenCV 2.4.2SIFT函數源碼。SIFT位于OpenCV nonfree的模塊,David G. Lowe申請了算法的版權,請尊重作者權力,務必在允許范圍內使用。

SIFT in OpenCV

OpenCV中的SIFT函數主要有兩個接口。

構造函數:

[cpp]?view plain?copy
  1. SIFT::SIFT(int?nfeatures=0,?int?nOctaveLayers=3,?double?contrastThreshold=0.04,?double?edgeThreshold=??
  2. 10,?double?sigma=1.6)??
nfeatures:特征點數目(算法對檢測出的特征點排名,返回最好的nfeatures個特征點)。
nOctaveLayers:金字塔中每組的層數(算法中會自己計算這個值,后面會介紹)。
contrastThreshold:過濾掉較差的特征點的對閾值。contrastThreshold越大,返回的特征點越少。
edgeThreshold:過濾掉邊緣效應的閾值。edgeThreshold越大,特征點越多(被多濾掉的越少)。
sigma:金字塔第0層圖像高斯濾波系數,也就是σ。

重載操作符:

[cpp]?view plain?copy
  1. void?SIFT::operator()(InputArray?img,?InputArray?mask,?vector<KeyPoint>&?keypoints,?OutputArray??
  2. descriptors,?bool?useProvidedKeypoints=false)??

img:8bit灰度圖像
mask:圖像檢測區域(可選)
keypoints:特征向量矩陣
descipotors:特征點描述的輸出向量(如果不需要輸出,需要傳cv::noArray())。
useProvidedKeypoints:是否進行特征點檢測。ture,則檢測特征點;false,只計算圖像特征描述。

函數源碼

構造函數SIFT()主要用來初始化參數,并沒有特定的操作:[cpp]?view plain?copy
  1. SIFT::SIFT(?int?_nfeatures,?int?_nOctaveLayers,??
  2. ???????????double?_contrastThreshold,?double?_edgeThreshold,?double?_sigma?)??
  3. ????:?nfeatures(_nfeatures),?nOctaveLayers(_nOctaveLayers),??
  4. ????contrastThreshold(_contrastThreshold),?edgeThreshold(_edgeThreshold),?sigma(_sigma)??
  5. ????//?sigma:對第0層進行高斯模糊的尺度空間因子。??
  6. ????//?默認為1.6(如果是軟鏡攝像頭捕獲的圖像,可以適當減小此值)??
  7. {??
  8. }??

主要操作還是利用重載操作符()來執行:[cpp]?view plain?copy
  1. void?SIFT::operator()(InputArray?_image,?InputArray?_mask,??
  2. ??????????????????????vector<KeyPoint>&?keypoints,??
  3. ??????????????????????OutputArray?_descriptors,??
  4. ??????????????????????bool?useProvidedKeypoints)?const??
  5. //?mask?:Optional?input?mask?that?marks?the?regions?where?we?should?detect?features.??
  6. //?Boolean?flag.?If?it?is?true,?the?keypoint?detector?is?not?run.?Instead,??
  7. //?the?provided?vector?of?keypoints?is?used?and?the?algorithm?just?computes?their?descriptors.??
  8. //?descriptors?–?The?output?matrix?of?descriptors.??
  9. //?Pass?cv::noArray()?if?you?do?not?need?them.??????????????
  10. {??
  11. ????Mat?image?=?_image.getMat(),?mask?=?_mask.getMat();??
  12. ??
  13. ????if(?image.empty()?||?image.depth()?!=?CV_8U?)??
  14. ????????CV_Error(?CV_StsBadArg,?"image?is?empty?or?has?incorrect?depth?(!=CV_8U)"?);??
  15. ??
  16. ????if(?!mask.empty()?&&?mask.type()?!=?CV_8UC1?)??
  17. ????????CV_Error(?CV_StsBadArg,?"mask?has?incorrect?type?(!=CV_8UC1)"?);??
  18. ??
  19. ??????????
  20. ????//?得到第1組(Octave)圖像??
  21. ????Mat?base?=?createInitialImage(image,?false,?(float)sigma);??
  22. ????vector<Mat>?gpyr,?dogpyr;??
  23. ????//?每層金字塔圖像的組數(Octave)??
  24. ????int?nOctaves?=?cvRound(log(?(double)std::min(?base.cols,?base.rows?)?)?/?log(2.)?-?2);??
  25. ??
  26. ????//?double?t,?tf?=?getTickFrequency();??
  27. ????//?t?=?(double)getTickCount();??
  28. ??????
  29. ????//?構建金字塔(金字塔層數和組數相等)??
  30. ????buildGaussianPyramid(base,?gpyr,?nOctaves);??
  31. ????//?構建高斯差分金字塔??
  32. ????buildDoGPyramid(gpyr,?dogpyr);??
  33. ??
  34. ????//t?=?(double)getTickCount()?-?t;??
  35. ????//printf("pyramid?construction?time:?%g\n",?t*1000./tf);??
  36. ??????
  37. ????//?useProvidedKeypoints默認為false??
  38. ????//?使用keypoints并計算特征點的描述符??
  39. ????if(?!useProvidedKeypoints?)??
  40. ????{??
  41. ????????//t?=?(double)getTickCount();??
  42. ????????findScaleSpaceExtrema(gpyr,?dogpyr,?keypoints);??
  43. ????????//除去重復特征點??
  44. ????????KeyPointsFilter::removeDuplicated(?keypoints?);???
  45. ??
  46. ????????//?mask標記檢測區域(可選)??
  47. ????????if(?!mask.empty()?)??
  48. ????????????KeyPointsFilter::runByPixelsMask(?keypoints,?mask?);??
  49. ??
  50. ????????//?retainBest:根據相應保留指定數目的特征點(features2d.hpp)??
  51. ????????if(?nfeatures?>?0?)??
  52. ????????????KeyPointsFilter::retainBest(keypoints,?nfeatures);??
  53. ????????//t?=?(double)getTickCount()?-?t;??
  54. ????????//printf("keypoint?detection?time:?%g\n",?t*1000./tf);??
  55. ????}??
  56. ????else??
  57. ????{??
  58. ????????//?filter?keypoints?by?mask??
  59. ????????//?KeyPointsFilter::runByPixelsMask(?keypoints,?mask?);??
  60. ????}??
  61. ??
  62. ????//?特征點輸出數組??
  63. ????if(?_descriptors.needed()?)??
  64. ????{??
  65. ????????//t?=?(double)getTickCount();??
  66. ????????int?dsize?=?descriptorSize();??
  67. ????????_descriptors.create((int)keypoints.size(),?dsize,?CV_32F);??
  68. ????????Mat?descriptors?=?_descriptors.getMat();??
  69. ??
  70. ????????calcDescriptors(gpyr,?keypoints,?descriptors,?nOctaveLayers);??
  71. ????????//t?=?(double)getTickCount()?-?t;??
  72. ????????//printf("descriptor?extraction?time:?%g\n",?t*1000./tf);??
  73. ????}??
  74. }??

函數中用到的構造金字塔:?buildGaussianPyramid(base, gpyr, nOctaves);等步驟請參見文章后續系列。
[1] opencv教程:圖像金字塔
[2] 計算機視覺——算法與應用 3.5節 金字塔與小波
[3] 現代數字圖像 1.1節 圖像多分辨率真金字塔
[4] OpenCV的5種圖像內插方法
[5]? http://www.360doc.com/content/15/1115/12/25664332_513338038.shtml
[6] http://blog.csdn.net/xiaowei_cqu/article/details/8067881
[7] http://blog.csdn.net/xiaowei_cqu/article/details/8069548

[8]

總結

以上是生活随笔為你收集整理的尺度空间理论与图像金字塔的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

99热这里精品 | 91亚洲精品国偷拍自产在线观看 | 在线观看91精品视频 | 国产女人40精品一区毛片视频 | 久香蕉 | 国产在线观看av | 有码中文在线 | 欧美91视频 | 天天色天天草天天射 | 中文字幕资源网 国产 | 五月天激情电影 | 国产麻豆果冻传媒在线观看 | 免费在线观看成年人视频 | 亚洲日韩中文字幕在线播放 | 日本三级中文字幕在线观看 | 日韩中文字幕视频在线观看 | 国产第页 | 日韩av成人免费看 | 美女国产网站 | 黄色在线视频网址 | 久久99精品国产91久久来源 | 久久久久国产成人免费精品免费 | 五月激情视频 | 久草视频观看 | 欧美日韩中文字幕在线视频 | 亚洲一区久久 | 亚洲综合在 | 草久久久 | 美女久久99| 在线а√天堂中文官网 | 狠狠狠狠狠狠天天爱 | 九九久久影院 | 亚洲精品在线视频播放 | 性色av香蕉一区二区 | 国内视频 | 国产高清免费在线播放 | 欧美日韩电影在线播放 | 人人狠狠综合久久亚洲婷 | 成人黄色国产 | 日韩精品不卡在线 | 日韩a免费 | a色视频| 91 在线视频播放 | 色狠狠一区二区 | 久久中文视频 | 亚洲视频网站在线观看 | 国产不卡视频在线 | 中文字幕在线播出 | 在线免费黄色av | 成人在线免费看 | 亚洲资源| www日日 | 草久久影院 | 国产精品免费久久久久久 | 99免费精品视频 | 97偷拍在线视频 | 中文字幕 国产视频 | 久久人91精品久久久久久不卡 | 色94色欧美 | 国产一区免费在线 | 国产不卡精品 | 天天操 夜夜操 | 天堂av在线网 | 国产剧情一区 | 久久久久国产精品免费网站 | 日本性生活免费看 | 日日婷婷夜日日天干 | 美女精品久久久 | 96视频在线| 国产成人综合在线观看 | 日韩高清在线一区二区 | 欧美夫妻性生活电影 | 热九九精品 | 69国产精品视频 | 十八岁以下禁止观看的1000个网站 | 精品国产一区二区三区蜜臀 | 国产a国产| 精品国产一区二区三区蜜臀 | 国内揄拍国内精品 | 国产一区影院 | 91精品国产欧美一区二区 | 欧美性猛片, | 香蕉在线观看视频 | 人人射人人插 | 国产视频精品网 | 在线视频国产区 | 蜜桃麻豆www久久囤产精品 | 国产精品美女网站 | 国产欧美日韩一区 | 伊人婷婷在线 | 欧美三人交| 手机色站 | 精品国产一区二区三区男人吃奶 | 五月婷婷丁香综合 | 91片黄在线观看动漫 | 国产黄网在线 | 久久爱992xxoo | 日本h视频在线观看 | 成人免费视频播放 | 成人教育av | 久久黄色美女 | 九九九九热精品免费视频点播观看 | 91黄色小视频 | 91免费看片黄 | а天堂中文最新一区二区三区 | 久免费视频 | 国产亚洲无 | 在线观看自拍 | 黄色毛片电影 | 欧美日韩在线视频观看 | 久久国产一二区 | 亚洲国产精品资源 | 99久久99久久免费精品蜜臀 | 亚洲97在线 | 日韩电影中文字幕 | 国产亚洲精品中文字幕 | 亚州精品天堂中文字幕 | 久久精品99国产精品酒店日本 | 国产精品一区二区在线看 | 激情五月婷婷综合网 | 亚洲天堂色婷婷 | 国产黄a三级 | 日韩欧美在线综合网 | 国产免费黄视频在线观看 | 国产精品久久久久久久久久直播 | www亚洲视频| 99c视频在线| av中文字幕剧情 | 亚洲免费不卡 | 久久综合影院 | 国产成人精品999 | 久久精品小视频 | 国产黄色大全 | 午夜精品久久久久99热app | 丝袜美女视频网站 | 欧美精品亚洲二区 | 最近中文字幕完整视频高清1 | 人人精品久久 | 欧美中文字幕久久 | 91片黄在线观 | 香蕉视频在线免费看 | 日本中文字幕高清 | 夜夜狠狠 | 综合久久久 | 国产精品美女久久久久久久久 | 欧美激情另类文学 | 国产最新在线观看 | aaaaaa毛片| 成人蜜桃 | 欧美淫视频 | 国产成人av综合色 | 国产成人一级 | 久久久久久视频 | 91精品久久久久久综合五月天 | 免费91在线 | 1024手机看片国产 | 国产网红在线观看 | 日p视频 | 久久久精品电影 | 又湿又紧又大又爽a视频国产 | 在线精品亚洲一区二区 | 国产成人精品一区二 | 亚洲永久精品视频 | 国模精品在线 | 国产精品扒开做爽爽的视频 | 日本xxxx.com| 中文字幕乱码一区二区 | 成人片在线播放 | 香蕉久久久久 | 国产成人av片 | 亚州精品天堂中文字幕 | 婷婷丁香狠狠爱 | 亚洲 综合 国产 精品 | 亚洲另类交 | 天天爽天天碰狠狠添 | 国产精品伦一区二区三区视频 | 亚洲不卡av一区二区三区 | 国产亚洲精品女人久久久久久 | 国产黄色片免费 | 手机av在线不卡 | 日韩精品亚洲专区在线观看 | 人人舔人人插 | 免费在线观看不卡av | 日韩av网站在线播放 | 欧美日韩精品久久久 | 91免费版在线 | 网站在线观看日韩 | 久久精品视频4 | 中文亚洲欧美日韩 | 久久免费美女视频 | 国产黑丝一区二区 | 国产欧美中文字幕 | 亚洲一区日韩在线 | 中文字幕欧美激情 | 亚洲国产精品传媒在线观看 | 九色精品免费永久在线 | 久久久影院官网 | 久久久久久久久久影院 | 国产精品自在线 | 日韩视频三区 | 91手机电影 | 国产一级大片免费看 | av免费在线网站 | 午夜在线免费视频 | 婷婷精品国产欧美精品亚洲人人爽 | 久久香蕉国产精品麻豆粉嫩av | 成人免费在线视频 | 在线激情小视频 | 最近免费中文视频 | 麻豆超碰| 美女福利视频在线 | 国内精品久久久久久久久久久 | 在线91播放 | 国产va精品免费观看 | 免费色视频在线 | 国产精品久久久久久久久久久久午 | av片中文字幕 | 欧美久久久一区二区三区 | 深夜福利视频一区二区 | 中文字幕在线观看免费观看 | 国产精品欧美久久久久天天影视 | 日本久久免费电影 | 精品一区二区免费 | 性色视频在线 | 99在线观看视频网站 | 婷婷久久久 | 一级成人网 | 久久高清av| 人成在线免费视频 | a级一a一级在线观看 | 久久成| 婷婷色中文字幕 | 二区在线播放 | 91精品蜜桃 | 蜜桃麻豆www久久囤产精品 | 亚洲欧美在线综合 | 字幕网在线观看 | 欧美极度另类性三渗透 | 黄色小视频在线观看免费 | 国产黄色在线看 | 香蕉久草 | 极品美女被弄高潮视频网站 | 日韩成片| 日韩精品一区二区在线 | 五月在线视频 | 国产精品久久久久久久电影 | 国产精品久久久一区二区三区网站 | 亚洲国产美女久久久久 | 娇妻呻吟一区二区三区 | 丝袜制服综合网 | 国产韩国日本高清视频 | 久久久久夜色 | 操操综合| 四虎8848免费高清在线观看 | av高清一区二区三区 | 黄网av在线 | 在线免费观看视频 | 免费观看一区 | 久久天天躁夜夜躁狠狠躁2022 | 国产护士在线 | 国产精品情侣视频 | 亚洲乱码久久 | 国产精品欧美久久久久三级 | 黄色影院在线免费观看 | 黄av资源| 色七七亚洲影院 | 波多野结衣一区三区 | 亚洲一级影院 | 国产精品午夜久久久久久99热 | 免费中午字幕无吗 | 奇米网在线观看 | 尤物九九久久国产精品的分类 | 欧美一级电影片 | 亚洲艳情 | 日韩欧美xxxx| 欧美成人69av | 精品九九九 | 日韩高清在线一区二区三区 | 99产精品成人啪免费网站 | 欧美日本不卡视频 | 午夜精品久久久久久久99无限制 | 一区电影 | 色姑娘综合| 中文字幕电影高清在线观看 | 久久伦理 | 人人插人人澡 | 一区二区三区在线免费观看 | 日韩av成人免费看 | 天天操夜夜爱 | 精品美女在线观看 | 国产中文在线播放 | 国产精品白丝av | 久久综合九色99 | 日韩精品视频第一页 | 99在线免费视频 | 免费在线看成人av | 亚洲精品欧美视频 | 久久久久 免费视频 | 在线成人免费电影 | 国产精品18毛片一区二区 | 一区二区中文字幕在线播放 | 亚洲污视频 | 激情五月婷婷丁香 | 色天天综合久久久久综合片 | 日韩精品中文字幕在线观看 | 2023国产精品自产拍在线观看 | 久久躁日日躁aaaaxxxx | 亚洲精品乱码久久久久久久久久 | 欧美日韩二三区 | 一区二区视 | 久草久 | 日韩欧美综合在线视频 | 国产成人高清av | 国产麻豆电影在线观看 | 国产一区高清在线 | 国产裸体视频bbbbb | 99亚洲精品 | 天天爽天天碰狠狠添 | av免费观看高清 | 中文字幕高清免费日韩视频在线 | 91福利社在线观看 | 2022国产精品视频 | 国产视频1| 粉嫩av一区二区三区四区 | 亚洲日本三级 | 99色免费 | 国产高清区| bbb搡bbb爽爽爽 | 久久久国产精品网站 | 夜夜爽天天爽 | 午夜丰满寂寞少妇精品 | 日韩在线观看精品 | 日韩中文字幕免费视频 | 成人精品一区二区三区中文字幕 | 日韩av免费在线看 | 中文亚洲欧美日韩 | 精品久久一区二区 | 四虎影视成人永久免费观看亚洲欧美 | 成年人国产在线观看 | 欧美黄色成人 | 精品在线观看一区二区三区 | 日韩欧美国产免费播放 | 亚洲有 在线 | 国产中文字幕在线播放 | 日韩免费中文 | 国产香蕉久久精品综合网 | 久久艹在线观看 | 国产精品网址在线观看 | 99久久精品免费看国产麻豆 | 国产精品久久久久一区二区三区 | 亚洲精品欧美精品 | 国产 日韩 在线 亚洲 字幕 中文 | 九九涩涩av台湾日本热热 | 国产一级二级视频 | 91精品黄色| 国产精品久久一 | 日韩三级.com | 伊甸园av在线 | 亚洲高清色综合 | av电影中文 | 在线导航福利 | 国产亚洲视频在线免费观看 | 久久久久久久久久久免费视频 | 中文一区二区三区在线观看 | 欧美国产日韩久久 | 精品国产亚洲一区二区麻豆 | 久久在线一区 | 手机在线小视频 | 波多野结衣精品在线 | 国产99久久久国产精品免费看 | www.亚洲| 在线观看免费中文字幕 | 青春草免费在线视频 | 免费男女羞羞的视频网站中文字幕 | 久久亚洲福利 | 国产一区二区中文字幕 | 欧美日韩国产在线 | 色婷婷激情综合 | 一区二区精品在线视频 | 国产丝袜制服在线 | 波多野结衣在线观看视频 | 日韩在线国产 | 欧美成人播放 | 91看片淫黄大片一级在线观看 | 亚洲一区欧美激情 | 欧美日韩网址 | 亚洲精品777 | 九九久久婷婷 | 欧美aaa一级| av在线亚洲天堂 | a色视频 | 伊人超碰在线 | 香蕉日日| 精品国产精品久久一区免费式 | 天天躁日日躁狠狠 | 国产精品a成v人在线播放 | 久在线 | 国产福利久久 | 国产一区二区电影在线观看 | 成人久久免费视频 | 成人免费观看视频网站 | 亚洲欧美综合精品久久成人 | 色av资源网 | 在线中文字幕av观看 | 天天爽天天射 | 在线看日韩av | 成人av免费电影 | 亚洲一区二区三区91 | 999免费视频| 久草视频国产 | a√资源在线 | 日韩中文字幕免费在线播放 | 亚洲www天堂com | 久久国产区 | 婷婷 综合 色 | 久久精品国产亚洲精品2020 | 免费福利小视频 | 精品你懂的 | 美女国产网站 | 亚洲精品自在在线观看 | 久久免费看片 | 国产黄在线 | 亚洲成人黄色在线观看 | 伊人激情综合 | 亚洲一一在线 | 91在线看视频| a视频免费看 | 超碰在线观看97 | 懂色av一区二区在线播放 | 人人草天天草 | 国产成人免费网站 | 欧美一区二区在线免费看 | 中文字幕在线观看日本 | 国产在线观看地址 | 免费一级片在线 | 国产在线观看 | 91日韩在线播放 | 丁香婷婷色 | 国产va饥渴难耐女保洁员在线观看 | www.av免费| 日韩欧美国产激情在线播放 | 中文字幕资源在线 | 日韩天堂在线观看 | 久久久久久看片 | 天堂在线视频免费观看 | 日韩欧美在线高清 | 日韩不卡高清 | 久久激情影院 | 日本公妇色中文字幕 | 国产老太婆免费交性大片 | 91久久国产自产拍夜夜嗨 | 97电影在线 | 手机色在线 | 97超碰影视 | www一起操 | 日韩亚洲在线 | 麻豆视频免费看 | 日日夜夜中文字幕 | 91毛片视频| 欧美在线日韩在线 | 91在线麻豆 | 最新中文在线视频 | 国产一区视频在线 | 亚洲精品网页 | 久精品视频 | 96久久欧美麻豆网站 | 色成人亚洲 | 少妇性色午夜淫片aaaze | 精品国产视频一区 | 久99视频| 69视频国产 | 久久成人国产 | 中国老女人日b | 欧美精品被 | 国产手机视频在线 | 国产精品麻豆果冻传媒在线播放 | 亚洲综合欧美激情 | av最新资源 | 久久97超碰 | 精品免费视频123区 午夜久久成人 | 婷婷久久丁香 | 一区二区国产精品 | 亚洲在线网址 | 国产高清成人 | 手机成人在线 | 99久久久免费视频 | 永久免费的啪啪网站免费观看浪潮 | 美女视频国产 | 激情五月婷婷激情 | 美女免费黄网站 | 色噜噜在线观看 | 欧美日韩高清一区二区 | 天天操天天射天天爱 | 亚洲aⅴ一区二区三区 | 99热精品在线观看 | 天天天干 | 久久蜜臀av | 亚洲aⅴ免费在线观看 | 国产资源站 | 极品久久久久 | 奇米777777 | 深爱婷婷网 | www在线观看视频 | 亚洲91视频 | 成人av在线观| 久久婷婷亚洲 | 亚洲一区日韩精品 | 91av影视 | 国产精品99久久久久久久久久久久 | 婷婷视频在线播放 | 亚洲国产成人在线观看 | 亚洲激情综合 | 国产日韩欧美视频在线观看 | 免费日韩av片 | 成人亚洲精品国产www | 三级在线国产 | 国产高清视频免费在线观看 | 国产1级毛片 | 国产只有精品 | www天天干 | 国产精品成人一区 | 国产欧美日韩视频 | 欧美精品免费在线 | 免费看黄在线网站 | 91在线入口 | 国产视频日韩视频欧美视频 | 国产精品久久三 | 99产精品成人啪免费网站 | 久久久久国产视频 | 亚洲一级在线观看 | 国产精品高潮久久av | 色欧美成人精品a∨在线观看 | 天天弄天天干 | 国产91探花 | 欧美激情视频一二三区 | 伊人欧美 | 国产成人精品一区二区三区免费 | 99草视频在线观看 | 国产高清在线免费 | 色偷偷人人澡久久超碰69 | 国产一区二区影院 | 国产成人在线观看免费 | 麻豆手机在线 | 九九天堂 | 日韩草比| 国产精品一区二区在线免费观看 | 久插视频| av免费看在线 | 一区二区三区 亚洲 | 手机在线看永久av片免费 | 久久国产品 | 五月天丁香 | 国产资源精品在线观看 | 久久久久久黄 | 欧美国产在线看 | 国产亚洲日 | 操操操操网 | 草久视频在线 | 久久艹综合 | 国产又粗又猛又黄又爽的视频 | 日韩视频精品在线 | 亚洲精品av中文字幕在线在线 | 国产69精品久久久久9999apgf | 欧美成a人片在线观看久 | 91亚洲影院| 国产免费一区二区三区网站免费 | 香蕉在线播放 | 日韩在线观看的 | av黄色影院| 亚洲四虎在线 | 99产精品成人啪免费网站 | 在线成人观看 | 国产亚洲一区二区三区 | 日韩va在线观看 | 亚洲专区视频在线观看 | 亚洲九九九在线观看 | 亚洲综合色播 | 亚洲精品视频在线播放 | 激情综合网五月 | 亚洲成人资源在线观看 | 激情久久五月 | 精品在线一区二区三区 | 欧美在线视频不卡 | 国产福利电影网址 | 亚洲人成影院在线 | 亚洲黄色一级大片 | 国产网红在线 | 亚洲免费资源 | 人人爱人人做人人爽 | 亚洲影音先锋 | 国产精品夜夜夜一区二区三区尤 | 国产一区二区三区高清播放 | 免费视频三区 | 成人黄色片免费看 | 精品久久久久久久久久国产 | 久久久久激情电影 | 91九色pron| 天天射综合网站 | 国产精品美女久久久久久2018 | 久久公开视频 | 91桃色在线观看视频 | 欧美aa一级片 | 午夜精品一区二区三区在线 | 97人人超碰在线 | 日日干 天天干 | a久久免费视频 | 在线观看完整版免费 | 久久99国产精品自在自在app | 欧美a影视 | 亚洲天天草| 亚洲国产综合在线 | 天天操,夜夜操 | 97热在线观看 | 五月婷婷在线综合 | 久草影视在线观看 | 999亚洲国产996395 | 91在线观看视频网站 | 免费av小说 | 中文字幕在线观看三区 | 久久久99精品免费观看乱色 | 亚洲午夜精品一区二区三区电影院 | 亚洲午夜av| 91一区一区三区 | 日本精品在线视频 | 91精品久久久久久久99蜜桃 | 日韩三级视频在线观看 | 日韩av成人免费看 | 四季av综合网站 | 在线免费观看av网站 | 中文字幕在线播放日韩 | av亚洲产国偷v产偷v自拍小说 | 免费视频成人 | 天堂av在线免费观看 | 久久久一本精品99久久精品 | 午夜123| 一区二区电影在线观看 | 永久免费精品视频 | 亚洲成人在线免费 | 最新av电影网址 | 国产精品初高中精品久久 | 国产精品一区二区三区久久久 | 九九免费观看全部免费视频 | 久久线视频 | 97电院网手机版 | 视频在线国产 | 9在线观看免费高清完整版在线观看明 | av免费试看 | 久久av一区二区三区亚洲 | 成人综合婷婷国产精品久久免费 | 成人教育av | 欧美日韩久久不卡 | 亚洲人成免费 | 在线观看国产中文字幕 | 麻豆视频免费版 | 制服丝袜在线91 | 在线精品在线 | 久久在线观看视频 | 日韩一区二区三 | 精品国产自在精品国产精野外直播 | 日日操日日干 | 日韩com | 婷婷激情在线观看 | av不卡中文字幕 | 国产精品99久久99久久久二8 | 97天堂 | 亚洲精品中文字幕在线 | 久久国产a | 午夜色影院 | 天天干com| 美女视频黄在线 | av成人在线播放 | 人人添人人澡人人澡人人人爽 | 97超级碰碰碰碰久久久久 | 亚洲精品乱码久久久一二三 | 日韩欧美在线观看一区 | 日韩视频区 | 国产精品18久久久久久vr | 国产精品成人一区二区三区 | 国产精品久久99综合免费观看尤物 | 激情 一区二区 | 一区二区三区国产欧美 | 日本黄色大片儿 | 国产999精品久久久久久绿帽 | 国产亚洲精品久久网站 | 高清不卡一区二区三区 | 免费在线激情电影 | 国产精品一区二区久久 | av在线超碰 | 激情五月综合 | 五月天久久激情 | 99久久精品免费看国产免费软件 | 日韩精品中文字幕有码 | 日韩在线视频精品 | 91大神dom调教在线观看 | 九九热视频在线播放 | 精品久久一二三区 | 伊人网站 | 黄色影院在线免费观看 | 国产一区在线观看免费 | 精品一区二区免费视频 | 久久艹精品| 一区二区三区精品在线视频 | 国产精品亚洲人在线观看 | 日本精品二区 | 最新中文字幕在线播放 | 免费在线观看成人小视频 | 麻豆视频免费播放 | 日韩女同av| 国内精品中文字幕 | 国产v在线播放 | 操综合| 91精品久久久久久粉嫩 | 国产一区二区三区在线 | 精品久久久久久久久久 | 欧美一级久久 | 国产成人一区二 | 狠狠狠综合 | 国产高清福利在线 | 国产亚洲91 | 日韩精品一区电影 | 日韩久久精品一区二区 | 国产精品一区二区你懂的 | 在线观看免费中文字幕 | 日日夜夜操操操操 | 国产1区在线观看 | 国产精品成人久久久久 | 国产视频在线观看一区 | 成人黄色小视频 | 国产最新在线 | 亚洲国产成人久久综合 | 99在线精品免费视频九九视 | av在线电影播放 | 精品久久久久久久久久久久 | 丁香高清视频在线看看 | 欧美日韩一级久久久久久免费看 | 国产精品av在线免费观看 | 免费看91的网站 | 国产小视频在线观看 | 91麻豆免费视频 | 丝袜美腿亚洲综合 | 伊人狠狠色丁香婷婷综合 | 婷婷久操| 激情综合五月天 | 91超碰免费在线 | 国产精品福利午夜在线观看 | 在线黄色国产 | 欧美电影黄色 | 久久久av电影| 国产伦精品一区二区三区照片91 | 在线免费观看视频你懂的 | 国产一级免费播放 | 在线午夜电影神马影院 | 婷婷丁香在线视频 | 国产美女视频一区 | 国产在线精品一区二区 | 狠狠色噜噜狠狠 | 日本中文字幕在线观看 | 99久久日韩精品免费热麻豆美女 | 九九免费在线观看视频 | 欧美极品裸体 | 国产一区二区午夜 | 亚洲午夜精品电影 | 国产黄色一级片在线 | 亚洲精品中文字幕视频 | 国产一二区精品 | 久久国产精品一国产精品 | 国产资源中文字幕 | 国产精品一区一区三区 | 国产精品第二页 | 黄毛片在线观看 | 乱男乱女www7788 | 成人精品久久久 | 国产精品免费久久久 | 欧美aⅴ在线观看 | 亚洲综合在线五月天 | 日本黄色免费播放 | 久久成人人人人精品欧 | 国产视频不卡一区 | 五月天精品视频 | 亚洲天天看 | 久久久久久国产精品免费 | 99久久婷婷国产综合精品 | 久久久99精品免费观看 | 成人黄视频 | 91黄色免费看 | 丁香婷婷射 | 久久污视频 | 99热在线这里只有精品 | 成人毛片网 | 国产精品久久久久三级 | 中文av在线天堂 | 九九综合久久 | 成人久久综合 | 伊人色播 | 婷婷综合视频 | 久久国产成人午夜av影院潦草 | 欧美亚洲专区 | 97精品伊人 | 激情综合亚洲精品 | 激情五月色播五月 | 在线观看黄色免费视频 | 欧美精品一区二区三区四区在线 | 色99久久| a级国产乱理论片在线观看 特级毛片在线观看 | 人人干网 | av电影中文| 久久久久久久久久亚洲精品 | 中文字幕一区二区三区久久蜜桃 | 国产精品国产三级国产不产一地 | 丝袜制服综合网 | 久久99欧美 | 国产精品粉嫩 | 久久免费视频网站 | 国产高清无线码2021 | 久久精品国产免费观看 | 中文字幕网站视频在线 | 五月天婷婷丁香花 | 激情综合啪 | 国产精品日韩久久久久 | 国产99一区视频免费 | 日韩在线观看视频中文字幕 | 国产手机视频在线 | 国产精品99蜜臀久久不卡二区 | 日韩亚洲国产精品 | 日韩高清免费电影 | 伊人射| 91传媒免费观看 | 色国产精品一区在线观看 | 天天射天天做 | www.天天综合| 日韩av中文字幕在线免费观看 | www.激情五月.com | 国产五月色婷婷六月丁香视频 | 91激情视频在线观看 | 国产aaa毛片| 日本激情动作片免费看 | 婷婷色在线播放 | 五月天婷亚洲天综合网鲁鲁鲁 | 久草在线资源观看 | 色一级片 | 久久久久久久久久网 | 欧美日韩一区二区在线观看 | 爱情影院aqdy鲁丝片二区 | 麻豆精品视频在线观看免费 | 人人艹人人 | 国产精品美女999 | 欧美ⅹxxxxxx| 在线播放第一页 | 天天色天天综合网 | 国产中文字幕一区二区三区 | 国产尤物视频在线 | 最近在线中文字幕 | 欧美精品少妇xxxxx喷水 | 国产精品入口66mio女同 | 欧美国产亚洲精品久久久8v | 欧美在线a视频 | aaawww| 日韩av高清 | 在线国产99 | 制服丝袜在线91 | 99久久久国产精品免费99 | 在线播放 日韩专区 | 成人黄色在线视频 | 国产99久久99热这里精品5 | 欧美精品你懂的 | 欧美日本不卡视频 | 成人9ⅰ免费影视网站 | 国产日本三级 | 免费观看www7722午夜电影 | 国产精品永久久久久久久久久 | 欧美成年人在线观看 | 91精品欧美 | 久久这里只有精品久久 | 亚洲欧洲美洲av | 成人一区在线观看 | 国产精品资源网 | 激情影音先锋 | 日韩视频一区二区三区在线播放免费观看 | 美腿丝袜av| 国产在线观看地址 | 日韩av女优视频 | 91麻豆视频 | 这里只有精品视频在线观看 | 久久 精品一区 | 国产日韩欧美在线 | 国产精品日韩欧美 | 久久综合中文字幕 | 激情婷婷六月 | 国产成人一区二区三区久久精品 | 成年人在线视频观看 | 日韩三区在线 | 成人一级片视频 | 亚洲久久视频 | 国产区在线 | 久久久久久蜜桃一区二区 | 最新国产精品久久精品 | 在线中文字幕视频 | 欧美成人黄色片 | 免费看的黄色片 | 亚洲综合成人专区片 | 国产高清日韩欧美 | 成全在线视频免费观看 | 婷婷久久综合网 | 日本黄区免费视频观看 | 天天天天色射综合 | 天天骚夜夜操 | 国产成人黄色网址 | 欧美 日韩 性 | 国产精品免费在线 | 亚州国产精品 | 成 人 黄 色 免费播放 | 国产免费av一区二区三区 | 色全色在线资源网 | av中文在线影视 | 国产九色视频在线观看 | 中文字幕视频在线播放 | 日韩免费精品 | 96精品高清视频在线观看软件特色 | 韩国av免费在线 | 日精品在线观看 | 久热电影| 91成人精品一区在线播放 | 射射射av | 免费日韩高清 | 激情偷乱人伦小说视频在线观看 | 精品国产乱码久久久久久1区2匹 | 91精品网站 | 黄色看片| 亚洲欧美乱综合图片区小说区 | 亚洲欧美精品一区 | 久久这里只有精品首页 | 久草手机视频 | 一本色道久久综合亚洲二区三区 | 91女子私密保健养生少妇 | 网站免费黄色 | 福利视频精品 | 天天操伊人 | 婷婷天天色 | 99久久er热在这里只有精品15 | 久草精品免费 | 在线韩国电影免费观影完整版 | 欧美一级网站 | 99精品视频免费观看 | 亚洲成色777777在线观看影院 | 日韩精品免费专区 | 国产精品成人一区二区 | 免费成人av在线看 | 国产高清在线一区 | 国产 日韩 在线 亚洲 字幕 中文 | 91麻豆精品 | 国产成人av | 欧美精品黑人性xxxx | 午夜少妇一区二区三区 | 久草视频资源 | 久久久国产精品人人片99精片欧美一 | 91九色在线 | 亚洲一区欧美精品 | 色婷婷精品 | 国产精品国产亚洲精品看不卡 | 伊人激情网 | 成人禁用看黄a在线 | 天天天天综合 | 国产91在线看 | 精品国产乱码一区二 | 色综合久久88色综合天天6 | 91视频大全| 97成人啪啪网 | 成人v | 国产在线小视频 | 欧美日韩久 | 人人干人人做 | 亚洲伊人天堂 | 久草精品在线播放 | 久久久国产精品麻豆 | 色婷婷福利| 亚洲国产福利视频 | 亚洲免费在线观看视频 | www.天天干| 国产成人av片 | 国产精品99久久久精品免费观看 | 精品在线二区 | 日韩免费大片 | 狠狠干2018 | a级国产片 | 久操视频在线 | 免费看一级黄色大全 | 不卡av电影在线观看 | 欧美一级免费高清 | 欧美日韩国产免费视频 | 久久伊人免费视频 | 国产精品麻豆视频 | 久久综合久久综合久久综合 | 色七七亚洲影院 | 91色视频| 久久久久久国产精品久久 | 久久福利综合 | 国产黄色片免费在线观看 | 中文字幕资源网 国产 |