精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

HarmonyOS實(shí)現(xiàn)簡(jiǎn)單的圖像識(shí)別

系統(tǒng) OpenHarmony
本案例基于最近鄰分類器這一分類器算法模型,在HarmonyOS上實(shí)現(xiàn)了簡(jiǎn)單的圖像識(shí)別。事實(shí)上,最近鄰分類器用在圖像識(shí)別上的靈敏度并不高(錯(cuò)誤率還是有點(diǎn)大的),而筆者編寫這個(gè)案例的初衷,是為了能體驗(yàn)最近鄰分類器的思維,以及探索如何在HarmonyOS中處理圖像數(shù)據(jù)。

源碼下載地址

https://gitee.com/Shadows1946397262/brunhild_-harmony-os/tree/master/Brunhild_HarmonyOS/North_Samples/Image_Recognition

開發(fā)環(huán)境要求

  • DevEco Studio版本:DevEco Studio 3.1 Release
  • HarmonyOS SDK版本:API version 9

工程要求

  • API9
  • Stage模型

圖片


正文

最近鄰分類器簡(jiǎn)介

最近鄰分類器是模式識(shí)別領(lǐng)域中的一個(gè)較為簡(jiǎn)單的分類器模型,而分類器指的是用于解決分類問題的機(jī)器學(xué)習(xí)算法。此分類器基于一個(gè)簡(jiǎn)單的假設(shè),即如果一個(gè)樣本在特征空間中的最近鄰屬于某個(gè)類別,則該樣本也屬于該類別。由此可見,最近鄰分類器的基本邏輯是,讓樣本A模擬分類器中已經(jīng)訓(xùn)練過的某個(gè)數(shù)據(jù)B(即將A視為B),當(dāng)B屬于某個(gè)類別λ時(shí),A也屬于類別λ。

下面是關(guān)于最近鄰分類器的一個(gè)簡(jiǎn)單例子:

假設(shè)在傳送帶上有兩種魚,分別是鱸魚(seabass)和鮭魚(salmon)。現(xiàn)在我們需要用光學(xué)傳感器對(duì)傳送帶上的魚按品種進(jìn)行分類,因此需要設(shè)計(jì)一個(gè)分類器,不妨設(shè)計(jì)一個(gè)最近鄰分類器。假如我們只考慮魚的兩個(gè)特征——寬度和魚身的亮度,現(xiàn)在我們選取十條鱸魚和十條鮭魚進(jìn)行特征提取,并建立一個(gè)平面直角坐標(biāo)系(y軸用于表示寬度特征的數(shù)值,x軸用于表示亮度特征的數(shù)值,這樣就構(gòu)成了一個(gè)二維特征空間),再將每條魚的由其寬度值和亮度值確定的坐標(biāo)在圖中顯示出來。

圖中,紅色點(diǎn)代表鮭魚樣本的特征向量,藍(lán)色點(diǎn)代表鱸魚樣本的特征向量,它們都屬于被訓(xùn)練的數(shù)據(jù)。當(dāng)檢測(cè)設(shè)備獲取了某條品種未知的魚的亮度特征和寬度特征時(shí),最近鄰分類器所要做的是:先將此品種未知的魚的亮度值和寬度值表示成特征空間上的向量P,然后計(jì)算向量P與每個(gè)已訓(xùn)練樣本向量的距離。其中,距離采用歐式范數(shù),在二維空間中計(jì)算公式為:

圖片

由于先前已訓(xùn)練了20項(xiàng)數(shù)據(jù),所以我們可以獲取20項(xiàng)距離數(shù)據(jù),將它們表示為d1, d2, ... ,d20。接著,分類器通過逐項(xiàng)比較獲取最小距離di(i∈[1,20]∩N),這意味著第i個(gè)已訓(xùn)練樣本是未知品種的魚的最近鄰。因此,當(dāng)?shù)趇個(gè)已訓(xùn)練樣本屬于鱸魚品種時(shí),上述品種未知的魚將被分類為鱸魚,否則分類為鮭魚。

基于最近鄰分類器的圖像識(shí)別算法

首先需要明確的是,本案例的圖像識(shí)別分類器所分類的對(duì)象是灰度圖。圖像識(shí)別的最近鄰分類器與前面提到的例子十分類似,只不過在圖像識(shí)別中,樣本的每個(gè)像素點(diǎn)的灰度值是一個(gè)特征維。假設(shè)分類器所處理的圖像規(guī)模是100px乘100px,那么對(duì)應(yīng)的特征空間就是10000維的高維空間,而每個(gè)圖像樣本經(jīng)特征提取后都可以表示成10000維空間的一個(gè)向量。雖然特征空間的維度升高了不少,但分類算法在本質(zhì)上沒有差別。同先前的例子一樣,圖片分類的依據(jù)是被測(cè)樣本的最近鄰,所以我們需要計(jì)算被測(cè)樣本對(duì)應(yīng)在高維空間中的向量與其他已訓(xùn)練樣本的向量的距離,這里的距離仍采用歐式范數(shù)。

圖片

找出被測(cè)樣本的最近鄰后,我們便可以憑借此最近鄰進(jìn)行圖片分類。

代碼結(jié)構(gòu)

─entry/src/main
   ├─ module.json5
   ├─ resources
   │  ├─ zh_CN
   │  ├─ rawfile
   │  │  ├─ p1.png
   │  │  ├─ p2.png
   │  │  ├─ p3.png
   │  │  ├─ p4.png
   │  │  ├─ p5.png
   │  │  ├─ p6.png
   │  │  ├─ s1.png
   │  │  └─ s2.png
   │  ├─ en_US
   │  └─ base
   └─ ets
      ├─ XL_Modules
      │  └─ XL_Image_NNC.ts
      ├─ pages
      │  └─ Index.ets
      └─ entryability
         └─ EntryAbility.ts

圖片解碼流程

圖片解碼指將所支持格式的存檔圖片解碼成統(tǒng)一的PixelMap,以便在應(yīng)用或系統(tǒng)中進(jìn)行圖片顯示或圖片處理。

在本案例中,不論是用于訓(xùn)練分類器的圖片還是待檢測(cè)的圖片,都需要提前放入Demo

的rawfile目錄下的。如果要獲取某個(gè)圖像資源,我們只需要知道此圖像的名稱(字符串?dāng)?shù)據(jù)),然后通過資源管理者模塊resourceManager即可取得。如下給出以獲取rawfile目錄下名為'p1.png',大小為100px乘100px的圖片資源為例,需要編寫的相關(guān)操作語句。

獲取resourceManager:

let context = getContext(this)
const resourceMgr = context.resourceManager

獲取rawfile文件夾下p1.png的ArrayBuffer:

let Data = await resourceMgr.getRawFileContent('test.jpg')
let buffer = Data.buffer

創(chuàng)建ImageSource實(shí)例:

const imageSource = image.createImageSource(buffer)

創(chuàng)建PixelMap實(shí)例:

const pixelMap = await imageSource.createPixelMap();

因?yàn)槲覀冃枰鰣D像處理,所以還需要?jiǎng)?chuàng)建一個(gè)ArrayBuffer實(shí)例(buffer對(duì)象),并讀取PixelMap實(shí)例的數(shù)據(jù)至buffer中。這樣以后,buffer就是一個(gè)儲(chǔ)存了p1.png圖像數(shù)據(jù)的BGRA_8888格式的數(shù)組(也可以稱之為向量)了。

let dim = 100*100*4   //維度
let buffer = new ArrayBuffer(dim)
await pixelMap.readPixelsToBuffer(buffer)
.catch(err => {
         console.error(`err: +${err}`)
})

