ocr训练环境搭建及技巧--ubuntu18.04.1+python2.7+caffelstmctc

一.训练环境配置(ubuntu18.04.1+python2.7)

    ocr一般都是整排序列识别,技术已经非常成熟,也给生活带来了极大的便利,比如:车牌、验证码、身份证、银行卡、osd校验等等。ocr的方案涉及到“文本检测+识别”两大模块,ocr模型训练过程中需要用到ctcloss,故整体思路是:caffe编译前先将ctc编译出来,然后将ctc合入到caffe工程,编译。

warp-ctc编译流程:

cd warp-ctc

mkdir build

cd build

cmake ..

make

将编译好的文件加入caffe工程中

cd warp-ctc/include/

cp -r contrib/ caffelstmctc/include /caffe/3rdparty/

cp -r detail  caffelstmctc/include /caffe/3rdparty/

cp ctc.h  caffelstmctc/include /caffe/3rdparty/

cd ../src/

cp *  caffelstmctc/src/caffe/3rdparty/

caffe工程编译:

python2环境,直接编译即可

Github代码路径:https://github.com/xmfbit/warpctc-caffe

二.训练技巧

1.本人用的是12CNN+3FC的网络,便于在不同芯片平台工程化

2.数据量较少情况下可以尝试大规模数据的预训练模型方式,如果新模型的类别数与预训练模型不一致,则在prototxt文件中修改全连接层的名字以及类别数即可

3.学习率 0.001或者0.0001,学习率过大容易导致网络震荡,不收敛,学习率过小要避免网络陷入局部最优。根据训练方式、数据量不同,效果差异也挺大

三、遇到的问题及解决办法

待补充编译过程遇到的问题以及源码...

你可能感兴趣的:(caffe,深度学习,人工智能)