Tesseract OCRのUbuntuでのインストール手順

オープンソースOCRライブラリのTesseract OCRをUbuntu 11.10に入れる手順です.

最近ネタが無いのでずっと昔のメモを掘り起こして記事にしてみたw

インストール手順

http://code.google.com/p/tesseract-ocr/downloads/listから最新版(tesseract-3.01.tar.gz)をダウンロードしてから,

% sudo apt-get install m4 autoconf libtool libleptonica
% tar xf tesseract-3.01.tar.gz 
% cd tesseract-3.01
% ./autogen.sh
% ./configure
% make
% sudo make install
% tesseract --version
tesseract 3.01

他のLinuxディストロの場合も最初のapt-getの行を適切に置き換えるだけでよいと思います.

make時にエラーが出たら,viewer/svutil.cppの頭に

#include <unistd.h>

を追加してmakeしなおすといけます.

Tesseract OCRについて

Tesseract OCRについては@takminさんの資料
Tesseract OCRに触ってみた (2011/07/19 JapanCV発表資料)- takminの書きっぱなし備忘録
がおすすめです.

JapanCVは昨年2011年に開催されてて僕も行きましたが最高のイベントでした.
さかな前線 » 全日本CV勉強会に参加しました.ついでに少ししゃべりました.
という宣伝(を

標準入力の数値列から統計量(総和とか平均とか分散とか)を計算するコマンドaccを作った

問:カレントディレクトリより下の階層にある全ての.cppファイルの平均サイズをバイト単位で求めよ

解答例(こういうのあまり得意ではないのでヘンかもしれませんw許してくださいw):

% du -ab | grep "\.cpp\$" | grep -o "^[0-9]\+" | acc --mean -f "%.0f"

研究の仮のデータ集計とかにこういうUNIXライクな小さいプログラム,欲しかったけどありそうでなかったので書きました.
accコマンドと名付け,githubに公開しています.

https://github.com/sakanazensen/acc_command

入力は数値がずらずらとstdinにやってくればOK.double型の範囲を超えないように.
現時点では,総和,最小値,最大値,平均値,分散,中央値の出力ができるようになっています.
中ではboost::accumulatorに計算を丸なげしてるだけです.
よって,boost::accumulatorにない項目(最瀕値や標準偏差)には当面対応できません.
計算量等の問題についてはboost::accumulatorのマニュアルを参照してください.

当然無保証です.MITライセンスとします.
本記事コメントで対応はする考えはあります.pull requestがあれば反応するかもしれません.

実装に対するツッコミもあったら嬉しいかも.
あまり自分のコードを人に見せたことがなくてよくない.

OpenCV+IPP

Linux版OpenCVを,30日限定評価版のIPP付きでビルドする手順.
IPPとはマルチメディア処理ライブラリIntel Performance Primitivesのことで,intel製CPUを使ったマシンにおいてタスクによって2倍から10倍の性能向上があるとのこと.
事例をぐぐったかんじ,それほど誇張のある数字でもなさそう.

IPPのダウンロードとインストール
  1. http://software.intel.com/en-us/articles/intel-ipp/からダウンロード

    1. 登録が必要になります
    2. ライセンスファイルを添付したメールが届きます
    3. 僕はx86なので現在最新のl_ipp_7.0.7.319_ia32.tgzを落としました
  2. IPPのインストール

    1. 落としたアーカイブを展開
    2. % sudo ./install.sh
    3. あとは質問に答えるだけ

      1. ライセンスファイルのフルパスを入力するところがあります
      2. 正式サポート対象外のディストロの場合(Ubuntu等)では警告されますが無視で
OpenCVのインストール
  1. http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/からダウンロード
  2. 展開
  3. 展開した中に”release”ディレクトリを作成
  4. そこにcd
  5. % cmake -D WITH_IPP=ON -D IPP_H_PATH=/opt/intel/ipp/include -D BUILD_SHARED_LIBS=OFF ..

    1. IPP関連のオプションだけつけた例です

      1. 最後のオプションがないとリンクエラーでます(´・ω・`)
      2. http://stackoverflow.com/questions/10508926/opencv-fails-to-build-with-ipp-support-enabled
    2. 必要に応じて他のオプションもつけて
  6. % make -s -j8
  7. % sudo make install

ついでに,OpenCVビルドのときのオプション全体
% cmake -D WITH_TBB=ON -D WITH_IPP=ON -D IPP_H_PATH=/opt/intel/ipp/include -D BUILD_SHARED_LIBS=OFF -D WITH_FFMPEG=OFF ..

  • TBB使います(objdetectとかimageprocモジュールの中とかで使ってるみたい)
  • FFMPEGがあるとなんかエラーでるので><
  • OpenMPはもはや使われない,んだそうですね.haartrainingの中ではふつーに使ってるんですが
IPPのライセンスの話

IPPを展開した場所にあるlicenseファイルとかNon-Commercial Software Download – Intel® Software Networkにあるとおり,非商用利用においては無料でライセンスを提供して頂けるそうです.
(ライセンスは変更される場合があります.自分で利用される際に再確認をお願いいたします)

cuda-gdbがlibpythonのエラーで起動できなかったら

CUDA4.1に付属のcuda-gdbはlibpython2.6が必要なんだそうです。
ぼくはpython3.xネイティブなので2.xは使えませんとかそういうのはおいといて、身近なディストロの最新はだいたい2.x系としては2.7しか用意してないぽい。

% cuda-gdb
cuda-gdb: error while loading shared libraries: libpython2.6.so.1.0: cannot open shared object file: No such file or directory

自分でlibpython2.6を入手して手元でビルドしてもいいんですがそんなねぇ。

ごまかしちゃえばいいみたいです。

% sudo ln -s /usr/lib/libpython2.7.so.1.0 /usr/lib/libpython2.6.so.1.0
% sudo ln -s /usr/lib64/libpython2.7.so.1.0 /usr/lib64/libpython2.6.so.1.0

ちょ。
YOUこんなことしていいのかYO!

% cuda-gdb
NVIDIA (R) CUDA Debugger
4.1 release
Portions Copyright (C) 2007-2012 NVIDIA Corporation
GNU gdb (GDB) 7.2
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
(cuda-gdb)

        ∧∧
       ヽ(・ω・)/   ズコー
      \(.\ ノ
    、ハ,,、  ̄
     ̄

ちょっと使った範囲だと問題なく動いてはいます。

LinuxでのeclipseのPleiadesによる日本語化のメモ

設定としては全く難しいこともめんどくさいこともないけど,いっつもやり方わすれてあれれってった末にどうせ英語でも困らないからいいやって放置しちゃってるので,この際メモ.

Windows/Mac版eclipseでも手動で日本語化する手順はいっしょなんじゃないかな?未確認ですが.
これからeclipse導入するというWindowsの人であればpleiadesサイトにある日本語化済みのを落としてくればいいと思います.

まずPleiadesを落としてきます.
http://mergedoc.sourceforge.jp/#pleiades.html
ここの最新版とか安定板の方を.All in Oneは違います.

で,これをeclipseのルートに展開します.
つまり,展開して出てくるpluginsとかfeaturesディレクトリで,eclipseルートにあるplugins,featuresを上書きしちゃうような位置で.

んで,eclipse.iniに

 -javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

を追記.

これでおk

sshのXForwardingでGLUTなプログラムが実行できない場合の設定

どうも,昨日で22歳になりました.もはやアラサーですよアラサー.

sshのXForwardingでGUIなプログラムをリモート実行できますね.すごく便利です.
そのやり方については他を参照のこと.リモートのsshd_configのX11Fowardingをyesにしてssh -Xで入るだけです.

で,ふつうのXプログラムはできるのにGLUTなプログラムができなくて困ってました.
症状としてはこんなかんじ

% aglutprog.out
freeglut (aglutprog.out):  ERROR:  Internal error <FBConfig with necessary capabilities not found> in function fgOpenWindow
X Error of failed request:  BadWindow (invalid Window parameter)
  Major opcode of failed request:  4 (X_DestroyWindow)
  Resource id in failed request:  0x0
  Serial number of failed request:  27
  Current serial number in output stream:  30

解決策は

% export LIBGL_ALWAYS_INDIRECT=1

環境変数設定が必要だったんですね.非リモート時の場合には影響ないので,zshrcにでも書いちゃいましょう.

なお,手元の環境はDebian GNU/Linux 6.0.3です.

Debian SqueezeでFlash PlayerとかAdobe Readerみたいな非フリーなパッケージを入れる

debianは完全にフリーなOSを目指してる関係でプロプライエタリなパッケージは標準では提供されないです。
(ubuntuはmp3系とかみたいにそういうのもガンガン最初っから入れられますね)

apt-lineをちょっといじくる(/etc/apt/sources.listを編集する)と、準標準?とでも言うんでしょうか、そういうパッケージを入れられます。

diffをとるとこんな感じ。行末にcontribを追加しただけですね。

% diff sources.list sources.list.bak
7,8c7,8
 < deb http://ftp.jp.debian.org/debian/ squeeze main contrib
 < deb-src http://ftp.jp.debian.org/debian/ squeeze main contrib  ---  > deb http://ftp.jp.debian.org/debian/ squeeze main
 > deb-src http://ftp.jp.debian.org/debian/ squeeze main

で、更新。Flash Playerを入れてしまいましょう。

% sudo apt-get update
% sudo apt-cache search flashplugin
flashplugin-nonfree-extrasound - Adobe Flash Player platform support library for Esound and OSS
flashplugin-nonfree - Adobe Flash Player - browser plugin
% sudo apt-get install flashplugin-nonfree flashplugin-nonfree-extrasound

これでfirefoxならfirefoxを再起動すればようつべが見られます。ワーイ

Adobe Readerとか入れたいなら、こっちは上のみたいに準標準?的なんじゃないと思いますが、apt-lineに

deb http://www.debian-multimedia.org squeeze main non-free
deb-src http://www.debian-multimedia.org squeeze main

を追記して、

% sudo apt-get install debian-multimedia-keyring  #これしないと次ので公開鍵がだめぽって怒られます
% sudo apt-get update
% sudo apt-cache search acroread
acroread-debian-files - Debian specific parts of Adobe Acrobat Reader
acroread-fonts-jpn - Japanese fonts for Adobe acrobat reader
acroread - Adobe Acrobat Reader: Portable Document Format file viewer
acroread-data - data files for acroread
acroread-dictionary-en - English dictionary for for acroread
acroread-escript - Adobe EScript Plug-In
acroread-l10n-en - English language package for acroread
acroread-plugin-speech - This plugin enable the Read Out Loud feature in acroread
acroread-plugins - Plugins for Adobe Acrobat(R) Reader
mozilla-acroread - Adobe Acrobat(R) Reader plugin for mozilla / konqueror
% sudo apt-get install acroread

わっふるわっふる
この辺が参考になります>D: lenny/Package – Debian GNU/Linux スレッドテンプレ

2011/11/30 追記
acroreadはこれで入れると日本語フォント関係で不具合があって直すのが面倒なので,adobeの配布している*.debからdpkgしたほうがいいようです.

Debian Squeezeでフォントをうつくしく

どーも、ラボPCが起動しなくなって頑張って復旧するのもいいけどこの際ubuntuからsqueezeにしちゃえってなったおさかなさんです。

で、フォント、というよりは描画があんまし好きくない、つか汚かったんでググったら、
メモ:Debian squeezeでフォントの表示を綺麗にする: 日々想うこと
こちらを参考にして

% sudo ln -s /etc/fonts/conf.avail/10-unhinted.conf /etc/fonts/conf.d/

スクショ撮ってればどんぐらい見違えたかわかりやすかったんですが。
えっ、unhintedなの?それでいいの?とか半信半疑だったんで撮ってなかった。
なんかフォントきしゃないお>< って方はお試しあれ。

ついでにフォントはTakao系かIPA系にしとくといいと思いますよっと

rvmなgemでzlibなエラー

なぐり書き.

gemでzlibのLoadErrorが出るよ>< 困ったよ!><
っていう現象はわりとよくあるらしい.僕も引っかかった.

% gem update
ERROR:  Loading command: update (LoadError)
    no such file to load -- zlib
ERROR:  While executing gem ... (NameError)
    uninitialized constant Gem::Commands::UpdateCommand

んで,探して出てくるのはだいたい,ディストロ標準zlibパッケージ入れて,rubyをmakeしてmake installして

んと,rubyの環境はやっぱりrvmで構築したい派なので,これじゃ解決策になりません.

rvmでrubyを入れる直前に,

% rvm pkg install zlib
% rvm install 1.9.3

これでおk.
rvm installは既存のバージョンであれば再インストールになるので,すでに入ってる人も上の作業でおっけーです.