Umbrella о нейросетях и приложении Text Detection

 

Наш руководитель отдела мобильной разработки, Султан, рассказал немного о приложении Text Detection, а также о нейросетях и искусственном интеллекте.

 

Интервьюер: Привет, Султан! Расскажи, пожалуйста, о приложении Text Detection.

Султан: Можно сказать, что проект Text Detection полностью основан на работе с нейросетями. Речь, конечно, идет не о машинном обучении, а об использовании готовых и уже обученных модулей. Взаимодействие с нейросетями – это всегда интересно, при этом существуют разные подходы.

Приложение Text Detection – это просто интеграция двух разных подходов. С одной стороны – Vision, а с другой – Tesseract. Две нейросети. Мы работаем с ними исключительно как потребители. Просто пользуемся, даём входные данные, получаем выходные. Например, c помощью Vision мы распознаем символы и их расположение, после чего поверх видоискателя камеры происходит наложение маски – цветных прямоугольников. Синие прямоугольники – это буквы, красные – это слова.

На первом скриншоте представлен результат работы Vision. Vision – это часть iOS, часть SDK, и идет из “коробки” для iOS 11 и старше. Vision – это фреймворк, который содержит в себе некоторые готовые модели нейросетей, в нем реализованы все принципы работы нейросетей – Vision многое умеет, у него есть целый перечень возможностей, включая распознавание.

Интересный момент: дело в том, что Vision и MLCore – это уже нативные компоненты, то есть нет необходимости использовать стороннюю библиотеку от каких-то непонятных людей или пользоваться платным сервисом, к тому же, подобные решения работают оффлайн, это расширяет область их применения и скорость обработки.

В приложении Text Detection также используется third-party подход через сторонний открытый исходный код Tesseract. Это очень известный сервис. Если вам требуется конвертировать текст на картинке в осознанный текст, то Tesseract – это именно то, что вам нужно! У него много разных API, он подходит как для мобильных приложений, так и для веба.

5

Второй скриншот экрана иллюстрирует результат работы Tesseract. Мы, по-большому счёту, не можем на это как-нибудь повлиять, просто скармливаем Tesseract’у фрейм из буфера камеры, после чего он либо успешно распознает текст на изображении, либо нет. Справедливости ради, стоит отметить, что зачастую распознавание проходит неудачно, так как технология не идеальна, а на результат оказывают влияние многие факторы – качество исходного изображения, освещенность, шрифт и угол съемки.

Фишка в том, что приложение Text Detection очень простое и по сути состоит из двух функций, на самом деле ничего больше и не планировалось. Это не конечный продукт, просто демо, главная цель которого – демонстрация вариантов распознавания визуальных образов, а также, анализ того, что Apple добавили в iOS 11 по части машинного обучения.

И: Будет ли это как-нибудь развиваться?

С: Нет, развиваться не будет. Дело было летом, дело было вечером. Один наш project manager сказал, что у клиента есть задача – получить приложение, способное распознавать текст и конвертировать его в читаемый вид.

PM спросил: “Возможно ли это реализовать?” Я ответил, что можно. Это 2 разные задачи, но если их объединить, то получится  решение. И я это сделал. Буквально за пару часов. Сделал и показал. И он такой: “Ух, ничего себе! Это возможно!” Позже мы скинули всё это дело нашему архитектору решений Катерине и клиенту. Посмотрели все – поохали. И, собственно говоря, всё. Это приложение не задумывалось как нечто глобальное.

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

Вот, буквально за 4 минуты я полностью рассказал вам всё самое основное о приложении Text Detection.

Если говорить о внутренних наработках мобильного отдела, я бы скорее отметил такую интересную и изысканную вещь как iOS Clean Architecture with Coordinator pattern. Наш разработчик действительно проделал серьёзную работу и представил очень интересную реализацию внутренней архитектуры для iOS приложений. В то же время, это не вызовет восторга у обычного пользователя. Подобные вещи невозможно продать клиенту, их невозможно как-то красиво презентовать. Именно в этом и заключается один из парадоксов IT-индустрии.

Считывалка букв с экрана, написанная за 2 часа, будет выглядеть для кого-то удивительным продуктом. В то же время, iOS Clean Architecture with Coordinator pattern является действительно впечатляющей вещью для разработчиков, но это абсолютно непродаваемый продукт. Вот и дилемма.

Именно поэтому я хочу немного отойти от беседы о приложении (в конце концов оно довольно простое и состоит из частично переиспользуемого кода) и поднять вопрос нейросетей и машинного обучения в целом. Нейросети – это наше будущее и настоящее, ими уже всё пронизано, просто мы не всегда это понимаем. Приложение Text Detection – это просто маленькая демонстрация того как работают нейросети, но не более того.

