国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

世界上最好的語言PHP:我也可以用OpenCV搞計算機視覺

瀏覽:93日期:2022-09-11 14:15:18
世界上最好的語言PHP:我也可以用OpenCV搞計算機視覺

作者 Vladimir Goncharov 平常主要關(guān)注與研究兩個主題:PHP 和 Server Administration(服務(wù)器管理)。在過去的半年中,作者利用空閑時間探索 PHP 與 OpenCV 的結(jié)合,并借此調(diào)用與訓練優(yōu)秀的機器學習模型。本文從實踐的角度介紹了如何使用 PHP 與 OpenCV 構(gòu)建人臉檢測、人臉識別、超分辨率與目標檢測等系統(tǒng),因此 PHP 的各位擁躉們,可以盡情使用 OpenCV 探索計算機視覺了。

世界上最好的語言PHP:我也可以用OpenCV搞計算機視覺

就像許多開發(fā)人員一樣,我也經(jīng)常使用別人的工作成果(Medium 上的文章、GitHub 上的代碼等),因此也很樂意與社區(qū)分享我的成果。寫文章不僅是對社區(qū)的一種回報,還可以讓你找到志趣相投的人,在一個狹小的領(lǐng)域內(nèi)得到專業(yè)人員的指教,并進一步加深你對研究領(lǐng)域的理解。

事實上,本篇文章正是有關(guān)這些時刻之一。在本篇文章中,除了那些我看電視節(jié)目和玩游戲的時間,我敘述了在過去六個月的幾乎所有空閑時間里所做的探索。

現(xiàn)今,「機器學習」發(fā)展迅速,并有大量相關(guān)的文章,包括那些 Medium 上的博客,同時幾乎每位開發(fā)人員都開始在工作任務(wù)和本地項目中使用機器學習,但是從何處開始以及使用什么方法總是令人困惑的。大多針對初學者的文章提供了一堆文獻,在閱讀中發(fā)現(xiàn)這些文章脫離生活,或提供一些「價」的課程等。

通常在新發(fā)表的文章中描述了解決特定問題的新方法,你可以在 GitHub 上找到文章中方法的實現(xiàn)。由于更普遍使用的編程語言是:C / C ++、Python 2/3、Lua 和 Matlab,以及框架:Caffe、TensorFlow、Torch。因此在編程語言和框架上的大量細分選擇使得找到你所需要的,并集成到項目中的過程變得更加復(fù)雜。

OpenCV中添加的一個 DNN 模塊以某種方式減少了這些混亂,它使得你可以直接使用一個在基本框架中訓練過的模型。我會向你展示如何在 PHP 中使用這個模塊。

DNN 模塊:https://github.com/opencv/opencv/wiki/ChangeLog#version341

Jeremy Howard(免費的實踐課程「machine learning for coders」的創(chuàng)建者)認為現(xiàn)如今在學習機器學習和實際應(yīng)用之間存在一個很大的界限。

Howard 認為開始學習機器學習一年的編程經(jīng)驗就足夠了。我完全同意他的觀點,并且我希望我的文章可以幫助那些對機器學習不熟悉,以及還不清楚是否愿意從事機器學習的 PHP 開發(fā)人員降低OpenCV的使用門檻,同時我會盡力闡述我花了大量時間得到的觀點,所以你們甚至都不需要很長的時間就可以了解它。

世界上最好的語言PHP:我也可以用OpenCV搞計算機視覺

php-opencv 項目的 logo

我曾考慮使用 SWIG 寫一個 php-opencv 模塊,并花費了大量時間在上面,但是并沒有取得任何成果。一切都因為我不懂 C / C++ 并且沒有為 PHP 7 編寫過擴展文件而變得復(fù)雜。不幸的是,網(wǎng)上大多數(shù)材料都是基于 PHP 5 而寫的 PHP 擴展,因此我不得不一點點收集信息并自己解決問題。

然后,我在 GitHub 上找到了 php-opencv 庫,它是一個用于調(diào)用OpenCV方法的 PHP 7 模塊。我花了幾個晚上來編譯、安裝和運行示例。我開始嘗試這個模塊的不同功能,但這個庫還缺少一些方法,因此我就自己添加了它們并創(chuàng)建了一個 pull request,且該庫的作者接受了它們。之后,我添加了更多的功能。

php-opencv:https://github.com/hihozhou/php-opencv

這是圖像加載的方法:

$image = cvimread(“images/faces.jpg”);

