Научная статья на тему 'ИСПОЛЬЗОВАНИЕ АЛГОРИТМОВ РАСПОЗНАВАНИЯ СИМВОЛОВ НА БАЗЕ ДЕСКРИПТОРОВ ФУРЬЕ И МАСОК КВАДРАТИЧНОГО ОТКЛОНЕНИЯ'

ИСПОЛЬЗОВАНИЕ АЛГОРИТМОВ РАСПОЗНАВАНИЯ СИМВОЛОВ НА БАЗЕ ДЕСКРИПТОРОВ ФУРЬЕ И МАСОК КВАДРАТИЧНОГО ОТКЛОНЕНИЯ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
17
3
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ОПТИЧЕСКОЕ РАСПОЗНАВАНИЕ / БИБЛИОТЕКА АЛГОРИТМОВ / OPEN CV / ДЕСКРИПТОРЫ ФУРЬЕ / МАСКИ КВАДРАТИЧНОГО ОТКЛОНЕНИЯ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Туркменова Р.Т.

В статье рассматриваются алгоритмы распознавания на базе дескрипторов преобразований Фурье и масок квадратичного отклонения. Так же в статье указаны описание и причины выбора библиотеки Open CV.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «ИСПОЛЬЗОВАНИЕ АЛГОРИТМОВ РАСПОЗНАВАНИЯ СИМВОЛОВ НА БАЗЕ ДЕСКРИПТОРОВ ФУРЬЕ И МАСОК КВАДРАТИЧНОГО ОТКЛОНЕНИЯ»

тапкан, тауып кана коймай бай api керкем, оралымды да орынды колданылган ap6ip ce3ÍMeH окырманды e3ÍHe баурай бшген «Жапандагы жалгыз уй» романынын, мазмун теpецдiгi, такырыбы мен идеясынын, ашылгандыгын кepдiк.

ПайдаланылFан здебиеттер

1. Жунюов С. Жапандагы жалгыз уй. - Алматы: Атамура, 2005.

Туркменова Р.Т. магистрант Самаркандский филиал Ташкентский университет информационных технологий

Узбекистан, г. Самрканд Ахатов А.Р., доктор техничеких наук научный руководитель, доцент кафедра «Информационных технологий»

Самаркандский филиал

ТУИТ

Узбекистан, г. Самрканд ИСПОЛЬЗОВАНИЕ АЛГОРИТМОВ РАСПОЗНАВАНИЯ СИМВОЛОВ НА БАЗЕ ДЕСКРИПТОРОВ ФУРЬЕ И МАСОК КВАДРАТИЧНОГО

ОТКЛОНЕНИЯ

Аннотация: в статье рассматриваются алгоритмы распознавания на базе дескрипторов преобразований Фурье и масок квадратичного отклонения. Так же в статье указаны описание и причины выбора библиотеки Open CV.

Ключевые слова: оптическое распознавание, библиотека алгоритмов, Open CV, дескрипторы Фурье, маски квадратичного отклонения

При создании программного обеспечения для распознавания символов большое значение имеет выбор движка оптического распознавания и библиотеки. Легче всего конечно брать готовый движок, т.к., уже готовые движки для оптического распознавания дают меньше всего «багов» при работе программы. Так же для реализации ПО распознавания символов лучше всего конечно подходит использование библиотек Open CV.

Библиотека Open CV - библиотека алгоритмов для обработки изображений, наиболее подходящая для программы распознавания символов. При том, что Open CV является самой большой библиотекой по ширине тематики среди подобных библиотек (например, Halcon, libmv и т.д.), она также является самой низкоуровневой библиотекой среди библиотек компьютерного зрения. Но именно обширность тематики позволяет создавать сложные программы распознавания с помощью низкоуровневой Open CV. Написанная на языке C/C++, библиотека является отличным подспорьем для реализации программ написанных для мобильных платформ Android, IOS на языках Objective C и Swift.

При создании программы распознавания символов на базе Open CV, наиболее интересной частью среди всех уровней обработки и распознавания является распознавание символов. Это «challenge problem» при создании программы — нет ни одного алгоритма, претендующего на «самые оптимальные» показатели распознавания. Существуют совсем простые методы, опирающиеся на эвристику (т.е. попиксельное сравнение рисунка с эталонными изображениями), есть более сложные, например, с использованием нейронных сетей, но никакие не гарантируют не то что «идеального», а даже просто «хорошего» качества распознавания.

Довольно естественным кажется решение использовать несколько подсистем распознавания символов и выбора агрегатного результата:

если = метрическое значение того, что алгоритмом 1 область А распознается как символ S, а р2 = метрическое значение того, что алгоритмом 2 область А распознается как символ S, то итоговое значение

Р = /(Pi,Pz)

На основе вычислений выше среди всех существующих алгоритмов было выбрано 2 алгоритма, которые обладают удобно сравниваемыми значениями, высокой скоростью и достаточной стабильностью:

• распознавание на базе дескрипторов Фурье;

• маски квадратичного отклонения точек.

Распознавание символов на базе дескрипторов Фурье.

Рассмотрим распознавание символов на базе дескрипторов Фурье.

Подготовка:

• Получение внешнего контура объекта;

• Преобразование координат точек контура

(х;у)

в комплексные числа

x + iy;

• Дискретное преобразование Фурье набора этих чисел;

• Отбрасывание высокочастотной части спектра.

При выполнении обратного преобразования Фурье мы получаем набор точек, описывающий исходную фигуру с заданной степенью аппроксимации (N — количество оставленных коэффициентов):

Операция «распознавания» заключается в вычислении дескрипторов Фурье для распознаваемой области и сравнение их с предопределенными наборами, отвечающими за поддерживаемые символы. Чтобы получить метрическое значение из двух наборов дескрипторов необходимо выполнить операцию, называющуюся сверткой:

d = sum((d1 [£] — d2 [i]) * w[i], i = 1, N),

где d± и d2 — наборы дескрипторов Фурье,

w — вектор весов для каждого коэффициента (мы получали его машинным обучением).

Значение свертки инвариантно относительно масштаба сравниваемых

символов. Кроме того, функция устойчива к высокочастотному шуму (случайных пикселях, не меняющих «геометрию» фигуры).

В этом случае очень сильно помогает использование OpenCV в реализации этого метода. Есть готовая функция получения внешних контуров объектов:

cv:: findContours(image, storage, CV_RETR_EXTERNAL);

И есть функция вычисления дискретного преобразования Фурье:

cv:: dft(src, dst);

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

Преимущество использования метода в том, что он отлично подходит для рукописных символов, т.к. другие похожие методы дают менее качественный результат. Однако этот метод плохо пригоден для символов небольшого разрешения из-за того, что высокочастотный шум или «лишние» пиксели становятся большими по отношению к изображению целиком и начинают влиять на те коэффициенты, которые мы не отбрасываем. Конечно как вариант можно пытаться уменьшить количество сравниваемых коэффициентов, но тогда сложнее делать выбор из схожих небольших символов. И поэтому можно использовать еще один метод распознавания.

Распознавание символов на базе масок квадратичного отклонения.

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

Для каждой точки изображения 1 считается штраф: минимальное расстояние до точки изображения 2 того же цвета. Соответственно, метрика — это просто сумма штрафов с нормализующим коэффициентом.

Такой метод значительно более устойчив на изображениях небольшого разрешения с наличием шума. Для изображения с длиной стороны п отдельные пиксели в числе до к процентов не «испортят» метрику более чем к * п в худшем случае, а в практических — не более чем на к, т.к. в большинстве случаев прилегают к «правильным» пикселям изображения.

Конечно у этого метода, как и любого другого, есть свой минус - будет являться низкая скорость работы. Для каждого пикселя (0(п2)) высчитывается минимальное расстояние до пикселя того же цвета другой картинки (0(п2)), что дает (0(п4)).

Эта проблема легко «лечится» предвычислением.

Построим две маски

penalty_white(x, у) и penalty_Ъ1аск(х, у),

в которых будут храниться предвычисленные значения штрафов за то, что пиксель (х,у) оказывается white или black соответственно. Тогда процесс вычисления метрики укладывается в 0(п2):

for (inty = 0; y < img.cols; y++)

{

for (int x = 0; x < img.rows; x++) {

penalty += (image(y,x) == BLACK) ?penalty_black(y,x) :penalty_white(y,x); }

}

Остается только хранить маски (penalty_white, penalty_black) для каждого написания каждого символа и в процессе распознавания их перебирать. Сравниваемые изображения должны быть одинакового разрешения, поэтому чтобы привести одно к другому возможно потребуется функция:

cv:: resize(temp, temp, cv:: Size(size_x, size_y), 0.0,0.0);

Значение распознавания — не один элемент, а вся таблица, из которой мы знаем, что с самой большой вероятностью — это символ «C», но возможно это «0», «6», «O», или «c». А еще вероятно это открывающая скобка.

В статье я описала два алгоритма распознавания на основе библиотеки Open CV. Метод дескрипторов Фурье является наиболее легким и удобным, в отличие от метода масок квадратичного отклонения и больше всего подходит мне для создания ПО распознавания текстов для мобильных платформ Android и IOS.

Использованные источники:

1. «Алгоритмическое и программное обеспечение для распознавания фигур с помощью Фурье-дескрипторов и нейронной сети», Тоан Тханг Нгуен, Известия Томского политехнического университета. 2010. Т. 317. № 5

2. Курс лекций «Введение в разработку мультимедийных приложений с использованием библиотек Open CV и IPP» на сайте ИНТУИТ, http: //www.intuit.ru/studies/courses/10621/1105/info

3. Построение системы оптического распознавания структурной информации на примере Imago OCR.

Тусупбекова А. О. магистрант 2 курса факультет естественных наук Евразийский национальный университет им. Л.Н.Гумилева

Джаналеева К.М. научный руководитель Казахстан, г. Астана

ВЛИЯНИЕ АНТРОПОГЕННЫХ ФАКТОРОВ НА СОСТОЯНИЕ РЕКИ ЕСИЛЬ НА ТЕРРИТОРИИ РЕСПУБЛИКИ КАЗАХСТАН

В статье даны сведения о водопотреблении водных ресурсов бассейна реки Есиль отраслями экономики. Приведены данные о качестве воды и динамика изменения водных ресурсов в Казахстанской части бассейна реки

i Надоели баннеры? Вы всегда можете отключить рекламу.