iOSバーコード検出調査

iOS端末のバーコード検出で以下の項目の調査を行った。

  • 検知速度
  • 明るさ
  • 回転、歪み
  • 最大検知数
  • 検知距離、バーコードのサイズ

Visionフレームワークを用いて調査を行ったが、AVFoudationを利用した場合の違いも下に書いた。


もくじ


デバイス環境

項目 内容
Device iPad Pro 3rd gen 11inch
OS 16.3.1
検知フレームワーク Vision

ちなみにiPad mini, iPhone11でも調査したが、調査結果はあまり変わらなかったのでiPad Pro 3rdのものだけ記載している。


検知速度調査

Luminance : 300~600Lx

バーコード1個

バーコード5個

バーコード1~5個ではスピードはほぼ変わらない。 検証では、画面にバーコードの全体が映ってから描画されるまでの動画のフレーム数の差分で計測した。(概算ではあるけど)


明るさ調査 ~

Luminance : 0~1300Lx


回転、歪み、調査(手持ち)

厳密な調査はしていないが、回転させたときや歪ませたとき、距離を手に持った状態で調査


最大検知数の調査

こちらも具体的な個数は不明だが、10くらいは検知できそう。ただFPSが落ちるので注意。


検知距離、サイズの調査

対象物から2mの距離で検知調査 対象物は120px以上取得出来れば検知できていた。(ただ光学ズームの範囲で解像度が落ちていない場合に限る様子。) ちなみに2次元の仕組み上QRの方が検知距離や精度は高かった。 紙に書いてある数字は対象物の実際の大きさ(cm)


AVFoundation検知調査

ネット情報だとAVFoundationバージョンの方が負荷が低く速いらしいが、手元の実機調査&体感だと精度もスピードもVisionより低い。何より一度に取得できる個数が低いので複数ある場合安定しなかった。また座標情報が直線的なものしか取得できない?様子なので、画面に何かしら描画する場合は見栄え的には使えない。 Visionの方が消費電力は大きいと思われるので、検知個数が1つで良い。取得した座標を使って描画が必要ない場合、AVFoundationで良いかもしれない。


調査結果まとめ(Visionフレームワーク利用)

検知速度 : 0.8~1秒くらい カメラのフォーカス合わせるのに時間がかかりこのくらいスピードにくらいになる。検知速度はフォーカス合う速度に依存していると考えて良さそう。(バーコード検知自体は1Fで出来てそう。0.03秒ほど) iPad Proも iPad miniもあまり変わらずだが、iPad Proの方がフォーカス合わせるのが安定しているためその分速い感じがある。(デプスセンサが付いていることが影響している?詳細不明。)

照度環境調査 : 最低10ルクス程度 10ルクスなど、低照度下でも取得できていた。 これはカメラの精度+検知精度の両方に依存しそうだが、最近のipad,iphoneのカメラが優秀なのでこれくらいの暗さでも取得できていた。ちなみに30センチくらいの距離で対象物が10Lx程度の環境

回転,歪み 回転はZ軸方向の回転は大丈夫。X,Y軸方向は30度くらいまでかな?ここは角度の詳細は未検証、 歪みに関しては動画参照

最大検知個数 : 10個くらい 一度に大量のバーコードを検知すると負荷がかりFPSの低下が見られた。5個くらいまではあまり変わらず。 Appleは公式で最大検知数は教えてくれてはいないぽい。

検知距離 : 30cm以上離れると厳しくなる。 30cm以上離れると認識が厳しくなっていた。(QRコードはもう少しいける)ただ、ズームを利用すれば検知距離は伸ばせた。 一定以上のサイズがあれば判定してくれるようで、画面でバーコードの横幅が120pxくらいで取得出来れば検知可能だった。



という感じ。

References