2017/08/27

プレモルのポイント入力アプリ

全国のプレモル愛飲家が長いこと望んでいたであろう、プレモルのポイントシールの入力正式アプリ「ザ・プレミアム・モルツ キャンペーン応募シール読取アプリ」が、やっとサントリーから発表された。

実はこのアプリが出るまで、ポイント入力が面倒でTesseractOCRiOSを使った自前のiOSアプリを作って入力していたのだが、度々ホームページの構成が変わるため、追従するのが面倒になって放置気味になっていた。おかげで近くのカレンダーやら、いろんなところにポイントシールがペタペタと貼られて汚い状態に…(笑)。

最近になって上の通り正式なアプリが提供されたので、やれやれこれで自前アプリのアップデートから解放されると思って喜んでインストール、が…ちょっとダメ。調子が悪い時は数字を認識するまでに10回ぐらいスキャンし直しとなったり、当然誤認識もあるので、フラストレーションがたまる。

自前アプリを作った時にも同じような問題にはまって、利便性を上げるためにいろいろ作り変えた。その時の経験をまとめておくと以下のような感じ。
  • iPhoneのカメラの解像度は十分高く、OCRのインプットとして十分。
  • しかしシールのサイズが小さいので、画面一杯に数字を表示させるようにデジタルズームしてプレビューさせるやり方だと、当然手振れも拡大されるためとても扱いにくくなる。
  • またOCR側の解像度に合わせて接写することをユーザーに求めると、iPhoneの接写能力ギリギリになりがちで、ピントが怪しくなってしまうことが多い。
このような不安定な状況でキャプチャーしたイメージを認識処理に送り込んでも、ピント、傾き、コントラスト不足などが原因で認識失敗することが多く、使い物にならなかった。つまり、自前アプリも最初の版は今の正式アプリと非常に近い状況だった。こうした経験から、自前アプリでは以下のような妥協案で利便性を確保していた。
  • キャプチャーと認識処理を2ステップに分ける。
  • キャプチャーのステップでは数字部分だけの接写を求めず、シールが含まれた周囲を含めて無理なく撮影する感じにしておく。またこれを利用してシールを並べておいて一度のキャプチャーで複数のシールを撮影することも良しとする。
  • 認識処理のステップでは、前段で綺麗にキャプチャーされた画像に対し、シールの存在するところをタップし、そこにズームインして認識を行う。もう一度押すとズームアウトし、続けて他のシールの認識を行えるようにする。
  • ズームインした時に若干傾いていて認識に失敗することが多いので、画像の傾きを調整する方法も用意しておくと認識成功率が高まった。
頑張れば認識処理のステップを自動化して、タップ操作なしで数字の領域を探すことは可能だと思うけど、そこまでやらずに簡単な実装で済ませている。

プレモルのアプリ開発者の人がこれを読むことはないかも知れないけど、もうちょい改良されることを期待して…。

2017/08/20

iPhone用のウェストポーチ

iPhoneをズボンのお尻ポケットに入れたくなくて、BUILTのカメラ用のウェストポーチを長年愛用してきた。でももうボロボロ。いい加減に交換したいのだけど、BUILTでは欲しいモデルがもう生産されてない。

BUILTのポーチは背面に型押しされた板が入っていて、これがいい具合に作用してiPhoneを出し入れしやすい感じにしてくれていたのだけど、同じようなものが見当たらない。この点は妥協することとして、ELECOMのポーチの背面にベルトループをつけて自作してみることにした。

◆ ◆ ◆

ベルトループは使わなくなったリュックサックのベルトを使うことにした。留め具をベルトループを締め付けるために利用できそうなので。この留め具とマジックテープを使うことでベルトに固定する方式で作ることにした。

問題はナイロン生地のベルトを裁縫しないと行けないこと。最初は普通に針で縫い始めたけど、固くて難しい。調べたところ、皮を縫うときなどに使うステッチャーというのが便利なようだ。が、これが簡単な構造なのにそこそこ値段がするので、素人のお遊びにわざわざ買うのは勿体無い。ピンバイスにミシン針をセットすれば代用できるようなのでこれで済ませることにした。ステッチャーには糸を逃すためのフックが付いてるようなので、セロテープで小さく切ったストローをピンバイスに貼り付け、糸を通すことにした。これで十分。

既製のポーチの裏にベルトループをつけることになるので、ポケットの中を縫うのは少々苦労したけど、針金で糸を引っかき出してポケットの外で下糸をくぐらせるようにすれば少しはやりやすくなった。

絵にすると以下のような感じ。



適当に作った割にはそこそこ使えるものになったので、BUILTのポーチはサヨナラすることにした。やっぱり型押しされた板があった方が出しやすいのは確かだけどね…。

2017/08/12

VPNはラズパイで

iOS 10からPPTPが使えなくなって、しばらくVPNなし生活もしていたのだけど、「あ、そういえばラズパイあるじゃない」ということになって、子供に買って上げたラズパイでSoftEther VPN を入れさせてもらい、しばらく様子をみて調子良かったので、自分用のラズパイも買ってそっちでVPN動かすようにした。

「やっぱこれからはHomeKitだよな」とか言ってた割には、あっさり日和った(笑)。

