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

基于自定義數據集的YOLOv8模型實戰

譯文 精選
人工智能
本文將通過一個完整的實戰案例來展示使用Python、命令行或Google Colab等方式在自定義數據集上訓練自己的計算機視覺模型。

譯者 | 朱先忠

審校 | 重樓

簡介

當前,Ultralytics公司研制的高級YOLOv8模型成為解決計算機視覺問題的最佳方法之一,同時該模型也最大限度地減少了有關開發過程遭遇的麻煩。YOLOv8是Ultralytics YOLO(You Only Look Once)系列模型的第8次也是最新一次迭代,與其他迭代一樣,它使用卷積神經網絡(CNN)來預測對象類別及其邊界框。YOLO系列對象探測器以準確和快速而聞名,并提供了一個基于PyTorch構建的平臺,從而簡化了人們從頭開始創建模型的大部分過程。

尤其重要的是,YOLOv8也是一個非常靈活的模型。它可以在各種平臺上使用你選擇的任何數據集進行訓練,預測模型可以基于許多數據源運行。本文將作為一個全面的教程,涵蓋訓練和運行YOLOv8模型的許多不同方法,并展示每種方法的優缺點,這些方法將根據你的硬件和數據集幫你選擇最合適的開發方案。

【注意】本文中創建上述示例數據集時使用的所有圖像均由作者本人拍攝。

開發環境搭建

要開始訓練我們的YOLOv8模型,第一步是決定我們想在什么樣的環境中訓練我們的模型(請記住,訓練和運行模型是單獨的任務)。

歸納來看,可供我們選擇的環境在很大程度上可以分為兩類:基于本地運行和基于云端方案運行。

通過基于本地的訓練,我們基本上是使用設備的物理硬件直接在我們的系統上運行訓練過程。在基于本地的訓練中,YOLOv8為我們提供了兩個選項:Python API和CLI。這兩種選擇的結果或速度沒有真正的區別,因為同樣的過程是在幕后進行的;唯一的區別在于訓練的設置和運行方式。

另一方面,基于云端的訓練允許你利用云服務器的硬件。通過使用互聯網,你可以連接到云運行時并執行代碼,就像在本地計算機上一樣,只是現在它在云硬件上運行。

到目前為止,最受歡迎的機器學習云平臺是谷歌Colab。它使用Jupyter筆記本格式,允許用戶創建可以編寫和運行代碼片段的“單元格”,并提供與Google Drive和Github的強大集成。

你決定使用哪種環境在很大程度上取決于你可用的硬件。如果你有一個配備高端NVIDIA GPU的強大系統,基于本地的訓練可能會對你很有效。如果你的本地機器的硬件不符合機器學習的配置建議,或者你只是想要比本地更多的計算能力,谷歌Colab可能是你更恰當的選擇。

谷歌Colab最大的好處之一是它免費提供了一些計算資源,但也有一個簡單的升級路徑,可以讓你利用更快的計算硬件。即使你已經有了一個強大的系統,如果谷歌Colab的高層計劃中提供的更快的GPU比你現有的硬件有顯著的性能提升,你也可以考慮使用谷歌Colab。使用免費計劃,你只能使用NVIDIA T4,其性能大致相當于RTX 2070。對于更高級別配置的計劃,L4(性能約為4090)和A100(性能約2 4090)是可用的。在比較GPU時,請記住VRAM的數量是機器學習性能的主要決定因素。

數據集

為了開始訓練模型,你需要大量數據來訓練它。對象檢測數據集通常由各種對象的圖像集合組成,此外還有一個圍繞對象的“邊界框”,指示其在圖像中的位置。

檢測到的對象周圍的邊界框示例

YOLOv8兼容的數據集具有特定的結構。它們主要分為有效文件夾、訓練文件夾和測試文件夾,分別用于模型的驗證、訓練和測試(驗證和測試之間的區別在于,在驗證過程中,結果用于調整模型以提高其準確性;而在測試過程中,結果僅用于提供模型真實世界準確性的衡量標準)。

在每個文件夾中,數據集進一步分為兩個文件夾:圖像(images)和標簽(labels)文件夾。這兩個文件夾的內容緊密相連。

