Обновить
79
0

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

Отправить сообщение

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

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели4.2K

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

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

Читать далее

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

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели2.2K

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

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

Читать далее

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

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели916

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

Читать далее

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

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели1.4K

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

Читать далее

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

Уровень сложностиСложный
Время на прочтение6 мин
Охват и читатели563

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

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели984

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

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

Читать далее

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

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели2.2K

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

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

Читать далее

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

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели2.8K

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

Читать далее

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

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели3.2K

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

Читать далее

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

Время на прочтение7 мин
Охват и читатели3.9K

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

Читать далее

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

Время на прочтение8 мин
Охват и читатели6.6K

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

Читать далее

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

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


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

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

Время на прочтение7 мин
Охват и читатели6.3K
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

Время на прочтение4 мин
Охват и читатели9.1K

Ранее мы, 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 разработчик может использовать наши технологии для добавления функциональности распознавания документов в своё приложение.

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

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

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

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

Время на прочтение8 мин
Охват и читатели33K

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


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


image


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

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

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

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

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

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





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

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

Время на прочтение3 мин
Охват и читатели3.9K

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



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

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

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

Время на прочтение13 мин
Охват и читатели6.8K

image


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

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

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

Время на прочтение10 мин
Охват и читатели15K


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



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



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


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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность