Характеристики для оценки рукописной подписи с использованием компьютерного зрения OpenCV

NovaInfo 46, с.75-79
Опубликовано
Раздел: Технические науки
Просмотров за месяц: 0
CC BY-NC

Аннотация

В статье поднят вопрос актуальности данной темы, а также, рассмотрены характеристики, по которым можно оценить рукописную подпись с использованием компьютерного зрения OPENCV. Каждой характеристике дано описание и предоставлен пример программного кода на python.

Ключевые слова

НАЖИМ ПОДПИСИ, НАКЛОН ПОДПИСИ, РАЗМЕР ПОДПИСИ, CЛОЖНОСТЬ ПОДПИСИ

Текст научной работы

В современном информационном обществе большое внимание уделяется совершенствованию человеко-машинного интерфейса, который должен обеспечивать эффективную обработку данных и знаний простыми, быстрыми и доступными способами [1-8]. Одним из способов его организации является рукописный ввод (ввод текста, подписи, рисунков и т.д.). Его применение не требует специального обучения пользователя, привычно, оперативно, удобно. При этом неотъемлемой частью средств человеко-машинного интерфейса является математическое и программное обеспечение, позволяющее перейти от первичных низкоуровневых данных к непосредственно данным, описывающим вводимую информацию. Одним из современных направлений совершенствования такого типа интерфейса является разработка и исследование математического и программного обеспечения оценки подписи.

Характеристики, по которым можно оценить подпись:

  1. Cложность подписи (количество элементов);
  2. Размер;
  3. Нажим;
  4. Наклон.

Рассмотрим каждый пункт алгоритма подробнее:

Сложность подписи

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

Пример программного кода:

if (size_signature == "big" and i+j7>250): print "The signature is hard"if (size_signature == "big" and i+j<250): print "The signature is easy"if (size_signature == "small" and i+j7>40): print "The signature is hard"if (size_signature == "small" and i+j<40): print "The signature is easy"

Определение размеров подписи

Размеры подписи находятся путем установления высоты и ширины максимального контура, присутствующего на изображении. В цикле обходится массив всех контуров, проверяются условия максимального значения высоты/ширины текущего контура. В итоге, зная ширину и высоту подписи, определяем её размер, как среднее значение её высоты и ширины, если данное значение больше 300 px, то считаем что размер подписи большой, иначе маленький.

Пример программного кода:

width = 0 # высота подписиheight = 0 # ширина подписиfor cnt in cnts:        x, y, w, h = cv2.boundingRect(cnt)        if (width<w): width = w        if (height<h): height = hsize_signature = "" # размер подписиsize_sign = (width+height)/2if (size_sign7>=300): size_signature = "big"if (size_sign<300): size_signature = "small"

Определение нажима подписи

Нажим подписи определяется как значение высоты минимального контура, присутствующего на изображении.

Пример программного кода:

for cnt1 in cnts1:        x, y, w, h = cv2.boundingRect(cnt1)        if (pressure7>h): pressure = h

Определение наклона подписи

Наклон линии определяется следующим образом (Рисунок 1):

</strong> Определение наклона линии
Рисунок 1. Определение наклона линии

Наклон подписи определяется как средний наклон всех линий. Наклон каждой линии последовательно обрабатывается в цикле.

Пример программного кода:

  • = 0 # среднее значение наклона всей подписи.
if houghL is not None:for x1, y1, x2, y2 in houghL[0]:                       if ((x1<x2 and y17>y2) or (x17>x2 and y1<y2)):  incline += 1                       if ((x1<x2 and y1<y2) or (x17>x2 and y17>y2)):  incline -=1

Заключение

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

Читайте также

Список литературы

  1. Рыбанов А.А. Моделирование динамики процесса оценивания ответов для тестовых заданий на установление соответствия при дистанционном тестировании знаний // Качество. Инновации. Образование. 2008. № 1 (32). С. 2-9.
  2. Рыбанов А.А. Количественные оценки эффективности процесса формирования ответов на тестовые задания при дистанционном тестировании знаний // Качество. Инновации. Образование. 2006. № 5. С. 44-52.
  3. Рыбанов А.А. Оценка качества текстов электронных средств обучения // Школьные технологии. 2011. № 6. С. 172-174.
  4. Кузьмин А.А., Рыбанов А.А. Исследование методов количественной оценки схем реляционных баз данных // Успехи современного естествознания. 2011. № 7. С. 137-138. 5. Рыбанов А.А. Алгоритмическое и математическое обеспечение автоматизированной системы оценки качества учебного процесса по контрольным картам
  5. // Вестник компьютерных и информационных технологий. 2009. № 2. С. 30-36.
  6. Rybanov A.A. Set of criteria for efficiency of the process forming the answers to multiple-choice test items // Turkish Online Journal of Distance Education. 2013. Т. 14. № 1. С. 75-84.
  7. Рыбанов А. Количественные метрики для оценки качества квантования учебной информации // Педагогические измерения. 2013. № 4. С. 3-12.
  8. Макушкина Л.А., Рыбанов А.А., Приходько Е.А. Электронный учебник как знаковое средство построения и организации обучения // Актуальные вопросы профессионального образования. 2009. Т. 6. № 10 (58). С. 98-100.

Цитировать

Абрамова, О.Ф. Характеристики для оценки рукописной подписи с использованием компьютерного зрения OpenCV / О.Ф. Абрамова, А.С. Лебедев. — Текст : электронный // NovaInfo, 2016. — № 46. — С. 75-79. — URL: https://novainfo.ru/article/6233 (дата обращения: 27.01.2022).

Поделиться