顧名思義,images文件夾包含數據集的所有對象圖像。這些圖像通常具有方形縱橫比、低分辨率和小的文件尺寸。

labels文件夾包含邊界框在每個圖像中的位置和大小的數據,以及每個圖像表示的對象的類型(或類別)。例如:

這里的第一行數據代表圖像中存在的單個對象。在每一行中,第一個數字表示對象的類別,第二個和第三個數字表示邊界框中心的x和y坐標,第四個和第五個數字表示邊緣框的寬度和高度。

images和labels文件夾中的數據通過文件名鏈接在一起。images文件夾中的每個圖像在labels文件夾中都有一個具有相同文件名的相應文件;反之亦然。在數據集中,images和labels文件夾中總是有匹配的文件對,它們具有相同的文件名,但文件擴展名不同;.jpg用于圖像,.txt用于標簽。.jpg圖片中每個對象的邊界框數據包含在相應的.txt文件中。

YOLOv8兼容數據集的典型文件結構。來源:Ultralytics公司YOLO文檔

有幾種方法可以獲得與YOLOv8兼容的數據集來開始訓練模型。你可以創建自己的數據集,也可以使用互聯網上預先配置的數據集。在本教程中,我們將使用CVAT創建自己的數據集,并使用Kaggle查找預配置的數據集。

CVAT

CVAT(CVAT.ai)是一個注釋工具,它允許你通過手動方式為圖像和視頻添加標簽來創建自己的數據集。

創建帳戶并登錄后,開始注釋的過程很簡單。只需創建一個項目,給它一個合適的名稱,并根據需要為盡可能多的對象類型/類別添加標簽。

作者在cvat.ai.Video上創建新項目和標簽

創建一個新任務,并上傳你希望成為數據集一部分的所有圖像。點擊“Submit & Open”按鈕,項目下應創建一個新任務,其中包含一個作業。

在cvat.ai上創建新任務和作業

打開此作業將允許你啟動注釋過程。你可以使用矩形工具為數據集中的每個圖像創建邊界框和標簽。

使用cvat.ai上的矩形工具創建邊界框

在為所有圖像添加注釋后,返回任務并選擇“Actions(動作)”→“Export task dataset(導出任務數據集)”,然后選擇YOLOv8 Detection 1.0作為導出格式。下載任務數據集后,你會發現它只包含labels文件夾,而不包含images文件夾(除非你在導出時選擇了“Save images(保存圖像)”選項)。你必須手動創建images文件夾并將圖像移動到那里(你可能希望首先將圖像壓縮到較低的分辨率,例如640x640)。記住不要更改文件名,因為它們必須與labels文件夾中.txt文件的文件名匹配。你還需要決定如何在驗證、訓練和測試之間分配圖像(訓練是其中最重要的)。

作者從cvat.ai.Image導出的示例數據集

至此,你的數據集已完成并準備好使用了!

Kaggle

Kaggle(Kaggle.com)是最大的在線數據科學社區之一,也是探索數據集的最佳網站之一。你可以通過簡單地搜索他們的網站來嘗試找到你需要的數據集,除非你正在尋找非常具體的東西;否則,你很可能會找到意向的數據集。然而,Kaggle上的許多數據集不是YOLOv8兼容的格式和/或與計算機視覺無關;因此,你可能想在查詢中包含“YOLOv9”來優化你的搜索。

你可以通過數據集的Data Explorer(頁面右側)中的文件結構來判斷數據集是否與YOLOv8兼容。

Kaggle上兼容YOLOv8的數據集示例

如果數據集相對較小(幾MB)和/或你想在本地訓練,那么可以直接從Kaggle下載數據集。但是,如果你計劃在Google Colab上使用大型數據集進行訓練,最好從筆記本文件本身進行數據集檢索(更多信息見下文)。

訓練模型

訓練過程將根據你是在本地還是在云端進行訓練而有所不同。

本地

為所有訓練文件創建一個項目文件夾。在本教程中,我們將稱之為yolov8-project。然后,將數據集移動/復制到此文件夾下。

接下來,使用所需的YOLOv8依賴項設置Python虛擬環境:

python3 -m venv venv
source venv/bin/activate
pip3 install ultralytics

