百度最新AI旋转验证码

一、简介

先来说说百度旋转验证码的历史。

1、百度旋转验证码

这是百度最早的旋转验证码,只有有限的数量,图片以风景为主,没有随机阴影,没有干扰线条等。所以这种验证码识别比较简单,正确率在99%左右。如下图所示

2、百度随机阴影验证码

这种验证码是第一种验证码的升级版,就是在上面图片的基础上增加的随机黑色阴影,图片种类有限,识别难度会比上面的大一些。正确率会在95%左右。如下图所示

3、百度随机白色线条验证码

这种验证码是第二中的升级版,干扰性大幅增加,识别难度也有较大提升,缺点也是种类有限,识别正确率可以做到90%左右,如下图所示

4、百度AI旋转验证码

这个是最近才出的最新验证码,内容主要以工厂、建筑、山峰、机器人、汽车、盆栽植物等为主。如下图所示

优点:

解决了图片种类有限的问题,AI验证码可以随机生成,生成种类无限多,每天都不一样,给识别造成很大困难。

缺点:

AI生成的图片可能不符合逻辑,甚至连真人都识别不了,会给用户体验带来不好的影响。如下图所示

二、百度AI旋转识别代码

我们经过几周的研究, 终于解决了百度AI旋转验证码的识别问题。下面是我们提供的识别代码,感兴趣的小伙伴可以把它转换成js逆向的方式进行验证。运行下面代码,会直接触发验证码。然后可以看到识别过程。

想要识别更多验证码请查看:得塔云


import base64
import requests
import datetime
from io import BytesIO
from PIL import Image

t1 = datetime.datetime.now()

#PIL图片保存为base64编码
def PIL_base64(img, coding='utf-8'):
    img_format = img.format
    if img_format == None:
        img_format = 'JPEG'

    format_str = 'JPEG'
    if 'png' == img_format.lower():
        format_str = 'PNG'
    if 'gif' == img_format.lower():
        format_str = 'gif'

    if img.mode == "P":
        img = img.convert('RGB')
    if img.mode == "RGBA":
        format_str = 'PNG'
        img_format = 'PNG'

    output_buffer = BytesIO()
    # img.save(output_buffer, format=format_str)
    img.save(output_buffer, quality=100, format=format_str)
    byte_data = output_buffer.getvalue()
    base64_str = 'data:image/' + img_format.lower() + ';base64,' + base64.b64encode(byte_data).decode(coding)
    # base64_str = base64.b64encode(byte_data).decode(coding)

    return base64_str

# 加载图片
img1 = Image.open(r'E:\Python\lixin_project\OpenAPI接口测试\test_img\44号模型测试图片.jpg')
# 图片转base64
img1_base64 = PIL_base64(img1)

# 验证码识别接口
url = "http://www.detayun.cn/openapi/verify_code_identify/"
data = {
    # 用户的key
    "key":"",
    # 验证码类型
    "verify_idf_id":"44",
    # 样例图片
    "img_base64":img1_base64,
    # # 中文点选,空间语义类型验证码的文本描述(这里缺省为空字符串)
}
header = {"Content-Type": "application/json"}
if data['key'] == '':
    print('请前往得塔云网站获取key:http://www.detayun.cn')

# 发送请求调用接口
response = requests.post(url=url, json=data, headers=header)

# 获取响应数据,识别结果
print(response.text)
print("耗时:", datetime.datetime.now() - t1)


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/563727.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

卸载微软的浏览器: Edge

前言: Edge 崩溃了,无法访问网路: 错误代码: STATUS_STACK_BUFFER_OVERRUN 然后,windows不提供卸载,这下好了,它不能用,你也不能卸载,重新安装也无法解决,咋办&#xff…

hadoop编程之词频统计

数据集实例 java代码,编程 实例 我们要先创建三个类分别为WordCoutMain、WordCoutMapper、WordCoutReducer这三个类 对应的代码如下 WordCoutMain import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Pat…

亚马逊---设计安全架构

会从以下三个方面展开: 1、AWS资源访问安全 2、应用程序负载的网络安全 3、云中数据的安全 责任共担模式 就像租房子(房东和你的责任) AWS资源访问安全 需要掌握以下几点: 1、跨多个账户的访问控制和管理 2、AWS联合访问和身份服…

买了个三星i9300(S3)供以后给黑莓Q10开发软件用(安卓4.3)

买了个三星i9300(S3)供以后给黑莓Q10开发软件用(安卓4.3) 前段时间的时候一心想给黑莓Q10开发个软件用用,开发到一半因为过程太过繁琐才叫停了。 一、黑莓Q10安卓应用开发为什么繁琐? Q10的开发过程是这样的: 因为黑莓Q10 里面运行的是Andr…

深度学习之视觉特征提取器——VGG系列

VGG 提出论文:1409.1556.pdf (arxiv.org) 引入 距离VGG网络的提出已经约十年,很难想象在深度学习高速发展的今天,一个模型能够历经十年而不衰。虽然如今已经有VGG的大量替代品,但是笔者研究的一些领域仍然有大量工作选择使用VG…

