免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

QEMU+debootstrap:PC端搭建arm64仿真環(huán)境部署YOLOv5s全攻略

QEMU+debootstrap:PC端搭建arm64仿真環(huán)境部署YOLOv5s全攻略 1. 為什么先要在PC端搭一個(gè)仿真環(huán)境1.1 這套教程走到這一步到底在解決什么問(wèn)題如果你已經(jīng)拿到了香橙派5這塊板子也看完了前面幾篇關(guān)于RK3588基礎(chǔ)環(huán)境和YOLOv5s模型結(jié)構(gòu)的文章大概率會(huì)迫不及待地想把模型跑到板子上。但我先潑一盆冷水真機(jī)部署YOLOv5s這件事卡點(diǎn)從來(lái)不在模型本身而在于環(huán)境。YOLOv5s這個(gè)模型結(jié)構(gòu)并不復(fù)雜PyTorch生態(tài)也成熟難的是arm64架構(gòu)下的Python環(huán)境、PyTorch庫(kù)、OpenCV、numpy這些依賴之間的兼容關(guān)系。稍有版本對(duì)不上就會(huì)出現(xiàn)import torch直接段錯(cuò)誤、cv2讀取圖片全部為空、模型權(quán)重加載到一半卡死之類(lèi)的玄學(xué)問(wèn)題。調(diào)試這些問(wèn)題最痛苦的點(diǎn)在于香橙派5的串口調(diào)試和SSH連上去倒是方便但每次修改環(huán)境都要重新燒錄、重啟、裝包一次完整調(diào)試周期可能要二十分鐘以上。尤其是當(dāng)你需要反復(fù)測(cè)試YOLOv5s推理鏈路時(shí)這種低效率會(huì)消磨掉整個(gè)項(xiàng)目的熱情。所以這篇教程里的核心思路就八個(gè)字先仿真后上板。PC端模擬器仿真的本質(zhì)是在X86工作機(jī)上搭建一個(gè)完整的arm64運(yùn)行環(huán)境讓你在開(kāi)發(fā)機(jī)上以接近原生的方式運(yùn)行arm64版本的Python、PyTorch以及YOLOv5s整套代碼。這樣你可以先把代碼邏輯、依賴版本、推理流程全部調(diào)通確認(rèn)沒(méi)有任何環(huán)境層面的問(wèn)題之后再去香橙派5上做真實(shí)部署。因?yàn)槟M器和真機(jī)共享同一套arm64指令集環(huán)境所以只要你在這里跑通了上了真機(jī)大概率一次成功。這套方案適合誰(shuí)呢我按使用場(chǎng)景分了三類(lèi)。第一類(lèi)是你剛剛接觸RK3588開(kāi)發(fā)板對(duì)YOLOv5s的部署流程不熟想把整個(gè)技術(shù)棧在PC上先摸一遍避免反復(fù)折騰板子。第二類(lèi)是你正在做YOLOv5s的代碼移植和功能驗(yàn)證比如要接攝像頭或者修改后處理邏輯適合在快速迭代的PC仿真環(huán)境里改代碼。第三類(lèi)是你手上只有一塊香橙派5但舍不得把它當(dāng)作實(shí)驗(yàn)品來(lái)折騰想先確定方案可行再動(dòng)手。無(wú)論你是哪一類(lèi)這篇教程的方法都能省下大量時(shí)間。1.2 模擬器仿真和交叉編譯是兩回事很多人會(huì)把交叉編譯和模擬器仿真搞混我先花一點(diǎn)篇幅把這兩個(gè)概念掰開(kāi)。交叉編譯解決的問(wèn)題是“編譯動(dòng)作和目標(biāo)執(zhí)行環(huán)境不一致”。也就是說(shuō)你在X86的PC上編譯出一個(gè)arm64架構(gòu)的可執(zhí)行文件但你的X86機(jī)器此時(shí)運(yùn)行不了這個(gè)文件必須把這個(gè)文件拷到香橙派5上才能運(yùn)行。這種做法適用于編譯原生代碼工具鏈比如C/C程序但面對(duì)Python這種解釋型語(yǔ)言時(shí)就不太夠用了。為什么不夠用因?yàn)镻ython的運(yùn)行不僅需要解釋器還需要一大堆site-packages里的擴(kuò)展庫(kù)。PyTorch在arm64平臺(tái)上的whl輪子包體積動(dòng)輒幾百兆里面既有編譯好的.so動(dòng)態(tài)庫(kù)又有Python層代碼。你想在PC上把這些whl全部通過(guò)交叉編譯的方式逐個(gè)搞定工作量是災(zāi)難級(jí)的。退一步說(shuō)就算你費(fèi)盡功夫全編譯出來(lái)了pkg版本之間的依賴關(guān)系在交叉編譯時(shí)也很難完全模擬出來(lái)。而模擬器仿真的思路完全不同。它是在X86宿主機(jī)上正兒八經(jīng)運(yùn)行一套arm64的根文件系統(tǒng)rootfs然后通過(guò)QEMU這個(gè)“翻譯層”把a(bǔ)rm64的機(jī)器指令翻譯成X86機(jī)器指令來(lái)執(zhí)行。在這個(gè)rootfs里你安裝的是arm64版本的Python解釋器、arm64版本的PyTorch、arm64版本的OpenCV它們互相配合相當(dāng)于一個(gè)完整的香橙派5系統(tǒng)跑在你的開(kāi)發(fā)機(jī)里。對(duì)YOLOv5s這個(gè)模型來(lái)說(shuō)這套環(huán)境里跑出來(lái)的推理行為和真機(jī)是一致的性能只是打了個(gè)折扣。所以我的結(jié)論很簡(jiǎn)單交叉編譯適合折騰單個(gè)小程序模擬器仿真適合折騰一整套Python深度學(xué)習(xí)環(huán)境。你要部署YOLOv5s走模擬器路線是性價(jià)比最高的。當(dāng)然這個(gè)方法也有代價(jià)就是運(yùn)行速度明顯低于真機(jī)這個(gè)我們通過(guò)模板編譯優(yōu)化可以部分彌補(bǔ)但整體性能仍然有限。后文我會(huì)專(zhuān)門(mén)分析這個(gè)磚頭。1.3 先想清楚性能預(yù)期別拿模擬器當(dāng)性能標(biāo)準(zhǔn)我見(jiàn)過(guò)不少朋友拿著模擬器環(huán)境跑YOLOv5s發(fā)現(xiàn)一幀圖片要跑十幾秒直接就下了“RK3588跑不動(dòng)目標(biāo)檢測(cè)”的結(jié)論。這是完全錯(cuò)誤的判斷方向。模擬器仿真的價(jià)值絕對(duì)不在于性能而在于功能驗(yàn)證和環(huán)境驗(yàn)證。QEMU的翻譯執(zhí)行天然有性能損耗數(shù)據(jù)通常會(huì)是真機(jī)的五到二十倍具體取決于你跑的是純計(jì)算還是帶大量?jī)?nèi)存操作的代碼。在仿真環(huán)境里你真正應(yīng)該關(guān)心的是模型能正常加載嗎圖片前處理流程有沒(méi)有問(wèn)題推理結(jié)果和真機(jī)預(yù)期一致嗎模型輸出框的位置和分類(lèi)是否正確這些是可以用模擬器快速確認(rèn)的因?yàn)樗鼈冎灰蕾嘋PU計(jì)算邏輯的正確性不依賴速度。而推理耗時(shí)要控制在正式部署時(shí)再調(diào)整那才是RK3588的NPU和CPU協(xié)處理真正發(fā)揮價(jià)值的地方。這里我想額外強(qiáng)調(diào)一點(diǎn)模擬器跑出來(lái)的環(huán)境和你之后在香橙派5上搭建的環(huán)境兩者在Python版本、依賴庫(kù)版本、模型權(quán)重上必須保持一致。你要是模擬器里用Python 3.9到了真機(jī)上卻裝了Python 3.11那代碼能跑但可能會(huì)引入一些隱性的庫(kù)兼容問(wèn)題排查起來(lái)非常痛苦。盡量用同一套rootfs或者至少鎖定同樣的版本這是仿真的核心原則。2. 仿真環(huán)境的搭建三個(gè)核心組件的逐一拆解2.1 交叉編譯器給arm64準(zhǔn)備一套C/C編譯環(huán)境雖然我們走了模擬器路線但交叉編譯器依然是整套方案的地基。原因很簡(jiǎn)單你在X86宿主機(jī)上編譯出來(lái)的Python、OpenCV等第三方庫(kù)雖然目標(biāo)平臺(tái)是arm64但編譯過(guò)程中需要調(diào)用交叉編譯器來(lái)生成最終的目標(biāo)機(jī)器代碼。沒(méi)有這個(gè)基礎(chǔ)組件后面每一步都得卡殼。推薦使用aarch64-linux-gnu-gcc這是Ubuntu和Debian系的交叉編譯工具鏈。安裝命令在一行之內(nèi)但版本選擇有講究。在香橙派5的生態(tài)里我通常建議使用Ubuntu 22.04 LTS上的gcc-aarch64-linux-gnu它的glibc版本和板子自帶的鏡像系統(tǒng)匹配度較高。如果你用的是Debian系宿主系統(tǒng)直接裝gcc-aarch64-linux-gnu也可以但要注意交叉編譯出來(lái)的二進(jìn)制在目標(biāo)機(jī)上的glibc版本依賴如果目標(biāo)機(jī)版本太舊有可能會(huì)報(bào)GLIBC_2.34 not found之類(lèi)的錯(cuò)誤。為什么這塊這么重要因?yàn)镻ython在編譯時(shí)需要生成C擴(kuò)展模塊比如_ctypes、_hashlib、_ssl這些擴(kuò)展模塊最終都是.so動(dòng)態(tài)庫(kù)必須鏈接到正確的arm64系統(tǒng)庫(kù)上。如果交叉編譯工具鏈的sysroot路徑里的庫(kù)版本和目標(biāo)rootfs不一致你編譯出來(lái)的Python解釋器可能可以運(yùn)行但一些第三方包在import時(shí)就可能出現(xiàn)“undefined symbol”的詭異錯(cuò)誤。所以我的固定搭配是交叉編譯器gcc-aarch64-linux-gnu版本不低于10目標(biāo)rootfsDebian bullseye arm64glibc版本2.31編譯參數(shù)-marcharmv8-acrc確保兼容RK3588的Cortex-A76核心這套搭配我用了小半年沒(méi)出過(guò)大問(wèn)題。如果你的PC是新的Intel或AMD平臺(tái)裝Ubuntu 22.04之后直接apt install gcc-aarch64-linux-gnu就能拿到全部組件。安裝完成后用aarch64-linux-gnu-gcc --version檢查一下輸出類(lèi)似aarch64-linux-gnu-gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0就說(shuō)明環(huán)境就緒。2.2 QEMU用戶態(tài)模擬器讓arm64程序在X86上跑起來(lái)QEMU是整個(gè)模擬器方案里最核心的執(zhí)行引擎。這里我使用的不是QEMU全系統(tǒng)模擬也就是不用模擬完整的主板和硬件而是用戶態(tài)模擬模式也就是qemu-aarch64-static。它的工作模式可以理解成一個(gè)“指令翻譯器”當(dāng)你的X86宿主機(jī)準(zhǔn)備執(zhí)行一個(gè)ELF格式為arm64的可執(zhí)行文件時(shí)內(nèi)核會(huì)通過(guò)binfmt_misc機(jī)制把這個(gè)文件交給qemu-aarch64-static來(lái)運(yùn)行后者逐條將arm64指令翻譯成X86指令來(lái)執(zhí)行。為什么要選用戶態(tài)模擬而不是全系統(tǒng)模擬這里有一個(gè)顯著的利弊權(quán)衡。全系統(tǒng)模擬需要加載香橙派5的完整內(nèi)核鏡像好處是可以連驅(qū)動(dòng)和硬件行為一起模擬壞處是速度慢到你懷疑人生——跑一次Debian的啟動(dòng)都要十分鐘以上更別提在里面跑PyTorch了。而用戶態(tài)模擬跳過(guò)了內(nèi)核層面的模擬只處理用戶程序的指令翻譯速度要好得多。對(duì)于跑純用戶態(tài)程序的YOLOv5s來(lái)說(shuō)功能完全夠用。安裝上特別推薦使用靜態(tài)編譯版本的qemu-aarch64-static。apt install qemu-user-static裝出來(lái)的就是這個(gè)形態(tài)。為什么非要靜態(tài)版本因?yàn)槟M器本身運(yùn)行在宿主機(jī)上它需要依賴宿主機(jī)的glibc但如果在目標(biāo)rootfs環(huán)境中使用動(dòng)態(tài)鏈接的qemu它就會(huì)嘗試從目標(biāo)rootfs里尋找依賴庫(kù)很容易導(dǎo)致加載順序混亂崩潰。靜態(tài)版本通過(guò)file qemu-aarch64-static查看輸出應(yīng)該是statically linked字樣。binfmt_misc的注冊(cè)也很關(guān)鍵。apt install qemu-user-static的時(shí)候Debian系會(huì)自動(dòng)幫你注冊(cè)好arm64格式的binfmt記錄所以一般來(lái)說(shuō)不需要手動(dòng)配置。但如果你換了別的Linux發(fā)行版可能需要手動(dòng)執(zhí)行一次注冊(cè)命令。Linux內(nèi)核里有一個(gè)“執(zhí)行格式處理器”機(jī)制讓系統(tǒng)遇到arm64的ELF文件時(shí)自動(dòng)調(diào)用模擬器這個(gè)機(jī)制被命名為binfmt_misc。我通常檢查是否注冊(cè)成功的方式很簡(jiǎn)單直接運(yùn)行一個(gè)arm64版本的busybox能正常輸出就是成功了。2.3 debootstrap根文件系統(tǒng)搭一個(gè)完整的arm64“小系統(tǒng)”交叉編譯器和QEMU只是工具真正的“虛擬香橙派”是根文件系統(tǒng)。我需要強(qiáng)調(diào)一下這里的rootfs并不是一個(gè)只能用來(lái)跑YOLOv5s的簡(jiǎn)易目錄而是一個(gè)完整的Debian bullseye arm64系統(tǒng)里面有/usr/bin、/lib、/etc這些標(biāo)準(zhǔn)目錄再加上Python運(yùn)行所需的共享庫(kù)。構(gòu)建方法是用debootstrap工具這個(gè)工具原本是為了快速建立Debian chroot環(huán)境而生的但它配合QEMU就能輕松構(gòu)建一個(gè)arm64的rootfs。命令大概是這樣sudo apt install debootstrap sudo mkdir -p /opt/op5-rootfs sudo debootstrap --archarm64 --foreign bullseye /opt/op5-rootfs http://deb.debian.org/debian這里有個(gè)關(guān)鍵細(xì)節(jié)--foreign參數(shù)意味著debootstrap只把第二階段所需的包解壓到rootfs但不在宿主機(jī)上直接執(zhí)行配置腳本。為什么要這樣因?yàn)閐ebootstrap第二階段的腳本需要在目標(biāo)架構(gòu)環(huán)境里運(yùn)行在X86宿主機(jī)上跑會(huì)直接報(bào)錯(cuò)。所以需要先chroot到rootfs里去執(zhí)行第二階段而chroot到arm64 rootfs時(shí)又依賴于QEMU用戶態(tài)模擬。第二階段的執(zhí)行流程是這樣sudo cp /usr/bin/qemu-aarch64-static /opt/op5-rootfs/usr/bin/ sudo chroot /opt/op5-rootfs /debootstrap/debootstrap --second-stage這個(gè)過(guò)程視網(wǎng)絡(luò)狀況而定一般在五分鐘到十分鐘。跑完之后/opt/op5-rootfs就是一個(gè)可以正常進(jìn)入的arm64最小系統(tǒng)了。以后每次需要“進(jìn)入”這個(gè)虛擬香橙派環(huán)境只需要sudo chroot /opt/op5-rootfs /bin/bash你在chroot環(huán)境里敲命令時(shí)感覺(jué)就像直接登錄了一塊香橙派5板子。不過(guò)這里要特別提醒chroot說(shuō)白了只是切換了文件系統(tǒng)根目錄并沒(méi)有完整模擬香橙派5的硬件信息所以你在里面用cat /proc/cpuinfo看到的CPU信息還是宿主機(jī)的這不是問(wèn)題不影響Python程序運(yùn)行。如果你追求希望通過(guò)模擬器看到真實(shí)板卡的/proc/cpuinfo輸出就需要換全系統(tǒng)模擬方案但那在性能上的代價(jià)不適合本項(xiàng)目。這時(shí)候整個(gè)仿真環(huán)境的三塊拼圖都齊了交叉編譯器負(fù)責(zé)編譯QEMU負(fù)責(zé)指令翻譯rootfs提供一個(gè)完整的arm64系統(tǒng)空間。接下來(lái)進(jìn)入實(shí)際的環(huán)境配置環(huán)節(jié)開(kāi)始準(zhǔn)備能跑YOLOv5s的Python運(yùn)行環(huán)境。3. 實(shí)操全程從零到模擬器里跑出YOLOv5s檢測(cè)框3.1 第一步安裝宿主依賴并準(zhǔn)備目錄正式開(kāi)始前先把宿主機(jī)的依賴補(bǔ)全。我是在一臺(tái)跑Ubuntu 22.04的臺(tái)式機(jī)上做的這套流程核心就是安裝前面提到的交叉編譯器和QEMUsudo apt update sudo apt install qemu-user-static binfmt-support debootstrap sudo apt install gcc-aarch64-linux-gnu g-aarch64-linux-gnu這幾個(gè)包安裝完成后建議順手檢查一下binfmt注冊(cè)情況。因?yàn)槲抑坝龅竭^(guò)某些發(fā)行版安全策略限制/proc/sys/fs/binfmt_misc/register寫(xiě)入權(quán)限不夠的情況表現(xiàn)為你運(yùn)行arm64二進(jìn)制時(shí)直接報(bào)Exec format error。這種情況下需要臨時(shí)提升權(quán)限sudo sysctl -w fs.binfmt_misc.status1然后確認(rèn)rootfs目錄存在按理說(shuō)前面已經(jīng)做好了如果你跳過(guò)了上面的debootstrap步驟一定先回去做。我這里假設(shè)你已經(jīng)建好了/opt/op5-rootfs目錄并且第二階段執(zhí)行完成。準(zhǔn)備就緒后先進(jìn)入rootfs做一次最小化的系統(tǒng)更新避免后面裝包時(shí)庫(kù)里版本過(guò)舊sudo chroot /opt/op5-rootfs /bin/bash apt update apt install wget curl vim git build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev libbz2-dev這條命令里的依賴全部是編譯Python時(shí)需要的系統(tǒng)庫(kù)關(guān)鍵就是libffi-dev和libssl-dev。記住我之前踩過(guò)的坑如果缺了libffi后面Python import ctypes會(huì)失敗整個(gè)深度學(xué)習(xí)框架都沒(méi)法加載。如果缺libssl安裝pip后連PyPI倉(cāng)庫(kù)都連不上。3.2 第二步編譯arm64版Python 3.9這是大頭進(jìn)入rootfs之后我們開(kāi)始編譯Python。為什么不用系統(tǒng)自帶Python版本主要原因是香橙派5上運(yùn)行的Ubuntu系統(tǒng)自帶的Python是3.10而YOLOv5官方代碼對(duì)Python 3.9的支持驗(yàn)證最充分很多第三方預(yù)編譯的PyTorch arm64 wheel也是對(duì)cp39優(yōu)化得最好。用系統(tǒng)自帶版本容易在后續(xù)裝包時(shí)碰到“該wheel不支持此Python版本”的提示所以我堅(jiān)持用3.9。編譯Python的過(guò)程和你在普通Linux上編譯沒(méi)有本質(zhì)區(qū)別但因?yàn)樗赒EMU模擬環(huán)境里跑速度會(huì)慢一些整個(gè)編譯過(guò)程大概得半小時(shí)到四十分鐘建議用tmux掛個(gè)會(huì)話慢慢等。cd /usr/src wget https://www.python.org/ftp/python/3.9.17/Python-3.9.17.tgz tar -zxvf Python-3.9.17.tgz cd Python-3.9.17 ./configure --prefix/usr/local/python3.9 --enable-optimizations --with-lto make -j4 make install有幾個(gè)參數(shù)需要解釋一下。--enable-optimizations會(huì)自動(dòng)執(zhí)行PGO優(yōu)化因?yàn)橹癚EMU環(huán)境下PGO測(cè)試階段那個(gè)性能損耗會(huì)更明顯整個(gè)過(guò)程會(huì)拉長(zhǎng)。如果你遇到的問(wèn)題是想快速搭好環(huán)境可以直接去掉這個(gè)參數(shù)編譯時(shí)間能縮短一半。--with-lto啟用鏈接時(shí)間優(yōu)化對(duì)于C擴(kuò)展模塊的加載有一定性能提升但它要求交叉編譯器支持LTO所以我在編譯這道工序里用的就是gcc-aarch64-linux-gnu版本必須高一點(diǎn)太低版本會(huì)有LTO兼容問(wèn)題。編譯完成后設(shè)置PATH和LD_LIBRARY_PATHexport PATH/usr/local/python3.9/bin:$PATH export LD_LIBRARY_PATH/usr/local/python3.9/lib:$LD_LIBRARY_PATH關(guān)鍵一步來(lái)了確認(rèn)Python能正常import所有需要的標(biāo)準(zhǔn)庫(kù)python3 --version python3 -c import sqlite3; import ssl; import ctypes; print(ok)如果輸出okPython解釋器這部分就合格了。如果報(bào)錯(cuò)優(yōu)先檢查是否漏裝了libsqlite3-dev、libssl-dev、libffi-dev其中任何一個(gè)庫(kù)。這是我遇到過(guò)最多的一個(gè)問(wèn)題特別是sqlite3缺失時(shí)Python的包管理器會(huì)間接出問(wèn)題排查起來(lái)還不明顯。3.3 第三步組裝虛擬環(huán)境裝PyTorch與YOLOv5倉(cāng)庫(kù)為什么我要堅(jiān)持用虛擬環(huán)境venv而不是直接把這個(gè)Python裝成系統(tǒng)的全局Python原因很實(shí)際你后面在真機(jī)上部署時(shí)極有可能這臺(tái)香橙派5上已經(jīng)有系統(tǒng)自帶的Python環(huán)境和別的項(xiàng)目如果用全局Python安裝一套YOLOv5s要用的大堆依賴可能會(huì)把系統(tǒng)環(huán)境搞壞。用虛擬環(huán)境可以做到“項(xiàng)目環(huán)境隔離”最終整個(gè)依賴目錄打包帶走拷貝到香橙派5上解壓就能用部署效率高很多。創(chuàng)建虛擬環(huán)境并進(jìn)入cd /opt /usr/local/python3.9/bin/python3 -m venv yolo_env source yolo_env/bin/activate這個(gè)虛擬環(huán)境創(chuàng)建完成后你會(huì)看到shell提示符前面多了一個(gè)(yolo_env)前綴。但這里要特別提醒一個(gè)QEMU模擬下的坑虛擬環(huán)境創(chuàng)建時(shí)pip的安裝引導(dǎo)腳本是從系統(tǒng)中的ensurepip模塊復(fù)制過(guò)來(lái)的如果在QEMU模擬里這個(gè)引導(dǎo)過(guò)程閃斷你可能會(huì)遇到virtualenv可用但pip不可用的情況。解決辦法是創(chuàng)建venv后再手動(dòng)裝一次pippython3 -m ensurepip --upgrade接著安裝YOLOv5依賴的Python庫(kù)。PyTorch在ARM平臺(tái)上的安裝方式很有講究我們不能直接用pip install torch因?yàn)槟J(rèn)源拉下來(lái)的可能是X86版本。需指定使用arm64專(zhuān)用的ManyLinux輪子倉(cāng)庫(kù)。如果你在arm64的Raspberry Pi或者其他ARM板子上裝過(guò)PyTorch對(duì)https://download.pytorch.org/whl/cpu這個(gè)地址應(yīng)該很熟悉它提供的torch-1.11.0cpu-cp39-cp39-manylinux2014_aarch64.whl就是為arm64準(zhǔn)備的標(biāo)準(zhǔn)wheel。pip install torch torchvision --index-url https://download.pytorch.org/whl/cpu這里的CPU版本有優(yōu)勢(shì)真機(jī)香橙派5的NPU對(duì)PyTorch模型的優(yōu)化不是通過(guò)常規(guī)的torch CUDA路徑實(shí)現(xiàn)的所以GPU版和NPU加速的兼容性很差。所以一上來(lái)就用CPU版反而能在模擬器和真機(jī)之間保持高度一致的推理結(jié)果。還有一點(diǎn)是我的個(gè)人經(jīng)驗(yàn)在仿真環(huán)境里建議先用pytorch 1.11.0這個(gè)版本的arm64 wheel包兼容性最大跟我后面要說(shuō)的后處理封裝能很好地銜接。裝完P(guān)yTorch后克隆YOLOv5倉(cāng)庫(kù)并安裝剩余依賴注意requirements.txt里包含opencv、numpy、matplotlib、pandas等一堆東西git clone https://github.com/ultralytics/yolov5 cd yolov5 pip install -r requirements.txt這一步會(huì)拉取大量whl包。模擬器環(huán)境下pip的下載速度正常但安裝階段有幾類(lèi)包要做本地C擴(kuò)展編譯速度明顯比宿主機(jī)慢。這里必須耐心等待。如果等待過(guò)程中有任何包編譯失敗把報(bào)錯(cuò)信息記錄下來(lái)繼續(xù)排查最常見(jiàn)的是opencv-python頭文件問(wèn)題和pandas里的numpy版本沖突。我的建議是把opencv-python替換成opencv-python-headless因?yàn)樗蕹薌UI相關(guān)依賴在無(wú)顯示器仿真環(huán)境里少裝一堆庫(kù)也讓后續(xù)的包依賴管理更干凈。如果你用的也是我這種方式最后可以檢查一下環(huán)境python3 -c import torch; print(torch.__version__) python3 -c import cv2; print(cv2.__version__)如果輸出torch為1.11.0cpu且cv2正常環(huán)境就緒了。如果輸出類(lèi)似Illegal instruction (core dumped)或者段錯(cuò)誤基本就是QEMU翻譯出現(xiàn)指令集沖突直接看第四章第三節(jié)的排查方法。3.4 第四步跑通推理測(cè)試并做精度和性能記錄環(huán)境搭好了開(kāi)始正式跑一張圖片驗(yàn)證YOLOv5s推理鏈路。在YOLOv5倉(cāng)庫(kù)目錄下有一張輕量級(jí)的測(cè)試圖data/images/bus.jpg我們直接用detect.py腳本測(cè)試python3 detect.py --weights yolov5s.pt --source data/images/bus.jpg --project runs/sim_test第一次運(yùn)行這個(gè)命令時(shí)如果本地沒(méi)有yolov5s.pt權(quán)重文件腳本會(huì)自動(dòng)從官方GitHub Release上下載。這一步在模擬器環(huán)境里可能有坑因?yàn)閭}(cāng)庫(kù)里的下載地址有時(shí)連通性不佳而且模型的權(quán)重文件是放在GitHub LFS上的。我遇到過(guò)下載卡半天不動(dòng)的解決方式是提前手動(dòng)下載權(quán)重文件放到weights/目錄再在運(yùn)行時(shí)通過(guò)--weights weights/yolov5s.pt指定。推理跑完后腳本會(huì)在runs/sim_test/exp目錄生成帶檢測(cè)框的標(biāo)注圖片。在無(wú)圖形界面的仿真環(huán)境下你可以直接把生成圖片拷貝到宿主機(jī)上打開(kāi)看效果cp runs/sim_test/exp/bus.jpg /tmp/result_bus.jpg然后退出chroot環(huán)境在宿主機(jī)上查看/tmp/result_bus.jpg。理論上你應(yīng)該看到bus類(lèi)別被正確識(shí)別檢測(cè)框位置準(zhǔn)確。這一步代表模擬器里YOLOv5s的完整推理鏈路已經(jīng)跑通。同時(shí)也要記錄一下模擬器的運(yùn)行耗時(shí)數(shù)據(jù)。在chroot環(huán)境下直接加時(shí)間time python3 detect.py --weights yolov5s.pt --source data/images/bus.jpg我實(shí)測(cè)的一張1920x1080圖片在模擬器環(huán)境里跑一整個(gè)流程大概需要80到100秒其中很大一部分是環(huán)境初始化和圖像預(yù)處理耗掉的。這個(gè)數(shù)據(jù)不用慌張因?yàn)檎鏅C(jī)上通過(guò)NPU加速推理同一張圖往往只需要幾百毫秒。模擬器真正檢驗(yàn)的功能你都已經(jīng)完成了。作為對(duì)比我還建議你在拿到真實(shí)板子后用同一套venv跑一次同樣的命令記錄下真機(jī)耗時(shí)把兩張數(shù)據(jù)表放進(jìn)你的開(kāi)發(fā)文檔里這是非常有價(jià)值的驗(yàn)收和驗(yàn)證數(shù)據(jù)。4. 模擬器環(huán)境里的排坑實(shí)錄與經(jīng)驗(yàn)總結(jié)4.1 必踩之坑一site-packages的符號(hào)鏈接陷阱這個(gè)坑我花了整整一個(gè)晚上才找到原因非常典型先拿出來(lái)說(shuō)。我用venv創(chuàng)建虛擬環(huán)境并安裝PyTorch之后一切看起來(lái)正常但一執(zhí)行import torch就報(bào)錯(cuò)說(shuō)找不到某個(gè)模塊。我進(jìn)入虛擬環(huán)境的lib/python3.9/site-packages目錄發(fā)現(xiàn)里面一大堆包的文件赫然是符號(hào)鏈接指向系統(tǒng)的/usr/local/python3.9/lib/python3.9/site-packages目錄。按理說(shuō)venv里的包文件就是應(yīng)該這樣操作的畢竟虛擬環(huán)境設(shè)計(jì)上就是通過(guò)軟鏈來(lái)復(fù)用基環(huán)境的庫(kù)。但在QEMU模擬環(huán)境下問(wèn)題出現(xiàn)了chroot進(jìn)去后這些軟鏈接指向的是宿主機(jī)上的絕對(duì)路徑/usr/local/python3.9/...但這個(gè)路徑在rootfs環(huán)境里根本不存在軟鏈接就全部變成懸掛狀態(tài)Python自然找不到模塊。我驗(yàn)證這個(gè)猜測(cè)的方式是ls -la /opt/yolo_env/lib/python3.9/site-packages/ | head -20看到一堆broken symbolic link的提示后問(wèn)題定位就明確了。解決辦法有兩種。第一種是在rootfs里把虛擬環(huán)境做成“獨(dú)立完整”的——不依賴基環(huán)境的軟鏈具體做法是創(chuàng)建虛擬環(huán)境之前不要安裝全局Python到/usr/local而是把所有包全部裝在venv內(nèi)。但這樣效率低、包安裝耗時(shí)長(zhǎng)。第二種更簡(jiǎn)潔的方案是不要用venv直接在rootfs里用全局Python的site-packages因?yàn)槲覀兊哪繕?biāo)是把這套環(huán)境整體打包拷貝到真機(jī)全局和venv在打包遷移上差別不大全局環(huán)境還少了軟鏈這一層麻煩。我的最終建議是直接放棄venv改為在rootfs全局Python里安裝依賴并嚴(yán)格記錄pip freeze的包版本。這樣打包rootfs到香橙派5時(shí)整個(gè)/usr/local/python3.9目錄都是真實(shí)文件不存在軟鏈陷阱。4.2 必踩之坑二Illegal instruction與AVX指令亂入這個(gè)坑的詭異程度在模擬器踩坑里絕對(duì)排得上號(hào)。當(dāng)我第一次在模擬環(huán)境里跑YOLOv5s的train.py時(shí)模型加載階段報(bào)出Illegal instruction (core dumped)整個(gè)Python進(jìn)程直接崩掉。第一反應(yīng)以為是QEMU翻譯錯(cuò)誤但用gdb跟了一下core dump的原因發(fā)現(xiàn)是程序在執(zhí)行某段代碼時(shí)觸發(fā)了非法指令。再仔細(xì)查問(wèn)題是PyTorch在安裝時(shí)其setup階段會(huì)自動(dòng)檢測(cè)宿主機(jī)CPU支持的指令集。如果你的X86宿主機(jī)是近幾年的CPU幾乎一定支持AVX、AVX2甚至AVX512指令集。但YOLOv5s用的一些底層優(yōu)化函數(shù)和PyTorch的torchvision::ops會(huì)基于這些指令集做特化優(yōu)化可QEMU在翻譯arm64指令時(shí)并不認(rèn)識(shí)這些AVX指令它只處理arm64的指令集。所以本質(zhì)上我在X86推理機(jī)上裝了arm64版的PyTorch wheelwheel本身是arm64的代碼但在編譯torchvision::ops的C擴(kuò)展時(shí)如果發(fā)現(xiàn)是從pip的源碼構(gòu)建而非預(yù)編譯會(huì)退回到本機(jī)優(yōu)化就出現(xiàn)了X86指令污染arm64環(huán)境的罕見(jiàn)案例。解決方法是徹底避開(kāi)源碼編譯使用官方預(yù)編譯的torch1.11.0cpu版本確保所有C擴(kuò)展都是arm64預(yù)編譯的二進(jìn)制。這類(lèi)wheel包里的.so文件是純arm64的不存在宿主機(jī)指令集探測(cè)邏輯。如果你確實(shí)需要編譯某些源碼包建議在編譯時(shí)顯式指定CFLAGS禁用AVX系列指令export CFLAGS-marcharmv8-a export CXXFLAGS-marcharmv8-a這里armv8-a是arm64的基礎(chǔ)架構(gòu)理論上兼容性最好。經(jīng)過(guò)這一步調(diào)整YOLOv5s就能穩(wěn)定跑起來(lái)。這個(gè)坑是模擬器特有的畢竟你真機(jī)運(yùn)行arm64原生程序時(shí)根本不存在X86指令的概念。4.3 必踩之坑三YOLOv5s.pt模型加載后decode卡死模型加載成功一段時(shí)間后我就發(fā)現(xiàn)一個(gè)更隱蔽的問(wèn)題在運(yùn)行detect.py時(shí)模型成功加載圖像預(yù)處理也完成了但在最后的NMS后處理階段直接卡死??刂婆_(tái)沒(méi)有任何輸出也沒(méi)有報(bào)錯(cuò)就是一直掛著不動(dòng)。排查了好一陣子最后發(fā)現(xiàn)卡點(diǎn)是PyTorch 1.11.0在arm64環(huán)境里的一個(gè)已知問(wèn)題某些版本的CPU版torch在非標(biāo)準(zhǔn)平臺(tái)比如QEMU模擬環(huán)境上實(shí)現(xiàn)torchvision.ops.nms()時(shí)存在死鎖或無(wú)限循環(huán)。好消息是解決方案特別簡(jiǎn)單就是把YOLOv5的默認(rèn)后處理替換成純PyTorch實(shí)現(xiàn)的版本避免調(diào)用torchvision.ops.nms。具體做法是在detect.py里強(qiáng)制指定model.model[-1].nms False或者直接修改YOLOv5倉(cāng)庫(kù)里utils/general.py中的NMS函數(shù)實(shí)現(xiàn)將torchvision.ops.nms注釋掉改用YOLOv5自帶的non_max_suppression函數(shù)。這里多說(shuō)一句YOLOv5倉(cāng)庫(kù)實(shí)際上早在0.7版本之后就在默認(rèn)路徑上避免使用torchvision.ops.nms了所以這個(gè)問(wèn)題主要影響的是通過(guò)pip install -U torchvision誤升級(jí)到新版torchvision的場(chǎng)景。如果你在安裝時(shí)嚴(yán)格固定torchvision0.12.0這個(gè)版本和torch 1.11.0匹配大概率能繞開(kāi)。這個(gè)坑排查的價(jià)值在于它告訴我們模擬器環(huán)境和真機(jī)一樣版本鎖定對(duì)深度學(xué)習(xí)框架項(xiàng)目來(lái)說(shuō)是極度重要的尤其是以毫秒計(jì)的算子實(shí)現(xiàn)版本差異可能直接決定項(xiàng)目能否跑通。4.4 必踩之坑四虛擬環(huán)境激活后 import torch 仍然失敗有一次我在某臺(tái)新PC上重新搭整套環(huán)境virtualenv創(chuàng)建成功進(jìn)入rootfs激活venv后Python版本檢查正常但import torch報(bào)出找不到torch._C模塊的錯(cuò)誤。這種情況最氣人因?yàn)榘姹緳z查顯示torch已經(jīng)裝上了甚至pip show torch也確認(rèn)包位置無(wú)誤。排查過(guò)程讓我意識(shí)到這是venvinside-chroot場(chǎng)景下PYTHONPATH發(fā)生了混亂。在chroot環(huán)境中venv激活腳本會(huì)把一些路徑硬編碼進(jìn)去但宿主機(jī)和rootfs之間的絕對(duì)路徑又不一致導(dǎo)致Python加載擴(kuò)展模塊時(shí)找不到真正的.so文件。定位方法很簡(jiǎn)單(venv) python3 -c import torch; print(torch.__file__)如果能輸出site-packages/torch/__init__.py但隨即在加載torch._C時(shí)失敗那就是擴(kuò)展模塊路徑的問(wèn)題。解決辦法是不要依賴activate腳本直接設(shè)置好PYTHONPATH和LD_LIBRARY_PATHexport PYTHONPATH/opt/yolo_env/lib/python3.9/site-packages export LD_LIBRARY_PATH/usr/local/python3.9/lib:$LD_LIBRARY_PATH確保這些動(dòng)態(tài)庫(kù)路徑都在你的環(huán)境變量里import torch大概率就正常了。這個(gè)問(wèn)題的根本原因在于QEMU模擬環(huán)境下的動(dòng)態(tài)鏈接器在某些情況下不如原生環(huán)境靈活所以手動(dòng)指定運(yùn)行時(shí)庫(kù)路徑比依賴默認(rèn)搜索機(jī)制更可靠。4.5 其余零散但高頻的坑除了上面四個(gè)大坑還有幾個(gè)頻率高但解決起來(lái)快的小問(wèn)題列成清單方便你排查現(xiàn)象排查方向建議處理OpenCV讀不了圖片opencv-python是GUI版依賴libgtk卸載后裝opencv-python-headlesspillow版本沖突YOLOv5依賴pyyaml較老與pillow 10.x不兼容鎖定pillow 9.5.0matplotlib渲染崩潰模擬器無(wú)顯示環(huán)境字體文件缺失提示使用Agg后端MPLBACKENDAgglibopenblas加載失敗BLAS庫(kù)路徑錯(cuò)誤在rootfs里apt install libopenblas-dev libatlas-base-devtorch推理耗時(shí)異常長(zhǎng)QEMU的浮點(diǎn)模擬損耗這是正常現(xiàn)象記錄數(shù)據(jù)即可不優(yōu)化模擬器尤其是OpenCV這個(gè)問(wèn)題幾乎每個(gè)用YOLOv5系列的人都會(huì)碰到。原因在于很多ARM基礎(chǔ)教程里為了省事直接裝opencv-python全量版但香橙派5上可能缺少對(duì)應(yīng)的GTK依賴導(dǎo)致圖片讀取路徑上的cv2.imread返回None。排查依據(jù)是cv2.imread沒(méi)報(bào)錯(cuò)但result全是空針對(duì)這個(gè)坑我強(qiáng)烈建議在模擬器和真機(jī)上都統(tǒng)一使用headless版本省時(shí)省力。4.6 從模擬器到真機(jī)的遷移技巧既然整個(gè)仿真環(huán)境的意義就是為了最終的板子部署最后說(shuō)說(shuō)怎么把這套環(huán)境“搬”到香橙派5上。本質(zhì)就是打包rootfs和Python依賴然后拷貝到開(kāi)發(fā)板的SD卡或SSD上。先明確目標(biāo)機(jī)的rootfs目錄就是你模擬器里用的/opt/op5-rootfs打包它c(diǎn)d /opt sudo tar -czpf op5_rootfs.tar.gz op5-rootfs注意tar打包時(shí)要保留軟鏈接和權(quán)限-p參數(shù)不能少。生成的包大概有2到3GB取決于你安裝的PyTorch和依賴拷貝到真機(jī)上解壓即可。但這里要提醒解壓到真機(jī)后不能直接用chroot進(jìn)入因?yàn)檎鏅C(jī)會(huì)運(yùn)行自己的內(nèi)核和rootfs里的Debian mirror的源配置不一致。我這個(gè)方法的精度是“依賴打包遷移”不是“系統(tǒng)整盤(pán)燒錄”你真正拿到真機(jī)上用的是rootfs里的/usr/local/python3.9目錄以及YOLOv5倉(cāng)庫(kù)和訓(xùn)練好的權(quán)重文件。這些文件在真機(jī)上放入系統(tǒng)的對(duì)應(yīng)目錄并配置好環(huán)境變量就能無(wú)縫激活。同步文件時(shí)的建議是直接用SCP或rsync因?yàn)橄愠扰?在局域網(wǎng)里的訪問(wèn)很方便rsync -avz --excludeproc --excludesys /opt/op5-rootfs/ userorangepi5:/opt/op5-rootfs/同步完之后在真機(jī)上設(shè)置環(huán)境變量并驗(yàn)證Python和torch版本配合前面在模擬器里跑通的業(yè)務(wù)代碼真機(jī)推理就水到渠成了。而且因?yàn)榄h(huán)境版本完全一致模擬器里排過(guò)的一切坑在真機(jī)上都不會(huì)再出現(xiàn)。這套路我前前后后用了四五次每次的效果都相當(dāng)穩(wěn)定。其實(shí)說(shuō)到底PC端模擬器的價(jià)值不在于替代真機(jī)而是把風(fēng)險(xiǎn)前置到開(kāi)發(fā)階段。環(huán)境對(duì)了版本鎖定了邏輯跑通了上板只是時(shí)間問(wèn)題。個(gè)人在實(shí)際操作中的一個(gè)體會(huì)是模擬器環(huán)境里無(wú)意中引發(fā)的“異常指令”和“軟鏈丟失”這些問(wèn)題反而讓我對(duì)arm64架構(gòu)的運(yùn)行邏輯比直接上手真機(jī)還要明白。希望這篇手把手的內(nèi)容能幫你少走幾步彎路。最后再分享一個(gè)小技巧仿真環(huán)境里的pip freeze輸出一定要保留成文件連同rootfs一起存好就算之后你的真機(jī)環(huán)境真被折騰壞了隨時(shí)還能拿這套東西快速重建一個(gè)完好的工作環(huán)境。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
日韩精品超碰在线观看| 成人做爰A片免费看视频| 97碰 在线视频观看| 六月丁香五月天| 91操片| 丁香婷婷久久| 另类在线| 久久的爱大香蕉| 高清无码视频网址| 天天爽天天| 久热这里只有精品3| 潘金莲AAAAAAAAAA| 99热在线观看| 天天插天天插| 涩五月婷婷| 色婷婷五月天激情在线观看| 天天搞天天色综合| 久久久久人无码人妻| 站长推荐无码播放| 4399在线观看免费毛片| 碰碰碰91| 久草丁香婷婷五月天婷| 亚洲在线成人| 超碰猛烈的性猛交| 国产.亚洲.欧洲视频在线| 99在线精品视频| 99色视频免费在线规看| 五月四色婷婷| 丁香女人五月天| 综合五月丁香六月婷婷| 99 福利 导航| 国产色香蕉精品五夜婷| 91av无码| 欧美超碰人人| 久xxxx| 五月婷婷六月爱| 丁香亭亭激情四射| 99在线看视频| 色约约视频一区二区三区四区五区| 天天做天天爽| 99激情视频| 国产性爱一级| 97超碰综合| 五月激情影视| 天天操天天插| 91超碰在线观看| 亚洲激情五月天| 色五狠狠| 97五月天| 97干97色| 亚洲综合九九| 在线看的免费网站| 婷婷天堂伊人| caopeng97人人| 91亚洲视频| 免费三级黄色| 久9热在线免费观看| 99re在线播放| 亚洲人妻av伦理| 婷婷五月电影| 天天日天天干天天操| 狠狠草狠狠草| 亚洲精品又粗又大又爽A片| 五月天啪啪| 综合久久综合久久| 五月婷婷综合在线| 九九色综合九九色| 97操在线视频| 性一交一乱一交A片久| 79精品视频在线观看,| 五月丁香成人| 夫妇交换刺激做爰| 婷婷综合偷拍| 婷婷欧美色| 成人五月天在线观看| 婷婷中文字幕| 特级片神马电影| 婷婷五月丁香六月天亚洲综合| 操射国产日本| 丁香六月婷婷色XXXXX| 五月天激情综合| 五月激情天| 国产日产亚洲系列最新| 久久人五月| 91色噜噜狠狠狠狠色综合| 激情视频91| 五月天婷婷网站888| 精品久久久999| 思思热闹这里只有精品| 婷婷五月色網站| 五月婷亚洲精品| 噜噜在线| 91九色超碰| 碰碰碰91| 五月社区婷婷激情| 97碰| 丁香五月大香蕉在线99| 日韩婷婷| 79精品视频在线观看,| 国产精品色婷婷久久久精品| 97超碰,人人舔,人人操,人人摸| 婷婷六月丁综合| 色婷婷综合成人| 激情图片亚洲| 99精品无码| 26uuu成人网| 婷婷五月丁香基| www99在线观看视频| 第二色AⅤ| 天天操天天日天天操| 91视频五月丁香| 狠狠色综合网| 丁香五月婷婷av| 丁香婷婷六月天| 丁香五月天色婷婷| 婷婷五月丁香国产| 丁香六月视频| 狠狠五月天| 中文超碰视在线| 亚洲另类婷婷五月丁香在线播放| 婷婷久久丁香| 九久九精品| 97精品在线| 疯狂做受XXXX高潮A片动画| 大香蕉在线观看9| 欧美色图45678| 综合五月天完整| 色婷五月天| 99WWW免费视频| 色婷婷五月六月丁香综合视频| 美国色五月天婷婷资源站| 婷婷伊人网| www天堂99| 99热99思午夜精品| 五月丁香婷婷综合| 另类五月婷婷| 欧美日韩999| 99在线免费视频播放| 丁香五月精品视频| 天天操天天操天天操天天操天天操| 91碰免费视频| 性天天中文网| 91九色成人原创视频| 色波激情五月天| www,超碰| 97人人操人人爽| 天天干天天插| 欧美人久久| 五月婷婷丁香五月天| 狠狠精品干练久久久无码中文字幕| 九月激情综合| 91爱啪啪| 另类激情五月天。| 国产精品日本一区二区在线播放 | 日日做A爰片久久毛片A片英语| www.henhenl| 99热这里只有精品最新| 色婷婷播放| 天天爱天天做天天爽| 丁香五月婷婷基地| 狠色狠色狠色狠色狠色网| www九九热| 99色五月| 五月天婷婷丁香| 亚洲综合色色| 嫩草AV久久伊人妇女超级A| 久久最新色色色| 97久久超碰| 五月天丁香久久| 五月婷视频在线| 欧美日本高清视频99| 五月天桃色深爱网| 欧美日韩91| 精品人人操| 亚洲综合视频网| 五月婷婷性| cao视频,现在观看| 久久六月综合| 成人精品在线观看| 国产偷人爽久久久久久老妇APP| WWW色综合| 久久婷婷伊人| 涩涩涩.com| 怡红院成人AV| 天天干天天爽| 久久这里只| 射久久丁香五月| 五月婷婷av| 五月丁香怕啪啪| 99久久国产宗和精品1上映| 婷婷五月天无码视频| 少妇性BBB搡BBB爽爽爽视頻| 五月丁香AV、伊人业余、性色熟妇| 搡BBBB搡BBB搡五十| 五月天激情无码高清| 伊人久热91网| 色色五月婷| 五月丁香激情欧洲啪啪| 激情五月天视频| 激情五月天色播| 99视频这里只有久久精品| 爱久久小说下载网| 51XX午夜影福利| 欧美噜噜免费观看| 色综合香蕉| 日日干天天| 天天爽夜夜爽天天爽夜夜爽| 五月色在线| 婷婷色色综合| 六月丁香啪啪啪| 激情五月天小说视频| 超碰爱爱爱| AVDV久久| 色吧五月婷婷| 综合激情视频| 天天色综合网吨吧| 伊人日日干| 琪琪色影音先锋| 精品色色| 五月激情六月宗合| 五月天丁香婷婷社区| 婷婷五月色花丁香社区| 五月婷婷中文字幕| 99噜噜噜| 五月丁香六月婷婷激情四射| 婷婷色影音天| 99热这里有精品| 天天做天天爱天天玩| 久久久久久久久久久久久久人妻视频| 操逼六区| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 日本天天色| 六月欧美综合色情| 亚洲思思热久| 久久婷婷婷| 欧美三级视频| 超碰熟女农村在线69| 成人 在线 日韩| 伊人啪啪网| 精品无码色| 久久久性爱视频| 狠狠爱丁香婷| 1024人妻无码中文字幕| 青青草婷婷五月天| 婷婷久综合| 无码人妻丰满熟妇奶水区码| 亚洲综合色网| 国精产品一区一区三区免费视频| 天天爽天天| 日韩久久视频| 九九aV| 五月婷综合| 五月婷婷干| 热久久77777| 九九色影院| 丁香五月黄色| 色色网站日本91| 被强行糟蹋的女人A片| 婷婷五月天综合在线| 婷婷五月天久久| 日韩精品一品二区三区的使用体验| 深爱激情丁香五月| 亚洲五月天另类小说图片| 婷婷五月情天| 丁香六月综合| 亚洲另类电影| 伊人综合网站| 热久91| 嫩草视频| 久操热线| 丁香五月婷婷六月婷| 这里只有精品视频在线观看免费| 伊人天天色| 国产精品噜噜在线视频| 激情色情五月天| 天天做 天天爱| 色色综合网络| 97人人干| 五月天激情网图片| 91狠狠色丁香婷婷综合久久狠丁香综合久久精品| 麻豆AV一区二区三区| 色色色色五月| 色婷婷综合久久| 欧美成人精品A片免费一区99| 99操| 亚洲影院婷婷色| 第1影院之五月婷婷| 91疯狂操操操操| yellow视频在线观看91| 国产精品色婷婷99久久精品| 丁香五月婷婷激情四射| 99热这是里只有精品| 99色视频在线观看| 五月婷婷导航| 欧美顶级少妇做爰HD| 中文字幕不卡网站| 97碰在线| 久久免费婷婷视频| 色五月在线观看| 婷婷久久综合| 成人色图情色成人网 www.5b5b5bcom 五月天 | 婷婷五月天男人影院色色网| 99∨VTV| 丁香五月自拍| 婷婷九月久久| 99热在线资源| 夜夜撸天天日| 色色99| A片试看50分钟做受视频| 久久六月婷婷| 五月天激情播播网| 五月天婷婷综合网| 色色欧美色色色| 婷婷五月天综合在线 | 婷婷五月丁香久久| 啪到高潮激情丁香五月| 99精品综合视频| 欧美日韩一区二区三区四区| 美女va| 亚洲第一精品成人999久久精品| 丁香五月香蕉| 狠狠的日| 亚洲黄色影视| 最新日韩久热免费视频看看| 色性日本| 99国产精品久久久久久久久久久| 欧洲不卡视频| 久久国产色| 国产69久久久欧美黑人A片| 国产亚洲av片| 久久久久久丁香五月| 色啪综合| AV动漫不卡无码免费| 超碰人人草| 天天色综网| 国产精品18久久久| 综合亚洲六月婷婷在线| 丁香五婷婷| 伊人久久婷婷五月综合97色| 成人网站在线观看视频| 岛国AV网| 三日本无码| 九九热再线九九视频免费在线观看| 激情影院丁香五月| www.九九婷婷| 五月婷婷在线综合| 中文字幕丰满乱孑伦无码专区 | 五月天激情网站| 午夜福利8055| 婷婷六月丁| 丁香婷婷五月香蕉91| 丁香五月色网| 久久99精品久久久久久噜噜| 99久久国产综合精品五月天喷水\| 五月丁香婷婷综合久久| 五月丁香综合激情网| 婷婷五月天丁香久久| 婷婷色色网| 激情综合网激情五月天| 这里只有精品视频在线| 香蕉乱插| 91日视频| 日韩无码专区| 丁香五月天黄色片| 色欲色天天香综合| 99思思| 五月丁香久久综合| 久久综合丁香激情五月| 超碰在线91| 大香网伊人久久综合| 97超碰在线免费观看| 婷婷五月天黄色小说| 182tv992tv人之初午夜免费观看| 九九爱激情| 五月婷婷碰碰| 99这里只有精| 五月婷婷偷拍| 五月天激情网图片| www.伊人天堂偷偷婷婷| 久久玖玖99| 五月丁香六月婷婷无码| 久久婷婷人人| 国产这里只有精品| 婷婷综合伊人丁香| 色婷婷情片| 香蕉AV777XXX色综合一区| 男女啪啪做爰高潮无遮挡| 精品网站99| 丁香久久在线| 激情六月丁| 91成人看片| 女人天堂 AV| 超碰色人妾| 大香蕉99热| 丁香5月激情网| 九九色色| 丁香色婷婷| 成人综合视频在线| 人妻体体内射精一区二区| 丁香六月成人网| 91九九热| 丁香五月天之婷婷影院| 久久人妻伊人| 99这里只有精品视频免费| 五月激情小说| 激情五月婷婷五月| 五月丁香日本在线视频观看| 另类图片五月激情| 色综合五月天| 五月婷婷六月丁香在线| 九九热只有精品6| 婷婷干| 久久婷婷五月天激情四射| 亚洲美女婷婷五月天| 2017人人操| 操操精品| 色色色999| 六月丁香激情网| 噜噜噜狠狠色综合| 亚洲狠9| 久久五月丁香婷婷| 色婷婷久久综合丁香五月| 精品99在线| A片试看50分钟做受视频| 五月天综合久久| 日韩欧美一区二区三区四区| 射琪琪| 少妇被下春药玩弄A片| 五月天精品综合在线| 国产五月天婷婷| 激情综合丁香六| 99热这里只有精品4| 丁香五月六月久久综合| WWW99热| 色噜噜丁香| 91狠狠色丁香婷婷综合久久| 欲色人妻| 久久视9精| 色玖玖| 天天爽夜夜爽夜夜爽精品视频| 五月丁香激情片| 激情九色| 九九热婷婷| 久草丁香婷婷1024| 中文字幕人妻熟女在线| 婷婷丁香色五月| 五月婷婷丁香五月 | 97碰久久| 五月天婷久精视频| 欧洲亚洲激情五月天在线| 激情婷婷| 色情五月丁香| 久久九九爽| 五月丁香网站| 久久婷网| www.99婷婷| 婷婷五月天久草在线| 久热婷婷| 五月丁香六月玩女人| 激情婷婷亚洲五月| 久婷| 91色婷婷综合久久中文字幕二区| a九九热www| 综合五月丁香97| 婷婷狠狠香蕉综合| 综合色视频| 日韩AC在线免费观看| 成人国产欧美大片一区| 日韩AV中文在线观看| 粉嫩av懂色av蜜臀av熟妇| 久久99热免费最新版| 色婷婷九月| 91婷婷| 色五月婷婷av| 精品久久99| 中文字幕亚洲-区久久99婷婷| 五月婷婷久久网| 俺也去综合| 思思热国产视频| 激情五月天啪啪| 男女免费视频999| 任你日热视频| 日韩久久视频| 人人干天天舔| 伊人网大香| 嫩模草| 国产乱子轮XXX农村| 9久热| 久久色情| 色噜噜狠狠一区二区三区| 欧美婷婷综合| AV操操操| 女人被躁到高潮嗷嗷叫小| 亚洲午夜成人av电影网| 在线91日韩| 婷婷丁香精品视频在线观看| 色婷婷91| 久久资源网五月婷| 久久五月天激情美女| 婷婷色在线播放| 婷婷四色五月| 久久这里只有精品无码| 久久久久久人妻| 婷婷99狠狠| 男女啪啪做爰高潮无遮挡| 丁香五月中文字幕| 全部老头和老太XXXXX| 5Www色5夜| 婷婷伊人久久无码色五月| 激情九九九九| 99久在线观看| www,五月丁,com| 五月天婷婷色小说| 婷婷五月综合社区| 99燥99日| 伊人久久婷| 国产1区2区3区在线观| 亚洲婷婷丁香五月视频| 日韩超碰在线| 五月天丁香婷婷网| 538任你爽视频不一样的| 天天爱天天做天天日| 亚洲 无码 中文字幕 中出| 热久久66| 欧美色欲色欲天天天www| 色婷婷免费视频| 精品香蕉99久久久久网站 | 大香蕉懂9| 人妻狠狠操| 91九色在线| 激情久久天天| 日韩av在线电影| 国产AV一区二区三区日韩| 色色色婷婷| 日本婷婷网| 五月情婷婷五月| 9l视频自拍九色9l视频在线观看| 精品少妇人妻AV无码专区偷人| 第四色五月婷婷| 婷婷五月丁香基| 色五月婷婷av| 精品亚洲日韩99欧美片| 天天爽夜夜爽夜爽精品| 丁香激情网| 午夜爱插插| a久久免费视频| 国产无人区大片| chaopengdaxiangjiao| 91精品久久久久| 丁香五月人妻| 九九色中文| 人妻五月天激情开心网| 99免费在线视频| 丁香五月 性爱| 国产日批视频| 婷婷啪啪| 亚洲va日| 五月丁香六月激情在线| 九九青草热| 99亚洲色色| 欧美日韩二区在线| 丁香婷婷六月激情文学 | 亚洲天码视频www蛋播视频| 成功精品影院| 丁香无五月网| 婷婷伊人五月天| 欧美97超碰| 99热99成人| 色五月五月丁香| 人人操av| 色吊丝永久访问网址| 久久色在线视频| 婷婷久久综合| 99在线观看视频免费| 亚洲九九视频| 小泽玛利亚视频一区二区| 婷婷丁香五月亚洲| 婷婷六月丁香五月图区| 99成人小视频| xxxx五月天色色| 狠狠狠夜夜夜| 99热在线爱| 色偷偷五月天| 色五月激情| 六月婷婷av| 午夜色婷婷| 丁香六月伊人| 99久久视频| 人人综合久| 日韩人妻无码专区| 国产精品久久久久久久久久| 亚洲mm色| 五月天婷婷丁香人人操91| 五月丁香AV在线| 97久久超视频| 中文字幕AV网址| 五月色色色| 99爱爱| 欧美五月丁香在线观看| 日本天堂网站99| 这里只有精品无码| 天天爽在线视频| 中字幕视频在线永久在线观看免费 | 99人妻碰碰碰久久久久视| 婷婷色网址| 五月婷亚洲精品| 九热免费视频| 嫩草AV久久伊人妇女超级A| 亚洲VA在线| 丁香香蕉婷婷| 日韩人妻无码专区| 人人舔人人| 色久女| 三男玩一女三A片| 久久婷婷国产| 色五月激情五月| 99九九视频| 天天激情5月天亚洲| 国产伦亲子伦亲子视频观看| 开心五月婷婷| 米奇激情婷婷| 九色 在线| 一点色成人网| 亚洲 视频 导航 一区| 另类精品视频在线观看| 强辱丰满人妻HD中文字幕| 丁香五月亚洲激情婷婷射| 色爆五月| 婷婷成人五月天| 99热成人精品| 亚洲在线资源| 九色激情| 成人无码髙潮喷水A片| 激情综合丁| www婷婷| 91九色超碰| 欧美一级色| 天天色综网| 99精品视频免费在线播放| 国内9l视频自拍老熟女九色| 97操操操| 激情五月天综合婷婷网| 婷婷色色播五月天| 婷婷丁香五月天婷婷| 9色免费网| 91丨九色丨东北熟女| 亚洲中文乱字字幕线在永久| 大功率国产在线| 思思干精品| 亚洲AV成人在线| 五月天.com| 99亚洲大片精品永久在线观看| 91婷婷色 | 丁香五月综合在线观看| 国内裸舞二区| 成人精品在线观看| 99热在线中文字幕| 91热网址| 婷婷五月激情五月丁香五月| 久久香蕉网| 天天操B| 色色AV色色色东莞| 久久99视频| 91日韩美女被插视频| 婷婷色资源| 国产精品A成V人在线播放| 婷婷金品综合视频| 91chinese在线| 成人五月天婷婷| 免费碰碰视频久| 精品久久久久成人码免费动漫| 久久五月丁香| www.久热| 日韩婷婷| 青青草免费公开视频| 影视av久久久噜噜噜噜噜三级| 婷婷六月丁香欧美视频在线| 亚洲综合丁香五月天| 校园激情 亚洲| 亭亭五月丁香综合欧美| 天天操天天日天天爱| 亚洲中文字幕网| 熟女国产在线一区二区三区四区| 亚洲9久久精品| www.久久久久久久久久.com| 超级碰碰碰久久网站| 九九热在线精品视频| 久久久久久人妻| 五月丁香| 国产FREESEXVIDEOS性中国| 久久婷婷五月| 丰满老熟妇BBBBB搡BBB| 无码日本精品XXXXXXXXX | 国产人妻777人伦精品HD| 婷婷五月欧美综合| www.com在线操视频免费观看| 五月婷婷综合在线| 色五婷婷在线视频| 大香蕉婷婷色| 色色色热| 沈娜娜av| 国产av基地| 国产色网站| 色丁香五月婷婷| 99这里有精品视频| 高清国产AV| 丁香婷婷五月天激情四射| 五月丁香手机在线| 26uuuavcom| 久热这里只有精品视频免费观看| 丁香六月婷婷色播| 婷婷五月丁香五月| 婷婷在线日韩综合| 日本97在线视频| 久久色在线视频| 91九色视频| 色色综合网站| 最新亚洲色色网| 另类小说激情五月天| 99热青青草| 欧美激情综合| 9999热精品| 在线观看日韩12345区| 免费看成人747474九号视频在线观看| 99热久| 婷婷色五月久久| 。久久久久久久久久久久久久人妻| 色偷偷综合| 丁香五月大香蕉| 996re热精品视频| 婷婷色九月| 色啪网| 5月婷婷五月天| 九九黄色网| 午夜AV网| .操區COm| 激情五月天综合网| 色日本颜射| 婷婷射图| 开心五月天激情网站| 99精品在这里| 亚洲色五月婷婷| 国产视频久色| 色射影院| 综合激情站| 日韩天堂久久| 激情小说五月天中文字幕| 亚洲AV网站在线观看| 丁香婷婷老熟女综合网| 欧美性二区| 丁香五月婷婷五月| 国产做爰视频免费播放| 91超级碰| 色婷婷综合影院| 91麻豆国产三级精品福利在线观看| 久久久久9| 五月色精品| 能看的AV| 九九久久综合| 思思热在线播放| 日韩精品无码一区二区| AV色五月婷婷| 免费五月婷婷网| 日日做A爰片久久毛片A片英语| 操97| 婷婷六月啪啪| AV动漫不卡无码免费| 这里只有精品视频99| 五月丁久久| 五月丁了香蕉综合| 亚洲成人高清在线| 婷婷综合亚洲| 亚洲免费99| 狠狠色狠狠操| 97色在线视频| 99热在线观看精品| 91精品又长又大又粗又爽又猛| 巴基斯坦粉嫩无码视频| 日本无码专区| 久久婷婷五月天| 99在线热| 久久婷综合| 青青草原亚洲天堂| 天天网曰日曰夜夜综合永久免费| 色婷婷综合五月| 亚洲精品无码一区二区| 狠狠88综合久久久久噜噜噜| 99色干| 操操操91| 五月丁香亭亭天天舔| 野战J办公桌椅H| 色射影院| 婷香五月激情视频| 影音先锋噜一噜| 99自拍视频在线观看| 伊人久久大香网| 婷婷色五月天综合网| 激婷网| 丁香五月天的网址。| 国外亚洲成AV人片在线观看| 东京热伊人| 久操人| 激情五月天丁香| 大香蕉五月天| 婷婷丁香五月天综合AV| 午夜丁香| www.cao.com久久| site:hcxsz888.com| 丁香六月啪| 国产偷人爽久久久久久老妇APP| 九九爱看亚洲| 这里只有精品,日韩视频| 亚洲欧美综合7777色婷婷| 免费看欧美成人A片无码| 丁香花婷婷五月天| 丁香五月婷婷综合网| 啪啪视频99| 99精品综合| 天天射美女| 99国产精品白浆在线观看免费| 日韩三十六页| 丁香五月天论坛| 久久五月天色婷婷| 欧美日韩成人一区二区| 人妻中文在线| 97超碰婷婷五月天| 亭亭五月天黑人2014| 婷婷欧美激情| 东京热免费视频| 丁香美女主播视频在线观看| 九色激情网| av九九| 伊人狠狠狠综合| 久久婷婷五月综合| 都市激情五月婷婷亚洲| 9热在线视频精品| 99精品亚洲| 久久免费丁香| 99网| 五月天综合色| 综合激情五月丁香9999久久精| 97成人丁香| 色欲天天综合网| 国产婷婷色五月| 中文AV网站| 草草视频91| 美女美女美女三级色天天天天天| 国产激情AV| 噜噜操操| 97丁香五月天| 色www.con| 一点色成人网| 日日噜噜夜夜狠狠久久丁香六月| 五月天快乐开心激情网| 亚洲人操亚洲人| 狠狠色综合网站久久久久| 99热99re6国产在线播放| 久久久久9| 中文在线视频久9| 婷婷激情人妻| 激情宗合 激情宗合| 精品一区二区三区四区五区六区介绍| xxxx五月天色色| 精国产品一区二区三区A片| 久久五月天综合视频网站| 狠狠久久婷| 亚洲经典三级| 97人人草| 另类综合色| 婷婷六月天激情影院| WWW.天天日| 操97免费超级视频| Www.Av网9| 亚洲婷婷五月天| 思思热久久久在线| 丁香五月天人体| 4399无码视频| 亚州色色色| 五月婷婷网站| 五月婷婷,六月激情| 思思久久99热| 9 1 A v久久久| 亚洲午夜AV| 久久久久亚洲AV无码网影音先锋| 亚洲99在线视频| 77799热| 噜一噜免费视频| 亚洲精品无码久久| 欧美大道不卡| OYIWbGcPu8H| 麻豆观看夏晴子| 六月丁香五月婷婷| 九九热在线视频| 五月天婷婷在线AN| 天天日天天干天天爱| 99热精品网| 亚洲图色五月天| 久久性爱视频| 婷婷五月天网址| 华人在线免费| 婷婷五月天日本无码| site:wpjngj.com| 97操视频| 91人人操人人看| 日本欧特黄色刺激一区影视久精品无码| 婷婷中合| AV片在线观看| 色播五月婷婷| 五月婷婷在线视频观看| 五月天婷婷无码| 综合色播| 五月综合激情| 日本天天色| 激情五月少妇| 99在线爽| 热久久精品视频网站| 黄色成人网站在线播放| 婷婷黄色| A片一曲| 玖玖午夜视频| 婷婷五月丁香激情图片| 久久免费试看120秒| 欧美超级视频97| 99九九精品视频| 亚洲思思热久| 在线色色| 久久激情视频| 五月婷婷黄色| 五月婷婷偷| 色欲久久综合| 六月丁香婷婷网| 亭亭五月天成人| 激情五月丁香亭亭| 色婷婷久久综合| 欧美日韩aaa| 噜噜狠狠色综合久| www夜夜操| 欧洲色色| 毛片九九九九九九九九18| 国产亚洲色婷婷久久99精品9j| 六月婷婷九月丁香| 九九久久综合| 五月丁香六月情婷婷久久| 99热精品中文字幕| 99热久97| 在线婷婷| 五月婷久久在线| www色中色综合| 色色99| 婷婷激情性爱| A片试看120分钟做受图片| 九九热10| 亚洲精品字幕| WWW.久久久久久久| 久青操| 综合网色| 1010日日无码| www久久99| 99色爱| 91视频精品99| 激情综合丁| 色综合色五月| 激情婷婷色色| 五月天丁香久久综合| 色婷操逼| 五月丁香六月婷婷视频| 色婷婷亚洲精品天天综| 国产欧美精品AAAAAA片| 久热亚洲| 伊人狠狠操| 丁香五月婷婷影院| 久久婷婷五月丁香蜜桃网| 九九碰九九爱97超| 色色cOm| 99久久久| 停停五月色宗合| 很很干五月天| 色婷婷五月天偷拍| 激情婷婷五月天| 99热热热99精品丁香| 啪啪激情网| 五月丁香天堂网| 日韩成人无码人妻| 色欲色香,www,com| 丁香五月日本| 第四色五月天| 色婷久九| 99热精品综合| 久9热| 91视频久久久| 日日日影院| 色香欲综合| 国产操B视频| 色深爱五月| 2018夜夜草| 色色亚洲无码| 色色色色色色网站| 婷婷五月五月丁香| 一本久久亚洲五月婷婷| 91久热| 日良久久| 99热99美国在线观看| 婷婷五月激情基地| 五月激情偷拍婷婷| 99视频网| 97操碰98| 日撸夜撸日操| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 五月丁香成人| 国产美女视频久| 日本色色影院| 深爱五月婷婷开心中文字幕| 色色吧综合| 九热视频在线精品15| 婷婷六月色开 | 五月草视频| 天天爽天天操| 婷婷丁香五月天大香蕉| 五月深爱网| 97日本在线播放| 日本久久爽| 狠色狠色狠狠色综合网| 色播播五月天| 涩涩涩,com| 99超级碰碰| 久9视频免费播放| 国产精品色婷婷99久久精品| 丁香五月婷婷Av| 夜夜骑夜夜撸| 亚洲V国产V欧美V久久久久久| 天天日天天狠狠操| 五月天精品| 五月婷婷成人w| 久久中文网| 天天爽日日爽夜夜爽| 色约约视频一区二区三区四区五区 | 色情五月婷婷| 狠狠狠人妻| 99精品综合| 天天激情视频| 婷婷五月丁香基| 日韩视频99| 在线不卡中文字幕| 91超碰九色| 日日夜夜狠狠婷婷色| 免费观看全黄做爰的视频 | 国产亚洲在线观看| JAPANRCEP老熟妇乱子伦视频| 性婷婷| 狠狠狠狠狠狠草| 五月天激情图片| 亚洲字幕AV一区二区三区四区| 久色五月| 日日操夜夜操中国无码| 丁香五月天亚洲视频| 丁香九月激情| 精品成人无码A片观看香草视频| 色五月丁香五月婷婷五月成人网| 狠狠色婷婷7777久综合| 久久免片| 可以直接看的AV网站| 国产色色色色色| 久久精品4| 日本va欧美va精品发布视频| 九月婷婷人人操人人舔人人爱| 五月丁香花视频| 日本本土色网第一区| av九九| 日韩一区二区三区无码| www色色色com| 五月丁激情| 亚洲啪| 欧美内射AA| 9|无码久久久久久| 岛国在线观看91| 狠狠做深爱婷婷久久综合一区| 久热天堂| 成人午夜视频精品一区| 96丁香六月婷婷蜜桃综合久久| 99精品久久| 91在线人| www.狠狠| 丁香六月婷| 综合99在线| 97人妻碰碰碰久久久久-最近国语高清| 99热在这里只有精品| 99亚洲无码| 九九热这里只有精品556| 操碰99在线视频观看| 天天摸天天肏| 天天搞天天色综合| 日韩色色网| 操操日韩| 日本女色人人| 中文字幕永久在线| 日韩三级片一区二区| 天天色综| 538在线精品| 丁香色婷婷| 66成人网| 黄色五月婷婷| 九九热99在线视频| 人人草开心五月天| 色五月视频无码播放| 美欧成人视频| 婷婷五月婷婷| 天天拍天天做视频| 色婷婷久久久| 国产性爱大片久久| 97色婷| 开心五月婷婷99| av婷婷丁香 六月| 超碰97干| 丁香激情五月少妇| 影音 五月 婷婷 久久| 91五月天| 99热这里只有精品2| 亚洲在线激情婷婷五月| 激情久久久久久| 91在线资源| 欧美午夜乱妇午夜福利| 五月天久久婷婷| 欧美五月婷婷| 99热这里只有精品9| 婷婷五月深情丁香深爱日韩| 九色 在线| 日本波多野结衣视频| 亚洲乱码日产精品BD| 亚洲午夜av| 91久久久久久| 日韩精品999| 婷婷五月激情网站| 91九色在线| 日日噜狠狠| 亚洲天堂AV综合网| yw国产AV| 亚洲AV成人无码精品| 九热视频在线精品15| 丁香婷婷激情综合五月激情| 操操国产| 丁香婷婷五月色成人网站| 四川BBB搡BBB搡多人乱亂| 五月综合久久| 高清无码网址| 99久热| www.yw尤物| 婷婷激情图片| 伊人丁香花综合影院| 婷婷丁香成人网址| 色爱终和网| 99视频这里只有久久精品| 中文人妻主播久久| 亚洲射激情| 激情五月色综合国产精品| 久久机只有这里精品| 战争与艾拉电影免费观看| 激情综合网五月丁香| 97干在线视频| 色噜噜狠狠色综合网| 久久婷五月婷| 激情五月天啪啪视频| 婷婷少妇激情| 九9九9无码| 日本不卡中文字幕| 66精品国产成人| 深夜婷婷五月丁香| 婷婷激情五月综合在线视频| 97啪在线观看视频| 开心五月婷婷伊人| 美女伊人久久| 97操在线视频| 99久久国产成人精品| 日韩精品一品二区三区的使用体验| www.激情五月天。com| 五月停亭六月,六月停亭的英语| 99色视| 亚洲婷婷五月天激情综合| 玖玖资源站中文| 97色热| 综合色播| 亚洲AV日韩在线观看| 99人人操| 五月丁香| 都市激情久久| 激情五月天www| 99精品热视频| 狠狠五月天| 五月天激情婷婷| 丁香啪啪中文字幕| 久久久精品99| 丁香五月1页| 青青草视频福利| 久久538| 婷婷五月在线观看| WWW.HENHENL.| 天堂久久精品| 国产一级婬片毛片| 五月天激情网站| 丁香色色色| 操逼五月婷婷| caop在线| 99综合| 伊人深爱综合| 中文字幕 码精品视频网站| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 亚洲激情婷婷| 99re视频在线精品| 国产成人综合在线| 热99只有精品| 狼人久草| 日本成人内射| 国产三级在线播放| 婷婷久久亚洲| 大香蕉久操| 日日夜夜爽| 欧美日韩aaa| 爱99干99| 婷婷五月激情热播| 五月丁香色六月激情干大屄| 天天综合网91| 天天插天天射| 无码动漫AV| 毛片网站谁有| 婷婷五月色色| 综合色、色综合| 热99国产精品| 99热免费在线| 国产精品久久久久9999小说| 丁香综合久久| 97在线/亚洲| 五月天婷婷综合色| 丁香五月婷婷深五月| 天天射影院| 五月美女婷婷风骚| 久青操| 色五月婷婷内射| 国产成人精品亚洲线观看| 色婷婷在线播放| 人妻久久久久久久| 丁香五月天成人| 国产AV一区二区三区最新精品| 丁香五月首页| 五月天激情小说| 婷婷五月天免费99| 色天堂婷婷| 99热精品10| 一级黄色影片| 婷婷九九色| 丁香5月啪啪| 一起草av| 色婷婷基地在线| 色性日本| 亚洲精品V天堂中文字幕| 色之综合网| 激情五月婷婷五月| 丰满少妇猛烈A片免费看观看| 综合激情五月综合激情五月激情1| 99免费在线| 日本精品在线噜噜噜| 亚洲综合婷婷五月| 色色色婷| 欧美色97| 亚洲AV中文在线| 99男人的天堂| 色99日韩| 亚洲精品成人|