ddddocr1.3.0新版本发布啦!

ddddocr1.3.0新版本发布啦!

sml2h3
2021-12-24 / 22 评论 / 2,778 阅读 / 正在检测是否收录...

今天ddddocr又更新啦!

当前版本为1.3.0

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

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

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)

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

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

Test

14

评论 (22)

取消
  1. 头像
    Windows 10 · Google Chrome

    太牛逼了,好用,博主一生平安

    回复
  2. 头像
    大飞er
    Windows 10 · Google Chrome

    简单好用,效果出众, 秒杀一切互联网大厂

    回复
  3. 头像
    Vitosha
    Windows 10 · Google Chrome

    前排围观

    回复
  4. 头像
    牛叉
    Windows 10 · Google Chrome

    画图

    回复
  5. 头像
    shu.S
    Windows 10 · Google Chrome

    太好用啦感谢!博主!好人一生平安

    回复
  6. 头像
    jujube
    Windows 10 · Google Chrome

    日记精彩

    回复
  7. 头像
    阿萨
    Windows 10 · Google Chrome

    符号 - + = 怎么不能识别了

    回复
  8. 头像
    iy88
    Windows 10 · Google Chrome

    大佬牛逼

    回复
  9. 头像
    finallyvin
    Windows 10 · FireFox

    使用ddddocr,生成的EXE,运行时出现错误:2022-03-01 20:31:11.2882700 [E:onnxruntime:Default, provider_bridge_ort.cc:937 onnxruntime::ProviderSharedLibrary::Ensure] LoadLibrary failed with error 126 "找不到指定的模块。" when trying to load "C:\Users\zhang\AppData\Local\Temp\_MEI187682\onnxruntime\capi\onnxruntime_providers_shared.dll"
    2022-03-01 20:31:11.2983959 [W:onnxruntime:Default, onnxruntime_pybind_state.cc:1560 onnxruntime::python::CreateInferencePybindStateModule] Init provider bridge failed.

    ========================
    请问如何解决?

    回复
  10. 头像
    1
    Windows 10 · Google Chrome

    555

    回复
  11. 头像
    6
    Windows 10 · Google Chrome

    表情

    回复
  12. 头像
    菜鸟001
    Windows 10 · Google Chrome

    为啥我用3.7版本装不上,用3.9可以

    回复
  13. 头像
    shane
    Windows 10 · Google Chrome

    from matplotlib import image as mpimg
    image=mpimg.imread('./pic.bmp') # 返回值为np.ndarray 数组
    '''
    - (M, N) for grayscale images.
    - (M, N, 3) for RGB images.
    - (M, N, 4) for RGBA images.
    '''
    大佬,如果我的图片数据是在内存里,如上,为数组形式,要转成bytes再传进去吗?有没有直接传数组的方法呢?

    回复
    1. 头像
      shane
      Windows 10 · Google Chrome
      @ shane

      该问提具体如下
      # 截图操作
      hwndDC = win32gui.GetDC(hwnd) # 获取窗口的设备上下文Device Context。GetWindowDC包括了非客户区,而GetDC仅为客户区
      mfcDC = win32ui.CreateDCFromHandle(hwndDC) # 获取mfcDC
      saveDC = mfcDC.CreateCompatibleDC() # 创建可兼容DC
      saveBitMap = win32ui.CreateBitmap() # 创建bitmap以保存图片
      # GetClientRect获取客户区窗口位置,GetWindowRect获取整个窗口的位置信息
      x1, y1, x2, y2 = win32gui.GetClientRect(hwnd)
      if area == None:
      x = 0
      y = 0
      w = x2 - x1
      h = y2 - y1
      else:
      x, y, m, n = area
      w = m - x
      h = n - y
      saveBitMap.CreateCompatibleBitmap(mfcDC, w, h) # 为bitmap开辟空间
      saveDC.SelectObject(saveBitMap) # 将截图保存到saveBitMap中
      saveDC.BitBlt((0, 0), (w, h), mfcDC, (x, y), win32con.SRCCOPY)

      # 这里为截图好的数据,我使用ocr.classification,传入后报错:PIL.UnidentifiedImageError: cannot identify image file
      signedIntsArray = saveBitMap.GetBitmapBits(True)# print(type(signedIntsArray)) :

      # 这部分的img即为上面所提到的图片数据,试图将该数据转换为bytes:img.tobytes()的结果传入后依然报错,跟上面一样的
      img = np.fromstring(signedIntsArray, dtype='uint8')
      img = img.reshape(h, w, 4)
      img = img[:, :, [2, 1, 0]]
      所以有什么好的解决办法吗?

      回复
      1. 头像
        shane
        Windows 10 · Google Chrome
        @ shane

        print(type(signedIntsArray)) :

        回复
        1. 头像
          shane
          Windows 10 · Google Chrome
          @ shane

          是'bytes'类型,这里怎么显示不出来

          回复
          1. 头像
            shane
            Windows 10 · Google Chrome
            @ shane

            之前我用的paddleocr,可以直接传入mpimg.imread()的结果

            回复
            1. 头像
              shane
              Windows 10 · Google Chrome
              @ shane

              不知是不是我没找到怎么用呢?

              回复
    2. 头像
      shane
      Windows 10 · Google Chrome
      @ shane

      以解决,请问目标检测的返回值只有框的位置吗?不带检测结果吗?

      回复
  14. 头像
    james
    Windows 10 · Google Chrome

    加减+-识别不到呢 还有?问号识别2 或者7

    回复
  15. 头像
    许生
    Windows 10 · Google Chrome

    打包exe提示找不到文件,直接运行是没问题的

    2022-08-12 16:56:40.7997164 [W:onnxruntime:Default, onnxruntime_pybind_state.cc:1622 onnxruntime::python::CreateInferencePybindStateModule] Init provider bridge failed.
    Traceback (most recent call last):
    File "00CCC.py", line 22, in
    File "ddddocr\__init__.py", line 1458, in __init__
    File "onnxruntime\capi\onnxruntime_inference_collection.py", line 347, in __init__
    File "onnxruntime\capi\onnxruntime_inference_collection.py", line 384, in _create_inference_session
    onnxruntime.capi.onnxruntime_pybind11_state.NoSuchFile: [ONNXRuntimeError] : 3 : NO_SUCHFILE : Load model from C:\Users\rswc53\AppData\Local\Temp\_MEI156722\ddddocr\common_old.onnx failed:Load model C:\Users\rswc53\AppData\Local\Temp\_MEI156722\ddddocr\common_old.onnx failed. File doesn't exist
    [13660] Failed to execute script '00CCC' due to unhandled exception!

    回复
  16. 头像
    hduzn
    Windows 10 · Google Chrome

    表情牛牛牛!~ 一直在用博主的ddddocr做验证码识别,做测试的时候,发现比用百度应用api识别出来的准确率更高!~

    回复