久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

C# 身份證圖片信息識別源碼:從照片到結(jié)構(gòu)化字段的落地路徑

C# 身份證圖片信息識別源碼:從照片到結(jié)構(gòu)化字段的落地路徑 簡介這份資源是面向 C# 與 WinForm 開發(fā)者的身份證圖片信息識別源碼工具適合需要在本機(jī)快速實(shí)現(xiàn)證件信息提取的初學(xué)者與中級開發(fā)者。它調(diào)用 Windows 自有接口完成圖片識別再解析出姓名、年齡、出生年月日、身份證號碼、民族及住址等關(guān)鍵字段并在前臺界面中直觀展示可用于門禁登記、信息錄入等場景。壓縮包共 33 個文件約 13.13MB以 cs 源碼、exe 可執(zhí)行程序、resx 與 resources 資源文件、bmp 與 jpg 示例圖片為主另含 sln 解決方案、csproj 工程文件及少量 dat、pdb 等輔助文件結(jié)構(gòu)完整可直接編譯運(yùn)行。目前已有 1490 人學(xué)習(xí)下載。下載后若需調(diào)試只需將 Form1_DragDrop 方法中的圖片地址改為本機(jī)身份證圖片路徑即可方案免費(fèi)、識別率尚可實(shí)際效果主要取決于圖片清晰度與拍攝角度便于讀者快速理解接口調(diào)用與信息解析的完整流程。1. C# 身份證圖片信息識別源碼從一張手機(jī)照片到結(jié)構(gòu)化字段的落地路徑拍一張身份證照片扔進(jìn)程序幾秒后拿到姓名、性別、民族、出生日期、住址、身份證號——這個需求在訪客登記、酒店入住、政務(wù)自助終端、金融開戶等場景里反復(fù)出現(xiàn)。C# 身份證圖片信息識別源碼要解決的就是把這個過程做成一個可集成、可調(diào)試、可上線的模塊而不是停留在「調(diào)個接口就完事」的層面。適合誰看正在做 C# 上位機(jī)、WinForm/WPF 桌面端、ASP.NET Core 后端服務(wù)的開發(fā)者手里有 OCR 需求但不確定選型、預(yù)處理和字段校驗(yàn)怎么串起來的人。這篇筆記按「選型 → 預(yù)處理 → 識別 → 解析 → 避坑 → 進(jìn)階」的順序展開代碼可以直接抄參數(shù)可以按你的場景改。2. 選型先定死C# 做身份證 OCR 的三條技術(shù)路線2.1 本地推理、云 API、混合方案怎么選在 C# 里做身份證識別繞不開三條路。第一條是純本地推理用 PaddleOCRSharp、OpenCvSharp 配合 ONNX Runtime 加載檢測和識別模型整個流程跑在客戶端不依賴網(wǎng)絡(luò)。第二條是調(diào)云廠商的 OCR API把圖片 base64 編碼后 POST 出去拿回 JSON 結(jié)果。第三條是混合本地做檢測和裁剪云端做識別或者反過來。選型不是拍腦袋看四個維度數(shù)據(jù)合規(guī)、網(wǎng)絡(luò)環(huán)境、單次成本、維護(hù)成本。身份證屬于敏感個人信息很多項(xiàng)目在需求評審階段就被要求「圖片不出內(nèi)網(wǎng)」這時候云 API 直接出局。如果部署環(huán)境是工廠車間、政務(wù)大廳內(nèi)網(wǎng)網(wǎng)絡(luò)本身就不通外網(wǎng)也只能走本地。反過來如果是一個日調(diào)用量幾百次的小工具本地部署模型文件動輒幾百 MB還要處理 GPU/CPU 推理環(huán)境維護(hù)成本反而高于按量付費(fèi)的云 API。我一般會這樣判斷日均識別量低于 500 次、且沒有強(qiáng)合規(guī)要求先用云 API 快速驗(yàn)證業(yè)務(wù)閉環(huán)一旦量上來或者合規(guī)收緊再切本地?;旌戏桨高m合「本地檢測 云端識別」這種折中但要注意兩次傳輸帶來的延遲疊加。路線依賴單次成本合規(guī)風(fēng)險適合場景本地推理ONNX 模型 OpenCvSharp一次性部署低內(nèi)網(wǎng)、高頻、敏感數(shù)據(jù)云 APIHTTP 網(wǎng)絡(luò)按量計費(fèi)中高快速驗(yàn)證、低頻混合兩者都有中中檢測本地化、識別云端化2.2 本地推理的最小依賴組合本地路線里PaddleOCRSharp 是目前 C# 生態(tài)里封裝比較完整的方案它把 PaddleOCR 的檢測、方向分類、識別三個模型打包成 NuGet 包調(diào)用時不需要自己寫 ONNX 會話管理。另一個選擇是直接用 Microsoft.ML.OnnxRuntime 加載自己導(dǎo)出的模型靈活但工作量大。最小依賴組合是這樣的PaddleOCRSharp 負(fù)責(zé)文字檢測和識別OpenCvSharp4 負(fù)責(zé)圖片預(yù)處理灰度、二值化、透視校正Newtonsoft.Json 或 System.Text.Json 負(fù)責(zé)結(jié)果解析。這三個包通過 NuGet 安裝即可不需要額外配置 Python 環(huán)境。dotnet add package PaddleOCRSharp dotnet add package OpenCvSharp4 dotnet add package OpenCvSharp4.runtime.win dotnet add package Newtonsoft.Json這里要注意OpenCvSharp4.runtime.win是 Windows 下的原生庫包Linux 部署要換成對應(yīng)的 runtime 包。PaddleOCRSharp 的模型文件默認(rèn)隨包攜帶首次運(yùn)行會在輸出目錄生成inference文件夾里面是 det、cls、rec 三個模型。如果部署到?jīng)]有寫權(quán)限的目錄需要提前把模型文件復(fù)制到可寫路徑并通過配置指定模型目錄。2.3 云 API 路線的接入要點(diǎn)云 API 路線的核心是把圖片轉(zhuǎn)成 base64構(gòu)造請求體處理返回的 JSON。不同廠商的字段名不一樣但結(jié)構(gòu)大同小異一個words_result數(shù)組每個元素包含words和location。身份證識別通常還會返回id_card_number、name、address等結(jié)構(gòu)化字段省去自己解析的麻煩。接入時最容易翻車的地方是圖片大小限制和編碼格式。多數(shù)云 API 要求 base64 后的字符串不超過 4MB對應(yīng)原圖大約 3MB。手機(jī)拍的照片動輒 5MB 以上直接傳會報錯。常見做法是先壓縮到長邊 1280 像素、JPEG 質(zhì)量 80再編碼。另外base64 字符串里的和/在 URL 傳輸時會被轉(zhuǎn)義如果走 GET 請求要 URL 編碼走 POST 放在 body 里則不需要。// 壓縮圖片到指定長邊返回 JPEG 字節(jié)數(shù)組 public static byte[] CompressImage(string imagePath, int maxSide 1280, int quality 80) { using var src Cv2.ImRead(imagePath); int w src.Width, h src.Height; double scale Math.Min(1.0, (double)maxSide / Math.Max(w, h)); using var dst new Mat(); Cv2.Resize(src, dst, new Size((int)(w * scale), (int)(h * scale))); Cv2.ImEncode(.jpg, dst, out byte[] buf, new ImageEncodingParam(ImwriteFlags.JpegQuality, quality)); return buf; }maxSide控制長邊像素身份證文字在 1280 像素下通常足夠識別quality是 JPEG 壓縮質(zhì)量80 是清晰度和體積的平衡點(diǎn)。如果識別率不理想先把maxSide提到 1600 再試不要一上來就調(diào)質(zhì)量參數(shù)。3. 圖片預(yù)處理決定識別率的上限3.1 透視校正與邊緣檢測身份證照片最大的問題是拍攝角度。斜著拍、有透視變形、背景雜亂都會讓 OCR 的檢測框偏移。OpenCvSharp 里做透視校正的流程是灰度化 → 高斯模糊 → Canny 邊緣檢測 → 找輪廓 → 篩選四邊形 → 計算透視變換矩陣 → warpPerspective。關(guān)鍵在篩選四邊形。身份證是矩形面積占比大長寬比接近 1.58:1。用Cv2.ApproxPolyDP逼近輪廓后判斷頂點(diǎn)數(shù)是否為 4、面積是否大于圖片面積的 20%、長寬比是否在 1.3 到 1.9 之間。滿足條件的輪廓才認(rèn)為是身份證邊緣。// 對輸入圖片做透視校正返回校正后的 Mat public static Mat CorrectPerspective(Mat src) { using var gray new Mat(); Cv2.CvtColor(src, gray, ColorConversionCodes.BGR2GRAY); Cv2.GaussianBlur(gray, gray, new Size(5, 5), 0); using var edges new Mat(); Cv2.Canny(gray, edges, 50, 150); Cv2.FindContours(edges, out Point[][] contours, out _, RetrievalModes.External, ContourApproximationModes.ApproxSimple); foreach (var c in contours.OrderByDescending(c Cv2.ContourArea(c))) { var approx Cv2.ApproxPolyDP(c, 0.02 * Cv2.ArcLength(c, true), true); if (approx.Length ! 4) continue; double area Cv2.ContourArea(approx); if (area src.Width * src.Height * 0.2) continue; var rect Cv2.MinAreaRect(approx); double ratio Math.Max(rect.Size.Width, rect.Size.Height) / Math.Min(rect.Size.Width, rect.Size.Height); if (ratio 1.3 || ratio 1.9) continue; return Warp(src, approx); } return src.Clone(); // 沒找到四邊形就返回原圖 }0.02 * ArcLength是輪廓逼近的精度參數(shù)值越小逼近越精細(xì)但可能把矩形逼近成五邊形值越大越粗糙可能把矩形逼近成三角形。1.3 到 1.9 的長寬比范圍是給拍攝角度留的余量正拍時接近 1.58斜拍時會偏離。如果身份證有圓角ApproxPolyDP可能返回 8 個頂點(diǎn)這時候要改用MinAreaRect直接取最小外接矩形。3.2 灰度化與自適應(yīng)二值化的參數(shù)透視校正之后圖片可能還有光照不均的問題。手機(jī)閃光燈打在身份證上中間亮、邊緣暗全局閾值二值化會把暗部文字丟掉。這時候用自適應(yīng)閾值Cv2.AdaptiveThreshold塊大小取 31 或 45常數(shù) C 取 10 到 15。// 自適應(yīng)二值化增強(qiáng)文字對比度 public static Mat Binarize(Mat src) { using var gray new Mat(); Cv2.CvtColor(src, gray, ColorConversionCodes.BGR2GRAY); using var blurred new Mat(); Cv2.MedianBlur(gray, blurred, 3); var binary new Mat(); Cv2.AdaptiveThreshold(blurred, binary, 255, AdaptiveThresholdTypes.GaussianC, ThresholdTypes.Binary, 31, 12); return binary; }MedianBlur的核大小 3 是去椒鹽噪聲的如果圖片本身干凈可以去掉。AdaptiveThreshold的塊大小必須是奇數(shù)31 對應(yīng)大約 31 像素的局部區(qū)域身份證文字高度通常在 20 到 40 像素之間塊大小取文字高度的 1 到 1.5 倍比較合適。常數(shù) C 從閾值中減去值越大二值化后黑色區(qū)域越多文字容易斷值越小白色區(qū)域越多背景噪聲容易保留。12 是一個保守起點(diǎn)識別率低時先調(diào)這個參數(shù)。提示預(yù)處理不是越多越好。如果原圖質(zhì)量已經(jīng)很好透視校正和二值化反而可能引入偽影。建議在識別前加一個質(zhì)量判斷拉普拉斯方差大于 100 且亮度均值在 80 到 180 之間直接跳過預(yù)處理。3.3 裁剪與 ROI 提取身份證的字段位置是固定的姓名在左上性別和民族在右上出生日期在中間偏下住址在下方身份證號在最底部。如果檢測階段已經(jīng)拿到了文字框坐標(biāo)可以按坐標(biāo)裁剪出每個字段的 ROI再單獨(dú)識別。這樣做的好處是識別模型只需要處理小圖速度快而且可以針對每個字段設(shè)置不同的識別參數(shù)。裁剪時要注意留邊距。文字框的坐標(biāo)是緊貼文字的直接裁剪可能把邊緣筆畫切掉。常見做法是向外擴(kuò) 5 到 10 像素或者按文字框高度的 20% 擴(kuò)展。如果文字框本身有傾斜裁剪后還要做一次小角度旋轉(zhuǎn)校正。// 按文字框坐標(biāo)裁剪 ROI并向外擴(kuò)展邊距 public static Mat CropRoi(Mat src, Rect box, int padding 8) { int x Math.Max(0, box.X - padding); int y Math.Max(0, box.Y - padding); int w Math.Min(src.Width - x, box.Width padding * 2); int h Math.Min(src.Height - y, box.Height padding * 2); return new Mat(src, new Rect(x, y, w, h)); }padding取 8 是一個經(jīng)驗(yàn)值對應(yīng) 1280 像素寬圖片上的文字框。如果原圖更大按比例放大。裁剪后的 ROI 可以直接送入識別模型也可以先做一次銳化再識別。銳化用Cv2.Filter2D配合一個 3x3 的卷積核中心權(quán)重 5周圍 -1能增強(qiáng)筆畫邊緣。4. 識別與字段解析從文字行到結(jié)構(gòu)化數(shù)據(jù)4.1 PaddleOCRSharp 的調(diào)用與參數(shù)配置PaddleOCRSharp 的調(diào)用分三步初始化引擎、設(shè)置參數(shù)、執(zhí)行識別。引擎初始化時可以指定模型路徑、是否使用 GPU、線程數(shù)。參數(shù)里比較關(guān)鍵的是DetDBThresh檢測閾值、DetDBBoxThresh檢測框閾值、DetDBUnclipRatio檢測框擴(kuò)張比例和RecImgH識別輸入高度。// 初始化 OCR 引擎并識別圖片 var engine new PaddleOCREngine(new OCRModelConfig { det_infer inference/det, cls_infer inference/cls, rec_infer inference/rec, keys inference/ppocr_keys_v1.txt }, new OCRParameter { use_gpu false, cpu_threads 4, det_db_thresh 0.3f, det_db_box_thresh 0.5f, det_db_unclip_ratio 1.6f, rec_img_h 48, rec_img_w 320 }); var result engine.DetectText(compressedBytes); foreach (var block in result.TextBlocks) { Console.WriteLine(${block.Text} | 置信度: {block.Score:F3} | 位置: {block.BoxPoints}); }det_db_thresh是分割網(wǎng)絡(luò)的二值化閾值值越低檢測框越多但可能引入噪聲0.3 是默認(rèn)值圖片干凈時可以提到 0.4 減少誤檢。det_db_box_thresh是檢測框的置信度過濾低于這個值的框會被丟棄0.5 是平衡點(diǎn)。det_db_unclip_ratio控制檢測框向外擴(kuò)張的比例1.6 意味著擴(kuò)張 60%這是為了把文字邊緣包進(jìn)去如果文字被切掉可以提到 2.0。rec_img_h是識別模型輸入的高度48 是標(biāo)準(zhǔn)值身份證文字高度足夠不需要改。4.2 身份證字段的正則匹配與校驗(yàn)OCR 返回的是一行行文字要變成結(jié)構(gòu)化字段需要按位置和內(nèi)容做匹配。姓名和住址是中文性別是「男」或「女」民族是「漢」「回」等出生日期是「YYYY年MM月DD日」或「YYYY.MM.DD」身份證號是 18 位數(shù)字加最后一位可能是 X。正則匹配的順序很重要。先匹配身份證號因?yàn)樗哪J阶罟潭╘d{17}[\dXx]。匹配到之后從身份證號里提取出生日期和性別再和 OCR 識別的出生日期、性別做交叉驗(yàn)證。如果兩者不一致以身份證號為準(zhǔn)因?yàn)?OCR 可能把「1」識別成「l」或「I」。// 從 OCR 結(jié)果中解析身份證字段 public static IdCardInfo Parse(ListTextBlock blocks) { var info new IdCardInfo(); var allText string.Join( , blocks.Select(b b.Text)); // 身份證號 var idMatch Regex.Match(allText, \d{17}[\dXx]); if (idMatch.Success) { info.IdNumber idMatch.Value.ToUpper(); info.BirthDate info.IdNumber.Substring(6, 8); info.Gender int.Parse(info.IdNumber.Substring(16, 1)) % 2 1 ? 男 : 女; } // 姓名取身份證號之前、長度 2-4 的中文串 var nameMatch Regex.Match(allText, [\u4e00-\u9fa5]{2,4}); if (nameMatch.Success) info.Name nameMatch.Value; // 住址包含「省」「市」「區(qū)」「縣」「路」「號」等關(guān)鍵詞的長串 var addrMatch Regex.Match(allText, [\u4e00-\u9fa5]{6,}(省|市|區(qū)|縣|路|號)[\u4e00-\u9fa5\d]*); if (addrMatch.Success) info.Address addrMatch.Value; return info; }姓名匹配用[\u4e00-\u9fa5]{2,4}是因?yàn)闈h族姓名通常 2 到 4 個字但少數(shù)民族姓名可能更長這時候要放寬到 6 個字或者結(jié)合位置信息——姓名通常在身份證號上方、住址上方。住址匹配的關(guān)鍵詞列表可以擴(kuò)展加上「鎮(zhèn)」「鄉(xiāng)」「村」「組」「棟」「單元」「室」等。如果 OCR 把「省」識別成「者」正則就匹配不到這時候要用模糊匹配或者編輯距離。4.3 置信度過濾與人工復(fù)核隊(duì)列OCR 不是 100% 準(zhǔn)確低置信度的結(jié)果要過濾出來。PaddleOCRSharp 返回的每個 TextBlock 都有 Score 字段范圍 0 到 1。身份證號、姓名這類關(guān)鍵字段置信度低于 0.85 就應(yīng)該進(jìn)入人工復(fù)核隊(duì)列而不是直接入庫。復(fù)核隊(duì)列的實(shí)現(xiàn)方式取決于你的系統(tǒng)架構(gòu)。如果是桌面端彈一個窗口讓用戶確認(rèn)如果是后端服務(wù)把圖片和 OCR 結(jié)果存到一張待復(fù)核表提供一個管理界面。復(fù)核時要展示原圖、OCR 結(jié)果和置信度讓用戶快速判斷是改還是重拍。// 按置信度分流高于閾值自動通過低于閾值進(jìn)入復(fù)核 public static void Dispatch(ListTextBlock blocks, double threshold 0.85) { var autoPass new ListTextBlock(); var needReview new ListTextBlock(); foreach (var b in blocks) { if (b.Score threshold) autoPass.Add(b); else needReview.Add(b); } Console.WriteLine($自動通過 {autoPass.Count} 條待復(fù)核 {needReview.Count} 條); foreach (var b in needReview) Console.WriteLine($待復(fù)核: {b.Text} (置信度 {b.Score:F3})); }閾值 0.85 是一個保守起點(diǎn)。如果業(yè)務(wù)對準(zhǔn)確率要求極高比如金融開戶可以提到 0.92如果只是訪客登記0.75 也能接受。注意置信度是模型輸出的概率不是真實(shí)準(zhǔn)確率實(shí)際準(zhǔn)確率還受圖片質(zhì)量影響。建議在測試集上跑一遍畫出置信度和準(zhǔn)確率的關(guān)系曲線再定閾值。5. 避坑與排查身份證 OCR 落地時最容易翻車的五個點(diǎn)5.1 識別率忽高忽低同一張圖兩次結(jié)果不一樣現(xiàn)象同一張身份證照片第一次識別姓名正確第二次識別成亂碼或者身份證號少一位。原因PaddleOCRSharp 的檢測階段有隨機(jī)性尤其是det_db_thresh接近臨界值時檢測框的位置和數(shù)量會波動。另外如果圖片預(yù)處理里用了Cv2.Canny邊緣檢測對光照敏感不同次讀取的圖片如果有輕微壓縮差異邊緣也會變。解決固定隨機(jī)種子把det_db_thresh調(diào)到遠(yuǎn)離臨界值的位置比如 0.35 或 0.25預(yù)處理階段盡量用確定性算法避免Canny的雙閾值設(shè)得太窄。如果還是不穩(wěn)定把檢測和識別拆開檢測結(jié)果緩存下來只對識別做多次投票。5.2 身份證號里的「1」被識別成「l」或「I」現(xiàn)象身份證號110101199001011234識別成ll0l0l19900l0ll234。原因OCR 模型在訓(xùn)練時對數(shù)字和字母的區(qū)分不夠尤其是身份證號這種長數(shù)字串字體細(xì)、對比度低時容易混淆。另外如果圖片經(jīng)過二值化數(shù)字「1」的頂部橫線可能被腐蝕掉變成豎線。解決在解析階段做字符替換把l、I、|統(tǒng)一替換成1把O、o替換成0把S替換成5。替換后再用身份證號的校驗(yàn)位算法驗(yàn)證如果校驗(yàn)不通過說明替換有誤進(jìn)入人工復(fù)核。校驗(yàn)位算法是前 17 位加權(quán)求和權(quán)重為[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]和對 11 取模映射到[1,0,X,9,8,7,6,5,4,3,2]。// 身份證號校驗(yàn)位驗(yàn)證 public static bool ValidateIdNumber(string id) { if (id.Length ! 18) return false; int[] weights { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 }; char[] checkCodes { 1, 0, X, 9, 8, 7, 6, 5, 4, 3, 2 }; int sum 0; for (int i 0; i 17; i) sum (id[i] - 0) * weights[i]; return checkCodes[sum % 11] id[17]; }5.3 住址字段被截斷或串行現(xiàn)象住址只識別出「XX省XX市」后面的「XX區(qū)XX路XX號」丟了或者和出生日期串在一起。原因身份證住址可能有兩行甚至三行OCR 按行返回如果按單個 TextBlock 解析只能拿到一行。另外如果檢測框把兩行文字合并成一個框識別結(jié)果會串行。解決解析住址時把所有 TextBlock 按 Y 坐標(biāo)排序取身份證號上方、姓名下方的所有文字塊按行拼接。如果檢測框合并了多行用det_db_unclip_ratio調(diào)小到 1.2 到 1.4讓檢測框更貼合單行文字。拼接時注意去掉行尾的標(biāo)點(diǎn)避免「XX路」這種帶逗號的結(jié)果。5.4 部署到 Linux 后模型加載失敗現(xiàn)象Windows 上跑得好好的部署到 Linux 服務(wù)器后報DllNotFoundException或模型文件找不到。原因PaddleOCRSharp 的原生庫是平臺相關(guān)的Windows 的 NuGet 包不包含 Linux 的.so文件。另外模型文件的路徑在 Windows 上用反斜杠Linux 上用正斜杠硬編碼路徑會出問題。解決安裝PaddleOCRSharp的 Linux runtime 包或者手動把libpaddle_inference.so放到輸出目錄。模型路徑用Path.Combine拼接不要寫死分隔符。如果用的是 Docker基礎(chǔ)鏡像選mcr.microsoft.com/dotnet/runtime然后在 Dockerfile 里apt-get install libgdiplus和libc6-dev這兩個是 OpenCvSharp 的依賴。5.5 并發(fā)調(diào)用時內(nèi)存暴漲現(xiàn)象單次識別正常但 10 個請求并發(fā)時內(nèi)存從 200MB 漲到 2GB甚至 OOM。原因PaddleOCRSharp 的引擎實(shí)例不是線程安全的每次new PaddleOCREngine都會加載一份模型到內(nèi)存。如果每個請求都新建引擎內(nèi)存會成倍增長。另外Mat對象如果不釋放非托管內(nèi)存不會自動回收。解決引擎用單例全局初始化一次所有請求共享。Mat對象用using包裹或者手動調(diào)用Dispose()。如果并發(fā)量高用SemaphoreSlim限制同時識別的請求數(shù)比如限制為 CPU 核心數(shù)。識別完成后把結(jié)果轉(zhuǎn)成 POCO 對象不要持有Mat或TextBlock的引用。// 單例引擎 并發(fā)限制 private static readonly PaddleOCREngine _engine new PaddleOCREngine(config, parameter); private static readonly SemaphoreSlim _semaphore new SemaphoreSlim(Environment.ProcessorCount); public static async TaskIdCardInfo RecognizeAsync(byte[] imageBytes) { await _semaphore.WaitAsync(); try { var result _engine.DetectText(imageBytes); return Parse(result.TextBlocks); } finally { _semaphore.Release(); } }6. 進(jìn)階技巧用模板匹配兜底和批量驗(yàn)證6.1 模板匹配兜底低置信度字段當(dāng) OCR 對某個字段的置信度低于閾值時除了人工復(fù)核還可以用模板匹配做兜底。身份證的字段位置固定可以預(yù)先截取一張標(biāo)準(zhǔn)身份證的姓名區(qū)域、身份證號區(qū)域作為模板用Cv2.MatchTemplate在待識別圖片上找匹配位置然后裁剪出來單獨(dú)識別。模板匹配的局限是它對旋轉(zhuǎn)和縮放敏感。如果待識別圖片的透視校正做得好模板匹配的準(zhǔn)確率很高如果校正不到位匹配分?jǐn)?shù)會很低。我一般把模板匹配作為第二道防線只在 OCR 置信度低于 0.7 時啟用匹配分?jǐn)?shù)低于 0.6 就放棄直接進(jìn)人工隊(duì)列。// 模板匹配定位字段區(qū)域 public static Rect? MatchTemplate(Mat src, Mat template, double threshold 0.6) { using var result new Mat(); Cv2.MatchTemplate(src, template, result, TemplateMatchModes.CCoeffNormed); Cv2.MinMaxLoc(result, out double minVal, out double maxVal, out Point minLoc, out Point maxLoc); if (maxVal threshold) return null; return new Rect(maxLoc.X, maxLoc.Y, template.Width, template.Height); }CCoeffNormed是歸一化相關(guān)系數(shù)范圍 -1 到 1越接近 1 越匹配。閾值 0.6 是經(jīng)驗(yàn)值實(shí)際項(xiàng)目里要根據(jù)模板質(zhì)量和圖片質(zhì)量調(diào)整。模板本身要從多張標(biāo)準(zhǔn)身份證里截取取平均或者選最清晰的一張。6.2 批量驗(yàn)證與準(zhǔn)確率統(tǒng)計上線前一定要做批量驗(yàn)證。準(zhǔn)備 100 到 200 張真實(shí)身份證照片覆蓋不同光照、角度、背景、手機(jī)型號跑一遍識別統(tǒng)計每個字段的準(zhǔn)確率。準(zhǔn)確率的計算方式是字段完全正確才算對錯一個字也算錯。統(tǒng)計結(jié)果按字段分開看。身份證號和出生日期的準(zhǔn)確率通常最高因?yàn)槟J焦潭ㄗ≈返臏?zhǔn)確率最低因?yàn)樽謹(jǐn)?shù)多、分行、有生僻字。如果住址準(zhǔn)確率低于 90%優(yōu)先優(yōu)化預(yù)處理和檢測參數(shù)而不是換模型。// 批量驗(yàn)證并輸出各字段準(zhǔn)確率 public static void BatchValidate(string imageDir, string labelFile) { var labels LoadLabels(labelFile); // 格式: 文件名,姓名,身份證號,住址 int nameOk 0, idOk 0, addrOk 0; foreach (var (file, expected) in labels) { var bytes File.ReadAllBytes(Path.Combine(imageDir, file)); var actual RecognizeAsync(bytes).Result; if (actual.Name expected.Name) nameOk; if (actual.IdNumber expected.IdNumber) idOk; if (actual.Address expected.Address) addrOk; } Console.WriteLine($姓名準(zhǔn)確率: {(double)nameOk / labels.Count:P2}); Console.WriteLine($身份證號準(zhǔn)確率: {(double)idOk / labels.Count:P2}); Console.WriteLine($住址準(zhǔn)確率: {(double)addrOk / labels.Count:P2}); }批量驗(yàn)證的標(biāo)簽文件要人工標(biāo)注標(biāo)注時注意住址的格式統(tǒng)一比如是否包含省市區(qū)前綴、是否去掉空格。如果標(biāo)簽和 OCR 輸出的格式不一致準(zhǔn)確率會虛低。建議在比對前做一次歸一化去掉所有空格和標(biāo)點(diǎn)統(tǒng)一全角半角。6.3 我踩過的坑和現(xiàn)在的習(xí)慣最早做身份證識別時我迷信「模型越新越好」直接上了最新的檢測模型結(jié)果在低質(zhì)量圖片上還不如老模型穩(wěn)定。后來才明白身份證識別是封閉場景字段固定、字體固定模型不需要太強(qiáng)的泛化能力反而需要在這個特定分布上足夠魯棒?,F(xiàn)在我的習(xí)慣是先用默認(rèn)模型跑一遍批量驗(yàn)證看哪個字段拖后腿再針對性地調(diào)預(yù)處理參數(shù)最后才考慮換模型。另一個習(xí)慣是永遠(yuǎn)保留原圖和 OCR 原始結(jié)果。用戶反饋?zhàn)R別錯誤時沒有原圖就無法復(fù)現(xiàn)沒有原始結(jié)果就無法判斷是檢測錯了還是識別錯了。存儲成本很低但排查問題時能省下大量時間。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久久亚洲一区女同性恋中文字幕| 8050午夜少妇无码| 欧美九九99久久精品| 日韩激情啪啪啪| 国产精品视屏| 蜜臀99久久精品久久久久| 亚洲素人网| 天天操狠狠日夜夜干超碰撸com视频在线观看 | 四虎免费看黄| 欧美淫穴| 深夜啪啪啪视频免费| 日韩乱伦视频| 欧美日韩 强奸乱伦| 精品综合久久久久久五月天| 大鸡巴久久| 国产精品91一样| 这里只有精品视频在线观看麻豆| 午夜精品久久99蜜桃的功能章节| 欧美亚洲在线| 另类图片五月天| 9久9久| 亚洲污污网站| 99xav| 欧美日韩电影一区二区| 另类av天堂| 日韩天堂av电影在线观看| 美女诱惑爱爱| 另类图片五月| 操穴国产| 不卡一区视频| 国产日韩中文字幕欧美| 亚洲午夜精品久久久中文影院| 综合色久欲| 日韩美女,国产传媒,视频一区| 天堂日本亚洲欧美| 男人的天堂色偷偷青青草视频婷婷网| 欧美色日本| 日韩精品第3页| 老司机免费视频在线91| 成人精品水蜜桃久久久久久久| 亚洲色图综合网| 欧美最大综合网| 亚洲素人综合| 肏逼视频日本| 国产精品自在线发布| 欧美日韩性爱无码| 无码91| 伊人国产av| 欧美国产有色电影| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 国产农村一一级特黄毛片| 黑人无码一区二区| 人人操AV| 男女一进一出视频久久| 免费人成毛片乱码| 精品国产肉丝袜在线拍国语| 熟妇熟女亚洲天堂网| 久久久不能久久久久| 欧美日韩黄色片一区二区三区四区人与兽做爱 | 亚洲中文字幕av| 超踫中文字幕| 9997se| 婷婷五月天激情四射| 色999偷自拍拍| 色激情五月天| 色爱国产| 国产亚卅97| 老熟女综合| 天天看精品动漫视频一区| 麻豆国产精品午夜视频| 精品人妻中文字幕4399| 中文视频在线观看| 亚洲 欧美 制服 另类 自拍| 郑州宾馆老熟女露脸啪啪| 日韩啪啪视频| 日本精品性生活久久久| yiqicaoav| 国产精品免费美女视频| 久草视频制服诱惑| 亚洲精品九九九| 欧美精品一区二区少妇免费A片| 久操视频资源站公开| 色999人与兽| av东京热男人的天堂| 中文字幕乱妇免费视频| 国产区性爱在线视频秋霞豆| 色 婷97| 亚91网| 黄色在线网站| 久久偷偷色综合蜜桃| 久久久久九九九| 成人片在线播放| 91欧美美女日韩国产婷婷| 九九热re99re6在线精品| 黄在线| 精品免费1| 精品人妻高清麻豆av| 91九色蝌蚪在线观看| 久久久久久性爱片| 欧美翘臀视频网站一区二区三区| 免费综合亚洲中文| 综合激情一一91| 亚洲?V高清一区二区三区尤物| 亚洲无码?第一页| 一区二区三区日韩欧美| 亚洲中文字幕精品一区| 亚州操操穴网| 极品另类| 操淫穴亚洲五月丁香 | 国产亚洲精品美女| 亚洲av影院在线观看| 二三四区精品| 欧美顶级黄色大片免费| 欧美色图97| 亚洲最新中文字幕免费| 99热大香蕉伊在线| 看日韩操逼| 国产97在线播放| 亚洲欧美国产成人综合不卡| 91热色| 日本在线视频导航| 色九九久九九| 91 亚洲 欧洲| 婷婷久久五月综合激情| 黄总AV色图| 69XX一中文字幕人妻91| www.高清无码诱惑一区.com| 一本大道不卡一二三区| 欧美78| 丰满人妻无码一区二区三区| 国产精品夜夜夜| 日韩无码专区| 欧美亚洲情色| 裸体女人草逼视频播放一区,二区,三区,四区,五区| 色欲久久久久综合网| 在线黄色污污网站| 爱做久久久久久| 日日躁夜夜躁狠狠躁超爽| 色一情一乱一乱一区91Av| 天天综合网在线91| 蜜臀久久久| 凹凸久久人人| 久久激情婷婷| 最新精品久久蜜桃| 在线观看十八禁| 久久久精品91八戒| 后入精品| 亚洲欧美国产中文字幕| 国产麻豆一级精品视频| 家庭乱伦麻豆| 色欲久久99精品久久| 99热成人| 午夜AV人气不卡| 久久超碰天天| 四虎免费看黄| 亚洲有码 视频一区| 影音先锋日本一区二区| 亚洲 欧美 日本 国内 首页| 日韩久久艹| 91九色网| 天堂中文资源在线bt| 精精品人妻一区二区三区| 蜜桃色院一区久久 | 国产成人五月天丁香花| 青青草久草AV| 五月天久久婷婷亚洲| 久久只有精品一区二区三区| 国产日本久久免费精品| 国产中文大片资源中文字幕| 97干在线视频| 激情婷婷丁香网| 天天综合香 ld视频| 九九伊人网| 奇米四色网| 亚洲欧美日韩不卡人妻| 中文一区二区| 99re这里| 国产亚洲色婷婷99精品91| 人妻久久久久久久久久久久久久久| 欧美一区二区一级岛国大片| 午夜αv| 精品少妇人妻| 国产精品第二页| 四虎影视在线| 夜色五月天| 女人被添高潮免费视频| 国内毛片免费h片在线| 热久久国产| 日本三级一区二区 在线| 伊人久久综合影院精品久久久| 亚洲男人天堂网站| 久久激情视频| 免看60秒涩涩视频| 激情婷婷丁香| 少妇内射视频| 狠狠干妹子| 美女黑人91神马| 香蕉久久精品| 国产精品粉嫩福利在线| 亚洲清纯综合| 五十路三区在线| 男女啊啊啊啊啊| 人人澡人人干| 欧美国产婷婷久久| 亚洲精品乱码线路中文字幕| 色色色日本| 国产品精品自在在线午夜免费| 97国产精品一区| 国产精品夜夜夜| 国产又长又大又粗的视频| 超碰久久精品| 9 1果冻精品视频| 91欧美色| 一区操逼| 久久6热视频免费观看| 日韩AV无码中文一区二区| 青椒国产97在线熟女| 再深点灬舒服灬太大了添视频| 以及麻豆国产入口在线观看免费| 国产一级操B视频| 丝袜熟女一区二区三区| 色综合中文字幕不卡| 97九色人妻| 亭亭丁香激情| 麻豆色约约| 伊人性在线视频| 欧美裸体美女日麻屄| 激情色图| 色成人Www精品永久观看| 玖玖爱免费观看视频| 九色视频91| 久热色情精品| 色妇91| 亚洲 欧美 日本 国内 首页| 一起草在线视频| 手机看片日韩人妻| 午夜男人一级A片7777| 国产亚洲 中文欧美久久| 伊人网在线观看| 狠狠爱AV| 五月婷亚洲精品天堂| 精品人妻1区| 人人扣人人操| 神马久久网| 天堂av最新电影网| 乳欲人妻办公室奶水| 97色婷婷| 校园春色中文字幕AV| 91老妇女| ,成人免费啪啪视频| 97人人射| 99久在线精品99re8热视频在线| 久久久青青草| 无码av永久免费专区网站| 亚洲高潮少妇| 不卡六六在线91| 日本色色色网站免费看不卡| 国产精品一区二区 尿失禁| 91爱综合| 啊啊啊啊好疼| 美女一区二区国产精品| 肥臀熟女福利视频一区二区| 97视频播放| 日韩人妻中文视频| 麻豆成人av| 欧美激情一区| 亚洲情色1区| 久久9精品| 国产一级做a爰大片免费久久| 久久只有精品一区二区三区| 亚洲国产精品无石码久久 | 午夜呻吟欧美| 亚洲资源站| 午夜久久无码1000合集| 久久爽爽精品| 啪啪啪精品| 色婷婷丁香五月| 熟女91网| 99精品在线| 国产一区二区精品在线视频| 国产精品婬乱一级毛片彝族| 自拍亚洲综合| 国产综合网站在线播放| 亚州综合图片| 思思久热在线精品66| 日韩亚洲国产视频| 东京热熟女亚洲视频网站| 啪啪性爱免费视频| 亚州色站 日韩电影| 伊人网青青| 久久精品免费| 12一15性XXXX粉嫩国产| 日本A级视频| 69XX一中文字幕人妻91| av天天在线| 中文日本免费高清| 熟女91网| 亚洲1区| 蜜臀99久久国产| 色啪网| 五十路三区在线| 97天天爽| 涩涩这里只有精品视频| 久草成人影片| 久久五月综合| 13小男生GAY自慰脱裤子| 天美一二三在线观看Av| 天堂俺去俺来也www久久婷婷| 好看的久久不射无码影视影院| 日韩欧美水蜜桃人妻| 91久久| 狠狠色噜噜狠狠狠狠2018| 亚洲天堂综合AV| 天美传媒AV在线| 久久99国产综合精品女同| 国产精品人妻无码久久久老鸭窝| 人妻少妇色综合| 少妇干B| 91 偷| 午夜福利久久久噜久噜久久综合| 国产成人一级av88| 黄色工厂这里只有精品| 情色五月天久久久| 91在线精品| 国产老太乱伦一区| 日本中文字幕一区| 国产精品一二三免费网站| 久久永久无码人妻视频| 日产123区精品免费观看| 一区二区娱乐网站| 日本伦乱九九九综合| 亚洲视频二区 | 日本黄色精品专区网站| 夜夜嗨老熟女AV一区二区三区| 色五月AV在线| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 九九九九九九九九九国产精品| 伊人综合色网| 一区二区三区激情在线观看| 色在线视频导航| 热热色色综合| 亚洲av热热色| www.婷婷| 日本中文字幕在线视频| 91人妻素女| 日本成人在线不卡一区二区三区 | 欧洲特黄毛片免费看欧洲毛片| 午夜精品久久久久久久99热影院| 大香蕉九九| 强奸国产在线| 日本熟女不卡视频| 九九九精品| 欧洲色综合| 91超碰在线播放| 亚洲最大的黄色电影网站。| 色五月婷婷五月天| a在线视频免费观看| 综合av社区| 日韩图色| 正宗无毛一线天嫩逼| 亚洲色香| 色 亚洲 91| 天天α片| 欧美日韩亚洲天堂网| 蜜桃传媒一区二区亚洲| 伊人影院中文字幕| 欧美日韩性感| 天天综合亚在线| 色99色| 曰韩av中文字幕专区| 草莓精品视频在线免费观看| 欧美一级黄色免费专区| 国产福利电影| 国产精品麻豆成人av| 婷婷涩嫩草鲁丝久久午夜精品| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 人妻在线臀日韩| 天天日少妇逼AV| 九九人人操| www.国产高潮精品| 大香蕉乱伦视频网| 超碰久热| 电影69乱码96| 自拍盗摄一区| 婷婷另类小说| 久久人妻少妇| 欧洲精品二区| 校园春色 欧美| www.av家庭乱伦| 18禁在线视频| 强奸乱伦大香蕉| 国产成人亚洲精品无码古代早漏男| 99在线精品观看99| 97在线精品| 亚洲砖码砖专无区2023| 牛牛aV| 麻豆这里只有精品| 69超碰综合| 99re这里只有精品中心播放| 亚洲综合影片| 色五月激情AV在线| 精品人妻一区二区三区视频在线| 97精| 国产精品一区av在线| 久久久久久久国产视频| 色色婷婷五月天| 日韩偷拍色图| 亚洲色图 图片| 999久久久久久久久| 亚洲视频精选| 看免费的黄片| 亚洲av乱伦色图网站| 中文字幕在线播放2中文字幕在线观看2| 嗯嗯嗯好爽| 人人澡人人弄| 成人性交免费视屏| 亚洲第一黄色av网站| 欧美在线干| 亚洲欧美setu| dy888午夜老子影视达达兔| 亚洲激情在线观看一区| 97人人超| 亚洲性综合| 免费国产视频| 国产成人自拍视频在线| 中文字幕在线观看网页| 久久亚洲日韩国产欧| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 久草成人| 亚洲色欲天天人妻无码系列专区| 密臀在线免费观看| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 亚洲在钱| 性暴力欧美猛交在线直播| 婷婷激情五月| 中文字幕乱偷人妻久久艾草网| 日韩大香蕉| 久久人妻无码毛片A片麻豆| 国产高清午夜成人在线观看| 九九九九AV| 亚洲在钱| 日本综合色图| 精品成人无码| 99热婷婷一区二区三| 又大又白奶子| 校园春色综合香蕉| 95自拍视频在线观看| 国产精品一区二区手机看片| 黄片视频观看| 久久骚| 欧美综合色| 亚洲一区二区三区播放在线| 99热这里只有精| 密臀AV在线| 久久男人的天堂| 日韩中文字幕二区| 职场同事知名国产国产精品久久欧美日韩| 日本午夜久久电影| 超碰地址97| 三级日韩一区二区三区| 婷婷国产精品九区| 色吧91| 91ise欧美| 久久久久久久| 天天爽天天| 嗯嗯不要 视频| 果冻国产精品麻豆成人av| 久久久久久久久久久久欧美日| 男人天堂黄片| 麻豆黄站| 97人人草| 91精片| 有码人妻系列| 69少妇一区二区| 九九九九九九成人| 伊人网综合在线视频| 欧美第一页| 日本精品高清一二区一本到| 欧美色图99| 亚洲激情色片| 999久久久免费精品国产牛牛| 麻豆亚洲Av成人无码一区精品| 亚洲图片第一页| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 国产中午字一暮区| 精品 码产区一区二-1080P高清在线www-B029AV| 91色夜| 亚洲色人妻综合| 久久久久人| 亚洲操人| 天天综合网日韩| 欧美亚洲丝袜美女电影| 精品乱子一区二区三区99| 国产精品白丝在线播放| 91精品国产综合久久久蜜臀| 操一操摸一摸| 日韩少妇在线视频| 人人天天欧洲| 小视频国产| 熟妇一区,二区,三区。| 日韩女优中文字幕| 国模艳艳啪啪一区| 免费视频97| 国产中文福利| 大香蕉亚洲中文| 超清福利精品视频在线| 亚洲欧美校园| 躁躁日曰躁2020| 91精品国产高清久久久久久,亚洲成人 | GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 色偷综合| 色97| 国产成人www免费人成看片| 欧美综合第一页| 欧美中文狠| 95人妻爽爽人人做人人澡| 在线综合 亚洲 欧美中文字幕| 肉丝中文无码高清| 日韩99神马视频片| 久久精品一区二区三区不卡| 941超碰| 久久久久久免费电影| 亚洲.欧美.丝袜.中文.综合| 干日本人少妇午夜寂寞影院| 男人天堂2017| 超碰天天去日穴| 日本男人插女人的逼黄色| 一品道视频一区二区三区| 国产91精品福利在线| 久久久少妇| 91久久国产精品| 东京热不卡视频| 亚洲伊人久久精品狠狠在线| 久久婷婷五月天| 欧美日韩国产高清在线一二三区| 三级精品三级在线观看| 色99999| 亚洲风情在线观看| 超碰诱惑| 超碰人人干天天射| 少妇厨房愉情理伦片bd在线观看| chaopen97久久| 97精品97| 都市激情人妻一区二区青青操视频| 日韩欧美麻豆大片| 天天综合在线4| 懂色AV一区二区三区| 激情视频网址| www.激情| 夂久色| 丁香五月综合| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 红杏大香蕉| 日韩大香蕉精品在线视频| 性暴力欧美猛交在线直播| 亚洲色图欧美一区二区不卡| 玖玖综合网| 美女黄页网站| 农村妇女精品一二区| 俞拍久久国应视频| 干超碰碰熟女| 波多野结衣之双飞调教在线播放| 日韩一级欧美一级国产一级台湾 | 国产超碰| 国产精品交换一区二区| 蜜臀久久99精品久久久老,,| 蜜臀国产AV中文字幕| 大稥蕉免费视频这里只有精品| 色性欧美| 久草毛片电影怡| 国产视频第2页| 蜜桃臀久久| 97久久国产精品女不卡| 美女91网站| 国产亚洲精品精AV.| 欧美综合娱乐久久| 97人人干人人操| 又黄又爽在线观看视频| 国产一区二区三区不卡手机在线| 97干天天| 92大香蕉| Av色五月| 国产精品视频精品一二| 日本一区二区三区四区免费观看| **一级毛片国产| 污啪啪啪视频| 和协影院中文字幕三区| 97中文字幕一区| 国产h小视频在线观看免费| 久操操AV电影| 任你爽视频| 久久亚州高清| 久热99999| 日日超碰亚洲| 再深点灬舒服灬太大了添视频| 久久99亚洲精品久久99果| 久久综合18p| 色天堂在线观看| 色综91| 不卡一区二区日本视频| 999狠狠综合| 桃色人妻在线视频| 国产一级高清免费观看| 亚洲欧美一区二区三区一猛片| 嗯啊不要在线观看嗯啊| 亚洲国产丝袜在线观看| 97在线观看免费视频| a v网站在线播放| 少妇诱惑视频| 日欧毛片久久| 人妻精品一区一区三区蜜桃91| 欧美91精品国产自产| 亚洲精品国产精品乱码不99| 青青操少妇| 免费超碰97久久| 人妻色偷色噜| 又黄又爽在线观看视频| av草草在线电影| 午夜无遮挡男女啪啪视频| 欧美九9 9 9| 蜜臀99久久精品| 少妇无码av专区线| 欧美三级免费伊人| 精品在线蜜臀| 开心激情站| 国产乱码久久久| 国产精品久久久久久久黄无码| 亚洲欧美天堂在线| 91天天| 亚洲婷婷五月天| 91狠狠狠| 亚洲综合成人网| 一摸二插三插| 中文字幕免费看大片| 97AV在线免费观看| 国产一级特黄大片处女| 成人A片男人的天堂| 人人操人人摸人人骑| 蜜桃色色网站视频三区| 久操免费观看| 日韩一区二区精品视频| 久久啊啊| 五月天色图影视| 天天色欧美| 婷婷四五区| 91老熟女视频| 偷拍亚洲高清图片| 亚洲国产成人精品999| 国产SV一线| 麻豆国产视频精品观看| 欧美亚洲高清不卡| 91快色色色色色| 自拍第一页| 国产精品久久久久av| 美国精品国产精品| 国产九区| 亚洲古典另类欧美在线| 欧洲一区二区| 天天狠| 老外又粗又长一晚做五次| 亚洲激情色片| 免费的黄片wwwwww| 大香蕉狠狠爱| 久久9久9久99久9久9| 无码人妻一区二区三区色欲aⅴ| 好吊色一区| 色综合av男人天堂| 青娱乐黄色录像| 99re3这里只有精品| 青娱乐亚洲自拍| 欧美黑人与女人91| 青青草日逼视频| 天天做日日做| 懂色AV网| 丝袜天堂| 9久久精品| 日韩成人高清一区二区| 国产情色在线| 久久国产三区| 免费伦费视频在线观看| 中文字幕一区二区无码成人| 96AV久久久| 日本在线播放不卡一区| 中文字幕欧美丝袜07资源| 天天天天天天天天综合| 亚洲成av人片色午夜乱码| 国产又黄又粗又猛大片| 青操影院| 久久久噜噜噜久久久| 老熟女乱子伦中文字幕一区二区| 国产91美女视频| www.高清无码诱惑一区.com | 精品97精品97| 亚洲无套久久嗯嗯| 张柏芝国产一区在线观看| 亚州中文字幕超碰97| 欧美日韩99| 精品国产91内射久久| 加勒比无码毛片| 一本色道综合久久欧美| 久久国语| 美女露胸露奶头| 性色av蜜臀av色欲aV| 久久国产精品视频| 神马久久久久久久久久| 丝袜 亚洲 偷拍| 精品久久久久av影院| 97这里只有精品| 久久精品六区| 熟妇高潮精品一区二区三区下载| 理论久久婷婷网 8| 337p大胆噜噜噜噜噜91Av| 日日夜夜精品| 欧美性爽xyxOOOO| 婷婷爽人人婷婷爽视频| 欧美综合亚洲| 青青草久草AV| 超碰在线97国产| 熟妇女人妻呻吟久久AV| 国产精品色色| 四色永久成人网站| 中文字幕免费看大片| 国产女人高潮嗷嗷嗷叫小说| 国产乱伦搜索结果91P| 超碰久超碰久| 黑丝制服中文字幕| 久久一二三四五六七八九区| 亚洲性少妇| 色情综合| 欧美精品 - 91爱爱| 开心激情站| 久综合网| www.99视频| 久99视频| 久99热| 久久美女福利是上海美女| 国产精品视频自拍在线| 亚洲在线网站| 欧洲在线性爱视频| 五月天婷婷在线看| 亚洲欧美高清无码| 香蕉国产精品麻豆亚洲欧美日韩| 秋霞色色影院| 天天干天天操天天操夜夜操天天操 | 性高潮久久久| 人人妻人人爽| 亚洲综合999| 91亚洲网| 夜草欧美| 日本最新免费韩国1区2区视频播放| 黄页18禁| 天天日天天舔东京热| 欧美97在线观看| 亚洲国内精品成人不卡| 人妻少妇久久中文| 九久久九九久视频| 日本精品999| 一区AV| 亚洲免费在线探花| 国产精品岛国片在线观看| 欧美视频在线视频免费va| 综合久久99| 97青青操视频| 97丝袜亚洲在线播放| 色香网| 91人人| 欧美Aⅴ| 色一色综合网| 91在线美女| 人妻五十路在线| 国产精品欧美在线观看 | 免费少妇一区二区| 中文字幕片| 久久国99999| 又黄又硬又粗又长国产视频| 曰韩中文人妻视频| 夜嗨影院| 青青国产精品在线| 精品久久久不卡一区二区| 久久婷婷一区| 在线观看不卡一区二区三区| 国产精品自拍欧美在线| 久久久蜜桃一区二区三区| 另类 综合 日韩 欧美 亚洲| 日韩精品资源| 精品美女久久久久| 91日韩在线| 麻豆精品天美| 97色碰| 在线v中文字幕一区二区三区| 91久久久久久久久久久| 激情小说亚洲视频| 黄片www视频免费| 丝袜熟女一区二区三区| av操操不卡| 97国产精品在线观看| 在线综合 亚洲 欧美中文字幕| 91丨九色丨东北熟女| 99色婷婷中文字幕乱色| 999精品久久久久久久| 亚洲天堂人妻熟妇视频| 蜜桃传媒一区二区亚洲| 亚洲女优有码无码高清| 久久综合国产精品国产| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | av大香蕉网站| 久久久久国色αv免费观看| 日本免费一级AAA大片器| 超碰日本97美女人妻人人玩人人爱| 国产91专区| 天天天天干| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 亚洲天堂中文字幕无码男同| 亚洲AV永久无码一区仙野| 亚洲啪AⅤ永久无码| 国产91精品福利在线| 香港日本韩国人妇99www.wccm20| 色操逼网| 大香蕉中文网| 亚洲欧洲日产国产综合网| 日韩乱插| 亚洲成人激情小说视频| 亚洲日韩精品一区二区| 人人弄人人摸| 久久手机好看网站| 久久久精精精| www99热| 天天天做天天天爱天天天爽| 久久精品日韩| 日本不卡二三区| 成人蜜乳小视频网站| 国产视频三区四区| 亚洲色图综合| 少妇毛片久久| 女性喷水高潮在线观看| 四虎永久在线精品免费网址| …亚洲黄色厕厕女女在线播…| 九九久久99| 精人妻一区二区三区| 日本99热| 精品黄色电影| 日韩三级网址| 蜜臀AV秘一区翔田千里| 伊人青青草久久| 日本操逼视频不卡直接放| 中文97国产| 2018天天干在线视频| 美女丝袜激情小说| 簧片免费看视频| 日曰骚久久精品| 日韩久久三区| 99久久久无码国产精品性啊聊| 国产精品久久久久绯色| 国产又色又粗又黄又爽| 91欧美丨精品丨入口| 人人操,操人人| 亚洲色婷婷综合久久一区二区三区| 色综合久久久久| 999999精品| 人妻无码后入| 中国一区二区亚洲人妻| 欧美欧美少妇| 日韩精品熟妇| 亚洲精品中文字幕一区在线视频| 午夜操一视频一区| 美女啊啊啊啊啊啊啊| 91人妻人人澡人人爽人人精品| 青青草色插素人| 伊人久久婷婷| 亚洲日韩视频二区| 日韩电影中文字幕| 91在线免费观看处女| 欧美成人AⅤ大片在线观看| 99久久久久久亚洲精品不卡| www.高清无码诱惑一区.com | 人妻干天天| 青青草影视蜜久久| 精品熟女一区=区三区| 日韩中文字幕人妻视频| 亚洲男人天堂手机版| 欧洲乱码一区二区| 99re国产中文字幕| 日韩成人私密一级精品av| 91无码人妻| 色999人与兽| 欧日a| 青青青国产手线观看视频2| 男人成人黄色视频在线观看免费下载| 嗯嗯啊在线视频| 日韩无码黄色片| 综合网天天| 国产AV天美传媒一区二区三区| 乱日视频| 9l视频自拍9l九色成人| 成人免费毛片| 色九久| 一区二区三区在线日韩影院观看| 精品久久在线区一区| 亚欧高清在线| 日韩乱伦AⅤ| 97欧美精品| 天天综合91入口| 亚洲大胆人体av| 黄页18禁| 丁香五月av| 午夜福利成人免费视频| 日本免费一级AAA大片器 | 99re国产中文字幕| 国产精品亚洲天堂网址| 久久97超碰| 午夜精品久久久久久久第一页按摩| 狠综合网| 亚洲中文电影| 人人色97| 国产日韩欧美三级片| 18禁无码永久免费无限制| 久久久人妻| 九九热精品视频六| 欧美后入式| 亚洲欧美一区二区不卡视频播放| 一起草av| 中文字幕123| 日韩美女操b| 一本大道不卡一二三区| 一级人妻性爱视频| 欧洲黄色网| 超碰在线一区二区| 91欧| 91情色在线| 无码粉嫩白虎一线天b区| 蜜桃午夜视频一区二区 | 尤物黄色在线观看网站| 久久久久久亚洲Av无码| 欧美片第一页| 91AV入口| 国产成人精品必看| 隔壁邻居波多野结衣中文字幕| 不卡中文字幕aⅴ在线| 91被操| 天天操人人操狠狠插| 日日操免费视频| 欧美性爱免费短视频| 人人干黄色| 国产日韩欧美亚洲精品95| 狠狠中文字幕| 成人性爱美曰韩| 97最新在线播放视频| 涩五月婷婷| 国产亚洲人妻综合日韩 久久| 一区二区你上我| 午夜福利久久久噜久噜久久综合 | 精品传媒在线一区| 91精品国产91久久青草 | 97在线观视频免费观看| 风骚少妇视频中文字幕| 国产超碰97| 不卡在线观看视频| 香蕉国产精品麻豆亚洲欧美日韩| 亚洲国产成人精品999| 精品高清一区二区三区三州| 人人干人人操人人..com| 免费看一级a性色生活片久久无| 丁香五月激情综合| 人人爽夜夜操| 天天日美女的B| 亚洲色图欧美色18直播在线| 久操电影| 日韩午夜精品一区二区三区电影| 丁香五月婷婷色| 亚洲色图加勒比| 人妻少妇久久中文| 婷婷爽人人婷婷爽视频| ji熟女.com| 操逼日韩无码 | 蜜乳av一区二区| 超碰人人色| 嗯嗯啊啊亚欧精品| 91啪啪| 无遮挡一级毛片视频免费的| 婷婷色色五月天福利| 日韩欧亚太美不卡| 亚洲AV无线| 色九九综合AV| 国产精品久久久久久久毛片1| 久久色激情一区二区三区| 欧美男人的天堂| 日本福利二区视频| 啊啊啊啊啊舒服| 亚洲成熟国产精品美女| 久99热| av天堂精品久久| 福利偷拍视频-中文字幕2019国语完整视频大全-S91AV | 久久人妻视频网| 亚洲欧洲无码一区夜| 日本欧美韩国国产在线| 天天操人人操骚逼网站| 97人人射| 欧美亚洲首页| 亚洲97P| 一区二区三区免费视频入口| 亚洲 日本 一 二 三| 久午视频| 99精品人人爽| 青青草视频久久| 九九视频黄色片| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 歐美一級亂黃99在綫精品| 啊啊啊啊好大好硬啊啊啊啊啊| 超碰97人妻在线| 人妻少妇av在线观看| 亚洲人妻色图| 美国人人操人人操| 日本三级人妻a人妻一在线| 熟女久久| AV无码久久久精品| 九九九九九九九九九五码| 国产精品人妻无码久久久互動交流 | 五月天激情四射| 大香蕉92| jizzjizz欧美| 黄色不卡视频| 亚洲**2021在线观看| 91亚州日韩高清| 水滴偷拍| 狠狠狠狠狠狠| 99久久99九九99九九九| 欧亚在线视频| 干b网| 色婷亚洲五月在线观看| 超碰在线综合97| 免费的黄片wwwwww| 天堂亚洲精品久久老牛| 日本免费一级AAA大片器 | 秋霞无码av鲁丝片一区| 熟妇高潮一区二| 亚洲熟女精品| 欧美91精彩| 黑丝自慰喷水网站| 操淫穴亚洲五月丁香 | 精品国产精品一区二区| 亚洲骚男同com| 性爱av在线免费观看| 91精品国| 婷婷久久综合| 久久久久久九九九| 性色avv| 久久久国产av美女私房| 99蜜桃臀亚洲成人在线观看| 国产一级137片内射麻豆| 成人黄页| 精品区国产区一区二区三区| 人人操人人精品影片| 色播丁香| 91色图| 97超碰免费人人性爱| 99在线无码精品秘 入口黑人 | 五月婷婷基地| 亚洲熟女乱熟乱熟妇综合网二区| 日本熟妇自慰性高潮一区二区三区| 亚洲图片欧洲图片aⅴ| 日本亚欧爱爱| 激情综合五| 绯色一区二区三区不卡少妇| 日韩精品99999| 肥佬影院91| 亚洲综合888| 最新三级网址| 91N综合网| 亚洲国产精品久久久久婷婷青年| 国产一区二区在线播放量| 精品中文日韩字幕视频| 婷婷操逼| 熟妇xxxxx性春色| 99久在线精品99re8| 日本 欧美 亚中文字幕| 岛国1区2区3区在线观看| 精品无码产区一区二| 激情六月天| 高潮毛片无遮挡高清免费| 久9综合在线| 偷拍网站久久男女男| 色嗨嗨在线| 9118禁| 97网址97| 亚洲 图片 综合91| av日韩国产一区二区| 搡老女人老熟女91老熟女综合网| 天天综合香 ld视频| 久久婷婷综合国际产色怕| 国产精品点击进入在线影院高清| 精品中文日韩字幕视频| 蜜臀久久久久久999| 伊人激情五月天一区二区| 丰满人妻区一区二区三| 在线中文AV| 精品久久久久瑟瑟| 精品久久久亚洲AV成人网站| 亚洲啪啪视频免费| 丝袜美腿操av| 97一区二区三区视频| 精品女人999| 欧美系列在线一区二区| 26uuu最新| 后入人妻无码| 嗯,啊。舔我逼| 国产大片精久久久久久| 日本99视频| 久久99午夜精品一区人妻| 欧美巨大性舒爽顶到了| 亚洲性爱无码乱伦av| 黄色av一区二区在线| 欧美亚洲国产91在线| 欧美日韩欧美| 日韩av情韩国爱禁区av一区二区| 1024亚洲中文字幕久在线看片你懂的 | 色香91| 中文字幕人妻色偷偷久久皮| 九九久久九九久久| 久久久精品国产亚洲AV无码| 久久直播国产| 岛国在线国产| 男女一进一出视频久久| 欧美 亚洲精品首页| 色噜噜狠狠色综无码久久| 中文字幕女同在线| 91美女视频在线| 欧中日成人免费影视| 920日本午夜免费| 久久婷婷精品| 欧洲熟妇xxXx欧美老妇裸体| 国产精品无码av在线| 欧美综合娱乐久久| 天天谢天天干| 国产超碰AV在线精品| 国产精品成人AV片免费看网站| 久操免费在线| 日日摸天天爽夜夜欢| 亚洲自拍97| 97超碰中文在线| 久久精品黄色| 91骚熟女| 女人精品内射国产99| 最新日本中文字幕| 亚洲欧美国产中文视频| 九九九精品成人免费视频小说| 福利视频香蕉免费一区二区在线| 亚洲毛片基地专区| 国产精品点击进入在线影院高清 | 久jiu久神马影院| 91蜜臀在线久久久久| 亚洲最大的黄色电影网站。| 208天天久久九九九| 狠狠爱夜夜干| 夜夜黄| 男女国产精品| av黄图片在线观看| 在线有码中文字幕| 日韩亚洲中文字幕在线| 人人射人人操人人摸|