Giter Site home page Giter Site logo

stampocr's Introduction

介绍:

此demo的功能是用opencv的dnn模块,来运行yolov3的进行目标检测和进行OCR的,OCR模型采用的是改进版的crnn,CNN+FC。
来对检测到的目标进行识别。

检测:

检测的目标是***银行的票据。检测的目标共有4类,分别为主键、流水号、附件章(只检测不需要识别)及附件标题。

识别:

对检测到的目标进行识别,其中需要识别的目标有主键、流水号和附件标题。此识别是对水平从左到有的输入有效。

训练说明:

yolov3模型是在darknet下训练的得到weights文件。
ocr模型是在chineseOCR提供的脚本及模型ocr_dense.pth基础上,增加自己的数据得到的。
ocr用的是pytorch进行训练的,训练得到的pth文件,需要经过pytorch转keras,然后keras转darknet,两个转换过程,
在原chineseOCR中提供了参考的脚本。本人实在这些脚本基础上,修改得到的。具体的训练代码及转换脚本,我整理好后
会在另一个repo中上传。
我这里的ocr.cfg文件,与原始chineseOCR的ocr.cfg文件存在一些小的不同,我这里用到了batch_norm。
 
chineseOCR的链接地址:https://github.com/chineseocr/chineseocr.git

cmake进行构建:

对于自己写的.cpp .h文件拷贝到src文件夹下,然后在CmakeLists.txt文件中的add_executable
(detect_objects src/demo.cpp src/dataStructures.h src/***.cpp src/***.h) 后面依次添加,
然后cmake构建就可以

文件夹说明:

3rdparty:存放的是第三方库 opencv4.1.0的库,从下载链接中,下载后将库拷贝到该文件夹下

build:是已经cmake构建好的vs2015的project,具体的cmake过程,见图片cmake截图.png 



data: 
	yolo文件夹:存放的是yolov3的cfg文件和weights文件,以及names文件
	ocr文件夹:存放的是ocr模型的cfg、dict和weights文件
	ocr的模型文件是在chineseOCR的ocr_dense.pth(字典大小是5530)的基础上,用实际数据进行微调得到的
test: 存放的是几张测试图片
src:   存放的是源文件

注意:

在下载此文件后,直接运行build目录下的OpencvDarknet.sln会报错,原因是路劲错误,找不到相应文件,
需要在本地重新cmake构建一下参见cmake截图.png

版本说明: opencv4.1.0

测试速度:

测试环境:Win10,Core(TM)i7-6700 CPU @ 3.40GHz 3.41 GHz,ARM(8GB)
识别速度:FPS = 19.48 
检测速度:FPS = 1.989
检测+识别速度:FPS = 1.619

补充:

此次用到的yolov3模型文件,yolov3.weights,及ocr模型ocr_5530.weights,
以及编译好的opencv4.1.0的库文件链接下载地址如下:

opencv4.1.0的库文件下载链接: 链接:https://pan.baidu.com/s/1b4IpmKwc6YQZ1jzRs64y6g 提取码:impz

yolov3及ocr的模型文件下载链接: 链接:https://pan.baidu.com/s/169cpsBcHAKDog1GRtEKHqg 提取码:ujyd

致谢: 在此研究过程中,得到了chineseOCR作者的大力支持与帮助,在此向他表示衷心的感谢! 另外,也感谢实验室提供的资源,也感谢颜姐给予的帮助和指导!

Author:BigPanda

E-mail:[email protected]

State Key Laboratory of Digital Publishing Technology

Date:2020-9-9

stampocr's People

Contributors

bigpandacpu avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.