Как стать автором
Обновить
117.54
Smart Engines
Обработка изображений, распознавание в видеопотоке
Сначала показывать

Долгожданный шаг в сторону сложно структурированных документов (+видео)

Время на прочтение3 мин
Количество просмотров6.3K

image


Этой статьей на Хабре мы с большим удовольствием анонсируем вам, друзья, что от шаблонных жестко структурированных документов мы перешли к распознаванию различных сложно структурированных. А это, поверьте, совсем другая песня! За деталями добро пожаловать под кат.

Всего голосов 13: ↑12 и ↓1+11
Комментарии6

Распознавание танков в видеопотоке методами машинного обучения (+2 видео на платформах Эльбрус и Байкал)

Время на прочтение4 мин
Количество просмотров8K

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

Всего голосов 26: ↑17 и ↓9+8
Комментарии14

Зачем нужна низкоуровневая оптимизация на Эльбрусе или как ускорить распознающую систему в полтора раза

Время на прочтение14 мин
Количество просмотров11K

Встретив 2019 год и немного отдохнув от разработки новых фич для Smart IDReader, мы вспомнили, что давно ничего не писали об отечественных процессорах. Поэтому мы решили срочно исправиться и показать еще одну распознающую систему на Эльбрусе.


В качестве распознающей системы была рассмотрена система распознавания объектов живописи “в неконтролируемых условиях методом с обучением по одному примеру” [1]. Эта система строит описание изображения на основе особых точек и их дескрипторов, по которому выполняет поиск в индексированной базе картин. Мы проанализировали производительность данной системы и выделили наиболее времязатратную низкоуровневую часть алгоритма, который затем оптимизировали с помощью инструментов платформы Эльбрус.

Читать дальше →
Всего голосов 43: ↑41 и ↓2+39
Комментарии18

Научный корпоратив Smart Engines (или как мы ездили на ICMV 2018)

Время на прочтение4 мин
Количество просмотров1.2K

Каждая уважающая себя IT-компания ценит своих сотрудников. Это выражается не только в хороших зарплатах, гибких графиках и домашнем уюте в офисе (что, несомненно, является важным материальным показателем ценности сотрудника), но и в проведении различных мероприятий из серии “для души”. Именно поэтому в новостях часто мелькают заметки про то, как крупные IT компании арендуют рестораны/пансионаты/яхты для проведения различного рода корпоративов. И, наверное, это все очень здорово, дружно и весело. Наверное, в такие моменты активно процветает тот самый мифический тимбилдинг, про который так любят говорить за границей. И все-таки, у нас в Smart Engines свой взгляд на то, как лучше потратить честно заработанные деньги с наибольшей пользой для сотрудников.

Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Комментарии0

Повышение качества склейки панорамы с помощью согласования графа проективных преобразований

Время на прочтение8 мин
Количество просмотров5K

Привет, Хабр! Сегодня мы расскажем про один из способов повышения качества склейки панорамы. Существует широко используемый подход склейки панорамы плоских объектов, но поскольку данный подход не лишен недостатков, мы предлагаем свое улучшение.

Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии5

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

Время на прочтение3 мин
Количество просмотров41K

С момента, когда мы вслух заявили о распознавании паспорта гражданина РФ на мобильном телефоне прошло уже более трех лет. За это время мы научили наш движок распознавать различные документы, удостоверяющие личность, для более, чем 165 стран мира. Но в этой статье мы решили не писать про высокую важность и сложность технологии, грандиозные масштабы разработки, а сосредоточиться на описании интересного с точки зрения автоматизации народного хозяйства варианта использования нашего движка. Если вам 18+, а также интересны подробности, добро пожаловать под кат.

Всего голосов 39: ↑32 и ↓7+25
Комментарии35

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

Время на прочтение7 мин
Количество просмотров6K
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.


Всего голосов 6: ↑6 и ↓0+6
Комментарии1

Низкоуровневая оптимизация кода на платформе Эльбрус: векторное сложение uint16_t с помощью интринсиков

Время на прочтение6 мин
Количество просмотров11K


В этой статье мы расскажем про более низкоуровневые оптимизации, которые можно делать на процессорах Эльбрус.

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

Однако в текущей версии EML мы не нашли некоторых интересных нам функций, поэтому приняли решение написать их сами.
Читать дальше →
Всего голосов 16: ↑13 и ↓3+10
Комментарии24

Сравнительное тестирование Smart IDReader на 5 вычислительных комплексах с процессорами Эльбрус

Время на прочтение6 мин
Количество просмотров16K

Smart IDReader — приложение, позволяющее распознавать удостоверяющие документы на различных платформах. Различные режимы распознавания позволяют извлекать данные держателя документа из видеопотока, фотографий или сканов документов.



Сегодня мы решили рассказать вам о том как мы тестировали Smart IDReader на семействе вычислительных систем Российского производства — Эльбрус. На чем будем тестировать? Как работает распознавание документов на новой машине Эльбрус-8.4? Если интересно, идем под кат.

Читать дальше →
Всего голосов 21: ↑20 и ↓1+19
Комментарии15

Smart IDReader SDK — как написать Telegram-бота на Python для распознавания документов за 5 минут

Время на прочтение4 мин
Количество просмотров20K

Smart IDReader by Smart Engines


Мы, Smart Engines, продолжаем цикл статей про то, как встроить наши технологии распознавания (паспортов, банковских карт и других) в ваши приложения. Ранее мы уже писали про встраивание на iOS и Android, а сегодня мы расскажем про то, как работать с Python-интерфейсом библиотеки распознавания Smart IDReader и напишем простого Telegram-бота.


