Как открывали глаза компьютерам

?v=1

В 1998 году выпускник ННГУ им. Лобачевского Вадим Писаревский устроился на работу в небольшую IT-компанию и получил задание начать работать над технологией, о которой ничего не знал. В то время он и не предполагал, что эта работа затянется на десятилетия, а на основе созданных с его участием разработок в мире будет изготовлено несколько миллиардов гаджетов, и жизнь людей на планете Земля существенно изменится.

Как малая компания начала работу планетарного масштаба

Все началось с того, что математики и IT-специалисты — выходцы из Сарова создали Нижегородскую Программную Технологическую Лабораторию (NSTL — Nizhny Software Technology Lab[1]). Ранее они работали над исполнением контракта между Intel и Саровским ВНИИЭФ. Но сотрудничество с международными компаниями в закрытом городе атомщиков, с его режимом секретности, было очень неудобным. Поэтому несколько саровских специалистов и переехали в областной центр, сохранив при этом связи с Intel. «Мы выполняли несколько контрактов с Intel, когда мне предложили взяться за работу над библиотекой[2] компьютерного зрения, — вспоминает Валерий Федорович Курякин (в те годы один из руководителей NSTL). — У меня уже был опыт работы с компьютерным зрением, и я понимал перспективность этой технологии. И хотя тогда был вынужден разрываться между перспективными и менее перспективными, но приносящими деньги проектами (сил у компании не хватало), решил согласиться».