然后,創建一個名為config.yaml的配置文件。這個文件將會指定用于訓練的重要數據集信息:

path: /Users/oliverma/yolov8-project/dataset/ # absolute path to dataset
test: test/images # relative path to test images
train: train/images # relative path to training images
val: val/images # relative path to validation images

# classes
names:
0: bottle

在上面配置信息的path部分,提供的是指向數據集根目錄的絕對文件路徑。你也可以使用相對文件路徑,但這取決于config.yaml的相對位置。

然后,在test、train和val部分,提供用于測試、訓練和驗證的圖像的位置(如果你只有訓練圖像,則只需對所有這三種操作均使用train/images)。

在names部分,指定每個類別的名稱。這些信息通常可以在任何YOLOv8數據集的data.yaml文件中找到。

如前所述,Python API或CLI(命令行方式)都可以用來進行本地訓練。

Python API方式

創建另一個名為main.py的文件。這是實際訓練開始的地方:

from ultralytics import YOLO
model = YOLO("yolov8n.yaml")
model.train(data="config.yaml", epochs=100)

通過將我們的模型初始化為YOLO("yolov8n.yaml"),我們基本上是從頭開始創建一個新模型。我們使用yolov8n是因為它是最快的模型,但根據你自己的使用情況,你也可以選擇使用其他模型。

性能指標

YOLOv8變體的性能指標。來源:Ultralytics YOLO文檔

最后,我們開始訓練模型,并傳遞配置文件和迭代次數,或訓練輪數。一個比較好的訓練指標是使用300個訓練輪數,但你可能想根據數據集的大小和硬件的速度來調整這個數字。

你可能還希望包括一些更有用的設置:

  • imgsz:將所有圖像調整到指定的大小。例如,imgsz=640會將所有圖像的大小調整為640x640。如果你創建了自己的數據集并且沒有調整圖像大小,這將非常有用。
  • device:指定要在哪個設備上訓練。默認情況下,YOLOv8會嘗試在GPU上訓練,并使用CPU訓練作為后備,但如果你在M系列Mac上訓練,你必須使用device="mps"以便使用蘋果電腦上的Metal Performance Shaders(mps)后端進行GPU加速訓練。
  • 有關所有訓練參數的更多信息,請訪問https://docs.ultralytics.com/modes/train/#train-settings。

你的項目目錄現在應該看起來類似于下面的樣子:

項目目錄的示例文件結構

現在,我們終于準備好開始訓練我們的模型了。為此,只需要在項目目錄中打開一個終端并運行:

python3 main.py

隨著訓練的進行,終端將顯示每個訓練世代的訓練進度信息。

終端中顯示的每個訓練世代的訓練進度

訓練結果將保存在路徑runs/detect/train(或者train2,train3,等)。注意,這里包括了權重數據(文件擴展名為.pt),這對以后運行模型很重要;還有文件results.png,它顯示了許多包含相關訓練統計數據的圖表。

results.png文件中的示例圖

CLI方式

在項目目錄中打開一個新終端并運行以下命令:

yolo detect train data=config.yaml model=yolov8n.yaml epochs=100

此命令可以使用上面為Python API列出的相同參數進行修改。例如:

yolo detect train data=config.yaml model=yolov8n.yaml epochs=300 imgsz=640 device=mps

訓練將開始,進度將顯示在終端上。其余的訓練過程與Python CLI相同。

谷歌Colab方式

導航到https://colab.research.google.com/,并為訓練創建一個新的筆記本文件。

在訓練之前,請確保通過選擇右上角的“Change runtime type(更改運行時類型)”連接到GPU運行時。CPU運行時的訓練將非常緩慢。

將筆記本電腦運行時從CPU更改為T4 GPU

在開始使用Google Colab進行任何訓練之前,我們首先需要將數據集導入筆記本文件。直觀地說,最簡單的方法是將數據集上傳到谷歌云端硬盤,并從那里導入到我們的筆記本文件中。然而,上傳任何大于幾MB的數據集都需要非常長的時間。解決方法是將數據集上傳到遠程文件托管服務(如Amazon S3甚至是Kaggle),并將數據集直接從那里拉入我們的Colab筆記本文件。

從Kaggle導入

以下是如何將Kaggle數據集直接導入Colab筆記本文件的說明:

在Kaggle賬戶設置中,向下滾動到API并選擇“Create New Token”命令。這將下載一個名為kaggle.json的文件。

在筆記本單元格中運行以下命令:

!pip install kaggle
from google.colab import files
files.upload()

上傳剛剛下載的kaggle.json文件,然后運行以下命令:

!mkdir ~/.kaggle
!cp kaggle.json ~/.kaggle/
!chmod 600 ~/.kaggle/kaggle.json
!kaggle datasets download -d [DATASET] # replace [DATASET] with the desired dataset ref

數據集將作為zip存檔下載。只需要使用unzip命令提取有關內容:

!unzip dataset.zip -d dataset

開始訓練

在筆記本文件的文件資源管理器中創建一個新的config.yaml文件,并按照前面的描述進行配置。Colab筆記本文件中的默認工作目錄是/content/,因此數據集的絕對路徑將是/content/[dataset folder]。例如:

path: /content/dataset/ # absolute path to dataset
test: test/images # relative path to test images
train: train/images # relative path to training images
val: val/images # relative path to validation images

# classes
names:
0: bottle

確保檢查一下數據集的文件結構,以確保config.yaml中指定的路徑準確。有時數據集會被放置在多個級別的文件夾中。

然后,將以下內容作為單元格運行:

!pip install ultralytics

import os
from ultralytics import YOLOmodel = YOLO("yolov8n.yaml")
results = model.train(data="config.yaml", epochs=100)

前面提到的用于修改本地訓練設置的參數也適用于這里。

與本地訓練類似,結果、權重和圖表將保存在runs/detect/train中。

在本地進行預測

無論你是在本地還是在云端進行訓練,預測都必須在本地運行。

在模型完成訓練后,runs/detect/train/weights中會有兩個權重,分別命名為best.pt和last.pt,分別是最佳訓練輪次和最新訓練輪次的權重。在本教程中,我們將使用best.pt運行模型。

如果你在本地進行訓練,請將best.pt移動到方便的位置(例如我們的項目文件夾yolov8-project)以運行預測。如果你在云端訓練,請將best.pt下載到你的本地設備上。在Google Colab上,右鍵單擊筆記本資源管理器中的文件,然后選擇“Download”(下載)命令。

在谷歌Colab上下載權重

與本地訓練類似,預測可以通過Python API或CLI運行。

使用Python API預測

在與best.pt相同的位置,創建一個名為predict.py的新文件:

from ultralytics import YOLO
model = YOLO("best.pt")
results = model(source=0, show=True, conf=0.25, save=True)

與訓練類似,存在許多有用的參數可以修改預測設置:

  • source:控制預測的輸入源。source=0將網絡攝像頭設置為輸入源。更多信息請見下文。
  • show:如果為True,則在屏幕上顯示預測、邊界框和置信度。
  • conf:要考慮預測的最小置信度閾值。
  • save:如果為True,則將預測結果保存到run/retect/repredict(或predict2、predict3等)。
  • device:如前所述,在M系列Mac上使用device=“mps”。

有關預測參數的完整列表,請訪問:

https://docs.ultralytics.com/modes/predict/#inference-arguments

使用CLI預測

運行以下CLI命令即可啟動模型:

python3 predict.py

通過實時網絡攝像頭饋送運行YOLOv8模型預測

CLI命令

使用CLI方式進行預測應用的命令是:

yolo detect predict model=best.pt source=0 show=True cnotallow=0.25 save=True

注意到,這里所使用的參數與Python API中的參數相同。

將YOLOv8模型集成到實際場景

現在,我們已經能夠在實時網絡攝像頭上成功地運行起我們的模型,但這又會怎樣呢?我們如何實際使用這個模型并將其集成到實戰項目中?

讓我們從輸入和輸出的角度來考慮這個問題。為了使這個模型成功地應用于我們構建的外部應用程序中,此模型必須能夠接受有用的輸入并產生有用的輸出。值得慶幸的是,YOLOv8模型的靈活性使得將模型集成到各種使用場景中成為可能。

例如,我們可以使用source=0將網絡攝像頭設置為預測的輸入源。然而,YOLOv8模型可以利用比這更多的輸入源。以下是幾個例子:

results = model(source="path/to/image.jpg", show=True, conf=0.25, save=True) # static image
results = model(source="screen", show=True, conf=0.25, save=True) # screenshot of current screen
results = model(source="https://ultralytics.com/images/bus.jpg", show=True, conf=0.25, save=True) # image or video URL
results = model(source="path/to/file.csv", show=True, conf=0.25, save=True) # CSV file
results = model(source="path/to/video.mp4", show=True, conf=0.25, save=True) # video file
results = model(source="path/to/dir", show=True, conf=0.25, save=True) # all images and videos within directory
results = model(source="path/to/dir/**/*.jpg", show=True, conf=0.25, save=True) # glob expression
results = model(source="https://www.youtube.com/watch?v=dQw4w9WgXcQ", show=True, conf=0.25, save=True) # YouTube video URL

有關預測源和輸入選項的完整列表,請訪問:

https://docs.ultralytics.com/modes/predict/#inference-sources。

每當我們運行預測時,YOLOv8都會以Results對象列表的形式返回大量有價值的數據,其中包括有關預測的邊界框、分割掩碼、關鍵點、類別概率和定向包圍盒(OBB)的信息。

由于我們在代碼中將預測結果分配給results變量,因此我們可以使用它來檢索有關預測的信息:

from ultralytics import YOLO

model = YOLO("best.pt")

results = model(source="bottles.jpg", show=True, conf=0.25, save=True)

print("Bounding boxes of all detected objects in xyxy format:")
for r in results:
print(r.boxes.xyxy)

print("Confidence values of all detected objects:")
for r in results:
print(r.boxes.conf)

print("Class values of all detected objects:")
for r in results:
print(r.boxes.cls)

本教程中包含的輸出結果類型太多,但你可以通過訪問鏈接以了解更多信息:

https://docs.ultralytics.com/modes/predict/#working-results。

這里提供的只是一個非常基本的例子,說明你可以用YOLOv8模型的輸出做點什么了。其實,你可以通過上述列舉的很多種方式將模型應用于自己的項目中。

結論

在本文中,我們終于實現了從頭開始制作我們自己的YOLOv8兼容數據集,從Kaggle導入數據集,使用包括Python API、CLI和Google Colab在內的多種環境來訓練模型,然后在本地運行我們的模型,并找到許多輸入/輸出方法,使我們能夠在自己的項目中利用訓練出的YOLOv8模型。

請記住,本教程的目的是作為YOLOv8或計算機視覺的學習起點。我們當前幾乎沒有觸及YOLOv8模型錯綜復雜的表面,隨著你對YOLOv9和計算機視覺越來越有經驗,深入了解這個模型絕對是明智的。

話雖如此,如果你遵循了本教程并堅持到最后,那仍然是一個很大的成功。我希望這篇文章能幫助你對機器學習、計算機視覺和YOLOv8模型有一個基本的了解。也許你甚至對這個主題產生了熱情,并將在未來繼續學習更高級的內容。

譯者介紹

朱先忠,51CTO社區編輯,51CTO專家博客、講師,濰坊一所高校計算機教師,自由編程界老兵一枚。

原文標題:The Comprehensive Guide to Training and Running YOLOv8 Models on Custom Datasets,作者:Oliver Ma

責任編輯:姜華 來源: 51CTO內容精選
相關推薦

2024-07-01 12:55:50

2024-10-16 16:49:44

定向邊界框目標檢測YOLOv8

2025-02-07 14:52:11

2023-01-12 12:20:29

YOLOv8模型

2025-01-21 11:41:14

2024-07-22 13:49:38

YOLOv8目標檢測開發

2024-07-09 08:50:23

2020-10-05 21:57:17

GitHub 開源開發

2024-07-11 08:25:34

2024-05-15 09:16:05

2023-09-12 13:59:41

OpenAI數據集

2024-11-06 16:56:51

2023-02-02 09:00:00

2016-08-18 13:56:33

AndroidExecutorsubmit

2024-01-29 09:29:02

計算機視覺模型

2025-02-24 09:50:21

2025-03-19 08:01:10

Kubernetes集群源碼

2022-06-24 07:08:24

OHOS自定義服務

