Обновить
32K+
84

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

29
Рейтинг
182
Подписчики
Отправить сообщение

О бинаризации томографических изображений с тонкой структурой

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

Бинаризация – классическая задача обработки изображений. Часто бинаризация используется для упрощения данных и ускорения последующей обработки, что в наше время уже не кажется важным. Но при анализе пористых материалов бинаризация принципиальна, поскольку модель данных здесь не подразумевает промежуточного состояния между пустой порой и непроницаемой матрицей. А алгоритма, прекрасно работающего «из коробки», как обычно, нет. Есть алгоритмы с настроечными параметрами, есть замечательные нейросетевые архитектуры. Чтобы они заработали, их нужно настроить/обучить. Что же делать, если в нашей задаче получение эталонных ответов очень трудоемко? Из этой статьи вы можете узнать об одном любопытном способе обойтись без разметки, а также познакомиться с миром вычислительной томографии и сопредельных областей.


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

Регуляризация? Ортогонализация! Улучшаем компактные сети

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

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

Алгоритм распознавания ценников, который работает даже на терминалах сбора данных

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

Привет, Хабр! Сегодня мы продолжаем нашу классическую серию статей про то, как с использованием методов обработки изображений и распознавания образов сделать что-то полезное с практической точки зрения. Сегодня речь пойдет о задаче распознавания ценников. Обычных ценников товаров, которые каждый может встретить в любом магазине. Только для обеспечения должной практичности мы добавим важное требование в постановку задачи: распознаваемые изображения получают при помощи малоформатной цифровой камеры, а вычислительное устройство имеет существенные ограничения по ресурсам. Другими словами, мы расскажем, как распознавать ценники на вычислительно слабом мобильном устройстве (кстати, здесь речь идет не столько о дешевом китайском смартфоне, сколько о специальных промышленных терминалах сбора данных, которые в силу ряда причин тоже обладают достаточно слабыми “мозгами”). Итак, если Вам интересна тема автоматизации ритейла, добро пожаловать под кат!


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

8-битные сети на Эльбрусе, есть ли смысл?

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

Привет, Хабр! Мы вдруг поняли, что наша последняя статья про Эльбрус вышла год назад. Поэтому мы решили исправить эту досадную оплошность, ведь мы не бросили эту тему!


Сложно представить распознавание без нейронных сетей, поэтому мы расскажем о том, как мы запустили 8-битные сетки на Эльбрусе и что из этого получилось. Вообще, модель с 8-битными коэффициентами и входами и 32-битными промежуточными вычислениями крайне популярна. Например, Google [1] и Facebook [2] завели ее собственные реализации, которые оптимизируют доступ в память, задействуют SIMD и позволяют ускорить вычисления на 25% и больше без заметного снижения точности (это конечно зависит от архитектуры нейронной сети и вычислителя, но нужно же было объяснить, насколько это круто?).


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

HoughNet: поиск точек схода сетью, сплавленной с классическим алгоритмом

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

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

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

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

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

Хотя мы в Smart Engines, конечно, лютые технари, все равно очень любим дни рождения и юбилеи. Особенно, если виновник торжества — такое родное и милое, за развитием которого ты наблюдаешь каждый день. Да-да, на прошлой неделе мы праздновали пятилетие нашего главного продукта – системы распознавания паспорта РФ.

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

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

Как известно, мы в Smart Engines занимаемся системами компьютерного зрения и распознавания документов, а также научными исследованиями в этой области. В течение нескольких лет в фокусе нашего внимания находились системы распознавания документов, удостоверяющих личность. Одной из критичных проблем, возникающих при подготовке научных статей, является отсутствие открытых датасетов, на которых можно демонстрировать сообществу разработанные нами алгоритмы и подходы. В связи с этим два года назад мы начали работу над серией открытых пакетов изображений и видеоклипов ID-документов, предназначенных, главным образом, для исследователей, и о результатах этой работы хотели бы рассказать вам под катом.


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

Smart Engines вошёл в тройку лидеров в рейтинге FWCI среди базовых организаций Физтеха

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


Сегодня публикуем краткую заметку, которая, честно признаемся, поразила нас прямо в сердце, тронула до самой глубины души! По результатам 2019 года Smart Engines занимает 3 место среди базовых организаций Физтеха по числу публикаций и их средней нормализованной цитируемости — индексу FWCI — с показателем 3,3. Осознаете мощь?
Читать дальше →

Зачем мы ездим на научные конференции?

Время на прочтение8 мин
Охват и читатели3K
Привет, это Smart Engines. Десант из 28 разработчиков систем распознавания на основе искусственного интеллекта только что вернулся из Амстердама, где мы принимали участие в международной научной конференции по компьютерному зрению ICMV. В статье мы постараемся объяснить, почему мы так много времени уделяем науке и ездим на научные конференции.



Сегодня в мире развития науки и высоких технологий произошла катастрофическая подмена понятий: за науку выдается то, что наукой не является ни в каком приближении, учеными называют программистов и инженеров, наукой называют решение простейших инженерных задач. В информационном пространстве роль фундаментальной науки в развитии технологий явно занижена. Многие забывают, что сенсорный экран айфона — это не сам по себе сенсорный экран айфона, а воплощение в жизнь идей фундаментальных исследований полупроводниковых гетероструктур нашего соотечественника нобелевского лауреата Ж.И. Алферова. Карты Google (или Яндекcа) — это не просто карты в мобильнике, а воплощение фундаментальных исследований в области вычислительной геометрии. И кстати фильм “Аватар” — это тоже на 99% вычислительная геометрия.
Читать дальше →

Smart IdReader SDK — встраиваем распознавание в проекты на Python и PHP

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

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


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


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

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

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

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

image


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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

Как мы в 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.


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

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


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

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

Однако в текущей версии EML мы не нашли некоторых интересных нам функций, поэтому приняли решение написать их сами.
Читать дальше →

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

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

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



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

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

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

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

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 и доступны по ссылке.

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

Информация

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