久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Opencv 特征训练分类器

發布時間:2024/3/12 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Opencv 特征训练分类器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、基礎知識準備

首先,opencv目前僅支持三種特征的訓練檢測, HAAR、LBP、HOG,選擇哪個特征就去補充哪個吧。opencv的這個訓練算法是基于adaboost而來的,所以需要先對adaboost進行基礎知識補充啊,網上一大堆資料,同志們速度去查閱。我的資源里也有,大家去下載吧,這些我想都不是大家能直接拿來用的,我下面將直接手把手告訴大家訓練怎么操作,以及要注意哪些細節。


二、關于正樣本的準備

1、采集正樣本圖片

因為正樣本最后需要大小歸一化,所以我在采集樣本的時候就直接把它從原圖里摳出來了,方便后面縮放嘛,而不是只保存它的框個數和框位置信息(框個數、框位置信息看下一步解釋),在裁剪的過程中盡量保持樣本的長寬比例一致。比如我最后要歸一化成20 X 20,在裁剪樣本的時候,我都是20X20或者21X21、22X22等等,最大我也沒有超過30X30(不超過跟我的自身用途有關,對于人臉檢測這種要保證縮放不變性的樣本,肯定就可以超過啦),我資源里也給出可以直接用的裁剪樣本程序。

(這里我說錯了,根據createsamples.cpp ,我們不需要提前進行縮放操作,它在第3步變成vec時就包含了縮放工作.如果我們是用objectMaker標記樣本,程序同時生成的關于每一幅圖的samplesInfo信息,直接給第三步用即可。當然,你提前縮放了也沒關系,按照第2步操作即可)

2、獲取正樣本路徑列表

在你的圖片文件夾里,編寫一個bat程序(get route.bat,bat是避免每次都需要去dos框輸入,那里又不能復制又不能粘貼!),如下所示:








運行bat文件,就會生成如下dat文件:


把這個dat文件中的所有非圖片的路徑都刪掉,比如上圖的頭兩行,再將bmp 替換成 bmp 1 0 0 20 20,如下:


(1代表個數,后四個分別對應 left top width height,如果我們之前不是把樣本裁剪下來的,那么你的這個dat可能就長成這樣1. bmp 3 1 3 24 24 26 28 25 25 60 80 26 26,1.bmp是完全的原圖啊,你之前的樣本就是從這張圖上扣下來的)

3、獲取供訓練的vec文件

這里,我們得利用opencv里的一個程序叫opencv_createsamples.exe,可以把它拷貝出來。針對它的命令輸入也是寫成bat文件啦,因為cascade訓練的時候用的是vec。如下:


運行bat,就在我們得pos文件夾里生成了如下vec文件:

就此有關正樣本的東西準備結束。

(vec中其實就是保存的每一個sample圖,并且已經統一w、h大小了,如果你想看所有的sample,也可以通過調用opencv_createsamples.exe,使用操作,見附)


三、關于負樣本的準備

這個特別簡單,直接拿原始圖,不需要裁剪摳圖(不裁剪還能保證樣本的多樣性),也不需要保存框(網上說只要保證比正樣本大小大哈,大家就保證吧),只要把路徑保存下來。同正樣本類似,步驟圖如下:



至此有關負樣本的也準備完成。


四、開始訓練吧

這里我們用opencv_traincascade.exe(opencv_haartraining.exe的用法跟這個很相似,具體需要輸入哪些參數去看opencv的源碼吧,網上資料也有很多,主要是opencv_traincascade.exe比opencv_haartraining.exe包含更多的特征,功能齊全些啊),直接上圖:


命令輸入也直接用bat文件,請務必保證好大小寫一致,不然不予識別參數。小白兔,跑起來~~~


這是程序識別到的參數,沒有錯把,如果你哪個字母打錯了,你就會發現這些參數會跟你預設的不一樣啊,所以大家一定要看清楚了~~~~

跑啊跑啊跑啊跑,如下:


這一級的強訓練器達到你預設的比例以后就跑去訓練下一級了,同志們那個HR比例不要設置太高,不然會需要好多樣本,然后stagenum不要設置太小啊,不然到時候拿去檢測速度會很慢。

等這個bat跑結束,我的xml文件也生成了。如下:


其實這個訓練可以中途停止的,因為下次開啟時它會讀取這些xml文件,接著進行上次未完成的訓練。哈哈~~~~好人性化啊!

訓練結束,我要到了我的cascade.xml文件,現在我要拿它去做檢測了啊!呼呼~~~~


五、開始檢測吧

opencv有個opencv_performance.exe程序用于檢測,但是它只能用在用opencv_haartraining.exe來用的,所以我這里是針對一些列圖片進行檢測的,檢測代碼如下:

[cpp] view plaincopyprint?
  • #include?<windows.h>??
  • #include?<mmsystem.h>??
  • #include?<stdio.h>??
  • #include?<stdlib.h>??
  • #include?“wininet.h”??
  • #include?<direct.h>??
  • #include?<string.h>??
  • #include?<list>??
  • #pragma?comment(lib,”Wininet.lib”)??
  • ??
  • ??
  • #include?“opencv2/objdetect/objdetect.hpp”??
  • #include?“opencv2/highgui/highgui.hpp”??
  • #include?“opencv2/imgproc/imgproc.hpp”??
  • #include?“opencv2/ml/ml.hpp”??
  • ??
  • #include?<iostream>??
  • #include?<stdio.h>??
  • ??
  • using?namespace?std;??
  • using?namespace?cv;??
  • ??
  • String?cascadeName?=?”./cascade.xml”;//訓練數據??
  • ??
  • struct?PathElem{??
  • ????TCHAR???SrcImgPath[MAX_PATH*2];??
  • ????TCHAR???RstImgPath[MAX_PATH*2];??
  • };??
  • int?FindImgs(char??pSrcImgPath,?char??pRstImgPath,?std::list<PathElem>?&ImgList);??
  • ??
  • int?main(?)??
  • {??
  • ????CascadeClassifier?cascade;//創建級聯分類器對象??
  • ????std::list<PathElem>?ImgList;???
  • ????std::list<PathElem>::iterator?pImgListTemp;???
  • ????vector<Rect>?rects;??
  • ????vector<Rect>::const_iterator?pRect;??
  • ??
  • ????double?scale?=?1.;??
  • ????Mat?image;??
  • ????double?t;??
  • ????if(?!cascade.load(?cascadeName?)?)//從指定的文件目錄中加載級聯分類器??
  • ????{??
  • ????????cerr?<<?”ERROR:?Could?not?load?classifier?cascade”?<<?endl;??
  • ????????return?0;??
  • ????}??
  • ??
  • ??????
  • ????int?nFlag?=?FindImgs(“H:/SrcPic/”,“H:/RstPic/”,?ImgList);?????????
  • ????if(nFlag?!=?0)?????
  • ????{??
  • ????????cout<<”Read?Image??error?!??Input?0?to?exit?\n”;??
  • ????????exit(0);??
  • ????}??
  • ??
  • ????pImgListTemp?=?ImgList.begin();??
  • ????for(int?iik?=?1;?iik?<=?ImgList.size();?iik++,pImgListTemp++)??
  • ????{??
  • ????????image?=?imread(pImgListTemp->SrcImgPath);??????
  • ????????if(?!image.empty()?)//讀取圖片數據不能為空??
  • ????????{??
  • ????????????Mat?gray,?smallImg(?cvRound?(image.rows/scale),?cvRound(image.cols/scale),?CV_8UC1?);//將圖片縮小,加快檢測速度??
  • ????????????cvtColor(?image,?gray,?CV_BGR2GRAY?);//因為用的是類haar特征,所以都是基于灰度圖像的,這里要轉換成灰度圖像??
  • ????????????resize(?gray,?smallImg,?smallImg.size(),?0,?0,?INTER_LINEAR?);//將尺寸縮小到1/scale,用線性插值??
  • ????????????equalizeHist(?smallImg,?smallImg?);//直方圖均衡??
  • ??
  • ????????????//detectMultiScale函數中smallImg表示的是要檢測的輸入圖像為smallImg,rects表示檢測到的目標序列,1.1表示??
  • ????????????//每次圖像尺寸減小的比例為1.1,2表示每一個目標至少要被檢測到3次才算是真的目標(因為周圍的像素和不同的窗口大??
  • ????????????//小都可以檢測到目標),CV_HAAR_SCALE_IMAGE表示不是縮放分類器來檢測,而是縮放圖像,Size(30,?30)為目標的??
  • ????????????//最小最大尺寸??
  • ????????????rects.clear();??
  • ????????????printf(?”begin…\n”);??
  • ????????????t?=?(double)cvGetTickCount();//用來計算算法執行時間??
  • ????????????cascade.detectMultiScale(smallImg,rects,1.1,2,0,Size(20,20),Size(30,30));??
  • ????????????//|CV_HAAR_FIND_BIGGEST_OBJECT//|CV_HAAR_DO_ROUGH_SEARCH|CV_HAAR_SCALE_IMAGE,??
  • ??
  • ????????????t?=?(double)cvGetTickCount()?-?t;??
  • ????????????printf(?”detection?time?=?%g?ms\n\n”,?t/((double)cvGetTickFrequency()1000.)?);??
  • ????????????for(pRect?=?rects.begin();?pRect?!=?rects.end();?pRect++)??
  • ????????????{??
  • ????????????????rectangle(image,cvPoint(pRect->x,pRect->y),cvPoint(pRect->x+pRect->width,pRect->y+pRect->height),cvScalar(0,255,0));??
  • ????????????}??
  • ????????????imwrite(pImgListTemp->RstImgPath,image);??
  • ????????}??
  • ????}??
  • ??????
  • ????return?0;??
  • }??
  • ??
  • int?FindImgs(char??pSrcImgPath,?char??pRstImgPath,?std::list<PathElem>?&ImgList)??
  • {??
  • ????//源圖片存在的目錄??
  • ????TCHAR???szFileT1[MAX_PATH*2];??
  • ????lstrcpy(szFileT1,TEXT(pSrcImgPath));?????
  • ????lstrcat(szFileT1,?TEXT(”.*”));??
  • ??
  • ????//結果圖片存放的目錄??
  • ????TCHAR???RstAddr[MAX_PATH*2];???
  • ????lstrcpy(RstAddr,TEXT(pRstImgPath));??
  • ????_mkdir(RstAddr);???//創建文件夾??
  • ??
  • ????WIN32_FIND_DATA???wfd;????
  • ????HANDLE???hFind???=???FindFirstFile(szFileT1,?&wfd);???
  • ??
  • ??
  • ????PathElem?stPathElemTemp;??
  • ????if(hFind?!=?INVALID_HANDLE_VALUE)?????
  • ????{??
  • ????????do???
  • ????????{???
  • ????????????if(wfd.cFileName[0]?==?TEXT(‘.’))???
  • ????????????????continue;??
  • ????????????if(wfd.dwFileAttributes?&?FILE_ATTRIBUTE_DIRECTORY?||?strcmp(“Thumbs.db”,?TEXT(wfd.cFileName))?==?0)???
  • ????????????{???
  • ????????????????;??
  • ????????????}????
  • ????????????else???
  • ????????????{???
  • ??
  • ????????????????TCHAR???SrcImgPath[MAX_PATH*2];??
  • ????????????????lstrcpy(SrcImgPath,?pSrcImgPath);???
  • ????????????????lstrcat(SrcImgPath,?TEXT(wfd.cFileName));??
  • ??
  • ????????????????lstrcpy(stPathElemTemp.SrcImgPath,?SrcImgPath);???
  • ??
  • ????????????????TCHAR???AdressTemp[MAX_PATH*2];??
  • ????????????????lstrcpy(AdressTemp,pRstImgPath);???
  • ??
  • ????????????????//lstrcat(AdressTemp,?TEXT(“/”));????
  • ????????????????lstrcat(AdressTemp,?TEXT(wfd.cFileName));????
  • ????????????????lstrcpy(stPathElemTemp.RstImgPath,?AdressTemp);???
  • ??
  • ????????????????ImgList.push_back(stPathElemTemp);??
  • ??
  • ????????????}??
  • ????????}while(FindNextFile(hFind,?&wfd));??
  • ????}??
  • ????else??
  • ????{??
  • ????????return?-1;??
  • ????}??
  • ????return?0;??
  • }??
  • #include <windows.h>

    #include <mmsystem.h> #include <stdio.h> #include <stdlib.h> #include "wininet.h" #include <direct.h> #include <string.h> #include <list> #pragma comment(lib,"Wininet.lib") #include "opencv2/objdetect/objdetect.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/imgproc/imgproc.hpp" #include "opencv2/ml/ml.hpp" #include <iostream> #include <stdio.h> using namespace std; using namespace cv; String cascadeName = "./cascade.xml";//訓練數據 struct PathElem{ TCHAR SrcImgPath[MAX_PATH*2]; TCHAR RstImgPath[MAX_PATH*2]; }; int FindImgs(char * pSrcImgPath, char * pRstImgPath, std::list<PathElem> &ImgList); int main( ) { CascadeClassifier cascade;//創建級聯分類器對象 std::list<PathElem> ImgList; std::list<PathElem>::iterator pImgListTemp; vector<Rect> rects; vector<Rect>::const_iterator pRect; double scale = 1.; Mat image; double t; if( !cascade.load( cascadeName ) )//從指定的文件目錄中加載級聯分類器 { cerr << "ERROR: Could not load classifier cascade" << endl; return 0; } int nFlag = FindImgs("H:/SrcPic/","H:/RstPic/", ImgList); if(nFlag != 0) { cout<<"Read Image error ! Input 0 to exit \n"; exit(0); } pImgListTemp = ImgList.begin(); for(int iik = 1; iik <= ImgList.size(); iik++,pImgListTemp++) { image = imread(pImgListTemp->SrcImgPath); if( !image.empty() )//讀取圖片數據不能為空 { Mat gray, smallImg( cvRound (image.rows/scale), cvRound(image.cols/scale), CV_8UC1 );//將圖片縮小,加快檢測速度 cvtColor( image, gray, CV_BGR2GRAY );//因為用的是類haar特征,所以都是基于灰度圖像的,這里要轉換成灰度圖像 resize( gray, smallImg, smallImg.size(), 0, 0, INTER_LINEAR );//將尺寸縮小到1/scale,用線性插值 equalizeHist( smallImg, smallImg );//直方圖均衡 //detectMultiScale函數中smallImg表示的是要檢測的輸入圖像為smallImg,rects表示檢測到的目標序列,1.1表示 //每次圖像尺寸減小的比例為1.1,2表示每一個目標至少要被檢測到3次才算是真的目標(因為周圍的像素和不同的窗口大 //小都可以檢測到目標),CV_HAAR_SCALE_IMAGE表示不是縮放分類器來檢測,而是縮放圖像,Size(30, 30)為目標的 //最小最大尺寸 rects.clear(); printf( "begin...\n"); t = (double)cvGetTickCount();//用來計算算法執行時間 cascade.detectMultiScale(smallImg,rects,1.1,2,0,Size(20,20),Size(30,30)); //|CV_HAAR_FIND_BIGGEST_OBJECT//|CV_HAAR_DO_ROUGH_SEARCH|CV_HAAR_SCALE_IMAGE, t = (double)cvGetTickCount() - t; printf( "detection time = %g ms\n\n", t/((double)cvGetTickFrequency()*1000.) ); for(pRect = rects.begin(); pRect != rects.end(); pRect++) { rectangle(image,cvPoint(pRect->x,pRect->y),cvPoint(pRect->x+pRect->width,pRect->y+pRect->height),cvScalar(0,255,0)); } imwrite(pImgListTemp->RstImgPath,image); } } return 0; } int FindImgs(char * pSrcImgPath, char * pRstImgPath, std::list<PathElem> &ImgList) { //源圖片存在的目錄 TCHAR szFileT1[MAX_PATH*2]; lstrcpy(szFileT1,TEXT(pSrcImgPath)); lstrcat(szFileT1, TEXT("*.*")); //結果圖片存放的目錄 TCHAR RstAddr[MAX_PATH*2]; lstrcpy(RstAddr,TEXT(pRstImgPath)); _mkdir(RstAddr); //創建文件夾 WIN32_FIND_DATA wfd; HANDLE hFind = FindFirstFile(szFileT1, &wfd); PathElem stPathElemTemp; if(hFind != INVALID_HANDLE_VALUE) { do { if(wfd.cFileName[0] == TEXT('.')) continue; if(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY || strcmp("Thumbs.db", TEXT(wfd.cFileName)) == 0) { ; } else { TCHAR SrcImgPath[MAX_PATH*2]; lstrcpy(SrcImgPath, pSrcImgPath); lstrcat(SrcImgPath, TEXT(wfd.cFileName)); lstrcpy(stPathElemTemp.SrcImgPath, SrcImgPath); TCHAR AdressTemp[MAX_PATH*2]; lstrcpy(AdressTemp,pRstImgPath); //lstrcat(AdressTemp, TEXT("/")); lstrcat(AdressTemp, TEXT(wfd.cFileName)); lstrcpy(stPathElemTemp.RstImgPath, AdressTemp); ImgList.push_back(stPathElemTemp); } }while(FindNextFile(hFind, &wfd)); } else { return -1; } return 0; }

    自己看看自己的檢測結果咯。效果不好的改進樣本,調整訓練參數吧~~~嘎嘎


    我覺得我寫的夠白癡,很方便大家直接拿來用。其中一些細節,大家自己琢磨吧~88



    附:

    1、opencv_createsamples.exe的參數

    (createsamples.cpp)

    [cpp] view plaincopyprint?
  • ”??[-info?<collection_file_name>]\n”??
  • ”??[-img?<image_file_name>]\n”??
  • ”??[-vec?<vec_file_name>]\n”??
  • ”??[-bg?<background_file_name>]\n??[-num?<number_of_samples?=?%d>]\n”??
  • ”??[-bgcolor?<background_color?=?%d>]\n”??
  • ”??[-inv]?[-randinv]?[-bgthresh?<background_color_threshold?=?%d>]\n”??
  • ”??[-maxidev?<max_intensity_deviation?=?%d>]\n”??
  • ”??[-maxxangle?<max_x_rotation_angle?=?%f>]\n”??
  • ”??[-maxyangle?<max_y_rotation_angle?=?%f>]\n”??
  • ”??[-maxzangle?<max_z_rotation_angle?=?%f>]\n”??
  • ”??[-show?[<scale?=?%f>]]\n”??
  • ”??[-w?<sample_width?=?%d>]\n??[-h?<sample_height?=?%d>]\n”//默認24*24??
  • " [-info <collection_file_name>]\n"" [-img <image_file_name>]\n"" [-vec <vec_file_name>]\n"" [-bg <background_file_name>]\n [-num <number_of_samples = %d>]\n"" [-bgcolor <background_color = %d>]\n"" [-inv] [-randinv] [-bgthresh <background_color_threshold = %d>]\n"" [-maxidev <max_intensity_deviation = %d>]\n"" [-maxxangle <max_x_rotation_angle = %f>]\n"" [-maxyangle <max_y_rotation_angle = %f>]\n"" [-maxzangle <max_z_rotation_angle = %f>]\n"" [-show [<scale = %f>]]\n"" [-w <sample_width = %d>]\n [-h <sample_height = %d>]\n"//默認24*24

    以下1)~4)是按順序判斷,且有且僅有一個

    1)提供imagename 和vecname時,調用以下操作
    [cpp] view plaincopyprint?
  • /*?
  • ?*?cvCreateTrainingSamples?
  • ?*?
  • ?*?Create?training?samples?applying?random?distortions?to?sample?image?and?
  • ?*?store?them?in?.vec?file?
  • ?*?
  • ?*?filename????????-?.vec?file?name?
  • ?*?imgfilename?????-?sample?image?file?name?
  • ?*?bgcolor?????????-?background?color?for?sample?image?
  • ?*?bgthreshold?????-?background?color?threshold.?Pixels?those?colors?are?in?range?
  • ?*???[bgcolor-bgthreshold,?bgcolor+bgthreshold]?are?considered?as?transparent?
  • ?*?bgfilename??????-?background?description?file?name.?If?not?NULL?samples?
  • ?*???will?be?put?on?arbitrary?background?
  • ?*?count???????????-?desired?number?of?samples?
  • ?*?invert??????????-?if?not?0?sample?foreground?pixels?will?be?inverted?
  • ?*???if?invert?==?CV_RANDOM_INVERT?then?samples?will?be?inverted?randomly?
  • ?*?maxintensitydev?-?desired?max?intensity?deviation?of?foreground?samples?pixels?
  • ?*?maxxangle???????-?max?rotation?angles?
  • ?*?maxyangle?
  • ?*?maxzangle?
  • ?*?showsamples?????-?if?not?0?samples?will?be?shown?
  • ?*?winwidth????????-?desired?samples?width?
  • ?*?winheight???????-?desired?samples?height?
  • ?*/??
  • /** cvCreateTrainingSamples** Create training samples applying random distortions to sample image and* store them in .vec file** filename - .vec file name* imgfilename - sample image file name* bgcolor - background color for sample image* bgthreshold - background color threshold. Pixels those colors are in range* [bgcolor-bgthreshold, bgcolor+bgthreshold] are considered as transparent* bgfilename - background description file name. If not NULL samples* will be put on arbitrary background* count - desired number of samples* invert - if not 0 sample foreground pixels will be inverted* if invert == CV_RANDOM_INVERT then samples will be inverted randomly* maxintensitydev - desired max intensity deviation of foreground samples pixels* maxxangle - max rotation angles* maxyangle* maxzangle* showsamples - if not 0 samples will be shown* winwidth - desired samples width* winheight - desired samples height*/2)提供imagename、bgfilename和infoname時
    與1)類似
    3)提供 infoname和 vecname時,調用以下操作 (這里是我們訓練需要的)
    [cpp] view plaincopyprint?
  • /*?
  • ?*?cvCreateTrainingSamplesFromInfo?
  • ?*?
  • ?*?Create?training?samples?from?a?set?of?marked?up?images?and?store?them?into?.vec?file?
  • ?*?infoname????-?file?in?which?marked?up?image?descriptions?are?stored?
  • ?*?num?????????-?desired?number?of?samples?
  • ?*?showsamples?-?if?not?0?samples?will?be?shown?
  • ?*?winwidth????-?sample?width?
  • ?*?winheight???-?sample?height?
  • ?*??
  • ?*?Return?number?of?successfully?created?samples?
  • ?*/??
  • int?cvCreateTrainingSamplesFromInfo(?const?char*?infoname,?const?char*?vecfilename,??
  • ?????????????????????????????????????int?num,??
  • ?????????????????????????????????????int?showsamples,??
  • ?????????????????????????????????????int?winwidth,?int?winheight?)??
  • /** cvCreateTrainingSamplesFromInfo** Create training samples from a set of marked up images and store them into .vec file* infoname - file in which marked up image descriptions are stored* num - desired number of samples* showsamples - if not 0 samples will be shown* winwidth - sample width* winheight - sample height* * Return number of successfully created samples*/ int cvCreateTrainingSamplesFromInfo( const char* infoname, const char* vecfilename,int num,int showsamples,int winwidth, int winheight )

    函數內容:讀取當前圖中所有標記的sample(x,y,w,h),并將其縮放到winwidth、winheight大小,故在這之前的人為縮放操作不需要

    (可以看到,僅需要num、w、h參數)
    4)僅vecname時,可以將vec里面的所有縮放后的samples都顯示出來
    [cpp] view plaincopyprint?
  • /*?
  • ?*?cvShowVecSamples?
  • ?*?
  • ?*?Shows?samples?stored?in?.vec?file?
  • ?*?
  • ?*?filename?
  • ?*???.vec?file?name?
  • ?*?winwidth?
  • ?*???sample?width?
  • ?*?winheight?
  • ?*???sample?height?
  • ?*?scale?
  • ?*???the?scale?each?sample?is?adjusted?to(這個scale與3中的縮放不是一回事,這里僅為了顯示而再次縮放)?
  • ?*/??
  • void?cvShowVecSamples(?const?char*?filename,?int?winwidth,?int?winheight,?double?scale?);??
  • /** cvShowVecSamples** Shows samples stored in .vec file** filename* .vec file name* winwidth* sample width* winheight* sample height* scale* the scale each sample is adjusted to(這個scale與3中的縮放不是一回事,這里僅為了顯示而再次縮放)*/ void cvShowVecSamples( const char* filename, int winwidth, int winheight, double scale );

    2、opencv_haartraining.exe的參數

    (haartraining.cpp?)

    [cpp] view plaincopyprint?
  • ”??-data?<dir_name>\n”??
  • ”??-vec?<vec_file_name>\n”??
  • ”??-bg?<background_file_name>\n”??
  • ”??[-bg-vecfile]\n”??
  • ”??[-npos?<number_of_positive_samples?=?%d>]\n”??
  • ”??[-nneg?<number_of_negative_samples?=?%d>]\n”??
  • ”??[-nstages?<number_of_stages?=?%d>]\n”??
  • ”??[-nsplits?<number_of_splits?=?%d>]\n”??
  • ”??[-mem?<memory_in_MB?=?%d>]\n”??
  • ”??[-sym?(default)]?[-nonsym]\n”??
  • ”??[-minhitrate?<min_hit_rate?=?%f>]\n”??
  • ”??[-maxfalsealarm?<max_false_alarm_rate?=?%f>]\n”??
  • ”??[-weighttrimming?<weight_trimming?=?%f>]\n”??
  • ”??[-eqw]\n”??
  • ”??[-mode?<BASIC?(default)?|?CORE?|?ALL>]\n”??
  • ”??[-w?<sample_width?=?%d>]\n”??
  • ”??[-h?<sample_height?=?%d>]\n”??
  • ”??[-bt?<DAB?|?RAB?|?LB?|?GAB?(default)>]\n”??
  • ”??[-err?<misclass?(default)?|?gini?|?entropy>]\n”??
  • ”??[-maxtreesplits?<max_number_of_splits_in_tree_cascade?=?%d>]\n”??
  • ”??[-minpos?<min_number_of_positive_samples_per_cluster?=?%d>]\n”??
  • " -data <dir_name>\n" " -vec <vec_file_name>\n" " -bg <background_file_name>\n" " [-bg-vecfile]\n" " [-npos <number_of_positive_samples = %d>]\n" " [-nneg <number_of_negative_samples = %d>]\n" " [-nstages <number_of_stages = %d>]\n" " [-nsplits <number_of_splits = %d>]\n" " [-mem <memory_in_MB = %d>]\n" " [-sym (default)] [-nonsym]\n" " [-minhitrate <min_hit_rate = %f>]\n" " [-maxfalsealarm <max_false_alarm_rate = %f>]\n" " [-weighttrimming <weight_trimming = %f>]\n" " [-eqw]\n" " [-mode <BASIC (default) | CORE | ALL>]\n" " [-w <sample_width = %d>]\n" " [-h <sample_height = %d>]\n" " [-bt <DAB | RAB | LB | GAB (default)>]\n" " [-err <misclass (default) | gini | entropy>]\n" " [-maxtreesplits <max_number_of_splits_in_tree_cascade = %d>]\n" " [-minpos <min_number_of_positive_samples_per_cluster = %d>]\n"

    3、opencv_performance.exe參數

    (performance.cpp?)

    [cpp] view plaincopyprint?
  • ”??-data?<classifier_directory_name>\n”??
  • ”??-info?<collection_file_name>\n”??
  • ”??[-maxSizeDiff?<max_size_difference?=?%f>]\n”??
  • ”??[-maxPosDiff?<max_position_difference?=?%f>]\n”??
  • ”??[-sf?<scale_factor?=?%f>]\n”??
  • ”??[-ni?<saveDetected?=?0>]\n”??
  • ”??[-nos?<number_of_stages?=?%d>]\n”??
  • ”??[-rs?<roc_size?=?%d>]\n”??
  • ”??[-w?<sample_width?=?%d>]\n”??
  • ”??[-h?<sample_height?=?%d>]\n”??
  • " -data <classifier_directory_name>\n" " -info <collection_file_name>\n" " [-maxSizeDiff <max_size_difference = %f>]\n" " [-maxPosDiff <max_position_difference = %f>]\n" " [-sf <scale_factor = %f>]\n" " [-ni <saveDetected = 0>]\n" " [-nos <number_of_stages = %d>]\n" " [-rs <roc_size = %d>]\n" " [-w <sample_width = %d>]\n" " [-h <sample_height = %d>]\n"


    4、opencv_traincascade.exe參數說明

    ——traincascade.cpp?

    [cpp] view plaincopyprint?
  • ?cout?<<?“Usage:?”?<<?argv[0]?<<?endl;??
  • ?cout?<<?”??-data?<cascade_dir_name>”?<<?endl;??
  • ?cout?<<?”??-vec?<vec_file_name>”?<<?endl;??
  • ?cout?<<?”??-bg?<background_file_name>”?<<?endl;??
  • ?cout?<<?”??[-numPos?<number_of_positive_samples?=?”?<<?numPos?<<?“>]”?<<?endl;???//默認2000??
  • ?cout?<<?”??[-numNeg?<number_of_negative_samples?=?”?<<?numNeg?<<?“>]”?<<?endl;???//默認1000??
  • ?cout?<<?”??[-numStages?<number_of_stages?=?”?<<?numStages?<<?“>]”?<<?endl;???//默認20??
  • ?cout?<<?”??[-precalcValBufSize?<precalculated_vals_buffer_size_in_Mb?=?”?<<?precalcValBufSize?<<?“>]”?<<?endl;//默認256??
  • ?cout?<<?”??[-precalcIdxBufSize?<precalculated_idxs_buffer_size_in_Mb?=?”?<<?precalcIdxBufSize?<<?“>]”?<<?endl;//默認256??
  • ?cout?<<?”??[-baseFormatSave]”?<<?endl;?????????????????????//是否按照舊版存xml文件默認false??
  • //?cout?<<?”??[-numThreads?<max_number_of_threads?=?”?<<?numThreads?<<?”>]”?<<?endl;//這個參數在3.0版本中才出現,默認numThreads?=?getNumThreads();??
  • //?cout?<<?”??[-acceptanceRatioBreakValue?<value>?=?”?<<?acceptanceRatioBreakValue?<<?”>]”?<<?endl;//這個參數在3.0版本中才出現,默認-1.0??
  • ?cascadeParams.printDefaults();??
  • ?stageParams.printDefaults();??
  • ?for(?int?fi?=?0;?fi?<?fc;?fi++?)??
  • ?????featureParams[fi]->printDefaults();??
  • cout << "Usage: " << argv[0] << endl;cout << " -data <cascade_dir_name>" << endl;cout << " -vec <vec_file_name>" << endl;cout << " -bg <background_file_name>" << endl;cout << " [-numPos <number_of_positive_samples = " << numPos << ">]" << endl; //默認2000cout << " [-numNeg <number_of_negative_samples = " << numNeg << ">]" << endl; //默認1000cout << " [-numStages <number_of_stages = " << numStages << ">]" << endl; //默認20cout << " [-precalcValBufSize <precalculated_vals_buffer_size_in_Mb = " << precalcValBufSize << ">]" << endl;//默認256cout << " [-precalcIdxBufSize <precalculated_idxs_buffer_size_in_Mb = " << precalcIdxBufSize << ">]" << endl;//默認256cout << " [-baseFormatSave]" << endl; //是否按照舊版存xml文件默認false// cout << " [-numThreads <max_number_of_threads = " << numThreads << ">]" << endl;//這個參數在3.0版本中才出現,默認numThreads = getNumThreads();// cout << " [-acceptanceRatioBreakValue <value> = " << acceptanceRatioBreakValue << ">]" << endl;//這個參數在3.0版本中才出現,默認-1.0cascadeParams.printDefaults();stageParams.printDefaults();for( int fi = 0; fi < fc; fi++ )featureParams[fi]->printDefaults();

    其中cascadeParams.printDefaults();——cascadeclassifier.cpp?如下

    [cpp] view plaincopyprint?
  • cout?<<?“??[-stageType?<”;?????????????????????????????????????????????????//默認BOOST??
  • for(?int?i?=?0;?i?<?(int)(sizeof(stageTypes)/sizeof(stageTypes[0]));?i++?)??
  • {??
  • ????cout?<<?(i???”?|?”?:?“”)?<<?stageTypes[i];??
  • ????if?(?i?==?defaultStageType?)??
  • ????????cout?<<?”(default)”;??
  • }??
  • cout?<<?”>]”?<<?endl;??
  • ??
  • cout?<<?”??[-featureType?<{“;??????????????????????????????????????????????//默認HAAR??
  • for(?int?i?=?0;?i?<?(int)(sizeof(featureTypes)/sizeof(featureTypes[0]));?i++?)??
  • {??
  • ????cout?<<?(i???”,?”?:?“”)?<<?featureTypes[i];??
  • ????if?(?i?==?defaultStageType?)??
  • ????????cout?<<?”(default)”;??
  • }??
  • cout?<<?”}>]”?<<?endl;??
  • cout?<<?”??[-w?<sampleWidth?=?”?<<?winSize.width?<<?“>]”?<<?endl;????????//默認24*24??
  • cout?<<?”??[-h?<sampleHeight?=?”?<<?winSize.height?<<?“>]”?<<?endl;??
  • cout << " [-stageType <"; //默認BOOSTfor( int i = 0; i < (int)(sizeof(stageTypes)/sizeof(stageTypes[0])); i++ ){cout << (i ? " | " : "") << stageTypes[i];if ( i == defaultStageType )cout << "(default)";}cout << ">]" << endl;cout << " [-featureType <{"; //默認HAARfor( int i = 0; i < (int)(sizeof(featureTypes)/sizeof(featureTypes[0])); i++ ){cout << (i ? ", " : "") << featureTypes[i];if ( i == defaultStageType )cout << "(default)";}cout << "}>]" << endl;cout << " [-w <sampleWidth = " << winSize.width << ">]" << endl; //默認24*24cout << " [-h <sampleHeight = " << winSize.height << ">]" << endl;stageParams.printDefaults();——boost.cpp如下

    [cpp] view plaincopyprint?
  • cout?<<?“–boostParams–”?<<?endl;??
  • cout?<<?”??[-bt?<{“?<<?CC_DISCRETE_BOOST?<<?“,?”??
  • ????????????????????<<?CC_REAL_BOOST?<<?”,?”??
  • ????????????????????<<?CC_LOGIT_BOOST?”,?”??
  • ????????????????????<<?CC_GENTLE_BOOST?<<?”(default)}>]”?<<?endl;?????????????????????????//默認CC_GENTLE_BOOST???
  • cout?<<?”??[-minHitRate?<min_hit_rate>?=?”?<<?minHitRate?<<?“>]”?<<?endl;?????????????????//默認0.995??
  • cout?<<?”??[-maxFalseAlarmRate?<max_false_alarm_rate?=?”?<<?maxFalseAlarm?<<?“>]”?<<?endl;//默認0.5??
  • cout?<<?”??[-weightTrimRate?<weight_trim_rate?=?”?<<?weight_trim_rate?<<?“>]”?<<?endl;????//默認0.95??
  • cout?<<?”??[-maxDepth?<max_depth_of_weak_tree?=?”?<<?max_depth?<<?“>]”?<<?endl;???????????//默認1??
  • cout?<<?”??[-maxWeakCount?<max_weak_tree_count?=?”?<<?weak_count?<<?“>]”?<<?endl;?????????//默認100??
  • cout << "--boostParams--" << endl;cout << " [-bt <{" << CC_DISCRETE_BOOST << ", "<< CC_REAL_BOOST << ", "<< CC_LOGIT_BOOST ", "<< CC_GENTLE_BOOST << "(default)}>]" << endl; //默認CC_GENTLE_BOOST cout << " [-minHitRate <min_hit_rate> = " << minHitRate << ">]" << endl; //默認0.995cout << " [-maxFalseAlarmRate <max_false_alarm_rate = " << maxFalseAlarm << ">]" << endl;//默認0.5cout << " [-weightTrimRate <weight_trim_rate = " << weight_trim_rate << ">]" << endl; //默認0.95cout << " [-maxDepth <max_depth_of_weak_tree = " << max_depth << ">]" << endl; //默認1cout << " [-maxWeakCount <max_weak_tree_count = " << weak_count << ">]" << endl; //默認100featureParams[fi]->printDefaults();——haarfeatures.cpp 如下

    [cpp] view plaincopyprint?
  • cout?<<?“??[-mode?<”?CC_MODE_BASIC?<<?“(default)|?”??//默認CC_MODE_BASIC??
  • ???????????<<?CC_MODE_CORE?<<”?|?”?<<?CC_MODE_ALL?<<?endl;??
  • cout << " [-mode <" CC_MODE_BASIC << "(default)| " //默認CC_MODE_BASIC<< CC_MODE_CORE <<" | " << CC_MODE_ALL << endl;

    通用參數:

    -data<cascade_dir_name>

    目錄名,如不存在訓練程序會創建它,用于存放訓練好的分類器


    -vec<vec_file_name>

    包含正樣本的vec文件名(由?opencv_createsamples?程序生成)


    -bg<background_file_name>

    背景描述文件,也就是包含負樣本文件名的那個描述文件


    -numPos<number_of_positive_samples>

    每級分類器訓練時所用的正樣本數目


    -numNeg<number_of_negative_samples>

    每級分類器訓練時所用的負樣本數目,可以大于?-bg?指定的圖片數目


    -numStages<number_of_stages>

    訓練的分類器的級數。


    -precalcValBufSize<precalculated_vals_buffer_size_in_Mb>

    緩存大小,用于存儲預先計算的特征值(feature?values),單位為MB


    -precalcIdxBufSize<precalculated_idxs_buffer_size_in_Mb>

    緩存大小,用于存儲預先計算的特征索引(feature?indices),單位為MB。內存越大,訓練時間越短


    -baseFormatSave

    這個參數僅在使用Haar特征時有效。如果指定這個參數,那么級聯分類器將以老的格式存儲


    級聯參數:

    -stageType<BOOST(default)>

    級別(stage)參數。目前只支持將BOOST分類器作為級別的類型


    -featureType<{HAAR(default),LBP}>

    特征的類型:?HAAR?-?類Haar特征;LBP?-?局部紋理模式特征


    -w<sampleWidth>

    -h<sampleHeight>

    訓練樣本的尺寸(單位為像素)。必須跟訓練樣本創建(使用?opencv_createsamples?程序創建)時的尺寸保持一致


    Boosted分類器參數:

    -bt<{DAB,RAB,LB,GAB(default)}>

    Boosted分類器的類型:?DAB?-?Discrete?AdaBoost,RAB?-?Real?AdaBoost,LB?-?LogitBoost,?GAB?-?Gentle?AdaBoost


    -minHitRate<min_hit_rate>

    分類器的每一級希望得到的最小檢測率(正樣本被判成正樣本的比例)。總的檢測率大約為?min_hit_rate^number_of_stages。可以設很高,如0.999


    -maxFalseAlarmRate<max_false_alarm_rate>

    分類器的每一級希望得到的最大誤檢率(負樣本被判成正樣本的比例)。總的誤檢率大約為?max_false_alarm_rate^number_of_stages。可以設較低,如0.5


    -weightTrimRate<weight_trim_rate>

    Specifies?whether?trimming?should?be?used?and?its?weight.?一個還不錯的數值是0.95


    -maxDepth<max_depth_of_weak_tree>

    弱分類器樹最大的深度。一個還不錯的數值是1,是二叉樹(stumps)


    -maxWeakCount<max_weak_tree_count>

    每一級中的弱分類器的最大數目。The?boosted?classifier?(stage)?will?have?so?many?weak?trees?(<=maxWeakCount),?as?needed?to?achieve?the?given-maxFalseAlarmRate


    類Haar特征參數:

    -mode<BASIC(default)|?CORE|ALL>

    選擇訓練過程中使用的Haar特征的類型。?BASIC?只使用右上特征,?ALL?使用所有右上特征和45度旋轉特征


    5、detectMultiScale函數參數說明

    該函數會在輸入圖像的不同尺度中檢測目標:

    image? -輸入的灰度圖像,

    objects? -被檢測到的目標矩形框向量組,

    scaleFactor? -為每一個圖像尺度中的尺度參數,默認值為1.1

    minNeighbors? -為每一個級聯矩形應該保留的鄰近個數,默認為3,表示至少有3次檢測到目標,才認為是目標

    flags -CV_HAAR_DO_CANNY_PRUNING,利用Canny邊緣檢測器來排除一些邊緣很少或者很多的圖像區域;

    ?? ? ? ? ??CV_HAAR_SCALE_IMAGE,按比例正常檢測;

    ? ?? ? ? ??CV_HAAR_FIND_BIGGEST_OBJECT,只檢測最大的物體;

    ?? ? ? ? ??CV_HAAR_DO_ROUGH_SEARCH,只做粗略檢測。默認值是0

    minSize和maxSize -用來限制得到的目標區域的范圍(先找maxsize,再用1.1參數縮小,直到小于minSize終止檢測)


    6、opencv關于Haar介紹

    (haarfeatures.cpp ——opencv3.0)

    Detailed Description

    Haar Feature-based Cascade Classifier for Object Detection

    The object detector described below has been initially proposed by Paul Viola?[pdf]?and improved by Rainer Lienhart?[pdf]?.

    First, a classifier (namely a?cascade of boosted classifiers working with haar-like features) is trained with a few hundred sample views of a particular object (i.e., a face or a car), called positive examples, that are scaled to the same size (say, 20x20), and negative examples - arbitrary images of the same size.

    After a classifier is trained, it can be applied to a region of interest (of the same size as used during the training) in an input image. The classifier outputs a “1” if the region is likely to show the object (i.e., face/car), and “0” otherwise. To search for the object in the whole image one can move the search window across the image and check every location using the classifier. The classifier is designed so that it can be easily “resized” in order to be able to find the objects of interest at different sizes, which is more efficient than resizing the image itself. So, to find an object of an unknown size in the image the scan procedure should be done several times at different scales.

    The word “cascade” in the classifier name means that the resultant classifier consists of several simpler classifiers (stages) that are applied subsequently to a region of interest until at some stage the candidate is rejected or all the stages are passed. The word “boosted” means that the classifiers at every stage of the cascade are complex themselves and they are built out of basic classifiers using one of four different boosting techniques (weighted voting). Currently Discrete Adaboost, Real Adaboost, Gentle Adaboost and Logitboost are supported. The basic classifiers are decision-tree classifiers with at least 2 leaves. Haar-like features are the input to the basic classifiers, and are calculated as described below. The current algorithm uses the following Haar-like features:

    image

    The feature used in a particular classifier is specified by its shape (1a, 2b etc.), position within the region of interest and the scale (this scale is not the same as the scale used at the detection stage, though these two scales are multiplied). For example, in the case of the third line feature (2c) the response is calculated as the difference between the sum of image pixels under the rectangle covering the whole feature (including the two white stripes and the black stripe in the middle) and the sum of the image pixels under the black stripe multiplied by 3 in order to compensate for the differences in the size of areas. The sums of pixel values over a rectangular regions are calculated rapidly using integral images (see below and the integral description).

    To see the object detector at work, have a look at the facedetect demo:?https://github.com/Itseez/opencv/tree/master/samples/cpp/dbt_face_detection.cpp

    The following reference is for the detection part only. There is a separate application called opencv_traincascade that can train a cascade of boosted classifiers from a set of samples.

    Note

    In the new C++ interface it is also possible to use LBP (local binary pattern) features in addition to Haar-like features. .. [Viola01] Paul Viola and Michael J. Jones. Rapid Object Detection using a Boosted Cascade of Simple Features. IEEE CVPR, 2001. The paper is available online at?https://www.cs.cmu.edu/~efros/courses/LBMV07/Papers/viola-cvpr-01.pdf(上述有提到)


    7、opencv關于boost

    (boost.cpp——opencv3.0)

    Boosting

    A common machine learning task is supervised learning. In supervised learning, the goal is to learn the functional relationship?F:y=F(x)?between the input?x?and the output?y?. Predicting the qualitative output is called?classification, while predicting the quantitative output is called?regression.

    Boosting is a powerful learning concept that provides a solution to the supervised classification learning task. It combines the performance of many “weak” classifiers to produce a powerful committee?[125]?. A weak classifier is only required to be better than chance, and thus can be very simple and computationally inexpensive. However, many of them smartly combine results to a strong classifier that often outperforms most “monolithic” strong classifiers such as SVMs and Neural Networks.

    Decision trees are the most popular weak classifiers used in boosting schemes. Often the simplest decision trees with only a single split node per tree (called stumps ) are sufficient.

    The boosted model is based on?N?training examples?(xi,yi)1N?with?xiRK?and?yi?1,+1?.?xi?is a?K?-component vector. Each component encodes a feature relevant to the learning task at hand. The desired two-class output is encoded as -1 and +1.

    Different variants of boosting are known as Discrete Adaboost, Real AdaBoost, LogitBoost, and Gentle AdaBoost?[49]?. All of them are very similar in their overall structure. Therefore, this chapter focuses only on the standard two-class Discrete AdaBoost algorithm, outlined below. Initially the same weight is assigned to each sample (step 2). Then, a weak classifier?fm(x)?is trained on the weighted training data (step 3a). Its weighted training error and scaling factor?cm?is computed (step 3b). The weights are increased for training samples that have been misclassified (step 3c). All weights are then normalized, and the process of finding the next weak classifier continues for another?M?-1 times. The final classifier?F(x)?is the sign of the weighted sum over the individual weak classifiers (step 4).

    Two-class Discrete AdaBoost Algorithm

    • Set?N?examples?(xi,yi)1N?with?xiRK,yi?1,+1?.
    • Assign weights as?wi=1/N,i=1,...,N?.
    • Repeat for?m=1,2,...,M?:
      • Fit the classifier?fm(x)?1,1, using weights?wi?on the training data.
      • Compute?errm=Ew[1(yfm(x))],cm=log((1?errm)/errm)?.
      • Set?wi?wiexp[cm1(yifm(xi))],i=1,2,...,N,?and renormalize so that?Σiwi=1?.

    • Classify new samples?x?using the formula:?sign(Σm=1Mcmfm(x))?.
    Note
    Similar to the classical boosting methods, the current implementation supports two-class classifiers only. For M > 2 classes, there is theAdaBoost.MH?algorithm (described in?[49]) that reduces the problem to the two-class problem, yet with a much larger training set.

    To reduce computation time for boosted models without substantially losing accuracy, the influence trimming technique can be employed. As the training algorithm proceeds and the number of trees in the ensemble is increased, a larger number of the training samples are classified correctly and with increasing confidence, thereby those samples receive smaller weights on the subsequent iterations. Examples with a very low relative weight have a small impact on the weak classifier training. Thus, such examples may be excluded during the weak classifier training without having much effect on the induced classifier. This process is controlled with the weight_trim_rate parameter. Only examples with the summary fraction weight_trim_rate of the total weight mass are used in the weak classifier training. Note that the weights for?all?training examples are recomputed at each training iteration. Examples deleted at a particular iteration may be used again for learning some of the weak classifiers further?[49]

    See also
    cv::ml::Boost

    Prediction with Boost

    StatModel::predict(samples, results, flags) should be used. Pass flags=StatModel::RAW_OUTPUT to get the raw sum from Boost classifier.

    8、關于訓練過程打印信息的解釋

    1)POS count : consumed ? n1 : n2

    每次都調用updateTrainingSet( requiredLeafFARate, tempLeafFARate );函數

    [cpp] view plaincopyprint?
  • bool?CvCascadeClassifier::updateTrainingSet(?double?minimumAcceptanceRatio,?double&?acceptanceRatio)??
  • {??
  • ????int64?posConsumed?=?0,?negConsumed?=?0;??
  • ????imgReader.restart();??
  • ????int?posCount?=?fillPassedSamples(?0,?numPos,?true,?0,?posConsumed?);//Consumed消耗??
  • ????if(?!posCount?)??
  • ????????return?false;??
  • ????cout?<<?”POS?count?:?consumed???”?<<?posCount?<<?“?:?”?<<?(int)posConsumed?<<?endl;//這就是打印信息,我的理解是這個stage判成正樣本數和正樣本數??
  • ??
  • ????int?proNumNeg?=?cvRound(?(?((double)numNeg)?*?((double)posCount)?)?/?numPos?);?//?apply?only?a?fraction?of?negative?samples.?double?is?required?since?overflow?is?possible??
  • ????int?negCount?=?fillPassedSamples(?posCount,?proNumNeg,?false,?minimumAcceptanceRatio,?negConsumed?);??
  • ????if?(?!negCount?)??
  • ????????return?false;??
  • ??
  • ????curNumSamples?=?posCount?+?negCount;??
  • ????acceptanceRatio?=?negConsumed?==?0???0?:?(?(double)negCount/(double)(int64)negConsumed?);??
  • ????cout?<<?”NEG?count?:?acceptanceRatio????”?<<?negCount?<<?“?:?”?<<?acceptanceRatio?<<?endl;//打印信息,我的理解是??
  • ????return?true;??
  • }??
  • bool CvCascadeClassifier::updateTrainingSet( double minimumAcceptanceRatio, double& acceptanceRatio) {int64 posConsumed = 0, negConsumed = 0;imgReader.restart();int posCount = fillPassedSamples( 0, numPos, true, 0, posConsumed );//Consumed消耗if( !posCount )return false;cout << "POS count : consumed " << posCount << " : " << (int)posConsumed << endl;//這就是打印信息,我的理解是這個stage判成正樣本數和正樣本數int proNumNeg = cvRound( ( ((double)numNeg) * ((double)posCount) ) / numPos ); // apply only a fraction of negative samples. double is required since overflow is possibleint negCount = fillPassedSamples( posCount, proNumNeg, false, minimumAcceptanceRatio, negConsumed );if ( !negCount )return false;curNumSamples = posCount + negCount;acceptanceRatio = negConsumed == 0 ? 0 : ( (double)negCount/(double)(int64)negConsumed );cout << "NEG count : acceptanceRatio " << negCount << " : " << acceptanceRatio << endl;//打印信息,我的理解是return true; } [cpp] view plaincopyprint?
  • int?CvCascadeClassifier::fillPassedSamples(?int?first,?int?count,?bool?isPositive,?double?minimumAcceptanceRatio,?int64&?consumed?)??
  • {??
  • ????int?getcount?=?0;??
  • ????Mat?img(cascadeParams.winSize,?CV_8UC1);??
  • ????for(?int?i?=?first;?i?<?first?+?count;?i++?)??
  • ????{??
  • ????????for(?;?;?)??
  • ????????{??
  • ????????????if(?consumed?!=?0?&&?((double)getcount+1)/(double)(int64)consumed?<=?minimumAcceptanceRatio?)??
  • ????????????????return?getcount;??
  • ??
  • ????????????bool?isGetImg?=?isPositive???imgReader.getPos(?img?)?:??
  • ???????????????????????????????????????????imgReader.getNeg(?img?);??
  • ????????????if(?!isGetImg?)??
  • ????????????????return?getcount;??
  • ????????????consumed++;??
  • ??
  • ????????????featureEvaluator->setImage(?img,?isPositive???1?:?0,?i?);??
  • ????????????if(?predict(?i?)?==?1.0F?)??
  • ????????????{??
  • ????????????????getcount++;??
  • ????????????????printf(”%s?current?samples:?%d\r”,?isPositive???“POS”:“NEG”,?getcount);??
  • ????????????????break;??
  • ????????????}??
  • ????????}??
  • ????}??
  • ????return?getcount;??
  • }??
  • int CvCascadeClassifier::fillPassedSamples( int first, int count, bool isPositive, double minimumAcceptanceRatio, int64& consumed ) {int getcount = 0;Mat img(cascadeParams.winSize, CV_8UC1);for( int i = first; i < first + count; i++ ){for( ; ; ){if( consumed != 0 && ((double)getcount+1)/(double)(int64)consumed <= minimumAcceptanceRatio )return getcount;bool isGetImg = isPositive ? imgReader.getPos( img ) :imgReader.getNeg( img );if( !isGetImg )return getcount;consumed++;featureEvaluator->setImage( img, isPositive ? 1 : 0, i );if( predict( i ) == 1.0F ){getcount++;printf("%s current samples: %d\r", isPositive ? "POS":"NEG", getcount);break;}}}return getcount; } [cpp] view plaincopyprint?
  • int?CvCascadeClassifier::predict(?int?sampleIdx?)??
  • {??
  • ????CV_DbgAssert(?sampleIdx?<?numPos?+?numNeg?);??
  • ????for?(vector<?Ptr<CvCascadeBoost>?>::iterator?it?=?stageClassifiers.begin();??
  • ????????it?!=?stageClassifiers.end();?it++?)??
  • ????{??
  • ????????if?(?(*it)->predict(?sampleIdx?)?==?0.f?)??
  • ????????????return?0;??
  • ????}??
  • ????return?1;??
  • }??
  • int CvCascadeClassifier::predict( int sampleIdx ) {CV_DbgAssert( sampleIdx < numPos + numNeg );for (vector< Ptr<CvCascadeBoost> >::iterator it = stageClassifiers.begin();it != stageClassifiers.end(); it++ ){if ( (*it)->predict( sampleIdx ) == 0.f )return 0;}return 1; } [cpp] view plaincopyprint?
  • float?CvCascadeBoost::predict(?int?sampleIdx,?bool?returnSum?)?const??
  • {??
  • ????CV_Assert(?weak?);??
  • ????double?sum?=?0;??
  • ????CvSeqReader?reader;??
  • ????cvStartReadSeq(?weak,?&reader?);??
  • ????cvSetSeqReaderPos(?&reader,?0?);??
  • ????for(?int?i?=?0;?i?<?weak->total;?i++?)??
  • ????{??
  • ????????CvBoostTree*?wtree;??
  • ????????CV_READ_SEQ_ELEM(?wtree,?reader?);??
  • ????????sum?+=?((CvCascadeBoostTree*)wtree)->predict(sampleIdx)->value;??
  • ????}??
  • ????if(?!returnSum?)??
  • ????????sum?=?sum?<?threshold?-?CV_THRESHOLD_EPS???0.0?:?1.0;??
  • ????return?(float)sum;??
  • }??
  • float CvCascadeBoost::predict( int sampleIdx, bool returnSum ) const {CV_Assert( weak );double sum = 0;CvSeqReader reader;cvStartReadSeq( weak, &reader );cvSetSeqReaderPos( &reader, 0 );for( int i = 0; i < weak->total; i++ ){CvBoostTree* wtree;CV_READ_SEQ_ELEM( wtree, reader );sum += ((CvCascadeBoostTree*)wtree)->predict(sampleIdx)->value;}if( !returnSum )sum = sum < threshold - CV_THRESHOLD_EPS ? 0.0 : 1.0;return (float)sum; }






    總結

    以上是生活随笔為你收集整理的Opencv 特征训练分类器的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    性色av无码免费一区二区三区 | 日韩精品无码一本二本三本色 | 乱中年女人伦av三区 | 性色av无码免费一区二区三区 | 无码人妻少妇伦在线电影 | 女人被爽到呻吟gif动态图视看 | 波多野结衣乳巨码无在线观看 | 无码人中文字幕 | 日韩在线不卡免费视频一区 | 国产av一区二区精品久久凹凸 | 超碰97人人射妻 | 十八禁真人啪啪免费网站 | 在线精品国产一区二区三区 | yw尤物av无码国产在线观看 | 99久久婷婷国产综合精品青草免费 | 精品熟女少妇av免费观看 | 久久久久久久久888 | 久久精品国产一区二区三区肥胖 | 牲交欧美兽交欧美 | 国产香蕉97碰碰久久人人 | 久久久久久九九精品久 | 好男人www社区 | 国产精品久久久 | 少妇人妻大乳在线视频 | 久久久无码中文字幕久... | 少女韩国电视剧在线观看完整 | 久久久婷婷五月亚洲97号色 | 亚洲中文字幕无码一久久区 | 亚洲国产精品无码久久久久高潮 | 丝袜 中出 制服 人妻 美腿 | 日本乱人伦片中文三区 | 久久成人a毛片免费观看网站 | 亚洲国产成人av在线观看 | 国产精品久久福利网站 | 国产一区二区三区精品视频 | 女人色极品影院 | 久久精品人妻少妇一区二区三区 | 婷婷色婷婷开心五月四房播播 | 人妻少妇精品视频专区 | 狠狠综合久久久久综合网 | 精品国产一区二区三区四区在线看 | а√资源新版在线天堂 | 国产精品国产自线拍免费软件 | 国产suv精品一区二区五 | 中文字幕无线码免费人妻 | 欧美熟妇另类久久久久久多毛 | 久久久久久九九精品久 | 久久久亚洲欧洲日产国码αv | 老司机亚洲精品影院 | 欧美自拍另类欧美综合图片区 | 人妻体内射精一区二区三四 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 久9re热视频这里只有精品 | 亚洲日韩中文字幕在线播放 | 少妇高潮一区二区三区99 | 精品国产成人一区二区三区 | 欧洲熟妇精品视频 | 欧洲精品码一区二区三区免费看 | 无码一区二区三区在线 | 久久99精品国产麻豆蜜芽 | 国产卡一卡二卡三 | 国产亚洲精品精品国产亚洲综合 | 强伦人妻一区二区三区视频18 | 成人av无码一区二区三区 | 无码毛片视频一区二区本码 | 无码精品人妻一区二区三区av | 成人三级无码视频在线观看 | 精品少妇爆乳无码av无码专区 | 黑人大群体交免费视频 | 无遮挡啪啪摇乳动态图 | 中文无码成人免费视频在线观看 | 黑人巨大精品欧美一区二区 | 18禁黄网站男男禁片免费观看 | 久久99精品久久久久久动态图 | 久久亚洲中文字幕精品一区 | 国产精品va在线播放 | 成人一在线视频日韩国产 | 国产精品丝袜黑色高跟鞋 | av在线亚洲欧洲日产一区二区 | 永久黄网站色视频免费直播 | 乱人伦人妻中文字幕无码久久网 | 老子影院午夜伦不卡 | 国产国语老龄妇女a片 | 日本乱人伦片中文三区 | 天天做天天爱天天爽综合网 | 爽爽影院免费观看 | 奇米影视7777久久精品 | 亚洲欧美国产精品专区久久 | 亚洲热妇无码av在线播放 | 一本久久a久久精品亚洲 | 中文字幕无码乱人伦 | 久久视频在线观看精品 | 女人被男人爽到呻吟的视频 | 97夜夜澡人人爽人人喊中国片 | 亚洲综合在线一区二区三区 | 东京热一精品无码av | 丰满人妻翻云覆雨呻吟视频 | 无码人妻黑人中文字幕 | 精品欧美一区二区三区久久久 | 久久99精品久久久久久动态图 | 欧美丰满熟妇xxxx | 国产成人精品无码播放 | 亚洲七七久久桃花影院 | 欧美精品免费观看二区 | 欧美人与牲动交xxxx | 国产99久久精品一区二区 | 激情亚洲一区国产精品 | 欧美 亚洲 国产 另类 | 久久99精品国产麻豆蜜芽 | 国产精品无码一区二区桃花视频 | 国产精品亚洲一区二区三区喷水 | 人妻互换免费中文字幕 | 亚洲综合无码一区二区三区 | 无码国模国产在线观看 | 成在人线av无码免费 | 在线欧美精品一区二区三区 | 中文亚洲成a人片在线观看 | 日韩人妻无码中文字幕视频 | 国内少妇偷人精品视频免费 | 97久久国产亚洲精品超碰热 | 久久精品国产精品国产精品污 | 成 人 免费观看网站 | 午夜福利不卡在线视频 | 久久亚洲日韩精品一区二区三区 | 精品人妻人人做人人爽夜夜爽 | 丰满诱人的人妻3 | 人妻aⅴ无码一区二区三区 | 久久综合狠狠综合久久综合88 | 日本va欧美va欧美va精品 | 欧美日韩人成综合在线播放 | 久久国产精品萌白酱免费 | 狂野欧美性猛交免费视频 | 欧美日本免费一区二区三区 | 精品亚洲韩国一区二区三区 | 亚洲人成人无码网www国产 | 人妻有码中文字幕在线 | 好男人www社区 | 99久久久无码国产精品免费 | 欧美 丝袜 自拍 制服 另类 | 成在人线av无码免观看麻豆 | 国产人妻精品一区二区三区 | 久久熟妇人妻午夜寂寞影院 | 国产精品免费大片 | 天堂一区人妻无码 | 国内精品久久久久久中文字幕 | 国产高清av在线播放 | 天下第一社区视频www日本 | 日韩无码专区 | 97久久国产亚洲精品超碰热 | 久精品国产欧美亚洲色aⅴ大片 | 蜜桃无码一区二区三区 | 久久久久久久女国产乱让韩 | 久久久久成人精品免费播放动漫 | 国产成人一区二区三区别 | 免费人成网站视频在线观看 | 爽爽影院免费观看 | 最近的中文字幕在线看视频 | 撕开奶罩揉吮奶头视频 | 日韩人妻少妇一区二区三区 | 国产免费久久久久久无码 | 老子影院午夜精品无码 | 国产成人无码一二三区视频 | 国产三级久久久精品麻豆三级 | 亚洲の无码国产の无码步美 | 午夜性刺激在线视频免费 | 性欧美大战久久久久久久 | 国产麻豆精品一区二区三区v视界 | 国产色xx群视频射精 | 国产精品永久免费视频 | 亚洲综合精品香蕉久久网 | 欧美真人作爱免费视频 | 亚洲自偷自拍另类第1页 | 丰满人妻一区二区三区免费视频 | 国产精品久久久久久久9999 | 动漫av网站免费观看 | 无套内谢的新婚少妇国语播放 | 久久久精品456亚洲影院 | 成人免费视频一区二区 | 日本肉体xxxx裸交 | 久精品国产欧美亚洲色aⅴ大片 | 99精品视频在线观看免费 | 伊人久久大香线蕉av一区二区 | 又大又硬又爽免费视频 | 青青久在线视频免费观看 | 国产精品久久久久久亚洲毛片 | 日本熟妇大屁股人妻 | 久久久久国色av免费观看性色 | 天天躁日日躁狠狠躁免费麻豆 | 中文字幕 亚洲精品 第1页 | 亚洲gv猛男gv无码男同 | 久久人人爽人人爽人人片av高清 | 久久精品一区二区三区四区 | 亚洲一区二区三区 | 午夜精品久久久久久久久 | 久久久久免费精品国产 | 成 人 免费观看网站 | 久久久www成人免费毛片 | 99精品国产综合久久久久五月天 | 亚洲精品国产精品乱码不卡 | √天堂资源地址中文在线 | 亚洲午夜无码久久 | 日日夜夜撸啊撸 | 国产成人久久精品流白浆 | 性色欲网站人妻丰满中文久久不卡 | 激情内射亚州一区二区三区爱妻 | 久久久久久久人妻无码中文字幕爆 | 久久国产精品萌白酱免费 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 人人妻在人人 | 日韩精品a片一区二区三区妖精 | 国产午夜手机精彩视频 | 国产av人人夜夜澡人人爽麻豆 | 激情国产av做激情国产爱 | 亚洲爆乳大丰满无码专区 | 无码国产色欲xxxxx视频 | 日产精品99久久久久久 | 18精品久久久无码午夜福利 | 色老头在线一区二区三区 | 国产亚洲美女精品久久久2020 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 老熟妇乱子伦牲交视频 | 成人欧美一区二区三区 | 九月婷婷人人澡人人添人人爽 | 精品国产一区av天美传媒 | 成年美女黄网站色大免费全看 | 国产人妻精品一区二区三区不卡 | 欧洲极品少妇 | 久久久国产一区二区三区 | 天堂在线观看www | 亚洲人成影院在线无码按摩店 | 在线播放免费人成毛片乱码 | 久久久久久亚洲精品a片成人 | 久久久精品成人免费观看 | 亚欧洲精品在线视频免费观看 | 日韩精品无码免费一区二区三区 | 亚洲成熟女人毛毛耸耸多 | 精品国产国产综合精品 | 国产成人精品久久亚洲高清不卡 | 久热国产vs视频在线观看 | 久久综合久久自在自线精品自 | 麻豆av传媒蜜桃天美传媒 | 免费国产成人高清在线观看网站 | 无码乱肉视频免费大全合集 | 亚洲国产精品一区二区第一页 | 亚洲无人区午夜福利码高清完整版 | 荫蒂添的好舒服视频囗交 | 日本一区二区三区免费播放 | 国产午夜精品一区二区三区嫩草 | 无码人妻久久一区二区三区不卡 | 国产精品嫩草久久久久 | 成熟人妻av无码专区 | 国产av无码专区亚洲a∨毛片 | 2019nv天堂香蕉在线观看 | 欧美真人作爱免费视频 | 国产乱人无码伦av在线a | 国产乱人偷精品人妻a片 | 最近的中文字幕在线看视频 | 欧美肥老太牲交大战 | 亚洲乱码日产精品bd | 国产熟女一区二区三区四区五区 | 丰腴饱满的极品熟妇 | 久久久亚洲欧洲日产国码αv | 亚洲精品一区二区三区大桥未久 | 欧美日韩视频无码一区二区三 | 欧美野外疯狂做受xxxx高潮 | 一本久道久久综合婷婷五月 | 精品无人区无码乱码毛片国产 | 亚洲国产精品美女久久久久 | 麻花豆传媒剧国产免费mv在线 | 国内精品久久毛片一区二区 | 亚洲成a人一区二区三区 | 中文字幕乱码人妻无码久久 | 亚洲国产精品一区二区美利坚 | 麻豆果冻传媒2021精品传媒一区下载 | 亚洲一区二区三区 | 天天躁夜夜躁狠狠是什么心态 | 精品厕所偷拍各类美女tp嘘嘘 | 99精品国产综合久久久久五月天 | 午夜不卡av免费 一本久久a久久精品vr综合 | 午夜免费福利小电影 | 中文亚洲成a人片在线观看 | 中文字幕无码av激情不卡 | 国产av一区二区三区最新精品 | 亚洲七七久久桃花影院 | 97人妻精品一区二区三区 | 久久久无码中文字幕久... | 国产激情精品一区二区三区 | 婷婷丁香五月天综合东京热 | 日韩精品乱码av一区二区 | 亚洲精品久久久久avwww潮水 | 欧美野外疯狂做受xxxx高潮 | 久久国产精品精品国产色婷婷 | 精品国产成人一区二区三区 | 黑人粗大猛烈进出高潮视频 | 久久久精品人妻久久影视 | 激情国产av做激情国产爱 | 亚洲综合无码一区二区三区 | 久久综合色之久久综合 | 国产精品99爱免费视频 | 精品一区二区不卡无码av | 撕开奶罩揉吮奶头视频 | 蜜桃视频插满18在线观看 | 久久综合激激的五月天 | 黑人巨大精品欧美黑寡妇 | 天天躁日日躁狠狠躁免费麻豆 | 亚洲aⅴ无码成人网站国产app | 亚洲日本在线电影 | 影音先锋中文字幕无码 | 欧美亚洲国产一区二区三区 | 十八禁真人啪啪免费网站 | 欧美日本日韩 | 日韩亚洲欧美中文高清在线 | 麻豆成人精品国产免费 | 久久婷婷五月综合色国产香蕉 | 久久精品中文闷骚内射 | 啦啦啦www在线观看免费视频 | 国产精品久久国产三级国 | 亚洲成a人片在线观看无码3d | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 人人妻在人人 | 久久伊人色av天堂九九小黄鸭 | 最近免费中文字幕中文高清百度 | 激情国产av做激情国产爱 | 日日鲁鲁鲁夜夜爽爽狠狠 | 无码精品国产va在线观看dvd | 久久综合激激的五月天 | 国产明星裸体无码xxxx视频 | 免费看男女做好爽好硬视频 | 人妻少妇精品视频专区 | 亚洲精品美女久久久久久久 | 亚洲小说春色综合另类 | 樱花草在线播放免费中文 | 国产人妻精品一区二区三区不卡 | 超碰97人人射妻 | 国产美女精品一区二区三区 | 国产两女互慰高潮视频在线观看 | 久久久www成人免费毛片 | 国产亲子乱弄免费视频 | 欧美国产日产一区二区 | 国产成人无码专区 | 久久久久99精品成人片 | 国产又爽又猛又粗的视频a片 | 国产人妻人伦精品 | 性色欲网站人妻丰满中文久久不卡 | 少妇无码一区二区二三区 | 一二三四社区在线中文视频 | 在线播放亚洲第一字幕 | 狠狠色丁香久久婷婷综合五月 | 国产精品99久久精品爆乳 | 亚洲中文字幕av在天堂 | 又黄又爽又色的视频 | 桃花色综合影院 | 亚洲色www成人永久网址 | 欧洲极品少妇 | 内射老妇bbwx0c0ck | 精品日本一区二区三区在线观看 | 奇米影视888欧美在线观看 | 国产精品亚洲а∨无码播放麻豆 | 国产亚洲视频中文字幕97精品 | 麻豆果冻传媒2021精品传媒一区下载 | 亚洲热妇无码av在线播放 | 亚洲成色www久久网站 | 麻豆国产丝袜白领秘书在线观看 | 国产精品美女久久久网av | 无码av最新清无码专区吞精 | 中文字幕 人妻熟女 | 亚洲精品久久久久中文第一幕 | 国产午夜亚洲精品不卡下载 | 亚洲s色大片在线观看 | 日日碰狠狠丁香久燥 | 久久久久se色偷偷亚洲精品av | 狂野欧美性猛交免费视频 | 欧美性猛交xxxx富婆 | 狠狠色欧美亚洲狠狠色www | 国产乡下妇女做爰 | 沈阳熟女露脸对白视频 | 久久久国产精品无码免费专区 | 欧美成人家庭影院 | 国产人妖乱国产精品人妖 | 久久久久se色偷偷亚洲精品av | 亚洲欧美综合区丁香五月小说 | 青青青爽视频在线观看 | 一二三四在线观看免费视频 | 成人毛片一区二区 | 国产猛烈高潮尖叫视频免费 | 亚洲天堂2017无码 | 国产成人无码av片在线观看不卡 | 无码毛片视频一区二区本码 | 露脸叫床粗话东北少妇 | 久久国产精品偷任你爽任你 | 久久久久久久女国产乱让韩 | 人妻无码久久精品人妻 | 久久无码专区国产精品s | 天天躁日日躁狠狠躁免费麻豆 | 色狠狠av一区二区三区 | 5858s亚洲色大成网站www | 亚洲精品一区二区三区大桥未久 | 2020最新国产自产精品 | 国产国产精品人在线视 | 欧美性色19p | 全球成人中文在线 | 少妇厨房愉情理9仑片视频 | 亚洲a无码综合a国产av中文 | 国产精华av午夜在线观看 | 亚洲国产精品无码久久久久高潮 | 国产免费久久精品国产传媒 | 久久国产36精品色熟妇 | 97色伦图片97综合影院 | 国产真实乱对白精彩久久 | 西西人体www44rt大胆高清 | 一个人免费观看的www视频 | 精品无码成人片一区二区98 | 99久久久国产精品无码免费 | 夜精品a片一区二区三区无码白浆 | 伦伦影院午夜理论片 | 亚洲综合无码久久精品综合 | 亚洲成av人片天堂网无码】 | 中文精品久久久久人妻不卡 | 国产三级久久久精品麻豆三级 | 午夜丰满少妇性开放视频 | 人人爽人人爽人人片av亚洲 | 亚洲国产成人av在线观看 | 欧美性生交活xxxxxdddd | 麻豆精品国产精华精华液好用吗 | 国产精品18久久久久久麻辣 | 久久国产精品_国产精品 | 国产麻豆精品精东影业av网站 | 日本丰满护士爆乳xxxx | 青春草在线视频免费观看 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 亚洲日韩一区二区 | 99久久人妻精品免费二区 | 动漫av一区二区在线观看 | 欧美高清在线精品一区 | 内射巨臀欧美在线视频 | 国产精品人人爽人人做我的可爱 | 亚洲国产欧美在线成人 | 国产精品毛多多水多 | 国产精品美女久久久久av爽李琼 | 国产精品久久久久久无码 | 亲嘴扒胸摸屁股激烈网站 | 中文字幕人成乱码熟女app | 性生交大片免费看l | 精品国产aⅴ无码一区二区 | 又湿又紧又大又爽a视频国产 | 呦交小u女精品视频 | 成人无码精品一区二区三区 | 精品日本一区二区三区在线观看 | 在线а√天堂中文官网 | 乌克兰少妇xxxx做受 | 少妇愉情理伦片bd | 欧美第一黄网免费网站 | 日本精品久久久久中文字幕 | 国产热a欧美热a在线视频 | 女人被爽到呻吟gif动态图视看 | 久久国产精品二国产精品 | 国产成人无码av一区二区 | 全黄性性激高免费视频 | 亚洲精品久久久久avwww潮水 | 丝袜美腿亚洲一区二区 | 久久久久人妻一区精品色欧美 | 国产成人精品一区二区在线小狼 | 国产午夜亚洲精品不卡下载 | 99久久99久久免费精品蜜桃 | 国内揄拍国内精品少妇国语 | 乱人伦人妻中文字幕无码久久网 | 成人片黄网站色大片免费观看 | 一区二区三区乱码在线 | 欧洲 | 野外少妇愉情中文字幕 | 老司机亚洲精品影院 | 牛和人交xxxx欧美 | 日韩亚洲欧美精品综合 | 国产精品永久免费视频 | 午夜精品久久久久久久久 | 性生交大片免费看l | 无码精品国产va在线观看dvd | 国产精品久久久午夜夜伦鲁鲁 | 亚洲色成人中文字幕网站 | 日韩精品无码一本二本三本色 | 四虎影视成人永久免费观看视频 | 综合人妻久久一区二区精品 | 亚洲人成无码网www | 亚洲日韩中文字幕在线播放 | 欧美精品国产综合久久 | 亚洲а∨天堂久久精品2021 | 大色综合色综合网站 | 亚洲国产日韩a在线播放 | 99精品无人区乱码1区2区3区 | 国产乱码精品一品二品 | 帮老师解开蕾丝奶罩吸乳网站 | 国产精品无码一区二区桃花视频 | 夜夜夜高潮夜夜爽夜夜爰爰 | 夜夜夜高潮夜夜爽夜夜爰爰 | 人人澡人人透人人爽 | 国产精品-区区久久久狼 | 国产精品va在线播放 | 野外少妇愉情中文字幕 | 日本爽爽爽爽爽爽在线观看免 | 日本大香伊一区二区三区 | 精品成人av一区二区三区 | 成人免费无码大片a毛片 | 中文精品无码中文字幕无码专区 | 性生交片免费无码看人 | 亚洲 a v无 码免 费 成 人 a v | 亚洲一区二区三区偷拍女厕 | 岛国片人妻三上悠亚 | 中文字幕乱码人妻无码久久 | 强开小婷嫩苞又嫩又紧视频 | 乱人伦人妻中文字幕无码久久网 | 日日摸天天摸爽爽狠狠97 | 99riav国产精品视频 | 婷婷丁香五月天综合东京热 | 九九综合va免费看 | 亚洲色成人中文字幕网站 | 图片小说视频一区二区 | 一区二区三区乱码在线 | 欧洲 | av在线亚洲欧洲日产一区二区 | 欧美 丝袜 自拍 制服 另类 | 久久精品国产一区二区三区肥胖 | 又湿又紧又大又爽a视频国产 | 给我免费的视频在线观看 | 成人免费视频一区二区 | 国产成人综合美国十次 | 水蜜桃亚洲一二三四在线 | 国产无遮挡又黄又爽又色 | 亚洲第一无码av无码专区 | 成人无码视频免费播放 | 少妇一晚三次一区二区三区 | 小sao货水好多真紧h无码视频 | 国产精品第一区揄拍无码 | 日日干夜夜干 | 欧美日韩在线亚洲综合国产人 | 天天摸天天碰天天添 | 男女性色大片免费网站 | 精品久久久无码人妻字幂 | 色综合久久久久综合一本到桃花网 | 亚洲国产欧美日韩精品一区二区三区 | 高潮喷水的毛片 | 免费播放一区二区三区 | 精品aⅴ一区二区三区 | 亚洲午夜无码久久 | 亚洲大尺度无码无码专区 | 欧美黑人巨大xxxxx | 丰满妇女强制高潮18xxxx | 日韩av无码中文无码电影 | 国产成人综合美国十次 | 国产在线aaa片一区二区99 | 国产亚洲人成在线播放 | 伊人久久婷婷五月综合97色 | 欧美性生交xxxxx久久久 | 人妻中文无码久热丝袜 | a在线观看免费网站大全 | 国产精华av午夜在线观看 | 亚洲欧美日韩国产精品一区二区 | 欧美性猛交内射兽交老熟妇 | 国产精品美女久久久 | 性生交片免费无码看人 | 老子影院午夜精品无码 | 日日躁夜夜躁狠狠躁 | 人妻少妇被猛烈进入中文字幕 | 人人妻在人人 | 人人妻人人澡人人爽精品欧美 | 99久久精品日本一区二区免费 | 无码人妻久久一区二区三区不卡 | 特大黑人娇小亚洲女 | 日韩少妇白浆无码系列 | 少妇人妻偷人精品无码视频 | 日韩亚洲欧美中文高清在线 | 欧美性生交xxxxx久久久 | 日韩精品一区二区av在线 | 日韩人妻系列无码专区 | 国产午夜视频在线观看 | 亚洲色偷偷偷综合网 | 欧美人与物videos另类 | 无码午夜成人1000部免费视频 | √8天堂资源地址中文在线 | 三上悠亚人妻中文字幕在线 | 88国产精品欧美一区二区三区 | 三级4级全黄60分钟 | 成人精品视频一区二区三区尤物 | 国产乱人无码伦av在线a | 亚洲天堂2017无码中文 | 国产成人精品视频ⅴa片软件竹菊 | 国产成人无码午夜视频在线观看 | 99re在线播放 | 两性色午夜免费视频 | 少妇一晚三次一区二区三区 | 亚洲中文无码av永久不收费 | 久久99精品久久久久久动态图 | 中文字幕乱码亚洲无线三区 | 少妇久久久久久人妻无码 | 久久综合给久久狠狠97色 | 中国女人内谢69xxxx | 乌克兰少妇xxxx做受 | 白嫩日本少妇做爰 | 亚洲精品一区二区三区四区五区 | 荡女精品导航 | 国产无遮挡又黄又爽免费视频 | 国产又爽又黄又刺激的视频 | 伊人久久大香线蕉av一区二区 | 亚洲va欧美va天堂v国产综合 | 超碰97人人做人人爱少妇 | 国产精品欧美成人 | 色婷婷av一区二区三区之红樱桃 | 人人爽人人澡人人人妻 | 乱码av麻豆丝袜熟女系列 | 丰满护士巨好爽好大乳 | 欧美性黑人极品hd | 精品久久久中文字幕人妻 | 欧美国产日韩久久mv | 国产亚洲精品精品国产亚洲综合 | 亚拍精品一区二区三区探花 | 一二三四社区在线中文视频 | 毛片内射-百度 | 国产精品视频免费播放 | 岛国片人妻三上悠亚 | 日韩av无码一区二区三区 | 精品一区二区三区无码免费视频 | 久久国产精品萌白酱免费 | 乌克兰少妇性做爰 | 亚洲 日韩 欧美 成人 在线观看 | 国产莉萝无码av在线播放 | 国产成人精品优优av | 国产精品美女久久久久av爽李琼 | 天堂在线观看www | 国产美女精品一区二区三区 | 国产精品国产三级国产专播 | 成年美女黄网站色大免费视频 | 帮老师解开蕾丝奶罩吸乳网站 | 网友自拍区视频精品 | 国产两女互慰高潮视频在线观看 | 激情爆乳一区二区三区 | 久久综合久久自在自线精品自 | 欧美三级a做爰在线观看 | 国产亲子乱弄免费视频 | 亚洲精品午夜国产va久久成人 | 四虎影视成人永久免费观看视频 | 久久久久久久女国产乱让韩 | 亚洲の无码国产の无码影院 | 久久精品人人做人人综合试看 | 精品午夜福利在线观看 | 国产亚洲视频中文字幕97精品 | 国产超碰人人爽人人做人人添 | 国产精品无码一区二区桃花视频 | 欧美性黑人极品hd | 撕开奶罩揉吮奶头视频 | 好男人社区资源 | 成人精品视频一区二区三区尤物 | 午夜福利电影 | 真人与拘做受免费视频一 | 国产成人人人97超碰超爽8 | 国产激情无码一区二区app | 色综合久久久无码中文字幕 | 国产口爆吞精在线视频 | 欧美日韩一区二区免费视频 | 夜夜夜高潮夜夜爽夜夜爰爰 | 日韩精品无码一区二区中文字幕 | 国产午夜精品一区二区三区嫩草 | 国产人妻人伦精品1国产丝袜 | 亚洲一区二区三区播放 | 国产农村妇女高潮大叫 | 日韩欧美成人免费观看 | 亚洲欧美中文字幕5发布 | 亚洲aⅴ无码成人网站国产app | 精品人妻中文字幕有码在线 | 丰满人妻被黑人猛烈进入 | 国产网红无码精品视频 | 亚洲中文字幕在线观看 | 人人妻人人澡人人爽人人精品浪潮 | 亚洲国产欧美日韩精品一区二区三区 | 四虎国产精品免费久久 | 成人免费视频在线观看 | 麻豆国产人妻欲求不满谁演的 | 美女毛片一区二区三区四区 | 人妻中文无码久热丝袜 | 国产无av码在线观看 | 2020最新国产自产精品 | 无码人妻久久一区二区三区不卡 | 性生交片免费无码看人 | 久久精品女人的天堂av | 一本大道久久东京热无码av | 成人无码视频在线观看网站 | 纯爱无遮挡h肉动漫在线播放 | 娇妻被黑人粗大高潮白浆 | 中文字幕日韩精品一区二区三区 | 欧美一区二区三区 | 亚洲精品中文字幕 | 中文字幕人妻无码一区二区三区 | 国产精品久久久一区二区三区 | 亚洲成av人片天堂网无码】 | 理论片87福利理论电影 | 久久精品中文闷骚内射 | 99在线 | 亚洲 | 亚洲人成网站免费播放 | 牛和人交xxxx欧美 | 在线欧美精品一区二区三区 | 久久人人爽人人人人片 | 无套内谢老熟女 | 人人妻人人澡人人爽人人精品 | 黑人玩弄人妻中文在线 | 欧美怡红院免费全部视频 | 粗大的内捧猛烈进出视频 | 99久久久无码国产精品免费 | 人妻少妇被猛烈进入中文字幕 | 露脸叫床粗话东北少妇 | 日韩亚洲欧美中文高清在线 | 人妻熟女一区 | 乌克兰少妇性做爰 | 无遮挡啪啪摇乳动态图 | 欧美黑人巨大xxxxx | 在线视频网站www色 | 国产成人综合美国十次 | 亚洲国产成人a精品不卡在线 | 亚洲a无码综合a国产av中文 | 国产激情精品一区二区三区 | 正在播放东北夫妻内射 | 亚洲第一无码av无码专区 | 少妇一晚三次一区二区三区 | yw尤物av无码国产在线观看 | 国产精品理论片在线观看 | 亚洲精品国偷拍自产在线麻豆 | aⅴ亚洲 日韩 色 图网站 播放 | 久久久久99精品成人片 | 中文毛片无遮挡高清免费 | 丁香花在线影院观看在线播放 | 精品无码国产自产拍在线观看蜜 | 人妻互换免费中文字幕 | 波多野42部无码喷潮在线 | 久久综合香蕉国产蜜臀av | 又湿又紧又大又爽a视频国产 | 捆绑白丝粉色jk震动捧喷白浆 | 亚洲精品一区二区三区在线 | 性做久久久久久久久 | 久久婷婷五月综合色国产香蕉 | 精品无码av一区二区三区 | 亚洲s色大片在线观看 | 色 综合 欧美 亚洲 国产 | 亚洲中文字幕乱码av波多ji | 久久久国产一区二区三区 | 亚洲一区二区三区四区 | 无码任你躁久久久久久久 | 四虎国产精品一区二区 | 亚洲熟妇自偷自拍另类 | 成熟妇人a片免费看网站 | 亚洲色成人中文字幕网站 | 成熟女人特级毛片www免费 | aa片在线观看视频在线播放 | aa片在线观看视频在线播放 | av小次郎收藏 | 国产内射爽爽大片视频社区在线 | 波多野结衣av一区二区全免费观看 | 亚洲理论电影在线观看 | 牲欲强的熟妇农村老妇女视频 | 久久久久久久女国产乱让韩 | 九月婷婷人人澡人人添人人爽 | 国产舌乚八伦偷品w中 | 性生交大片免费看女人按摩摩 | 水蜜桃色314在线观看 | 精品无码国产一区二区三区av | 性色av无码免费一区二区三区 | 婷婷综合久久中文字幕蜜桃三电影 | 久久99国产综合精品 | 亚洲а∨天堂久久精品2021 | 国产亚洲精品久久久久久大师 | 亚洲日本一区二区三区在线 | 中文字幕人妻丝袜二区 | 麻豆md0077饥渴少妇 | 国产精品无码一区二区桃花视频 | 亚洲国产精品成人久久蜜臀 | 樱花草在线播放免费中文 | 国产av人人夜夜澡人人爽麻豆 | 国内精品人妻无码久久久影院蜜桃 | 九九热爱视频精品 | www国产亚洲精品久久网站 | 99精品视频在线观看免费 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 男女超爽视频免费播放 | аⅴ资源天堂资源库在线 | 成 人 网 站国产免费观看 | 成人亚洲精品久久久久软件 | 国产福利视频一区二区 | 丰满肥臀大屁股熟妇激情视频 | 国产色视频一区二区三区 | 欧洲vodafone精品性 | 色狠狠av一区二区三区 | 久激情内射婷内射蜜桃人妖 | 久久精品国产99精品亚洲 | 国产精品美女久久久网av | 久久午夜无码鲁丝片秋霞 | 精品成在人线av无码免费看 | 日本一区二区更新不卡 | 377p欧洲日本亚洲大胆 | 九九热爱视频精品 | 亚洲の无码国产の无码影院 | √天堂资源地址中文在线 | 日本爽爽爽爽爽爽在线观看免 | 亲嘴扒胸摸屁股激烈网站 | 日韩在线不卡免费视频一区 | 人妻少妇精品无码专区二区 | 亚洲中文字幕成人无码 | 国产精品无套呻吟在线 | 红桃av一区二区三区在线无码av | 精品偷自拍另类在线观看 | 久久精品无码一区二区三区 | 亚洲欧洲日本无在线码 | 国产激情艳情在线看视频 | 日本精品人妻无码免费大全 | 麻豆国产人妻欲求不满 | 成人试看120秒体验区 | 18无码粉嫩小泬无套在线观看 | 欧美激情一区二区三区成人 | 中文字幕人妻无码一夲道 | 中文字幕无码人妻少妇免费 | 国产精品久久久久9999小说 | 欧美日韩一区二区综合 | 九九在线中文字幕无码 | 国产人妻精品一区二区三区 | 西西人体www44rt大胆高清 | 亚洲成熟女人毛毛耸耸多 | 亚洲区欧美区综合区自拍区 | www国产精品内射老师 | 国产av久久久久精东av | 人人妻人人藻人人爽欧美一区 | 欧美日韩人成综合在线播放 | 午夜福利试看120秒体验区 | 国产深夜福利视频在线 | 无码吃奶揉捏奶头高潮视频 | 午夜福利试看120秒体验区 | 国产精品无码mv在线观看 | 熟女体下毛毛黑森林 | 永久免费精品精品永久-夜色 | 欧美怡红院免费全部视频 | 亚洲区欧美区综合区自拍区 | 久久精品国产99久久6动漫 | 久久www免费人成人片 | 天干天干啦夜天干天2017 | 亚洲人成人无码网www国产 | 国产小呦泬泬99精品 | 婷婷五月综合激情中文字幕 | 亚洲国产高清在线观看视频 | 欧美日韩一区二区免费视频 | 在线观看免费人成视频 | 国产香蕉尹人综合在线观看 | 久久精品人人做人人综合试看 | 久久久久se色偷偷亚洲精品av | 亚洲人成网站色7799 | aⅴ亚洲 日韩 色 图网站 播放 | 亚洲一区二区三区含羞草 | 精品国产福利一区二区 | 亚洲最大成人网站 | 玩弄人妻少妇500系列视频 | 在教室伦流澡到高潮hnp视频 | 亚洲熟妇色xxxxx亚洲 | 大乳丰满人妻中文字幕日本 | 人妻少妇精品无码专区动漫 | 人人妻人人澡人人爽欧美精品 | 亚洲综合精品香蕉久久网 | 日本一区二区三区免费播放 | 国产综合色产在线精品 | 波多野结衣一区二区三区av免费 | 国产精品18久久久久久麻辣 | 欧美性黑人极品hd | 天堂一区人妻无码 | 国产99久久精品一区二区 | 国产精品18久久久久久麻辣 | 香港三级日本三级妇三级 | 欧美zoozzooz性欧美 | 国产高清不卡无码视频 | 成年美女黄网站色大免费视频 | 中文无码精品a∨在线观看不卡 | 精品一区二区三区无码免费视频 | 亚洲日本va午夜在线电影 | 亚洲欧洲日本综合aⅴ在线 | 国产做国产爱免费视频 | 亚洲色成人中文字幕网站 | 欧美人与禽zoz0性伦交 | 精品久久8x国产免费观看 | 黄网在线观看免费网站 | √天堂中文官网8在线 | 俺去俺来也在线www色官网 | 高潮喷水的毛片 | 亚洲va欧美va天堂v国产综合 | √8天堂资源地址中文在线 | 国产成人一区二区三区别 | 国产成人无码a区在线观看视频app | 大地资源网第二页免费观看 | 色婷婷综合中文久久一本 | 黑人巨大精品欧美黑寡妇 | 色一情一乱一伦一视频免费看 | a片免费视频在线观看 | 久久久久国色av免费观看性色 | 国产 精品 自在自线 | 午夜精品一区二区三区的区别 | 国产精品久久久久9999小说 | 日产精品高潮呻吟av久久 | 免费看男女做好爽好硬视频 | 亚洲色在线无码国产精品不卡 | 99国产精品白浆在线观看免费 | 久久久久av无码免费网 | 欧美精品国产综合久久 | 久久久久成人精品免费播放动漫 | 精品国产麻豆免费人成网站 | 午夜精品一区二区三区在线观看 | 亚洲一区二区三区无码久久 | 精品国精品国产自在久国产87 | 精品国产麻豆免费人成网站 | 性色欲网站人妻丰满中文久久不卡 | 中文字幕日韩精品一区二区三区 | 欧洲美熟女乱又伦 | 成人无码精品1区2区3区免费看 | 国产精品永久免费视频 | 亚洲中文字幕无码中字 | 亚洲精品欧美二区三区中文字幕 | 人妻互换免费中文字幕 | 成人一在线视频日韩国产 | 噜噜噜亚洲色成人网站 | 日日摸日日碰夜夜爽av | 久久精品中文字幕一区 | 7777奇米四色成人眼影 | 麻豆国产人妻欲求不满谁演的 | 国产一区二区不卡老阿姨 | 欧美xxxxx精品 | 欧美日韩一区二区综合 | 国产亚洲日韩欧美另类第八页 | 国产成人人人97超碰超爽8 | 亚洲综合精品香蕉久久网 | 秋霞成人午夜鲁丝一区二区三区 | 亚洲精品国产a久久久久久 | 青青青爽视频在线观看 | 久久久亚洲欧洲日产国码αv | 国产一区二区三区精品视频 | 内射欧美老妇wbb | 中文字幕人妻无码一区二区三区 | 熟妇人妻中文av无码 | 亚洲中文字幕无码中文字在线 | 粉嫩少妇内射浓精videos | 亚洲色欲久久久综合网东京热 | 欧美丰满老熟妇xxxxx性 | 牛和人交xxxx欧美 | 成人综合网亚洲伊人 | 高潮毛片无遮挡高清免费视频 | 中文字幕无码免费久久9一区9 | www一区二区www免费 | 天天躁日日躁狠狠躁免费麻豆 | 丝袜足控一区二区三区 | 人人妻人人藻人人爽欧美一区 | 日本精品久久久久中文字幕 | 日日碰狠狠躁久久躁蜜桃 | 午夜丰满少妇性开放视频 | 国产精品99久久精品爆乳 | 成人亚洲精品久久久久 | 欧美成人午夜精品久久久 | 波多野结衣av在线观看 | 日韩人妻系列无码专区 | 国产高清av在线播放 | 永久免费精品精品永久-夜色 | 欧美丰满熟妇xxxx | 国产精品人妻一区二区三区四 | 精品久久久无码人妻字幂 | 国产真实乱对白精彩久久 | 色窝窝无码一区二区三区色欲 | 国产一区二区三区精品视频 | 午夜时刻免费入口 | 日韩成人一区二区三区在线观看 | 欧美日韩一区二区综合 | 亚洲啪av永久无码精品放毛片 | 亚洲熟女一区二区三区 | 麻豆av传媒蜜桃天美传媒 | 成人精品视频一区二区三区尤物 | 婷婷丁香六月激情综合啪 | 日韩欧美中文字幕在线三区 | 久久久久久av无码免费看大片 | 国产亚洲精品久久久久久大师 | 无码成人精品区在线观看 | 国产真实伦对白全集 | 欧美35页视频在线观看 | 亚洲男女内射在线播放 | 精品国精品国产自在久国产87 | 欧美人妻一区二区三区 | 少妇被粗大的猛进出69影院 | 四虎永久在线精品免费网址 | 精品人妻中文字幕有码在线 | 亚洲乱码中文字幕在线 | 奇米影视888欧美在线观看 | 亚洲乱码国产乱码精品精 | 欧美激情综合亚洲一二区 | a国产一区二区免费入口 | 国内精品久久毛片一区二区 | 午夜精品久久久久久久久 | 一区二区三区高清视频一 | 国产午夜视频在线观看 | 亚洲a无码综合a国产av中文 | 色情久久久av熟女人妻网站 | 成熟妇人a片免费看网站 | 亚洲色欲久久久综合网东京热 | 日韩少妇白浆无码系列 | 国产特级毛片aaaaaaa高清 | 国产sm调教视频在线观看 | 久久久精品国产sm最大网站 | 麻豆国产丝袜白领秘书在线观看 | 国产极品美女高潮无套在线观看 | 人人澡人人妻人人爽人人蜜桃 | 99久久精品日本一区二区免费 | 中文字幕无线码免费人妻 | 奇米影视7777久久精品人人爽 | 嫩b人妻精品一区二区三区 | 好男人www社区 | 国产亚洲视频中文字幕97精品 | 东京热一精品无码av | 亚洲爆乳无码专区 | 真人与拘做受免费视频一 | 日本一区二区更新不卡 | 欧美精品国产综合久久 | 午夜精品一区二区三区在线观看 | 日日噜噜噜噜夜夜爽亚洲精品 | 久久久成人毛片无码 | 最近免费中文字幕中文高清百度 | 亚洲熟妇色xxxxx欧美老妇y | 国产一区二区三区四区五区加勒比 | 亚洲成av人在线观看网址 | 国产精品久久久久7777 | 97夜夜澡人人双人人人喊 | 俺去俺来也在线www色官网 | 久久精品无码一区二区三区 | 精品久久久无码人妻字幂 | 久久亚洲精品中文字幕无男同 | 亚洲精品国产精品乱码不卡 | 亚洲国产精品毛片av不卡在线 | 色窝窝无码一区二区三区色欲 | 亚洲第一无码av无码专区 | 奇米影视7777久久精品 | 无码人妻久久一区二区三区不卡 | 伦伦影院午夜理论片 | 欧美日韩久久久精品a片 | 久久99精品国产麻豆 | 国内老熟妇对白xxxxhd | 国内精品人妻无码久久久影院 | 色综合视频一区二区三区 | 精品国产一区二区三区av 性色 | 欧美日韩一区二区综合 | v一区无码内射国产 | 国产又粗又硬又大爽黄老大爷视 | 日本精品少妇一区二区三区 | 精品久久久无码人妻字幂 | 大地资源网第二页免费观看 | 一区二区传媒有限公司 | 一本久道久久综合狠狠爱 | 性欧美大战久久久久久久 | 18无码粉嫩小泬无套在线观看 | 久久久成人毛片无码 | 精品一二三区久久aaa片 | 大胆欧美熟妇xx | 国产一精品一av一免费 | 亚洲一区二区三区偷拍女厕 | 老熟妇仑乱视频一区二区 | 成人综合网亚洲伊人 | 国产亚洲精品精品国产亚洲综合 | 兔费看少妇性l交大片免费 | 精品成人av一区二区三区 | 丰满人妻翻云覆雨呻吟视频 | 亚洲精品国偷拍自产在线观看蜜桃 | 18禁止看的免费污网站 | 人妻中文无码久热丝袜 | 波多野结衣乳巨码无在线观看 | 亚洲毛片av日韩av无码 | 天天燥日日燥 | 亚洲精品成a人在线观看 | 国产亚洲精品久久久久久 | 欧美 日韩 亚洲 在线 | 大屁股大乳丰满人妻 | 欧美性生交活xxxxxdddd | 日韩av无码一区二区三区 | 自拍偷自拍亚洲精品被多人伦好爽 | 亚洲性无码av中文字幕 | 成 人影片 免费观看 | 久久久久亚洲精品中文字幕 | 宝宝好涨水快流出来免费视频 | 亚洲精品一区二区三区婷婷月 | 国产成人精品视频ⅴa片软件竹菊 | 麻豆国产丝袜白领秘书在线观看 | 99麻豆久久久国产精品免费 | 久久精品丝袜高跟鞋 | 秋霞特色aa大片 | 国产一区二区三区精品视频 | 97精品国产97久久久久久免费 | 亚洲日韩一区二区三区 | 国产精品无码mv在线观看 | 成人亚洲精品久久久久软件 | 国产精华av午夜在线观看 | 国内丰满熟女出轨videos | 99久久精品日本一区二区免费 | 国产精品美女久久久久av爽李琼 | 中文字幕乱码人妻二区三区 | 国精产品一区二区三区 | 色情久久久av熟女人妻网站 | 国产人成高清在线视频99最全资源 | 人妻尝试又大又粗久久 | 夜精品a片一区二区三区无码白浆 | 国产成人一区二区三区在线观看 | 高中生自慰www网站 | 在线亚洲高清揄拍自拍一品区 | 天堂久久天堂av色综合 | 无码人妻丰满熟妇区毛片18 | 欧美国产日产一区二区 | 欧美老妇交乱视频在线观看 | 欧美性黑人极品hd | 成人亚洲精品久久久久软件 | 高潮喷水的毛片 | 天天爽夜夜爽夜夜爽 | 无码成人精品区在线观看 | 欧洲精品码一区二区三区免费看 | 樱花草在线播放免费中文 | 无码国产激情在线观看 | 久久国产精品精品国产色婷婷 | 无码人妻av免费一区二区三区 | 国产无av码在线观看 | 岛国片人妻三上悠亚 | 国产精品久久久久久亚洲影视内衣 | 国产两女互慰高潮视频在线观看 | 成人欧美一区二区三区 | 亚洲中文字幕乱码av波多ji | 国产精品igao视频网 | 国产偷自视频区视频 | 婷婷丁香五月天综合东京热 | 99久久精品无码一区二区毛片 | 99视频精品全部免费免费观看 | 永久免费观看国产裸体美女 | 国产精品毛多多水多 | 动漫av一区二区在线观看 | 女人色极品影院 | 欧美熟妇另类久久久久久多毛 | 国产莉萝无码av在线播放 | 国产疯狂伦交大片 | 国产 精品 自在自线 | 欧美大屁股xxxxhd黑色 | 亚洲一区二区三区播放 | 六月丁香婷婷色狠狠久久 | 欧美高清在线精品一区 | 免费无码的av片在线观看 | 国产亚洲视频中文字幕97精品 | 亚洲精品鲁一鲁一区二区三区 | 人妻插b视频一区二区三区 | 成人免费视频在线观看 | 99国产欧美久久久精品 | 成年美女黄网站色大免费全看 | 国产欧美亚洲精品a | 中文字幕无码免费久久99 | 成年美女黄网站色大免费全看 | 日本精品高清一区二区 | 成人aaa片一区国产精品 | 国产高清av在线播放 | 久激情内射婷内射蜜桃人妖 | 中文字幕无码av波多野吉衣 | 国产精品无套呻吟在线 | 午夜时刻免费入口 | 国产成人一区二区三区别 | 国产亚洲精品久久久ai换 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 久精品国产欧美亚洲色aⅴ大片 | 国产无av码在线观看 | 久久精品国产大片免费观看 | 在线a亚洲视频播放在线观看 | 夜夜夜高潮夜夜爽夜夜爰爰 | 无码成人精品区在线观看 | 人妻aⅴ无码一区二区三区 | 国产成人综合美国十次 | 久久精品国产精品国产精品污 | 鲁大师影院在线观看 | 国产在线精品一区二区高清不卡 | 亚洲成a人片在线观看日本 | 亚洲日本一区二区三区在线 | 国内老熟妇对白xxxxhd | 又大又硬又黄的免费视频 | 国产人妻精品一区二区三区不卡 | 欧美 丝袜 自拍 制服 另类 | 午夜福利一区二区三区在线观看 | 欧洲美熟女乱又伦 | 精品无码国产自产拍在线观看蜜 | 沈阳熟女露脸对白视频 | 国产人妻久久精品二区三区老狼 | 少妇性l交大片欧洲热妇乱xxx | 国产深夜福利视频在线 | 欧美大屁股xxxxhd黑色 | 成人无码视频免费播放 | 国产精品亚洲五月天高清 | 青春草在线视频免费观看 | 玩弄中年熟妇正在播放 | 日韩无码专区 | 波多野42部无码喷潮在线 | 色综合视频一区二区三区 | 精品国产一区二区三区四区在线看 | 少妇性俱乐部纵欲狂欢电影 | 免费人成在线视频无码 | 性生交大片免费看女人按摩摩 | 中文字幕无码免费久久9一区9 | 国产激情无码一区二区app | 国产深夜福利视频在线 | 性色av无码免费一区二区三区 | 午夜精品久久久内射近拍高清 | 久久国产自偷自偷免费一区调 | 成人性做爰aaa片免费看 | 国产亚av手机在线观看 | 人妻少妇精品无码专区动漫 | 国产两女互慰高潮视频在线观看 | 日本在线高清不卡免费播放 | 亚洲精品无码人妻无码 | 亚洲精品国产品国语在线观看 | 成熟人妻av无码专区 | 99麻豆久久久国产精品免费 | 久久精品丝袜高跟鞋 | 波多野结衣 黑人 | 国产偷自视频区视频 | 99精品国产综合久久久久五月天 | 人妻少妇精品视频专区 | 精品一区二区不卡无码av | 精品人人妻人人澡人人爽人人 | 久久视频在线观看精品 | 久久久无码中文字幕久... | 亚洲日韩一区二区 | 欧美日韩一区二区免费视频 | 国产办公室秘书无码精品99 | 日本www一道久久久免费榴莲 | 无码国模国产在线观看 | 东京热无码av男人的天堂 | 无码任你躁久久久久久久 | 狠狠色噜噜狠狠狠狠7777米奇 | 色综合视频一区二区三区 | 一本久道高清无码视频 | 377p欧洲日本亚洲大胆 | 最近免费中文字幕中文高清百度 | 国产女主播喷水视频在线观看 | 人人妻人人澡人人爽人人精品浪潮 | 少妇无码一区二区二三区 | 夜精品a片一区二区三区无码白浆 | 一本久道久久综合婷婷五月 | 久久久国产一区二区三区 | 精品国精品国产自在久国产87 | 人人爽人人澡人人高潮 | 国产精品99久久精品爆乳 | 男人和女人高潮免费网站 | 日本熟妇人妻xxxxx人hd | 蜜桃av抽搐高潮一区二区 | 国产小呦泬泬99精品 | 天堂一区人妻无码 | 黑人巨大精品欧美一区二区 | 久9re热视频这里只有精品 | 成年美女黄网站色大免费全看 | 亚洲中文字幕在线观看 | 天天躁夜夜躁狠狠是什么心态 | 中国女人内谢69xxxxxa片 | 国产成人无码a区在线观看视频app | 欧美色就是色 | 无码人妻精品一区二区三区不卡 | 亚洲综合在线一区二区三区 | 欧美放荡的少妇 | 日韩精品无码一本二本三本色 | 国产舌乚八伦偷品w中 | 色婷婷久久一区二区三区麻豆 | 久久久婷婷五月亚洲97号色 | 中文字幕无线码免费人妻 | 日本一区二区更新不卡 | 中文无码成人免费视频在线观看 | 久久久久久九九精品久 | 国产真人无遮挡作爱免费视频 | 亚洲一区二区三区偷拍女厕 | 国产又粗又硬又大爽黄老大爷视 | 精品 日韩 国产 欧美 视频 | 福利一区二区三区视频在线观看 | 欧美成人免费全部网站 | 欧美一区二区三区 | 99久久精品午夜一区二区 | 久久午夜无码鲁丝片午夜精品 | 亚洲人交乣女bbw | 日韩无套无码精品 | 亚洲一区二区三区四区 | 久久人人爽人人爽人人片av高清 | 伊人久久大香线蕉亚洲 | 婷婷丁香五月天综合东京热 | 午夜肉伦伦影院 | 天天躁夜夜躁狠狠是什么心态 | 18禁黄网站男男禁片免费观看 | aⅴ亚洲 日韩 色 图网站 播放 | 亚洲国产欧美在线成人 | 黑人大群体交免费视频 | 特黄特色大片免费播放器图片 | 成人性做爰aaa片免费看 | 伊人久久大香线焦av综合影院 | 麻豆果冻传媒2021精品传媒一区下载 | 国产凸凹视频一区二区 | 丰腴饱满的极品熟妇 | 18精品久久久无码午夜福利 | 欧美精品无码一区二区三区 | 欧美激情一区二区三区成人 | 国产真实伦对白全集 | 国产成人综合美国十次 | 成人免费无码大片a毛片 | 夜夜影院未满十八勿进 | 狠狠色色综合网站 | 好爽又高潮了毛片免费下载 | 欧美国产亚洲日韩在线二区 | 丁香花在线影院观看在线播放 | 国产精品毛片一区二区 | 国产九九九九九九九a片 | 精品国产成人一区二区三区 | 欧美性猛交内射兽交老熟妇 | 熟妇人妻中文av无码 | 欧美一区二区三区视频在线观看 | 一本久道久久综合婷婷五月 | 最近的中文字幕在线看视频 | 青青青手机频在线观看 | 色综合久久久无码网中文 | 樱花草在线社区www | 香港三级日本三级妇三级 | 妺妺窝人体色www在线小说 | 又大又硬又爽免费视频 | 精品国产福利一区二区 | 午夜理论片yy44880影院 | 国产av无码专区亚洲a∨毛片 | 中文字幕av伊人av无码av | 伊人久久大香线焦av综合影院 | 大肉大捧一进一出好爽视频 | 人人妻人人澡人人爽欧美一区九九 | 久久午夜夜伦鲁鲁片无码免费 | 欧美freesex黑人又粗又大 | 中文精品久久久久人妻不卡 | 水蜜桃色314在线观看 | 内射老妇bbwx0c0ck | 久久久久国色av免费观看性色 | 亚洲国产午夜精品理论片 | 国产热a欧美热a在线视频 | 成人一区二区免费视频 | 国产精品久久久av久久久 | 亚洲啪av永久无码精品放毛片 | 国产一区二区三区四区五区加勒比 | 女高中生第一次破苞av | av在线亚洲欧洲日产一区二区 | 又大又硬又黄的免费视频 | 纯爱无遮挡h肉动漫在线播放 | 中文亚洲成a人片在线观看 | 日韩欧美成人免费观看 | 精品久久久久久人妻无码中文字幕 | 7777奇米四色成人眼影 | 国精产品一品二品国精品69xx | 欧美精品无码一区二区三区 | 东京热无码av男人的天堂 | 中文字幕人妻无码一区二区三区 | 成人无码影片精品久久久 | 亚洲国产成人av在线观看 | 日韩精品久久久肉伦网站 | 熟妇女人妻丰满少妇中文字幕 | 亚洲精品国产品国语在线观看 | www一区二区www免费 | 国产精品无套呻吟在线 | 给我免费的视频在线观看 | 欧美日本日韩 | 人人澡人人妻人人爽人人蜜桃 | 妺妺窝人体色www在线小说 | 国产极品美女高潮无套在线观看 | 蜜桃臀无码内射一区二区三区 | 国产小呦泬泬99精品 | 国产无av码在线观看 | 日本大香伊一区二区三区 | 久久国内精品自在自线 | 国产免费久久久久久无码 | 久久精品女人天堂av免费观看 | 久久精品无码一区二区三区 | 婷婷六月久久综合丁香 | 久久综合给久久狠狠97色 | 色综合久久久久综合一本到桃花网 | 国产在线精品一区二区三区直播 | 免费人成在线观看网站 | 欧美肥老太牲交大战 | 少妇久久久久久人妻无码 | 妺妺窝人体色www婷婷 | 毛片内射-百度 | 理论片87福利理论电影 | 中文字幕 亚洲精品 第1页 | 中文毛片无遮挡高清免费 | 精品国产av色一区二区深夜久久 | 丰满人妻被黑人猛烈进入 | 成熟女人特级毛片www免费 | 欧美精品一区二区精品久久 | 久久精品女人天堂av免费观看 | 国产猛烈高潮尖叫视频免费 | 俄罗斯老熟妇色xxxx | 少女韩国电视剧在线观看完整 | 欧美成人免费全部网站 | 国产色在线 | 国产 | 强伦人妻一区二区三区视频18 | 久久亚洲a片com人成 | 精品久久久中文字幕人妻 | 大胆欧美熟妇xx | 国内精品人妻无码久久久影院蜜桃 | 亚洲精品成人av在线 | 亚洲区小说区激情区图片区 | 东京热一精品无码av | 少妇太爽了在线观看 | 久久99精品久久久久久动态图 | 亚洲一区二区三区偷拍女厕 | 久久亚洲中文字幕精品一区 | 久久久www成人免费毛片 | 蜜臀av无码人妻精品 | 性生交片免费无码看人 | 国精产品一区二区三区 | 亚洲无人区午夜福利码高清完整版 | 久久久久久久人妻无码中文字幕爆 | 国产亚洲精品久久久闺蜜 | 成人片黄网站色大片免费观看 | 中文字幕乱码人妻二区三区 | 亚洲中文字幕在线无码一区二区 | 欧美日韩在线亚洲综合国产人 | 伊人久久婷婷五月综合97色 | 国产色精品久久人妻 | 99国产精品白浆在线观看免费 | 国产色xx群视频射精 | 亚洲精品国产品国语在线观看 | 老司机亚洲精品影院 | 99er热精品视频 | 亚洲精品鲁一鲁一区二区三区 | 小泽玛莉亚一区二区视频在线 | 丰满岳乱妇在线观看中字无码 | 97久久超碰中文字幕 | 极品尤物被啪到呻吟喷水 | 一个人看的www免费视频在线观看 | 免费乱码人妻系列无码专区 | 午夜成人1000部免费视频 | 丰满人妻一区二区三区免费视频 | 2019午夜福利不卡片在线 | 无码人妻精品一区二区三区不卡 | 人妻人人添人妻人人爱 | 国产在线无码精品电影网 | 麻豆人妻少妇精品无码专区 | 久久 国产 尿 小便 嘘嘘 | 欧美午夜特黄aaaaaa片 | 少女韩国电视剧在线观看完整 | 成人精品天堂一区二区三区 | 无遮无挡爽爽免费视频 | 狠狠色噜噜狠狠狠7777奇米 | 色综合天天综合狠狠爱 | 野外少妇愉情中文字幕 | 午夜丰满少妇性开放视频 | 国产精品美女久久久 | 大地资源网第二页免费观看 | 少妇太爽了在线观看 | 日本肉体xxxx裸交 | 午夜无码区在线观看 | 亚洲色偷偷偷综合网 | 少妇激情av一区二区 | 又大又硬又爽免费视频 | 天天摸天天碰天天添 | 精品欧美一区二区三区久久久 | 国产亚洲精品久久久久久国模美 | 东京热一精品无码av | 国产成人综合在线女婷五月99播放 | 欧美日韩久久久精品a片 | 狠狠cao日日穞夜夜穞av | 国产莉萝无码av在线播放 | 性色欲网站人妻丰满中文久久不卡 | 国产欧美亚洲精品a | 国产一区二区三区精品视频 | 亚洲自偷精品视频自拍 | 少妇高潮一区二区三区99 | 久久人人爽人人爽人人片ⅴ | 玩弄人妻少妇500系列视频 | 少妇邻居内射在线 | 久久久av男人的天堂 | 色一情一乱一伦一视频免费看 | 精品无人区无码乱码毛片国产 | 国产女主播喷水视频在线观看 | 99精品久久毛片a片 | 日本又色又爽又黄的a片18禁 | 中文字幕av伊人av无码av | 内射白嫩少妇超碰 | 丝袜美腿亚洲一区二区 | 小泽玛莉亚一区二区视频在线 | 在线欧美精品一区二区三区 | 九一九色国产 | 亚洲 a v无 码免 费 成 人 a v | 日韩人妻无码一区二区三区久久99 | 青草青草久热国产精品 | 图片小说视频一区二区 | 亚洲国产成人av在线观看 | 国产卡一卡二卡三 | 国产精品18久久久久久麻辣 | 久久熟妇人妻午夜寂寞影院 | 国产精品香蕉在线观看 | 中文字幕无码av波多野吉衣 | 久久婷婷五月综合色国产香蕉 | 国产无套内射久久久国产 | 色一情一乱一伦 | 亚洲日韩精品欧美一区二区 | 中文字幕人妻无码一夲道 | 成人影院yy111111在线观看 | 偷窥村妇洗澡毛毛多 | 日韩亚洲欧美中文高清在线 | 日本一区二区三区免费高清 | 欧美乱妇无乱码大黄a片 | 免费人成在线观看网站 | 男女作爱免费网站 | 久久久久亚洲精品男人的天堂 | 国产熟妇另类久久久久 | 亚洲乱亚洲乱妇50p | 日韩精品无码免费一区二区三区 | 熟女体下毛毛黑森林 | 日韩人妻系列无码专区 | 久久综合久久自在自线精品自 | 日本大香伊一区二区三区 | 亚洲狠狠色丁香婷婷综合 | 麻花豆传媒剧国产免费mv在线 | 国产麻豆精品精东影业av网站 | 综合网日日天干夜夜久久 | 免费人成网站视频在线观看 | 熟妇人妻中文av无码 | 国产在线精品一区二区三区直播 | 亚洲午夜久久久影院 | 熟妇女人妻丰满少妇中文字幕 | 精品久久8x国产免费观看 | 天天综合网天天综合色 | 岛国片人妻三上悠亚 | 亚洲欧美中文字幕5发布 | 蜜臀av在线播放 久久综合激激的五月天 | 亚洲国精产品一二二线 | 中文字幕人妻无码一区二区三区 | 小sao货水好多真紧h无码视频 | 免费人成在线观看网站 | 在线观看国产一区二区三区 | 在线亚洲高清揄拍自拍一品区 | 樱花草在线播放免费中文 | аⅴ资源天堂资源库在线 | 免费播放一区二区三区 | 在线观看欧美一区二区三区 | 国产免费久久精品国产传媒 | 久久熟妇人妻午夜寂寞影院 | 又色又爽又黄的美女裸体网站 | 99精品国产综合久久久久五月天 | 99久久精品无码一区二区毛片 | 1000部夫妻午夜免费 | 樱花草在线播放免费中文 | 中文无码成人免费视频在线观看 | 国产午夜无码精品免费看 | 亚洲精品国偷拍自产在线观看蜜桃 | 国产无遮挡又黄又爽免费视频 | 亚洲a无码综合a国产av中文 | 精品少妇爆乳无码av无码专区 | 国产成人无码专区 | 少女韩国电视剧在线观看完整 | 漂亮人妻洗澡被公强 日日躁 | 日韩亚洲欧美中文高清在线 | 亚洲日本va中文字幕 | 午夜免费福利小电影 | 少妇愉情理伦片bd | 黑森林福利视频导航 | aa片在线观看视频在线播放 | 麻豆md0077饥渴少妇 | 久久久久国色av免费观看性色 | 三级4级全黄60分钟 | 日本精品人妻无码77777 天堂一区人妻无码 | 精品夜夜澡人妻无码av蜜桃 | 中文字幕乱码中文乱码51精品 | 领导边摸边吃奶边做爽在线观看 | 日韩精品乱码av一区二区 | 日本免费一区二区三区最新 | 免费人成网站视频在线观看 | 樱花草在线播放免费中文 | 全黄性性激高免费视频 | 亚洲欧洲中文日韩av乱码 | 国产精品.xx视频.xxtv | 高中生自慰www网站 | 国产免费观看黄av片 | 东京热无码av男人的天堂 | 久久久久国色av免费观看性色 | 国产精品久久久 | 国产口爆吞精在线视频 | 国产精品99爱免费视频 | 国产成人一区二区三区别 | 欧美 丝袜 自拍 制服 另类 | 精品国产一区av天美传媒 | 国产午夜亚洲精品不卡下载 | 国产精品视频免费播放 | 青青草原综合久久大伊人精品 | 无码成人精品区在线观看 | 人妻天天爽夜夜爽一区二区 | 夫妻免费无码v看片 | 亚洲中文字幕无码中字 | 人妻少妇精品无码专区动漫 | 国产精品对白交换视频 | 国语自产偷拍精品视频偷 | 午夜无码区在线观看 | 午夜精品久久久久久久久 | 久久久国产一区二区三区 | 亚洲日韩av一区二区三区中文 | 午夜福利不卡在线视频 | 激情爆乳一区二区三区 | 精品aⅴ一区二区三区 | 日本大香伊一区二区三区 | 欧美日本日韩 | 国产一精品一av一免费 | 粉嫩少妇内射浓精videos | 亚洲の无码国产の无码影院 | 蜜桃av抽搐高潮一区二区 | 亚洲中文无码av永久不收费 | 亚洲中文字幕在线观看 | 超碰97人人做人人爱少妇 | 国产激情艳情在线看视频 | 国产无遮挡吃胸膜奶免费看 | 久久99精品久久久久婷婷 | 国产在线无码精品电影网 | 成人无码影片精品久久久 | 久久久久99精品国产片 | 无码吃奶揉捏奶头高潮视频 | 中文字幕无码人妻少妇免费 | 亚洲人成网站免费播放 | 日本爽爽爽爽爽爽在线观看免 | 久久久久av无码免费网 | 在线播放无码字幕亚洲 | 国产亚洲欧美在线专区 | 亚洲国产高清在线观看视频 | 青草青草久热国产精品 | 国产成人无码区免费内射一片色欲 | 国产精品怡红院永久免费 | 国产一区二区三区四区五区加勒比 | 国产精品二区一区二区aⅴ污介绍 | 女人被男人爽到呻吟的视频 | 少妇高潮一区二区三区99 | 成人免费无码大片a毛片 | 中国女人内谢69xxxx | 日产精品高潮呻吟av久久 | 亚洲精品一区二区三区大桥未久 | 国产内射爽爽大片视频社区在线 | 亚洲精品国产精品乱码视色 | 在线天堂新版最新版在线8 | 国产亲子乱弄免费视频 | 国产精品办公室沙发 | 久久精品国产大片免费观看 | 国内老熟妇对白xxxxhd | 日本护士xxxxhd少妇 | 2020久久超碰国产精品最新 | 夜夜躁日日躁狠狠久久av | 中文字幕 人妻熟女 | 男人的天堂av网站 | 久久精品中文字幕一区 | 亚洲欧美国产精品专区久久 | 久久精品人妻少妇一区二区三区 | 在教室伦流澡到高潮hnp视频 | 夜夜高潮次次欢爽av女 | 亚洲欧美日韩综合久久久 | 日日摸天天摸爽爽狠狠97 | 亚洲欧美国产精品久久 | 国产真人无遮挡作爱免费视频 | а√资源新版在线天堂 | 国产区女主播在线观看 | 久久婷婷五月综合色国产香蕉 | 久久国产劲爆∧v内射 | 熟妇人妻中文av无码 | 欧美 日韩 亚洲 在线 | 亚洲色无码一区二区三区 | 亚洲区小说区激情区图片区 | 国产人成高清在线视频99最全资源 | 国产亚洲视频中文字幕97精品 | 骚片av蜜桃精品一区 | 扒开双腿吃奶呻吟做受视频 | 亚洲自偷自拍另类第1页 | 亚洲人成影院在线无码按摩店 | 99久久精品日本一区二区免费 | 久久久亚洲欧洲日产国码αv | 国产精品国产自线拍免费软件 | 国产精品国产三级国产专播 | 久久久久99精品成人片 | 18精品久久久无码午夜福利 | 午夜熟女插插xx免费视频 | 牲欲强的熟妇农村老妇女 | 欧美喷潮久久久xxxxx | 欧美激情综合亚洲一二区 | 欧美老人巨大xxxx做受 | 性欧美熟妇videofreesex | 国产成人av免费观看 |