由于buffer是BGRA_8888格式的數(shù)組,所以buffer中第i,i+1,i+2,  i+3(i∈[0,dim/4-1])分別代表某個(gè)像素點(diǎn)藍(lán)色分量(B),綠色分量(G),紅色分量(R)和透明度分量(A)。因?yàn)楸景咐膱D像識(shí)別是在灰度圖的基礎(chǔ)上進(jìn)行的,所以我們還需要將BGRA_8888格式的數(shù)組轉(zhuǎn)化為灰度值數(shù)組。

RGB圖轉(zhuǎn)灰度圖并不難,只需要將每個(gè)像素點(diǎn)的藍(lán)色,綠色和紅色分量加權(quán)求和,就可以得到每個(gè)像素點(diǎn)的灰度值。其中,灰度值 = (紅色通道值 * 0.299) + (綠色通道值 * 0.587) + (藍(lán)色通道值 * 0.114)。這里的加權(quán)系數(shù)是根據(jù)人眼對(duì)不同顏色敏感度的差異來確定的。

關(guān)鍵代碼

XL_Image_NNC.ts

import image from '@ohos.multimedia.image';
import common from '@ohos.app.ability.common';

//所操作圖片的尺寸(圖片的寬高一致)
const OPERATION_SIZE = 100

/*
 * 函數(shù)名: Get_NumberType_Array_MinValue_Index
 * 描述: 返回輸入的number型Array中數(shù)值最小的元素所在索引
 */
function Get_NumberType_Array_MinValue_Index(arr:Array<number>):number{

  let location:number = 0

  for(var i = 0; i < arr.length; ++i){
    if(arr[i]<arr[location]){
      location = i
    }
  }

  return location

}

//最近鄰分類器能力接口
interface I_Nearest_Neighbor_Classifier{

  train(context:common.Context,Train_Data:Array<string>)

  identify(test_data:string)

}

/*
 * 類名: XL_Image_NNC
 * 描述: 基于最近鄰分類器的圖像識(shí)別模塊
 */
class XL_Image_NNC implements I_Nearest_Neighbor_Classifier{

  //日志標(biāo)簽
  private TAG:string = '------[XL_Image_NNC] '

  //BGRA_8888圖對(duì)應(yīng)向量的規(guī)模
  private dim_rgb:number = 4*(OPERATION_SIZE**2)

  //灰度圖對(duì)應(yīng)向量的規(guī)模
  private dim_gray:number = OPERATION_SIZE**2

  //RGB圖向量轉(zhuǎn)化為灰度圖向量時(shí), 三原色(red green blue)通道值各自占灰度值的權(quán)重, 并且滿足R_Weight + G_Weight + B_Weight = 1
  private R_Weight:number = 0.299
  private G_Weight:number = 0.587
  private B_Weight:number = 0.114

  //已加入的圖像向量的集合(BGRA_8888)
  private Trained_Data_RGB:Array<Uint8Array> = []

  //已加入的圖像向量的集合(灰度圖)
  private Trained_Data_Gray:Array<Uint8Array> = []

  //存儲(chǔ)距離(歐式范數(shù))的數(shù)組
  private Distance_Array:Array<number> = []

  //儲(chǔ)存資源管理模塊的變量
  private resourceMgr = null

