• Stars
    star
    9,595
  • Rank 3,667 (Top 0.08 %)
  • Language
    Python
  • License
    MIT License
  • Created about 3 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

带带弟弟 通用验证码识别OCR pypi版

header.png

带带弟弟OCR通用验证码识别SDK免费开源版

官方免费在线ddddocr接口

注册即可免费在线调用

当前版本为1.4.7

1.4.3更新内容

本次升级的主要原因为,dddd_trainer 的开源进行适配,使dddd_trainer 训练出的模型可以直接无缝导入到ddddocr里面来使用

支持使用ddddocr调用 dddd_trainer 训练后的自定义模型

dddd_trainer 训练后会在models目录里导出charsets.json和onnx模型

如下所示,import_onnx_path为onnx所在地址,charsets_path为onnx所在地址

import ddddocr

ocr = ddddocr.DdddOcr(det=False, ocr=False, import_onnx_path="myproject_0.984375_139_13000_2022-02-26-15-34-13.onnx", charsets_path="charsets.json")

with open('888e28774f815b01e871d474e5c84ff2.jpg', 'rb') as f:
    image_bytes = f.read()

res = ocr.classification(image_bytes)
print(res)

捐赠 (如果项目有帮助到您,可以选择捐赠一些费用用于ddddocr的后续版本维护,本项目长期维护)

Test Test

赞助合作商

赞助合作商 推荐理由
YesCaptcha YesCaptcha 谷歌reCaptcha验证码 / hCaptcha验证码 / funCaptcha验证码商业级识别接口 点我 直达VIP4

1.4.0版本更新内容

本次更新新增了两种滑块识别算法,算法非深度神经网络实现,仅使用opencv和PIL完成。

算法1

小滑块为单独的png图片,背景是透明图,如下图

Test

然后背景为带小滑块坑位的,如下图

Test

  det = ddddocr.DdddOcr(det=False, ocr=False)
  
  with open('target.png', 'rb') as f:
      target_bytes = f.read()
  
  with open('background.png', 'rb') as f:
      background_bytes = f.read()
  
  res = det.slide_match(target_bytes, background_bytes)
  
  print(res)

提示:如果小图无过多背景部分,则可以添加simple_target参数, 通常为jpg或者bmp格式的图片

    slide = ddddocr.DdddOcr(det=False, ocr=False)
    
    with open('target.jpg', 'rb') as f:
        target_bytes = f.read()
    
    with open('background.jpg', 'rb') as f:
        background_bytes = f.read()
    
    res = slide.slide_match(target_bytes, background_bytes, simple_target=True)
    
    print(res)

算法2

一张图为带坑位的原图,如下图

Test

一张图为原图,如下图

Test

  slide = ddddocr.DdddOcr(det=False, ocr=False)

  with open('bg.jpg', 'rb') as f:
      target_bytes = f.read()
  
  with open('fullpage.jpg', 'rb') as f:
      background_bytes = f.read()
  
  img = cv2.imread("bg.jpg")
  
  res = slide.slide_comparison(target_bytes, background_bytes)

  print(res)

更新内容2

添加全局ocr关闭参数,初始化时传入

dddd = ddddocr.DdddOcr(ocr=False)

则为关闭ocr功能,如果det = True,则会自动关闭ocr

1.3.1版本更新内容

想必很多做验证码的新手,一定头疼碰到点选类型的图像,做样本费时费力,神经网络不会写,训练设备太昂贵,模型效果又不好。

市场上常见的点选类验证码图片如下图所示

Test

Test

Test

Test

那么今天,他来了,ddddocr带着重磅更新大摇大摆的走来了。

简介

ddddocr是由sml2h3开发的专为验证码厂商进行对自家新版本验证码难易强度进行验证的一个python库,其由作者与kerlomz共同合作完成,通过大批量生成随机数据后进行深度网络训练,本身并非针对任何一家验证码厂商而制作,本库使用效果完全靠玄学,可能可以识别,可能不能识别。

ddddocr奉行着开箱即用、最简依赖的理念,尽量减少用户的配置和使用成本,希望给每一位测试者带来舒适的体验

项目地址: 点我传送

更新说明

本次更新其实分为两部分,其中有一部分是在1.2.0版本就已经更新了,但是在这里还是有必要提一下的。

第一部分 OCR识别部分

在1.2.0开始,ddddocr的识别部分进行了一次beta更新,主要更新在于网络结构主体的升级,其训练数据并没有发生过多的改变,所以理论上在识别结果上,原先可能识别效果的很好的图形在1.2.0上有一小部分概率会有一定程度的下降,也有可能原本识别不好的图形在1.2.0之后效果却变得特别好。 测试代码:

import ddddocr

ocr = ddddocr.DdddOcr()

with open("test.jpg", 'rb') as f:
    image = f.read()

res = ocr.classification(image)
print(res)

通过在初始化ddddocr的时候使用beta参数即可快速切换新模型

import ddddocr

ocr = ddddocr.DdddOcr(beta=True)

