日本語OCRの使い方まとめ

# tesseract-ocr

https://github.com/madmaze/pytesseract

### インストール

```shell
sudo apt-get -y install tesseract-ocr tesseract-ocr-jpn
pip install pytesseract
```

リポジトリのリンクから日本語データの学習ファイルをダウンロードして

https://github.com/tesseract-ocr/tessdata/blob/main/jpn.traineddata


```python
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)
```
![スクリーンショット 2024-02-15 2.14.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/3a85fdd8-36e2-2e4f-8bc4-cc7249c6f056.png)

>日本語を勉強する外国人のイラスト

>日 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

https://github.com/tanreinama/OCR_Japanease?tab=readme-ov-file

### インストール

```shell
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
```

### 実行

```shell
python3 ocr_japanease.py --dpi 72 ../sample_image.png
```

（DPI=Dots per inch（1インチ当たりのドット数））

>[Block #0]
日本語を勉強する外国人のイラスト
[Block #1]

# PaddleOCR

https://github.com/PaddlePaddle/PaddleOCR

### インストール

```shell
pip3 install paddlepaddle-gpu # for gpu user please install paddlepaddle-gpu
pip3 install paddleocr
```

```shell
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

https://github.com/JaidedAI/EasyOCR

```shell
```

### インストール

```shell
pip install easyocr
```

### 実行

```python
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関連の情報を発信しています。

[X](https://twitter.com/JackdeS11)
[Medium](https://medium.com/@rockyshikoku)
[GitHub](https://github.com/john-rocky)