実はこのアプリが出るまで、ポイント入力が面倒でTesseractOCRiOSを使った自前のiOSアプリを作って入力していたのだが、度々ホームページの構成が変わるため、追従するのが面倒になって放置気味になっていた。おかげで近くのカレンダーやら、いろんなところにポイントシールがペタペタと貼られて汚い状態に…(笑)。
最近になって上の通り正式なアプリが提供されたので、やれやれこれで自前アプリのアップデートから解放されると思って喜んでインストール、が…ちょっとダメ。調子が悪い時は数字を認識するまでに10回ぐらいスキャンし直しとなったり、当然誤認識もあるので、フラストレーションがたまる。
自前アプリを作った時にも同じような問題にはまって、利便性を上げるためにいろいろ作り変えた。その時の経験をまとめておくと以下のような感じ。
- iPhoneのカメラの解像度は十分高く、OCRのインプットとして十分。
- しかしシールのサイズが小さいので、画面一杯に数字を表示させるようにデジタルズームしてプレビューさせるやり方だと、当然手振れも拡大されるためとても扱いにくくなる。
- またOCR側の解像度に合わせて接写することをユーザーに求めると、iPhoneの接写能力ギリギリになりがちで、ピントが怪しくなってしまうことが多い。
- キャプチャーと認識処理を2ステップに分ける。
- キャプチャーのステップでは数字部分だけの接写を求めず、シールが含まれた周囲を含めて無理なく撮影する感じにしておく。またこれを利用してシールを並べておいて一度のキャプチャーで複数のシールを撮影することも良しとする。
- 認識処理のステップでは、前段で綺麗にキャプチャーされた画像に対し、シールの存在するところをタップし、そこにズームインして認識を行う。もう一度押すとズームアウトし、続けて他のシールの認識を行えるようにする。
- ズームインした時に若干傾いていて認識に失敗することが多いので、画像の傾きを調整する方法も用意しておくと認識成功率が高まった。
プレモルのアプリ開発者の人がこれを読むことはないかも知れないけど、もうちょい改良されることを期待して…。