《发票识别算法基础知识》

手里的两个OCR算法使用了类似的算法和框架,但是代码看起来还是有细微的差别的。准备研究下该代码,此篇文字记录基本知识,权当笔记。


1.PIL.Image.convert("L")

python中的图像处理库PIL是用来实现不同图像格式的转换。

PIL处理正常的RGB、BMP、JPG格式的图片,都是直接将其转换为"RGB"模式。

但是对于灰度图,PIL进行的操作是将其转换为"L"型——模式"L"为灰色图像,它的每个像素用8个bit表示,0表示黑,255表示白,其他数字表示不同的灰度。在PIL中,从模式“RGB”转换为“L”模式是按照下面的公式转换的:

L = R * 299/1000 + G * 587/1000+ B * 114/1000


"""
YOLO_v3 Model Defined in Keras.
Reference: https://github.com/qqwweee/keras-yolo3.git
"""

确定了手里的两个项目都是使用的该源码。


3.并不是像我想象的整个模型都是使用Keras!!!

keras是keras-yolo3,是文字检测用的!!!

ocr是ocr,是用pytorch实现的,属于CRNN,是文字识别用的!!!

########################文字检测################################################
##文字检测引擎 
IMGSIZE = (608, 608)  ## yolo3 输入图像尺寸
yoloTextFlag = 'keras'  ##keras,opencv,darknet,模型性能 keras>darknet>opencv
############## keras yolo  ##############
keras_anchors = '8,11, 8,16, 8,23, 8,33, 8,48, 8,97, 8,139, 8,198, 8,283'
class_names = ['none', 'text', ]
kerasTextModel = os.path.join(pwd, "models", "text.h5")  ##keras版本模型权重文件


######################OCR模型###################################################
ocrFlag = 'torch'  ##ocr模型 支持 keras  torch opencv版本

4.yolo_v3.

yolo_v3是一个目前识别率较高的目标检测深度学习算法,其对darknet-53进行了修改,只取其前52层。

你可能感兴趣的:(Invoice_ocr)