Как открывали глаза компьютерам (к 20-летию библиотеки компьютерного зрения OpenCV)
В 1998 году выпускник ННГУ им. Лобачевского Вадим Писаревский устроился на работу в небольшую IT-компанию и получил задание начать работать над технологией, о которой ничего не знал. В то время он и не предполагал, что эта работа затянется на десятилетия, а на основе созданных с его участием разработок в мире будет изготовлено несколько миллиардов гаджетов, и жизнь людей на планете Земля существенно изменится.
Как малая компания начала работу планетарного масштаба
Все началось с того, что математики и IT-специалисты – выходцы из Сарова создали Нижегородскую Программную Технологическую Лабораторию (NSTL – Nizhny Software Technology Lab[1]). Ранее они работали над исполнением контракта между Intel и Саровским ВНИИЭФ. Но сотрудничество с международными компаниями в закрытом городе, с его режимом секретности, было очень неудобным. Поэтому несколько саровских специалистов и переехали в областной центр, сохранив при этом связи с Intel. «Мы выполняли несколько контрактов с Intel, когда мне предложили взяться за работу над библиотекой[2] компьютерного зрения, – вспоминает Валерий Федорович Курякин (в те годы один из руководителей NSTL). – У меня уже был опыт работы с компьютерным зрением, и я понимал перспективность этой технологии. И хотя тогда был вынужден разрываться между перспективными и менее перспективными, но приносящими деньги проектами (сил у компании не хватало), решил согласиться».
Валерий Федорович Курякин, один из основателей компании NSTL, сегодня – Центр исследований и разработок Intel в России: "У меня уже был опыт работы с компьютерным зрением, и я понимал перспективность этой технологии, а потому согласился принять участие в проекте" |
Сил у NSTL действительно не хватало. В то время в ней работали менее 40 человек, в основном, молодых специалистов. Да и не все сотрудники горели желанием работать неизвестно над чем. Безуспешно перепробовав нескольких программистов, руководитель NSTL дал задание начать работать над библиотекой двум вчерашним выпускникам ННГУ им. Лобачевского: Вадиму Писаревскому (сегодня – сотрудник Института искусственного интеллекта и робототехники для общества (г. Шэньчжень, Китай) и Виктору Ерухимову (сейчас – CEO & Founder в itSeez3D). О компьютерном зрении они не знали ничего, но за работу взялись с энтузиазмом. «Ощущения чего-то большого у меня не было, зато были интересные задачи и какой-то бесконечный драйв, когда все бегали с вытаращенными глазами», – вспоминает Виктор Ерухимов. В те годы нижегородские разработчики работали в парах со специалистами Intel в США, а курировали весь проект его инициаторы в Intel – Гари Брадски и Шинн Ли. Позже, когда нижегородцы показали хорошие результаты, им предоставили большую автономию.
Количество занятых в проекте сотрудников постепенно увеличивалось. «К 2000 году у нас сложилась техническая команда, – рассказывает Вадим Писаревский. – Я был техническим лидером, но не справился бы без таких людей, как Сергей Обломов, который разбирался, как строить библиотеки в Linux, Валерий Черепенников, занимавшийся оптимизацией, или Валерий Мосягин, специализировался на калибрации камер. Всего нас было уже человек десять». Примерно столько же инженеров работало и в США. И этими силами был создан первый готовый продукт.
Выпущенная в 2000 году первая версия библиотеки получилась достаточно убедительной и наделала много шума в мировом IT-сообществе. Функциональность ее по современным меркам была весьма скромной: простейшая обработка изображений, калибрация камер, возможность отслеживать движение точек на компьютере… Но некоторые разработанные тогда программы используются и до сих пор. К примеру, когда вы делаете фотографию смартфоном, вокруг лиц фотографируемых людей появляются прямоугольники, и на них наводится резкость. Эта функция присутствовала еще в первой версии библиотеки, и написанная тогда программа до сих пор используется практически без изменений. Главное же: разработка сразу стала применяться для решения практических задач. Компьютерное зрение стало использоваться, например, на конвейерах промышленных предприятий для определения координат передвигающихся деталей или для контроля правильности пайки электронных плат.
Как к разработке компьютерного зрения привлекли привлекли мировое IT-сообщество
Вскоре после первого успеха американский инициатор проекта Гари Брадски убедил руководство Intel развивать технологию в виде свободно распространяемой библиотеки с открытым исходным кодом. То есть, доступ к разработке Intel мог совершенно бесплатно получить любой программист мира. Сейчас, когда все крупные компании участвуют в разработке открытого кода и поддерживают проекты, разрабатываемые другими командами, это решение кажется очевидным. Но тогда, 20 лет назад, компании еще не были готовы вкладываться в разработки, которые затем выложат в открытый доступ, и конкуренты смогут использовать их бесплатно. Аргументом в пользу такого решения могло служить только то, что Intel не сможет зарабатывать на производстве и продаже более мощных процессоров, если не будет существовать программного обеспечения, требующего большей вычислительной мощности.
Вадим Писаревский, лидер проекта OpenCV, сегодня – сотрудник Института искусственного интеллекта и робототехники для общества, г. Шэньчжень, Китай: «Такие большие проекты не в силах реализовать не только один человек, но и одна команда. Они под силу только мировому IT-сообществу».
|
В 2000 году библиотека получила свое нынешнее название OpenCV. «Я думаю, что это было единственно верное решение, – заявляет Вадим Писаревский. – Такие большие проекты не в силах реализовать не только один человек, но и одна команда. Они под силу только мировому IT-сообществу». Десятки тысяч программистов со всего мира стали пользоваться разработками программистов Intel, но и тысячи энтузиастов начали присылать разработанные ими патчи[3] для развития библиотеки.
Библиотека быстро росла и превратилась в мощный инструмент для развития технологии компьютерного зрения. Если раньше каждый программист должен был начинать любую свою разработку с азов, создавая простейшие программы, то теперь он использовал для нее готовые модули OpenCV. Поэтому OpenCV резко снизил порог входа на рынок. Для иллюстрации этого тезиса основоположники проекта рассказали о своей работе со студентами.
«Недавно группа из трех студентов-второкурсников, сидя на карантине, за пару недель реализовала проект, позволяющий детектировать: есть ли на лице человека маска? Актуальная сегодня тема. Еще лет десять назад на этот проект взяли бы группу высококвалифицированных программистов и дали бы им на работу несколько месяцев. Теперь, благодаря использованию возможностей OpenCV, такая разработка даже на уровень курсовой не тянет», – рассказал один из участников проекта Кирилл Корняков (сегодня – руководитель Intel IOTG Computer Vision).
«В ННГУ им. Лобачевского мы с группой студентов – программистов начального уровня, которые ранее практически не работали с компьютерным зрением и распознаванием изображений, решили принять участие в европейском конкурсе университетов, – добавил Валерий Федорович Курякин. – Нам нужно было решить несколько задач вроде такой: «Человек не случайно, а намеренно оставил сумку в метро и ушел. Это подозрительная ситуация, которую нужно распознать и объявить тревогу». За пару месяцев с помощью OpenCV студенты выполнили все задания, и наша команда оказалась в двадцатке лучших университетов Европы, хотя многие другие участники конкурса занимались компьютерным зрением уже годами».
Как OpenCV ушла от Intel к Intel
Разумеется, интерес к столь удобному инструменту быстро рос. Количество пользователей OpenCV резко увеличилось, но энтузиазм Intel по развитию этой библиотеки в середине 2000-х стал угасать. Команда с пиковой численности примерно в 30 сотрудников (если считать вместе с американскими) была уменьшена до двух человек. А в 2009 году Intel официально прекратил проект «OpenCV». Решения крупных компаний иногда трудно понять, но разработчики проекта объясняют отказ американской корпорации от OpenCV тем, что библиотека на протяжении нескольких лет не приносила компании прямого дохода. «Да, технология интересная, да, выглядела перспективно, но в то время было непонятно, как ее можно монетизировать», – рассуждает Валерий Черепенников (сегодня – вице-президент Российского Исследовательского Института Huawei (Huawei Russian Research Institute, RRI).
Валерий Черепенников, одни из разработчиков OpenCV, сегодня – вице-президент Huawei Russian Research Institute, RRI: «Если бы работа по отслеживанию изменений в библиотеке прекратилась, OpenCV бы затухла. Проектов с открытым кодом тысячи, и большинство из них, к сожалению, погибли».
|
После отказа Intel от финансирования OpenCV Вадим Писаревский на протяжении нескольких лет поддерживал библиотеку бесплатно, «на общественных началах». И если бы он не делал этого, то проект, скорее всего, умер бы, повторив судьбу многих других открытых библиотек, оставшихся без поддержки. «Если кто-то не будет постоянно отслеживать работу с библиотекой, она затухнет. Проектов с открытым кодом тысячи, и большинство из них, к сожалению, погибли», – утверждает Валерий Черепенников.
Часть нижегородских программистов – разработчиков OpenCV – также решили не отказываться от освоенной ими темы. Они уволились из Intel и основали собственный микробизнес: Центр компьютерного зрения «Аргус». Довольно быстро этот бизнес из микро- вырос в малый, а затем и в совсем немалый. На его основе была создана компания Itseez, с офисами в Нижнем Новгороде и Сан-Франциско, в которой работали более 100 инженеров. «В то время выяснилось, что на основе OpenCV можно разрабатывать продукты, которые хорошо работают не только на процессорах Intel», – вспоминает Виктор Ерухимов. Так NVIDIA Corporation стала использовать разработки нижегородцев для развития своих графических ускорителей и автомобильных бортовых компьютеров. А разработчик персональных роботов – помощников для дома Willow Garage даже совершила революцию в робототехнике. «Я сам писал программу для Willow Garage, благодаря который робот при разряде аккумулятора зрительно находит в комнате розетку, подъезжает к ней, и своей рукой вставляет в нее вилку для подзарядки батареи», – вспоминает Виктор Ерухимов.
Виктор Ерухимов, один из разработчиков OpenCV, сегодня - CEO & Founder в itSeez3D: «Нижний Новгород сложно произнести по-английски, далеко не все знают, где это. А OpenCV знают все, и я горжусь, что участвовал в ее разработке».
|
Компьютерное зрение стало приносить реальные деньги. Когда руководство Intel осознало, что другие компании успешно конкурируют на ими же созданной площадке, корпорация вновь взялась за развитие этой технологии сразу в трех своих подразделениях: в Нижнем Новгороде, в США и Китае. А в 2016 году Intel купил основанную своими бывшими нижегородскими сотрудниками и известную, прежде всего, ключевой ролью в развитии библиотеки OpenCV компанию Itseez.
Как у компьютеров появился Искусственный интеллект
Первые статьи о Deep learning (глубокое обучение машин на основе нейронных сетей, которое в популярной литературе называется «Искусственный интеллект») были написаны еще в конце 90-х годов XX века. Но тогда казалось, что эта технология бесперспективна. «Когда в 2003 году я начинал заниматься машинным обучением, нейронные сети среди его алгоритмов считались абсолютным изгоем. Потому что с ними невозможно работать, их нельзя тренировать, они плохо реагируют на ошибки данных и т.д.», – рассказывает Виктор Ерухимов. В 2009 году появились первые смартфоны с фотоаппаратом и выходом в Интернет. А вслед за ними возникли миллионы изображений, которыми можно было тренировать компьютеры на больших объемах данных. Первой запустила крупный проект такой «тренировки» NVIDIA Corporation, создав с помощью нижегородской Itseez первые алгоритмы глубокого машинного обучения. Тогда еще никто не знал, что из этого получится. А получилась новая техническая революция. «Раньше человечество не предполагало, что если нейронную сетку натренировать на миллионе изображений, то она будет обучаться и дальше уже самостоятельно, – объясняет Вадим Писаревский, – но оказалось, что количество переросло в качество. И человечество смотрит на это, как на новую игрушку, думая, что с ней еще можно сделать».
К примеру, при анализе рентгеновских снимков врачи показывают машине сотни тысяч изображений как здоровых, так и больных человеческих органов. Затем машина с помощью Искусственного интеллекта не только точнее человека определяет наличие известных современной медицине заболеваний, но и указывает на еще неизвестные аномалии. «Десять лет назад, мы рассуждали, сможет ли алгоритм детектировать пешехода на маломощном автомобильном компьютере, – сейчас этот этап пройден. Intel производит огромное количество датчиков, которые идентифицируют людей, автомобили, препятствия... Сейчас вопрос, скорее, в том, насколько автомобиль без водителя может прогнозировать поведение автомобилей с водителем с точки зрения здравого смысла и целесообразности. К примеру, когда вы выезжаете со второстепенной дороги на главную, а там пробка, вы всегда понимаете, кто вас пропускает. А машина пока нет. Но она скоро поймет. Аналогичная история в других отраслях», – рассказывает Виктор Ерухимов.
«Несколько лет мы делали проект по распознаванию дорожных знаков для автомобильных навигаторов, – вспоминает Валерий Федорович Курякин. – Знаки на дорогах часто меняются, и чтобы актуализировать карты, приходилось посылать большое количество автомобилей с цифровыми камерами на борту. Сделанные ими видеозаписи пересылались на обработку малоквалифицированным специалистам в Индии, которые их просматривали и вносили корректировки в карты вручную. При этом допускалось много ошибок. Благодаря разработанной на основе Искусственного интеллекта программе сегодня дорожные знаки считываются видеорегистраторами участников дорожного движения, и карты актуализируются в режиме реального времени без дополнительных затрат разработчиков. Раньше это было просто немыслимо».
Благодаря Искусственному интеллекту мир меняется. Компьютеры стали обучаться не только на основе изображений, но и звуков, и стали распознавать человеческую речь. Появились машинные переводчики, которые в режиме реального времени переводят речь с одного языка на другой. Во многих отраслях Искусственный интеллект догнал человеческий, а в некоторых уже и обошел его. Мы даже не осознаем быстроты изменений. «В начале девяностых годов я сделал систему распознавания лиц для пропускной системы с 95% достоверностью в Сарове. Там был использован технический трюк, с помощью которого всегда удавалось получить изображение в стандартном виде – человек не мог наклонить или повернуть голову как-то не так. И все равно это казалось фантастикой, – рассказывает Валерий Федорович Курякин. – А сегодня машинам удается распознать/идентифицировать человека почти с любого ракурса, при изменениях во внешности: возрастные изменения, очки, усы/борода, головные уборы, маски…».
Как не закончилась эта история
Созданная под руководством нижегородцев библиотека OpenCV приобрела всемирную популярность в IT-среде. «Последние десять лет я занимаюсь бизнесом, много езжу по миру и каждый год встречаюсь с тысячами людей. И у меня возникает проблема, когда нужно объяснить, откуда я. Нижний Новгород сложно произнести по-английски, далеко не все знают, где это. А OpenCV знают все, и я всегда горжусь, что участвовал в ее разработке», – рассказал Виктор Ерухимов.
К настоящему времени библиотека OpenCV скачана уже более 20 млн раз. Но скачивают ее не конечные пользователи, а разработчики. Пользователей у нее – более миллиарда. Ведь ее элементы применялись при разработке Android и iOS, а следовательно, каждый владелец смартфона на планете пользуется трудом нижегородских программистов. Использована OpenCV и при разработке многих других гаджетов и устройств. Но, как объяснил Вадим Писаревский, документировано утверждать этого нельзя: лицензия OpenCV очень либеральная и позволяет «копипастить код» (переиспользовать в любом виде), а компании-производители, если есть возможность не указывать использование в разработке своего продукта OpenCV, этого и не делают.
Кирилл Корняков, одни из разработчиков OpenCV, сегодня – руководитель Intel IOTG Computer Vision: «Сейчас десятки незнакомых нам людей присылают свои коды, мы интегрируем их в основную ветку, но библиотека не разваливается, а наоборот, постоянно совершенствуется».
|
Разработчики очень любят считать строчки кода в своих проектах – в OpenCV их сейчас около миллиона. Это число постоянно увеличивается – энтузиасты-разработчики присылают по нескольку патчей ежедневно. Только за 2019 год их было принято более тысячи. «Несмотря на то, что десятки незнакомых нам людей присылают свои коды, мы интегрируем их в основную ветку, но библиотека не разваливается, а наоборот, постоянно совершенствуется, – рассказывает руководитель подразделения Intel IOTG Computer Vision Кирилл Корняков. – Для этого мы проводим десятки тысяч тестов каждого обновления и следим за чистотой, за гигиеной, качеством программной системы... А выполняют эту работу всего два человека: Александр Алехин, который принимает десятки патчей в месяц, и Максим Шабунин, который заведует инфраструктурой. С точки зрения экономики процесса – это какая-то фантастика. А все потому, что в Нижегородском исследовательском центре Intel была построена под развитие OpenCV мощная инфраструктура. У нас часто спрашивают, как она устроена. Более того, мы сами пытаемся повторить это решение на других проектах Intel».
Мировое сообщество пока не видит потолка развития технологии компьютерного зрения. А технологии Искусственного интеллекта едва оторвались от пола. Поэтому библиотека OpenCV будет расти еще долго, и как эти технологии изменят жизнь человечества, пока не может предсказать никто.
Автор статьи: Валерий Браун
NB Справка
Наиболее распространенные области применения технологий компьютерного зрения
Автономные транспортные средства
Компьютерное зрение необходимо для беспилотного вождения автомобиля. Ведущие автопроизводители используют несколько камер, лидарные, радиолокационные и ультразвуковые датчики для получения изображений из окружающей среды, чтобы их автомобили с автоматическим управлением могли обнаруживать объекты, разметку полосы движения, знаки и сигналы светофора для безопасного вождения.
Технология развивается и в России. Так, в ноябре 2020 года «Группа ГАЗ», «Газпром нефть» и НГТУ им. Р.Е. Алексеева начали опытно-промышленную эксплуатацию беспилотного электромобиля «ГАЗель NEXT» на дорогах одного из самых крупных нефтяных месторождений России – Южно-Приобском. В настоящее время электромобиль «ГАЗель NEXT» перевозит грузы в полностью автоматическом режиме по дорогам низкого качества в условиях Крайнего Севера.
Распознавание лиц
Сегодня на переднем крае использования технологии распознавания лиц находится Китай, где она применяется для работы полиции, платежных порталов, контрольно-пропускных пунктов в аэропорту. Но широко используется эта технология и в России, где применяется, например, при строительстве систем «Безопасный город».
Здравоохранение
Поскольку 90% всех медицинских данных основаны на изображениях, существует множество применений компьютерного зрения в медицине. От внедрения новых методов медицинской диагностики для анализа рентгеновских лучей, маммографии и других сканирований до наблюдения за пациентами для выявления проблем на ранних этапах и оказания помощи в хирургическом вмешательстве.
Сельское хозяйство
Технологическую революцию в сельском хозяйстве в ближайшие годы начнут беспилотные комбайны, которые станут постепенно вытеснять с полей обычные машины под управлением человека. Так, российские разработчики из Cognitive Technologies совместно с Ростсельмаш и Камаз создали программное обеспечение Agro Pilot для беспилотного вождения комбайнов. Технология уже была протестирована на полях Ростовской области и Татарстана. Кроме того, компьютерное зрение имеет большой потенциал для выявления сорняков, поэтому гербициды можно распылять непосредственно на них, а не на посевы. Ожидается, что это уменьшит количество необходимых гербицидов на 90%.
Промышленность
Компьютерное зрение помогает производителям работать безопаснее, разумнее и эффективнее. Оборудование проверяется компьютерным зрением, чтобы вмешаться до того, как поломка вызовет дорогостоящие простои. Упаковка и качество продукции контролируются, а дефектные продукты отбраковываются. Это лишь несколько примеров из тысяч разработанных для промышленности приложений, созданных с помощью компьютерного зрения.
Торговля
Технологии компьютерного зрения и Искусственного интеллекта широко применяются для логистических, охранных, маркетинговых и управленческих систем розничных магазинов. Так Ростелеком летом 2000 года реализовал проект «Умного магазина» в торговой сети «Гуливер» в Ульяновске, позволяющий анализировать поведение покупателей и на основе их предпочтений оперативно менять выкладку товаров и цены на них.
[1] В 2000 г. Intel купил NSTL и создал на основе этой компании Центр исследований и разработок Intel в России.
[2]IT Infrastructure Library — библиотека инфраструктуры информационных технологий — библиотека, описывающая лучшие из применяемых на практике способов организации работы подразделений или компаний, занимающихся предоставлением услуг в области информационных технологий.
[3] Патч (англ. patch — заплатка) — автоматизированное отдельно поставляемое программное средство, используемое для устранения проблем в программном обеспечении или изменения его функциональности.