Support us

«Мне 30, а я в Ангарске». Сисадмин-самоучка из Сибири попал в топ Kaggle и теперь тренирует нейросети в минской Mapbox (+список курсов по Computer Vision)

Оставить комментарий
«Мне 30, а я в Ангарске». Сисадмин-самоучка из Сибири попал в топ Kaggle и теперь тренирует нейросети в минской Mapbox (+список курсов по Computer Vision)

Сергей Мушинский — Computer Vision Engineer в минском центре разработки Mapbox, делает нейросети для мобильного приложения-видеорегистратора. Ещё он — в топ-100 онлайн-площадки для научного моделирования Kaggle, неоднократный призёр соревнований на этой платформе. Пикантность в том, что компьютерным зрением Сергей занялся лишь четыре года назад, а до этого даже программистом себя не считал. Без высшего образования, он долго пытался покинуть родной Ангарск. Каким был путь из Прибайкалья в Минск, Сергей рассказал dev.by.

Участие в соревнованиях

3-е место (из 419 команд, 539 участников): сегментация спутниковых снимков для британской DSTL. Описание решения.

Топ-5 среди 717 участников в соревновании DSTL по детекции автомобилей на аэрофотосъёмке на улицах Лондона.

4-е место (из 735 команд, 895 участников): сегментация автомобилей от фона. Описание решения.

Топ-7 (из 1 315 команд, 1 603 участника): анализ голосовых команд от Google.

1-е место (из 582 команд, 766 участников): определение модели камеры IEEE’s Signal Processing Society — Camera Model Identification. Описание решения.

«Компьютера не было: дома прокручивал в голове Norton Commander»

Для белорусов Ангарск — это бесконечно далеко. Для них есть Беларусь, Европа, Урал, а всё что за Уралом — тёмное место. Мне говорят, ты же из Сибири, там Новосибирск рядом. Я говорю: ну да, в 1 800 км. Мой брат сейчас путешествует на велосипеде из Калининграда в Ангарск, он ехал всё лето, и до дома ему осталось совсем немного — 900 км.

Ангарск — это два больших завода, нефтехимический и по обогащению урана, и к нему — спальный район. Там — интересная адресная схема: деление не по улицам, а по микрорайонам, которые имеют несквозную нумерацию и расположены достаточно хаотично. Например, 5-й, 6-й, 12-й, 17-й. Или используется двойная нумерация: квартал В/улица такая-то. Всё — чтобы запутать врага.

Моё детство пришлось на 90-е. Школьная среда постепенно становилась депрессивной, и, чтобы извлечь меня из неё, после 9-го класса родители отправили меня в физико-математический лицей. Там я первый раз сел за компьютер. Дома компьютера не было: я рос в бедной семье. Помню, как нам в школе показывали Norton Commander. У меня ничего не получалось, и дома я прокручивал в голове урок, пытаясь понять логику.

Мы с товарищем участвовали в олимпиадах по информатике, занимали призовые места и надеялись, что благодаря им легко поступим в вуз. Однако на экзаменах в Иркутский государственный технологический университет мне не хватило проходного балла.

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

У своего дома в Ангарске. Фото из личного архива

У своего дома в Ангарске. Фото из личного архива

Отработал там три года, параллельно поступил в ангарский вуз на информатика-экономиста.

Первый курс там проучился нормально, а второй не окончил. Помню, пришёл на экзамен по мировой экономике: познакомился с преподавателем, взял билет — что-то про экономические циклы. Посмотрел немного в телефоне, вспомнил всё, что знал про Великую американскую депрессию и экономические кризисы в России, составил план и стал слушать, как отвечают мои однокурсники. Это было примерно так:

— Что такое бюджет?

— Эээ, наверное, это когда бабушки пенсию получают.

Тогда я из всего курса единственный получил «отлично». И это был последний экзамен, который я сдал. Понял, что бессмысленно продолжать обучение в заведении такого класса.

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

«Мне сказали: ставь программу, которая будет за всеми следить»

Из Ангарска уехал в Иркутск — работать системным администратором в Мерседес-центре.

Там проработал два года, по 2009 год. Потом случились разногласия с руководством. Типичная история для сисадмина: ты всё настроил, система работает без сбоев, и руководству кажется, что ты больше не нужен.

После этого долго не мог найти хорошую работу. Привозил из Таиланда украшения — металлические безделушки, которые в Иркутске продавались в 5-7 раз дороже. За счёт этого и жил.

Работу сисадмина я так и не нашёл и устроился менеджером по продажам в компанию-системный интегратор местного значения. Видимо, там совсем было плохо с адекватными людьми, раз позвали на собеседование технаря без опыта продаж. Я пришел — тихий, скромный парень. Начальник, как водится на таких собеседованиях, попросил продать ему ручку. Я: ну вот, ручка, блин…

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

В 2012 году случился конфликт с руководством. Так как в этой компании я подрабатывал еще и администратором, однажды мне сказали: ставь программу, которая будет за всеми следить (делать скриншоты, снимать переписку и т. д.). Когда такое начинается, значит, дела в компании идут не очень хорошо. Я ответил: не буду ставить, пока вы не предупредите сотрудников.

Закончилось всё тем, что моя подруга, с которой я познакомился в этой компании, решила увольняться и переезжать в Москву. Я — за ней. Разместил резюме на headhunter и получил неожиданный эффект: компании-интеграторы стали мне звонить и предлагать вакансии инженера по обслуживанию серверной техники, пресейл-инженера.

«Придумал трюк, позволяющий сильно удешевить систему — китайцы удивились»

Когда приехал в Москву, у меня было по два собеседования в день. Всё было хорошо, доллар стоил 30 рублей, я устроился инженером в компанию, которая занималась хранением больших систем данных. Если у клиента в стойке ломался жёсткий диск, самолётом в Москву вылетала запчасть, я садился в другой самолёт и летел её менять. Тогда вдоволь попутешествовал по России.

Потом мне стало скучно, и я стал думать о переходе в другую область. Горячей темой становился Data Science. Я подумал: хранение данных и анализ данных — очень близко. К тому времени я уже смирился с тем, что далёк от программирования.

В начале 2014 года прошёл онлайн-курс по машинному обучению Coursera.org. Однажды компания Huawei собрала команду инженеров со всего мира и пригласила на обучение в Китай. Я попал в эту группу и провёл отличную неделю в Шэньчжэне, где встретился с большой интернациональной командой инженеров.

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

В конце экзамена китаец показал правильный ответ: вот так надо было сделать, кто-нибудь готов улучшить результат? Я говорю: да. Вышёл и показал своё решение. Китаец убежал куда-то, привёл своего начальника, они посмотрели — удивились. Позже ко мне подошёл коллега из Италии и протянул визитку, мол, будешь в Европе — приходи на собеседование.

«Сняли квартиру в Паттайе. Оказалось, что рощица — это китайское кладбище, а озеро — болотце со сточными водами».

К тому моменту в России уже сгущались тучи. Я вернулся из Китая в рабочий офис, а там только и разговоров, что об Украине. Мол, нас там нет, и вообще, если кому-то что-то не нравится, тот может валить — словом, дикий всплеск патриотизма. Как раз упал «боинг», начал подкашиваться рубль, подругу сократили на работе. Я подумал: в самом деле, что я здесь делаю? Посчитали с подругой деньги, прикинули, что этого хватит на полгода жизни в Таиланде, и решили уехать. Я запланировал, что это время буду интенсивно учиться по выбранной специализации — анализу данных.

Московский начальник пошёл на большие уступки, и я улетел, сохранив удалённую работу в режиме фриланса.

Первый месяц в Паттайе всё шло наперекосяк: очень жарко, еда безумно острая, мы неудачно сняли квартиру. Посмотрели на карте: рядом зелёная рощица и озеро. Оказалось, что рощица — это китайское кладбище, а озеро — болотце со сточными водами, и всё это расположено возле трассы, ведущей в Бангкок. Ещё я потерял сим-карту, к которой был подключен банк-клиент, и токен для удалённого подключения к системе на работе. Всё навалилось в один момент, и я думал: боже, зачем я уехал?

Но вскоре всё наладилось: мы нашли классную квартиру на море, я поменял симку на местную. Но учёба в этой расслабленной обстановке не шла. С обеда до вечера я работал на Москву, потом купался и ложился спать.

Так прошло полгода, а в апреле 2015 года звонит начальник из Москвы и начинает такой разговор: мол, ты работаешь как офигевший, получаешь довольно много. Я сразу всё понял: когда увольнение? Через две недели. ОK, у меня своих планов — гора.

Таиланд. Фото из личного архива

Таиланд. Фото из личного архива

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

Когда работа закончилась, начали таять деньги. И я, наконец, начал учиться — прошёл онлайн-курс по анализу данных американской компании Udacity. Но как устраиваться с этим на работу, было совершенно непонятно: на headhunter не было вакансий, которые бы содержали Data Science. В итоге начал проверять работы студентов в Udacity.

Компания американская, платила $50 за проверку одного проекта, которая занимала час. Отличный рейт. Единственный недостаток — проекты однообразные, студенты — ленивые, стараются максимально срезать углы. И тебе в фидбэке надо написать, что в целом всё отлично, а потом заново повторить все требования курса. Ты раз за разом сталкиваешься с нежеланием студентов работать, но тебе надо их воодушевлять. И за это студент тебе ставит 1 балл: дескать, я сделал всё как надо, а меня завалили. От этого выгораешь.

В Таиланде я провёл полтора года — в три раза больше, чем планировал. Там хорошо, но невозможно ассимилироваться, ты навсегда останешься «бледнолицым», тебе не дадут гражданства, и каждые три месяца придётся выезжать за границу, чтобы поставить штамп.

В то время мой брат пошёл в армию и освободил квартиру в Ангарске, оставшуюся в наследство от отца. Я подумал: вот там-то меня точно ничто не будет отвлекать от учёбы. И мы с подругой решили вернуться.

«Вернулся в Ангарск: люди — злые, вместо белого дома — клетушка с зелёной ванной»

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

И вот в таком расслабленном состоянии я вернулся в Ангарск в марте 2016 года. После плюс 30 я попал в минус 25, и сразу заболел, теплых вещей нет, из дома не выйдешь. Все вокруг злые, нахмуренные, плюс все говорят по-русски, а не по-тайски, и ты всё понимаешь. После полутора лет тишины это давило на уши.

Квартира оказалась в ужасном состоянии, из тайского дома (белые стены, керамогранит, огромное окно распахивается и за ним — море) я приехал в клетушку с пятью слоями обоев. Маленькая ванна была покрашена в темно-зелёный цвет, включая потолок. Я сразу стал делать ремонт, перекрасил всю квартиру в белый, поставил яркий свет.

Ещё в Таиланде я стал проходить курс Яндекса по машинному обучению. Это было прикольно, но в процессе я понял, что анализ табличек, который лежит в основе Data Science, мне не очень интересен, и стал склоняться в сторону компьютерного зрения.

В канун 2017 года оглянулся назад и понял, что за три года почти ничего не сделал. Я, конечно, двигался в нужном направлении, но прогулочным шагом. Думаю: мне 30 лет, а я по-прежнему в Ангарске, и никакого просвета не видно. Тогда написал пост в блоге на Open Data Science (ODS): блин, парни, меня надо попинать. И — тишина, никто не отреагировал. Я разозлился: чего я жду, ведь это моя жизнь, и она нужна только мне.

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

«Потратил две недели, чтобы просто понять код, который товарищ сделал за два вечера»

Итак, я разозлился, собрался и решил участвовать в соревновании на Kaggle. Агентство DSTL (Defence Science and Technology Laboratory, подразделение Министерства обороны Великобритании) дало задание на сегментацию спутниковых снимков. Там были даны снимки непонятной местности, и их нужно было преобразовать в карту: отметить дома, дороги, машины, водоёмы и т. д.

Я постучался в команду к более опытному товарищу по ODS — разработчику Владимиру Игловикову, который живёт в Калифорнии. Когда ты один, то, вроде как, никому ничего не должен, а в команде работаешь более интенсивно. Сначала мы вошли в ТОП-50, потом стали подниматься выше и захотели войти в десятку. За день до окончания соревнований мы были на 8-м месте.

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

Соревнование шло три месяца. Для обучения сетей были даны 24 больших картинки, 1 км х 1 км, а в тесте — 450 картинок. Используя 24 картинки, надо было научить нейронную сеть отличать дома от озёр, чтобы потом на всех 450 картинках она нашла нужные элементы.

