Обнаружение QR-кода с помощью ZBar и ZXing не работает для определенных действительных QR-кодов

Я столкнулся с действительно странной проблемой с обнаружением QR-кода.

TL; DR

Проще говоря, ZBar и ZXing не могут обнаружить QR-коды на многих изображениях.

Пример изображения. (Зеркало).

На моем Mac я zbar установил через Brew. У меня zxing настройка с использованием JAR-файлов из здесь. Оба не могут обнаружить QR-код на изображении в качестве примера. (Примечание: обнаружение работает для многих других изображений; я не делаю глупых ошибок при выполнении zbar или zxing.)

Но если я открою "сканер штрих-кода "на моем телефоне и поднесите его к экрану ноутбука с указанным выше QR-кодом, приложение его обнаружит. Кроме того, если я загружу изображение выше на zxing.org, он также обнаружит QR-код там.

Что могло быть не так?

Расширенная версия

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

Затем я сканирую эти листы с помощью двух сканеров с разрешением 300 точек на дюйм:

  1. Fujitsu ScanSnap S1300i
  2. Brother ADS-1500W

Формат вывода - JPG (других вариантов в программном обеспечении обоих сканеров нет).

Когда я запускаю zbar на любом изображении, созданном сканером Fujitsu (сканирование с использованием их программного обеспечения ScanSnap), ВСЕГДА обнаруживается QR-код.

Когда я запускаю zbar (или zxing) для изображений, созданных сканером Brother, обнаружение QR-кода очень сильно промахивается.

Фактический случай: я отсканировал 31 лист на сканере Brother. Изображения находятся здесь (кроме G-Drive зеркало с нетронутыми изображениями). Затем я написал сценарий, чтобы просмотреть каждое изображение и найти в нем QR-код. Скрипт здесь.

Полный вывод сценария производится здесь.

Сводка изображений сканера Brother:

Total number of images scanned: 31

Num images with ZBAR QR detected: 17 
Num images ZBAR FAILED: 14

Num images with ZXING QR detected: 15 
Num images ZXING FAILED: 16

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

05161801.JPG - это одно изображение из указанного выше набора, которое не было обнаружено обоими программами. Но то же изображение, загруженное на zxing.org, работает. Приложение сканера штрих-кода на моем телефоне также обнаруживает QR-код с экрана моего ноутбука для этого изображения.

Подсказки

Тот факт, что обнаружение QR работает для тех же листов бумаги, когда они сканируются с помощью сканера Fujitsu, говорит мне, что сканер Brother применяет некоторую пост-обработку, из-за которой обнаружение QR становится ненадежным (это все еще не объясняет, как zxing.org работает для этих изображений). Мне интересно, можно ли использовать imagemagick, чтобы каким-то образом заставить изображение работать с ZBar. Я попытался "улучшить" с помощью скрипта textcleaner Фреда. Я еще не смог его взломать.

Я потратил МНОГО времени, пытаясь понять это. Буду признателен за любые предложения, предложения или решения. Спасибо!

ОБНОВЛЕНИЕ: добавление изображений ОДИНАКОВЫХ листов бумаги, отсканированных с помощью сканера Fujitsu

Вы можете загрузить нетронутые изображения с здесь.

Я запустил сценарий barcode_checker.py (такой же, как указано выше) на этих изображениях Fujitsu. Как упоминалось ранее, QR-код обнаруживается на КАЖДОМ ОДНОМ ИЗОБРАЖЕНИИ! (ZXING действительно терпит неудачу в некоторых случаях, но ZBAR успешен на 100%)

Полный вывод сценария производится здесь.

Сводка изображений сканера Brother:

Total number of images scanned: 31

Num images with ZBAR QR detected: 31
Num images ZBAR FAILED: 0

Num images with ZXING QR detected: 26
Num images ZXING FAILED: 5

person Anjan    schedule 17.05.2018    source источник
comment
Я не могу загрузить ни одно из ваших изображений - слишком много перенаправлений ...   -  person Mark Setchell    schedule 17.05.2018
comment
@MarkSetchell - изображения размещаются на Google Диске. Они прекрасно открываются для меня даже в окне инкогнито. Во всяком случае, сейчас я добавил к файлам зеркала. Пожалуйста, проверьте. Спасибо.   -  person Anjan    schedule 17.05.2018
comment
Не могли бы вы также предоставить образец сканера Fujitsu? Не могли бы вы предоставить оригинальные образцы того и другого, которые не были загружены на веб-сайт, который удалил из них все метаданные?   -  person Mark Setchell    schedule 17.05.2018
comment
@MarkSetchell - Я хотел отсканировать тот же 31 лист на сканере Fujitsu и провести сравнение. Но, к сожалению, до 22 мая сканер не верну в руки. Между тем у меня есть несколько старых нетронутых изображений, созданных сканером Fujitsu. Я заархивировал их и загрузил сюда. И ссылка зеркало в исходном сообщении также является ZIP-файлом. файл нетронутых изображений, созданный сканером Brother.   -  person Anjan    schedule 18.05.2018
comment
@MarkSetchell - по вашему запросу я также отсканировал точные листы с помощью сканера Fujitsu. Я обновил сообщение этими файлами. Буду признателен за любые предложения. Спасибо!   -  person Anjan    schedule 25.05.2018


Ответы (1)


Я проверил ваш код, и вы, похоже, не применяете к ним какую-либо обработку или очистку? Не могли бы вы уточнить, что именно вы пробовали?


Просто частичный ответ, но никто не сказал, что ответы должны быть полными. Может быть, я знаю 35% истории, а какая-то умная душа знает остальные 65% - вы читаете Фреда (@ fmw42)?

Хорошо, я выбрал (надеюсь, совпадающую) пару изображений:

  • 05161825.JPG (Brother) - показано слева на схеме ниже
  • 2018_05_25_10_19_46.JPG (Fujitsu) - показано справа

и проанализировали их с помощью identify -verbose IMAGE.JPG инструмента ImageMagick и проанализировали результаты.

Они очень близко коррелируют, за исключением отмеченных красным. Я вижу, что энтропия при сканировании Brother постоянно ниже, качество JPEG не указано (?), А размер файла примерно на 35% меньше.

введите здесь описание изображения

Может быть, у Фреда, Эрика или других добрых людей есть какие-то идеи. Я буду продолжать искать новые идеи и обновлять свой пост по мере появления чего-то нового.

person Mark Setchell    schedule 25.05.2018
comment
Спасибо за ответ, @Mark. Выбранная вами пара изображений действительно соответствует паре. Но вы можете выбрать другую пару, потому что QR-код на выбранном вами изображении Brother фактически обнаруживается zbar. Возможно, вы можете попробовать следующую пару: 05161832.JPG (Brother и `2018_05_25_10_21_35.jpg (Fujitsu). - person Anjan; 25.05.2018
comment
Что касается обработки изображений, которую я пробовал: я просто играл с textcleaner, например: textcleaner -e stretch -o 10 -f 40 -t 40 -T -u -g 05161832.JPG result1.jpg. Пробовал разные значения параметров. Я также обрезал только QR-код из изображения Brother, загрузил его в GIMP, применил различные фильтры и попробовал обнаружение QR-кода после каждого фильтра. - person Anjan; 25.05.2018