with open("test.jpg", 'rb') as f:
    image = f.read()

res = ocr.classification(image)
print(res)

OCR部分应该已经有很多人做了测试,在这里就放一部分网友的测试图片。

Test Test Test Test Test Test Test Test Test Test Test Test 等等更多图片等你测试哟~

第二部分 目标检测部分

在本次1.3.0的更新中,目标检测部分隆重登场! 目标检测部分同样也是由大量随机合成数据训练而成,对于现在已有的点选验证码图片或者未知的验证码图片都有可能具备一定的识别能力,适用于文字点选和图标点选。 简单来说,对于点选类的验证码,可以快速的检测出图片上的文字或者图标。

import ddddocr
import cv2

det = ddddocr.DdddOcr(det=True)

with open("test.jpg", 'rb') as f:
    image = f.read()

poses = det.detection(image)
print(poses)

im = cv2.imread("test.jpg")

for box in poses:
    x1, y1, x2, y2 = box
    im = cv2.rectangle(im, (x1, y1), (x2, y2), color=(0, 0, 255), thickness=2)

cv2.imwrite("result.jpg", im)

举些例子:

Test Test Test Test Test Test Test

以上只是目前我能找到的点选验证码图片,做了一个简单的测试。

安装

环境支持

python <= 3.9

Windows/Linux/Macos..

暂时不支持Macbook M1(X),M1(X)用户需要自己编译onnxruntime才可以使用

安装命令

pip install ddddocr

以上命令将自动安装符合自己电脑环境的最新ddddocr

拓展 一键部署ddddocr api,支持docker部署

github

gitee

爬虫框架推荐

feapder

crawlab

交流群 (加我好友拉你进群)

五群链接 Test

Star 历史

Star History Chart

More Repositories

1

ddddocr-fastapi

使用ddddocr的最简api搭建项目,支持docker
Python
801
star
2

dddd_trainer

ddddocr训练工具
Python
785
star
3

ast_tools

ast基础框架-基于babel
JavaScript
537
star
4

mmewmd_crack_for_wenshu

文书网MmEwMd参数破解,2023.06.25供应文书一手日更数据
JavaScript
476
star
5

captcha_trainer_pytorch

基于MobileNetV2/EfficientNet-b0/... + LSTM + CTC的不定长图像识别训练pytorch框架
Python
197
star
6

captcha_server

一个免费开源一键搭建的通用验证码识别平台,大部分常见的中英数验证码识别都没啥问题。
Python
186
star
7

openlawClawer

openlaw数据爬虫v1.1 更新日期:2017.12.16 解决新版openlaw多种加密问题。引入celery轻松异步分布式,爬取速度再次翻倍!!
Python
58
star
8

DdddOcrLib

DdddOcr的C++静态编译版Lib
C++
37
star
9

luosimao_cracker

螺丝帽点击验证码破解sdk,仅供学习,若擅自使用本人不承担任何责任
JavaScript
30
star
10

stockman

正在开发中的A股量化数据工具,目前支持tushare
Python
25
star
11

OhMyWechat

一款通过Web的方式进行微信个人号社群营销管理系统
JavaScript
23
star
12

HM4hUBT0dDOn80T_for_wenshu

文书网最新解密server
Python
20
star
13

wenshu

法律文书网爬虫
Python
19
star
14

python_collect_domain

python无限爬取URL,渗透必备
Python
16
star
15

proxypool

土豪专用代理池,IP质量高,稳定,快
Python
16
star
16

ddmmocr

带带妹妹ocr
16
star
17

12306SDK

正在写的12306调用SDK,将内置验证码识别工具,提供常用的12306的api
Python
14
star
18

WsSpider

中国裁判文书网全量数据采集工具
Python
13
star
19

ylgy

羊了个羊 uid版获取token(已经失效啦)
Python
12
star
20

onnxruntime-static-lib

onnxruntime的各种静态编译库
8
star
21

opencv2-static-lib

opencv2的静态编译库
4
star
22

laravel-easyali

PHP
4
star
23

python_wechat

python版微信聊天机器人
Python
4
star
24

python_web_Vulnerable_tools

python版的Web漏洞批量扫描器,exp插件模块已抽象化,可实现不修改主体python程序的前提下,加入新的exp模块
Python
4
star
25

python_qq

python开发QQ机器人
Python
3
star
26

csdn

天津工业大学CSDN俱乐部官网
JavaScript
3
star
27

goldedu

服务外包创新大赛,定制化试题服务
JavaScript
2
star
28

Medical_Data_Mining

一个关于医疗方面的数据挖掘的项目,主要包含爬虫,分词,自编码降维,以及决策树实现
Java
2
star
29

ztone

ztone 新一代分布式爬虫框架
Python
1
star
30

openlawSpider

新版openlaw爬虫
Python
1
star
31

python_huatian_active_user_crawer

花田活跃用户抓取
Python
1
star
32

SLSpider

一款分布式爬虫监管与发布平台
1
star
33

sml2h3

1
star
34

ocrhub

1
star