Рубрика:
Наука и технологии
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
ПОВАЛЯЕВ П.П., Московский авиационный институт (национальный исследовательский университет), магистр, pavel.povalyev@gmail.com
Оптимизация технологии распознавания для потоковых данных
В статье представлена технология распознавания данных с высокой скоростью. Система позволяет значительно сократить время, затрачиваемое на обработку одного кадра, также повышает качество результата. Для реализации данной технологии был выбран низкоуровневый язык программирования WebAssembly, данное приложение выполняется в браузере и представляет собой переносимое абстрактное синтаксическое дерево. Схема работы «клиент-сервер»
В последнее время технологии распознавания приобретают все большее распространение. Индустрия движется семимильными шагами в направления развития данной сферы технологий, все больше людей вовлекаются в это развитие, и все больше компаний начинают вкладывать средства в исследования и разработку в этой области.
Распознавание широко используется для конвертации книг и документов в электронный вид, для автоматизации систем учета в бизнесе или для публикации текста на веб-странице. Оптическое распознавание текста позволяет редактировать текст, осуществлять поиск слов или фраз, хранить его в более компактной форме, демонстрировать или распечатывать материал, не теряя качества, анализировать информацию, а также применять к тексту электронный перевод, форматирование или преобразование в речь. Оптическое распознавание текста является исследуемой проблемой в областях распознавания образов, искусственного интеллекта и компьютерного зрения.
Существующие онлайн-сервисы по распознаванию текста ориентированы на статичные изображения и зачастую не позволяют работать с видео из браузера без стороннего программного обеспечения. Идея моей работы заключается в создании программного решения, позволяющего распознавать текст на потоковых данных (таких, как видео) с высокой скоростью. Для этой цели я реализую перенос алгоритма и непосредственно вычислительной части на клиентскую машину.
Тем самым будет достигнут уход от клиент-серверной архитектуры в классическом ее понимании, за счет чего сократится время обработки одного кадра и повысится качество результата.
Для оптимизации скорости работы алгоритма и достижения показателей непосредственно в браузере, сходных с исходными показателями в компилируемой среде исполнения, применяется технология WebAssembly. Данная технология является эффективным низкоуровневым языком программирования, выполняющимся в браузере, и представляет собой переносимое абстрактное синтаксическое дерево, обеспечивающее как более быстрый парсинг, так и более быстрое выполнение кода, чем JavaScript.
Поскольку в свободном доступе отсутствуют программные комплексы с данным функционалом, не обладающие серьезными ограничениями, работа достаточно актуальна.
Классической и самой распространенной схемой работы приложений, взаимодействующих с пользователем, является схема «клиент-сервер» (см. рис. 1).
|
Рисунок 1. Схема работы клиент-серверного приложения |
Физически клиент с сервером могут находиться на разных машинах. Сервер обычно представлен сервисом, который обслуживает множество клиентов. В данной особенности кроется первая слабая точка системы. Для пересылки сначала изображения на сервер, а затем данных с сервера обратно требуется, даже при нынешних высоких скоростях сети, довольно много времени, и если для единичного изображения время распознания является важным, но не критическим параметром, то для видео это краеугольный параметр.
Для преодоления этих преград и ускорения работы процесса существует несколько путей (помимо ускорения работы непосредственно самих алгоритмов детектирования распознавания), которые можно условно разделить на две группы:
- Сокращение времени передачи данных между клиентом и сервером.
- Отказ от физического разделения клиента и сервера на разные машины.
Первый подход, несмотря на очевидность и лаконичность решения, имеет существенные ограничения и недостатки. На физическом уровне у любой технологии существует предел скорости передачи данных, что не позволит нам бесконечно компенсировать временные потери. Даже используя самые современные технологии передачи данных, никто не застрахован от разрывов сети. А также сама идея централизованной сети влечет за собой необходимость владельцам сервера поддерживать его вычислительные и коммуникационные возможности в соответствии с ростом числа пользователей.
Примером такой реализации может служить Abbyy FineReader Online. Программа позволяет переводить изображения документов (фотографий, результатов сканирования, PDF-файлов) в электронные редактируемые форматы. В частности, в Microsoft Word, Microsoft Excel, Microsoft Powerpoint, Rich Text Format, HTML, PDF/A, searchable PDF, CSV и текстовые (plain text) файлы.
В основе FineReader – технология оптического распознавания символов ABBYY OCR, которую лицензируют Fujitsu, Panasonic, Xerox, Samsung и другие. Но существенным плюсом данного подхода является то, что скорость работы алгоритма распознавания не зависит от мощности пользовательской системы.
Второй подход лишен перечисленных недостатков первого. Он подразумевает практически мгновенный обмен информацией между клиентом и сервером за счет того, что они физически находятся в одном месте.
Такой подход возможен при использовании локального программного обеспечения, установленного на клиентской машине. Помимо высокой скорости работы, данный подход демонстрирует высокую надежность. Но также с ним сопряжен ряд трудностей, таких как сложность дистрибуции, отсутствие кроссплатформенности и возможности контроля актуальной версии. Для решения этих проблема было предпринято решение переноса исполнения всей логики в среду веб посредством реализации алгоритмов на asm.js и WebAssembly.
Текст на видео можно логически классифицировать на две категории: графический текст, который непосредственно наносится при видеообработке или монтаже, и сценический текст, который содержится на предметах, захваченных на видео. Как правило, сценический текст появляется на видео случайно, и его распознавание служит лишь для целей навигации, наблюдения и отслеживания конкретного объекта в пространстве, нежели индексации и извлечения информации.
Примерами же графического текста могут служить различные заголовки, субтитры, время и отметка расположения, имена людей и спортивные результаты. Иными словами, можно сказать, что сценический текст – это естественный текст на видео (то, что непосредственно содержится на видео), а графический текст – это искусственный текст (тот, который наносится на видео для каких-либо целей), при распознавании которого можно извлечь определенную информацию.
Многие работы в компьютерном зрении в области детектирования текста ориентированы на распознавание и локализацию обоих видов текста на видео, что оказывается значительно сложнее, чем детектирование лишь графического текста. Основные сложности вызваны распознаванием сценического текста, поскольку здесь возникает ряд очень важных проблем: естественный текст на видео может быть наклоненным, частичным, расплывчатым, плохо освещенным и т.д. Все это выливается в низкую скорость работы имеющихся решений (около одного кадра в секунду).
В настоящее время существует множество методов для решения поставленных задач.
Среди методов так называемой группы градиентов, границ и уголков можно выделить подход Л. Райнера, который предложил «интегрировать результаты, полученные с помощью многослойной нейронной сети с прямой связью, через которую пропускаются градиенты изображения разных масштабов, в единую карту признаков».
Еще один подход базируется на классификации так называемых структур (англ. texture-based). Эти методы основаны на предположении, что текст на изображении проявляет некие структурные особенности, благодаря чему можно легко отличить его от фона. Эта категория методов пытается решить проблему ложных срабатываний (англ. False alarm) и сложных фонов.
Данный подход использует машинное обучение и менее зависим от эвристик. Обычно, чтобы извлечь структурные данные текста на изображении, используются фильтр Габора, вейвлеты, быстрое преобразование Фурье и т.д. Например, Л. Доерманн и О. Киа предложили использовать в качестве особых точек интереса (англ. the features) моменты вторых и третьих порядков в пространстве вейвлетов Хаара и нейронную сеть как классификатор.
А. Джейн предложил «использовать фильтр Габора в качестве особенностей», поскольку преобразование Фурье дает лишь глобальную оценку частот на изображении, тогда как фильтр Габора «локализует» частоту на изображении. Как правило, методы, основывающиеся на структурах, используют дорогостоящие особенности изображения, а также они чувствительны к типу шрифта, его размеру и похожим на текст особенностям фона.
Среди методов так называемых связанных компонент можно выделить подход Р. Джианга, при котором изображение сначала разбивается на компоненты связанности, используя кластеризацию по цвету. Чтобы отделить текст от фона, используется двухуровневая модель классификации, в которой все компоненты связанности по цвету проходят каскадный классификатор и оставшиеся после этого компоненты классифицируются SVM. Во всех методах, основанных на анализе цвета, используется кластеризация. Следовательно, метод связанных компонент хорош, как правило, для локализации однородного текста.
Все вышеперечисленные методы выполняют пространственный (spatial) анализ расположения текста на видео, определяя координаты текстовых блоков в рамках декартовой системы координат. Для графического текста на видео можно рассматривать также временные рамки, в пределах которых текстовые области на видео остаются статичными. Это разумно по двум причинам.
Во-первых, если, например, рассматривать одночасовое видео с количеством кадров в секунду, равным 30, то придется выполнить обработку 108 000 изображений, что является вычислительно дорогим процессом. Намного разумнее трудоемкие операции проводить уже не над каждым кадром, а лишь один раз для всех кадров, где текст остается статичным.
Во-вторых, корреляция текста между кадрами позволяет более точно проводить работу на этапе локализации и сегментации текста, работа будет производиться с информацией, имеющейся сразу на нескольких кадрах.
Х. Ли предложил свой способ локализации и сегментации, который учитывает приведенные выше соображения. Однако временная локализация там производится, лишь основываясь на результатах уголкового детектора, что на практике не всегда дает точные результаты. Метод Х. Ли и В. Ванг основывается на предустановленном для каждого конкретного набора тестовых данных ожидаемом параметре шрифта. Однако данный алгоритм несколько неэффективно работает на видео больших разрешений и проводит слишком «грубую» локализацию.
Рассмотрим этапы разработки алгоритмов.
При разработке алгоритма за основу был взят подход, предложенный Х. Ли и В. Ванг. По сравнению с их работой данный алгоритм не потребует предварительного задания параметров для каждого отдельного набора тестовых данных. Предложенный ими метод был оптимизирован в части скорости (контуры текста отфильтровываются еще до вычислительно затратного этапа работы с подконтурами), предложена оптимизация применения детектора уголков Харриса для рассматриваемого случая, добавлен способ динамического определения размеров окна для поиска однонаправленных подконтуров (размеры окна устанавливались исходя из конкретного набора данных вручную), скорректирован способ определения временных границ расположения текста на видео, а также выбран более точный метод для построения границ строк с текстом (bounding boxes), базирующийся на основе проекционных данных.
Важно отметить, что ключевым моментом, определяющим хорошую скорость алгоритма, является то, что шаг по локализации текста и, по необходимости, дальнейшая сегментация осуществляются не на уровне конкретного кадра, а на уровне набора кадров, где текст остается статичным в течение определенного времени (как минимум 0,6 секунды).
Также рассматривается всего три кадра в секунду, что намного снижает трудоемкость процесса и позволяет приблизить алгоритм по скорости к так называемому режиму реального времени (real time). Кроме того, оба детектора, используемые в алгоритме (Харриса и Канни), основаны на градиентах изображения, которые вычисляются всего один раз. Также предложена оптимизация применения детектора уголков Харриса.
На рис. 2 проиллюстрирован подход, использованный в работе. Для каждого кадра, взятого с частотой два кадра в секунду, проводится «умная» детекция краев, после которой остаются контуры, вероятнее всего, являющиеся текстовыми.
Рисунок 2. Модель разрабатываемого алгоритма работы информационной системы
Затем проводится так называемая грубая локализация на основе краев и уголков, при которой получается информация для каждого кадра, в каких регионах видео присутствует текст.
Далее проводится временная локализация, позволяющая определить, в каких временных рамках текст остается статичным на видео (далее по тексту будем называть эти промежутки времени клипом).
После этого происходит интеграция всей полученной информации, содержащейся на каждом кадре клипа, чтобы провести более точную пространственную локализацию на основе проекционных данных.
Для того чтобы многократно выиграть в скорости и использовать корреляцию фона на соседних кадрах, разумно рассматривать лишь три кадра в секунду (ведь частота изменения графического текста не так уж и велика). Разбиение на кадры производится равномерно по времени, т.е. новый кадр поступает на вход каждые 0,33 секунды.
Далее применяется фильтр Гаусса, чтобы избавиться от мелких шумов. Ядро фильтра выбрано независимо от размера видео (3 * 3). Применение линейного фильтра – относительно быстрая операция.
Затем изображение переводится в оттенки серого (англ. grayscale) по формуле яркости, используемой в YUV: y = 0,587 * green + 0,299 * red + 0,114 * blue.
Это позволит работать не с тремя каналами по отдельности, а только с одним. После применяется детектор границ Канни, который базируется на градиентах, вычисляемых оператором Собеля всего раз в ходе алгоритма. Оператор Собеля применяется с ядром размера 3 в вертикальном и горизонтальных направлениях ко всему изображению.
Время работы алгоритма напрямую зависит от количества граничных пикселей –например, 25 000 граничных пикселей (с фрейма 1280*720) на машине Intel Core i5 при данных пороговых значениях алгоритм детектирует за 0,03 секунды.
Следующим шагом является получение контуров на основе двоичной карты (единицами отмечены граничные пиксели: E (x,y) = 1), полученной на предыдущем этапе с помощью детектора Канни. Для поиска контуров границ выбран алгоритм, предложенный С. Сатоши, который в итоге дает маршрут (в том смысле, что все его соседние точки являются восьмисвязными и в ходе обхода маршрута посещаются все точки границы). Данный алгоритм работает вполне эффективно даже при большом числе искомых контуров. Например, на набор из 200 контуров в среднем уходит 0,005 секунды.
Далее применяется фильтр по всем контурам, целью которого является отсечение нестатических контуров, которые на видео присутствуют менее чем 0,6 секунды, что соответствует поставленной задаче. Этот фильтр учитывает не только положение контура, но и направление градиента. Это значительно ускоряет метод, предложенный Х. Ли и В. Ванг, ввиду того, что дальнейшая работа с подконтурами (которых очень большое число) контуров уменьшится в несколько раз. Происходит округление направления градиента Φ (x, y) в одном из четырех направлений (отсчет углов начинается с направления 0Y по часовой стрелке).
Четыре основных направления Φi (i = 1..4) проиллюстрированы на рис. 3.
Рисунок 3. Основные направления градиента
Временная локализация устанавливает временные границы видео, в пределах которых текст остается статичным. Точность на данном этапе напрямую зависит от точности на предыдущем, так здесь будет использоваться полученная ранее информация о распределении контуров. Основная проблема заключается в том, что алгоритм должен допускать небольшие искажения контуров на тех кадрах, где текст остается статичным (например, из-за смены яркости фона), но при этом реагировать на появление новых текстовых блоков, ведь иначе текст будет неправильно локализован на всех наборах кадров, где текст остается статичным.
Для достижения поставленной цели был выбран следующий подход. Происходит сравнение кадра с последним кадром последнего имеющегося «клипа». Если результат сравнения удовлетворяет определенному критерию, происходит добавление кадра в «клип», иначе создается новый «клип» с этим кадром в начале.
Для того чтобы при тестировании соблюсти ограничения, накладываемые на текст исходя из задачи, вся выборка видео должна быть вручную размечена. Также стоит отметить, что тестирование проходит как по временным границам расположения текста на видео (так как этот этап влияет на все последующие), так и по пространственным. Кроме того, должна быть измерена вычислительная производительность локализации.
Начальное тестирование алгоритма проводилось на четырех видео в разрешении 1280х720 пикселей, чтобы лучше протестировать вычислительную эффективность метода, два из которых (1-е и 4-е) являются отрывками из фильмов с наложенными субтитрами, пояснительными надписями и титрами, а два (2-е и 3-е) – новостные ролики с двух разных каналов. Вся разметка видео была сделано вручную, что, конечно, очень трудоемко. Результаты эксперимента приведены на рис. 4, где указаны величины для пространственной и временной локализации.
Рисунок 4. Результаты, полученные при использовании четырех видеороликов
Можно заметить, что данный алгоритм порождает больше ложных срабатываний, однако чуть реже «пропускает» истинно текстовые блоки. Это связано с динамическим определением размера окна поиска на этапе фильтрации контура. Размеры окна поиска для некоторых, похожих на текстовые, контуров слишком велики, что препятствует их фильтрации.
Рассмотрим небольшие моменты разработки программы.
Хранилища и экземпляры. Выполнение работает относительно глобального хранилища s. Верхняя часть рис. 5 определяет синтаксис представлений магазинов и других объектов времени выполнения. Хранилище – это запись списков экземпляров модулей, таблиц и воспоминаний, которые были выделены в нем. Индексы в эти списки можно рассматривать как адреса, и «распределение» просто добавляется к этим спискам.
Рисунок 5. Правила сокращения на малоэтапных шагах
Модуль должен быть создан, прежде чем он может быть использован. Результатом является инициализированный экземпляр. Рис. 5 представляет такой экземпляр как запись сущностей, которые он определяет. Таблицы и записи хранятся в глобальном хранилище, и на них ссылается только адрес, так как они могут использоваться несколькими экземплярами. Представленые экземплярны таблиц – это просто список замыканий cl, а памяти – список байтов. B.
Связывание. Связывание может создавать несколько модулей и использовать экспорт одного из них в качестве импорта в другой. Это позволяет экземплярам вызывать функции друг друга, совместно использовать память или таблицы функций. Импортированные глобальные переменные могут служить параметрами конфигурации для связывания.
Рисунок 6. Правила типизации В браузере JavaScript API также позволяет внешне создавать или инициализировать ячейки памяти или таблицы или обращаться к экспортированным ячейкам памяти и таблицам. Они представлены как объекты выделенных классов JavaScript, и каждая память поддерживается стандартным ArrayBuffer
Помимо локализации текста, данный алгоритм дает возможность для дальнейшей более точной сегментации текста на видео, ведь в результате работы, помимо точных пространственных границ текста, можно получить временные рамки появления текста, что в несколько раз может повысить точность сегментации путем использования корреляции текста на тех кадрах, где он остается статичным.
Данное решение обладает неплохой скоростью работы, что позволяет использовать его даже на видео высоких разрешений. Все это еще раз демонстрирует, что использование пространственно-временного анализа является основополагающим принципом достижения хорошей вычислительной эффективности для локализации графического текста на видео. eof
- http://rostjournal.ru/?p=223.
- http://moodle.dstu.edu.ru/pluginfile.php/156283/mod_resource/content/1/Исследование%20принципов%20локализации%20текста%20на%20изображениях%20сложных%20графических%20сцен.pdf.
- https://www.intuit.ru/studies/courses/599/455/lecture/10158.
- https://tuhub.ru/posts/javascript-moduli-rukovodstvo-dlya-nachinayushhih.
Ключевые слова: распознавание, компьютерное зрение, статичные изображения, потоковые данные, WebAssembly, передача данных, разрыв сети, кроссплатформенность, детектирование текста, локализация, сегментация, клиент-сервер, набор кадров.
Optimization of recognition technology for streaming data
Povalyaev P.P., Moscow Aviation Institute (National Research University), Master, pavel.povalyev@gmail.com
Abstract: The article presents the technology of data recognition with high speed. The system allows to significantly reduce the time spent on processing one frame, and also improves the quality of the result. To implement this technology, a low-level WebAssembly programming language was chosen, this application runs in the browser and is a portable abstract syntax tree. Scheme of work "client-server".
Keywords: Recognition, computer vision, static images, streaming data, WebAssembly, data transfer, network disruption, cross-platform, text detection, localization, segmentation, client-server, frame-recruitment.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|