Рубрика «распознавание»

Дверь, которая с нами здоровается по именам и открывает только сотрудникам отдела - 1

У нас была пара дней промежутка между большими проектами, и мы решили поиздеваться над дверью руководителя подразделения. Just for fun. Потому что дроны нас в лицо уже узнают — чем дверь-то хуже?

На момент старта IT-проекта у нас уже была накладная панель, напечатанная на 3D-принтере. За два дня из железа, готовых библиотек и какой-то матери мы сделали прототип устройства, которое учитывает сотрудников или позволяет проверять, что человек прошёл через турникет именно по своему пропуску.

Никаких денег. Мы использовали только опенсорс.

Вы можете повторить это минут за 15–20 с нашим скриптом.
Читать полностью »

Выявление преступных группировок, ворующих из магазинов – Data Mining - 1

Группа из 3–4 лиц по предварительному сговору способна вынести из большого магазина типа «Ашана» или «Перекрёстка» товара до 400 тысяч рублей в месяц. Если обычные шоплифтеры просто мирно воруют колбасу, протаскивая её под одеждой или ещё где, то эти парни оказываются в разы наглее и деструктивнее.

Разница вот в чём. Во-первых, они имеют возможность запутать всю систему наблюдения, выстроенную для поиска одиночных воров. Самая простая связка — один берёт товар, передаёт незаметно другому, тот относит в слепую зону камер, там его берёт третий.
Во-вторых, они воруют не на предел административки в 1000 рублей, а сразу по максимуму для перепродажи.
В-третьих, при попытке их остановить и вызвать полицию они применяют силовые меры к охраннику и уходят. Силовые меры — это от банального оттеснения охранников от подозреваемого до угроз оружием.

К нам обратилось ЧОП, которое попросило сделать видеоаналитику по тем, кого они уже знают. Чтобы при входе в магазин такого товарища сразу вызывалась полиция и их брали уже тёпленькими.
Читать полностью »

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

Читать полностью »

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

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

Читать полностью »

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

Волшебная палочка — это круто, но куда круче творить волшебство просто движением рук. Чтобы это стало возможным, в 2014 году мы занялись распознаванием жестов и сделали перчатку на акселерометрах для ролевой игры. Проект получился сложным и с далеко идущими последствиями.

Магические жесты как вызов для электронщика - 1
Читать полностью »

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

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

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

Сегментация текстовых строк документов на символы с помощью сверточных и рекуррентных нейронных сетей - 1Сегментация текстовых строк документов на символы с помощью сверточных и рекуррентных нейронных сетей - 2
Сегментация текстовых строк документов на символы с помощью сверточных и рекуррентных нейронных сетей - 3Сегментация текстовых строк документов на символы с помощью сверточных и рекуррентных нейронных сетей - 4
Сегментация текстовых строк документов на символы с помощью сверточных и рекуррентных нейронных сетей - 5Сегментация текстовых строк документов на символы с помощью сверточных и рекуррентных нейронных сетей - 6

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

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

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

image

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

Читать полностью »

В одном строительном гипермаркете есть 18 касс, и надо уметь делать так, чтобы кассиры открывали их вовремя, чтобы очередь не была больше 4 человек. Ну, и чтобы лишние кассы не простаивали открытыми. Это распознавание людей (подсчёт покупателей) с видео, аналитика по погоде и другим факторам и предсказание потока. Плюс много другой забавной статистики.

Как мы отличали тележку от прораба — видеоаналитика для кассовой зоны гипермаркета (и продолжение про кота-терминатора) - 1
Пример очереди перед кассой — картинка обрезанная и замыленная по просьбе безопасников, по факту очередь мы видим длиннее, чем на фото.

В рознице первым вопросом стало то, как отличить прораба от тележки. И это было ничуть не смешно.

Да, и тем, кто переживал за кота-терминатора из прошлого поста — его поймали. Детали в конце.Читать полностью »