小ネタ 2012-009

AR電卓

 究極の電卓とは、計算をするのにキー入力をしなくても、計算式を見た瞬間に答えも表示されているべき!というのを作ってみた。(2012-08-08)

 AR電卓の実行ファイルとソースコード一式 ・・・ [ arcalc_01.zip (download) ]
 Windows用。Windows7とWindows8(RP版)で動作確認した。
 (後日加筆 2012-08-17 Windows8 RTMでも動作確認できた。)

 
 写真では、AcerのICONIA TAB W500というタブレット機のWindows8環境で動作させている。
 数式を印刷した紙を、タブレット機の背面カメラで撮影してる。


1. 使い方

 binフォルダ内のAR-Calc.exeを実行する。
 カメラの画像をOCRで認識し、認識された数式を計算して計算結果が画面に表示される。
 何かキーを押すと終了。


2. ソースコードのビルド方法

 ソースコードはsrcフォルダ内。
 ビルドには、Visutal Studio 2010が必要。
 ビルドには統合環境を使わずに、バッチ処理でビルドするためのバッチファイルbuild_vc10.batを使うこと。


3. その他

 ライブラリとして、画像処理用にOpenCVと、OCR用にTesseractを使用している。

 数式の認識率は、カメラの解像度にも依るが、あまり良くない。
 画像処理で前処理を工夫すれば認識率を上げることができるかもしれない。

 現在のバージョンだと、複雑な数式を処理できない。
 「A+B=」か「A-B=」か「A×B=」の3パターンのみ計算できる。
 真面目に数式パーサを書けば複雑な数式も計算できるが、OCRの認識率を上げないと厳しい気がする。

 現在のバージョンだと、複数のカメラの切り替えができない。
 1つめカメラのみ対応。
 ICONIA TAB W500など前面と背面に2つカメラのある機種の場合に困る。
 そういう場合、コントロールパネルのデバイスマネージャーからフロントカメラを無効にすることで、とりあえず動かすことができる。

 (後日加筆 2012-08-11)
 Windows8 Metro Styleハッカンソンというイベントがあったので、参加して、Metroアプリでカメラを使う方法とか試した。(Metroという単語は無しになったとか。)
 でも、OCR部分のライブラリとか動かすのは難しいかも。
 Microsoft製のOCRライブラリが使えると良いのだが。


参考Link
・OpenCV - OpenCV
・Tesseract OCR - Tesseract
・ソインスウブンカイカメラ - ソインスウブンカイカメラを作ってみた