相比之下,在 python 下圖像加載是這樣的:

image = cv2.imread(“images/faces.jpg”)

當在 PHP(以及在 C++中)中讀取一張圖像時,信息就存儲在 Mat 對象(矩陣)中。在 PHP 中,類似的是一個多維數(shù)組,但又與多維數(shù)組有所不同,該對象可以進行多種快速操作,例如,所有元素同時除以一個數(shù)。在 Python 中,當加載圖像時,會返回「NumPy」對象。

小心原有的默認操作!它會發(fā)生這樣的情況,imread(在 php、c ++ 和 python 中)不是以 RGB 格式加載圖像,而是 BGR 格式。因此,在OpenCV的示例中,你經(jīng)常可以看到轉(zhuǎn)換 BGR 到 RGB 的過程,反之亦然。

人臉檢測

我第一次嘗試的是這個功能。為此,在OpenCV中有一個「CascadeClassifier」類,它可以加載 xml 格式的預(yù)訓練模型。在找到人臉之前,該類建議將圖像轉(zhuǎn)換為黑白格式。

$src = imread(“images/faces.jpg”); $gray = cvtColor($src, COLOR_BGR2GRAY); $faceClassifier = new CascadeClassifier(); $faceClassifier->load(‘models/lbpcascades/lbpcascade_frontalface.xml’); $faceClassifier->detectMultiScale($gray, $faces);

完整測示例代碼:https://github.com/php-opencv/php-opencv-examples/blob/master/detect_face_by_cascade_classifier.php

結(jié)果:

世界上最好的語言PHP:我也可以用OpenCV搞計算機視覺

從這個示例中可以看出,即使在僵尸妝容的照片上也可以找到一張人臉。特征點不會干擾人臉的定位。

人臉識別

對于人臉識別,OpenCV擁有「LBPHFaceRecognizer」類和「train / predict」方法。

如果我們想要知道照片中是誰,首先我們需要使用 train 方法訓練模型,它需要兩個參數(shù):對于這些圖像的一個人臉圖像的數(shù)組和一個數(shù)值標簽的數(shù)組。然后你可以在測試圖像(人臉)上調(diào)用 predict 方法并獲得相匹配的數(shù)值標簽。

$faceRecognizer = LBPHFaceRecognizer :: create ();$faceRecognizer-> train ($myFaces, $myLabels = [1,1,1,1]); // 4 my faces$faceRecognizer-> update ($angelinaFaces, $angelinaLabels = [2,2,2,2]); // 4 faces of Angelina$label = $faceRecognizer-> predict ($faceImage, $confidence);// get label (1 or 2) and confidence

完整的示例代碼:https://github.com/php-opencv/php-opencv-examples/blob/master/recognize_face_by_lbph.php

數(shù)據(jù)集:

世界上最好的語言PHP:我也可以用OpenCV搞計算機視覺

世界上最好的語言PHP:我也可以用OpenCV搞計算機視覺

結(jié)果:

世界上最好的語言PHP:我也可以用OpenCV搞計算機視覺

當我開始調(diào)用 LBPHFaceRecognizer 類時,它無法保存/加載/更新訓練好的模型。事實上,我的第一個 pull request 添加了這些方法:寫入/讀取/更新。

人臉標記/特征點

當我開始熟悉OpenCV時,我經(jīng)常看到一些人的照片,這些照片上的點標記著眼睛、鼻子、嘴唇等。我想自己重復(fù)這個實驗,但在OpenCV的 Python 版本中并沒有實現(xiàn)。我花了一個晚上為 PHP 添加了 FacematkLBF 支持并返回一個對象。一切都是簡單易行的,我們加載預(yù)訓練的模型,輸入關(guān)于人臉的一個數(shù)組,然后得到關(guān)于每個人的特征點的一個數(shù)組。

$facemark = FacemarkLBF::create(); $facemark->loadModel(‘models/opencv-facemark-lbf/lbfmodel.yaml’); $facemark->fit($image, $faces, $landmarks);

完整的示例代碼:https://github.com/php-opencv/php-opencv-examples/blob/master/detect_facemarks_by_lbf.php

結(jié)果:

世界上最好的語言PHP:我也可以用OpenCV搞計算機視覺

從這個示例中可以看出,僵尸妝容使得找到人臉上的特征點變得更難。特征點也會干擾人臉的定位。光照也有影響,在這個實例中,嘴里的異物(草莓、香煙等)可能不會有干擾。

