captcha-12306

基于深度学习的 12306 验证码识别程序
授权协议 Apache
开发语言 Python
所属分类 神经网络/人工智能、 机器学习/深度学习
软件类型 开源软件
地区 国产
投 递 者 宦兴朝
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

基于深度学习的12306验证码识别程序。

1.1 准备工作

  • 下载caffe并编译, 具体可参考官方文档, 此处不再赘述.

  • 修改src/config.py中的caffe根目录和项目根目录.

  • pip安装easydict, skimage等.

1.2 数据

  • 通过运行src/tools/download_image.py, 会将12306验证码下载至data/download/all目录.

  • 下载完成后, 通过运行src/tools/cut_image.py, 会将其裁剪为图片和文字两部分, 分别放在data/download/image目录和data/download/words目录.

  • 修改src/image/scripts/words.py文件main方法中cut方法的参数(其参数为data/download/words中子目录的words_*中的数字), 它的目的是处理data/download/words中的所有子文件, 对多个词语进行分割并调整大小为固定值.

  • 然后手工对其进行分类, 分别放至data/imagedata/words目录. 可以将其分为两部分,分别放在对应的train和test目录.比如,一个示例目录如下:

    -image
    --test
    ---蜡烛
    ----1-1.jpg
    ---沙漠
    ----2-1.jpg
    --train
    ---蜡烛
    ----1-2.jpg
    ---沙漠
    ----2-2.jpg

     

图片部分

  • 运行src/image/scripts/create_data.py, 将会生成图片部分对应的train.txt和test.txt, 里面包含着训练和测试文件及其类别列表.

  • 运行src/image/scripts/create_lmdb.sh, 将会生成图片部分对应的lmdb文件.

文字部分

  • 运行src/words/scripts/create_data.py, 将会生成文字部分对应的train.txt和test.txt, 里面包含着训练和测试文件及其类别列表.

  • 运行src/words/scripts/create_lmdb.sh, 将会生成文字部分对应的lmdb文件.

1.3 参数

可以根据实际情况对src/image/model/image_solver.prototxtsrc/words/model/words_solver.prototxt文件进行修改.具体修改方法可参考其他模型.

1.4 开始训练

src/image/scripts/image_train.shsrc/image/scripts/image_finetune_train.sh脚本分别用来进行从头训练/微调训练, 训练方法可参考caffe模型训练方法.

同理:

src/words/scripts/words_train.shsrc/words/scripts/words_finetune_train.sh脚本分别用来进行从头训练/微调训练, 训练方法可参考caffe模型训练方法.

测试

src/web提供了一个web测试界面, 运行index.py即可. 运行前, 可以更改对应的模型文件名称. 一个简单示例如下:

web-demo

  • # -*- coding: utf-8 -*- from splinter.browser import Browser from time import sleep import traceback # Message: 'phantomjs' executable needs to be in PATH. #    geckodriver 要自行下载 #    phantomjs 自行下载 #

  • 1 importrequests2 from requests importRequest,Session3 importrequests.cookies4 importurllib.parse as parse5 6 importre7 importrandom8 importlxml9 importos10 11 classTicketObject():12 13 def __init__(s

  •   # utf-8 __*__ import requests from bs4 import BeautifulSoup import time from PIL import Image from io import BytesIO def getIPPool(ip_url): ''' 从IP网站网站获取动态IP :param ip_url: 获取IP地址的服务器

  • 爬虫入门-12306官网登录详解 一,首先我们要先通过浏览器抓包的方式搞清楚登录的流程,url,参数等 登陆=请求 POST请求 请求url(str) 请求方式(str) 参数(str,bytes) 验证码校验 - https://kyfw.12306.cn/passport/captcha/captcha-check - POST - 参数:answer:52,36,117,68 login_s

  • from io import BytesIO from PIL import Image from selenium import webdriver from selenium.webdriver import ActionChains from selenium.webdriver.common.by import By from selenium.webdriver.support.ui i

 相关资料
  • 本文向大家介绍Java仿12306图片验证码,包括了Java仿12306图片验证码的使用技巧和注意事项,需要的朋友参考一下 由于要做一个新项目,所以打算做一个简单的图片验证码。 先说说思路吧:在服务端,从一个文件夹里面找出8张图片,再把8张图片合并成一张大图,在8个小图里面随机生成一个要用户验证的图片分类,如小狗、啤酒等。在前端,访问这个页面时,把图片加载上去,用户在图片上选择提示所需要的图片,当

  • 本文向大家介绍Python 识别12306图片验证码物品的实现示例,包括了Python 识别12306图片验证码物品的实现示例的使用技巧和注意事项,需要的朋友参考一下 1、PIL介绍以及图片分割 Python 3 安装:  pip3 install Pillow 1.1 image 模块 Image模块是在Python PIL图像处理中常见的模块,主要是用于对这个图像的基本处理,它配合open、s

  • 本文向大家介绍详解python 爬取12306验证码,包括了详解python 爬取12306验证码的使用技巧和注意事项,需要的朋友参考一下 一个简单的验证码爬取程序 本文介绍了在Python2.7环境下爬取网站验证码: 思路就是获取验证码对应的url,然后发起requst请求,读取该URL对应的内容,然后写入到一个本地文件,实现一个验证码的保存。大量下载可以把以上程序写入一个死循环 代码实现部分:

  • 本文向大家介绍基于C#实现12306的动态验证码变成静态验证码的方法,包括了基于C#实现12306的动态验证码变成静态验证码的方法的使用技巧和注意事项,需要的朋友参考一下 本以为这次12306的动态验证码很厉害,什么刷票软件都不行了,看了以后发现并不是很复杂,估计不出两日刷票软件又会卷土重来,开来要一个验证码很难遏制这些刷票软了。 这次换的动态验证码采用的是GIF格式在客户端输出,至于要拿到这个g

  • 本文向大家介绍12306验证码破解思路分享,包括了12306验证码破解思路分享的使用技巧和注意事项,需要的朋友参考一下 一个12306验证码破解思路, 图片采集 + 概率 //分析: 1. 单次验证码里面有8个图片,类型最多8种,最少不太确定 2. 8个图是规则排列,可以很容易分隔 3. 图片库应该是有限的,可以采集,计算hash入库,这里需要关联相同类型图片 (比如  “杯子”,“刷子”等) 备

  • 重要说明:由于12306网站已经全面切换为新版,此版本应用实现已经失效.由于年末较忙暂无更新计划,请另行选择其他最新主流订票助手. 开源Java Swing C/S版本12306订票助手 开源代码: https://github.com/xautlx/12306-hunter http://git.oschina.net/xautlx/hunter-12306 本程序完全开放源代码,仅作为技术学习