Русский
Русский
English
Статистика
Реклама

Smart engines

Насколько неуязвим искусственный интеллект?

18.11.2020 14:04:51 | Автор: admin


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

Как вы знаете, мы в Smart Engines с трепетом относимся к каждому шагу процесса обучения нейросетевых моделей от подготовки данных (см. здесь, здесь и здесь) до разработки архитектуры сетей (см. здесь, здесь и здесь). На рынке решений с использованием искусственного интеллекта и систем распознавания мы являемся проводниками и пропагандистами идей ответственной разработки технологий. Месяц назад даже мы присоединились к глобальному договору ООН.

Так почему же так страшно спустя рукава учить нейронные сетки? Разве плохая сетка (которая будет просто плохо распознавать) реально может серьезно навредить? Оказывается, дело тут не столько в качестве распознавания полученного алгоритма, сколько в качестве полученной системы в целом.

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

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

Отравление данных (Data Poisoning)


Первая и самая опасная атака это отравление данных. При этой атаке ошибка закладывается на этапе обучения и злоумышленники заранее знают, как обмануть сеть. Если проводить аналогию с человеком, представьте себе, что вы учите иностранный язык и какие-то слова выучиваете неправильно, например, вы думаете, что horse (лошадь) это синоним house (дом). Тогда в большинстве случаев вы спокойно сможете говорить, но в редких случаях будете совершать грубые ошибки. Подобный фокус можно провернуть и с нейронными сетями. Например, в [1] так обманывают сеть для распознавания дорожных знаков. При обучении сети показывают знаки Стоп и говорят, что это и правда Стоп, знаки Ограничение скорости с также правильной меткой, а также знаки Стоп с наклеенным на него стикером и меткой Ограничение скорости. Готовая сеть с высокой точностью распознает знаки на тестовой выборке, но в ней, фактически, заложена бомба. Если такой сетью воспользоваться в реальной системе автопилота, то увидев знак Стоп со стикером она примет его за Ограничение скорости и продолжит движение автомобиля.



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

  1. Порча данных на краудсорсинг-платформах. Наверное, ни для кого не секрет (или это все еще секрет?...), что, отмечая машины на капче для входа на какой-нибудь сайт, мы создаем гигантскую обучающую выборку. Похожие задачи часто ставятся на платформах, где люди могут немного заработать, размечая данные. Очевидно, что такая дешевая разметка никогда не оказывается чистой. Иногда человеку лень отмечать все объекты, иногда он их просто не замечает. В большинстве случаев подобные ошибки вылавливаются статистическими методами (например, одну и ту же картинку показывают нескольким людям и выбирают самый популярный ответ). Однако, теоретически, возможен сговор, когда один и тот же объект всеми размечается неверно, как в примере со знаками Стоп со стикерами. Подобную атаку уже нельзя выловить статистическими методами и последствия у нее могут быть серьезными.
  2. Использование предобученных моделей. Второй крайне популярный способ, который может привести к порче данных использование предобученных моделей. В сети огромное количество практически обученных полуфабрикатов-архитектур нейронных сетей. Разработчики просто меняют последние слои сети под нужные им задачи, а основной массив весов остаются без изменений. Соответственно, если изначальная модель подверглась порче данных, итоговая модель частично унаследует неправильные срабатывания [1].
  3. Порча данных при обучении в облаке. Популярные тяжелые архитектуры нейронных сетей практически невозможно обучить на обычном компьютере. В погоне за результатами многие разработчики начинают учить свои модели в облачных сервисах. При таком обучении злоумышленники могут получить доступ к обучающим данным и незаметно для разработчика их испортить.

Атаки уклонения (Evasion Attack)


Следующий тип атак, который мы рассмотрим это атаки на уклонение. Такие атаки возникают на этапе применения нейронных сетей. При этом цель остается прежней: заставить сеть выдавать неверные ответы в определенных ситуациях.

