作者 | Raini
出品 | 北京圖特摩斯科技有限公司 (www.thutmose.cn)
也是幾個月前的項目了,由于手頭事兒多,也已經轉交給别的同僚去繼續優化。本部落格僅做個簡單的記錄用。
主流深度學習OCR文字識别方法對比:Tesseract(LSTM)、CTPN+CRNN、Densenetopencv mser算法框出圖檔文字區域 這裡是 Tesseract(LSTM)、CTPN+CRNN、Densenet三個方法測試結果對比(結果不是最優,代碼也經過優化):
PS:官方Tesseract-4.0需要Ubuntu-18.04支援,本人在Ubuntu-16.04上編譯安裝成功。
(一)Tesseract(LSTM)和Densenet
(此結果算法未經優化)
總結放前面:
- Tesseract實作的OCR識别(可以實作衣服吊牌文字識别,對于服裝彩色背景圖有些牽強,對圖檔進行反轉之後可識别,但背景顔色不是單一色調的識别不出--這跟圖檔像素也有很大差別,300dpi+的圖檔識别度更高)
- Densenet實作的OCR識别(衣服吊牌等複雜場景識别度低,對于服裝彩色背景圖效果卻比Tesseract好)
- 上兩種辦法的解決方案之一可嘗試Tesseract識别不出的圖檔塊讓Densenet來識别
原圖+服裝box:
(采用目标檢測的方法識别與定位服裝,算法:Faster-RCNN)
主流深度學習OCR文字識别方法對比:Tesseract(LSTM)、CTPN+CRNN、Densenetopencv mser算法框出圖檔文字區域 OCR box:
(褲腿的logo已去除)
主流深度學習OCR文字識别方法對比:Tesseract(LSTM)、CTPN+CRNN、Densenetopencv mser算法框出圖檔文字區域
主流深度學習OCR文字識别方法對比:Tesseract(LSTM)、CTPN+CRNN、Densenetopencv mser算法框出圖檔文字區域 (這是去除掉的錯誤的識别)
識别效果:
(按行識别,可以取到每行字的bbox,這裡省略)
主流深度學習OCR文字識别方法對比:Tesseract(LSTM)、CTPN+CRNN、Densenetopencv mser算法框出圖檔文字區域 Tesseract識别不出文字的區域(背景為多顔色的區域):
1.
主流深度學習OCR文字識别方法對比:Tesseract(LSTM)、CTPN+CRNN、Densenetopencv mser算法框出圖檔文字區域 2.
主流深度學習OCR文字識别方法對比:Tesseract(LSTM)、CTPN+CRNN、Densenetopencv mser算法框出圖檔文字區域 3.
主流深度學習OCR文字識别方法對比:Tesseract(LSTM)、CTPN+CRNN、Densenetopencv mser算法框出圖檔文字區域 4.
主流深度學習OCR文字識别方法對比:Tesseract(LSTM)、CTPN+CRNN、Densenetopencv mser算法框出圖檔文字區域 将圖檔進行色調翻轉之後:
主流深度學習OCR文字識别方法對比:Tesseract(LSTM)、CTPN+CRNN、Densenetopencv mser算法框出圖檔文字區域 Tesseract可識别出,Densenet識别不出:
主流深度學習OCR文字識别方法對比:Tesseract(LSTM)、CTPN+CRNN、Densenetopencv mser算法框出圖檔文字區域 色調翻轉之後:
主流深度學習OCR文字識别方法對比:Tesseract(LSTM)、CTPN+CRNN、Densenetopencv mser算法框出圖檔文字區域 Densenet可識别出,Tesseract識别不出:
主流深度學習OCR文字識别方法對比:Tesseract(LSTM)、CTPN+CRNN、Densenetopencv mser算法框出圖檔文字區域 色調翻轉之後:
主流深度學習OCR文字識别方法對比:Tesseract(LSTM)、CTPN+CRNN、Densenetopencv mser算法框出圖檔文字區域 Densenet可識别出,Tesseract識别不出:
主流深度學習OCR文字識别方法對比:Tesseract(LSTM)、CTPN+CRNN、Densenetopencv mser算法框出圖檔文字區域 色調翻轉之後:
主流深度學習OCR文字識别方法對比:Tesseract(LSTM)、CTPN+CRNN、Densenetopencv mser算法框出圖檔文字區域 Densenet可識别出,Tesseract識别不出:
主流深度學習OCR文字識别方法對比:Tesseract(LSTM)、CTPN+CRNN、Densenetopencv mser算法框出圖檔文字區域 (二)CTPN+CRNN:CHINESE-OCR 和 Tesseract(LSTM)
代碼位址:https://github.com/xiaofengShi
總結:就不寫了... 看結果吧
代碼提供了keras和pytorch兩個版本的CRNN中文識别模型,經測試,pytorch版本效果要好一些。
主流深度學習OCR文字識别方法對比:Tesseract(LSTM)、CTPN+CRNN、Densenetopencv mser算法框出圖檔文字區域
主流深度學習OCR文字識别方法對比:Tesseract(LSTM)、CTPN+CRNN、Densenetopencv mser算法框出圖檔文字區域 CTPN+CRNN文本識别結果(輸入的是裁剪标簽部分後的圖像,以下同理):
主流深度學習OCR文字識别方法對比:Tesseract(LSTM)、CTPN+CRNN、Densenetopencv mser算法框出圖檔文字區域 基于tesseract識别結果(有預處理,以下同理):
主流深度學習OCR文字識别方法對比:Tesseract(LSTM)、CTPN+CRNN、Densenetopencv mser算法框出圖檔文字區域
主流深度學習OCR文字識别方法對比:Tesseract(LSTM)、CTPN+CRNN、Densenetopencv mser算法框出圖檔文字區域 CTPN+CRNN:
主流深度學習OCR文字識别方法對比:Tesseract(LSTM)、CTPN+CRNN、Densenetopencv mser算法框出圖檔文字區域 基于tesseract識别結果:
主流深度學習OCR文字識别方法對比:Tesseract(LSTM)、CTPN+CRNN、Densenetopencv mser算法框出圖檔文字區域
主流深度學習OCR文字識别方法對比:Tesseract(LSTM)、CTPN+CRNN、Densenetopencv mser算法框出圖檔文字區域 CTPN+CRNN:
主流深度學習OCR文字識别方法對比:Tesseract(LSTM)、CTPN+CRNN、Densenetopencv mser算法框出圖檔文字區域 基于tesseract識别結果:
主流深度學習OCR文字識别方法對比:Tesseract(LSTM)、CTPN+CRNN、Densenetopencv mser算法框出圖檔文字區域
主流深度學習OCR文字識别方法對比:Tesseract(LSTM)、CTPN+CRNN、Densenetopencv mser算法框出圖檔文字區域 CTPN+CRNN:
主流深度學習OCR文字識别方法對比:Tesseract(LSTM)、CTPN+CRNN、Densenetopencv mser算法框出圖檔文字區域 基于tesseract識别結果:
主流深度學習OCR文字識别方法對比:Tesseract(LSTM)、CTPN+CRNN、Densenetopencv mser算法框出圖檔文字區域 最後,加個openCV裡好玩的
opencv mser算法框出圖檔文字區域
主流深度學習OCR文字識别方法對比:Tesseract(LSTM)、CTPN+CRNN、Densenetopencv mser算法框出圖檔文字區域 '''
opencv mser算法框出圖檔文字區域
'''
from PIL import Image
import numpy as np
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('/home/raini/pro/LogoDetector/SIFT/PRI_Roche/Python_OpenCV/test_img/daa59b642f6a60e2995be13f495a7c45.jpg')
mser = cv2.MSER_create(_min_area=300)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
regions, boxes = mser.detectRegions(gray)
for box in boxes:
x, y, w, h = box
cv2.rectangle(img, (x,y),(x+w, y+h), (255, 0, 0), 2)
plt.imshow(img,'brg')
plt.show()
部落客w~x:lovebyz99
(交流請備注,對創業有想法歡迎聯系)