Сканирование QR-кодов для платежей – за 0.1 секунды

Т-Банк
МТС Банк
МТС
Банк ВТБ
Альфа-Банк
Т-Банк
МТС Банк
МТС
Банк ВТБ
Альфа-Банк
Сканирование QR-кодов и штрихкодов
Распознавание любых штрихкодов QR-кодов, Aztec, PDF417, DataMatrix, Codabar, Code 39, Code 93, Code 128, EAN-8, EAN-13, ITF, ITF-14, UPC-A, UPC-E
Считывание всех кодов в кадре или на изображении Даже если они разного типа
Режим непрерывного сканирования видеопотока Потоковое считывание без ограничений на число штрихкодов
Сканирование платежных QR-кодов для СБП По стандартам ЦБ и с отклонениями от них
Поддержка поврежденных и трудночитаемых штрихкодов Загрязненных, потертых и частично обрезанных – даже при потере до 30% их площади
Считывание штрихкодов с любых поверхностей На бумаге, упаковке, товарах, изогнутых и прозрачных поверхностях, а также с экранов смартфонов и терминалов
Работа в любых условиях При недостаточном освещении, контрастных тенях, бликах, низком разрешении и съемке под углом
Умная камера для всех способов оплаты Возможность считывания номеров телефонов, платежных штрихкодов и банковских карт в едином интерфейсе
Распознавание в приложениях, браузере и мессенджерах Сканирование на смартфонах и ТСД без интернета – для складского и товарного учета
  • Распознавание любых штрихкодов
    QR-кодов, Aztec, PDF417, DataMatrix, Codabar, Code 39, Code 93, Code 128, EAN-8, EAN-13, ITF, ITF-14, UPC-A, UPC-E
    Считывание всех кодов в кадре или на изображении
    Даже если они разного типа
    Режим непрерывного сканирования видеопотока
    Потоковое считывание без ограничений на число штрихкодов
  • Сканирование платежных QR-кодов для СБП
    По стандартам ЦБ и с отклонениями от них
    Поддержка поврежденных и трудночитаемых штрихкодов
    Загрязненных, потертых и частично обрезанных – даже при потере до 30% их площади
    Считывание штрихкодов с любых поверхностей
    На бумаге, упаковке, товарах, изогнутых и прозрачных поверхностях, а также с экранов смартфонов и терминалов
  • Работа в любых условиях
    При недостаточном освещении, контрастных тенях, бликах, низком разрешении и съемке под углом
    Умная камера для всех способов оплаты
    Возможность считывания номеров телефонов, платежных штрихкодов и банковских карт в едином интерфейсе
    Распознавание в приложениях, браузере и мессенджерах
    Сканирование на смартфонах и ТСД без интернета – для складского и товарного учета

Как работает распознавание штрихкодов

Система распознавания штрихкодов Smart Engines автоматически находит в кадре линейные и двумерные коды, определяет их тип и извлекает закодированные данные. Для сканирования пользователю достаточно навести камеру смартфона на штрихкод или сделать фотографию — система распознает все коды на изображении, даже если они разных типов. Технология поддерживает 18 форматов, включая QR, Aztec, DataMatrix, PDF417, EAN-13 и Code 128, и позволяет считывать платежные QR-коды СБП, штрихкоды товаров, упаковок и этикеток. Распознавание работает даже с поврежденными, загрязненными и частично обрезанными кодами, а также при сложном освещении и съемке под углом. Сканирование QR-кода на смартфоне занимает всего 0,1 секунды. Технология также работает на терминалах сбора данных (ТСД) для автоматизации складских операций и товарного учета.

Учредители - резиденты РФ Учредители — резиденты РФ
Собственная разработка Собственная разработка
Запись 9618 в реестре ПО Запись 9618 в реестре ПО
Поддержка российских ОС Поддержка российских ОС