Изначально, под ошибкой уклонения подразумевались ошибки II рода, но сейчас так называют любые обманы работающей сети [8]. Фактически, злоумышленник пытается создать у сети оптическую (слуховую, смысловую) иллюзию. Нужно понимать, что восприятие изображения (звука, смысла) сетью существенном образом отличается от его восприятия человеком, поэтому часто можно увидеть примеры, когда два очень похожих изображения неразличимых для человека, распознаются по-разному. Первые такие примеры были показаны в работе [4], а в работе [5] появился популярный пример с пандой (см. титульную иллюстрацию к данной статье).

Как правило, для атак уклонения используются состязательные примеры (adversarial examples). У этих примеров есть пара свойств, которые ставят под угрозу многие системы:

  1. Состязательные примеры зависят от данных, а не от архитектур, и их можно сгенерировать для большинства датасетов [4]. При этом показано существование универсальных помех, добавление которых к картинке практически всегда обманывает модель [7]. Универсальные помехи не только отлично работают в рамках одной обученной модели, но и переносятся между архитектурами. Это свойство особенно опасно, ведь многие модели учатся на открытых датасетах, для которых можно заранее просчитать необходимые искажения. На следующем рисунке, взятом из работы [14], в качестве универсальной помехи проиллюстрировано влияние незначительного поворота и смещения целевого объекта.


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

Атаки уклонением можно делить на разные группы: по желаемому ответу, по доступности модели и по способу подбора помех:



  1. По желаемому ответу. Очевидно, что при атаке уклонения мы хотим в результате получить ответ, отличный от настоящего. Однако иногда мы хотим получить просто неверный ответ, неважно какой. Например, если у нас есть классы кот, собака, ящерица, мы хотим распознать картинку с котом неверно, но, нам всё равно, какую из двух оставшихся меток выдаст модель. Такие методы называются нецелевыми. Обратный случай, когда мы хотим не просто не распознать кота, а сказать, что это именно собака, называются целевыми.
  2. По доступности модели. Для того, чтобы обмануть модель, нам нужно понимать, как подобрать данные, на которой сети станет плохо. Конечно, мы можем вслепую перебирать картинки и надеяться, что вот тут-то сеть ошибется или основываться только на общих соображениях схожести объектов для человека, однако так мы вряд ли найдем примеры аналогичные примеру с пандой. Гораздо логичнее использовать ответы сети, чтобы знать, в каком направлении менять картинку. При атаке на черный ящик, мы знаем только ответы сети, например, результирующий класс и его оценку вероятности. Именно такой случай часто встречается в реальной жизни. При атаке на белый ящик мы знаем все параметры модели, считая веса, скорости и метод обучения. Очевидно, что в такой ситуации можно очень эффективно подбирать состязательные примеры, высчитывая их по сети. Казалось бы, этот случай должен быть редким в реальной жизни, ведь при применении настолько полная информация про сеть недоступна. Однако стоит помнить, что состязательные примеры зависят в основном от данных и хорошо переносятся между архитектурами, а значит, если вы учили сеть на открытом наборе данных, такие примеры для нее найдут быстро.
  3. По подбору помех. Как видно из примера с пандой, для получения неверного ответа каждый пиксель изображения слегка изменяют. Как правило, такой шум нельзя просто взять и угадать, а значит, надо его высчитывать. Методы расчета помех делятся на две группы: однопроходные и итеративные. Как следует из названия, в однопроходных методах нужно за одну итерацию рассчитать помехи. В итеративных же методах можно аккуратно подбирать помехи. Ожидаемо, итеративные методы представляют большую угрозу для модели, чем однопроходные. Особенно же опасны итеративные методы атак на белый ящик.

Конечно, атакам уклонениям подвержены не только сети, классифицирующие животных и объекты. На следующем рисунке, взятом из работы 2020 года, представленной на IEEE/CVF Conference on Computer Vision and Pattern Recognition [12], показано, как хорошо можно обманывать рекуррентные сети для оптического распознавания текста:



Теперь о немного других атаках на сети


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

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

Итак, рассмотрим два вида атак: атаку на установление принадлежности и атаку путем инверсии модели.

