出典:https://japan.googleblog.com/2016/11/photoscan.html
Googleは、現像した写真をスマートフォンのカメラで撮影することで、簡単にデジタル化できるスキャンアプリ「フォトスキャン(PhotoScan)」の提供を開始しました。フォトスキャンは、Android/iOSで利用できます。
通常のカメラで撮影すると、グレア(表面のテカリ・反射)、写真の丸まりや撮影角度の傾きによる歪みが生じてしまいます。フォトスキャンでは、こうした反射や歪みを自動で取り除いてくれるそうです。
同様のスキャナーアプリはすでにいくつか存在しますが、反射を除去してくれるアプリは記憶にありません。早速、比較テストを行ってみました。
原理
仕組みや行程は上のリンクを参照してください。スキャンの過程で全体と画面に表示される4つの円を中心とした計5回の撮影を行います。自動で被写体を認識してくれるので、シャッターボタンは1回しか触りません。
撮影時を考えるとわかりますが、スマホのフラッシュライトや部屋の照明による反射はスマホのほぼ真下に位置します。つまり、写真に四つある角のうち、一つが反射していてもその他3/4の部分は反射がない像となります。以上は推測ですが、全体像をもとに、4回撮影した写真を合成して出力しているのだと思います。
また、画面に表示される円ですが、スマホの傾きや距離により大きさや形が変化します。おそらく、AR (Argumented Reality)技術も応用しているのでしょう。
既存アプリと同様、写真の縁を検出したトリミングや傾き補正にももちろん対応しています。
テスト
手近にアナログ写真がなかったため、光沢のあるカバーがかかった書籍で代用することにします。開発者の本意と違うかもしれませんが、ドキュメントスキャナと変わらないと思いますので。また、これにより今回は丸まりについてテストできないことをあらかじめ断っておきます。
撮影機器はSony Xperia Z4。以下の三つのアプリで比較してみることにします。
- 標準カメラアプリ(無補正)
- CamScanner 無料版(トリミング、傾き補正あり)
- フォトスキャン
CamScannerは、筆者も以前使用したことのある著名なアプリです。
修正機能をテストするため、わざと反射や傾きのある角度から撮影してみます。
結果(クリックで拡大します。)
標準カメラアプリ(2448 x 3264)
左:CamScanner(1660 x 2448)、右:フォトスキャン(1500 x 2000)
うまい具合に結果が違ってくれました。
肝心のフォトスキャンのグレア除去機能ですが、いい感じに働いてくれています。何回か撮影した感じではうまく除去できない場合もありましたが、よほど意地悪な条件で撮影しない限り、反射はほとんど残らないようです。ただ、向こう側の角を撮影した際のカメラの影が残ってしまっています。部屋の照明による影響は考慮した方が良いでしょう。一方で、CamScannerは向こう側が暗くなっています。光源が一つしか使えないからです。
傾き補正・歪み補正では大きな違いが表れました(舌なめずり)。検証してみましょう。
まず、アスペクト比です。Amazonの商品情報によると、この本の比率(横/縦)は0.71。対して、CamScannerは0.68、フォトスキャンは0.75です。正確さではCamScannerに軍配が上がりそうです。しかし、実物と比べた感じではCamScannerは縦長すぎる感じを受けます。
他には、フォトスキャンでは合成による歪みが目に付きます。これは知ったかですが、単純な線形変換を使っているであろうCamScannerの方が有利かな? また、合成の都合上、フォトスキャンの結果にはゴーストが現れています。ホワイトバランスはフォトスキャンの方が実物に近い感じがします。
まとめ
- 写真表面の反射除去機能は本当
- CamScannerは反射を除去できない
- フォトスキャンはゴーストが残りがち
- アスペクト比の正確性はどっちもどっち
- どちらのアプリにせよ現物を処分できるほどスキャン結果を信用できない