もう半年ぐらい使っているけど特に問題ない。というかPPTPで接続してたときよりOn/Offの反応が早かったりして、むしろ快適な気がします。

SoftEther様に感謝…。

2017/08/10

GGMM M3

MacBook Proのスピーカーは小さいなりにいい音だと思うのだけど、そして部屋が狭いから贅沢は言えないけれど、ちょっとスピーカーが欲しくなってしばらく探していた。

GGMM M3が気になっていたのだけど、狭い我が家にはE5?とか悩んでいて踏み切れずにいたが、このところモヤモヤする出来事が多くて、気晴らしにM3を買ってみた。

実は、まず音出しまでに時間がかかってしまった。Apple TVとか、beats Xとか、接続が簡単なものばかり使ってるせいで甘やかされてたか(笑)。

◆ ◆ ◆

すぐに聞いてみたかったのでまず有線。最初聞こえないから故障品かと思ったが、本体の出力を大きくする必要あり。インジケーターの光は緑の状態。

音量上げて有線接続で利用したあと、ケーブル抜いてたのを忘れて大音量、というパターンになりそうなのもあり、基本的には使わない方針。

#この製品、USB接続もあったらもっといいのにと思う。

◆ ◆ ◆

次にWiFiの接続。Direct modeは実用上なしかな、と思ってRouter modeで設定。アクセスポイントとしてM3につないでルーターへの接続設定を行う。その後iTunesのスピーカー選択ボタンからターゲットとしてM3を選ぶ、という流れ。ま、よくある手順で、大したことないといえばそうなんだけど。WiFi接続中はインジケーターが青に光る。

Router modeしか試していないけど、ルーターの混み具合によって切断しやすいのはあるみたい。またルーターに負担をかけるみたいで、他のぶら下がってる端末の接続性にも影響していた。

(2018/04/01追記)
無線ルーターが古いせいで音切れするのかと思い、久しぶりに無線ルーターを買い換えた(TP-Link Archer C2300)のだけど、まだ音がたまに切れる感じ(ひどいときは復帰しない)。繋がってさえいればスピーカーとしては満足してるのだけど、切れるのはどうにも。

上記Archer C2300へ接続するにあたって、E3の接続先ルーターを変更するためにアプリからWiFiをスキャンしたとき、ステルスにしているわけでもないのにSSIDが見つからない問題にぶつかった。仕方がないので、Macからダイレクト接続した上で、http://192.168.78.1をブラウザで開き、Client設定からマニュアルで設定したところちゃんと接続できた(2.4GHzの方で)。

(2018/04/15追記)
ルーター(C2300)の交換があまり効果なしで、どうしようか迷ってたところ、ふとiOSのGGMMアプリをみて見ると、Firmwareのアップデートが出ていた。初期状態でv1.1.3.0214だったのが、v1.1.4.0402へ。(GGMMのサイトでは未公開っぽい?のでMacからでは更新できない)

しかし、どうにもルーターとの相性が悪いらしく、何度やってもC2300との接続ではアップデートを完了できなかった。一旦PlanexのMZK-RP150Nに接続したところ、C2300より調子がいい。おもちゃみたいな無線ルーターの方が調子良いとは…ガックシ。気を取り直して、このルーター経由でFirmwareアップデートを完了。

苦労はしたけど、半日使った所、音切れが減ってる気がする。ただ以前も調子良いときはあったので、本当に改善したのかしばらく様子を見て見る必要がある。

◆ ◆ ◆

続いてBluetoothを試した。インジケーターが白に点滅中に端末からBluetooth設定画面からGGMMを選択するとペアリングできる。インジケーターの点滅が止まって白で点灯状態となる(青じゃないんだよね…)。そしてスピーカーをGGMMに選択。簡単。

他の端末をつなぐには、一旦先につないでいた端末側でBluetooth設定からペアリングの解除を行う。するとインジケーターが再度点滅を始めて、端末検索状態になるので、新しい端末から改めてペアリングする。

我が家の環境では、安定性と利便性から接続はBluetoothが良さそう。M3はこのモデルだけみたいだけど、E5にはBluetoothのみ、Bluetooth+WiFiの2モデルがあるらしい。もしも買うならBluetoothのみでもいいかなと思った。

(2017/08/30 追記)
しばらく使ってみて、複数端末でM3を共有する使い方の場合、Bluetoothではペアリング解除が面倒なのが気になってきた。端末側からではなく、M3側で解除する方法があるといいんだけど、Resetボタンでもダメっぽいんだよな。対してWiFi Router modeでは後勝ちで接続できるため、解除を気にせず使えるのがいい。それと素人耳だけど、WiFiの方が音が良いような気がする。ま、でも上述の通り音が切れやすのだけど。

◆ ◆ ◆

最初は音量が小さい状態だと低音が強調されすぎかな?と思ったけど、音量を真ん中ぐらいにすればとてもいい感じ。部屋狭いので最大は試せないけど…。

特別音質にうるさくない並みの耳だけど、普段潰れて聞き取れてなかった音が聞こえて来たのは愉快だった。BeatlesのSun Kingのドドドドドドってところがはっきり聞こえたり。しばらくはいろんな種類の音楽かけて違いを楽しんでみよう。