Атака установления принадлежности


При данной атаке злоумышленник пытается определить, использовались ли конкретные данные для обучения модели. Хотя с первого взгляда кажется, что ничего страшного в этом нет, как мы говорили выше, можно выделить несколько нарушений конфиденциальности.

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

Во-вторых, возможно непосредственное раскрытие врачебной тайны. Например, если у вас есть модель, следящая за передвижениями людей с болезнью Альцгеймера и вы знаете, что данные о конкретном человека использовались при обучении, вы уже знаете, что этот человек болен [9].

Атака путем инверсии модели


Под инверсией модели понимают возможность получения обучающих данных из обученной модели. При обработке естественного языка, а в последнее время и при распознавании изображений, часто используются сети, обрабатывающие последовательности. Наверняка все сталкивались с автодополнение в Google или Яндекс при вводе поискового запроса. Продолжение фраз в подобных системах выстраивается исходя из имеющейся обучающей выборки. В результате, если в обучающей выборке были какие-то персональные данные, то они могут внезапно появиться в автодополнении [10, 11].

Вместо заключения


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

У всех на слуху истории, как врезаются автопилоты, ошибаются системы искусственного интеллекта в банковской сфере, возникают проблемы обработки биометрии. Совсем недавно, из-за ошибки системы распознавания лиц россиянина едва не посадили на 8 лет в тюрьму.

Пока это все цветочки, представленные единичными случаями.

Ягодки ждут впереди. Нас. В ближайшем будущем.

Список используемой литературы
[1] T. Gu, K. Liu, B. Dolan-Gavitt, and S. Garg, BadNets: Evaluating backdooring attacks on deep neural networks, 2019, IEEE Access.
[2] G. Xu, H. Li, H. Ren, K. Yang, and R.H. Deng, Data security issues in deep learning: attacks, countermeasures, and opportunities, 2019, IEEE Communications magazine.
[3] N. Akhtar, and A. Mian, Threat of adversarial attacks on deep learning in computer vision: a survey, 2018, IEEE Access.
[4] C. Szegedy, W. Zaremba, I. Sutskever, J. Bruna, D. Erhan, I. Goodfellow, and R. Fergus, Intriguing properties of neural networks, 2014.
[5] I.J. Goodfellow, J. Shlens, and C. Szegedy, Explaining and harnessing adversarial examples, 2015, ICLR.
[6] A. Kurakin, I.J. Goodfellow, and S. Bengio, Adversarial examples in real world, 2017, ICLR Workshop track
[7] S.-M. Moosavi-Dezfooli, A. Fawzi, O. Fawzi, and P. Frossard, Universal adversarial perturbations, 2017, CVPR.
[8] X. Yuan, P. He, Q. Zhu, and X. Li, Adversarial examples: attacks and defenses for deep learning, 2019, IEEE Transactions on neural networks and learning systems.
[9] A. Pyrgelis, C. Troncoso, and E. De Cristofaro, Knock, knock, who's there? Membership inference on aggregate location data, 2017, arXiv.
[10] N. Carlini, C. Liu, U. Erlingsson, J. Kos, and D. Song, The secret sharer: evaluating and testing unintended memorization in neural networks, 2019, arXiv.
[11] C. Song, and V. Shmatikov, Auditing data provenance in text-generation models, 2019, arXiv.
[12] X. Xu, J. Chen, J. Xiao, L. Gao, F. Shen, and H.T. Shen, What machines see is not what they get: fooling scene text recognition models with adversarial text images, 2020, CVPR.
[13] M. Fredrikson, S. Jha, and T. Ristenpart, Model Inversion Attacks that Exploit Confidence Information and Basic Countermeasures, 2015, ACM Conference on Computer and Communications Security.
[14] Engstrom, Logan, et al. Exploring the landscape of spatial robustness. International Conference on Machine Learning. 2019.
Подробнее..

Ковидная индустрия и системы распознавания

21.04.2021 14:19:32 | Автор: admin

