# 破解点击选择验证码
## 训练命令
- `sh run.sh yolo_train` - 训练定位器
- `sh run.sh yolo_vaild` - 批量前向定位器,保存结果为记事本。
- `sh run.sh classifier_train` - 训练分类器
- `sh run.sh classifier_valid` - 批量前向分类器
## 依赖
运行在`python2`,若使用`python3`注意darknet生成网络模型字符串需要加`b`前缀。
- `opencv3`
- `easydict`
- `Jinja2`
- `Flask`
- `scipy`
- `numpy`
## 目录结构
```
.
├── Makefile
├── README.md
├── cfg
│ ├── chinese.data 分类器训练配置文件
│ ├── chinese_character.cfg 分类器网络配置文件
│ ├── yolo-origin.cfg 定位器网络配置文件
│ ├── yolo-origin.data 定位器训练配置文件
│ ├── yolo-valid.cfg 定位器批量前向网络配置文件
│ └── yolo-valid.data 定位器批量前向配置文件
├── darknet darknet二进制
├── data
│ ├── chinese_label.names 分类器标签名称
│ └── yolo.names 定位器标签名称
├── examples
├── include
├── model
│ └── character.dict 分类器编码,需要替换
├── python
│ ├── __init__.py
│ ├── darknet.py darknet python接口
│ ├── sampleImage.py
│ └── server.py 部署模型接口
├── results yolo前向结果保存位置
│ └── comp4_det_test_character.txt
├── run.sh 训练脚本
├── requierment.txt python依赖
├── train_cfg
│ ├── *.template 训练配置模板文件
│ └── generate.py 生成模板文件
├── scripts voc数据集转换脚本
└── src darknet源代码
```
## 定位器训练
### 文件准备
准备如下两个文件
```
cfg
├── yolo-origin.cfg
└── yolo-origin.data
```
#### `yolo-origin.cfg`
```
[convolutional]
size=1
stride=1
pad=1
filters=30
activation=linear
[region]
anchors = 1.3221, 1.73145, 3.19275, 4.00944, 5.05587, 8.09892, 9.47112, 4.84053, 11.2364, 10.0071
bias_match=1
classes=1
coords=4
num=5
softmax=1
jitter=.3
rescore=1
object_scale=5
noobject_scale=1
class_scale=1
coord_scale=1
absolute=1
thresh = .6
random=1
```
- ```
filter
```
为30,其计算公式为
filter=num(classes+coord+1)filter=num(classes+coord+1)
30=5(1+4+1)30=5(1+4+1)
- `num`代表每个框最多预测多少物体。
- `classes`代表一共有多少个类,这里为1。
- `coord`代表回归的四个位置,分别为`<x> <y> <width> <height>`代表物体中心点相对位置以及物体相对大小。如`你`的标签为`0 0.2 0.75 0.16 0.18`,`好`的标签为`0 0.7 0.15 0.15 0.17`。这张图的标签就是
```
0 0.2 0.75 0.16 0.18
0 0.7 0.15 0.15 0.17
```
![](https://www.writebug.com/myres/static/uploads/2022/6/22/95c2e4ddb05f555b9e5e74bf5d484094.writebug)
#### `yolo-origin.data`
```
classes= 1
train = /some_path/train.txt
valid = /some_path/train.txt
names = darknet/data/yolo.names
backup = darknet/debug
```
- `classes`代表一共有多少
- `train`代表存放训练数据路径位置文件
- `valid`代表存档前向测试数据路径文件
```
train.txt
products/trainval/0000172_6_0.jpg
products/trainval/0000172_6_1.jpg
products/trainval/0000172_6_2.jpg
```
label与图片在同一文件夹下![](https://www.writebug.com/myres/static/uploads/2022/6/22/9ecd513b1427b80b7e1c064fdb1d5994.writebug)
- `names`前向时类别名称 (track, dog,bicycle),在这里为任意一种即可,叫什么都可以。![](https://www.writebug.com/myres/static/uploads/2022/6/22/53784255991ce81763d24e5f89f2923f.writebug)
- `backup`训练后权重保存位置
### 训练
准备好文件后下载对应的权重,开始训练
```
wget https://pjreddie.com/media/files/darknet19_448.conv.23
sh run.sh yolo_train
```
## 分类器训练
### 准备文件
```
cfg
├── chinese_character.cfg
└── chinese.data
```
#### `chinese_character.cfg`
```
[convolutional]
batch_normalize=1
filters=1024
size=3
stride=1
pad=1
activation=leaky
[convolutional]
filters=3549
size=1
stride=1
pad=1
activation=leaky
[avgpool]
[softmax]
groups=1
[cost]
type=sse
```
- `filters` 最后一层卷基层代表汉字分类个数,这里为`3549`
#### `Chinese.data`
```
classes=3549
train = darknet/chinese_character_train/train.list
valid = chinese_character_train/train.list
labels = darknet/data/chinese_label.names
backup = darknet/model/classifier
top=100
```
- `classes` 代表分类个数
- `train`代表存放训练数据路径位置文件
- `valid`代表存档前向测试数据路径文件
```
train.txt
products/trainval/0000172_abcdefg.jpg
products/trainval/0000173_abcdfge.jpg
products/trainval/0000174_bcabfge.jpg
```
- `names` 代表标签名称
```
abcdefg
abcdegf
abcdfeg
abcdfge
abcdgef
abcdgfe
abcedfg
abcedgf
```
darknet在通过文件名与`names`中的字符串做匹配,匹配到则认为该标签为匹配到的字串。如`products/trainval/0000172_abcdefg.jpg`,由于`names`中出现`abcdefg`,所以这张图的标签为`abcdefg`。所以图片的路径绝对不可以出现多个`names`中包含的字串,如果路径为`some_path1/data2/3.jpg`,`names中包含`1,2,3`,则这张图片会被认为匹配1,2,3`多个label从而报错。
- `top` 代表vaild时取前多少计算正确率。如`top100`代表前分类时概率最大的前100类中出现了正确的标签就认为正确。因为点击验证码存在先验,我们有候选字的范围,可以结合候选字进行破解。
#### 训练
```
sh run.sh classifier_train
```
## 配置文件生成
修改`train_cfg/generate.py`配置。最终配置生成在`train_cfg`目录下。
```
python train_cfg/generate.py
```
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
资源包含文件:设计报告word+源码及数据 训练命令 sh run.sh yolo_train - 训练定位器 sh run.sh yolo_vaild - 批量前向定位器,保存结果为记事本。 sh run.sh classifier_train - 训练分类器 sh run.sh classifier_valid - 批量前向分类器 依赖 运行在python2,若使用python3注意darknet生成网络模型字符串需要加b前缀。 opencv3 easydict Jinja2 Flask scipy numpy 详细介绍参考:https://blog.csdn.net/sheziqiong/article/details/125416037
资源推荐
资源详情
资源评论
收起资源包目录
Python实现点击选择验证码破解.zip (159个子文件)
data.c 42KB
image.c 40KB
parser.c 40KB
lsd.c 36KB
classifier.c 32KB
network.c 28KB
go.c 28KB
lstm_layer.c 24KB
detector.c 24KB
region_layer.c 23KB
convolutional_layer.c 18KB
darknet.c 17KB
rnn.c 15KB
gru_layer.c 13KB
utils.c 13KB
coco.c 13KB
nightmare.c 13KB
yolo.c 11KB
connected_layer.c 11KB
captcha.c 11KB
attention.c 11KB
compare.c 11KB
batchnorm_layer.c 10KB
detection_layer.c 10KB
rnn_layer.c 10KB
crnn_layer.c 9KB
demo.c 9KB
deconvolutional_layer.c 9KB
local_layer.c 9KB
box.c 8KB
gemm.c 8KB
cifar.c 8KB
segmenter.c 8KB
blas.c 7KB
regressor.c 7KB
rnn_vid.c 7KB
normalization_layer.c 5KB
reorg_layer.c 5KB
cost_layer.c 5KB
voxel.c 5KB
layer.c 4KB
writing.c 4KB
tag.c 4KB
matrix.c 4KB
cuda.c 4KB
maxpool_layer.c 4KB
route_layer.c 4KB
tree.c 4KB
super.c 4KB
dice.c 4KB
activations.c 3KB
option_list.c 3KB
crop_layer.c 3KB
softmax_layer.c 3KB
swag.c 2KB
shortcut_layer.c 2KB
avgpool_layer.c 2KB
activation_layer.c 2KB
dropout_layer.c 2KB
art.c 1KB
list.c 1KB
col2im.c 1KB
im2col.c 1KB
yolo-valid.cfg 3KB
yolo-origin.cfg 3KB
chinese_character.cfg 769B
blas_kernels.cu 29KB
convolutional_kernels.cu 10KB
crop_layer_kernels.cu 7KB
activation_kernels.cu 5KB
deconvolutional_kernels.cu 5KB
maxpool_layer_kernels.cu 3KB
col2im_kernels.cu 2KB
im2col_kernels.cu 2KB
avgpool_layer_kernels.cu 2KB
dropout_layer_kernels.cu 1KB
darknet 1.55MB
chinese.data 193B
yolo-origin.data 145B
yolo-valid.data 137B
character.dict 89KB
设计报告.docx 1.45MB
.gitignore 3KB
stb_image.h 215KB
stb_image_write.h 25KB
darknet.h 18KB
blas.h 6KB
activations.h 3KB
image.h 2KB
convolutional_layer.h 2KB
data.h 2KB
utils.h 2KB
local_layer.h 943B
gemm.h 928B
deconvolutional_layer.h 871B
connected_layer.h 666B
normalization_layer.h 658B
crnn_layer.h 649B
maxpool_layer.h 641B
rnn_layer.h 625B
共 159 条
- 1
- 2
资源评论
shejizuopin
- 粉丝: 9708
- 资源: 1288
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功