HIERARCHICAL BARCODE DETECTION AND RECOGNITION SYSTEM FOR DAMAGED CONTAINERS IN REVERSE VENDING MACHINES

Abstract


In this article, the authors propose a solution to the problem of upgrading the machine for receiving containers. This is caused by the need to increase the competitiveness of the proposed design. A solution is based on a hierarchical automatic recognition of a bar code on the side surface of the container. For its implementation, algorithms for reading and restoring bar codes are considered. Both the usual barcode recognition method and its modification using a neural network are proposed for barcode detection. The task of the modified method is to pre-mark the image and further comparison of the plots to their possible values. The advantages and disadvantages of these methods are considered. To restore the information of damaged barcodes, three methods were proposed - “recovery by redundancy”, “recovery by guessing an element by the majority system” and “recovery by analytic calculation of the checksum”. The advantages and disadvantages of these methods are considered. The described methods are structured into a single hierarchical bar code recognition algorithm. The resulting algorithm is relevant for the conditions of limited computing power of the microcontroller used in the machine. It allows you to avoid a large number of operations on the recognition of a bar code, if the barcode search mode were used in real time, replacing them with single calls of simple algorithms. There is a saving of memory resources, because the most resource-intensive part (bar code recognition) is performed not over a large complex image of the side surface of the container, but over its individual fragments. The latter fact also has a positive effect on the efficiency and recognition time.

Full Text

