Как мы сделали Telegram-бота, который распознает заболевания на коже по фото

Сейчас особо не удивишь чат-ботами, которые могут вести диалоги на естественном языке. Поэтому сегодня я расскажу о том, как мы делаем бота, который может видеть.

Меня зовут Кирилл, я уже более 7 лет занимаюсь различными проектами в Digital Health. Идеи по использованию технологий искусственного интеллекта у меня витали уже достаточно давно, но вплотную с ними работать начал около года назад. Реализовав несколько идей используя для обучения текстовые массивы данных и убедившись в отличных результатах, которые показывают нейросети, мне естественно захотелось попробовать поработать и с другими видами данных.

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

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

МРТ головного мозга

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

1 Этап: Baseline

Очень вовремя на глаза мне подвернулось соревнование ISIC 2017: Skin Lesion Analysis (анализ кожных заболеваний по дерматоскопическим снимкам). Он показался не таким сложным и я со своими знакомыми не долго думая решили попробовать свои силы в этом соревновании и параллельно с этой идеей принять участие в хакатоне по искусственному интеллекту AI Hackathon, который проходил 17–18 декабря 2017 года в ПВТ (Минск). На этом хакатоне и начался данный челлендж, который не заканчивается по сей день. Спалив не одну тысячу долларов на вычислительные ресурсы, перебрав несколько моделей и фреймворков нейронных сетей за эти два дня мы заслуженно ничего не выиграли))

Хочу поделиться уроками, которые мы вынесли из данного хакатона:

  • Перед хакатоном следует делать глубокий рисерч того, как эту задачу пробовали решать до вас и какие методы изначально провальные;
  • Не надо распыляться на несколько вариантов реализации задачи;
  • Распределение фронта работ между участниками команды.

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

Поработав над ошибками уже через пару месяцев в начале 2018 года мы обучили нейронную сеть выдавать довольно неплохие результаты по классификации здоровых опасных родинок (где может развиться или уже развивается рак кожи).

2 Этап. Immersion

Во время работы над технологией распознавания рака кожи естественно встал вопрос о необходимости привлечения врачей-консультантов в области дерматологии. Благодаря их экспертизе мы вышли за рамки классификации родинок по категориям «хот-дог/ не хот-дог», так как помимо здоровых и опасных невусов (родинок) есть еще предраковые состояния, а также много различных доброкачественных новообразований на коже, которые обыватели также называют родинками.

Начав сотрудничество с дерматологами мы кардинально изменили датасет для обучения, расширив до двух десятков диагнозов и прекратили участие в ISIC Challenge 2017.

3 Этап. Accessibility

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

В среднем, ручные дерматоскопы имеют увеличение в 10 раз. Фотографии, сделанные через дерматоскопы безусловно имеют очень хорошее качество и детализацию. Их преимущество является и недостатком — для получения таких снимков безусловно нужен прибор дерматоскоп. Это сужает использование автоматического распознавания кожных заболеваний только для обладателей дерматоскопов и это как правило врачи-дерматологи.

Так выглядит родинка в дерматоскопе

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

Представьте, что ваш смартфон сможет помочь вам распознать вид кожного заболевания, определить степень риска для здоровья и дать рекомендации о дальнейших действиях!

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

4 Этап. Soft Launch

Самый быстрый способ сделать рабочую версию MVP в нашем случае было подключив наши нейросети через бота в Telegram. Это гораздо быстрее, чем разрабатывать мобильное приложение, а пользователям отправить фотографию родинки через бота гораздо проще, чем устанавливать отдельное приложение.

@Skinseption_bot — Telegram бот по определению кожных заболеваний

@Skinseption_bot — это бот в мессенджере Telegram. Ему достаточно отправить фотоснимок с кожными проблемами (бородавки, акне, угри, родинки и другие новообразования на коже) и он определит степень риска, вероятный диагноз и рекомендации по дальнейшим действиям. Бот поможет записаться на очный прием к нужным врачам: косметологам, дерматологам, дерматоонкологам.

Демо видео Telegram-бота

О запуске нашего бота мы рассказали в канале Технологии Будущего @Tech_ru, где получили первые отзывы. Англоязычную версию бота мы опубликовали на Producthunt. Самое приятное — что наш бот уже помог нескольким пользователям распознать опасные диагнозы и благодаря этому люди смогут своевременно обратиться со своей проблемой к врачам.

Новость для пользователя не самая приятная, но информация об угрозе ценна

Сейчас мне нужна помощь коммьюнити Vc.ru — вы первые альфа-тестировщики и ваша обратная связь позволит сделать сервис лучше. Буду рад вашим отзывам, пишите мне в Телеграм — @Malkieler

Долгосрочные планы на будущее сейчас не строим — в приоритете это конечно точность распознавания и количество диагнозов. В ближайшие дни бот будет доступен и в Facebook messenger. Больше информации и демо видео (англ) на Producthunt: https://www.producthunt.com/posts/skina-bot

P.S. Telegram-бот @Skinseption_bot не должен использоваться для установки конечного диагноза или лечебных целей. Точный диагноз и курс лечения назначает только врач на очном приеме!

©  vc.ru