company_banner

Intel Edison + веб-камера = сканер штрих-кодов

https://software.intel.com/en-us/blogs/2015/11/30/barcodescanner-with-webcam-on-intel-edison
  • Перевод
Все уже привыкли к тому, что любой мобильник умеет сканировать штрих-коды. А как насчёт Intel Edison? На самом деле, всё довольно просто: достаточно раздобыть веб-камеру и подходящий софт.


API для работы со штрих-кодами на Linux


Существую отличные Linux-библиотеки с открытым кодом для работы со штрих-кодами. Среди них, например, zxing (лицензия Apache 2), и ZBar (лицензия LGPL 2.1.). Выбирая библиотеку, следует учесть, что zxing изначально написана на Java, а у ZBar есть C-реализация, которая позволяет обойтись без среды выполнения Java. Мы будем пользоваться ZBar.

Intel Edison и веб-камеры, подключаемые по USB


В свежих образах Yocto для Intel Edison имеются драйверы для UVC USB камер. То есть, совместимую камеру достаточно подключить к устройству и с ней можно будет работать. Для того, чтобы воспользоваться камерами других типов, например, тех, работу с которыми поддерживает модуль gspca, может понадобиться самостоятельно собирать подходящий драйвер.

ZBar


ZBar нам нужен для работы с видео реального времени и с неподвижными изображениями. Для последних понадобятся библиотеки ImageMagick, которые, вместе со всеми зависимостями, можно установить с repo.opkg.net, следуя этим инструкциям. А именно, делается это так:

# opkg install imagemagick_dev
# wget http://sourceforge.net/projects/zbar/files/zbar/0.10/zbar-0.10.tar.bz2
# cd zbar-0.10
# ./configure --without-qt --without-gtk --without-xv --without-xshm --with-imagemagick --with-x=no --prefix="/usr"

И проверьте пожалуйста, соответствует ли обнаруженная конфигурация вашим ожиданиям.

X                 --with-x=disabled
pthreads          --enable-pthread=yes
v4l               --enable-video=yes
jpeg              --with-jpeg=yes
Magick++          --with-imagemagick=yes
Python            --with-python=yes
GTK+              --with-gtk=no
        => the GTK+ widget will *NOT* be built
Qt4               --with-qt=no
        => the Qt4 widget will *NOT* be built

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

# rm libtool
# ln -s /usr/bin/libtool libtool
# make
# make install

Если у вас не установлен usr/bin/libtool, нужный пакет можно найти на repo.opkg.net.

После успешной установки можно будет обнаружить пару бинарных файлов, находящихся по адресам /usr/bin/zbarimg и /usr/bin/zbarcam. Zbarimg распознаёт штрих-коды, обрабатывая графические файлы. Zbarcam ищет штрих-коды в видеопотоках:

# zbarcam --nodisplay


Итоги


Как видите, Intel Edison несложно оснастить всем необходимым для работы со штрих-кодами. А если сюда добавить ещё и OpenCV, можно скомбинировать его с ZBar для того, чтобы подготавливать изображения перед распознаванием.
  • +14
  • 8,2k
  • 4

Intel

144,00

Компания

Поделиться публикацией
Комментарии 4
    +1
    USB камера будет довольно капризна к качеству освещения. В случае сильно неравномерного освещения придётся делать препроцессинг картинок. Для уверенного распознавания штрих кода таки лучше таки взять «железный» сканер (даже беспроводной можно найти за умеренную цену, а подключить его к этой плате труда не составит).

    Такой вопрос — а какое применение сканера кодов совместно с этой платой вам видится в контексте интернета вещей?

    Я это к тому, что у меня была такая попытка — я как-то приволок с работы смарт камеру NI с распознаванием штрих кодов, приладил её рядом с холодильником, чтобы продукты при помещении и извлечении сканировать и хранить их список на сервере (теоретически можно было бы даже срок годности распознавать), и чтобы приложение на смартфоне помогало отовариваться в магазине, но решение не прошло юзер-тест супруги с резолюцией «делать мне больше нечего».
      0
      подключали сканер к самсунгу с поддержкой OTG напрямую. Обалденно, миллисекунды, прямо в приложение скидывает штрихи. А на камере телефона, прости госпади, секунд 5 минимум только фокус ловишь.
      +1
      никогда не используйте веб камеры для распознавания штрихов (ну разве что вот в академических целях ). вебка просто ужасна по сравнению с линейными матрицами в обычных сканерах. По сравнению с вебкой у них скорость сотни линий в секунду, никаких проблем с экспозицией и фокусом и тому подобного. Подключаешь их через rs232 или usb и вперед.
        0
        Картинка навела на мысль: как же правильно говорить (именно «говорить» — это важно!): штрих код или штрих кот? :)

        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

        Самое читаемое