亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

Java集成Python YOLO ONNX:視頻目標(biāo)檢測(cè)架構(gòu)與避坑指南

Java集成Python YOLO ONNX:視頻目標(biāo)檢測(cè)架構(gòu)與避坑指南 簡(jiǎn)介Java 與 Python 混合調(diào)用 YOLO ONNX 模型完成視頻目標(biāo)檢測(cè)的完整工程面向需要將深度學(xué)習(xí)能力接入 Java 服務(wù)端、處理 RTSP/RTMP 實(shí)時(shí)視頻流的開發(fā)者覆蓋 YOLOv5、YOLOv7、YOLOv8 等主流模型解決跨語言推理、數(shù)據(jù)格式轉(zhuǎn)換和檢測(cè)結(jié)果可視化等實(shí)際問題。壓縮包共 68 個(gè)文件、約 272MB包括 17 個(gè) Java 源碼、5 個(gè) ONNX 模型、1 個(gè) Python 推理腳本以及演示視頻、效果截圖、GIF 動(dòng)圖和說明文檔目錄結(jié)構(gòu)清晰便于直接閱讀與二次開發(fā)。已有 265 人學(xué)習(xí)。工程完整展示了從視頻流獲取、幀預(yù)處理、模型調(diào)用到后處理的全鏈路Java 端負(fù)責(zé)解析 RTSP/RTMP 視頻流對(duì)視頻幀進(jìn)行縮放、歸一化、填補(bǔ)操作并轉(zhuǎn)換為 Numpy 數(shù)組再通過 JNI 等機(jī)制調(diào)用 Python 腳本加載 ONNX 模型執(zhí)行目標(biāo)檢測(cè)返回結(jié)果后Java 端再做置信度過濾、識(shí)別框繪制等后處理。配合演示視頻和預(yù)覽圖可快速驗(yàn)證同一套方案在不同 YOLO 版本下的運(yùn)行效果適合正在做目標(biāo)檢測(cè)落地的中級(jí)以上 Java 開發(fā)者參考能顯著減少跨語言集成的踩坑時(shí)間。1. Java 調(diào) Python YOLO ONNX 模型做視頻檢測(cè)先看清這套架構(gòu)的邊界Java 后臺(tái)要接視頻目標(biāo)檢測(cè)算法同事丟來三個(gè) .pt 權(quán)重yolov5s、yolov7、yolov8n說“你拿去集成吧”。直接拿 Java 寫一堆 letterbox 和 NMS 的代價(jià)比想象中大得多。把 PyTorch 模型導(dǎo)出成 ONNX再讓 Python 側(cè)用 ONNX Runtime 常駐推理Java 只負(fù)責(zé)取幀、發(fā)送和畫框這套「Java 調(diào)用 Python YOLO ONNX 模型進(jìn)行視頻目標(biāo)檢測(cè)與識(shí)別」的管線是我做下來最不容易翻車的組合。它適合手里已有現(xiàn)成 YOLO 權(quán)重、主系統(tǒng)是 Java、又不想把模型后處理邏輯重寫一遍的團(tuán)隊(duì)。識(shí)別這一步最終落在類別 ID 到名稱的映射上Java 端拿回 JSON 畫框標(biāo)字即可。2. 把 PyTorch 權(quán)重導(dǎo)出成 ONNXYOLOv5/v7/v8 的導(dǎo)出命令與輸出校驗(yàn)2.1 三個(gè)版本的導(dǎo)出命令差異先說環(huán)境前提Python 3.8 以上裝好 onnxruntime 和 torch。沒裝 Python 的先去官網(wǎng)裝一個(gè)安裝時(shí)記得把 Add to PATH 勾上否則后面 Java 的 ProcessBuilder 會(huì)報(bào)找不到 python 命令。預(yù)訓(xùn)練權(quán)重在官方 release 頁可以直接下載yolov8 用命令行會(huì)自動(dòng)拉取。YOLOv5 的導(dǎo)出在倉庫根目錄執(zhí)行# yolov5 倉庫根目錄 python export.py --weights yolov5s.pt --include onnx --opset 12注意 v5 的 export.py 有個(gè)--grid參數(shù)。不加它導(dǎo)出的是三個(gè)尺度原始特征圖后處理要自己寫 grid 偏移和 anchor 先驗(yàn)加上它直接輸出解碼后的 1x25200x85。我在 ORT 里用后一種省事。YOLOv7 的導(dǎo)出python export.py --weights yolov7.pt --grid --simplify --img-size 640 640v7 的--end2end參數(shù)是給 TensorRT 做內(nèi)置 NMS 用的ONNX Runtime 里用不上我一般不碰。--simplify會(huì)走一遍 onnx-simplifier把多余的 Shape、Gather 節(jié)點(diǎn)清掉。YOLOv8 用 ultralytics 的 CLIyolo export modelyolov8n.pt formatonnx opset12 imgsz640v8 導(dǎo)出默認(rèn)輸出 1x84x840084 是 4 個(gè)坐標(biāo)加 80 個(gè)類別分?jǐn)?shù)8400 是三個(gè)尺度中心點(diǎn)總數(shù)沒有 objectness 分支。部分新版本支持transposedTrue輸出變成 1x8400x84兩者只有維度順序差異后面校驗(yàn)?zāi)_本能一眼看出來。2.2 用 ONNX Runtime 校驗(yàn)輸出輸入輸出名與 shape導(dǎo)出后先別急著寫后處理用一段腳本把輸入輸出名、shape 打出來。onnx 只是模型文件格式onnxruntime 是真正干活的推理引擎這兩者常被混著說但命令和報(bào)錯(cuò)信息完全不一樣。import onnxruntime as ort import numpy as np import cv2 sess ort.InferenceSession(yolov8n.onnx, providers[CPUExecutionProvider]) inp sess.get_inputs()[0] out sess.get_outputs()[0] print(input:, inp.name, inp.shape, inp.type) print(output:, out.name, out.shape, out.type) # 單幀冒煙測(cè)試 frame cv2.imread(frame.jpg) frame cv2.resize(frame, (640, 640)) x frame[:, :, ::-1].transpose(2, 0, 1)[None].astype(np.float32) / 255.0 pred sess.run([out.name], {inp.name: x})[0] print(pred shape:, pred.shape)這段腳本做了三件事確認(rèn)輸入名和 shape確認(rèn)輸出名和 shape驗(yàn)證預(yù)處理鏈路。frame[:, :, ::-1]是把 OpenCV 讀進(jìn)來的 BGR 轉(zhuǎn)成 RGBtranspose(2, 0, 1)[None]是把 HWC 轉(zhuǎn)成 NCHW除以 255 是歸一化。跑出來如果是(1, 84, 8400)就是 v8(1, 25200, 85)就是帶 decode 的 v5/v7。第一次跑先不碰后處理這一步就能暴露八成格式問題。2.3 導(dǎo)出參數(shù)三個(gè)必調(diào)項(xiàng)opset、simplify、動(dòng)態(tài)軸opset 選 12 到 14 比較穩(wěn)妥ORT 1.11 以上都能跑。opset 開太高舊版本 ORT 會(huì)直接報(bào) UnsupportedOperator這時(shí)候最容易走玄學(xué)排障路線。v5 導(dǎo)出自帶 simplifyv8 導(dǎo)出完建議自己再跑一次 onnxsim去掉多余節(jié)點(diǎn)后輸出名會(huì)更干凈Java/Python 兩側(cè)對(duì)模型文件也更有底。動(dòng)態(tài)軸我一般不開。固定 640x640 輸入模型加載后每次推理的內(nèi)存布局一致后處理里 grid 也是寫死的比動(dòng)態(tài) shape 省心。動(dòng)態(tài)輸入每次 shape 變化時(shí) ORT 第一次推理有額外開銷Java 端也難預(yù)估單幀耗時(shí)。如果確實(shí)要跑多種分辨率我寧愿多導(dǎo)出幾個(gè)固定尺寸的 onnx 文件按場(chǎng)景切換不搞一個(gè)萬能動(dòng)態(tài)模型。3. Java 和 Python 的三種聯(lián)調(diào)方式選型對(duì)比與最小可跑通的常駐服務(wù)3.1 三種聯(lián)調(diào)方式的取舍進(jìn)程啟動(dòng)、常駐服務(wù)、Java 直調(diào)Java 調(diào) Python 里的 ONNX 模型常見做法有三種方案優(yōu)點(diǎn)缺點(diǎn)適用場(chǎng)景每幀啟動(dòng) ProcessBuilder 跑 python 腳本實(shí)現(xiàn)最簡(jiǎn)單代碼只有幾行Python 解釋器啟動(dòng)加模型加載要 1 到 3 秒幀率掉到個(gè)位數(shù)離線批量測(cè)試Python 常駐進(jìn)程 本機(jī) Socket 通信一次加載多次推理后處理改完重啟進(jìn)程就生效要處理幀序列化和進(jìn)程生命周期生產(chǎn)環(huán)境項(xiàng)目選型推薦Java 直調(diào) ONNX Runtime Java API吞吐最高沒有跨進(jìn)程拷貝letterbox、NMS、三種版本解碼全要在 Java 里重寫純 Java 團(tuán)隊(duì)且模型不再頻繁換ONNX Runtime 確實(shí)有 Java 綁定但 YOLO 后處理細(xì)節(jié)不少。v5 要算 objectness 乘類別分?jǐn)?shù)v8 直接取類別最大值NMS 還要自己實(shí)現(xiàn)或者調(diào) OpenCV 的接口。模型一換Java 代碼就得跟著發(fā)版這個(gè)維護(hù)成本會(huì)持續(xù)疊加。我選第二種Java 管視頻流和業(yè)務(wù)Python 管模型推理兩邊職責(zé)清楚模型更新只換 onnx 文件、重啟 Python 進(jìn)程Java 端一行不動(dòng)。3.2 Python 端 ONNX Runtime 常駐推理服務(wù)Python 端起一個(gè) Socket 服務(wù)監(jiān)聽 127.0.0.1。協(xié)議很簡(jiǎn)單先收 4 字節(jié)大端長(zhǎng)度再收完整 JPEG 幀返回結(jié)果用同樣方式。綁定本機(jī)回環(huán)地址就夠了不暴露給外部。import socket import struct import threading import json import numpy as np import cv2 import onnxruntime as ort class YoloDetector: def __init__(self, onnx_path): self.session ort.InferenceSession(onnx_path, providers[CPUExecutionProvider]) self.input_name self.session.get_inputs()[0].name self.input_size 640 self.lock threading.Lock() def preprocess(self, jpg_bytes): img cv2.imdecode(np.frombuffer(jpg_bytes, np.uint8), cv2.IMREAD_COLOR) h, w img.shape[:2] scale min(self.input_size / w, self.input_size / h) nw, nh int(w * scale), int(h * scale) resized cv2.resize(img, (nw, nh)) canvas np.full((self.input_size, self.input_size, 3), 114, np.uint8) dw, dh (self.input_size - nw) // 2, (self.input_size - nh) // 2 canvas[dh:dh nh, dw:dw nw] resized blob canvas[:, :, ::-1].transpose(2, 0, 1)[None].astype(np.float32) / 255.0 return blob, scale, dw, dh def decode(self, pred, conf_thres, iou_thres): pred np.squeeze(pred) if pred.shape[0] pred.shape[1]: pred pred.T # v5/v7: (N, 85)其中第 5 列是 objectness # v8: (N, 84)沒有 objectness直接取類別最大值 if pred.shape[1] 85: obj pred[:, 4:5] cls_score pred[:, 5:] scores (obj * cls_score).max(axis1) cls cls_score.argmax(axis1) else: cls_score pred[:, 4:] scores cls_score.max(axis1) cls cls_score.argmax(axis1) keep scores conf_thres boxes pred[keep, :4] scores scores[keep] cls cls[keep] if len(scores) 0: return [] x1 boxes[:, 0] - boxes[:, 2] / 2 y1 boxes[:, 1] - boxes[:, 3] / 2 x2 boxes[:, 0] boxes[:, 2] / 2 y2 boxes[:, 1] boxes[:, 3] / 2 boxes np.stack([x1, y1, x2, y2], axis1) idx cv2.dnn.NMSBoxes(boxes.tolist(), scores.tolist(), conf_thres, iou_thres) if len(idx) 0: return [] idx np.array(idx).flatten() return boxes[idx], scores[idx], cls[idx] def infer(self, jpg_bytes, conf0.25, iou0.45): blob, scale, dw, dh self.preprocess(jpg_bytes) with self.lock: pred self.session.run(None, {self.input_name: blob})[0] boxes, scores, cls self.decode(pred, conf, iou) result [] for (x1, y1, x2, y2), score, c in zip(boxes, scores, cls): result.append({ x1: round(float((x1 - dw) / scale), 2), y1: round(float((y1 - dh) / scale), 2), x2: round(float((x2 - dw) / scale), 2), y2: round(float((y2 - dh) / scale), 2), score: round(float(score), 4), cls: int(c) }) return resultdecode 里 85 和 84 的區(qū)分是這套代碼同時(shí)吃三種模型的關(guān)鍵。v5/v7 的 model shape 是 25200x8585 里第 5 列是 objectness所以分?jǐn)?shù)要拿 objectness 乘類別概率v8 是 8400x84直接對(duì)類別維度取最大值就行。服務(wù)端主循環(huán)def handle(conn): while True: header conn.recv(4) if len(header) 4: break length struct.unpack(I, header)[0] buf b while len(buf) length: chunk conn.recv(length - len(buf)) if not chunk: break buf chunk dets detector.infer(buf) payload json.dumps(dets).encode() conn.sendall(struct.pack(I, len(payload)) payload) srv socket.socket(socket.AF_INET, socket.SOCK_STREAM) srv.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) srv.bind((127.0.0.1, 9010)) srv.listen(5) while True: conn, _ srv.accept() threading.Thread(targethandle, args(conn,), daemonTrue).start()長(zhǎng)度前綴必須用大端I和 Java 端 DataOutputStream.writeInt 默認(rèn)行為一致。收幀時(shí)不能只 recv 一次就假設(shè)拿完整包TCP 是流協(xié)議分包和粘包都會(huì)遇到循環(huán)收滿再解析是底線。session.run 外面加了鎖多線程連接同時(shí)進(jìn)來時(shí)不會(huì)出現(xiàn)偶發(fā)崩潰。3.3 Java 端啟動(dòng) Python 進(jìn)程與 Socket 客戶端封裝Java 端用 ProcessBuilder 把 Python 服務(wù)拉起來之后所有檢測(cè)請(qǐng)求都走同一個(gè) Socket 連接。public class YoloClient implements Closeable { private final DataInputStream in; private final DataOutputStream out; public YoloClient(String host, int port) throws IOException { Socket socket new Socket(host, port); in new DataInputStream(new BufferedInputStream(socket.getInputStream())); out new DataOutputStream(new BufferedOutputStream(socket.getOutputStream())); } public ListDetectedBox detect(byte[] jpeg) throws IOException { out.writeInt(jpeg.length); // 大端與 Python struct.pack(I) 對(duì)齊 out.write(jpeg); out.flush(); int len in.readInt(); byte[] buf new byte[len]; in.readFully(buf); // readFully 保證拿完整包 return parseJson(new String(buf, StandardCharsets.UTF_8)); } public static void startPythonService() throws IOException { ProcessBuilder pb new ProcessBuilder( python, /opt/yolo/server.py, --model, /opt/yolo/yolov8n.onnx, --port, 9010); pb.redirectErrorStream(true); pb.redirectOutput(new File(/var/log/yolo-service.log)); pb.start(); // 輪詢端口等服務(wù)真正起來 for (int i 0; i 20; i) { try (Socket s new Socket(127.0.0.1, 9010)) { return; } catch (IOException e) { Thread.sleep(500); } } throw new IOException(python service not ready); } }detect 方法里那個(gè)out.flush()很容易漏。BufferedOutputStream 會(huì)把 writeInt 和 write 都緩存住不 flush 數(shù)據(jù)就躺在緩沖區(qū)Python 端一直等不到請(qǐng)求。readFully 則是處理半包的后悔藥普通 read 一次讀不滿 JSON 就得自己拼readFully 內(nèi)部幫你解決。生產(chǎn)部署時(shí)我更推薦把 Python 服務(wù)單獨(dú)拉起交給 systemd 托管Java 只當(dāng)客戶端進(jìn)程生命周期不綁在一起。ProcessBuilder 拉起床的唯一好處是演示環(huán)境下夠簡(jiǎn)單。4. Java 端視頻取幀與結(jié)果回填JavaCV 管線、坐標(biāo)還原與畫框4.1 JavaCV 取流與 JPEG 編碼JavaCV 的 FFmpegFrameGrabber 能同時(shí)處理本地 MP4 和 RTSP 攝像頭流。取幀后轉(zhuǎn)成 Mat再編碼成 JPEG 發(fā)給 Python這是目前最順的鏈路。FFmpegFrameGrabber grabber new FFmpegFrameGrabber(rtsp://admin:password192.168.1.10:554/stream1); grabber.setOption(rtsp_transport, tcp); // UDP 在弱網(wǎng)下瘋狂丟包 grabber.start(); OpenCVFrameConverter.ToMat toMat new OpenCVFrameConverter.ToMat(); MatOfByte buf new MatOfByte(); long intervalMs 100; // 每秒最多 10 幀 while (true) { long t0 System.currentTimeMillis(); Frame frame grabber.grabImage(); if (frame null) break; Mat bgr toMat.convert(frame); Imgcodecs.imencode(.jpg, bgr, buf); // JPEG 質(zhì)量由 ENCODE_PARAM 控制 byte[] jpeg buf.toArray(); ListDetectedBox dets client.detect(jpeg); drawBoxes(bgr, dets); // 按節(jié)拍取幀不依賴 grabber 內(nèi)部幀率 long elapsed System.currentTimeMillis() - t0; if (elapsed intervalMs) Thread.sleep(intervalMs - elapsed); // 業(yè)務(wù)處理完記得 release }RTSP 傳輸用 TCP 而不是默認(rèn) UDP視頻流在弱網(wǎng)下不會(huì)變成滿屏馬賽克檢測(cè)框也不會(huì)跟著亂飄。不要依賴 setFrameRate 來節(jié)流那個(gè)參數(shù)在流輸入場(chǎng)景下并不控制取幀節(jié)奏手動(dòng)按 100 毫秒間隔 sleep 更可靠。JPEG 質(zhì)量是個(gè)容易忽略的坑。JDK 自帶 ImageIO 不開放質(zhì)量參數(shù)默認(rèn)壓縮率偏高小目標(biāo)會(huì)被壓糊。用 OpenCV 的 imencode 可以控制MatOfInt params new MatOfInt( Imgcodecs.IMWRITE_JPEG_QUALITY, 85, Imgcodecs.IMWRITE_JPEG_OPTIMIZE, 1); Imgcodecs.imencode(.jpg, bgr, buf, params);質(zhì)量 85 是我常用的值再低檢測(cè)精度開始下降再高編碼開銷變大對(duì)檢測(cè)結(jié)果沒有額外收益。4.2 坐標(biāo)還原與檢測(cè)類別回填Python 端返回的 x1、y1、x2、y2 已經(jīng)是原始視頻幀坐標(biāo)因?yàn)?server.py 里用(x - pad) / scale做過 letterbox 逆變換。Java 端拿到后直接畫框不需要再乘任何縮放系數(shù)。這里的分工必須寫清楚還原坐標(biāo)是 Python 端的事Java 端只負(fù)責(zé)展示和存儲(chǔ)。private void drawBoxes(Mat bgr, ListDetectedBox dets) { for (DetectedBox b : dets) { Rect rect new Rect((int) b.x1, (int) b.y1, (int) (b.x2 - b.x1), (int) (b.y2 - b.y1)); Imgproc.rectangle(bgr, rect, new Scalar(0, 255, 200), 2); String label COCO_CLASSES[b.cls] b.score; Imgproc.putText(bgr, label, new Point(b.x1, Math.max(b.y1 - 6, 20)), Imgproc.FONT_HERSHEY_SIMPLEX, 0.6, new Scalar(0, 255, 200), 1); } }COCO_CLASSES 是 80 個(gè)類別名的靜態(tài)數(shù)組網(wǎng)上到處都能找到完整清單。如果是自定義數(shù)據(jù)集自己訓(xùn)練時(shí)會(huì)在 data.yaml 里保留類別名寫個(gè)啟動(dòng)時(shí)讀取的邏輯替換掉硬編碼數(shù)組即可。putText 的 y 坐標(biāo)要防止框貼頂時(shí)文字畫到畫面外所以取了max(y1 - 6, 20)。4.3 取幀參數(shù)參考表參數(shù)推薦值說明rtsp_transporttcp避免信道丟包導(dǎo)致檢測(cè)目標(biāo)缺損抽幀間隔100ms與單幀推理耗時(shí)匹配留出余量JPEG 質(zhì)量85低于 70 小目標(biāo)容易漏檢輸入尺寸640x640固定尺寸ORT 推理消耗可控服務(wù)地址127.0.0.1:9010本機(jī)回環(huán)不占外網(wǎng)端口取幀管線里丟一兩幀沒關(guān)系。檢測(cè)任務(wù)本來就按節(jié)拍抽幀不用每幀都送推理。如果推理耗時(shí) 80 毫秒抽幀間隔設(shè) 100 毫秒最合理設(shè)成 33 毫秒只會(huì)讓請(qǐng)求在 Python 端排隊(duì)內(nèi)存占用慢慢漲上去。5. 聯(lián)調(diào)避坑記錄五個(gè)把方案拖垮的常見問題5.1 letterbox pad 沒還原框整體朝右下飄現(xiàn)象檢測(cè)框位置大體對(duì)但越往右下角偏得越狠小目標(biāo)偏得尤其明顯。原因輸入模型之前做了 letterbox把原圖縮放并填充到 640x640。模型輸出的坐標(biāo)是在 640x640 坐標(biāo)系里的如果不減 pad、不除以縮放比直接當(dāng)成原圖坐標(biāo)畫框必然偏移。padding 在右邊和下邊所以框都往右下飄。解決preprocess 階段把 scale、dw、dh 三個(gè)值帶出來解碼后逐框反算。代碼里就是(x - dw) / scale這一步反算完再 clamp 到原圖寬高范圍內(nèi)。5.2 每幀都起 Python 進(jìn)程2 FPS 的瓶頸現(xiàn)象Java 端每次都 new 一個(gè) ProcessBuilder 跑python detect.py單幀耗時(shí) 2 秒以上CPU 直接打滿。原因Python 解釋器啟動(dòng)要幾百毫秒onnxruntime 加載模型又要幾百毫秒到一兩秒這還沒算推理本身。每幀重來一次時(shí)間全部花在啟動(dòng)上。解決改成常駐進(jìn)程。模型加載只做一次Socket 復(fù)用Java 端只是發(fā)送 JPEG 和收 JSON。實(shí)測(cè)從 2 FPS 直接跳到 10 FPS 以上瓶頸才回到真正的推理耗時(shí)上。5.3 Java 與 Python 的半包和字節(jié)序聯(lián)調(diào)變黑匣子現(xiàn)象Python 單獨(dú)跑一張圖有結(jié)果Java 發(fā)過去之后要么解析報(bào)錯(cuò)要么返回空列表而且不是每次必現(xiàn)。原因兩個(gè)隱藏問題疊在一起。一是字節(jié)序Java DataOutputStream.writeInt 默認(rèn)大端Python 端如果用了struct.unpack(I)小端解析長(zhǎng)度值就完全錯(cuò)亂二是半包TCP 流可能一次只到一半數(shù)據(jù)直接用 recv 一次拿不全。解決統(tǒng)一用大端IJava 端 readInt 天然對(duì)齊。Python 端用 while 循環(huán)收滿 length 字節(jié)再解析Java 端用in.readFully()。這兩個(gè)坑都踩平之后聯(lián)調(diào)就不會(huì)再出玄學(xué)問題。5.4 換 YOLOv8 后硬編碼維度直接炸現(xiàn)象v5 跑得好好的換成 yolov8.onnx 之后返回全空或者 Java 端解析 JSON 時(shí)數(shù)組越界。原因v5 輸出是 1x25200x85v8 輸出是 1x84x8400。如果解碼代碼里寫死 25200 或者寫死 84換模型必炸。更隱蔽的是自定義數(shù)據(jù)集v8 訓(xùn)練 10 個(gè)類別時(shí)輸出是 1x14x8400寫死 84 一樣出錯(cuò)。解決解碼函數(shù)里動(dòng)態(tài)推導(dǎo)。pred.shape[1] 85走 v5/v7 分支否則走 v8 分支類別數(shù)從pred.shape[1] - 5或pred.shape[1] - 4推導(dǎo)不寫死。換模型時(shí)只改 onnx 路徑代碼不用動(dòng)。5.5 內(nèi)存只漲不降Mat 沒 release 的連鎖反應(yīng)現(xiàn)象服務(wù)跑一晚上Java 進(jìn)程內(nèi)存從 500MB 漲到 3GB最后 OOM 被殺。原因OpenCV 的 Java 綁定不像 Java 對(duì)象那樣自動(dòng)回收Mat 底層是 native 內(nèi)存。每幀取出來 new 一個(gè) Mat用完不 releasenative 內(nèi)存就持續(xù)累積。Python 端如果請(qǐng)求積壓隊(duì)列里的 numpy 數(shù)組也會(huì)跟著堆積。解決Mat 用完放 finally 里bgr.release()JavaCV 的 grabber 在 finally 里調(diào)用 stop 和 close。Python 端 Socket 接收緩沖區(qū)設(shè)置上限檢測(cè)請(qǐng)求跟不上就主動(dòng)丟幀不堆隊(duì)列。定位內(nèi)存問題時(shí)用jcmd GC.class_histogram看 native 內(nèi)存別只看堆。6. 閾值、線程數(shù)與 int8 量化讓這套檢測(cè)管線持續(xù)產(chǎn)出的驗(yàn)證清單6.1 參數(shù)表conf、iou、線程與抽幀參數(shù)建議值說明conf_thres0.25誤報(bào)多時(shí)調(diào)到 0.4框數(shù)量明顯減少iou_thres0.45密集遮擋場(chǎng)景調(diào) 0.3抑制重疊框intra_op_num_threadsCPU 核數(shù)一半留一半線程給取幀和業(yè)務(wù)抽幀間隔單幀耗時(shí)的 1.2 倍防止請(qǐng)求在 Python 端排隊(duì)JPEG 質(zhì)量85質(zhì)量再高對(duì)檢測(cè)結(jié)果無提升線程數(shù)不要盲目拉滿。onnxruntime 的 intra_op_num_threads 設(shè)成 CPU 核數(shù)時(shí)每幀推理快了但 Java 端取幀線程會(huì)被擠到等 CPU整體吞吐反而下降。留一半核給業(yè)務(wù)線程是多次壓測(cè)后的折中。6.2 int8 量化與聯(lián)調(diào)一致性驗(yàn)證跑通之后如果 CPU 資源緊張可以給模型做 int8 量化from onnxruntime.quantization import quantize_dynamic, QuantType quantize_dynamic(yolov8n.onnx, yolov8n_int8.onnx, weight_typeQuantType.QUInt8)量化后的模型體積縮小到四分之一左右CPU 推理能快 20% 到 40%。代價(jià)是精度下降小目標(biāo)漏檢率會(huì)上升。所以原模型文件先備份量化模型單獨(dú)存上線前用同一段視頻對(duì)比兩版輸出。這也是我給自己留的后悔藥Java 端不用改任何代碼Python 服務(wù)換個(gè) onnx 路徑重啟就行。驗(yàn)證聯(lián)調(diào)一致性最直接的辦法是讓 Python 單獨(dú)跑一遍視頻Java 聯(lián)調(diào)再跑一遍比對(duì)同幀的框def iou(a, b): x1 max(a[x1], b[x1]); y1 max(a[y1], b[y1]) x2 min(a[x2], b[x2]); y2 min(a[y2], b[y2]) inter max(0, x2 - x1) * max(0, y2 - y1) area_a (a[x2] - a[x1]) * (a[y2] - a[y1]) area_b (b[x2] - b[x1]) * (b[y2] - b[y1]) return inter / (area_a area_b - inter 1e-6) def match_rate(dets_py, dets_java): matched sum(any(iou(a, b) 0.5 for b in dets_java) for a in dets_py) return matched / max(len(dets_py), 1)匹配率 95% 以上就算通過百分之幾的差異來自浮點(diǎn)精度和 JPEG 重編碼不影響業(yè)務(wù)判斷。這套方案我前后接過三個(gè)項(xiàng)目從 v5 遷到 v8 都是只換 onnx 文件Java 側(cè)代碼始終沒動(dòng)過。每個(gè)項(xiàng)目最后我都會(huì)留一段測(cè)試視頻和這個(gè)比對(duì)腳本下次聯(lián)調(diào)直接跑省掉大量反復(fù)確認(rèn)的黑匣子時(shí)間。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
立川理惠被中出无码| 国产400孕妇孕交群| 欧美少妇人妻| 我要看免费韩日黄片| 一区二区三区国产精产| 午夜精品久久久久久久久久久久久| 欧美日韩国产黄色片| 午夜天天碰综合视频| 曰本特级特黄特色黄色A级网站高清在线免费看| 麻豆av一区二区| 五月天黄色激情视频| 欧美同性恋 的搜索结果 - 91n| 欧美日韩一区二区三区四区蜜桃| 中文字幕三四五区| 十八禁一区二区无码观看| 色五月激情综合网| 激情久久久| 亚洲天堂男人天堂网| 精品国产乱码久久久兰草影视| 午夜丁香| 久久这里只精品99re66图| 日韩欧无码一区二区三区免费不卡| 欧美在线啊啊啊 | 国产精品操| 青青草在线视频欧美| 老鸭窝亚洲毛片| 91挑色欧美| A啊啊在线观看| 日本高清熟女久久一区| 中文字幕一区电影在线观看| 国产精品自拍视频| 免费A V在线播放| 久久久四区| 色色婷婷五月| 国内毛片无遮挡国产| 色婷婷五月天| 国产精品永久免费10000| 欧美成人精品一区二区男人蜜臀| 成人热久久精品| 亚洲五月丁香花狠狠干一区二区三区 | 亚洲极品| 日日嗷| 东京热熟女亚洲视频网站| 国模限制级电影| 日本三级中国三级99人妇网站| 四虎午夜影院| 久久双插| 国产AV毛片| 另类小说综合网| 人妻少妇久久中文| 中国熟女91| 麻豆性爱视频在线播放| 精品国产一区二区三区久久久蜜臀| 国产精品天美传媒| 粉嫩国产精品久久久| 偷拍 亚洲| 日本不卡三级网在线播放| 少妇 综合| 刺激性视频黄页| 大香蕉在线免| 欧美传媒一区| 日韩电影免费网站麻豆视频| 精品女同一区二区三区| 97亚洲综合| 国产亚洲福利第一页丝袜| 在线观看亚洲成人精品| 韩国一级婬片A片无码天美| 国产精品麻豆视频网站| 天天精品| 国产精品熟女AV中文字幕在线播放| 婷婷五月天小说| 九九玖玖精品| 精品然女一区二区| 久久人体一区二区| 久久嫩草| 国产探花精品在线| 婷婷六月天| 欧美久久草熟女| 亚洲AO在线| 久久精品高清无码一区| 亚洲欧美在线丝袜| 色五月综合网| 欧美大色交| 亚洲男人天堂手机版| 九七超碰| 五月丁香社区婷婷日韩欧美精品影院 | 久久激情视频| 日韩97| 国产福利在线视频网站| 天堂岛av| 少妇丝袜在线观看AV| 欧美激情在线观看视频| 亚洲欧综合另类无码一区| 国产欧美一区激情交| 午夜情侣自拍网站| 国产美女高潮| 久久东京国产精品视频| 久久久久久无码人妻中文字幕| 久久9精品| 思思热在线视频免费| 亚洲AV无码国产精品久久久久| 亚洲 综合 欧美| 天天色踪合| 操逼操2| 国产精品青草综合久久| 亚洲精品97中文字幕| 男人天堂无码| 天天激情干| 欧美精品成人亚洲| 风骚少妇视频中文字幕| 午夜寂寞欧美| 激情婷婷综合久久| 精品国产一区探花在线观看| 中文字幕乱亚洲美女精品一区| 午夜福利1区2区3区| 91熟女丨91老女人| 欧美精品系列| 99热线麻豆 | 黑丝日韩av丝袜av| 国产农村妇女精品一| 4399成人黄A片| 亚洲综合中文字幕有码| 国产久久av| 亚洲一区中文字幕一区| 日韩人妻免费精品| 精品国产乱码久久久影院| 欧美色院| 极品销魂美女一区二区 | 亚洲熟妇极品| 国产精品青青草| 后入日本1234| 欧美日韩资源在线| 久久久精品日本一道| 中文字幕jul-617人妻熟女| 熟女色综合久久| 插穴性爱视频在线观看| 亚洲免费成人精品电影| 成人自拍三级在线观看| 国产女人高潮嗷嗷嗷叫小说 | 麻花传媒免费网站在线观看| 高清一区AV无码| 在线无码视频| 约操熟妇| 久9视频| 秋霞视频一区二区| 少妇二级| 99自拍B亚洲 | 国产精品97视频| 日1区2区3区2020| 蜜汁欧美| 性天堂| 国产精品香蕉| 一中国女人毛片水真多| 国产综合日韩伦理| 芊芊操逼视频无码| 五月丁香婷婷色| 夜夜操狠狠操| 狂操嫩妻视频一区二区三区| 97久久精品国产| 精品无码久久久久| 男人综合网| 91精片| 国产精品无套内谢| 人妻久久久久久久久久久久久久久 | 欧亚乱色熟一区二区三四区| 99国产精品免费| 久久 久久国内精品亚洲| 97久久精品不卡| 91天天综合在线| 综合色好色| 日本操逼视频免费| 国产高清在线观看欧美| 蜜臀av在线播放一区二区三区| 日产国产精品中文久久婷婷| 伊人色综合欧美| 亚洲天堂日本| 男人的天堂1024| 国产精品懂色tv影视免费观看| 欧美日本中字另类在线| 国产91美女高潮| 欧美黄色图片| 久久久无码精品人妻二区 | 婷婷中文网| 青草地一本线一区二区三区| 久湿久久 | 丰满人妻一区二区三区四区| www.91逼逼.com| 亚洲第一综合| 一区二区蜜臀| 国产又粗又长的视频| 91精品国产91久久青草| 丁香六月综合激情| 色天堂在线观看| 97网色| 欧美日韩国产中文精品字幕自在自线| 天天综合网站| 精品九九九九九九九九九| 99久草| 中文字幕精品一区二区精| 丁香六月婷| 色狠人在线99| 97操| 国产精品扒开腿做爽爽爽视频| 日本东京热久久久电影| 91一起操| 男人天堂网手机版婷婷| 日B操| 亚洲AV免费在线| 91美女视频在线免费观看| 91亚洲情色| 青青伊人这里只有精品| 欧美香蕉视xxx| 青操影院| 国产精品自在自拍视频| 大香蕉宅男伊人| 殴美性天天| 无码国产精品久久久久| 精品无码人妻一区二区免费蜜桃| a片自拍直播视频| 免费视频无码| 99色在线| 色成人Www精品永久观看| 色九月综合| 91亚洲欧洲| 亚洲操人| 亚洲人精品久久久| 亚洲天堂AV在线播放| 狠狠久久四虎| 97资源久久| 97自拍视频在线| 亚洲天天精品| 色综合av男人天堂| 日韩大香蕉精品在线视频| 久久久99免费| 五十路熟女工口| 欧美精品 - 91爱爱| 97在线观看| 激情丁香五月| 夜夜欢天天干| 69人妻精品一区二区绯色| 91白虎| 九九综合久久| 在线不欧美| 黄页大片在线观看| 国产区日韩区在线观看| 综合亚洲情色| 久久久久亚洲Av无码专区老牛影视 | 97操97色| 久久国产熟女影院| 日韩电影天堂视频二区三区| 强奸乱伦av电影| 中国的操老妇女| 亚洲欧美在线观看无码| 加勒比五月天| 日本在线视频导航| 一区二区视频在看| 人妻久热在线| 美国日韩黄片| 性爱AV天堂| 91c色| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 91色女| 日韩素人无码一区二区三区三州| 亚洲各类熟们中文字幕| 男人天堂毛片| 青青草自拍视频在线播放| 亚洲全色网| 欧美性后入| 国产女人极品高潮毛片| 国产一级片| 日韩有码专区| 北京美女一区二区| 操婷婷逼| 一级人妻性爱视频| 国内外毛片在线观看| 欧美性爱五月天| 亚洲97在线观看| 韩国三级三级BD在线| 变态乱伦伪娘灌肠一区二区| 天躁夜夜躁2021| 婷婷五月天成人网| 夜夜夜夜夜夜夜夜夜狠狠狠狠狠狠狠| 91精品人妻一品二品三品| av在线免费一区二区| 欧美成人都市人妻| 精品无码一区二区三区| 国产操逼逼网| 激情综合av| 国产强奸乱伦第1页| 99久热| 日韩欧美天天爽爽爽天天爽爽| 九久精品| 在线 制服丝袜中出 人妻| 国产麻豆一区二三区| 岛国福利在线精品播放| 女一区二区| 日韩成年人性爱视频| 99热色精品| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 加勒比aⅴ| 日韩av不卡在线观看| 国产乱婷婷精品二区三区| 日韩有码中文字幕女同性恋 | 亚洲日韩一区电影| 神马久久久久久| 91精品综合久久久久久五月丁香| 日本亚欧爱爱| 日韩中文字幕视频在线观看| 久久噜噜噜精品国产亚洲综合| 天天做日日做| 亚洲综合一| 夜夜草我| 免费啊啊啊| 久久九九国产精品| 日日97| 伊人色综合网| 乱伦熟妇一区二区| 伊人久久大香蕉线AV五月天| 亚洲天天做日日做天天谢日日 | 天天影视91看看| 婷婷五月天激情小说| 亚洲女人91| 在线黄页看毛片| 国产一区二区二区按摩精品啪视频| 色av中文字| 啪啪性爱免费视频| 99热国产精品| 五月天色图影视| 老熟妇乱轮| 天堂麻豆天美| 日本午夜精品理论片A级APP发布| 成人青青草原伊人| 熟妇视频一区二区三区在线观看| 日日夜夜精品| julia国产在线 | 大香蕉78| 999综合色| 性爱乱伦网址| 69XX一中文字幕人妻91| 亚春色色| 91处女视频在线观看| HEYZO高无码国产精品227| 91精品国产91久久久久久久久久久久| 中国黄色特级精品一区二区三区片| 欧美国产日韩清纯唯美| 亚洲一区二区三区中文字幕| 丁香激情网| 亚洲精品国产精品乱码不99| 欧美黄色片AAAAA| 中国女人内射6XXXXX| www..com操老师| 黄色操人| 91人妻最真实刺激绿帽| 成人av影院在线观看| 伊人一级免费黄片| 黄片qw| 好爽视频在线观看视频 | 麻豆天美久久91| 一二三区在线| 99热超碰| 少妇天堂网络| 999 久久久| 99久热精品99re6热| 国产精品久久久久久久久久久久久久久久| 加勒比伊人综合| 久久熟女久| 91伊人久久在线| 中文字幕精品三级久久久| 人妻 欧美亚洲| 色综九九九一区| 97ai亚洲| 国产深夜福利| 家庭乱伦国产精品| 97精品熟女少妇一区| 男人高清无码一区二区| 国产99 中文字幕日韩小视频| a网站免费观看| 色妹子A V| 99精品热| 九九五月天| 一本久道久久综合狠狠爱一密臀精 | 成人性交免费视屏| 97久操| 欧美少妇色图| 精品高清一区二区三区三州| av资源在线播放天堂| 曰韩精品九九无码| 日本久久综合| 97视频播放| 视频国产欧美在线播放| 精品国产91内射久久| 欧美系列在线一区二区| 欧美性特| 亚洲精品1区| 日本三级精品| 亚洲欧美小说| 91足交| www.97在线| 中文欧丝袜诱惑| 啊啊啊啊啊啊好多水| 中文字幕日韩专区精品系列| 国产大学生高潮在线播放| 亚洲天堂色图| 玖玖综合视频| 国产又黄又粗的视频| 韩日无码在线观看| 综精品久久久aaaa| 亚洲天在线| 夜夜操美女| 狠狠色色| 亚洲的天堂网| 啊啊啊在线观看免费视频| 蜜臀精品1区2区| 激情五月综合网| 成人A片男人的天堂| 国产蜜臀精品一区二区尤物| 在线有码中文字幕| 亚洲丁香花色| 亚州熟妇精品| 黄日韩| 中国大陆国产高清AⅤ毛片| 伊人网青青| 中文字幕aⅴ在线视频| 天天综合日韩网| A一级色女| 日韩欧美福利视频看看| 日本特黄f c2| 一区二区播放| 在线欧美69V免费观看视频| 天天操狠狠日夜夜干超碰撸com视频在线观看 | 中文精品一区二去| 国产成人在线观看综合| 久久久9视频| 久9久精品视频| 女上位精品在线| 久艹日日日| 国产乱色国产精品免费视| 围产精品一区二区三区视频播放| 亚洲欧美大| 美女毛片999| 亚欧洲日韩国产精品| 欧美大的香蕉有线电视视频| 亚洲h片在线免费观看| 精品国产精品一区二区| 欧美一二在线| 日本天天干天天操一区| 青娱乐国产盛宴视频| 长长久久免费视频| 久久9免费视频| 美女久久久久久久久久久| 第四色奇米影视777| 日韩视频小说在线观看| 久肏视频字幕| 久久成年片色大黄全免费网站| 国产网红精品| 久久超碰亚洲人| 97超级久久| 中文字幕交换人妻| 天天香香欲综合| 欧美性五月| 凹凸视频在线一区二区| 九九热精品| 亚洲一区制服诱惑| 久久精品中文字幕无码l| 熟女丝袜视频| 97超碰香蕉| 偷窥自拍亚洲天堂网爆| 我中文字幕6区 | 五月天婷婷成人网| 天天影视综合色| 黄色一区二区秘书性感| 东北女人操比视频| 天天插天天插| 女人18精品一区二区三区| 欧美综合娱乐久久| 69久久久久久久久久久久久| Sekablack无码一区| 五月丁香婷婷综合| 午夜一区| 天综合网| 激情小说在线视频| 婷婷色一区| 一区二区视频在看| 亚洲美乱| 久草午夜| 国产伦精品一区二区三区视频女| 97在线视频免费看| 伊人久久88国产女| 成人怡红院| 六九九九| 少妇熟女一区二区三区| 少妇一区二区三区在线观看| 91久久午夜无码鲁丝片久久人妻| 成在线人在线观看视频| 欧美精品一区二区少妇免费A片 | 欧美999| 精产品久久| 亚洲精品aa久久伊人| 欧美97网| 神马视频久久久久久| 久久无码成人| 亚洲综合一| 欧洲色色| 久久久久久电影| 91亚洲丝袜熟女| 大鸡吧尹人在线| 操逼www.| 91丝袜美女视频| 天天看片青娱乐| 日本一区二区三区欧美日韩中文字幕| 精品在线78| 厕所偷拍在线| 不卡九肏| 超碰午夜| 欧亚乱色熟女一区二区| 国产久久久久影院老熟女| 人妻aa| 高颜值美女口爆高潮浪叫| 人妻天堂综合网| 久久天天艹| 欧美人妻一区二区| 嗯啊不要啊在线| 国产精品一区二区亚洲人成毛片| 蜜桃臀一区二区aV| 超碰爽人妻熟女Av| 伊人网综合在线视频| 97超碰9| 日日摸日日碰| 亚洲欧美大| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 亚洲成人无码影院| 欧美色图99| 啊啊啊好舒服好爽啊啊啊视频| 亚洲精品久久久久久久蜜桃臀| 伊人操你| 亚州男人天堂| 精品国产乱码久久久久久久| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 人人操人人插人www| 91天天综合| 亚洲一区中文字幕| 91天堂丝袜美腿| 欧美91网站| 久久综合女优| 91总综合网| 日韩熟女精品无码专区一区二区| 国产女上位好爽在线| 99性视频| 97自拍视频在线| 精品超碰国产| 人妻22p| 中文字幕中文字幕一区二区| 欧美国产精品| 亚州免费啪啪视频| 精品v日韩欧美国产| 精品久久久久av影院| 福利操逼| 久久久无码av精| 无码人妻丰满热妇又大又粗| 欧美很很操视频| 欧美精品1区2区3区| 亚洲成A∨人影院在线欢看| 日韩AC| 午夜丁香婷婷| 亚洲天堂色图| 久久97资源 网| 蜜臀久久在线视频| 99re综合伊人| 九九九九精品视频| 国产午夜精品理论片一二三区区| 国产亚洲精品一区二区三区| 日韩人妻一二三区视频| 五月丁香社区婷婷日韩欧美精品影院| 色五月婷婷色| 91蜜臀在线久久久久| 精爱久久| 亚洲一区制服诱惑| 久久女人| 日韩乱伦AⅤ| 亚洲一区二区性爱电影| 国产按摩一区二区三区| 亚洲高清内射| 97网站在线观看| 精品国产乱码久久久久久网站入口| 一起草三级AV电影在线观看| 欧美亚洲尤物久久| 久久免费精彩视频| 日日骚 av| 久热99999| 极品另类| 日韩 欧美 另类 人妻| 五月综合激情网| 好好的日:com久久九九| 97在线播放| 黄色免费一级在线毛片| 国产成人www免费人成看片| 少妇 综合| 久久久国产精品亚洲精品| 久久久青青草| 秋霞久久亚洲精品成人| 插入综合网| 日韩操呦呦影院在线观看| 91精品人妻一区二区三区蜜桃| 日韩成人精品| 韩国久久97| 青青草中日韩在线| 啪啪性爱免费视频| 五月丁香六月| 色欲久久99精品久久| 久操91视频| 91啪啪视频| 亚洲一二三| 99人妻| 久久老子无码午夜伦不卡| 日韩激情视频| 久久久96| 久久99操天天日| 国产丝袜高跟美女av免费观看| 国产精品分类在线观看| 男人的天堂亚洲| 91亚洲人| 亚洲欧美在线观看无码| 亚洲天堂中文字幕无码男同| 欧亚日韩综合精品国产| 欧美精品精品一区二区| 久久九色| 丝袜天堂网| 色哟哟综合| 国产熟女少妇一区| 久超碰这里只有精品| 日韩三A大片在线观看| 欧美1727免费观看视频| 欧美人妻一区二区| 国产精品无码久久久久2028| 欧美日韩人人精品| 久久东京热久久| 国产亚洲精品第一最新| 使劲用力艹少妇视频一区二区| 91综合网| 综合熟女| 一本久久久精品| 精品国产人成在线| 日韩情色AV| 操逼网站网站| 精精夜夜| 91欧美亚洲| 激情五月天色色| 少妇人妻在线| 国产激情av女片自拍| 99精品丰满人妻| 成人午夜高潮av猛片| 亚洲色图久久成人| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 一区二区国产视频在线观看| 乱伦一二三区| 成人精品视频一区二区| 欧美一级在线观看成人| 蜜桃色色网站视频三区| 熟妇人妻精品一区二区| 五月天激情影院| 欧美另类天堂| 亚洲国产成人高清在线| 中出20p| 97爱综合| 99热啪啪| 国产精品对白自产拍| 国产美女mm131爽爽爽爽| 久久99草| 精品一区二区成人| 欧美大色交| 亚洲导航深夜福利| 伊人色综合欧美| AA特级绝黄| 美女网站黄页| 91|九色|国产熟女| 欧美成人精品一区| 激激五月| av毛片aaaaa免费看| 亚洲综合在线高清| 最新av中文字幕高清| 麻豆AV短剧| 宅男影院久久久,99| 久久m| 人人操人人摸人| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 日韩精品一区二区三区四虎影视| 97天天| 天天摸天天插天天日| 亚洲性爱成人| 9999九九九久久久| 国产精品无码AV网站| 欧美黑人与女人91| 欧美天天插| а√天堂资源官网在线资源| 亚洲吊色| 爱做久久久久久| 亚洲精品97久久| 熟妇一区二区三区| 国产精品欧美日韩久久| 少妇高潮一区二区三区在线| 91蜜臀熟女| 超碰国产精品无码| 欧美日韩精品久久久久东北老熟妇| 久久久久久人妻| 成人性爱免费播放| 美女丝袜激情小说| 欧美激情五月天| 国产精品久久aV| 九九九草| 日韩成人色图| 岛国黄色短视频| 亚洲se91| 性爱AV天堂| 国产激情久久久| 久久午夜鲁丝片| 久久久久久无码人妻中文字幕| 91爱综合| 国产精品久久久无码AV网站| 亚洲熟妇A V黑人| 热久久国产精品视频大陆精品| 精品性爱无码在线播放| 韩国免费播放一级毛片| 美女上床网站| 日本97久久久精品| 色综合色色| Sekablack无码一区| 国产精品一区二区麻豆| 久久夜色一区二区| 久久婷婷热| 男人天堂黄片| 91狠狠综合久久久久久| 黄页视频网站野外| 精品午夜福利导航| 久久九九精品一区二区| 丝袜喷水在线| 婷婷五月丁香五月| 精品国产丝袜一区二区三区乱码| 九九九九久久久久| 久久9精品网站| 九X超碰| 欧美日韩丝袜| 国产精品熟女丝袜一区二区| 日本性交操一区二区不卡系列| 亚洲人妻色图| 黄色一区三区| 国产熟女| 五月天色图| 天天爽天天爽| 精品性爱无码在线播放| 亚洲一曲日韩精品| V A在线| 夜夜嗨一区二区三区直播内容| 9精品久久| 麻豆福利视频导航| 国产亚洲 中文欧美久久| 国产男女无套视频免费观看| 乱伦a片视频| 国产91福利小视频在线观看| 亚洲深夜福利| 亚洲中字慕不卡| 亭亭在线资源| 素颜老阿姨乱情色| 国产乱弄免费在线视频。| 精品大久久| 96精品在线| 日日干夜夜干| 婷婷五月天AV| 亚洲日韩精品在线播放| 丰满人妻一区二区三区大胸懂色| 久久riav中文精品| www.yeyecao| 岛国福利在线精品播放| 免费人成毛片乱码| 久久伊人最新网址视频| 97欧美视频| 亚洲国产综合图区中文字幕| 国语少妇精| 亚洲欧美伦综合| 国产精品不卡少妇白| 久久久精品,3| 亚洲狠狠入| 一本一道久久综合久久| 97国产精品在线观看| 性欧美| 综合自拍| 天堂网亚洲区手机版| 黑人性欧美| 国产精品农村妇女| 亚洲色交| 国产一级高清免费观看| 日韩成人私密一级精品av| 国产精品成人AV片免费看网站| 伊人影院日本| 久久性爱视频99| 国产操逼视频在线观看| 天天草夜夜草高潮片| 国产Aα| 国内毛片国产专区二| 破苞ⅩXXX性无码动漫无码| 91精品国产高清久久久久久,亚洲成人| 国产精品自在自拍视频| 国产精品久久久鸭无码的功能| 免费看一级a性色生活片久久无| 99色天堂| 老女人爆菊| 成人综合视频久久| 中文字幕第23区| 少妇特黄一区二区三区| 传媒在线观看一区二区三区| 久久啊啊| 亚洲天堂自拍| 啊灬啊灬啊灬啊灬高潮奶出了免费视 | 中文字幕视频免费| 亚洲伊人青青草| 一二三区精品视频| 日韩性爱啪啪视频| 久操凹凸视频| 婷婷久月| 精品久久久中文字幕不| 欧美日韩天堂| 黑人在线91| 91欧洲国产成人久久精品网站| 免费少妇一区二区| 亚洲欧美国产成人综合不卡| 五月激情综合网| 啊好爽受不了无码| 任我爽在线视频免费观看| 97在线观| 亚洲欧洲日韩天堂av| 国产精品亚洲美女久久久久| 亚洲欧洲视频小说在线观看| 美女黑人91神马| 人妻久久| 国产一级高跟丝袜| 国产精品色| 综合色拍| 久久东京热久久| 秋霞成人一级在线观看| 欧美久热| 国产人妻一区二区三区欧美毛片| 97超级久久| 7777奇米影视久久| 五月丁香色综合| 国产人妻一区二区三区欧美毛片| 超碰97伊人| 大香蕉黄色一级片免费看| 91色久| 最新精品久久蜜桃 | 日日夜夜摸| 国产偷拍自拍在线视频| 好淫网一二三视区| 精品人妻视频一区二区在线播放| 在线免费观看高清无码视频| 婷婷AV一区二区三区| 色盈盈影院| 91 天天综合| 日本午夜操逼| 欧美成人亚洲精品| 欧美人妻制服| 免费在线观看国内色片网站网址| 在线天堂999| 国内一级精品| 十八禁成人网站在线观看| 韩国轻伦国内自拍一区| 黑人性欧美| 欧美人妻精品一区二区| 亚州色站 日韩电影| 青青青青青手机视频| 免费亚洲黄色视频在线观看| 久久99国产综合精品女同| 亚洲做性| 午夜偷拍久久熟女| 色狠人在线99| 91亚洲欧美| 99综合| 天天综合网合集91| 国产成年精品高清在线观看91| 久操99| 人妻精品一区二区| 亚洲福利中文字幕在线| 精品成人女人久久| 秋霞一级A片黄色视频| 天天干2区3区| 亚洲欧美不卡线| av大香蕉| 0755午夜福利视频| 黑人黄片在线免费观看| 96久久久精品| 黄色片,com| 日韩国产十八禁| 明星性猛交ⅹxxx乱大交| 麻豆人妻精品一区二区| 这里只有97精品| 99rre在线精品99re8| av日韩在线观看电影| 久久久久久久久久精| 精品国产91av一区二区三区| 久久久久久久久九九久孕交| 9色国产精品一区粉嫩 | 曰韩少妇无码| 奇米狠999| 97精品久久久久中文字幕| av强奸乱轮| 欧美日韩婷婷中文| 亚川综合视频| 色九九九综合| 欧美一级久久久丰满| 玖玖资源中文字幕制服丝袜| 久久久精品电影| 大香蕉色网| 国产又色又粗又黄又爽| 久久有码| 黄色片,com| 偷拍五区| 日韩欧美字幕亚洲一区二区| 夜夜做夜夜爽精品视频| av凤凰久久久| 南澳成人一级片在线播放| 91久久婷婷| 天天噜| 亚洲。日韩。欧美| 一道α片欧美| 欧美夜夜骑视频| 色欲蜜臀AV| 超碰综合97在线| 丁香九月激情啪| 日韩三级av片| 97日本超碰综合| 人妻精品免费一二三区| 久久久久久久久久黄色网| 丰满人妻一区二区三区四区| 久久精品99| 中文字幕在线免费观看视频| 天天噜| 成人日韩中文字幕| 大黄片做爱的大的| 亚洲日韩97| 色蜜AV| 国产精品久久久久无码Av网曝门| 伊人 俄罗斯 a v| 激情久久av一区av二区av| 久久久日本电影| 久久国产视频专区一二三 | 欧美综合色站| 国产探花精品在线| 人人操超碰在线| 国产精品女同| 亚洲人妻在线一区| 嗯嗯不要 视频| 久久久久久久九九九九九九| 国产一区自拍欧美日韩| 夜夜国自区| 另类综合另类| 可能人人看人人摸| 亚洲少妇视频| 秋霞男人网| 九九综合久久| 婷婷色综合欧美日韩| 久久日本熟女精品一区| 久久色情| 欧美呦呦性爱| 综合熟妇一区二区三区| www.操| 久精品无码av一区二免费国产在线观看| 东京热综合久久一区二区| 四虎免费看黄| 超碰在线看| 天天爽夜夜爽夜夜爽精| 中文字幕第7页| 天堂麻豆天美| 午夜天堂啪啪| 啪啪啪东京| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 亚洲欧美综合区自拍另类| 99少妇内射| 国产地址二三| 射 色综合| 中国国国产一级特黄毛片| 国产午夜精品在线观看| 亚洲影视高清第一页| 亚洲综合有玛| 狠狠操狠狠爱| 国产久久av| 色色毛片| 午夜传煤十二区精品| 天天澡天天爽日日av| 清柠毛片| 国产亚州高清国产拍精| 波多野结衣之双飞调教在线播放| 综合自拍| 日韩欧美资源| 久久伊人网视频一区二区三区| 激情看片网站| 亚洲第一精品在线视频| 蜜臀久久99精品久久久久久-DVD原版全| 十八禁电影伊人网| 91国产大片| 色噜噜综合在线| 日韩不卡av一二三| 综合久久久久久久综合网| 天天干人人看综合| 久久尹人大香焦视| 超碰 国产熟女精品一区| 久操 高清| 97在线免费看| 五月丁香六月激情综合| 日本精品第一视频在'| 国产精品无码久久久久2028| 国产无码成人无码| 婷婷午夜清品久久久久久久性色视频观| 99热99re6国产在线播放| 国产丝袜美腿美女麻豆| 久久久啊啊| 乱人伦 国语对白:视频直接看| 黄色av一区二区在线| 综合操逼| 国产精品麻豆视频网站| 手机看片日韩人妻| 久久性爱视频免费看| 蜜臀99久久精品久久久久| 91制服丝袜| 综合亚州欧美| 极品出轨视频网站| 中文字幕精品专区搜索结果91| 日韩欧美水蜜桃人妻| 96免费视频在线| 91色黑人少妇| 夜夜狼人妻| 中文字幕55555| 歐美一級亂黃99在綫精品| 亚洲另类久操网| 国产天美欧美| 999久久久九| 人妻在线中出视频| 夜夜操av亚洲一区二区| 99爱久久视频频| 色第一页| 99操| 亚洲少妇在线影音| 中文字幕-区二区三区四区视频中国| 日日干日日操五月天伦理视频| 欧美人妻二区三区| 人妻精品4K4K4K4K4| 欧美色图亚州激情| 日韩在线97| 久久国语| 夜夜夜夜爽| 蜜桃AV天堂| 天天欧美| 99热在线观看| 在线观看一级α片刺激高潮视频| 男女做爰猛烈动高潮A片免费应用 少妇厨房愉情理伦片bd在线观看 不卡中文字幕aⅴ在线 | 国产一区二区三区免费视频在性观看| 国产精品视频自拍在线| 一线黄色免费性爱片| 国产午夜无码片在线观看影视| 国产亚洲禁久一区二区| 久操精品网| 91蜜臀熟女| 欧美大香蕉97| 久久草视频污视频| 日本 情色 1区2区3区| 欧美综合色,www| 欧美专利1区2区3区4区5区免费| 佐山爱中文字幕| 91n免费处女| 九九热re99re6在线精品| 日本操逼视频免费| 影视综合无码少妇| 强奸乱伦αv片| 日本欧美韩国日产片片在线看免| 欧洲射精91| 97欧美色综合| 中文字幕一区二区无码成人 | 一级做a爰片性色毛片久久| 日本免费一级AAA大片器| 亚洲无码一区二区三区三州| 啊啊啊不要好疼视频| 少妇人妻精品| 欲色啪| 91w欧美| 日本免费一级AAA大片器| 婷婷五月av| 嗯……啊…嗯嗯…啊…好舒服| 男人把坤坤插入女人的下体| 久久97视频| JIZZJIZZ亚洲女人被躁| 久久亚洲AV成人精品无码| 夜夜爽爽爽| 大乔未久88一区| 久久啊啊| 午夜亚洲国产理论秋霞| 97久久久| 亚洲色性情三级| 超碰在线日韩一区| 国产精品免费1区2区视频| 欧美v亚洲v日韩v最新在线二区| 啊啊啊 在线观看| 国产视频小说| 97超碰色色| 人人插人人摸人人| 色色色色色色色色色色色色色色综合| 色超碰综合| 超碰免费人妻在线| 日韩人妻播放| 97精品国产97久久久久久| 成人片视频| 久久精品一区二区三区四区五区| 色官网色综合| 97视频在线免费看| 中文字幕av片| 成人性爱AV在线免费观看| AV大香蕉| 97超碰人操| 日韩免费a级毛片无码a∨| a级理论午夜日本| 国内操逼视频二区| 91殴美| 日韩欧美字幕亚洲一区二区 | 国产精品白领在线观看 | 暴力av在线| 亚州免费啪啪视频| 禁止观看美女黄| 欧美97av| 思思热在线cao| 夜夜嗨AV蜜臀av| 亚洲成人ab| 亚洲操逼无码| 日韩精品操少妇| TS人妖另类精品视频系列| 亚洲精品三| 天天操天天看| 亚洲密乳AV| 一个人在线看的黄色电影网站| 日韩成人小视频| 黄色大香焦1级‘′‘| 加勒比日本在线| 无码一区免费在线不卡| 95人妻爽爽人人做人人澡| 操B久久| 久久久久久99999国产精品| 五月天成人综合| 飘花国产午夜精品不卡| 久久精品操| 91chinese在线| 丰满人妻一区二区三区免费| 偷窥自拍A片| 免费黄色视频网址| 激情五月天插| 超碰超碰超碰超碰的大鸡吧操黑丝袜| 九99久久| 中文字幕色AV| 床戏久久久av一区二区麻豆| 欧美色图亚洲色,麻豆| 肥佬影院91| 亚洲欧美小说| 午夜国产成人精品视频| 日韩激情无码影院| 一起草日韩| 免費黃色視頻觀看一|