vlambda博客
学习文章列表

验证码识别最佳方案,你不来试试?

Ad

深度实践OCR:基于深度学习的文字识别

京东

背景

UI自动化测试-验证码识别

验证码分析:图片上有折线,验证码有数字,有英文字母大小写,分类的时候需要更多的样本,验证码的字母是彩色的,图片上有雪花等噪点,因此识别改验证码难度较大。

方案对比

Tesseract OCR

  • 缺点:这个安装比较麻烦,对新手不太友好,各个系统,不同的python环境下,坑比较多;需要额外设置环境变量等。

「我敢保证你一次肯定安装不成功」哈哈哈哈。

  • 优点:是免费,较为易用;但其识别精度一般。

百度OCR

  • 缺点:需要进行一系列的配置,新手一次搞不定;免费的api有调用次数限制而且需要联网【有限制】;离线sdk需要购买。
  • 优点:识别准确率高

带带弟弟OCR

  • 缺点:暂时没有缺点,和以上两个ocr相比;免费的忽略缺点【哈哈哈哈哈】
  • 优点: 「开箱即用,安装简单,大力推荐,识别率高」

实际操作

安装

安装过程相当简单,不会出现任何报错,版本不兼容的情况【python>=3.6】

pip install ddddocr

展示代码

# -*- coding: utf-8 -*-
"""
@Project :demo
@File    :test_ocr.py
@Author  :lijiawei
@Date    :2021/8/10 8:45 上午 
"""

import ddddocr


def magic_ocr(img_path):
    """
    ocr 识别
    :param img_path: 验证码图片路径
    :return: 
    """

    ocr = ddddocr.DdddOcr()
    with open(img_path, 'rb'as f:
        img_bytes = f.read()
    return ocr.classification(img_bytes)

实战

  • 我们以【北京通】登录页面的验证为例 验证码识别最佳方案,你不来试试?
  • 识别结果
1774
Process finished with exit code 0

验证码样本

验证码识别最佳方案,你不来试试?

用我们的验证码样本实战,平均识别速度在100ms以内,识别率100%

思考&反问

「大家觉得方便高效有没有质和量的区别?」

  • 用【Tesseract OCR】进行验证码识别方不方便?也挺方便!
  • 用【百度OCR】进行验证码识别方不方便?也挺方便!
  • 用【带带弟弟OCR】进行验证码识别方不方便?好像也挺方便!

就经常问人,如果这三种方式能给够同样给你带来方便,也就是说这三 种方式你都欣赏过都使用过,你都觉得还不错对吧!

「那你觉得哪种方便更让你方便?」


总而言之,如果你需要进行验证码识别,以上3种识别方案都尝试过, 那么,带带弟弟OCR(ddddocr)这个库一定是你的首选方案~

下集预告

  • 将验证码识别服务化

部署属于自己的 OCR API


测试开发囤货
分享交流测试开发技术,提供测试开发解决方案!
41篇原创内容
Official Account

交易担保 测试开发囤货 测试开发囤货