Устойчивый к искажениям алгоритм распознавания...

26
Евгений Козлов Научный руководитель: с.н.с. ИАиЭ СО РАН, к.т.н. Косых В.П. 1

description

Цель работы заключалась в разработке алгоритма, эффективно распознавающего штрих-коды EAN-13 с возможностью дефокусировки и яркостно-геометрических искажений. Анализ ряда существующих алгоритмов показал, что все они не в полной мере отвечают представленным требованиям. Алгоритм, описанный в http://users.soe.ucsc.edu/~orazio/barcodes.html, дает впечатляющие результаты как в плане эффективности, так и в плане производительности, но он не способен распознавать сильно дефокусированные штрих-коды. В процессе работы была разработан алгоритм распознавания искаженного штрих-кода, который получает на входе изображение, содержащее уже локализованный ненаклоненный штрих-код. Суть алгоритма заключается в минимизации функционала вида J = sum(h_i - g_i(P))^2, где h_i - измерения сигнала, P - вектор оцениваемых неизвестных параметров, g_i(P) - модель дискретного сигнала. Для минимизации J используется итеративная процедура оценивания. В первой итерации модель сигнала использует положения границ штрихов, полученных с помощью алгоритма http://users.soe.ucsc.edu/~orazio/barcodes.html. После минимизации в случае успешного декодирования выдается результат, в противном случае выводится сообщение о невозможности распознавания. Испытания показали, что реализованный алгоритм способен быстро и эффективно распознавать штрих-коды на сильно дефокусированных изображениях с высоким уровнем шума и различными яркостно-геометрическими искажениями при количестве пикселей области штрих-кода от 200 и более. Среднее время распознавания на смартфоне HTC Legend составило приблизительно 1 секунду, что позволяет в случае неуспеха быстро повторить попытку распознавания.

Transcript of Устойчивый к искажениям алгоритм распознавания...

Page 1: Устойчивый к искажениям алгоритм распознавания штрих-кода EAN-13

Евгений Козлов

Научный руководитель:

с.н.с. ИАиЭ СО РАН, к.т.н. Косых В.П.1

Page 2: Устойчивый к искажениям алгоритм распознавания штрих-кода EAN-13

Многие мобильные устройства снабжены встроенными фотокамерами.

Считывание штрих-кодов может позволить:• сравнивать цены товаров,• получать полную характеристику продукта,• смотреть обзоры и отзывы других

покупателей,• проверять продукт на ингредиенты-

аллергены.

Проблема – камера вносит искажения при съемке штрих-кода

2

Page 3: Устойчивый к искажениям алгоритм распознавания штрих-кода EAN-13

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

Решенные задачи:

1. Анализ специфики задачи распознавания и формулировка требований к алгоритмам.

2. Анализ существующих алгоритмов распознавания искаженных штрих-кодов.

3. Разработка алгоритма распознавания искаженного штрих-кода.

4. Реализация и оптимизация алгоритма.

5. Исследование эффективности алгоритма на реальных изображениях и сравнение с существующими.

3

Page 4: Устойчивый к искажениям алгоритм распознавания штрих-кода EAN-13

Искажения:

4

• дефокусировка,• низкая частота

дискретизации,• наклон камеры,• изгиб поверхности,• неравномерная

освещенность,• шумы.

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

Page 5: Устойчивый к искажениям алгоритм распознавания штрих-кода EAN-13

1. S.Wachenfeld, S.Terlunen, X.Jiang. Robust Recognition of 1-D Barcodes Using Camera Phones. International Conference of Pattern Recognition, 2008.

2. R.Adelmann, M.Langheinrich, C.Florkemeier. Toolkit for Bar Code Recognition and

Resolving on Camera Phones - Jump Starting the Internet of Things. Workshop on Mobile

and Embedded Interactive Systems (MEIS'06) at Informatik, GI LNI, 2006.

3. E.Joseph, T.Pavlidis. Bar Code Waveform Recognition Using Peak Locations. IEEE

Transactions On Pattern Analysis And Machine Intelligence, Vol. 16, No. 6, June 1994.

4. N.Liu, H.Sun. Deconvolution of The Two-Dimensional Bar Code Based on Binary

Constraint. International Conference on Computer Science and Software Engineering, 2008.

5. E.Tekin, J.Coughlan. A Bayesian algorithm for reading 1D barcodes. Sixth Canadian

Conference on Computer and Robot Vision, 2009.

6. O.Gallo, R.Manduchi. Reading 1-D Barcodes with Mobile Phones Using Deformable

Templates, 2010.

7. K.Wang, Y.Zou, H.Wang. 1-D Bar Code Reading On Camera Phones.

8. D.Chai, F.Hock. Locating and Decoding EAN-13 Barcodes From Images Captured by

Digital Cameras, 2005.

9. S.Kresic-Juric, D.Madej, F.Santosa. Applications of hidden Markov models in bar code

decoding, 2006.

10. R.Muniz, L.Junco, A.Otero. A Robust Software Barcode Reader Using The Hough

Transform. Information Intelligence and Systems, 1999.

5

Page 6: Устойчивый к искажениям алгоритм распознавания штрих-кода EAN-13

[1] [2] [3] [4] [5] [6]

Шумы

Слабая дефокусировка (ρ < s)

Сильная дефокусировка (s < ρ < 2s)

Надежность оценки ρ – – – –

Искаженная геометрия

Яркостные искажения

Малая частота дискретизации

Высокая скорость работы

Нет ограничений на тип штрих-кода EAN EAN EAN UPC*

* – можно обобщить для EAN-13

6

Page 7: Устойчивый к искажениям алгоритм распознавания штрих-кода EAN-13

1) Предварительная обработка.