  /*
   * 方法名: train
   * 描述: 為分類器填充數(shù)據(jù), 使得分類器獲取監(jiān)督模式識(shí)別的功能
   * 參數(shù): context: UIAbility的上下文對(duì)象  Train_Data: 待訓(xùn)練的圖片集(圖片需要提前儲(chǔ)存在rawfile目錄下)
   */
  public async train(context:common.Context,Train_Data:Array<string>) {

    //通過context獲取ResourceManager(資源管理模塊)
    this.resourceMgr = context.resourceManager

    //遍歷和處理待輸入的圖片數(shù)據(jù)
    for (var item of Train_Data) {

      //通過resourceMgr的getRawFileContent方法(填入圖片的文件名字符串),獲取rawfile目錄下某個(gè)圖片所資源對(duì)應(yīng)的UintArray
      let rawData = await this.resourceMgr.getRawFileContent(item)

      //通過先前獲取的UintArray創(chuàng)建ImageSource實(shí)例
      let imageSource = image.createImageSource(rawData.buffer)

      //通過ImageSource實(shí)例創(chuàng)建像素表
      let pixelMap = await imageSource.createPixelMap()

      //將像素表讀取到新建的ArrayBuffer變量中
      let buffer = new ArrayBuffer(this.dim_rgb)
      await pixelMap.readPixelsToBuffer(buffer)
        .catch(err => {
          console.error(this.TAG+`err: +${err}`)
        })

      //最后將ArrayBuffer攜帶的RGB型圖像向量存入Trained_Data_RGB(向量集合)中
      this.Trained_Data_RGB.push(new Uint8Array(buffer))

    }

    //將獲取的RGB型圖像向量集合轉(zhuǎn)化為灰度型圖像向量集合
    for(var element of this.Trained_Data_RGB){

      let GrayScaleVector = new Uint8Array(this.dim_gray)
      let index:number = 0

      //遍歷RGB型圖像向量的元素
      for(var i = 0; i < element.length; i++){
        if((i+1)%4 == 0){

          //獲取像素點(diǎn)的R,G,B通道值, 將他們加權(quán)求和得到灰度值
          var grayScale = this.R_Weight*element[i-3]+this.G_Weight*element[i-2]+this.B_Weight*element[i-1]

          //存儲(chǔ)
          GrayScaleVector[index++] = grayScale
        }
      }

      //最后將GrayScaleVector攜帶的灰度型圖像向量存入Trained_Data_Gray(向量集合)中
      this.Trained_Data_Gray.push(GrayScaleVector)

    }


  }

  /*
   * 方法名: identify
   * 描述: 基于已獲取的數(shù)據(jù),完成監(jiān)督模式識(shí)別,返回輸入樣本的最近鄰在Trained_Data_Gray中的索引
   * 參數(shù): test_data: 待識(shí)別的圖片(圖片需要儲(chǔ)存在rawfile目錄下)
   */
  public async identify(test_data:string):Promise<number>{

    //排除異常情況
    if(this.resourceMgr == null){
      console.error(this.TAG+'Please train the image data before identifying')
      return -1
    }

    //獲取rawfile目錄下某個(gè)圖片所對(duì)應(yīng)的UintArray
    let rawData = await this.resourceMgr.getRawFileContent(test_data)

    //通過先前獲取的UintArray創(chuàng)建ImageSource實(shí)例
    let imageSource = image.createImageSource(rawData.buffer)

    //通過ImageSource實(shí)例創(chuàng)建像素表
    let pixelMap = await imageSource.createPixelMap()

    //將像素表讀取到新建的buffer變量中
    let buffer = new ArrayBuffer(this.dim_rgb)
    await pixelMap.readPixelsToBuffer(buffer)
      .catch(err => {
        console.error(this.TAG+`err: +${err}`)
      })

    let Sample_RGB = new Uint8Array(buffer)

    let Sample_Gray = new Uint8Array(this.dim_gray)

    let index:number = 0

    //將RGB型的圖像向量轉(zhuǎn)化為灰度型的圖像向量
    for(var i = 0; i < Sample_RGB.length; i++){
      if((i+1)%4 == 0){
        var grayScale = this.R_Weight*Sample_RGB[i-3]+this.G_Weight*Sample_RGB[i-2]+this.B_Weight*Sample_RGB[i-1]
        Sample_Gray[index++] = grayScale
      }
    }

    //賦初值
    this.Distance_Array = []

    //計(jì)算待檢測(cè)圖像向量與每項(xiàng)已訓(xùn)練圖片向量在高維空間的的距離(距離采用歐式范數(shù)), 即(Σ(A[i] - B[i]))^0.5, i ∈ [0, dim_gray) ∩ N
    for(var item of this.Trained_Data_Gray){

      var distance:number = 0

      //計(jì)算dim_gray維向量空間上樣本與已訓(xùn)練數(shù)據(jù)的距離(歐式范數(shù))
      for(var i = 0; i < this.dim_gray; i++){
        distance += (Sample_Gray[i]-item[i])**2
      }
      distance = distance**0.5

      this.Distance_Array.push(distance)
      console.info(this.TAG+'distance: '+distance)

    }

    //獲取Distance_Array中最小元素所在索引并輸出, 此索引即為樣本的最近鄰在Trained_Data_Gray中的索引
    return Get_NumberType_Array_MinValue_Index(this.Distance_Array)

  }

}