И: Text Detection – словно маленькая капля в океане нейросетей.

С: Да, в нем мы воспользовались новой функциональностью iOS 11 – возможностью работы с моделями нейросетей на нативном уровне и оффлайн. Эти вычисления происходят с помощью графической подсистемы через Metal API – важные и перспективные нововведения, хотя со стороны так и не скажешь, все больше сосредоточены на безрамочности нового iPhone. Не знаю, есть ли смысл говорить про нейросети, нейроны и их обучение, потому что это открытая информация, многие и так об этом знают.

Также не могу не отметить, что некоторые считают нейросети искусственным интеллектом или, как минимум, большим шагом к искусственному интеллекту.

2

И: Расскажи, пожалуйста, как ты к этому относишься?

С: Я вижу принципиальные отличия между полноценным AI и современной нейросетью. На мой взгляд, в настоящее время искусственный интеллект не существует. Совсем. Как бы это ни было парадоксальным, потому что сам термин постоянно всеми используется – выходят смартфоны, выходит новый Huawei, у которого оболочка якобы полностью основана на искусственном интеллекте и прочее, прочее.

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

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

Даже забавно об этом говорить, но у современных нейросетей, естественно, нет самоосознания, а ведь именно самосознание должно быть составляющей искусственного интеллекта.

И: Это по сути что-то вроде попытки отразить то, как происходит биологический процесс, быть может ту же биохимию.

С: Да, но естественно, за этим не стоит какой-либо разум.

И: Согласен, просто автоматика. Наподобие того, как человек просто идёт по улице, не задумываясь о том, как именно происходит само движение.

С: Что-то в этом роде. Многие восторгаются нейросетями. Нейросеть способна, например, найти кота на любой фотографии, но в этом нет разума. Все нейросети основаны на машинном обучении и… это всё просто сравнения. Если говорить упрощенно, то происходит это следующим образом: в нейросеть загружают изображения 10 000 котов и теперь она способна находить котов, но она не находит при этом собак и, опять-таки, она при этом не в состоянии осознать саму себя.

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

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

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

Речь идёт о некой автоматизации, мы не можем сказать нейросети: “Ищи котов!” И всё. Она их не знает, значит ей надо прописывать всё это вручную и многим это даже кажется странным – как так? В наш технически развитый век… котов загружать вручную… Да, это так.

И: Я бы сказал, что интеллект – это умение проводить более тонкие различия. Допустим, яблоко можно описать с точки зрения его формы или цвета. Например, описывая цвет яблока, можно перечислить кучу оттенков, либо можно описать поэтично вкус яблока и т.д.. Т.е. на мой взгляд, проявление интеллекта – это не просто, когда человек, говорит что яблоко – это еда или фрукт; интеллект проявляется, когда человек может описать объект многогранно. Так?

С: Да. Обычно нейросети не оперируют сложными совокупностями свойств. Если же мы будем говорить о визуальных нейросетях, в частности таких, как, например, в Text Detection, то нейросети опираются на некий визуальный образ.

Часть нейросети с некой вероятностью, грубо говоря, даёт сигнал: “Ну, наверное, это яблоко, с вероятностью в 40%, это похоже на яблоко”, другая часть нейросети: “это не похоже на яблоко”, в итоге они выдают, допустим, результат в 73%, из чего следует вывод, что изображаемый объект – яблоко. И, несмотря на то, что я описал процесс нарочито упрощенно, и на практике все несколько сложнее, в нейросетях на самом деле совсем нет разума, это просто сложная алгоритмизация.

Чудо нейросетей только в том, что всё происходит очень быстро. Более классические подходы к построению алгоритмов при попытке сохранить точность вычислений очень сильно проигрывали бы в скорости. Сейчас же подобное происходит просто по щелчку пальцев и это действительно достижение, очень круто!

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

На мой взгляд, любой человек, плотно занимающийся нейросетями, мог бы сказать: “Нет, речь не идёт о том, что когда-нибудь это станет “SkyNet”, так что бояться этого сейчас не стоит”.

Наше приложение Text Detection просто является одним из примером того, как работают нейросети.

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

Раньше мы распознавали QR коды, ещё раньше были штрих-коды. Спустя годы наши алгоритмы стали очень быстрыми и в настоящее время позволяют распознавать объект в целом.

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

И: Многие боятся того, что машины поработят людей, как в фильме Терминатор.

7

С: Да, некоторые думают что мы стоим на пороге подобного.

И: Илон Маск упоминал об опасности порабощения людей искусственным разумом, делая акцент на том, что он сам работает в сфере технологий и поэтому знает о чём говорит. Может, это просто такой маркетинг с его стороны?

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