Прежде чем приступить к соревнованиям, надо было преодолеть технический барьер: изображения были в сложном формате, его надо было преобразовать. И Вова кинул клич: давайте все вместе соберёмся и прорвёмся через этот порог. И наш товарищ Артур Кузин, известный в чате как Noise, сел и за пару вечеров собрал и выложил набросок основного решения. На таких соревнованиях участники делятся набросками, особенно на начальном этапе, когда все очень быстро идут к хорошему решению, а потом уже начинается борьба за миллионные доли.

Помню, я потратил две недели только на то, чтобы понять код, который Артур сделал за пару вечеров. Это произвело на меня отрезвляющее действие: оказалось, я очень мало понимаю в этой области. Понял, что надо изучать всё, что связано с разработкой: алгоритмы, шаблоны проектирования — кучу всего.

На публичном leader board мы были 8-ми, а когда вскрыли закрытую часть и объявили результаты, мы с Вовой неожиданно оказались на 3-м месте. Там были некоторые тонкости, которые позволили нам взять приз. Водоёмы надо было разделить на реки и озера. С точки зрения компьютера это было совершенно непостижимо, но небольшая разработка помогла озёрам остаться озёрами.

Это был успех. Обычно в таких соревнованиях призы считаются чем-то недосягаемым. Когда участников несколько тысяч, какой у тебя шанс попасть на самый верх? И тут оказалось, что простые парни, из Калифорнии и Ангарска, могут выигрывать призы.

Призы были $50 тысяч, $30 тысяч и $20 тысяч за первые три места. На втором месте был Артур со своим напарником. Это воодушевило.

Потом был ещё один конкурс. DSTL очень понравилось: по государственным меркам, получить хорошее решение за $ 100 тысяч — это очень дёшево. И они решили организовать соревнование уже на своей площадке. Задание было детектировать машины со спутниковых снимков. Мы с Вовой стали участвовать по отдельности, он оказался на 2-м месте, я — в Топ-5.

«Вот мы на 1% улучшили распознавание лица, но никто не восхищается»

Как без специального образования стал занимать топовые места на соревнованиях?

Вообще-то всё это время, прокрастинируя в Таиланде и Ангарске, я фоново поглощал информацию: смотрел курсы, читал статьи. Интерес к компьютерному зрению появился благодаря стэнфордскому курсу на Youtube по нейросетям и компьютерному зрению CS 231N, который вёл Андрей Карпаты, нынешний директор по AI и нейросетям компании Tesla.

Это был невероятно свежий курс: я первый раз увидел, чтобы преподаватель рассказывал о том, что он сам прочитал только два дня назад или услышал на конференции. Мол, представляете, на конференции мы научились определять позу человека! Шёл 2016 год, и прогресс в Computer Vision был каждый день и по всем фронтам.

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

Курс Андрея Карпаты был изложен доступным языком, я его смотрел и понимал, что там нет ничего сверхъестественного. В нейросетях используется материал, грубо говоря, первого курса института, который я всё-таки окончил. Линейная алгебра, начала матанализа, обычное программирование. Плюс к тому времени стали делать фреймворки и библиотеки, которые позволяют взять готовые строительные блоки, с умом их скомбинировать и получить решение.

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

«В настольном теннисе мячик летит с такой скоростью, что для камер почти исчезает»

В июле 2017 года я получил приглашение из Москвы от компании Constanta: мы тут делаем интересные системы видеоаналитики и компьютерного зрения — приезжай на собеседование. По всем параметрам я был джуниор-разработчик, и брать меня было рискованно. Но слетал, и меня взяли. Так в сентябре 2017 года я снова уехал в Москву.

Там было несколько интересных проектов: подсчёт очков в настольном теннисе, бильярде и вырезание рекламы. Это нужно букмекерским компаниям, которые на все матчи отправляют человека с мобильным телефоном. В специальном приложении он нажимает кнопки: очко левому, очко — правому. Соответственно принимаются ставки. Человек может отвлечься или заснуть, поэтому задача — заменить его камерой.

