2015年7月10日金曜日

写真中の文字を識別するオープンソースNHOCRの使い方

NHocr: OCR engine for Japanese language



上記アドレスから、下記をダウンロードする

nhocr-0.22/READMEの説明通り、
$./configure
$make
g++ -I../libnhocr -I../include -O3 --unroll-loops   -o makedic makedic.o -L../libnhocr -L../O2-tools/lib -lm -lnhocr -lufp -lsip
make[1]: ディレクトリ `/home/jeff/nhocr-0.22/makedic' から出ます
make[1]: ディレクトリ `/home/jeff/nhocr-0.22' に入ります
make[1]: `all-am' に対して行うべき事はありません.
make[1]: ディレクトリ `/home/jeff/nhocr-0.22' から出ます

# ls -l nhocr/
-rwxr-xr-x. 1 root root 261083  7月  9 23:51 2015 nhocr
上記が生成すればOK

事前に準備したjpgファイルをpgm形式に変換する。
# convert receipt.jpg receipt.pgm

下記のように、コマンドを実行すれば、写真の中の文字を識別できる。
# NHOCR_DICDIR=dic nhocr/nhocr -block -o output.txt receipt.pgm


--
参考情報

※make時に下記のようなエラーが発生した場合、
--------------------------------------------
makechar.cpp:18:22: error: ft2build.h: そのようなファイルやディレクトリはあり ません
makechar.cpp:19:10: error: #include は "ファイル名" あるいは <ファイル名> を必要とします
makechar.cpp:85: error: variable or field 'draw_bitmap' declared void
makechar.cpp:85: error: 'FT_Bitmap' was not declared in this scope
makechar.cpp:85: error: 'bitmap' was not declared in this scope
makechar.cpp:85: error: 'FT_Int' was not declared in this scope
makechar.cpp:85: error: 'FT_Int' was not declared in this scope
make[1]: *** [makechar.o] エラー 1
-------------------------------------------------
対象方法として、以下を実施する。

ln -s /usr/local/include/freetype2/freetype /usr/include/freetype

/usr/local/include/freetype2/freetypeフォルダがない場合、
#yum -y install freetype freetype-devel
を実行してから、「ln -s 」のリンクコマンドを実施する。


(1)写真(レシート)




(2)識別した文字(あんまり識別度が低いようです)

