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

ARTICLE DETAIL

資訊詳情

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

C#聯(lián)合Halcon多相機(jī)OCR實(shí)時(shí)采集:上位機(jī)方案與踩坑指南

C#聯(lián)合Halcon多相機(jī)OCR實(shí)時(shí)采集:上位機(jī)方案與踩坑指南 簡(jiǎn)介需要快速搭建多相機(jī)OCR實(shí)時(shí)采集上位機(jī)的C#與Halcon開(kāi)發(fā)者可直接使用這份完整工程代碼。解決方案圍繞四相機(jī)同步采集與OCR識(shí)別展開(kāi)包含圖像獲取、窗口顯示及ROI區(qū)域生成等核心操作代碼中可見(jiàn)GetImageSize、SetPart、DispObj、GenRectangle1等Halcon算子調(diào)用便于理解聯(lián)合編程流程。壓縮包共100個(gè)文件約2.54MB主要包含C#工程源碼34個(gè).cs、編譯運(yùn)行所需的動(dòng)態(tài)庫(kù)14個(gè).dll、項(xiàng)目配置與資源文件resx、resources、config、xml等同時(shí)附有調(diào)試符號(hào)文件pdb和數(shù)據(jù)庫(kù)腳本sql工程結(jié)構(gòu)采用Models、DAL、TDDSE等多層劃分適合直接打開(kāi)、修改與二次開(kāi)發(fā)。已有1865人學(xué)習(xí)使用適合需要快速驗(yàn)證四相機(jī)OCR方案并完成上位機(jī)落地的相關(guān)技術(shù)人員。1. 4 個(gè)相機(jī)同時(shí) OCR 實(shí)時(shí)采集這套 C# 聯(lián)合 Halcon 的上位機(jī)方案解決什么問(wèn)題一條產(chǎn)線(xiàn)上四個(gè)相機(jī)拍同一個(gè)工件的四個(gè)面或者拍四個(gè)工位每一幀都要把銘牌、序列號(hào)、批號(hào)這些字符實(shí)時(shí)讀出來(lái)交給上位機(jī)判定和存檔。這是 C# 聯(lián)合 Halcon 做多相機(jī) OCR 實(shí)時(shí)采集最典型的場(chǎng)景Halcon 負(fù)責(zé)取流、預(yù)處理和 OCR 識(shí)別C# 負(fù)責(zé)界面、線(xiàn)程調(diào)度、結(jié)果對(duì)齊和落庫(kù)兩邊各干各擅長(zhǎng)的部分。標(biāo)題里那種可直接運(yùn)行的 Camare 壓縮包本質(zhì)上就是把這套流程封裝好拿到手改相機(jī) IP、改 ROI 就能跑。別對(duì)可直接運(yùn)行抱太高期待所謂直接跑前提是你的相機(jī)型號(hào)、Halcon 版本、.NET 平臺(tái)位數(shù)和作者當(dāng)時(shí)的環(huán)境一致否則第一步就會(huì)卡在 OpenFramegrabber 報(bào)錯(cuò)上。這套方案適合兩類(lèi)人剛接手機(jī)器視覺(jué)上位機(jī)開(kāi)發(fā)的 C# 工程師需要快速理解 Halcon 在 C# 里的調(diào)用模型和 4 路相機(jī)并行的基本框架以及已經(jīng)用 Halcon 做單相機(jī)檢測(cè)、準(zhǔn)備擴(kuò)展到多相機(jī)的視覺(jué)工程師想看看別人把線(xiàn)程、隊(duì)列、OCR 結(jié)果對(duì)齊做成什么樣。下面按「選型 → 最小代碼 → 并行框架 → 踩坑 → 調(diào)優(yōu)」往下講每段都可以照抄。2. 選型先于編碼Halcon 調(diào)用方式、4 路相機(jī)連接與 OCR 模型怎么定2.1 C# 調(diào)用 Halcon 的三種姿勢(shì)HDevEngine、導(dǎo)出代碼與 HALCON.NETC# 和 Halcon 協(xié)作常見(jiàn)做法有三種選錯(cuò)后面全在返工。第一種HDevEngine 方式。Halcon 腳本存成 .hdev 或 .hdvpC# 里用 HDevEngine 執(zhí)行。好處是算法改動(dòng)不用重新編譯 C# 工程視覺(jué)工程師改完腳本你直接生效壞處是變量來(lái)回傳遞麻煩每個(gè)圖像變量和設(shè)備句柄都要通過(guò) SetInputIconicObject 塞進(jìn)去多相機(jī)場(chǎng)景里這種反復(fù)拷貝很浪費(fèi)而且調(diào)試時(shí)錯(cuò)誤棧隔了一層定位慢。我不建議在 4 路實(shí)時(shí)采集上用這種方式。第二種導(dǎo)出代碼方式。在 Halcon 的 HDevelop 里把寫(xiě)好的腳本通過(guò) File - Export 導(dǎo)出成 C# 文件得到一個(gè) HDevelopExport 類(lèi)里面每個(gè)腳本步驟對(duì)應(yīng)一個(gè)方法。這是工業(yè)上位機(jī)里最常見(jiàn)的形態(tài)標(biāo)題里那個(gè)壓縮包大概率就是這種結(jié)構(gòu)。好處是算法邏輯所見(jiàn)即所得導(dǎo)出方法可以單獨(dú)調(diào)用壞處是代碼里有大量中間變量和 DispObj 調(diào)用需要手動(dòng)刪改不然 UI 線(xiàn)程會(huì)被 Halcon 窗口刷新拖死。第三種直接用 HALCON.NET 的 HOperatorSet 寫(xiě) C# 代碼完全不經(jīng)過(guò)腳本。適合我們這種對(duì)算子熟的工程師代碼最直接對(duì)象生命周期自己掌控多線(xiàn)程下最好排查問(wèn)題。我自己的項(xiàng)目基本都是這種方式后面所有代碼也按這個(gè)風(fēng)格寫(xiě)。無(wú)論選哪種都要引用 HalconDotNet.dll并且工程平臺(tái)目標(biāo)x64/x86和安裝的 Halcon 版本位數(shù)必須一致。32 位 Halcon 配 AnyCPU 編譯出來(lái)的程序經(jīng)常在開(kāi)發(fā)機(jī)上好好的部署到現(xiàn)場(chǎng)就報(bào) BadImageFormatException 或者 Halcon 類(lèi)型轉(zhuǎn)換錯(cuò)誤這類(lèi)問(wèn)題排查起來(lái)比寫(xiě)代碼還耗時(shí)間。2.2 四路相機(jī)的連接規(guī)劃GigE 帶寬、巨型幀與觸發(fā)方式4 路相機(jī)接什么接口決定了你后面所有代碼怎么寫(xiě)。工業(yè)現(xiàn)場(chǎng)最普遍的是 GigE Vision走網(wǎng)口線(xiàn)可以拉到 100 米而且 Halcon 的 GigEVision 接口最成熟。但千兆網(wǎng)的帶寬賬要先算清楚一臺(tái) 900 萬(wàn)像素相機(jī)Bayer 8bit 單幀約 9MB跑到 30fps 就需要 270MB/s千兆網(wǎng)實(shí)際有效載荷只有 110MB/s 左右一臺(tái)相機(jī)就把一條網(wǎng)線(xiàn)吃滿(mǎn)了。所以 4 路 GigE 相機(jī)要么降低幀率、縮小 ROI要么上雙口網(wǎng)卡相機(jī) 1、2 走網(wǎng)卡 A相機(jī) 3、4 走網(wǎng)卡 B再配靜態(tài) IP 分流。巨型幀是個(gè)高頻坑。Halcon 的 GigEVision 采集默認(rèn)依賴(lài) Jumbo Frame網(wǎng)卡、交換機(jī)、相機(jī)三方都得開(kāi) 9000 字節(jié)缺一樣就會(huì)丟幀、抓圖超時(shí)表現(xiàn)是4 個(gè)相機(jī)只能打開(kāi) 2 個(gè)。另外相機(jī) IP 要提前規(guī)劃Halcon 的 GigE 相機(jī)啟動(dòng)后往往不在 192.168.1.x 網(wǎng)段先拿廠商工具把 4 臺(tái)相機(jī) IP 改成同一網(wǎng)段的不同地址再讓 InfoFramegrabber 枚舉否則 OpenFramegrabber 連設(shè)備名都看不到。觸發(fā)方式也要在選型階段定。多相機(jī)實(shí)時(shí)采集有兩種走法軟觸發(fā)上位機(jī)發(fā)一個(gè)命令讓 4 臺(tái)相機(jī)同時(shí)曝光簡(jiǎn)單但抖動(dòng)有幾十毫秒硬觸發(fā)PLC 給每臺(tái)相機(jī)的 Line0 接口同時(shí)發(fā)脈沖多臺(tái)相機(jī)曝光時(shí)刻嚴(yán)格同步。產(chǎn)線(xiàn)上有 PLC 的項(xiàng)目我一般會(huì)堅(jiān)持硬觸發(fā)否則第 4 章講到的結(jié)果對(duì)齊會(huì)讓你痛不欲生。還有一批廉價(jià) USB 相機(jī)走 DirectShow 或 UVC 接口回調(diào)里區(qū)分多攝像頭靠枚舉序號(hào)加序列號(hào)雙保險(xiǎn)但這種接口延遲高、幀率不穩(wěn)做 4 路 OCR 實(shí)時(shí)采集不推薦除非你對(duì)成本極度敏感。2.3 OCR 模型選型MLP 還是 CNN字符集不是越大越好Halcon 的 OCR 模型分兩類(lèi)。傳統(tǒng) MLP 分類(lèi)器ReadOcrClassMlp 加載工業(yè)場(chǎng)景最常用的是 Industrial_0-9A-Z_NoRej字符集覆蓋數(shù)字和大寫(xiě)字母NoRej 表示不拒絕非字符區(qū)域適合噴碼、鋼印、激光打標(biāo)這種字符密度高的場(chǎng)景。新版 Halcon 還有 CNN 模型 ReadOcrClassCnnUniversal_0-9A-Z_NoRej 這類(lèi)對(duì)復(fù)雜背景、字符變形、打印不清晰的魯棒性明顯更好代價(jià)是每幀推理多幾毫秒。四相機(jī)并行的場(chǎng)景里每幀多 3 毫秒會(huì)被放大成整體吞吐下降所以我一般這么選字符是標(biāo)準(zhǔn)印刷體、背景干凈、光源固定MLP 就夠字符有殘缺、背景有紋理、產(chǎn)品表面反光嚴(yán)重直接上 CNN 省得后面天天為識(shí)別率加班。Halcon 也提供基于深度學(xué)習(xí)的 OCR 方案需要自己采集樣本訓(xùn)練產(chǎn)線(xiàn)項(xiàng)目里除非上述兩種都試過(guò)且不達(dá)標(biāo)否則不建議一上來(lái)就上訓(xùn)練數(shù)據(jù)的量級(jí)和標(biāo)注成本遠(yuǎn)超你想象。字符集的選擇很多人會(huì)犯一個(gè)錯(cuò)以為越大越好。實(shí)際恰恰相反你只讀數(shù)字就選純數(shù)字庫(kù)混進(jìn)字母后 O 和 0、I 和 1、Z 和 2 這些相似字符會(huì)把置信度拉下來(lái)誤判率翻倍。先把現(xiàn)場(chǎng)字符范圍摸清楚再定庫(kù)這是 OCR 項(xiàng)目的第一步也是絕大多數(shù)識(shí)別率問(wèn)題的根源。3. 最小可運(yùn)行代碼C# 打開(kāi) 4 個(gè)相機(jī)并實(shí)時(shí)抓圖的完整流程3.1 枚舉相機(jī)與 OpenFramegrabber 參數(shù)逐個(gè)拆解先寫(xiě)最小的打開(kāi)邏輯。Halcon 在高版本里對(duì) GigE Vision 相機(jī)的枚舉方式是這樣using HalconDotNet; using System; HTuple info, values; HOperatorSet.InfoFramegrabber(GigEVision, device, out info, out values); for (int i 0; i values.Length; i) { Console.WriteLine($Device[{i}] {values[i].S}); }values 里返回的就是類(lèi)似 CAMERA1、CAMERA2 這樣的設(shè)備名Halcon 按相機(jī) MAC 或序列號(hào)生成不是按插線(xiàn)順序。重插網(wǎng)線(xiàn)或者換相機(jī)后名字會(huì)變所以設(shè)備名到工位號(hào)的映射要寫(xiě)進(jìn)配置文件不要寫(xiě)死在代碼里。拿到設(shè)備名后逐個(gè)打開(kāi)OpenFramegrabber 的參數(shù)順序一個(gè)都不能錯(cuò)public class HalconCamera { private HTuple _acqHandle; public string DeviceName { get; } public HalconCamera(string deviceName) { DeviceName deviceName; } public bool Open() { HOperatorSet.OpenFramegrabber( GigEVision, // 采集接口類(lèi)型 0, 0, // 水平/垂直分辨率0 表示用相機(jī)默認(rèn) 0, 0, // 圖像寬度/高度0 表示默認(rèn) 0, 0, // 水平/垂直偏移 default, // 輸入格式像素格式 -1, // 外部觸發(fā)模式-1 不限制 default, // 相機(jī)像素格式 -1, // 線(xiàn)掃描寬度面陣相機(jī)傳 -1 false, // 是否使用相機(jī)自帶連接 DeviceName, // 設(shè)備名從 InfoFramegrabber 枚舉來(lái) port, // 端口類(lèi)型 0, // 端口號(hào) out _acqHandle); return _acqHandle ! null; } }這段代碼最容易抄錯(cuò)的就是前面那一串 0 和 default 的順序。OpenFramegrabber 是 Halcon 里參數(shù)最多的算子之一每個(gè)參數(shù)位置都對(duì)應(yīng)一個(gè)硬件特性你把寬度和高度寫(xiě)反了不會(huì)報(bào)錯(cuò)出來(lái)的圖就是裁剪的。打開(kāi)后先 GrabImage 試讀一幀能拿到圖再繼續(xù)往下寫(xiě)別一口氣把 4 臺(tái)全開(kāi)了再調(diào)。3.2 GrabImageAsync 異步抓圖與圖像隊(duì)列界面卡頓的解藥同步 GrabImage 在取流時(shí)會(huì)阻塞當(dāng)前線(xiàn)程4 臺(tái)相機(jī)如果一個(gè)線(xiàn)程輪流同步抓整體幀率被最慢的那臺(tái)拖死。常見(jiàn)做法是每臺(tái)相機(jī)一個(gè)采集線(xiàn)程循環(huán)調(diào) GrabImageAsyncusing System.Collections.Concurrent; using System.Threading; public class GrabWorker { private readonly HTuple _acqHandle; private readonly ConcurrentQueueHObject _queue new ConcurrentQueueHObject(); private volatile bool _running true; public GrabWorker(HTuple acqHandle) { _acqHandle acqHandle; } public void Loop() { while (_running) { HObject image; // timeout 設(shè)為 -1 表示無(wú)限等待200~500 更適合斷線(xiàn)檢測(cè) HOperatorSet.GrabImageAsync(out image, _acqHandle, -1); _queue.Enqueue(image); // 隊(duì)列超過(guò) 5 幀說(shuō)明消費(fèi)端處理不過(guò)來(lái)丟最舊幀防止內(nèi)存膨脹 while (_queue.Count 5 _queue.TryDequeue(out HObject drop)) { drop.Dispose(); } } } public void Stop() { _running false; } }GrabImageAsync 的第三個(gè)參數(shù)是超時(shí)毫秒數(shù)-1 表示一直等下一幀。這個(gè)參數(shù)很關(guān)鍵相機(jī)斷線(xiàn)時(shí) GrabImageAsync 會(huì)一直阻塞線(xiàn)程就掛死了所以我實(shí)際項(xiàng)目中會(huì)設(shè) 200 到 500 毫秒超時(shí)后做一次相機(jī)連接檢查再?zèng)Q定重新打開(kāi)還是報(bào)警。隊(duì)列上限是背壓策略識(shí)別線(xiàn)程跟不上時(shí)寧可丟幀也不能讓內(nèi)存無(wú)限漲——HObject 是非托管資源一個(gè) 900 萬(wàn)像素的 HObject 就是 9MB積壓 200 幀就是 1.8GB內(nèi)存爆掉只是時(shí)間問(wèn)題。這里要特別強(qiáng)調(diào) HObject 必須手動(dòng) Dispose。C# 的 GC 管不到非托管內(nèi)存你光等 Finalize 讓 Halcon 自己回收吞吐一大內(nèi)存還是只增不減。隊(duì)列里每個(gè)對(duì)象要么被消費(fèi)線(xiàn)程釋放要么在丟幀邏輯里釋放沒(méi)有第三條路。3.3 OCR 識(shí)別調(diào)用鏈ReadOcrClassMlp 與 DoOcrMulti 的輸入輸出抓圖回路穩(wěn)定后接 OCR。初始化時(shí)把模型讀一次整條鏈路共用同一個(gè)句柄public class OcrEngine { private HTuple _ocrHandle; public void Load(string modelName) { // 初始化階段只調(diào)用一次不要在識(shí)別線(xiàn)程里反復(fù)讀文件 HOperatorSet.ReadOcrClassMlp(modelName, out _ocrHandle); } public string Recognize(HObject image) { HObject thresholdRegions, connectedRegions, selectedRegions; HTuple classes, confidences; try { // 字符區(qū)域分割閾值 連通域 形狀篩選 HOperatorSet.Threshold(image, out thresholdRegions, 0, 128); HOperatorSet.Connection(thresholdRegions, out connectedRegions); HOperatorSet.SelectShape(connectedRegions, out selectedRegions, height, and, 10, 200); // 多字符 OCR輸入候選區(qū)域和原圖輸出字符和置信度 HOperatorSet.DoOcrMulti(selectedRegions, image, _ocrHandle, out classes, out confidences); var sb new System.Text.StringBuilder(); for (int i 0; i classes.Length; i) { sb.Append(classes[i].S); // confidences[i].D 是 0~1 的置信度后面判定用 } return sb.ToString(); } finally { thresholdRegions?.Dispose(); connectedRegions?.Dispose(); selectedRegions?.Dispose(); } } }DoOcrMulti 輸出兩個(gè)數(shù)組classes 是識(shí)別出的字符confidences 是對(duì)應(yīng)的置信度。閾值 128 是拍腦袋值實(shí)際要按現(xiàn)場(chǎng)圖像灰度直方圖定后面第 6 章展開(kāi)。這里最典型的錯(cuò)誤是每幀都調(diào)用 ReadOcrClassMlp模型文件加載一次要幾十毫秒4 臺(tái)相機(jī)一疊加幀率直接腰斬所以必須初始化時(shí)加載好所有線(xiàn)程共享同一個(gè)句柄。另外注意 DoOcrMulti 只接受單通道圖像相機(jī)出的是彩色圖先轉(zhuǎn)灰度ConvertImageType 或 ReductionDomain 都行直接喂彩色圖大概率報(bào)錯(cuò)。區(qū)域分割這里只用了最簡(jiǎn)單的 Threshold 加 SelectShape真實(shí)場(chǎng)景還要考慮光照變化這塊放到第 6 章一起說(shuō)。4. 四相機(jī)并行與結(jié)果匯總線(xiàn)程模型、時(shí)間戳對(duì)齊與 SQLite 落庫(kù)4.1 每相機(jī)一線(xiàn)程的三層架構(gòu)采集線(xiàn)程、識(shí)別線(xiàn)程、UI 線(xiàn)程4 路相機(jī)并行最穩(wěn)的結(jié)構(gòu)是每臺(tái)相機(jī)兩個(gè)后臺(tái)線(xiàn)程采集線(xiàn)程 識(shí)別線(xiàn)程加上一個(gè) UI 線(xiàn)程三層之間用 ConcurrentQueue 解耦。采集線(xiàn)程只負(fù)責(zé) GrabImageAsync 入隊(duì)識(shí)別線(xiàn)程從隊(duì)列取圖做 OCRUI 線(xiàn)程通過(guò)事件或者定時(shí)器批量刷新界面。任何 Halcon 算子都不允許在 UI 線(xiàn)程里跑這是鐵律。為什么采集和識(shí)別要拆兩個(gè)線(xiàn)程因?yàn)?OCR 算子再快也要幾毫秒如果同一個(gè)線(xiàn)程先抓圖再識(shí)別抓圖間隔就變成曝光、傳輸、識(shí)別三者的總和幀率上不去。拆開(kāi)后采集線(xiàn)程永遠(yuǎn)在等下一幀識(shí)別線(xiàn)程只處理最新幀互不阻塞。識(shí)別線(xiàn)程里取隊(duì)列要用取最新幀邏輯private void OcrLoop(string ocrModel) { HTuple ocrHandle; HOperatorSet.ReadOcrClassMlp(ocrModel, out ocrHandle); // 只加載一次 while (_running) { if (_grabQueue.TryDequeue(out HObject latest)) { // 隊(duì)列里可能還積壓著舊幀全部丟掉只處理最新的 while (_grabQueue.TryDequeue(out HObject stale)) { stale.Dispose(); } var text _ocr.Recognize(latest); latest.Dispose(); // 觸發(fā)結(jié)果事件事件里只入隊(duì)不做 UI 刷新 OnFrameResult?.Invoke(new OcrResult(text, DateTime.Now, DeviceName)); } else { Thread.Sleep(5); } } }OnFrameResult 用 Action 委托或者自定義事件都行但事件處理器里絕對(duì)不能直接去 update UI、寫(xiě)數(shù)據(jù)庫(kù)。識(shí)別線(xiàn)程一被阻塞隊(duì)列就漲上來(lái)丟幀率跟著上升。我一般讓事件處理器只做一件事把結(jié)果放進(jìn)另一個(gè) ConcurrentQueueUI 用一個(gè) 100ms 的 Timer 批量拉取刷新寫(xiě)庫(kù)交給獨(dú)立線(xiàn)程。這樣界面再卡也不會(huì)拖垮識(shí)別。4.2 多相機(jī)結(jié)果對(duì)齊同一個(gè)工件四相機(jī)拼讀的三種策略如果 4 個(gè)相機(jī)拍的是同一個(gè)工件的不同面最終要把 4 路結(jié)果拼成一個(gè)完整記錄再判定。這里最坑的是同一幀的認(rèn)定光靠時(shí)間戳對(duì)齊是最省事但也最容易出錯(cuò)的做法。第一種時(shí)間戳對(duì)齊適合軟觸發(fā)場(chǎng)景。上位機(jī)同時(shí)給 4 臺(tái)相機(jī)發(fā)觸發(fā)命令抓到圖后打上 Environment.TickCount 或 Stopwatch 時(shí)間戳識(shí)別完把同一觸發(fā)周期內(nèi)的結(jié)果歸組。軟觸發(fā)本身有幾十毫秒抖動(dòng)工件走快了一個(gè)相機(jī)早拍了 50ms字符位置和樣貌已經(jīng)變了識(shí)別率不穩(wěn)。第二種 PLC 流水號(hào)對(duì)齊這是工業(yè)現(xiàn)場(chǎng)最靠譜的方案。每個(gè)工件過(guò)觸發(fā)傳感器時(shí)PLC 發(fā)一個(gè)流水號(hào)給上位機(jī)上位機(jī)把當(dāng)前收到的 4 路結(jié)果關(guān)聯(lián)到這個(gè)流水號(hào)上。相機(jī)漏拍或重拍時(shí)流水號(hào)能明確告訴你缺哪一路直接標(biāo)記 NG 等待復(fù)判。光靠時(shí)間戳遇到漏拍就全線(xiàn)錯(cuò)位后面所有數(shù)據(jù)都對(duì)不上這是血淚經(jīng)驗(yàn)。第三種圖像特征對(duì)齊用工件上本來(lái)存在的二維碼或關(guān)鍵字符做關(guān)聯(lián)。每個(gè)工位識(shí)別出同一枚唯一碼后按碼歸組適合產(chǎn)品自帶碼的場(chǎng)景但前提是每個(gè)拍攝面都能讀到同一個(gè)碼很多工位布局滿(mǎn)足不了。我現(xiàn)在的習(xí)慣是現(xiàn)場(chǎng)有 PLC 就一定接流水號(hào)沒(méi)有 PLC 才退而求其次用時(shí)間戳并且把時(shí)間戳容差設(shè)到 100ms 以上寧可多等一幀也別錯(cuò)配。4.3 結(jié)果落庫(kù)與異常重拍SQLite 記錄、超時(shí)與 NG 處理OCR 結(jié)果、原圖路徑、時(shí)間戳、工位號(hào)都要落庫(kù)。工業(yè)上位機(jī)最務(wù)實(shí)的選擇是 SQLite單文件、免安裝、部署零成本。每幀一條記錄字段大致是 id、timestamp、camera_id、ocr_text、confidence、image_path、is_ngprivate static readonly string ConnStr Data Sourceocr_results.db; public void SaveResult(OcrResult r) { using var conn new SQLiteConnection(ConnStr); conn.Open(); using var cmd conn.CreateCommand(); cmd.CommandText INSERT INTO ocr_log(timestamp, camera_id, ocr_text, confidence, image_path, is_ng) VALUES(ts, cam, text, conf, img, ng); cmd.Parameters.AddWithValue(ts, r.Timestamp); cmd.Parameters.AddWithValue(cam, r.CameraId); cmd.Parameters.AddWithValue(text, r.Text); cmd.Parameters.AddWithValue(conf, r.Confidence); cmd.Parameters.AddWithValue(img, r.ImagePath); cmd.Parameters.AddWithValue(ng, r.IsNg); cmd.ExecuteNonQuery(); }這里有個(gè)必踩的坑SQLite 寫(xiě)庫(kù)有鎖4 個(gè)識(shí)別線(xiàn)程同時(shí)寫(xiě)同一張表很快報(bào) database is locked。解決方式兩種一是給寫(xiě)庫(kù)加全局鎖簡(jiǎn)單但吞吐受限二是單寫(xiě)線(xiàn)程 ConcurrentQueue 批量落庫(kù)寫(xiě)庫(kù)線(xiàn)程每 200ms 把隊(duì)列里的結(jié)果攢成一個(gè)事務(wù)批量插入一次事務(wù)插幾十條效率高也不會(huì)鎖。超時(shí)重拍的邏輯要單獨(dú)設(shè)計(jì)。置信度低于閾值比如 0.8或者干脆沒(méi)讀到字符時(shí)先判斷是不是曝光、焦距問(wèn)題重拍最多兩次重拍還 NG 就把原圖歸檔、標(biāo)記人工復(fù)判。不要無(wú)限制重拍產(chǎn)線(xiàn)節(jié)拍會(huì)被你堵死NG 圖保留下來(lái)反而是后面訓(xùn)練和調(diào)優(yōu)最值錢(qián)的資產(chǎn)。5. C# 聯(lián)合 Halcon 的 5 個(gè)高頻翻車(chē)現(xiàn)場(chǎng)現(xiàn)象、原因與解決辦法5.1 Access Violation C0000005對(duì)象的釋放順序現(xiàn)象程序運(yùn)行一段時(shí)間后或者關(guān)閉窗口時(shí)C# 拋出 System.AccessViolationException錯(cuò)誤碼 C0000005調(diào)用棧指向 HalconDotNet 的某個(gè)析構(gòu)函數(shù)或者 HOperatorSet 調(diào)用。原因HObject 和 HTuple 是非托管資源的包裝C# 的 GC 可能在你還用著圖像時(shí)觸發(fā)了終結(jié)器或者你在別的線(xiàn)程 Dispose 了正在使用的對(duì)象。最常見(jiàn)的場(chǎng)景一個(gè) HObject 進(jìn)了隊(duì)列兩個(gè)線(xiàn)程都持有引用消費(fèi)線(xiàn)程用完 Dispose采集線(xiàn)程還在往窗口畫(huà)這一幀一崩一個(gè)準(zhǔn)。解決跨線(xiàn)程傳遞的 HObject 所有權(quán)必須明確誰(shuí)最后使用誰(shuí)釋放。生產(chǎn)線(xiàn)程只負(fù)責(zé)入隊(duì)消費(fèi)線(xiàn)程負(fù)責(zé) Dispose中間不允許第三方觸碰。調(diào)試期可以在項(xiàng)目屬性里打開(kāi) GC 并發(fā)回收的開(kāi)關(guān)來(lái)復(fù)現(xiàn)但這種問(wèn)題要靠規(guī)范根治每個(gè)線(xiàn)程的局部 HObject 用 using 塊包裹回調(diào)到 UI 的 HObject 一定先深拷貝或者只傳句柄。這個(gè)報(bào)錯(cuò)很玄學(xué)不是每次都崩取決于 GC 時(shí)機(jī)現(xiàn)場(chǎng)復(fù)現(xiàn)極其痛苦。我現(xiàn)在寫(xiě)多相機(jī)代碼第一步永遠(yuǎn)是畫(huà)清楚每個(gè) HObject 的流向圖誰(shuí)生產(chǎn)、誰(shuí)消費(fèi)、誰(shuí)釋放畫(huà)不清楚不寫(xiě)代碼。5.2 License 報(bào)錯(cuò)腳本跑得好好的一加線(xiàn)程就報(bào)無(wú)授權(quán)現(xiàn)象單線(xiàn)程調(diào)試時(shí) Halcon 算子全部正常把 GrabImageAsync 或者 DoOcrMulti 放進(jìn)后臺(tái)線(xiàn)程后報(bào) H9991 無(wú)可用授權(quán)或者 license 無(wú)效。原因Halcon 授權(quán)機(jī)制綁定到調(diào)用上下文試用授權(quán)只允許單線(xiàn)程執(zhí)行多線(xiàn)程并行跑算子會(huì)直接觸發(fā)授權(quán)校驗(yàn)失敗。另外 HDevEngine 和導(dǎo)出代碼的授權(quán)校驗(yàn)方式不同同一個(gè) license.dat 換個(gè)調(diào)用方式可能就不認(rèn)了。解決第一確認(rèn)用的是正式 Runtime 授權(quán)而不是試用授權(quán)正式授權(quán)支持多線(xiàn)程試用授權(quán)跑單線(xiàn)程是它的設(shè)計(jì)邊界不是 bug第二確認(rèn) C# 工程平臺(tái)目標(biāo)和 Halcon 位數(shù)一致位數(shù)不匹配經(jīng)常誘發(fā)奇怪的授權(quán)和類(lèi)型錯(cuò)誤第三license.dat 的路徑要保證所有線(xiàn)程都能讀到別放在用戶(hù)臨時(shí)目錄或者相對(duì)路徑部署到 Windows 服務(wù)里路徑一變就授權(quán)失敗。還有個(gè)常見(jiàn)的連帶坑license 文件到期時(shí)間是半夜第二天早上產(chǎn)線(xiàn)一開(kāi)機(jī)就報(bào)錯(cuò)。生產(chǎn)項(xiàng)目一定要在代碼里做授權(quán)剩余天數(shù)檢查提前三天在界面上告警別讓操作員大早上對(duì)著紅屏找你。5.3 4 個(gè)相機(jī)只能打開(kāi) 2 個(gè)GigE 帶寬與驅(qū)動(dòng)配置現(xiàn)象OpenFramegrabber 打開(kāi)前兩個(gè)相機(jī)正常第三個(gè)或第四個(gè)報(bào)無(wú)法連接、超時(shí)或者都打開(kāi)成功了抓圖一多就開(kāi)始丟幀、卡頓。原因網(wǎng)卡、交換機(jī)、相機(jī)三者沒(méi)同時(shí)開(kāi) Jumbo Frame巨型幀4 路相機(jī)在千兆網(wǎng)上的小包傳輸把帶寬和 CPU 中斷都打滿(mǎn)了。900 像素相機(jī)單幀 9MB不開(kāi)巨型幀一個(gè)幀被拆成幾百個(gè)小包CPU 中斷風(fēng)暴一來(lái)網(wǎng)卡先崩。解決所有網(wǎng)絡(luò)設(shè)備包括相機(jī)都設(shè)置 Jumbo Frame 9000單路帶寬按 寬×高×位深×幀率 計(jì)算保留 30% 余量雙口網(wǎng)卡靜態(tài) IP 分流相機(jī) 1、2 走網(wǎng)卡 A相機(jī) 3、4 走網(wǎng)卡 B再把網(wǎng)卡中斷的 CPU 親和性分散到不同核心避免所有中斷擠在一個(gè)核上?,F(xiàn)場(chǎng)還有一個(gè)容易忽略的點(diǎn)相機(jī) IP 與上位機(jī)不在同一網(wǎng)段Halcon 枚舉時(shí)看得到設(shè)備但 OpenFramegrabber 就是連不上先用廠商工具改 IP 再上代碼。5.4 OCR 準(zhǔn)確率早晚差異大曝光與 ROI 沒(méi)固化現(xiàn)象同一套代碼白天識(shí)別率 99%傍晚太陽(yáng)斜照進(jìn)車(chē)間誤識(shí)別率直線(xiàn)上升8 認(rèn)成 3O 認(rèn)成 0。原因環(huán)境光變化導(dǎo)致圖像整體灰度偏移你閾值分割寫(xiě)死了 128早上字符灰度 150傍晚掉到 100分割出來(lái)的區(qū)域不是缺筆畫(huà)就是多粘連。Halcon 的 OCR 對(duì)光照變化比人眼敏感得多。解決光源固定是第一優(yōu)先能加遮光罩就加遮光罩能用頻閃光源就用頻閃光源把環(huán)境光的影響壓到最低相機(jī)曝光和增益鎖成固定值絕對(duì)不要開(kāi)自動(dòng)曝光自動(dòng)曝光會(huì)讓字符灰度反復(fù)橫跳閾值不要寫(xiě)死用灰度直方圖定位峰谷或者用 MedianImage 降噪后配合 dyn_threshold 做動(dòng)態(tài)分割。ROI 也一定要按基準(zhǔn)圖像標(biāo)定好不要每幀全圖找字ROI 固定后還能順手把光源邊緣的偽區(qū)域?yàn)V掉。5.5 關(guān)程序就崩潰句柄銷(xiāo)毀順序現(xiàn)象點(diǎn)關(guān)閉按鈕界面退了進(jìn)程還賴(lài)在任務(wù)管理器里或者退到一半崩潰主窗口關(guān)了但報(bào) Halcon 窗口無(wú)效。原因UI 線(xiàn)程關(guān)閉時(shí)銷(xiāo)毀了 HWindowControl但采集、識(shí)別線(xiàn)程還在向窗口推送圖像或者調(diào)用 disp_obj。Halcon 的窗口句柄一旦銷(xiāo)毀任何往這個(gè)窗口畫(huà)的算子都直接崩潰。解決退出順序必須是「停線(xiàn)程 → 釋句柄 → 關(guān)窗口」protected override void OnFormClosing(FormClosingEventArgs e) { _running false; // 1. 通知所有線(xiàn)程退出 _grabThread?.Join(1000); // 2. 等采集線(xiàn)程退出帶超時(shí) _ocrThread?.Join(1000); // 3. 等識(shí)別線(xiàn)程退出 _acqHandle?.Dispose(); // 4. 釋放相機(jī)句柄 _window?.Dispose(); // 5. 最后釋放 Halcon 窗口 base.OnFormClosing(e); }順序反了就是玄學(xué)崩潰先 Dispose 了相機(jī)句柄采集線(xiàn)程還在等圖線(xiàn)程內(nèi)部訪問(wèn)已釋放句柄Access Violation。Join 一定要帶超時(shí)參數(shù)不然線(xiàn)程卡死在 GrabImageAsync 里窗體永遠(yuǎn)關(guān)不掉。這個(gè)退出流程我現(xiàn)在每個(gè)項(xiàng)目第一個(gè)寫(xiě)寫(xiě)完再動(dòng)其他代碼。6. 把 OCR 準(zhǔn)確率從 90% 提到 99%預(yù)處理順序、自定義訓(xùn)練與回歸驗(yàn)證6.1 預(yù)處理三板斧OCR 識(shí)別之前必須過(guò)三關(guān)順序不能反。第一關(guān)灰度化彩色圖 ConvertImageType 轉(zhuǎn)灰度Halcon 的 OCR 算子只吃單通道第二關(guān)去噪增強(qiáng)字符印在紋理背景上時(shí)先做高斯差分DoG把低頻背景濾掉再分割效果立竿見(jiàn)影普通工況用 MedianImage 或 GaussFilter 就夠第三關(guān)形態(tài)學(xué)清理開(kāi)運(yùn)算去掉孤立鹽噪點(diǎn)閉運(yùn)算把斷掉的筆劃接上。之后再做閾值分割和字符候選提取。濾波核大小的經(jīng)驗(yàn)值按字符高度比例定取字符高度的十分之一到五分之一。字符高度 30 像素濾波核取 3 到 5太大字符糊掉太小不起作用。這個(gè)參數(shù)值得用驗(yàn)證集調(diào)多花半小時(shí)調(diào)濾波后面少加一個(gè)月班。6.2 自定義字符庫(kù)訓(xùn)練自帶庫(kù)實(shí)在扛不住時(shí)用 Halcon 的 OCR Training 工具自己訓(xùn)。流程是固定的抓一批現(xiàn)場(chǎng)圖像框出字符逐個(gè)標(biāo)注字符值生成 .trf 訓(xùn)練文件用 create_ocr_class_mlp 生成分類(lèi)器最后 write_ocr_class_mlp 導(dǎo)出。C# 里不需要改一行代碼ReadOcrClassMlp 加載你導(dǎo)出的模型文件就行。訓(xùn)練集每類(lèi)字符至少要 50 個(gè)樣本覆蓋不同光照、偏移、粗細(xì)、缺損程度。只標(biāo)幾張圖訓(xùn)出來(lái)的分類(lèi)器實(shí)際就是記住了你那幾張圖換一幀就露餡。訓(xùn)完用驗(yàn)證集測(cè)準(zhǔn)確率達(dá)不到就回去補(bǔ)樣本這一步不能省。6.3 批量回歸驗(yàn)證改任何參數(shù)之前先建驗(yàn)證集。從現(xiàn)場(chǎng)歷史圖里挑 500 張好的壞的都要跑一個(gè)批處理腳本統(tǒng)計(jì)字符級(jí)準(zhǔn)確率和整串準(zhǔn)確率。整串準(zhǔn)確率才是產(chǎn)線(xiàn)真正關(guān)心的指標(biāo)因?yàn)榕卸ㄊ钦葘?duì)。某個(gè)字符識(shí)別率 99% 聽(tīng)著不錯(cuò)但產(chǎn)品碼 12 位整串全對(duì)的概率是 0.99 的 12 次方87%這數(shù)據(jù)上不了線(xiàn)。我平時(shí)用一個(gè)簡(jiǎn)單的控制臺(tái)命令做回歸輸入圖片目錄和期望識(shí)別結(jié)果輸出每張圖的識(shí)別文本和置信度跑完自動(dòng)和期望值對(duì)比打印整串通過(guò)率。每次改曝光、改預(yù)處理、換模型都把同一批圖跑一遍通過(guò)率不能比上一次低。這是我在現(xiàn)場(chǎng)唯一認(rèn)可的驗(yàn)收標(biāo)準(zhǔn)做不到 99% 整串通過(guò)率別急著交產(chǎn)線(xiàn)。這套多相機(jī) OCR 上位機(jī)的框架說(shuō)到底就是「線(xiàn)程隔離 資源管理 數(shù)據(jù)對(duì)齊」三件事。我現(xiàn)在的習(xí)慣是接到項(xiàng)目先寫(xiě)退出流程和對(duì)象流向圖再談識(shí)別率優(yōu)化。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久99综合婷婷| 五月婷婷大香蕉| 久久婷婷东京热大香樵| 在线观看中文字幕| 91精品综合久久久久久五月丁香 | 婷婷五月视屏| 婷婷丁香视频在线观看免费| 亚洲婷婷综合视频| 小视频久久久aaa| 亚洲欧美综合7777色婷婷| 97干在线| 99操逼| 色色色色色色色色网站| 97色啪| 人人爱人人草| 91九色精品女同系列| 青青操avbb| 五月婷婷精品视频| 九九久久精品| 五月亭亭六月天| EEUSS鲁片一区二区三区| 欧美日韓成人亚洲精品另类| 色五月婷婷狠狠撸| 丁香香五月激情免费视频| 9999热在线观看| 婷婷97狠狠成人网站| 五月婷婷激情中文字幕| 丁香六月狠狠干| 性生活久久人妻| 女性自慰系列第五页| 丁香玖玖| 操操国产| 色综合夜夜| 色天堂在线| 激情电影五月婷婷| 婷婷欧美激情| 亚洲av成人在线| 无码九九九九| www.婷婷亚洲基地| 婷婷月五天在线在线看| 玖玖伦理电影| 五月天成人手机在线视频| 婷婷五月天伊人在线| 99操碰| 91成人电影| 丁香五月色色婷| 五月久久丁香| 91亚洲天堂| 九九99视频精品| 雪千夏麻豆| 亚洲乱码日产精品BD| 五月婷婷深深爱| 亚洲激情网| 丁香五月综合| 国产精品久久久久久久久久| 一本婷婷丁香久久 | 五月天婷婷小说| 婷婷精品性性性性性性性| 亚洲AV色婷婷人禽五月天| 色综合开心五月深爱五月| 精品无码色欲AV| 69婷婷丁香午夜| 五月丁香六月婷婷手机无线| 99综合网| 99久久综合| 亚洲精品V天堂中文字幕| 日日影院 | 日比网免费国产| 成人 在线观看国产| 日韩成人精品中文字幕电影| 99色在线观看视频| 丁香五月日本| 在线成人网站| 丁香五月-激情综合| 久9热插入| 亚洲视频无| 五月天激情四射网站| www.91在线观看| 亚洲视99| 久久激情网| 久久92| 亚洲色综合| 国产在这里只有精品| 99精彩视频| 男人的天堂99| 亚洲性爱干干| 色五月天综合网| 99精品热视频| 久久久91精品| 九九热只有这里是精品| 天天肏在线观看| 五月激情小说| 狠狠色丁香婷婷久久综合| 婷婷操逼| 色在线99| www.99操.com| 天天综合亚洲综合| 99这里只有精| 久久香蕉丁香| 六月 丁香 视频| 午夜成人天堂久久无码日韩久久| 97超级啪啪在线观看| 久久天堂| 99免费在线视频| 激情五月天网| 五月婷婷婷综合网| 思思热视频| 99久视频| 日本婷婷在线| 这里只有精品无码| 91成人看| 99热精品免费在线观看| 国产精产国品一二三在观看 | 九九热思思热| 天天日天天插| 亭亭丁香aV| 九九在线精点品| 国产乱妇无乱码大黄AA片| 亚洲精品444久久久久久| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | 婷婷激情五月天天天开心| 日日狠狠久久偷偷四色综合免费 | 国产毛片精品一区二区色欲黄A片| 九九精品热播| 激情网五月天| 操久久精| 类似婷婷激情综合网站| 涩五月丝袜婷婷| 丁香花五月天| 免费视频WWW在线观看网站| 日韩成人av在线| 色色无码| 婷婷黄色| 亚洲六月色| 97亚洲婷婷| 2025色婷婷| 成人.在线日韩| 丁香六月婷婷缴情欧美| 99久热| av在线观看免费| 色婷婷电影网| 日韩精品超碰在线观看| 免费国产视频| 久热这里这里有精品| 超碰免费人妻| 丁香六月婷婷开心| 国产精产国品一二三在观看| 婷婷五月丁香激情色情| 五月伊人91| wwwxxx五月婷婷小说| 丁香五月天堂| 国产精品24r| 亚洲另类婷婷五月综合| 97超碰欧美中文字幕| 五月丁香婷婷激激激综合网色播| 97碰91| 天天色综网| 色婷婷亚洲综合网站| 久久99这里只有精品视频| 办公室少妇激情呻吟A片在线观看| 丁香六月婷婷激情综合| 色五月激情五月| 国产六月婷婷| 97久操视频| 99热免费观看| 天天射影| 日本在线观看aaa 99| 久热播这里只有精品| 日本91在线播放| av免费人人| 二区成人视频| 五月天精品| 婷婷热婷婷色| 五月激情综合性爱| 久热大香蕉| 色婷婷深爱五月| 丁香五月开心七月| 人人操日| 五月色网| 高清无码.com| 九九久久污| 色播五月综合网| 亚洲视频五区| 丁香五月亚洲综合| 丁香五月天激情视频| WWW.五月天9999| 真实的国产乱XXXX在线91| 深爱五月激情| 色色色色色级无码| 小色小蛇伊人婷婷色香五月| 激情伊人五月天| 99热国内| 色色爽爽天天| www.丁香黄色五月天人与| 婷婷久久色| 久久久18| 91日精品| 色欲AVV| 男人天堂99| 激情综合网,婷婷| 91大神在线免费看视频全集男男一起操| 国产精品色婷婷久久久精品| 色情五月天首页| 色香久久| 一级韩国产精品毛| 国产亚洲精品久久久久苍井松 | 婷婷在线播放| 亚州精品久久久久AV无码| 久久久久久久久久91| AA片在线观看视频在线播放| 日日天天干| 久噜久噜| 日本色婷婷久久99精品91| 日韩情色在线观看| 婷婷五月天丁香综合网| 色视频色综合91| 色综合中文| 五月婷婷久久爱| 9999热在线免费观看| 国产精品久久久久久久久久| 狠狠色婷婷777| 欧洲色色| 99热97| 大伊久久| 森林影视大全,最好看的2019年视频 | 99熟女| 丁香五月成人网| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 伊人综合网站| 婷婷五月花| 人人操99| 久久久中文| 六月丁香五月婷婷| 99视频在线精品| 这里只有免费的精品| 人妻久久久久久久久妻久久久久久久久| 婷婷五月在线| 婷婷五月色情| 婷婷五月天Av| 日本精品99| 青青久久大香蕉| 婷婷99狠| 激情久久月| 婷婷五月天亚洲综合网| 亚洲殴洲精品Av在线| 欧美A级成人婬片免费看理论| 99色网站| 亚洲精品字幕在线观看| 婷婷色色亚洲| 久久综合综合综合| 4399伦理午夜| 色五月婷婷av| 天天狠天天狠| 婷婷五月天激情小说网站| 丁香六月激情综合网| 草美女在线观看视频在线播放 | 无码中文一区二区三区| 九九免费在线视频| 呦呦视频无码播放| 婷婷六月激情| 久久视频婷婷视频| 色爱综合网| 黄网在线播放| 五月丁香六月激情网站| 婷婷丁香五月天熟女丝袜| 亚洲激情五月婷婷日日| 玖玖激情网| 亚洲在线免费成人| 丁香五月天色婷婷| 色五月婷婷大香蕉| 91操碰| 一起草性爱不卡视频| www.minyis.com【JT】实力收量可预付QQ2101460746 | 亚洲激情综合| 色五月婷婷久久| 色五月婷婷综合| 大香蕉五月天婷婷| 九月婷婷人人操人人舔人人爱| 丁香五月开心七月| 99热在线精品播放| 五月天婷婷色播在线网| 五月丁香六月婷婷激情视频在线观看免费| 啪啪99| www.夜夜| 国产高潮白浆一区二区| 婷婷综合网站| 99热这里有精品2| 成人丁香婷婷| 色优久久| 一操久久| 色综合久久88色综合天天人守婷| 人人视频人人干人人做| 久久精彩免费视频| 超级碰碰一区| 人人爽在线视频综合网| 99热精品无码| 欧美精品在线观看| 操99| www.五月丁香| 国产伦亲子伦亲子视频观看| 91久久精品无码一区二区三区| 99免费成人网| 久久久久人妻精品| 综合色五月亭亭| 色婷婷五月综合在线| 99热综合| 丁香五月婷婷激情四射| 婷婷网五月| 99热18| 超碰人人在线观看| 99在线观看精彩视频| 免费视频这里只有精品| 久热大香蕉| 五月丁香激情啪啪网| 99热这里只有精品268| 五六月丁香激情视频| 狠狠99| 熟妇人妻中文字幕无码老熟妇| www.99免费视频| 激情网狠狠干| 99这里只有精品| 四川操逼站| 五月丁香va| 99riAV国产精品视频| 久久久国产精品黄毛片| 色五月丁香六月资源站| 91久久1118| 婷婷久久婷婷| 激情色视频| 天天干天天做| 久久黄色免费视频| 色色a| 99热久97| 亚洲五月天激情| 精品国产乱码久久久久夜深人妻| 丁香综合伊人| 五月丁香五月综合欧美| 99超级碰免费视频| 色色婷婷丁香| 婷婷五月情| 久久怕怕视频| 久久久久婷 | 六月丁丁香| 久99在线| 狠狠干综合网| 97超碰色| 色色色综合| 久久精品日| 操熟女成人网| 色九月综合| 亚洲性爱区无码区| 中文字幕久久婷九女同| 五月天网站亭亭| 超碰在线观看三级片| 六月激情婷婷色| 99这里只有| 五月丁香婷婷在线| 五月婷婷香| 色五月天堂| 五月婷六月| 五月丁香综合中文| 亚洲成人免费在线| 激情五月综合色| 婷婷综合网| 五月婷婷激情综合在线| 激情五月天之六月婷婷| 男女啪啪做爰高潮无遮挡| 五月天婷婷自拍图片在线观看| 深爱激情综合| www.91有码.com| 色噜噜狠狠色综无码久久合欧美| 婷婷五月天成人综合网| 啪精品| www.狠狠| 丁香五月1页| 中文字幕在线免费观看视频| 日韩av干| 99热99| 丁香五月网址| 天天狠狠色噜噜| www天堂99| 亚洲这里只有精品| 五月婷婷干干干| 少妇AB又爽又紧无码网站| 五月开心啪啪| 日本久久人人| 日本不卡高字幕在线2019| 九九爱激情| 中文字幕不卡视频| 五月丁香网站| 99精品小视频| 性五月激情| 噼里啪啦完整版中文在线观看| 91大屁股| 大香蕉久久久久| 成 人片 黄 色 大 片| 色射婷婷五月天| Caop在线| .精品久久久麻豆国产精品| 五月天激情www| 99色在线观看| 伊人狠狠综合| 91热在线| 狠狠色丁香久久综合婷婷亚洲成人福利| 五月天婷婷在线播放| 婷婷的99视频网站| 丁香五月婷婷五月基地| 天天干天天干天天干天天干天天干| 狠狠色综合777| 九九99热久久精品66中文字幕| 激情开心五月天| 色五月丁香五月婷婷五月成人网| 国产激情综合| 一起操 91N.com| 五月叮香啪| 俺去也在线www色官网| 国产综合色婷婷精品久久| 欧美日本免费一道免费视频 | 五月丁香久久综合91| 99九九视频| 五月天成人网婷婷| 成人看片网站| www.sebowuyue| 538在线精品| 五月婷婷成人| 五月丁香六月婷婷视频| 玖玖精品视频99| 成人av中文字幕| www.婷婷五月.com| 国产SUV精品一区二区883| 亚洲成人一区| 亚洲婷婷五月| 日日杆天天| 丁香激情合作五月| 第四色五月激情网| 婷婷五月天最新综合你懂的 | 伊人干综合| 激情五月九九九| 五月丁香成人| 国产激情久久| 色九月婷婷综合| 狠狠色噜噜狠狠亚洲A∨| www.色五月| 9l视频自拍9l九色成人| 日本美女上人| 在线观看av网站| 夜夜躁爽日| 五月丁香婷婷伊人| 99热这里有精品2| 涩涩五月天综合| 九月婷婷久久久| 3p久久| 99久高清视频| 91超级碰人人操| 婷婷五月天桃花网| 任你弄在线视频免费| 亚洲乱码日产精品BD| 超碰91在线| 综合激情视频| 久9热| 日韩无码色色| 婷婷五月天成人| 五月天色影院| 伊人综合网站| 五月天丁香婷婷久久九| 69久久久| 婷婷六月视频| 性爱综合网| 91碰碰碰| 亚洲综合丁香五月| 婷婷丁香人妻天天久久| 五月激情婷婷国产精品久久久久久| 99re思思热久久| 婷婷性爱五月天| 婷婷开心五月| 五月色网| 无码人妻精品一区二区蜜桃色欲| 在线视频婷婷| 欧美碰碰| 国产67194| 婷婷色在线| 狠狠操.com| 婷婷五月天日逼| www,婷婷五月天777me,com| 久久欧洲综合网| 色色色色色色色色网站| 任你爽免费视频| 五月丁香啪啪| www,av好吊操| WWW.桔色成人.COM| 婷婷五月激情网| 免费看欧美成人A片无码| 久久久久久久久月丁| 丁香五月色色婷| 婷婷性爱网| 久久亚洲A| 亚洲激情综合五月婷婷啪啪| 99九无网码| 亚洲另类电影| 免费看片在线观看| 五月天婷婷三级黄| 丁香六月欧美| 色婷婷电影网| www热久久yy9| 五月丁六月香av| 五月婷婷真爱激情网| 97碰在线视频| av首页在线| 级情九色| 成人精品亚洲性爱| 精品人妻伦九区久久AAA片| 婷婷久久天堂网| 天天做天天爱天天搞| 婷婷激情丁五月| h亚洲| 五月天色综合| 99精品一二三四视频| 色婷婷成人在线| 波多野结衣AV无码Porn| 亚洲日本韩国| 亚洲激情综合| 五月婷视频在线| 五月丁香啪啪| 欧美在线操| av性爱在线| 99热在线只有精品| 看全色黄大色大片| 中文字幕婷婷五月天在线观看| 伊人激情| 九九热99视频在线| www.丁香五月| 婷婷六月激情丁香| 激情久久肏屄视频| 六月丁香婷婷大香蕉| 国产色丁香| 五月天婷综合| 九九色情网五月天 | 开心五月天激情| 亚洲成人五月天| 99热很操老逼| 久久色五月天综合网| 色九月| 色五月色图| 五月婷婷激情久久| 久久九九激情五月天 | 色噜噜97视频在线观看| 亚洲国产另类av| www.思思99热| 成人午夜天| 色VA| 六月丁香啪啪| 99re思思精品视频在线观看| 九九热这里只有精品6| 五月婷久久草| 丁香六月婷婷久久综合| 91婷婷五月丁香碰| 五月婷婷中文字幕| 综合婷| www.99成人视频| 男人先锋久久| 婷婷五月天日本无码| 99噜噜噜在线播放| 色情激情五月| 九色亚洲| 79精品视频在线观看,| 91九九九色在| 久久丁香久久| 五月婷婷六月丁香五月| 精品自拍97| 亚洲色A| 99九九精品视频推荐| 五月丁香六月欧美综合| 婷婷丁香日韩五月| 激情五月六月婷婷| 99热热这里只精品996小说| 天天日天天摸| 久久与婷婷| 丁香五月区| 亚洲精品视频在线播放| 久/久精品99看9| 久色成人| 99re视频在线精品| 看全色黄大色大片| 97人人干人人操| 丁香六月欧美| 夜夜夜叫天天天做| 五月天综合色| 狠狠爱婷婷爱| 五月丁香综合激情在线观看| 人妻熟人中文字幕一区二区| 激情婷婷五月天日本系列| 人人综合色| 丁香六月综合激情| 婷婷五月丁香综合亚洲 | 国产淫熟妇| 婷婷大香焦| 久久丁香五月婷| 五月丁香人妻| 婷婷丁香久久| 亚洲欧美一区二区三区爱爱动图| WWW.99视频| 99热在线播放| 操一操| www.99热在线| 99精品在线播放| 九九九九热99超碰| 啪啪综合| 色五月综合网| 中文字幕在线资源| 天天操天天干天天射| 婷婷色综合| 色色亚洲无码| 激情图片99| 久久久久9999| 美欧成人视频| 五月深爱婷婷| wWW九九在线播放| 思思热在线视频精品| 拳交大逼| 熟女激情网| 色很久综合| 中文字幕黄色片| 99精吕视频在线观看了| 热久久99视频| 免费啪啪亚州视频| av婷婷丁香| 久久亚洲婷婷| 综合噜噜| 色婷婷五月婷婷五月婷婷五月| 99爽视频| 超碰免费电影| 人妻丰满精品一区二区A片| 日韩综合久| 99热99这里有免费的精品| 日本久久性| 婷婷影视久久| 欧美成人精品A片免费一区99| 激情五月天影院| 久久久久综合激动五月天| 亚州操操| 久久久久婷 | 激情视频网址| 97超碰人人操| 狠狠操狠狠| 久久这里只有精品22| 成人看片网站| www.99热视频| 久久思思热| 婷婷六月激情在线视频| 色播五月丁香综合| 丁香激惜男女| 久久综合婷婷| 人妻九九九九| 色五月色图| 99啪视频在线观看| 97人碰人操| 色五月情| 福利视频在线播放| 激情五月天综合网| 性一交一乱一交A片久久四色| 九九精品综合| 天堂久久精品| 五月激情视频| 操人91| 99精品热视频| 9999久久久久| 天天爽夜夜操| 99操逼| 午夜大香蕉| 色人久久| 亚洲妇女熟BBW| 九九AV| 国产肥白大熟妇BBBB视频| 久久精品99| 久热久| 99热在线播放| 超碰免费人| 久久五月婷综合| 婷婷中文字幕欧美| AV中文字幕夜夜操b天天摸bb | 色频玖玖五月天| 色情性爱视频网址| 天干干夜夜操| 激情婷婷五月天日本系列| 五月天婷婷中文字幕在线播放| 亚洲激情精品| 色99色| 五月丁香福利| 久久丁香| 久久婷婷五月丁香蜜桃网| 日韩人人操| 亚洲色婷婷五月天| 婷婷丁香在线| 婷婷激情五月天亚洲综合| 丁香五月激情视频在线| 婷婷五月天综合久久| 婷婷五月综合网| 久久九九热视频| 夜夜夜夜操| 另类激情五月| 日本五月天网站| 97色干| 国产AV国片偷人妻麻豆| 丁香五月天社区婷婷| 久久精品91视频| 五月天激情播播网| 婷婷丁香五月亚洲综合网在线视频观看| 色亭亭五月天丁香综合AV - 百度 - 百度 | 婷婷丁香十月| 激情五月天婷婷播播久久综合91 | 成人综合伍月天| 狠狠爱婷婷| 五月婷婷六月色| 久久丁香婷| 日日干天天射| 激情五月五月五月婷婷| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 97精品综合| 婷婷激情啪啪| 五月丁香成人网| 五月天社区婷婷| 99热在线精品播放| 欧美噜一噜| 91ncm视频| 嫩BBB搡BBBB榛BBBB| 日韩美女羞羞网站在线观看| 欧美va视频不用播放器的va视频网| 久久免费视频62| 色色色9| 婷婷综合久久综合| 久久婷婷成人视频| 日日干日日| 屁股翘好撅高迎合跪趴| 九九热中文| 看国产探花操逼三级片| 性一交一乱一交A片久久四色| 婷婷五月综合免费在线| 欧美综合激情五月丁香| 久久婷婷网| 五月综合激情图片| 国产精品激情AV久久久青桔| 婷婷 伊人 久久| 丁香五月天激情综合网| 五月婷婷天| 色天堂操| 夜夜爽天操| 99精彩视频| 成人一级片| 99re这里| 嫩模草| 人人人人人人人人人草| 丁香成人五月天| 懂色av蜜臀av粉嫩av永陈冠希| 99色热视频| 六月丁香婷| 成人看片网站| 色婷婷中文在线| 亚洲激情五月| 五月天成人小说网| 99人人爽| 开心五月丁香婷婷| 男男野外做爰全过程69| 久久婷婷五月国产色综合激情| 翔田千里 50岁 无码| 色婷九九九| 开心激情网五月| 碰超亚洲| 婷婷五月天成人网站| 久草婷婷网| 97色伦另类图片小说视频 | 婷婷五月丁香99| 婷婷五月免费在线| 久久五月婷天天干| 天天成人综合视频| 日韩色色色色| 五月婷婷精品视频| 色九四色| 日日插日日干| 99ri视频在线观看| 丁香五月婷婷视频| 伊人五月综合网| 婷婷五月天成人网| 激情图片99| 99亚洲视频| 91精品久久久久久久久久久久| 另类视屏| XX久久| 成人av在线网站| 99久在线精品99re8热| 依人大香蕉| 亚洲天堂色色| 五月丁香少妇A| 色网五月婷婷| 五月婷婷之美女图片| 人妻中文av| 欧美成人日韩| 性爱网久久| 五月激情综合网| 五月丁香六月婷婷a v| 六月婷婷综合网2| 亚洲视频伍月婷婷| 91视频精品99| 五月丁香六月激情综合| 婷婷永久在线| 1024你懂的欧美曰韩| 婷婷丁香九月| 婷婷爱综合| 婷婷五月天国产性感美女演员久久久久| 色婷婷五月天天天干天天操天天爽 | 日本无va视频| 超碰免费观看| 天堂久久婷婷| 99在线观看这里都是精品| 蜜桃婷婷丁香综合久久开心亚洲| 97色色色色色| 五月激情视频| 五月婷婷丁香日韩在线| 天天干天天干天天干| 丁香色情五月综合激情| 五月激情综合网婷婷| 丁香五月天社区| 精品色情一区二区三区四区| 久久受www免费人成| 91丨九色丨丰满人妖| 精品婷婷五月天| 婷婷新网址| 六月丁香啪啪| 都市激情五月婷婷亚洲| 99re热在线视频| 婷婷色影音天| 天天久久狠狠色综合| 久久婷婷欧美| 丁香五月婷婷色情综合| 精品欧美性爱超级爽| 丁香五月人妻| 丁香婷五月| 九九热中文| 97碰碰九九视频| 色婷婷av在线观看| 99久久激情视频| 99色6爱9热| 欧美成人色婷婷| 色五月婷婷色| 97国产精品女人碰碰| 亚洲高清在线| 亚洲综合另类| 思思热国产在线| 开心婷婷五月激情网小说| 国产第99页| 成人无码精品1区2区3区免费看| enecarbon-materials.comWu染请涟系Bao护@wip1688 | 色婷五月丁香久亚洲| 色色五月天丁香| 九九热内射| 69精品人人人人| 激情另类综合| 无码区婷婷五月花开| Va另类视频| 99热乎| 日本啪啪网| 青青久久91| 99热热热99精品丁香| 婷婷丁香五月亚洲| 九九无码| 99精品小视频| 五月婷婷综合潮喷| 婷婷久久免费看| 丁香婷婷大香蕉| 成人免费在线电影| www.99热精品99.com| 婷婷五月色播天| 色婷婷五月天| 五月色综合| 成人片在线播放| 亚洲色五月| 日本成人噜噜噜| 久热这里只有精品视频免费观看| 这里只有精品99www| 激情综合网之激情五月| 99国产小视频2013| 九九热这里只有精品23| 丁香九月婷| www999日韩精品| 六月丁香婷婷综合狠狠爱夜夜爱| www狠狠com| 婷婷99丁香| 色婷婷综合丁香五月天| 我想看国产大学生口爆吞精的视频| 久久九九热38| 亚洲一区二区色图-亚洲精品国产精品乱码-成人AV | 色情综合网| 日本色色色| 五月丁香天堂网| 99在线精品免费视频| 热99这就是精品视频| 色五月天在线观看| 五月激情视频| 性做爰1一7伦| 色婷婷很很十八禁| 99在线免费视频播放| 91亚洲免费片| 丁香五月先锋| 久久综合中文| 婷婷欧美激情综合| 色亚洲婷婷| 天天日夜夜操五月| 可以观看的AV| 国产精品爽爽久久久久久| 欧美日韩成人高清在线| 99热在线观看| 婷婷五月天色色| 精品人妻午夜一区二区三区四区| 中文字幕无线久必| 91九九热| 五月天综合激情网| 久久这里这里有精品免费视频| 深爱女色婷婷丁香五月亚洲图区| 欧美激情五月天在线观看| 五月婷婷co.m| 国产色色色色| 久久免费操| 婷婷香蕉| 婷婷黄色网| 伊人玖玖精品| 欧美久草在线日本一级特黄大片做受9在线观看韩国电影《两个女人》未删减-毛片 | 成人αV视频免费观看| www.婷婷久久五月天| 亚洲秘 无码一区二区三区妃光/1| 99免费热视频在线| 五月婷婷色男女| 激情五月天色婷婷| 久久视频婷婷视频| 国产又爽又猛又粗的视频A片| 丁香五月天91| 99久久99九九99九九九| 五月天婷婷激情干干| 国产成人亚洲综合A∨婷婷| 丁香六月激情综合| 六月婷婷综合网2| 玖玖婷婷五月| 丁香婷婷九月在线| 久久婷婷草| 99热只有精品在线播放| 天天爽天天摸| 色婷视频| 99操网站| 五月婷婷色播视频| 第四色首页| 丁香六月婷婷久久综合| 精品自拍99| 亚洲色涩视频| 五月天色丁香| 成人无码髙潮喷水A片| 亚洲AVwwwwwww| 国产精品在线视频| 五月激情婷婷播播开心| 人妻丰满精品一区二区A片| AV在线收看| 色五月天综合| 性欧美日本| 伊人激情综合| 99小精品| 人人操AV| 久久五月天丁香花| 2025中文在线视频字幕免费观看| 婷婷色片| av首页在线| 激情综合网婷婷久久| 天天搞天天色综合| 超碰永久在线| 丁香五月亚洲无码| 夜夜爱网站| 琪琪色热色色| 久久婷婷激情视频| 色婷婷成人做爰A片免费看网站| 精品在线网站| 四色五月婷婷| 五月精品99综合| 99极品视频| 91日韩在线| 玖玖婷婷色| 婷婷五月噜噜| 免费视频WWW在线观看网站| 丁香六月啪| 久久激情天堂| 色色色色色色色色色色色色色五月天| 色婷婷伦理| 激情av| 国产亚洲色婷婷久久99精品91| 日本精品99网站| 丁香婷婷激情五月天无毒不卡蜜桃| 玩熟女五十AV一二三区| 色宗合,宗合网| 久热这里只有| 综合另类视频| 激情久久久久久久久久久| 日韩啪图| 成人丁香五月| 丁香狠狠操| 九九九九这里只有精品| 丁香狠狠色婷婷久久无码视频| 青娱乐美女福利视频美臀| 激情婷婷丁香| 久久aaa| 99热在线观看| 青草久久五月婷伊人| 五月花婷婷| 免费精品66| 精品一二三区久久AAA片| 精品人妻伦| 欧美成人精品A片免费一区99 | www.五月激情红色| 1995年关宝慧版蜘蛛女| 精品亚洲国产成AV人片传媒| 六月丁香五月婷婷首页| 五月丁香婷婷色| 色在线五月天免费| 操人妻AV| 亚洲aV写真天天综合网久久| 丁香八月综合激情| 夜夜骑天天操| 99资源在线视频| 亚洲啪视频| 异能之下短剧免费观看全集| 可以免费观看的AV| 狠狠五月天婷婷| 5月丁香美女影院| 毛片色五月| 丁香六月婷婷开心婷婷网| 亚洲精品视频电影| 色综合99| 少妇2做爰HD韩国电影| 午夜精品777| 国产超碰av| 在线天堂9| site:901-07.com| 亚洲精品久久久久久久久久飞鱼 | 五月婷婷爽爽爽| 九九在线这里只有精品视频 | 激情五月深爱五月观看| 亚洲无AV在线中文字幕| 99小视频网站| 熟女网站久久| 91九色网| se99视频| 丁香五月婷婷黑人妻黄色电影院| 九九香蕉网| 久久成人天| 任我鲁这里有精品视频| 中文字幕在线日亚州9| 五月之婷婷| 亚洲天堂大香蕉| 亚洲综合五月天婷婷丁香| 美女美女美女三级色天天天天天| 婷婷 伊人 久久| 日本久久精品| 婷婷亚洲欧美丁香五月| 国产亚洲在线观看| 婷婷中合| 色五月成人| 最新亚洲色色网| 综合性爱网| 国产又黄又爽又色的免费| 亚洲色99| 青青草a在线| 三级99热| 伊人综合网站| 婷婷久久精品| 激情都市五月天| 久久色天堂| 中文字幕在线视频播放| 日韩中文欧美| 天天日天天爱天天噪| 99re最新地址视频| 91九色在线观看免费| 亚洲综合另类| 丁香婷婷情色五月天| 5月婷婷6月丁香aV| 久婷婷婷| 日韩aⅴ视频| 99热超碰在线| 激情图片婷婷| 九九精品视频在线6| 五月天天天综合| 五月丁香好婷婷A片网| 婷色成人| 婷婷五月天综合网| 国产伊人大香蕉| 中字幕视频在线永久在线观看免费 | 丁香五月婷婷在线观看| 99re久热只有精品6在线直播| 久久婷婷五月丁香网| 亚洲成人网站在线观看| 激情小说五月天| 99色在线观看| 丁香五月AV综合| 久久精品婷婷五月丁香| 色综合99色| 国产成人精品一区二区三区视频| AV在线观看网站| 五月天综合图片| 激情小说五月天中文字幕| 日韩无码专区| 九九色播五月丁香| 五月色情婷婷| 成人做爰黄A片免费看直播室男男| 99re思思久久| 婷婷五月色惰| 久久免片| 婷婷五月天日本无码| 丁香开心深爱| 婷婷丁香五月天色播网站| 人伦30P| yazhochengrenavwang| 亚洲一二三网| www.丁香六月婷婷久久天堂影院.con| 五月香婷婷| 播播网色播播| 婷婷激情综合| 色婷婷丁香| 97色婷| AV中文在线| www.99在线| 日韩操人| 久久色情| www.99热| CHINESE熟女老女人HD视频| 久久婷婷伊人| 欧美日韩99| 色播五月丁香| 免费视频无码| 福利视频在线播放| 大地9中文在线观看免费高清| 久久久中文| 国产这里只有精品| 99ER热精品视频| 国产av一区二区三区| 日韩无码AV电影网站| 香蕉影院色| 97超碰99热99| www.99热这里精品| 人人干女人| 91网站黄| 综合网色| 第2色五月婷| 中文字幕日韩无码制服诱或| 国产熟女日日骚五月丁香爱| 婷婷射图五月天| 激情五月丁香六月综合AVXXXX| 天天插,天天射| 99久久玖玖| 26uuu亚洲| 2018国产大陆天天弄| 成人国产网站在线免费看| 好叼操在线观看| 激情五月婷婷她| 五月丁香亭亭操逼| 99操免费视频| 精品久久99码| 青青草视频免费观看| 日韩三十六页| 91日视频| 五月婷婷新网站| 五月丁香欧美综合免费视频| 五月天色丁香| 国产在线中文字幕| 国产精品人成A片一区二区| 婷婷五月丁香四射| 999精品乱码77777| 青青草a在线| 天天干狠狠艹| 亲子乱AV一区二区三区下载| 任你草| 天堂va久久久噜噜噜久久Va| 六月婷久久| 婷婷六月网| 激情六月色| 五月天激情小说网| 99久99久| 五月婷婷激情综合| 婷婷综合在线观看视频| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 激情五月天无人视频在线| 九九婷婷综合| 中文成人在线| 一区二区免费看| 五月色情婷婷开心五月色情| 激情婷婷五月社区| 直接看的av| 丁香五月 无码| 欧美久草在线日本一级特黄大片做受9在线观看韩国电影《两个女人》未删减-毛片 | 极品少妇高潮啪啪AV无码| 91亚洲视频| 九九这里只有精品在线视频| 伊人AV五月婷| 丁香五月婷婷影院| 色99欧洲色19| 激情六月下句是什么| 婷婷五月激情图片| 国产欧美日韩综合精品一区二区| av无码电影| 亚洲人妻一区二区 | 日本人妻伦在线中文字幕 | 丁香五月激情综合| 九月婷婷激情| 亚洲99在线视频| 五月天婷婷色色| 亚洲在线播放| 激情婷婷丁香五月| 久久九九爽| 日本一级大片| 26UUU在线观看| 大香蕉手机视频| 亚洲av午夜精品一区二区| 婷婷亚洲丁香五月| 色婷视频| 操日本三片99| 国语精品探花| 国产精品18久久久| 91久操| 欧美日韩成人在线网| 人人操人人妻| 激情综合五月色在线| 美日韩成人| 欧美色图天堂网色| 深爱五月网| 欧美日本韩国亚洲| 人人色婷婷五月天| 粉嫩av懂色av蜜臀av熟妇| 色很久综合| 这里只有精彩亚洲视频推荐| 欧美搡BBBBB摔BBBBB| 久久婷婷五月| 亚韩在线视频| 九九性爱网| 色婷婷六月丁香综合欲精品| va中文资源在线观看| 五月天另类小说| 婷婷五月综合久久中文字幕| 久久婷婷视频| 日韩三级视频一区二区| 婷婷亚洲在线| 亚州在线中文字幕| 日在线V视频在线播放| 中文字幕永久在线| 丁香六月婷婷综合激情欧美 | 婷婷五月天无码| 久色大香蕉| 激情五月天激情综合网| 丁香五月婷婷激情四射深爱激情| 日日干夜夜撸夜夜骑| 国外亚洲成AV人片在线观看| 婷婷丁香77777| 伊人五月天| 国产夫妻操逼内射视频| 开心五月天激情网| 五月天伊人av| 91狠狠综合久久久久久| 九热在线这里有精品6| www.婷婷| 狠狠干2007| 欧美五月停| 66精品成人免费网站在线观看| 婷婷五月天丁香综合网| 久久九九热视频| 九久久精品视频99|