總共有6個步驟:
- 安裝tesseract軟體
- 設定tesseract的路徑至環境變數
- 使用pip安裝pillow pytesseract套件
- 新增自己要辨識的語言檔案
- 將下載的檔案放置tesseract軟體的tessdata目錄裡
- Python程式範例
1.下載並安裝tesseract
先到https://digi.bib.uni-mannheim.de/tesseract/下載
windows的5.0.0-alpha版本並安裝。
2. 設定tesseract的路徑至環境變數
將tesseract軟體安裝的路徑新增至xxx的使用者變數→Path變數裡。
3. 使用pip安裝pillow opencv pytesseract套件
※注意:須要事先安裝Python軟體才會有pip套件管理程式。
pip install pillow opencv-python pytesseract
4. 新增自己要辨識的語言檔案
到https://github.com/tesseract-ocr/tessdata_fast下載所需要的語言檔案。在範例中使用到的是中文繁體、中文簡體、英文,而英文在一開始軟體的安裝就附加了。因此只需要下載chi_tra.traineddata、chi_sim.traineddata兩個檔案即可。
影像來源:(https://github.com/tesseract-ocr/tesseract/blob/master/doc/tesseract.1.asc#languages)
5. 將下載的檔案放置tesseract軟體裡的tessdata目錄
將下載下來的兩個檔案放置在tesseract軟體裡的tessdata目錄裡。
程式碼
from PIL import Image
import pytesseract as pytess
img = Image.open(“F:/Github/AI_Tools/Computer Vision/Optical Character Recognition/images/song sheet/隱形的翅膀.png”)
print(pytess.image_to_string(img, lang =‘chi_tra’))
輸出結果
程式碼
import cv2
import pytesseract as pytess
img = cv2.imread( “F:/Github/AI_Tools/Computer Vision/Optical Character Recognition/images/article/article-2.jpg”)
print(pytess.image_to_string(img, lang =‘eng’))
輸出結果
程式碼
import cv2
import pytesseract as pytess
img = cv2.imread(“ F:/Github/AI_Tools/Computer Vision/Optical Character Recognition/images/math/formula-1.jpg”)
print(pytess.image_to_string(img, lang =‘eng’))
輸出結果
結語
範例一因著夾雜許多中文繁體之外的內容,如樂理的符號和簡譜等,所以輸出的結果不如理想。
範例二的辨識度最高。因著字體統一,內容以較整齊的方式排列,輸出結果可以說是非常滿意,幾乎90%以上的準確率。
範例三本來是用數學的檢測器做辨識,但發現輸出結果太糟了,因此改用英文的方式做辨識,發現輸出結果比用數學的檢測器來的合理許多。
以上只是簡單的範例,若是要增加OCR辨識的準確率,可能需要對影像作預處理來提升辨識的準確度。