色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

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

C#與HALCON聯(lián)合開發(fā)機(jī)器視覺檢測系統(tǒng):架構(gòu)、模塊與驗收實踐

C#與HALCON聯(lián)合開發(fā)機(jī)器視覺檢測系統(tǒng):架構(gòu)、模塊與驗收實踐 簡介圍繞C#與HALCON構(gòu)建的機(jī)器視覺檢測系統(tǒng)是一套面向機(jī)器視覺初學(xué)者與中高級開發(fā)者的完整工程源碼聚焦工件表面質(zhì)量檢測場景。系統(tǒng)按圖像采集、預(yù)處理、特征提取、決策反饋和圖形界面等模塊組織展示相機(jī)取圖、去噪增強(qiáng)、形狀與模板匹配、缺陷判定及報警聯(lián)動的實現(xiàn)路徑適合用于課程實踐、項目原型驗證和二次開發(fā)參考。壓縮包共245個文件、約45.48MB以80個C#源碼文件為核心配有35張BMP測試圖像、29個DLL與23個PDB依賴調(diào)試文件以及10個resx/resources界面資源、6個csproj工程文件、3個exe和sln解決方案等目錄結(jié)構(gòu)較完整便于直接打開工程梳理調(diào)用關(guān)系。已有7066人學(xué)習(xí)下載。讀者可據(jù)此理解C#調(diào)用HALCON算子、視覺流程編排、檢測結(jié)果展示與工程部署方式并借助測試圖復(fù)現(xiàn)實驗、定位問題積累可遷移的機(jī)器視覺系統(tǒng)開發(fā)經(jīng)驗。1. 一條外觀檢測線的真實取舍C# 與 HALCON 到底誰管哪一段某產(chǎn)線要做零件外觀檢測最初的想法很樸素用 C# 把相機(jī)采到的圖讀成 Bitmap自己寫閾值、找輪廓、算尺寸。真跑到現(xiàn)場就卡住了——換一批來料光照差兩檔閾值全廢亞像素定位沒有測量值跳動比公差還大模板匹配要從頭造輪子。后來改成 C# 寫上位機(jī)、HALCON 做算法內(nèi)核機(jī)器視覺里最費(fèi)勁的那部分交給成熟算子庫視覺檢測系統(tǒng)里界面、流程、數(shù)據(jù)、報警、配方這些工程活留在 C# 里。這份 C# 與 HALCON 聯(lián)合開發(fā)的機(jī)器視覺軟件系統(tǒng)源代碼就是按這個分工搭起來的完整視覺檢測系統(tǒng)相機(jī)采集、模板定位、尺寸測量、缺陷判定、結(jié)果落盤、配方切換一條鏈走完。它適合正在做機(jī)器視覺方向畢設(shè)或課程設(shè)計的學(xué)生也適合要把一套能跑的 C# 視覺軟件直接搬到自己設(shè)備上改的工程師。2. 需求拆解與選型把「能看見缺陷」翻譯成節(jié)拍、精度和軟件棧2.1 檢測項怎么落成可量化的指標(biāo)需求溝通里最容易翻車的一句話是「要能檢出劃傷」。這句話沒法驗收也沒法寫代碼。負(fù)責(zé)的做法是先把它拆成四列測什么、用什么成像方式測、精度要到多少、判定閾值是多少。檢測項一般分三類——尺寸類長度、直徑、間距、角度、位置類裝配偏移、缺件、錯件、表面類劃傷、臟污、毛刺、壓痕。三類在算法上的實現(xiàn)路徑完全不同尺寸類靠測量工具位置類靠模板匹配加區(qū)域比對表面類多半要靠 Blob 分析、頻域濾波或者差異圖。精度這一欄要用像素當(dāng)量倒推不能拍腦袋。視場 40mm、相機(jī) 2448×2048像素當(dāng)量約 0.016mm/pixelHALCON 的亞像素邊緣通常能做到 1/4 像素以內(nèi)折算下來重復(fù)性在 0.004mm 量級。所以一個標(biāo)稱 ±0.02mm 的尺寸項在這個配置下是有余量的要是公差要求 ±0.005mm那就該換遠(yuǎn)心鏡頭、提高分辨率或者上背光而不是指望算法硬扛。我一般會先算這筆賬再談選型省得后面相機(jī)都裝好了才發(fā)現(xiàn)精度不夠。檢測項成像方式精度要求判定方式外形長寬背光、遠(yuǎn)心鏡頭±0.02mm卡尺工具測邊緣對距離孔位偏移同軸光±0.03mm模板匹配定位后測圓心表面劃傷低角度環(huán)形光最小 0.1mm×2mmBlob 面積長寬比篩選缺件/錯件正面均勻光有無判斷區(qū)域灰度均值與模板比對裝配間隙側(cè)向條形光±0.05mm測量矩形內(nèi)雙邊緣間距節(jié)拍是另一條硬約束。單件 300ms 的產(chǎn)線一次曝光加傳輸大概吃掉 6080ms算法預(yù)算只剩 200ms 出頭還得留出通訊和界面刷新的余量。所以算法流程要做成「先粗后精」先用降采樣圖像做快速定位把 ROI 縮到工件附近再做全分辨率的測量和判定。這套系統(tǒng)的流程編排就是按這個思路排的每個工具只在自己關(guān)心的 ROI 里跑不整圖掃。2.2 C# 做上位機(jī)、HALCON 做算法核的分層依據(jù)有人會問HDevelop 也能拖界面為什么還要 C#答案是工程化。產(chǎn)線上的軟件不只是跑算法它要連 PLC、要存追溯數(shù)據(jù)、要做用戶權(quán)限、要支持十幾個料號的配方切換、要能在客戶現(xiàn)場遠(yuǎn)程看日志。這些事 HDevelop 做得吃力.NET 生態(tài)里是現(xiàn)成的。反過來純 C# 加 OpenCVSharp 也能做視覺但形狀模板匹配的抗遮擋能力、亞像素邊緣的穩(wěn)定性、標(biāo)定工具鏈的完整度調(diào)起來的隱性成本很高。所以分工線畫在這里C# 負(fù)責(zé)「殼」——界面、流程調(diào)度、多線程、數(shù)據(jù)庫、通訊協(xié)議、配置管理、日志與報警HALCON 負(fù)責(zé)「眼」——圖像預(yù)處理、模板匹配、邊緣提取、測量、Blob 分析、標(biāo)定換算。兩邊通過 HALCON 的 .NET 接口HObject / HTuple交接邊界清晰。這條線畫對了后面加檢測項就是加一個工具類不用動主流程。分層還有個現(xiàn)實好處算法參數(shù)可以外置成配方工藝工程師改參數(shù)不用重新編譯。這套系統(tǒng)里所有閾值、ROI 偏移、匹配分?jǐn)?shù)下限、灰度上下限都放在配方文件里程序啟動時加載切換料號時熱更新。2.3 算子與相機(jī)選型的對照取舍選型時最常糾結(jié)的幾組我把自己會怎么選列出來場景常見選擇 A常見選擇 B我一般選工件有旋轉(zhuǎn)、部分遮擋NCC 灰度匹配形狀模板匹配B對光照變化和遮擋更穩(wěn)邊緣位置測量手寫梯度找極值measure_pos 測量工具B亞像素和抗噪現(xiàn)成表面缺陷提取固定閾值 Blob動態(tài)閾值 形態(tài)學(xué)B適應(yīng)光照漂移大幅面高速采集USB3 面陣GigE 面陣看線長超過 5m 用 GigE精密尺寸普通 FA 鏡頭雙遠(yuǎn)心鏡頭B視場內(nèi)的放大倍率一致性更好相機(jī)接口這塊GigE 的優(yōu)點是線纜長、多相機(jī)組網(wǎng)方便缺點是延遲比 USB3 略高USB3 帶寬足、延遲低但線長限制在 35m工業(yè)現(xiàn)場走線要提前規(guī)劃。這套系統(tǒng)里采集層做了接口抽象換相機(jī)只改一個配置項算法層完全不用動——這也是分層帶來的直接收益。提示選型階段就把「精度、節(jié)拍、視場、景深」四個數(shù)寫進(jìn)需求文檔后面所有爭論都回到這四個數(shù)上比爭論用哪個算子有效得多。3. 總體架構(gòu)設(shè)計三層結(jié)構(gòu)與六個模塊的職責(zé)邊界3.1 表現(xiàn)層、業(yè)務(wù)層、算法層的劃分整套軟件按三層切。表現(xiàn)層是 WinForm 或 WPF 的主界面負(fù)責(zé)實時圖像顯示、結(jié)果列表、參數(shù)編輯、報警提示它不碰任何 HALCON 算子只消費(fèi)業(yè)務(wù)層給出來的結(jié)果對象。業(yè)務(wù)層是流程引擎和調(diào)度中心管著「取圖 → 定位 → 測量 → 判定 → 存檔 → 通訊」這條流水線同時管配方加載、權(quán)限校驗、異常上報。算法層是 HALCON 的封裝每個檢測能力包裝成一個工具類對外只暴露「輸入圖像 參數(shù) → 輸出測量值」這樣的簽名。這樣切的好處是測試好做。算法層的每個工具可以單獨(dú)拿一批離線圖片跑回歸業(yè)務(wù)層可以用假的圖像源做流程測試界面層改動不影響算法正確性。做畢設(shè)答辯時這一點特別加分——老師問「你怎么驗證算法是對的」你能拿出分層測試的記錄比說「我跑了一遍看著沒問題」有說服力得多。六個模塊分別是設(shè)備接入相機(jī)、光源、PLC/IO、圖像預(yù)處理、定位與測量、判定與分類、數(shù)據(jù)與追溯、配方與權(quán)限。每個模塊內(nèi)部的類只依賴下一層的接口不允許跨層直接調(diào)。比如判定模塊不能自己去讀相機(jī)它只接收測量模塊的結(jié)果數(shù)組。3.2 圖像從相機(jī)到算法再到數(shù)據(jù)庫的流轉(zhuǎn)通路高節(jié)拍下最容易出問題的是圖像流轉(zhuǎn)。做法是采集與處理分離相機(jī)回調(diào)線程只做一件事——把 HObject 塞進(jìn)一個有界隊列然后立刻返回絕不在回調(diào)里跑算法。算法線程從隊列里取圖處理處理完把結(jié)果對象推到結(jié)果隊列界面線程和存盤線程各自消費(fèi)。隊列要有界滿了就丟最舊的一幀并記一條丟幀日志避免內(nèi)存無限堆積。// 采集線程與算法線程之間的有界緩沖容量按節(jié)拍和算法耗時估算 private readonly BlockingCollectionHObject _imageQueue new BlockingCollectionHObject(8); // 相機(jī)回調(diào)只負(fù)責(zé)入隊禁止在這里做任何耗時運(yùn)算 private void OnImageGrabbed(HObject image) { HObject copy; HOperatorSet.CopyImage(image, out copy); // 回調(diào)緩沖會被復(fù)用必須拷貝 if (!_imageQueue.TryAdd(copy)) { // 隊列滿說明算法跟不上節(jié)拍丟棄并計數(shù)事后看日志定位瓶頸 copy.Dispose(); Interlocked.Increment(ref _dropCount); } } // 算法線程主循環(huán) private void ProcessLoop() { foreach (var img in _imageQueue.GetConsumingEnumerable(_cts.Token)) { using (img) { var result _pipeline.Run(img); // 內(nèi)部依次調(diào)用各工具 _resultQueue.Add(result); } } }這里的關(guān)鍵點是CopyImage。很多相機(jī) SDK 的回調(diào)緩沖區(qū)是復(fù)用的你把引用直接傳出去下一幀到來時圖像內(nèi)容就被覆蓋了現(xiàn)象是「偶爾檢測到上一件的缺陷」這種問題查起來極其折磨??截愐淮蔚拇鷥r遠(yuǎn)小于排查成本。隊列容量 8 是按「算法單幀 80ms、節(jié)拍 300ms」估的實際項目里按實測的算法耗時乘 23 倍來定太大反而掩蓋性能問題。3.3 模塊之間的接口約定與異常傳遞工具層統(tǒng)一接口是為了讓流程配置化。每個檢測工具實現(xiàn)同一個契約流程引擎按配方里配置的順序依次執(zhí)行public interface IVisionTool { string Name { get; } // 工具標(biāo)識配方里按名字引用 ToolResult Execute(HObject image, JObject param); // param 來自配方文件的節(jié)點 } public class ToolResult { public bool Success { get; set; } // 算法是否正常執(zhí)行完 public int ErrorCode { get; set; } // 非 0 表示執(zhí)行失敗界面按碼查提示 public double[] Values { get; set; } // 測量值數(shù)組單位統(tǒng)一為毫米 public bool IsOk { get; set; } // 判定結(jié)論與 Success 分開 public string DefectCode { get; set; } // NG 時的缺陷編碼用于統(tǒng)計 }Success和IsOk必須分開。算法沒跑通找不到模板、圖像過曝、邊緣數(shù)量不對是執(zhí)行異常產(chǎn)品合格與否是判定結(jié)論兩者混在一起會導(dǎo)致「算法失敗被當(dāng)成 NG 品流出去」這在追溯時是災(zāi)難。執(zhí)行異常要走獨(dú)立的報警通道讓設(shè)備停下來等人處理而不是默默計數(shù)。結(jié)果落盤用一張主表加一張明細(xì)表就夠了主表存單件結(jié)論明細(xì)存每個測量項的值方便后面按項做趨勢分析CREATE TABLE InspectionRecord ( Id INTEGER PRIMARY KEY AUTOINCREMENT, Sn TEXT NOT NULL, -- 產(chǎn)品條碼/流水號 RecipeCode TEXT NOT NULL, -- 料號用于分料號統(tǒng)計 Result INTEGER NOT NULL, -- 1OK, 0NG DefectCode TEXT, -- NG 缺陷編碼OK 時為空 ImagePath TEXT, -- NG 圖像存檔路徑 CreateTime TEXT NOT NULL ); CREATE INDEX idx_record_sn ON InspectionRecord(Sn); CREATE INDEX idx_record_time ON InspectionRecord(CreateTime); CREATE TABLE MeasureDetail ( Id INTEGER PRIMARY KEY AUTOINCREMENT, RecordId INTEGER NOT NULL, ItemName TEXT NOT NULL, -- 測量項名稱與配方節(jié)點對應(yīng) Value REAL NOT NULL, LowerLimit REAL, UpperLimit REAL, IsOk INTEGER NOT NULL );索引這兩條不是湊數(shù)。按 Sn 查是為了追溯按時間查是為了做日報和趨勢圖產(chǎn)線上這兩個查詢是每天都跑的。明細(xì)表拆出來是因為一個工件可能有十幾二十個測量項塞進(jìn)主表的 JSON 字段里查起來費(fèi)勁做 SPC 分析時更難受。4. 核心模塊實現(xiàn)采集、定位、測量、判級四段代碼落地4.1 相機(jī)接入與 HObject 的生命周期相機(jī)接入層要做三件事打開設(shè)備、配置參數(shù)、穩(wěn)定取圖。HALCON 用open_framegrabber統(tǒng)一封裝各家接口參數(shù)隨接口類型不同而不同具體字段要按相機(jī)廠商的接口文檔對齊不能照抄。public class CameraDevice : IDisposable { private HTuple _acqHandle null; private readonly object _lock new object(); public void Open(string interfaceName, string deviceId) { // 參數(shù)順序固定含義依次為接口名、水平/垂直分辨率、起始位置、 // 圖像寬高、場序、位深、色彩空間、泛型參數(shù)、外部觸發(fā)、相機(jī)類型、設(shè)備標(biāo)識 HOperatorSet.OpenFramegrabber( interfaceName, 0, 0, 0, 0, 0, 0, progressive, -1, default, -1, false, default, deviceId, -1, -1, out _acqHandle); // 關(guān)掉自動曝光和自動增益產(chǎn)線上這兩個必須鎖死否則測量值會漂 HOperatorSet.SetFramegrabberParam(_acqHandle, ExposureTime, 8000); HOperatorSet.SetFramegrabberParam(_acqHandle, Gain, 0); } public HObject GrabOnce(int timeoutMs) { lock (_lock) // 同一句柄不能并發(fā)調(diào)用加鎖是最省事的做法 { HOperatorSet.GrabImageAsync(out HObject image, _acqHandle, timeoutMs); return image; } } public void Dispose() { if (_acqHandle ! null) { HOperatorSet.CloseFramegrabber(_acqHandle); _acqHandle null; } } }自動曝光這一條值得單獨(dú)說。調(diào)試時開著自動曝光畫面好看上線后光源老化、環(huán)境光變化相機(jī)會自己調(diào)增益灰度整體漂移閾值型檢測項集體失效。血淚經(jīng)驗是調(diào)試階段就用固定曝光固定增益把光源亮度調(diào)到能拿到穩(wěn)定灰度的位置之后不再動它。真要適應(yīng)不同料號的反光差異靠配方里的曝光參數(shù)切換不靠相機(jī)自動。HObject 是托管包裝的非托管資源必須顯式釋放。用using或者 try/finally 里的Dispose()不能指望 GC。這一點在第 5 章展開。4.2 形狀模板匹配與亞像素定位定位是整個流程的地基定位偏了后面所有測量都偏。做法分兩步建模階段從一張標(biāo)準(zhǔn)件圖像里摳出特征明顯的區(qū)域生成形狀模板運(yùn)行階段用模板在當(dāng)前圖里找位姿。// 建模在一張合格品圖像上框出特征區(qū)生成形狀模板 public HTuple CreateTemplate(HObject image, double row1, double col1, double row2, double col2) { HOperatorSet.GenRectangle1(out HObject roi, row1, col1, row2, col2); HOperatorSet.ReduceDomain(image, roi, out HObject domain); roi.Dispose(); // 角度范圍 -0.39~0.39 rad約 ±22.5°覆蓋來料旋轉(zhuǎn) // 金字塔層數(shù)、對比度、最小對比度都交給 auto讓算子按圖像自選 HOperatorSet.CreateShapeModel( domain, auto, -0.39, 0.79, auto, auto, use_polarity, auto, auto, out HTuple modelId); domain.Dispose(); return modelId; } // 運(yùn)行在當(dāng)前圖中查找返回行、列、角度、得分 public bool Find(HTuple modelId, HObject image, out double row, out double col, out double angle) { HOperatorSet.FindShapeModel( image, modelId, -0.39, 0.79, 0.7, // 最小得分低于它認(rèn)為沒找到 1, // 最多找?guī)讉€匹配單件檢測取 1 0.5, // 重疊度 least_squares, // 亞像素模式精度最高的那一檔 0, // 金字塔層數(shù)0 表示用建模時的設(shè)置 0.9, // 貪婪度越大越快越可能漏 out HTuple r, out HTuple c, out HTuple a, out HTuple score); row r.Length 0 ? r.D.ToArray()[0] : 0; col c.Length 0 ? c.D.ToArray()[0] : 0; angle a.Length 0 ? a.D.ToArray()[0] : 0; return score.Length 0 score.D[0] 0.7; }參數(shù)里最需要現(xiàn)場調(diào)的是MinScore和Greediness。MinScore 定太低0.5 以下會把相似結(jié)構(gòu)誤認(rèn)成目標(biāo)定太高0.85 以上則在來料表面有輕微臟污時找不到。經(jīng)驗值是先設(shè) 0.7拿一批包含邊界樣本的圖跑看得分分布取一個能把 OK 品和誤匹配分開的閾值。Greediness 默認(rèn) 0.9如果發(fā)現(xiàn)偶爾漏檢先往 0.8 降一檔試試速度會慢一些但更穩(wěn)。建模區(qū)域的選擇也有講究不要選大面積的均勻區(qū)域那種區(qū)域沒有梯度信息模板會退化成靠邊緣支撐抗噪能力差要選帶角點、圓孔、缺口這類強(qiáng)特征的位置。模板圖像盡量用實際產(chǎn)線的相機(jī)和光源拍別拿實驗室的樣品圖湊合光學(xué)條件不一樣模板的對比度參數(shù)就不對了。4.3 測量與判級從像素值到 OK/NG 結(jié)論有了位姿測量就好辦了。思路是把模板坐標(biāo)系里定義好的測量位置通過剛性變換映射到當(dāng)前圖像的實際位置再用測量工具在映射后的位置取邊緣。這樣來料有平移旋轉(zhuǎn)也不影響。// 模板坐標(biāo)系下的基準(zhǔn)點與測量矩形參數(shù)建模時在標(biāo)準(zhǔn)件上確定 private const double TplRow 512.0; private const double TplCol 640.0; private const double TplAngle 0.0; public double MeasureGap(HObject image, double mRow, double mCol, double mAngle, JObject param) { // 1. 用匹配位姿構(gòu)造模板坐標(biāo) - 當(dāng)前圖像坐標(biāo)的剛性變換 HOperatorSet.VectorAngleToRigid(TplRow, TplCol, TplAngle, mRow, mCol, mAngle, out HTuple homMat2D); // 2. 把模板里定義好的測量中心映射過去測量框跟著工件一起轉(zhuǎn) HOperatorSet.AffineTransPoint2d(homMat2D, TplRow, TplCol - 80, out HTuple row, out HTuple col); HTuple phi TplAngle mAngle; // 3. 生成測量矩形長 60 寬 12方向沿工件邊插值選雙線性 HOperatorSet.GenMeasureRectangle2(row, col, phi, 30, 6, 60, 12, bilinear, out HTuple handle); // 4. 在矩形內(nèi)找邊緣對sigma1.0 抑制噪聲threshold30 控制靈敏度 HOperatorSet.MeasurePos(image, handle, 1.0, 30, all, all, out HTuple edgeRow1, out HTuple edgeCol1, out HTuple amp1, out HTuple edgeRow2, out HTuple edgeCol2, out HTuple amp2, out HTuple intraDist, out HTuple interDist); HOperatorSet.CloseMeasure(handle); if (intraDist.Length 1) throw new VisionException(1001, 測量框內(nèi)未找到成對邊緣檢查光照或測量框位置); // interDist 是相鄰邊緣間距像素乘像素當(dāng)量換成毫米 double pixelScale param.Valuedouble(PixelScale); // 由標(biāo)定得到如 0.0163 return interDist.D[0] * pixelScale; }Sigma和Threshold這兩個參數(shù)是測量的手感所在。Sigma 是高斯平滑的系數(shù)來料表面粗糙、圖像噪點大就調(diào)大到 1.52.0代價是邊緣位置會被輕微模糊精度略降圖像干凈就保持 1.0 甚至 0.8。Threshold 是邊緣幅度閾值它決定什么算作邊緣——太低會把噪點當(dāng)邊緣太高會漏掉對比度弱的真實邊緣。穩(wěn)妥的做法是打開邊緣幅度輸出看一批圖的幅度分布把閾值定在噪聲幅度和真實邊緣幅度之間。判級就是拿測量值和配方里的上下限比public (bool ok, string defectCode) Judge(double value, JObject param) { double lower param.Valuedouble(LowerLimit); double upper param.Valuedouble(UpperLimit); double tol param.Valuedouble(JudgeTolerance); // 判定死區(qū)默認(rèn) 0 // 死區(qū)的作用剛好卡在邊界上的值做二次確認(rèn)避免 OK/NG 反復(fù)橫跳 if (value lower - tol) return (false, param.Valuestring(DefectCodeLow)); if (value upper tol) return (false, param.Valuestring(DefectCodeHigh)); return (true, null); }判定死區(qū)這個小設(shè)計在批量生產(chǎn)時很關(guān)鍵。沒有它的時候一個值在上下限附近抖同一個工件可能這次 OK 下次 NG操作員會懷疑設(shè)備有問題。加了死區(qū)之后邊界附近的值統(tǒng)一往寬松方向靠配合趨勢圖看反而更容易發(fā)現(xiàn)工藝漂移。NG 圖像一定要存。存圖策略按「日期 / 料號 / 時間戳_缺陷碼」的目錄結(jié)構(gòu)落盤保留最近 30 天超期自動清理。這張圖在后續(xù)分析缺陷成因、和供應(yīng)商扯皮的時候是唯一的證據(jù)鏈。4.4 配方管理換料號不改代碼配方是這套系統(tǒng)里最能體現(xiàn)工程成熟度的部分。十幾個料號每個料號的 ROI、閾值、模板、上下限都不同如果寫死在代碼里每換一次料就要改代碼重新發(fā)版現(xiàn)場根本沒法用。配方的組織方式是一棵 JSON 樹根節(jié)點是料號下面是工具鏈數(shù)組每個工具節(jié)點帶自己的參數(shù){ RecipeCode: P-1024, PixelScale: 0.0163, Tools: [ { Name: Locate, Type: ShapeMatch, TemplateFile: tpl_1024.shm, MinScore: 0.72, AngleStart: -0.39, AngleExtent: 0.79 }, { Name: GapA, Type: MeasurePair, RefRow: 512, RefCol: 560, LowerLimit: 1.98, UpperLimit: 2.06, JudgeTolerance: 0.005, DefectCodeLow: GAP_SMALL, DefectCodeHigh: GAP_LARGE }, { Name: Scratch, Type: BlobDefect, MinArea: 120, MaxAspect: 8.0, GrayLow: 40, DefectCode: SCRATCH } ] }流程引擎按Tools數(shù)組順序執(zhí)行遇到Locate就把位姿寫進(jìn)上下文后面的測量工具從上下文里取。新增一個檢測項只是在數(shù)組里加一個節(jié)點代碼零改動。配方的加載和熱切換要注意兩點一是切換時必須在流程空閑的間隙做不能在一件工件處理到一半時換參數(shù)二是每次切換記一條日志包含料號、操作人、時間出問題時能對上是哪次切換引入的偏差。注意配方文件建議加版本號和校驗值現(xiàn)場出現(xiàn)過配置文件被人手工改壞、程序啟動直接崩的情況加個校驗?zāi)芴崆皵r住。5. 避坑與常見問題排查內(nèi)存、線程、標(biāo)定三處最容易翻車的地方5.1 內(nèi)存只漲不落現(xiàn)象程序跑兩三個小時內(nèi)存從 200MB 漲到 2GB最后卡死或者被系統(tǒng)殺掉。原因幾乎都是 HObject 沒釋放。HALCON 的圖像和區(qū)域?qū)ο蟮讓邮欠峭泄軆?nèi)存C# 的 GC 只回收包裝對象不會主動去釋放底層句柄峰值節(jié)拍下對象創(chuàng)建速度遠(yuǎn)超終結(jié)器回收速度句柄就堆起來了。解決方法是所有 HObject 都走using或者在方法末尾顯式Dispose()尤其注意異常分支——try 塊里創(chuàng)建了對象catch 里直接 return那個對象就漏了。// 反面寫法異常一拋img 和 region 都不會被釋放 HObject img; HOperatorSet.ReadImage(out img, path); HObject region; HOperatorSet.Threshold(img, out region, 0, 128); DoSomething(region); // 若這里拋異常上面兩個對象泄漏 // 正確寫法用 using 包住無論走哪條分支都釋放 using (HObject img new HObject()) using (HObject region new HObject()) { HOperatorSet.ReadImage(out img, path); HOperatorSet.Threshold(img, out region, 0, 128); DoSomething(region); }排查手段任務(wù)管理器看句柄數(shù)比看內(nèi)存更準(zhǔn)句柄只漲不落就是泄漏。也可以在每個流程節(jié)點前后打一條get_system(handle_count)的日志幾個循環(huán)就能定位到是哪個工具漏了。5.2 多線程下的偶發(fā)崩潰現(xiàn)象單線程跑一天沒事改成多線程后隨機(jī)崩報的是訪問沖突或者算子內(nèi)部錯誤日志里看不出規(guī)律。原因是 HALCON 的 HTuple 和 HObject 不是線程安全的兩個線程同時操作同一個對象或者在 A 線程創(chuàng)建、B 線程釋放都可能出問題。解法是「誰創(chuàng)建誰釋放跨線程只傳值不傳引用」算法線程處理完把測量值double 數(shù)組和結(jié)果碼傳出去不要把 HObject 傳來傳去確實要傳圖像就在目標(biāo)線程里CopyImage一份。另外 HALCON 的算子在內(nèi)部已經(jīng)做了并行外層再開一堆線程搶 CPU 反而是負(fù)優(yōu)化算法線程一般開 12 個就夠。5.3 標(biāo)定與像素當(dāng)量換算翻車現(xiàn)象測量值整體偏大或偏小百分之幾重復(fù)性很好但準(zhǔn)確度不對。原因多半在像素當(dāng)量上。像素當(dāng)量不是拿標(biāo)稱視場除分辨率算出來的那個值忽略了鏡頭畸變和實際放大倍率偏差。正確做法是拿一塊標(biāo)準(zhǔn)量塊或者標(biāo)定板在同一工作距離下拍圖量出已知長度對應(yīng)的像素數(shù)兩者相除。更嚴(yán)謹(jǐn)?shù)淖龇ㄊ亲龆帱c標(biāo)定把鏡頭畸變一起擬合掉視場邊緣的測量值才不會系統(tǒng)性偏大。還有個容易忽略的點更換鏡頭、調(diào)整工作距離、甚至相機(jī)被撞了一下像素當(dāng)量都要重新標(biāo)。我見過一個項目調(diào)試時標(biāo)定過后來調(diào)焦換了鏡頭沒重標(biāo)整批產(chǎn)品尺寸超差卻判 OK流到客戶那邊才發(fā)現(xiàn)。現(xiàn)在我的習(xí)慣是每次動過光學(xué)系統(tǒng)就在配方里改標(biāo)定日期并在開機(jī)自檢里加一條「標(biāo)定有效期提醒」。5.4 觸發(fā)時序錯位與丟幀現(xiàn)象檢測結(jié)果和產(chǎn)品對不上號或者偶爾漏檢一件。這類問題多半在觸發(fā)鏈路上。相機(jī)是硬觸發(fā)還是軟觸發(fā)、PLC 給信號到相機(jī)曝光的延遲多少、編碼器分頻對不對、光源頻閃和曝光是否同步任何一環(huán)錯位都會導(dǎo)致「拍到了相鄰的一件」。排查方法是拿一張帶標(biāo)記的樣件連續(xù)跑 100 件把每件的圖像和條碼一一對應(yīng)看錯位會立刻暴露。修復(fù)上硬觸發(fā)優(yōu)先于軟觸發(fā)觸發(fā)信號走光耦隔離別用普通 IO 直連曝光時間和光源延時要在配方里成組配置不能分開調(diào)。5.5 部署環(huán)境缺運(yùn)行庫現(xiàn)象開發(fā)機(jī)上跑得好好的拷到產(chǎn)線電腦上雙擊就報錯或者一打開相機(jī)就崩。原因是目標(biāo)機(jī)缺 HALCON 運(yùn)行時或者 .NET 運(yùn)行時版本不匹配也可能是相機(jī)廠商的驅(qū)動沒裝、網(wǎng)卡巨幀沒開。部署前要列一張環(huán)境清單.NET 運(yùn)行時版本、HALCON 運(yùn)行庫位數(shù)32/64 位必須和主程序一致、相機(jī)驅(qū)動版本、網(wǎng)卡巨幀和中斷親和性設(shè)置、系統(tǒng)電源計劃改成高性能別讓 CPU 降頻。這張清單每次部署都過一遍比現(xiàn)場抓瞎強(qiáng)。6. 驗收與答辯用一組可復(fù)現(xiàn)的數(shù)據(jù)證明系統(tǒng)「測得準(zhǔn)、跑得穩(wěn)」驗收這一步很多人栽在「我說它準(zhǔn)」上。合格的做法是拿數(shù)據(jù)說話而且數(shù)據(jù)要可復(fù)現(xiàn)。我一般準(zhǔn)備三組測試準(zhǔn)確性測試、重復(fù)性測試、穩(wěn)定性測試。準(zhǔn)確性用標(biāo)準(zhǔn)件。拿 10 件已知尺寸的標(biāo)準(zhǔn)件或者三坐標(biāo)測過的樣件每件測 10 次算每個測量項的平均值和標(biāo)準(zhǔn)值的偏差。偏差要小于公差的三分之一超了就得回去查標(biāo)定或者算法。重復(fù)性用同一件產(chǎn)品連續(xù)測 30 次算標(biāo)準(zhǔn)差這個數(shù)反映的是系統(tǒng)自身的抖動一般要求小于公差的十分之一。穩(wěn)定性是連續(xù)跑 48 小時統(tǒng)計總檢數(shù)、誤檢數(shù)、漏檢數(shù)、算法異常次數(shù)同時記錄內(nèi)存和句柄曲線。驗收項指標(biāo)測試方法記錄內(nèi)容測量準(zhǔn)確性偏差 ≤ 公差/310 件標(biāo)準(zhǔn)件 × 10 次均值、偏差、最大值重復(fù)性標(biāo)準(zhǔn)差 ≤ 公差/10同件連續(xù) 30 次標(biāo)準(zhǔn)差、極差檢出率≥ 99.5%200 件含已知缺陷樣本漏檢數(shù)、漏檢類型誤檢率≤ 0.5%200 件合格品誤檢數(shù)、誤檢原因節(jié)拍≤ 設(shè)計值連續(xù) 500 件計時平均、P95、最大值長時間穩(wěn)定性8 小時無異常連續(xù)運(yùn)行內(nèi)存曲線、異常次數(shù)節(jié)拍統(tǒng)計最好在程序里內(nèi)建別拿秒表掐// 每個流程節(jié)點前后打點落庫后直接出 P95 報表 var sw Stopwatch.StartNew(); var result _pipeline.Run(image); sw.Stop(); _repo.SaveTiming(result.Sn, result.RecipeCode, sw.Elapsed.TotalMilliseconds);答辯時的講法我的建議是倒過來講先講誤檢漏檢的數(shù)據(jù)和你是怎么把這兩個數(shù)壓下去的再講架構(gòu)和代碼。老師最想聽的不是「我用了什么技術(shù)」而是「你怎么知道它是對的」。你可以拿出那張 200 件樣本的混淆矩陣講某一類缺陷一開始漏檢率 8%查下來是 Blob 面積下限設(shè)太大把下限從 200 調(diào)到 120 之后降到 0.5%——這種帶數(shù)字的調(diào)試過程比任何架構(gòu)圖都有說服力。還有一個常被問到的點如果換個料號怎么辦。這時候現(xiàn)場演示配方切換30 秒內(nèi)完成切換后連續(xù)跑 20 件全部正確這一下就把「課程作業(yè)」和「能交付的系統(tǒng)」區(qū)分開了。從那以后我每次做完一套視覺系統(tǒng)驗收前都強(qiáng)制走一遍「標(biāo)準(zhǔn)件 重復(fù)性 8 小時連續(xù)跑」這三關(guān)哪怕時間再緊也不跳。跳過一次后面在現(xiàn)場補(bǔ)的功夫是省下來那點時間的好幾倍。希望這套結(jié)構(gòu)和記錄方法能幫到你需要對照完整實現(xiàn)的話倉庫里的源代碼可以直接拿去做參考。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国内毛片无码一级毛片| 亚洲有码第一页| 久久精品国产精品一区| 情色五月天网| 91美腿丝袜在线观看| 亚洲av综合伊人久久| 综合91网| 人妻系列无码专区中文有码| 久久免费老司机精品| 欧美天天搞| 欧美熟妇视频| 日本性爱网址| 成人三级片无码| 亚洲AV成人精品网站在AV| 欲射影视| 精品人妻1237| 午夜操逼不卡| 好爽视频在线观看视频 | 有码免费观看| 亚欧高清v| 97精品视频| 97超碰人操| 久久久久久久久久久久久久久性生活视频| 一牛影视成人片免费| 欧美亚洲首页| 亚洲性猛| 久久久久久久久久久久久久9999| 韩国三级理论在线| 天天艹天天日| 大香蕉www.超碰| 国产一线二线三线av| 成人影 天天操 亚洲| 人人妻人射| 99re免费| 福利视频网站| 亚洲色狠| 欧美se综合| 欧美大色交| www老逼91| 久久亚洲婷婷| 精品欧美乱码久| 97在线青| 蜜臀99久久精品| 婷婷五月天久久精品视频一区二区三区| 人人操,操人人| 在线看污网站| 97日韩| 99re在线视频这里只有精品| 99国产精品久久久久久久成人热| 精品视频免费在线一区| 一级啊性爱在线视频| 日韩精品黄片免费观看| 欧美三级中文字幕hd| 日本性爱欧美性爱| 亚洲欧美日韩精品久| 日韩黄色电影网站| 色婷婷基地| 五月天婷婷激情| 大香蕉久久| 丝袜美腿诱惑亚洲欧美视频在线观看| 精品久久視頻在线| 欧美日韩国产男人| 亚洲AV在线资源| 加勒比av网| 日韩无码服务区| 国产精品视频在线观看| 老外又粗又长一晚做五次| 欧美色狠| 大香蕉手机视频| 国产精品一二三区福利| 啊操爽品善一区二区三区| 偷拍综合亚洲| 99亚洲国产精品色一区二区三区| 国产精品呦一区二区三区| 国产亚洲色婷婷久久99精品91葵花宝典| 国产超碰国产97| 欧洲乱码一区二区| 亚洲熟妇AV日韩熟妇在线| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 激情小说图片亚洲首页 | 蜜桃久久久久久| 亚洲欧美综合网站| 亚洲综合另类| 探花熟女,姿勢到位,體驗感也到位| 在线观看国产黄色| 亚洲网自拍| 欧美熟女丝袜| 国产女人视频三四五区| 亚洲天堂AV在线播放| 99热只有| 无码人妻丰满熟妇区毛片| 亚洲国产天堂| 国产成人免费观看在线视频| 4141514逼喷水三级片| 97操97干| 亚洲精品官网在线观看| 殴美牲| 天天操人人操骚逼网站| 欧美第一页| 18禁的网站在线| 97国产人人| 亚川综合视频| 亚洲AV资源| 东京热91| 亚洲中文字母在线播放| 日本一级不卡一二区| 最新亚洲黄色免费电影| 国产伦精品一区二区三区视频女| 久久久久人| 日韩人妻一区二区| 久久怡红院| 久久超碰av在线| 蜜臀一区二区三区在线| 欧美有码亚洲中文字幕一区二区三区四区| 91一区二匹| 探花熟女,姿勢到位,體驗感也到位| 欧美熟女少妇| 久久婷婷成人综合色怡春院| 免费操逼视频下载| 久久久久人| 国产一区在线观看无码AV| 91精品国产综合久久久蜜臀| 蜜臀久久99精品久久久久久成人小说 | 青娱乐91| 精品久久久久,69国产成人精| 精品少妇人妻一区二区三区| 亚洲国产青青| 日韩人妻一二三区视频| 免费成人在线熟妇网| 26uuu最新| 日韩AV电影网站| 午夜操一视频一区| 69精品人人人人| 九九九九一区| 一区二区三区网站日日骚| 花花AV导航| 国产后入精品| 性饥渴少妇av无码毛片| 久神马| 大香蕉www.超碰| 91爱做| 国产精品干干干| 97日视频| yellow网站免费观看日韩高清无码| 一区二区三区四区五区高清无码永久视频| 久久中文字幕一区不卡| 亚洲色图综合网| 五月丁香六月婷综合成人综合| 啊啊啊啊在线播放| 67194国产| 日韩免费福利在线观看| 91精品免费| 色综合久久久久| 69精品| 久草精品国产蜜臀| 久久久爆乳翘臀一线天伦理视频| 99爱久久视频频| 手机看片91人妻| 好吊色一区| 中文字幕精品一区二区精| 97在线观看视频| 亚洲天堂人妻一区二区| 国产一区二区三区免费视频在性观看 | 佐山爱中文字幕| 91天堂色男人的天堂| 中文字幕一区二区无码成人| 男人的天堂色偷偷青青草视频婷婷网| 欧美操逼熟女| 清纯唯美亚洲综合| 天天内射| 欧美嗯啊……在线观看视频免费| 欧洲熟妇xxXx欧美老妇裸体| 精品国产91内射久久| 精品视频久久区| 色性综合| 欧美性爱一级操| 日欧操屄| 亚洲天堂男人天堂网| 久久精品一区二区三区不卡| 成人婷婷丁香| AA级电影三区| 欧美碰碰综合色| 超碰夫妻97| 国产一级αv免费看片| 日日夜夜精品视频| 久久超碰天天| 亚洲日韩人妻中文字幕一区| 97视频在线视频| 性色一线| 久久国产精品91| 殴美大黄片| 国产精品人妻无码久久久互動交流 | www.人人摸在线视频| 亚洲中文字幕有码视频一区二区三区| 影音先锋国产精品| 国产理论视频在线播放| 成人AV超碰免费在线| 久久久夜夜夜| 玖玖综合网| 亚洲影视第一页| 99精品伊人| 丁香五月天堂网| 91干熟女| 免費黃色視頻觀看一| 国产久久免费精品视频| 91AV入口| av在线观看不卡网站| 97亚洲综合影院| 日韩欧美麻豆 | 日本黄大片在线观看视频| 99re28在线观看| 人乳av| 亚洲欧美在线综合| 天天操天天7| 欧美后入视频| 91伊人| 97超碰欧美手机在线| 中文字幕女同在线| 999久久芭蕾| 久久九操在线观看| 日本天堂在线播放| 天天综合网在线91| 日本一区二区中文字幕久久| 久操视频在线观看| 色欲久久久久综合网| 伊人热综合| 免费AV中文网在线观看| 明星性猛交ⅹxxx乱大交| 亚洲天堂资源网| 超碰九7| 国产精品久久久久久久久久久久| J?P?NESEHD熟女熟妇伦| 日韩极品无码B| 91精品国产91久久福利| 精品国产一区二区三区四区在线看 | 东京太热男人的天堂久久久| 91国模| 久久免费少妇| 日韩美女操b| 亚洲午夜福利在线影院| 亚洲欧美日韩综合在线尤物| 中文字幕精品一区二区精品| 青女在线| 亚洲综合在线91| 女人久久久| 人妻人人澡人人爽人人| 久久偷偷色综合蜜桃| 精品久久久一本一道| 超碰久超碰久| 欧美精品一区二区少妇免费A片| 亚洲激情综合另类男同| 日韩另类| 极品后入免费视频| 992视频一区| 探花视频免费观看国产专区| 久草网站免费在线观看| 91精品成人www| 四虎AV影视国产精品亚洲精品| 欧美在线 亚洲| 国产成人啪一区二区| 一级二级在线观看| 91精品无码人妻系列| 欧美日韩m| 欧美性爱一区二区三区四区| 综合自拍| 亚洲精品啪视频| 日本免费中文一区二区三区四区| 97超碰天天爱天天爱| 97网站在线观看 | 91欧美美女日韩国产婷婷| 天天日天天干天天摸天天操| 操逼逼福利视频| 极品五月天噜噜| 亚洲欧洲无码一区夜| 中日韓欧美高清| 伊人久久大香线蕉无码| 欧美香蕉视xxx| 国内外色色色色色成人视频| 蜜桃狠狠色伊人亚洲综合| 96久久久| 久热99| 97亚洲欧美日韩| 大象AV在线| 国产亚洲精品自在线亚洲情侣| 粉嫩少妇自慰在线| 亚洲精品久久久久毛片A片拉屎 | julia高潮后不停追击中出| 久久久久久久久久久久黄色| 女沟厕偷窥piss小便| 美日韩成人| 精品中文一区二区| 欧美一级黄片视频在线| 9超碰免费| 亚洲av青草久久一区二区| 婷婷操逼| 黑人精品欧美一区二区蜜桃| 中国探花熟女| 熟女露脸激情自拍视频| 婷婷丁香成人| 黄站在线免费观看| 日本护士高潮| 91中出在线| 5月婷婷6月六月丁香| 91亚.色| 午夜高清成人在线视频| 91劲爆| 亚洲最新a在线观看| 亚精品无码毛片一区二区三区| 国产日韩无码一区二区三区久久区| 中文伊人大香蕉视频| 丰满人妻-区二区三区免费| 亚洲人妻久久久| 亚洲国产成人高清在线| 春色综合网| 黑丝少妇| 13小男生GAY自慰脱裤子| n1038 一二三区| 人妻中文字幕精品无码| 国产9熟妇视频网站| 日韩精品国产精品五码一区二区| 99re9| 69精品人人人人| 天天艹天天日| 亚洲图片小说欧洲| 亚洲熟妇无码一区二区三区| 黄色av片三级三级三级免费看| q2午夜理论片夜色av| 伊人久久婷婷| 又粗又长又爽在线观看| 亚洲欧美伦综合| 日日干日日操五月天伦理视频| 亚洲欧洲中文日韩女优乱码| 男人天堂网手机版婷婷| 旡码电影特区| 欧美经典一区二区三区 | 成人性爱全视频观看| 91性情| 亚洲综合图文| 日韩啪啪啪啪啪| 影音先锋少妇| 日韩少妇无码| 日韩精彩视频| 熟妇视频一区二区三区在线观看| AA特级绝黄| 日本色色色| 伊人91| 蜜桃视频一区二区三区在线观看| 黑人精品成人一区二区三区| 欧美精品成人一区二区在线观看 | 色女网日韩| 艹精品| 蜜臀va69| 99热aaa| 男女真人网18| 久久综合亚洲色1080p| 偷拍欧美亚洲| 老师充足的奶水小说| 国产精品视频麻豆入口| 亚洲欧美成人网站AAA| 亚洲日韩东京热一区| 日本三级韩三级99久久| 日本人妻中文字幕| 欧美A片中文字幕| 老鸭窝在线视频播放| 久久久久久性爱片| 无色无码| 蜜乳AV一区| 91精品老女人| 久9爱精品| 91色综合激情| 亚洲一二三精品久久网| 久久 国产精品 一区| 久久AV无码AV| 97超碰超| 91爱网| 国产精品高朝久久久久久久| 日本99一区二区| 人妻熟女一区在| 在线看免费无码AV天堂的| 大香蕉 222| 国产av美女被艹的乱叫| 日本三级一区二区 在线| 亚洲综合91| 蜜桃AV天堂| 好屌色综合| 欧美色图亚洲色图成人在在线| 天天干一干| 中文字幕成人理论在线| 少妇高潮流水av免费| 欧美 亚洲 第一页 | 久久性爱精品一区| 最新无码国产| 超碰91在线| 亚洲动态色图| 成人精品久久| 超碰色美女| 四虎在线观看网站| 久久久555| 欧美图片色五月天| 超AV色女| 91人妻视频在线| 婷婷日韩一区二区三区中文字幕在线| 亚洲一本色道中文无码aV天美| 国产高清MV操逼视频| 国产一区二区三区免费视频在性观看| 中文AV制服乱伦| 久久97精品久久久久久久不卡| 欧美最婬乱婬爆婬牲视频| 爱丝福利| 亚洲天天综合| 久久中文字幕一区不卡| 人人潮人人摸| 婷婷五月天补不补| 蜜桃臀 后入 一区 二区 三区 在线| 五月天婷婷欧美三区| 91 国产丝袜在线播放-百度| 日韩av情韩国爱禁区av一区二区| 亚洲熟妇白浆无码AV| 国产精品白丝AV| 91亚洲网| 人人干黄色| 激情五月天插| 精品v日韩欧美国产| 婷婷久草一区二区三区| 久久久久骚| 亚洲综合图文| 9999九九九久久久| 加勒比综合| 日韩免费簧片| 国产精品久久久久久久毛片1| 国产超碰在线| 极品久久久久久久久久久久久久| 青青操在线视频| 欧美色女人| 性色av网站| 婷婷在线播放| 欧美日韩亚洲高清不卡一区二区三区| 中文字幕免费观看| 欧美性暴力| 欧洲综合无码| 亚洲欧洲视频小说在线观看| 久久久久久久久久久久欧美日| 性高潮久久久| 精品人妻1区| 色嘟嘟人妻天堂网| 四虎在线免费视频| 国产精品久久久| 欧美东京热精品A∨| 日本天天色| 综合网久久| 日韩天天综合| 日本色色色色色视频| 97香焦色区| 日本中文字幕一区| 国产视频人人网| 亚洲国产激情国产av| 超碰日本97美女人妻人人玩人人爱| 97频视在线| 欧美色图亚洲色| 青青草天天亲夜夜操网| 99精品网站| 91色婷婷综合久久中文字幕二区| 亚洲精品日韩国产欧美| 性性欧美| 偷拍偷窥与盗摄视频专区| 国产精品熟女丝袜一区二区| 噜噜噜亚洲精品| 四虎精品永久在线播放| 婷婷五月天成人| 久久99深爱久久99精品| 国产精品黄色三级av| 中文字幕91综合| 久区视频| 国产精品老熟女一区二区| 欧美在线干| 2020中文在线一区二区三区| 精品网站99999| 欧美精品成人一区二区在线观看| 国产激情久久久| 死我十八禁| 亚洲各类熟们中文字幕| 男人干美女| 免费操逼91| 午夜人妻精品综合在线| 啊啊啊啊嗯嗯在线久久久| 午夜男人一级A片7777| 青青草成人视频在线观看二区| 亚洲av噜噜噜噜噜噜| 加勒比大香蕉视频在线| 欲香欲色综合天天伊人| 美女诱惑爱爱| 新亚洲无码| 亚洲不卡不卡中文字幕不卡 | 四虎884| 99久re热视频精品98| 精品久久久一本一道| 欧美日韩性爱操大逼| 青女偷拍网| 人人扣人人操| 午夜国产成人精品视频| 加勒比AV网| 污污汅18禁网站在线永久免费观看| 欧美性猛交美女自慰91| 久久男人精品| 91网站18+| 久久AV无码网址| 欧美成97爱| 丝袜 亚洲 偷拍| 综合久久9| 日本九九久久99播| 亚洲精品无码久久AV| 欧美在线第五页| 麻豆这里只有精品| 操b在线观看| 日韩中文字幕av在线播放| 免费伦费视频在线观看| 久久日本熟妇熟色一区| 色女99一级片在线观看| AV免费在线播放一区| 亚洲91射| 久久九九一区二区三区成人| 夜色AV无码手机在线影院 | 91成人精品在线播放| 亚洲资源吧| 青青草密桃在线播放| 蜜乳成人AV| 欧美综合色综合| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 综合亚洲网| 小草精彩毛片| 欧美日韩操操操| 色香综合天天影视综合| 中文字幕一区二区三区人妻少妇在线| 日韩精品1区2区中文字幕| 亚洲干B| 中文字幕超碰CAO| 99久视频| 欧美精品一区二区少妇免费A片 | 国产精品无码av嫩草| 97欧美日韩精品| 91最新综合| 五月天偷拍| 老司机天天操| 综合网欧美| 69久久| 草久久久| 色综合美国| 国产色精品午夜大片| 亚洲精品国产专区在线观看| 加勒比久久av| 天天操夜夜操| 五月婷婷无码| 无码WWW免费视频网站| 熟女人妻一区二区三区免费看| 色九色久| 囯产精品强| 久久只有精品一区二区三区| 亚洲国产综合久久久性感熟妇| 91丨熟女丨丰满熟女| 亚洲高清无毛一区二区| 国产又色又粗又黄又爽| 国产久久久久久| 日韩综合第八区国产精品| 校园春色之综合网| 久久久久久久久久久久久久久性生活视频 | 蜜乳性色无码专日粉嫩骚逼AV| 热99这里有精品综合久久| 后入国产| 蜜臀99精品国产高清在线观看| 亚洲综合一| 超碰天天操| 美女黄色一级A视频| 乳欲人妻办公室奶水| 97视频网站| 97欧美在线| 99夜夜操| 男女一进一出视频久久| 欧美亚洲| 大香蕉伊人网| 中文字幕日韩专区精品系列 | 操碰97| 精品九九九九九九| 另类图片综合| 中文字幕乱码在线| 夜夜爽夜夜操| 精品一区二区三区国产| 好色综合| 91一区二区三区蜜桃| 欧美激情性久久久久久| 密乳AV免费观看| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 蜜乳AV一区| 97在线视频观看网站| 国产亚洲精品美女久久久| 黑人精品XXX一区一二区| 国语对白露脸XXXXXX| 99热超碰| 秋霞网—男女啪啪亚洲免费体验区 | 色哟哟av网址| 欧美日韩亚洲少妇寂寞影院正在播放 | 久久精品国产亚洲AV成人直播| 中国亚洲呦女专区| 蜜臀久久99精品久久综合| 久久人妇| 91性高朝久久久久久久久| 桃花色涩综合影院| 熟妇高潮二区三区| 日逼视频日本| 制服诱惑亚洲一区二区三区在线观看| 视频一区二区免费在线| 日韩99神马视频播放片在线播放| 精品日日人妻| 亚洲天天艹| 欧美双插| 青青草密桃在线播放| 超碰色老头| 亚洲性爱高潮影院| 青草成人免费视频一COm| 日韩视频精品在线观看| 18精品一区| 亚洲无码精品AV久久久| 天天摸天天碰天天添青青| 亚洲黄色视频在线观看视频| 2017大香蕉国产精品久久| 国产A v无码专区| 欧美亚州综合图片| 国产成人网站在线观看| 人人爱人人乐人人操| 天美精品一区二区三区四区在线观看| 国产激情视频一区区三区| 精品久一区免费| 国内毛片国产专区二| 91国产操逼视频| 男人的天堂VA在线| 九九毛片这里只有精品| 欧美麻豆成人同性GⅤ在线| 无码操逼视频一下| 新亚洲无码| 4tube欧美女厕所| 久久一本大香蕉| 97超碰巨乳| 国产精品久久久777| 午夜福利久久久噜久噜久久综合| 婷婷久久久| 亚洲色五月| 婷婷色播婷婷| 综合一区中亚洲国产成人综合精品 | 麻豆国产尤物AV| 婷婷在线精品| 久久亚洲精品成人av| 狼狼色丁香久久婷婷综合五月| 国产久久天堂资源| 无码粉嫩白虎一线天b区| 本道在线| 久久久精选| 欧美一级二级三级| 97精品网| 一级AV性爱| 免费久久一级毛片大黄| 亚洲欧美自拍偷拍| 亚欧高清在线| 91路www| 99久久久无码国产精品性男| 怡红院成人视频| 香蕉99秘 一区精品蜜桃臀| 日韩乱伦AⅤ| 午夜精品99久久久久传媒| 大香蕉黄色一级片免费看| 18禁无码永久免费无限制| 欧美亚洲特P| 麻豆久久精品亚洲精品88 | 美美91成人国产精品欧美精品久久久久久久| 国语人妻精彩刺激| 亚洲性猛| 97色亚洲| 久久人人爽人人爽人人片Ⅴ| 天天干一区二区| 超碰是碰在线观看| av网站在线看| 日韩av乱伦| 久久骚少妇| 午夜精品久久一区二区| 日韩丰满熟妇| 亚州色站 日韩电影| 91真人天天在线| 亚洲人妻五月丁香婷婷| AV污污污污| 久日91在线| 精品免费一区| av天堂影视中文在字幕在线中文 | 国内一级精品| 日本性爱不卡视频| 欧美午夜视频| 自拍偷拍亚洲熟女妇人精品| 精品国产嫩穴视频| 91精品人妻一品二品三品| 日本理论在线| 蜜臀va69| 欧美性爱十八禁| 920日本午夜免费| 肏逼视频日本| 大香蕉视频啪啪啪啪| 日韩无码AB| 在线97在线| 2024人人操人人摸| 操b在线观看| 91狠狠狠| 欧美综合自拍亚洲综合图| www.yeyecao| 好爽,再快点啊哈嗯嗯嗯嗯| 久久一本大香蕉 | 91视频伊人| 丝袜美腿欧美| 欧美人与性动交a美精品| av天堂精品久久| 日本 欧美 国产一区| 成人国产精品三级A片| 上海一级黄片| 人人干人人搞人人摸| 亚洲欧美清纯| 丁香九月激情| 一级性爱视频免费观看 | 99久久精品国产高潮| 麻豆精品天美| www久久99| 熟女少妇视频| 99久久久无码国产精品性男| 97视频在线观看网站| 亚洲熟女av日韩熟女| 噜噜噜亚洲精| 91色鬼| 国产在线播放成人免费| 嗯阿好爽好紧| 亚洲成人免费中文字幕| 污电影在线观看| 精品婷婷| 毛片一区二区| 超碰一区二区| 日韩激情中文字幕有码| 人妻第一页| 韩国久久97| 狠狠操,使劲操| 操淫穴亚洲五月丁香| AV综合中文字幕干| blacked精品一区国产| 色情亚洲日本成人| 伊人99热| 亚洲高清无码AAA久久久精品| 亚洲熟女一区二区| 亚洲美女色图| 久久精品亚洲婷婷| 色婷婷导航| 先锋精品av色鲁| 999精品久久久久久久| 澳门成人网站久国产日韩| 色哟哟1区2区| 青青草日韩无码| 国产原创精品| 中文一区在线视频| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 国产日韩区| 欧美啪啪色吧在线| 不卡二三区人妻少妇| 91白嫩| 后入式免费视频| 99热这里只有精品18| 欧美色图色综合| 999久久久| 国产成人拍国产亚洲精品| 日韩成人私密一级精品av| 偷拍三区| 国产AV高清AV无码| 免费在线观看国内色片网站网址| 欧美人妻一区| 天天综合网一91网| 热久久九九热| 国产精品白丝www| 日韩精品资源专区二区| 国产精品69人妻无码久久久| 五月丁香啪啪| 少妇69中文| 久久亚洲一区女同性恋中文字幕| 明星性猛交ⅹxxx乱大交| 国产日产精品久久快鸭的功能介绍| 亚洲精品一区二区三区在线播放| 夜夜爽33333| 色偷偷男人的天堂麻豆| 欧美综合天天| 影音先锋乱伦资源| 丁香六月婷婷综合| 视频在线中文字幕| 精品无码久久久久久久杏吧| 免费在线黄片视频| 另类亚洲图色| 中国小夫妻勾搭露脸淫荡对白| 日本网色| 中文字幕 国产 精品| 男女日B国产| 无码人妻一区二区三区四区老鸭窝| 男人的天堂不卡一区二区| 97在线观| 久热69九色熟妇97| 图片区小说区| 久久精品一区二区一8| 欧美激情片一区二区| 9.1小视频| 色综合V| 骚妻少妇精品性色无码四色A V| 黑人无码一区二区| 精品人妻一区二区三区-国产| 18禁止看精品中文字幕| 超碰人人色| 免费看污网址| 日韩亚洲97| 一级黄碟| 啊好爽快点-国产一区二区三区撒尿在线-成人AV| 国产精品乱码久久久久久久久久久久| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 欧美97日韩精品| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 密乳无码| 欧美天堂超碰97| 国产强上视频在线观看| 亚洲欧美91√| 九九热在线视频| 久久久久久久97| 国产亚洲欧洲在线观看| 中国女人内射6XXXXX| 国产精品禁久久久精品| 久久发布国产伦子伦精品| 亚洲国产婷婷在线播放| 夜夜春夜夜操| 日夜久久久九九九久| 久久久免费一级黄片| 超碰无码五月97| 五月激情综合网| 国产亚洲精品美女久久久| 高潮9999外国| 色哟哟1区2区| 丰满翘臀美女影院视频| 免费观看成人www精品视频| 欧美大片一区二区三区| 少妇毛片久久| 蜜臀AV网站| 一区操逼日比视频| 欧美精品69性爱| 亚洲男人在线观看天堂| 大香蕉一人在线| 台湾佬中文娱乐自偷自拍| 看免费的黄片| 蜜乳视频网站| 久久久中文| 高清孕妇孕交 交| 99re在线视频这里只有精品| 综合网欧| 9超碰免费| 日本精品免费一区二区三区四区| 夜夜爽爽爽| 日本精品一区三区| 蜜桃久久久久久久久久久久| 中文人妻av高清一区| 色婷婷丁香五月天| 综合91网| 久久久日本电影| 欧美写真视频一区| 国产91精品在线免费| 欧美性xxxxx狂欢| 日本欧美一区二区三区免费| 亚洲伊人a线观看视频| 日韩图色| 精品人妻视频入口| 亚洲国产精品无码AV久久| 日韩午夜啪啪视频| 久久天天摸| 在线观看 99热| 免费看美国人人爽,人人操| 熟女突然公开看18禁影片| 亚洲激情在线观看一区| 另类图片五月天| 免费综合亚洲中文| 亚洲AV无码黄色强奸| 91天天| 人妻少妇久久中文| 9热9热综合网| 男人高清无码一区二区| 男人的天堂久久| 亚洲色电影在线| 夜夜草天天| 午夜福利精品| 色哟哟国产精品免费网址| 91天射| 日韩欧美传媒一区国产| 无码精品久久| 在线综合色| 入口操逼网站| 97色97好| 欧美色亚洲| 国产伦精品一区二区三区在线观 | 性欧美| 五月婷婷丁香六月丁香| 天天操综合网| 超碰在线1234区| 日韩中文字幕人妻视频| 丁香九月激情啪| 欧美色图在线视频少妇| 亚洲一区二区三区在线激情| 福利在线黄片| 激情小说亚洲视频| 国产熟女完整版中字| 91夜夜蜜桃臀1区2区3区| 加勒比综合网| 极品白嫩福利在线| 91伊人| 国产怡红院| 国产精品麻豆成人av| 九九香蕉网| 国产乱子伦一区二区三区免看| 97超碰磁| 91色伦综合| 最新啪啪视频| 天天干人人乐| 99热| 秋霞一集毛片观看| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 亚洲人妻中文在线视频| 色综合99999| 青女在线| 99re在线观看| 久久久久久精品免费看A级| 国产91久久九九免费精品无码| 一本色道久久综合亚洲二区三区| 无遮挡h肉动漫在线观看| 尹人免费观看视频在线| 夜夜爽夜夜高潮夜夜爽| 欧美色蜜桃97| 激情视频一二三| 久热超碰| 人人操人人插 - 百度 - 百度| 久久久精久久久| 日日夜夜草草草| 91插B网站| www.色操逼| 免费岛国一级片| av2014 日韩在线中文字幕| 老女人日韩美91| 探花一区在线| 黄色AAAAAAAAAAA大片| 啊啊啊啊啊在线| 国产中文福利| 超碰 97国产熟女| 国产福利第一视频| aⅴ日韩成人电影av在线免费看av大全| 国产路线专区| 男人的天堂com| 熟女网站最新| 91色色综合| 极品粉嫩少妇视频| 欧美久久婷| 色第一页| 宅男91视频在线播放| 蜜桃精品一区二区三区ww| 日日夜夜狠狠| 天天综合网一91网| 五月婷在线| 欧美精品另类人妖xxxx| 久悠悠av| 一区麻豆 高清中文字幕| 99青青草国产视频| 亚洲视频小说| 欧美日韩亚洲国产中文永久天天看| 亚洲熟女乱综合一区二区三区| 超碰在线97国产| 好屌色综合| 九九九久久久W精品| 亚洲无码一区成人免费午夜| 校园激情狠狠四射| 国产黄色视频久久| 亚洲国产欧美另类自拍| 中文字幕一区二区三区视频播放| 日韩av乱伦| 人妻一区二区三区| 色九九综合AV| 99久久精品国产系列| 国产精品无码久久久久2028| 另类天堂| 欧美性爱另类综合| 日本有码影片下载| 亚洲情色综合网| 精品福利| 99热伊人| 久久香蕉超碰97国产精品 | 色五月激情AV在线| 96一区二区| 亚洲 欧美 手机在线观看| 91麻豆天美国产欧美高潮| 少妇高潮对白在线观看| 超碰97在线中文| 色情成人五月天| 思思热国产高清| 亚洲淫乱骚妇AV| 久操婷婷| 超碰在线日韩一区| 日本亚洲熟女视频| 亚洲男人的天堂在线看| 精品妇操一区二区三区| 不卡av在线中文字幕| 九九无码久久精品视频| 国产精品午夜福利| 18啪啪手机免费性爱| 亚洲精品视频在线| 欧洲一区二区三区四区在线观看| 日本成熟少妇A∨网站| 国模无码人体一区二区三| 国产福利合集| 亚洲经典啪啪| 欧洲精品网| 伦理第一页| 日本一区二区三区午夜观看| 成人精品一区二区91毛片不卡| 熟女六十路| 亚洲欧洲第二视频在线观看色图| 性爱网站一区二区| 亚洲大色堂| 家庭乱伦网站国产| 中日992视频| 欧美午夜精品久久久久久3D| 欧美色乱| 亚洲色资源| 亚欧性爱在线无码| 大香蕉欧美| 大香网伊人久久综合网eew| 一级啊性爱在线视频| 91在线观看,天天综合| 色女99一级片在线观看| 另类小说综合网| av线电影| 国产精品小视频一区二区三区| 日本色色视频网站| 清纯唯美综合| 久久久久密臀视频| 青娱乐 成人娱乐在线| 免费αⅴ在线观看| 2023天天操夜夜操| 亚洲综合骚逼| 日韩99神马视频片| 99色色| 乱伦3P视频| 襙一襙| 在线免费观看高清无码视频| 久久久成人精品| 9精品在线| 国产suv精品一区二区四区999| 国产农村一一级特黄毛片| 99这里都是精品| 国产和美国毛片| 红杏大香蕉| 亚洲天堂电影精品一区| 密乳AV免费观看| 嫩草美女久久| 久久久久久久强迫| 亚洲综合91| 亚洲婷婷丁香在线| 国产乱子伦久久精品综合一区二区三| 99色在线| 肉丝无码中文高清| 欧美性五月| 天天影视网色欲色香| 四虎884| 91热色| 又粗又长又大国产不卡| 精品视频在线观看| 成人午夜高潮av猛片| 国产操逼视频在线观看| 亚洲国产一区二区入口| 国产精品久久久久久久AV大片| 国产精品久久久久亚洲av| 亚洲国产一区二区入口| 日本午夜久久电影| 欧美一区二区亚洲天堂| 国产成人网| 亚洲男人的天堂AV| 亚洲日韩久久精品一区| 岛国天天午夜影院传媒网| 99久久99九九99九九九| 中日韩免费看男女操逼大全| 熟女丝袜视频| 国产91专区| 亚洲欧洲综合成人av一区| 久久精品国产99国产精品亚洲| 国产91影院| 中文字幕视频一区视频二区| 欧美色偷偷| 久热超碰| 亚洲国产综合图区中文字幕 | 国产精品suv一区| 5月婷婷6月六月丁香| 色黄色美女大长腿午夜视频| 97综合国产| 囯产精品久久久久久久久久梁医生| 亚洲综合91| 99热伊人| 久干网| A一区片| 亚洲天堂五月天国产| 亚洲va综合va国产va中文| 久久久久斤小| 四虎国产精品永久在线囯在线| 亚洲中文字幕精品久久久久久直播| 四虎永久在线精品免费网址 | 欧美狠狠操| 久操免费观看| 亚洲啪啪性视频| 大香蕉青青9| 新久久AV| 亚洲欧洲无码97久久精品| 国产无码三级视频在线观看| 精品妇女一区二区三区| 久久在肏| 亚洲少妇色| 日韩一二三区| 91丝袜美腿网站| 女性喷水高潮在线观看| 久久久久久久久久久久久久9999| 婷婷色网| 日韩精品黄片免费观看| 嗯嗯啊啊的视频| 亚洲欧美精品福利在线| 四虎在线视频| 大香樵伊人网| 看免费的黄片| 综合色久| 欧美传媒| 九色 蝌蚪 熟女自| 国产色精品午夜大片| 亚洲熟妇图片| 亚洲av国产av综合av卡| 蜜臀一二三| 岛国精品视频在线观看| 日韩97视频| 婷婷激情五月天小说网| 人妻喷水| 欧亚不卡| 嗯嗯啊在线视频| 人人操我人人干| 另类小说欧美激情校园春色| 美女露胸露屁股| 99婷婷| 欧美日韩操逼动图| 97超碰色色| 无套后入双马尾| 国产美女口爆吞精| 天天爽天天| 免费一级视频特黄色大片| 黑人免费福利视频| 后入国产| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 色婷婷在线视频| 欧美很很操视频| 中文字幕二区日韩天堂| 狠狠操狠狠插|