如何用 YOLO + 孪生网络识别点选验证码?完整代码开源(准确率 96%+)
发布时间:2026/8/16 8:02:07 作者:尧图编辑部 阅读量:1,286
)
如何用 YOLO 孪生网络识别点选验证码完整代码开源准确率 96%点选验证码“请按顺序点击图中文字”是目前最难啃的验证码之一普通 OCR 直接识别准确率不到 70%——字体千变万化、背景干扰多、还有生僻字。破解思路其实很简单不要识别字只做两件事——定位 匹配。核心思路分治法第 1 步目标检测YOLO 把图中所有可点击的字符框和题目文字框全部找出来 第 2 步相似度匹配孪生网络 判断题目里的字和图中的字是不是同一个 → 输出点击坐标绕开 OCR准确率能稳定到 96% 以上。第 1 步用 YOLO 定位字符训练一个 3 类检测器label/title/char数据集只需几百张标注图fromultralyticsimportYOLO modelYOLO(yolo26n.pt)# 轻量模型1核2G服务器也能跑model.train(databilbil.yaml,epochs100,imgsz640,batch16,optimizerMuSGD,close_mosaic10,# 最后10轮关闭增强精度提升明显)标注用 LabelImg 就行注意两件事把所有可点击的字符标为char多标全宁多勿漏题目里的文字块单独标为title第 2 步孪生网络做相似度匹配孪生网络Siamese Network不用给每个字都准备几千张样本只要相同字/不同字的图片对就能训练——小样本友好、泛化强# 核心两张图 → 编码 → 算相似度# 训练时输入 (图A, 图B, 标签1/0)模型学习是不是同一个字# 推理时题目字块 vs 每个候选字块 → 取相似度最高且阈值 → 返回坐标推荐用 MobileNetV4 做骨干轻量配合 Focal Loss 处理正负样本不平衡训练完导出 ONNX 部署CPU 单图检测 300ms 以内。第 3 步识别后的防风控细节很多人忽略拿到坐标别直接点中心点点击位置随机偏移1-2 像素用贝塞尔曲线模拟鼠标轨迹先快后慢 随机抖动多个点击点间隔 0.3~1.2 秒随机否则验证码过了轨迹风控也会把你拦下来。完整教程含数据集构建、训练参数调优、正负样本策略、ONNX 部署全流程代码https://www.daomanpy.com/cnn/text_select_captcha对 JS 逆向 / 爬虫反爬感兴趣的朋友站里还有抖音 a_bogus、小红书 x-s 签名逆向等一线平台实战全部免费带完整代码。