日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满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
返回資訊列表
久久熟女精品不卡一区| 大香网伊人久久综合| 97色色网| 岛国天天午夜影院传媒网| 91人妻最真实刺激绿帽| 有码人妻系列| 青娱乐淫乱1314| 999国产精品999| 北野未奈加勒比av| 另类一区| 伊人午夜福利视频| 人人摸人人摸人人干| 亚洲棕合电彰| 中日亚韩免费视频| 啊啊啊水好多| 91五月天| 免费伦费视频在线观看| 久偷拍欧美日韩三区| 色色色日本| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 欧美乱色| 97国产人人| 91色综| 亚洲日韩电影| 麻豆2区1区天美| 中文字幕三四区| 久久久久骚| 超碰在线人人射| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 国产精品女久久久久av爽| 中文字幕加勒比海高清无码免费视频| 久久精品噜噜噜成人看免欧美大片| 女沟厕偷窥piss小便| 蜜桃中文字日产乱幕4区| 无码人妻一区二区三区免费九色| 激情干在线| 情色大香蕉| 丝袜美腿诱惑亚洲欧美视频在线观看 | 日韩黄色一区二区三区| 亚洲情色 自拍| 青青草日本无码| 精品一区二区国产日韩| 欧美 亚洲 综合 制服 另类| 99久在线精品99re8| 超碰天天去日穴| 91 在线亚洲| 日韩欧洲操屄视频| 久久女女| 国产污视频麻豆传媒一区二区| 久久尹人大香焦视| 夜夜夜夜夜夜夜夜夜狠狠狠狠狠狠狠| 日韩欧美加勒比| 久插综合| 亚洲黄网在哪免费看| www欧美91| 黄色成品网站| 久久无码电影| 91亚洲欧美| 97综合国产精品高潮久久| 黄在线| 96一区二区| 大香蕉欧美伊| 丁香五月激情综合| 被男人吃奶很爽的毛片| 激情小说亚洲色图| 中文字幕伊人| 884t在线| 四虎永久在线精品免费网址| 亚洲av影院在线观看| 精品久久97| 亚洲淫乱骚妇AV| 欧美日韩第一页| 神马久久久久久| 久久久99999久网站| 大香蕉黄色一区| 探花精品 一区二区| 在线观看啊啊啊啊啊| 午夜久久一区二区无码中出| 亚洲高清无码免费观看视频| 74成人在线| 91爱剪切久久| 国产和美国毛片| 激激五月| 色欲天天综合网| 性爱网站一区二区| 思思热国产高清| 97国产伦理| 蜜臀AV一区二区三区激情综合| 成人线上超碰| 美女天天干| 青青草亚洲一区| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 国产精品视频麻豆入口| 亚洲熟女诱惑| 欧美亚洲清纯| 好看的久久不射无码影视影院| 探花熟女,姿勢到位,體驗感也到位| 国产乱青青草久久| 欧美天天谢综合网| 日本三级日本三级三级人妇四虎| 欧美性爱日韩性爱| 亚洲学生妹高清av| 精品97久久| 亚洲区限制级 99| 中文字幕片| 天天日日舔舔| 激情六月天| 国产亚洲色婷婷久久99精品91葵花宝典| 国产91丝袜 在线播放| 久艹视频在线| 蜜桃精品一区二区三区久在线| 久9热| 日韩不卡a级视频专区| 国产精品人人爽人人做可爱福利| 国产精品日日摸天天碰| 欧美综合传媒| 曰韩香蕉97| 色香在线| 日韩干B| 骚货人妻偷情自拍在线视频| 丁香五月天视频| 国产黄片在线免费观看| 亚洲 欧美日韩 另类| 欧美成人A天堂片在线观看| 日韩精品在线视频,日韩精品……| 99re99在线视频| 美女天天干| wuyechaopeng| 日本五区不卡| 亚洲欧美黄| 一区二区三区视频| 日韩视频精品在线观看| 伊人精品久久网站| 午夜无码精品免费看性色| 欧美黄片欧美黄片xxx| 中日亚韩免费视频| 性一交一乱一交A片久久四色| 国产动漫操逼视频| 日韩pv中文| 人妻日日夜夜精品| 超碰 av 女人天堂| 热热色综合网| 久久系列| 91大神精品长腿在线观看网站| 青娱乐老司机视频| 国产一区二区精品久久99| 激情网色| 深爱激情五月天| 男人的天堂啪啪啪啪啪蜜桃不卡| 日韩一999精品| 四虎免费看黄| 亚洲高清欧美总合| 欧美A片中文字幕| 小说区 图片区色 综合区| 牛牛操视频逼| 曰韩av中文字幕专区| 加勒比大香蕉视频在线| 久久超碰98| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 亭亭在线资源| 久久久久国产精品久久久| 日韩簧片免费看| 欧美网站免费| 7月婷婷综合| 国产精品第二页| 欧美,亚洲,日韩,v,天堂,手机在线观看| 欧美桃色网| 青娱乐休闲视频在线观看| 男人的天堂午夜av| 国产久久一区二区午夜| 超碰97在线色男人??| 丝袜AV一区二区三区| 白丝被操91| 第一高清av中文字幕| 久操99| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 极品五月天噜噜| 人人搡人人肉久久精品| 2017亚洲天堂| 国模精品娜娜一二三区| 10000部十八禁看电影| 夜夜春夜夜操| 久久伊人亚洲AV无码网站| 免费一级视频特黄色大片| 9热9热综合网| 中文字幕乱妇免费视频| 人人操人人摸人人看人人插| 加勒比大香蕉视频在线| 操淫穴亚洲五月丁香| 久久69| 亚洲少妇综合在线播放| 九色 人妻 大香蕉| 97爱爱官网| 久久久久久久伊人精品| 人妻天天夜夜爽一区二区| 午夜精品久久久久久久99热影院| 欧美少妇色图| 亚洲综合在线视频| 日韩一级二级三级免费看完整版国语版 | 国产农村妇女一区二区| 欧美亚洲清纯| 国产精品久久久久久久AV大片 | 五十路二区在线 | 麻豆视频一区二区| 717影院理论午夜伦八戒| 97资源免费视频| 26uuu久久| 婷婷色色网| 天美传媒av在线| 国产强奸AV在线| 日本狠狠干| 欧美亚洲清纯| 色久桃花影院在线观看| 男人的天堂在线2| 国产精品久久久无码AV网站| 色好看av| 国产精品黑人一区二区三区| 伊人成人中文字幕久久网| 久草毛片| 搡老熟女老女人老熟妇免费视频| 91成人国产综合久久精品蜜月| 色牛aV| 久久久婷| a啊啊啊啊啊啊啊啊一区二区| 乱伦1色页| 宅男91视频在线播放| 综合 亚洲 欧美| 日本在线一二| 97超碰欧美精品| 99久久久久| 亚洲性综合11| 免费一级欧美片片线观看| 国产精品3| 最好看的中文字幕在线2018| 国产美女激情| 26uuu性| 色天堂综合| 99国产精品视频尤物| 97 视频在线| 日韩免费三级黄片电影| 天天舔天天日天天射| 三级色综合| 另类视频在线| 精品黑人一区二区| yazhououmeizongya| 久久久精品国产亚洲AV无码| 夜夜欧美 | 亚洲熟妇自偷自拍另欧美| 人妻熟女一区二区三区视频| 精品一区二区3区| 欧美狠狠干| 大香蕉伊人网WWWn0n| 日韩免费中文字幕视频| 亚洲影院小综合| 免费久久一级毛片大黄| 啊啊啊啊啊啊啊在线| 黄色视频特级毛片| 久操国产在线| 91丝袜在线观看视频在线观看| 日本中文字幕不卡视频| 激情文学 亚洲图片| 国产精品麻豆视频网站| 精品少妇一区二区| 射 色综合| 无码人妻精品一区二区三区99不卡| 色第一页| 手机在线看片免费人成视频| 亚洲丝袜诱惑| 国产精品suv一区| 鸡巴插逼视频| 欧美日韩欧美| 五十路二区在线 | 91狼人| 夜夜爽夜夜操| 妇人噜噜| 久久激情网| 天天干人人看综合| 啊啊啊啊好大好硬啊啊啊啊啊 | 天天搞欧美| 综合网欧美在线| 国产成人99久久亚洲综合| WWW美腿丝袜香蕉中文| 午夜丁香婷婷| 天天操天天射天天日| 欧美后入式| 中文字幕一二三区| 国产综合操逼高清| 涩涩涩综合| 狠久久| 香港成人一级视频在线青青草| 插日本熟女视频| 亚洲激情综合另类| 欧美日韩美女精品久草一区二区三区| 欧美精品成人亚洲| 久久久久久AV无码免费网站| 免费观看性欧美一级| 久久久久久无码人妻中文字幕| 国产后入精品| 亚洲精品第一| 无码人妻精品一区二区中文 | 岛国毛片在线观看免费| 91青青草| 91操熟女视频| 亚州男人的天堂| 中文字幕二区日韩天堂| 亚洲精品人妻吞精av| 91福利网在线观看| 啪啪啪亚欧美视频| 国产精品在线一区二区| 艾草av| 92福利社视频| 国产精品色色| 久久婷婷五月| 日韩国产乱子伦App| 中日韩免费看男女操逼大全| 亚洲丝袜少妇在线| 91精品国| 亚洲精品97中文字幕| 91丝袜美女| 青青操青娱乐| 激情五月综合网| 伊人久操| 欧美性巨大╳╳╳╳╳高跟鞋| 日韩字幕一区| 成人97人人超碰人人| 亚洲在饯| 天堂成人网| 免费国产| 日韩久射综合| 正宗无毛一线天嫩逼| 成熟熟女国产精品一区二区| 九九热在线精品视频| 99自拍B亚洲| 97资源超碰| 91久久精品国产| 91九色精品熟女内射| 天天干夜夜一操| 无码国产Av| 人人做天天爱| 免费啪啪av| 久久露脸国产老熟女| 欧美在线观看综合国产| 亚洲**2021在线观看| 国产精品蜜乳AV| 国产精品天美传媒| 超碰在线一区二区三区| 亚洲aV无码成人在线观看| 丰满人妻-区二区三区免费看| 国产综合在线视频网站| www.yeyecao| 国产精品白丝在线播放| 亚洲欧美一区二区网址| 国产三级在线现体验区| 波多野42部无码喷潮在线观看| 国产家庭乱伦性爱视频| 欧美一区二区三区另类精品| 亚洲av影音先锋| 日本一级婬片试看三分钟| 成人精品一区二区91毛片不卡| 17c在线成人免费A片观看| 午夜.DJ高清在线观看免费7| 97任你吞精| 丁香婷婷久久 | 草草草视频在线免费看| 国产无码精品高清| 婷婷丁香五月天综合东京热| 国产精品久久久三级无码| 91热爆在线| 亚洲欧美精品一区天堂久久 | 无码精品人妻一区二区三区妖精 | 在线看片国产精品每日更新| 久久久久婷婷| 熟女日韩| 最新av在线| 啊啊啊啊好大好硬啊啊啊啊啊| 欧美性Fer办公室秘书| av日韩中文字幕| 狠狠躁伊人中文字幕| 国产色产精品在线观看 | 18禁美女裸体无遮挡啪啪| 1禁看欧美黄片免费看| 精品色色| 婷婷另类小说| 亚洲欧美校园| 欧美性爱第一页久久| 国产操偷| 色爽爽文学| se,,,亚洲欧美| 久久婷婷一区| 国产福利一区二| 夜嗨影院| 91 丝袜在线| 青青草影视蜜久久| 中文字幕,人妻,日韩| 俺去俺来也在线www| 国产精品青青草| 97AV在线免费观看| 97欧美综合| 国产成人午夜视频网址| 91久久久久久久久久久| 91操人| 啊啊嗯嗯好爽| 欧美极度丰满熟妇hd| 综合网,亚洲,欧美| 亚洲双插| 国内偷自视频区视频综合| 婷婷六月色| 蜜桃视频一区二区三区| 欧美天天弄| 欧美激情中文字幕另类小说| 三级网站超变态精品| 91性网| 国产熟女免费观看久久| 亚洲一区二区三区麻豆传媒| 亚洲色交| 亚洲精品中文字幕一区在线视频| 久久综合乱子伦国产免费| 久久久久久久久久久精| 操日韩第| 大香蕉综合| julia国产在线 | 精品78| 在线无码操| 岛国人妻少妇av在线观看| 亚洲色阁| 99在线精品观看99| 久久久91福利姬| 特级特黄一级毛片免费| 男人的天堂在线2| 蜜臀AV午夜精品久| 91丨九色丨大屁股| 亚洲色图片区| 一级黄色牲爱A级片| 日韩午夜国产| 最新国内自拍av免费| 夜夜爽77777| 欧美成人精品一区| 99天堂网| 淫淫综合网| 大地资源在线观看中文第二页| 国产第二页| 国产在线强奸视频| 好屌色综合| 黄色香蕉视频网站一区| 亚洲一二三四区机械| 97视频在线| 色噜噜综合在线| 日本韩国五十路六十路七十路老熟女作爱视频网站 | 亚洲成人性爱网站在线播放| 懂色AV中文| 边做饭边操逼逼| 日韩99999色| 操逼操逼操| 超碰97精品在线| 香蕉视频精品亚洲一区二区三区在线播| 欧美极度丰满熟妇hd| AV色五月| 国产久久久久久久久一区二区 | 国产精品蜜乳AV| 久久九操在线观看| 男人的天堂一区三区| 久久成人网站| av天堂影视中文在字幕在线中文| 啊啊啊久久| 中文高清一区二区的| 少妇久久久久久| 久久欧美1卡2卡3| 中日韩一区二区三区欧美| 中文字日本乱码| 国内毛片无遮挡国产| 天天日天天屌天天操| 国产区91柔拿会所技师| 啊啊啊轻点在线观看| 亚洲欧美国产日本一区二区三区| 91人妻人人澡人人爽人人精品| 激情四射婷婷四五月天| 亚川综合视频| 国产熟女自拍| 亚洲情色婷婷五月天| 亚洲精品免费中文字幕| 乱子伦一区二区三区国产精品| 91精品人妻电影| 九九精品网| 美女啊啊啊啊啊啊啊| 亚洲国产91精品一区二区久久| 好屌色综合| 麻豆国产免费影片| 久久久新亚洲AV| 丁香婷婷激情五月天无毒不卡| 国产精品一级片在线看| 日本媚薬中文字幕在线| 黑人中出21连凳花野真衣| 99久久久er直播网址| 欧美性夜| 人妻在线大香蕉| 亚洲精品成人激情在线| 天天日天天干天天操| 国产精品不卡一区二区三区| 一级免费啪啪片| 日韩熟女无码| 亚洲情色 自拍| 极品色综合| 欧美亚洲20p| 亚洲欧洲网站免费观看| 囯产精品久久久久久久久久梁医生| 欧洲精品人妻| 亚洲天堂,男人| 中文字幕乱在线伦视频中文字幕乱码在线| 亚洲少妇视频| 中文字幕78| 天天舔天天 | 热热色青青草| 久久精9| 99色综合| 看日韩操逼| 91久久久亚洲| 婷婷性网| 亚洲丝袜制服国产91_国语字幕免费观看完整版下载第5集_ | 最新中文字幕精品在线| 丝袜亚洲综合| 亚洲精品久久久久久| 欧美色图片91| 屌色在线97视频| 欧美日韩国产高清在线一二三区| 一区二区乱码福利| 国产麻豆91欧美一区二区久久婷婷国产精品| 97激情97激情| 综合色图亚洲欧美| 国产精品一区二区黄片| 日韩亚洲精品一区二区| 天天激清| juliaann欧美丝袜办公室| 午夜无码熟妇丰满人妻| 午夜精品久久久久| 日本免费不卡二区| 欧美综合站| 亚洲欧洲网站免费观看| 377p欧洲日本亚洲大胆| 免费福利视频中文字幕| 秋霞怕怕片| 91bbbbbb| 久久久久久十| 91男人综合| 精品久久9| 超碰天天操| 宗合情欲网| 亚洲情色婷婷五月天| 午夜天堂精品久久久久91| 成人性爱全视频观看| 欧美激情另类一区二区| 国内精品嫩模A∨私拍小视频| 精品一级| 天天色欧美| 校园春色AV天堂| 亚洲男人天堂网站| www.久久超碰| 2017天天操天天日| 色97欧美| 成人青青草原伊人| 日韩内| 女人香蕉久久毛毛片精品| chaopen97久久| 伊人久久亚洲色欲综合网站 | 秋霞 色色| 国产农村妇女精品| 成人一二| 看免费的黄片| 人妻丰满熟妇一区二区三| 高清国产无码av| 综合伊人激情| 黄色av网站在线播放| 国产亚洲精品激情| 福利视频一区二区微拍| 日本国产高清色www视频在线| 脫衣舞一区二区三区| 日韩精品免费高清视频在线| 乱伦3P视频| 国产做?爰片久久毛片?片美国| 26uuu国产成人综合| 亚洲成人性爱在线观看| 久热久| 97天天摸天天碰| 精品国产网站| 熟妇精品juliaannAV| 久久99草| 天天影视综合色| 97免费在线观看视频| 日韩成年人性爱视频| 黄色人人| 中文字幕日本久久| 中文字幕老熟妇黄色视频| 亚洲男人的天堂一区二区| 天堂麻豆天美| 干妹子| 蜜臀99久久精品久久久懂爱| 一级人妻性爱视频| 国产色精品午夜大片| 120分钟婬片免费看| 澳门人妻久久| 日韩丨制服丨中文|在线| 欧美性夜| 亚洲天堂中文字| 欧美日韩99| 精品人妻一区二区免费蜜桃| 丰满丝袜少妇AV| 一起草视频在线| 中文人妻av高清一区| 亚洲aV性爱| 神马久久久久眼| 夜夜操一区二区| 91精品国产91熟女| 1级黄色夫妻对换性交免费看| 日韩少妇一区二区三区| 伊人五月天青青草婷婷| 99re热| 天天色图| 丁香五月天激情网站| 青青草在线视频人人想人人上| 色哟哟1区2区| 一区二区三| 一区二区视频在线播放| 一二三啪啪专区| 欧美骚少妇| 日韩欧美福利视频看看| 日本人妻A片成人免费看片| 日本 免费 一区二区三区 久久香蕉| 国产精品一区二区麻豆| CCYY草草影院地址入口| 丁香六月激情| 天天操天天日青青草超碰av| 午夜小电影在线插入淫高潮| 国产亚洲精品自在线亚洲情侣| 一区=区三区视频| 亚洲天堂另类| 国产一级不卡在线观看| 欧美色图亚洲色图成人在在线| 久久久三区二区一区| 美女熟妇色| 盗摄 精品 另类 一区| 91无摭挡| 少妇啪啪自拍| 800zy一区二区| 日本三级精品| 亚洲欧美国产成人综合不卡| 国产精品欧美激在线| 日日骚AV| 六月丁香网| 欧美大香蕉专区网| 亚洲综合在线高清| 蜜臀久久99精品久久久久| 欧美在线干| 久久精品成人一区二区三区蜜臀| 东京热视频网| 欧美天天谢综合网| 一级性爱网| 久久精品国产精品亚洲艾通辽熟妇 | 成人无码在线超碰网| 国产精品乱人伊人网| 欧美亚洲今日在线| 成人日韩欧美| 欧美操逼录像国产黄色国产| 亚洲女毛多水多21P| x97av| 欧美综合娱乐久久| 热久日综合| 岛国片在线视频网站| 天天日日日射| 日韩强奸av| 中文有码第五页| 人人模人人看| 一区二区首页| 国产精品99精品视频网站| 欲色影视综合吧| 日韩国产精品人妻无码久久久| 毛片中心9视频99| 日本不卡二区| 亚洲熟妇乱女区二区三区| 97香蕉网| 有码人妻系列| 日韩欧美午夜一区二区| 一牛一区二区三区久久| 尤物网址| 综合性视频99| 亚洲乱熟女一区二区三区大香蕉| 色香网| 天天日天天舔| 中文字幕在线观看网址| 91黑丝少妇| .精品人妻一区二区三| 久久最新视频免费观看| 天天干干天天干干| 任我爽在线视频免费观看| 欧美国产伊人久久久久| 国产9熟妇视频网站| 这里只有精品视频在线| 91久久久亚洲| 欧美亚洲涩涩| 97综合在线| 亚州91| 中文字幕-区二区三区四区视频中国| 黄片视频,下载| daxiangjiao你懂的| 国产精品青草综合久久| 天天综合91| 91熟女综合| 无码国产精品久久久久| 成人性交免费视屏| 96精品久久久久中文字幕| 亚洲天堂中文字| 综合熟妇一区二区三区| 欧美不卡在线美女| 国产女同视频在线播放| 自拍啪啪视频| 久久手机好看网站| 天天激情干| 东京热,男人的天堂| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 免费在线黄片视频| www欧美91| 日日干夜夜操视频h| 乱伦av.com| 九九九九九精品| 天天看片麻豆| 激情99| 6080YYY午夜理论片在线观看| 国产精品毛片| 欧美大码在线视频| 亚洲暴力强奸AV| 一本久道久久综合狠狠爱一密臀精 | 免费又黄又裸乳的视频| 老熟妇91| 试看60秒| 超碰国产情侣自拍网| 自拍大香蕉乱插| 欧美日韩在线视频网站| …中文字幕亚洲乱,97人妻无码费视… | 一区二区娱乐网站| 日本熟女不卡视频| 大香蕉草草| 色香在线| 欧美熟爽综合| 牛黄色久午久| 国产日韩手机视频在线| 91欧美网| 97超级色碰碰| 激情亚洲天堂| 久久久蜜桃一区二区三区| av网页一区二区三区| 亚洲一区二区在线观看91| 91男人综合| 欧美综合制服在线| 亚洲精品久| 九九色影院| 亚洲国产成人福利在线观看| 男人午夜天堂| 91制服丝袜| 国产热av| 中 文字幕一区二区三四 五 区日 日 骚| 五月婷婷丁香| 欧美特大黄一级片片免费| 亚欧性爱无码| 天天射天天| 色综合一区二区三区| 亚洲综合色图欧美| 玖玖草久草99蜜月一区二区三区| 欧美色图天堂网m| 99少妇精品视频| 国产一级片| 久久精品色欧美aⅴ一区二区| 高潮的A片激情扒开一区| 亚洲无码视频免费在线观看网址!| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 97综合激情| 欧美亚洲清纯| 搡老女人老91妇女熟女| 欧美在线l亚洲| 亚洲高清视频在线观看| 日韩伦理久 久久 清纯| 亚洲国产欧美日韩人妻日中文| 六月婷婷色综合| 欧美精品自慰系列寂寞少妇| 久久久久久国产无码精品| 亚洲欧洲综合av在线| 8x福利精品第一福利视频导航| 四虎国产精品永久在线囯在线| 国产乱子伦久久精品综合一区二区三| 欧美日韩狠狠爱| 欧美欧美少妇| 久久99九九九九6666免费观看软件| 欧洲一区二区| 91狠狠综合久久| 99热婷婷一区二区三| 国产人妻久久精品一区二区三区| 日韩在线观看AV| 97伊人超碰| 清纯唯美第一页| 0755午夜福利视频| 人人妻人人爽| 中文视频在线观看| 国产色产精品在线观看| 操逼无码操逼| 国产无码精品高清| 亚洲一区二区久久久久| 国产三级多多影院2022国产AA一级毛片无码 | 99色悠悠| 国产久久视频| 天天综合网入口~91| 九九九精品一区二区无码| 91视频综合在线| 一本大道久| 九七色图| 蜜乳中文字幕a在线| 日韩性爱视频在线免费观看| 超碰成人最新最好看| 综合欧美日本三级| 男人的天堂啪啪| 啪啪91| 91高跟美女在线播放| 九九九九九精品十六| 青青草国产一区二区三区| 高潮9999外国| 亚洲精品久久久久毛片A片拉屎 | 狠狠操狠狠| 精品免费一区二区三区在线亚洲人成| 色眯眯射| 97视频新免费| 欧美亚洲丝袜人妻制服中文99| 女人天堂av在线播放| 免费av在线播放二区| 国产成人bd在线观看| 超碰99在线| 国产夜夜艹| 啊啊啊不要嗯嗯在线观看| a啊啊啊啊啊啊啊啊一区二区| 欧美亚洲高清| 色婷婷视频| 久久久久久久人妻| 欧美亚洲一区二区久久久婷精品大包诱| 77国产精品| 人妻91少妇| 国产在线观看91精品一区| 婷婷AV一区二区三区| 久久久久性熟视频| 呦女网站| 欧美一级在线观看成人| 可以免费观看的日韩av毛片| 欧美亚洲日韩人妻在线观看| 日韩精品人妻中文字幕久久久| av2014 日韩在线中文字幕| 美女黄页| 欧美综合网1| 欧美加勒比| jizzjizz欧美| 九九热精品在线| 亚拍在线| 人妻夜夜爽天天爽三区麻豆AV网站| 欧美日韩日产免费网站看| 人妻嗯啊啊在线播放 | 91男人天堂网| 亚洲欧美另类激情小说| 国产人妻天天干精品| 欧美亚综合色图| 美女91网| 日本 色 导航| 天天影视综合网欧美精品| 肉丝无码中文高清| 亚洲 无码 偷拍| 婷婷亚洲色| 色综合99999| 青娱乐淫乱1314| 婷婷色在线| 国产乱子伦一区二区三区免看| 欧美后入| 久热91| 小草av不卡亚洲二区| 啊啊啊无码| 亚洲成?V人片在线观看福利| 91激情网| 精品蜜乳AV免费观看| 综合久久婷婷| 超碰碰小说97| 亚洲小电影免费涩涩成人在线高清| 色九九九九久| 天天影视综合色| 18禁美女裸体无遮挡啪啪| 国产久久久9999| 9丨久久九九九| 激情啪啪拍91| 91精品国久久久久久无码| 女性喷水高潮在线观看| 久久久无码国精品无码三区三区| 在线电影亚洲色图| 婷婷午夜成人色中色| 91九九九小逼| 欧美成熟性爱精品| 日本一区二区三区欧美日韩中文字幕 | 丰满熟妇大乳做爰| 日韩国产乱子伦App| 超碰中文字幕人妻草一区| 亚洲中文字幕在线视频一区二区| 亚洲丝袜二区| 美女性91| 综合激情婷婷| 怡春院久久| 亚洲国产欧美中日韩成人综合视频| 色九九综合AV| 午夜福利精品| 久久久精品一区二区| 奇米四色影视777久久久| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 国产A v无码专区| 丰满搜索结果 -第18页- 久久高清无码| 国产后入| 99久久com免费视频′| 啊啊啊好想要| 日夜啪电影| 精品人妻一区二区三区在| 亚州色交| 国产自制av蜜乳| 曰本精品久久久| A一区片| www.高清无码诱惑一区.com| 亚洲国产精品99久久久| av一区二区三区四区五区久草臀| 福利操逼| 国产久久男人天堂| 一级特级aaaa毛片免费观看| 亚洲情色综合网| 插欧洲美女欧美精品| 丝袜加勒比| 婷婷五月丁香五月| 亚洲风情在线观看| 中文字幕日韩国产传媒欧美精品| 操国产高清| 精品人妻一区二区免费蜜桃| 久久久99免费| 偷拍综合亚洲| 丁香六月婷婷综合| 中文字幕在线免费观看 | 91亚洲黄色网| 色婷婷丁香五月天| 亚洲天天综合| 一区二区 日韩 欧美 国产 传媒| 特级特黄一级毛片免费| 欧美影音在线| 九色视频91| 久久久久夜夜夜夜| 在线视频一区二区传媒| 欧美日韩操逼动图| 中文字幕黄色一起草| 99久久com免费视频′| 国产一区二区在线播放量| 国产女人9999| 激情五月激情综合网| 国产偷人伦激情在线观看| 97精品97| 亚洲色诱惑| 亚洲婷婷丁香在线| 欧美激情色婷婷花野真衣一区二区| 美国一区二区免费视频| 亚洲一区二区三区婷婷| 久久綜合很很很| 91精品无码人妻系列| 亚洲欧美日韩激情不卡| 伊人国产视频| 色色婷婷丁香| 大香蕉免费3| 五月天AV资源| 欧洲乱码一区二区| 秋霞曰韩R级| 成人怡红院| 综合久久99亚洲人妻中文在线| 亚洲天堂久久| 日韩中文字幕视频| 精品国产乱码久久久久久久久久毛片| 国产精品乱人伊人网| 国产真实野战在线视频| 97综合久久| 91美女视频电影| 一区二区三区 丝袜 高跟 美腿| 成人性爱视频在线看| 91美女小视频| 99999这里都精品| 啊啊啊 在线观看| 久久久精品无码亚免费| 好色综合| 欧美 日韩第一性色| 亚洲熟妇熟在线电影视频| 天天色播| 一线黄色免费性爱片| 久久久久久久久999| 少妇高潮喷水无套久久久久久| 日本一区二区三区精品| 精品人人插人人操| 国产精品人人爽人人做可爱福利| 中文字幕精品码亚洲| 国产诱惑| 欧美丝袜激情| 男人的天堂网免费| 无码乱人伦中文视频| 天天视频网站黄| 九色黄站| 在线洲亚线| 国产第二页| 久久一留热品黄| 密桃99999| 男人的天堂一区三区| 亚洲精品一二区| 日韩欧美大片免费高清啪啪| 日韩精品 欧美激情| 天天插天天操天天摸天天射天天看| 中文字幕一区二区三区蜜臀| 亚洲无码色| 午夜精品久久久久久久99蜜桃一| www.91人妻.com| 2024年最新色情网站在线观看| 久久久久久久| 亚洲欧美激情小说| 五十路人妻在线| 日本东京热大香蕉a片| a男人的天堂| 黄页大片在线观看| 人妻少妇视频在线播放| 久久久精品国产亚洲AV无码| 日本五十路熟女一区二区| 日韩综合无码色欲vv| 在线有码中文字幕| 亚洲中字幕日本一区二区三区| 亚洲91在线| 亚洲色电影在线| 黑人性欧美| 精品人妻一区二区三区四区| 久久精品一区一起草| 久久是精品| 97久久精品不卡| 天天爱综合网| 精品无码产区一区二| 久草久日| 久久9精品网站| 伊人午夜福利视频| 欧美精品,四区。五区| 国产精品久久久久久9999| 亚洲精品不卡一二三区| Aa东京男人的天堂| 综合性视频99| 一本一道久久综合久久| 天天综合,91入口| 97中文字幕一区| 东京热,男人的天堂| 国产9l 大屁股| 神马麻豆福利院| 久久78| 日韩免费a级毛片无码a∨| 狠狠久久手机视频精品| AV一起草在线| 狠狠中文字幕| 色yeye成人免费视频| 欧美刺激色黄片免费看| 1769一区二区| 制服丝袜第二页| 久日综合网| 偷拍片久久| 欧亚韩国999| 欧美97免费| 中文字幕第2页| 国内伊人久久久久久网站视频| 亚洲在线91| 国产v亚洲v日韩v欧美v片另类| 2017av无码免费无线播| 精品美女久久久久| 欧美性爱第一区| 无色无码| 婷婷五月影院| www四虎| 色欲人妻一区二区在线| 日日摸日日碰| 亚洲精品黄码久久久久| 97干在线| 亚洲图片激情综合另类| 美国日韩黄色片| 国模一区二区三区| 91撸色网 玖玖网 欧美| 精品久久9| 蜜臀AV午夜精品久| 欧洲黄色网| 日韩在线观看字幕精品| 婷婷导航| 国产AV天美| 亚洲少妇激情一区二区三区| 东京热综合久久一区二区| 日韩操啪| 免费av大片| 丝袜熟女2P| 91精产一区二区三区| 自拍六区| 久久久久久人妻一区精品色欧美| www.国产高潮精品| 欧美制服网站美腿丝袜| 91爱看| 91综合网在线| 国产探花日韩援交| 色五月激情网| 中文字幕乱碼在线| 99久在线精品99re8| 日韩在线观看三级电影| 风流老熟女一区二区三区l| 欧美图片偷拍| 日韩一级二级三级免费看完整版国语版| 啪啪啪综合| 欧美日韩电影成人在线| 97天堂| 91色伦综合| 天天狂操夜夜狂日| 26uuu国产日韩综合在线观看| 五月天婷婷欧美三区| 亚洲熟久久| 人人操,人人液| 黄色高清无码无码破解免费暗网| 亚洲伊人久久精品狠狠在线| 涩亚洲欧洲| 日韩操逼性鲍| 蜜臀av一区二区三区免费观看| 久久久专区| 亚洲国产精品久久AV| 欧美婷婷五月天| 久久久久久久久久久久黄色 | 日韩乱伦视频| 91麻豆天美传媒HD| 国产一二三在线视频五十路| 亚洲一欧洲中文字幕在线 | 香蕉国产精品麻豆亚洲欧美日韩| 色婷网| 九九热精彩视频| 欧美视频一| 啊啊啊啊嗯嗯嗯用力好爽| 亚洲久久东京热一二三四五区视频| 天天做天天爱夜夜爽毛片试看| 久久精彩免费视频| 亚洲欧美91√| 日日噜噜夜夜狠狠视频无| 五月天春色激情网| 久热最新在线杭州| 日韩性爱播放| 亚洲一区制服诱惑| 三级AV入口| 亚洲一二三精品久久网| 丝袜 中出 制服 人妻 美腿 中文字幕| 黄片com.| 综合色拍| 国产久久成人| 97综合日韩| 中文字幕丰满人妻日本| 加勒比大香蕉视频在线| 乱人乱色一区二区三区免费| 精品久久久久久中文| 欧美97在线观看| 日韩国产精品人妻无码久久久| 久久久久免费少妇| 日本在线999| 91色色色|