layabox手游全面屏、ipad屏幕适配方案

1设置 手游平台在项目设置中,场景适配模式选择”固定宽模式 fixedwidth“,设计宽度以全面屏比例为主,我这里设置的设计宽高为640 * 1386 2代码和场景 laya的UI面板有三种类型,分别是Scene、View和Dialog 1)Scene和V…

Java web应用性能分析服务端慢之Nginx慢

一般Nginx作为整个应用的入口,即做静态服务器,也做负载均衡、反向代理;同时也因为位置靠前,还可以通过Nginx对于访问的IP、并发数进行相应的限制。在Java web应用性能分析中,Nginx是重要环节,Nginx的性能也…

Flink Job提交分析

1.概述 Flink 应用程序的提交方式为:打成jar包,通过 flink 命令来进行提交。 flink 命令脚本的底层是通过 java 命令启动:CliFrontend 类 来启动 JVM 进程,执行任务的构造和提交。 flink run xxx.jar class arg1 arg2flink.sh 脚…

Springboot+Vue项目-基于Java+MySQL的影城管理系统(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &…

Unity 新版输入系统(Input System)

前言 官方教程 注意 新的输入法系统需要 Unity 2019.4 和 .NET 4 运行时。它不适用于 .NET 3.5 的项目。 教程版本:Unity 2021.3.26 1. 安装 1.1 打开 Package Manager 导航栏 -> Window -> Package Manager 1.2 安装 Input System 选择 Unity Registry 在…

【WEB前端2024】开源元宇宙:乔布斯3D纪念馆-第8课-新增摆件

【WEB前端2024】开源元宇宙:乔布斯3D纪念馆-第8课-新增摆件 使用dtns.network德塔世界(开源的智体世界引擎),策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引擎&#…

mysql基础20——数据备份

数据备份 数据备份有2种 一种是物理备份 一种是逻辑备份 物理备份 物理备份 通过把数据文件复制出来 达到备份的目的 用得比较少 逻辑备份 逻辑备份 把描述数据库结构和内容的信息保存起来 达到备份的目的 是免费的 数据备份工具 mysqldump (3种模式&#x…

C++笔试强训day4

目录 1.游游的you 2.腐烂的苹果 3.孩子们的游戏 1.游游的you 链接: 分析题意之后,发现就是一道简单的贪心,当然也可以把他看作纯数学题。 因为you和oo里面都有o,但是you可以得两分,所以贪心策略尽可能的去凑更多的…

【嵌入式】keil5安装(同时兼容C51和STM32)

最近在开发STM32的时候,安装Keil5,遇到STM32和C51的共存的问题,在网上找了很多方法,又遇到一些bug,最终还是弄好了。因此将处理的过程记录下来,希望对遇到相同问题的朋友一些启发。 1、下载安装包 Keil P…

vue-Router 路由(常量路由)

1、安装 pnpm i vue-router 2、新建文件:src/routes.ts import { RouteRecordRaw } from vue-routerexport const constantRoute: RouteRecordRaw[] [{//path: /,redirect: /login,},{//path: /login,component: () > import(/views/Login/index.vue),name…

mysql基础6——多表查询

外键 把分散在多个不同表里面的数据查询出来的操作,就是多表查询 把两个表连接:使用外键(foreign key)和连接(join) 外键在表创建的阶段定义也可以通过修改表定义,连接在查询字段把相同意义的字段连接起来 外键就是从表中用来引用主表中数…

【MATLAB源码-第190期】基于matlab的32QAM系统相位偏移估计EOS算法仿真,对比补偿前后的星座图误码率。

操作环境: MATLAB 2022a 1、算法描述 1. 引言 M-QAM调制技术的重要性 现代通信系统追求的是更高的数据传输速率和更有效的频谱利用率。M-QAM调制技术,作为一种高效的调制方案,能够通过在相同的带宽条件下传输更多的数据位来满足这一需求…

舍得酒业陷入瓶颈期:业绩增速再放缓,股价低迷,市场信心缺失?

撰稿|行星 来源|贝多财经 被誉为“川酒六朵金花”之一的舍得酒业,混的不算好。 近日,舍得酒业股份有限公司(SH:600702,下称“舍得酒业”)披露2023年年度报告。在白酒行业活性整体趋弱的大环境下,舍得酒业…

加入新团队时,为什么你需要一个“WTF 笔记本”

原文:Nat Bennett - 2021.09.04 我有一个子弹日记。我并不是你在 Pinterest 上看到的那种用精美排版的人——大部分只使用黑色墨水,标准设置,偶尔会有自定义的集合。 每当我加入新的团队,都会翻到下一页,然后在那一页…

引用静态方法

import java.util.Arrays; import java.util.Comparator;public class demo1 {//引用public static void main(String[] args) {Integer []arr{1,2,4,3,8,6};//匿名内部类Arrays.sort(arr, new Comparator<Integer>() {Overridepublic int compare(Integer o1, Integer o…
最新文章