Прошло больше года с момента введения жестких ограничительных мер, связанных с распространением COVID-19. Сейчас мир постепенно возвращается в нормальный режим жизни, хотя угроза новых вспышек заболевания остается. Поэтому принимаются все необходимые меры: маски, перчатки и сдача ПЦР-тестов по разным поводам. С административной точки зрения, это, скорее всего, правильно. А вот с организационной система не готова. Главная проблема слабо организованная система проведения ПЦР-тестов. В сегодняшней статье поговорим о том, как ее усовершенствовать.

С точки зрения организации администрирования всего процесса, в целом, ПЦР-тестирование это не просто мазок из носоглотки. Необходимо организовать следующие процессы:

  • регистрация клиента и взятие мазка из ротоглотки ПЦР-теста (в стационарных или мобильных пунктах);

  • логистика биоматериала до исследовательской лаборатории;

  • проведение анализа биоматериала;

  • предоставление результатов тестирования;

  • контроль результатов на пропускных пунктах (в аэропортах, гостиницах, офисах и т.п.).

Оказывается, в качестве bottle neck в приведенном списке выступают первая и последняя позиции. Действительно, логистика и проведение самого анализа биоматериала давно автоматизированные и проработанные со стороны лабораторий процессы. А вот процедура взятия мазка и последующий контроль результатов исследования на пропускных пунктах в условиях массового наплыва клиентов новая задача.

Впрочем, сам по себе мазок это минутное дело. Большую часть времени занимает регистрация клиента в базе данных лаборатории, ввод персональных данных, проведение анкетирования, заключение договора, оплата услуг. Получается, что процедура проведения ПЦР-теста на 70% представляет из себя утомительный процесс, связанный с заполнением различных документов.

Регистрация клиента в лаборатории

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

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

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

Если честно, не важно, какой способ автоматизации при регистрации клиентов использовать. Главное, чтобы специалисты биохимических лабораторий занимались своим профессиональным делом, а не заполнением различных бумаг, которые уже можно и нужно доверить искусственному интеллекту.

Контроль результатов ПЦР-теста

Второй этап автоматизации это контроль валидности выданных тестов. Нет ничего сложного, если надо проверить результаты теста у 100 человек. А если их тысячи (крупные офисы в мегаполисе) или десятки и даже сотни тысяч человек (аэропорта, ж/д вокзалы, речные и морские порты)? И каждый идет со своим индивидуальным бланком справки (как бы это смешно ни звучало, но нет единого шаблона таких справок о результатах ПЦР тестирования).

Помимо проверки непосредственно результата теста, важно следить за валидностью и подлинностью таких справок. Помните этот громкий международный скандал, когда 190 пассажиров рейса Москва Чжэнчжоу предоставили идентичные результаты серологического теста на антитела к COVID-19, что в результате привело к проблемам международного авиасообщения?

Система распознавания Smart Document Engine не только автоматически контролирует результаты в сертификатах тестирования COVID-19 для трех основных лабораторий России (Гемотест, Инвитро и Хеликс), но и возвращает все необходимые данные (как текстовые, так и графические), которые могут быть использованы для анализа валидности и подлинности таких сертификатов.

Помимо мобильного кейса, на базе Smart Document Engine можно построить полноценный роботизированный комплекс - автономный программно-аппаратный комплекс сканирования и анализа данных, совместимый с различными системами СКУД. Роботизированный комплекс способен за мгновение распознать данные из сертификата, контролировать наличие или отсутствие РНК и передавать управляющее действие в СКУД. Таким образом удастся полностью исключить человека из контроля тестов на загруженных пропускных пунктах.

Итого

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

Update. Буквально вчера была опубликована новость о том, что россиян, прибывающих из Турции и Танзании до 1 мая, а после 1 мая всех граждан, прибывающих из-за границы, обязали дважды сдать тест на COVID-19. Такие нововведения лишь подтверждают, что крайне необходима автоматизация процесса проведения ПЦР тестирования и контроля полученных результатов.

