欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > 基于HTML5 的人臉識別活體認證的實現方法

基于HTML5 的人臉識別活體認證的實現方法

熱門標簽:西寧智能外呼系統加盟 杭州營銷電銷機器人供應商 電視購物電銷外呼系統 百應電銷機器人產業 聯通400電話申請 電話機器人如何 貸款電銷人工和機器人哪個好 飛亞外呼系統 高德地圖標注賓館位置

近幾年,人臉識別技術在身份認證領域的應用已經有了較多應用,例如:支付寶、招行的取款、養老金領取等方面,但在杜絕假冒、認證安全性等方面,目前還是一個比較需要進一步解決的課題,特別是在移動端的活體認證技術方面。

本文介紹了在HTML5 環境下可以采用clmtrackr.js 檢測工具,結合人臉模型,實現人臉的跟蹤檢測。同時采用動作識別實現活體認證。

但本方案只能夠在Firefox 或者Chrome中使用。并且只適合研究學習,實際場景中不太理想,需要進一步優化才能夠應用。

如果有人有相關的技術,可以推薦介紹給我。

JavaScript Code復制內容到剪貼板
  1. <!DOCTYPE html>  
  2. <!--  
  3. Ideally these elements aren't created until it's confirmed that the   
  4. client supports video/camera, but for the sake of illustrating the   
  5. elements involved, they are created with markup (not JavaScript)  
  6. -->  
  7. <html>  
  8. <meta charset="GBK">  
  9. <style>  
  10. #container {  
  11. position : relative;  
  12. }  
  13.  
  14. #canvas {  
  15. position : absolute;  
  16. left : 0;  
  17. top : 0;  
  18. }  
  19. </style>  
  20. <script src="utils.js"></script>  
  21. <script src="clmtrackr.js"></script>  
  22. <script src="./models/model_pca_20_svm.js"></script>  
  23. <script src="numeric.js"></script>  
  24. <script src="ccv.js"></script>  
  25.   
  26. <audio id="media">   
  27. 你的瀏覽器不支持audio標簽。  
  28. </audio>  
  29. <div id="container">  
  30. <video id="video" width="600" height="400" autoplay >   
  31. 您的瀏覽器不支持video標簽  
  32. </video>  
  33. <canvas id="canvas" width="600" height="400"></canvas>  
  34. </div>      
  35.   
  36. <button id="snap">Snap Photo</button>  
  37.   
  38. <button id="start">Start</button>  
  39.   
  40. <button id="showposition">顯示</button>  
  41.   
  42. <button id="hideposition">不顯示</button>  
  43.   
  44. <br/>  
  45.   
  46. <button id="mouse">張嘴驗證</button>   
  47. <button id="head">搖頭驗證</button>   
  48. <button id="eye">眨眼驗證</button>  
  49.   
  50.   
  51. <div id="tip">  
  52. </div>  
  53. <div id="result">  
  54. </div>  
  55. <div id="msg">  
  56. </div>  
  57.   
  58. <div id="positions">  
  59. </div>  
  60.   
  61. <script>  
  62.   
  63. var showpos=false;  
  64. // Put event listeners into place  
  65. //window.addEventListener("DOMContentLoaded", function() {  
  66.   
  67. // Grab elements, create settings, etc.  
  68. var canvas = document.getElementById("canvas"),  
  69. context = canvas.getContext("2d"),  
  70. video = document.getElementById("video"),  
  71. videoObj = { "video"true },  
  72. errBack = function(error) {  
  73. if (error.PERMISSION_DENIED) {  
  74. jAlert('用戶拒絕了瀏覽器請求媒體的權限''提示');  
  75. else if (error.NOT_SUPPORTED_ERROR) {  
  76. jAlert('對不起,您的瀏覽器不支持拍照功能,請使用其他瀏覽器''提示');  
  77. else if (error.MANDATORY_UNSATISFIED_ERROR) {  
  78. jAlert('指定的媒體類型未接收到媒體流''提示');  
  79. else {  
  80. jAlert('系統未能獲取到攝像頭,請確保攝像頭已正確安裝?;驀L試刷新頁面,重試''提示');  
  81. }  
  82. };  
  83.   
  84. // Put video listeners into place  
  85. if(navigator.getUserMedia) { // Standard  
  86.   
  87. navigator.getUserMedia(videoObj, function(stream) {  
  88.   
  89. video.src = stream;  
  90. video.play();  
  91.   
  92. }, errBack);  
  93.   
  94. else if(navigator.webkitGetUserMedia) { // WebKit-prefixed  
  95.   
  96. try{  
  97.   
  98. navigator.webkitGetUserMedia(videoObj, function(stream){   
  99. video.src = window.webkitURL.createObjectURL(stream);  
  100. video.play();  
  101. }, errBack);  
  102.   
  103. }catch(error){  
  104. alert(error);  
  105. }  
  106.   
  107. }  
  108. else if(navigator.mozGetUserMedia) { // Firefox-prefixed  
  109. navigator.mozGetUserMedia(videoObj, function(stream){  
  110.   
  111. video.src = window.URL.createObjectURL(stream);  
  112. video.play();  
  113. }, errBack);  
  114. }  
  115.   
  116.   
  117.   
  118. // Trigger photo take  
  119. document.getElementById("snap").addEventListener("click"function() {  
  120. context.drawImage(video, 0, 0, 600, 400);  
  121. });  
  122. document.getElementById("start").addEventListener("click"function() {  
  123. startTrack();  
  124. });  
  125.   
  126.   
  127. document.getElementById("showposition").addEventListener("click"function() {  
  128. showpos=true;  
  129. });  
  130.   
  131. document.getElementById("hideposition").addEventListener("click"function() {  
  132. showpos=false;  
  133. });  
  134.   
  135. document.getElementById("mouse").addEventListener("click"function() {  
  136. alive_mouse();  
  137. });  
  138. document.getElementById("head").addEventListener("click"function() {  
  139. alive_head();  
  140. });  
  141.   
  142. document.getElementById("eye").addEventListener("click"function() {  
  143. alive_eye();  
  144. });  
  145.   
  146.   
  147.   
  148.   
  149. //}, false);  
  150.   
  151.   
  152. </script>  
  153.   
  154. <script>  
  155.   
  156. //////////////////////////////////////////////////////////////////////////////  
  157. //活體  
  158. var last_time=0;//時間因素  
  159. var last_nose_left=0;  
  160. var last_nose_top=0;  
  161.   
  162. //張嘴動作  
  163. var is_mouse_ok=false;   
  164. var is_alive_mouse=false;  
  165. var last_dis_eye_norse=0;  
  166. var last_dis_mouse=0;  
  167. function alive_mouse(){  
  168.   
  169. var media = document.getElementById("media");  
  170. media.src="mp3/alive_mouse.mp3";  
  171. media.play();  
  172.   
  173. document.getElementById("tip").innerHTML="請張合嘴巴";  
  174. document.getElementById('result').innerHTML = "";  
  175.   
  176. is_mouse_ok=false;  
  177. last_dis_mouse=0;  
  178. last_time=0;  
  179. last_dis_eye_norse=100000000;   
  180.   
  181. is_alive_head=false;  
  182. is_alive_mouse=true;  
  183. is_alive_eye=false;  
  184.   
  185. }  
  186. //搖頭動作  
  187. var is_head_ok=false;   
  188. var is_alive_head=false;  
  189. var last_dis_left_right=100000000;   
  190. function alive_head(){  
  191.   
  192. var media = document.getElementById("media");  
  193. media.src="mp3/alive_head.mp3";  
  194. media.play();  
  195.   
  196. document.getElementById("tip").innerHTML="請在水平方向左右搖頭";  
  197. document.getElementById('result').innerHTML = "";  
  198.   
  199. is_head_ok=false;  
  200. last_dis_left_right=100000000;   
  201. last_time=0;   
  202. is_alive_head=true;  
  203. is_alive_mouse=false;  
  204. is_alive_eye=false;  
  205.   
  206. }  
  207.   
  208. //眨眼動作  
  209. var is_alive_eye=false;  
  210. var is_eye_ok = false;  
  211.   
  212. function alive_eye(){  
  213. var media = document.getElementById("media");  
  214. media.src="mp3/alive_eye.mp3";  
  215. media.play();  
  216.   
  217. document.getElementById("tip").innerHTML="請眨眼";  
  218. document.getElementById('result').innerHTML = "";  
  219.   
  220. is_eye_ok=false;  
  221. last_dis_eye_norse=100000000;   
  222.   
  223. last_nose_left=0;  
  224. last_nose_top=0;  
  225.   
  226. last_time=0;   
  227.   
  228. is_alive_head=false;  
  229. is_alive_mouse=false;  
  230. is_alive_eye=true;  
  231. }  
  232.   
  233.   
  234. function startTrack(){  
  235.   
  236. var videoInput = document.getElementById('video');  
  237.   
  238. var ctracker = new clm.tracker();  
  239. ctracker.init(pModel);  
  240. ctracker.start(videoInput);  
  241.   
  242.   
  243. var canvasInput = document.getElementById('canvas');  
  244. var cc = canvasInput.getContext('2d');  
  245. cc.lineWidth=3;  
  246.   
  247. function drawLoop() {  
  248. //requestAnimationFrame(drawLoop);  
  249.   
  250.   
  251. cc.clearRect(0, 0, canvasInput.width, canvasInput.height);  
  252. //ctracker.draw(canvasInput );  
  253. var positions = ctracker.getCurrentPosition();  
  254. if (showpos && positions) {  
  255.   
  256. for (var p = 0;p < positions.length;p++) {  
  257. positionString += "featurepoint "+p+" : ["+positions[p][0].toFixed(2)+","+positions[p][1].toFixed(2) +"]<br/>";  
  258. }  
  259. document.getElementById('positions').innerHTML = positionString;  
  260.   
  261.   
  262. }  
  263. if(positions){  
  264.   
  265. for (var p =0;p < 71;p++) {      
  266. cc.beginPath();  
  267. cc.arc(positions[p][0].toFixed(2), positions[p][1].toFixed(2),2, 0, Math.PI * 2, true);  
  268. cc.closePath();  
  269. cc.fillStyle = '#00FF00';  
  270. cc.fill();  
  271. }  
  272.   
  273.   
  274. //cc.strokeStyle = 'red';  
  275.   
  276. //0-14 輪廓  
  277. //7 下吧,最下  
  278.   
  279. //2 最左邊  
  280. //12 最右邊  
  281.   
  282.   
  283. //15-22 眉毛  
  284.   
  285.   
  286. //23-27 左眼睛五個點  
  287. //27 左眼中間  
  288. //63-66 左眼四個點  
  289.   
  290. //28-32 右眼睛五個點  
  291. //67-70 右眼四個點  
  292.   
  293.   
  294. //33-43 鼻子  
  295. //62 鼻中間  
  296.   
  297.   
  298. //44-61 嘴巴  
  299. //47 嘴巴上  
  300. //53 嘴巴下  
  301.   
  302. ///////////////////////////////////////////////////////////////////////////////////////////////  
  303.   
  304. //左眼中間  
  305. for (var p =27;p <=27;p++) {      
  306. cc.beginPath();  
  307. cc.arc(positions[p][0].toFixed(2), positions[p][1].toFixed(2), 2, 0, Math.PI * 2, true);  
  308. cc.closePath();  
  309. cc.fillStyle = 'red';  
  310. cc.fill();  
  311. }  
  312.   
  313. //鼻子中間  
  314. for (var p =62;p <=62;p++) {      
  315. cc.beginPath();  
  316. cc.arc(positions[p][0].toFixed(2), positions[p][1].toFixed(2), 2, 0, Math.PI * 2, true);  
  317. cc.closePath();  
  318. cc.fillStyle = 'red';  
  319. cc.fill();  
  320. }  
  321. //嘴巴上  
  322. for (var p =57;p <=57;p++) {      
  323. cc.beginPath();  
  324. cc.arc(positions[p][0].toFixed(2), positions[p][1].toFixed(2), 2, 0, Math.PI * 2, true);  
  325. cc.closePath();  
  326. cc.fillStyle = 'red';  
  327. cc.fill();  
  328. }  
  329. //嘴巴下  
  330. for (var p =60;p <=60;p++) {      
  331. cc.beginPath();  
  332. cc.arc(positions[p][0].toFixed(2), positions[p][1].toFixed(2), 2, 0, Math.PI * 2, true);  
  333. cc.closePath();  
  334. cc.fillStyle = 'red';  
  335. cc.fill();  
  336. }  
  337. //////////////////////////////////////  
  338. //head  
  339. if(is_alive_head==true){  
  340. if(last_time==0 || (new Date().getTime()-last_time>500 && new Date().getTime()-last_time<10000 ) ){  
  341. var xdiff_left = positions[62][0] - positions[2][0] ;  
  342. var ydiff_left = positions[62][1] - positions[2][1] ;  
  343. var dis_left = Math.pow((xdiff_left * xdiff_left + ydiff_left * ydiff_left), 0.5);  
  344.   
  345. var xdiff_right = positions[12][0] - positions[62][0] ;  
  346. var ydiff_right = positions[12][1] - positions[62][1] ;  
  347. var dis_right = Math.pow((xdiff_right * xdiff_right + ydiff_right * ydiff_right), 0.5);  
  348.   
  349. var xdiff_side = positions[12][0] - positions[2][0] ;  
  350. var ydiff_side = positions[12][1] - positions[2][1] ;  
  351. var dis_side = Math.pow((xdiff_side * xdiff_side + ydiff_side * ydiff_side), 0.5);  
  352.   
  353.   
  354. var dis_left_right = dis_left - dis_right;  
  355. document.getElementById('result').innerHTML = dis_left_right;  
  356.   
  357.   
  358. if(last_dis_left_right>0 && dis_left_right > dis_side/3){  
  359.   
  360. document.getElementById('result').innerHTML = "通過";  
  361.   
  362. is_head_ok=true;  
  363. is_alive_head=false;  
  364.   
  365. }  
  366.   
  367.   
  368.   
  369. last_dis_left_right=dis_left_right;   
  370. last_time = new Date().getTime();  
  371.   
  372. }  
  373. }  
  374.   
  375. /////////////////////////////////////  
  376. //mouse   
  377. if(is_alive_mouse==true){  
  378. if(last_time==0 || (new Date().getTime()-last_time>500 && new Date().getTime()-last_time<10000 ) ){  
  379.   
  380. //研究和鼻子距離  
  381. var xdiff = positions[62][0] - positions[27][0] ;  
  382. var ydiff = positions[62][1] - positions[27][1] ;   
  383. var dis_eye_norse = Math.pow((xdiff * xdiff + ydiff * ydiff), 0.5);  
  384.   
  385. //上嘴唇 和下嘴唇距離  
  386. var xdiff_mouse = positions[53][0] - positions[47][0] ;  
  387. var ydiff_mouse = positions[53][1] - positions[47][1] ;   
  388. var dis_mouse = Math.pow((xdiff_mouse * xdiff_mouse + ydiff_mouse * ydiff_mouse), 0.5);  
  389.   
  390. //上次的眼鼻距離和這次的眼鼻距離差  
  391. var dn= Math.abs(dis_eye_norse-last_dis_eye_norse);  
  392.   
  393. //上次的嘴距離和本次的嘴距離差  
  394. var dm=Math.abs(dis_mouse - last_dis_mouse);  
  395.   
  396.   
  397.   
  398.   
  399. //鼻子的位置確保變化不大  
  400. if(last_nose_left>0 && last_nose_top>0  
  401. && Math.abs(positions[62][0]-last_nose_left)<5  
  402. && Math.abs(positions[62][1]-last_nose_top)<5  
  403. ){  
  404.   
  405. document.getElementById('msg').innerHTML = dn;  
  406.   
  407. if(last_dis_eye_norse>0 && dn < dis_eye_norse*1/50){   
  408.   
  409. if(last_dis_mouse>0 && dm > dis_mouse/10){  
  410.   
  411. document.getElementById('result').innerHTML = "通過";  
  412.   
  413. is_alive_mouse=false;  
  414. is_mouse_ok=true;  
  415. }  
  416.   
  417. }  
  418. }  
  419.   
  420.   
  421. last_dis_mouse = dis_mouse;  
  422. last_dis_eye_norse = dis_eye_norse;  
  423. last_time = new Date().getTime();   
  424.   
  425. last_nose_left = positions[62][0];  
  426. last_nose_top = positions[62][1];  
  427.   
  428. }  
  429. }  
  430.   
  431. /////////////////////////////////////  
  432. //eye   
  433. if(is_alive_eye==true){  
  434. if(last_time==0 || (new Date().getTime()-last_time>10 ) ){  
  435.   
  436.   
  437. var xdiff1 = positions[62][0] - positions[27][0] ;  
  438. var ydiff1 = positions[62][1] - positions[27][1] ;   
  439. var dis_eye_norse1 = Math.pow((xdiff1 * xdiff1 + ydiff1 * ydiff1), 0.5);  
  440.   
  441. var xdiff2 = positions[62][0] - positions[32][0] ;  
  442. var ydiff2 = positions[62][1] - positions[32][1] ;   
  443. var dis_eye_norse2 = Math.pow((xdiff2 * xdiff2 + ydiff2 * ydiff2), 0.5);  
  444.   
  445. var dis_eye_norse = (dis_eye_norse1 + dis_eye_norse2);  
  446.   
  447.   
  448.   
  449. if(last_nose_left>0 && last_nose_top>0  
  450. && Math.abs(positions[62][0]-last_nose_left)<0.5  
  451. && Math.abs(positions[62][1]-last_nose_top)<0.5  
  452. ){  
  453. document.getElementById('msg').innerHTML = Math.abs(dis_eye_norse - last_dis_eye_norse) - dis_eye_norse*1/20;  
  454.   
  455. if(last_dis_eye_norse>0 && (Math.abs(dis_eye_norse - last_dis_eye_norse) > dis_eye_norse*1/20 ) ){  
  456.   
  457. document.getElementById('result').innerHTML = "通過";  
  458.   
  459. is_alive_eye=false;  
  460. is_eye_ok=true;  
  461.   
  462. }  
  463. }  
  464.   
  465.   
  466. last_nose_left = positions[62][0];  
  467. last_nose_top = positions[62][1];  
  468.   
  469. last_dis_eye_norse = dis_eye_norse;  
  470. last_time = new Date().getTime();   
  471.   
  472. }  
  473.   
  474.   
  475. }  
  476.   
  477.   
  478. }  
  479.   
  480. requestAnimationFrame(drawLoop);  
  481.   
  482. }  
  483.   
  484. drawLoop();  
  485.   
  486. }  
  487.   
  488.    
  489.   
  490. </script>  
  491. </html>  

以上就是小編為大家帶來的基于HTML5 的人臉識別活體認證的實現方法全部內容了,希望大家多多支持腳本之家~

原文地址:http://www.cnblogs.com/lilies/archive/2016/06/21/5604212.html

標簽:撫州 煙臺 內蒙古 邯鄲 安慶 晉中 牡丹江 玉溪

巨人網絡通訊聲明:本文標題《基于HTML5 的人臉識別活體認證的實現方法》,本文關鍵詞  基于,HTML5,的,人臉,識別,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《基于HTML5 的人臉識別活體認證的實現方法》相關的同類信息!
  • 本頁收集關于基于HTML5 的人臉識別活體認證的實現方法的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    亚洲区免费视频| 欧美v国产在线一区二区三区| 国产午夜精品在线观看| 奇米色777欧美一区二区| 年下总裁被打光屁股sp | 大胸美女被爆操| 日韩美女天天操| 日韩av中文字幕一区二区| 国产婷婷在线观看| 在线播放中文一区| 一区二区三区国产精品| 一卡二卡三卡四卡五卡| 欧美中文字幕一区二区三区| 自拍av一区二区三区| 91在线视频免费观看| 91福利资源站| 亚洲综合一区二区| 性农村xxxxx小树林| 4438亚洲最大| 日韩高清欧美激情| 国产麻豆剧传媒精品国产av| 欧美一区二区三区在线观看 | 一区二区三区在线视频观看 | 亚洲综合一二三区| 亚洲区 欧美区| 欧美老女人在线| 日韩精品三区四区| 亚洲国产日韩一区无码精品久久久| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 国产亚洲污的网站| 国产精品2024| a级片在线观看免费| 亚洲美女屁股眼交3| 亚洲国产高清在线观看视频| 丁香婷婷综合色啪| 色婷婷精品久久二区二区蜜臀av| 亚洲日本欧美天堂| 日韩免费高清一区二区| 精品美女在线播放| 成人在线综合网站| 欧美三级日本三级少妇99| 天天综合日日夜夜精品| 阿v天堂2014| 国产精品传媒在线| 韩国一区二区三区四区| 日韩欧美国产一区二区在线播放| 国产又粗又猛又爽又黄91精品| 亚洲区一区二区三| 亚洲一级在线观看| 免费毛片视频网站| ...中文天堂在线一区| av不卡中文字幕| 久久色在线视频| gogogo免费视频观看亚洲一| 欧美精品久久99| 黄色日韩网站视频| 欧美午夜一区二区三区| 美女久久久精品| 男人操女人的视频网站| 午夜视频在线观看一区二区三区| 韩国女同性做爰三级| 亚洲欧美日韩在线不卡| 真人bbbbbbbbb毛片| 国产精品日日摸夜夜摸av| 国产成人精品一区二区在线小狼| 精品国产伦一区二区三区免费 | 欧美精品一区二区三区蜜桃| 成人精品免费看| 日韩欧美亚洲国产精品字幕久久久 | eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 在线观看区一区二| 精品在线观看视频| 欧美色成人综合| 国产一区二区导航在线播放| 91成人在线观看喷潮| 九色|91porny| 欧美无砖专区一中文字| 狠狠色丁香久久婷婷综| 色综合天天综合在线视频| 日韩成人av影视| 91极品美女在线| 国产在线视频一区二区三区| 欧美亚洲日本国产| 国产中文字幕一区| 制服丝袜亚洲网站| av一区二区三区在线| 精品国产99国产精品| 极品人妻一区二区| 日本一区二区三区在线不卡| 一级国产黄色片| 亚洲精选视频免费看| 精品丰满少妇一区二区三区| 天天av天天翘天天综合网色鬼国产| 2025国产精品自拍| 国内久久婷婷综合| 日韩区在线观看| 色欲欲www成人网站| 18成人在线观看| 成人午夜免费影院| 麻豆精品一区二区三区| 欧美理论在线播放| 91原创在线视频| 国产精品视频免费看| 蜜臀久久99精品久久久久久| 偷拍自拍另类欧美| 欧美午夜片在线观看| 国产ts人妖一区二区| 久久一日本道色综合| 日本黄色动态图| 亚洲综合精品久久| 久久久久久久久毛片| 国产99精品视频| 国产婷婷色一区二区三区四区| 大又大又粗又硬又爽少妇毛片| 亚洲一区国产视频| 欧洲中文字幕精品| 91视频精品在这里| 亚洲欧洲日产国码二区| 黄色av片三级三级三级免费看| 九九精品一区二区| 欧美成人bangbros| 国产精品815.cc红桃| 免费成人美女在线观看.| 欧美一区二区美女| 熟妇高潮一区二区| 亚洲成人在线网站| 欧美日韩精品免费观看视频| 成人国产精品免费观看动漫| 国产精品欧美一级免费| 欧美激情精品久久久久久免费 | 国产精品美日韩| 激情高潮到大叫狂喷水| 国产一区二区三区在线看麻豆| 久久久亚洲国产美女国产盗摄 | 免费的av网站| 日韩国产一二三区| 欧美va亚洲va香蕉在线| 中文字幕网站在线观看| 久久99久久久久久久久久久| 欧美精品一区二区三区久久久| 日韩人妻无码一区二区三区| 九九久久精品视频| 日本一区二区三区视频视频| 神马久久精品综合| www.欧美日韩国产在线| 一区二区三区中文字幕精品精品 | 视频在线观看一区二区三区| 欧美一级二级在线观看| 亚洲1区2区3区4区| 欧美mv和日韩mv的网站| 成人小视频免费看| 成人精品免费网站| 亚洲制服丝袜av| 欧美一二三区在线观看| 亚洲欧洲久久久| 国产黑丝在线一区二区三区| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 中日韩精品一区二区三区| 久久97超碰色| 国产精品护士白丝一区av| 欧洲一区二区三区在线| 免费无码一区二区三区| 九九视频精品免费| 亚洲特黄一级片| 欧美精品一二三四| 久久国产柳州莫菁门| 国产91高潮流白浆在线麻豆| 一区二区三区四区在线| 日韩一区二区三区四区| 免费黄色国产视频| 能看毛片的网站| 麻豆免费精品视频| 中文字幕一区二区不卡| 在线不卡免费欧美| 黄大色黄女片18免费| 91浏览器在线视频| 毛片不卡一区二区| 日韩毛片一二三区| 欧美日韩亚洲综合一区二区三区| 丝袜美腿中文字幕| 成人aa视频在线观看| 日韩精品福利网| 国产欧美一区二区三区鸳鸯浴 | 国产精品成人一区二区艾草 | 国产馆精品极品| 亚洲国产一区视频| 久久久国际精品| 欧美日韩日日夜夜| 亚洲人成人无码网www国产 | 一区二区三区在线观看网站| 日韩欧美另类在线| 一本色道久久综合亚洲aⅴ蜜桃| 国产中文字幕一区二区| 成人黄色国产精品网站大全在线免费观看| 亚洲国产精品影院| 日本一区二区动态图| 911精品国产一区二区在线| 亚洲熟女少妇一区二区| 国产日韩视频一区| 成人激情开心网|