//導(dǎo)出本模塊
export default new XL_Image_NNC()

同往期一樣,筆者青睞于將新開發(fā)的功能集成到一個(gè)ts文件里并導(dǎo)出,以方便管理與維護(hù)。在本模塊中,功能被集成在類XL_Image_NNC中,其中,train方法用于為分類器訓(xùn)練數(shù)據(jù)(雖然不涉及迭代的過程,姑且將其稱為"訓(xùn)練"吧),identify方法則是基于已訓(xùn)練的數(shù)據(jù)進(jìn)行圖像分類。

責(zé)任編輯:姜華 來源: 鴻蒙開發(fā)者社區(qū)
相關(guān)推薦

2022-10-20 09:33:35

2023-11-24 09:26:29

Java圖像

2022-09-09 14:42:17

應(yīng)用開發(fā)ETS

2023-09-25 10:13:59

Java識(shí)別

2016-12-01 14:23:32

iosandroid

2021-04-09 20:49:44

PythonOCR圖像

2022-10-11 23:35:28

神經(jīng)網(wǎng)絡(luò)VGGNetAlexNet

2023-11-30 09:55:27

鴻蒙鄰分類器

2025-01-11 23:14:52

2022-10-19 07:42:41

圖像識(shí)別神經(jīng)網(wǎng)絡(luò)

2025-03-25 08:30:00

OpenCV計(jì)算機(jī)視覺圖像識(shí)別

2018-04-24 10:45:00

Python人工智能圖像識(shí)別

2016-05-11 10:06:05

谷歌圖像識(shí)別web開發(fā)

2017-11-06 16:50:38

人工智能圖像識(shí)別數(shù)據(jù)邏輯

2015-12-03 16:01:18

Google人像識(shí)別API

2014-01-14 17:43:37

NEC圖像識(shí)別

2024-06-07 11:24:20

2017-09-08 13:30:32

深度學(xué)習(xí)圖像識(shí)別卷積神經(jīng)網(wǎng)絡(luò)

2024-11-11 07:00:00

Python圖像識(shí)別

2021-06-24 13:15:35

