Help us understand the problem. What is going on with this article?

OpenCVで文字列認識するためのDockerイメージを作った

More than 3 years have passed since last update.

作ったもの

https://hub.docker.com/r/kaakaa/opencv-contrib-python3/

OpenCVで文字列認識

画像処理ライブラリのOpenCVで文字列認識をする場合、OpenCV ContoribItseez/opencv_contribのtextモジュールを通じてtesseract-ocrを利用するのが定番のようです。
opencvで文字認識その1 Tesseractラッパ - whoopsidaisies's diary

OpenCVの機能で画像中の文字列の存在する位置を特定し、その特定したそれぞれの位置に対してTesseract-ocrの文字列認識を実行する模様。

日本語を認識する場合、Tesseractで用意されている日本語トレーニングデータが使えそうです(まだ使ったことは無い)。
tesseract-ocr の言語データ(jpn.traineddata)について(その1) - 古都のIT職人Blog

日本語文字列認識ならNHocrというのもあるらしい。
日本語OCRライブラリNHocrを利用してみる - Qiita

OpenCV Contrib付きDockerイメージ

OpenCV自体は公式でプリビルドバイナリが配布されていたりするので、環境構築自体はすぐにできる。

ただ、Contribのモジュールを使用する場合、公式ではバイナリが配布されておらず、さらに文字列認識を利用する場合はTesseractをインストールする必要があったりするので、自分でソースからビルドする必要がありそう。

そこら辺の手順が面倒なので、OpenCV + OpenCV Contrib + Tesseract + Python3環境付きのDockerイメージを作りました。

https://hub.docker.com/r/kaakaa/opencv-contrib-python3/
kaakaa/docker-opencv-contrib-python3: Dockerfile for OpenCV, OpenCV contrib and Python 3.5

元々、こちらのDockerイメージaustriker/docker-opencv-contrib-python3を使おうとしましたが、Tesseractが入ってなかったので、そのあたりを修正しました。

試しに実行

docker-opencv-contrib-python3/compose-sample at master · kaakaa/docker-opencv-contrib-python3の方に、文字列認識用のWebアプリが立ち上がるdocker-composeを用意しました。
(Webアプリとしても文字列認識としても、まだまだ使い物レベルにはならないですが)

実際に実行してみた結果が下記画面。

sample.png

下の画像のピンクで囲まれた部分が、OpenCVによって特定された文字列位置なのですが、画像全体として認識されてしまっているよう。
一行一行認識してほしいのですが。

そこらへんはいろいろチューニングしていく必要がありそうです。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away