现在模型有了,数据集碰到难题了
目标网站的验证码长这样
我自己本地生成类似的验证码去做训练识别,还是有差异,如果直接从网站获取验证码的话,标记验证码就是个大工程
有没有后端老哥眼熟这种验证码的,这是哪个库生成的,还是自己写代码生成的?
1
simonmao 2023-12-07 22:31:02 +08:00 1
可以看看这个项目对你是否有帮助: https://github.com/sml2h3/ddddocr
|
2
churchill 2023-12-07 22:52:52 +08:00
找个能识图的 LLM 帮你标注试试
比如这个 https://github.com/THUDM/CogVLM |
3
timedivision OP @simonmao 谢谢 不过我想要的不是这个
|
4
timedivision OP @churchill 谢谢 试了他的 demo ,还可以,但是我这大量的数据集估计不好搞
|
5
JNian 2023-12-08 11:07:38 +08:00
https://www.kaggle.com/datasets/bhh258/train-num2-var 比如这个,可以去这个网站找一找数据集
|
6
huangcjmail 2023-12-09 10:33:51 +08:00
哈哈,正好我做过,其实自己写个代码打标很快的,一下午就能打 3000+张,你这样的估计 3000 张就能训练的差不多了。
|
7
huangcjmail 2023-12-09 10:43:35 +08:00
我自己那个窗口程序,上面是图片,下面是一个文本框,输好了标签按下回车,就把标签当成文件名保存下来,然后刷下一张。文件名后面记得加个随机数或者时间戳之类的东西。
|
8
timedivision OP @JNian 谢谢 不过我试过自己生成样本,然后训练完去识别目标网站的图片 效果很差,所以还得是用目标网站的样本训练
|
9
timedivision OP @huangcjmail 昨天让老婆人工打码了 6000 张😂,也想过写个程序展示图片加输入框加快打码,想想还是算了
|
10
aoguai 2023-12-09 15:38:16 +08:00
这种基本验证码不是 java Web 很常见的自动生成的验证码么?
以 验证码 控件 为关键词能查出很多封装好的吧 举个例子 [Hutool]( https://hutool.cn/) 工具类,就支持验证码生成和校验。 简单写个例子,就能批量生成了。 下面是 gpt 给出的简单例子(未实测 --- 当你需要生成大量验证码图片并将它们保存到文件中时,可以使用循环结合 Hutool 的验证码生成功能来实现。你可以按照以下步骤编写 Java 代码: 首先,确保你已经添加了 Hutool 的依赖到你的项目中。然后,创建一个 Java 类并编写生成验证码图片并保存的代码: ```java import cn.hutool.captcha.CaptchaUtil; import cn.hutool.captcha.ICaptcha; import cn.hutool.captcha.generator.MathGenerator; import cn.hutool.captcha.generator.RandomGenerator; import java.io.File; public class CaptchaGenerator { public static void main(String[] args) { int numberOfCaptchas = 10; // 设定要生成的验证码数量 // 循环生成验证码图片并保存 for (int i = 1; i <= numberOfCaptchas; i++) { // 这里可以选择不同类型的验证码,比如 LineCaptcha 、CircleCaptcha 、ShearCaptcha 等 ICaptcha captcha = CaptchaUtil.createLineCaptcha(200, 100); // 生成一个线段干扰的验证码 // 自定义验证码内容为四则运算方式 captcha.setGenerator(new MathGenerator()); // 重新生成验证码 captcha.createCode(); String code = captcha.getCode(); // 获取生成的验证码内容 // 构建文件名,以验证码内容命名图片文件 String fileName = code + ".png"; // 可以根据需要修改文件格式,比如".jpg"等 // 图片保存路径 String savePath = "your/save/directory/" + fileName; // 替换为你想要保存的文件夹路径 // 将验证码图片写出到文件 captcha.write(new File(savePath)); System.out.println("验证码 " + code + " 已保存为 " + fileName); } } } ``` 这段代码中,`numberOfCaptchas` 变量表示要生成的验证码数量。循环将生成验证码并以验证码内容命名的形式保存在指定文件夹中。 确保替换代码中的 `"your/save/directory/"` 为你想要保存验证码图片的目标文件夹路径。这段代码可以在你的 Java 项目中执行,生成并保存验证码图片。 --- |
11
tangtang369 2023-12-11 11:57:33 +08:00
给你说下我一般的思路,不停的去调用你需要的那个网站的验证码生成接口,先用 https://github.com/sml2h3/ddddocr 这个库识别,提交成功和提交失败的分开存储,再自己标记提交失败的图片
|
12
timedivision OP @tangtang369 那我怎么判定这个库识别出来的是正确的还是不正确呢
|
13
tangtang369 2023-12-11 13:32:27 +08:00
@timedivision 找网站的验证接口 把结果 post 给它 会返回正确还是错误的
|
14
timedivision OP @aoguai 这个生成的验证码有图片示例吗?主要是我这边自己生成相似的验证码做训练,然后去识别目标网站的码,成功率基本为 0 ,不知道为什么
|
15
aoguai 2023-12-12 20:50:55 +08:00 via Android
@timedivision 图片就跟你的差不多。示例你搜一搜这个类生成验证码的例子就有了。
正确性的问题感觉是你标注有问题或者模型没选对,训练没训好等。你可以到 b 站视频教程学一学如果真感兴趣。 以我个人经验有可能是你数量还是不够,一般四位验证码无大小写需要大几万张图片训练 100 轮左右。 |
16
timedivision OP @aoguai 谢谢,我自己生成的验证码训练有个几万张,但是识别网站的根本不行,也不知道是啥问题,后来把网站上的验证码搞了 6000 张,5000 训练,1000 张预测,正确率 89%
|