開源技術(shù) 圖像識(shí)別
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国内精品视频在线观看| 色8久久影院午夜场| av电影天堂一区二区在线观看| 97欧美精品一区二区三区| xxxx日本免费| 国产美女精品视频免费播放软件| 亚洲大型综合色站| 天堂资源在线亚洲资源| 性一交一乱一色一视频麻豆| 国产精品日本欧美一区二区三区| 一区二区在线免费视频| 一区二区三区四区影院| 韩国成人在线| 午夜av电影一区| 亚洲一区三区电影在线观看| 黄色av免费观看| 久久99精品国产.久久久久久| 欧美激情一区二区三区久久久 | 极品一区美女高清| 欧美日韩视频在线一区二区| 妺妺窝人体色www看人体| 极品白浆推特女神在线观看 | 日韩视频久久| 久久福利视频导航| 国产精品免费无码| 精品无人区一区二区| 91精品国产入口在线| 黄色一级大片在线观看| av电影在线免费| 国产女人水真多18毛片18精品视频| 国产精品区一区| 国产免费黄色片| 久久aⅴ国产欧美74aaa| 国产成人福利网站| 国产区一区二区三| 亚洲三级视频| 色综合五月天导航| 国产十六处破外女视频| 欧美aaaa视频| 中文字幕亚洲图片| 久久美女免费视频| 精品一区亚洲| 精品亚洲va在线va天堂资源站| 国产精品99久久久精品无码| 高清一区二区中文字幕| 欧美裸体bbwbbwbbw| 亚洲成人av免费看| 一区二区视频免费完整版观看| 欧美性猛交xxxx富婆| 97在线免费视频观看| av在线免费观看网址| 国产精品成人网| 中文字幕一区二区三区有限公司 | 欧美在线 | 亚洲| 粉嫩在线一区二区三区视频| 97se亚洲综合在线| www.av网站| 国产高清无密码一区二区三区| 91久久精品美女高潮| 99久久久国产精品无码网爆| 国产真实乱子伦精品视频| 成人字幕网zmw| 精品久久久久久亚洲综合网站| 国产一区二区久久| 亚洲www视频| 国产小视频免费观看| 成人少妇影院yyyy| 欧美黄色直播| 裸体xxxx视频在线| 国产精品久久久久久亚洲毛片 | 欧美理论电影在线| 中文字幕乱码在线人视频| 亚洲大奶少妇| 日韩精品亚洲视频| 高清国产在线观看| 天天色天天射综合网| 久久99精品久久久久久噜噜| 国产精品16p| 三级欧美韩日大片在线看| 国产精品入口免费视频一| 91中文字幕在线播放| 国产精品一级二级三级| 精品乱码一区| av电影在线观看| 亚洲人123区| 国产av天堂无码一区二区三区| 亚洲综合电影| 555www色欧美视频| 国产精品一区二区人妻喷水| 欧美日韩一区二区综合| 欧美夫妻性生活视频| 三级视频在线观看| 国产尤物一区二区| 免费久久久一本精品久久区| 免费黄色网页在线观看| 午夜精品123| 天堂网在线免费观看| 国产色噜噜噜91在线精品| 国产亚洲精品一区二区| 久久免费视频6| 日产国产欧美视频一区精品| 99在线首页视频| av午夜在线| 午夜激情一区二区| 亚洲第一区第二区第三区| 亚洲制服欧美另类| 欧美成人黑人xx视频免费观看| 天天干天天干天天| 国产成人精品三级| 亚洲成人午夜在线| 亚洲色图官网| 日韩欧美自拍偷拍| 国产免费嫩草影院| 午夜在线精品| 国产精品一区二区欧美黑人喷潮水| 国产成人天天5g影院在线观看| 亚洲一区av在线| 57pao国产成永久免费视频| 精品在线91| 97久久伊人激情网| 丰满熟女一区二区三区| 中文字幕一区二| 国产v亚洲v天堂无码久久久| 福利片在线一区二区| 久久不射热爱视频精品| 在线播放一级片| 国产欧美日本一区视频| 欧美亚洲精品一区二区| heyzo欧美激情| 久久国产精品久久久久久久久久| 黄色av一区二区| 久久久精品tv| 99久久久无码国产精品6| 久久夜色精品国产噜噜av小说| 欧美裸体男粗大视频在线观看| 在线免费观看一区二区| 国产亚洲精品7777| 少妇高清精品毛片在线视频| 日韩成人av在线资源| 羞羞色国产精品| 色婷婷av一区二区三| 亚洲自拍偷拍欧美| 国产人妻精品午夜福利免费| 欧美一区成人| 91嫩草免费看| 麻豆福利在线观看| 欧美成人欧美edvon| 欧美人妻一区二区| 粉嫩在线一区二区三区视频| 日韩国产小视频| 成人av资源网址| 韩国福利视频一区| 香蕉久久一区二区三区| 精品动漫一区二区| 亚洲av无码一区二区三区人 | 午夜福利视频一区二区| 午夜免费久久看| 粉嫩av懂色av蜜臀av分享| 日韩一级欧洲| 欧美日韩一区二区视频在线观看 | 国产日韩精品在线播放| 在线看的av网站| 制服视频三区第一页精品| tube国产麻豆| 成人一级片在线观看| 免费 成 人 黄 色| 国产成人1区| 国产欧美欧洲在线观看| 国产丝袜在线| 亚洲国产成人精品一区二区| 欧美特黄aaaaaa| 国产欧美一区二区在线| 蜜臀一区二区三区精品免费视频 | 欧美一级视频免费在线观看| 欧美大片aaa| 在线播放亚洲一区| 久久丫精品久久丫| 91日韩一区二区三区| 999在线免费视频| 亚洲电影影音先锋| 激情欧美一区二区三区中文字幕| 校园春色亚洲色图| 久久中文字幕视频| 青青草视频免费在线观看| 精品视频在线免费观看| 国产一级视频在线观看| 国产日韩亚洲欧美综合| 免费黄频在线观看| 99视频精品| 中文字幕中文字幕在线中心一区| 超碰成人免费| 国产剧情日韩欧美| 超碰在线视屏| 北条麻妃一区二区三区中文字幕| 免费观看毛片网站| 欧美日韩一级片网站| 日韩欧美激情视频| 国产精品国产自产拍高清av王其| 亚洲成a人片在线www| 日韩福利电影在线| 欧美视频免费看欧美视频| 成人情趣视频网站| 黄色小网站91| 亚洲**毛片| 国产精品一区二区久久久久| 超碰激情在线| 久久99热精品| 色的视频在线免费看| 亚洲精品一区二区三区不| 国产a级免费视频| 欧美性欧美巨大黑白大战| 国产成人无码精品亚洲| 国产精品伦理一区二区| 狠狠人妻久久久久久综合蜜桃| 国产乱码精品一区二区三区忘忧草| 激情内射人妻1区2区3区| 国内精品久久久久久久97牛牛| 伊人久久大香线蕉午夜av| 国产一区99| 久久99精品久久久久久三级| 午夜免费欧美电影| 91精品免费久久久久久久久| 美女福利一区二区三区| 97视频免费在线看| 日韩精品亚洲人成在线观看| 日韩最新在线视频| 在线免费看a| 国产午夜精品全部视频在线播放| 日韩一级中文字幕| 精品剧情v国产在线观看在线| 国产乱色精品成人免费视频| 欧美色老头old∨ideo| 自拍偷拍18p| 色噜噜狠狠成人中文综合| 欧美三级午夜理伦| 岛国视频午夜一区免费在线观看| 久久免费公开视频| 亚洲第一成人在线| 久久久无码一区二区三区| 亚洲综合色自拍一区| 日韩a级片在线观看| 自拍视频在线观看一区二区| 成人免费精品动漫网站| 亚洲视频一区二区免费在线观看| 国产精品久久久免费看| 中文字幕亚洲不卡| 久久av红桃一区二区禁漫| 国产精品久久久久久亚洲毛片| 亚洲最大成人综合网| 欧美极品美女视频| 五月天免费网站| 中文字幕在线视频一区| 日韩在线观看免| 亚洲黄色性网站| 精品少妇久久久久久888优播| 亚洲一级二级三级| 成人免费区一区二区三区| 欧美午夜激情在线| 亚洲大尺度在线观看| 欧美精品在线视频| 精品人妻av一区二区三区| 精品久久国产字幕高潮| 手机福利在线| 伊人久久大香线蕉av一区二区| 永久免费av在线| 欧美成在线视频| 麻豆视频在线观看免费网站黄| 热门国产精品亚洲第一区在线| 日韩欧美一区二区三区在线观看| 国产日韩精品一区二区| 日韩视频一二区| 开心色怡人综合网站| 日韩精品一区二区久久| 日本a级片在线播放| 一本色道久久综合亚洲精品高清| 无码人妻丰满熟妇区毛片| 另类调教123区| 美女搡bbb又爽又猛又黄www| 久久综合狠狠综合久久激情| 老司机精品免费视频| 亚洲图片一区二区| 波多野结衣视频在线看| 日韩欧美一区二区久久婷婷| 天堂а√在线8种子蜜桃视频| 亚洲一级一级97网| 日韩av官网| 国产99久久精品一区二区永久免费 | 自拍偷拍视频亚洲| 久久毛片高清国产| 国产又粗又硬又长又爽| 欧美日韩美女在线| 国产精品久久久久久久成人午夜 | 2021av在线| 久久久久亚洲精品国产| 成人免费一区| 国产一区二区视频在线免费观看| 日韩大片在线播放| 国产无限制自拍| 精品一区二区三区的国产在线播放| 久久久高清视频| 国产精品亲子乱子伦xxxx裸| 久久久香蕉视频| 这里是久久伊人| 免费在线黄色电影| 久久久久久成人| 成人乱码手机视频| 日本不卡久久| 亚洲乱码视频| 久久久国产精品久久久| 亚洲国产精品成人综合| 日本在线观看中文字幕| 制服.丝袜.亚洲.中文.综合| 东凛在线观看| 欧美在线亚洲在线| 国产精品99久久免费观看| 在线一区日本视频| 日本在线不卡视频一二三区| 日本黄色录像片| 一区二区三区精品在线观看| 亚洲视频在线免费播放| 日韩精品一二三四区| av资源中文在线| 97人人模人人爽人人少妇| 97精品97| 亚洲小视频网站| 国产精品美女久久久久久 | 在线午夜精品| 国产午夜在线一区二区三区| 亚洲欧美日韩久久| 国产精品欧美综合亚洲| 色先锋资源久久综合5566| 性感美女一区二区在线观看| 久久综合精品一区| 国产亚洲激情| 91玉足脚交白嫩脚丫| 亚洲风情在线资源站| 色婷婷av一区二区三区之红樱桃| 欧美极品美女电影一区| 中文字幕日韩高清在线| 久久亚洲a v| 风间由美性色一区二区三区 | 国产写真视频在线观看| 国产欧美va欧美va香蕉在线| 色综合狠狠操| aaa一级黄色片| 亚洲欧美日韩国产综合| 国产精品美女一区| 欧美国产精品va在线观看| 最新国产精品精品视频| 你真棒插曲来救救我在线观看| 国产ts人妖一区二区| 日本a在线观看| 日韩久久精品电影| 久久精品女人天堂av免费观看| 日本一区二区三区在线视频 | 狠狠色狠狠色综合日日五| 亚洲av激情无码专区在线播放| 91高清免费在线观看| 久久av影视| 人人干人人干人人| 亚洲三级免费观看| www日本在线| 97精品欧美一区二区三区| 国产欧美亚洲精品a| 亚洲污视频在线观看| 亚洲黄色尤物视频| 天堂在线视频观看| 国产成人jvid在线播放| 国产精品国产一区| 日批免费观看视频| 黑人精品xxx一区一二区| 国产无套粉嫩白浆在线2022年| 国产日本欧美一区二区三区在线| 综合天天久久| 在线观看国产免费视频| 欧美熟乱第一页| 91蜜桃在线视频| 久久精品日产第一区二区三区乱码 | 欧美成人福利| 国产高清不卡无码视频| 久久这里只有精品6| 亚洲无码久久久久久久| 久久久久久免费精品| 国产毛片一区二区三区| 亚欧美在线观看| 亚洲 欧美综合在线网络| 99re热久久这里只有精品34| 99精品99久久久久久宅男| 久久精品二区三区| 国产极品国产极品| 亚洲欧美日韩天堂| 2020最新国产精品| 999精品网站| 亚洲午夜国产一区99re久久| 成人一区二区不卡免费| 官网99热精品| 久久精品99久久久| 国产精品免费av一区二区| www.日韩欧美| 精品美女久久|