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

ARTICLE DETAIL

資訊詳情

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

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

C#聯(lián)合Halcon多相機(jī)OCR實(shí)時(shí)采集:上位機(jī)方案與踩坑指南 簡介需要快速搭建多相機(jī)OCR實(shí)時(shí)采集上位機(jī)的C#與Halcon開發(fā)者可直接使用這份完整工程代碼。解決方案圍繞四相機(jī)同步采集與OCR識(shí)別展開包含圖像獲取、窗口顯示及ROI區(qū)域生成等核心操作代碼中可見GetImageSize、SetPart、DispObj、GenRectangle1等Halcon算子調(diào)用便于理解聯(lián)合編程流程。壓縮包共100個(gè)文件約2.54MB主要包含C#工程源碼34個(gè).cs、編譯運(yùn)行所需的動(dòng)態(tài)庫14個(gè).dll、項(xiàng)目配置與資源文件resx、resources、config、xml等同時(shí)附有調(diào)試符號(hào)文件pdb和數(shù)據(jù)庫腳本sql工程結(jié)構(gòu)采用Models、DAL、TDDSE等多層劃分適合直接打開、修改與二次開發(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ī)方案解決什么問題一條產(chǎn)線上四個(gè)相機(jī)拍同一個(gè)工件的四個(gè)面或者拍四個(gè)工位每一幀都要把銘牌、序列號(hào)、批號(hào)這些字符實(shí)時(shí)讀出來交給上位機(jī)判定和存檔。這是 C# 聯(lián)合 Halcon 做多相機(jī) OCR 實(shí)時(shí)采集最典型的場景Halcon 負(fù)責(zé)取流、預(yù)處理和 OCR 識(shí)別C# 負(fù)責(zé)界面、線程調(diào)度、結(jié)果對(duì)齊和落庫兩邊各干各擅長的部分。標(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ò)上。這套方案適合兩類人剛接手機(jī)器視覺上位機(jī)開發(fā)的 C# 工程師需要快速理解 Halcon 在 C# 里的調(diào)用模型和 4 路相機(jī)并行的基本框架以及已經(jīng)用 Halcon 做單相機(jī)檢測、準(zhǔn)備擴(kuò)展到多相機(jī)的視覺工程師想看看別人把線程、隊(duì)列、OCR 結(jié)果對(duì)齊做成什么樣。下面按「選型 → 最小代碼 → 并行框架 → 踩坑 → 調(diào)優(yōu)」往下講每段都可以照抄。2. 選型先于編碼Halcon 調(diào)用方式、4 路相機(jī)連接與 OCR 模型怎么定2.1 C# 調(diào)用 Halcon 的三種姿勢HDevEngine、導(dǎo)出代碼與 HALCON.NETC# 和 Halcon 協(xié)作常見做法有三種選錯(cuò)后面全在返工。第一種HDevEngine 方式。Halcon 腳本存成 .hdev 或 .hdvpC# 里用 HDevEngine 執(zhí)行。好處是算法改動(dòng)不用重新編譯 C# 工程視覺工程師改完腳本你直接生效壞處是變量來回傳遞麻煩每個(gè)圖像變量和設(shè)備句柄都要通過 SetInputIconicObject 塞進(jìn)去多相機(jī)場景里這種反復(fù)拷貝很浪費(fèi)而且調(diào)試時(shí)錯(cuò)誤棧隔了一層定位慢。我不建議在 4 路實(shí)時(shí)采集上用這種方式。第二種導(dǎo)出代碼方式。在 Halcon 的 HDevelop 里把寫好的腳本通過 File - Export 導(dǎo)出成 C# 文件得到一個(gè) HDevelopExport 類里面每個(gè)腳本步驟對(duì)應(yīng)一個(gè)方法。這是工業(yè)上位機(jī)里最常見的形態(tài)標(biāo)題里那個(gè)壓縮包大概率就是這種結(jié)構(gòu)。好處是算法邏輯所見即所得導(dǎo)出方法可以單獨(dú)調(diào)用壞處是代碼里有大量中間變量和 DispObj 調(diào)用需要手動(dòng)刪改不然 UI 線程會(huì)被 Halcon 窗口刷新拖死。第三種直接用 HALCON.NET 的 HOperatorSet 寫 C# 代碼完全不經(jīng)過腳本。適合我們這種對(duì)算子熟的工程師代碼最直接對(duì)象生命周期自己掌控多線程下最好排查問題。我自己的項(xiàng)目基本都是這種方式后面所有代碼也按這個(gè)風(fēng)格寫。無論選哪種都要引用 HalconDotNet.dll并且工程平臺(tái)目標(biāo)x64/x86和安裝的 Halcon 版本位數(shù)必須一致。32 位 Halcon 配 AnyCPU 編譯出來的程序經(jīng)常在開發(fā)機(jī)上好好的部署到現(xiàn)場就報(bào) BadImageFormatException 或者 Halcon 類型轉(zhuǎn)換錯(cuò)誤這類問題排查起來比寫代碼還耗時(shí)間。2.2 四路相機(jī)的連接規(guī)劃GigE 帶寬、巨型幀與觸發(fā)方式4 路相機(jī)接什么接口決定了你后面所有代碼怎么寫。工業(yè)現(xiàn)場最普遍的是 GigE Vision走網(wǎng)口線可以拉到 100 米而且 Halcon 的 GigEVision 接口最成熟。但千兆網(wǎng)的帶寬賬要先算清楚一臺(tái) 900 萬像素相機(jī)Bayer 8bit 單幀約 9MB跑到 30fps 就需要 270MB/s千兆網(wǎng)實(shí)際有效載荷只有 110MB/s 左右一臺(tái)相機(jī)就把一條網(wǎng)線吃滿了。所以 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)依賴 Jumbo Frame網(wǎng)卡、交換機(jī)、相機(jī)三方都得開 9000 字節(jié)缺一樣就會(huì)丟幀、抓圖超時(shí)表現(xiàn)是4 個(gè)相機(jī)只能打開 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í)曝光簡單但抖動(dòng)有幾十毫秒硬觸發(fā)PLC 給每臺(tái)相機(jī)的 Line0 接口同時(shí)發(fā)脈沖多臺(tái)相機(jī)曝光時(shí)刻嚴(yán)格同步。產(chǎ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 模型分兩類。傳統(tǒng) MLP 分類器ReadOcrClassMlp 加載工業(yè)場景最常用的是 Industrial_0-9A-Z_NoRej字符集覆蓋數(shù)字和大寫字母NoRej 表示不拒絕非字符區(qū)域適合噴碼、鋼印、激光打標(biāo)這種字符密度高的場景。新版 Halcon 還有 CNN 模型 ReadOcrClassCnnUniversal_0-9A-Z_NoRej 這類對(duì)復(fù)雜背景、字符變形、打印不清晰的魯棒性明顯更好代價(jià)是每幀推理多幾毫秒。四相機(jī)并行的場景里每幀多 3 毫秒會(huì)被放大成整體吞吐下降所以我一般這么選字符是標(biāo)準(zhǔn)印刷體、背景干凈、光源固定MLP 就夠字符有殘缺、背景有紋理、產(chǎn)品表面反光嚴(yán)重直接上 CNN 省得后面天天為識(shí)別率加班。Halcon 也提供基于深度學(xué)習(xí)的 OCR 方案需要自己采集樣本訓(xùn)練產(chǎn)線項(xiàng)目里除非上述兩種都試過且不達(dá)標(biāo)否則不建議一上來就上訓(xùn)練數(shù)據(jù)的量級(jí)和標(biāo)注成本遠(yuǎn)超你想象。字符集的選擇很多人會(huì)犯一個(gè)錯(cuò)以為越大越好。實(shí)際恰恰相反你只讀數(shù)字就選純數(shù)字庫混進(jìn)字母后 O 和 0、I 和 1、Z 和 2 這些相似字符會(huì)把置信度拉下來誤判率翻倍。先把現(xiàn)場字符范圍摸清楚再定庫這是 OCR 項(xiàng)目的第一步也是絕大多數(shù)識(shí)別率問題的根源。3. 最小可運(yùn)行代碼C# 打開 4 個(gè)相機(jī)并實(shí)時(shí)抓圖的完整流程3.1 枚舉相機(jī)與 OpenFramegrabber 參數(shù)逐個(gè)拆解先寫最小的打開邏輯。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 里返回的就是類似 CAMERA1、CAMERA2 這樣的設(shè)備名Halcon 按相機(jī) MAC 或序列號(hào)生成不是按插線順序。重插網(wǎng)線或者換相機(jī)后名字會(huì)變所以設(shè)備名到工位號(hào)的映射要寫進(jìn)配置文件不要寫死在代碼里。拿到設(shè)備名后逐個(gè)打開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, // 采集接口類型 0, 0, // 水平/垂直分辨率0 表示用相機(jī)默認(rèn) 0, 0, // 圖像寬度/高度0 表示默認(rèn) 0, 0, // 水平/垂直偏移 default, // 輸入格式像素格式 -1, // 外部觸發(fā)模式-1 不限制 default, // 相機(jī)像素格式 -1, // 線掃描寬度面陣相機(jī)傳 -1 false, // 是否使用相機(jī)自帶連接 DeviceName, // 設(shè)備名從 InfoFramegrabber 枚舉來 port, // 端口類型 0, // 端口號(hào) out _acqHandle); return _acqHandle ! null; } }這段代碼最容易抄錯(cuò)的就是前面那一串 0 和 default 的順序。OpenFramegrabber 是 Halcon 里參數(shù)最多的算子之一每個(gè)參數(shù)位置都對(duì)應(yīng)一個(gè)硬件特性你把寬度和高度寫反了不會(huì)報(bào)錯(cuò)出來的圖就是裁剪的。打開后先 GrabImage 試讀一幀能拿到圖再繼續(xù)往下寫別一口氣把 4 臺(tái)全開了再調(diào)。3.2 GrabImageAsync 異步抓圖與圖像隊(duì)列界面卡頓的解藥同步 GrabImage 在取流時(shí)會(huì)阻塞當(dāng)前線程4 臺(tái)相機(jī)如果一個(gè)線程輪流同步抓整體幀率被最慢的那臺(tái)拖死。常見做法是每臺(tái)相機(jī)一個(gè)采集線程循環(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 表示無限等待200~500 更適合斷線檢測 HOperatorSet.GrabImageAsync(out image, _acqHandle, -1); _queue.Enqueue(image); // 隊(duì)列超過 5 幀說明消費(fè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ī)斷線時(shí) GrabImageAsync 會(huì)一直阻塞線程就掛死了所以我實(shí)際項(xiàng)目中會(huì)設(shè) 200 到 500 毫秒超時(shí)后做一次相機(jī)連接檢查再?zèng)Q定重新打開還是報(bào)警。隊(duì)列上限是背壓策略識(shí)別線程跟不上時(shí)寧可丟幀也不能讓內(nèi)存無限漲——HObject 是非托管資源一個(gè) 900 萬像素的 HObject 就是 9MB積壓 200 幀就是 1.8GB內(nèi)存爆掉只是時(shí)間問題。這里要特別強(qiáng)調(diào) HObject 必須手動(dòng) Dispose。C# 的 GC 管不到非托管內(nèi)存你光等 Finalize 讓 Halcon 自己回收吞吐一大內(nèi)存還是只增不減。隊(duì)列里每個(gè)對(duì)象要么被消費(fè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í)別線程里反復(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)場圖像灰度直方圖定后面第 6 章展開。這里最典型的錯(cuò)誤是每幀都調(diào)用 ReadOcrClassMlp模型文件加載一次要幾十毫秒4 臺(tái)相機(jī)一疊加幀率直接腰斬所以必須初始化時(shí)加載好所有線程共享同一個(gè)句柄。另外注意 DoOcrMulti 只接受單通道圖像相機(jī)出的是彩色圖先轉(zhuǎn)灰度ConvertImageType 或 ReductionDomain 都行直接喂彩色圖大概率報(bào)錯(cuò)。區(qū)域分割這里只用了最簡單的 Threshold 加 SelectShape真實(shí)場景還要考慮光照變化這塊放到第 6 章一起說。4. 四相機(jī)并行與結(jié)果匯總線程模型、時(shí)間戳對(duì)齊與 SQLite 落庫4.1 每相機(jī)一線程的三層架構(gòu)采集線程、識(shí)別線程、UI 線程4 路相機(jī)并行最穩(wěn)的結(jié)構(gòu)是每臺(tái)相機(jī)兩個(gè)后臺(tái)線程采集線程 識(shí)別線程加上一個(gè) UI 線程三層之間用 ConcurrentQueue 解耦。采集線程只負(fù)責(zé) GrabImageAsync 入隊(duì)識(shí)別線程從隊(duì)列取圖做 OCRUI 線程通過事件或者定時(shí)器批量刷新界面。任何 Halcon 算子都不允許在 UI 線程里跑這是鐵律。為什么采集和識(shí)別要拆兩個(gè)線程因?yàn)?OCR 算子再快也要幾毫秒如果同一個(gè)線程先抓圖再識(shí)別抓圖間隔就變成曝光、傳輸、識(shí)別三者的總和幀率上不去。拆開后采集線程永遠(yuǎn)在等下一幀識(shí)別線程只處理最新幀互不阻塞。識(shí)別線程里取隊(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、寫數(shù)據(jù)庫。識(shí)別線程一被阻塞隊(duì)列就漲上來丟幀率跟著上升。我一般讓事件處理器只做一件事把結(jié)果放進(jìn)另一個(gè) ConcurrentQueueUI 用一個(gè) 100ms 的 Timer 批量拉取刷新寫庫交給獨(dú)立線程。這樣界面再卡也不會(huì)拖垮識(shí)別。4.2 多相機(jī)結(jié)果對(duì)齊同一個(gè)工件四相機(jī)拼讀的三種策略如果 4 個(gè)相機(jī)拍的是同一個(gè)工件的不同面最終要把 4 路結(jié)果拼成一個(gè)完整記錄再判定。這里最坑的是同一幀的認(rèn)定光靠時(shí)間戳對(duì)齊是最省事但也最容易出錯(cuò)的做法。第一種時(shí)間戳對(duì)齊適合軟觸發(fā)場景。上位機(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)場最靠譜的方案。每個(gè)工件過觸發(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í)間戳遇到漏拍就全線錯(cuò)位后面所有數(shù)據(jù)都對(duì)不上這是血淚經(jīng)驗(yàn)。第三種圖像特征對(duì)齊用工件上本來存在的二維碼或關(guān)鍵字符做關(guān)聯(lián)。每個(gè)工位識(shí)別出同一枚唯一碼后按碼歸組適合產(chǎn)品自帶碼的場景但前提是每個(gè)拍攝面都能讀到同一個(gè)碼很多工位布局滿足不了。我現(xiàn)在的習(xí)慣是現(xiàn)場有 PLC 就一定接流水號(hào)沒有 PLC 才退而求其次用時(shí)間戳并且把時(shí)間戳容差設(shè)到 100ms 以上寧可多等一幀也別錯(cuò)配。4.3 結(jié)果落庫與異常重拍SQLite 記錄、超時(shí)與 NG 處理OCR 結(jié)果、原圖路徑、時(shí)間戳、工位號(hào)都要落庫。工業(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 寫庫有鎖4 個(gè)識(shí)別線程同時(shí)寫同一張表很快報(bào) database is locked。解決方式兩種一是給寫庫加全局鎖簡單但吞吐受限二是單寫線程 ConcurrentQueue 批量落庫寫庫線程每 200ms 把隊(duì)列里的結(jié)果攢成一個(gè)事務(wù)批量插入一次事務(wù)插幾十條效率高也不會(huì)鎖。超時(shí)重拍的邏輯要單獨(dú)設(shè)計(jì)。置信度低于閾值比如 0.8或者干脆沒讀到字符時(shí)先判斷是不是曝光、焦距問題重拍最多兩次重拍還 NG 就把原圖歸檔、標(biāo)記人工復(fù)判。不要無限制重拍產(chǎn)線節(jié)拍會(huì)被你堵死NG 圖保留下來反而是后面訓(xùn)練和調(diào)優(yōu)最值錢的資產(chǎn)。5. C# 聯(lián)合 Halcon 的 5 個(gè)高頻翻車現(xiàn)場現(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é)器或者你在別的線程 Dispose 了正在使用的對(duì)象。最常見的場景一個(gè) HObject 進(jìn)了隊(duì)列兩個(gè)線程都持有引用消費(fèi)線程用完 Dispose采集線程還在往窗口畫這一幀一崩一個(gè)準(zhǔn)。解決跨線程傳遞的 HObject 所有權(quán)必須明確誰最后使用誰釋放。生產(chǎn)線程只負(fù)責(zé)入隊(duì)消費(fèi)線程負(fù)責(zé) Dispose中間不允許第三方觸碰。調(diào)試期可以在項(xiàng)目屬性里打開 GC 并發(fā)回收的開關(guān)來復(fù)現(xiàn)但這種問題要靠規(guī)范根治每個(gè)線程的局部 HObject 用 using 塊包裹回調(diào)到 UI 的 HObject 一定先深拷貝或者只傳句柄。這個(gè)報(bào)錯(cuò)很玄學(xué)不是每次都崩取決于 GC 時(shí)機(jī)現(xiàn)場復(fù)現(xiàn)極其痛苦。我現(xiàn)在寫多相機(jī)代碼第一步永遠(yuǎn)是畫清楚每個(gè) HObject 的流向圖誰生產(chǎn)、誰消費(fèi)、誰釋放畫不清楚不寫代碼。5.2 License 報(bào)錯(cuò)腳本跑得好好的一加線程就報(bào)無授權(quán)現(xiàn)象單線程調(diào)試時(shí) Halcon 算子全部正常把 GrabImageAsync 或者 DoOcrMulti 放進(jìn)后臺(tái)線程后報(bào) H9991 無可用授權(quán)或者 license 無效。原因Halcon 授權(quán)機(jī)制綁定到調(diào)用上下文試用授權(quán)只允許單線程執(zhí)行多線程并行跑算子會(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)支持多線程試用授權(quán)跑單線程是它的設(shè)計(jì)邊界不是 bug第二確認(rèn) C# 工程平臺(tái)目標(biāo)和 Halcon 位數(shù)一致位數(shù)不匹配經(jīng)常誘發(fā)奇怪的授權(quán)和類型錯(cuò)誤第三license.dat 的路徑要保證所有線程都能讀到別放在用戶臨時(shí)目錄或者相對(duì)路徑部署到 Windows 服務(wù)里路徑一變就授權(quán)失敗。還有個(gè)常見的連帶坑license 文件到期時(shí)間是半夜第二天早上產(chǎn)線一開機(jī)就報(bào)錯(cuò)。生產(chǎn)項(xiàng)目一定要在代碼里做授權(quán)剩余天數(shù)檢查提前三天在界面上告警別讓操作員大早上對(duì)著紅屏找你。5.3 4 個(gè)相機(jī)只能打開 2 個(gè)GigE 帶寬與驅(qū)動(dòng)配置現(xiàn)象OpenFramegrabber 打開前兩個(gè)相機(jī)正常第三個(gè)或第四個(gè)報(bào)無法連接、超時(shí)或者都打開成功了抓圖一多就開始丟幀、卡頓。原因網(wǎng)卡、交換機(jī)、相機(jī)三者沒同時(shí)開 Jumbo Frame巨型幀4 路相機(jī)在千兆網(wǎng)上的小包傳輸把帶寬和 CPU 中斷都打滿了。900 像素相機(jī)單幀 9MB不開巨型幀一個(gè)幀被拆成幾百個(gè)小包CPU 中斷風(fēng)暴一來網(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)場還有一個(gè)容易忽略的點(diǎn)相機(jī) IP 與上位機(jī)不在同一網(wǎng)段Halcon 枚舉時(shí)看得到設(shè)備但 OpenFramegrabber 就是連不上先用廠商工具改 IP 再上代碼。5.4 OCR 準(zhǔn)確率早晚差異大曝光與 ROI 沒固化現(xiàn)象同一套代碼白天識(shí)別率 99%傍晚太陽斜照進(jìn)車間誤識(shí)別率直線上升8 認(rèn)成 3O 認(rèn)成 0。原因環(huán)境光變化導(dǎo)致圖像整體灰度偏移你閾值分割寫死了 128早上字符灰度 150傍晚掉到 100分割出來的區(qū)域不是缺筆畫就是多粘連。Halcon 的 OCR 對(duì)光照變化比人眼敏感得多。解決光源固定是第一優(yōu)先能加遮光罩就加遮光罩能用頻閃光源就用頻閃光源把環(huán)境光的影響壓到最低相機(jī)曝光和增益鎖成固定值絕對(duì)不要開自動(dòng)曝光自動(dòng)曝光會(huì)讓字符灰度反復(fù)橫跳閾值不要寫死用灰度直方圖定位峰谷或者用 MedianImage 降噪后配合 dyn_threshold 做動(dòng)態(tài)分割。ROI 也一定要按基準(zhǔn)圖像標(biāo)定好不要每幀全圖找字ROI 固定后還能順手把光源邊緣的偽區(qū)域?yàn)V掉。5.5 關(guān)程序就崩潰句柄銷毀順序現(xiàn)象點(diǎn)關(guān)閉按鈕界面退了進(jìn)程還賴在任務(wù)管理器里或者退到一半崩潰主窗口關(guān)了但報(bào) Halcon 窗口無效。原因UI 線程關(guān)閉時(shí)銷毀了 HWindowControl但采集、識(shí)別線程還在向窗口推送圖像或者調(diào)用 disp_obj。Halcon 的窗口句柄一旦銷毀任何往這個(gè)窗口畫的算子都直接崩潰。解決退出順序必須是「停線程 → 釋句柄 → 關(guān)窗口」protected override void OnFormClosing(FormClosingEventArgs e) { _running false; // 1. 通知所有線程退出 _grabThread?.Join(1000); // 2. 等采集線程退出帶超時(shí) _ocrThread?.Join(1000); // 3. 等識(shí)別線程退出 _acqHandle?.Dispose(); // 4. 釋放相機(jī)句柄 _window?.Dispose(); // 5. 最后釋放 Halcon 窗口 base.OnFormClosing(e); }順序反了就是玄學(xué)崩潰先 Dispose 了相機(jī)句柄采集線程還在等圖線程內(nèi)部訪問已釋放句柄Access Violation。Join 一定要帶超時(shí)參數(shù)不然線程卡死在 GrabImageAsync 里窗體永遠(yuǎn)關(guān)不掉。這個(gè)退出流程我現(xiàn)在每個(gè)項(xiàng)目第一個(gè)寫寫完再動(dòng)其他代碼。6. 把 OCR 準(zhǔn)確率從 90% 提到 99%預(yù)處理順序、自定義訓(xùn)練與回歸驗(yàn)證6.1 預(yù)處理三板斧OCR 識(shí)別之前必須過三關(guān)順序不能反。第一關(guān)灰度化彩色圖 ConvertImageType 轉(zhuǎn)灰度Halcon 的 OCR 算子只吃單通道第二關(guān)去噪增強(qiáng)字符印在紋理背景上時(shí)先做高斯差分DoG把低頻背景濾掉再分割效果立竿見影普通工況用 MedianImage 或 GaussFilter 就夠第三關(guān)形態(tài)學(xué)清理開運(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 自定義字符庫訓(xùn)練自帶庫實(shí)在扛不住時(shí)用 Halcon 的 OCR Training 工具自己訓(xùn)。流程是固定的抓一批現(xiàn)場圖像框出字符逐個(gè)標(biāo)注字符值生成 .trf 訓(xùn)練文件用 create_ocr_class_mlp 生成分類器最后 write_ocr_class_mlp 導(dǎo)出。C# 里不需要改一行代碼ReadOcrClassMlp 加載你導(dǎo)出的模型文件就行。訓(xùn)練集每類字符至少要 50 個(gè)樣本覆蓋不同光照、偏移、粗細(xì)、缺損程度。只標(biāo)幾張圖訓(xùn)出來的分類器實(shí)際就是記住了你那幾張圖換一幀就露餡。訓(xùn)完用驗(yàn)證集測準(zhǔn)確率達(dá)不到就回去補(bǔ)樣本這一步不能省。6.3 批量回歸驗(yàn)證改任何參數(shù)之前先建驗(yàn)證集。從現(xiàn)場歷史圖里挑 500 張好的壞的都要跑一個(gè)批處理腳本統(tǒng)計(jì)字符級(jí)準(zhǔn)確率和整串準(zhǔn)確率。整串準(zhǔn)確率才是產(chǎn)線真正關(guān)心的指標(biāo)因?yàn)榕卸ㄊ钦葘?duì)。某個(gè)字符識(shí)別率 99% 聽著不錯(cuò)但產(chǎn)品碼 12 位整串全對(duì)的概率是 0.99 的 12 次方87%這數(shù)據(jù)上不了線。我平時(shí)用一個(gè)簡單的控制臺(tái)命令做回歸輸入圖片目錄和期望識(shí)別結(jié)果輸出每張圖的識(shí)別文本和置信度跑完自動(dòng)和期望值對(duì)比打印整串通過率。每次改曝光、改預(yù)處理、換模型都把同一批圖跑一遍通過率不能比上一次低。這是我在現(xiàn)場唯一認(rèn)可的驗(yàn)收標(biāo)準(zhǔn)做不到 99% 整串通過率別急著交產(chǎn)線。這套多相機(jī) OCR 上位機(jī)的框架說到底就是「線程隔離 資源管理 數(shù)據(jù)對(duì)齊」三件事。我現(xiàn)在的習(xí)慣是接到項(xiàng)目先寫退出流程和對(duì)象流向圖再談識(shí)別率優(yōu)化。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
边做饭边操逼逼| 操逼日韩无码 | 1769一区| 9 7超碰在线免费观看| 人人么人人操| 超碰视97中文| 9久精品视频在线观看| 又粗又长又大国产不卡| 99后入| 久久精品欧美一区二区三区不卡| 男女性无套 免费九一| 日本一天色道久久久精品视频| 蜜乳AV色欲AVAV无码| 亚洲成a人v欧美综合天堂下载| 性生活久久久久久久久久| 色色五月丁香| 日韩一性一交一A片俄罗斯| 天天综合97| 欧美亚洲成人在线一区二区三区| 高清无码 国产精品| 亚洲在线| 91亚洲电影| 国产又长又大又粗的视频| 九九热AV| 久久久久亚洲Aⅴ无码| 一级毛片电影免费看| 久久久无码精品人妻二区| 色蜜AV| 久久久无码av精| 亚洲精品成人动漫在线| 超碰无码加勒比| 亚洲黑人在线| 超碰人妻久久| 精品久久97| 中文字幕av色| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 国产成人精品必看 | 99综合免费视频| 国产精品成人福利在线| 韩日色费| 超碰色97| 一区二区三区四区理论片| 亚洲日韩资源| 亚洲同性aV综合| 骚货 中文字幕 av| 爽爽歪在线视频| 亚洲成?V人片在线观看福利| 风流老熟女一区二区三区l| 91丝袜在线播放| 日韩国语字幕| 超碰成人国产| 狠狠综合网| 97人人干| WWW黄片COM| 美國A片| 日韩色| 亚洲精美粉嫩嫩泬在线观看| 在线欧美69V免费观看视频| 波多野42部无码喷潮在线观看| 亚欧免费观看视频| 久久欲| 男人女人18禁片免费看网站| 免费精品中文字幕| 最新日韩黄片| 色99视频| 麻豆婷婷成人一二三| xxx亚洲午夜天堂| 97色色色综合网站| 午夜精品久久久久久久| 亚洲丝袜少妇在线| 九九精品无码专区免费| 亚洲啪啪视频一区二区| 亚洲人妻av| 欧美日韩国产中文精品字幕自在自线,| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 色爱亚洲| 嗯嗯不要视频| 在线综合 亚洲 欧美中文字幕| 久草这里只有精品| 国产精品极品美女视频| 日韩免费人妻色情网站| 欧美日韩电影一区二区| 超碰97久久国| 超碰97人人乐| 日韩福利综合一区| 99热综合| 91美女视频在线| 欧洲一区二区三区四区在线观看| 外站AV在线| 亚欧Av| 免费簧片在线观看| 99丝袜福利在线播放| 亚洲欧美另类少妇精品| 久区视频| 91精品国产麻豆国产自产在| 日本精品人妻少妇一区二区| 午夜久久久| 97干在线| 搡老女人老91妇女老熟女| 丁香九月婷婷| 日日插夜夜| 五月综合激情| 夜夜夜夜久久久久| 蜜臀无码视频在线观看| 婷婷五月天av| 亚洲欧美高清| 精品精品精品| 欧美日韩不卡传媒| 婷婷视频在线免费观看| 色久桃花影院在线观看| 熟妇人妻一区二区| 97在线观看免费| 欧美亚洲综合高清在线| 国产成人bd在线观看| 色五月婷婷麻豆在| 国产精品一区二区后入| 男女猛烈无遮掩视频免费软件| 韩国一级做A片免费的| 欧美亚涩| 激情综合网亚洲| 午夜高清成人在线视频| 日本性一区| 伊人九九九| 国产综合永久精品日韩鬼片| oumeizonghese,www| 亚洲影视高清第一页| 97亚洲精品超碰| 99天堂网| 伊人超碰97| 国产91乱伦| 大香蕉宅男伊人| 国产日韩中文字幕欧美| 国产精品自在自拍视频| 久久视频,这里只有精品| 91精品国产91久久青草| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 日韩簧片免费看| 91色女| 亚洲天堂欧美| 色噜噜综合在线| 午夜福利合集| 99这里只有精品| 欧美久久婷| 中文字幕亚洲永久精品| 中出20p| 五月天激情小说| 中文字幕av丝袜| 国产成人在线观看网址| 久久国产精品91| 精品夜夜澡人妻无码AV| 激情四射婷婷四五月天| 在线播放欧洲免费av| 白天啪啪晚上啪啪视频| 亚洲做性| 亚洲欧美国产其他二区| 日韩欧美日韩| 日韩精品操少妇| 秋霞曰韩R级| 九九九九一级| 日韩三级久久久| 伊人五月天婷婷| 诱惑人妻欧美一区在线播放| 色色色天美视频| 久久蜜桃一区二区| 99亚洲人人| 亚洲精品无码久久AV| 91精品免费| 久久人妻精品| 成人激情无码在线视频| 五月天婷婷社区| 久久久久日本视| 日韩精品一区二区日韩| 日韩精品一区二区人人人| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 亚洲欧美日产国产91毛片| 国产人伦a片信息免费片| 中国91AV| 国产福利夜| 欧美黄片欧美黄片xxx| 欧美亚洲韩国视频十五区| 日本操BAV| 天堂av最新电影网| 久久国模av| 啪啪综合网| 国产一级137片内射麻豆| 成功精品影院| 国产欧美日韩一区二区三区| 操淫穴亚洲五月丁香 | 大香蕉日韩| 曰本熟女视频| 午夜精品久久久久久久久久蜜桃| 在线免费观看高清无码视频| 亚洲色图片区| 91久久午夜无码鲁丝片久久人妻| 久久婷婷六月综合| 蜜桃av综合网发布| 午夜福利无毒不卡| 青青草福利视频| 加勒比久久av| 91原创在线观看| 日韩97精| 无码久| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 91精品久久久久久77777| 九九九精品成人免费视频小说| 国精综合一二三区影视| 操人91| 亚洲天堂人妻熟妇视频| 五月亭亭六月丁香| 极品肉射| 国产精品伦理| 亚洲熟女一区| 欧美青青视频| 91啪9色| 婷色五月天| 一类av片在线看| 九九视频黄色片| 成人免费性爱视视| 97色色色| 啪啪啪男女亚洲中文字幕99| 欧美色图亚洲色,麻豆| 尤物视频新赏网鲜网色诱网| 婷婷性网| 色噜噜人妻av中文字幕| 91精品操美女| 日韩欧美传媒一区国产| 久久97精品久久久久久久不卡| 天天碰久久入| 国产精品一区二区校花| 国产偷人妻精品一区二区在线| 精品人妻二区三区| 狠插 制服 自拍| 99热这里| 白丝1区2区3区| 77777亚洲蜜臀精品久久综合蜜臀| 中文无码一二三区| 日本三级中国三级99人妇网站| 欧美日韩日产免费网站看| 国产精品探花色| 国产精品无码久久久久2028| 色香色欲天天综合网天天来吧| 亚洲二区精品在线观看| 婷婷伊人网| 日韩乱伦视频| 午夜男人一级A片7777| 女人被男人桶爽视频网站| 玖玖爱在线视频免费观看| 久久久久久电影| 人人潮人人摸| 色爽爽文学| 欧美高潮在线| 91岛国动作片| 久久伊人最新网址视频| 欧美精品99久久久**| 亚洲综合精品国产一区| 精品人妻一区二区三区-国产精品 一个人在线看的黄色电影网站 | 日本2020一区二区| 亚洲精品国产无码高清| 一级日本牲交大片好爽在线看| 搡老女人老妇女AAA一VU麻豆| 4虎在线观看| 91无遮挡| 国产一级不卡在线观看| 婷婷五月天在线观看| 98一区二区精品| 91九九九逼| 久久中文字幕一区不卡| 欧美操人视频| 大屁股人妻女教师撅着屁股| 激情接吻视频久久久久久| 99啪| 人妻超碰青青草98| 久久天堂网| 啪啪视频免费在线观看| 免費黃色視頻觀看一| 国产精品一区午夜福利| 亚洲中文字幕噜噜噜久久久| 9999亚洲精品| 懂色中文一区二区三区| 男人兔费天堂| 精品国产99| 久久香蕉国产线看观看亚洲女人 | 精品传媒在线一区| 日韩欧美国产高清视频| 日韩欧美成人大香蕉| 日日嗷| 人人妻人人爽 97人人看碰人免费公开视频| 国产极品一区二区三区三州| 少妇一区二区三区在线观看| 青草精品视频日本久久久久网站在线| 香伊人在线| 伊人成人中文字幕久久网| 综合91网| 亚洲国产美女久久久久| 性色一线| 97国产超碰| 久久久久亚洲熟妇熟女| 裸模AV女优| 七月丁香婷婷| 久久久九97| 欧美综合网站999| 翔田千里AV无码秘 三区| www.婷婷五月天| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 九九RE视频在线精品| 18禁久极品美女久久哦哟呀!| 中文操逼字幕| 色综合潮| 天天插夜夜操| 91人人臊| 91亚洲影院综合| 青娱乐av在线| 久久78| 国产剧情AV不卡在线观看| 啊啊啊不要啊啊受不了了视频在线 | 亚洲欧美日韩综合在线尤物| 日韩人妻丝袜美腿中文| 国语av最新自产拍在线观看| 97亚洲中文| 久操热| 久久香蕉国产线看观看亚洲女人 | av天堂精品久久| 人人超碰在线观看黄| 国产欧美另类久久久精品课程| 日韩乱伦视频| 国产精品人妻免费精品| 天操老女人| 国产精品久久久久久无码红治院| 男人精品天堂一区| 婷婷视频在线免费观看| 97爱爱官网| 95人妻爽爽人人做人人澡| 色噜噜狠狠色综无码久久合欧美| 男人的天堂2018东京热啪啪啪| 国产强奸乱伦第1页| 日本天天操| 久操免费在线| 色月天AV导航| 黄片无码在线制服| 在线视频免费观看午夜| 欧美综合在线91| 日日操免费视频| 啊啊啊啊啊舒服| 色999五月色| 97操| 人妻色情天天操| 两性色网| 一级性爱视频免费观看| 欧美白嫩女HD| 久热9| 熟女激情综合网| 在线小说视频一区| 欧美日韩国产中文精品字幕自在自线, | 亚洲无码99| 黑人娇小av在线播放| 秋霞一区二区三区四区五区六区七区| 色99视频| 嫖老熟女A片一二三区| 9丨久久九九九| 亚洲国产青青| 国产欧美一区二区| 99热婷婷| 能在线播放的国产三级| 97在线免费看视频| 久久久国产护士丝袜美腿一| 亚洲情色电影网| 五月丁香黄色网| 91亚.色| 欧美色图私拍91| 99ri在线视频| 欧美国产精品| 台湾成人无码AV| 91精片| 成人区人妻精品一| 福利天堂| 亚欧性爱ab| 偷拍三区| 欧美在线永久天堂| 免费视频一二三区| 99999国产| 人妻人妻天天碰| 亚洲色图20p| www.色婷婷.com| 婷婷丁香五月激情啪啪| 国产99999| 98久久| 亚洲 欧美 日韩另类 麻豆| 亚洲国内精品成人不卡| 97精品97久久| 综合91网| 五月天亚洲网| 欧美激色| 日影院久久婷婷夜夜网| 欧美天堂日韩三级国产传媒| 国产精品制服丝袜中文字幕日韩一区二区三区| 日韩AV电影网站| 婷婷五月天av| 香蕉在线一区二区三区| 天天干,夜夜爽| 五月天伊人| 色九九九九久| 久久欧美按摩999| 老师充足的奶水小说| 艳美熟妇先锋一二三区| 综合网欧美在线| 男人的天堂网免费| 亚洲人成网www| 亚洲婷婷五月天| 国产精品久久久久久久黄无码| 金莲网址| 婷婷丁香五月综合| 打av高清| 大香蕉综合在线| 日韩精品作爱导航| 国产三级中文字幕粉嫩| 国产精品天堂| 在线观看不卡一区二区三区| 岛国黄色大片网站| 久久久久免费少妇| 色 婷97| 亚洲一二三| 欧美色图片欧美色图| 四虎精品亚洲| 青青操网| 熟妇操花| 殴美日韩m| 五月开心久久AV官网| 日韩欧美三级| 人人么人人操| 在线观看精品国产免费| 肥臀熟女福利视频一区二区| 无码男人天堂| 亚洲学生妹高清av| 第一高清av中文字幕| 亚洲综合小说另类图欧美视频激情小说色五月天| 久久女人一区二区三区| 天天色怡春院| 亚洲色图一区二区三区| 综合久久久久久久综合网| 色婷婷久久| 你草精品在线视频| 97伊人超碰| 一本色道综合久久欧美| 亚洲第一在线视频| 97露脸精品丝袜| 欧美啪啪啪91| 密乳无码| 91色黑人少妇| 色欲久久99精品久久| 日韩无码精品综合久久| 丁香激情五月| 精久久久| 韩日性爱av| 黄色网址久久精品欧美喷水| 亚洲另类春色| 久久精品国产亚洲AV高清演员表| 五月天综合| 四虎在线免费视频| 性爱视频啪啪啪啪| 天天天乱色综合全| 色图综合网| 丝袜美腿诱惑亚洲欧美视频在线观看 | 亚洲aw毛茸茸在线| 久久久久久久性爱| 久久久婷| 久久青青草在线视频| 亚洲精品影视老司机| 欧美乱妇狂野欧美在线视频| 亚洲A曰本VA欧美VA视频| 激情五月天网站| 啊啊啊男女| AA特级绝黄| 美女诱惑在线一区| 欧美偷拍区| 9+1视频网址| 亚洲中文字幕一区二区| 91人妻Pr| 99re28在线观看| 强奸乱伦动态污图免费| 超碰午夜| 国产三级日产三级韩国三级| 97在线青| a v网站在线播放| 国产精品视频在线播放| 99久久精品无码一区二区| 97国产色图| 在线欧美69V免费观看视频| 久操婷婷| 亚洲97综| 欧美激情欧美精品| 熟妇的味道HD中文字幕| 4141514逼喷水三级片| 国产精品分类在线观看| 人妻 欧美 中文| 亚洲高清国产理伦片| 亚洲日韩久久精品一区| 亚州操逼网| 夜夜嗨一区| 天天爽天天干| 国产9 9在线 | 亚洲| 免费人人搞97| 91人妻素女| 9九九国产| 96精品在线| 无码高清操逼网址| 任你干在线视频| 天天日天天舔天天喷天天射| 精品国产乱码久久| 久久鲁夜| 亚洲成人在线播放| 性无码专区2020| 三级网站超变态精品| 大屁股人妻女教师撅着屁股| 肉丝中文无码高清| 欧美日不卡| 翔田千里爆乳巨臀无码| 在线小视频| 任你艹| 亚洲男人综合| 99re6国产精品99re| 伊人AAA| 久久黄片国产一区二区| com 首页 18岁 禁区 女优 免费 精选 同城| 九九色图| 做爱A级亚欧| 超碰色图| a片亚洲一本通视频| 91人妻人人妻| 美女国产一区二区久久| 好爽免费视频| 久久久天美| 日本天堂网| 亚洲成人日韩小说| 欧美色91| 伊人9| 美腿丝袜偷拍亚洲欧美| 91操操| 人干人人人操人人摸| 国产乱子伦久久精品综合一区二区三| 国产精品熟女九九九| 色爽爽文学| 一区二区三区视频在线观看免费| 欧美亚洲自拍另类人妻| 色淫网站优优视频| 人人操人人射人人干| 成人精品视频一区二区| 一起草AV| 国产精品一二三区福利| 久久精品国产亚洲AV片多多 | 一区二区三区精品视频| 岛国在线免费视频| www.99色| 干超碰碰熟女| 日韩三级av片| 91天天爽| 热久久无毒不卡| 国产乱人妻精品入口| 日韩超碰精品综合| 色婷婷aV一区二区三区麻豆综合| 精品国产www久久| 午夜乱轮操逼视频免费看| 欧美精品三级黄片| 久夜视频| 999久久久国产精品| 老熟妇一区二区三区| 久久动漫精品视频这里只有精品| 国产欧美日韩臀 | 丝袜 中出 制服 人妻 美腿 中文字幕| 在线视频一区二区传媒| 91在线综合网| 亚洲一二三四区机械| 91久久精品国产| 丁香久久| 黄页大片在线观看| 9/A片| 夜夜操老骚逼视频网站| 四虎影库国产精品免费| 日本一二区免费| 激情综合色| 玖玖色综合| 中文字幕在线观看丝袜| 亚洲综合色男人网| 久久的网站啊啊啊啊啊| 99蜜桃臀久久久欧美精品网站| 好看的91视频| 亚洲色图 图片| 久久骚| 物业黑人 AV一区| 夜夜春夜夜操| 美女上床网站| 国内外内射高清视频| 狠久久| 思思热一热婷婷热一热| 91美女丝袜诱惑视频| 欧美亚洲丝袜人妻制服99| 久久久久久久久久久97| 日韩天天本| 91欧洲入口| 青青草好吊色| 日本成人免费一区二区三区| 无码av永久免费专区网站| 99在线观看| 香一区二区三区| 亚洲精品蜜桃久久久久久久| 成熟熟女国产精品一区二区| 国产97综合| 日本孕妇一区二区视频操逼免费看| 在线有码中文字幕| 亚洲AV成人无码久久精品播放| 国产无马av| 福利风月五月天影院| 亚州欧美一区| 亚洲色图欧美| 免费一级a毛片久久久久久鸭绿欲| 久久鲁干| 国产视频一区二区在线观看| 蜜臀在线免费观看在线免费观看| 色一射色一射| 亚州精品人妻一二三区| 97在线精品观看视频| 色婷网| 亚洲91色在线| 1024精品在线| 精品久久久亚洲AV成人网站| 密乳AV免费观看| 精品国产少妇高潮视频| 蜜臀一二三区| 亚洲国产精品无码AV久久久| 五月丁香色情| 亚洲熟女偷拍在线观看| 97色碰| 日韩午夜啪啪视频| 久久精品中文字幕女同| 精品欧美老熟女一二区| 国产成人久久久精品免费AV| 神马久久久久久久久久久久| 蜜臀久久99精品久久久久久婷婷 | 日本好吊色视频| 亚洲精品久久久久久久蜜桃臀| 日操粉逼逼| 色爱综合网欧美| 九色黄站| 都市久久精品激情亚洲| 亚洲国产综合久久久性感熟妇| a啊啊啊啊啊啊啊啊一区二区| 国产精品一区二区校花| 熟妇亚洲一区二区三区| 97精品一区二区三区免费| 色香色欲天天综合网天天来吧| 久久亚洲人妻| 久久久精品电影| 啪啪啪综合网| 午夜福利合集| 性爱乱伦视频免费| 超碰97在线中文| 精品国产一区二区三区四区在线看 | 亚洲天堂色图| 久久午夜色播影院免费高清| 五月天精品| 91精品人妻| 在线另类| 色臀AV| 红杏大香蕉| 99久在线精品99re8蜜桃| 91精品久久久久久综合五月天| 加勒比av网| 精品国产乱码久久久久久口爆网站| 欧美人妻色| 国产黄片精品在线| 任我爽视频在线观看| 91AV入口| 性色av一区二区| 亚洲好看强奸乱伦| 女上位精品在线| 蜜桃视频成a人v在线| 99福利社| 大香蕉啪啪啪| 少妇综合| 99黄页网站| 精品毛片av一区二区| 亚洲在钱| 九九热最新| 中文字幕欧美丝袜07资源| 久久久久日本视| 国产无码久久高清| 啊啊啊啊啊啊啊啊啊啊在线观看| 久久精品中文字幕无码l| 99久在线精品99re8| 天天综合色| 国产在线能看的你懂的| 嗯嗯嗯啊啊啊干死我吧| 久久丁香| 强奸乱伦 亚洲一区| 久久99草| www.超碰| 五十路六十路素人熟女| 国产精品电| 亚洲天堂综合AV| 92性色国产午夜福利在线661| 曰韩少妇无码| 日本亚洲vr欧美不卡高清专区| 国产午夜福利专区综合| 97久久国产亚洲精品超碰热| 男人天堂一区二区| 亚洲精品一区二区精品| 久久一本大香蕉 | 日韩丰满熟妇| 色欧洲| 少妇熟女视频一二三区| oumeisetu综合| 亚洲欧美在线观看免费| 亚洲天堂2020| 久久噜| 97天天综合网| 久久小视频| 国产精品黄色三级av| 欧美激情在线观看视频| 99自拍视频在线观看| 色色色色日本| 精品一区二区三区国产| 色天天野狼综合社区| 日本不卡三级网在线播放| 2017人人操,人人摸| 久久大黄片| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 99精品丰满人妻无| www.99在线| 九九干| 性爱视频无打码在线观看| 日韩97在线| 性欧美第一页| 日韩中文字幕宗合在线| 精品久久久久黄少妇| 亚洲精品视频二区| 五月丁香激情综合网| 无码av永久免费专区网站| 激情综合网激情综合| 精品在线78| 亚洲在线A| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 加勒比久久av| 国内精品不卡无毒99999| 色色婷婷丁香| 爱av免费| 黄片aaaaa一区| 久久久久久69国产一区二区| 亚洲无线码欧洲精品区别| aaa亚无码专区| 97操B| 蜜桃臀av一区二区| 91狠狠狠| 国产传媒一区二区三区| 久久国产精品一区二区| 9美女超碰在线免费观看| 99色在线| 欧美成人国产精品| 九九九九免费视频| 国产精品久久久久久9999| 亚州色国| 五十路人妻在线| 久久精品国产97欧美精品亚洲 | 久久久无码av精| 日韩一级片在线看| 欧美疯狂做爰xxxx| 免費黃色視頻觀看一| 亚洲高清无码免费观看视频| 天堂中文资源在线bt| 日本Xx性爱| 精品黑人一区二区| 97自拍视频在线| 99热综合| 天天日日舔舔| 天天α片| 大但人体久久久久| 欧美日本不卡在线| 婷婷九月丁香| 超清中文乱码字幕| 欧美性生活男人的天堂| 精品少妇人妻av久久免费| 久久久精品无码亚免费| 日韩欧美视频青青| 美腿色图| 国产精品午夜福利视频| 色婷婷一区二区三区久久午夜成人不| 高潮9999外国| 一区二区三区免费视频入口| 国产高清在线观看欧美| 五月大香蕉| 第四色色综合91| 天天爽天天| 白丝jkav| 久久久久久久久9| 超碰97人妻在线| 草草影院日本第一页| 99精品久久| 91色噜噜狠狠| 人人妻人人色一区二区三区| 999综合网| 襙一襙| 免費黃色視頻觀看一| 免费精品福利在线观看| 熟妇在线视频一区二区| 一本一道人妻久久一区二区三区 | 国产精品自拍视频| 78m成人视线| 国产极品馒头逼| 欧美成人一级麻豆| 激情小说成人日本无码一| 欧美99| 欧美性暴力猛交XXXX | 亚洲天堂中文字| 欧美日韩999| 91精品丝袜久久久久久无码人妻| 91熟女视频网| 国模无码人体一区二区三| 一区二区三区精品视频| 国产性感骚丝袜在线| 日韩淫色网| 色色毛片| 操操碰| 偷拍片久久| 日本久久女同性恋视频| 久久99热这里只频精品6学生| 韩日精品福利视频一区不卡在线免| 久久香蕉国产线看观看亚洲女人 | 久久线上视频免费看| 人人贴人人摸| 欧美日韩国产中文精品字幕自在自线,| 中文字幕一区二区三四五区日日骚| 色欧美综合| 在线观看精品国产免费| 禁十八久久| 香蕉国产精品麻豆亚洲欧美日韩| www色色com| 亚洲日本天堂| 日韩免费在线视频观看| 五月天婷婷综合网| 蜜桃视频啊啊啊啊| 啪啪啪东京| 久久欧洲| 97色97干| 特污免视频| 亚洲精品少妇| 97天天爽| 国产精品视频在线观看| 九九亚洲视频| 国产人妻久久精品一区二区三区| 亚洲欧美日韩精品久久久一区二区| 磁力99AV| 飘花国产午夜精品不卡| 亚洲av总站| 国内伊人久久久久久网站视频| 婷婷五月综合在线| 97日韩欧美亚洲| 久久精品性| 欧美激情 亚洲色图| 在线v中文字幕一区二区三区| 国产性爱欧美性爱在线| 日韩国产欧美伦理在线| 99国产精品久久久在线播放| 操国产高清| av操操不卡| 婷婷在线视频在线观看| 欧美 日韩 国产传媒| av爱爱爱| AV色五月天| 黄片不用下载在线观看| 超碰天天操| 国产日韩欧美亚洲精品95| 99在线精品观看视频中文| 国产精品青草综合久久| 97久操| 欧美亚洲丝袜人妻制服99| 国产精品国产亚洲区艳妇糸列| 大香蕉中文aV在线| 操逼免费视频无码国产| 99re6国产精品99re| 免费啪啪一级视频| 亚洲同性aV综合| 日韩人妻资源网| 很很操在线| 日韩精品人妻中文字有码在线| 强奸乱伦Av网| 98超碰欧美| 黄页大片在线观看| 亚洲 暴爽 AV人人爽日日碰| 日韩精品三级片长长久久| 欧美强奸乱| 欧综合网| 六六久久日韩不卡| 青椒国产97在线熟女| 动漫区日韩区欧美区| 国产成人bd在线观看| 日日嗷| 9 9精品一区二区三区| 超碰97COm中文| 亚洲综合码| 亚洲AV无码国产精品久久久久| 久草在线| 嗯嗯啊啊啊好舒服| 国产精品久久久久无码AV会牛| 免费一二区| 精品成人女人久久| 东京热激情视频一二三区| 欧美中文字幕日韩在线| 97在线观| 加勒比伊人影院| 亚洲精品819| 一区二区三区黄色片a| 五月天日日操夜夜操| 老熟女区| 亚州国产精品乱| 青青操综合网| 亚洲天堂男人天堂网| 加勒比少妇AV婷婷六月天超碰超碰| 高清无码网址| 欧美不卡二区| 欧美亚洲一级在线观看| 欧美日韩精品久久久久久久久东北老熟妇| 春色校园综合网| 一级特级aaaa毛片免费观看| 久久丁香久草综合网| 欧美性第1页| 校园春色综合香蕉| 亚洲情色在线| 亚洲国产精品乱码在线观看| 成人免费在线网站| 国产高清吃奶免费视频网站| 日产操逼| 亚洲高清综合网| 久9综合在线| 96久久久精品| 欧美大片天天看| 国产精品午夜成人福利| 亚洲第一页色| 日本国产成人亚洲精品无码| 久久亚洲AV无码专区国产精品 | 91爆操视频| 亚洲阿v天堂无码z2018| 一区AV| 男啪女色黄无遮挡免费观看| 在线亚洲欧美| 久久人妻| 92一区二区| 成人线上超碰| 啊啊啊想要| 精品黄色电影| 熟女人妻精品一区二区视频| 中文字幕第2页| 美女91在线| 亚洲色图欧洲| 色欧洲| 91bbb| 性综合网| 91色人妻| 无遮挡一级毛片视频免费的| 内射老妇BBWX0C0CK| 情趣丝袜无码操逼视频| 国产一在线观看| 偷拍亚洲熟女视频播放| 人人艹亚洲| 国产一区二区在线电影| 亚洲AV无码成人精品久久| 午夜欧美女人操逼| 亚洲欧美国产其他二区| 99精彩视频| 98一区二区精品| 天堂av2019| 日本新免费二区三区| 久久久久久久久久久久九| 18禁久极品美女久久哦哟呀!| 超碰这里有精品| 精品国产99999| 加勒比综合在线| 九久9精品| 欧美一级美片在线观看免费| 自拍偷拍亚洲熟女妇人精品| www.大香| 国产精品熟女乱伦| 欧美色五月| 精品久久久久黄少妇| 粉嫩国产精品久久久| 啊啊啊啊啊好舒服视频| 亚洲脚交| 97操| 成人性爱高清视频免费看| 天天插天天射| 夜夜狼人妻| 久久久久幕乱码| 无码人妻1727| 性爱乱伦视频免费| 91美女中出| 青青草日本中文字幕| 蜜桃狠狠色伊人亚洲综合| 亚洲一二三四区在线免费看视频 | 国产树林里野战在线看| 亚洲人妻AV| 亚洲美欧999| 91模特在线观看| 91av熟女人妻| 日韩人妻中文视频| 综合欧美日本三级| 欧洲精品一区二区三区| 少妇贴图| 欧美巨大性舒爽顶到了| 亚洲欧美综合区自拍另类| 五月丁香六月婷综合成人综合| 美女高潮视频91| 日韩精品一二三| 乱伦图一区| 亚洲熟妇图片| 亚洲熟女诱惑| 成人 日本A片无码8888| 日韩国产品视频中文字| 噜噜噜噜久久久精品免费| 天天插夜夜操| 亚洲人精品久久久喷水| 大香蕉中文201| 911av网站免费观看| 五月丁香综合激情| 天天操美美| 97视频在线| 亚洲免费看片| 97ai亚洲| 中国一区二区亚洲人妻| 天天亚洲综合| 天堂v无码免费视频| 精品婷婷| 加勒比东京热五月天天堂网| 国产91会所女技师在线观看| 人妻少妇精品一区二区三区| 亚洲图片偷拍欧美| 男人高清无码一区二区| 色诱avtt| 92性色国产午夜福利在线661| 五月天激情国产综合婷婷婷| 久湿久久 | 九九热九九| av在线资源| 人乳av| 亚洲福利中文字幕在线| 97一本大道亚洲一区| 18禁看网站一区| 天天综合网在线| 国产二区三区免费视频| 综合色图,成人综合网| 精品人妻一区二区三区在线视频不卡| 日本网色| 中文字幕第95页| 久久婷婷六月综合| 亚洲一区中文字幕| 亚洲一曲日韩精品| 操学生天天| 草草草草视频| 日韩在线视频1234| 91色香| WWW4虎| 欧美男人亚洲天堂| 国产传媒操逼视频| 加勒比伊人综合| 色香色欲天天综合网天天来吧 | 操逼免费视频无码国产| 嗯嗯啊啊视频一区二区三区| 操操逼视频| 狠狠干妹子| 色综合网1| 欧美日韩中国x| 草莓精品视频在线免费观看| 欧美日韩国产在线| 国产97在线 | 亚洲| 国产日本熟女顶级一区二区三区视频 | JULIA人妻风俗店中出电影| 亚洲精品久久久久毛片A片拉屎| 中文字幕一区二区三区蜜臀| 26uuu最新| 97精品国产97久久久久久户外免费| 欧美大片91| 亚州精人品大香蕉| 无码高清操逼| 情色五月天网| www.人人cao| 亚洲图片91| 强上我不卡卡| 天天影视色香欲综合网小说| 亚洲中文字幕日产无码久久| 午夜120视频在线观看| 偷拍亚洲情色| 亚洲日韩AV视色| 东北丰满熟女国产一区| 青草伊人久久| 国产欧美美女免费观看视频| 国产av激情无码久久天堂| 色五月激情AV在线| 一区二区三区网站日日骚| 麻花豆传媒剧国产MV出差| 少妇三p| 啊啊啊啊在线观看网址| 国产女人操逼视频| 久久伊人最新网址视频| 亚洲电影91| 国产日韩欧美三级片| 国产成人在线观看网址| 美日韩一二三区| 女同亚洲欧美一二三区久久电影| 黄色电影在线播放综合网站| 国内外毛片在线观看| 中文字幕在线观看AV| 无码免费精品高清| 澳门黄片一香蕉视频| 国产成人啪一区二区| 欧美内射少妇| 国产又爽又黄| 老熟女乱伦一区| 怡春院久久| 综合色拍| 这里是精品| 制服乱伦| 亚洲小电影免费涩涩成人在线高清 | 熟女乱伦二区| 大香蕉www.超碰| 欧美性第1页| 综合天天网| 天天淫人人妻日日色| 韩国一级婬片A片AAAAA| 人人贴人人摸| 亚洲做性| 人妻超碰青青草98| 日韩影片中文字幕一区二区三区| 噜噜在线| 国产精品久久成人免费| 97超碰9| 天天操天天谢| 精品国产一区二区三区久久久蜜臀| 综合色图亚洲欧美| 国产 丝袜 欧美中文 另类| 强奸乱伦中文字幕AV| 翔田千里爆乳巨臀无码| 熟女精品一区二区三区| 吉川爱美亚洲二区在线| 熟女突然公开看18禁影片| 日韩欧美成人性爱在线| 久久大黄片| 午夜精品久久久| 人人妻人人爽| 天天操福利视频综合网站| 欧美亚洲日韩人妻在线观看| 日韩去日本高清在| 成年女人18级毛片毛片免费观看| 天天躁日日躁xxxxx| 中文字幕一二三| 丁香九月婷婷| 伊人成人中文字幕久久网| 九九色婷婷| 免费一级视频特黄色大片| 精品一区二区人妖| 成人综合久久精品色婷婷| 亚洲日韩成人性爱视频| av无码av无码专区| 日本黄色大片一级视频免费麻豆| 在线观看一级α片刺激高潮视频|