99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

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

華為Atlas 300V部署YOLO全流程:從PyTorch到OM模型遷移實(shí)戰(zhàn)

華為Atlas 300V部署YOLO全流程:從PyTorch到OM模型遷移實(shí)戰(zhàn) 1. Atlas到底是什么為什么我用它跑YOLO先說結(jié)論華為Atlas 300V 24G確實(shí)是一塊運(yùn)算加速卡但它不是普通顯卡而是專門為AI推理設(shè)計(jì)的NPU計(jì)算卡。我之所以把YOLO檢測模型從GPU遷移到Atlas上核心原因就三個(gè)字性價(jià)比、能效比、國產(chǎn)化要求。這兩年目標(biāo)檢測需求量太大了安防巡檢、工業(yè)質(zhì)檢、園區(qū)管理、智慧交通到處都在跑YOLOv5、YOLOv8這類模型。以往大家第一反應(yīng)就是上NVIDIA的GPU比如T4、3080、A10之類的。但在實(shí)際項(xiàng)目中你早晚會遇到這么幾個(gè)問題GPU缺貨溢價(jià)、功耗和散熱限制、機(jī)柜空間緊張、以及一部分政企客戶明確要求全鏈路國產(chǎn)化。這時(shí)候Atlas 300V就是一個(gè)值得認(rèn)真評估的替代方案。Atlas 300V 24G這張卡單卡內(nèi)存24GB算力主要走昇騰自研的AI Core不是CUDA Core所以它和GPU的關(guān)系更像是“術(shù)業(yè)有專攻”——圖像渲染、通用計(jì)算它不擅長但跑卷積神經(jīng)網(wǎng)絡(luò)這種算子密集型負(fù)載尤其是低精度推理它能做到很高的吞吐同時(shí)功耗控制得比同級別GPU更好。再說說“Atlas部署YOLO”這件事本身。很多人一聽“部署”就以為是把.pt文件拷貝過去然后調(diào)個(gè)接口實(shí)際遠(yuǎn)沒這么簡單。從NVIDIA生態(tài)切到昇騰生態(tài)需要經(jīng)歷數(shù)據(jù)格式、網(wǎng)絡(luò)結(jié)構(gòu)、算子映射、圖優(yōu)化的全鏈路適配。YOLO模型本身結(jié)構(gòu)并不復(fù)雜就是卷積加殘差加檢測頭但它里面的算子種類不少加上訓(xùn)練用的PyTorch框架和昇騰推理框架的算子實(shí)現(xiàn)有差異所以部署流程里最容易出問題的地方反而不是“能不能跑”而是“怎么讓它跑得快、跑得穩(wěn)、不報(bào)算子不支持”。這篇文章我會按照我實(shí)際做過的一個(gè)項(xiàng)目來走一遍完整流程包括硬件選型、軟件棧梳理、PyTorch模型轉(zhuǎn)ONNX再轉(zhuǎn)昇騰OM格式、AscendCL推理代碼編寫、性能調(diào)優(yōu)和常見報(bào)錯(cuò)排查??赐曛蠹词鼓闶堑谝淮谓佑|昇騰平臺也能對“Atlas上跑YOLO”這件事有一個(gè)整體可落地的認(rèn)知。2. 部署前必須搞清楚的硬件與軟件棧2.1 Atlas 300V 24G硬件定位與參數(shù)理解Atlas 300V 24G在昇騰產(chǎn)品線里屬于邊緣計(jì)算推理卡和訓(xùn)練卡比如Atlas 800T定位完全不同。它主打的是低功耗、高能效推理適合部署在邊緣服務(wù)器、工控機(jī)、智能盒子這類環(huán)境里。先糾正一個(gè)常見誤解這張卡是“運(yùn)算加速卡”沒錯(cuò)但它并不像顯卡一樣直接插上就能顯示畫面或者拿來跑CUDA程序。它需要配合昇騰的驅(qū)動和CANN工具包才能工作本質(zhì)上是“AI協(xié)處理器”所有編程模型都圍繞昇騰自己的AscendCLAscend Computing Language接口來寫。我用的這張卡具體參數(shù)大概是這樣項(xiàng)目規(guī)格說明內(nèi)存容量24GB注意這里指的是板載內(nèi)存相當(dāng)于GPU顯存的作用內(nèi)存帶寬實(shí)測在邊緣推理場景下足夠支撐多路視頻流的并發(fā)檢測推理精度主要跑INT8也支持FP16FP32性能相對弱一些接口形態(tài)PCIe標(biāo)準(zhǔn)卡支持普通x86服務(wù)器也支持鯤鵬/飛騰等ARM平臺核心架構(gòu)昇騰AI Core算力由多個(gè)AI Core集群提供為什么“24G大內(nèi)存”這么重要因?yàn)閅OLO模型本身權(quán)重不大YOLOv5s才14MB左右占內(nèi)存的主要是中間特征圖。當(dāng)你要跑批量推理比如batch設(shè)為4或8連續(xù)處理1080P視頻流時(shí)特征圖會迅速堆積。24G內(nèi)存意味著你可以把更大的batch和數(shù)據(jù)預(yù)處理管線都放在卡上不用頻繁地和CPU來回拷貝數(shù)據(jù)這對推理吞吐提升非常明顯。2.2 昇騰部署的整體軟件棧與概念梳理如果你以前只接觸過CUDA生態(tài)第一次看到昇騰這套軟件棧可能會有點(diǎn)懵。別怕我?guī)湍惆牙锩娴慕巧砬宄W畹讓邮球?qū)動和固件這一層負(fù)責(zé)讓操作系統(tǒng)識別設(shè)備相當(dāng)于GPU驅(qū)動。往上走是CANNCompute Architecture for Neural Networks它相當(dāng)于昇騰的CUDA工具包加TensorRT的結(jié)合體提供算子庫、圖編譯引擎GE、運(yùn)行時(shí)環(huán)境。再往上是各種推理框架的適配層你可以用MindSpore直接跑昇騰也可以用pyACLPython版AscendCL手寫推理代碼甚至通過ONNX Runtime昇騰版或OpenCV的dnn模塊走昇騰后端。這里有一個(gè)最容易混淆的點(diǎn)我們平時(shí)用的PyTorch模型并不能直接在Atlas上跑至少不能直接跑得像GPU上那么順。常規(guī)做法是先把PyTorch模型導(dǎo)出為ONNX再用CANN自帶的ATC工具把ONNX編譯成昇騰專屬的OM模型Offline Model最后在運(yùn)行環(huán)境里加載OM進(jìn)行推理。為什么不直接用PyTorch原生推理因?yàn)镻yTorch在昇騰上默認(rèn)走算子逐層調(diào)用圖優(yōu)化不夠深性能會打折扣。ATC會做算子融合、內(nèi)存復(fù)用、數(shù)據(jù)格式轉(zhuǎn)換等一系列優(yōu)化把整個(gè)計(jì)算圖固化下來相當(dāng)于為這張卡“量身定制”了一版模型。所以O(shè)M模型才是Atlas上真正的高效形態(tài)。另外還有一個(gè)容易踩坑的版本對齊問題。昇騰生態(tài)的版本管理相當(dāng)嚴(yán)格驅(qū)動、固件、CANN、MindSpore/ACL這幾個(gè)版本必須互相匹配否則你會看到一堆莫名其妙的報(bào)錯(cuò)。我建議什么功課都不要做直接去昇騰社區(qū)查“版本配套表”照著表上能對上的版本組合來安裝千萬別混搭新版本CANN配舊版本驅(qū)動血的教訓(xùn)。2.3 為什么用Notebook式驗(yàn)證而不是一上來就寫大工程在實(shí)際動手之前我強(qiáng)烈推薦先在一臺裝了昇騰環(huán)境的服務(wù)器上用Python交互式環(huán)境把每一步跑通而不是一上來就寫完整的推理工程。原因很簡單模型轉(zhuǎn)換、推理調(diào)用這個(gè)階段你碰到的絕大多數(shù)問題是環(huán)境問題不是代碼邏輯問題。一旦環(huán)境通了后面寫業(yè)務(wù)代碼就會非常順暢。我之前踩過最大的坑就是“一次性集成”。把模型加載、預(yù)處理、推理、后處理全寫完結(jié)果一跑也不知道是環(huán)境問題還是代碼問題排查起來特別痛苦。正確的姿勢是先用一個(gè)最簡單的ONNX模型做最小驗(yàn)證比如隨機(jī)生成一張輸入圖片能跑出結(jié)果證明“驅(qū)動CANNATCACL”這條鏈路是通的再在這個(gè)基礎(chǔ)上逐漸加入YOLO模型和后處理邏輯。這樣一來每個(gè)環(huán)節(jié)出了問題都能快速定位。3. YOLO模型遷移實(shí)戰(zhàn)從PyTorch權(quán)重到昇騰OM模型3.1 YOLO模型的選型與推理分支取舍我自己在Atlas上部署得最多的是YOLOv5和YOLOv8。就部署難度而言YOLOv5更成熟網(wǎng)上能找到的昇騰案例也更多YOLOv8的檢測頭結(jié)構(gòu)稍微不一樣但整體適配也不難。這里先說一個(gè)關(guān)鍵取舍導(dǎo)出的ONNX模型到底帶不帶后處理NMS我的建議是導(dǎo)出的時(shí)候去掉NMS只保留Backbone加Neck加Head的輸出。理由有三點(diǎn)。第一ONNX里的NMS算子在不同框架實(shí)現(xiàn)差異很大ATC轉(zhuǎn)換時(shí)比較容易出幺蛾子第二NMS的輸入張量結(jié)果是動態(tài)數(shù)量檢測框數(shù)量不確定這在靜態(tài)圖優(yōu)化比較強(qiáng)的昇騰平臺上會帶來額外復(fù)雜度第三從推理性能角度看把后處理放在CPU上或者自己用向量化計(jì)算寫反而更容易調(diào)優(yōu)也更靈活。所以你的導(dǎo)出目標(biāo)其實(shí)很純粹輸入是[1, 3, H, W]的三通道圖像輸出是YOLO檢測頭的原始預(yù)測比如YOLOv5就是一個(gè)[1, 25200, 85]的張量其中25200表示三個(gè)尺度輸出的候選框總數(shù)85表示4個(gè)框坐標(biāo)加1個(gè)目標(biāo)置信度加80個(gè)類別分?jǐn)?shù)。3.2 PyTorch模型轉(zhuǎn)ONNX的常見細(xì)節(jié)這里用一個(gè)YOLOv5s的導(dǎo)出示例來演示。你需要在訓(xùn)練好的模型上調(diào)用torch.onnx.export導(dǎo)出時(shí)有幾個(gè)參數(shù)非常關(guān)鍵。第一是opset_version我一般固定用opset_version11。太低的算子版本有些新算子不支持太高的話昇騰ATC在解析時(shí)可能出現(xiàn)未知算子。第11版是目前昇騰兼容性最好的平衡點(diǎn)。第二是dynamic_axes。如果你想在推理時(shí)自由切換不同分辨率可以把它設(shè)成動態(tài)維度。但實(shí)際上我個(gè)人建議盡量固定輸入形狀比如固定成1x3x640x640。理由很簡單動態(tài)輸入意味著ATC沒法做充分的內(nèi)存規(guī)劃和算子融合性能會有明顯折損而且動態(tài)shape處理不當(dāng)還會導(dǎo)致模型加載或推理時(shí)出現(xiàn)奇奇怪怪的報(bào)錯(cuò)。如果你確實(shí)有變分辨率需求更好的方式是保存幾個(gè)不同分辨率的OM模型推理時(shí)根據(jù)輸入尺寸切換。第三是輸出張量的順序。YOLOv5官方導(dǎo)出腳本輸出的張量形狀是[1, 25200, 85]這個(gè)信息在推理代碼里要用到所以我一般導(dǎo)完ONNX之后會寫兩行代碼驗(yàn)證一下確認(rèn)形狀符合預(yù)期import onnx model onnx.load(yolov5s.onnx) for inp in model.graph.input: print(input:, inp.name, [d.dim_value for d in inp.type.tensor_type.shape.dim]) for out in model.graph.output: print(output:, out.name, [d.dim_value for d in out.type.tensor_type.shape.dim])如果你發(fā)現(xiàn)輸出是[1, 85, 25200]這樣的排列做后處理的時(shí)候就要先轉(zhuǎn)置這個(gè)到推理代碼部分再細(xì)說。3.3 ATC模型轉(zhuǎn)換核心參數(shù)與AIPP配置拿到ONNX模型之后接下里就是用ATC工具把它編譯成OM模型。ATC命令位于CANN安裝目錄的/usr/local/Ascend/ascend-toolkit/latest/bin下通常配置好環(huán)境變量后直接在終端敲atc就能用。我的一條典型轉(zhuǎn)換命令長這樣atc --modelyolov5s.onnx \ --framework5 \ --outputyolov5s_om \ --soc_versionAscend310P3 \ --input_shapeimages:1,3,640,640 \ --insert_op_confaipp.cfg \ --output_typeFP32逐個(gè)解釋一下這些參數(shù)--framework55代表ONNX。--soc_version這個(gè)必須填你實(shí)際芯片的型號。Atlas 300V 24G對應(yīng)的昇騰芯片當(dāng)前是Ascend310P系列的某一款具體從npu-smi info能看到。如果填錯(cuò)了轉(zhuǎn)換可能成功但加載到卡上會報(bào)版本不匹配的錯(cuò)誤。--input_shape和你導(dǎo)出的ONNX輸入保持一致。這里images是輸入節(jié)點(diǎn)的名字不能寫錯(cuò)可以用前面的Python腳本查看。--insert_op_conf這就是很多人忽略的AIPP配置。AIPP的作用是在硬件層面完成圖像預(yù)處理包括縮放、顏色空間轉(zhuǎn)換、歸一化。YOLO系列輸入通常是RGB分布到0到1之間如果你不配置AIPP就得在推理代碼里自己用CPU或DVPP做完這些操作不僅麻煩還會讓預(yù)處理成為性能瓶頸。我的AIPP配置文件大概長這樣aipp_op { aipp_mode: static input_format: RGB src_image_size_w: 640 src_image_size_h: 640 crop: true load_start_pos_h: 0 load_start_pos_w: 0 resize: true resize_output_w: 640 resize_output_h: 640 mean_chn_0: 0 mean_chn_1: 0 mean_chn_2: 0 min_chn_0: 255.0 min_chn_1: 255.0 min_chn_2: 255.0 var_reci_chn_0: 0.003921569 var_reci_chn_1: 0.003921569 var_reci_chn_2: 0.003921569 }這個(gè)配置表示輸入圖像是RGB順序模型期望RGB如果模型訓(xùn)練時(shí)用的是BGR你就改成BGR。min_chn和var_reci_chn組合起來的作用就是把像素從0-255縮放到0-1。src_image_size_w/h和resize_output_w/h在模型輸入是固定尺寸時(shí)可以直接寫成模型的輸入尺寸這樣ATC轉(zhuǎn)換時(shí)會自動在圖里插入縮放算子省掉你在預(yù)處理代碼里自己寫resize的煩惱。還有一點(diǎn)值得提如果你喂給模型的圖片比例不對直接在AIPP里做resize容易讓物體形狀扭曲。通常YOLO訓(xùn)練本身足夠魯棒這一點(diǎn)影響不大。如果實(shí)在在意可以在預(yù)處理代碼里先做letterbox填充再做resize但這樣一來AIPP的自動縮放就沒法用了需要關(guān)閉AIPP的resize自己準(zhǔn)備好已經(jīng)resize到640x640的圖片數(shù)據(jù)。3.4 模型轉(zhuǎn)換環(huán)節(jié)的典型坑我在這里列幾個(gè)自己遇到過的報(bào)錯(cuò)。第一個(gè)是“unsupported op”。比如某些算子ATC不識別最常見于SiLU激活函數(shù)或者一些新版本PyTorch導(dǎo)出的自定義算子。解決辦法一般是兩個(gè)方向一是換PyTorch版本或ONNX導(dǎo)出的opset版本二是看能不能把不支持的算子改寫成等效的算子組合比如把SiLU替換成Sigmoid加乘法的組合。如果實(shí)在繞不過去可以查一下飛槳或MindSpore的算子映射表往往能找到經(jīng)驗(yàn)。第二個(gè)是“static aipp with dynamic shape failed”這類錯(cuò)誤。多半是你在--input_shape里傳了-1但又開了AIPP。AIPP在靜態(tài)模式要求輸入shape完全固定所以要么把shape改成固定的要么關(guān)掉AIPP。我上文建議固定shape就是為了和AIPP配合順暢。第三個(gè)是轉(zhuǎn)換成功但推理輸出全為0或固定值。這種情況大概率是AIPP里歸一化參數(shù)配錯(cuò)了導(dǎo)致輸入數(shù)據(jù)分布完全偏離訓(xùn)練分布。檢查一下min_chn與var_reci_chn到底在做什么以及輸入數(shù)據(jù)的格式到底是CHW還是HWC就能找到問題。4. 寫推理代碼AscendCLpyACL完整流程4.1 初始化設(shè)備與運(yùn)行上下文模型轉(zhuǎn)換完畢OM文件拿到手接下來就是寫推理程序。昇騰的CANN提供了C語言接口也提供Python包pyACL。生產(chǎn)環(huán)境最終一般用C寫高并發(fā)服務(wù)但做原型驗(yàn)證或者并發(fā)要求不高的業(yè)務(wù)Python完全夠用。整個(gè)pyACL推理程序的結(jié)構(gòu)可以看作五個(gè)階段初始化設(shè)備、加載模型、準(zhǔn)備輸入輸出、執(zhí)行推理、處理輸出。第一件事是設(shè)置環(huán)境變量和初始化設(shè)備import acl # 初始化 ret acl.init() assert ret 0 # 指定設(shè)備這里以0號卡為例 ret acl.rt.set_device(0) assert ret 0 # 創(chuàng)建運(yùn)行上下文 context, ret acl.rt.create_context(0) assert ret 0 # 創(chuàng)建推理流 stream, ret acl.rt.create_stream() assert ret 0這里的“設(shè)備”就是指Atlas 300V卡一張卡對應(yīng)一個(gè)物理設(shè)備。如果你服務(wù)器里插了多張卡可以通過環(huán)境變量或代碼指定使用哪一張。上下文和流的概念和CUDA很相似理解起來沒有障礙不過要注意在程序結(jié)束前釋放資源和銷毀流否則會有資源泄露的報(bào)錯(cuò)。4.2 加載OM模型并管理輸入輸出buffer加載模型使用acl.mdl.load_from_file它會返回一個(gè)模型ID后續(xù)所有推理操作都靠這個(gè)ID來引用模型model_id, ret acl.mdl.load_from_file(yolov5s_om.om) assert ret 0 # 獲取模型描述信息 model_desc acl.mdl.create_desc() ret acl.mdl.get_desc(model_desc, model_id)有了模型描述你可以從里面讀出模型的輸入輸出維度、數(shù)據(jù)類型、buffer大小然后根據(jù)這些信息分配Device側(cè)內(nèi)存。這一步是重點(diǎn)因?yàn)槟阍贖ost側(cè)準(zhǔn)備好的圖片數(shù)據(jù)是不能直接被模型使用的必須拷貝到Device側(cè)。通常的做法是給模型的每個(gè)輸入申請一塊Device內(nèi)存再把圖像數(shù)據(jù)顯示拷貝過去。pyACL里最常見的是先使用acl.mdl.get_input_size_by_index拿到輸入size再調(diào)用acl.rt.malloc分配內(nèi)存然后使用acl.rt.memcpy把Host數(shù)據(jù)拷貝到Device內(nèi)存。這里有一個(gè)容易繞暈的點(diǎn)輸入數(shù)據(jù)到底怎么擺放。AIPP配置成靜態(tài)模式后模型輸入節(jié)點(diǎn)期望的是已經(jīng)經(jīng)過AIPP處理的“裸數(shù)據(jù)”也就是分辨率匹配的、未歸一化的原始圖像像素。聽起來有點(diǎn)繞簡單說就是你只需要把解碼后的圖片resize到640x640并轉(zhuǎn)成RGB/BGR排好然后直接往Device內(nèi)存里扔剩下的縮放、歸一化由AIPP在硬件上完成。如果你的AIPP沒有開resize你還要自己在Host側(cè)把圖resize成640x640再拷貝。也別忘了排查圖像數(shù)據(jù)的內(nèi)存排列方式很多格式問題出在通道順序和步長上。4.3 圖像預(yù)處理細(xì)節(jié)可以不依賴opencv的部分圖像預(yù)處理在GPU部署時(shí)代往往被忽視因?yàn)镺penCV足夠方便。但在音視頻平臺或嵌入式環(huán)境里OpenCV的依賴有時(shí)候會給你帶來額外的交叉編譯成本所以我一般建議盡量把預(yù)處理職責(zé)劃分清楚圖像解碼如果是JPEG建議用昇騰的DVPP圖像解碼接口它的耗時(shí)遠(yuǎn)低于CPU端OpenCV的imdecode。DVPP是昇騰硬件上的媒體處理單元能硬解碼視頻和圖片。圖像縮放如果AIPP沒有啟用resize可以用DVPP的VPC做硬件縮放。如果AIPP啟用了resize那就直接在Host側(cè)用OpenCV或Numpy插值因?yàn)檫@一步會被AIPP替代。數(shù)據(jù)格式轉(zhuǎn)換DVPP輸出的圖像格式默認(rèn)是YUV420SP這張圖分類任務(wù)里可以直接送AIPP轉(zhuǎn)RGB但在目標(biāo)檢測中你需要把YUV數(shù)據(jù)再轉(zhuǎn)成RGB這塊頭緒比較多我建議初學(xué)階段直接用OpenCV解碼resize功能優(yōu)先性能后調(diào)。等整個(gè)鏈路跑通了再考慮用DVPP來替換瓶頸。每次踩坑都可能是內(nèi)存對齊問題。昇騰的Device內(nèi)存通常要求對齊到32字節(jié)或64字節(jié)。如果你自己構(gòu)造輸入buffer務(wù)必讓每一行數(shù)據(jù)長度對齊到16或32的倍數(shù)否則會出現(xiàn)當(dāng)你檢查數(shù)據(jù)明明是對的、但模型輸出誤差很大的情況。這也是為什么很多時(shí)候用一個(gè)現(xiàn)成的推理插件比手寫完整流程更省心的原因——很多對齊問題“前輩們”已經(jīng)替你處理過了。4.4 執(zhí)行推理帶示例代碼用pyACL執(zhí)行一次推理整體代碼如下# 創(chuàng)建輸出數(shù)據(jù)集 output_desc acl.mdl.create_dataset() output_size acl.mdl.get_output_size_by_index(model_desc, 0) # 申請輸出設(shè)備內(nèi)存 out_buffer, ret acl.rt.malloc(output_size, 2 * 1024 * 1024) assert ret 0 output_data acl.create_data_buffer(out_buffer, output_size) ret acl.mdl.add_dataset_buffer(output_desc, output_data) # 創(chuàng)建輸入數(shù)據(jù)集 input_desc acl.mdl.create_dataset() # input_buffer 是之前申請并拷貝好圖片數(shù)據(jù)的Device內(nèi)存 input_data acl.create_data_buffer(input_buffer, input_size) ret acl.mdl.add_dataset_buffer(input_desc, input_data) # 執(zhí)行推理 ret acl.mdl.execute(model_id, input_desc, output_desc) assert ret 0 # 同步等待這里可以替換成流同步 ret acl.rt.synchronize_stream(stream) assert ret 0 # 從device內(nèi)存拷貝回host內(nèi)存 out_result np.zeros(output_size, dtypenp.uint8) ret acl.rt.memcpy(out_result, output_size, out_buffer, output_size, acl.ACL_MEMCPY_DEVICE_TO_HOST) assert ret 0 # 解析輸出后面會展開這段代碼就是一個(gè)完整的推理閉環(huán)。把其中的acl.mdl.execute理解成和cudaMemcpy加cudaLaunchKernel的組合操作會有助于快速理解它為什么要區(qū)分輸入輸出數(shù)據(jù)集、為什么要專門從device拷回host。4.5 后處理YOLO輸出解碼與NMS模型輸出的原始數(shù)據(jù)通常是[1, 25200, 85]的浮點(diǎn)數(shù)組你需要將它轉(zhuǎn)換為你實(shí)際使用的檢測框。后處理的關(guān)鍵步驟為將輸出reshape成[1, 25200, 85]。通過閾值篩選目標(biāo)置信度高于置信度閾值的框。對每個(gè)類別分別執(zhí)行NMS非極大值抑制去掉重疊框。將坐標(biāo)還原到原圖尺寸尺度變換。如果你用的是YOLOv5它的輸出解碼方式是已知的框的坐標(biāo)是相對于輸出特征圖尺寸的需要乘以輸入尺寸和原尺寸的比例來還原到原圖坐標(biāo)同時(shí)要記得坐標(biāo)是cxcywh格式。YOLOv8的結(jié)構(gòu)稍微有一點(diǎn)點(diǎn)不同但現(xiàn)在主流的各種開源YOLO項(xiàng)目基本都提供了后處理參考代碼你只要把輸入從[batch, 84, 8400]改成自己的[1, 85, 25200]排列就能快速適配。這里我要特別提醒經(jīng)過ATC轉(zhuǎn)換后的OM輸出其輸出布局可能與你導(dǎo)出ONNX時(shí)觀察到的不同。ATC可能會重排輸出張量的維度導(dǎo)致你在代碼里拿到的shape不是預(yù)想的[1,25200,85]而可能是[1,85,25200,1]之類的奇怪排列。解決的辦法是在加載模型后先根據(jù)模型描述打印所有輸出的shape拿這個(gè)實(shí)際shape來寫后處理解析代碼。不要死搬ONNX里的shape這是我個(gè)人踩過最無語的一個(gè)坑。5. 工程化部署中不得不說的性能與穩(wěn)定性問題跑通單張圖片的推理只是第一步。實(shí)際項(xiàng)目中輸入往往是一條視頻流或者一個(gè)文件夾里幾千張圖這時(shí)候你要考慮的不再是“能不能跑”而是“能不能扛得住”。5.1 多路視頻流與batch推理的策略Atlas 300V 24G的優(yōu)勢之一就是能同時(shí)處理多路視頻流。但多路并非簡單地開多個(gè)線程跑多次推理更優(yōu)的方案是利用batch推理。首先YOLO模型在ATC轉(zhuǎn)換時(shí)就可以設(shè)置固定batch比如--input_shapeimages:4,3,640,640。推理時(shí)每次喂4張圖進(jìn)去讓AI Core同時(shí)處理4張圖。通常batch從1提到4吞吐量能提升2-3倍這個(gè)收益非??捎^。但batch推理的難點(diǎn)在于你的輸入圖片必須是同一個(gè)尺寸且同時(shí)準(zhǔn)備好。對于一個(gè)單路視頻流你沒法同時(shí)拿到4幀對于多路視頻流你可以把4路視頻的當(dāng)前幀拼成一個(gè)大batch送進(jìn)去。實(shí)際工程上我會用一個(gè)緩沖隊(duì)列把多個(gè)輸入源的幀按順序排好攢夠一個(gè)batch就推理一次。如果某一幀處理時(shí)間太長就做丟幀或排隊(duì)策略保證整個(gè)系統(tǒng)的延遲可控。5.2 內(nèi)存復(fù)用與資源釋放很多人在Atlas上跑Python推理時(shí)部署一段時(shí)間后發(fā)現(xiàn)內(nèi)存越來越大最后程序崩潰。原因往往是每幀推理都重新申請Device內(nèi)存、創(chuàng)建數(shù)據(jù)緩沖卻忘了釋放。我的習(xí)慣是在初始化階段一次性申請好輸入輸出buffer推理過程中反復(fù)復(fù)用同一個(gè)buffer。只有當(dāng)輸入圖像尺寸變化時(shí)才重新分配。這樣既減少了設(shè)備側(cè)內(nèi)存分配的系統(tǒng)調(diào)用開銷也避免了內(nèi)存泄漏。對應(yīng)的釋放流程也別忘程序退出時(shí)要依次調(diào)用acl.rt.free釋放Device內(nèi)存、acl.mdl.unload卸載模型、acl.rt.destroy_stream銷毀流、acl.rt.destroy_context銷毀上下文最后acl.finalize。如果省掉這些步驟最典型的后果是多次加載/卸載模型時(shí)顯存一直被占著不釋放最終設(shè)備不可用。5.3 使用profiling工具定位性能瓶頸昇騰提供了一套性能分析工具叫msprof它會采集算子耗時(shí)、數(shù)據(jù)拷貝耗時(shí)、NPU利用率等信息。這個(gè)工具是排查性能問題的重要幫手。比如你在推理中發(fā)現(xiàn)幀率怎么都上不去不要先懷疑模型算力不夠。用msprof采一下數(shù)據(jù)你會經(jīng)??吹竭@樣的情況NPUAI Core利用率不到50%但延遲已經(jīng)很高。這種時(shí)候瓶頸壓根不在模型推理而是數(shù)據(jù)拷貝或預(yù)處理耗時(shí)占比太大。解決辦法通常是把預(yù)處理挪到DVPP設(shè)備端去或者在Host側(cè)用多線程并發(fā)做預(yù)處理。如果是NPU利用率已經(jīng)接近100%那瓶頸確實(shí)在模型側(cè)這時(shí)候可以考慮用精度更低的INT8量化模型、減少輸入分辨率、或者換用更輕量的YOLO變體如YOLOv5n、YOLOv8s。5.4 性能數(shù)據(jù)速查表根據(jù)我的實(shí)測整理我在同型號Atlas 300V 24G上測試過幾組配置整理出來的數(shù)據(jù)可以參考模型版本輸入分辨率單幀耗時(shí)ms說明YOLOv5s640x6408-12默認(rèn)FP16推理單batchYOLOv5s640x6404-6batch4時(shí)單幀平均耗時(shí)顯著下降YOLOv8s640x64010-14模型稍大算子稍多但差距可控YOLOv5s1280x128030-40大分辨率適合小目標(biāo)檢測但耗時(shí)會漲YOLOv5s INT8量化640x6403-5INT8帶來明顯加速但需要校準(zhǔn)數(shù)據(jù)集需要說明的是這個(gè)數(shù)據(jù)受到驅(qū)動版本、CANN版本、服務(wù)器CPU性能、以及是否使用DVPP預(yù)處理等因素影響。但對于評估“Atlas到底行不行”恐怕足夠了單卡跑到接近100幀每秒的YOLOv5s處理能力在邊緣側(cè)已經(jīng)相當(dāng)實(shí)用。6. 常見問題與排查技巧實(shí)錄部署過程中遇到的報(bào)錯(cuò)千奇百怪但歸納下來無非集中在以下幾個(gè)方面我按出現(xiàn)概率排個(gè)序。6.1 環(huán)境與設(shè)備問題出現(xiàn)概率最高報(bào)錯(cuò)形如acl.rt.set_device ... run error或者[ERROR] GE( ... Failed to init device。這個(gè)基本就是驅(qū)動和固件沒配對。第一種可能是驅(qū)動沒裝好npu-smi info都看不到卡第二種可能是Ascend環(huán)境變量沒source你在終端每開一個(gè)新窗口都要記得source一遍/usr/local/Ascend/ascend-toolkit/set_env.sh否則Python里根本import不到acl模塊或者找不到運(yùn)行庫。第三種是權(quán)限問題普通用戶訪問不了設(shè)備節(jié)點(diǎn)需要把用戶加入HwHiAiUser用戶組或用root運(yùn)行。排查這個(gè)階段我的固定做法是先跑一下npu-smi info確認(rèn)設(shè)備健康然后跑一個(gè)最簡單的設(shè)備初始化腳本比如只調(diào)用acl.init()和acl.rt.set_device(0)成功后再往下走。6.2 模型轉(zhuǎn)換與算子報(bào)錯(cuò)最需要耐心已經(jīng)在3.4節(jié)講了一部分這里補(bǔ)充兩個(gè)經(jīng)驗(yàn)。第一個(gè)經(jīng)驗(yàn)是“算子不支持”的排查路徑。ATC轉(zhuǎn)換報(bào)錯(cuò)日志經(jīng)常非常長你只需要關(guān)注最后幾行里提到的算子名稱。拿到算子名后去昇騰文檔搜“自定義算子開發(fā)”或者“算子支持列表”。如果確認(rèn)是常用算子不支持大概率是版本太老升級CANN版本就能解決。如果CANN版本已經(jīng)夠高還不支持就得考慮改模型結(jié)構(gòu)或用算子重寫。第二個(gè)經(jīng)驗(yàn)是轉(zhuǎn)換時(shí)出現(xiàn)“data format unsupported”之類的問題。這通常和模型內(nèi)部的內(nèi)存布局有關(guān)YOLO類模型導(dǎo)出ONNX時(shí)一定要用4D張量。有些中間層如果用了5D或者6D的變換ATC會報(bào)錯(cuò)。檢查方式就是打開ONNX圖找到報(bào)錯(cuò)節(jié)點(diǎn)把它前后幾層的shape打出來看看是否合理。6.3 推理輸出異常問題如果模型轉(zhuǎn)換成功、推理也不報(bào)錯(cuò)但檢測結(jié)果畫在圖上要么全是框要么沒框先別懷疑模型壞了。按下面順序排查先打印模型輸出的數(shù)值范圍。正確的原始輸出大概率是小數(shù)比如正負(fù)幾十的分布。如果你看到輸出全是0或者很小的固定值說明前處理數(shù)據(jù)有問題很大概率是AIPP的mean和var配置導(dǎo)致輸入數(shù)據(jù)分布異常。接著檢查輸入數(shù)據(jù)的通道順序YOLOv5官方訓(xùn)練時(shí)用的是RGB但OpenCV讀出來是BGR如果訓(xùn)練和推理通道順序不一致精度會嚴(yán)重下降但不會完全失效。再檢查后處理中的坐標(biāo)縮放特別是從模型輸入尺寸還原到原圖尺寸時(shí)是否存在中心點(diǎn)和寬高轉(zhuǎn)換錯(cuò)誤。6.4 昇騰生態(tài)的幾個(gè)“潛規(guī)則”最后分享幾條屬于“經(jīng)驗(yàn)層面”的東西。一是我強(qiáng)烈建議不要在生產(chǎn)環(huán)境用純Python的pyACL做高并發(fā)服務(wù)。Python的GIL和內(nèi)存管理在幾十路并發(fā)時(shí)會有額外開銷。更合理的架構(gòu)是C做推理服務(wù)通過gRPC或者共享內(nèi)存暴露給上層Python業(yè)務(wù)。當(dāng)然如果業(yè)務(wù)是批處理任務(wù)Python完全夠用。二是昇騰容器化部署時(shí)一定要在Docker里映射/dev/davinci0設(shè)備和/dev/davinci_manager同時(shí)把驅(qū)動目錄映射進(jìn)去。很多人在Docker里跑不起來不是鏡像問題而是設(shè)備節(jié)點(diǎn)沒映射。三是多看昇騰社區(qū)的“CANN商用部署”案例文檔。很多問題是社區(qū)里已經(jīng)被反復(fù)問過的不要一上來就自己盲調(diào)。善用gitee的昇騰issue區(qū)很多問題描述和解決方案比官方文檔還要細(xì)致。7. 我的個(gè)人建議與擴(kuò)展想法這次從GPU生態(tài)切到華為Atlas 300V跑YOLO整個(gè)過程給我最大的感觸是昇騰硬件本身性能完全夠用真正需要投入時(shí)間去學(xué)習(xí)和適應(yīng)的是它的軟件棧和工程習(xí)慣。如果你公司同時(shí)有GPU和Atlas的環(huán)境建議在項(xiàng)目初期就把兩條思路都跑通GPU上負(fù)責(zé)訓(xùn)練和驗(yàn)證Atlas上負(fù)責(zé)推理。因?yàn)閮烧咴谒阕又С趾湍P透袷缴洗嬖诓町愄崆氨┞秵栴}永遠(yuǎn)比臨上線前補(bǔ)救要省心。特別是AIPP配置和ATC轉(zhuǎn)換這個(gè)環(huán)節(jié)最好在訓(xùn)練完成后馬上就開始適配不要等模型訓(xùn)練好幾個(gè)月之后才開始遷移到時(shí)候你會發(fā)現(xiàn)一個(gè)算子的變化都可能讓之前能轉(zhuǎn)的OM模型變得過不了ATC。另外Atlas 300V 24G這類推理卡最大的優(yōu)勢場景其實(shí)是那些對數(shù)據(jù)安全要求較高的本地化部署。數(shù)據(jù)不出機(jī)房、推理延遲可控、功耗在幾十瓦量級放在一個(gè)普通工控機(jī)機(jī)箱里就能跑。相比之下很多項(xiàng)目為了跑一個(gè)YOLO被GPU的功耗和散熱搞得焦頭爛額換到Atlas之后整機(jī)功耗降下來一個(gè)數(shù)量級這在實(shí)際機(jī)房運(yùn)維中是實(shí)打?qū)嵉氖找妗H绻銌栁蚁乱徊竭€能在Atlas上玩什么我會說把YOLO的檢測結(jié)果接入昇騰的文檔解析或視頻結(jié)構(gòu)化工具鏈結(jié)合FFmpeg做實(shí)時(shí)推流與報(bào)警聯(lián)動做成一個(gè)完整的端到端智能檢測服務(wù)。到這一步你手上跑的就不是一個(gè)“模型部署demo”而是一套能直接交付給客戶的生產(chǎn)系統(tǒng)了。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产午夜成人AV在线播放| 久久丁香五月天| 国产在线视频1234| 五月婷婷天| 涩涩五月天综合| 九九99九九精品免费 | 夜夜撸天天操| 亚洲无码影音| 电影爱拉战争免费观看| 国产日韩av片| 五月婷婷av在线| 婷婷婷婷婷开心无码播放| 99这里有精品视频| 青青操丝袜美腿| 色噜噜婷婷| 这里只有九九精品| 怕怕av| 亚洲综合色成丁香五月色| 婷婷激情六月| 婷婷五月天天aV| 婷婷狠狠操| 99爱精品| 任我肏| 伊人婷婷色激情丁香| 激情久久丁香| 久久精彩视频99| 色婷婷视频| 5月婷婷五月天| 国产精品久久99| 熟妇人妻中文字幕无码老熟妇| 5月婷婷6月六月丁香| 开心五月激情网| 人人操超碰| 久热这里只有精品6| 色噜噜狠狠狠综合曰曰曰| 激情av在线| 98国产精品综合一区二区三区| 日本色色网站| 五月天开心婷婷激情网站| 综合亚洲六月婷婷在线| 中文字幕成人| 99久热在线精品| 婷婷日本色| 九九99九九精品免费 | 91精品综合久久久久久五月丁香| 亚洲综合99| 激情开心五月天婷婷基地丁香社区| 人妻操逼视频。| 免费人人操| 亚洲日比视频| av在线不卡播放| 五月停性愛| 大地资源色婷婷视频在线| 大香蕉精品视频| 色婷婷久久| 五月开心婷婷| 婷婷香五月| 99热99思午夜精品| 婷婷六月天精品| 掩去也综合五月视频| 黄网在线观看免费| 色婷婷久久| 99噜噜| 99久热精品在线| 日韩五月婷婷久久| 日本天堂网站99| 久久九九激情五月天 | 色色色色色色网| 99热99干| 天天干天天做| 激情婷婷六月天| 久热超碰| 日日操夜夜擼| 97香蕉人人在线观看| 久久性爰视频这里只有精品| 五月天综合激情网| 日本久久高清| 激情 婷婷 丁香五月天| 五月婷天天搞视频| 五月丁香六月成人| 丁香六月婷婷久久综合| 99九九99九九九视频精品| 亚洲综合网在线| 97日本在线播放| 精品9久| 亚洲天堂九九九| 99免费青青蜜臀| 青青日韩| 热九九在线| 开心 五月 综合| 人妻内射麻豆视频| 99热6这里只有精品| 亚洲成人噜噜| 婷婷金品综合视频| 教师性爱毛片| 伊人婷婷大香蕉| 色99网| 6月丁香婷婷| 日韩无码一区二区三区四区| 逼里香不卡| www.色综合.com| 人妻精品一区二区三区| 亚洲超碰中文字幕| 97热视频| 婷婷五月深爱五月| 五月婷婷六月丁香| 在线观看亚洲视频影院| 这里只有精品久| 网站免费一站二站| 亚洲精品又粗又大又爽A片| 色婷婷av综合网| 99热综合网| 婷婷丁香六月影视| 狠狠久久婷五月| 日日夜夜噜噜爽爽| 97人人操人人干| 丁香五月花| 九月婷婷综合在线| 激情五月亚洲综合网| 婷婷五月天小说网| 日韩黄在免| 99九无网码| 亚洲精品色色| 91色噜噜狠狠狠狠色综合| 色色无码| 99九九在线观看免费| 五月www| 欧洲综合视频| 亚洲bt丁香五月天婷婷激情小说| 婷婷丁香六月天| 欧美色必爱| 色婷久久| 丁香五月另类色婷婷麻豆| 国产成人一区二区三区在线观看| 91 九色 熟女| 狠狠99| 五月天丁香婷婷网| 在线看的免费网站| 五月丁香久久网| 99无码黄色视频| 欧美性做爰大片免费看办公室| 人人草碰| 丁香五月天中文字幕| 成年人丁香五月| 玖玖玖婷婷婷| 天天操天天曰| 日笨久久网| 色婷婷五月天激情| 六月色色| 亚洲成人色五月婷婷综合| 国产黄色一级片| 久久五月天激情视频| 综合婷婷| 久久九九网| 97欧美在线| 91女人18毛片水多国产| 精品久久久人妻| 婷婷五月丁香基| 天天插综合在线| 女性自慰系列第五页| 五月天婷婷成人网| 国产亚洲色婷婷久久99精品91 www.riverspirits.org www.hnnun.com www.changh | 九九色热| 日本精品。999| 99在线视频播放| 91日视频| 婷婷五月深情丁香深爱日韩| 99视频只有精品| 97碰超级人人看| 五月天婷婷AV| 99热这里只有精品1025| 91精品综合久久久久久五月丁香| 婷婷五月天视| 婷久久高清| 2020夜夜操天天爽| 丁香五月天婷婷大香蕉| 91视频一起草| 丁香六月婷婷缴情欧美| WwW色婷婷| 婷婷五月天深爱| 人妻内射一区二区在线视频| 无码 色| 五月天伊人| 色五月丁香总合网| 丁香五月婷婷国产在线| 五月六月婷| 亚洲成Av人片乱码色第1集| 婷婷五月天另类网站| 丁香,开心成人,久久| 中文超碰视在线| 亚洲九九99精品视频在线播放| 男妓跪趴把舌头伸进我的嘴巴| 国语对白性爱视频播放| 国产女18毛片多18精品| 99视频网址| 91婷婷丁香| 色爱五月天| 亚洲色色图片| 日韩久久日| 99热在这里只有精品| 婷婷久久18| 五月激情啪啪| 婷婷五月天激情丁香| www狠狠com| 99热丁香| 啪啪啪五月天| 久久99精品九九久久久婷婷| 天天干狠狠操| 大香蕉伊人99| 级人人91| 欧美在线视频99| 99热久只有| 熟妇高潮一区av| 97色操| 九九久久精品| 五月婷婷,六月婷婷| 天天肏视频| 日本五月婷婷久久久六月丁香| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 婷婷在线操| 黄色热99| 狠狠干婷婷| se99视频| 第四色婷婷最爱| 婷婷丁香色性爱| 天天狠天天叉| 狠狠狠狠狠| 五月婷婷丁香深深爱| 五月丁香狠狠爱婷婷综合| 婷婷六月综合激情| 日本在线免费中文com.| 五月婷婷AV| 91精品刘玥| 日本三级韩三级99久久| 亚洲第一综合| 狠狠色综合久久| 久久久久久久五月婷婷六月丁香综合,开心激情综合网 | 丁香婷婷婷五月| www.久久久久| 色色五月天丁香| 婷婷 激情 五月| av在线观看网站| 久热re视频在线观看网站| 夜夜 操无码| 色综合色综合网| www久久99com| 九九热这里只有精品5| 丁香99| 欧美性生交XXXXX无码小说| 人人干女人| 色色五月婷婷丁香| 五月天婷婷无码视频| 琪琪秋霞| 五月天激情综合首页| 99干99| 人操综合| 97ai婷婷| 绿色小导航AV| 都市激情亚洲| 9l视频自拍9l九色9l成人| 爱操天堂| 五月丁香六月激情| 婷婷丁香人妻天天爽| www好屌操| 婷婷月五天在线在线看| 六月婷婷天天操夜夜爽视频| 婷婷丁香社区网| 伊人久久综合| 九九九九中文字幕| 婷婷色基地在线看| 五月丁香好婷婷A片网| 免费在线a| 91伦| 亚洲天堂啪啪| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 天天色综合综合| 婷婷激情综合色五月久久,色婷婷丁香花,丁香婷婷五月情天,久久婷婷五月综合色 | 色色亚洲视频| 精品久久99| 综合激情在线视频| 99热这里只有精品在线观看| 五月丁香网站| 婷婷五月丁香成人网| 国产乱妇无乱码大黄AA片| 9l视频自拍九色9l视频自拍九色9l社区 | 91性高潮久久久久久久久| 五月99久久| 99在线热视频| 夜夜操夜夜爽| 天天色天天爱天天爽| 综合久久五月| 欧美狠狠色| 人妻精品一区二区三区| 伊人婷婷五月天| 九九99久久| 一本道在线电影| 激情五月丁香五月色| 超碰人人摸人人操| 色婷婷亚洲婷婷| 九九热在线视频| 生活片五区| 欧美99热| 国产视频色色色色色色色| 久草婷婷在线| 91碰在线| 丁香花五月天| 日91高清无玛| 国产午夜精品AV一区二区麻豆| 91av视频| 亚洲久热| 婷婷婷婷婷开心无码播放| 五月天激情图片| 九九九九毛片| 第四色色色色色丁香五月天| 免费亚洲婷婷中文字幕| 激情五月天小说视频| 久久激情五月天| 99九九视频| 色啪网| 国精产品一区一区三区免费视频| 五月丁香六月婷婷久久| 五月丁香六月婷婷不卡免费无码| 97人人操人人爽| 美女激情婷婷| 成人丁香五月天Av| 精品国产乱码久久久久久免费| 久久男人网婷婷| 国产亚洲色婷婷久久99精品91 www.riverspirits.org www.hnnun.com www.changh | 亚洲免费电影2| 操人精品| 成人网丁香五月| 五月激情婷婷播播开心| 午夜天堂一区人妻| 97超碰综合| 激情综合色婷婷啪啪六月天| 欧美性爱五月天| 久久98| 色情久久久| 色婷婷操逼网| 99在线资源| www.yw尤物| 日韩一66精品| 人妻操逼视频| 久久免费精彩视频| 五月激情婷婷丁香| 香蕉操亚洲| 五月丁香婷婷基地| 99热伊人综合| 啊V视频在线观看| tingtingjiqingwuyue| 丁香五月日本| 激情av在线| 日本丁香五月| 国产欧美日韩综合精品一区二区| 五月天婷婷亚洲| 久久网日本| 五月天激情网址| 五月婷婷啪| 色99日韩| yw国产AV| 五月青青草综合| 99ri视频在线播放| 日韩人人操| 亚洲综合激情五月久久| 五月天狠狠草| 九九热免费视频| 色九月综合| 丁香激情网| 极品人妻videosss人妻| 欧美日韩大黄| 97人妻碰碰碰久久香蕉| 大香蕉伊人丁香五月| 欧美性猛交99久久久99| 艹| 日本女人久久| 狠狠色综合久久久久| 97人妻碰碰碰久| 韩国久久少妇视屏| 欧美性丁香色色五月天干干| 99在线看视频| 九九这里只这里只有精品| 久久少妇视频| 91在线操逼视频| 69人妻人人澡人人爽久久| 99热精品少| 欧美日本另类| 丁香网站| 五月婷婷在线丁香| 成人av在线网址| 亚洲国产精品VA在线看黑人| 六月婷婷色综合| 九九热这里只有精品在线观看| 色五月婷婷五月| 色综合激情| 91午夜婷婷狠狠久久综合9色| 婷婷无码视频| 欧美性猛交99久久久99| 亚洲AV电影美洲AV电影| 六月五月婷婷| 国外亚洲成AV人片在线观看| 欧美va精品va老师va| 久色大| 九九九九操逼| 欧美噜一噜| 日本人妻伦在线中文字幕 | 丁香五月婷婷成人网| 五月婷婷六月色| 丁香婷婷久久| 蜜桃人妻无码AV天堂三区| 好好干Av| 全部老头和老太XXXXX| 噜一噜免费视频| 婷婷五月天久久| www久久99| 亚洲操逼网| 欧美久久婷婷| 综合色99| 激情www.98com| 婷婷色爱| 五月婷婷黄色毛片| 色婷婷AV在线| 色狠狠色| 激情网五月天| 国产精品色一哟哟| 丁香婷婷久久综合在线| 五月丁香六月婷| 色五月婷婷综合在线| 亚洲午夜电影| 久久视频66| 色综合久| 色婷婷色人人射| 亚洲成人网址在线观看| 久久婷婷视频| 丁香五月激情六月欧亚激情综合导航| 99视频内射三四| 四虎婷婷五月天| 五月激情四射网站| 丁香婷五月天开心六月| 丁香五月香蕉在线| 超碰色碰碰| 99热这里只有精品55| 操逼六区| 欧美丰满熟妇BBB久久久| 五月婷婷伊人久久| 9 99免费视频| 九九亚洲| 激情五月天com| 婷婷激情性爱| 少妇出轨做爰高潮A片| 99色免费视频| 少妇AB又爽又紧无码网站| 5月婷婷激情6月| 青草青草久9视频在线视频| 无码动漫av| 色就是色婷婷五月亚洲激情| www.玖玖九| 亚洲顶级VA在线观看-高清完整版在线影院观看-S022AV | 91在线人| 99视频久久| 婷婷五月综合在线视频| 亚洲无线视频| 欧美成人在线观看| 玖玖在线视| 天天舔天天摸天天射| 91av色色乱视频| 久久婷婷影院| 婷婷丁香激情综合色情| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | 成人做爰A片免费看网站找不到了| 天天爽夜夜爽天天爽夜夜爽| 激情AV| 丁香五月影| 99九九精品视频| 九九热99精品| 亚州色婷婷| 九色在线五月婷婷网址| 97天堂| 六月久久狠狠| 新久久五月天激情| 六月婷婷视频| 激情 久久 婷婷| 嫩草视频在线观看| 色噜噜婷婷| 激情五月综合网| 五月色婷丁香| 九九热最新| 成人色五婷婷| 天天干天天操天天干天天操天天干天天操 | 色综合色香蕉网| 婷婷午夜| 天天干一干| 无码橾| 激情文学综合婷婷五月天丁香花| 超碰人人在线| www.色五月| 国产高清RV综合aVa| 玖玖视频福利| 婷婷操久久| 中文字幕不卡网站| 欧美精品在线观看| 丁香六月天| 永久免费一区二区三区| 九九爱激情| 婷婷大美在线| 久久狠狠高潮亚洲精品 天天摸夜夜摸夜夜狠狠摸| 九九九九成人| 免费视频1区| 五月婷视频| 91精品无码| 五月天六月婷婷| 天天檫天天爽| 激情久久五月网| 五月丁香六月婷婷精品| 激情另类综合| 人人操插| 99激情网| 亚洲av成人在线| 色99婷婷五月天| 红桃91人妻爽人妻爽| 一起草AV入口| 亚洲亚洲人成综合网络| 青青青在线视频国产| 思思热精品在线| 亚洲视频五区| 久久婷婷成人| 六月婷婷激情| 婷婷丁香五月综合| 国产精品电影| 婷婷另类小说| 99自拍视频在线| 九九99在线免费在线观看视频| 五月色婷婷影院| 婷婷六月色开| 99在线免费观看| 五月婷婷69| 久久精品只有这| 婷婷色情六月| 色色亚洲五月天| 亚洲视频99| 婷婷操婷婷干婷婷射| 99re思思久久| 久久久27操| 一级精品999WWW| 丁香六月色婷婷| 日本三级黄色大片| 久久99视频| JAPANRCEP老熟妇乱子伦视频 | 成人看片网站| 香蕉婷婷色五月| 色情丁香五月天| \\五月天婷婷激情| 九九机热| 五月激情在线| 91狠狠综合久久| 五月丁香六月激情| 91919191919久久成人视频| 婷婷五月性感| 狠狠色丁香久久婷婷综合五月| 六月婷婷九月丁香| 这里只有精品免费在线视频| 中文无码精品一区二区三区| 怡红院一二三| 天堂久久精品| 欧美性猛交 XXXX 乱大交| 99re热视频这里只精品| 久久网婷婷| 五月丁香久久网| 五月六月丁香激情视频| 天天草天天日| 成人免费在线电影| 色丁香五月婷婷| 九九九九热99超碰| 亚洲AV网址| 99久99热| 激情五月天影院| 综合色图区| 国外亚洲成AV人片在线观看| 久久精品日| 婷婷的久久网站| 五月丁香六月激情狠狠| 色五月综合| 亚洲操操操| 久久九九99视频| 日本高清久| 5月婷婷6月丁香aV| 久久久久久人妻| 99性爱视频| 五月丁香狠狠爱婷婷综合| 啪啪综合| 久久这里只有精品1| 丁香五月情| 怡红院AV亚洲一区二区三区H| 色原狠狠综合| 亚洲激情电影五月天色婷婷丁香一起草 | 亚洲综合五月天| 五月天大香蕉婷| 九九aV| 天天色综合网1| 天天干天天色综合| 色色九区| 婷婷成人五月天一区| 99热| 伊人狼人干| 久久九九网| 日本va欧美va欧美va| 99精品在这里| 日韩免费99| 狠狠干总合| 美女网黄| 丁香五月婷婷婷桃花影院| 五月丁香婷成人网| 碰碰女| 日韩熟女啪啪视频| 熟女激情网| 久久综合影院| 久久五月热| 九九99视频精品| 久青操| 国产精品 的国产| 97干婷婷五月天| 久久99久久99久久99人受| 国内在线99视频| 精品99爱免费视频在线观看| 五月丁香六月婷婷网| 大香AV| www.六月丁香看AV| 性av| 五月婷婷偷| 午夜激情综合| 光棍影院日韩精品| 激情小说视频图片网| 免费看欧美成人A片无码| 97碰超级人人看| 九九视频在线观看| 免费在线观看av网站| 91dy.av| 久久五月丁香| 久这里只有精品99| 91狠狠综合久久久久久| 天天久综合网永久入口17v| 日日杆天天| 婷婷综合玖玖五月| 丁香五月五月婷婷五月天激情四射| 婷婷五月成人| 99 频99热国里只有精品| 26UUU欧美| 日本久久综合| 婷婷色综合| 综合大香蕉| 97人人看| 久9热在线视频| 五月婷啪| 337p大胆噜噜噜噜噜91Av| 黄色五月婷婷| www激情| 综合网色| 那里有AV网址| a网站免费观看| 日韩好吊操| 九九色热| 午夜不卡成人一区二区| 婷婷婷狠狠| 色噜综| 青青久久五月天丁香婷婷| 在热视频精品| 综合久久伊人| 色五月婷婷操逼| 玖玖爱综合网| 99热综合| 久久婷婷五月综合色播| 婷婷六久久| 欧美va在线| 91久久免费| 色婷婷69| 色五月丁香六月资源站| 极品人妻VIDEOSSS人妻| 午夜激情五月| 亚洲AV无码成人精品区电影网| 国产婷婷综合| 国产成人+综合亚洲+天堂| 99视频久久| 99综合婷婷五月| 欧美婷婷丁香社区在线播放| 激情欧美丁香五月| 五月丁香婷婷中文| 国产人妻人伦精品一区二区| 色六月视频| www.com亚洲网站在线免费| 九九综合伊人| 欧美日韩大黄| 日逼影音先锋AV男人资源站| 啪啪 综合网| 日本色色影片| 五月天婷婷综合免费| 爆乳熟妇一区二区三区爆乳| 九九黄色网| 色五狠狠| 三级三久久线久久99久目本WW| 五月天社区| 色婷亚洲| 婷婷天堂站| 亚洲无AV在线中文字幕 | 性欧美大战久久久久久久83| 五月婷婷丁香在线| 91viP在线看| 91无码色色| 99热日| 五月天亚洲最大成人| 99精品综合在线| 色婷婷av在线观看| 丁香五月婷婷俺也要去| 九九99免费视频| 操操操B| 久久免费操| 97色色色色色色色色色色色色色| 性色av大香综合| 国产FREESEXVIDEOS性中国| 五月婷婷六月丁香综合在线| 开心久久xxx色| 日本在线wwww| 色99色| 女人天堂AV| 色国产五月| 97色色综合| 99干日日干| 中文字幕在线不卡| 久久婷婷五月综合色和| 五月激情五月丁香| 丁香五月激情月| 亚洲字幕AV一区二区三区四区| 91色在线 | 日韩| 天天射射夜| AV在线观看网站| 操逼综合激情网| 婷婷丁香六月| 日韩狠狠色| 丁香六月无码播放| 丁香六月 人妻| 丁香六月激情| 99热一本| 丁香六月天婷婷色| 99热网站| 97av在线视频| 婷婷五月色播| 五月婷婷久| 91热er| 亚洲激情在线| 99热综合色图| 婷婷伊人五月丁香天堂网| 国自产拍偷拍精品啪啪一区二区| 超碰免费人人| AV成人在线播放| 色婷婷色五月天| 好好干av| 久久五月丁香六月婷| 99re热精品在线视频| 啪啪夜久久| 色偷偷色婷婷| 999影院成人在线影院| 五月综合激情图片| 天天肏屄夜夜爽| 99热91| 伊人婷婷大香蕉| 伊人五月天97| 密臀av无码人妻精品| 亚洲永远av在线播放| 男同91| 国外亚洲成AV人片在线观看| 丁香五月激情婷婷| 九九综合| 香蕉久久国产AV一区二区| 青青草激情网| 欧美天天综合网站上去吧| 色噜噜狠狠色综合日日| 日韩啪图| 婷婷欧美| 六月撸婷婷| 9l视频自拍9l九色9l成人| 97久操视频| 色婷婷六月| 婷婷丁香18| 色和综合网| 婷婷婷婷午夜| 婷婷五月天综合久久日美女| 五月天婷婷无码| www。五月,com| 啪啪啪丁香五月| 色色色色色日韩午夜激情| 69久久久| 99久久.www| 都市激情亚洲| 国产成人+综合亚洲+天堂| 国产在这里只有精品| 天天草天天爽| 日本欧美成人片AAAA| 爱久久小说下载网| 婷婷伊人综合| 高清国产一级婬片a免费| 丁香五月天婷婷91| 五月激情网站| 国在线激情网| 五月天小说激情| 综合色综合| 五月天婷婷在线AN| 婷婷情色五月天| 开心五月婷婷激情| 人妻AV中文系列| 激情亚洲五月| 亚洲成人AV在线| 激情六月婷婷| 五月天婷婷午夜丁香| 人妻久久久久久久久妻久久久久| 五月六月激情| 久综合| 99精品网| 婷婷五月天成人网| 色吧五月| 99久久婷婷国产综合精品电影| www.minyis.com【JT】实力收量可预付QQ2101460746| 欧美成人精品A片免费一区99| 婷婷不干网| 伊人久热91| 久九色| 99在线看片| 五日激情综合| 99热色精品| 国产99久| 激情六月丁香| 操逼123网| 可以免费观看的av| 99色在线观看| 99干在线| 五月天婷婷一起草| 五月天激情小说欧美激情| 久久激情综合| 色爱综合网| 99热最新地址在线| 久久久国产精品黄毛片| 91呦呦呦| 337p大胆噜噜噜噜噜91Av| 日韩无码人妻一区二区三区综合| 激情五月六月| 欧美日本日韩| 久久婷婷五月综合精品蜜芽| 婷婷五月天天| 色色色地址| 亚洲欧美在线观看| 9有码中文| 激情综合网亚洲色图| 热久国产| 亚洲中文AV| 99,色| 美女丁香五婷婷| 久久96热| 天天色播| 综合久久六月| AV大片在线播放| 欧美黄色韩日网| www.minyis.com【JT】国内CDN落地页保证转化QQ2101460746 | 99爱视频在线观看这里只有精品| 五月婷婷激情在线| 亭亭玉立国色天香| 成人在线99| 日韩乱轮AV| 久久狠狠欧美| 九九在线精点品| 天堂伊人干| 51精品国自产在线| 色五月色五天色情网| 5月婷婷激情网| 亚洲乱码日产精品BD在线观看| 久热99热| 开心激情网在线| 欧美色综合天天久久综合精品| 婷婷99视频精品| 天天五月天综合网址| 老师的粉嫩小又紧水又多A片视频 欧美三级巜人妻互换 | 五月丁香亭亭操逼| 五月婷婷之综合激情在线| 深爱激情四射| 五月丁香啪啪网| 超碰成人黄色网| 99热爱爱干干日| 97色啪| 狠狠爱婷婷丁香| 丁香五月欧美| 99热最新精品| 国产色视频网站2| 丁香花五月天社区| 9色天堂| site:pzdcoin.com| 亚洲中文字幕av| 色综合视频| 色播五月网| 大香久久综合网| wwwC0maV五月花| 国产成人精品一区二三区熟女在线| 国产日比| 九九九九这里只有精品| 激情五月婷婷色综合| 久久精品婷婷| 丁香色六月| 激情精品久久| 婷婷五月免费在线| 性生活视频98791| 丁香婷婷色| 99热这里只有精品首页| 九九性爱网| 九久9精品| 天天做天天爱| 国产AV国片偷人妻麻豆| Av狠狠色丁香婷| 久热精品9999| 久久综合婷婷五月| 亚洲午夜AV| 日日日,com| 激情五月天网页| 洗浴中心操B视频| 丁香婷婷五月天在线视频| 五月婷激情影院| 99re8这里只有精品99re8热视频| 色综合久久888| 亚洲第一成人无码A片| 亚洲1区| 天天干天天干天天干天天干天天干| 婷婷激情小说| 亚洲成人网站在线观看| 97色色婷婷五月天| 亚洲AV日韩无码| 色五月天网| 丁五月激情视频免费| 91操人| 亚洲日本韩国| 91精品国产综合久久密臀| 人人97碰| 天天综合情| 无码免费人妻A片AAA毛片西瓜| 丁香五月综合福利视频导航| 亚洲欧洲美女在线观| 日欧大屏操| 99精品小视频| 日韩超碰在线| 久久国产一区二区三区| 色青五月天| 五月婷婷激情四季| 色婷婷婷婷五月天| 丁香婷婷五月| 99久久五月婷婷| 人妻狠狠操| 在线观看中文字幕| 五月天成人综合| 色婷婷五月综合色婷婷| 久久精彩综合视频| 狠狠色丁香久久婷婷综合五月| 日韩综合久久| 婷婷在线日韩综合| 亚洲人妻av| 吉澤明步Av一區二區| 色无码| 日本专区久久| www 五月天 com| www99精品| 婷婷五月天大香蕉在线视频观看| 丁香五月激情宗合网| 欧美黄色AA片哗啦啦啦| 亚洲中文字幕在线观看| 丁香五婷婷| 五月婷婷婷自由综合| 深爱婷婷网| 9久9久| 久久婷婷一级片| 亚洲综合99| 九九大香蕉黄色影院| 六月婷欧美丁香综合| 久热这里只精品| 殴美综合激情五月天免费视频| 热思思九九| 色丁香五月天射婷婷爱婷婷| 婷婷色五月婷| 久久婷婷青青| 丁香五月综合福利视频导航| 欧美一级色| 国产精品色婷婷99久久精品| 丁香六月婷婷综合| 99久在线精品99re8热| 日日天天天| 日韩五月婷婷| 久久视频在线视频| 97色热| 天天操天天爱天天玩| 久99热| 伊人大香蕉综合在线| 激情五月天网| 玖玖99免费视频| 国产高清精品色| 婷婷和五月天| 婷五月天六| 四川BBB搡BBB爽爽视频| 久久久久久久97| 五月婷婷激情四月| 五月激情四射婷婷丁香| www.五月天色色色| 91色性感五月婷婷丁香| 婷婷色六月| 国产婷婷综合| www.开心激情| 婷婷丁香六月影视| www.五月婷婷久久.com| 亚洲电影中文字幕| 亚洲亚洲人成综合网络| 99色综合| 天堂久久婷婷| 天天精品视频免费观看| 97色色色色色色色色色色色色色| 99精品热| 久久草中文日韩欧美| 碰碰碰碰碰99| 九九99九九精品免费 | 久99久热只有精品国产99| 久久五月天婷婷| 日本精品九九九| 久久99精品久| 97人妻超级碰碰碰碰碰| 我爱大香蕉| 五月丁香999| 九九综合| 人妻久久久久久久 | 久久综合综合综合| 色99在线视频| 14色综合婷婷| 狠狠操狠狠爱| 日日操夜夜操狠狠操| 无码九九九九| 国产91在线视频| 好叼操在线观看| 无码少妇高潮喷水A片免费| 婷婷五月天激情网| 99热6这里只有精品| 91超碰在线观看| 六月丁香婷婷综合狠狠爱夜夜爱| 99性视频| 六月色播| www色五月| 婷婷精品性视频| 色色综合网络| 亚洲色激情| 老司机伊人| 亚洲99精品欧美一区| 亚洲激情.com| 色色色色av色色色色| 婷婷五月18永久免费视频| 久久九九蜜| 99免费视频网| 亚洲综合色色色| 五月婷婷丁香婷婷| 十一月婷婷激情四射| 无套内射极品大美女| 狠狠干,狠狠操| 色婷婷五月天成人网| 91超级碰在线视频| 色婷| 久久精彩免费视频| 色五月亚洲| 亚洲国产精品VA在线看黑人| 韩国中文字幕91| www.99riav99| 99久久五月婷婷| 视频1区2区| 91黄操| 成人做爰A片免费看网站找不到了| 久久精品爱爱| 婷婷开心青青草| 伊人网色婷婷五月天| 日本色色色| 9l视频自拍9l视频自拍九色学生| 久热综合| 久久久中文| 99国产在线精品视频| 五月丁香久久激情综合| 91婷婷五月丁香碰| 五月丁香亭亭| Www.激情| 久操激情| 99热97美女| 日日操天天操| 久久婷婷五月综合激情国产 | 亚洲一色色色色色色色色| 热热久久久久久久久| 99在线精品视频免费观看20| 99色在线观看视频| 色五月天婷婷| 国产无遮挡又黄又爽免费网站| www.亚洲激情.com| 91人人超碰在线| 日日天天天| 天天日天天干天天插天天射| 婷婷美女精品视频| 国产99美少妇| 天天干天天色天天干| 99热只有这里有精品| 99热这里是精品| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 97超级免费无码| 99操久久| 婷婷五月天激情综合深爱| 久久99网| 久久九色| www.久久色.com| 开心婷婷中文字慕| 26uuu另类| av网址在线| 成人 在线观看国产| 色播播婷婷| 在线五月色播| 色综合久久五月天| 五月丁香影院| 黄色91在线观看| 丁香六月婷婷开心| 26uuu欧美日本| 激情五月天婷婷| 人妻六月天| 欧美久草在线日本一级特黄大片做受9在线观看韩国电影《两个女人》未删减-毛片 | 国产精品国产| 激情啪啪五月天| 丁香五月婷婷www..com| 高清a片基地| www.91热久久| 五婷婷综合网| 丁香六月综合| 两性婷婷丁香五月| 操操啪| 日日夜夜狠狠操| 大地9中文在线观看免费高清| 婷婷五月丁香香蕉| 欧美婷婷五月无砖| 九九热99免费视频| 精品热青草| 俺来也综合网精品一区| 夜夜躁爽日日| 天久综合91综合首页| 91超碰人人操| 亚洲视色| 欧美三9久九观看| 丁香色婷婷| 九九热最新| 六月婷婷综合网2| 99色在线视频观看| www.色婷婷| 婷婷六月香| ...婷婷国产成人亚洲日韩| WWW99热| 99精品久久久久久久久| 激情婷婷五月天网址| 丁香九月婷| 六月色婷婷综合影视| 91精品国产综合久久密臀| 激情网五月天| 婷婷六月天天| 亚洲这里只有精品| 五月天婷a在线| 26uuu.| 一起草性爱不卡视频| 偷偷操99| 亚洲AV色婷婷人禽五月天| 精品亚洲国产成AV人片传媒| 人妻自慰在线| 99啪啪视频| 婷婷色五月激情强奸四射| 婷婷五月天激情五月天深爱五月天| 搡BBBB搡BBB搡18| 人人亚洲| 久久激情五月婷婷| 亚洲av网站在线观看| 激情五月天偷拍综合网| 99精品丰满| 久久久五月婷婷| 中文成人在线| 99er6| 99热精品在线| 丁香婷婷精品视频| 夜夜夜夜夜操| 97干在线视频| 久久五月婷| 99日韩| 久久久久久欧美精品se一二三四| 14色综合婷婷| 99精品在线观看视频| 色婷婷AV在线| 婷婷丁香69精华| 亚洲成人高清在线| 久久婷婷五月草视频在线播放| 99热6精品| 色5月婷婷| 婷婷爱五月| 亭亭色天香| 99热综合网| 99热传媒| 五月丁香六月在线欧美| 免费五月婷婷网| www.99在线| enecarbon-materials.com污K127封锁请涟系@wip1688 | 婷婷丁香视频在线观看免费| 五月激情天| 色五月婷婷成人视频| AA片在线观看视频在线播放 | 另类图片激情五月| 色五月综合在线| 97色婷婷| 超碰人人在线| 激情五月综亚网| 激情涩播| se99视频| 久久色五月天| 91婷婷| 有码人妻久久| 色色五月婷婷网| 婷婷六月久久综合导航| 影音先锋 一区| 久久婷丁香五月| 伊人网欧美在线男人天堂五月丁香| 日韩啪啪视频| 久久这里只有精品无码| 九 九九九AV| 五月婷婷|欧美| 久久99免费视屏| 久久精品99国产精品日本| 色六月天| 五月天停婷基地| 操操啪| 天天干天天日天天插| 91久女| 成人在线视频一区| 中文字幕在线观看视频www| 九九在线精品| 色综合色综合网| 久久久久久99精品无码| 久久人人妻| 色小说五月婷婷| 日本人人草草| 91色久| www.ppypp| 免费啪啪亚州视频| 天天爽夜夜操| 丁香六月激情综合啪啪| 99碰网站| 欧美大肥婆大肥BBBBB| 久热网站| PORNY九色9l自拍视频成人| 激情五月综合网| 99亚州综合精品成人网| 九九激情网| 91丨九色丨首页| 武则天精品久久| 成人网丁香五月| 欧美日韩国产伦精品日韩人妻一| 99久久综合网| 99这里只有精品|v| 婷婷六月激情小说网| av婷婷丁香| 综合色五月| 深夜A片| 九九热这里只有精品5| 超碰人人摸AV| 99在线小视频| 五月婷婷六月丁香综合| 成人五月天在线观看|