Подробнее..

Зачем нужна еще одна система распознавания баркода?

29.01.2021 18:07:40 | Автор: admin

В сегодняшней статье на Хабре мы расскажем про очередную задачу распознавания. Рассмотрим проблему распознавания штрихкодов, которая очень актуальна в связи с непрерывным развитием системы маркировки и системы оплаты товаров по QR-коду в 2021 году.

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

Сегодня не будем углубляться в техническую часть, а рассмотрим существующие проблемы при внедрении технологии распознавания баркодов. Действительно, откуда могут возникнуть проблемы, если штрихкодирование это такой особый способ кодирования данных, который как раз призван обеспечить быстрое и беспроблемное считывание данных машиной? Все алгоритмы декодирования баркодов разжёваны до самых мелочей. Задача декодирования баркодов отлично решается без использования каких-либо нейронных сетей и прочих страшилок нашего века. Кажется, что технология распознавания баркодов это тот космодром, с которого должны взлетать в счастливое будущее большое количество opensource-библиотек.

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

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

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

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

Есть еще одна причина, почему мы не остались в стороне от решения проблемы распознавания штрихкодов. В нашей стране семимильными шагами развивается технология оплаты по QR-кодам (в подтверждение моих слов смотрите, например, материал на vc.ruздесь,здесьиздесь). БудучиучастникамиГлобального договора ООН и ярыми приверженцами ответственного ИИ, мы просто не могли допустить, чтобы рынок не оценил всех преимуществ оплаты по QR из-за фактической неспособности имеющихся бесплатных библиотек распознавания. И не будем забывать про набирающую обороты Систему маркировки и прослеживаемости товаров. Все это натолкнуло нас на создание модуля распознавания штрихкодовSmart Code Engine.

Чтобы проверить эффективность получившегося решения, мы самостоятельно создали небольшой набор фотографий QR-кодов. Единственное требование фотографировать баркоды необходимо так, как это делают обычные пользователи. Ниже приводим примеры изображений из нашего датасета.

Как видите, изображения далеки от идеальных. Мы сравнили качество работы Smart Code Engine с двумя популярными opensource-решениями:OpenCV 4.5.1(библиотека компьютерного зрения с открытым исходным кодом, которую часто применяют при создании системы с ИИ) иZxing(библиотека с открытым исходным кодом для распознавания баркодов). В таблице ниже представлены результаты:

Продукт

Smart Code Engine

OpenCV 4.5.1

Zxing

Качество распознавания

99%

56%

81%

Как трактовать эти числа? Достаточно просто:

  • OpenCV серьезно проигрывает Zxing по качеству декодирования;

  • Smart Code Engine обеспечивает в 19 раз меньше ошибок, чем Zxing (с OpenCV даже и смысла сравнивать нет).

Возникает вопрос: А на чем ошибаются рассмотренные системы? Проведем анализ ошибок только для Smart Code Engine и Zxing. Ниже представлено единственное изображение, на котором ошиблось Smart Code Engine.

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

А вот несколько примеров, на чем ошибается ZXing. Тоже не самые простые случаи (серьезные проективные искажения, высокая плотность, сложный фон).

На сегодняшний день Smart Code Engine обеспечивает качественное распознавание одно- и двумерных штрих-кодов из различных счетов и квитанций, включая счета за коммунальные и государственные услуги, налоговых документов и счетов, а также билетов, чеков, счетов-фактур, ценников, плакатов и объявлений. Модуль чтения QR-кодов способен читать инвертированные коды, а также устойчив к любой ориентации. Текущая версия Smart Code Engine поддерживает распознавание QR Code, AZTEC, PDF 417, Data Matrix, codabar, CODE_39, CODE_93, CODE_128, EAN_8, EAN_13, ITF, UPC_A, UPC_E.

Smart Code Engine уже внедрен в мобильные приложения Тинькофф Банка, Рокетбанка, СДМ-Банка, Банка Санкт-Петербург. Мы уверены, это только начало.

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru