うにてぃブログ

主にUnityとC#に関する記事を書いていきます

【Unity】tesseract を apple silicon mac で利用する

tesseract を試して見ようと探したところ github にライブラリがあったので利用してみた

https://github.com/Neelarghya/tesseract-unity

しかし、Unity 上 Dll のロードができないらしくで動作しなかった

System.DllNotFoundException - tesseract assembly: type: member:(null)

もしかすると Apple Silicon 搭載してる場合には利用できなかった可能性がある

Android の確認

Build target を Android に変更しビルドしみてる

Android 12 の端末に入れたところ動作していることが確認できた

ライブラリの差し替え

自前でビルドするのは面倒なので、brew で install できる ライブラリを利用してみる

brew install tesseract

5.0.1 が入っていることが確認できた

username@MacBook-Pro ~ % tesseract -v
tesseract 5.0.1
 leptonica-1.82.0
  libgif 5.2.1 : libjpeg 9d : libpng 1.6.37 : libtiff 4.3.0 : zlib 1.2.11 : libwebp 1.2.1 : libopenjp2 2.4.0
 Found NEON
 Found libarchive 3.5.2 zlib/1.2.11 liblzma/5.2.5 bz2lib/1.0.8 liblz4/1.9.3 libzstd/1.5.0
 Found libcurl/7.77.0 SecureTransport (LibreSSL/2.8.3) zlib/1.2.11 nghttp2/1.42.0

保存先を確認

$ brew list tesseract
/opt/homebrew/Cellar/tesseract/5.0.1/bin/tesseract
/opt/homebrew/Cellar/tesseract/5.0.1/include/tesseract/ (12 files)
/opt/homebrew/Cellar/tesseract/5.0.1/lib/libtesseract.5.dylib
/opt/homebrew/Cellar/tesseract/5.0.1/lib/pkgconfig/tesseract.pc
/opt/homebrew/Cellar/tesseract/5.0.1/lib/ (2 other files)
/opt/homebrew/Cellar/tesseract/5.0.1/share/tessdata/ (35 files)

ライブラリは以下のディレクトリのを利用する

% ls  /opt/homebrew/Cellar/tesseract/5.0.1/lib/
libtesseract.5.dylib    libtesseract.a      libtesseract.dylib  pkgconfig

これを Assets/Plugins/Mac の中身と置き換える

動作確認

再生してみると問題なく動作した

f:id:hacchi_man:20220116125225p:plain