Возможности распознавания

  • Распознавание 18 форматов линейных и двумерных штрихкодов: QR, Aztec, PDF417, DataMatrix, RMQR, MicroPDF417, Micro QR, Codabar, Code 39, Code 93, Code 128, EAN-8, EAN-13, ITF, ITF-14, UPC-A, UPC-E, GS1 Databar
  • Сканирование платежных QR-кодов СБП по стандартам Банка России и с отклонениями от них
  • Автоматическое определение типа платежного кода: QR, Aztec, DataMatrix
  • Декодирование платежных сообщений и извлечение платежных реквизитов
  • Одновременное распознавание всех штрихкодов на изображении, включая коды разных типов
  • Непрерывное сканирование видеопотока без ограничений по количеству штрихкодов
  • Настройка списка типов штрихкодов, допустимых к распознаванию
  • Автоматическое определение типа и локализация штрихкодов с помощью компактных 4,6-битных нейросетей
  • Распознавание черно-белых, инверсных, цветных и многоцветных штрихкодов
  • Считывание кодов независимо от способа нанесения и материала поверхности
  • Распознавание штрихкодов на прозрачных, изогнутых и других неплоских поверхностях
  • Считывание компактных штрихкодов с мелкими элементами
  • Распознавание загрязненных, поврежденных и частично обрезанных QR-кодов, в том числе при потере до 30% площади по краям
  • Считывание штрихкодов с экранов смартфонов, кассовых аппаратов, платежных терминалов и электронных билбордов
  • Автоматический поиск штрихкодов на фотографиях, сканах и в видеопотоке
  • Распознавание при съемке под любым углом
  • Устойчивость к недостаточному и избыточному освещению, контрастным теням и бликам
  • Распознавание изображений низкого разрешения: система устойчиво распознает QR-коды в разрешении от 2 пикселей на модуль в простых случаях и от 3 пикселей на модуль — в сложных
  • Высокая скорость распознавания, в том числе на бюджетных смартфонах
  • Определение координат штрихкодов, оценка уверенности распознавания и маскирование объектов
  • Интеграция в мобильные, десктопные, серверные и веб-приложения
  • Распознавание непосредственно в браузере и PWA-приложениях с помощью WebAssembly
  • REST API для low-code интеграции, API для C, C++, C#, Java, Python, PHP
  • Поддержка React Native, Flutter и интеграции с 1С
  • Совместимость с Android, iOS, Windows, Linux, ОС Аврора, РЕД ОС, Astra Linux, ОС Альт и ОС Эльбрус
  • Поддержка архитектур x86, x86_64, ARM, MIPS и «Эльбрус»
  • Локальное распознавание без подключения к интернету и передачи изображений на внешние серверы
  • Полностью автоматическая обработка данных в оперативной памяти устройства

Возможности
интеграции

CodeEngine engine = CodeEngine.CreateFromEmbeddedBundle();
CodeEngineSessionSettings settings = engine.GetDefaultSessionSettings();
settings.SetOption(jnicodeengine.toString(EngineSettingsGroup.Barcode) + ".enabled", "true");
settings.SetOption(jnicodeengine.toString(EngineSettingsGroup.Barcode) + ".COMMON.enabled", "true");
CodeEngineSession session = engine.SpawnSession(settings, <PERSONALIZED_SIGNATURE>);
Image image = Image.FromFile(<PATH_TO_IMAGE>);