在我第一次拉拽請求之后,我受到了啟發(fā)同時開始了解 opencv 可以做些什么,偶然發(fā)現(xiàn)了一篇文章《Deep Learning,now inOpenCV》(OpenCV中的深度學習)。我立刻決定在 php-opencv 中使用預(yù)訓練模型,這些模型在互聯(lián)網(wǎng)上有很多。盡管后來我花了很多時間學習如何使用多維矩陣并在不使用OpenCV的情況下使用 Caffe / Torch /TensorFlow 模型,但事實證明加載 Caffe 模型并不困難。

Deep Learning,now inOpenCV:https://github.com/opencv/opencv/wiki/ChangeLog#version341

使用 DNN 模型進行人臉檢測

因此,OpenCV允許你使用 readNetFromCaffe 函數(shù)在 Caffe 中加載預(yù)訓練模型。它需要兩個參數(shù):指向 .prototxt 和 .caffemodel 文件的路徑。prototxt 文件中有模型的描述,而在 caffemodel 中有模型訓練期間計算的權(quán)重。

以下是一個 prototxt 文件開頭的示例:

input:“data”input_shape { dim: 1 dim: 3 dim: 300 dim: 300 }

這段文件描述了輸入一個 1x3x300x300 的 4 維矩陣。在對模型的描述中,通常會說明以這種格式輸入的意義是什么,但在大多數(shù)情況下,這意味著將輸入尺寸為 300x300 的 RGB 圖像(3 通道)。

通過使用 imread 函數(shù)加載一張 300x300 的 RGB 圖像,我們得到一個 300x300x3 的矩陣。

OpenCV中有一個 blobFromImage 函數(shù)能將 300x300x3 的矩陣轉(zhuǎn)換為 1x3x300x300 的格式。

之后,我們可以僅通過使用 setInput 方法將 blob 應(yīng)用于網(wǎng)絡(luò)輸入并調(diào)用 forward 方法,其可以返回最終的結(jié)果給我們。

$src = imread(“images/faces.jpg”); $net = CVDNNreadNetFromCaffe(‘models/ssd/res10_300x300_ssd_deploy.prototxt’, ‘models/ssd/res10_300x300_ssd_iter_140000.caffemodel’); $blob = CVDNNblobFromImage($src, $scalefactor = 1.0, $size = new Size(300, 300), $mean = new Scalar(104, 177, 123), $swapRB = true, $crop = false); $net->setInput($blob,“”); $result = $net->forward();

在這個實例中,結(jié)果是一個 1×1×200×7 的矩陣,即每張圖像有 7 個元素的 200 個數(shù)組。在一張有 4 張臉的照片中,網(wǎng)絡(luò)尋找到 200 個候選對象。其中每一個對象的形式為 [,, $confidence, $startX, $startY, $endX, $endY]。元素 $confidence 代表「置信度」,即預(yù)測概率有多好,比如 0.75 是好的。之后的元素代表人臉矩形框的坐標。在這個示例中,只有 3 張人臉以超過 50% 的置信度被找到,而剩下的 197 個候選對象的置信度小于 15%。

完整的示例代碼:https://github.com/php-opencv/php-opencv-examples/blob/master/detect_face_by_dnn_ssd.php

結(jié)果:

世界上最好的語言PHP:我也可以用OpenCV搞計算機視覺

從這個示例中可以看出,神經(jīng)網(wǎng)絡(luò)「在額頭上「使用時并不總是產(chǎn)生良好的結(jié)果。沒有找到第四張臉,但是如果將第四張照片單獨拿出來并導(dǎo)入神經(jīng)網(wǎng)絡(luò),人臉就會被找到。

使用神經(jīng)網(wǎng)絡(luò)提升圖像質(zhì)量

很久之前,我聽說過 waifu2x 庫,它可以消除噪聲并增加圖標/照片的大小。該庫使用 lua 編寫,在底層使用幾種 Torch 中訓練好的模型(為了增加圖標大小,消除照片噪聲等)。該庫的作者將這些模型導(dǎo)出為 Caffe 并幫助我在OpenCV中使用它們。因此,一個示例就是在 PHP 中編寫的用于增加圖標的分辨率。

waifu2x 庫:https://github.com/nagadomi/waifu2x

示例的完整代碼:https://github.com/php-opencv/php-opencv-examples/blob/master/upscale_image_x2_by_dnn_waifu2x.php

世界上最好的語言PHP:我也可以用OpenCV搞計算機視覺

不使用神經(jīng)網(wǎng)絡(luò)放大圖片

