图像/文字差异类型验证码识别 无需训练

某像差异在个别全家桶验证方便有使用,对于这种验证码类型如下:

7AgC4Q.jpg
7Ag4xO.jpg

首先还是目标检测,直接用 dddd 自带的detection 就足够了。

特征提取

其次经过观察,差异答案与其他三个无非就是颜色,字体,方向,所以余弦相似度也是一种解决办法。

  • 通过检测框将图像先转为灰度图,然后提取出1D向量。(为什么要提取,因为后面要进行余弦计算,转灰度图是因为只包含亮度信息,特征提取足够了)
def extract_features(image):resized_image = cv2.resize(image, (128, 128))  # 缩放到统一大小gray_image = cv2.cvtColor(resized_image, cv2.COLOR_BGR2GRAY)  # 转灰度return gray_image.flatten()features = [extract_features(img) for img in images]

提取特征结果如下:

features = [
[特征1, 特征2, 特征3, …], # 第一张图像
[特征1, 特征2, 特征3, …], # 第二张图像

]

特征降维(PCA)

提取出来的特征我们需要从中拿出最主要的特征,利用 pca 进行降维,保留主要特征,减少噪声干扰

n_components = min(len(features), len(features[0]))
pca = PCA(n_components=n_components)
reduced_features = pca.fit_transform(features)

相似度计算

将上面特征降维的图像列表传入进行余弦相似度计算

from sklearn.metrics.pairwise import cosine_similaritysimilarity_matrix = cosine_similarity(reduced_features)

如何计算?

similarity_matrix = [
[1.0, 0.98, 0.85], # 第一张图像与第 1, 2, 3 张图像的相似度
[0.98, 1.0, 0.90], # 第二张图像与第 1, 2, 3 张图像的相似度
[0.85, 0.90, 1.0] # 第三张图像与第 1, 2, 3 张图像的相似度

ps:自己和自己对比永远是1,所以对角线永远是1,那么当差异大的图像和其他图像相比时,相似度必然下降

]

那么趁热打铁,直接计算平均相似度

average_similarity = np.mean(similarity_matrix, axis=1)

可能结果如下: array([ 0.33247589, 0.34121216, 0.29035055, -0.38125554])

谁是正确答案一目了然

直接用 np.argmin(average_similarity) 找到正确答案的索引,然后根据索引从dddd检测出来的框去找答案就行了,再就没有然后了。
这里就不得不提提某J逆向了,整那些没用的,花拳绣腿,啥成功率也敢发。
完整代码如下:

import ddddocr
import cv2
想啥呢 自己看文章组合吧

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

新华三H3CNE网络工程师认证—生成树协议

新华三H3CNE网络工程师认证本节讲解生成树协议,关于生成树协议,提到生成树协议,这个时候不得不提到另外一个概念叫二层环路。二层环路导致的原因是交换机的转发机制导致的,本博客将分析这个机制导致这个问题的原因。 文章目录 一…

使用ai工具探究论文的工作流(阅读一个EEG的cnn-lstm文献(2021))

文章目录 李沐老师的方法论第一遍:做海选第二遍:对相关论文进行精选第三遍:重点研读 AI是怎么分析一个文章的标题(Title)和关键词摘要(Abstract)分析引言(Introduction)梳…

Scala的Array习题

答案:CBBBB import scala.collection.mutable.ArrayBuffer //1 case class DreamItem(content:String,var isDone:Boolean,deadline:String,var order:Int) object p5 {def main(args: Array[String]): Unit {//2val dreamListArrayBuffer[DreamItem]()//梦想清单/…

深度学习的实践层面

深度学习的实践层面 设计机器学习应用 在训练神经网络时,超参数选择是一个高度迭代的过程。我们通常从一个初步的模型框架开始,进行编码、运行和测试,通过不断调整优化模型。 数据集一般划分为三部分:训练集、验证集和测试集。常…

TPU-MLIR 总览

TPU-MLIR 总览 💡深度学习编译器可以实现一次性代码开发和重用各种计算能力处理器的目标 ## 项目简介: TPU-MLIR 是 AI 芯片的 TPU 编译器工程。该工程提供了一套完整的工具链, 其可以将不同框架下预训练的神经网络, 转化为可以在算能 TPU 上高效运算的…

Vue3 + Vite 项目引入 Typescript

文章目录 一、TypeScript简介二、TypeScript 开发环境搭建三、编译方式1. 自动编译单个文件2. 自动编译整个项目 四、配置文件1. compilerOptions基本选项严格模式相关选项(启用 strict 后自动包含这些)模块与导入相关选项 2. include 和 excludeinclude…

苹果MacOS 调用自编译opencv的Dylib显示一个图片程序的步骤

