Tesseractをherokuで使う方法

「Tesseractをherokuで使う方法」のアイキャッチ画像
# ターミナルでビルドを追加
heroku buildpacks:add https://github.com/matteotiziano/heroku-buildpack-tesseract

herokuで実行したところ下記のエラー発生

pyocr.error.TesseractError: (127, 'tesseract: error while loading shared libraries: libpng12.so.0: cannot open shared object file

調べたところtesseractを4系にあげれば解決するらしく、buildパックを4系で作成しようか悩みましたが、とりあえずaptで入れていく方法にすることにしました
※ どの記事か忘れてしまいましたが、4系に変更すべし、的なstackoverflowの記事がありました。消してしまったので、気になる方は調べてください。

↓3系なので使えない

https://github.com/matteotiziano/heroku-buildpack-tesseract

3系は使えずbuild pack作るのも大変そうなので素直にaptで行きます

下記をterminalで実行

heroku buildpacks:add --index 1 heroku-community/apt

その後、プロジェクトの直下にAptfile を作成し、中身をこのように記載します

tesseract-ocr
tesseract-ocr-eng
tesseract-ocr-jpn

修正したファイルをpushしたらterminalで下記を実行

$ heroku run bash
$ find -iname tessdata
./.apt/usr/share/tesseract-ocr/4.00/tessdata

# 中身にjpn入ってるか気になったのでみてみると。。
$ cd ./.apt/usr/share/tesseract-ocr/4.00/tessdata/
configs/         jpn.traineddata  pdf.ttf
eng.traineddata  osd.traineddata  tessconfigs/

入ってました!!!

最後はpath入れて

 heroku config:set TESSDATA_PREFIX=/app/.apt/usr/share/tesseract-ocr/4.00/tessdata

実行しましたところ問題なく稼働しました!

参考記事

【Heroku】How to install service and setup environment variable: Use Tesseract OCR as example

Tesseract running error

Installing and using Tesseract 4 on Ubuntu 18.04

Configurin Tesseract OCR in Heroku-16

Heroku Buildpack Tesseract

matteotiziano/heroku-buildpack-tesseract

Using Tesseract on Heroku with Django

How to deploy pytesseract to Heroku

kevin1061517/python-deploy-Tesseract-OCR-to-Heroku