圖像分類

在 ImageNet 上訓練的 MobileNet神經(jīng)網(wǎng)絡(luò)可以分類圖像。總的來說,它可以區(qū)分 1000 個類別,這對我來說還不夠。

示例的完整代碼:https://github.com/php-opencv/php-opencv-examples/blob/master/classify_image_by_dnn_mobilenet.php

世界上最好的語言PHP:我也可以用OpenCV搞計算機視覺

結(jié)果: 87% - 埃及貓,4% - 斑貓,2% - 虎貓

Tensorflow 目標檢測 API

在 COCO 數(shù)據(jù)集上使用Tensorflow 訓練的 MobileNet SSD(Single Shot MultiBox Detector)網(wǎng)絡(luò)不僅可以對圖像進行分類,還可以返回目標區(qū)域,盡管只能檢測 182 個類別。

示例的完整代碼:https://github.com/php-opencv/php-opencv-examples/blob/master/detect_objects_by_dnn_mobilenet.php

世界上最好的語言PHP:我也可以用OpenCV搞計算機視覺

原圖

世界上最好的語言PHP:我也可以用OpenCV搞計算機視覺

結(jié)果

語法高亮和代碼補全

我還添加了 phpdoc.php 文件到版本庫中并作為示例。多虧了它,Phpstorm 突出了函數(shù)的語法、類和它們的方法,并且還可以用于代碼補全。這個文件不需要包含在你的代碼中(否則會出現(xiàn)錯誤),將其放到你的項目中就足夠了。就個人而言,它使得我的編程更輕松。這個文件描述了OpenCV中的大多數(shù)函數(shù),但不是所有,因此歡迎發(fā)送拉拽請求。

phpdoc.php:https://github.com/php-opencv/php-opencv-examples/blob/master/phpdoc.php

安裝

「dnn」模塊僅在OpenCV3.4 中出現(xiàn)(對于之前的版本它是在 contrib 中)。

Ubuntu 18.04 最新的OpenCV版本是 3.2。從源碼搭建OpenCV大約需要 半個小時,所以我在 Ubuntu 18.04 下編譯了這個包(也適用于 17.10 版本,大小 25 MB),同時為 PHP 7.2(Ubuntu 18.04)和 PHP 7.1(Ubuntu 17.10)(大小 100 KB)編譯了 php-opencv 包。注冊 ppa:php-opencv,但還沒上傳完,同時沒有發(fā)現(xiàn)比在 GitHub 上傳包更好的。我還創(chuàng)建了一個在 pecl 中申請一個賬戶的請求,但幾個月都沒得到回復(fù)。

在 GitHub 上傳包:https://github.com/php-opencv/php-opencv-packages

因此現(xiàn)在在 Ubuntu 18.04 下的安裝看起來是這樣的:

apt update && apt install -y wget && wget https://raw.githubusercontent.com/php-opencv/php-opencv-packages/master/opencv_3.4_amd64.deb && dpkg -i opencv_3.4_amd64.deb && rm opencv_3.4_amd64.deb && wget https://raw.githubusercontent.com/php-opencv/php-opencv-packages/master/php-opencv_7.2-3.4_amd64.deb && dpkg -i php-opencv_7.2–3.4_amd64.deb && rm php-opencv_7.2–3.4_amd64.deb && echo“extension=opencv.so”> /etc/php/7.2/cli/conf.d/opencv.ini

安裝這個選項大約需要 1 分鐘,所有安裝選項在 Ubuntu 上進行:https://github.com/php-opencv/php-opencv-examples/wiki/Installation-on-ubuntu

我同時編譯了 168 MB 的 docker 映像。

使用示例

下載:

git clone https://github.com/php-opencv/php-opencv-examples.git && cd php-opencv-examples

運行:

php detect_face_by_dnn_ssd.php

原文鏈接:https://medium.com/@morozovsk/computer-vision-and-machine-learning-in-php-using-the-opencv-library-3131fe9df94b

工程

相關(guān)數(shù)據(jù)

神經(jīng)網(wǎng)絡(luò) 技術(shù)

Neural Network