Кстати, список поддерживаемых нами языков программирования расширился и теперь включает C++, C, C#, Objective-C, Swift, Java, Python, а также такие эзотерические языки, как Visual Basic и, разумеется, PHP. Как и раньше, мы поддерживаем все популярные и многие непопулярные операционные системы и архитектуры, а наши бесплатные приложения доступны для скачивания из App Store и Google Play.


По традиции, демо-версия Smart IDReader SDK для Python вместе с исходным кодом реализации Telegram-бота выложены на Github и доступны по ссылке.

Читать дальше →
Всего голосов 11: ↑8 и ↓3+5
Комментарии4

История победы на международном соревновании по распознаванию документов команды компании SmartEngines

Время на прочтение11 мин
Количество просмотров11K

Привет, Хабр! Сегодня мы расскажем о том, как нашей команде из Smart Engines удалось победить на международном конкурсе по бинаризации документов DIBCO17, проводимом в рамках конференции ICDAR. Данный конкурс проводится регулярно и уже имеет солидную историю (он проводится 9 лет), за время которой было предложено множество невероятно интересных и безумных (в хорошем смысле) алгоритмов бинаризации. Несмотря на то, что в своих проектах по распознаванию документов при помощи мобильных устройств мы по возможности не используем подобные алгоритмы, команде показалось, что нам есть что предложить мировому сообществу, и в этом году мы впервые приняли решение участвовать в конкурсе.


Читать дальше →
Всего голосов 32: ↑32 и ↓0+32
Комментарии18

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

Время на прочтение12 мин
Количество просмотров8.3K

Метод (алгоритм) Виолы и Джонса [1] является одним из способов выявления границ объектов на изображении. Хотя алгоритм, разработанный П. Виолой и М. Джонсом еще в 2001 году, был первоначально ориентирован на быстрый поиск лиц на изображениях, сейчас разнообразные вариации этого популярного алгоритма с успехом используются в различных задачах поиска границ:


  • образов пешеходов [2],
  • образов автомобилей [3],
  • образов дорожных знаков [4],

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

Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Комментарии9

Smart IDReader SDK — добавляем распознавание в Android приложения

Время на прочтение11 мин
Количество просмотров8.7K

Привет, Хабр! В одной из прошлых наших статей изучался вопрос встраивания ядра распознавания Smart IDReader в iOS приложения. Пришло время обсудить эту же проблему, но для ОС Android. Ввиду большого количества версий системы и широкого парка устройств это будет посложнее, чем для iOS, но всё же вполне решаемая задача. Disclaimer – приведённая ниже информация не является истинной в последней инстанции, если вы знаете как упростить процесс встраивания/работы с камерой или сделать по другому – добро пожаловать в комментарии!

Читать дальше →
Всего голосов 4: ↑3 и ↓1+2
Комментарии0

Сравнение Эльбрус-4С и Эльбрус-8С в нескольких задачах машинного зрения

Время на прочтение9 мин
Количество просмотров45K

В этой статье мы покажем, как работают технологии распознавания образов на Эльбрус-4С и на новом Эльбрус-8С: рассмотрим несколько задач машинного зрения, немного расскажем об алгоритмах их решения, приведем результаты бенчмаркинга и наконец покажем видео.



Эльбрус-8С — новый 8-ядерный процессор МЦСТ с VLIW-архитектурой. Мы тестировали инженерный образец с частотой 1.3 ГГц. Возможно, в серийном выпуске она еще возрастет.

Читать дальше →
Всего голосов 37: ↑35 и ↓2+33
Комментарии138

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

Время на прочтение4 мин
Количество просмотров8.2K

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

Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии4

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

Время на прочтение7 мин
Количество просмотров6.5K
Drawing На Хабре уже неоднократно затрагивалась тема применения так называемых “бандитов” для интеллектуального анализа данных. В отличии от уже привычного обучения машин по прецедентам, которое сплошь и рядом применяется в задачах распознавания, многорукий бандит применяется для построения в некотором смысле “рекомендательных” систем. На Хабре уже очень подробно и доступно рассказано о идее многорукого бандита и применимости ее к задаче рекомендации интернет-контента. Мы же в своем очередном посте хотели рассказать вам о симбиозе обучения по прецедентам и обучения с подкреплением в задачах распознавания видеопотока.
Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии1

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

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

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

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





В этой статье мы расскажем о методе сегментации символов текстовых строк документов, разработанном нами в Smart Engines, основанный на обучении сверточных и рекуррентных нейронных сетей. Основным рассматриваемым в работе документом является паспорт РФ.
Читать дальше →
Всего голосов 41: ↑40 и ↓1+39
Комментарии6

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

Время на прочтение3 мин
Количество просмотров3.8K

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



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

Читать дальше →
Всего голосов 6: ↑5 и ↓1+4
Комментарии15

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

Время на прочтение13 мин
Количество просмотров6.3K

image


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

Читать дальше →
Всего голосов 9: ↑8 и ↓1+7
Комментарии4

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

Время на прочтение8 мин
Количество просмотров32K

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


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


image


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

Читать дальше →
Всего голосов 42: ↑36 и ↓6+30
Комментарии86

Информация

Сайт
smartengines.ru
Дата регистрации
Дата основания
Численность
51–100 человек
Местоположение
Россия