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

ARTICLE DETAIL

資訊詳情

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

基于OpenCV的銀行卡識(shí)別系統(tǒng):邊緣檢測(cè)、形態(tài)學(xué)與模板匹配實(shí)戰(zhàn)

基于OpenCV的銀行卡識(shí)別系統(tǒng):邊緣檢測(cè)、形態(tài)學(xué)與模板匹配實(shí)戰(zhàn) 簡(jiǎn)介一套完整的基于OpenCV的銀行卡識(shí)別系統(tǒng)源碼包面向計(jì)算機(jī)視覺(jué)學(xué)習(xí)者、金融科技開(kāi)發(fā)者及高校相關(guān)課題研究。該方案融合OpenCV圖像處理與機(jī)器學(xué)習(xí)技術(shù)覆蓋銀行卡圖像預(yù)處理、邊緣檢測(cè)、二值化、字符定位與識(shí)別等完整流程可直接運(yùn)行調(diào)試并配有設(shè)計(jì)報(bào)告與演示PPT便于理解系統(tǒng)架構(gòu)和復(fù)現(xiàn)實(shí)驗(yàn)。資源共43個(gè)文件以10個(gè)Python腳本為核心輔以16張JPEG和7張JPG測(cè)試圖片、項(xiàng)目說(shuō)明文檔、演示PPT、配置文件及前端頁(yè)面資源壓縮包大小10.31MBPython腳本覆蓋界面啟動(dòng)、目標(biāo)檢測(cè)與字符識(shí)別主流程設(shè)計(jì)報(bào)告則對(duì)算法原理、參數(shù)調(diào)優(yōu)和測(cè)試結(jié)果進(jìn)行了詳細(xì)說(shuō)明。目前已有98人學(xué)習(xí)下載適合用于課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)或作為OCR識(shí)別項(xiàng)目的入門參考通過(guò)閱讀源碼與報(bào)告可掌握OpenCV在金融場(chǎng)景下的實(shí)戰(zhàn)用法及字符識(shí)別模型的調(diào)用與優(yōu)化思路。1. 基于 OpenCV 的銀行卡識(shí)別系統(tǒng)先把「找卡號(hào)」當(dāng)主戰(zhàn)場(chǎng)識(shí)別數(shù)字只是收尾很多人第一次接觸這個(gè)項(xiàng)目以為難點(diǎn)在「識(shí)別數(shù)字」于是上來(lái)就研究 OCR。實(shí)際上做過(guò)一遍的人都知道翻車的全是前半段——卡片沒(méi)擺正、反光區(qū)域把邊緣檢測(cè)攪亂、卡號(hào)區(qū)域被誤判成信用卡 logo 或者一大塊底色。所謂基于 OpenCV 的銀行卡識(shí)別系統(tǒng)本質(zhì)是一條傳統(tǒng)圖像處理流水線讀圖 → 灰度化 → 邊緣檢測(cè) → 形態(tài)學(xué)閉運(yùn)算 → 輪廓篩選 → 定位卡號(hào) ROI → 數(shù)字分割 → 模板匹配。整個(gè)鏈路不用深度學(xué)習(xí)模型每一步的中間結(jié)果都能可視化這對(duì)課程設(shè)計(jì)和畢設(shè)來(lái)說(shuō)非常友好因?yàn)槟憧梢阅弥虚g結(jié)果圖寫(xiě)進(jìn)設(shè)計(jì)報(bào)告里講清楚每一層為什么這么做。適合有 Python 基礎(chǔ)、想入門 OpenCV 圖像處理、或者正在做模式識(shí)別課程設(shè)計(jì)的開(kāi)發(fā)者。2. 識(shí)別鏈路拆解從預(yù)處理到模板匹配先把每一步的中間結(jié)果看懂2.1 為什么第一步不是 OCR而是灰度化 邊緣檢測(cè)OCR 解決的問(wèn)題是「把圖片里的文字變成字符串」但它天生不擅長(zhǎng)處理「文字在哪兒」。一張真實(shí)拍攝的銀行卡照片里有卡面背景圖案、銀行 logo、卡號(hào)凸字、有效期、持卡人姓名甚至還有持卡人手指和桌面紋理。如果直接把整張圖丟給 OCR它會(huì)返回一堆亂七八糟的文字。所以 OpenCV 方案的第一件事不是識(shí)別而是把「卡號(hào)區(qū)域」從畫(huà)面里切出來(lái)。常見(jiàn)做法是先灰度化再用高斯模糊降噪最后用 Canny 做邊緣檢測(cè)。高斯模糊的核大小一般取 (5, 5)太小壓不住傳感器噪聲太大會(huì)把數(shù)字邊緣也磨平。Canny 的雙閾值建議設(shè)成 (100, 200)這個(gè)區(qū)間對(duì)銀行卡這種高對(duì)比度物體比較穩(wěn)。做完這一步你會(huì)得到一張黑白邊緣圖卡片的邊框、卡號(hào)凸字、卡面圖案的邊緣都會(huì)變成白色線條。注意這里不要急著找輪廓因?yàn)榭ㄌ?hào)的一串?dāng)?shù)字是分散的邊緣圖里的它們是一堆斷開(kāi)的白色小段下一步得先用形態(tài)學(xué)把它們連成一個(gè)整體。import cv2 import numpy as np img cv2.imread(card.jpg) # 讀入銀行卡照片 gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 轉(zhuǎn)灰度后續(xù)所有操作都基于單通道 blur cv2.GaussianBlur(gray, (5, 5), 0) # 高斯模糊抑制 CMOS 傳感器噪聲 edges cv2.Canny(blur, 100, 200) # Canny 邊緣檢測(cè)雙閾值 100/200 cv2.imwrite(edges.png, edges) # 保存中間結(jié)果方便排查這段代碼里GaussianBlur的第三個(gè)參數(shù)是高斯核標(biāo)準(zhǔn)差填 0 表示由核大小自動(dòng)計(jì)算。Canny的第二個(gè)和第三個(gè)參數(shù)分別是低閾值和高閾值梯度幅值高于 200 的像素必保留低于 100 的必丟棄介于中間的看是否與強(qiáng)邊緣相連。我建議每次調(diào)參都把edges.png保存下來(lái)看一眼邊緣圖如果全是麻點(diǎn)就把高斯核加大到 (7, 7)如果卡號(hào)輪廓斷得太碎就把高閾值降到 150。2.2 輪廓檢測(cè)找卡號(hào)區(qū)域先用形態(tài)學(xué)把斷開(kāi)的邊緣連起來(lái)邊緣檢測(cè)做完卡號(hào)區(qū)域是一堆斷開(kāi)的白線直接findContours會(huì)找出幾十個(gè)碎輪廓。這時(shí)候需要形態(tài)學(xué)閉運(yùn)算。閉運(yùn)算 先膨脹后腐蝕作用是填補(bǔ)小孔、連接相鄰邊緣。對(duì)銀行卡卡號(hào)場(chǎng)景膨脹核要設(shè)計(jì)成「水平長(zhǎng)條」因?yàn)榭ㄌ?hào)數(shù)字是橫向排列的水平方向需要連接垂直方向則要克制不然相鄰兩行字會(huì)被連成一片。核的形狀用cv2.getStructuringElement生成常見(jiàn)配置是MORPH_RECT尺寸 (15, 5)。對(duì)于 720p 級(jí)別的輸入圖這個(gè)尺寸能在水平方向把相鄰數(shù)字邊緣搭在一起同時(shí)垂直方向留出間隔。做完閉運(yùn)算后再用findContours卡號(hào)區(qū)域應(yīng)該變成一個(gè)或兩個(gè)完整的大輪廓銀行 logo 之類的小圖案因?yàn)槊娣e不夠會(huì)被過(guò)濾掉。kernel cv2.getStructuringElement(cv2.MORPH_RECT, (15, 5)) closed cv2.morphologyEx(edges, cv2.MORPH_CLOSE, kernel) contours, _ cv2.findContours(closed, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) roi None for c in contours: x, y, w, h cv2.boundingRect(c) area w * h ratio w / h if area 8000 and 4.0 ratio 10.0: roi gray[y:y h, x:x w] cv2.rectangle(img, (x, y), (x w, y h), (0, 0, 255), 2) break cv2.imwrite(roi.png, img)這段代碼有兩個(gè)關(guān)鍵參數(shù)需要按實(shí)際照片分辨率調(diào)area 8000是對(duì) 720p 圖片設(shè)置的面積下限如果你的圖是 1080p面積閾值要放大到 15000 以上否則卡號(hào)區(qū)域輪廓會(huì)被過(guò)濾掉ratio是寬高比卡號(hào)區(qū)域是典型的「矮胖條」比銀行卡主體更扁同時(shí)不會(huì)扁到像一條線所以 4.0 到 10.0 是一個(gè)比較穩(wěn)的起點(diǎn)。如果roi一直為空把你保存的closed.png打開(kāi)看大概率是核寬度不夠?qū)е螺喞獩](méi)連起來(lái)。這里我用的是RETR_EXTERNAL只取最外層輪廓避免卡號(hào)里的數(shù)字凹槽產(chǎn)生內(nèi)部輪廓干擾篩選。2.3 數(shù)字分割與模板匹配識(shí)別放在最后一步控制變量才能排錯(cuò)拿到卡號(hào) ROI 之后接下來(lái)做數(shù)字分割。最簡(jiǎn)單可靠的方法是二值化后再次找輪廓然后用x坐標(biāo)排序。為什么要排序因?yàn)閒indContours返回的輪廓順序不代表從左到右它按層級(jí)和檢索順序輸出不排序的話識(shí)別出來(lái)的卡號(hào)會(huì)是亂的。排序后還要做寬度過(guò)濾把誤檢的小噪點(diǎn)輪廓去掉。識(shí)別這一步很多畢設(shè)和課程設(shè)計(jì)選模板匹配而不是 Tesseract原因很實(shí)際銀行卡卡號(hào)只有 0-9 十個(gè)數(shù)字準(zhǔn)備十張標(biāo)準(zhǔn)數(shù)字模板非常容易模板匹配對(duì)光照變化的容忍度也夠用而且不需要額外安裝 OCR 引擎環(huán)境依賴小。設(shè)計(jì)報(bào)告里畫(huà)流程圖也方便每一層都看得見(jiàn)。模板匹配的做法是把每個(gè)數(shù)字 ROI 縮放到模板大小然后用TM_CCOEFF_NORMED計(jì)算相似度取最大值對(duì)應(yīng)的數(shù)字為結(jié)果。def match_digit(roi_gray, templates): best_num, best_val -1, -1.0 roi_resized cv2.resize(roi_gray, (templates[0].shape[1], templates[0].shape[0])) for num, tpl in enumerate(templates): res cv2.matchTemplate(roi_resized, tpl, cv2.TM_CCOEFF_NORMED) _, max_val, _, _ cv2.minMaxLoc(res) if max_val best_val: best_val, best_num max_val, num return best_num, best_valTM_CCOEFF_NORMED是歸一化相關(guān)系數(shù)輸出范圍理論上在 -1 到 1 之間越大越相似。它比TM_SQDIFF更魯棒因?yàn)閷?duì)整體亮度偏移不敏感銀行卡照片的光照不均勻正好是它的主要場(chǎng)景。模板匹配的坑在于模板本身的質(zhì)量常見(jiàn)做法是自己從一張清晰的卡號(hào)截圖上把每個(gè)數(shù)字摳下來(lái)存成 20 × 40 左右的灰度圖。摳模板時(shí)有兩條建議一是模板字體盡量和識(shí)別對(duì)象一致銀行卡上的凸字是等寬字體不要用手寫(xiě)體或者襯線字體做模板二是模板背景必須是純色最好做一次二值化再存否則匹配分?jǐn)?shù)會(huì)被背景紋理拖低。3. 拿到 zip 源碼之后的復(fù)現(xiàn)路徑環(huán)境準(zhǔn)備、目錄排查與最小運(yùn)行3.1 環(huán)境準(zhǔn)備Python、OpenCV、numpy 的版本組合這個(gè)項(xiàng)目寫(xiě)進(jìn)設(shè)計(jì)報(bào)告的時(shí)候一般不會(huì)把環(huán)境配置寫(xiě)得很細(xì)但你在自己電腦上跑的時(shí)候環(huán)境恰恰是第一個(gè)攔路虎。最常見(jiàn)的報(bào)錯(cuò)是ModuleNotFoundError: No module named cv2原因是 pip 安裝包的名字是opencv-python而導(dǎo)入語(yǔ)句寫(xiě)的是import cv2兩者不一致。還有一類情況是系統(tǒng)里同時(shí)裝過(guò) OpenCV C 版本但 Python 環(huán)境里看不到因?yàn)?C 版本不會(huì)自動(dòng)供 Python 調(diào)用。我個(gè)人的建議是新建一個(gè)干凈的虛擬環(huán)境不要往系統(tǒng) Python 里直接裝不然以后裝 torch 或者 ddddocr 的時(shí)候依賴版本互相打架很頭痛。Python 版本選 3.8 到 3.10 比較穩(wěn)OpenCV 用 4.x 系列numpy 用 1.24.x 左右。這里有個(gè)隱藏的坑新版 numpy 2.x 對(duì) OpenCV 4.x 的某些接口不兼容如果你裝的是最新 numpy可能會(huì)出現(xiàn)莫名其妙的TypeError或者CvTypeError遇到這種問(wèn)題先看版本不要先懷疑算法代碼。python -m venv venv source venv/bin/activate # Windows 下是 venv\Scripts\activate python -m pip install --upgrade pip python -m pip install opencv-python numpy1.24.4 python -c import cv2; print(cv2.__version__)最后一行命令是驗(yàn)證環(huán)境是否裝通能打印出版本號(hào)說(shuō)明導(dǎo)入成功。注意opencv-python這個(gè)包只包含主模塊如果你需要cv2.xfeatures2d這類擴(kuò)展模塊得裝opencv-contrib-python但銀行卡識(shí)別用不到別多裝。如果你用的是 conda 環(huán)境conda install opencv會(huì)同時(shí)拉起來(lái)一堆依賴我反而推薦 miniconda 創(chuàng)建環(huán)境后仍然用 pip 安裝 opencv-python這樣最可控。3.2 解壓后先看什么源碼目錄與設(shè)計(jì)報(bào)告的對(duì)應(yīng)關(guān)系z(mì)ip 打開(kāi)之后不要急著跑代碼先按目錄結(jié)構(gòu)理清文件職責(zé)。比較規(guī)范的壓縮包里通常會(huì)有這么幾類東西一個(gè)或多個(gè).py文件這是主程序和模塊一個(gè)template或templates文件夾放著 0-9 的數(shù)字模板圖片若干測(cè)試圖片以及設(shè)計(jì)報(bào)告文檔Word 或 PDF。如果你看到的入口文件叫main.py直接用 python 跑就行如果叫card_ocr.py或者bankcard.py找文件末尾有沒(méi)有if __name__ __main__段這段就是入口。先打開(kāi) Python 文件按函數(shù)名快速掃一遍。我一般會(huì)先找五個(gè)關(guān)鍵函數(shù)圖像讀取、預(yù)處理、輪廓定位、數(shù)字分割、模板匹配。有的源碼會(huì)把模板匹配寫(xiě)成一個(gè)大函數(shù)這不影響閱讀但你得確認(rèn)它內(nèi)部是否調(diào)用了cv2.imread去讀模板文件如果是模板路徑是相對(duì)路徑還是絕對(duì)路徑?jīng)Q定了你解壓后能不能直接跑起來(lái)。設(shè)計(jì)報(bào)告里通常有系統(tǒng)結(jié)構(gòu)圖和流程圖先看流程圖對(duì)照代碼能少走很多彎路畢竟課程設(shè)計(jì)報(bào)告里的流程圖往往是作者對(duì)代碼結(jié)構(gòu)的真實(shí)映射。# 這段代碼說(shuō)明源碼入口常見(jiàn)結(jié)構(gòu) import argparse def main(): parser argparse.ArgumentParser(descriptionBank Card Recognition) parser.add_argument(--image, requiredTrue, helppath to input card image) parser.add_argument(--templates, default./templates, helptemplate dir) args parser.parse_args() result recognize(args.image, args.templates) # 核心識(shí)別函數(shù) print(card number:, result) if __name__ __main__: main()這個(gè)入口函數(shù)用了argparse接收命令行參數(shù)。為什么要確認(rèn)入口結(jié)構(gòu)因?yàn)橛械脑创a把圖像路徑硬編碼在文件里你換了圖片就得改代碼跑起來(lái)很別扭??吹絽?shù)解析結(jié)構(gòu)你就可以在命令行里傳不同的圖片而不用動(dòng)源碼這在嘗試多張卡面時(shí)非常重要。3.3 最小運(yùn)行命令入口腳本與參數(shù)解析環(huán)境裝好、目錄理順后運(yùn)行就簡(jiǎn)單了。假設(shè)源碼入口是main.py模板目錄是./templates測(cè)試圖是./imgs/test1.jpg最小運(yùn)行命令如下python main.py --image ./imgs/test1.jpg --templates ./templates跑完之后程序通常會(huì)在終端打印識(shí)別出的卡號(hào)同時(shí)把定位標(biāo)記圖保存成文件比如result.jpg。如果程序運(yùn)行沒(méi)有任何報(bào)錯(cuò)但輸出結(jié)果是空的或者全-1說(shuō)明圖片進(jìn)到了識(shí)別流程但模板匹配階段沒(méi)有拿到合格的置信度問(wèn)題大概率出在模板和 ROI 的預(yù)處理不一致上比如模板沒(méi)有二值化而 ROI 是灰度圖或者兩者長(zhǎng)寬比差異太大被 resize 拉伸變形了。還有一種情況是你拿到的源碼入口不接受參數(shù)直接硬編碼了路徑。這時(shí)候不要急著改代碼結(jié)構(gòu)先看開(kāi)頭的幾個(gè)路徑變量把它們改成你本機(jī)的相對(duì)路徑注意 Python 文件的工作目錄是運(yùn)行命令時(shí)所在的目錄不是文件所在目錄。換句話說(shuō)你在venv里運(yùn)行python /home/user/card_src/main.py程序里的./templates指的是當(dāng)時(shí)終端所在的目錄不是card_src目錄。這個(gè)細(xì)節(jié)我踩過(guò)無(wú)數(shù)次建議直接在源碼里用os.path.join(os.path.dirname(__file__), templates)來(lái)拼模板路徑一勞永逸。4. 讓識(shí)別率從「能跑」變成「能用」的 5 個(gè)必調(diào)參數(shù)4.1 形態(tài)學(xué) kernel 尺寸水平連字符別讓它連成一片閉運(yùn)算的 kernel 尺寸直接決定卡號(hào)區(qū)域定位成敗。核太短數(shù)字邊緣連不起來(lái)輪廓就是碎的一百多塊面積和寬高比過(guò)濾根本找不到目標(biāo)核太長(zhǎng)兩行數(shù)字或者卡號(hào)和旁邊文字被連成一個(gè)整體定位框把整個(gè)卡片下半部分框進(jìn)去。對(duì)于 720p 輸入圖(15, 5) 是我比較常用的起點(diǎn)如果卡號(hào)區(qū)域定位框偏窄裁掉了一兩個(gè)數(shù)字說(shuō)明水平方向閉運(yùn)算沒(méi)連夠把核寬加到 20如果定位框把相鄰的卡面機(jī)構(gòu)名稱也框進(jìn)來(lái)了就縮小到 10。還有一個(gè)很容易忽略的點(diǎn)kernel 的垂直尺寸。銀行卡卡號(hào)兩行之間間距不大如果垂直尺寸設(shè)置成 10 以上兩行數(shù)字會(huì)被連成一個(gè)大塊寬高比瞬間失真。所以垂直方向控制在 3 到 5 比較安全。4.2 輪廓面積閾值與寬高比控制抓取的是整個(gè)卡片還是卡號(hào)區(qū)域源碼里通常有兩個(gè)閾值在起作用最小輪廓面積和寬高比。面積閾值太低桌面的紋理邊緣、銀行卡上的 logo 都會(huì)被當(dāng)作候選后面模板匹配浪費(fèi)在錯(cuò)誤 ROI 上閾值太高如果攝像頭離得遠(yuǎn)導(dǎo)致卡號(hào)區(qū)域像素面積小就會(huì)被直接過(guò)濾掉。寬高比的設(shè)定取決于你要定位什么定位整張卡則寬高比在 1.5 附近定位卡號(hào)區(qū)域則在 4.0 到 10.0 之間。我見(jiàn)過(guò)不少源碼把兩個(gè)閾值直接寫(xiě)死在代碼里沒(méi)有參數(shù)注釋。建議你在調(diào)試時(shí)把這兩個(gè)值提升為命令行參數(shù)或者至少寫(xiě)成文件頂部的常量并加上注釋說(shuō)明「這個(gè)值是在什么分辨率下調(diào)出來(lái)的」。不然你換一張 1080p 的測(cè)試圖所有輪廓面積都會(huì)放大快三倍固定閾值直接失效。4.3 模板匹配的置信度閾值不是 max 值大于 0.8 就萬(wàn)事大吉cv2.matchTemplate返回的匹配分?jǐn)?shù)只是一個(gè)相對(duì)相似度TM_CCOEFF_NORMED在理想情況下接近 1但因?yàn)殂y行卡凸字有立體陰影、照片有反光實(shí)際能到 0.7 以上就算不錯(cuò)了。很多人在源碼里看到if max_val 0.8這樣的閾值就以為低于 0.8 的識(shí)別都是失敗的這往往會(huì)漏掉大量本來(lái)可以正確識(shí)別的數(shù)字。更好的做法是不設(shè)絕對(duì)閾值而是記錄整張卡號(hào)序列的平均置信度最后判斷平均值比如低于 0.5 時(shí)輸出「卡片可能識(shí)別失敗」。你也可以把每個(gè)數(shù)字的置信度打印出來(lái)如果你發(fā)現(xiàn)某個(gè)位置的數(shù)字總是被分成兩個(gè)輪廓說(shuō)明分割階段出了問(wèn)題而不是匹配閾值的問(wèn)題。調(diào)閾值永遠(yuǎn)先看單數(shù)字的分布不要拍腦袋設(shè) 0.8。4.4 數(shù)字排序x 坐標(biāo)排序 vs 行排序分割出的數(shù)字輪廓必須排序后再拼接否則輸出的卡號(hào)順序是亂的。銀行卡卡號(hào)有兩種常見(jiàn)形式一種是單行排列比如 16 位卡號(hào)印成一行另一種是兩行前 8 位一行后 8 位一行。單行排序列按cv2.boundingRect的x坐標(biāo)升序排列即可。雙行排列就不能只按x排得先按y坐標(biāo)分出行再在每一行內(nèi)按x排。我建議直接寫(xiě)一個(gè)分組函數(shù)先對(duì)每個(gè)輪廓取中心點(diǎn)(cx, cy)按cy做聚類。同一行的輪廓cy差值應(yīng)該很小差值超過(guò)輪廓自身高度的一半就認(rèn)為換行了。這部分用numpy就可以實(shí)現(xiàn)不要依賴輪廓的索引順序。4.5 二值化方法全局 threshold 處理不了復(fù)雜光照很多模板匹配代碼默認(rèn)對(duì) ROI 做cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)這在均勻光照下能用但銀行卡是塑料材質(zhì)側(cè)面一打光就會(huì)出現(xiàn)漸變反光全局閾值會(huì)直接把部分卡號(hào)數(shù)字從白色變成黑色。遇到這種問(wèn)題優(yōu)先換cv2.adaptiveThreshold它按局部鄰域計(jì)算閾值能解決大部分光照梯度問(wèn)題。代價(jià)是會(huì)把卡面的紋理誤判成前景所以自適應(yīng)閾值之后通常要加一個(gè)中值濾波或者先用面積過(guò)濾掉小噪點(diǎn)。如果換自適應(yīng)閾值后效果反而變差還有一種常見(jiàn)做法先對(duì) ROI 做大津法THRESH_OTSU。大津法自動(dòng)根據(jù)直方圖選擇閾值在卡號(hào) ROI 這種前景背景比例相對(duì)固定的場(chǎng)景里表現(xiàn)不錯(cuò)。我自己的經(jīng)驗(yàn)是優(yōu)先 OTSU它不需要調(diào)參數(shù)只有 OTSU 效果不好時(shí)才上自適應(yīng)閾值并調(diào)塊大小。參數(shù)常見(jiàn)設(shè)置調(diào)試信號(hào)閉運(yùn)算 kernel(15, 5)定位框碎或包含多余區(qū)域時(shí)調(diào)整輪廓最小面積8000 720pROI 為空時(shí)按分辨率等比放大寬高比范圍4.0 ~ 10.0定位到整張卡或 logo 時(shí)收窄匹配置信度0.5 ~ 0.7低于 0.4 優(yōu)先檢查預(yù)處理二值化方式OTSU / adaptive反光嚴(yán)重?fù)Q adaptive紋理干擾換 OTSU5. 避坑環(huán)境報(bào)錯(cuò)、空輪廓、誤匹配的三類常見(jiàn)翻車與排查5.1 No module named cv2pip 包名和導(dǎo)入名不是一回事現(xiàn)象運(yùn)行源碼第一行import cv2就拋ModuleNotFoundError: No module named cv2。 原因很多人直接用pip install opencv或者根本沒(méi)裝庫(kù)。PyPI 上不存在名為opencv的 Python 包正確的包名是opencv-python而它的導(dǎo)入名是cv2包名和導(dǎo)入名不一致是 Python 生態(tài)里比較特殊的一處。 解決執(zhí)行python -m pip install opencv-python不要用pip install opencv。如果已經(jīng)裝了很多包怕沖突先python -m pip list | grep opencv看是否裝過(guò)別的 OpenCV 發(fā)行版有opencv-contrib-python同時(shí)在環(huán)境里時(shí)建議只保留一個(gè)兩個(gè)都裝會(huì)導(dǎo)致符號(hào)沖突具體表現(xiàn)是findContours等函數(shù)報(bào)奇怪的 C 類型錯(cuò)誤。5.2 imread 返回 None中文路徑與文件缺失問(wèn)題現(xiàn)象代碼沒(méi)有報(bào)錯(cuò)但cv2.imread讀出來(lái)的img是 None整個(gè)流程在cv2.cvtColor處拋出空指針異常。 原因OpenCV 的imread內(nèi)部用的是 C 的文件讀取接口不支持中文路徑。如果你的測(cè)試圖片放在D:\測(cè)試圖片\card.jpg這種目錄下imread會(huì)返回 None而且不會(huì)報(bào)任何 warning。 解決把圖片路徑改成純英文目錄或者用cv2.imdecode配合numpy從字節(jié)流讀取繞開(kāi)imread的路徑解析限制。第二種方法的寫(xiě)法是img cv2.imdecode(np.fromfile(D:/測(cè)試圖片/card.jpg, dtypenp.uint8), cv2.IMREAD_COLOR)。同樣的問(wèn)題也會(huì)出現(xiàn)在cv2.imwrite上寫(xiě)結(jié)果圖到中文路徑時(shí)一樣會(huì)失敗只是imwrite通常會(huì)返回 False注意檢查返回值而不是只看有沒(méi)有報(bào)錯(cuò)。5.3 cv2.error: OpenCV(4.4.0)... 與 findContours 返回值不一致現(xiàn)象運(yùn)行到contours, hierarchy cv2.findContours(...)時(shí)報(bào)錯(cuò)錯(cuò)誤信息類似too many values to unpack。 原因OpenCV 3.x 和 4.x 的findContours簽名不同。3.x 返回三個(gè)值(image, contours, hierarchy)4.x 返回兩個(gè)值(contours, hierarchy)。如果你下載的源碼用的是舊教程的寫(xiě)法跑到新版 OpenCV 上就會(huì)解包失敗。報(bào)錯(cuò)里帶著OpenCV(4.4.0) C:\users\...\pip-req-build...就是典型的 OpenCV 版本差異。 解決確認(rèn)你的 OpenCV 版本python -c import cv2; print(cv2.__version__)如果是 4.x把代碼改成contours, _ cv2.findContours(...)。如果你需要兼容兩個(gè)版本可以寫(xiě)一個(gè)小的分支判斷cnt cv2.findContours(...); contours cnt[0] if len(cnt) 2 else cnt[1]。這個(gè)兼容寫(xiě)法在給別的同學(xué)跑代碼時(shí)特別有用因?yàn)樗沫h(huán)境很可能和你不一樣。5.4 卡號(hào)區(qū)域定位錯(cuò)亂輪廓沒(méi)連起來(lái)或者連成一大塊現(xiàn)象定位框用紅框畫(huà)出來(lái)之后框的位置要么在桌面雜物上要么把整張卡下半部分全包住要么框里只有半個(gè)卡號(hào)。 原因三種情況最容易發(fā)生。第一是閉運(yùn)算 kernel 太小數(shù)字邊緣之間還有缺口輪廓不完整寬高比不符合卡號(hào)區(qū)域被過(guò)濾后反而選到了旁邊的 logo第二是 kernel 垂直尺寸太大把兩行數(shù)字連成了一個(gè)整體第三是輪廓面積閾值太低選中了卡面上的小裝飾圖案。 解決逐層排查。先保存閉運(yùn)算后的closed.png肉眼看輪廓是不是一條完整的白色長(zhǎng)條如果斷成幾段加寬水平 kernel如果連成一片減垂直 kernel。然后打印所有候選輪廓的面積和寬高比對(duì)照卡號(hào)實(shí)際尺寸把閾值范圍收緊。不要憑感覺(jué)調(diào)打印數(shù)據(jù)說(shuō)話。5.5 數(shù)字識(shí)別混淆模板字體和卡面字體的差距現(xiàn)象識(shí)別結(jié)果里 6 經(jīng)常變成 83 變成 84 變成 9整體置信度都在 0.5 到 0.7 徘徊。 原因模板匹配的原理決定了它只認(rèn)「接近模板的形狀」。銀行卡卡號(hào)用的是等寬凸字字體和系統(tǒng)自帶字體、網(wǎng)上隨便下的字體差異很大。特別是 6 和 8、3 和 8 這種筆畫(huà)結(jié)構(gòu)接近的數(shù)字只要模板的邊緣和實(shí)際字符差幾個(gè)像素匹配分?jǐn)?shù)就會(huì)倒向錯(cuò)誤的那一邊。 解決重新制作模板而且只從你實(shí)際要識(shí)別的卡種上摳模板。準(zhǔn)備一張分辨率高、沒(méi)有反光的真實(shí)卡號(hào)圖手動(dòng)用矩形框切出每一個(gè)數(shù)字存成模板。摳模板時(shí)把數(shù)字四周空白裁掉不要留大塊背景然后統(tǒng)一縮放到相同尺寸比如 24 × 40。模板制作好之后單獨(dú)測(cè)試每個(gè)數(shù)字的匹配分?jǐn)?shù)如果 6 和 8 的分?jǐn)?shù)差不到 0.05說(shuō)明模板太模糊或者 ROI 里有干擾線回到分割環(huán)節(jié)檢查是不是把兩個(gè)數(shù)字的邊界裁歪了。6. 進(jìn)階用腳本生成一張自測(cè)銀行卡先驗(yàn)證流程再驗(yàn)證效果拿到這個(gè)項(xiàng)目后最容易掉進(jìn)去的陷阱是拿一張真實(shí)卡照片反復(fù)調(diào)參結(jié)果卡面反光、拍攝角度等因素混在一起根本分不清是哪個(gè)環(huán)節(jié)出了問(wèn)題。我習(xí)慣先做一張可控的測(cè)試卡把變量全部固定住再逐步貼近真實(shí)場(chǎng)景。做法是用 OpenCV 的putText在純色背景上畫(huà)出一串卡號(hào)保存成test_card.jpg。這張圖沒(méi)有反光、沒(méi)有透視變形、字體位置標(biāo)準(zhǔn)適合先驗(yàn)證整條流程是否走通。import numpy as np import cv2 img np.full((180, 640, 3), 30, dtypenp.uint8) # 深色底模擬卡面 card_no 6222 1234 5678 9012 # 16 位卡號(hào) cv2.putText(img, card_no, (40, 110), cv2.FONT_HERSHEY_SIMPLEX, 1.6, (0, 0, 255), 4) cv2.imwrite(test_card.jpg, img)用這張測(cè)試圖跑通識(shí)別流程后再做三件事一是給測(cè)試卡加旋轉(zhuǎn)用cv2.warpAffine旋轉(zhuǎn) 5 度以內(nèi)觀察定位是否穩(wěn)定二是加模擬反光在卡號(hào)區(qū)域手動(dòng)畫(huà)一個(gè)半透明白色矩形觀察模板匹配置信度變化三是換不同字體生成模板觀察同一套識(shí)別代碼的泛化能力。你會(huì)發(fā)現(xiàn)旋轉(zhuǎn)超過(guò) 8 度之后水平閉運(yùn)算核的效果大幅下降這時(shí)就需要在預(yù)處理里加透視矯正這是把系統(tǒng)做完整的一個(gè)重要進(jìn)階方向。另外如果你有精力可以把最后的模板匹配換成 PaddleOCR 或者 ddddocr 這類輕量 OCR 方案OpenCV 負(fù)責(zé)定位卡號(hào)區(qū)域OCR 負(fù)責(zé)數(shù)字識(shí)別。這樣設(shè)計(jì)報(bào)告里可以寫(xiě)兩套方案的對(duì)比實(shí)驗(yàn)識(shí)別率數(shù)據(jù)會(huì)更漂亮。但換 OCR 之前先保證 OpenCV 定位環(huán)節(jié)已經(jīng)穩(wěn)定因?yàn)?OCR 識(shí)別的上限取決于你裁出來(lái)的 ROI 質(zhì)量。我自己當(dāng)年做類似項(xiàng)目時(shí)卡在定位環(huán)節(jié)的時(shí)間遠(yuǎn)比識(shí)別多后面總結(jié)出一條教訓(xùn)凡是圖像處理項(xiàng)目先確保每一層中間結(jié)果都可視化、可保存出現(xiàn)問(wèn)題才能精準(zhǔn)定位到某一層而不是對(duì)著最終結(jié)果瞎猜。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
老外又粗又长一晚做五次| 999熟女精品| 国产又黄又爽| 久久九操在线观看| 国产传媒一区日韩| 91蜜桃婷婷狠狠久久综合9色| 91人妻人人澡人人爽人人精品| 九九热精品免费视频| av毛片aaaaa免费看| 久久国99999| 国产偷拍自拍在线视频| 福利视频香蕉免费一区二区在线| 天天影视综合色| 久偷拍| 丁香六月激情| 免费A片三p视频| 欧美综合 站| 久久婷婷国产一区二区色| 国产又黄又粗的视频| 亚洲风情综合网| 红桃视频高潮| 神马久久久久久久久久久久| 日韩久久三区| 99免费视频| 久草网站免费在线观看| 热99这里有精品综合久久| 成人在线午夜视频一区| 亚洲码和欧洲精品激情系列| 欧美日不卡| 精品性爱无码在线播放| 国产亚洲中文不卡二区| AV乱伦专区| 一本色道熟妇| 97色综合中文网| 免费男人的天堂| 中出789在线视频| 97日本超碰综合| 久久久久国产精品片区无码直播| 久久九九国产精品| 在线岛国新天堂8| 友优传媒精品在线一区二区| 老鸭窝成人免费毛片视频| 97频视在线| 九一精品牛牛一区二区| 国产综合久久久鬼色| 精品视频日日夜夜| 啊啊啊啊啊在线视频| 国产夜夜艹| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 91国内外在线| 91老熟女老女人国产老太| 久久国色天香香蕉| av东京热男人的天堂| 安徽熟妇视频| 在线 欧美 亚洲| 污电影在线观看| #NAME?| 又摸又舔在线观看网站| 97伊人超碰| 97人人色| 蜜乳AV免费观看| 国产亚洲精品精AV.| 美女被啪到深处抽搐视频| 久久久久九九九九| 国产超碰| 久久婷婷在线观看视频| 91精品久久久久| 欧美性第一页| 台湾成人无码AV| 福利视频一区二区微拍| 日日夜夜天天| 诱惑人妻欧美一区在线播放| 国产精品3| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 久草老司机| 亚洲Av诱惑| 激情欧美97| 精品一区二区三区国产| 老司机深夜影院18未满| 欧美另类色图片| 艾草av| 日韩欧亚中文在线| 啊啊啊啊免费视频| 天天弄天天操| 五月天激情婷婷| 蜜乳av首页| 啊啊啊用力在线观看| 国产美女激情| 国产一线二线三线av| 青春草莓视频在线观看网址| 天天操天天插| 天堂综合| 国产欧美精选自拍一区| 国产成人亚洲精品自产在线| 成人黄页| 日韩成人性日韩成人性爱视频在线免费观看| 亚洲av综合伊人久久| 亚洲日韩国产欧美综合v| 亚洲国产第一页综合视频| 狠狠热这里都是精品| 久久久无码精品人妻二区| 精品九九| 日本中文字幕在线视频| 级品肉射| 日本爽爽爽爽爽爽免费视频| 啊啊啊啊一区| 91九色丰满高潮| 黄色免费一级在线毛片| 美国美女AV在线| 综合熟妇一区二区三区| 女人被男人桶爽视频网站| 精品一区二区三区蜜桃臀赵总 | 视频二区美腿制服人妻欧美| 人妻精品视频一区二区| 肉丝网站91| 国产97在线播放| 伊人网青青| 麻豆60秒| 国产精品播放| 天天爽天天干| 欧美色涩| 超碰在线99| 我想要啊 啊 啊| 无码 黑人一区二区三区| 久久日韩毛| 亚洲图片视频小说| 99视频精品| 亚洲国产中文字幕| 少妇滛荡视频| 亚洲老司机123专区| 国产精品点击进入在线影院| 成人久久无码www| 91 丝袜在线| 欧美性爱一区二区三区| 欧美大干日韩| 色综合久久88色综合久久天天| 狠色婷婷久久一区二区三区_| 天天综合色图| 大香蕉92| 国产蜜臀精品一区免费尤物| 精品九九国产无码| 欧美日韩大香蕉| 成人黄页| 中文字幕亚洲欧美在线不卡| 日美免费黄片| 奇米四色网| 超碰在线一区二区| 韩日巨乳美女免费视频在线观看| 99热综合| 亚洲人妻AV| 精品一区二区国产日韩| 久久这里只精品| 精品伊人久久久大香线蕉小说| 欧成人精品H无码| 91国产在线精品| 亚洲一区二区三区麻豆传媒| 99久久婷婷国产综合精品草原| 性在久久久久久| 国产精品不卡一区二区三区av| 俞拍久久国应视频| 97亚洲在线| 久久久噜噜噜久久人妻| 十八禁网站在线| 精品国产乱码久久久久久久久1| 97在线观看播放视频| 中文AV制服乱伦| 欧美中文字幕日韩在线| 91精品久久久久五月天精品| 精品人妻中文字幕4399| 激情综合网五月婷婷五月天| 色官网在线| 人人玩人人添人人澡免费| 97爱| 天天看天天在线精品| 日韩乱伦AⅤ| 国产野战露脸在线播放| 曰韩操B| 中文字幕aⅴ在线视频| 日韩性爱网址| 人人摸人人干| 久久久久久久91| 成人资源中文字幕在线观看| 久99| 久久国产对白激情浪潮| 国产又粗又长又大的视频| 日韩专区久久久| 视频在线97| 久久久久久久久久久久97 | 夜夜爽夜夜操| 性欧美| 亚洲欧美成人在线| 91精品久久久久久综合五月天| 日本天天色| 91在线免费观看处女| 亚洲人综合| 天美传媒av在线| 亚洲在钱| 午夜黄色免费在线观看| 欧美亚洲韩国视频十五区| 爱爱啊啊啊| 国产精品久久久久亚洲av| 亚洲成人av色网| 日本免费一区二区不卡 | 精品十八在线观看| 超碰人人妻| 女性91网站| 久久久久婷婷精品av电影| 福利在线视频一区二区| 欧美肥臀在线| 特级丰满少妇一级AAAA爱毛片| 亚洲综合婷婷| 欧美桃色网| 国产最新小视频在线播放下载| 国产精品激情久久久久久久| 日日夜夜草草草| 亚洲双插| 激情综合97| 九九九成人| 午夜天堂精品久久久久91| 91人妻熟女| 人妻日日干| 中文字幕第95页| 五月婷婷丁香| 日本一级真人黄色性爱视频| 91丝袜在线观看视频在线观看| 激情无码日韩| 2021国产成人精品久久| 色女免费在线观看视频网址| 综合久久少妇中文字幕| 国产乱伦视频污| 男同专区一区二区三区在线| 国产一区二区三区影片| AV中亚| 成人性爱高清视频免费看| 97日韩欧美亚洲| 日韩97超碰中文字幕| 大香蕉免费中文| 亚州中文字幕超碰97| 国产乱码久久| 天天综合91在线| 国产精品久久久三级无码| 欧美日韩黄片精品在线| 国产久久成人| 日韩免费大片一级播放| 熟女色综合久久| 婷婷综合五月天| 日本一区二区三区四区免费观看| 逼逼逼逼操操操操操操操操操午夜剧场| 97精品久久| av网站免费线看| 麻豆视频国产一区二区| 国产欧美岛国精品一区| 久久久18| 色网在线| 99av| 懂色AV蜜臀无码精品APP | 免费在线观看国内色片网站网址| 岛国黄色大片网站| 久操高青| 大香蕉2017| 中文字幕三四区| 日本成人A片免费看| 狠狠操天天干| 9精品久久| 久久精品人人做人人看| 亚洲午夜福利视频| 青青操少妇| 亚洲天天自拍| 亚洲国产一级精品毛一级精品看免费视频 | 精品9区| 网友自拍第一页| 麻豆久久精品亚洲精品88| 高清国产精品无码| 国产天美传媒精品| 日韩偷拍一区二区三区| 禁片 高清 在线观看视频网站| 99国产在线绯色一区| 97这里有精品| 日本三级中国三级99人妇网站| 99re在线观看| 国产成人 综合亚洲 天堂| 狠狠色丁香| 97久久国产精品| 啊好大好舒服| 欧中美三级一区二区三区| 美女午夜福利免费视频| 成人一区二区三区四区| 啪啪免费| 看看日B真人视频| 操逼www.| 成人情色综合网| 欧美十八禁网站| 人妻无码视频一区二区三区久久| 人妻干天天| 一区二区三区无卡视频在线观看| 超清福利精品视频在线| 亚洲视频二区| 免费啪啪啪网站18岁| 日天天九九天堂666| AV 少妇 人妻 偷拍| 少妇蹲下露出大唇5| 91九九九馒头| 手机在线人成免费视频| 蜜臀Av一区二区三区| 99热官网| 国产精品999zyz| 91n.欧美| 插老姨肥穴| 国产强奸超碰AV| 国产麻豆福利av在线播放| 欧美夜夜骑视频| 婷婷五月天激情小说| 精品美女久久久久| 天天干夜夜鈤| 台湾佬中文娱乐网久久久久久久久久com | 91人妻在线视频| 亚洲性网| 无码操逼天堂| 插日本熟女视频| 久热久| 欧美亚洲丝袜美女电影| 天堂伊人久久| 97超碰香蕉| 岛国免费黄色网址| 另类小说五月天| 欧美色天堂网在线视频| 另类图片五月天| 熟妇人妻一区二区| 五月丁香啪啪啪| 大香蕉欧美日韩| 97最新在线播放视频| 九九热精品| 丁香六月天| 国内一区二区免费| 国产女人与拘做受视频免费| 影音资源男人日韩| 超碰97人人乐| 日本大香蕉综合网| 91视频精品| 国产无码三级视频在线观看| 99999精品成人| 日韩无码第3页| 日本东京热大香蕉a片| 视频在线观看一二三区| 亚洲av热热色| 97国产色综合| 2017大香蕉国产精品久久| 国产精品熟女一区二区三区| 少妇人妻无码| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 久久6热视频免费观看| 另类小说欧美激情校园春色| 国产精品久久久九九九| 午夜精品久久久久久久| 天美一二三在线观看Av| 五月激情小说| 人人操人人操草草| 18禁免费视频| 白丝被操91| 久久久久久免费电影| 日韩中文字幕熟妇人妻| 日韩国语字幕| 亚洲91少妇| 天天躁日日躁AAAXX| 亚洲天堂五月天国产| 国产91美女视频| 嗯嗯啊啊日韩精品| 日韩精品人妻中文字幕久久久| 色婷网| 在线岛| 一区二区三区免费视频入口| 欧美黑人熟妇精品91| 日韩八十路老熟女| 龙兴卡官方查询| 91夜夜蜜桃臀1区2区3区| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 高清无码久操视频| 日韩欧美亚洲自拍偷拍| 襙一襙| 天天射天天操天天干天天吃2018| 熟妇色99| 欧美日韩中文视频播放| 一区二区不卡视| 水滴偷拍| 国产精品操| 国产传媒av天美传媒在线| 91青青| 91精品人妻一品二品三品| 51一区二区三区| 欧美女同在线| 噜噜噜亚洲精| 久久精品28| 亚洲高清色综合| 国产AV中文| 亚洲欧美首页| 国产福利电影| 无码高清国产AV| 日韩精品免费高清视频在线| 国产黄色动态精品| 蜜臀久久在线视频| 另类老少妇| 曰本道人妻久久久在线不卡色视频| 天天综合网~91入口| 欧美大战久久久伊人| 国产丸一视频| 欧美姓爱综合网| 精品九九九| 色哟哟综合| 深夜国产一区二区三区在线看| 8050午夜少妇无码| 看看小穴| 大香蕉伊然在亚洲91| 黑丝制服中文字幕 | 99热伊人| 一牛影视久久久一区二区三区| 欧美精品久久96人妻无码| 色网综合网| 久久久久久加勒比| 亚洲高清无毛一区二区| 久久国内| 久久大香蕉手机高清| 9精品在线| 亚洲久久天堂| 国产无码三级视频在线观看| 免费啪啪啪网站18岁| 超碰日本97美女人妻人人玩人人爱 | 手机av亚洲丝袜美腿日韩第一页二页| 欧洲色综合| 成人精品无码| 亚欧国产无码精品在线| 激情图片伦理国产一区二区日韩| 久久9精品网站| yw尤物av无码点击进入麻豆| 91狼人| 欧美色九九九| AV中文字幕三四五| 亚洲国产ⅴ高清在线观看| 国产精品成人在线| 男人天堂网手机版婷婷| 国产亚洲精品久久久久小| 九九五月天| 天天干天天舔| 97超碰69| 成人三级片一区二区三区视频| 人妻一二三区| 色噜噜人妻av 中文字幕| 死我十八禁| 日日操免费视频| 日本欧美成人片AAAA| 九九九九免费视频| 在线色导航| 亚洲国产欧美日韩人妻日中文| 91插B网站| 亚洲中文日韩欧美大香蕉视频| 嗯啊啊啊轻点视频| 色综91| 97操操| 中文字幕av一区二区三区人妻少妇 | 操逼国产免费| 国产精品第二页| 26uuu最新| 伊人亚洲国产一成人久久精品,久久| 五月开心久久AV官网| 秋霞一集毛片观看| av大香蕉网站| 欧美黄色手机在线观看| 青青草啪啪网| 在线A日本| 97免费视频网| 免费一级性爱久久| 综合天天网| 激情五月综合开心五月| 丝袜av一区二区三区| 国产亚洲精品久久久久小| 91在线免费观看处女| 久久东京热久久| 精品超碰中文在线| 思思热一热婷婷热一热| 91成人无码| 亚洲天堂电影精品一区| 91熟女网| 精品99999久久久久久| 精品国产av一区二区三区四区入口| 中日无幕一二三四区| 黄骗免费网站| 青青操在线亚洲视频观看欧美在线 | 日本操逼无码| 亚洲欧洲无码一区夜| 久久精品国产96精品亚洲拳交| 92大香蕉| 91精品电影18| 成人精品一区二区91毛片不卡| 午夜毛片高清免费不卡| 欧美很很操视频| 97伊人网| 嗯嗯啊啊好疼| 色爱综合网| av网站在线看| AV天黑人| 午夜福利久久久噜久噜久久综合| 国产探花精品在线| 日韩人妻无码不卡网站| 精产国品一区二三产品| 一级性爱aaaa| 一个人免费视频观看在线WWW| 日日骚精品视频| 黄网在线播放| 99老司机精品视频在线观看| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 精品人妻一区二区三区蜜桃视频| 日产狠狠干| 九月激情婷婷| 最近二区三区视频大全| 日本中文字幕一区| 97综合在线观看| 人妻人人做人人澡人人爽欧美一区| 九九九精品美女| 欧美性爱一区二区三区四区 | 伊人久久蜜月| 夜夜高潮夜夜爽高清视频一 | 人妻蜜桃臀| 97se综合网| 色播丁香| 亚洲女毛多水多21P| 青青在线视频日韩欧美| 亚洲色图综合网| 91精品国产综合久久久蜜臀| 97在线视频观看网站| 亚洲一二三精品久久网| 五月婷丁香| 91精品人妻一区二区三区蜜桃| 日本超碰在线国产一区| 能在线播放的国产三级| 亚洲一区二区三区在线激情| 狠狠爱夜夜干| 今日头条成人一区二区三区四虎精品| 婷婷伊人綜合中文字幕| 91午夜无码| 2017av无码免费无线播| 密臀在线视频| 嗯嗯啊啊好大好爽| 热久日综合| 久久9精品视频| 一区二区激情国产熟女| 亚洲一欧洲中文字幕在线| 天天看天天日天天操| 欧美九九九| 久久久久921| 日本女厕偷拍| 天天综合欧美综合| 91大胆欧美| 天天日天天爽| 九九性视频| 中文字幕交换人妻| 中文字幕狠狠玩| 日本一区视频在线观看| 极品销魂美女一区二区 | 男人的天堂2018| 中文字幕日韩情色| 熟妇一区,二区,三区。| 亚洲熟女一区| 人人操天天爽| 五月天久久婷婷亚洲| 99色悠悠| 天堂麻豆天美| 色色99| 激情图片伦理国产一区二区日韩| 欧美性,亚州色| 干B视频伊人网| 午夜性| 伊人久久国产免费观看视频| 亚洲欧美校园另类春色| 人妻一区二区三区| 高清不卡国产| 丁香婷婷激情五月天无毒不卡| 旡码电影特区| 有码人妻系列| 91精品免费| 亚洲97网站| 亚洲另类色综合网站| 美女9118禁| 91五十路| 欧美黑人精品在线播放| 日本一区二区成人在线| 天天干天天操天天干天天操| 麻豆人妻精品一区二区| 亚洲色堂免费视频| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 狠狠狠狠狠狠| aaaa少妇高潮大片| 激情开心五月天| 蜜桃成人1区2区3区| 欧美色图天堂网m| 亚洲成人色情五月天丁香花| 精品久久九| 超碰在线日韩一区| 国产综合色精品在线观看| 岛国在线免费视频| 日本在线视频导航| 超碰调教97| a片亚洲一本通视频| 在线 欧美 亚洲| 碰碰97| 在线无码网站| 人妻中文在线| 人妻超碰青青草98| 97网色| 免费αⅴ在线观看| www.色婷婷.com| 97玖玖人妻| 五月天久久人妻| 中日韩免费看男女操逼大全| 亚洲国产欧美中文永久| 欧美成人精品一区二区三区| 刺激性视频黄页| 国产夫妻性生活视频| 亚洲成a人v欧美综合天堂下载| 日韩国产在线观看av| 一区二区 韩日AV| 久久免费老司机精品| 男人的天堂三级| AAAA级日本片免费视频| 六月色婷婷| 欧美97日韩精品| 免费男人的天堂| 天天躁日日躁xxxxx| 亚洲91综合| 激情 欧美 亚洲 小说| 美日韩成人| 久热大香蕉网站| 国产黄色剧情影片麻豆免费播放| 亚洲精品成人激情在线| 91欧美综合在线| 97久久网| 熟妇高潮一区二区免费视频| 中出20p| 亚洲精品性爱片| 久操 高清| 精品一区二区三区丰满熟女-亚洲欧美一区| 91c色| 夜夜操av亚洲一区二区| 中文一区二区| 极品尤物自安慰| 中文字幕视频在线观看一区二区| 97精品网| 日韩人妻少妇中文字幕| 亚洲视频精选| 色色99| 亚洲图片视频小说| 亚洲AV永久无码一区仙野| 91 丝袜在线观看| 国产成人精品日本视频| 加勒比AV天堂| 午夜理论片在线观看免费| 99国产精品久久久在线播放| 亚洲电影中字一区二区| 久久精品老司| 亚洲国产av中文字幕久久 | 97在线观看免费视频| 国产精品青青草| 亚洲欧美首页| 欧美美女自慰一区二区三区| 欧州一区二区三区四区| AV一二区| 波多野结衣先锋影音| 欧美一级专区免费大片| 久久精品国产72国产精品福利| 欧美大片一区二区三区| 欧美日韩国产黄色片| 人妻大香蕉| 久久久精品视频免费观看| 久久亚洲一区二区色婷婷| 久久精品国产96精品亚洲拳交| 国产精品3| 欧美亚洲日本激情在线| 超碰吊日色| 人妻天天爽夜夜爽爽| 精品国产三级av韩国在线| 日韩78m视频| 无码WWW免费视频网站| 九九热精品视频六| 另类图片五月| 思思热在线视频免费| 色偷综合| 五月综合激情网| 91丨人妻丨国产丨丝袜| 日韩亚洲美女一区久久| 伊人久久大香线蕉无码| 久久99久久99精品天美传媒棢·纸:. | 人妻一二三区| 激情婷婷丁香| 大香蕉亚洲中文| 欧美日日操| 成人AV在线网站| 久久水蜜臀亚洲AV无码精品| 亚州操逼图| av影片在线观看不卡| 中国小夫妻勾搭露脸淫荡对白| 激情四射五月天| 视频一区二区免费在线| 色偷综合| 综合激情97| 欧美一区二区三区日韩| 免费看美国人人爽,人人操| 欧美自拍偷拍综合图片| 91熟女网| 国产一区二区三区久久精品太古里| 综合久久中文字幕综合日韩精品| 亚洲色天| 久热网| 好舒服视频| 男人的天堂亚洲| 久久高清欧美国产| 国产毛片毛片4p懂色| 麻豆区久久久久亚| 精久久久91| 欧美天天拍| 人妻99p| 国产又色又粗又黄又爽| 天天综合-91入口| 欧美成人一区二区| 亚洲综合99999| 婷婷五月丁香五月| 日本污ww视频网站| 999亚洲国产视频| 亚洲精品乱码线路中文字幕| 超碰碰97资源站| 1000午夜黄色| 欧美日韩青操| 99热导航| AV高清一区| 熟女丰满人妻一区| 草草影院在线视频| 再深点灬舒服灬太大了好硬好爽| 美女写真| 一起草欧美| 九九精品无码专区免费| 国产一区二区三区高清视频| 91熟女视频| 青青草原av| 啊啊啊不要好爽日韩无码一区| 久久久不能久久久久| 欧美躁死她一区二区| 伊人AAA| 欧美精品自慰系列寂寞少妇| 丝袜美腿制服人妻二区中文字幕 | 婷婷丁香九月| 国产理论视频在线播放| 成人无码在线视频网站| 人妻色偷色噜| 精品久久久久久无码| av网站在线看| 国产精品视频自拍在线| 永久免费av无码网站国产app | 天美国产三级传媒| 亚洲天天艹| 神马精品视频| 综合网亚| 福利天堂| 成人AV在线网站| 啊啊啊 在线| 蜜臀久久99精品久久久久久-DVD| 99999久久精| 精品国产乱码久久| 国产精品久久久久久亚洲色欲| 精品人妻一区二区三区免费视频| 亚欧美色| 亚洲码在线中文在线观看| 精品日韩中文在线| 无色无码| 天美国产精品| 中文字幕丝袜人妻| 日韩大香蕉精品在线视频| 欧美在线干| 97超碰欧美中文字幕| 嗯嗯啊啊好爽| 男女激情黄色网址| 色综合色综合网| 91老熟女逼| 60秒免费小视频| 亚洲熟女诱惑| 日韩三级在线观看网站| 国产成人bd在线观看| 强奸a片网| 白丝AV网站| 97精品97久久| 97超碰精品| www.91理论| 最新一二三区视频| 久久久久国产| 成人性交午夜免费片| 人人操人人爽人人操人人| 成人精品在线免费视频| 欧美精品久久久久久久久88| 女优视频第10页| 青青草狠狠撸| 男人的天堂一区| 色伊人91| 国产熟女少妇一区| 亚洲,欧美,综合网| 91内射| 欧美一区二区三区日韩| 在线女人91| 青青草色AV| 国产精品探花色| 91粉嫩萝控精品福利网站_精品影音先锋国| 毛片17S| 国产av色网| 曰韩操B| 九九热免费国产视频婷婷伊人五月 | 美女上床网站| 女同女同恋久久级三级| 六月婷婷激情| 欧美日韩不卡传媒| 国产中文字幕在线点播| 久久久久13| 久欲AV| 亚洲欧美在线观看免费| 欧美三级一级| 色五月av| 色综合尤物| 亚洲极品| 尤物网址| 亚州春色| 小说区 图片区色 综合区| 免费观看有码高清视频| 久久久久久无码人妻中文字幕| 欧美成人四级在线播放| 日本不卡高清免v欧美日韩在线观看| 97日韩超碰超碰中文字幕| 欧美人妻久久精品二区三区| 久久动漫精品视频这里只有精品| 五月婷亚洲精品天堂| 日韩一级二级| 久久东京热成人| 久热超碰| 国产精品伦理| 男人的天堂2019AV| 亚洲同性aV综合| 国产 日韩 另类 视频一区爱| 色女免费在线观看视频网址| Av手机版天堂网| 操死我了嗯嗯嗯| 性久久久| 91偷拍欧美亚洲| 日韩一级性爱无码| 性色av一区二区| 久久久久人妻二区精品叶可怜| 久久綜合很很很| 日韩激情无码影院| 亚洲五区熟女| 欧美美女视频| 97天天摸天天碰| 亚洲男人综合| 青青11操操操操操操操操| 99无码狠狠久久| 97色色色综合网站| 一级二级三级黑人无码| 91丝袜在线视频| 日韩欧美午夜视频在线| 91热热色| 亚洲日韩一区电影| 国产又色又粗又黄又爽| 欧美精品 - 91爱爱| 93人人操人人| 国产精品69久久久久孕妇欧美| 日韩女模中文造逼| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 白嫩少妇| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 精品人妻一区二区免费蜜桃| 黑人精品XXX一区一二区| 大香蕉操久久| 久久久久久国产成人| 啊啊啊好大好湿| 91黑人无码激情在线| 欧美偷| 欧美久久婷| 乱伦a片视频| 国产后入式在线观看| 怡红院视频在线| 欧美黄片免费在线观看视频| 久久6热精品99视频| 五月丁香啪| 内射夫妻三片| 后入合集| 99热这里只有精| 国产亚洲精品美女久久久| 久久久女人| 天色综合网| 色啪网| 乱伦日本中文自拍| 噜噜噜噜天天狠狠| 夜夜狼人妻| 啪啪一区| 人人贴人人摸| 欧美后入| 久草老司机| 日本一区99| 超碰人人干| 一本一道波多野毛片中文在线| 中文字幕一二三| 91激情综合| 欧美超碰96| 99视频内射三四| 综合欧美激情网| 91老女人| 欧美在线天堂| 99re6国产精品99re| 天天综合有色网| 色婷婷导航| 婷婷影院入口| 亚洲一区二区三区婷婷| 日韩中文字幕精品一二三事国产精品| 少妇天堂网络| 99在线精品视频| 免费A V在线| 午夜乱轮操逼视频免费看| 欧美一区二区男人天堂| 精品无人区麻豆乱码1区2区图片| 日本最新免费韩国1区2区视频播放| 五月天激情网图片| 色婷婷久久| 久草精品国产99| 探花视频免费观看国产专区| 久久东京热久久| 黑人精品欧美一区二区蜜桃| 蜜桃狠狠色伊人亚洲综合| 欧美熟妇乱码在线一区| 欧美九九爱| 超碰免费人人| 91碰碰碰| 男人的天堂一区三区| 久久肏大逼| 黄片直播三级黄片两女一男| 性爱乱伦视频免费| 琪琪精品免费一区二区三区| 在线日韩日本亚洲国产| 人人操人人色网| 91色婷婷综合久久中文字幕二区| 亚洲丨在线| 99re在线视频这里只有精品| 国产少妇内射| 嗯嗯啊啊啊好爽| 久热网| 东京热,男人的天堂| 丰满欧美放荡少妇在线| 清纯唯美综合亚洲| 久久成人精品| 久久久久久人体| 舔足天天操天天射| 777超碰| 亚洲最新Av| 日韩操啪| 97精品熟女少妇一区 | 区一在线观看| 人妻夜夜爽天天爽麻豆三区网站 | 久久人妻一区二区三区高清| 2019午夜福利视频| av天堂加勒比| 99re99在线视频| 风月影院十八禁| 亚欧免费| 日韩一区二区三区四区五区| 激情网五月天| 亚洲春色激情小说| 欧美在线l亚洲| 四虎免费在线播放| 亚洲女人91| 黑人精品XXX一区一二区| 另类TS人妖一区二区三区| 加勒比久久综合网高清| 日韩av影片在线观看| 日日干日日| 你草精品在线视频| 999九九精品| 97超碰欧美精品| 秋霞怕怕片| 欧亚性爱视频免费看| 少妇 综合| 久久久久ab| 久久久久久十| 一区二区三区免费视频入口| 国语国产操逼伊人AV网| 丁香五月av| 免费网站观看www在线观| 久久超碰天天| 九九热AV| 国产免费久久久久| 狠狠色综合网| 性爱欧美五月| 综合色一区三区二区| 日韩簧片免费看| 天天爽夜夜操| 诱惑人妻欧美一区在线播放| julia国产在线 | 免费网站观看www在线观| 欧美色蜜桃97| 日韩操逼HD| 五月丁香六月| 欧美在线干| 日韩无码视频黄色| 大香蕉丝袜一级片| 1204金沙人妻懂旧版免费| 67914在线兔费成人视频| 福利社区午夜一区二区| 粉嫩不卡一区二区性爱 | 男人的天堂va在线| 国产亚州高清国产拍精| 96免费视频在线| 精品无码少妇| 91精品人| 99九九久久| av东京热男人的天堂| 欧美黄色手机在线观看| 午夜男人av| 99re在线观看| 中文乱码字字幕在线第5页| 影音先锋中文字幕日本好一区二区| 性生活久久久久久久久久| 青青青草伊人精品| 免费福利视频中文字幕| 欧美亚男人的天堂| 天天操妹子| 久综合网| 国产精品伦理| 国产精品宅男免费| 久久m| 91免费看一区二区三区| 亚洲色图久久成人| 97国产超碰| 久久人人看| 午夜美女诱惑电源网| 秋霞操逼片| 精品视频专区| 日本一区视频在线观看| 少妇国产不卡| 成全动漫视频观看免费下载| 日韩AV一区二区三区三州三州| 久久9精品| 日韩草久视频| 水滴偷拍| 欧美日韩色图片| 日本一道在线播放高清| julia高潮后不停追击中出| 日本欧美不卡| 天天添天天干电影| 欧美宗合网| 丁香六月综合激情| 91天天综合日韩欧美| 欧美久久九九| 偷拍精品一区二区三区| 一区中文字幕二区日韩| 超碰在线一区| 精品久久久av| 国产精品视频自拍在线| 日本999精品视频| 成人七区| 人妻另类| 久久99综合| 岛国爱情动作片在国产AV无码专区亚洲AV漫画 | 久久婷婷色综合一区二区三区| 91美女片在线| 国产天天骚| 人人妻人射| 97天天插| 97精品国产97久久久久久| 香蕉大久久久| 中文字幕在线观看丝袜| 97无码视频在线播放| 天天综合香 ld视频| 3P乱轮视频| 日本女人久久久| 超碰久久性爱| 日韩精品人妻一| 蜜臀99久久国产| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 青草av在线| 精品九九| 日韩在线97| 伊人久久婷婷| 国产成人无码a| 任我爽在线视频免费观看 | 免费看日产一区二区三区| 天欧美在线| 屌逼麻豆| 亚洲国产精品成人综合| 国产精品乱码久久久、久久| 婷婷五月av| 亚洲色电影在线| 性色高清在线| 精品九九国产无码| 快播久久人人aV| 精品国产91久久久久久一区黄无| 亚洲国产高清福利视频| 精品人妻av区天天看片| 激情五月天校园春色网| 国产高清成人传媒影视| 999精品久久久久久久| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 97日韩欧美| 国产精品国产| 色妺妺在线视频| 无码国产精品久久久久| 久久超碰国产一区二区三区| 青青草久久| 中文字幕日韩精品一区二区三区| 久久婷婷热| 成人精品久久久午夜福利| 日本高清一本二本免费不卡| 好湿好紧好爽 视频| 日本潮催一卡操| 91精品91久久久中77777| 少妇精品久久久八区九区| 超碰97玖玖爱| 婷婷大香蕉| 九九综合久久| 搡老人老9丨女老熟人| 日韩欧美日韩| 五月天精品| 精品国产国产AV| 九色97| 婷婷五月天激情四射| 亚洲欧美在线观看2021| 青娱乐休闲视频在线观看| 欧美情色亚洲| 97操97干| 欧亚揄拍偷拍精品视频| 国产精品suv一区| 日本一二三高清| 亚洲天堂区| 中文字幕在线观看丝袜| 91站街按摩店老熟女熟女| 精品人妻中文字幕4399| 日韩熟女操逼| 美国日韩黄片| 亚洲色图欧美| 97精品一区二区三区免费| 日本欧美不卡| 日韩射图| 久区视频| 春色综合网| 久久久久夜夜夜夜| 在线看污网站| 插日本熟女视频| 不卡码视频| 国产自产91区13区| 青苹果影院男人的天堂| 人妻天堂综合网| 射 色综合| 青青11操操操操操操操操| 国产亚州高清国产拍精| 一区二区三区免费岛国片| 99精品久久久久久久婷婷| 日操粉逼逼| 亚洲高清无码在线桃色| 亚洲最大AV网| 婷婷九月色| 欧美激情综合| 爱射综合|