(人工)神經(jīng)網(wǎng)絡(luò)是一種起源于 20 世紀 50 年代的監(jiān)督式機器學習模型,那時候研究者構(gòu)想了「感知器(perceptron)」的想法。這一領(lǐng)域的研究者通常被稱為「聯(lián)結(jié)主義者(Connectionist)」,因為這種模型模擬了人腦的功能。神經(jīng)網(wǎng)絡(luò)模型通常是通過反向傳播算法應(yīng)用梯度下降訓練的。目前神經(jīng)網(wǎng)絡(luò)有兩大主要類型,它們都是前饋神經(jīng)網(wǎng)絡(luò):卷積神經(jīng)網(wǎng)絡(luò)(CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),其中 RNN 又包含長短期記憶(LSTM)、門控循環(huán)單元(GRU)等等。深度學習是一種主要應(yīng)用于神經(jīng)網(wǎng)絡(luò)幫助其取得更好結(jié)果的技術(shù)。盡管神經(jīng)網(wǎng)絡(luò)主要用于監(jiān)督學習,但也有一些為無監(jiān)督學習設(shè)計的變體,比如自動編碼器和生成對抗網(wǎng)絡(luò)(GAN)。

來源:機器之心

人臉識別 技術(shù)

Facial recognition

廣義的人臉識別實際包括構(gòu)建人臉識別系統(tǒng)的一系列相關(guān)技術(shù),包括人臉圖像采集、人臉定位、人臉識別預(yù)處理、身份確認以及身份查找等;而狹義的人臉識別特指通過人臉進行身份確認或者身份查找的技術(shù)或系統(tǒng)。 人臉識別是一項熱門的計算機技術(shù)研究領(lǐng)域,它屬于生物特征識別技術(shù),是對生物體(一般特指人)本身的生物特征來區(qū)分生物體個體。

來源: 維基百科

機器學習 技術(shù)

Machine Learning

機器學習是人工智能的一個分支,是一門多領(lǐng)域交叉學科,涉及概率論、統(tǒng)計學、逼近論、凸分析、計算復(fù)雜性理論等多門學科。機器學習理論主要是設(shè)計和分析一些讓計算機可以自動“學習”的算法。因為學習算法中涉及了大量的統(tǒng)計學理論,機器學習與推斷統(tǒng)計學聯(lián)系尤為密切,也被稱為統(tǒng)計學習理論。算法設(shè)計方面,機器學習理論關(guān)注可以實現(xiàn)的,行之有效的學習算法。

來源:Mitchell, T. (1997). Machine Learning. McGraw Hill.

噪聲 技術(shù)

Noise

噪音是一個隨機誤差或觀測變量的方差。在擬合數(shù)據(jù)的過程中,我們常見的公式$y=f(x)+epsilon$中$epsilon$即為噪音。 數(shù)據(jù)通常包含噪音,錯誤,例外或不確定性,或者不完整。 錯誤和噪音可能會混淆數(shù)據(jù)挖掘過程,從而導(dǎo)致錯誤模式的衍生。去除噪音是數(shù)據(jù)挖掘(data mining)或知識發(fā)現(xiàn)(Knowledge Discovery in Database,KDD)的一個重要步驟。

來源:Han J.; Kamber M.; Pei J. (2011). Data mining: concepts and techniques. Morgan Kaufman.

OpenCV 技術(shù)

OpenCV

OpenCV的全稱是Open Source Computer Vision Library,是一個跨平臺的計算機視覺庫。OpenCV是由英特爾公司發(fā)起并參與開發(fā),以BSD許可證授權(quán)發(fā)行,可以在商業(yè)和研究領(lǐng)域中免費使用。OpenCV可用于開發(fā)實時的圖像處理、計算機視覺以及模式識別程序。

來源: 維基百科

參數(shù) 技術(shù)

parameter

在數(shù)學和統(tǒng)計學裡,參數(shù)(英語:parameter)是使用通用變量來建立函數(shù)和變量之間關(guān)系(當這種關(guān)系很難用方程來闡述時)的一個數(shù)量。

來源: 維基百科

權(quán)重 技術(shù)

Weight

線性模型中特征的系數(shù),或深度網(wǎng)絡(luò)中的邊。訓練線性模型的目標是確定每個特征的理想權(quán)重。如果權(quán)重為 0,則相應(yīng)的特征對模型來說沒有任何貢獻。

來源:Google AI Glossary

深度學習 技術(shù)

Deep learning

深度學習(deep learning)是機器學習的分支,是一種試圖使用包含復(fù)雜結(jié)構(gòu)或由多重非線性變換構(gòu)成的多個處理層對數(shù)據(jù)進行高層抽象的算法。 深度學習是機器學習中一種基于對數(shù)據(jù)進行表征學習的算法。觀測值(例如一幅圖像)可以使用多種方式來表示,如每個像素強度值的向量,或者更抽象地表示成一系列邊、特定形狀的區(qū)域等。而使用某些特定的表示方法更容易從實例中學習任務(wù)(例如,人臉識別或面部表情識別)。 近年來監(jiān)督式深度學習方法(以反饋算法訓練CNN、LSTM等)獲得了空前的成功,而基于半監(jiān)督或非監(jiān)督式的方法(如DBM、DBN、stacked autoencoder)雖然在深度學習興起階段起到了重要的啟蒙作用,但仍處在研究階段并已獲得不錯的進展。在未來,非監(jiān)督式學習將是深度學習的重要研究方向,因為人和動物的學習大多是非監(jiān)督式的,我們通過觀察來發(fā)現(xiàn)世界的構(gòu)造,而不是被提前告知所有物體的名字。 至今已有數(shù)種深度學習框架,如卷積神經(jīng)網(wǎng)絡(luò)和深度置信網(wǎng)絡(luò)和遞歸神經(jīng)網(wǎng)絡(luò)等已被應(yīng)用在計算機視覺、語音識別、自然語言處理、音頻識別與生物信息學等領(lǐng)域并獲取了極好的效果。

來源: LeCun, Y., Bengio, Y., & Hinton, G. (2015). Deep learning. nature, 521(7553), 436.

張量 技術(shù)

Tensor

張量是一個可用來表示在一些矢量、標量和其他張量之間的線性關(guān)系的多線性函數(shù),這些線性關(guān)系的基本例子有內(nèi)積、外積、線性映射以及笛卡兒積。其坐標在 維空間內(nèi),有 個分量的一種量,其中每個分量都是坐標的函數(shù),而在坐標變換時,這些分量也依照某些規(guī)則作線性變換。稱為該張量的秩或階(與矩陣的秩和階均無關(guān)系)。 在數(shù)學里,張量是一種幾何實體,或者說廣義上的“數(shù)量”。張量概念包括標量、矢量和線性算子。張量可以用坐標系統(tǒng)來表達,記作標量的數(shù)組,但它是定義為“不依賴于參照系的選擇的”。張量在物理和工程學中很重要。例如在擴散張量成像中,表達器官對于水的在各個方向的微分透性的張量可以用來產(chǎn)生大腦的掃描圖。工程上最重要的例子可能就是應(yīng)力張量和應(yīng)變張量了,它們都是二階張量,對于一般線性材料他們之間的關(guān)系由一個四階彈性張量來決定。

來源: 維基百科

TensorFlow 技術(shù)

TensorFlow

TensorFlow是一個開源軟件庫,用于各種感知和語言理解任務(wù)的機器學習。目前被50個團隊用于研究和生產(chǎn)許多Google商業(yè)產(chǎn)品,如語音識別、Gmail、Google 相冊和搜索,其中許多產(chǎn)品曾使用過其前任軟件DistBelief。

來自:https://www.jiqizhixin.com/articles/2018-06-25-7

標簽: PHP
相關(guān)文章:
主站蜘蛛池模板: 国产精品久久久久久小说 | 亚洲国产欧美在线成人aaaa | 国产三级久久久精品三级 | 欧美日本一区亚洲欧美一区 | 欧美黄色网络 | 美女一级毛片免费不卡视频 | 日产日韩亚洲欧美综合搜索 | 新版天堂中文资源8在线 | 黄色网址www | 精品视频在线免费播放 | 国产综合精品久久亚洲 | 欧美笫一页 | 精品亚洲综合久久中文字幕 | 三级网站国产 | 国产一级一级 | 中文字幕亚洲精品日韩精品 | 亚洲美女在线观看播放 | 日韩欧美在线精品 | 91香蕉成人免费高清网站 | 亚洲伦乱 | 九九99靖品 | 日韩 欧美 自拍 在线 视频 | 亚洲精品中文字幕一区 | 色综合天天综合网看在线影院 | 天天拍拍夜夜出水 | 国产精品久久久久久久9999 | 97视频久久 | 国产精品久久久久久影院 | 一区免费在线观看 | 日韩一级在线视频 | 最新日韩欧美不卡一二三区 | 成人a影片在线观看 | 国产午夜三区视频在线 | 真人一级毛片全部免 | 免费特级毛片 | 日日摸人人拍人人澡 | 日本二区免费一片黄2019 | 亚洲成人黄色网 | 欧美性色生活片天天看99 | 在线观看黄网视频免费播放 | 播放一级毛片 |