日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

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

C#與HALCON聯(lián)合開發(fā)機器視覺檢測系統(tǒng):架構(gòu)、模塊與驗收實踐 簡介圍繞C#與HALCON構(gòu)建的機器視覺檢測系統(tǒng)是一套面向機器視覺初學者與中高級開發(fā)者的完整工程源碼聚焦工件表面質(zhì)量檢測場景。系統(tǒ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人學習下載。讀者可據(jù)此理解C#調(diào)用HALCON算子、視覺流程編排、檢測結(jié)果展示與工程部署方式并借助測試圖復現(xiàn)實驗、定位問題積累可遷移的機器視覺系統(tǒng)開發(fā)經(jīng)驗。1. 一條外觀檢測線的真實取舍C# 與 HALCON 到底誰管哪一段某產(chǎn)線要做零件外觀檢測最初的想法很樸素用 C# 把相機采到的圖讀成 Bitmap自己寫閾值、找輪廓、算尺寸。真跑到現(xiàn)場就卡住了——換一批來料光照差兩檔閾值全廢亞像素定位沒有測量值跳動比公差還大模板匹配要從頭造輪子。后來改成 C# 寫上位機、HALCON 做算法內(nèi)核機器視覺里最費勁的那部分交給成熟算子庫視覺檢測系統(tǒng)里界面、流程、數(shù)據(jù)、報警、配方這些工程活留在 C# 里。這份 C# 與 HALCON 聯(lián)合開發(fā)的機器視覺軟件系統(tǒng)源代碼就是按這個分工搭起來的完整視覺檢測系統(tǒng)相機采集、模板定位、尺寸測量、缺陷判定、結(jié)果落盤、配方切換一條鏈走完。它適合正在做機器視覺方向畢設或課程設計的學生也適合要把一套能跑的 C# 視覺軟件直接搬到自己設備上改的工程師。2. 需求拆解與選型把「能看見缺陷」翻譯成節(jié)拍、精度和軟件棧2.1 檢測項怎么落成可量化的指標需求溝通里最容易翻車的一句話是「要能檢出劃傷」。這句話沒法驗收也沒法寫代碼。負責的做法是先把它拆成四列測什么、用什么成像方式測、精度要到多少、判定閾值是多少。檢測項一般分三類——尺寸類長度、直徑、間距、角度、位置類裝配偏移、缺件、錯件、表面類劃傷、臟污、毛刺、壓痕。三類在算法上的實現(xiàn)路徑完全不同尺寸類靠測量工具位置類靠模板匹配加區(qū)域比對表面類多半要靠 Blob 分析、頻域濾波或者差異圖。精度這一欄要用像素當量倒推不能拍腦袋。視場 40mm、相機 2448×2048像素當量約 0.016mm/pixelHALCON 的亞像素邊緣通常能做到 1/4 像素以內(nèi)折算下來重復性在 0.004mm 量級。所以一個標稱 ±0.02mm 的尺寸項在這個配置下是有余量的要是公差要求 ±0.005mm那就該換遠心鏡頭、提高分辨率或者上背光而不是指望算法硬扛。我一般會先算這筆賬再談選型省得后面相機都裝好了才發(fā)現(xiàn)精度不夠。檢測項成像方式精度要求判定方式外形長寬背光、遠心鏡頭±0.02mm卡尺工具測邊緣對距離孔位偏移同軸光±0.03mm模板匹配定位后測圓心表面劃傷低角度環(huán)形光最小 0.1mm×2mmBlob 面積長寬比篩選缺件/錯件正面均勻光有無判斷區(qū)域灰度均值與模板比對裝配間隙側(cè)向條形光±0.05mm測量矩形內(nèi)雙邊緣間距節(jié)拍是另一條硬約束。單件 300ms 的產(chǎn)線一次曝光加傳輸大概吃掉 6080ms算法預算只剩 200ms 出頭還得留出通訊和界面刷新的余量。所以算法流程要做成「先粗后精」先用降采樣圖像做快速定位把 ROI 縮到工件附近再做全分辨率的測量和判定。這套系統(tǒng)的流程編排就是按這個思路排的每個工具只在自己關(guān)心的 ROI 里跑不整圖掃。2.2 C# 做上位機、HALCON 做算法核的分層依據(jù)有人會問HDevelop 也能拖界面為什么還要 C#答案是工程化。產(chǎn)線上的軟件不只是跑算法它要連 PLC、要存追溯數(shù)據(jù)、要做用戶權(quán)限、要支持十幾個料號的配方切換、要能在客戶現(xiàn)場遠程看日志。這些事 HDevelop 做得吃力.NET 生態(tài)里是現(xiàn)成的。反過來純 C# 加 OpenCVSharp 也能做視覺但形狀模板匹配的抗遮擋能力、亞像素邊緣的穩(wěn)定性、標定工具鏈的完整度調(diào)起來的隱性成本很高。所以分工線畫在這里C# 負責「殼」——界面、流程調(diào)度、多線程、數(shù)據(jù)庫、通訊協(xié)議、配置管理、日志與報警HALCON 負責「眼」——圖像預處理、模板匹配、邊緣提取、測量、Blob 分析、標定換算。兩邊通過 HALCON 的 .NET 接口HObject / HTuple交接邊界清晰。這條線畫對了后面加檢測項就是加一個工具類不用動主流程。分層還有個現(xiàn)實好處算法參數(shù)可以外置成配方工藝工程師改參數(shù)不用重新編譯。這套系統(tǒng)里所有閾值、ROI 偏移、匹配分數(shù)下限、灰度上下限都放在配方文件里程序啟動時加載切換料號時熱更新。2.3 算子與相機選型的對照取舍選型時最常糾結(jié)的幾組我把自己會怎么選列出來場景常見選擇 A常見選擇 B我一般選工件有旋轉(zhuǎn)、部分遮擋NCC 灰度匹配形狀模板匹配B對光照變化和遮擋更穩(wěn)邊緣位置測量手寫梯度找極值measure_pos 測量工具B亞像素和抗噪現(xiàn)成表面缺陷提取固定閾值 Blob動態(tài)閾值 形態(tài)學B適應光照漂移大幅面高速采集USB3 面陣GigE 面陣看線長超過 5m 用 GigE精密尺寸普通 FA 鏡頭雙遠心鏡頭B視場內(nèi)的放大倍率一致性更好相機接口這塊GigE 的優(yōu)點是線纜長、多相機組網(wǎng)方便缺點是延遲比 USB3 略高USB3 帶寬足、延遲低但線長限制在 35m工業(yè)現(xiàn)場走線要提前規(guī)劃。這套系統(tǒng)里采集層做了接口抽象換相機只改一個配置項算法層完全不用動——這也是分層帶來的直接收益。提示選型階段就把「精度、節(jié)拍、視場、景深」四個數(shù)寫進需求文檔后面所有爭論都回到這四個數(shù)上比爭論用哪個算子有效得多。3. 總體架構(gòu)設計三層結(jié)構(gòu)與六個模塊的職責邊界3.1 表現(xiàn)層、業(yè)務層、算法層的劃分整套軟件按三層切。表現(xiàn)層是 WinForm 或 WPF 的主界面負責實時圖像顯示、結(jié)果列表、參數(shù)編輯、報警提示它不碰任何 HALCON 算子只消費業(yè)務層給出來的結(jié)果對象。業(yè)務層是流程引擎和調(diào)度中心管著「取圖 → 定位 → 測量 → 判定 → 存檔 → 通訊」這條流水線同時管配方加載、權(quán)限校驗、異常上報。算法層是 HALCON 的封裝每個檢測能力包裝成一個工具類對外只暴露「輸入圖像 參數(shù) → 輸出測量值」這樣的簽名。這樣切的好處是測試好做。算法層的每個工具可以單獨拿一批離線圖片跑回歸業(yè)務層可以用假的圖像源做流程測試界面層改動不影響算法正確性。做畢設答辯時這一點特別加分——老師問「你怎么驗證算法是對的」你能拿出分層測試的記錄比說「我跑了一遍看著沒問題」有說服力得多。六個模塊分別是設備接入相機、光源、PLC/IO、圖像預處理、定位與測量、判定與分類、數(shù)據(jù)與追溯、配方與權(quán)限。每個模塊內(nèi)部的類只依賴下一層的接口不允許跨層直接調(diào)。比如判定模塊不能自己去讀相機它只接收測量模塊的結(jié)果數(shù)組。3.2 圖像從相機到算法再到數(shù)據(jù)庫的流轉(zhuǎn)通路高節(jié)拍下最容易出問題的是圖像流轉(zhuǎn)。做法是采集與處理分離相機回調(diào)線程只做一件事——把 HObject 塞進一個有界隊列然后立刻返回絕不在回調(diào)里跑算法。算法線程從隊列里取圖處理處理完把結(jié)果對象推到結(jié)果隊列界面線程和存盤線程各自消費。隊列要有界滿了就丟最舊的一幀并記一條丟幀日志避免內(nèi)存無限堆積。// 采集線程與算法線程之間的有界緩沖容量按節(jié)拍和算法耗時估算 private readonly BlockingCollectionHObject _imageQueue new BlockingCollectionHObject(8); // 相機回調(diào)只負責入隊禁止在這里做任何耗時運算 private void OnImageGrabbed(HObject image) { HObject copy; HOperatorSet.CopyImage(image, out copy); // 回調(diào)緩沖會被復用必須拷貝 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。很多相機 SDK 的回調(diào)緩沖區(qū)是復用的你把引用直接傳出去下一幀到來時圖像內(nèi)容就被覆蓋了現(xiàn)象是「偶爾檢測到上一件的缺陷」這種問題查起來極其折磨。拷貝一次的代價遠小于排查成本。隊列容量 8 是按「算法單幀 80ms、節(jié)拍 300ms」估的實際項目里按實測的算法耗時乘 23 倍來定太大反而掩蓋性能問題。3.3 模塊之間的接口約定與異常傳遞工具層統(tǒng)一接口是為了讓流程配置化。每個檢測工具實現(xiàn)同一個契約流程引擎按配方里配置的順序依次執(zhí)行public interface IVisionTool { string Name { get; } // 工具標識配方里按名字引用 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é)論兩者混在一起會導致「算法失敗被當成 NG 品流出去」這在追溯時是災難。執(zhí)行異常要走獨立的報警通道讓設備停下來等人處理而不是默默計數(shù)。結(jié)果落盤用一張主表加一張明細表就夠了主表存單件結(jié)論明細存每個測量項的值方便后面按項做趨勢分析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é)點對應 Value REAL NOT NULL, LowerLimit REAL, UpperLimit REAL, IsOk INTEGER NOT NULL );索引這兩條不是湊數(shù)。按 Sn 查是為了追溯按時間查是為了做日報和趨勢圖產(chǎn)線上這兩個查詢是每天都跑的。明細表拆出來是因為一個工件可能有十幾二十個測量項塞進主表的 JSON 字段里查起來費勁做 SPC 分析時更難受。4. 核心模塊實現(xiàn)采集、定位、測量、判級四段代碼落地4.1 相機接入與 HObject 的生命周期相機接入層要做三件事打開設備、配置參數(shù)、穩(wěn)定取圖。HALCON 用open_framegrabber統(tǒng)一封裝各家接口參數(shù)隨接口類型不同而不同具體字段要按相機廠商的接口文檔對齊不能照抄。public class CameraDevice : IDisposable { private HTuple _acqHandle null; private readonly object _lock new object(); public void Open(string interfaceName, string deviceId) { // 參數(shù)順序固定含義依次為接口名、水平/垂直分辨率、起始位置、 // 圖像寬高、場序、位深、色彩空間、泛型參數(shù)、外部觸發(fā)、相機類型、設備標識 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; } } }自動曝光這一條值得單獨說。調(diào)試時開著自動曝光畫面好看上線后光源老化、環(huán)境光變化相機會自己調(diào)增益灰度整體漂移閾值型檢測項集體失效。血淚經(jīng)驗是調(diào)試階段就用固定曝光固定增益把光源亮度調(diào)到能拿到穩(wěn)定灰度的位置之后不再動它。真要適應不同料號的反光差異靠配方里的曝光參數(shù)切換不靠相機自動。HObject 是托管包裝的非托管資源必須顯式釋放。用using或者 try/finally 里的Dispose()不能指望 GC。這一點在第 5 章展開。4.2 形狀模板匹配與亞像素定位定位是整個流程的地基定位偏了后面所有測量都偏。做法分兩步建模階段從一張標準件圖像里摳出特征明顯的區(qū)域生成形狀模板運行階段用模板在當前圖里找位姿。// 建模在一張合格品圖像上框出特征區(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; } // 運行在當前圖中查找返回行、列、角度、得分 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, // 最小得分低于它認為沒找到 1, // 最多找?guī)讉€匹配單件檢測取 1 0.5, // 重疊度 least_squares, // 亞像素模式精度最高的那一檔 0, // 金字塔層數(shù)0 表示用建模時的設置 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)誤認成目標定太高0.85 以上則在來料表面有輕微臟污時找不到。經(jīng)驗值是先設 0.7拿一批包含邊界樣本的圖跑看得分分布取一個能把 OK 品和誤匹配分開的閾值。Greediness 默認 0.9如果發(fā)現(xiàn)偶爾漏檢先往 0.8 降一檔試試速度會慢一些但更穩(wěn)。建模區(qū)域的選擇也有講究不要選大面積的均勻區(qū)域那種區(qū)域沒有梯度信息模板會退化成靠邊緣支撐抗噪能力差要選帶角點、圓孔、缺口這類強特征的位置。模板圖像盡量用實際產(chǎn)線的相機和光源拍別拿實驗室的樣品圖湊合光學條件不一樣模板的對比度參數(shù)就不對了。4.3 測量與判級從像素值到 OK/NG 結(jié)論有了位姿測量就好辦了。思路是把模板坐標系里定義好的測量位置通過剛性變換映射到當前圖像的實際位置再用測量工具在映射后的位置取邊緣。這樣來料有平移旋轉(zhuǎn)也不影響。// 模板坐標系下的基準點與測量矩形參數(shù)建模時在標準件上確定 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)造模板坐標 - 當前圖像坐標的剛性變換 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 是相鄰邊緣間距像素乘像素當量換成毫米 double pixelScale param.Valuedouble(PixelScale); // 由標定得到如 0.0163 return interDist.D[0] * pixelScale; }Sigma和Threshold這兩個參數(shù)是測量的手感所在。Sigma 是高斯平滑的系數(shù)來料表面粗糙、圖像噪點大就調(diào)大到 1.52.0代價是邊緣位置會被輕微模糊精度略降圖像干凈就保持 1.0 甚至 0.8。Threshold 是邊緣幅度閾值它決定什么算作邊緣——太低會把噪點當邊緣太高會漏掉對比度弱的真實邊緣。穩(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ū)默認 0 // 死區(qū)的作用剛好卡在邊界上的值做二次確認避免 OK/NG 反復橫跳 if (value lower - tol) return (false, param.Valuestring(DefectCodeLow)); if (value upper tol) return (false, param.Valuestring(DefectCodeHigh)); return (true, null); }判定死區(qū)這個小設計在批量生產(chǎn)時很關(guān)鍵。沒有它的時候一個值在上下限附近抖同一個工件可能這次 OK 下次 NG操作員會懷疑設備有問題。加了死區(qū)之后邊界附近的值統(tǒng)一往寬松方向靠配合趨勢圖看反而更容易發(fā)現(xiàn)工藝漂移。NG 圖像一定要存。存圖策略按「日期 / 料號 / 時間戳_缺陷碼」的目錄結(jié)構(gòu)落盤保留最近 30 天超期自動清理。這張圖在后續(xù)分析缺陷成因、和供應商扯皮的時候是唯一的證據(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就把位姿寫進上下文后面的測量工具從上下文里取。新增一個檢測項只是在數(shù)組里加一個節(jié)點代碼零改動。配方的加載和熱切換要注意兩點一是切換時必須在流程空閑的間隙做不能在一件工件處理到一半時換參數(shù)二是每次切換記一條日志包含料號、操作人、時間出問題時能對上是哪次切換引入的偏差。注意配方文件建議加版本號和校驗值現(xiàn)場出現(xiàn)過配置文件被人手工改壞、程序啟動直接崩的情況加個校驗能提前攔住。5. 避坑與常見問題排查內(nèi)存、線程、標定三處最容易翻車的地方5.1 內(nèi)存只漲不落現(xiàn)象程序跑兩三個小時內(nèi)存從 200MB 漲到 2GB最后卡死或者被系統(tǒng)殺掉。原因幾乎都是 HObject 沒釋放。HALCON 的圖像和區(qū)域?qū)ο蟮讓邮欠峭泄軆?nèi)存C# 的 GC 只回收包裝對象不會主動去釋放底層句柄峰值節(jié)拍下對象創(chuàng)建速度遠超終結(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); }排查手段任務管理器看句柄數(shù)比看內(nèi)存更準句柄只漲不落就是泄漏。也可以在每個流程節(jié)點前后打一條get_system(handle_count)的日志幾個循環(huán)就能定位到是哪個工具漏了。5.2 多線程下的偶發(fā)崩潰現(xiàn)象單線程跑一天沒事改成多線程后隨機崩報的是訪問沖突或者算子內(nèi)部錯誤日志里看不出規(guī)律。原因是 HALCON 的 HTuple 和 HObject 不是線程安全的兩個線程同時操作同一個對象或者在 A 線程創(chuàng)建、B 線程釋放都可能出問題。解法是「誰創(chuàng)建誰釋放跨線程只傳值不傳引用」算法線程處理完把測量值double 數(shù)組和結(jié)果碼傳出去不要把 HObject 傳來傳去確實要傳圖像就在目標線程里CopyImage一份。另外 HALCON 的算子在內(nèi)部已經(jīng)做了并行外層再開一堆線程搶 CPU 反而是負優(yōu)化算法線程一般開 12 個就夠。5.3 標定與像素當量換算翻車現(xiàn)象測量值整體偏大或偏小百分之幾重復性很好但準確度不對。原因多半在像素當量上。像素當量不是拿標稱視場除分辨率算出來的那個值忽略了鏡頭畸變和實際放大倍率偏差。正確做法是拿一塊標準量塊或者標定板在同一工作距離下拍圖量出已知長度對應的像素數(shù)兩者相除。更嚴謹?shù)淖龇ㄊ亲龆帱c標定把鏡頭畸變一起擬合掉視場邊緣的測量值才不會系統(tǒng)性偏大。還有個容易忽略的點更換鏡頭、調(diào)整工作距離、甚至相機被撞了一下像素當量都要重新標。我見過一個項目調(diào)試時標定過后來調(diào)焦換了鏡頭沒重標整批產(chǎn)品尺寸超差卻判 OK流到客戶那邊才發(fā)現(xiàn)。現(xiàn)在我的習慣是每次動過光學系統(tǒng)就在配方里改標定日期并在開機自檢里加一條「標定有效期提醒」。5.4 觸發(fā)時序錯位與丟幀現(xiàn)象檢測結(jié)果和產(chǎn)品對不上號或者偶爾漏檢一件。這類問題多半在觸發(fā)鏈路上。相機是硬觸發(fā)還是軟觸發(fā)、PLC 給信號到相機曝光的延遲多少、編碼器分頻對不對、光源頻閃和曝光是否同步任何一環(huán)錯位都會導致「拍到了相鄰的一件」。排查方法是拿一張帶標記的樣件連續(xù)跑 100 件把每件的圖像和條碼一一對應看錯位會立刻暴露。修復上硬觸發(fā)優(yōu)先于軟觸發(fā)觸發(fā)信號走光耦隔離別用普通 IO 直連曝光時間和光源延時要在配方里成組配置不能分開調(diào)。5.5 部署環(huán)境缺運行庫現(xiàn)象開發(fā)機上跑得好好的拷到產(chǎn)線電腦上雙擊就報錯或者一打開相機就崩。原因是目標機缺 HALCON 運行時或者 .NET 運行時版本不匹配也可能是相機廠商的驅(qū)動沒裝、網(wǎng)卡巨幀沒開。部署前要列一張環(huán)境清單.NET 運行時版本、HALCON 運行庫位數(shù)32/64 位必須和主程序一致、相機驅(qū)動版本、網(wǎng)卡巨幀和中斷親和性設置、系統(tǒng)電源計劃改成高性能別讓 CPU 降頻。這張清單每次部署都過一遍比現(xiàn)場抓瞎強。6. 驗收與答辯用一組可復現(xiàn)的數(shù)據(jù)證明系統(tǒng)「測得準、跑得穩(wěn)」驗收這一步很多人栽在「我說它準」上。合格的做法是拿數(shù)據(jù)說話而且數(shù)據(jù)要可復現(xiàn)。我一般準備三組測試準確性測試、重復性測試、穩(wěn)定性測試。準確性用標準件。拿 10 件已知尺寸的標準件或者三坐標測過的樣件每件測 10 次算每個測量項的平均值和標準值的偏差。偏差要小于公差的三分之一超了就得回去查標定或者算法。重復性用同一件產(chǎn)品連續(xù)測 30 次算標準差這個數(shù)反映的是系統(tǒng)自身的抖動一般要求小于公差的十分之一。穩(wěn)定性是連續(xù)跑 48 小時統(tǒng)計總檢數(shù)、誤檢數(shù)、漏檢數(shù)、算法異常次數(shù)同時記錄內(nèi)存和句柄曲線。驗收項指標測試方法記錄內(nèi)容測量準確性偏差 ≤ 公差/310 件標準件 × 10 次均值、偏差、最大值重復性標準差 ≤ 公差/10同件連續(xù) 30 次標準差、極差檢出率≥ 99.5%200 件含已知缺陷樣本漏檢數(shù)、漏檢類型誤檢率≤ 0.5%200 件合格品誤檢數(shù)、誤檢原因節(jié)拍≤ 設計值連續(xù) 500 件計時平均、P95、最大值長時間穩(wěn)定性8 小時無異常連續(xù)運行內(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 面積下限設太大把下限從 200 調(diào)到 120 之后降到 0.5%——這種帶數(shù)字的調(diào)試過程比任何架構(gòu)圖都有說服力。還有一個常被問到的點如果換個料號怎么辦。這時候現(xiàn)場演示配方切換30 秒內(nèi)完成切換后連續(xù)跑 20 件全部正確這一下就把「課程作業(yè)」和「能交付的系統(tǒng)」區(qū)分開了。從那以后我每次做完一套視覺系統(tǒng)驗收前都強制走一遍「標準件 重復性 8 小時連續(xù)跑」這三關(guān)哪怕時間再緊也不跳。跳過一次后面在現(xiàn)場補的功夫是省下來那點時間的好幾倍。希望這套結(jié)構(gòu)和記錄方法能幫到你需要對照完整實現(xiàn)的話倉庫里的源代碼可以直接拿去做參考。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
性爱欧美五月| 色777999综合| 韩国手机不卡无码三级视频| 亚洲色欲一区二区三区| 一级岛国大片| 欧美日韩97在线| 日韩亚洲Av人人夜夜澡人人爽| 亚洲色性情三级| 欧美一级久久久丰满| 97视频在线视频| 3PAV乱伦视频| 理论久久婷婷网 8| A一区片| 国产九区| 亚洲欧美日韩精品久久久一区二区 | 午夜亚洲| 97在线视频网站| 人妻久久久久久| 日本性爰一道本| 激情抓乳插进去啪啪啪日韩| 久久精品一区二区三区蜜桃臀| 久久久久亚洲精品| 99久在线精品99re8| 青草影院内射高潮| 亚洲欧洲日韩中文字幕一区| 91综合色噜噜| 色色色欧美| 嗯啊不要在线| 婷婷国产精品九区| 啊啊啊在线观看| 在线观看中文av字幕| 91网亚洲| 免费观看性欧美一级| 麻豆一区二区AV天美| 九九九999久久久网站| 极品极品色影院| 日本精品一区三区| 激情综合网一盗摄| A V少妇特黄三级| 日韩小电影| 久久久com| 国产强奸乱伦无码视频| 夜夜高潮夜夜爽高清视频一| 青青久久艹| 色综合色综合网| 后入式999| 国产激情av女片自拍| 国产熟妇一区二区| 操人91| 91天堂网| 人妻天堂综合网| 久久久青青草| 中文字幕亚洲欧美在线不卡| 国产成人免费观看在线视频| 97干97色| 久久久久9久久久久| 亚洲精品九九九| 天天综合网AV91| 久久草在线综合视频| 少妇淫妇久久久久久久| 四虎影院成年人片| 国产又猛又粗又爽又黄| 一二三区视频在线观看| 午夜啊啊啊| 在线人成亚洲视频免费观看| 免费观看一区| 插B在线观看| 69精品在线| 中文字幕精品一区二| 五月天亚洲网| 色香综合天天影视综合 | 久久九色| 九九九成人| 天天爽夜夜欢视| 日本道不卡| 国模91| 久热久操| 吉川爱美亚洲二区在线| 午夜综合在线| 中文字幕在线第二页| 日韩婷婷| 超碰日本97美女人妻人人玩人人爱| 欧美日韩香蕉| 狠狠色噜噜狠狠狠狠2018| 丝袜美腿91| 天天搞欧美| 精品二区三四区五电影 | 色色色热| 93人人操人人| 狠狠操狠狠操操| 天天草AV| 91人妻人人妻| 亭亭在线资源| 日韩欧美亚洲自拍偷拍| 国模精品娜娜一二三区| 射丝袜高跟鞋99| 国产精品久久久 | 国产一区二区三区中文字幕| 大香蕉伊然在亚洲91| 亚洲视频精选| 综合操逼| 亚洲最大的黄色电影网站。| 97手机日韩| 上海一级黄片| 按摩中文字幕| 亚洲欧美天堂| 久操操| 精品十三区| 快灬快灬 一下爽蜜桃在线观看| 日本性感人妻91| 中日高清无码操逼视频| 亚洲青色欧美| 超碰在线欧美性爱激情| 开心五月深爱五月| 亚洲日本天堂| 亚洲日韩美国人妻| 免费网站观看www在线观| 欧美黄业| 97色婷| 熟女精品一区二区在线观看| 国产无码久久高清| 亚洲欧美校园另类春色| 久久久久久人体| 一区二区三区黄色片a| 日本国产欧美高清在线| 欧美日韩国产中文精品字幕自在自线, | 蜜臀AV成人精品蜜臀| 少妇激情一区二区三区视频| 天天爽天天操| 狠狠操狠狠操操| 99热91| 国产人妻久久精品一区二区三区| 久久性视频| 另类老少妇| 久久久久国产一区二| 少妇500双飞99| 女人天堂av在线播放| 丁香六月激情综合| 99re这里只有| 久久的网站啊啊啊啊啊| a'v在线资源| 蜜臀久久99精品久久久老,,| 淫荡网址| 在线天堂999| 中英熟女操女| 91高跟美女在线播放| A级毛片在线看免费| 日韩AV一区二区三区三州三州| 亚洲色天| 久久 精品| 欧美精品另类人妖xxxx| 中文字幕在线免费观看| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 欧美成97爱| 五月丁香啪啪啪| 国产精品乱码久久久| 麻豆黄色五月天| 日少妇视频| 九九亚洲视频| 欧美狠狠| 成人黄页| 后入美女国产| 亚洲国产婷婷在线播放| 99少妇| 特污免视频| 激情天天视频| 操死我了嗯嗯嗯| 国产精品久久成人免费| 日韩在线电影| 91在线/欧洲| 亚洲国产成人高清在线| 性性久久| 欧美色66| 2024人人操人人摸| 人人操欧美风骚| 性爱欧美五月| 亚洲AV小说| 国产日韩精品人妻久久久久色欲网站| 加勒比海色香蕉婷婷| 青青草视频久久久久| 午夜亚洲国产理论秋霞| 美女黄网| 99AV| 天天热精品| 欧美色棕合| 亚洲最大成人a毛毛片| 亚洲欧美校园| 色九九综合AV| 一牛一区二区三区久久| 中文字幕av色| 2018色综合天天操| 国产精品 久久久精品一牛| 福利在线视频一区二区| 人妻少妇视频在线播放| 亚洲综合五月天| 人人操人人舒服| 蜜臀网 一区| 亚洲999综合| 超碰超碰欧美| 强奸乱伦资源| 日韩无码三级影院| 日韩无码一级黄色av片| 日日摸日日碰夜夜爽视频| 亚洲色图 图片| 亚洲色人妻综合| 妺妺跟我一起洗澡没忍住| 精品人妻一区二区三区四区石在线 | hd成人一区二区在线| 91精品无码久久久久久久| 亚洲在线A| 校园春色亚洲| 天天欧美97| 超碰97在线色男人??| 97看操| 国产精品久久发布| 亚洲国产精品乱码在线观看| 欧美色五月| 国产无马av| 日欧亚洲二三区大片不卡| 国产亚洲精品一区二区三区| 在线毛片片免费观看| 综合97| 久久在肏| 亚洲欧美不卡线| 精品天堂| 中文字幕欧美丝袜07资源| 老鸭窝在线视频播放| 9长久久精品| 96国产污污污丝袜| 99在线啪| 性感美女91影视| 中文字幕免费在线观看| 色爱欲亚洲| 亚洲综合射| 久久人妻少妇| 日本在线999| 67914在线兔费成人视频| 97se综合网| 久久超碰98| 大屁股国产在线视频| 91丨精品丨国产丨丝袜| 国产麻豆91欧美一区二区久久婷婷国产精品 | 成人 日韩欧美一区| 强奸a片网| 久久久97| 一区二区三区无卡视频在线观看| 97jingpin| 久操视频在线| 亚洲在线91| 成人免费性爱视视| 国产日韩欧美中文在线播放| 中国亚洲呦女专区| 亚洲精品久| 电影69乱码96| 亚洲一区二区 麻豆传媒| 中文字幕第23区| 日本性一区| 亚洲在线欧美| 日本国产高清色www视频在线| 日本欧美国内在线| 亚洲天堂女优在线 | 欧美日韩操操操| 在线另类| 91在线/欧洲| 亚洲风情在线观看| 亚洲暴力强奸AV| 色综合色| 欧美综合 站| 午夜美女诱惑电源网| 国产综合日韩伦理| 啪啪综合网| 麻豆一区二区三区精品| 国产精品乱码久久久、久久| 日韩欧美中文字亚洲慕| 亚洲 小说 欧美 激情 另类| 欧美99| 五月天亚洲网| 亚洲天堂一区| 日本欧美成人片AAAA| 狠狠图片青青草| 99热伊人| 91精品国产高清久久久久久,亚洲成人| 天天肏美女| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 欧美日韩国产在线| 久久噜噜噜精品国产亚洲综合| 国内外内射高清视频| 超97在线精品视频| 久久精品视频28| 大香蕉伊人75| 亚洲欧美成人在线| 91亚洲欧美综合高清在线| 国产AAAAAABBBBB| 色婷婷五月天| 久久久久深夜无码| 国产精品蜜乳AV| 欧美色图私拍91| 精品传媒在线一区| 精品国产一区二区三区av在线资源| 亚洲第91页 | 麻豆精品久久久久久久| 丝袜足交视频| 国产一区二区av综合| 四虎免费看黄| 在线看片国产精品每日更新| 蜜桃久久精品一区二区三区| 欧美一二三级精品在线| 日本大香蕉| 少妇厨房愉情理伦片bd在线观看 | 夜夜 中文视频rt| 色屁屁影院www国产| 成 人 影视 一区 二区 三区 四区| 999色欧美中文字幕| 88xx成人精品视频| 久久內射| 性爱免费视频成人| 躁躁日曰躁2020| 精品91| 人妻精品综合中文字幕在线 | 91处女在线视频| 一本大道不卡一二三区| 91欧美综合在线| 国产一级不卡在线观看| 劲爆欧美人妖三区91| 加勒比久久综合网高清| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 国产日韩在线播放av| 天天摸天天碰天天添青青| {男男暴菊gay无套网站| Aa东京男人的天堂| 亚洲av乱伦色图网站| 91大香蕉伊人| 婷婷国产精品九区| 涩涩这里只有精品视频| 久久人妻一区二区三区高清| 婷婷五月天AV| 26uuu性| 人妻少妇无码| 天天日日本| 男人天堂久久精品不卡| 国产按摩一区二区三区| 偷拍三区| 人妻另类| 麻豆久久久久久久久丝袜 | 强奸乱伦麻豆| 91丨人妻丨国产丨丝袜| 天天干人妻| 久久精品国产亚洲AV嘿嘿| 亚欧美色图| 亚洲少妇喷视频看| 日韩精品碰碰| 加勒比aⅴ| 97超碰国产精品| 久久精品国产99精品亚洲蜜...| 97免费视频在线观看视频| 亚洲国产激情国产av| 美女91网站| 成人熟女区| 亚州免费啪啪视频| 超碰色97| 97视频新免费| 国产丝袜视频| 久久久久国产一区二| 中国人高清www色视频免费| 嫩草影院永久在线制服丝袜| 操逼日韩无码| www.91逼逼.com| 婷婷爽人人婷婷爽视频| 男人的天堂久久狠| 婷婷色一区| 中文字幕91页| PMv在线观看| 欧美综合综合| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 美女97超碰| 日韩欧美中文| 北约熟女超碰| 欧美色图 人妻| 嗯啊啊啊轻点视频 | 日本二区不卡| 久欲AV| 品亲网欧美品亲网| 绑缚麻绳人妻寝取完整版| 日韩人妻少妇中文字幕| 亚洲国产ⅴ高清在线观看| 色妇综合网| 超碰97人人乐| 亚洲AV永久无码精品成人调教| 伊人操| 亚洲中文sv| 亚洲自拍欧美色综合| 美女在线H91| 国模一区二区三区| 久久曰曰| 婷婷爱五月| 日本免费亚洲欧美| 麻豆国产免费影片| 大香蕉乱伦视频网| 99性爱视频| 欧美精品1区2区3区| 中文一区在线视频| 97精品熟女少妇一区 | 日韩一级成人毛片免费观看| 欧美精品一区二区少妇免费A片 | 啪啪一区| 天天综合精品| 男人的天堂不卡一区二区| 亚洲精品视频在线| 五月天婷婷成人网| 东京太热久久久| 爱射综合| 国产AV天美| 欧美色图下一页| 精品一区二区麻豆| 怡红院亚洲怡春院av| 97jingpin| 久久99精品九九久久久婷婷| 91亚洲丝袜| 日日摸日日弄日日拍| 日本精品加勒比海一区| 99re9| 人人操人人爽人人操人人| 亚洲欧美不卡线| 视频一区二区三区精品| 一区二区三区探花在线观看| 欧亚性爱视频免费看| 99热这里只有精品地址| 亚洲 欧美 91| 色色色网站| www.狠狠干.coom| 色噜噜国产在线| 美女黑人91神马| 综合情欲网| 人妻久久一区二区三区| 自拍偷拍草一草| 俄罗斯一区二区视频在线观看| xxxx网站亚洲精品| 久久超碰久| 欧美色日本| 97神马久久| 国产精品不卡av免费在线观看| 久久首页| 少妇 综合| 亚洲精品蜜桃久久久久久久| 伊人麻豆传媒| 人人干人人操人人..com| 夜夜嗨AV一区天天| 本道在线| 一本色道无码DVD中文字幕| 中国女人内射6XXXXX| 日韩美一区| 东京热大香焦| 先锋影音av先锋一区| 免费看日产一区二区三区| 欧美少妇色图| 久草婷婷| 欧美日韩婷婷中文| 自拍视频一区在线观看| 99re98| 久久久久久日韩| 久偷拍| 欧美日产国产在线成人第一区| 国产欧美日韩臀| 伊人网综合在线视频| 国产吹潮女在线观看| 久久春色| 久久久久9999妇女| 婷婷色色网| 1769成人国产精品视频| 精品人妻二区三区| 牛黄色久午久| 国产最火爆久久国产网站网站| 欧美日韩丝袜| 无码精品久久久天天影视| 久久成人东京热人妻| 97视频620| 亚洲免费97免费| 黄污污污污| 亚欧Av| 亚洲色图 欧美| 欧美一区91大爱| 综合在线导航一区| 无码137片内射在线影院| 欧美 日韩 另类 亚洲| 在线无码操| 亚洲精品蜜桃久久久| 久久精品72| 色蜜AV| 人妻献身系列第54部| 亚洲欧美日韩偷拍色图| 青青草AV色| 性色乱AV一区二区| 99久久久久久久久| 日韩欧美一级特黄大片| 精品人妻免费观看| 欧美日韩制服| 91n处女在线观看| 91青青在线视频| 久操大香蕉手机视频在线看| 九九无码视频| 9超碰免费| 国产精品麻豆成人AV艾秋| 99久久婷婷国产综合| 五月天激情网图片| 97资源欧美| 91爱网| 欧美一区二区男人天堂| 久久噜噜噜精品国产亚洲综合| 91成人精品| 日本媚薬中文字幕在线| 欧美97爱| 国产大学生口爆吞精合集| 欧美系列在线一区二区| 黑人黄片在线免费观看| 麻豆AV96熟妇人妻| 日日干夜夜欢| 最新制服中文第一页| 熟妇色99| 怡红院一区二区熟女人妻| 国产精品乱码久久久久久久久久久久| 日韩钢筋无码高清啾啾啾| 0755午夜福利视频| 亚洲精品性爱片| 亚洲中文字幕三级在线| 六月丁香五月婷婷| 久久精品国产97欧美精品亚洲 | 多乙久久久久久| 国内91熟女人妻丝袜天天精品视频在线| 伊人色综合超碰| 亚洲中文字幕熟女| 丁香五月婷婷色| 色哟哟1区2区| 亚洲色色探花| 中文字幕视频一区视频二区| 国产亚洲色婷婷99精品91| 欧美天天| 97综合日韩| 乱色老一区二区三区的观看方式| 欧美成人四级在线播放| 啊啊啊啊在线观看网址| 蜜臀久久99精品久久久久久婷婷 | 无遮挡h肉动漫在线观看| 亚洲诱惑天堂 | 欧美日韩亚洲高清不卡一区二区三区| 欧美一级美片在线观看免费| 狠狠婷婷亚洲中文综合久久| 黑丝自慰喷水网站| 四虎AV影视国产精品亚洲精品| 亚洲性天堂| 午夜无码精品免费看性色| 欧美午夜精品久久久久久3D| 2017av无码免费无线播| 99热色这里只有精品| 97超碰久久色| 久草福利在线资源站| 亚洲综合校园春色| 国产激情在线| 国产精品久久久久999| 99自拍视频在线观看| 亚洲综合图片在线| 亚洲人体视频在线观看| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 性爱乱伦一区| 精品国产乱子伦一区二区三区,精品一| 丁香六月激情综合| 淫骚熟女一区二区三区| www.婷婷| 多乙久久久久久| 九九热午夜欧亚国产视频| 丁香六月东京热| 精品少妇999| 男女性扦B| 色第一页| 中文字幕 一区二区 亚洲无码| 伊人久久大香线蕉无码| 久久精品黄色| 亚洲 欧美 色图| 啊啊啊啊啊啊啊国| 九一亚洲国产免费| 日本黄 R色 成 人网站| 欧亚性爱在线视频| 26uuu成人影片| 麻豆美女丝袜人妻中文| 91模特在线观看| 天天综合欧美综合| 中文字幕 码 自拍 视频 区| 亚洲Av无码成人精品国产| 精品少妇一区二区三区| 成人情色综合网| 蜜臀久久99'精品久久久| 日韩AV中文字幕电影| 丝袜 亚洲 偷拍| 久久精品一区二区三区不卡| 久久高清欧美国产| 亚洲欧洲精品视频发布| 欧美性爱伊人| 久久久久久久久久久久久久久乱码| 99热免费| 亚州精品丝袜-不卡成人免费| 国产青青美女玩逼视频| 五月天欧美色图| 欧美日韩国产人人| 嗯啊啊啊轻点视频 | 抽插无码高清一区| 国产深夜福利| AAAAAAAAA黄片| 婷婷操逼| 操少妇很爽av| 色哟哟1区2区| 日韩熟女精一区二区三区不卡| 亚春色色| 亚欧美综合网| 久久精品 六十路 熟女 欧美| 夜夜影视四色| 人妻天天爽夜夜爽爽| 日日夜夜天天| 国产25页| 亚洲第一页色网| 高潮毛片无遮挡高清免费| 国产精选三级在线观看| 在线天堂999| 日韩综合97p| 亚洲强奸乱伦影视网| 97视频在线观看播放与子乱对白在线……| 色九九综合| 97热视频在线观看| 久久久亚洲熟妇资源| 丰满人妻一区二区三区四区| 国产人伦精品一区二区三区| 五十路人妻在线| 激情黄色片在线观看| 久久99久久99久久99人受| 特级大荫道BBwBBwBBW| 视频二区美腿制服人妻欧美| 噜噜噜在线视频| 香蕉久久国产AV一区二区| 91久久堂| 欧美日韩操操操| 97欧美色资源| 久久区| 极品色www影院| 亚洲偷91色| 精品人妻中文字幕4399| 国产精品suv一区| 国产三级多多影院2022国产AA一级毛片无码 | 色99色| 欧美啪啪啪91| 天天舔天天 | 东北女人性交| 五月天激情小说| 欧美天天在线| 看一级黄色视频| 久热99999| 欧美激情亚洲情色| 欧美成人性爱视频免费观看| 99热国产精品| 伊人97色天使| 国产成人bd在线观看| 高清视频一区| 丰满少妇一区二区三区四区观看| 性爱视频免费网址| 久久蜜桃一区二区| 色丁香久久| 操操逼视频| 探花精品 一区二区| 性做久久久久久久| 国偷自 一区| 一区二区精品更新提醒| 99热| 蜜臀99久| 免费的av网| 国产一级不卡在线观看| 亚洲熟伦熟妇AV无码春色| 欧美大香蕉卡久久| 日韩一级成人毛片免费观看 | 9I1性色影院| 熟妇人妻精品一区二区| 99在线观看| 中文字幕成人| 色婷婷亚洲婷婷| 久久AV无码网址| 超碰色男人操熟女| 91精品91久久久久77777| 蜜臀久久99精品久久久久免费观| 亚洲砖码砖专无区2023| 天天摸夜夜添无码小视频| 久久久四区| 久久神马| 午夜成人爽爽爽爽A片李冰冰| 精品人妻久久久| 精品无av| 九九九久久久| 五月亭亭六月丁香| 欧美色www亚洲国产阿娇要播| 激情色图| 免费看黄片现成| 这里只有精品视频在线观看麻豆| 日韩丰满熟妇| 中文字幕在线高清男人的天堂| 色香色欲天天综合网天天来吧| 99久久久久久亚洲精品不卡| 久久免费99精品久久久久久| 一类无码操逼视频| 成人午夜小视频手机在线看| 日韩性爱人人爱人人操| 久久综合18p| 综合 青草 伊久久 影院 综合| 九一屌逼| 91久久久视| 极品少妇久久久久| 26uuu久久| 日韩亚洲欧美中文字幕| 黄色激情电影在线观看| 久久精品日韩| 蜜乳av首页| 天天爽夜夜欢视| 老汉网| 天天操人人操骚逼网站| 密臀在线视频| 骚货操死你| 收看日本人日bb| 五月综合激情| 综合性视频99| 看免费一级在线播放毛片| 亚洲精品无码少妇久久| 九月AV| 亚洲黑人在线| 狠狠狠狠狠干| 理论久久婷婷网 8| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 伊人一级免费黄片| 亚洲天堂性爱| 一级免费精品| 中文乱码99| 亚洲在线A| 人人做人人妻人人夜视频| 动漫片子网站3黄| 亚洲天天在线| 静品嫩模一区二区| 性欧美第一页| 亚洲中文国际强奸字幕| 大香蕉啪啪啪啪在线| 欧美日韩亚洲少妇寂寞影院正在播放| 久久九九99| 欧美v亚洲v综合v国产v妖精| 激情久久日韩精品中文字幕麻豆| 影音先锋中文字幕日本好一区二区| 色超碰综合| 97超碰9| 综合免费无码中文| 无码九九| 中国操逼无码| 美女让帅哥通她小鸡鸡| 色综合av男人天堂| 丝袜AV一区二区三区| 日韩懂色网| 国产成人无码网站在线视频| 国产一区二区精品久久久不卡蜜臀| 被体育老师抱着c到高潮| 久久精品无码熟妇一区二区三区视频导航| 久久婷五月| 奇米四色网| 日韩国语字幕| 国产性爱在线视频一区二区| 99国产精品久久久在线播放| 精品人妻免费观看| 欧美色图99| 偷拍欧美综合| 欧亚综合一卡二卡中文字幕| 家庭乱伦性爱av| 极品AV网站在线观看| 开心五月天激情网| 中文字幕乱码人妻二区三区| 日韩不卡网操逼中文字幕日韩| 亚洲综合888| 在线强奷到舒服的无码视频| 久久久精品电影| 亚欧成人一级片在线播放| 99热国产精品| 欧美日韩人妻精品系列一区二区三区| 夜夜夜夜夜夜夜夜夜狠狠狠狠狠狠狠| 色综合九九| 操婢日韩| 2018天天干在线视频| 在线日韩精品一区二区三区| 欧美96精品在线| 亚洲综合 欧美| 97超碰久久色| 蜜伊人色综合97| 台湾大香蕉99热| 亚洲妇色| 天天天做天天天爱天天天爽| 欧美少妇熟女| 五月天婷婷综合网| 五月综合色| 丝袜性亚洲| a人片中文字幕一区二区| 麻豆天美制片厂网站视频| 91久精品| 亚洲精品99| 极品白嫩福利在线| 人妻精品综合中文字幕在线| 新版天堂中文资源8在线| 青青操狠狠撩| 欧美精品99久久久| 久久亚洲熟妇在线视频| 亚洲综合大片| 国内一区二区免费| 高清一区AV无码| 午夜男女爽爽爽在线视频 | 麻豆久久精品亚洲精品88| 另类天堂| 26uuu国产亚洲综合| www.狠狠| 超碰97综合网| 亚洲精品官网在线观看| 91亚洲黑人| 在线情色电影 91大 | 国产最新小视频在线播放下载| 性爱乱伦网址| 1204金沙人妻懂旧版免费| 精品97久久| 亚洲AV永久无码一区仙野| 97玖玖人妻| 欧美碰碰综合色| 国产91福利小视频在线观看 | 99在线无码精品秘 入口黑人| 99性视频| 亚洲精品久久一区二区三区蜜桃臀| 丁香婷婷激情五月天无毒不卡| 久久78| 小草精彩毛片| 日韩中文字墓| 国产视频一区二区在线| 玖玖久久久| 五月香婷婷| 夜夜操av亚洲一区二区| 激情综合网激情综合| 中文一区二区婷婷视频| 国产一区二区三区高清视频| 九九热免费在线国产视频伊人五月| 清纯唯美综合| 免费视频无码| 清纯唯美综合| 毛片视频白嫩| 秋霞免费AV| 亚洲清纯唯美| 六月丁丁香| 国产色图乱伦| 是还免费视频1727我| 亚洲中文字母在线播放| 日韩欧美麻豆 | 少妇熟女视频一二三区| 久久啊哟| 920日本午夜免费| 无码精品久久久天天影视 | 亚洲欧美日韩偷拍色图| 亚洲色天堂九9| 加勒比日本在线| 日本岛国黄色网址| 亚洲视频精选| 伊蕉97蜜桃97狠狠综合干| 亚洲欧美日韩精品久久久一区二区 | 日韩素人无码一区二区三区三州| 欧美色图片| 久久久久久91香蕉国产| 五月婷婷性爱| 成人乱人伦一区二区| 男人的天堂三级| 欧美日韩大陆黑人少妇99| 偷拍欧美综合| 91亚·色| 男人的天堂亚洲| 在线人人人人人人精品超| 丰满丝袜少妇AV| 亚洲国产一级中文综合久久天堂在线免费观看| 性色A∨91| 欧日韩一二三f区| 国产蜜臀在线| 亚洲偷91色| 综合视频91| 亚洲久草AV色图| 亚洲精品熟妇1区2区3区。| 九九九九一级| 亚洲天堂资源| 久久精品国产精品| 夜夜爽夜夜摸夜夜操免费视频| 绯色AV粉色AV蜜臀AV| 久操婷婷| A 天堂在线观看视频| 日日干夜夜干| 国产精品亚洲美女久久久久| 亚洲欧美日韩精品久| 中文字幕在线观看二区三区| 欧美日不卡| 91爱看| 成人精品水蜜桃久久久久久久| 亚洲 欧美 第一页| av毛片aaaaa免费看| 中文字幕日韩人妻视频一区二区三区| 黄色一区二区秘书性感| 97免费在线观看| 很黄很色的视频在线观看| 99热这里只有精品地址| 思思99热| 日韩传媒在线| 97午夜剧场日韩| 天天色怡春院| 欧美精品三区| 色青青久久影视| 青青草字幕AV| 国产福利一区二| 亚洲天堂人妻一区二区| AV在线播放网址| 免费1级a做爰片观看| 亚洲精品视频在线| 九九九九一级| 成人性爱免费播放| 丁香五月色| 中文字幕乱妇免费视频| 欧美人妻一区| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 91欧洲国产成人久久精品网站| 亚洲高清在线| 九九九久| 人妻熟女av国产网站| 日韩欧美~中文字| 亚洲一级性爱视频免费看| 无码视频一区二区| 久久大黄片| 粉嫩AV一区夜夜嗨| 日本操色导航| 国产白丝网站| 五月天婷婷久久| 无码一区免费在线不卡| 激情露脸爱| 日韩性爱毛片操骚逼| 欧美综合第一| 91丨熟女丨丰满熟女| 人妻爽爽啪视频| 91狼人| 97干97色| 蜜桃精品视频一区| 国产中文字幕曰本毛片| 黑人在线91| 天美传媒在线一区| 国产精品成人久久一区二区三区 | 啊啊啊轻点在线观看| www.久久99| 无码人妻1727| 就去色综合| 亚洲91色在线| 亚洲成人av电影在线| 青青草国产一区二区三区| 91久久久久久| 妇女性内射冈站HDWWWCOM| 久久99精品九九久久久婷婷| 欧美疯狂做爰xxxx| 99亚洲精品| 蜜桃午夜视频一区二区| 东北女人av| 成人福利视频网| 成人精品久久久午夜福利| 婷婷精品国产欧美精品亚洲人人爽| 天天操av懂色| 日韩无码黄色片| 一级二级三级黑人无码| 91女日逼| 97超色| 九九九草| 一本色道久久综合亚洲二区三区| 男女91| 欧美夜色| 久久综合久色欧美综合狠狠 | 97视频播放| 欧美最婬乱婬爆婬牲视频| 亚洲影视第一页| 黄色工厂这里只有精品| 中文字幕一区二区无码成人 | 亚洲精品无码成人久久久99| 青青草原香蕉日本Ap| 91少妇通奸网站| 国产精品色| 久久妇| 超碰视97中文| 玖玖蜜臀资源网| 91 国产丝袜在线播放-百度| 无码男人天堂| 超碰人人干天天射| 91精品国产91久久福利| 久操操AV电影| 成人免费在线网站| 亚洲欧美大| 少妇被玩视频二三区| 欧美精品另类人妖xxxx| 中文字幕日产av人| 青青草啪啪网| 丰满熟女人妻一区二区三五十一路| 啊啊啊啊,啊啊好多水| 精品视频一区二区| 亚洲中文国际强奸字幕| 日日夜夜天天| 在线观看A啊啊啊| 欧美高清16| 被体育老师抱着c到高潮| 800zy一区二区| 天操天操夜操夜月月年年操操| 亚洲影视综合| 色婷婷综合网站| 亚洲AV乱码专区国产噜噜亚洲| 国产精品天美传媒| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 顶级丝袜熟女一区二区三区 | 另类欧美综合| 国产毛片久久久久久久| 国产精品天美传媒| 亚洲图片偷拍欧美| 日本色色视频网站| 二级久久网| 日本成人免费一区二区三区| 99久久99九九99九九九| 91国产伊人大香蕉| 大香蕉综合| 久久久月天| 久久久 国产精品| 日本精品一区二区三| 亚洲精品xxx| 亚洲青青草| 高清无码国产亚洲| 夜夜夜夜爽| 最新国产精品久久精品| 中文字幕乱偷人妻久久艾草网| 国产精品亚洲一级av第二区| 蜜桃精品一区二区三区久在线| 国产尤物AV尤物在线观看不卡| 欧美AB在线观看| 中文字幕亚洲永久精品| 欧洲与亚洲欧美精品中文字幕| 欧美日韩黄片精品在线| 亚洲 另类 丝袜 自拍 动漫| 777AV电影| 日本2020一区二区| 91九九九馒头| 手机在线播放国产福利| 久久99久久99精品天美传媒棢·纸:.| 91在线视频观看国产| 久久9精品网站| 亚码激情| 51久久夜色精品国产麻豆| AV99热18这里只有精品| 亚洲日本韩国极品一区二区| 午夜120视频在线观看| com 首页 18岁 禁区 女优 免费 精选 同城 | 深夜激情无码| www欧美91| 三级网站超变态精品| 欧美日韩m| 91操操| 26uuu国产免费观看| 超碰免费人妻在线| 超碰社区97| 欧亚韩国999| 日韩淫色网| 麻豆福利视频导航| 丝袜 亚洲 偷拍| 欧美强奸一区二区诱惑| 黄页视频网站野外| 高清国产性猛交xxxx乱大交| 免费国产视频| 60秒不遮不挡| 久久99国产精品| 一区超碰一区| 中文字幕免费在线观看| 国产少妇高潮| 亚州九九九精品视频| 日韩三级在线观看mp4| 国产天天骚| 色老汉色| 亚洲国产精品久久久男人的天堂| 夜夜狼人妻| 在线观看视频91| 久久精品电影| 欧美999| 国产91av在线播放| 欧美成人一级免费电影| 国产欧美精选自拍一区| 国产乱伦亚洲色图高清无码| 秋霞操逼片| 无码人妻一区二区三区色欲aⅴ| 国产精品美女久久久久久网站| 中文字幕精品免费一区二区| 色五天伊人| 欧美亚洲另类在线蜜桃| 蜜乳AV色欲AVAV无码| 人人爽夜夜操| 久久久精品,3| 激情婷婷综合久久| 翔田千里av一区二区三区| 春色校园综合网| JuliaAnn丝袜熟女系列| 国产亚洲精品精AV.| 偷看洗澡一二三区美女| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 国内97干免费看| 中文字幕视频在线观看| 国产又黄又粗又猛大片| 浪人综合网| 久久超碰亚洲人| 久久久久久97| 免费在线黄片视频| 91久久伊人婷婷青青草| 蜜臀99久久国产| 五月天伊人| dy888午夜老子影视达达兔| 口爆吞精在线观看| 九九国产| 无码外流操逼视频| 成人日本精品九区| 九月激情婷婷| 亚洲视频二区| 嗯啊抽插大香蕉网页| 大肉棒导航| 乱欲一区二区| 欧美视频激情久久久久久| 俄罗斯一区二区视频在线观看 | 亚洲精品美女久久久久久久久| 999综合色| 亚洲精品成人动漫在线| 黄页| 婷婷色中文字幕| 高清有码一区二区| 超碰在线974| 在线A日本| 日韩美女高潮喷水视频| 8050午夜少妇无码| 国产综合久| 天天摸天天插天天日| 免费1级a做爰片观看| 亚洲综合另类色图| 桃花色涩综合影院| 成人一二| 人伦四五区| 四虎AV在线观看| 免费A V在线播放| 日本天堂网| 亚洲黄色a级片| 少妇熟女一区二区三区| B049AV在线播放| 熟女被操视频网址| 无码直播久久久| 久久大香蕉97| 欧美一区二区成人一卡| 99爱精品| 婬女免费一二三区A片| 妇女一区二区三区| 日韩BBN| 夜夜操中文字幕| 欧美色日本| 97色爱| 75大香蕉|