«Точность компьютерного распознавания лиц превышает точность распознавания у лучших экспертов-людей. Нейросети уже более качественно решают эти задачи, чем люди, но сами по себе нейросети не учатся».
В этом году исполнилось 25 лет всемирно известной библиотеке компьютерного зрения OpenCV, которая зародилась в Нижнем Новгороде. NN.DK.RU поговорил c экспертом компании Huawei по компьютерному зрению, архитектором библиотеки OpenCV Вадимом Писаревским.
25 лет назад вы начали работать над библиотекой компьютерного зрения. Можете припомнить, какой тогда виделась эта технология и зачем она была нужна?
— В 1998 году, когда мы только начали работать над этой библиотекой по контакту с компанией Intel, технология компьютерного зрения находилась в зачаточном состоянии, если можно так сказать. Когда меня друзья спрашивали, чем я занимаюсь, что такое компьютерное зрение, я говорил, что компьютерное зрение находится в своем каменном веке. Практически все приходилось делать с нуля. Когда начинались какие-то исследования или разработки какого-то решения, то даже самые базовые вещи нужно было создавать. И на это, конечно, уходило много усилий.
Компьютерное зрение уже тогда использовалось в каком-то объеме, допустим, для контроля качества на производстве. Еще в 80-е года был бум робототехники, когда считалось, что вот-вот будут созданы роботы, которые кардинально позволят повысить производительность труда. Но этот бум прошел, очень много средств было вложено, и инвесторы, скорее, были разочарованы результатом. Но, тем не менее, было понимание, что компьютерное зрение — это неотъемлемая часть искусственного интеллекта.
Как известно, в случае людей, 80% информации поступает к нам через зрение. Если мы хотим сделать искусственный интеллект, то мимо решения задачи извлечения информации из изображения нам не пройти, поэтому исследования продолжались.
Это все было затруднено двумя факторами. Первый фактор — это то, что производительность «железа» в то время была достаточно низкая. 1998 год — это компьютеры с процессором Pentium 2, на подходе был Pentium 3, и если сравнить их с процессорами в современных телефонах, то они были в тысячу раз медленнее. И второй фактор — даже самые базовые вещи, как я уже говорил, приходилось писать с нуля.
И компания Intel этим озаботилась. Работал закон Мура, производительность процессоров росла в геометрической прогрессии, то есть она росла очень быстро. Также компания Intel попробовала решить вторую проблему — отсутствие базового софта — и дать какой-то фундамент разработчикам, и поэтому заключила контракт с маленькой нижегородской компанией, в которой мы работали, и мы начали работать над этой библиотекой.
Фото: Самая первая команда OpenCV вместе с основателем проекта Гари Брадски, НН, 1999
Эта работа приносила деньги? Сколько получали вы и ваши коллеги?
— В 1998 году я только закончил магистратуру нижегородского университета, и мои друзья были либо студенты, либо тоже недавние выпускники ВУЗа. Соответственно, мы присоединились к нижегородской компании, меня пригласили туда друзья. Программисты зарабатывали всегда относительно неплохо, но самое главное для меня было то, что работа была очень интересная, и что мы работали по специальности. Мы учились на математиков, на программистов, задачи по работе у нас были совершенно разные, но всегда требующие хорошего знания математики.
Мы работали по контактам с разными зарубежными компаниями — там были и Toshiba, и Phillips, и Intel. Intel, в частности, стала работать с саровскими фирмами, которые были основаны выходцами из ядерного центра, стала работать с Нижним Новгородом. Они увидели, что есть очень квалифицированные математики, физики, и что они могут сделать качественный программный продукт, и при этом — по американским меркам — недорого. Конкретные суммы я уже не помню по зарплатам, но мы получали, как начинающие программисты, для конца 90-х нормальные деньги.
В 2000 году вышла первая версия библиотеки. Она, насколько я знаю, была выложена в свободный доступ — тогда это была редкая практика. Как это изменило индустрию? Проще ведь продавать технологию, а не раздавать.
— Действительно, OpenCV стала одной из первых библиотек, которые Intel выпустил в открытом виде. И в этой области это стало одной из первых разработок с открытым кодом. Мотивацию этого достаточно просто объяснить — Intel на протяжении десятков лет очень успешно занималась тем, что по-английски называется enableing.
Смысл заключается в том, что, во-первых, Intel изначально была «железной» конторой, она не продавала софт. Но даже софтовые компании, такие как Microsoft, пришли со временем к пониманию, что чисто на софте бизнес не делается — бизнес делается либо на продаже «железа», а софт идет как нечто расширяющее возможности «железа» или дающее доступ к возможностям «железа», либо на услугах.
Intel выпускала и выпускает процессоры, и делает основные деньги на процессорах. Но зачем люди будут покупать следующие процессоры, если на предыдущих всё, что нужно — Word, Excel – прекрасно работает? Нужны новые области применения — например, Photoshop или какая-то система компьютерного зрения. Поэтому Intel вкладывала определенные средства, чтобы помогать компании Adobe оптимизировать Photoshop под свои процессоры, чтобы помогать разрабатывать приложения компьютерного зрения и т.д.
И модель была такая — разработчикам бесплатно дается базовая библиотека для компьютерного зрения, которая работает везде, но на процессорах Intel, за счет специальной оптимизации, она работает эффективнее, чем на других. Поэтому люди получают эту библиотеку бесплатно, разрабатывают приложения, и у пользователей этих приложений появляется дополнительный стимул купить процессоры Intel, чтобы эти приложения работали быстро и хорошо. Это была основная модель, и я думаю, что она себя оправдала и в случае OpenCV, и в случае Photoshop, и в других.
Фото: В офисе НИИ AIRS, Shenzhen, 2020
Процесс обучения компьютеров зрению продолжается довольно давно, десятки лет, и сейчас кажется, что он как никогда близок к завершению. Так ли это?
— Сейчас модель того, как развивается компьютерное зрение, следующая. Как правило, модель не «обучается» в процессе взаимодействия с пользователем. Из этого правила уже появляются исключения — нейросеть ChatGPT, которая в процессе взаимодействия с пользователем приобретает дополнительную информацию и потом её использует.
В случае компьютерного зрения, как правило, модель такая, что мы собираем большой дата-сет — несколько миллионов изображений на определенную тематику, и дальше ставим задачу компьютеру. Эта задача определяется некоей функцией штрафа, и компьютер старается так натренировать сеть, чтобы этот штраф был минимальным, чтобы наиболее точно соответствовать этим данным. И есть разные задачи, в частности, распознавание лиц, и можно сказать, что сейчас модели уже способны узнать человека из миллиона. Этому помогают и дополнительные данные, та же геолокация.
Благодаря этим технологиям, точность компьютерного распознавания превышает точность распознавания лучших экспертов-людей. Нейросети уже более качественно решают эти задачи, чем люди, но сами по себе эти сети не учатся. То есть мы собираем базу данных и учим эту сеть, и дальше сеть ведет себя следующие сто лет так, как была натренирована, то есть ее интеллект не возрастает.
Есть разработки, когда сеть становится со временем интеллектуальнее, но здесь есть опасность, потому что если сеть мы натренировали и зафиксировали ее состояние — она будет вести себя так же: она не будет вести себя лучше, но и вести себя хуже не станет. Если мы ей позволим развиваться и тренироваться, есть риск, что она будет работать хуже, чем изначально, или будет решать задачи, которые мы не просили ее решать.
Во время пандемии ваша технология компьютерного зрения применялась для опознавания маски на лице, и было много разговоров о тотальной слежке за людьми. Как вы относитесь к этим разговорам?
— Можно начать с того, что технология эта не совсем наша. Технологию разработали Алекс Крыжевский и группа исследователей, они совершили революцию в компьютерном зрении и вообще в искусственном интеллекте, которая называется deep learning – глубокое обучение. Они нашли способ обучать гигантские нейронные сети. Нейронные сети известны с конца 50-х годов. Персептрон Розенблатта — это была крохотная нейросеть, состоящая из одного нейрона, но даже она умела отличать букву А от буквы Б.
Но была очень большая проблема тренировать огромные нейронные сети — нейросети среднего размера можно было тренировать, но они обладали ограниченным интеллектом. Никто не знал, как тренировать огромные нейросети. А дальше всё сложилось вместе, паззл сложился, условно говоря. Появилась компания Nvidia, она разработала для игр графические карты, но выяснилось, что их можно использовать не только для игр, но это очень эффективные вычислители. И первые сети были натренированы с помощью этих ГПУ.
Также появились цифровые камеры — люди получили возможность снимать кучу изображений и загружать их в интернет. Появилась возможность собирать эти большие базы данных, чтобы было на чем эти сетки учить. Я надеюсь, что наработки, которые были в нашей библиотеке, позволили упростить эксперименты с этим, визуализацию и прочее, но технология была создана не нами. Мы ее в какой-то момент подхватили, и теперь в нашей библиотеки есть возможность работать с большими сетками.
Что касается современного состояния, Большого Брата и так далее. Сейчас, если вы превысите скорость где-то, то камера вас отследит, сделает снимок, автоматически составит документ, и на телефон вам придет штраф — это делается с минимальным, а иногда и нулевым участием человека. В некоторых организациях разрабатывают и внедряют сетки, которые определяют, например, на стройплощадке, все ли люди носят жилет и каску, то есть соблюдают ли они технику безопасности. И если есть какие-то нарушения, об этом отправляется отчет. Оплата лицом или qr-кодом, или тот же FaceID – это всё технологии компьютерного зрения, которые работают и делают нашу жизнь проще и безопаснее. Считать это Большим Братом и опасаться ли этого? Я думаю, в целом, что это позитивные изменения.
Фото: разработчики OpenCV после воссоединения с Интел. США, 2016
Ваш проект — OpenCV – жив спустя 25 лет, хотя большинство аналогов, скажем так, заглохли. В каком он сейчас состоянии? Какие ресурсы нужны на его поддержку?
— Нельзя сказать, что был какой-то период, когда мы купались в деньгах. Всегда был какой-то дефицит ресурсов и дефицит квалифицированных людей, которые над библиотекой работали. Сейчас мы собираемся запустить кампанию по сбору дополнительного финансирования, чтобы выпустить пятую версию библиотеки. Тем не менее, невзирая на трудности, вот уже много лет 1-2 раза в год выходит новая версия библиотеки с новыми функциями, скорость работы алгоритмов также постоянно возрастает. Сейчас наша библиотека на GitHub имеет более 50 тысяч «звездочек» — из проектов на языке C++ это пятый по популярности проект.
Почему вы не переехали из Нижнего Новгорода?
— На самом деле у меня были длительные командировки. Например, в течении полутора лет я работал в Китае. Как раз это был такой период перед и во время пандемии. В настоящий момент Нижний Новгород — очень комфортный и перспективный город для развития IT-технологий. Я не вижу никаких серьезных причин менять место жительства. Здесь вполне можно хорошо заниматься компьютерным зрением.
Есть в IT дефицит кадров?
— Если бы вы спросили тот же самый вопрос относительно Китая, однозначный ответ был бы «да». Этот вопрос — комплексный. IT и, в частности, компьютерное зрение — это специальные области, которые всегда существуют поверх чего-то, часто поверх какого-то технологичного производства. И если посмотреть, сколько в Китае производителей автомобилей, каждый из которых оснащается системами автономного вождения; сколько производителей сотовых телефонов, в которых есть камеры, системы улучшения изображения, распознавания лиц; а еще есть роботы-пылесосы, в каждый из которых встроена достаточно крутая система компьютерного зрения, которая строит карту квартиры, и не натыкается на препятствия. Это все технологические вещи, и для каждой такой задачи нужны специалисты.
Если посмотреть на то, сколько делается у нас, по сравнению с Китаем, это на порядки меньше. Поэтому, с одной стороны, нам нужно на порядок меньше специалистов, чем в Китае, но поскольку вырастить хороших специалистов занимает время, то определенно я надеюсь, что у нас будет развиваться технологическое производство, и правительство и банки будут финансировать подобные разработки, будут венчурные инвесторы, и тогда эти специалисты понадобятся.
Они и сейчас нужны, но гораздо меньше, чем в том же Китае. И, конечно, не надо ждать, надо выращивать специалистов уже сейчас, параллельно с этим стимулируя высокотехнологичные производства.
Должен сказать, что вся команда OpenCV, когда мы начали этим заниматься, мы ничего не знали про компьютерное зрение. Мы просто хорошо в университете учили математику и физику. Мне кажется, хорошее базовое фундаментальное образование — это ключ к тому, чтобы человек, который это всё освоил, смог освоить и криптографию, и компьютерное зрение, и другие направления в IT.
Из всех отраслей, где используется компьютерное зрение, что кажется самым перспективным сейчас?
— Можно назвать несколько. Во-первых, это всё, что касается нас самих — компьютерное зрение в сотовых телефонах. Сейчас сотовый телефон заменил огромное количество всевозможных гаджетов и продолжает заменять. Одно из современных направлений — персональные фитнес-тренеры. Сотовый телефон с помощью камеры может определить, насколько эффективно вы отбиваете ракеткой мяч, насколько правильно кидаете баскетбольный мяч в кольцо, насколько правильно выполняете асаны в йоге. При этом с помощью умных часов осуществляется контроль вашего пульса. Эта комбинация позволяет вам следить за своим здоровьем и развиваться. Это очень крутое направление.
Второе направление, которое можно привести в пример, совершенно другого характера — это робототехника. Я уже говорил, что в 80-е года в робототехнику было вложено какое-то огромное количество средств, но технологии просто были не готовы, чтобы сделать качественных роботов.
Сейчас ситуация совершенно другая, и есть возможность сделать роботов нового поколения не как гуманоидов с двумя руками и двумя ногами, а как интеллектуальные устройства для определенных задач. Пусть это будет просто рука с камерой, или робот-пылесос в виде большой шайбы на полу, или какая-то штука, которая осуществляет какие-то базовые операции, но чтобы ее, что самое главное, можно было научить новым операциям.
Например, мне в Китае показывали робота-сварщика, который с помощью камеры точно наводит сварочный аппарат и делает очень качественный шов, не хуже чем это делают квалифицированные сварщики.
Если какая-то даже небольшая компания сможет позволить себе закупить одного робота или арендовать нескольких, и научить их производить какие-то товары, или осуществлять какие-то технологические операции по сбору каких-то продуктов, то это обозначает, что человечеству не нужно будет создавать огромные цеха и фабрики, которые могут позволить себе только развитые страны Запада или Япония, так что даже небольшие страны или города, а то и маленькие мастерские могут себе позволить выпускать продукты относительно маленьким тиражом, но фабричного качества.
Это может быть очень качественная обувь, сделанная под конкретного человека. Или какие-то часы, или телефон, или даже автомобиль специального дизайна со специальными характеристиками. По сути, если это все будет развито, это может перевернуть всю индустрию фабричного производства. Когда не нужно будет создавать огромный завод и год его отлаживать, чтобы сделать что-то качественно на конвейере большим тиражом, чтобы всё это окупить. Можно будет в гараже делать какие-то классные вещи.
Новая волна робототехники может оказаться очень перспективной с точки зрения перехода мира к новому производственному укладу.
Читайте также на NN.DK.RU — «Мы должны держать нашу дверь открытой всегда». Эксперт о ситуации на IT-рынке.