允许腾讯云用户UID:2561063转发自腾讯云https://cloud.tencent.com/developer/user/2561063前言最近介绍了一款免费的验证码识别网站,识别效率太低,考虑到 ddddocr是开源的,决定搭建搭建一个,发现原作者sml2h3已经推出好久了,但是网上没有宝塔安装的教程,于是本次通过宝塔搭建属于自己的带带弟弟OCR通用验证码离线本地识别原项目地址:https:// github.com/sml2h3/ocr_api_server说明本地安装大家应该都会,可是宝塔,我弄了一个下午,尝试了wsgi协议,还有启动方式,虚拟环境等等,宝塔存在很多问题,以下是部分问题的描述 但是没有办法挂在持久化命令,终端关掉服务结束,进程守护管理器找不到启动文件(个人怀疑同上缺失activity文件)于是我修改了作者的代码,使其不需要通过命令进行选择,直接运行,由于我只是用到普通的ocr识别 >调用方法引入文件include 'ddddocr.php';获取验证码$yzm = callOCR($picture);提供给项目,实现免验证码登录
通用验证码识别OCR https://github.com/sml2h3/ddddocr 市场上常见的点选类验证码图片如下图所示 安装 pip3 install ddddocr OCR识别部分 import ddddocr ocr = ddddocr.DdddOcr(old=True) with open("test.jpg", 'rb') as f: image = f.read() res = ocr.classification(image) print(res) 目标检测部分 对于现在已有的点选验证码图片或者未知的验证码图片都有可能具备一定的识别能力,适用于文字点选和图标点选。 简单来说,对于点选类的验证码,可以快速的检测出图片上的文字或者图标。 import ddddocr import cv2 det = ddddocr.DdddOcr(det=True) with open("test.jpg", 'rb') as f: image
在Python爬虫中,或者使用POST提交的过程中,往往需要提交验证码来验证,除了人工打码,付费的api接口(打码接口),深度学习识别验证码,当然还有适合新人使用的OCR验证码识别库,简单的验证码是可以完全实现自动打码的 ,比如下面本渣渣分享的通用验证码自动识别库:ddddocr(带带弟弟OCR)! ocr = ddddocr.DdddOcr() #with open(r'C:\Users\Administrator\Desktop\验证码识别\code.png', 'rb') as f: type=2 扩展:其他适合新人的ocr识别库 pytesseract ytesseract需要配合安装在本地的tesseract-ocr.exe文件一起使用,Tesseract Ocr文字识别,需要注意的是安装时一定要选中中文包 使用也非常简单,但其强项主要是用于识别各类验证码,一般文字提取效果就稍差了。
账户密码输入后,需要识别填写验证码 思路: 由于验证码不是图片,需要用到selenium进行截取验证码,然后通过ddddocr识别数字 import time import ddddocr from imgelement = driver.find_element_by_xpath('//*[@id="valiImg"]') imgelement.screenshot('captcha.jpg') #保存验证码截图 # 验证码识别 ocr = ddddocr.DdddOcr() with open('captcha.jpg', 'rb') as f: img_bytes = f.read() res = ocr.classification(img_bytes) print(res) # 识别完成 输入账户密码/验证码 input_u=driver.find_element_by_xpath(' : 识别结果:
【算法介绍】 ddddocr是一个强大的Python OCR(光学字符识别)库,特别适用于验证码识别。 虽然ddddocr本身是一个Python库,但你可以通过一些方法将其功能集成到Winform应用程序中,以进行验证码识别、文字识别和文字检测。 要在Winform中部署ddddocr的ONNX模型进行验证码识别等任务,你可以考虑以下步骤: 环境准备:确保你的Winform应用程序可以调用Python脚本或库。 编写代码:在Winform应用程序中编写代码,调用ddddocr的API进行验证码识别、文字识别或文字检测。 测试和调试:确保集成的功能正常工作,并根据需要进行调整和优化。 【源码地址】 github.com/sml2h3/ddddocr 【界面设计】 【效果展示】 文本识别结果可以在控制台查看 滑块识别目前效果不佳,暂时放弃研究,因为我们主要用于文字检测识别比较多。
https://pypi.org/project/muggle-ocr 它整合了简单验证码识别通用模型+印刷文字通用识别,并且支持调用本文框架训练的模型。 笔者选用的时下最为流行的CNN+BLSTM+CTC(CRNN)进行端到端的不定长验证码识别,代码中预留了CNNX(搜不到因为是小编自己拼凑的)/MobileNet/DenseNet121/ResNet50 3.1 定义一个模型 本项目基于参数化配置,不需要改动任何代码,可以通过可视化界面操作训练几乎任何字符型图片验证码。 上面的操作中无需重启服务,完全的无缝切换 其次,一套服务想要服务于各式各样的图像识别需求,可以定义一套策略,训练时将所有尺寸一样的图片训练成一个模型,服务根据图片尺寸自动选择使用哪个模型,这样的设计使定制化和通用性共存 ,部署项目middleware/impl/color_extractor.py基于k-means实现了颜色分离模块,可用于处理如下形式的验证码: [img] 添加描述 还有一种方案是同时预测验证码和每个字符对应的颜色
base64_str='/9j/4AAQ====此处省略1w===bDsFFFFMD/9k='; Post_base64($base64_str); 后台获取token 填入即可,支持base64和网络文件识别图片
目录1 概述2 功能对比3 项目演示图4 核心逻辑4.1智能赋码4.2 解密方法4.3 登录与检测4.4 发票金额大写转换4.5 检查登录是否失效4.6 验证码识别5 演示效果6 项目部署6.1 Web 、51商品税收编码识别接口,前面的博文中提到了第三方识别平台,虽然免费可是效果太差,在最后的修改中废弃掉了,采用《基于DdddOcr通用验证码离线本地识别SDK搭建个人云打码接口Api》本地接口,对于第三方 2 功能对比功能原平台商户平台发票助手自动登录❌每次登陆需输入验证码✅免验证码自动登录,登录状态失效自动更新检测,商户使用无感商品编码识别❌需商户自行判断或搜索该商品税收编码✅提供本地库存和在线检测,本地没有记录自动匹配接口一键添加税收编码到商户历史记忆 简化了操作流程4 核心逻辑4.1智能赋码全平台找了个遍,没有直接就能用的,需要自行解密抓包,税码识别来自51发票,通过商品关键词得出结果,可以根据选择人群最多的选择流程:随机获取验证码并存储验证码id ,通过本地ddddocr识别后将验证码与验证码id一起提交即可。
简介 ddddocr(Deep Double-Digital Digits OCR)是一个基于深度学习的数字识别库,专门用于识别双重数字(双位数字)的任务。 为了解决双重数字识别的问题,ddddocr项目应运而生。该项目通过使用深度学习的方法,结合卷积神经网络(CNN)和循环神经网络(RNN),对双重数字进行高效准确的识别。 通过训练模型并进行预测,ddddocr能够识别图像中的双位数字,并输出其具体数值。 ddddocr的目标是提供一个简单而有效的工具,帮助开发者和研究者在双重数字识别任务上取得更好的结果。 安装 pip install ddddocr 使用 基础ocr识别能力 主要用于识别单行文字,即文字部分占据图片的主体部分,例如常见的英数验证码等,本项目可以对中文、英文(随机大小写or通过设置结果范围圈定大小写 验证码 / funCaptcha验证码商业级识别接口:https://yescaptcha.com/i/NSwk7i 8A62N1 目标检测能力 主要用于快速检测出图像中可能的目标主体位置,由于被检测出的目标不一定为文字
免费的验证码识别工具,我推荐DDDDocr,识别完成后通过验证即可 识别代码: ocr = ddddocr.DdddOcr() with open('captcha.png', 'rb') as f: ") 运行后本地产生一张图片 ⭐⭐识别验证码 刚刚分析时,ddddocr,已经大概介绍过了,ddddocr是一个开源项目,托管在GitHub上。 ddddocr的主要功能和特点使其成为一个强大的双重数字识别工具,适用于各种需要识别双重数字的场景,例如票据识别、验证码识别、电子表格处理等。 它的高准确性和灵活易用性使得开发者能够快速、准确地实现双重数字识别的需求,虽然免费版有很多缺点,但是识别今天的验证码够用了 ''' 省略上面代码 注意,补上import ddddocr ''' #5行即可识别 (img_bytes) print('识别出的验证码为:' + res) ⭐⭐⭐ddddocr修复bug 图片数据有了,应为要通过ocr识别,所以要将base64转换为图片保存在本地 运行下看下识别效果
背景 UI自动化测试-验证码识别 验证码分析:图片上有折线,验证码有数字,有英文字母大小写,分类的时候需要更多的样本,验证码的字母是彩色的,图片上有雪花等噪点,因此识别改验证码难度较大。 优点:是免费,较为易用;但其识别精度一般。 百度OCR 缺点:需要进行一系列的配置,新手一次搞不定;免费的api有调用次数限制而且需要联网【有限制】;离线sdk需要购买。 ): """ ocr 识别 :param img_path: 验证码图片路径 :return: """ ocr = ddddocr.DdddOcr() 用【百度OCR】进行验证码识别方不方便?也挺方便! 用【带带弟弟OCR】进行验证码识别方不方便?好像也挺方便! ---- 总而言之,如果你需要进行验证码识别,以上3种识别方案都尝试过, 那么,带带弟弟OCR(ddddocr)这个库一定是你的首选方案~ 下集预告 将验证码识别服务化 部署属于自己的 OCR API
步骤 采集验证码图片 处理图片:灰度、去噪、分割 分类图片,准备训练数据:将0-9数字图片放入对应文件夹,转化成数据 编写训练模型 调用模型,形成识别系统 采集验证码图片 随便找一个需要输入图像验证码的网页 ,最好先简单一点的只有数字的,并且人眼识别也比较容易的。 这步比较简单,关键是去网页上识别验证码接口url,然后按照一些网上教程写个简单的Python程序抓取那些图片。 灰度化是将三分量转化成一样数值的过程 公式如下: int gray = (int) (0.3 * r + 0.59 * g + 0.11 * b); 再使用二值法将图片色彩转化成非黑即白,可以过滤一些感染的噪音,因为人眼在识别验证码时也会自动过滤掉一些颜色比较淡的点或者色块图形 训练数据大概在1500左右,正确率在55%左右,可能需要更多的训练数据效果会好点,最后参照MNIST使用CNN去训练,同样的训练数据正确率达到80%左右,如果训练数据达到10000以上的话估计会更高(MNIST识别手写准确率在
之前在群里咨询,做自动化的时候,接口怎么去处理验证码的,接下来介绍一下如何通过图像识别技术去实现。 .b64decode(img_str) file = open('验证码.jpg', 'wb') file.write(imgdata) file.close() 步骤三、基于图片识别 ,用dddocr库识别验证码 def ocr(): ocr = ddddocr.DdddOcr() with open('验证码.jpg', 'rb') as f: img_bytes """ import requests import ddddocr import base64 import numpy import cv2 # 调接口获取验证码 def get_code() .jpg', 'wb') file.write(imgdata) file.close() def ocr(): ocr = ddddocr.DdddOcr() with
背景 上篇文章我们讲解了验证码识别的最佳解决方案,今天我们把验证码识别的能力,服务化,对外输入一个OCR接口。 将验证码识别服务化 部署属于自己的 OCR API 环境准备 【python>=3.6】 pip install ddddocr pip install flask 搭建 用flask搭建一个简单的后台服务 ('/ocr', methods=['POST']) def ocr_api(): ocr = ddddocr.DdddOcr() img = request.files.get('image _': app.run(host="0.0.0.0", port=8089) 启动服务 python ocr_server.py 验证 我们利用requests进行api验证,如下 直接用本地图片请求验证 (api_url, files={'image': captcha_img}) print('验证码结果', resp.text) # 保存验证码图片以供验证 with open('captcha.jpg
安装服务,并配置接口 验证码识别接口用到的是Python库中的ddddocr因此,我们需要安装库。 pip3 install ddddocr #或者 pip install -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com ddddocr aiohttp 下载服务端脚本到本地。 ddddocr,配置好请求模板。 点击 识别,右侧Response raw栏会出现请求的结果,顺利的话,验证码就会出现在返回内容下方。 配置暴力破解 暴力破解这部分,在之前的文章中已经写到过。
验证码识别的几个方法 百度AI开放平台 在对接之前,我们先看一下识别效果,可见效果一般,存在个别识别不出来,又因为需要付费于是不考虑 Ddddocr 之前在其他项目中,已经介绍过了Dddocr, 可以参考我的文章 《Selenium验证码ddddocr识别:带带ddocr》 识别验证码,5行搞定 ocr = ddddocr.DdddOcr() with open('image.jpg :1*37 提取结果:1*3 字符串中包含 +、-、* 或 / 符号 之前识别发现效果不理想,但是在验证码中,存在简单的验证码随机刷新,所以我的做法是:舍弃百度AI通过Ddddocr识别,识别过程中判断 识别,识别到后进行特征提取,提取完毕逐步分析,如果提取失败反复操作 def verification(): # 验证码识别 ocr = ddddocr.DdddOcr() with result}") else: print("字符串中不包含 +、-、* 或 / 符号") result = get_captcha() # 转换本地
tab=readme-ov-file 在我们日常进行一些自动化测试相关的操作时,有时候需要输入验证码,现在市场上的验证码种类非常繁多。 主流的有以下几种: 拖动滑块到 指定位置的 按照顺序点击指定的文字的 输入图片里的字母+数字组合的 计算 图片里的数字 加减乘除结果的 手机验证码的 还有一些非人类的识别物体的(emo了这种的) ddddorc 主要用来解决识别图片文本内容,比如字母和汉字 以及 滑动滑块这种的场景 那么接下来,我们就来安装和使用来试试ddddocr的效果怎么样。 接下来是使用示例: 识别图片上的文字:适用于输入图片上指定的字母或者数字等情况 import ddddocr ocr = ddddocr.DdddOcr() #图片的路径 with open("img.png 简单来说,对于点选类的验证码,可以快速的检测出图片上的文字或者图标。
之前有个爬虫需求,但每次请求都需要进行验证码识别,故需要ocr识别,推荐一个Python免费的验证码识别-ddddocr(谐音带带弟弟OCR) 安装 pip install ddddocr -i https import ddddocr ocr = ddddocr.DdddOcr() with open('1.png', 'rb') as f: img_bytes = f.read() res = ocr.classification(img_bytes) print(res) 成功识别出来了验证码文字! 而且优点也非常明显:首先代码非常精简,不需要额外设置环境变量等等,5行代码即可轻松识别验证码图片。如果你需要进行验证码识别,且对精度要求不是过高。 那么,带带弟弟OCR(ddddocr)这个库是一个不错的选择~
在很久之前,分享过一次Python代码实现验证码识别的办法。 当时采用的是pillow+pytesseract,优点是免费,较为易用。 但其识别精度一般,若想要更高要求的验证码识别,初学者就只能去选择使用百度API接口了。 但其实百度API接口和pytesseract其实都需要进行前期配置,对于初学者来说就不太友好了。 成功识别出来了验证码文字! 而且优点也非常明显:首先代码非常精简,对比前文提到的两种方法,不需要额外设置环境变量等等,5行代码即可轻松识别验证码图片。 另一方面,我们使用魔法命令%%time也测试出来吗,这段代码识别速度非常快。 下面用更多的验证码图片继续测试: ? 我又找了6个验证码图片来测试,观察结果,发现这类简单的验证码基本可以进行快速识别。 总而言之,如果你需要进行验证码识别,且对精度要求不是过高。 那么,带带弟弟OCR(ddddocr)这个库是一个不错的选择~ ——END—— 最近发现一个点外卖每顿饭都能少花5-20元的宝藏号。
前言 前短时间夜幕团队的哲哥带来一个强大的库,一个验证码识别库 ddddocr,小编第一时间看到后就收藏了,最近有空就找了一个例子来试试。 这次是某卡网站的登录,在试验这个库时,顺便教大家验证码怎么获取,因为有一种验证码定位到验证码链接后,去请求链接下载,再去识别下载后的本地图片,即使识别的结果与下载的一样,但就是不能登录。 其次 ddddocr 这个库比较适用如下的这种验证码识别,小编与某度的 OCR 对比,效果好太多了: ? 好,到这里一般是直接请求这个链接,把验证码下载到本地,进行识别,在把验证码提交上去,登录,这思路没有错,一个链接对应一个验证码,有很多网站就这样的。 保存下来图片后,就可以使用强大的 ddddocr 进行识别了,小编使用的体验挺不错,简介方便,准确度高,;某度的 OCR 调用又麻烦,识别准确度巨低。 一个效果视频如下,完整代码回复关键词获取。