亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

tesseract 無法識別易于閱讀的文本

tesseract 無法識別易于閱讀的文本

慕田峪4524236 2023-05-23 16:33:02
我使用了EAST?(高效準確的場景文本檢測器)的以下PyTorch 實現來識別和繪制許多圖像中文本周圍的邊界框,效果非常好!pytesseract但是,為了從這些圖像中提取文本并將它們轉換為字符串,我正在嘗試使用 OCR 的下一步——失敗得很厲害。--oem使用和的所有可能配置--psm,我無法檢測到pytesseract看起來非常清晰的文本,例如:已識別的文本位于圖像下方。即使我應用了對比度增強,并嘗試了擴張和腐蝕,我也無法讓 tesseract 識別文本。這只是許多圖像中文本更大更清晰的示例之一。關于轉換、配置或其他庫的任何建議都會有所幫助!更新:在嘗試高斯模糊 + Otso 閾值處理后,我能夠在白色背景上獲得黑色文本(顯然這是 pytesseract 的理想選擇),并且還添加了西班牙語,但它仍然無法閱讀非常純文本 - 例如:讀起來是胡言亂語。處理后的文本圖像是和我正在使用的代碼:img_path = './images/fesa.jpg'img = Image.open(img_path)boxes = detect(img, model, device)origbw = cv2.imread(img_path, 0)for box in boxes:? ??? ? box = box[:-1]? ? poly = [(box[0], box[1]),(box[2], box[3]),(box[4], box[5]),(box[6], box[7])]? ? x = []? ? y = []? ? for coord in poly:? ? ? ? x.append(coord[0])? ? ? ? y.append(coord[1])? ? startX = int(min(x))? ? startY = int(min(y))? ? endX = int(max(x))? ? endY = int(max(y))? ? #use pre-defined bounding boxes produced by EAST to crop the original image?? ??? ? cropped_image = origbw[startY:endY, startX:endX]? ? #contrast enhancement?? ? clahe = cv2.createCLAHE(clipLimit=4.0, tileGridSize=(8,8))? ? res = clahe.apply(cropped_image)? ? text = pytesseract.image_to_string(res, config = "-psm 12")? ??? ? plt.imshow(res)? ? plt.show()? ? print(text)
查看完整描述

1 回答

?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

本指南批評了開箱即用的性能(也許準確性也會受到影響):

訓練有素的數據。在撰寫本文時,適用于 Ubuntu 18.10 的 tesseract-ocr-eng APT 包具有糟糕的開箱即用性能,可能是因為訓練數據損壞。

根據我所做的以下測試,使用更新的數據文件似乎可以提供更好的結果。這是我使用的代碼:

import?pytesseract?
from?PIL?import?Image?
print(pytesseract.image_to_string(Image.open('farmacias.jpg'),?lang='spa',?config='--tessdata-dir?./tessdata?--psm?7'))

我將spa.traineddata(您的示例圖像有西班牙語單詞,對嗎?)下載到./tessdata/spa.traineddata.?結果是:

ARMACIAS

對于第二張圖片:

PECIALIZADA:

我之所以使用,--psm 7是因為這里說它的意思是“將圖像視為單個文本行”,我認為這對您的測試圖像應該有意義。

查看完整回答
反對 回復 2023-05-23
  • 1 回答
  • 0 關注
  • 273 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號