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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于OPENCV的手势识别技术

發(fā)布時間:2024/1/1 编程问答 65 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于OPENCV的手势识别技术 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

基于OPENCV的手勢識別技術(shù)

?

前言:
??本篇博客主要介紹基于OPENCV的手勢識別程序,代碼為C++,OPENCV版本為OPENCV4會有較為詳細的實現(xiàn)流程和源碼,并且做到源碼盡量簡單,注釋也自認為較為清晰,希望能幫助到大家。(源碼將放在文章末尾的鏈接中,代碼較為粗糙,有錯誤歡迎大家指出。)

?
?
一、手勢識別流程圖

??首先是對于流程圖的簡單說明:兩條線是分開進行的,兩者在比對分類之前是不會互相影響的(當(dāng)然有部分函數(shù),例如提取特征的函數(shù),是在兩條線中都是會使用到的),因此可以分別完成兩條線的工作。如果作為需要分工的項目,可以按照這兩部分進行分工,最后進行整合。
?
??而關(guān)于兩條線的順序,個人認為是優(yōu)先進行神經(jīng)網(wǎng)絡(luò)的訓(xùn)練部分(也就是下方線路),原因是對于要識別的手勢,首先要有對應(yīng)的樣本,優(yōu)先去尋找樣本,以此確定能夠識別的手勢。(當(dāng)然,要是已經(jīng)找到了樣本,先做上方線路也沒啥太大問題)
?
本篇文章的順序:
先講對于圖片的處理:
??因為先明白圖片如何處理,并知道提取特征的方法,才能理解要把什么東西放到神經(jīng)網(wǎng)絡(luò)里,得到的數(shù)據(jù)又是什么。
再講神經(jīng)網(wǎng)路的搭建:
??神經(jīng)網(wǎng)路的搭建其實就是一個模板性的東西,計算機并不知道你要識別的東西到底是什么,是數(shù)字還是手勢,對于計算機來說它只是一堆數(shù)據(jù),它只負責(zé)給你找到——你輸入的數(shù)據(jù)在網(wǎng)絡(luò)里跟哪個數(shù)據(jù)最為匹配,然后就給你輸出。
?
?
二、讀取圖片、獲取皮膚部分及二值化
?
1)讀取圖片部分:
??并沒有過多好說的,直接使用imread函數(shù)對圖片進行讀入。(注意,讀入的圖片應(yīng)該是彩色的而不是灰度圖,否則無法進行后面的皮膚區(qū)域獲取)
?
2)獲取皮膚部分及二值化:
??關(guān)于皮膚部分的獲取,這里列出幾種算法。由于圖片的光照等的不同,不同算法的優(yōu)劣也很難對比,各位自行選擇算法。
?
①基于RGB顏色空間的簡單閾值膚色識別:
?
??根據(jù)他人的研究,我們可以知道有這樣的一條判別式來用于膚色檢測
?
R>95 && G>40 && B>20 && R>G && R>B && Max(R,G,B)-Min(R,G,B)>15 && Abs(R-G)>15
?
??有了條判別式,我們就能夠很容易地寫出代碼來實現(xiàn)膚色檢測。但該算法對于光線的抗干擾能力較弱,光線稍微不好就識別不出皮膚點。

Mat getSkin(Mat& ImageIn)//獲取皮膚的區(qū)域,返回二值化圖像 {vector<Mat> r_g_b;//用于存放RGB分量split(ImageIn,r_g_b);//分離RGB分量,順序為B,G,RMat Binary = Mat::zeros(ImageIn.size(),CV_8UC1);Mat R = r_g_b[2];Mat G = r_g_b[1];Mat B = r_g_b[0];for (int i = 0; i < ImageIn.rows; i++){for (int j = 0; j < ImageIn.cols; j++){if (R.at<uchar>(i, j) > 95 && G.at<uchar>(i, j) > 40 && B.at<uchar>(i, j) > 20 &&R.at<uchar>(i, j) > G.at<uchar>(i, j) && R.at<uchar>(i, j) > B.at<uchar>(i, j) &&MyMax(R.at<uchar>(i, j), G.at<uchar>(i, j), B.at<uchar>(i, j)) - MyMin(R.at<uchar>(i, j), G.at<uchar>(i, j), B.at<uchar>(i, j)) > 15&& abs(R.at<uchar>(i, j) - G.at<uchar>(i, j)) > 15){Binary.at<uchar>(i, j) = 255;}}}return Binary; }

??代碼說明:首先對彩色圖片分離開R、G、B分量,然后根據(jù)公式,將每一個點的R、G、B分量代入公式中進行判斷,符合條件的點我們可以認為它是皮膚中的一個點。(其中的MyMax和MyMin是自寫的判斷大小函數(shù))將認為是皮膚的點的值置為255,就可以達到二值化的效果。


??可以看到除了部分因為光線問題導(dǎo)致的陰影沒有被識別出來以外,幾乎所有皮膚點都被識別出來了,效果還過得去。
?
?
②基于橢圓皮膚模型的皮膚檢測
?
??研究發(fā)現(xiàn),將皮膚映射到Y(jié)CrCb空間,則在YCrCb空間中皮膚的像素點近似成一個橢圓的分布。因此如果我們得到了一個CrCb的橢圓,對于一個點的坐標(biāo)(Cr, Cb),我們只需判斷它是否在橢圓內(nèi)(包括邊界)就可以得知它是不是膚色點。
??該算法對于光線的敏感性沒有這么高,基本上該檢測到的皮膚都能夠檢測到,抗干擾能力相對較強。(原因大概是YCrCb中Y分量表示明亮度,而而“Cr”和“Cb” 表示的則是色度,作用是描述影像色彩及飽和度)

Mat getSkin2(Mat& ImageIn) {Mat Image = ImageIn.clone();//復(fù)制輸入的圖片//利用OPENCV自帶的ellipse函數(shù)生成一個橢圓的模型Mat skinCrCbHist = Mat::zeros(Size(256, 256), CV_8UC1);ellipse(skinCrCbHist, Point(113, 155.6), Size(23.4, 15.2), 43.0, 0.0, 360.0, Scalar(255, 255, 255), -1);Mat ycrcb_Image;cvtColor(Image, ycrcb_Image, COLOR_BGR2YCrCb);//用cvtColor函數(shù)將圖片轉(zhuǎn)換為YCrCb色彩空間的圖片Mat Binary = Mat::zeros(Image.size(), CV_8UC1);//輸出的二值化圖片vector<Mat>y_cr_cb;//用于存放分離開的YCrCb分量split(ycrcb_Image, y_cr_cb);//分離YCrCb分量,順序是Y、Cr、CbMat CR = y_cr_cb[1];Mat CB = y_cr_cb[2];for (int i = 0; i < Image.rows; i++){for (int j = 0; j < Image.cols; j++){if (skinCrCbHist.at<uchar>(CR.at<uchar>(i,j), CB.at<uchar>(i,j)) > 0)//在橢圓內(nèi)的點置為255{Binary.at<uchar>(i, j) = 255;}}}return Binary; }

??代碼說明:首先用OPENCV自帶的函數(shù)生成一個橢圓的模型,然后將RGB圖片轉(zhuǎn)換為YCrCb圖片,分離開Y,Cr,Cb,對于原圖片里的每一個點,判斷其是否在橢圓內(nèi),在,則認為該點是一個皮膚點。

??可以看到幾乎所有的皮膚部分都被識別出來了,效果比上一個算法看上去要好不少。
?
?
③基于YCrCb顏色空間Cr,Cb范圍篩選法
?
??這種方法與第一種方法在原理上是一樣的,只不過這次將顏色空間變?yōu)榱薡CrCb空間。同樣的,我們有公式
?
Cr>133 && Cr<173 && Cb>77 && Cb<127
?
??將CrCb分量代入這條公式進行判斷,就能得到皮膚點,此處不進行過多的講述。

Mat getSkin3(Mat& ImageIn) {Mat Image = ImageIn.clone();Mat ycrcb_Image;cvtColor(Image, ycrcb_Image,COLOR_BGR2YCrCb);vector<Mat>y_cr_cb;split(ycrcb_Image, y_cr_cb);Mat CR = y_cr_cb[1];Mat CB = y_cr_cb[2];Mat ImageOut = Mat::zeros(Image.size(), CV_8UC1);for (int i = 0; i < Image.rows; i++){for (int j = 0; j < Image.cols; j++){if (CR.at<uchar>(i, j) > 133 && CR.at<uchar>(i, j) < 173 && CB.at<uchar>(i, j) > 77 && CB.at<uchar>(i, j) < 127){ImageOut.at<uchar>(i, j) = 255;}}}return ImageOut; }


??我們可以看到效果也是挺不錯的(相比第一種方法得到的),與第二種方法不分伯仲。
?
?
④YCrCb顏色空間Cr分量+Otsu法閾值分割
?
??首先我們要知道YCrCb色彩空間是什么:YCrCb即YUV,其中“Y”表示明亮度(Luminance或Luma),也就是灰階值;而“U”和“V” 表示的則是色度(Chrominance或Chroma),作用是描述影像色彩及飽和度,用于指定像素的顏色。其中,Cr反映了RGB輸入信號紅色部分與RGB信號亮度值之間的差異。(來自百度百科)
?
所以,該方法的原理也十分簡單:
?
1、將RGB圖像轉(zhuǎn)換到Y(jié)CrCb顏色空間,提取Cr分量圖像

2、對Cr做自適應(yīng)二值化閾值分割處理(Otsu法)

Mat getSkin4(Mat& ImageIn) {Mat Image = ImageIn.clone();Mat ycrcb_Image;cvtColor(Image, ycrcb_Image, COLOR_BGR2YCrCb);//轉(zhuǎn)換色彩空間vector<Mat>y_cr_cb;split(ycrcb_Image, y_cr_cb);//分離YCrCbMat CR = y_cr_cb[1];//圖片的CR分量Mat CR1;Mat Binary = Mat::zeros(Image.size(), CV_8UC1);GaussianBlur(CR, CR1, Size(3, 3), 0, 0);//對CR分量進行高斯濾波,得到CR1(注意這里一定要新建一張圖片存放結(jié)果)threshold(CR1, Binary, 0, 255, THRESH_OTSU);//用系統(tǒng)自帶的threshold函數(shù),對CR分量進行二值化,算法為自適應(yīng)閾值的OTSU算法return Binary; }

??代碼說明:前面的轉(zhuǎn)換色彩空間不再贅述,關(guān)鍵點在于系統(tǒng)的二值化函數(shù)threshold,使用了OTSU的算法對圖像前景和背景進行區(qū)分。(請不清楚threshold函數(shù)使用和OTSU算法的讀者自行查找資料,這里由于篇幅問題不展開解釋)

可以看到效果也不錯,基本也能識別出來。
?
?
⑤OPENCV自帶的膚色檢測類AdaptiveSkinDetector
(但是我沒用過,僅是放上來讓大家知道…)
?
?
總結(jié):
??對于以上幾種方法,很難說到底哪一種會更加準(zhǔn)確,根據(jù)環(huán)境不同,圖片不同,算法之間的優(yōu)劣也有差別。因此有條件的可以每一種都嘗試,看看在自己的環(huán)境下哪種算法的效果最好。我在代碼中使用的是方法②,也僅供參考。
?
?
三、獲取輪廓及特征(特征為傅里葉描繪子)
?
原理:(請務(wù)必看看)
?
1)什么是圖像的特征?
??或許換個問題你就理解了,什么是人的特征?我們或許可以認為,會直立行走,能制造和使用工具,這些就是人的特征。然后,進一步,什么是手勢0的特征?是一根手指都沒有伸出來,這就是手勢0的特征。手勢1呢?只伸出了一根手指對吧?這就是特征。
?
2)為什么要獲取圖像特征?
??我們舉個比較簡單(但是并不真實)的例子:你輸入了一張二值化后的圖片(假設(shè)是手勢2,即我們前面的圖片里的手勢),我們通過一個獲取特征的函數(shù),獲得了這個手勢的特征值,假設(shè)這一連串的值是[1,2,3,4,5,6]。
??而在神經(jīng)網(wǎng)絡(luò)里,手勢0的特征值被認為是[4,4,3,3,2,2],手勢1被認為是[9,8,7,6,5,4,],手勢2被認為是[1,2,3,4,5,5]。那么你輸入了[1,2,3,4,5,6],你認為最匹配的是哪個手勢呢?顯然就是手勢2。
??而這就是神經(jīng)網(wǎng)絡(luò)的工作原理。你輸入一串代表特征的數(shù)值,預(yù)測函數(shù)會在神經(jīng)網(wǎng)絡(luò)里去找跟這串?dāng)?shù)值最相似的那個結(jié)果,把它告訴你:這就是我判斷的手勢結(jié)果。
??而圖像的特征,就是上面我們所說的[1,2,3,4,5,6]這串?dāng)?shù)字。我們要想辦法獲取這個特征向量,扔到神經(jīng)網(wǎng)絡(luò)里去讓它識別。至于神經(jīng)網(wǎng)絡(luò)怎么知道[1,2,3,4,5,5]代表手勢2,[4,4,3,3,2,2]代表手勢0,我們在后面的神經(jīng)網(wǎng)絡(luò)部分會說到。
?
3)要獲取什么特征,以及怎么獲取?
??首先,對于手勢來說,我們獲取的特征應(yīng)該是對旋轉(zhuǎn)和縮放都不敏感的。為什么呢?你總不希望你的手旋轉(zhuǎn)了45°系統(tǒng)就識別不出來了吧?你總不希望你離得遠一點系統(tǒng)就識別不出來了吧?所以,我們要找到一個方法來描述你的手勢,并且這個方法對于旋轉(zhuǎn)和縮放都不那么敏感。
??而在本項目中,我們使用的是傅里葉描繪子,這是一種邊界描繪子(就是專門用來描繪邊界的),它對于旋轉(zhuǎn)以及縮放并不十分敏感。這里簡單說一下傅里葉描繪子的原理。對于坐標(biāo)系內(nèi)的一個點,通常我們用(X,Y)來表示。但這就是兩個數(shù)值了,有沒有什么辦法用一個數(shù)值來表示?幸好我們有復(fù)數(shù)這個東西!對于點(X,Y)我們可以寫成X+iY,這不就變成一個數(shù)了嗎?這能將一個二維的問題轉(zhuǎn)變?yōu)橐痪S的問題。
??而我們應(yīng)該知道,任何一個周期函數(shù)都可以展開為傅里葉級數(shù),所以我們可以通過傅里葉級數(shù)來描繪一個周期變換的函數(shù)。那么你可能會問,這個二值化后的手勢圖,跟周期變換函數(shù)有什么關(guān)系啊?還真有!沿邊界曲線上一個動點s[k] = [x(k),y(k)]就是一個以形狀邊界周長為周期的函數(shù)。
??為什么外輪廓是周期函數(shù)?假設(shè)有一個點在外輪廓上向著一個方向移動,轉(zhuǎn)了一圈,兩圈…,那這是不是周期函數(shù)?所以問題就解決了,我們可以用傅里葉描繪子來描繪手勢的外輪廓,從而描繪手勢。
??關(guān)于傅里葉描繪子更詳細的介紹以及推導(dǎo)建議各位去查閱相關(guān)資料,這里不打算過多說(畢竟估計也沒幾個人感興趣)
?
傅里葉描繪子原理
?
我這里直接給出計算公式:

其中a(u)就是傅里葉級數(shù)的第n項,k就是圖像中第k個點。
?
??當(dāng)然,這個公式可以使用歐拉公式進行展開,對于編程實現(xiàn)來說會更加簡單。但是僅僅是這個公式是不夠的,因為這樣計算出來的傅里葉描繪子與形狀尺度,方向和曲線起始點S0都有關(guān)系,顯然不是我們想要的。所以,我們還要以a(1)為基準(zhǔn),進行歸一化,最終得到:

??由于形狀的能量大多集中在低頻部分,高頻部分一般很小且容易受到干擾,所以我們只取前12位就足夠了。
?
?
具體實現(xiàn):
?
??首先,要描繪手勢的外輪廓,我們就需要先得到手勢的外輪廓。幸好,OPENCV有對應(yīng)的函數(shù)讓我們使用,就是findContours函數(shù)。

Mat ImageBinary = ImageIn;//二值化的圖片(傳入時應(yīng)該就已經(jīng)是二值化的圖片了)vector<vector<Point>> contours;//定義輪廓向量findContours(ImageBinary, contours, RETR_EXTERNAL, CHAIN_APPROX_NONE);//尋找輪廓int max_size = 0;//最大的輪廓的size(通常來說就是我們的手勢輪廓)int contour_num = 0;//最大的輪廓是圖片中的第contour_num個輪廓for (int i = 0; i < contours.size(); i++)//找到最大的輪廓,記錄在contour_num中{if (contours[i].size() > max_size){max_size = contours[i].size();contour_num = i;}}

這樣,我們就找到了圖片的全部輪廓,并且存在了二維向量contours中。然后我們就可以計算傅里葉描繪子了。

/***計算圖像的傅里葉描繪子***//***傅里葉變換后的系數(shù)儲存在f[d]中***/vector<float>f;vector<float>fd;//最終傅里葉描繪子前14位Point p;for (int i = 0; i < max_size; i++)//主要的計算部分{float x, y, sumx = 0, sumy = 0;for (int j = 0; j < max_size; j++){p = contours[contour_num].at(j);x = p.x;y = p.y;sumx += (float)(x * cos(2 * CV_PI * i * j / max_size) + y * sin(2 * CV_PI * i * j / max_size));sumy += (float)(y * cos(2 * CV_PI * i * j / max_size) - x * sin(2 * CV_PI * i * j / max_size));}f.push_back(sqrt((sumx * sumx) + (sumy * sumy)));}fd.push_back(0);//放入了標(biāo)志位‘0’,并不影響最終結(jié)果for (int k = 2; k < 16; k++)//進行歸一化,然后放入最終結(jié)果中{f[k] = f[k] / f[1];fd.push_back(f[k]);}out = Mat::zeros(1, fd.size(), CV_32F);//out是用于輸出的手勢特征for (int i = 0; i < fd.size(); i++){out.at<float>(i) = fd[i];}

計算完了傅里葉描繪子,我們就算是拿到了手勢的特征了。
?
?
四:找到訓(xùn)練樣本
?
??首先,我們要明確找到訓(xùn)練樣本是很重要的,因為訓(xùn)練樣本決定了你能識別到的是什么。要是你找到了身份證數(shù)字的訓(xùn)練樣本,那么你就能識別身份證的數(shù)字;要是你找到了車牌號碼的數(shù)字樣本,那么你就能識別車牌;而我們在這個項目要找到手勢的樣本。
??不過在這里我可以將我找到的樣本分享給大家,我將其一并打包在了項目文件中,大家有需要的可以下載我的工程文件。其中有10個手勢,從0到9,希望能幫助到大家。
?
?
五:樣本的特征提取
?
??對于樣本的特征提取,其實跟前面我們說到的特征提取沒有什么不同。只不過我們這里需要的是對大量的樣本進行特征提取,并且將其存放在一個文件中,方便我們后續(xù)進行的神經(jīng)網(wǎng)絡(luò)訓(xùn)練。

void getAnnXML() {FileStorage fs("ann_xml.xml", FileStorage::WRITE);if (!fs.isOpened()){cout << "failed to open " << "/n";}Mat trainData;//用于存放樣本的特征數(shù)據(jù)Mat classes = Mat::zeros(200, 1, CV_8UC1);//用于標(biāo)記是第幾類手勢char path[60];//樣本路徑Mat Image_read;//讀入的樣本for (int i = 0; i < 4; i++)//第i類手勢 比如手勢1、手勢2{for (int j = 1; j < 51; j++)//每個手勢設(shè)置50個樣本{sprintf_s(path, "D:\\數(shù)字圖像處理\\Gesture_Picture\\%d_ (%d).png", i, j);Image_read = imread(path, 1);Mat Binary = OTSU_Binary(Image_read, 1);//對輸入的圖片進行二值化Mat dst_feature;//該樣本對應(yīng)的特征值getFeatures(Binary,dst_feature);trainData.push_back(dst_feature);classes.at<uchar>(i * 50 + j - 1) = i;}}fs << "TrainingData" << trainData;fs << "classes" << classes;fs.release();cout << "訓(xùn)練矩陣和標(biāo)簽矩陣搞定了!" << endl;

??在該段代碼運行完之后,在文件夾下會生成一個ann_xml.xml文件,里面存放著所有樣本的特征值和一個標(biāo)簽矩陣(標(biāo)簽矩陣如下圖)

??其中的getFeatures函數(shù)與前面用到的特征提取函數(shù)是完全一致的。但是在這部分我們是可以省去找到皮膚部分的函數(shù),因為樣本給到我們的就已經(jīng)是只有皮膚部分的圖片了。所以我們只需要進行二值化并找到最大的輪廓,提取特征。
?
?
六:訓(xùn)練神經(jīng)網(wǎng)絡(luò)
?
??一些想法:神經(jīng)網(wǎng)絡(luò)的訓(xùn)練看起來像是比較難的一個部分,但其實并不是,看起來難的原因也許是之前并沒有接觸過神經(jīng)網(wǎng)絡(luò),覺得無從下手。(所以在寫這部分代碼之前應(yīng)該先去了解一下什么是神經(jīng)網(wǎng)絡(luò),不需要過于深入,知道基本的工作原理即可)但其實只要寫過一次,就會發(fā)現(xiàn)這是一個模板性的東西,寫過了就是從0到1的變化。當(dāng)然在寫該部分的代碼時會遇到很多的小問題,比如OPENCV版本的不同,有部分網(wǎng)上的代碼使用的是OPENCV2,對于OPENCV3就不適用了。
?
廢話不多說了直接開始吧,首先是訓(xùn)練部分的函數(shù)代碼:

void ann_train(Ptr<ANN_MLP>& ann, int numCharacters, int nlayers)//神經(jīng)網(wǎng)絡(luò)訓(xùn)練函數(shù),numCharacters設(shè)置為4,nlayers設(shè)置為24 {Mat trainData, classes;FileStorage fs;fs.open("ann_xml.xml", FileStorage::READ);fs["TrainingData"] >> trainData;fs["classes"] >> classes;Mat layerSizes(1, 3, CV_32SC1); //3層神經(jīng)網(wǎng)絡(luò)layerSizes.at<int>(0) = trainData.cols; //輸入層的神經(jīng)元結(jié)點數(shù),設(shè)置為15layerSizes.at<int>(1) = nlayers; //1個隱藏層的神經(jīng)元結(jié)點數(shù),設(shè)置為24layerSizes.at<int>(2) = numCharacters; //輸出層的神經(jīng)元結(jié)點數(shù)為:4ann->setLayerSizes(layerSizes);ann->setTrainMethod(ANN_MLP::BACKPROP, 0.1, 0.1);//后兩個參數(shù): 權(quán)梯度項的強度(一般設(shè)置為0.1) 動量項的強度(一般設(shè)置為0.1)ann->setActivationFunction(ANN_MLP::SIGMOID_SYM);ann->setTermCriteria(TermCriteria(TermCriteria::MAX_ITER, 5000, 0.01));//后兩項參數(shù)為迭代次數(shù)和誤差最小值Mat trainClasses;//用于告訴神經(jīng)網(wǎng)絡(luò)該特征對應(yīng)的是什么手勢trainClasses.create(trainData.rows, numCharacters, CV_32FC1);for (int i = 0; i < trainData.rows; i++){for (int k = 0; k < trainClasses.cols; k++){if (k == (int)classes.at<uchar>(i)){trainClasses.at<float>(i, k) = 1;}elsetrainClasses.at<float>(i, k) = 0;}}//Mat weights(1 , trainData.rows , CV_32FC1 ,Scalar::all(1) );ann->train(trainData, ml::ROW_SAMPLE, trainClasses);cout << " 訓(xùn)練完了! " << endl; }

代碼說明:
?
1、首先我們要將ann_xml.xml文件中的數(shù)據(jù)讀入到程序中,包括樣本的特征還有標(biāo)簽矩陣。
?
2、然后設(shè)置神經(jīng)網(wǎng)絡(luò)的基本參數(shù)。首先,設(shè)置3層的神經(jīng)網(wǎng)絡(luò),即1層輸入層,1層隱藏層,1層輸出層。
?
輸入層的結(jié)點數(shù)?這卻決于我們一張圖片獲得的特征值的數(shù)量。(根據(jù)第三大點中說到的,我們?nèi)「道锶~描繪子的前12位)
?
隱藏層的結(jié)點數(shù)?我們在該項目中將隱藏層設(shè)置為24。
?
輸出層的結(jié)點數(shù)?我們最后想讓神經(jīng)網(wǎng)絡(luò)識別幾個手勢,就設(shè)置為多少。比如該項目最后要識別四個手勢,就設(shè)置為4。
?
setTrainMethod(訓(xùn)練方法)?使用ANN_MLP::BACKPROP,即反向傳播神經(jīng)網(wǎng)絡(luò),這個較為常用。
?
setActivationFunction(激活函數(shù))?一般常用的就是Sigmoid 函數(shù),即下圖的函數(shù)

setTermCriteria為迭代終止準(zhǔn)則的設(shè)置
?
trainClasses變量 ?這個變量建議大家畫個圖理解一下。到底和class的區(qū)別是什么?雖然都是作為一個標(biāo)簽矩陣,但還是有一些不同。
?
train函數(shù)?這個就是神經(jīng)網(wǎng)絡(luò)的訓(xùn)練函數(shù),把相應(yīng)的參數(shù)代入進去,就能夠訓(xùn)練出一個神經(jīng)網(wǎng)絡(luò)。
?
??需要注意的是,這個函數(shù)不需要每一次都識別都運行,(而且運行該函數(shù)需要花費較多的時間)只要我們運行一次,把神經(jīng)神經(jīng)網(wǎng)絡(luò)保存下來,下次識別的時候直接讀取神經(jīng)網(wǎng)絡(luò),就可以進行識別了。具體如下:

Ptr<ANN_MLP> ann = ANN_MLP::create();ann_train(ann, 4, 24);ann->save("ann_param");

這樣就能保存一個ann_param的文件了,下次使用只需要

Ptr<ANN_MLP> ann = ANN_MLP::load("ann_param");//讀取神經(jīng)網(wǎng)絡(luò)

?
?
七:比對分類,預(yù)測結(jié)果
?
預(yù)測函數(shù)的作用就是幫助我們對比圖片的特征與神經(jīng)網(wǎng)絡(luò)里哪個最像,然后把這個作為結(jié)果輸出。所以在這里我們要獲取要預(yù)測的圖片的特征,然后使用預(yù)測函數(shù)predict進行預(yù)測。最后找到邏輯最大值,作為結(jié)果。

int classify(Ptr<ANN_MLP>& ann, Mat& Gesture)//預(yù)測函數(shù),找到最符合的一個手勢(輸入的圖片是二值化的圖片) {int result = -1;Mat output(1, 4, CV_32FC1); //1*4矩陣Mat Gesture_feature;getFeatures(Gesture, Gesture_feature);ann->predict(Gesture_feature, output);Point maxLoc;double maxVal;minMaxLoc(output, 0, &maxVal, 0, &maxLoc);//對比值,看哪個是最符合的。result = maxLoc.x;return result; }

output變量存儲的是“該手勢對應(yīng)每個手勢的可能性”,找到最大的那個可能,作為結(jié)果輸出。至此,我們獲得了我們想要的那個結(jié)果。
?
?
結(jié)尾:
?
我們最后把main函數(shù)放上來,這樣就能更清楚地看清流程:

int main(void) {Mat ImageIn = imread("D://VSprogram/DistinguishGesture/MyTestPicture/test.jpg", 1);//輸入彩色圖片Mat Binary = skinMask(ImageIn);//獲取二值化后的手勢圖Mat Binary2 = OPENorCLOSE_Operation(Binary, 0, 3, 3);//對手勢圖進行閉運算,使一些小的點連起來//只需要執(zhí)行一次,獲取了標(biāo)簽矩陣和神經(jīng)網(wǎng)絡(luò)后就不再需要執(zhí)行//getAnnXML();//Ptr<ANN_MLP> ann = ANN_MLP::create();//ann_train(ann, 4, 24);//ann->save("ann_param");//cout << "搞定" << endl;//Mat contour = showContour(Binary2);//獲得手勢的輪廓圖//imshow("Contour", contour);//畫出手勢的輪廓圖Ptr<ANN_MLP> ann = ANN_MLP::load("ann_param");//讀取神經(jīng)網(wǎng)絡(luò)int result = classify(ann, Binary2);//預(yù)測最終結(jié)果cout << "手勢是:"<<result << endl;//輸出waitKey(0);return 0; }

然后我再把源代碼鏈接放在這里,需要的可以下載來看看(我盡量把積分調(diào)低,讓大家即使覺得沒啥用也不會虧多少積分)
?
https://download.csdn.net/download/qq_42884797/13658137
?
參考文獻及鏈接:
?
趙三琴,丁為民,劉徳營.基于傅里葉描述子的稻飛虱形狀識別[J].農(nóng)業(yè)機械學(xué)報,2009,40(8):181~184
https://blog.csdn.net/qq_41562704/article/details/88975569
https://blog.csdn.net/javastart/article/details/97615918

總結(jié)

以上是生活随笔為你收集整理的基于OPENCV的手势识别技术的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

久久av一区二区三区亚洲 | 成人av在线网址 | 成人精品久久久 | 精品婷婷 | 久久久久一区二区三区四区 | 日韩av中文 | 免费视频 三区 | 欧美成人xxxx | 成片免费 | 日韩欧美中文 | 久射网| 国产亚洲精品久久久久久移动网络 | 黄色大片视频网站 | 免费观看成人av | 国产视频精品免费播放 | 成人亚洲网 | 国产99久久99热这里精品5 | 中文字幕免费成人 | 日韩动漫免费观看高清完整版在线观看 | 国产成人精品午夜在线播放 | 国产成人精品一区二区三区免费 | 亚洲精品玖玖玖av在线看 | 在线播放国产一区二区三区 | 在线91网| 首页国产精品 | 在线观看黄污 | 国产剧情在线一区 | 日韩大片在线免费观看 | 视频一区亚洲 | 国产五十路毛片 | 久久综合九色综合久久久精品综合 | 成年人在线免费看视频 | www.色午夜 | 久久天堂影院 | 亚洲欧洲精品一区二区 | 欧美一区二区三区在线观看 | 日韩电影在线观看一区 | 91人人干 | 在线成人免费av | 最近中文字幕国语免费av | 久久草在线精品 | 97在线观看免费高清完整版在线观看 | 久久国产高清 | av在线免费网站 | 欧美日韩伦理一区 | 91在线视频观看免费 | 婷婷激情网站 | 国产婷婷vvvv激情久 | 国产精品一区二区久久精品爱微奶 | 中文字幕国产一区二区 | 99久久婷婷国产 | 国产欧美精品一区二区三区四区 | 天天天天干 | 伊人影院得得 | 国产中文字幕亚洲 | 久久精品日本啪啪涩涩 | 亚洲精色 | 91在线文字幕 | 色成人亚洲网 | 日本一区二区三区免费观看 | 香蕉久久久久 | 久久国语露脸国产精品电影 | 毛片网站观看 | 97超碰在线播放 | 日韩精品在线观看av | 天天射天天爱天天干 | 夜夜爽天天爽 | 国产999精品视频 | 国产在线中文 | 欧美三级高清 | 亚洲国产三级在线观看 | 六月色丁 | 免费网站观看www在线观看 | 免费的国产精品 | 伊人影院99| 日本三级全黄少妇三2023 | 夜夜躁天天躁很躁波 | 亚洲欧美日韩国产一区二区三区 | 在线视频观看你懂的 | 日韩色综合 | 日韩欧美极品 | 国产一区二区三区午夜 | 亚洲v精品| 中文字幕 国产 一区 | 婷婷av资源 | 亚洲国产mv | 又黄又爽又色无遮挡免费 | 女人高潮一级片 | 超碰免费公开 | 国产99中文字幕 | 五月综合激情 | 国产精品女人久久久久久 | 特黄特黄的视频 | www.五月婷 | 婷婷丁香久久五月婷婷 | 免费高清在线观看成人 | 久久蜜臀一区二区三区av | 一级一片免费看 | 国产视频69 | 2019中文在线观看 | 日韩精品一区在线播放 | 808电影免费观看三年 | 福利视频精品 | 久久精品国产精品亚洲精品 | 九九久久久久久久久激情 | 亚洲精品国偷拍自产在线观看 | 日韩视频专区 | 中文字幕视频在线播放 | 国产一级精品在线观看 | 四虎免费在线观看视频 | 亚洲天堂网在线观看视频 | 五月天久久久久 | 久久精品91视频 | 人人插人人艹 | 国产成人精品一区二区三区福利 | 久久国产精品99久久久久久进口 | 成人h电影 | 国产在线精品一区 | 日韩免费电影网 | 亚洲夜夜综合 | 日韩免费视频 | 中文字幕你懂的 | a级片久久久 | 亚洲一级理论片 | 麻豆久久精品 | bbbb操bbbb| 精品免费视频. | 午夜久久网 | 国产无区一区二区三麻豆 | 97在线观看免费高清完整版在线观看 | 日本中文字幕网 | 97在线视频免费看 | 五月天网站在线 | 亚洲成人二区 | 88av色| 中文字幕在线看片 | 一区二区三区播放 | 亚洲精品国偷自产在线99热 | 免费黄色激情视频 | 欧美国产日韩在线视频 | 国产精品免费视频久久久 | 一区二区三区免费在线 | 亚洲精品国偷拍自产在线观看蜜桃 | 天天摸天天弄 | 天天av资源| 人人看看人人 | 久久理论电影网 | 91精品久久久久久综合五月天 | 免费看的黄网站软件 | 不卡的av在线 | 超碰97在线看 | 色婷婷福利| 天天天综合网 | 久久国产女人 | 91av九色| 色综合色综合久久综合频道88 | 91视频免费国产 | av 一区二区三区 | 日韩三级中文字幕 | 中文在线√天堂 | 亚洲欧洲一级 | 日日夜夜网 | 久草免费在线 | 91视频91蝌蚪 | 天天操天天操天天操天天 | 亚洲黄色免费 | 中文字幕在线观看视频网站 | 九九热re| 日韩欧美视频一区 | 在线观看视频免费播放 | 中文字幕亚洲精品日韩 | 2023亚洲精品国偷拍自产在线 | 伊人亚洲综合 | 成人黄色小说视频 | 成人在线视频你懂的 | 日本黄色a级大片 | 天天综合网久久综合网 | 久久草网站 | 一区二区三区精品在线 | 在线观看激情av | 国产群p视频 | 久久婷婷网 | 五月综合久久 | 国产另类av | 久久a热6| 欧美淫aaa免费观看 日韩激情免费视频 | 国产99re | 一区二精品 | 欧美日韩高清在线 | 在线观看视频97 | 日韩欧美综合视频 | 天天做天天爱天天综合网 | 久久久久国产精品www | 97人人艹 | 伊人黄色网 | 亚洲成免费 | 西西444www | 97超碰在线免费观看 | 久久中文网 | 日日草天天草 | 激情综合六月 | 日b视频在线观看网址 | 亚洲国产精品成人va在线观看 | 日本中文字幕久久 | bbb搡bbb爽爽爽| 国内小视频在线观看 | 探花视频在线观看+在线播放 | 亚洲高清视频一区二区三区 | 久久久久国产视频 | 日韩午夜高清 | 黄色国产在线 | 91伊人影院| 国产精品久久久久久999 | 九色精品| 99在线观看免费视频精品观看 | 亚洲少妇xxxx | 黄色小视频在线观看免费 | 国产免费嫩草影院 | 亚洲黄网站| 婷婷色资源 | 天天干天天拍天天操天天拍 | 国产手机视频在线播放 | 亚洲日本在线一区 | 91免费国产在线观看 | 国产精品短视频 | 国产精品久久久久久a | 中文字幕欧美日韩va免费视频 | 97国产小视频 | 国产三级精品在线 | 久久久久久久久免费视频 | 黄色三级网站 | 91久久国产精品 | 精品免费久久久久 | 欧美一级欧美一级 | 日韩av资源在线观看 | 色婷婷免费视频 | 日韩网站中文字幕 | 玖玖玖在线 | 日韩精品久久一区二区三区 | a黄色片在线观看 | 黄色免费大片 | 亚洲无线视频 | 日韩免费观看一区二区三区 | a天堂免费 | 国产精品久久一区二区三区不卡 | 成人性生交视频 | 国产美女视频免费 | 男女激情片在线观看 | 激情av五月婷婷 | 亚洲综合色激情五月 | 制服丝袜在线 | 成人福利在线观看 | 最近2019中文免费高清视频观看www99 | 精品亚洲国产视频 | 国产一性一爱一乱一交 | 久久精品视频网站 | 欧美大片aaa | 一区二区三区四区五区在线 | 狠狠插天天干 | 国产福利在线免费观看 | 欧美久久久久久久久久久久久 | 亚洲精品午夜久久久久久久久久久 | 日韩性xxxx| 亚洲高清视频在线观看免费 | 国产视频中文字幕在线观看 | 精品产品国产在线不卡 | 在线看的av网站 | 亚洲精品综合在线 | 91在线观| 亚洲精品tv久久久久久久久久 | 国产人成免费视频 | 亚洲成人精品影院 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 国产精品不卡在线 | 在线观看av黄色 | 久久永久免费 | 久久国产精品偷 | 日韩在线精品视频 | 日韩欧美99| 国产麻豆成人传媒免费观看 | 亚洲精品乱码久久久久久蜜桃91 | av在线影视 | 中文字幕在线看视频国产中文版 | 玖玖玖国产精品 | 福利久久久 | 字幕网资源站中文字幕 | 国产精品理论片 | 国内精品视频在线播放 | 久久综合在线 | 成年人国产精品 | 在线观看黄色小视频 | 日韩一区二区三区免费视频 | 国产91成人在在线播放 | 久久综合福利 | 91中文视频 | 日韩在线色视频 | 免费亚洲片 | 成人免费在线网 | 在线超碰av | 天天摸天天弄 | 日韩国产欧美在线播放 | 日韩精品视频免费在线观看 | 国产亚州av | 中文字幕在线观看网 | 丁香婷婷电影 | 国产精品久久久久一区二区三区共 | 久久深爱网 | 天天干天天操人体 | 婷婷天天色 | freejavvideo日本免费 | 国产粉嫩在线观看 | 黄色毛片一级 | 久久黄色精品视频 | 国产亚洲精品久久久久5区 成人h电影在线观看 | av免费网站在线观看 | 免费a视频 | 国产网站在线免费观看 | 日韩在线免费看 | 综合色站导航 | 99久久精品一区二区成人 | www.夜夜骑.com| 日日躁夜夜躁aaaaxxxx | 狠狠干成人综合网 | 日韩视频一区二区在线观看 | avav片| 天天搞天天 | 成人午夜电影免费在线观看 | 在线观看网站av | 日韩亚洲国产中文字幕 | 97超碰成人 | 91精品国产综合久久婷婷香蕉 | 激情电影影院 | 久草电影在线观看 | 欧美在线日韩在线 | 中文字幕中文中文字幕 | 久久久99精品免费观看乱色 | 欧美极品少妇xbxb性爽爽视频 | 国产精品久久久久久久久久 | 国产在线不卡一区 | 成 人 黄 色 片 在线播放 | 视频直播国产精品 | 这里只有精彩视频 | 日韩欧美视频免费观看 | 午夜a区| 少妇精品久久久一区二区免费 | 亚洲免费av一区二区 | 美女在线观看网站 | 欧美一二三区在线观看 | 成年一级片 | 亚洲久草在线 | 国产精品久久久久久久久搜平片 | 国产中文欧美日韩在线 | 日韩专区在线播放 | 三级免费黄色 | 国产精品久久久久久久午夜 | 五月婷婷另类国产 | 最新日韩在线观看视频 | 日日干夜夜爱 | 日韩在线电影观看 | 久章操 | 天天爽天天爽 | 亚洲精品一区二区三区高潮 | 亚洲精品视频在线观看免费 | 999成人| 中文字幕区 | 久久久精品久久日韩一区综合 | 精品久久网| 999久久久国产精品 高清av免费观看 | 久久只精品99品免费久23小说 | 九九精品视频在线看 | 中文字幕在线播放av | 伊人久久国产 | 免费看色的网站 | 在线观看中文字幕2021 | 婷婷av网站 | 中文字幕免费高清av | 亚洲黄色高清 | 天天艹天天干天天 | 中文字幕免费看 | 九色91av | 激情av五月婷婷 | 天天操天天射天天舔 | 国产一区电影在线观看 | 欧美日韩中文在线视频 | 一区二区不卡 | 九九在线视频免费观看 | 日韩成人邪恶影片 | 欧美a级在线免费观看 | 国产一级三级 | 黄色录像av | 中文字幕电影一区 | 日韩在线播放欧美字幕 | 亚洲精品国产精品乱码不99热 | 97国产| 在线视频观看亚洲 | 久久高清国产 | av福利在线免费观看 | 999国产| 亚洲成av人片在线观看无 | 亚洲精品在线视频播放 | 探花视频在线观看 | 久草电影网 | 中文字幕在线国产精品 | 国产xxxx性hd极品 | 视频在线观看入口黄最新永久免费国产 | av成年人电影 | 国产三级午夜理伦三级 | 久久综合欧美 | 国产精品美女 | 日韩理论在线视频 | 精品a视频 | 成 人 免费 黄 色 视频 | 日韩精品一区二区三区电影 | 奇米网网址 | 玖玖在线视频观看 | 三级性生活视频 | 欧美 国产 视频 | 国产精品大片免费观看 | 最近日本mv字幕免费观看 | 91成人国产| 日韩三区在线观看 | 999视频网站 | 久久综合久色欧美综合狠狠 | 国产一在线精品一区在线观看 | 欧美特一级 | 国产精品一区久久久久 | 日韩丝袜在线观看 | a√天堂中文在线 | 亚色视频在线观看 | 日本成址在线观看 | 精品国产免费人成在线观看 | 午夜av免费观看 | 在线观看麻豆av | 免费一级片观看 | 日日精品| 亚洲成人av电影在线 | 中文字幕91在线 | 超碰97在线人人 | 91精品久久久久久 | av中文字幕av| 欧美嫩草影院 | 国产成人一区二区三区在线观看 | 成人免费视频网站在线观看 | 免费下载高清毛片 | 国产视频99| 亚洲国产成人久久 | 六月婷婷久香在线视频 | 精品中文字幕在线播放 | 91av视屏| 国产视频中文字幕在线观看 | 97色婷婷 | 狠狠色狠狠色终合网 | 国产做a爱一级久久 | 欧美激情精品一区 | 超薄丝袜一二三区 | 天堂在线视频中文网 | www在线观看视频 | 99精品在线看 | 波多野结衣电影一区 | 日韩成人邪恶影片 | 日韩久久午夜一级啪啪 | 欧美精品一区二区性色 | 国产流白浆高潮在线观看 | 久久九九九九 | 999久久久久久久久久久 | 成人在线观看你懂的 | 99久久久国产精品免费观看 | 99色视频| 激情婷婷综合网 | 日韩有码专区 | 88av视频| 国产破处视频在线播放 | 色在线免费观看 | av解说在线观看 | 天天超碰| 久久精品亚洲精品国产欧美 | 国产在线小视频 | 精品福利视频在线观看 | 91视频下载| 福利在线看片 | 精品国产一区二区久久 | 中文字幕中文字幕在线一区 | 久久久久久久久久久久电影 | 国产中文字幕在线视频 | 成人黄色毛片 | 中国一级片在线观看 | 久久黄色精品视频 | 91精品国产乱码 | 免费在线一区二区 | 国产一区二区手机在线观看 | 久久久免费av | 欧美激情视频在线观看免费 | 久久免费国产电影 | 日韩视频免费在线 | 久久免费毛片 | 午夜精品视频在线 | 国产视频观看 | 亚洲精品视频在线播放 | 婷婷精品视频 | 日本bbbb摸bbbb| 西西大胆免费视频 | 免费的国产精品 | 亚洲综合最新在线 | 欧美精品久久久久久久久久白贞 | 在线看成人 | 青青河边草免费视频 | 波多野结衣视频网址 | 国产黄色大片 | 久久久久久毛片精品免费不卡 | 日韩电影在线观看一区二区 | 狠狠网| 激情综合站| 一本一本久久aa综合精品 | 久久试看 | 中文字幕免费高清av | 2022久久国产露脸精品国产 | 婷婷日韩| av蜜桃在线 | 免费看的黄色网 | 天天做综合网 | 午夜视频久久久 | 久久免费国产精品1 | 在线久草视频 | 国内视频一区二区 | 久久在现视频 | 久草热久草视频 | 在线观看韩日电影免费 | 久久av伊人| 日韩一区二区三 | 色婷婷综合视频在线观看 | 色噜噜狠狠狠狠色综合久不 | 色婷婷骚婷婷 | 美女禁18| 欧美福利在线播放 | 国产精品成人一区二区 | 国产精品免费观看视频 | 少妇精69xxtheporn | 在线中文字幕观看 | 中文字幕在线免费观看 | 九九热99视频 | 久久99最新地址 | 久久精品在线免费观看 | 国产亚洲精品综合一区91 | 国内精品久久久久影院一蜜桃 | 久草免费在线观看 | 草久在线视频 | 精品国产伦一区二区三区观看方式 | 日韩av不卡在线观看 | 91成人网在线播放 | 美女免费黄网站 | 天天射天天射天天 | 特级西西444www大胆高清无视频 | 国产麻豆剧果冻传媒视频播放量 | 欧美激情一区不卡 | 亚洲久草视频 | 91av在线看 | 国产精品毛片一区视频 | 日本大片免费观看在线 | 在线免费观看视频一区二区三区 | 91精品视频一区二区三区 | av三级在线免费观看 | 狠狠综合久久av | 久久免费国产精品 | 18性欧美xxxⅹ性满足 | 狠狠色香婷婷久久亚洲精品 | 麻豆传媒视频在线 | 18久久久 | 国产成人精品亚洲日本在线观看 | 婷婷丁香六月 | 国产va饥渴难耐女保洁员在线观看 | 91精品黄色 | 久久精品毛片 | 久久欧美视频 | 国产日韩欧美视频在线观看 | 久久伊人精品一区二区三区 | 免费瑟瑟网站 | 天堂av在线网站 | 黄色毛片网站在线观看 | 久久人人爽爽人人爽人人片av | 久久综合影音 | 成片视频在线观看 | 99综合电影在线视频 | 中文字幕精品一区久久久久 | 国内精品久久久久久久 | 中文字幕黄色网 | 久久不射网站 | 亚洲国产中文字幕在线 | 欧美精品久久天天躁 | 色综合久久中文字幕综合网 | 在线视频在线观看 | 日韩精品免费一区二区三区 | 色在线中文字幕 | 在线免费视频你懂的 | 国产精品99久久免费黑人 | 久久精品91视频 | 久久久福利视频 | 国产精品九九九九九 | 国产a网站 | 九九精品毛片 | 日韩精品三区四区 | 干干日日 | 日韩经典一区二区三区 | 日韩中文字幕在线不卡 | 天天做天天射 | 国产精品自产拍在线观看中文 | 人人插人人费 | 日韩三级免费观看 | 91九色视频观看 | 日本韩国中文字幕 | 99综合视频 | 一区二区精 | www.超碰 | 丁香五婷 | 久久免费在线观看视频 | 中文不卡视频在线 | 国产经典 欧美精品 | 91欧美视频网站 | 亚洲综合成人av | 91精品久久久久久久久久久久久 | 亚洲精品乱码白浆高清久久久久久 | 不卡的av电影在线观看 | 五月综合激情网 | 久久久精品国产免费观看一区二区 | а天堂中文最新一区二区三区 | 97在线视频免费看 | 欧美一二区在线 | 精品国自产在线观看 | 在线有码中文字幕 | 国产在线观看国语版免费 | 999久久久久久久久久久 | 伊人久在线 | 特级毛片在线观看 | 在线播放视频一区 | 天天综合狠狠精品 | 久久a免费视频 | 99久久这里只有精品 | 国产精品123| 四虎www | 国产美女精品久久久 | 亚洲综合国产精品 | 国产一区不卡在线 | 亚洲三级影院 | 日韩免费视频线观看 | 成人a级大片 | 国产免费午夜 | 欧美一二三区在线观看 | 国产黄色片久久 | 六月丁香色婷婷 | 麻豆传媒在线视频 | 日韩激情视频在线 | 国产精品18久久久久久vr | 久久9视频 | 国产午夜精品一区二区三区四区 | 国产看片免费 | 高清av免费观看 | 九九久久久 | 狠狠色狠狠色终合网 | 综合色中色 | 国产视频精选 | 日本巨乳在线 | 狠狠干,狠狠操 | 久久一区二区三区日韩 | 色干综合 | 亚洲精品国产视频 | 免费a网站| 综合久久网站 | 欧美日韩在线看 | 九九九九九九精品 | 亚洲国产欧美在线人成大黄瓜 | 天天插综合 | 99久热| 亚洲一级性 | 国产九色视频在线观看 | 国产高h视频 | 六月久久婷婷 | 精品国产一区二区三区久久久蜜月 | 日韩性久久 | 日韩视频一二三区 | www.伊人色.com| 免费观看国产成人 | 中文字幕丝袜美腿 | 在线电影日韩 | 国产精品久久久久久久久久 | 国产成人av福利 | 最近中文字幕免费av | 久久久久久久免费看 | 中文字幕视频网站 | 中文字幕无吗 | 国产精品18p| 中文字幕在线观看三区 | 中文字幕文字幕一区二区 | 探花视频网站 | 亚洲天堂网在线观看视频 | 毛片网免费 | 开心激情五月婷婷 | 91精品视频在线免费观看 | 中文字幕一区在线 | 久久99热这里只有精品 | 91一区二区三区在线观看 | 成人国产精品久久久久久亚洲 | 狠狠色狠狠色综合系列 | 国产视频日韩视频欧美视频 | 欧美 日韩精品 | 免费观看一级成人毛片 | 在线观看免费一区 | 九九久久成人 | 国产在线a视频 | 狠狠久久综合 | 亚洲天堂网视频在线观看 | 在线观看视频你懂的 | 国产系列在线观看 | 99久久精品久久亚洲精品 | 美女精品久久久 | 国产精品久久久久久麻豆一区 | a午夜电影| 日韩一区在线播放 | 五月天婷婷在线视频 | 国产91精品一区二区 | 天天操天天干天天综合网 | 在线免费精品视频 | 在线观看免费成人av | 久久午夜剧场 | 久久综合久久88 | 2019精品手机国产品在线 | 天天干天天摸天天操 | 97国产人人 | 亚洲黄色软件 | 日韩中文字幕a | 二区三区视频 | 日韩高清国产精品 | 国产成视频在线观看 | 国产在线a | 精品久久国产一区 | 国产精品一区久久久久 | 欧美俄罗斯性视频 | 开心激情网五月天 | 国产裸体视频网站 | 青春草视频| 久久综合九色综合欧美就去吻 | 干干操操 | 欧美一级视频一区 | 成人a视频片观看免费 | 精品国产免费久久 | 国产精品久久久久四虎 | 91精品视屏| 亚洲va综合va国产va中文 | 日韩av不卡在线观看 | 黄网站污 | 人人射人人插 | 久草成人在线 | 日韩中文在线字幕 | 麻豆网站免费观看 | 国产黄网在线 | 国产九九九九九 | 日日摸日日爽 | 国产亚州精品视频 | 久久久亚洲网站 | 国产成人三级一区二区在线观看一 | 在线免费观看视频 | 99热这里只有精品国产首页 | 天天综合网天天综合色 | 丰满少妇在线观看资源站 | 国产少妇在线观看 | 成人av片在线观看 | 欧美日韩一区二区三区在线观看视频 | 中文字幕韩在线第一页 | 夜夜躁日日躁狠狠躁 | 狠狠操91| 伊人久久国产 | 日韩毛片在线免费观看 | 国产成人精品久久二区二区 | 激情 一区二区 | 成人网色| aaa黄色毛片 | 欧美久久久影院 | 91男人影院 | 成人一区二区在线观看 | 97在线观视频免费观看 | 亚洲视频在线观看 | 天天干天天拍天天操天天拍 | 午夜av免费在线观看 | 五月色婷 | 免费男女羞羞的视频网站中文字幕 | av电影av在线 | 综合网伊人 | 中文字幕一区二区三区在线观看 | 日本中文字幕高清 | 波多野结衣综合网 | 四虎国产精品成人免费影视 | 最新免费中文字幕 | free,性欧美| 亚洲一区精品二人人爽久久 | 亚洲五月六月 | 四虎影视成人永久免费观看视频 | а天堂中文最新一区二区三区 | 亚洲高清91 | 国产成人久久77777精品 | 久久艹人人 | 99夜色| 国产白浆视频 | 人人搞人人爽 | 久久麻豆精品 | 五月天欧美精品 | www操操| 中文字幕网站视频在线 | 成人av中文字幕 | 色婷婷综合久久久中文字幕 | 久艹视频在线免费观看 | 久久精品在线 | 在线色网站 | 中文字幕高清视频 | 国产精品乱码一区二三区 | 成人免费视频网址 | 亚洲男男gaygay无套 | 久久久久久蜜桃一区二区 | 日本高清dvd | 中文字幕第一页在线 | 国产一二区视频 | 久久优| 99re视频在线观看 | 男女激情麻豆 | 91久久奴性调教 | 国产精品激情偷乱一区二区∴ | 97视频中文字幕 | 亚洲 中文 欧美 日韩vr 在线 | 久久视频国产精品免费视频在线 | 天天操天天操天天操天天操天天操天天操 | 亚洲欧美国产日韩在线观看 | 久操免费视频 | 黄色av免费 | 日b黄色片 | 91香蕉国产在线观看软件 | 中文字幕区 | 欧美日韩久久久 | 激情欧美日韩一区二区 | 中文字幕在线免费播放 | 国产一区 在线播放 | 久久人人爽人人爽人人片 | 中中文字幕av在线 | 成年人黄色免费视频 | 久久99精品一区二区三区三区 | 国产又粗又猛又爽又黄的视频免费 | 欧美日韩国产一区二 | 国产日产精品久久久久快鸭 | 国产日韩精品欧美 | 免费观看性生活大片3 | 97av在线| 五月婷亚洲 | 免费观看的av网站 | 精品在线你懂的 | 免费在线精品视频 | 91在线日韩 | 国产一在线精品一区在线观看 | 色天天综合久久久久综合片 | 视频在线观看一区 | 在线精品观看 | 人人超碰人人 | 97理论片 | 欧美精品亚洲二区 | 久久综合偷偷噜噜噜色 | 欧美日韩一区二区久久 | 国产中文在线观看 | 91精品麻豆 | 99在线观看视频 | 九九免费观看视频 | 成人中心免费视频 | 美女网站视频免费黄 | 日本性xxxxx| 亚洲精品午夜久久久久久久久久久 | 国内三级在线 | 国产福利91精品一区二区三区 | 黄色视屏在线免费观看 | 91久久精 | 综合久久2023 | 欧美激情精品久久久久久 | 亚洲综合丁香 | 亚州精品在线视频 | 香蕉在线视频播放网站 | 97超碰人人在线 | 五月婷影院 | 日韩啪啪小视频 | 免费一级片在线 | 亚洲精品乱码久久久一二三 | 成人小视频在线观看免费 | 免费看片网站91 | 手机av永久免费 | 亚州国产精品 | 精品一区二区影视 | 91精品在线免费观看视频 | 日韩av成人在线观看 | 特级xxxxx欧美 | 国产一级高清 | 91你懂的| 亚洲免费av一区二区 | 亚洲成av片人久久久 | aaa亚洲精品一二三区 | 欧美大片在线看免费观看 | 青青草国产免费 | 国产精品免费人成网站 | 亚洲无人区小视频 | 国产成人久久 | 又紧又大又爽精品一区二区 | 欧美精彩视频 | 精品一区在线看 | av黄色大片 | 一本一本久久a久久 | 成人av动漫在线 | 韩国一区在线 | 91在线你懂的 | 91看成人 | 日韩在线高清视频 | 香蕉在线播放 | 亚洲视频在线观看网站 | 五月婷婷丁香综合 | 精品成人免费 | 亚洲精品免费在线 | 色在线中文字幕 | 欧美日韩另类在线观看 | 日本韩国中文字幕 | 中文字幕亚洲精品在线观看 | 在线亚洲激情 | 国产午夜精品一区二区三区在线观看 | 成人91在线 | 久久久久综合 | 国产精品乱码久久久久久1区2区 | 中文字幕久久精品亚洲乱码 | 国产成人精品一区二区三区 | 波多野结衣电影一区二区 | 欧美日韩国产色综合一二三四 | 国产女人免费看a级丨片 | 最近中文字幕第一页 | 天天操天天爽天天干 | 五月导航| 色婷婷综合久久久久中文字幕1 | 国产a视频免费观看 | 69国产盗摄一区二区三区五区 | www.99热精品| 韩国av免费| 国产探花| 久草97| 日韩电影中文,亚洲精品乱码 | 在线看av网址 | 久草在线播放视频 | 久久久久国产精品一区二区 | 五月开心婷婷 | 精品伦理一区二区三区 | 九九视频免费观看视频精品 | www.888av | 免费av 在线 | 最新久久久 | 天天搞夜夜骑 | 精品高清美女精品国产区 | 美女黄久久 | 午夜12点 | 国产老熟| 日韩精品欧美视频 | 一级性生活片 | av黄色免费看 | 久久99精品久久久久久 | 免费视频色 | 亚州av免费| 久久午夜网| 狠狠躁夜夜a产精品视频 | 欧美 日韩 成人 | 成人av在线网| 最新黄色av网址 | 日韩精品你懂的 | 国产一区私人高清影院 | 日韩电影在线视频 | 狠狠色狠狠色综合日日92 | 婷婷伊人综合亚洲综合网 | 欧美性极品xxxx娇小 | 日本精品在线视频 | 色五婷婷 | 人人澡视频| 很黄很污的视频网站 | 中文区中文字幕免费看 | 18做爰免费视频网站 | 久久久久亚洲国产精品 | 久久免费视频这里只有精品 | 国产成人精品久久久久蜜臀 | 久草精品视频 | 91视频免费网址 | 婷婷六月网 | 国产一级在线 | 久久国产精品系列 | 激情网第四色 | 在线成人中文字幕 | 国产视频在线观看一区 | 又爽又黄又刺激的视频 | 国产精品99久久久精品 | 麻豆一区二区 | 久久69av| 91在线影院 | 久久国产精品精品国产色婷婷 | 亚洲一区网站 | 亚洲理论片 | 成人在线免费视频观看 |