前言 为了测试自编译的opencv库是否能在苹果MacOS系统下使用,需要写一个简单的测试程序。这个测试程序写起来不难,麻烦的是一些配置。网上的办法很多,里面因为版本的问题有一些坑。特此写了一个建立步骤,供大家参考。 1、新建一个…

AI赋能:高职院校实验实训教学如何拥抱人工智能浪潮?

随着信息技术的迅猛发展,人工智能技术已成为推动社会各行业转型升级的核心力量。它不仅在提升生产效率、优化管理流程、提高服务质量方面发挥着关键作用,也深刻影响着高职教育的专业发展和课程教学内容的改革。作为培养专业技术技能人才的摇篮&#xff0…

消费者行为学领域的顶级期刊

一、期刊 1.Journal of Consumer Research 2.Journal of Consumer Psychology 3.Journal of Research in Interactive Marketing 4.Journal of the Academy of Marketing Science 5.Tourism Management 下面是我整理的一个excel,大家按需丝我获取。 二、期刊&z…

STM32单片机CAN总线汽车线路通断检测-分享

目录 目录 前言 一、本设计主要实现哪些很“开门”功能? 二、电路设计原理图 1.电路图采用Altium Designer进行设计: 2.实物展示图片 三、程序源代码设计 四、获取资料内容 前言 随着汽车电子技术的不断发展,车辆通信接口在汽车电子控…

Zmap+python脚本+burp实现自动化Fuzzing测试

声明 学习视频来自 B 站UP主泷羽sec,如涉及侵权马上删除文章。 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。 ✍🏻作者简介:致…

3.tree of thought 源码 (Thought 和ToTDFSMemory 类)

本教程将介绍 tree of thought 源码 中的Thought 和ToTDFSMemory 类 定义思维有效性 使用Enum模块来定义思维的有效性。 from enum import Enumclass ThoughtValidity(Enum):"""Enum for the validity of a thought."""VALID_INTERMEDIATE 0…

从ES的JVM配置起步思考JVM常见参数优化

目录 一、真实查看参数 (一)-XX:PrintCommandLineFlags (二)-XX:PrintFlagsFinal 二、堆空间的配置 (一)默认配置 (二)配置Elasticsearch堆内存时,将初始大小设置为…

【C++】list使用详解

本篇介绍一下list链表的使用,后续也是会对list进行模拟实现的。list是链表里面的双向链表。 1.文档介绍 list - C Referencehttps://legacy.cplusplus.com/reference/list/list/ list中的接口比较多,此处类似,只需要掌握如何正确的使用&am…

分布式事务

参考 Seata 详解Mysql分布式事务XA CAP 这个定理的内容是指:在一个分布式系统中、Consistency(一致性)、Availability(可用性)、Partitiontolerance(分区容错性),三者不可得兼。 一致性(C) 在分布式系统中的所有数据备份&…

记录elasticsearch-analysis-dynamic-synonym从8.15.0升级到8.16.0所遇到的问题

记录elasticsearch-analysis-dynamic-synonym从8.15.0升级到8.16.0所遇到的问题 一、打包步骤 步骤一、linux系统下执行elasticsearch-module中的build.sh脚本 步骤二、maven环境下elasticsearch-cluster-runner执行maven install命令安装到本地maven仓库。 步骤三、修改版…

【大模型推理加速】KV cache

目录 1. kv cache 原理1.1 Flops 计算公式推导 2. 缺点3. kv cache 优化3.1 L: Layer-Condensed KV Cache , 粒度大,效率高3.1.1 MiniCache3.1.2 PyramidInfer3.1.3 CLA 3.2 H: Retrieval Head,3.2.1 Razor Attention, DuoAttention3.2.2 GQA多个head共享一份KV 3.3…

esp32c3开发板通过micropython的ubluetooth库连蓝牙设备

ESP32-C3开发板是一款高性能、低功耗的微控制器,搭载了Espressif自家的RISC-V处理器。通过MicroPython,一种面向微控制器的精简版Python编程语言,开发者可以轻松地为ESP32-C3编写代码。MicroPython的ubluetooth库使得ESP32-C3能够通过蓝牙与各…

CTF攻防世界小白刷题自学笔记16

1.Broadcast,难度:1,方向:Crypto(密码学) 题目来源:2019_Redhat 题目描述:粗心的Alice在制作密码的时候,把明文留下来,聪明的你能快速找出来吗? 给一下题目链接&#…

企业供配电及用电一体化微电网能源管理系统

企业能源管理痛点 信息孤岛 1.保护类、监测类、控制类、治理类、重要负荷等子系统多、分散、独立 2.数据异构、融合困难、数据分析困难 3.用户无法通过一套系统完整的了解整个企业的供电、配电、用电情况; 资源浪费 1.服务器资源浪费 2.应用软件浪费 3.数据…