/
>ト
j
イオンM店
TEl Ti-q-8000 FAX.-q-8787
http://wu. aeon. info/
2 X 2g8
イオ.瓶茸牡
TV莱焼き7‐モン ド 5gB
TVll'7+
2X 2g
Tvお莱 缶
3X gg
gg
5B
マルキヨ製菓 生菓千 2g7
口ール巻ポリ蟻
B8
B Pティ ッシユぺーパー j78
. ̄許~‐_‐一一‐‐‐‐‐‐‐‐‐‐‐‐ーー‐.‐
WrWi支払
お 釣
\T.2gB
\l.2g8
おエ上げ商品撒: vo
\0
{消費税等)
BT
レう゛T02 20js/ol〃5(火曜日ij7:og
取瑚Tifl 担当ij■■ 藁子
T.‐‐.一‐‐.‐-.…‐‐‐‐.リu‐.一ー‐‐
=**********#*f['8
WiWi支払輯:
WrWi残輯 =
\T.2gB
判j7
(内ポイン ト封韓金輯 \T.2gB )
今回ポイント:
f2 P
【内ポイン ト2倍封寓 j2 P 〕
累計ポィント:
j42 p
..............................

2015年6月30日火曜日

選択対象以外の顔を一気にぼかすアプリ

今日はドローン無人機を使った住宅向けの撮影をネット上に公開するのを明確に禁止する法律が出た。

googleのストリートビューだとから撮影した顔をぼかして、使ったりしてる。

そのため、これからLINEやfacebookを使って投稿する写真も規制されるようになると予想。

撮影した自分、あるいは関連する人以外をぼかして、投稿する必要になると思う。

選択した顔以外のすべての顔を自動的にぼかす携帯アプリは流行ると考える。

2015年6月28日日曜日

2015年6月21日日曜日

www.nextroid.com の 世界アクセスランキング 2015/6/21




2015/6/21、www.nextroid.com の 世界アクセスランキングは以下です。

  Global rank icon 9,453,969 

http://www.alexa.com/siteinfo/www.nextroid.com

ちなみに、今ランキング1位は、

www.google.com

です。

http://www.alexa.com/siteinfo/www.google.com

CountryPercent of VisitorsRank in Country
United States Flag  United States32.9%1
India Flag  India9.5%2
Japan Flag  Japan3.1%6
Brazil Flag  Brazil2.9%3
Russia Flag  Russia2.7%6

そのなか、アクセスしたサブドメインは、それぞれ以下の割合です。

SubdomainPercent of Visitorsgoogle.com70.60%mail.google.com54.61%accounts.google.com23.64%docs.google.com12.42%plus.google.com9.45%

















2015年5月19日火曜日

iijmio SIMカード購入キャンペーン



5月31日まで、このリンクからiijmioに加入すれ、600円相当のデータ量がもらえます。まあ、iijmioのsimカードもともと高くないけど、ちょっぴりデータ量多めに貰えると嬉しいッチャ嬉しいですね。
アドレスは以下です。

https://www.iijmio.jp/campaign/mgm/invite/?id=454001718470400&sns=0

2015年5月17日日曜日

mysqlでlatin1文字コードのDBからutf8のDBへ移行


●問題概要:
 使用中(中身あり)のDB文字コードはlatin1で、UTF8文字コードのDBに移行したい。

●問題詳細:
 Mysqlのデータベースをデフォルトのままで使用してきたため、文字コードは以下のようになっていた。この状態(サーバとクライアントの文字コード不一致)でも問題なく、日本語を入力・検索などできていた。
mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1   ←ここ                  |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1    ←ここ                  |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

つぎ、新しいDBを別のサーバ上に作成した。
せっかくだから、最近はサーバもクライアントもUTF8に揃うように使っているのは、普通だ。
というのは、揃わないと、途中に一回文字コード変換を経て表示されるため、
すべて全部文字化けしないということは保証できない。

クライアント側文字コード --> Unicode(ucs2) --> サーバ側文字コード
サーバ側文字コード --> Unicode(ucs2) --> クライアント側文字コード

新しいDBの環境変数は、以下に設定している。

mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8     ←ここ                   |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8    ←ここ                    |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

設定方法は以下になる。
# mysql --version ←バージョンは以下だ。
mysql  Ver 14.14 Distrib 5.6.24, for Linux (x86_64) using  EditLine wrapper
# rpm -qa | grep mysql ←入っているパッケージは以下だ。
mysql-connector-python-2.0.4-1.el7.noarch
mysql-community-common-5.6.24-3.el7.x86_64
mysql-community-libs-5.6.24-3.el7.x86_64
mysql-community-server-5.6.24-3.el7.x86_64
mysql-community-release-el7-5.noarch
mysql-community-client-5.6.24-3.el7.x86_64
mysql-community-devel-5.6.24-3.el7.x86_64
mysql-utilities-1.5.4-1.el7.noarch

# vi /etc/my.cnf ←定義に以下の赤字部分を追記して、mysqlサービスを再起動する。
(再起動は# systemctl restart mysql)
------------------------
character-set-server = utf8
[client]
default-character-set = utf8
[mysqldump]
default-character-set = utf8
[mysql]
default-character-set = utf8

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
------------------------

●解決策
今回はDBの移行なので、「元DBダンプ→文字コード変更→ターゲットDBにインポート」という順番になる。

(1)まずは、移行元DBをダンプ出力する。ここのポイントは、文字化けをしないように、元DBのサーバ文字コードに合わせてダンプすること。
# mysqldump -u username -ppassword --default-character-set=latin1 databasename > dump.db
※dump.dbはテキストファイルなので、viエディタで文字化けしているかどうかを確認できる。

(2)ダンプファイルを別ファイルにコピーする
# cp -p dump.db dump_utf8.db

(3)ダンプファイル中の文字コード記述を変更する
# vi dump_utf8.db
/*!40101 SET NAMES latin1 */;

/*!40101 SET NAMES utf8 */;

(4)
# mysql -u username -ppassword databasename2 < dump_utf8.db

※データベース名は気をつけること。元のDBに間違ってインポートしたら上書きされる。

以上で、移行完成です。
ちょっと気持ちスッキリだ!(笑)






2015年5月9日土曜日

ブロック集約型のクレジットカード、ポイントカード、診察券


クレジットカードやポイントカード、診察券などICチップを搭載しているカードが増える一方です。
そろそろ財布がいっぱいになってないでしょうか?
カードのICチップだけを簡単に組み込めるようなブロック集約型カードがあると、
効率が一気に良くなるのではない?
今のカードは、ICチップ以外のところはほとんど無駄で冗長です。
だけど、ICチープを決まった場所においておかないと使えない。
だったら、使いたいICチープを決まった場所に簡単に移動できればよいでしょう?

用途目的ごとに、ICチープのブロックを簡単に移動できることは、この新カードのポイントです。

国際交流を促進するグローバル音楽フェスティバルについて語ろう。

タイトル:国際交流を促進するグローバル音楽フェスティバルの魅力 最近、世界中で注目を集めているのが、国際交流を促進するグローバル音楽フェスティバルです。音楽は言葉を超えて人々をつなぎ、文化や国境を越えて心を通わせる力があります。そんな音楽の力を最大限に活用し、異なる文化や国...