调用阿里API实现图片验证码识别

本文介绍了西安工程大学两位研究生通过阿里云OCR算法实现图片验证码识别的全过程,包括实验步骤、Python代码实现及高精度识别效果,展示了在复杂场景中的文字识别能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.作者介绍

王柯欣,女,西安工程大学电子信息学院,2021级硕士研究生
研究方向:模式识别与人工智能
电子邮件:787576194@qq.com

孟莉苹,女,西安工程大学电子信息学院,2021级硕士研究生,张宏伟人工智能课题组
研究方向:机器视觉与人工智能
电子邮件:2425613875@qq.com

2.阿里云OCR算法介绍

2.1 OCR介绍

OCR,即图像文字的识别和理解;OCR前期是识别图片中的文字,即找到文字的位置,然后识别是什么字。后期在原本文字识别的基础上进行文字理解,文字理解是文字识别的一个应用。OCR根据空间关系和语义的了解输出用户想要的结果。

2.2 基于阿里云的OCR算法介绍

阿里云视觉智能开放平台(vision.aliyun.com)是基于阿里巴巴视觉智能技术实践经验,提供视觉智能API服务,帮助企业、开发者快速建立视觉智能技术的应用能力的综合性视觉AI能力平台。基于阿里云的OCR算法(AI技术),能够快速准确识别各种网络图片中的不规则文字,支持手写文字识别,在复杂字体和复杂背景的情况下仍保持非常高的识别准确率。
应用场景:机票,验证码识别,海报,实体广告识别,微商广告,百度贴吧,淘宝图文识别,演唱会门票等。
3.调用阿里API实现图片验证码识别

3.1 实验过程

进入阿里云官网(https://www.aliyun.com/)注册账号并登录
在这里插入图片描述

点击“云市场”→“API市场”→“人工智能”
在这里插入图片描述

找到产品:“通用文字识别-高精版OCR文字识别”
在这里插入图片描述

注册并开通文字识别免费额度
在这里插入图片描述

在“控制台”-“产品与服务”中找到“云市场”
在这里插入图片描述

在已购买的通用文字识别服务中,找到AppCode,稍后需要粘贴在代码中
在这里插入图片描述

此外,我们可以通过接口文件,查询接口地址,请求方式,和验证方式
在这里插入图片描述

接下来建立数据集,选择的数据集都是比较简单的验证码图片。这里保存的都是本地图片,图片格式为 .png
在这里插入图片描述

3.2 实验代码

使用python对阿里云的图片识别算法接口API,识别验证码中文字,图像数据可使用base64编码和url参数(只能同时使用一种格式),要求base64编码后大小不超过4M,图像越小效率越高,支持jpg/png/bmp格式。

#python3
import urllib.request
import urllib.parse
import json
import time
import base64
# 本地图片
image_path = r'图片地址'

with open(image_path, 'rb') as f:  # 以二进制读取本地图片
    data = f.read()
    encodestr = str(base64.b64encode(data),'utf-8') # base64编码图片
# 请求头
headers = {
         'Authorization': 'APPCODE ***自己的APPCODE***',  # APPCODE +你的appcod,一定要有空格!!!
         'Content-Type': 'application/json; charset=UTF-8'         # 根据接口的格式来
    }

def posturl(url,data={}):
    try:
        params=json.dumps(dict).encode(encoding='UTF-8')
        req = urllib.request.Request(url, params, headers)
        r = urllib.request.urlopen(req)
        html =r.read()
        r.close();
        return html.decode("utf8")
    except urllib.error.HTTPError as e:
        print(e.code)
        print(e.read().decode("utf8"))
    time.sleep(1)

if __name__=="__main__":
    url_request="https://gjbsb.market.alicloudapi.com/ocrservice/advanced"   # 对照官网API改
    dict = {'img': encodestr}
    html = posturl(url_request, data=dict)


    jos = json.loads(html.encode("utf-8").decode("utf-8"))    # str转json对象,<class 'dict'>

    result = jos['content']  # 就可以按key取值了
    print('识别的结果:',result)

3.3 实验结果

程序运行成功后,验证码基本能够被正确识别,识别结果如下图所示
在这里插入图片描述
在这里插入图片描述

分析实验结果可以看出,图片识别准确率较高,但存在细微误差,并且创建的数据集样本较少,本次实验能够快速准确识别各种网络图片中的不规则文字,支持手写文字识别,在复杂字体和复杂背景的情况下仍保持非常高的识别准确率

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值