はじめてTesseractを触ってみた
最近、OCRが私たちの生活にますます身近な存在になってきたと感じています。
iOSにもOCR機能が標準搭載されており、iPhoneに保存した画像から簡単に文字を検出できるようになりました。
こんな便利な技術が身近に使えるようになった今、OCRの仕組みや活用方法に興味を持つ方も多いのではないでしょうか。
今回は、OCRライブラリの一つであるTesseractを使って画像から文字を読み取る方法を試してみたので
その内容を記事にまとめてみました。
目次
はじめに
こんにちは。クラウドソリューション第二グループの namiki.m です。
以前からOCRに興味があったので
まずは手軽に試せるツールとして、Googleが開発したオープンソースのOCRエンジン「Tesseract」を触ってみました。
特に難しい設定もなくサクッと利用できたので
今回はとりあえず触ってみた内容についてシンプルにご紹介します。
OCRとは
OCR(Optical Character Recognition)とは、画像やスキャンした文書に含まれる文字を視覚的に解析し、デジタルテキストに変換する技術です。
手書きのメモや印刷された文書などをコンピューターが読み取り、データ化することで文字情報を活用しやすくします。
Tesseractとは
Tesseractは、Googleがオープンソースとして提供するOCRエンジンです。
日本語を含む100以上の言語に対応しています。
また、追加学習機能を備えており
ユーザー独自のデータを基にモデルを精度向上できることが特徴です。
事前準備
・ Tesseractをインストール
インストール手順は以下の記事を参考にさせていただきました。
ありがとうございました。
http://kakedashi-xx.com:25214/index.php/2022/05/10/post-5149/#toc2
・インストールができたか確認
Tesseractをインストールしたら以下のコマンドを叩き、
Versionの応答があればインストールが完了していることが確認できます。
$ tesseract --version
これで準備は完了です。
試したこと
Tesseractを使用できる状態になったので、2枚のサンプル画像を読み込ませてみました。
・1枚目: 英字が書かれた画像
DALL-Eに作ってもらった以下のサンプル画像をTesseractに読んでもらいました。
画像を読み込むコマンドは以下の通りです。
$ tesseract [読み込む画像のパス] [アウトプット出力先のパス]
■ input画像
■ 結果
結果は以下の添付図の通り、文字はほぼ正しく認識されました。
Tesseractは英語には強い印象です。
一部の文字が正しく認識されてなさそうですが、これはサンプル画像の文字自体が歪んでいたりするので許容範囲内です。
・2枚目: 日本語が書かれた画像
2枚目は頂き物のビンのラベルを撮った画像を使い、日本語の精度は如何ほどなのか試してみました。
■ input画像
■ 結果
結果は、Tesseractが英語として認識しようと頑張ったせいか、
画像内とは異なった文字列が出力されました。
ここで、日本語を正しく読み取るために言語オプションを指定する必要があることに気づきました。
認識が悪かったので、言語指定をして再度コマンドを以下のように修正して実行してみました。
$ tesseract [読み込む画像のパス] [アウトプット出力先のパス] -l jpn
■ 言語指定の結果
今度は日本語として認識してくれました。
文字の配置やフォントの関係で多少の誤認識はありましたが、
言語指定なしの状態と比較すると非常に良く読み取ることができています。
まとめ
今回は、Tesseractを使って英字と日本語の画像から文字を読み取ってみました。
手軽に試せるライブラリでありながら、英語の認識は非常にスムーズで、日本語のテキストも言語オプションを指定することで一定の結果が得られることが分かりました。
OCRを試した背景には、個人的に興味がある郷土史の調査という目的があります。
ネットに掲載されている石碑や古文書の画像から文字を読み取り、現地に行かずとも資料を収集できたらいいなと思い、今回はTesseractを試してみました。
もちろん、すでに風化した石碑や古文書の文字認識サービスは存在しますが、自分でTesseractを使って挑戦してみることで、新たなスキルや知見を得られる楽しさがあると思っています。
Tesseractには追加学習用のデータも用意されているため、それらを活用しながら認識精度を向上させ、やりたいことの実現可能性を探っていきたいと思います。
興味を持たれた方は、ぜひ触ってみてください。