Введение. На сегодняшний день весьма актуален вопрос сортировки бытовых отходов населения. Наша команда занимается одним из возможных вариантов решения данной проблемы - разработкой Reverse vending machine (дословно «обратный торговый автомат», автомат по приёму тары, RVM). Это автомат, позволяющий людям возвращать пустые контейнеры для напитков (бутылки из полиэтилентерефталата (ПЭТФ) и алюминиевые банки) для переработки. Принцип работы автомата основан на возврате конечному пользователю суммы, эквивалентной стоимости сданной тары. Это и делает его «реверсивным» торговым автоматом - вместо того, чтобы получать контейнер с содержимым за деньги, пользователь получает деньги за сданную тару. Одни из первых автоматов по приёму тары (аппаратно-программный комплекс «Фандомат») появились на улицах Москвы в 2004 г. «Фандомат» представлял собой корпус, в котором размещены отсек распознавания с устройством, собирающим информацию о распознаваемом предмете (сканер штриховых кодов), идентификация тары происходит путем сканирования штрихового кода (штрихкода) на этикетке тары и сравнения его с базой принимаемых контейнеров (в базе около 30 тыс. штрихкодов). К недостаткам их устройства можно отнести низкую скорость принятия решения и отсутствие возможности принятия деформированной тары из-за невозможности считывания штрихкода. Эти проблемы было предложено решить за счёт изменения принципа распознавания - распознавание внешнего вида тары с помощью видеокамер и нейронной сети. Нейронная сеть обучается на фотографиях банок и ПЭТ-бутылок (ПЭТ - полиэтилентерефталат) различных форм и определяет основные функции, необходимые для классификации. Благодаря этой особенности любое новое изображение ПЭТ-бутылки может быть идентифицировано как совокупный класс ПЭТ-бутылок, если контейнер обладает соответствующими свойствами. Банки обрабатываются аналогичным образом. Даже если контейнер механически поврежден и имеет нестандартную форму, то он может быть идентифицирован как один из описанных классов [1]. Согласно тестам распознавание тары при помощи нейронных сетей является более быстрым по сравнению с заявленными характеристиками «Фандомата». В ходе тестирования автомата была настроена нейронная сеть, способная идентифицировать тару по 3 классам - «бутылка ПЭТФ», «алюминиевая банка», «другое» [2, 3]. Но чтобы быть конкурентно способным на рынке RVM, автомат должен иметь возможность более точной идентификации производителя контейнера, так как производители часто заключают контракты на переработку своей тары [4, 5]. Поэтому было принято решение о разработке модификации предложенного отсека распознавания. В качестве уникального (для каждого производителя) идентификатора был выбран штрихкод, так как он не изменяется в течение продолжительного времени для конкретных товаров любого производителя. Этикетку (бумажная наклейка на ПЭТФ-бутылке или окрашенная боковая поверхность алюминиевой банки) производители часто меняют в угоду осовременивания дизайна контейнеров, что требует частого технического обслуживания автомата для обновления базы образов распознаваемых классов, что негативно может отразиться на итоговой себестоимости и эксплуатционных расходах автомата и приведёт к нерентабельности данного проекта. Использование штрихового кода для идентификации возможно с применением используемых камер и нейронной сети. Однако нужно сохранить преимущества работы нашего автомата («любое новое изображение ПЭТФ-бутылки или алюминиевой банки может быть идентифицировано как совокупный класс, если контейнер обладает соответствующими свойствами», и «механически поврежденный контейнер, имеющий нестандартную форму, или без некоторых частей может быть идентифицирован как один из описанных классов»). Поэтому для работы со штрихкодами необходимо решить две задачи, которые будут являться дополнительными к разработанной модели: - поиск и распознавание информации штрихкода; - восстановление информации повреждённого штрихового кода. 1. Поиск и распознавание штрихового кода. Штрихкод - графическая информация о товаре в виде последовательности штрихов и пробелов различной ширины и нескольких цифр, расположенных под ними (пример представлен на рис. 1). Код наносится на поверхность самого изделия, на этикетку или упаковку. Он содержит информацию о товаре и его производителе. Рис. 1. Пример штрихкода EAN-13 Рис. 2. Пример распознавания 13-разрядного европейского штрихкода EAN-13 Штрихкод размещается в пространстве, которое слева и справа ограничено 3 штрихами - два темных и один светлый между ними (101). Между ними с помощью модулей зашифровано 13 цифр (для EAN-13). Общее число модулей, используемых для записи, - 84. Пространство, занятое самим штрихкодом, делится на две группы - левую и правую, по 6 цифр в каждой. Эти группы разделяются специальной средней разделительной полосой, которая состоит из 5 модулей - 3 светлых и 2 темных (код 01010). Каждая цифра штрих-кода кодируется 7 модулями. Система кодировки сделана так, чтобы каждая цифра изображалась только 4 утолщенными штрихами. Благодаря этому вся метка штрихкода будет состоять из 29 светлых и 30 тёмных модулей, включая ограждающие и среднюю разделительную полосы. Задача считывания штрихового кода заключается либо в распознавании модулей, либо цифр под ними. Существует достаточно большой ряд алгоритмов, позволяющих проводить данные манипуляции. Это могут быть как специализированные библиотеки (Zbar), так и нейронные сети. ZBar - это библиотека с открытым исходным кодом для считывания штрихкодов как из видеопотока, так и из отдельных изображений. На рис. 2 приведён пример распознавания штрихкода. Программа может отобразить рамки распознанного штрихового кода и вывести считанную информацию. Полученная числовая последовательность проверяется на соответствие акционной базе. В случае обнаружения совпадения автоматом принимается решение о выдаче вознаграждения. Иной подход можно реализовать в нейронных сетях. На данный момент существует уже много решений, позволяющих считывать печатные символы (в том числе и на базе TensorFlow, применяемой в нашем автомате [1-3]). Задача же считывания модулей заключается в написании алгоритма, выполняющего предварительную разметку изображения штрихового кода, и дальнейшем сопоставлении участков с их возможными значениями. Алгоритм разметки опирается на боковые ограничивающие модули, высчитывая их единичную ширину. На вход нейронной сети поступает последовательность фрагментов изображения, на которых должен находиться модуль (из-за искривленной поверхности тары фрагмент может содержать в себе фрагменты соседних модулей). Происходит определение того, насколько фрагмент соответствует цвету модуля, выстраивается последовательность распознанных значений (в виде комбинации 0 и 1). На следующем этапе анализируется написание групп модулей для определения расположения штрихового кода в пространстве (штрихкод может быть перевернут, но особенности кодирования позволяют это определить) и вычисления первой цифры. Далее по группам модулей распознаются остальные цифры кода. Однако подобные решения очень требовательны к качеству считываемого изображения: не должно быть лишних деталей, штрихкод должен быть расположен в фокусе, быть достаточно большим [6]. Данную проблему можно решить двумя путями: - нанести с внешней стороны на тароприёмник маркировку, указывающую пользователю линию в пространстве, где должен находиться штриховой код помещённой тары; - сделать автоматическую подсистему нахождения штрихкода на таре. Первый подход достаточно прост, но может вызвать ряд неудобств у пользователя, чем вызовет негативное отношение к проводимой акции. Второй подход осложнён тем, что размещение штрихкода на таре не регламентировано, и потому производитель может его разместить в любом месте и под любым углом к оси вращения тары. Кроме того, внешний вид тоже может быть видоизменён (примеры представлены на рис. 3). Однако штрихкоды всегда помещаются на белом прямоугольном фоне. Этот признак можно использовать для усовершенствования работы предложенного алгоритма. Рис. 3. Примеры нестандартных вариантов штрихкода EAN-13 Для этой части задачи логично использовать быстрый и нетребовательный алгоритм. В его работе допустимы ошибки, так как он выполняет только грубый поиск объекта на изображении. Поэтому был выбран алгоритм поиска на основе каскадов Хаара, который выполняет поиск прямоугольного белого объекта с полосками [7-11]. 2. Восстановление информации повреждённого штрихового кода. Другой проблемой данного подхода может быть невозможность считывания штрихкода из-за его повреждений (загрязнение, царапины, надрывы и тому подобное). Длч решения этой проблемы можно применить 3 метода восстановления: - восстановление за счёт избыточности; - восстановление с некоторой долей вероятности за счёт «угадывания»; - восстановление с некоторой долей вероятности за счёт аналитического расчёта. При восстановлении за счёт избыточности, в случае, когда не удаётся считать информацию из модулей или цифр, можно применить совместное распознавание. Данное решение не требует значительного увеличения объёма памяти и времени обработки. Скрипты запуска считывания будут запускаться последовательно друг за другом, обрабатывая одно и то же изображение, полученное по средствам иерархического поиска. Получаемый результат не будет носить вероятностный характер, однако действенен только в случаях, когда в коде имеется неповреждённая группа модулей, соответствующая повреждённой цифре, или, наоборот, - неповреждённая цифра, соответствующая повреждённой группе модулей. В противном случае восстановление невозможно и необходимо применять один из двух других методов, дающих вероятностный ответ. При восстановлении за счёт «угадывания» происходит распознавание нейронной сетью составных частей штрихового кода (модулей или цифр), как уже было описано выше, но с большим отклонением в вероятности распознавания. Другими словами, применяется мажоритарная система, выносящая вердикт о распознаваемом объекте на основе процента похожести объекта на распознаваемые классы. Очевидно, что повреждённая цифра 8 будет иметь достаточно большую корреляцию с классами «0», «6» и «8» и более низкую со всеми остальными (для модулей аналогично, но с определением цвета - «тёмный» и «светлый»). Таким образом, система получит несколько вариантов штрихкода, которые возможны и требуют дополнительной проверки. Проверка может выполняться либо по обнаружению одного из вариантов кода в базе (обнаружение с большой вероятностью ошибки), либо по расчёту контрольной суммы штрихкода и сравнения её с последней цифрой (более защищённый от ошибок способ, но требующий значительно больше вычислительных мощностей). При восстановлении за счёт аналитического расчёта происходит вычисление возможных вариантов штрихкода на основе контрольной цифры, как и в варианте проверки штрихового кода выше, однако он реализуем, только когда контрольная цифра не повреждена. Для этого рассчитывается контрольная сумма известных чисел и проверяется на совпадение с контрольной цифрой в конце кода. Оставшиеся (не распознанные цифры) рассчитываются на основе разницы первых двух полученных значений. Подобный метод может давать как единственное возможное решение, так и набор возможных кодов, удовлетворяющих условиям. Дальнейшая проверка сводится к сопоставлению полученных кодов с базой. 3. Алгоритм иерархического распознавания штрихкода. Суть модификации автомата по приёму тары заключается в поэтапном иерархическом уточнении информации [12-16] о распознаваемой таре. Конструкция приёмного отделения автомата будет оснащена валиком для поворота принятой тары (в горизонтальном исполнении отсека) или поворотной площадкой (в вертикальном исполнении отсека). Алгоритм распознавания преобразуется к следующему виду: 1) процесс обнаружения тары в отсеке распознавания и фиксация её формы являются начальным шагом в данном алгоритме. До того момента, пока автомат не обнаружит предмет в отсеке распознавания, он находится в режиме ожидания [2, 3]; 2) проверка принадлежности тары к одному из классов («бутылка ПЭТФ» или «алюминиевая банка»). Данная проверка проводится нейронной сетью [1-3]. Если распознаваемый объект имеет слишком малый процент принадлежности к описанным классам, то он возвращается пользователю, а автомат на дисплее отображает соответствующую информацию и возвращается к шагу 1; 3) если в классе, определённом на шаге 2, нет тары, принимаемой на особых условиях, то автомат перемещает распознанную тару в отсек хранения и выдаёт пользователю соответствующую информацию, переходя к шагу 1. В обратном случае автомат переходит к шагу 4, запуская дополнительный этап иерархического распознавания, описываемый в данной статье; 4) происходит плавное вращение тары в отсеке распознавания для создания комплексного изображения боковой поверхности тары путём программной склейки изображений узких участков поверхности, находящихся перед видеокамерой (для минимизации искривлений на итоговом изображении); 5) с помощью каскадов Хаара на изображении, полученном на шаге 4, выделяются области, соответствующие искомым признакам (прямоугольный белый объекта с полосами контрастного цвета внутри). Пример такого грубого поиска продемонстрирован на рис. 4; 6) отмеченные области (их может быть несколько на одном образце тары из-за особенностей графического дизайна), полученные на шаге 5, передаются системе для распознавания. В случае если штрихкод распознан как повреждённый, происходит попытка его восстановления и сопоставления с базой для принятия решения о выдаче вознаграждения. В случае успешного считывания правильного штрихового кода автомат принимает решение о принятии акционной тары. Пользователю сообщается о принятии таковой тары и выдаётся вознаграждение. В случае, если распознанный штрихкод не соответствует ни одному из хранимых в базе акционной тары, то тара принимается так же, как описано в шаге 3. Далее автомат возвращается к шагу 1. Рис. 4. Пример грубого поиска штрихкода на упаковке тары Данный подход актуален для условий ограниченных вычислительных мощностей микроконтроллера, применяемого в автомате [1, 17-20]. Он позволяет избежать большого количества операций по распознаванию штрихкода в случае, если бы применялся режим поиска штрихкода в реальном времени, заменяя их единичными вызовами простых алгоритмов. Происходит экономия ресурсов памяти, так как наиболее ресурсоёмкая часть (распознавание штрихкода) выполняется не над большим комплексным изображением боковой поверхности тары, а над его отдельными фрагментами. Последний факт также положительно отражается на эффективности и времени распознавания. Недостатками данного подхода являются усложнение конструкции отсека распознавания механизмом вращения тары и необходимость затраты дополнительного времени на вращение тары. Этот недостаток можно устранить, применив систему зеркал, дающих камере обзор на тару со всех сторон в боковой проекции. Однако в таком случае возникнет проблема очистки данных зеркал от возможного загрязнения. Поэтому описанный подход считается применимым для автомата по распознаванию тары. Выводы. Разработанный алгоритм позволяет выполнить задачу повышения конкурентоспособности автомата по приёму тары за счёт внедрения функции идентификации акционной тары. Реализация этого алгоритма вписывается в концепцию разработанного автомата и не требует дополнительных вычислительных мощностей. Подобная модернизация позволит повысить культуру утилизации бытовых отходов у рядового городского жителя за счёт более привлекательных акций по сравнению с обычным вознаграждением за утилизацию пустого контейнера.

