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

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

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

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

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

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

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

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

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

Первый этап: Baseline

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

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

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

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

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

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

Второй этап: Immersion

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

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

Третий этап: Accessibility

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

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

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

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

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

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

Четвёртый этап: Soft Launch

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

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

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

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

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

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

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

Долгосрочные планы на будущее сейчас не строим — в приоритете, конечно, точность распознавания и количество диагнозов. В ближайшие дни бот будет доступен и в Facebook Messenger. Больше информации и демовидео (англ) на Producthunt.

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

3636
48 комментариев

Шазам для болячек

9
Ответить

Очень очень интересная задумка. Столько нужно доработок и я как и Вы считаю, что за ии и ботами будущее в медицине. Если на западе уже повсеместно ии используют как второго помощника или ассистента врача. В России этот технологический прогресс произойдёт через 10 лет и то с трудом ( Сбербанк все заберёт и станет монополистов в этом ). Именно такие смелые проекты как Ваш бот может дать новый толчок в развитии медицины в будущем. Работая в медицине я сам думал над такими проектами как помощь мамам и папам, когда их дети болеют; небольшие подсказки - «ЧТО ДЕЛАТЬ В ТОЙ ИЛИ ИНОЙ СИТУАЦИИ».
Однако вы работаете в очень сложной системе медицины - где по фото надо поставить предварительный диагноз ( утрирую, пишу к примеру ) - это ещё раз оговорюсь - смелый шаг, но когда вы разрабатывали этот проект вы естественно думали и знали о рисках, которые предстоят.
В жизни все намного сложнее - показал терапевту свою роднику - отпарил к дерматологу - дерматолог к онкологу - онколог к терапевту - терапевт к хирургу - хирург удалил - отправил на исследование - исследование показало то то - опять по спецам.
Вы же грубо говоря своим приложением должны четко поставить грань точнее приблизительно между надо волноваться или не надо.
Ps. Сугубо личное мнение. Проект мегакрут

6
Ответить

Достаточно спорный проект. А если по ошибке определит не то заболевание? Какой стресс будет у человека

1
Ответить

Сходите лишний раз к дерматологу, лишним не будет. Лучше перебдеть, чем недобдеть.

18
Ответить

Сделал 4 фотографии одной и той же области, показал 4 разных результата, от караул (3 разных заболевания: папиллома, карциома базальноклеточная и подозрение на злокачественную опухоль) до все в норме.

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

Поэтому не вижу смысла в этом проекте.

4
Ответить

Поговорил с Кириллом. Мое мнение:

Задумка хорошая, но пока на данном этапе вы лучше объявите что она в стадии тестирования и что нужно ИИ обучать.

Желаю успехов в развитии.

Ответить