Настольный теннис кажется простой игрой, но мячик в момент удара летит с огромной скоростью и для камеры почти исчезает. У нас была камера, которая снимает 120 кадров в секунду (обычная — 25 кадров), и всё равно мяч «размазывался». Увидеть траекторию теннисного мяча камере также очень сложно: пролетел он ближе или дальше. А кроме того, мяч вращается, и за счёт этого летит не по той траектории, которая кажется правильной, поэтому предсказать место отскока очень сложно.

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

Пока работал в Constanta, принял участие в ещё парочке соревнований, в составе команд занял там 4-е и 1-е места.

В одном соревновании был вращающийся подиум, на котором стоит автомобиль, его фотографируют под 16-ю углами. Задача была автоматически вырезать изображение автомобиля со всех картинок, чтобы потом вставлять их в рекламные материалы. Нам дали несколько тысяч картинок с автомобилями, которые были обведены вручную. И нужно было сделать алгоритм, который научится на оставшихся картинках делать то же самое. То есть стояла задача «уволить» фотошопера из компании, торгующей подержанными автомобилями.

Тут у всех результаты были очень хорошие: с точностью 99,6% определялось, где фон, а где машина. Только там, где через диски просвечивал фон, возникали сложности. У кого машина лучше отметила все элементы, тот и выиграл. Между 1-м и 2-м местами была разница всего в два пикселя. Моя команда заняла 4-е место.

«Традиционные методы академиков сработали хуже, чем наша нейронная сеть»

В другом конкурсе надо было определить модель камеры по фото. Область применения решения — компьютерная криминалистика. В условиях было несколько смартфонов, два айфона, несколько старых «моторолл» и парочка более профессиональных камер.

Как это делается традиционно? Фото сильно увеличивается, чтобы были видны шумы, особенные для каждой камеры. В этом конкурсе участвовали академики, которые посвятили этой теме жизнь. И мы впятером — другие парни из ODS и я.

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

Решение было очень наивным: ты просто берёшь нейросеть, на входе даёшь ей картинки, на выходе говоришь, какая это камера, и всё, посередине — чёрный ящик. Машина берёт картинку и сразу выдаёт ответ. Ты не знаешь, как она определяет, какие находит шумы. Но это отлично работает, с точностью, близкой к 100%. Оказалось, что традиционные методы, когда под микроскопом рассматривают сенсор камеры, работают хуже, чем сеть, обученная на нескольких тысячах картинок.

Правила не запрещали использовать дополнительные данные, и мы стали как бешеные качать с Flickr и Яндекс.Фото гигабайты фотографий. Люди любят обрабатывать фото, убирать шумы, поэтому пришлось разобраться в структуре файлов, где содержится информация об обработке, поставить фильтры, причём сделать это быстро, так как под конец работы к нам шёл поток из сотен тысяч фотографий. В итоге из 582 команд мы заняли 1-е место.

«Если иконы отражаются в лобовом стекле, это мешает компьютеру видеть дорогу»

После очередного конкурса в Telegram ко мне постучался мой нынешний начальник, Александр Матвеенко, и пригласил на собеседование в Минск. Я приехал, мы пообщались, и теперь я работаю в Mapbox.

Когда я устраивался, компания ещё занималась беспилотным управлением. Потом переключились на видеорегистратор, но для разработчиков это ничего не изменило, так как пока мы всё равно сосредоточены на восприятии.

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

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

Это было обнаружено несколько лет назад, и, с одной стороны, вызвало панические настроения (это ваше машинное обучение абсолютно ненадёжно), а с другой, подвигло на исследования, как сделать компьютерное зрение более устойчивым.

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

Но проблема в том, что компьютер работает не так, как человеческий мозг. Наши, человеческие, сети обучились на огромном количестве примеров, в наш мозг идёт непрерывный поток видео, и оно корректируется с учётом других органов чувств. У нас в голове есть «гироскоп», который позволяет нам видеть стабильную картинку, даже когда мы трясём головой. А когда мы двигаем телефон, то потом удивляемся, почему видео получилось таким «трясучим», ведь глазами всё было видно отлично.

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

И в беспилотных автомобилях это важнейшая задача. Одна и та же дорога может выглядеть по-разному в зависимости от погоды, времени суток, лежит ли на ней снег или листва. А если на лобовом стекле отражаются иконы и попадают тебе в камеру, эти блики сильно мешают видеть дорогу. Человек понимает, что это блик, а как объяснить это компьютеру?