По поводу взглядов Маска – мне очень интересно, на что он опирается и почему приходит к подобным выводам. Возможно, учитывая темпы современного развития технологий, он считает, что опасность грозит нам раньше, чем кажется со стороны. Но, в любом случае, я уверен, что это не в ближайшие 10 лет, так что всё спокойно.

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

И: Достаточно забавно получается – человек сам не познал свой мозг, но при этом пытается создать аналог мозга, что весьма парадоксально. И, теоретически, человек не способен этого сделать, просто потому что он до конца не знает о том, как сам устроен. Далее идёт проекция на технику, но в технике, опять-таки, это будет проявляться совсем иначе.

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

Может быть, со стороны это выглядит так. Например, если я хочу создать что-то, что способно распознавать текст, то, наверное, можно прийти к выводу, что мне захочется пойти дальше и придумать что-то, что будет и писать текст и ещё больше и лучше распознавать текст, а потом, быть может, даже само напишет какой-нибудь рассказ. Нет, я этого не хочу, точно так же, как и те, кто пользуется Tesseract или Vision. Думаю, они тоже в свою очередь не стремятся к подобному.

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

7

В настоящее время нейросети работают не очень хорошо. Работая с тем же MLCore, я экспериментировал, пытаясь заставить написанное мною приложение распознать кофемашину в нашем офисе. И, сколько я ни пытался – каждый раз я получал результат, что это банкомат, примерно с 70% вероятностью. Похоже, конечно, но это не банкомат.

И: Да, тут получается, что срабатывает просто какая-то визуалочка, человек же воспринимает вещи несколько иначе.

С: Конечно, в том и разница подходов. Человек оперирует сложной совокупностью знаний об объекте, нейросеть же анализирует, например, визуальный образ через банальное сравнение объекта с базой исходных данных.

И: Достаточно занимательно. Можно одеть кота в костюм собаки и нейросеть при этом выдаст результат “собака”.

С: Дело в том, что вынесение вердикта довольно сложное. Например, в работе технологии распознавания лица Face-ID от Apple анализ происходит также с помощью сложных нейросетей. И там можно поэкспериментировать с весом решений, закрывая определённые части лица – “Ой, узнаёт!” Прикрыл другую часть лица – “Ой, не узнаёт!”

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

Как только нейросеть начнёт узнавать всё с вероятностью в 100% случаев, тогда можно будет действительно по фотографии найти человека, или место на карте по снимку части леса или горы. Однако важно понимать, что даже научившись принимать только верные решения, и, доведя анализ на основе сравнения до совершенства, ни одна нейросеть не станет принципиально умнее в широком смысле этого слова, так и оставаясь прикладным инструментом.

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

И: Спасибо тебе большое за твоё время! Было действительно очень интересно!

С: Я всегда готов поделиться своим опытом и знаниями, так что обращайтесь еще, буду рад!

 

 

 

Фото: Shutterstock.com


Ещё

  • Криптовалюта не предел: перспективные направления разработки блокчейн-проектов
    Криптовалюта не предел: перспективные направления разработки блокчейн-проектов
      Как все новое и не до конца изученное, инновационные технологии порождают множество споров и самых невероятных прогнозов. Технология блокчейн не стала исключением. 2017 год, в течение которого о блокчейнах говорили много и неоднозначно, уже давно позади, но не все вопросы закрыты. Неоспоримо одно: возможности технологии выходят далеко за рамки финансовых вопросов. Безопасность, прозрачность, открытость, …
  • Предупрежден-значит вооружен: правовые и этические вопросы и риски применения ИИ
    Предупрежден-значит вооружен: правовые и этические вопросы и риски применения ИИ
      Внедрение автономной электроники в повседневную действительность не всегда протекает гладко. Очередная новость, которая снова вызвала всплеск дискуссий вокруг ИИ технологий и их физического воплощения в реальную жизнь: в американском городе Темпе, Аризона, автономный автомобиль компании Uber сбил пешехода. В результате удара женщина скончалась. Как исключить подобные проблемы в будущем? Какие следует делать выводы? Какие …
  • Как блокчейн может улучшить безопасность вашего мобильного приложения?
    Как блокчейн может улучшить безопасность вашего мобильного приложения?
      Блокчейн – революционная технология на рынке IT, которая поможет сделать ваши приложения более современными и, что немаловажно, максимально безопасными, а значит, не только конкурентоспособными, но и способными превзойти конкурентов. Наша статья будет полезна тем, кто хочет значительно улучшить безопасность мобильных приложений благодаря использованию этой перспективной технологии или хочет узнать о других гранях блокчейна.   …