CodeEngineResult result = session.Process(image);
for (CodeObjectsMapIterator it_obj = result.ObjectsBegin();
    !it_obj.Equals(result.ObjectsEnd());
    it_obj.Advance()) {
  CodeObject code_object = it_obj.GetValue();
  for (CodeFieldsMapIterator it_field = code_object.FieldsBegin();
    !it_field.Equals(code_object.FieldsEnd());
    it_field.Advance()) {
  CodeField code_field = it_field.GetValue();
  String name = code_field.Name();
  String value;
  if (code_field.HasBinaryRepresentation())
    value = code_field.GetBinaryRepresentation().GetBase64String().GetCStr();
  else
    value = code_field.GetOcrString().GetFirstString().GetCStr();
  }
}
std::unique_ptr<se::code::CodeEngine> engine(se::code::CodeEngine::CreateFromEmbeddedBundle());
std::unique_ptr<se::code::CodeEngineSessionSettings> settings(engine->GetDefaultSessionSettings());
settings->SetOption((toString(EngineSettingsGroup::Barcode) + ".enabled").c_str(), "true");
settings->SetOption((toString(EngineSettingsGroup::Barcode) + ".COMMON.enabled").c_str(), "true");
std::unique_ptr<se::code::CodeEngineSession> session(engine->SpawnSession(*settings, <PERSONALIZED_SIGNATURE>));
std::unique_ptr<se::common::Image> image(se::common::Image::FromFile(<PATH_TO_IMAGE>));

const se::code::CodeEngineResult& result = session->Process(*image);
for (auto it_obj = result.ObjectsBegin(); it_obj != result.ObjectsEnd(); ++it_obj) {
  const se::code::CodeObject &code_object = it_obj.GetValue();
  for (auto it_field = code_object.FieldsBegin(); it_field != code_object.FieldsEnd(); ++it_field) {
    const se::code::CodeField& code_field = it_field.GetValue();
    std::string name = code_field.Name();
    std::string value = "";
    if (code_field.HasBinaryRepresentation())
      value = code_field.GetBinaryRepresentation().GetBase64String().GetCStr();
    else
      value = code_field.GetOcrString().GetFirstString().GetCStr();
  }
}
CodeEngine engine = CodeEngine.CreateFromEmbeddedBundle();
CodeEngineSessionSettings settings = engine.GetDefaultSessionSettings();
settings.SetOption(cscodeengine.toString(EngineSettingsGroup.Barcode) + ".enabled", "true");
settings.SetOption(cscodeengine.toString(EngineSettingsGroup.Barcode) + ".COMMON.enabled", "true");
CodeEngineSession session = engine.SpawnSession(settings, <PERSONALIZED_SIGNATURE>);
Image image = Image.FromFile(<PATH_TO_IMAGE>);

CodeEngineResult result = session.Process(image);
for (CodeObjectsMapIterator it_obj = result.ObjectsBegin();
    !it_obj.Equals(result.ObjectsEnd());
    it_obj.Advance()) {
  CodeObject code_object = it_obj.GetValue();
  for (CodeFieldsMapIterator it_field = code_object.FieldsBegin();
    !it_field.Equals(code_object.FieldsEnd());
    it_field.Advance()) {
  CodeField code_field = it_field.GetValue();
  String name = code_field.Name();
  String value;
  if (code_field.HasBinaryRepresentation())
    value = code_field.GetBinaryRepresentation().GetBase64String().GetCStr();
  else
    value = code_field.GetOcrString().GetFirstString().GetCStr();
  }
}
engine = pycodeengine.CodeEngine.CreateFromEmbeddedBundle()
settings = engine.GetDefaultSessionSettings()
settings.SetOption(
  pycodeengine.toString(pycodeengine.EngineSettingsGroup_Barcode) + ".enabled", "true")
settings.SetOption(
  pycodeengine.toString(pycodeengine.EngineSettingsGroup_Barcode) + ".COMMON.enabled", "true")
session = engine.SpawnSession(settings, <PERSONALIZED_SIGNATURE>)
image = pycodeengine.Image.FromFile(<PATH_TO_IMAGE>)
session.Process(image)

result = session.GetCurrentResult()
it_obj = result.ObjectsBegin()
while (it_obj != result.ObjectsEnd()):
  code_object = it_obj.GetValue()
  it_field = code_object.FieldsBegin()
  while (it_field != code_object.FieldsEnd()):
    code_field = it_field.GetValue()
    name = code_field.Name()
    if code_field.HasBinaryRepresentation():
      value = code_field.GetBinaryRepresentation().GetBase64String().GetCStr()
    else:
      value = code_field.GetOcrString().GetFirstString().GetCStr()
    it_field.Advance()
  it_obj.Advance()

Уверенность распознавания, координаты объектов, маскирование

Модульная структура для снижения размера библиотеки

WASM SDK — поддержка всех современных браузеров и web движков
Chrome
Firefox
Safari
Edge
Webkit
Node.js
Deno
Wasmtime
Wasmer
wasm2c
Операционные системы
Android
iOS
MS Windows
Linux
ОС Аврора
ОС Эльбрус
РЕД ОС
Astra Linux
ОС Атликс
ОС Альт Линукс
Low-code интеграция, простой и понятный REST API
API на
C
C++
C#
Java
Python
PHP
Фреймворки:
React Native
Flutter
интеграция с 1C
Примеры использования на языках
C
C++
C#
Java
Python
PHP
Архитектуры процессоров
х86
x86_64
ARMv7-v8-v9 (AArch32 и AArch64)
MIPS (MIPS32 и MIPS64)
Elbrus

Распознавание любых штрихкодов

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

Считывание всех кодов в кадре или на изображении

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

Режим непрерывного сканирования видеопотока

Технология Smart Engines поддерживает непрерывное распознавание штрихкодов в видеопотоке без ограничений на их количество. Система автоматически обнаруживает новые коды по мере их появления в кадре, определяет формат и извлекает закодированные данные в режиме реального времени. Это особенно удобно для последовательного считывания большого числа штрихкодов при приемке товаров, инвентаризации и других складских операциях.

Сканирование платежных QR-кодов для СБП

ИИ Smart Engines распознает QR-коды для оплаты через Систему быстрых платежей (СБП), сформированные по стандартам Банка России, а также с отклонениями от них. Технология автоматически декодирует платежное сообщение, извлекает необходимые реквизиты и передает их в платежную форму банковского приложения. Это позволяет максимально упростить переводы, оплату товаров и услуг даже при нестандартном оформлении QR-кодов.

Поддержка поврежденных и трудночитаемых штрихкодов

Система Smart Engines распознает загрязненные, потертые и поврежденные штрихкоды. Технология считывает QR-коды даже при потере до 30% их площади по краям. Это дает возможность распознавать штрихкоды на изношенных этикетках, упаковках и других носителях, которые могут повреждаться при транспортировке и выцветать с течением времени.

Считывание штрихкодов с любых поверхностей

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

Работа в любых условиях

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

Умная камера для всех способов оплаты

Технологии Smart Engines позволяют объединить распознавание платежных штрихкодов, телефонных номеров и банковских карт в едином интерфейсе банковского приложения. Пользователю достаточно навести камеру смартфона на нужные реквизиты – система автоматически извлечет необходимые данные и передаст их в платежную форму. Единая умная камера упрощает проведение платежей и переводов, сокращает количество действий пользователя и снижает риск ошибок при вводе платежных данных.

Распознавание в приложениях, браузере и мессенджерах

Система Smart Engines позволяет интегрировать распознавание штрихкодов в мобильные приложения, а также веб-страницы и мини-приложения мессенджеров Telegram и MAX с помощью WebAssembly. Распознавание выполняется полностью локально и без подключения к интернету – как на смартфонах, так и на терминалах сбора данных (ТСД). Это позволяет использовать единое решение как для оплаты по QR-кодам, так и для автоматизации приемки товаров, инвентаризации и складского учета.

Отсутствие риска утечки:

работа OCR непосредственно на устройстве пользователя без передачи данных
Smart Engines – не сервис по обработке персональных данных. Мы поставляем решения, которые работают исключительно в информационном контуре Заказчика в полностью автоматическом режиме, без ручной верификации.
  • Данные ваших клиентов не передаются на обработку ни нам, ни третьим лицам. Сетевое соединение не требуется
  • Вся обработка ведется в локальной оперативной памяти устройств (100% on-premise)
  • Не используется верификация операторами – HITL (human-in-the-loop), crowdsourcing, mechanical turk
ВАЖНО! О репутационных и финансовых рисках работы с сервисами распознавания.
Юристы предупреждают: никакие гарантии, сертификаты и прочие документы, предоставляемые сервисами обработки персональных данных и документов, составляющих коммерческую, служебную и государственную тайну, не защищают компании от репутационных рисков и финансовой ответственности при утечке данных.
Компании, передающие данные своих клиентов на обработку третьим лицам, в случае утечки лишаются права ссылаться на нарушение ее прав третьими лицами и всю ответственность перед контрагентами принимают на себя.
Вы можете ознакомиться с юридическим заключением компании INTELLECT, входящей в группу самых успешных российских юридических компаний по версии международного рейтинга The Chambers Europe.
intellect
Попробуйте качество наших технологий

Попробуйте качество наших технологий

  • Скачайте мобильное демо-приложение, в котором все возможности собраны воедино
  • Можно на время отключить интернет, чтобы убедиться, что изображения и ваши данные не передаются
  • Попробуйте наше программное решение на примере QR/штрихкода, банковской карты, номера телефона и других объектов

Заказать продукт

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






    Часто задаваемые вопросы

    Система Smart Engines автоматически находит в кадре линейные и двумерные коды, определяет их тип и извлекает закодированные данные. Для сканирования достаточно навести камеру смартфона на штрихкод или сделать фотографию. Если в кадре несколько кодов разных типов, система распознает все сразу.

    QR-код распознается на смартфоне за 0,1 секунды. Высокая скорость работы сохраняется и на бюджетных смартфонах, что обеспечивает одинаковый пользовательский опыт независимо от устройства клиента.

    Система распознает двумерные коды QR, Micro QR, RMQR, Aztec, DataMatrix, PDF417 и MicroPDF417. Поддерживаются и линейные штрихкоды: Codabar, Code 39, Code 93, Code 128, EAN-8, EAN-13, ITF, ITF-14, UPC-A, UPC-E и GS1 DataBar.

    Да. Система считывает платежные QR-коды для переводов по СБП, выполненные как по стандартам Банка России, так и с отклонениями от них. Тип платежного кода (QR, Aztec или DataMatrix) определяется автоматически, а платежное сообщение декодируется с извлечением реквизитов для заполнения платежной формы.

    Да. Система одновременно распознает все штрихкоды на изображении, даже если они разных типов. В режиме непрерывного сканирования видеопотока количество считываемых кодов не ограничено.

    Да. Система считывает загрязненные, потертые, поврежденные и частично обрезанные коды, в том числе при потере до 30% площади QR-кода по краям. Код распознается даже на помятой упаковке или стертой этикетке.

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

    Да. Система распознает черно-белые, инверсные, цветные и многоцветные штрихкоды. Также поддерживаются компактные коды с мелкими элементами.

    Да. Система устойчива к недостаточному и избыточному освещению, контрастным теням и бликам и распознает коды при съемке под любым углом. QR-коды уверенно считываются при разрешении от 2 пикселей на модуль в простых случаях и от 3 пикселей на модуль – в сложных.

    Да. Распознавание штрихкодов объединяется с распознаванием номеров телефонов и банковских карт в единой «умной камере» приложения. Пользователь наводит камеру на нужные реквизиты, а система автоматически извлекает платежные данные.

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

    Распознавание встраивается в мобильные, десктопные, серверные и веб-приложения, а в браузер и PWA подключается через WebAssembly. Для low-code интеграции есть REST API. Также доступны API для C, C++, C#, Java, Python и PHP, поддержка React Native и Flutter и интеграция с 1С.

    Система совместима с Android, iOS, Windows, Linux, ОС Аврора, РЕД ОС, Astra Linux, ОС Альт и ОС Эльбрус. Поддерживаются архитектуры x86, x86_64, ARM, MIPS и «Эльбрус», поэтому решение подходит для проектов с требованиями импортозамещения.

    Нет. Распознавание выполняется локально на устройстве, без подключения к интернету и передачи изображений на внешние серверы. Все операции выполняются в оперативной памяти устройства.