Кроме того, есть проблема ограниченности ресурсов. Мы сейчас запускаемся на телефоне, и это вызывает у всех удивление: неужели ресурсов айфона достаточно, чтобы несколько раз в секунду обрабатывать информацию об объектах? Но мы определяем людей, машины, знаки, светофоры. Плюс к этому делаем сегментацию, которая различает дорожное полотно, разметку на дороге, здания, деревья, бордюры — всего 14 видов объектов.

Мы делаем SDK (software development kit) — набор инструментов для разработчиков, который поможет нашим клиентам делать приложения.

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

«Московскую зиму видел, не думаю, что здесь будет хуже»

Минск очень похож на Иркутск, но без реки. После сибирских рек Свислочь, конечно, не река. Я и в Москве удивился: это и есть та самая Москва-река? Ручеёк какой-то.

Чего мне здесь не хватает, так это мраморной говядины. В Москве я научился готовить стейки и привык к ним. Мне все говорят, что плохо ищу, но я почему-то не могу найти.

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

Да, подруга, которая всё это время переезжала со мной, тоже в Минске. Через неделю у нас свадьба. По образованию она культуролог — очень полезная, нужная профессия. Но я её приучил к компьютерным делам, сейчас она занимается фотографией, 3D-графикой, учится моделировать.

Компьютерное зрение — очень большая область. В ней можно заниматься исключительно детекцией объектов, например, отличать стулья от не-стульев, и всё равно каждый день тебе будет идти нескончаемый поток обновлений, новостей и т. д.

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

А ещё всегда есть план «Г»: бросить всё и уехать на Гавайи заниматься сёрфингом.

Курсы и книги от Сергея Мушинского

Золотой стандарт для начинающих сейчас — это изучить Python (тут курсов куча, можно выбирать любой, например, этот на Stepik’e или начало специализации Яндекса, это и для введения в машинное обучение в целом отлично подходит).

Затем ещё два курса и на закуску стэнфордский курс.

После этого можно смело идти делать студенческие проекты или участвовать в соревнованиях на каггле и/или искать стажировку/первую работу.

Если требуется подтянуть/изучить необходимую математику, то нужны курсы по линейной алгебре и началам анализа. Например, курс Гильберта Странга из МIТ или от тех же ребят из fast.ai.

Книги по нейросетям:

  • Сергей Николенко. Глубокое обучение;
  • Франсуа Шолле. Глубокое обучение на Python;
  • Ян Гудфеллоу. Глубокое обучение

Книги по компьютерному зрению в целом:

  • Computer Vision: Algorithms and Applications — Szeliski (учебник, в свободном доступе, традиционные подходы);
  • Computer Vision Metrics Survey, Taxonomy, and Analysis Krig, Scott (высокоуровневый обзор);
  • Learning OpenCV 3: Computer Vision in C++ with the OpenCV Library Adrian Kaehler (традиционные подходы, описание работы с одной из самых популярных библиотек компьютерного зрения);
  • Multiple view geometry in computer vision;
  • Book by Richard Hartley (учебник, в свободном доступе)
По теме
Все материалы по теме
16 лет dev.by — «дефолтный» источник информации о беларусском ИТ

Вы можете...

Читайте также
Нейросеть «оживляет» классические пиксельные игры
Нейросеть «оживляет» классические пиксельные игры
Нейросеть «оживляет» классические пиксельные игры
«Будут проблемы». Что нас ждёт, когда картинок от нейросетей станет слишком много
«Будут проблемы». Что нас ждёт, когда картинок от нейросетей станет слишком много
Bubble
«Будут проблемы». Что нас ждёт, когда картинок от нейросетей станет слишком много
Во Франции искусственный интеллект помогает искать нелегальные бассейны и штрафовать нарушителей
Во Франции искусственный интеллект помогает искать нелегальные бассейны и штрафовать нарушителей
Во Франции искусственный интеллект помогает искать нелегальные бассейны и штрафовать нарушителей
3 комментария
Американский стартап разработал технологию для общения с голограммами умерших
Американский стартап разработал технологию для общения с голограммами умерших
Американский стартап разработал технологию для общения с голограммами умерших
1 комментарий

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.