Таланты | Журнал Кружковое движение

От программирования на олимпиаде до приложения для врачей

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

Николай МОЗГАНОВ — один из разработчиков приложения и призёр профиля «Автоматизация бизнес-процессов» 2020/21 сезона Национальной технологической олимпиады (НТО, ранее — Олимпиада НТИ). Он рассказал нашему журналу о развитии проекта и его связи с олимпиадой.

На первом плане Николай Мозганов, на втором – Глеб Дёмин

Наталия Саюкина: Коля, где ты учишься и чем занимаешься помимо учёбы?
Николай Мозганов: Когда я начал заниматься проектом DrCat, я учился в Гимназии Новоуральска, это небольшой город рядом с Екатеринбургом. В 2021 году я поступил в Уральский федеральный университет в самом Екатеринбурге и сейчас учусь на программиста. Люблю заниматься спортом: плаванием и воркаутом [прим. ред.: от англ. workout — тренировка], включающим в себя трюки на турниках и брусьях.

Стоит сразу сказать, что проект DrCat не только мой, мы делали его впятером на Уральской проектной смене в «Сириусе».

Н.С.: Кто занимался DrCat вместе с тобой?
Н.М.: Начну с наставников проектной смены. Нейрохирург Павел Ошурков помогал нам со сбором данных и подсказывал, как всё работает в медицине, а Екатерина Деньгина была менеджером проекта и смотрела, чтобы мы шли в нужном направлении. Можно сказать, что она шестой человек в нашей команде.

Мои коллеги лучше расскажут про себя сами.

Вероника Чеблокова: В команде DrСat я выполняла роль медика. На смене под руководством Павла Ошуркова я занималась классификацией снимков компьютерной томографии по типам инсультов, изучала и структурировала медицинские рекомендации по лечению. Участие в DrСat расширило мои знания в области медицины и стало дебютом в работе над серьёзными проектами.

Елизавета Пушкарёва: В проекте я занималась нейронными сетями и машинным обучением, то есть работала над самой системой распознавания типа инсульта. Мой путь в мир машинного обучения начался с Deep Learning School Московского физико-технического института — курсов в открытом доступе, предназначенных для студентов и старшеклассников.

Александра Сальникова: В проекте DrCat я была веб-дизайнером и ответственной за презентацию. Проработала структуру сервиса, провела опрос пяти врачей-специалистов, а также разметила базу данных снимков компьютерной томографии. Стоит сказать, что я участница двух Уральских проектных смен. На смене в 2020 году я начала пробовать себя в качестве веб-дизайнера, и опытный наставник научил меня тому, что на смене в 2021 я смогла применить, занимаясь DrCat.

Кирилл Осинцев: В проекте я разрабатывал клиентскую часть сервиса, то есть реализовывал дизайн, придуманный Сашей. Изучать front-end я начал при помощи Яндекс. Практикума и Udemy: проходил много курсов и постоянно тренировался. DrCat стал моим первым масштабным проектом.

Н.М.: А я занимался back-end частью сервиса и немного помогал с машинным обучением, то есть связывал нейронные сети и рекомендательную систему, выводил данные на front-end. У нас в команде нет лидера, мы все равны.

Команда DrCat. Слева направо, на первом плане: Елизавета Пушкарёва, Вероника Чеблокова, Александра Сальникова; на втором плане: Кирилл Осинцев, Глеб Дёмин

Н.С.: Коля, после смены вы продолжили заниматься проектом, верно?
Н.М.: Да, дорабатывали некоторые моменты, например, сделали подсветку проблемных областей на снимке. У нас получился прототип сервиса, который может помочь врачам определять тип инсульта по снимкам головного мозга и подсказывать дальнейшую тактику действий врача. Подробнее про создание сервиса DrCat писала Екатерина Баяндина для онлайн-журнала «Теплица социальных технологий».

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

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

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

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

Н.С.: До интервью ты упоминал, что тебе помог в работе над сервисом профиль НТО «Автоматизация бизнес-процессов». Можешь рассказать о своём участии в этой олимпиаде?
Н.М.: Вообще я участвовал в шести профилях Олимпиады НТИ за два года, потому что в один год можно выбрать не более трёх. До этого, в девятом классе, я ещё испытывал силы в профиле по виртуальной реальности, но не прошёл финал, а в следующие года делал это стабильно.

В 2020 году я выбрал профили «Программная инженерия финансовых технологий», «Большие данные и машинное обучение» и «Искусственный интеллект», а в 2021 — «Разработка компьютерных игр», «Программная инженерия финансовых технологий» и «Автоматизация бизнес-процессов». Призёром я стал только в последнем.

Стоит отметить, что команда школьников, с которой я участвовал в НТО, не менялась. В неё входили Глеб Дёмин из Екатеринбурга, Константин Рычков из Североуральска и Игорь Ковалёв из Новосибирска. В профилях, команды которых были ограничены по количеству участников, мы просто старались делиться пополам.

Команда Олимпиад НТИ. Слева направо: Николай Мозганов, Глеб Демин, Игорь Ковалев

Н.С.: Похоже, вы стали настоящей командой. А что тебе запомнилось на «Автоматизации бизнес-процессов»?
Н.М.: На финале нужно было сделать сервис для поступающих абитуриентов, который бы включал функционал для приёмной комиссии и деканата. Несмотря на то, что профиль делала компания «1С», и предполагалось, что нужно разрабатывать задание на 1С, нас не сильно ограничивали в выборе технологии, поэтому мы с сокомандником писали сервис на Python. Мы его лучше знали и, когда услышали финальные задания, решили, что так проще. Хотя объём кода на нём и получился значительно больше.

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

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

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

Н.С.: Как профиль «Автоматизации бизнес-процессов» помог проекту?
Н.М.: В целом задачи мои были немного похожи: что написать сервис для абитуриентов, что написать back-end приложения для врачей — это из одной сферы, поэтому знания, полученные на олимпиаде, по-любому пригодились при разработке проекта. Особенно оптимизация баз данных. Чтобы всё работало быстро, когда много пользователей хотят использовать сервис, нужно писать оптимизированные запросы, чему, в частности, я научился на олимпиаде.

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

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

Н.С.: А кто-то из команды DrCat тоже участвовал в олимпиаде?
Н.М.: Прежде нет, но я им порекомендовал её, и в этом году Лиза Пушкарёва и Кирилл Осинцев решили поучаствовать.

Н.С.: Успехов им. Возвращаясь к проекту, какая судьба его постигла? Какие у вас планы на будущее?
Н.М.: Мы надеялись в будущем расширять функционал приложения, добавить для него возможность диагностики по магнитно-резонансной томографии и компьютерной диагностики сосудов.

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

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

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

Я занимался разными сферами, от back-end-разработки до мобильных приложений. В банке «Точка», где я сейчас работаю, я подписал соглашение о неразглашении информации, поэтому не могу рассказать подробнее.

Н.С.: А как ты нашёл работу по профессии уже на первом курсе?
Н.М.: Один человек в шуточной форме написал в одной соцсети, что ему нужны разработчики, а я в шуточной форме ответил, что могу быть разработчиком. Так мы «сконнектились» [прим. ред.: от англ. connect — соединять]. Я прошёл собеседование и попал в команду.

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

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


Н.С.: Спасибо за приятный отклик и интервью. Удачи!
ТАЛАНТЫ