Fork me on GitHub

基于 crnn_chinese_characters_rec 的验证码图片识别使用教程

crnn_chinese_characters_rec 运行环境安装

1.依赖安装

PIP 安装

  1. $ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py # 下载安装脚本
  2. $ sudo python get-pip.py # 运行安装脚本

NumPy 安装

  1. python3 -m pip install --user numpy scipy matplotlib ipython jupyter pandas sympy nose

cv2 安装

  1. pip install opencv-python

注意 Python3.8以后还不支持会报以下错误,需要把Python版本降级。

  1. [root@10-9-110-141 /]# pip3 install opencv-python
  2. ERROR: Could not find a version that satisfies the requirement opencv-python (from versions: none)
  3. ERROR: No matching distribution found for opencv-python

安装 torch

  1. pip install torch torchvision

 安装 tqdm

  1. pip install tqdm

安装 lmdb

  1. pip install lmdb

安装 skimage

  1. pip install -U scikit-image

2.环境安装

在你的环境中新建一个项目的目录,把 github 上的项目拉下来即可。

  1. https://github.com/Sierkinhane/crnn_chinese_characters_rec

介绍一下重要的几个目录

  1. [root@localhost crnn_chinese_characters_rec]# ll
  2. total 96
  3. -rw-r--r-- 1 root root 20248 Nov 4 19:20 alphabets.py
  4. -rw-r--r-- 1 root root 17878 Nov 4 19:20 char_std_5990.txt
  5. -rw-r--r-- 1 root root 237 Nov 4 19:20 compute_stds_means.py
  6. -rw-r--r-- 1 root root 6510 Nov 4 19:20 crnn_main.py
  7. -rw-r--r-- 1 root root 7826 Nov 4 19:20 crnn_main_v2.py # 训练执行文件
  8. drwxr-xr-x 5 root root 112 Nov 4 19:20 data_generator
  9. -rw-r--r-- 1 root root 4026 Nov 4 19:20 dataset.py
  10. -rw-r--r-- 1 root root 3326 Nov 4 19:20 dataset_v2.py
  11. drwxr-xr-x 2 root root 6 Nov 5 11:29 expr
  12. drwxr-xr-x 2 root root 39 Nov 5 10:23 label
  13. drwxr-xr-x 3 root root 59 Nov 5 10:50 models
  14. -rw-r--r-- 1 root root 377 Nov 4 19:20 params.py
  15. -rw-r--r-- 1 root root 1201 Nov 4 19:20 preprocessing.py
  16. drwxr-xr-x 2 root root 128 Nov 5 11:28 __pycache__
  17. -rw-r--r-- 1 root root 3886 Nov 4 19:20 README.md
  18. -rw-r--r-- 1 root root 1856 Nov 4 19:20 setup.py
  19. drwxr-xr-x 2 root root 118 Nov 4 19:20 test_images # 训练结束要识别的图片
  20. -rw-r--r-- 1 root root 2332 Nov 5 11:04 test.py
  21. drwxr-xr-x 4 root root 99 Nov 5 11:18 to_lmdb # 训练文件以及结果
  22. drwxr-xr-x 2 root root 74 Nov 5 09:18 trained_models # 训练好的模型
  23. -rw-r--r-- 1 root root 6094 Nov 4 19:20 utils.py

to_lmdb 目录介绍

  1. [root@localhost to_lmdb]# ll
  2. total 12
  3. -rw-r--r-- 1 root root 2336 Nov 4 19:20 to_lmdb_py2.py
  4. -rw-r--r-- 1 root root 3959 Nov 4 19:20 tolmdb_py3.py
  5. drwxr-xr-x 2 root root 38 Nov 5 11:14 train # mdb文件
  6. drwxr-xr-x 2 root root 236 Nov 5 11:12 train_images # 需要训练的图片
  7. -rw-r--r-- 1 root root 268 Nov 5 11:18 train.txt # 需要训练的图片以及结果

3.crnn_chinese_characters_rec 的使用

  1. 先把所以需要训练的图片放到 ./to_lmdb/train_images 文件夹中。
  2. 把先前放到 ./to_lmdb/train_images 文件夹中的图片以及结果写入到 ./to_lmdb/train.txt 文件中。
  3. 在目录 ./to_lmdb/ 中执行命令 python3 tolmdb_py3.py,命令执行成功后会在当前的文件夹下生成一个 train 目录,里面就是训练所需要的 mdb 文件。
  4. 生成 mdb 文件后就可以训练模型了。回到根目录下执行 python3 crnn_main_v2.py 这个命令。成功后会在当前的目录生成新的文件夹 /expr 。里面放着就是训练好的模型。
  5. 把训练好的模型放到 trained_models 目录下。
  6. 测试,把需要识别的图片放到 ./test_images 目录下, 然后修改 test.py 文件中的模型路径以及需要识别的图片途径,运行 python3 test.py 即可看到结果。

4.测试结果

  1. [root@localhost crnn_chinese_characters_rec]# python3 test.py --images_path=test_images/test1.png
  2. loading pretrained model from trained_models/mixed_second_finetune_acc97p7.pth
  3. results: 男装、女装、童装、婴儿装、内衣、服饰、泳衣、家用饰品、针纺织品、装面斜及辅
  4. elapsed time: 0.17209863662719727