About the authors

A. I Tur

Perm National Research Polytechnic University

A. N Kokoulin

Perm National Research Polytechnic University

A. V Dzygar

OOO “FacePass”

References

  1. Kokoulin A.N., Tur A.I., Yuzhakov A.A. Convolutional Neural Networks Application in Plastic Waste Recognition and Sorting // Proceedings of the 2018 IEEE Conference of Russian Young Researchers in Electrical and Electronic Engineering (2018 ElConRus). - Saint-Petersburg: Saint Petersburg Electrotechnical University «LETI». - P. 1118-1122.
  2. Кокоулин А.Н., Тур А.И., Даденков С.А. Оптическая система сортировки пустых контейнеров // Нейрокомпьютеры: разработка, применение. - 2018. - № 7. - C. 3-7. doi: 10.18127/j19998554-201807-01
  3. Вопросы разработки и настройки оптической подсистемы распознавания и сортировки пустых контейнеров в системе раздельного приема бытовых отходов / А.Н. Кокоулин, А.И. Тур, А.И. Князев, А.А. Южаков // Информационно-измерительные и управляющие системы. - 2018. - № 9. - Т. 16. - C. 45-50. doi: 10.18127/j20700814-201809-07
  4. Огрель Л.Д. Оценка накопления, сбора и переработки отходов ПЭТФ в России // Экологический вестник России. - 2012. - № 4. - С. 26-31.
  5. Lasoff M.A. An Rv By Any Other Name // Waste Age. - 2000. - Vol. 31. - № 7. - P. 34.
  6. Труфанова Е.В., Кузнецова Н.А., Макеев П.В. Штрихкод. История создания, его разновидности и назначение // Новая наука: теоретический и практический взгляд. - 2016. - № 8. - С. 186-188.
  7. Viola P., Jones M.J. Robust real-time face detection // International Journal of Computer Vision. - 2004. - Vol. 57, № 2. - P. 137-154.
  8. Иванько М.А. Клепикова А.В. Системы искусственного зрения // Вестник МГУП им. Ивана Фёдорова. - 2015. - № 5.
  9. Южаков А.А., Тур А.И. Выбор алгоритмов для реализации системы машинного зрения // Управление большими системами. УБС-2017: материалы XIV Всерос. школы-конф. молодых ученых; 4-8 сентября 2017 г. - Пермь: Изд-во Перм. нац. исслед. политехн. ун-та, 2017. - С. 465-473.
  10. Iandola F. Forrest, Han Song, Moskewisz W. Mattewet. SqueezeNet: MobileNet-level accuracy with 50x fewer parameters and №0,5 Mb model size // ICLR’17 conference proceedings. - 2017. - P. 207-212.
  11. LeCun Y., Bottou L., Haffner P. Gradient-based learning applied to document recognition // Proceedings of the IEEE. - 1998. - Vol. 86(11). - P. 2278-2324.
  12. Kokoulin A., May I., Kokoulina A. Image Processing Methods in Analysis of Component Composition and Distribution of Dust Emissions for Environmental Quality Management // Proceedings of 10th International Conference on Large-Scale Scientific Computations (LSSC); Bulgarian Acad Sci, Sozopol, BULGARIA. - 2015. - Jun 08-12. - Vol. 9374. - P. 352-359.
  13. Kokoulin A., Methods for Large Image Distributed Processing and Storage // IEEE EUROCON Conference; Zagreb, CROATIA. - 2013. - Jul 01-04. - Р. 1600-1603.
  14. Yuzhakov A.A., Kokoulin A.N., Tur A.I. Application of Fuzzy Search Algorithms and Neural Networks in Fingerprint Document Analysis // 20th IEEE International Conference on Soft Computing and Measurements (SCM); Saint Petersburg, Russia, May 24-26. - 2017. - P. 455-457.
  15. Tensorflow: Large-scale machine learning on heterogeneous systems / M. Abadi, A. Agarwal, P. Barham, E. Brevdo, Z. Chen, C. Citro, G. S. Corrado, A. Davis, J. Dean, M. Devin [et al.] // Software available from tensorflow. org. - 2015. - Vol. 1. - № 2.
  16. Novel dataset for fine-grained image categorization / A. Khosla, N. Jayadevaprakash, B. Yao, L. Fei-Fei // First Workshop on Fine-Grained Visual Categorization, IEEE Conf. on Computer Vision and Pattern Recognition. - Colorado Springs, CO, 2011.
  17. Хижняков Ю.Н. Современные проблемы теории управления: учеб. пособие. - Пермь: Изд-во Перм. нац. исслед. политехн. ун-та, 2015. - 237 с.
  18. Слива М.В. Использование миникомпьютера Raspberry PI для преподавания основ робототехники // Культура, наука, образование: проблемы и перспективы: материалы III Всерос. науч.-практ. конф. / Нижневартов. гос. ун-т. - Нижневартовск, 2014. - С. 326-328.
  19. Линев Ф.А., Киселева С.Д. Интернет вещей на основе Raspberry PI // Молодежный науч.-техн. вестник. - 2015. - № 5. - С. 22.
  20. Коваленко Р.О. Анализ скорости работы Java на Raspberry PI // Актуальные проблемы физической и функциональной электроники: материалы 19-й Всерос. молодеж. науч. школы-сем. - 2016. - С. 104-105.

Statistics

Views

Abstract - 65

PDF (Russian) - 24

Refbacks

  • There are currently no refbacks.

Copyright (c) 2022 PNRPU Bulletin. Electrotechnics, Informational Technologies, Control Systems

This website uses cookies

You consent to our cookies if you continue to use our website.

About Cookies