Pull to refresh
79
0

Пользователь

Send message

Фильтр Гаусса на стероидах: секреты ускорения вычислений

Level of difficultyMedium
Reading time8 min
Views5.6K

Привет, Хабр! Представьте, что вы пытаетесь обработать фотографию высокого разрешения на вашем смартфоне — добавить размытие, убрать шум или улучшить качество изображения. Кажется, задача проста, но за кулисами работает алгоритм, требующий немало вычислительных ресурсов. Речь идет о фильтре Гаусса – одной из самых популярных операций в области компьютерной обработки изображений.

Для каждого пикселя нужно выполнить множество операций сложения и умножения, особенно если размер фильтра велик. Это становится серьёзным препятствием, когда есть требования к работе в режиме реального времени, например, при обработке видео, адаптации для беспилотных летательных аппаратов и пр. Но что, если сказать, что такие вычисления можно ускорить в десятки раз с незначительной потерей качества?

Читать далее

BM YOLO: что, если вам не нужно умножать, чтобы распознавать?

Level of difficultyMedium
Reading time4 min
Views2.9K

Современные технологии глубокого обучения проникают в самые разные области нашей жизни — от автономных автомобилей до систем видеонаблюдения. Однако высокая вычислительная сложность традиционных нейронных сетей остается серьёзным препятствием на пути к их широкому применению на мобильных устройствах и встраиваемых системах.

Группа исследователей из Smart Engines представила на международной конференции ICMV 2023 инновационное решение — биполярную морфологическую нейронную сеть YOLO (Bipolar Morphological YOLO, BM YOLO), которая сочетает в себе энергоэффективные вычислительные подходы и проверенную временем архитектуру YOLO для детектирования объектов.

Читать далее

Threshold U-Net: как мы отказались от высокого разрешения и выиграли в скорости бинаризации

Level of difficultyMedium
Reading time7 min
Views1.1K

Хоть современный ИИ уже почти в состоянии написать симфонию и превратить холст в шедевр, некоторые простые задачи все еще не так просты, если наложить ограничения на решение. Так как главной задачей у нас, в Smart Engines, является распознавание и оцифровка документов, то для нас ограничениями являются скорость работы и возможность запуска системы на вычислительно слабых конечных устройствах. В этой статье мы вспомним об одной классической задаче обработки изображений – бинаризации документов. А также расскажем, как нам удалось существенно оптимизировать нейросетевую модель бинаризации, сохранив исходное качество, и причем тут современные модели детекции текста.

Читать далее

Фильтр Гаусса на стероидах: подход на точность вычислений

Level of difficultyMedium
Reading time7 min
Views1.9K

Hello, world! Это вторая часть хабростатьи Smart Engines про быструю фильтрацию изображений. Да-да, создавая топовый продукт по распознаванию документов, нам приходится разбираться в методах обработки изображений на экспертном уровне (иначе не получилось бы распознать изображение паспорта за 150 мс на мобильном телефон). В предыдущей части мы начали обсуждать быстрые аппроксимации гауссовского фильтра, которым была посвящена наша недавняя публикация в научном журнале MDPI Applied Sciences [1]. О том, как работает оригинальный фильтр Гаусса, мы уже писали, сейчас мы только напомним о его использовании всюду, где возникает обработка изображений: от редактирования фотографий на смартфоне – для размытия фона за объектом в режиме "портрет", до анализа рентгеновских снимков – чтобы убрать шум и улучшить читаемость изображения.

Читать далее

Квантованные БМ сети: упрощаем типы данных

Level of difficultyHard
Reading time6 min
Views465

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

Биполярные морфологические (БМ) сети – нейронные сети от Smart Engines практически без умножения. Мы уже показали, что они успешно справляются с задачами классификации изображений и поиска объектов на изображениях. Однако для достижения высокой вычислительной и энергоэффективности важно не только максимально упростить используемые операции, но и взять максимально простой и компактный тип данных, то есть отквантовать нейронную сеть. Так что насчет квантования БМ сетей?

Читать далее

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

Level of difficultyEasy
Reading time7 min
Views1.1K

Привет, Хабр! Вы прекрасно знаете, что мы в Smart Engines непрерывно совершенствуем наши системы распознавания российского паспорта и других документов. Вместе с этим мы постоянно расширяем список документов, которые могут быть распознаны при помощи наших решений, – и будем делать это и дальше. Но что если бизнесу нужно оперативно настроить распознавание нового корпоративного документа с жесткой структурой? Сегодня такая потребность есть практически у любой организации.

Можно прийти с этой задачей к нам, и мы обязательно поможем. Но есть и альтернативный сценарий – встроить возможность настройки распознавания к себе. Для этого мы выпустили специальный инструмент – дизайнер форм. С ним ждать никого не придется, а добавлять распознавание новых форм можно будет по мере их появления, буквально день в день. О нем мы сегодня и поговорим.

Читать далее

Томографическая реконструкция реактивного двигателя в сборе: как мы это сделали?

Level of difficultyMedium
Reading time7 min
Views2.9K