Сил у NSTL действительно не хватало. В то время в ней работали менее 40 человек, в основном, молодых специалистов. Да и не все сотрудники горели желанием работать неизвестно над чем. Безуспешно перепробовав нескольких программистов, руководитель NSTL дал задание начать работать над библиотекой двум вчерашним выпускникам ННГУ им. Лобачевского: Вадиму Писаревскому (сегодня — сотрудник Института искусственного интеллекта и робототехники для общества (г. Шэньчжень, Китай) и Виктору Ерухимову (сейчас — CEO & Founder в itSeez3D). О компьютерном зрении они не знали ничего, но за работу взялись с энтузиазмом. «Ощущения чего-то большого у меня не было, зато были интересные задачи и какой-то бесконечный драйв, когда все бегали с вытаращенными глазами», — вспоминает Виктор Ерухимов. В те годы нижегородские разработчики работали в парах со специалистами Intel в США, а курировали весь проект его инициаторы в Intel — Гари Брадски и Шинн Ли. Позже, когда нижегородцы показали хорошие результаты, им предоставили большую автономию.

Количество занятых в проекте сотрудников постепенно увеличивалось. «К 2000 году у нас сложилась техническая команда, — рассказывает Вадим Писаревский. — Я был техническим лидером, но не справился бы без таких людей, как Сергей Обломов, который разбирался, как строить библиотеки в Linux, Валерий Черепенников, занимавшийся оптимизацией, или Валерий Мосягин, специализировался на калибрации камер. Всего нас было уже человек десять». Примерно столько же инженеров работало и в США. И этими силами был создан первый готовый продукт.

Выпущенная в 2000 году первая версия библиотеки получилась достаточно убедительной и наделала много шума в мировом IT-сообществе. Функциональность ее по современным меркам была весьма скромной: простейшая обработка изображений, калибрация камер, возможность отслеживать движение точек на компьютере… Но некоторые разработанные тогда программы используются и до сих пор. К примеру, когда вы делаете фотографию смартфоном, вокруг лиц фотографируемых людей появляются прямоугольники, и на них наводится резкость. Эта функция присутствовала еще в первой версии библиотеки, и написанная тогда программа до сих пор используется практически без изменений. Главное же: разработка сразу стала применяться для решения практических задач. Компьютерное зрение стало использоваться, например, на конвейерах промышленных предприятий для определения координат передвигающихся деталей или для контроля правильности пайки электронных плат.

Как к разработке компьютерного зрения привлекли мировое сообщество 

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

В 2000 году библиотека получила свое нынешнее название OpenCV. «Я думаю, что это было единственно верное решение, — заявляет Вадим Писаревский. — Такие большие проекты не в силах реализовать не только один человек, но и одна команда. Они под силу только мировому IT-сообществу». Десятки тысяч программистов со всего мира стали пользоваться разработками программистов Intel, но и тысячи энтузиастов начали присылать разработанные ими патчи[3] для развития библиотеки.

Библиотека быстро росла и превратилась в мощный инструмент для развития технологии компьютерного зрения. Если раньше каждый программист должен был начинать любую свою разработку с азов, создавая простейшие программы, то теперь он использовал для нее готовые модули OpenCV. Поэтому OpenCV резко снизил порог входа на рынок. Для иллюстрации этого тезиса один из участников проекта (сегодня — руководитель Intel IOTG Computer Vision)  ирилл Корняков рассказал о своей работе со студентами: «Во время пандемии группа из трех студентов-второкурсников, сидя на карантине, за пару недель реализовала проект, позволяющий детектировать: есть ли на лице человека маска? Актуальная тогда тема. Еще лет десять назад на этот проект взяли бы группу высококвалифицированных программистов и дали бы им на работу несколько месяцев. Теперь, благодаря использованию возможностей OpenCV, такая разработка даже на уровень курсовой не тянет».

Как OpenCV ушла от Intel к Intel 

Разумеется, интерес к столь удобному инструменту быстро рос. Количество пользователей OpenCV резко увеличилось, но энтузиазм Intel по развитию этой библиотеки в середине 2000-х стал угасать. Команда с пиковой численности примерно в 30 сотрудников была уменьшена до двух человек. А в 2009 году Intel официально прекратил проект «OpenCV». Решения крупных компаний иногда трудно понять, но разработчики проекта объясняют отказ американской корпорации от OpenCV тем, что библиотека на протяжении нескольких лет не приносила компании прямого дохода. «Да, технология интересная, да, выглядела перспективно, но в то время было непонятно, как ее можно монетизировать», — рассуждает Валерий Черепенников (сегодня — вице-президент Российского Исследовательского Института Huawei (Huawei Russian Research Institute, RRI).

После отказа Intel от финансирования OpenCV Вадим Писаревский на протяжении нескольких лет поддерживал библиотеку бесплатно, «на общественных началах». И если бы он не делал этого, то проект, скорее всего, умер бы, повторив судьбу многих других открытых библиотек, оставшихся без поддержки. «Если кто-то не будет постоянно отслеживать работу с библиотекой, она затухнет. Проектов с открытым кодом тысячи, и большинство из них, к сожалению, погибли», — утверждает Валерий Черепенников.

 Часть нижегородских программистов — разработчиков OpenCV — также решили не отказываться от освоенной ими темы. Они уволились из Intel и основали собственный микробизнес: Центр компьютерного зрения «Аргус». Довольно быстро этот бизнес из микро- вырос в малый, а затем и в совсем немалый. На его основе была создана компания Itseez, с офисами в Нижнем Новгороде и Сан-Франциско, в которой работали более 100 инженеров. «В то время выяснилось, что на основе OpenCV можно разрабатывать продукты, которые хорошо работают не только на процессорах Intel», — вспоминает Виктор Ерухимов. Так NVIDIA Corporation стала использовать разработки нижегородцев для развития своих графических ускорителей и автомобильных бортовых компьютеров. А разработчик персональных роботов — помощников для дома Willow Garage даже совершил революцию в робототехнике. «Я сам писал программу для Willow Garage, благодаря который робот при разряде аккумулятора зрительно находит в комнате розетку, подъезжает к ней, и своей рукой вставляет в нее вилку для подзарядки батареи», — вспоминает Виктор Ерухимов.

Компьютерное зрение стало приносить реальные деньги. Когда руководство Intel осознало, что другие компании успешно конкурируют на ими же созданной площадке, корпорация вновь взялась за развитие этой технологии сразу в трех своих подразделениях: в Нижнем Новгороде, в США и Китае. А в 2016 году Intel купил основанную своими бывшими нижегородскими сотрудниками и известную, прежде всего, ключевой ролью в развитии библиотеки OpenCV компанию Itseez.

Как у компьютеров появился искусственный интеллект  

Первые статьи о Deep learning (глубокое обучение машин на основе нейронных сетей, которое в популярной литературе называется «Искусственный интеллект») были написаны еще в конце 90-х годов XX века. Но тогда казалось, что эта технология бесперспективна. «Когда в 2003 году я начинал заниматься машинным обучением, нейронные сети среди его алгоритмов считались абсолютным изгоем. Потому что с ними невозможно работать, их нельзя тренировать, они плохо реагируют на ошибки данных и т.д.», — рассказывает Виктор Ерухимов. В 2009 году появились первые смартфоны с фотоаппаратом и выходом в Интернет. А вслед за ними возникли миллионы изображений, которыми можно было тренировать компьютеры на больших объемах данных.

Первой запустила крупный проект такой «тренировки» NVIDIA Corporation, для которой нижегородская Itseez разработала первые алгоритмы глубокого машинного обучения. Тогда еще никто не знал, что из этого получится. А получилась новая техническая революция. «Раньше человечество не предполагало, что если нейронную сетку натренировать на миллионе изображений, то она будет обучаться и дальше уже самостоятельно, — объясняет Вадим Писаревский, –, но оказалось, что количество переросло в качество. И человечество смотрит на это, как на новую игрушку, думая, что с ней еще можно сделать».

К примеру, при анализе рентгеновских снимков врачи показывают машине сотни тысяч изображений как здоровых, так и больных человеческих органов. Затем машина с помощью Искусственного интеллекта не только точнее человека определяет наличие известных современной медицине заболеваний, но и указывает на еще неизвестные аномалии. «Десять лет назад, мы рассуждали, сможет ли алгоритм детектировать пешехода на маломощном автомобильном компьютере, — сейчас этот этап пройден. Intel производит огромное количество датчиков, которые идентифицируют людей, автомобили, препятствия… Сейчас вопрос, скорее, в том, насколько автомобиль без водителя может прогнозировать поведение автомобилей с водителем с точки зрения здравого смысла и целесообразности. К примеру, когда вы выезжаете со второстепенной дороги на главную, а там пробка, вы всегда понимаете, кто вас пропускает. А машина пока нет. Но она скоро поймет. Аналогичная история в других отраслях», — рассказывает Виктор Ерухимов.

«Несколько лет мы делали проект по распознаванию дорожных знаков для автомобильных навигаторов, — вспоминает Валерий Федорович Курякин. — Знаки на дорогах часто меняются, и чтобы актуализировать карты, приходилось посылать большое количество автомобилей с цифровыми камерами на борту. Сделанные ими видеозаписи пересылались на обработку малоквалифицированным специалистам в Индии, которые их просматривали и вносили корректировки в карты вручную. При этом допускалось много ошибок. Благодаря разработанной на основе Искусственного интеллекта программе сегодня дорожные знаки считываются видеорегистраторами участников дорожного движения, и карты актуализируются в режиме реального времени без дополнительных затрат разработчиков».

Благодаря Искусственному интеллекту мир меняется. Компьютеры стали обучаться не только на основе изображений, но и звуков, и стали распознавать человеческую речь. Появились машинные переводчики, которые в режиме реального времени переводят речь с одного языка на другой. Во многих отраслях Искусственный интеллект догнал человеческий, а в некоторых уже и обошел его. Мы даже не осознаем быстроты изменений. «В начале девяностых годов я сделал систему распознавания лиц для пропускной системы в Сарове с 95% достоверностью. Там был использован технический трюк, с помощью которого всегда удавалось получить изображение в стандартном виде — человек не мог наклонить или повернуть голову как-то не так. И все равно это казалось фантастикой, — рассказывает Валерий Федорович Курякин. — А сегодня машинам удается распознать/идентифицировать человека почти с любого ракурса и при изменениях во внешности».

Как не закончилась эта история 

Созданная под руководством нижегородцев библиотека OpenCV приобрела всемирную популярность в IT-среде. К настоящему времени она скачана уже более 20 млн раз. Но скачивают ее не конечные пользователи, а разработчики. Пользователей у нее — несколько миллиардов. Ведь ее элементы применялись при разработке Android и iOS, а следовательно, каждый владелец смартфона на планете пользуется трудом нижегородских программистов. Использована OpenCV и при разработке многих других гаджетов и устройств. Но, как объяснил Вадим Писаревский, документировано утверждать этого нельзя: лицензия OpenCV очень либеральная и позволяет «копипастить код» (переиспользовать в любом виде), а компании-производители, если есть возможность не указывать использование в разработке своего продукта OpenCV, этого и не делают.

Мировое сообщество пока не видит потолка развития технологии компьютерного зрения. А технологии Искусственного интеллекта едва оторвались от пола. Поэтому библиотека OpenCV будет расти еще долго, и как эти технологии изменят жизнь человечества, пока не может предсказать никто.

© Habrahabr.ru