Android Mobile-Vision Как повысить точность при выборе из нескольких

Я пытаюсь определить, позволит ли Google Mobile-Vision API для чтения штрих-кодов удовлетворить мои требования.

Проблема, с которой я сталкиваюсь в настоящее время, заключается в том, что у меня есть определенный штрих-код, который необходимо отсканировать. Штрих-код будет распечатан рядом с другими штрих-кодами. API обнаруживает 3 штрих-кода, как показано на изображении ниже: введите здесь описание изображения

Проблема в том, что когда я пытаюсь выбрать средний штрих-код, данные верхнего или нижнего штрих-кода возвращаются в onActivityResult из примера приложения. До сих пор я пытался увеличить setRequestedFps до 60. Это только быстрее обнаруживает штрих-коды.

Мой вопрос: кто-нибудь знает, как повысить точность, когда пользователь выбирает из группы штрих-кодов изображение, которое я представил?

Любая помощь будет оценена.


person TerNovi    schedule 20.09.2016    source источник


Ответы (2)


Похоже, вы говорите об образце приложения, исходный код которого вы можете найти здесь. Обратите внимание на TODO в строке 335 (в onTap) — к сожалению, пример кода просто возвращает случайный результат штрих-кода:

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

Попробуйте изменить образец, чтобы выбрать штрих-код, ограничивающий прямоугольник которого содержит точку касания.

person pchx    schedule 30.09.2016
comment
Да, я имею в виду пример проекта. Я понял, что у них была строка TODO :(. Это хороший ответ, хотя я соглашусь, поскольку он объясняет, почему нет точности при выборе из группы штрих-кодов. Спасибо. - person TerNovi; 30.09.2016
comment
У меня есть патч, который должен решить эту проблему, если вы хотите протестировать его: github.com/googlesamples/android-vision/pull/135 - person pchx; 01.10.2016
comment
Я только что проверил ваш запрос на включение. Это действительно полезные вещи. Я протестировал его, и, похоже, он отлично работает. Благодарю вас! - person TerNovi; 03.10.2016

Вы можете установить тип штрих-кода при обнаружении, поэтому вы получите тот, который находится посередине. https://developers.google.com/android/reference/com/google/android/gms/vision/barcode/BarcodeDetector

Другое решение, которое я вижу, - использовать координаты (x, y), чтобы найти среднюю.

person liuyl    schedule 27.09.2016
comment
Я не думаю, что ни одно из этих решений не решит проблему, описанную здесь. Я имел в виду средний штрих-код в качестве примера. Но на самом деле все 3 штрих-кода содержат полезную информацию в моем требовании. Поэтому я не могу просто указать, чтобы обнаруживать только средний штрих-код. Я также не могу указать только чтение штрих-кода, расположенного в заданном диапазоне x и y. - person TerNovi; 27.09.2016