2) Первая попытка распознавания с использованием алгоритма [6], устойчивого к геометрическим искажениям.

3) Вторая попытка распознавания с использованием нового алгоритма восстановления дефокусированного штрих-кода (в случае неудачного завершения второго этапа).

7

Page 8: Устойчивый к искажениям алгоритм распознавания штрих-кода EAN-13

1. Выделение окна

2. Усреднение по оси OY

(снижение уровня шума)

3. Начальная оценка границ штрих-кодаxL и xR

4. Начальная оценка ширины единичного штриха s

5. Масштабирование (уменьшение количества отсчетов)

8

Page 9: Устойчивый к искажениям алгоритм распознавания штрих-кода EAN-13

9

Page 10: Устойчивый к искажениям алгоритм распознавания штрих-кода EAN-13

• ρ – параметр ФРТ

• a, b – контраст и яркость

• pk – неизвестные позиции границ полос

• xL – левая граница штрих-кода

• s – ширина единичного штриха

Зная pk, можно произвести декодирование

10

Page 11: Устойчивый к искажениям алгоритм распознавания штрих-кода EAN-13

Расчет автокорреляции производной:

Автокорреляция производной Зависимость позиции первого локального минимума от ρ/s

11

Page 12: Устойчивый к искажениям алгоритм распознавания штрих-кода EAN-13

Минимизация функционала

Для минимизации на каждом шаге итераций используется разложение J в ряд Тейлора в окрестности текущих оценок.

12

Пример восстановленного штрих-кода

Результат: 0 054881 008594

Page 13: Устойчивый к искажениям алгоритм распознавания штрих-кода EAN-13

• Алгоритм реализован на языке Java

• Основные оптимизации:– Ускорение вычисления функции erf(x) с

помощью предварительного подсчета значений функции в узловых точках и последующей интерполяции

– Использование float вместо double

– Считывание лишь части изображения высотой 15 пикселей вместо считывания всего изображения

– Модифицированная библиотека JAMA для работы с матрицами

13

Page 14: Устойчивый к искажениям алгоритм распознавания штрих-кода EAN-13

Набор снимков реальных штрих-кодов:• Всего снимков – 164

• Распознано правильно – 98 (≈ 60%)

• Не распознано – 63

• Распознано неправильно – 3 (≈ 2%)

Разрешение 226 px Разрешение 1130 px

Моделирование:

14

64

Алгоритм[6]

34Наш

алгоритм

Page 15: Устойчивый к искажениям алгоритм распознавания штрих-кода EAN-13

15

Page 16: Устойчивый к искажениям алгоритм распознавания штрих-кода EAN-13

Набор “Clean”, всего 44

(слабые искажения)

16

0

1

2

19

17

23

0 35

DataSymbol

DTK

[5]

*6+ (Авторская реализация)

*6+ (Наша реализация)

Наш алгоритм (включая *6+)

39

43

42

43

39

40

0 44

DataSymbol

DTK

[5]

*6+ (Авторская реализация)

*6+ (Наша реализация)

Наш алгоритм (включая *6+)

Набор “Hard”, всего 35

(сильные искажения)

Page 17: Устойчивый к искажениям алгоритм распознавания штрих-кода EAN-13

Время распознавания

HTC Legend (OS Android)

Qualcomm MSM 7227 600MHz

PC (OS Windows)

Athlon 3500+ 2.21GHz

17

Page 18: Устойчивый к искажениям алгоритм распознавания штрих-кода EAN-13

• Среди рассмотренных алгоритмов не нашлось такого, который бы полностью удовлетворил требованиям.

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

• Алгоритм реализован и оптимизирован для возможности работы на мобильных устройствах.

• Экспериментально показано, что новый алгоритм дает наилучшие результаты по сравнению с исследованными аналогами.

• Реализовано мобильное приложение для сканирования штрих-кода EAN-13.

18

Page 19: Устойчивый к искажениям алгоритм распознавания штрих-кода EAN-13

19

Page 20: Устойчивый к искажениям алгоритм распознавания штрих-кода EAN-13

20

Page 21: Устойчивый к искажениям алгоритм распознавания штрих-кода EAN-13

21

Page 22: Устойчивый к искажениям алгоритм распознавания штрих-кода EAN-13

22

Page 23: Устойчивый к искажениям алгоритм распознавания штрих-кода EAN-13

1. Локализация штрих-кода на изображении2. Одна сканирующая линия3. Поиск границ штрих-кода4. Сегментирование5. Сопоставление сегментов с моделью:

23

Page 24: Устойчивый к искажениям алгоритм распознавания штрих-кода EAN-13

1-й шаг:

2-й шаг:

24

Page 25: Устойчивый к искажениям алгоритм распознавания штрих-кода EAN-13

7-й шаг:

Функционал J стремится к минимуму:

25

Page 26: Устойчивый к искажениям алгоритм распознавания штрих-кода EAN-13

До «исправления»:

После «исправления»:

26