4

ddddocr基本使用和介绍 - 还没想好叫什么

 2 weeks ago
source link: https://www.cnblogs.com/gggod/p/18145831
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

ddddocr基本使用和介绍

在使用爬虫登录网站的时候,经常输入用户名和密码后会遇到验证码,这时候就需要用到今天给大家介绍的python第三方库ddddocr,ddddocr是一款强大的通用开源ocr识别库,具有高效、准确、易用的特点,广泛应用于图像处理和文字识别任务。本文将为大家介绍ddddocr的基本使用方法,以及示例代码。

一、背景介绍

在计算机视觉和图像处理领域,数字识别是一个常见的任务,用于从图像中提取数字并进行识别。通常,传统的数字识别算法在单个数字或多位数字的识别上表现良好,但对于双重数字(两位数字)的准确识别却面临一些挑战。这是因为双位数字在视觉上具有相对较高的相似性和重叠特征,使得传统方法的准确率有所下降。

为了解决双重数字识别的问题,ddddocr项目应运而生。该项目通过使用深度学习的方法,结合卷积神经网络(CNN)和循环神经网络(RNN),对双重数字进行高效准确的识别。通过训练模型并进行预测,ddddocr能够识别图像中的双位数字,并输出其具体数值。

该项目具有以下特点和优势:

深度学习:ddddocr利用深度学习技术,特别是卷积神经网络和循环神经网络,对双重数字进行准确的识别。

开源项目:ddddocr是一个开源项目,允许用户免费使用、修改和分发代码。这使得更多的开发者可以参与其中,贡献自己的想法和改进。

高准确率:通过深度学习的方法,ddddocr在双重数字识别任务上能够取得较高的准确率,有效克服了传统方法在此任务上的困难。

灵活性:ddddocr提供了训练和预测的功能,用户可以根据自己的需求自定义模型并进行训练,以适应不同的双重数字识别任务。

ddddocr的目标是提供一个简单而有效的工具,帮助开发者和研究者在双重数字识别任务上取得更好的结果。通过使用该库,用户可以轻松地集成双重数字识别功能到自己的应用程序或项目中,实现更准确和可靠的数字识别功能。

直接使用pip安装即可

pip install ddddocr

安装完成后就可以在python代码中引入ddddocr库了

import ddddocr
三、使用示例
  1. 识别英文数字验证码

    image-20240419104057752

    image-20240419104103577

    # test.py
    import ddddocr
    
    ocr = ddddocr.DdddOcr(show_ad=False)  # show_ad=False关闭广告
    with open("./img/1.jpg", "rb") as f1:
        im = f1.read()
        yzm1 = ocr.classification(im)
    with open("./img/2.jpg", "rb") as f2:
        im = f2.read()
        yzm2 = ocr.classification(im)
    print(yzm1, yzm2)
    

    image-20240419104252905

  2. 识别滑块验证码

    image-20240419135651751

    image-20240419135707467
    # test.py
    import ddddocr
    
    det = ddddocr.DdddOcr(det=False, ocr=False, show_ad=False)  # show_ad=False关闭广告
    with open('img/target.png', 'rb') as f:
        target_bytes = f.read()
    with open('img/background.jpg', 'rb') as f:
        background_bytes = f.read()
    res = det.slide_match(target_bytes, background_bytes, simple_target=True)
    print(res)
    

    image-20240419135848413

    一般只会用到res['target'][0],这个就是滑块需要滑动的距离。在实际应用中每个网站可能会有偏差,所以要对滑块轨迹进行微调,可以根据网站的滑块和背景图的大小对res['target'][0]进行加减

  3. 识别中文点选验证码

    image-20240419141930963
    # test.py
    import ddddocr
    import cv2
    
    det = ddddocr.DdddOcr(det=True, show_ad=False)  # show_ad=False关闭广告
    with open("./img/dianxuan.jpg", 'rb') as f:
        image = f.read()
    poses = det.detection(image)
    print(poses)
    im = cv2.imread("./img/dianxuan.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("./img/result.jpg", im)
    
    image-20240419142007836

本文介绍了使用ddddocr识别英文数字验证码、滑块验证码和中文点选验证码的过程,ddddocr在对图片不进行任何处理的情况下识别效率已经非常高了,我们在实际应用场景中还可以根据自身需求对图片进行进一步的处理提高识别率。在遇到一些复杂难以识别的验证码时我们可以对其进行深度学习训练,具体实现流程可以参考我前面的博客。此外,ddddocr里面还很多值得学习的东西,有兴趣的小伙伴可以自行研究。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK