吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 283|回复: 3
上一主题 下一主题
收起左侧

[Web逆向] YOLO识别拼图过滑块验证

[复制链接]
跳转到指定楼层
楼主
szh12123 发表于 2026-6-9 21:51 回帖奖励
本帖最后由 szh12123 于 2026-6-9 21:51 编辑

本文章中所有内容仅供学习交流使用,不用于其他任何目的,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!若有侵权,请联系作者删除。


由于对上一篇逆向分析中,使用滑块手动验证一直耿耿于怀,觉得不够优雅,于是花了点时间点上了训练模型的技能点,这次就分享一下使用yolo训练模型识别滑块拼图是一件多么简单的事情。
先看结果:



只想到成功率会很高,没想到是全过,识别速度也是相当快,



之前的手动滑块验证其实只获取了拼图框左下角的像素点X轴,而yolo识别图片刚好就可以做这个事情,
先下载尽量多的验证图片,这个两三百张应该差不多了,不需要png的小拼图,手动标注30-50个数据,我使用的是X-AnyLabeling



标注后的文件是这样的,



需要将json转为txt,并且准备训练集,文件夹结构如下,



classes.txt是标注的标签名称,



data.yaml是配置信息,



其实整个json转训练集可以直接请教AI老师要个代码文件直接就转了,不用手动建文件写参数,然后给就给yolo训练,

[Python] 纯文本查看 复制代码
from ultralytics import YOLO

def main():
    model = YOLO('/path/to/yolo26x.pt')   # 下载的yolo模型
    res = model.train(
        data='/path/to/data.yaml',  # 数据配置路径
        epochs=100,   # 训练轮数
        imgsz=320,    # 图片长边尺寸
        workers=4  #多进程数量
    )
    res = model('/path/to/test') # 测试图片路径(也可以不要测试但为了方便查看实际效果)
    for item,i in enumerate(res):
        i.save(filename=f'./results/result_{item}.jpg')
if __name__ == '__main__':
    main()


训练后就生成很多文件,weights里面就是训练好的模型,其他坐标图是训练的过程,会看的话可以用来判断训练的好不好,



因为训练集少效果肯定是不算很理想的,但没有关系,这个模型主要是用来偷懒标注的,



保存的模型是pt格式,使用X-AnyLabeling的自动标注需要转为onnx格式,使用cmd命令,

yolo export model=path/to/best.pt format=onnx

再创建一个yaml文件,文件名不重要,用来将模型和参数导入X-AnyLabeling自动标注,



主要参数可自行调整:



然后就可以执行自动标注了,先将标注的文件导入进来,再导入模型,



标注完后检查一下,有没有错误的或者漏标的(肯定是有的)手动标注一下,要偷懒也可以不检查,但是准确率可能会有所下降,然后你就获得了几百张的数据集,然后再用这套数据集重复之前的训练步骤,重新训练一个更好的识别模型,



这个模型的训练曲线就比之前的好多了,这样最后的模型就完成了,然后加载模型进行识别,

[Python] 纯文本查看 复制代码
from PIL import Image
from ultralytics import YOLO
def yolo_image_from_url(image_url):
    model = YOLO('/path/to/best.pt')
    response = requests.get(image_url)
    response.raise_for_status()
    image = Image.open(BytesIO(response.content))
    results = model(image, conf=0.1, max_det=1)
    boxes = results[0].boxes
    if len(boxes) > 0:
        box = boxes[0].xyxy[0].cpu().numpy()
        x1, y1, x2, y2 = box
        bottom_left_x = x1
        return bottom_left_x
    else:
        print("未检测到任何目标")
        return None


返回值是拼图左下角的像素点X轴,实测之后就有了之前的成功率,



再搭配上一篇的逆向分析,就有了全自动登录流程。  

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

沙发
林北是大帅哥 发表于 2026-6-9 22:33
火钳刘明
3#
Rachilee 发表于 2026-6-9 23:16
4#
jinmusa 发表于 2026-6-10 00:12
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-6-10 03:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表