2023-12-11 10:18:38

YOLOv8檢測器實戰

2024-10-07 11:12:55

點贊
收藏

51CTO技術棧公眾號

亚洲天堂av在线免费| 亚洲国产精品麻豆| 91久久久久久国产精品| 久久久久久久国产精品毛片| 91精品久久久久久综合五月天| 亚洲香肠在线观看| 欧洲亚洲一区二区| 99热这里只有精品99| 亚洲高清不卡| 一区二区在线视频| 无码国产精品一区二区免费式直播 | 国产在线麻豆精品观看| 97视频色精品| 日韩三级在线观看视频| 中文有码一区| 日韩欧美你懂的| 免费观看成人网| 国产区在线观看| 99re这里只有精品6| 91欧美精品成人综合在线观看| 91美女免费看| 亚洲午夜av| 日韩性xxxx爱| 手机看片福利视频| 亚洲色图美女| 亚洲国产精品专区久久| 久久精品视频在线观看免费| 日韩性xxx| 精品露脸国产偷人在视频| 最近看过的日韩成人| 黄色av网站在线| 99久久久久久99| 97久久精品午夜一区二区| 中文字幕在线2018| 日韩黄色免费网站| 欧美在线不卡区| 日韩三级av在线| 亚洲视频高清| 久久久亚洲精品视频| 国产精品国产三级国产传播| 久久av影视| 亚洲欧美日韩国产中文专区| 国产精品九九视频| 国内精品麻豆美女在线播放视频 | 亚洲老妇激情| 久久精品精品电影网| 少妇愉情理伦三级| 日产午夜精品一线二线三线| 亚洲网站在线观看| 无码一区二区三区在线| 精品国产乱码久久久久久1区2匹 | 蜜芽在线免费观看| 亚洲欧洲色图综合| 国产精品美女在线播放| 黄色av免费在线| 亚洲女与黑人做爰| www国产无套内射com| 欧美黄色视屏| 亚洲成人免费在线观看| 激情五月宗合网| 日韩影院在线| 色琪琪一区二区三区亚洲区| 北条麻妃av高潮尖叫在线观看| 国产超碰精品| 欧美亚洲尤物久久| 国产精品自在自线| 奇米一区二区| 亚洲国产精品人人爽夜夜爽| 久久人人爽人人爽人人片| 夜夜躁狠狠躁日日躁2021日韩| 亚洲深夜福利在线| 色撸撸在线视频| 一区二区中文| 欧美一级高清免费| 综合久久中文字幕| 国产一区二区三区精品欧美日韩一区二区三区 | 在线亚洲美日韩| 91最新在线视频| 亚洲va国产va欧美va观看| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 欧美艳星kaydenkross| 在线观看欧美日本| 亚洲视频在线不卡| 日韩人体视频| 色青青草原桃花久久综合| 九九久久免费视频| 久久精品三级| 91在线观看免费| 午夜影院免费视频| 国产精品国产自产拍高清av| 999一区二区三区| 三上悠亚国产精品一区二区三区| 欧美美女bb生活片| 亚洲久久久久久| 欧美午夜精彩| 久久免费在线观看| 国产精品传媒在线观看| 国产精品亚洲视频| 欧洲视频一区二区三区| 欧美草逼视频| 精品视频一区二区不卡| 中国特级黄色大片| 99久久激情| 欧美在线视频观看| 精品人妻一区二区三区四区不卡 | 国产精品一二三在| 人禽交欧美网站免费| 亚洲性图自拍| 欧美性videosxxxxx| 国产精品熟妇一区二区三区四区| 日韩免费av| 91成人免费观看网站| 国产三级精品在线观看| 久久五月婷婷丁香社区| 2022中文字幕| 日本免费一区二区三区等视频| 亚洲国产精品99久久| 国产真实乱在线更新| 日韩激情视频网站| 精选一区二区三区四区五区| 岛国中文字幕在线| 欧美性色综合网| 丰满少妇在线观看资源站| 欧美精品二区| 91精品久久久久久久久久久久久久| 四虎在线视频免费观看| 亚洲精选免费视频| 天天摸天天舔天天操| 国产精品亚洲二区| 国产97在线|亚洲| 婷婷色在线视频| 亚洲国产一区二区三区青草影视 | 99久久国产综合精品女不卡| 男人j进女人j| 精品视频在线观看免费观看| 中文字幕成人在线| 自拍偷拍福利视频| 国产日产欧美一区| www.日日操| 禁断一区二区三区在线| 国产97在线视频| 成人动漫在线免费观看| 色视频成人在线观看免| 一级片视频免费看| 天使萌一区二区三区免费观看| 久久久久久草| 成人性生交大片免费观看网站| 日韩国产精品一区| 国产又黄又猛又粗又爽| 2020国产精品| 久久久久久久少妇| 国产又粗又猛又爽又黄91| 偷拍自拍亚洲| 色偷偷av一区二区三区乱| 中文天堂在线视频| 国产精品久久久久影院老司| 亚洲一级片网站| 97国产成人高清在线观看| 国产精品入口日韩视频大尺度| 免费在线一级视频| 91福利区一区二区三区| 妖精视频在线观看免费| 狠狠狠色丁香婷婷综合激情| 日本三级中文字幕在线观看| 一区二区三区在线资源| 97精品在线视频| 天堂成人在线| 欧美私人免费视频| 美女视频久久久| 国产在线播放一区三区四| 女人床在线观看| 电影一区二区在线观看| 人九九综合九九宗合| 岛国在线视频免费看| 欧美日韩国产三级| 欧美片一区二区| 久久婷婷一区二区三区| 日本激情视频在线播放| 亚洲电影在线一区二区三区| 国产精品一区二| japanese23hdxxxx日韩| xx视频.9999.com| 开心激情综合网| 91福利精品第一导航| 日本福利片在线观看| www.日韩av| 91亚洲免费视频| 国内精品久久久久久久影视麻豆 | 免费观看污网站| 免费日韩视频| 中文字幕乱码一区二区三区| 亚洲超碰在线观看| 国产aⅴ夜夜欢一区二区三区| 国产剧情在线| 日韩高清欧美高清| av 一区二区三区| 日韩欧美国产黄色| 亚洲欧美小视频| 久久久精品免费观看| 亚洲制服在线观看| 久久蜜桃资源一区二区老牛| 热这里只有精品| 免费看av成人| 成人动漫视频在线观看免费| 日韩精品影院| 欧美精品激情在线| 免费a在线看| 亚洲人成五月天| 亚洲av无码片一区二区三区| 欧美性大战xxxxx久久久| www.国产成人| 亚洲精选视频在线| 少妇愉情理伦三级| 久久久久久久综合日本| 制服丝袜在线第一页| 精品无人码麻豆乱码1区2区| 欧美视频第一区| 影音先锋久久| 喜爱夜蒲2在线| 日韩电影二区| 日本一区视频在线观看| 欧美一级三级| 国产精品国色综合久久| 亚洲精品aa| 国产精品一区二区性色av| 在线手机中文字幕| 午夜精品99久久免费| 91精品久久久| 毛片精品免费在线观看| 欧美激情办公室videoshd| 亚洲丝袜在线视频| 日韩三级电影网| 日韩h在线观看| 人妻一区二区三区四区| 精品久久久久久无| www日本高清视频| 日韩一区二区中文字幕| 国产精品日韩无码| 欧美久久久久久久久久| 亚洲一级视频在线观看| 欧美色综合久久| www.久久视频| 色婷婷一区二区| 蜜臀99久久精品久久久久小说| 欧美日韩亚洲系列| 成人在线免费看视频| 亚洲一区二区在线免费观看视频| 欧美日韩国产精品一区二区三区| 亚洲视频香蕉人妖| 东方av正在进入| 一区二区三区在线观看动漫| 国产免费无码一区二区视频| 亚洲欧美日韩在线| 日本精品人妻无码77777| 亚洲日穴在线视频| 亚洲国产精品久| 亚洲一卡二卡三卡四卡五卡| 亚欧洲精品在线视频| 精品福利视频导航| 久久精品视频5| 欧美手机在线视频| 97视频免费在线| 日韩欧美第一区| 视频污在线观看| 亚洲欧美一区二区三区四区| 国产系列在线观看| 久久久97精品| 波多野结衣中文在线| 欧美综合第一页| 欧美成人毛片| 91黄色国产视频| 亚洲自拍都市欧美小说| 亚洲一区二区在线免费观看| 午夜天堂精品久久久久| 国产精品无码一区二区在线| 久久久亚洲人| 色婷婷一区二区三区在线观看| 国产白丝精品91爽爽久久| 中文字幕免费在线播放| 欧美激情在线一区二区三区| 国产精品久久久精品四季影院| 亚洲永久精品大片| 无码人妻精品一区二区50| 在线播放日韩导航| 日本成人动漫在线观看| 一区二区三区视频在线| 日本aa在线| 国产成人精品免费视频| 精品中文字幕一区二区三区四区| 精品伦精品一区二区三区视频| 日韩免费特黄一二三区| 成人免费视频91| 美女任你摸久久| wwwxx日本| 国产精品久久久久久久久果冻传媒 | 免费在线观看污网站| 成人国产精品视频| 男人天堂资源网| 欧美日韩视频免费播放| 国产免费一区二区三区最新不卡 | 欧美日韩综合一区| 免费a级片在线观看| 色老头一区二区三区| 九色porny自拍视频在线观看| 91精品视频在线播放| 欧美男gay| 国产成人永久免费视频| 久久91精品久久久久久秒播| 手机在线看片日韩| 又紧又大又爽精品一区二区| 国产成人a v| 日韩成人中文电影| 欧美亚洲系列| 国产欧美一区二区三区在线| 亚洲免费成人av在线| 女人色极品影院| 国产一区二区精品久久| 亚洲а∨天堂久久精品2021| 五月婷婷综合网| 性一交一乱一精一晶| 久久精品国产精品| av成人在线看| 热舞福利精品大尺度视频| 999亚洲国产精| 佐佐木明希电影| 亚洲精品日日夜夜| 国产精品爽爽久久| 少妇高潮 亚洲精品| 五月激情久久| 欧美日韩最好看的视频| 中文日韩欧美| 噜噜噜在线视频| 亚洲福利电影网| 亚洲免费黄色片| 欧美大片免费观看在线观看网站推荐| 9999精品| 秋霞在线一区二区| 紧缚捆绑精品一区二区| 亚洲色成人网站www永久四虎| 欧美丝袜一区二区三区| 婷婷五月综合激情| 2024亚洲男人天堂| 久久99青青| 亚洲一区二区三区四区五区xx| 久久久久久电影| 波多野结衣绝顶大高潮| 亚洲区免费影片| 精品国产欧美日韩一区二区三区| 日韩视频精品| 麻豆一区二区三| 国产免费一区二区三区四区| 欧美一区二区三区四区久久 | 残酷重口调教一区二区| 免费在线观看的毛片| 欧美激情一区二区三区蜜桃视频| 日本成人一级片| 久久精品成人欧美大片古装| 伊人久久大香伊蕉在人线观看热v| 最新av在线免费观看| 国产不卡视频在线观看| 懂色av.com| 亚洲男人7777| 亚洲成人av观看| 丰满女人性猛交| 国产成人综合亚洲91猫咪| 日本少妇性高潮| 亚洲欧美精品一区| 国产精品亚洲成在人线| 日韩第一页在线观看| 国产宾馆实践打屁股91| 国产一级免费视频| 久久精品久久久久久| 国产成人福利av| 成人在线观看黄| 1区2区3区国产精品| 欧美一区二区三区黄片| 欧美性做爰毛片| 2023国产精品久久久精品双| 日本少妇xxxx软件| 色婷婷综合久久久久中文一区二区 | 97精品人妻一区二区三区| 欧美大片免费观看| 精品国产精品国产偷麻豆| 在线成人精品视频| 色欧美88888久久久久久影院| 成码无人av片在线观看网站| 国产在线精品一区二区三区| 日本不卡视频在线观看| 99热精品免费| 永久免费毛片在线播放不卡| 日韩中文一区二区| 蜜臀av午夜一区二区三区| 亚洲欧美另类在线| 欧美日韩影视| 97夜夜澡人人双人人人喊| 日韩高清一区二区| 久久9999久久免费精品国产| 中文字幕精品网| 麻豆精品少妇| 亚洲热在线视频|