手裏的兩個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層。