Приём, Хабр! На связи отдел компьютерной томографии Smart Engines. Сегодня хотим поделиться нашими результатами по КТ-исследованиям реактивных двигателей, рассказать о том, почему недостаточно просто взять и измерить, и как нам удалось не потерять лопасти.

Под катом – красивые трехмерные изображения реактивного двигателя, КТ взорвавшегося двигателя, а также ответ на вопрос, стоит ли верить своим глазам.

Читать далее

Как устроены 4.6-битные сети: идея и имплементация

Level of difficultyMedium
Reading time8 min
Views3.6K

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

Читать далее

Smart Tomo Engine 2.0. Выход на новый уровень

Level of difficultyMedium
Reading time7 min
Views2.9K

В сегодняшней статье речь пойдет о Smart Tomo Engine 2.0  – новой версии нашего продукта реконструкции трехмерных объектов из набора их томографических проекций (рентгенограмм). По сравнению с предыдущей версией у новой выше качество получаемых изображений, существенно повышено быстродействие, улучшена технологическая совместимость с программами анализа трехмерных данных и с различными видами томографов. Заходите под кат, чтобы увидеть работу новой версии STE на примере реконструкции цветов (в честь Международного женского дня).

Читать далее

Распознавание корпоративных документов: как не утонуть в море бумаг?

Reading time7 min
Views3.2K

Мы подсчитали, что ручной ввод данных из типовых форм занимает 6–7 часов в день. Автономная система Smart Document Engine на смартфоне справляется с подобной задачей буквально за минуты. В этой статье мы расскажем о самых эффективных бизнес‑кейсах применения нашей мобильной OCR.

Читать далее

MIDV-2020: как мы создали крупнейший датасет  документов, удостоверяющих личность

Reading time8 min
Views5.1K

В этой статье мы хотим рассказать как мы создали крупнейший на данный момент набор искусственно созданных документов с большим разнообразием типов документов, их содержания и условий съемки. Каждый из документов имеет уникальные (хоть и выдуманные) значения текстовых полей, уникальную подпись и уникальные искусственно созданные лица.

Читать далее

Эволюция баркода

Reading time17 min
Views13K
Баркод, безусловно, относится к одному из тех изобретений человечества, которые изменили течение нашей жизни. Благодаря появлению штрихового кодирования и его последующей эволюции, многие обыденные действия не только значительно упростились и ускорились, но иногда и приобрели неожиданные формы. В процессе нашей деятельности по разработке и улучшению алгоритмов интеллектуального распознавания документов (IDR) и движка распознавания баркодов Smart BarcodeReader мы постоянно систематизируем знания в предметной области. Понимание того, как развивается технология, позволяет нам совершенствовать наши разработки, делать их более быстрыми, точными и эффективными. Сегодня мы расскажем о том, как эволюционировал (и продолжает эволюционировать) баркод от линейного черно-белого рисунка к многомерной конструкции.


Читать дальше →

Как мы в Smart Engines учили Sailfish OS распознаванию

Reading time7 min
Views6.1K
Smart Engines и Sailfish OS

Всем привет! Как вы уже знаете по нашим статьям, мы в Smart Engines занимаемся распознаванием, причем распознавать мы стараемся на чем угодно и в любых условиях. Мы поддерживаем все популярные операционные системы: iOS, Android, Windows, Linux, MacOS, Solaris. Поддерживаем мы и отечественного производителя: Эльбрус и AstraLinux. Наши алгоритмы оптимизированы под ARMv7-v8, AArch64, x86, x86_64, SPARC, E2K, MIPS.


Поэтому, когда мы увидели нарастающую популярность российской операционной системы Sailfish Mobile OS RUS, мы не смогли обойти ее стороной. Sailfish Mobile OS RUS — это POSIX-совместимая операционная система для мобильных устройств, развиваемая отечественной компанией «Открытая Мобильная Платформа» для решения задач корпоративных пользователей и государственных учреждений. По состоянию на февраль 2018 года является единственной мобильной операционной системой, включенной в реестр Отечественного ПО и прошедшей сертификацию ФСБ по классу АК1/КС1.


В этой статье мы расскажем о своем опыте портирования нашей библиотеки распознавания Smart IDReader (технология Hieroglyph) на Sailfish OS. В ней будет код, ссылки и видео. Мы хотим, чтобы эта статья была технически информативной и полезной в качестве общей инструкции для тех, кто портирует С++ приложения на Sailfish OS.


Smart IDReader SDK — как добавить распознавание в iOS приложение за 5 минут — теперь и на Github

Reading time4 min
Views8.6K

Ранее мы, Smart Engines, уже писали про наши технологии распознавания (паспорта РФ, банковских карт и многих других). Основной ценностью SDK является "ядро" или "движок" распознавания Smart IDReader, который объединяет функциональность сканирования всего, что мы умеем сканировать, под единым интерфейсом.


