2017-05-11 15 views
2

最近、私は何らかのAndroidバーコードスキャンアプリを行っています。 IOS上で私の友人が作った同じアプリがバーコードを検出するのがはるかに優れていることに気付くまでは、すべてうまくいった。 GoogleモバイルビジョンAPIはしばしば間違っていますが、実際のバーコードが「12345 ...」のときは「72345 ....」のようなバーコードを検出します。これは一般的な問題ですか?解決策はありますか?モバイルビジョンAPIで正しくないバーコードが読み取られました

サンプルバーコード: enter image description here

このバーコードは、私は上記の私のデバイスを維持する場合罰金検出されたが、いずれかの小さな移動後に不正なコードを取得するための大きなチャンスがあります。

+0

ZBarライブラリを使用していますが、時々私は間違ったスキャンをしていますが、あまり言及していないので、試してみる価値があります。誰かがこれに対する解決策を持っているなら、私は本当に興味があります。 – Johny

+0

私はZBarまたはZXingへの切り替えを検討していましたが、それがもっと良いかどうかは本当に分かりません。面白いのは、IPhoneは、ほとんど不正なスキャンをせずに、それをよりうまくやり遂げることができるということです。 –

+0

はい私は、同じ状況がここに知っている!私たちはアンドロイドとiOSで同じアプリを開発していますが、アンドロイドには間違ったスキャンが数回あります...あなたの質問に誰かが助けてくれることを願っています! – Johny

答えて

0

私が今までに見つけた最良の解決策は、cameraSourceのFPSを15.0fに設定することです。プレビューの速度が遅くなりますが、結果はより信頼性が高くなります。しかし、まだIPhoneのものよりも信頼性が低い。 Googleからの

サンプル:

https://github.com/googlesamples/android-vision/blob/master/visionSamples/barcode-reader/app/src/main/java/com/google/android/gms/samples/vision/barcodereader/BarcodeCaptureActivity.java

.setRequestFps() 

が行く方法です。

+0

私はそれが行く方法だとは思わない。異なる電話機が異なるフレームレートを持つ可能性があります。さらに、他のすべてのバーコードをスキャンすると良い結果が得られます。しかし、UPC-Aであってもバーコードの1つが問題を作り出しています。他はすべて同じ種類のものです。 –

1

最初の試合ではなく、簡単なデバウンス戦略を適用するとかなりうまくいくことがわかりました。たとえば、3つの連続したフレームにバーコードが表示された後でのみ、有効な一致とみなします。 これは、内部でcom.google.android.gms.vision.barcode.BarcodeDetectorを使用するカスタムDetector<Barcode>で簡単に実行できます。 検出速度が少し遅くなりますが、信頼性は向上します。

+0

真。おそらく今のところ最善の方法です。 –

関連する問題