tesseract-ocr
インストール
sudo apt-get -y install tesseract-ocr tesseract-ocr-jpn
pip install pytesseract
リポジトリのリンクから日本語データの学習ファイルをダウンロードして
import pytesseract
from PIL import Image
im = Image.open(image_path)
text = pytesseract.image_to_string(img, lang='jpn')
boxs = pytesseract.image_to_boxes(img, lang='jpn')
print(text)
print(boxs)
日本語を勉強する外国人のイラスト
日 91 845 151 885 0
本 121 829 181 889 0
語 186 845 204 884 0
を 209 847 244 884 0
勉 250 845 336 885 0
強 340 845 638 885 0
す 351 829 401 889 0
る 376 829 436 889 0
外 406 845 506 885 0
国 501 845 561 885 0
人 531 829 591 889 0
の 561 829 631 889 0
イ 596 829 666 889 0
ラ 651 847 684 882 0
ス 691 848 727 881 0
ト 744 847 767 884 0
~ 121 10 742 744 0
OCR_Japanease
インストール
git clone https://github.com/tanreinama/OCR_Japanease.git
cd OCR_Japanease
wget https://s3-ap-northeast-1.amazonaws.com/ailab.nama.ne.jp/models/ocr_jp-v2.zip
unzip ocr_jp-v2.zip
実行
python3 ocr_japanease.py --dpi 72 ../sample_image.png
(DPI=Dots per inch(1インチ当たりのドット数))
[Block #0]
日本語を勉強する外国人のイラスト
[Block #1]
PaddleOCR
インストール
pip3 install paddlepaddle-gpu # for gpu user please install paddlepaddle-gpu
pip3 install paddleocr
paddleocr --image_dir image.png --lang=japan
[2024/02/14 17:50:56] ppocr DEBUG: dt_boxes num : 5, elapsed : 0.49741458892822266
[2024/02/14 17:50:56] ppocr DEBUG: rec_res num : 5, elapsed : 0.1058814525604248
[2024/02/14 17:50:56] ppocr INFO: [[[82.0, 29.0], [761.0, 27.0], [761.0, 62.0], [82.0, 64.0]], ('日本語を勉強する外国人のイラス', 0.936710000038147)]
[2024/02/14 17:50:56] ppocr INFO: [[[192.0, 167.0], [301.0, 167.0], [301.0, 299.0], [192.0, 299.0]], ('お', 0.8548082709312439)]
[2024/02/14 17:50:56] ppocr INFO: [[[118.0, 538.0], [189.0, 530.0], [203.0, 655.0], [133.0, 663.0]], ('`し', 0.5000075101852417)]
[2024/02/14 17:50:56] ppocr INFO: [[[425.0, 686.0], [479.0, 695.0], [453.0, 860.0], [399.0, 852.0]], ('にほんご', 0.5786789059638977)]
easyOCR
インストール
pip install easyocr
実行
import easyocr
reader = easyocr.Reader(['ja']) # this needs to run only once to load the model into memory
result = reader.readtext('image.png')
[([[71, 17], [777, 17], [777, 77], [71, 77]],
'日本語を勉強する外国人のイラスト',
0.9960510366271759),
([[184, 164], [310, 164], [310, 306], [184, 306]], 'あ', 0.9665977627230546),
([[422.5634927616013, 674.0119175373044],
[484.42285144524953, 681.7692263219104],
[459.4365072383987, 872.9880824626956],
[397.57714855475047, 865.2307736780896]],
'@',
0.022590751778595042)]
どれがいいか個人的感想
easyOCRが使いやすいし、精度もそこそこ良かった気がします。
🐣
フリーランスエンジニアです。
AIについて色々記事を書いていますのでよかったらプロフィールを見てみてください。
もし以下のようなご要望をお持ちでしたらお気軽にご相談ください。
AIサービスを開発したい、ビジネスにAIを組み込んで効率化したい、AIを使ったスマホアプリを開発したい、
ARを使ったアプリケーションを作りたい、スマホアプリを作りたいけどどこに相談したらいいかわからない…
いずれも中間コストを省いたリーズナブルな価格でお請けできます。
お仕事のご相談はこちらまで
rockyshikoku@gmail.com
機械学習やAR技術を使ったアプリケーションを作っています。
機械学習/AR関連の情報を発信しています。