Библиотека распознавания написана на С++ для достижения максимальной производительности, но для использования с различными языками программирования у нас есть версии интерфейсов библиотеки на C++, C, C#, Objective-C, Java и даже Visual Basic. Мы поддерживаем все популярные операционные системы: iOS, Android, Windows, Linux, MacOS, Solaris и, разумеется, Эльбрус и AstraLinux. Наши алгоритмы оптимизированы под такие архитектуры, как ARMv7-v8, AArch64, x86, x86_64, SPARC, E2K.


Мы решили выложить демо-версию нашего SDK на Github, чтобы вы могли ознакомиться с интерфейсом библиотеки (как Objective-C часть, так и C++), почитать документацию и попробовать встроить Smart IDReader в ваше приложение. Репозиторий с демо-версией Smart IDReader iOS SDK доступен по ссылке: https://github.com/SmartEngines/SmartIDReader-iOS-SDK


Чтобы посмотреть, как Smart IDReader выглядит в нашем исполнении после встраивания, вы можете скачать бесплатные полные версии приложений из App Store и Google Play.


В этой статье мы расскажем, как iOS разработчик может использовать наши технологии для добавления функциональности распознавания документов в своё приложение.

Читать дальше →

Многорукий бандит в задаче поиска объектов в видеопотоке

Reading time7 min
Views6.8K
Drawing На Хабре уже неоднократно затрагивалась тема применения так называемых “бандитов” для интеллектуального анализа данных. В отличии от уже привычного обучения машин по прецедентам, которое сплошь и рядом применяется в задачах распознавания, многорукий бандит применяется для построения в некотором смысле “рекомендательных” систем. На Хабре уже очень подробно и доступно рассказано о идее многорукого бандита и применимости ее к задаче рекомендации интернет-контента. Мы же в своем очередном посте хотели рассказать вам о симбиозе обучения по прецедентам и обучения с подкреплением в задачах распознавания видеопотока.
Читать дальше →

Оптимизация кода для платформы Эльбрус на простых примерах

Reading time8 min
Views33K

"Обычно хакер пишет программы не ради выгоды,
а ради собственного удовольствия. Такая программа
может оказаться полезной, а может остаться
всего лишь игрой интеллекта."
Генри С. Уоррен. Алгоритмические трюки для программистов [1]


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


image


Однажды мы с коллегами заинтересовались, как самые простые методы оптимизации работают на Эльбрусе.

Читать дальше →

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

Reading time11 min
Views23K
Сегментация строки на символы является одним из важнейших этапов в процессе оптического распознавания символов (OCR), в частности, при оптическом распознавании изображений документов. Сегментацией строки называется декомпозиция изображения, содержащего последовательность символов, на фрагменты, содержащие отдельные символы.

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

Поиск границ символов усложняется из-за артефактов печати и оцифровки (сканирования) документа, приводящим к “рассыпанию” и “склеиванию” символов. В случае использования стационарных или мобильных малоразмерных видеокамер спектр артефактов оцифровки существенно пополняется: возможны дефокусировка и смазывание, проективные искажения, деформирование и изгибы документа. При съемке камерой в естественных сценах на изображениях часто возникают паразитные перепады яркости (тени, отражения), а также цветовые искажения и цифровой шум в результате низкой освещенности. На рисунке ниже показаны примеры сложных случаев при сегментации полей паспорта РФ.





В этой статье мы расскажем о методе сегментации символов текстовых строк документов, разработанном нами в Smart Engines, основанный на обучении сверточных и рекуррентных нейронных сетей. Основным рассматриваемым в работе документом является паспорт РФ.
Читать дальше →

MWC-2017. Новые технологии для мобильного распознавания (3 видео + ссылки на демо в App store и Google play)

Reading time3 min
Views3.8K

На следующей неделе в Барселоне состоится крупнейшее событие в мире мобильной индустрии — международная выставка Mobile World Congress 2017 (с 27 февраля по 2 марта 2017 г.). Команда Smart Engines покажет новые разработки по распознаванию и обработке видеопотока на мобильных устройствах: распознавание ID различных стран, детекция голограмм и динамическое панорамирование документов.



Мы подготовили небольшой обзор новых технологий (+ видео), которые покажем в Барселоне. Добро пожаловать под кат!

Читать дальше →

Простая технология классификации распознанных страниц деловых документов на основе метода Template Matching

Reading time13 min
Views6.5K

image


Задача классификации хорошо известна: требуется отнести произвольный объект из некоторой выборки к одному или нескольким классам из заранее определенного множества классов.

Читать дальше →

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

Reading time10 min
Views14K


На рисунке изображены схема из 8 возможных триграмм, взятая из книги [1]



Естественные языки могут быть охарактеризованы распределением частот встречаемости своих элементов, таких как слова, отдельные буквы или последовательности букв (N-граммы). Формально N-граммой называется строка из N символов, принадлежащих некоторому алфавиту, состоящему из конечного числа символов. О теоретических и прикладных вопросах применения аппарата N-грамм для автоматической коррекции текста можно прочесть в работе [2].



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


Читать дальше →
1

Information

Rating
Does not participate
Registered
Activity