deep

リンク集

https://github.com/whitelok/image-text-localization-recognition

https://github.com/chongyangtao/Awesome-Scene-Text-Recognition

https://github.com/handong1587/handong1587.github.io/blob/master/_posts/deep_learning/2015-10-09-ocr.md

OCR・文字認識の論文とかのまとめ

様々なRNNの実装へのリンク集

deepspeech.pytorch

ctcdecode

warp-ctc/pytorch_binding

KenLMKenLM for developers

Synthetic Data for Text Localisation in Natural Images (通称FCRN)

github

論文

動画

TextBoxes: A Fast Text Detector with a Single Deep Neural Network

github(Caffe)

論文

論文(AAAI2017)

TextBoxes++: A Single-Shot Oriented Scene Text Detector

公式github Torch7

論文(2018v1)

$ sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb
$ sudo apt-get update
$ sudo apt-get install cuda
$ sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-cublas-performance-update_8.0.61-1_amd64.deb
$ sudo apt-get update
$ ssudo apt-get install cuda

$ tar xzf cudnn-8.0-linux-x64-v5.1.tgz
$ sudo cp cuda/include/cudnn.h /usr/local/cuda/include
$ sudo cp cuda/lib64/* /usr/local/cuda/lib64/

$ git clone https://github.com/MhLiao/TextBoxes_plusplus.git
$ cp Makefile.config.sample Makefile.config

Makefile.configを修正

$ make -j8

Synthetic Data and Artificial Neural Networks for Natural Scene Text Recognition

論文 "Synthetic Data and Artificial Neural Networks for Natural Scene Text Recognition"(NIPS2014) スライド

論文 "Reading Text in the Wild with Convolutional Neural Networks"(IJCV2016)

github(Keras/Theano)

An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition (通称CRNN)

論文

github(Torch7 + fblualib + LMDB)

crnn.pytorch

github

Anacondaをinstall

Anaconda を参考にAnaconda を install

$ bash Anaconda3-4.4.0-Linux-x86_64.sh
$ conda create -n pytorch python=3.6 anaconda
$ source activate pytorch
$ conda install -c https://conda.anaconda.org/menpo opencv3

cuDNN 6.0 + CUDA 8.0 の環境を用意すべき(現状は cuDNN 5.1 ⇒ 3/22, 6.0 にupdate)

Torch7をinstall

$ get clone https://github.com/torch/distro.git ~/torch --recursive
$ cd ~/torch
$ bash install-deps
$ ./install.sh

pyTorchをinstall

$ conda install pytorch torchvision -c pytorch
$ conda list | grep pytorch

でバージョンを確認

もし、0.1系列だったら、update (ここが参考になる)

$ conda config --add channels soumith
$ conda update pytorch torchvision

で、$HOME/anadonda3/lib/python3.6/site-packages/torch にinstallされる

crnn.pytorchの前に、warp-ctcをinstall

ここを参考に、

$ git clone https://github.com/SeanNaren/warp-ctc.git
$ cd warp-ctc
$ export CUDA_HOME=/usr/local/cuda
$ mkdir build
$ cd build
$ cmake ..
$ make

$ cd ../pytorch_binding
$ python setup.py install

crnn.pytorch のダウンロード

$ git clone https://github.com/meijieru/crnn.pytorch.git

学習済み重みのダウンロード

ここからcrnn.pthをダウンロードし、./data/に置く

デモの実行

$ python demo.py

学習方法は、まずデータをダウンロード

$ wget -O ~/Downloads/mjsynth.tar.gz  http://www.robots.ox.ac.uk/~vgg/data/text/mjsynth.tar.gz
$ pushd ~/Downloads
$ tar xf mjsynth.tar.gz -C mjsynth

lmdbのデータを作成

$ http://www.cs.gunma-u.ac.jp/~nagai/wiki/index-write.php?plugin=attach&pcmd=open&file=create_cls10.sh&refer=OCR%A5%BD%A5%D5%A5%C8
$ ./create_cls10.sh
$ wget http://www.cs.gunma-u.ac.jp/~nagai/wiki/index-write.php?plugin=attach&pcmd=open&file=write.py&refer=OCR%A5%BD%A5%D5%A5%C8
$ python write.py

失敗したら、変数dirなどを修正して再挑戦

dataset.py と crnn_main.py を修正

$ wget http://www.cs.gunma-u.ac.jp/~nagai/wiki/index-write.php?plugin=attach&pcmd=open&file=dataset.py&refer=OCR%A5%BD%A5%D5%A5%C8
$ wget http://www.cs.gunma-u.ac.jp/~nagai/wiki/index-write.php?plugin=attach&pcmd=open&file=crnn_main.py&refer=OCR%A5%BD%A5%D5%A5%C8

いよいよ crnn_main.pyを実行

$ rm -rf expr01
$ python crnn_main.py --trainroot=DBtrain --valroot=DBval --experiment=expr01 --random_sample --displayInterval=10 --valInterval=10 --saveInterval=10 --niter=1000 --batchSize=64 -lr=0.001 --cuda

fine tuning するなら、更に --crnn=./data/crnn.pth を追加し、--lr=0.00005 のように小さくすべき

中国語認識版

chinese-ocr (github) ← keras/pytorch

Anacondaをinstall

Anaconda を参考にAnaconda を install

$ bash Anaconda3-4.4.0-Linux-x86_64.sh
$ conda create -n chinese-ocr-py36 python=3.6 anaconda
$ source activate chinese-ocr-py36
$ conda install -c https://conda.anaconda.org/menpo opencv3

cuDNN 6.0 + CUDA 8.0 の環境を用意すべき(現状は cuDNN 5.1 ⇒ 3/22, 6.0 にupdate)

pyTorchをinstall

$ conda install pytorch torchvision -c pytorch
$ conda list | grep pytorch

でバージョンを確認

version 0.1系列を想定しているようだが、version 0.2 がインストールされる

次に、warp-ctcをinstall

ここを参考に、

$ git clone https://github.com/SeanNaren/warp-ctc.git
$ cd warp-ctc
$ export CUDA_HOME=/usr/local/cuda
$ mkdir build
$ cd build
$ cmake ..
$ make

$ cd ../pytorch_binding
$ python setup.py install

chinese-ocrをインストール

$ git clone -b chinese-ocr-python-3.6 https://github.com/chineseocr/chinese-ocr.git
$ cd chinese-ocr
$ pip install easydict -i https://pypi.tuna.tsinghua.edu.cn/simple/
$ pip install keras==2.0.8  -i https://pypi.tuna.tsinghua.edu.cn/simple/  
$ pip install Cython opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
$ pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
$ pip install -U pillow -i https://pypi.tuna.tsinghua.edu.cn/simple/
$ pip install  h5py lmdb mahotas -i https://pypi.tuna.tsinghua.edu.cn/simple/
$ conda install tensorflow=1.3 tensorflow-gpu=1.3
$ cd ./ctpn/lib/utils
$ sh make.sh

pyTorchで実行

$ cd pytorch-train

crnn_main.py, dataset.py, utils.py を差し替える

$ mv crnn_main.py crnn_main.py.orig
$ wget http://www.cs.gunma-u.ac.jp/~nagai/wiki/index-write.php?plugin=attach&pcmd=open&file=crnn_main-py36.py&refer=OCR%A5%BD%A5%D5%A5%C8
$ mv crnn_main-py36.py crnn_main.py
$ mv dataset.py dataset.py.orig
$ wget http://www.cs.gunma-u.ac.jp/~nagai/wiki/index-write.php?plugin=attach&pcmd=open&file=dataset-py36.py&refer=OCR%A5%BD%A5%D5%A5%C8
$ mv dataset-py36.py dataset.py
$ mv utils.py utils.py.orig
$ wget http://www.cs.gunma-u.ac.jp/~nagai/wiki/index-write.php?plugin=attach&pcmd=open&file=utils-py36.py&refer=OCR%A5%BD%A5%D5%A5%C8
$ mv utils-py36.py utils.py
$ python crnn_main.py --cuda --random_sample --adadelta

結局、GTX980 (8GBメモリ)ではメモリ不足のため、実行できず。

GOMP_4.0 not found と出てきたら、anaconda環境のものを消す

$ find ~/anaconda3/envs/chinese-ocr-py36 -name "libgomp.*" -exec rm '{}' \;

※おそらく、chinese-ocr-python3.6 ブランチはいろいろ不完全。そのうちupdateされるかも

kerasで実行

$ cd keras-train
$ python trainbatch.py

で実行できるはず

Detecting Text in Natural Image with Connectionist Text Proposal Network (通称 CTPN)

論文

github ← Caffe + python2.7

中国語認識版

text-detection-ctpn(github) ← TensorFlow

ctcdecode

$ git clone --recursive https://github.com/parlance/ctcdecode.git
$ cd ctcdecode
$ pip install .
$ python setup.py install
$ conda install libgcc
$ cd tests
$ python test.py

free soft

Online OCR

Google Docs、Google Drive ← http://digibibo.com/blog-entry-3343.html

商用ソフトの比較レポ

3種類の日本語OCRソフトを比較

↑結論は、状態の良い原稿ならe.Typist。状態の悪い原稿や新聞、英語交じり、2段組など複雑なレイアウトなら読取革命。Acrobatは縦書きがダメ。

縦書きも認識、日本語テキストの抽出に適したウェブサービス3選 ← ここによればやはりGoogle Doc か

各種OCRソフトを比較 ← ここに依ればベストはABBYY

研究

Max Jaderberg のOCR ← 現在ダウンロードできるのはECCV2014版とNIPS2014版。共にMatlab/MatConvNetを使用。MEXの設定も必要

Coursera Machine Learning (11): 写真の光学文字認識 (Photo OCR)

参考になるかもしれない実装

http://programtalk.com/vs2/?source=python/14209/DeepLearning-OCR/online/ocr.py

https://github.com/pannous/caffe-ocr

TODO

Pythonで日本語OCRを行うときのメモ

tesstrain.sh で Tesseract-OCR の言語データをカスタマイズする

Tesseract-OCT 3.04を試してみる

Ubuntu 14.04 LTS でOCR

結論

画像ファイルからのOCRなら Google Docs か。

対話的に行いたいならCapture2Textが手軽。

PDFやWordのファイルなら xdoc2txtも。

1行だけなら、NHocrの真ん中もかなり使える。

xdoc2txt

http://ebstudio.info/home/xdoc2txt.html

画像ファイルには対応していない。

Windowsでfamiliar な文書フォーマットならいい選択肢かも。

OCRというよりもテキスト抽出ツールというべきか。

CUIで操作。

GT Text

http://www.softocr.com/

活字と背景の境がシャープだと Google Docs には及ばないが、まあまあ。

境がシャープでないと殆ど使いものにならない。

e.Typist ダウンロード(windows)

http://www.vector.co.jp/soft/winnt/hardware/se377897.html

使ってみたいが先払い制の有料ソフト

ABBYY FineReader 12 (windows)

http://www.vector.co.jp/soft/winnt/hardware/se505907.html

フリーで使えるのは30日間のみ。

結果はイマイチ。

元は活字なのにどうしてそう解釈するか、という印象。

活字と背景の境がシャープでないと精度が落ちる。

こんなソフトに金を出す気にはなれない。

NHocr:日本語文字認識プログラム

NHocr (webサービス)

http://maggie.ocrgrid.org/nhocr/index-j.html

真ん中の「日本語文字行認識」が使い物になる。

上は全然ダメ。

下は縦横の大きさが一致する正方形の場合のみ。結果は第5候補まで表示。

Capture2Text (windows)

https://sourceforge.net/projects/capture2text/

画面上を範囲選択し、その範囲の翻訳ができる。

ショートカットを覚えれば手軽に使える。

認識できないときは範囲を狭めるなどの対処が容易。

完全自動化には遠いか。

認識性能は ABBYY FineReader と同程度か。

Renee PDF Aide

http://freesoft-100.com/review/renee-pdf-aide.html

これはハッキリ劣る

メディアドライブ

http://mediadrive.jp/products/index.html

多数の商用ソフトを取り扱っている(手書き/活字)

Google ドキュメント

新しいGoogleドライブで画像やPDFをOCRにかける方法

帳票OCR Ver.8

http://news.panasonic.com/jp/topics/148335.html

http://www.panasonic.com/jp/business/its/ocr_form.html

その他

OpenOCR

TensorFlow-OCR

Caffe-OCR ← tensorflow-cor の母体

https://github.com/PythonWorkshop/intro-to-tensorflow/blob/master/OCR/OCR_With_TensorFlow.ipynb

直接関係ないが、文字列を画像化するソフト

txt2jpg

http://blogs.yahoo.co.jp/psp_mint/1372625.html

LettersImage

http://ooyama.jp/soft/doc/LettersImage/index.html


添付ファイル: fileutils-py36.py 4件 [詳細] filedataset-py36.py 4件 [詳細] filecrnn_main-py36.py 3件 [詳細] filecrnn_main.py 15件 [詳細] filewrite.py 12件 [詳細] filedataset.py 14件 [詳細] filecreate_cls10.sh 8件 [詳細]

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-04-17 (火) 00:51:53 (9d)